diff --git a/sway/config b/sway/config index 1a0ac69..111ad8b 100644 --- a/sway/config +++ b/sway/config @@ -9,196 +9,18 @@ set $up k set $right l # Your preferred terminal emulator set $term kitty - -################################################################################ -# Your preferred application launcher -# Note: it's recommended that you pass the final command to sway set $menu bash ~/.config/sway/scripts/menu set $gopass_menu bash ~/.config/sway/scripts/menu_gopass set $clipman_menu bash ~/.config/sway/scripts/menu_clipman set $printscreen bash ~/.config/sway/scripts/printscreen - -### Idle configuration -exec swayidle -w \ - timeout 285 'light -I && light -S 5' \ - resume 'light -O' \ - timeout 300 'swaylock-fancy' \ - timeout 600 'swaymsg "output * dpms off"' \ - resume 'swaymsg "output * dpms on"' \ - before-sleep 'swaylock-fancy' - - -### Support for picture in picture mode. There is currently no support for automatically positioning it in the bottom left corner as xdotool doesn't exist in wayland +# Support for picture in picture mode. +# There is currently no support for automatically positioning it in the bottom +# left corner as xdotool doesn't exist in wayland set $PIP floating enabled ; sticky enabled ; border pixel 0 for_window [class="mpv"] $PIP for_window [class="pip"] $PIP for_window [window_role="PictureInPicture"] $PIP -#for_window [class="pip"] sticky enabled - - -### Key bindings -# start a terminal -bindsym $mod+Return exec $term -# kill focused window -bindsym $mod+q kill -# start your launcher -bindsym $mod+space exec $menu -# gopass prompt -bindsym $mod+backslash exec $gopass_menu -# Clipboard management -bindsym $mod+Mod1+c exec $clipman_menu - -# 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 - -# reload the configuration file -bindsym $mod+Shift+c reload - -# exit sway (logs you out of your Wayland session) -bindsym $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' -# -# Moving around: -# -# Move your focus around -bindsym $mod+$left focus left -bindsym $mod+$down focus down -bindsym $mod+$up focus up -bindsym $mod+$right focus right -# or use $mod+[up|down|left|right] -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up -bindsym $mod+Right focus right - -# _move_ the focused window with the same, but add Shift -bindsym $mod+Shift+$left move left -bindsym $mod+Shift+$down move down -bindsym $mod+Shift+$up move up -bindsym $mod+Shift+$right move right -# ditto, with arrow keys -bindsym $mod+Shift+Left move left -bindsym $mod+Shift+Down move down -bindsym $mod+Shift+Up move up -bindsym $mod+Shift+Right move right -# -# Workspaces: -# -# switch to workspace -bindsym $mod+1 workspace 1 -bindsym $mod+2 workspace 2 -bindsym $mod+3 workspace 3 -bindsym $mod+4 workspace 4 -bindsym $mod+5 workspace 5 -bindsym $mod+6 workspace 6 -bindsym $mod+7 workspace 7 -bindsym $mod+8 workspace 8 -bindsym $mod+9 workspace 9 -bindsym $mod+0 workspace 10 -# move focused container to workspace -bindsym $mod+Shift+1 move container to workspace 1 -bindsym $mod+Shift+2 move container to workspace 2 -bindsym $mod+Shift+3 move container to workspace 3 -bindsym $mod+Shift+4 move container to workspace 4 -bindsym $mod+Shift+5 move container to workspace 5 -bindsym $mod+Shift+6 move container to workspace 6 -bindsym $mod+Shift+7 move container to workspace 7 -bindsym $mod+Shift+8 move container to workspace 8 -bindsym $mod+Shift+9 move container to workspace 9 -bindsym $mod+Shift+0 move container to workspace 10 -# Note: workspaces can have any name you want, not just numbers. -# We just use 1-10 as the default. -# - -#bindsym $mod+print exec file=~/Pictures/Screenshots/Screenshot-$(date '+%Y%m%d%H%M%S').mp4 \ -## && wf-recorder -g "$(slurp)" $file \ -## && wl-copy $file \ -## && notify-send -i $file "File copied to clipboard" -bindsym print exec $printscreen - -################################################################################ -# Layout stuff: -# - -# You can "split" the current object of your focus with -# $mod+b or $mod+v, for horizontal and vertical splits -# respectively. -bindsym $mod+b 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 - -# Make the current focus fullscreen -bindsym $mod+f fullscreen - -# Adding Sticky mode. This will keep a floating window on all screens. -bindsym $mod+Shift+s sticky toggle - -# Toggle the current focus between tiling and floating mode -bindsym $mod+Shift+space floating toggle - -# Swap focus between the tiling area and the floating area -bindsym $mod+d focus mode_toggle - -# move focus to the parent container -bindsym $mod+a focus parent -# -# Scratchpad: -# -# Sway has a "scratchpad", which is a bag of holding for windows. -# You can send windows there and get them back later. - -# Move the currently focused window to the scratchpad -bindsym $mod+Shift+minus move scratchpad - -# Show the next scratchpad window or hide the focused scratchpad window. -# If there are multiple scratchpad windows, this command cycles through them. -bindsym $mod+grave scratchpad show -# -# Resizing containers: -# -mode "resize" { - # 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 $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - # ditto, with arrow keys - 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 "default" -} -bindsym $mod+r mode "resize" - -# Media Keys -bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% && pamixer --get-volume > /tmp/wobpipe -bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% && pamixer --get-volume > /tmp/wobpipe -bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && ( `pamixer --get-mute` && echo 0 || pamixer --get-volume ) > /tmp/wobpipe -bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle -bindsym XF86MonBrightnessDown exec light -U 5 && light -G | cut -d'.' -f1 > /tmp/wobpipe -bindsym XF86MonBrightnessUp exec light -A 5 && light -G | cut -d'.' -f1 > /tmp/wobpipe -bindsym Pause exec playerctl play-pause -bindsym Shift+Pause exec bash ~/.config/rofi/scripts/media_controls - # Status Bar: bar { diff --git a/sway/config.d/autostart b/sway/config.d/autostart index 033b076..b259d62 100644 --- a/sway/config.d/autostart +++ b/sway/config.d/autostart @@ -12,6 +12,15 @@ exec mako # https://github.com/nwg-piotr/autotiling exec --no-startup-id autotiling +### Idle configuration +exec swayidle -w \ + timeout 285 'light -I && light -S 5' \ + resume 'light -O' \ + timeout 300 'swaylock-fancy' \ + timeout 600 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on"' \ + before-sleep 'swaylock-fancy' + # wob configuration exec_always { killall -q wob || true diff --git a/sway/config.d/keybinds b/sway/config.d/keybinds new file mode 100644 index 0000000..cfb9207 --- /dev/null +++ b/sway/config.d/keybinds @@ -0,0 +1,150 @@ +### Key bindings + +# start a terminal +bindsym $mod+Return exec $term +# kill focused window +bindsym $mod+q kill +# start your launcher +bindsym $mod+space exec $menu +# gopass prompt +bindsym $mod+backslash exec $gopass_menu +# Clipboard management +bindsym $mod+Mod1+c exec $clipman_menu + +# reload the configuration file +bindsym $mod+Shift+c reload + +# exit sway (logs you out of your Wayland session) +bindsym $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' + +# Move your focus around +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right +# or use $mod+[up|down|left|right] +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# _move_ the focused window with the same, but add Shift +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right move right +# ditto, with arrow keys +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# +# Workspaces: +# +# switch to workspace +bindsym $mod+1 workspace 1 +bindsym $mod+2 workspace 2 +bindsym $mod+3 workspace 3 +bindsym $mod+4 workspace 4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace 10 +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace 1 +bindsym $mod+Shift+2 move container to workspace 2 +bindsym $mod+Shift+3 move container to workspace 3 +bindsym $mod+Shift+4 move container to workspace 4 +bindsym $mod+Shift+5 move container to workspace 5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 +bindsym $mod+Shift+0 move container to workspace 10 + +#bindsym $mod+print exec file=~/Pictures/Screenshots/Screenshot-$(date '+%Y%m%d%H%M%S').mp4 \ +## && wf-recorder -g "$(slurp)" $file \ +## && wl-copy $file \ +## && notify-send -i $file "File copied to clipboard" +bindsym print exec $printscreen + +################################################################################ +# Layout stuff: +# + +# You can "split" the current object of your focus with +# $mod+b or $mod+v, for horizontal and vertical splits +# respectively. +bindsym $mod+b 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 + +# Make the current focus fullscreen +bindsym $mod+f fullscreen + +# Adding Sticky mode. This will keep a floating window on all screens. +bindsym $mod+Shift+s sticky toggle + +# Toggle the current focus between tiling and floating mode +bindsym $mod+Shift+space floating toggle + +# Swap focus between the tiling area and the floating area +bindsym $mod+d focus mode_toggle + +# move focus to the parent container +bindsym $mod+a focus parent + +# Move the currently focused window to the scratchpad +bindsym $mod+Shift+minus move scratchpad + +# Show the next scratchpad window or hide the focused scratchpad window. +# If there are multiple scratchpad windows, this command cycles through them. +bindsym $mod+grave scratchpad show + +# Resizing containers: +mode "resize" { + # left will shrink the containers width + bindsym $left resize shrink width 10px + # right will grow the containers width + bindsym $down resize grow height 10px + # up will shrink the containers height + bindsym $up resize shrink height 10px + # down will grow the containers height + bindsym $right resize grow width 10px + # ditto, with arrow keys + 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 "default" +} +bindsym $mod+r mode "resize" + +# Media/Function Keys +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% && pamixer --get-volume > /tmp/wobpipe +bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% && pamixer --get-volume > /tmp/wobpipe +bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && ( `pamixer --get-mute` && echo 0 || pamixer --get-volume ) > /tmp/wobpipe +bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle +bindsym XF86MonBrightnessDown exec light -U 5 && light -G | cut -d'.' -f1 > /tmp/wobpipe +bindsym XF86MonBrightnessUp exec light -A 5 && light -G | cut -d'.' -f1 > /tmp/wobpipe +bindsym Pause exec playerctl play-pause +bindsym Shift+Pause exec bash ~/.config/rofi/scripts/media_controls + +# 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