diff --git a/bootstrap.sh b/bootstrap.sh index 7d18617..ac74ff5 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -17,6 +17,8 @@ nvimDir="$HOME/.config/nvim" alacrittyDir="$HOME/.config/alacritty" i3Dir="$HOME/.config/i3" polybarDir="$HOME/.config/polybar" +swayDir="$HOME/.config/sway" +waybarDir="$HOME/.config/waybar" rofiDir="$HOME/.config/rofi" picomFile="$HOME/.config/picom.conf" gitconfigFile="$HOME/.gitconfig" @@ -31,6 +33,8 @@ ln -s $PWD/nvim $nvimDir ln -s $PWD/i3 $i3Dir ln -s $PWD/alacritty $alacrittyDir ln -s $PWD/polybar $polybarDir +ln -s $PWD/sway $swayDir +ln -s $PWD/waybar $waybarDir ln -s $PWD/rofi $rofiDir ln -s $PWD/picom.conf $picomFile ln -s $PWD/.gitconfig $gitconfigFile @@ -45,7 +49,7 @@ fi # Remove all configs if [ "$1" = "-R" ] ; then -cd && rm -rf .bashrc $nvimDir $alacrittyDir $i3Dir $polybarDir $rofiDir $picomFile $gitconfigFile && cd - +cd && rm -rf .bashrc $nvimDir $alacrittyDir $i3Dir $polybarDir $swayDir $waybarDir $rofiDir $picomFile $gitconfigFile && cd - fi diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..47dea64 --- /dev/null +++ b/sway/config @@ -0,0 +1,197 @@ +### Variables + +# Main keys +set $mod Mod4 +set $alt Mod1 + +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l + +# Your preferred terminal emulator +set $term alacritty + +# Your preferred application launcher +set $menu rofi -show run + +# Workspaces +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + + + +# ____ _____ _ _ _____ ____ _ _ +# / ___| ____| \ | | ____| _ \ / \ | | +# | | _| _| | \| | _| | |_) | / _ \ | | +# | |_| | |___| |\ | |___| _ < / ___ \| |___ +# \____|_____|_| \_|_____|_| \_\/_/ \_\_____| +# +default_border none +smart_borders on +focus_follows_mouse no + +gaps inner 8 + +floating_modifier $mod normal + +# Draw wallpaper +output * bg ~/Pictures/Wallpapers/2b.jpeg fill + +# Keyboard layout +input * { + xkb_layout "us,ru" + xkb_options "grp:win_space_toggle" +} + + + + +# _ ____ ____ _ ___ ____ _ _____ ___ ___ _ _ ____ +# / \ | _ \| _ \| | |_ _/ ___| / \|_ _|_ _/ _ \| \ | / ___| +# / _ \ | |_) | |_) | | | | | / _ \ | | | | | | | \| \___ \ +# / ___ \| __/| __/| |___ | | |___ / ___ \| | | | |_| | |\ |___) | +# /_/ \_\_| |_| |_____|___\____/_/ \_\_| |___\___/|_| \_|____/ +# +# Start applications with keybindings +bindsym $alt+f exec firefox +bindsym $alt+r exec alacritty -e ranger +bindsym $alt+s exec steam + +# Assign specific applications their workspaces +assign [class="firefox"] $ws1 +assign [class="Steam"] $ws3 + +# Default settings for some applications +for_window [class="Steam"] floating enable +for_window [class="mpv"] floating enable +for_window [class="mpv"] move absolute center +for_window [class="MuPDF"] floating enable + + + +# _ _ _ _____ ___ ____ _____ _ ____ _____ +# / \ | | | |_ _/ _ \/ ___|_ _|/ \ | _ \_ _| +# / _ \| | | | | || | | \___ \ | | / _ \ | |_) || | +# / ___ \ |_| | | || |_| |___) || |/ ___ \| _ < | | +# /_/ \_\___/ |_| \___/|____/ |_/_/ \_\_| \_\|_| +# +exec_always --no-startup-id $HOME/.config/waybar/launch.sh +exec_always --no-startup-id mako +exec_always --no-startup-id inactive-windows-transparency.py + + + +# _ _________ ______ ___ _ _ ____ ___ _ _ ____ ____ +# | |/ / ____\ \ / / __ )_ _| \ | | _ \_ _| \ | |/ ___/ ___| +# | ' /| _| \ V /| _ \| || \| | | | | || \| | | _\___ \ +# | . \| |___ | | | |_) | || |\ | |_| | || |\ | |_| |___) | +# |_|\_\_____| |_| |____/___|_| \_|____/___|_| \_|\____|____/ +# + +# Bind media keys on a keyboard to control volume and playback +bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer -i 2 +bindsym XF86AudioLowerVolume exec --no-startup-id pamixer -d 2 +bindsym XF86AudioMute exec --no-startup-id pamixer -t +bindsym XF86AudioPlay exec playerctl play-pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous + +# TODO: Fix screenshot keybindings +# Make screenshots +bindsym $mod+Home exec wlshot copy +bindsym $mod+Shift+Home exec wlshot save + +# Start a terminal +bindsym $mod+Return exec $term + +# Kill focused window +bindsym $mod+Shift+q kill + +# Start your launcher +bindsym $mod+d exec $menu + +# Reload the configuration file +bindsym $mod+Shift+r reload + +# Move focus +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right + +# Move focused windows +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right move right + +# Cycle through workspaces +bindsym $mod+Tab workspace next +bindsym $mod+Shift+Tab workspace prev + +# Switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 +bindsym $mod+0 workspace number $ws10 + +# Move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+2 move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+6 move container to workspace number $ws6 +bindsym $mod+Shift+7 move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+9 move container to workspace number $ws9 +bindsym $mod+Shift+0 move container to workspace number $ws10 + +# Change split mode +bindsym $mod+g splith +bindsym $mod+v splitv + +# Switch the current container between different layout styles +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# Toggle between layout modes +bindsym $mod+x layout toggle + +# Make the current focus fullscreen +bindsym $mod+f fullscreen + +# Toggle the current focus between tiling and floating mode +bindsym $mod+z floating toggle + +### Resize mode +mode "resize" { + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" + +include /etc/sway/config.d/* diff --git a/sway/config.d/50-systemd-user.conf b/sway/config.d/50-systemd-user.conf new file mode 100644 index 0000000..72e5dcd --- /dev/null +++ b/sway/config.d/50-systemd-user.conf @@ -0,0 +1,7 @@ +# sway does not set DISPLAY/WAYLAND_DISPLAY in the systemd user environment +# See FS#63021 +# Adapted from xorg's 50-systemd-user.sh, which achieves a similar goal. + +exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK +exec hash dbus-update-activation-environment 2>/dev/null && \ + dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK diff --git a/waybar/config b/waybar/config new file mode 100644 index 0000000..0883ab4 --- /dev/null +++ b/waybar/config @@ -0,0 +1,27 @@ +{ + "position": "top", + "modules-left": ["sway/workspaces"], + "modules-right": ["pulseaudio", "sway/language", "network", "clock"], + + "sway/workspaces": { + "all-output": true, + "format": "{index}" + }, + + "pulseaudio": { + "tooltip": false, + "format-muted": "MUTE" + }, + "sway/language": { + "tooltip": false + }, + "network": { + "format": "{icon} connected", + "format-icons": [""], + "tooltip": false + }, + "clock": { + "format": "{:%d %b %H:%M, %A}", + "tooltip": false + } +} diff --git a/waybar/launch.sh b/waybar/launch.sh new file mode 100755 index 0000000..8300e62 --- /dev/null +++ b/waybar/launch.sh @@ -0,0 +1,5 @@ +#! /bin/bash + +killall waybar + +waybar diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..8b23cce --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,50 @@ +/* Colors */ +/* primary: #ffa759 */ +/* background: #202734 */ +/* background-alt: #191e2a */ +/* foreground: #cbccc6 */ + +window#waybar { + background: #191e2a; + color: #cbccc6; + font-family: "Fira Code", "Font Awesome 5 Free Solid"; +} + +#workspaces { + background: #202734; + margin: 10px; + border-radius: 8px; +} + +#workspaces button { + color: #fff; + background: transparent; +} + +#workspaces button.focused { + color: #ffa759; +} + +#workspaces button.urgent { + background: #ffa579; +} + +#clock, +#network, +#language, +#pulseaudio { + background: #202734; + margin: 10px; + padding: 10px; + border-radius: 8px; +} + +#pulseaudio.muted { + color: #ffa759; +} + +#network, +#language, +#pulseaudio { + margin-right: 5px; +}