diff --git a/.config/sway/config b/.config/sway/config index 0f45277..ce2caee 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -1,13 +1,13 @@ +# shortcut bindings to app and directions set $mod Mod4 +set $term alacritty +set $menu tofi-drun | xargs swaymsg exec -- set $left h set $down j set $up k set $right l -set $term alacritty -set $menu tofi-drun | xargs swaymsg exec -- - # autostart exec copyq --start-server @@ -20,259 +20,155 @@ exec sleep 7s && amixer -c 0 set Front unmute exec sleep 7s && amixer -c 1 set Front unmute -### Output configuration -# -# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) +# display & bg config +# you can get the names of your outputs by running: swaymsg -t get_outputs +output DP-2 position 1920 0 mode 2560x1440@144Hz +output HDMI-A-1 position 0 360 mode 1920x1080@60Hz output * bg /home/nikita/Pictures/wallpapers/nord-street.png fill -# -# Example configuration: -# - output DP-2 position 1920 0 mode 2560x1440@144Hz - output HDMI-A-1 position 0 360 mode 1920x1080@60Hz -# -# You can get the names of your outputs by running: swaymsg -t get_outputs -### Idle configuration -# -# Example configuration: -# -# exec swayidle -w \ -# timeout 300 'swaylock -f -c 000000' \ -# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ -# before-sleep 'swaylock -f -c 000000' -# -# This will lock your screen after 300 seconds of inactivity, then turn off -# your displays after another 300 seconds, and turn your screens back on when -# resumed. It will also lock your screen before your computer goes to sleep. - -### Input configuration -# - input "1133:16505:Logitech_G_Pro" { - pointer_accel 0 - accel_profile "flat" - } - input type:keyboard { - repeat_rate 35 - repeat_delay 500 - xkb_layout us,ru - xkb_options grp:lalt_lshift_toggle,caps:escape +# input configuration +# you can get the names of your inputs by running: swaymsg -t get_inputs +# read `man 5 sway-input` for more information about this section. +input "1133:16505:Logitech_G_Pro" { + pointer_accel 0 + accel_profile "flat" +} +input type:keyboard { + repeat_rate 35 + repeat_delay 500 + xkb_layout us,ru + xkb_options grp:lalt_lshift_toggle,caps:escape } -# -# You can get the names of your inputs by running: swaymsg -t get_inputs -# Read `man 5 sway-input` for more information about this section. -### Key bindings +# key bindings +# start a terminal +bindsym --to-code $mod+Return exec $term - # Start a terminal - bindsym --to-code $mod+Return exec $term +# kill focused window +bindsym --to-code $mod+Shift+q kill - # Kill focused window - bindsym --to-code $mod+Shift+q kill +# start your launcher +bindsym --to-code $mod+d exec $menu - # Start your launcher - bindsym --to-code $mod+d exec $menu +# app shortcuts +bindsym --to-code $mod+b exec librewolf +bindsym --to-code $mod+m exec $term -e ncmpcpp +bindsym --to-code $mod+e exec $term -e neomutt +bindsym --to-code $mod+n exec $term -e newsboat - # App shortcuts - bindsym --to-code $mod+b exec librewolf - bindsym --to-code $mod+m exec $term -e ncmpcpp - bindsym --to-code $mod+e exec $term -e neomutt - bindsym --to-code $mod+n exec $term -e newsboat - # powermenu - bindsym --to-code $mod+SHIFT+BackSpace exec ~/.config/tofi/powermenu.sh +# powermenu +bindsym --to-code $mod+SHIFT+BackSpace exec ~/.config/tofi/powermenu.sh +# drag floating windows by holding down $mod and left mouse button. +# resize them with right mouse button + $mod. +floating_modifier $mod normal + +# reload the configuration file +bindsym --to-code $mod+Shift+r reload + +# exit sway (logs you out of your wayland session) +bindsym --to-code $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' - # Drag floating windows by holding down $mod and left mouse button. - # Resize them with right mouse button + $mod. - # Despite the name, also works for non-floating windows. - # Change normal to inverse to use left mouse button for resizing and right - # mouse button for dragging. - floating_modifier $mod normal +# style - # Reload the configuration file - bindsym --to-code $mod+Shift+r reload +gaps outer 15 +gaps inner 10 - # Exit sway (logs you out of your Wayland session) - bindsym --to-code $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' +default_border pixel 2 +client.focused #7e9cd8 #7e9cd8 #ffffff #7e9cd8 #7e9cd8 +client.unfocused #1f1f28 #1f1f28 #888888 #1f1f28 #1f1f28 +client.urgent #1f1f28 #1f1f28 #888888 #1f1f28 #1f1f28 +client.focused_inactive #1f1f28 #1f1f28 #888888 #1f1f28 #1f1f28 -### Style +# move mouse to focused window/workspace +mouse_warping output +focus_wrapping workspace - gaps outer 15 - gaps inner 10 +# hide cursor after ... time +seat * hide_cursor 5000 - default_border pixel 2 +# move your focus around +bindsym --to-code $mod+$left focus left +bindsym --to-code $mod+$down focus down +bindsym --to-code $mod+$up focus up +bindsym --to-code $mod+$right focus right - client.focused #7e9cd8 #7e9cd8 #ffffff #7e9cd8 #7e9cd8 - client.unfocused #1f1f28 #1f1f28 #888888 #1f1f28 #1f1f28 - client.urgent #1f1f28 #1f1f28 #888888 #1f1f28 #1f1f28 - client.focused_inactive #1f1f28 #1f1f28 #888888 #1f1f28 #1f1f28 +# move the focused window with the same, but add shift +bindsym --to-code $mod+Shift+$left move left +bindsym --to-code $mod+Shift+$down move down +bindsym --to-code $mod+Shift+$up move up +bindsym --to-code $mod+Shift+$right move right -# -# Moving around: -# - mouse_warping output - focus_wrapping workspace +# switch focus to other monitor +bindsym --to-code $mod+i focus output left - seat * hide_cursor 5000 - # seat * hide_cursor when-typing enable - # Move your focus around - bindsym --to-code $mod+$left focus left - bindsym --to-code $mod+$down focus down - bindsym --to-code $mod+$up focus up - bindsym --to-code $mod+$right focus right +# workspaces +# change focus between workspaces +bindsym --to-code --no-warn $mod+1 exec "swaysome focus 1" +bindsym --to-code --no-warn $mod+2 exec "swaysome focus 2" +bindsym --to-code --no-warn $mod+3 exec "swaysome focus 3" +bindsym --to-code --no-warn $mod+4 exec "swaysome focus 4" +bindsym --to-code --no-warn $mod+5 exec "swaysome focus 5" +bindsym --to-code --no-warn $mod+6 exec "swaysome focus 6" +bindsym --to-code --no-warn $mod+7 exec "swaysome focus 7" +bindsym --to-code --no-warn $mod+8 exec "swaysome focus 8" +bindsym --to-code --no-warn $mod+9 exec "swaysome focus 9" +bindsym --to-code --no-warn $mod+0 exec "swaysome focus 0" - # Move the focused window with the same, but add Shift - bindsym --to-code $mod+Shift+$left move left - # bindsym --to-code $mod+Shift+$down move down - # bindsym --to-code $mod+Shift+$up move up - bindsym --to-code $mod+Shift+$right move right +# move containers between workspaces +bindsym --to-code --no-warn $mod+Shift+1 exec "swaysome move 1" +bindsym --to-code --no-warn $mod+Shift+2 exec "swaysome move 2" +bindsym --to-code --no-warn $mod+Shift+3 exec "swaysome move 3" +bindsym --to-code --no-warn $mod+Shift+4 exec "swaysome move 4" +bindsym --to-code --no-warn $mod+Shift+5 exec "swaysome move 5" +bindsym --to-code --no-warn $mod+Shift+6 exec "swaysome move 6" +bindsym --to-code --no-warn $mod+Shift+7 exec "swaysome move 7" +bindsym --to-code --no-warn $mod+Shift+8 exec "swaysome move 8" +bindsym --to-code --no-warn $mod+Shift+9 exec "swaysome move 9" +bindsym --to-code --no-warn $mod+Shift+0 exec "swaysome move 0" - bindsym --to-code $mod+i focus output left -# -# Workspaces: -# - # Change focus between workspaces - bindsym --to-code --no-warn $mod+1 exec "swaysome focus 1" - bindsym --to-code --no-warn $mod+2 exec "swaysome focus 2" - bindsym --to-code --no-warn $mod+3 exec "swaysome focus 3" - bindsym --to-code --no-warn $mod+4 exec "swaysome focus 4" - bindsym --to-code --no-warn $mod+5 exec "swaysome focus 5" - bindsym --to-code --no-warn $mod+6 exec "swaysome focus 6" - bindsym --to-code --no-warn $mod+7 exec "swaysome focus 7" - bindsym --to-code --no-warn $mod+8 exec "swaysome focus 8" - bindsym --to-code --no-warn $mod+9 exec "swaysome focus 9" - bindsym --to-code --no-warn $mod+0 exec "swaysome focus 0" +# Move focused container to other monitor +bindsym --to-code $mod+p exec "swaysome next-output" - # Move containers between workspaces - bindsym --to-code --no-warn $mod+Shift+1 exec "swaysome move 1" - bindsym --to-code --no-warn $mod+Shift+2 exec "swaysome move 2" - bindsym --to-code --no-warn $mod+Shift+3 exec "swaysome move 3" - bindsym --to-code --no-warn $mod+Shift+4 exec "swaysome move 4" - bindsym --to-code --no-warn $mod+Shift+5 exec "swaysome move 5" - bindsym --to-code --no-warn $mod+Shift+6 exec "swaysome move 6" - bindsym --to-code --no-warn $mod+Shift+7 exec "swaysome move 7" - bindsym --to-code --no-warn $mod+Shift+8 exec "swaysome move 8" - bindsym --to-code --no-warn $mod+Shift+9 exec "swaysome move 9" - bindsym --to-code --no-warn $mod+Shift+0 exec "swaysome move 0" +# init workspaces for every screen plugin +exec "swaysome init 1" - # Focus workspace groups - bindsym --to-code $mod+Alt+1 exec "swaysome focus-group 1" - bindsym --to-code $mod+Alt+2 exec "swaysome focus-group 2" - bindsym --to-code $mod+Alt+3 exec "swaysome focus-group 3" - bindsym --to-code $mod+Alt+4 exec "swaysome focus-group 4" - bindsym --to-code $mod+Alt+5 exec "swaysome focus-group 5" - bindsym --to-code $mod+Alt+6 exec "swaysome focus-group 6" - bindsym --to-code $mod+Alt+7 exec "swaysome focus-group 7" - bindsym --to-code $mod+Alt+8 exec "swaysome focus-group 8" - bindsym --to-code $mod+Alt+9 exec "swaysome focus-group 9" - bindsym --to-code $mod+Alt+0 exec "swaysome focus-group 0" +# make the current focus fullscreen +bindsym --to-code $mod+f fullscreen - # Move containers to other workspace groups - bindsym --to-code $mod+Alt+Shift+1 exec "swaysome move-to-group 1" - bindsym --to-code $mod+Alt+Shift+2 exec "swaysome move-to-group 2" - bindsym --to-code $mod+Alt+Shift+3 exec "swaysome move-to-group 3" - bindsym --to-code $mod+Alt+Shift+4 exec "swaysome move-to-group 4" - bindsym --to-code $mod+Alt+Shift+5 exec "swaysome move-to-group 5" - bindsym --to-code $mod+Alt+Shift+6 exec "swaysome move-to-group 6" - bindsym --to-code $mod+Alt+Shift+7 exec "swaysome move-to-group 7" - bindsym --to-code $mod+Alt+Shift+8 exec "swaysome move-to-group 8" - bindsym --to-code $mod+Alt+Shift+9 exec "swaysome move-to-group 9" - bindsym --to-code $mod+Alt+Shift+0 exec "swaysome move-to-group 0" +# toggle the current focus between tiling and floating mode +bindsym --to-code $mod+Shift+space floating toggle -# Move focused container to next output - bindsym --to-code $mod+p exec "swaysome next-output" -# Move focused container to previous output - # bindsym --to-code $mod+Shift+o exec "swaysome prev-output" +# swap focus between the tiling area and the floating area +bindsym --to-code $mod+space focus mode_toggle -# Move focused workspace group to next output - # bindsym --to-code $mod+Alt+o exec "swaysome workspace-group-next-output" -# Move focused workspace group to previous output - # bindsym --to-code $mod+Alt+Shift+o exec "swaysome workspace-group-prev-output" +# resizing containers +bindsym --to-code $mod+y resize shrink width 5ppt +bindsym --to-code $mod+o resize grow width 5ppt +# bindsym --to-code $up resize shrink height 10px +# bindsym --to-code $right resize grow width 10px -# Init workspaces for every screen - exec "swaysome init 1" +# utilities +# special keys to adjust volume via pulseaudio +bindsym --to-code $mod+Shift+bracketleft exec playerctl -p mpd volume 0.05- +bindsym --to-code $mod+Shift+bracketright exec playerctl -p mpd volume 0.05+ - # Switch to workspace - # bindsym --to-code $mod+1 workspace number 1 - # bindsym --to-code $mod+2 workspace number 2 - # bindsym --to-code $mod+3 workspace number 3 - # bindsym --to-code $mod+4 workspace number 4 - # bindsym --to-code $mod+5 workspace number 5 - # bindsym --to-code $mod+6 workspace number 6 - # bindsym --to-code $mod+7 workspace number 7 - # bindsym --to-code $mod+8 workspace number 8 - # bindsym --to-code $mod+9 workspace number 9 - # Move focused container to workspace - # bindsym --to-code $mod+Shift+1 move container to workspace number 1 - # bindsym --to-code $mod+Shift+2 move container to workspace number 2 - # bindsym --to-code $mod+Shift+3 move container to workspace number 3 - # bindsym --to-code $mod+Shift+4 move container to workspace number 4 - # bindsym --to-code $mod+Shift+5 move container to workspace number 5 - # bindsym --to-code $mod+Shift+6 move container to workspace number 6 - # bindsym --to-code $mod+Shift+7 move container to workspace number 7 - # bindsym --to-code $mod+Shift+8 move container to workspace number 8 - # bindsym --to-code $mod+Shift+9 move container to workspace number 9 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. -# -# Layout stuff: -# - # You can "split" the current object of your focus with - # $mod+b or $mod+v, for horizontal and vertical splits - # respectively. - # bindsym --to-code $mod+b splith - # bindsym --to-code $mod+v splitv - - # Switch the current container between different layout styles - # bindsym --to-code $mod+s layout stacking - # bindsym --to-code $mod+w layout tabbed - # bindsym --to-code $mod+e layout toggle split - - # Make the current focus fullscreen - bindsym --to-code $mod+f fullscreen - - # Toggle the current focus between tiling and floating mode - bindsym --to-code $mod+Shift+space floating toggle - - # Swap focus between the tiling area and the floating area - bindsym --to-code $mod+space focus mode_toggle - -# Resizing containers: -# - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym --to-code $mod+y resize shrink width 5ppt - bindsym --to-code $mod+o resize grow width 5ppt - # bindsym --to-code $up resize shrink height 10px - # bindsym --to-code $right resize grow width 10px - -# -# Utilities: -# - # Special keys to adjust volume via PulseAudio - bindsym --to-code $mod+Shift+bracketleft exec playerctl -p mpd volume 0.05- - bindsym --to-code $mod+Shift+bracketright exec playerctl -p mpd volume 0.05+ - - bindsym --to-code --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle - bindsym --to-code --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% - bindsym --to-code --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% - bindsym --to-code --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle - bindsym --to-code --locked XF86AudioPlay exec playerctl play-pause - bindsym --to-code --locked XF86AudioPause exec playerctl play-pause - bindsym --to-code --locked XF86AudioNext exec playerctl next - bindsym --to-code --locked XF86AudioPrev exec playerctl previous - # Special keys to adjust brightness via brightnessctl - bindsym --to-code --locked XF86MonBrightnessDown exec brightnessctl set 5%- - bindsym --to-code --locked XF86MonBrightnessUp exec brightnessctl set 5%+ - # Special key to take a screenshot with grim - bindsym --to-code $mod+Shift+s exec grim -g "$(slurp)" - | wl-copy - # bindsym --to-code $mod+Shift+s exec XDG_CURRENT_DESKTOP=sway flameshot gui; +bindsym --to-code --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle +bindsym --to-code --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% +bindsym --to-code --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% +bindsym --to-code --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle +bindsym --to-code --locked XF86AudioPlay exec playerctl play-pause +bindsym --to-code --locked XF86AudioPause exec playerctl play-pause +bindsym --to-code --locked XF86AudioNext exec playerctl next +bindsym --to-code --locked XF86AudioPrev exec playerctl previous +# special key to take a screenshot with grim +bindsym --to-code $mod+Shift+s exec grim -g "$(slurp)" - | wl-copy +# try to make DP-2 monitor primary for xwayland apps exec xrandr --output DP-2 --primary exec_always sleep 10s && xrandr --output DP-2 --primary