dotfiles/.config/sway/config

238 lines
7.5 KiB
Plaintext
Raw Normal View History

2024-02-26 13:15:20 +01:00
set $mod Mod4
# at some point check https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway
# Configure displays
2024-05-31 21:18:20 +02:00
# swaymsg -t get_outputs
set $primary DP-2
set $secondary DVI-D-1
2024-02-26 13:15:20 +01:00
set $laptop eDP-1
2024-05-31 21:18:20 +02:00
# output $laptop pos 1920 135 scale 2
output $primary pos 1080 135
output $secondary pos 0 0 transform 90
# output DP-7 pos 0 0 scale 2
# output DP-8 pos 0 0 scale 2
# output HDMI-A-1 scale 2
2024-02-26 13:15:20 +01:00
# output * bg ~/.dotfiles/backgrounds/samuel-ferrara-uOi3lg8fGl4-unsplash.jpg fill
# output * bg ~/.dotfiles/backgrounds/scott-rodgerson-lRtzEExP0H8-unsplash.jpg fill
bindsym $mod+Shift+s exec ~/.bin/toggle-display $primary
input type:keyboard {
xkb_layout de,de
xkb_options ctrl:nocaps
}
font pango:Iosevka ss08 7
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# kill focused window
bindsym $mod+Shift+q kill
bindsym $mod+Shift+x exit
bindsym $mod+Shift+r reload
# bindsym $mod+r resize
bindsym $mod+r mode "resize"
2024-02-26 13:15:20 +01:00
bindsym $mod+Shift+Return exec kitty
2024-05-19 13:43:28 +02:00
# bindsym $mod+Shift+Return exec emacsclient -c --eval '(vterm)'
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
2024-02-26 13:15:20 +01:00
# use vim keys for window movement
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
2024-05-31 21:18:20 +02:00
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
2024-02-26 13:15:20 +01:00
# move workspace
bindsym $mod+Mod1+h move workspace to output left
bindsym $mod+Mod1+l move workspace to output right
bindsym $mod+Mod1+Left move workspace to output left
bindsym $mod+Mod1+Right move workspace to output right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left 30 px
bindsym $mod+Shift+Down move down 30 px
bindsym $mod+Shift+Up move up 30 px
bindsym $mod+Shift+Right move right 30 px
bindsym $mod+Shift+h move left 30 px
bindsym $mod+Shift+j move down 30 px
bindsym $mod+Shift+k move up 30 px
bindsym $mod+Shift+l move right 30 px
# split in horizontal orientation
# bindsym $mod+s split h
2024-02-26 13:15:20 +01:00
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# toggle tiling / floating
bindsym $mod+Shift+f floating toggle
# toggle pinned floating window
bindsym $mod+Shift+p sticky toggle
# change focus between tiling / floating windows
bindsym $mod+Control+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# App launcher
bindsym $mod+space exec fuzzel -w 50 -x 8 -y 8 -r 3 -b 232635ff -t A6Accdff -s A6Accdff -S 232635ff -C c792eacc -m c792eacc -f "Iosevka ss08:weight=light:size=11" --no-fuzzy --icon-theme="Papirus-Dark"
# Set defaults
default_orientation horizontal
workspace_layout tabbed
# Configure gaps and borders
default_border pixel 1
2024-05-19 13:43:28 +02:00
gaps outer 2
2024-02-26 13:15:20 +01:00
gaps inner 4
2024-05-31 21:18:20 +02:00
# smart_borders off
2024-02-26 13:15:20 +01:00
hide_edge_borders --i3 none
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws0 "chat"
set $ws1 "1 "
set $ws2 "2 "
set $ws3 "3 "
set $ws4 "4 "
set $ws5 "5 "
# unlock-alt - keepassxc defaults here
set $ws8 "8 "
# linux - less often used terminals for background processes
set $ws9 "9 "
# find application info with =swaymsg -t get_tree=
assign [app_id="firefox"] $ws1
2024-05-19 13:43:28 +02:00
# assign [class="Emacs"] $ws2
assign [title="^DebugScreen"] $ws3
assign [app_id="org.keepassxc.KeePassXC"] $ws8
2024-02-26 13:15:20 +01:00
# Move specific workspaces to outputs
workspace $ws0 output $laptop
workspace $ws1 output $primary $laptop
workspace $ws2 output $primary $laptop
2024-05-31 21:18:20 +02:00
workspace $ws3 output $secondary $laptop
workspace $ws4 output $secondary $laptop
workspace $ws5 output $secondary $laptop
2024-02-26 13:15:20 +01:00
# Switch to dev workspace by default
#workspace $ws1
# Switch to workspace
bindsym $mod+grave workspace $ws0
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
2024-05-19 13:43:28 +02:00
# bindsym $mod+0 workspace 10
2024-02-26 13:15:20 +01:00
# Move focused container to workspace
bindsym $mod+Shift+grave move container to workspace $ws0
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
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 $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
2024-05-19 13:43:28 +02:00
# bindsym $mod+Shift+0 move container to workspace 10
2024-02-26 13:15:20 +01:00
# Bind hotkeys for brightness and volume
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
bindsym --locked $mod+p exec playerctl play-pause
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym i resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
2024-02-26 13:15:20 +01:00
# Screenshots
bindsym Print exec grimshot --notify save output
bindsym Alt+Print exec grimshot --notify save area
# Style the UI
client.focused #c792eacc #232635dd #ffffffff #ffffffff #c792eacc
client.unfocused #c792eacc #1c1f2bef #ffffffff #ffffffff #c792eacc
# Set up screen locking
set $lock 'swaylock -f -i ~/.dotfiles/backgrounds/samuel-ferrara-uOi3lg8fGl4-unsplash.jpg -s fill --font "Iosevka ss08" --indicator-idle-visible'
exec swayidle -w \
timeout 900 $lock \
timeout 960 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \
before-sleep $lock
bindsym Ctrl+Shift+L exec $lock
2024-02-26 13:15:20 +01:00
# Window rules
#for_window [title="Firefox — Sharing Indicator"] kill
for_window [title=".* - mpv$"] floating enable, sticky enable
# Autostart applications
2024-06-05 22:20:51 +02:00
exec waybar --config ~/.config/waybar/$(hostname).config
2024-02-26 13:15:20 +01:00
exec mako --border-radius=2 --font="Iosevka ss08 10" --max-visible=5 --outer-margin=5 --margin=3 --background="#1c1f26" --border-color="#89AAEB" --border-size=1 --default-timeout=7000
exec nm-applet --indicator
exec udiskie -t
exec gammastep-indicator -l 50.8643:12.1124 -t 6500:3500 -b 1.0:0.7
2024-05-19 13:43:28 +02:00
exec emacs --daemon && emacsclient -c
exec firefox
exec keepassxc
2024-02-26 13:15:20 +01:00
# Set GNOME settings (requires "glib:bin" in Guix)
exec gsettings set org.gnome.desktop.interface gtk-theme "Matcha-dark-azul"
exec gsettings set org.gnome.desktop.interface icon-theme "Papirus-Dark"
exec gsettings set org.gnome.desktop.interface font-name "Iosevka Aile 11"
# Update DBUS activation records to ensure Flatpak apps work
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway