diff --git a/home/.config/sway/config b/home/.config/sway/config new file mode 100644 index 0000000..b11db8e --- /dev/null +++ b/home/.config/sway/config @@ -0,0 +1,172 @@ +# vim: set ts=4 sw=4 sts=4: +set $mod Mod4 + +set $left h +set $down j +set $up k +set $right l + +set $term alacritty + +# Symlink to the current wallpaper +set $wallpaper $HOME/.config/sway/wallpaper + +set $menu dmenu-wl_path | dmenu-wl -nb "#002b36" -nf "#839496" -sb "#859900" -sf "#073642" | xargs swaymsg exec -- + +# Outputs +output * bg $wallpaper fill + +# FIXME: maybe use kanshi +output eDP-1 resolution 1920x1080 position 0,424 +output "Dell Inc. DELL U2410 F525M0A104NL" resolution 1920x1200 position 1920,0 + +# Inputs +input type:keyboard { + xkb_layout de + xkb_options compose:caps + xkb_numlock enable +} + +# Idle +exec swayidle -w \ + timeout 300 "swaylock -f -i $wallpaper" \ + timeout 300 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on"' \ + before-sleep "swaylock -f -i $wallpaper" + +# Key bindings +# Basics +bindsym $mod+Return exec $term +bindsym $mod+Shift+c kill +bindsym $mod+r exec $menu +floating_modifier $mod normal +bindsym $mod+Control+r reload +bindsym $mod+Shift+q 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' + +# Focus +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right + +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# Moving +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right move right + +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 +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 + +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 + +# open next window as (vertical/horizontal) split +bindsym $mod+b splith +bindsym $mod+v splitv + +# layouts +bindsym $mod+s layout stacking +bindsym $mod+t layout tabbed +bindsym $mod+e layout toggle split + +bindsym $mod+f fullscreen +bindsym $mod+Control+space floating toggle + +# switch focus to tiling/floating +bindsym $mod+space focus mode_toggle + +bindsym $mod+a focus parent + +# Scratchpad +bindsym $mod+Shift+minus move scratchpad +# show/hide/cycle scratchpad windows +bindsym $mod+minus scratchpad show + +# Resizing +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 + + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+d mode "resize" + +# Multimedia Keys +bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle +bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle +bindsym XF86MonBrightnessDown exec brightnessctl set 5%- +bindsym XF86MonBrightnessUp exec brightnessctl set +5% +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% +bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% + +bindsym $mod+y exec "swaylock -f -i $wallpaper" + +# Status Bar +bar { + swaybar_command waybar +} + +# Window rules (native: by app_id, xwayland legacy: by class) +assign [app_id="firefox"] 2 +#assign [class="Chromium"] 2 +assign [class="Claws-mail"] 3 +assign [class="Mumble"] 3 +assign [app_id="libreoffice-startcenter"] 4 +assign [app_id="net.sourceforge.gscan2pdf"] 4 +assign [app_id="org.pwmt.zathura"] 4 +assign [app_id="xournalpp"] 4 +assign [class="Anki"] 4 +assign [app_id="audacious"] 5 +assign [app_id="pavucontrol"] 5 +assign [app_id="darktable"] 8 +assign [app_id="org.inkscape.Inkscape"] 8 +assign [class="Blender"] 8 +assign [class="Gimp"] 8 +assign [class="krita"] 8 + +# Window borders +default_border pixel 1 + +client.focused "#93a1a1" "#073642" "#93a1a1" "#2aa198" +client.focused_inactive "#839496" "#073642" "#839496" "#2aa198" +client.unfocused "#839496" "#002b36" "#839496" "#2aa198" +client.urgent "#073642" "#dc322f" "#073642" "#2aa198" + +# Autostart +exec mako