dotfiles/.config/sway/config

365 lines
15 KiB
Text
Raw Normal View History

2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# Variables
# ------------------------------------------------------------------------------
set $mod Mod4
2020-09-19 18:02:15 +02:00
set $mod2 Mod1
set $color_bg_focused #2F343F
set $color_bg_unfocused #383C4A
set $color_fg_unfocused #D3DAE3
set $color_fg_focused #FFFFFF
set $color_indicator #4DADD4
set $color_warn #F27835
set $color_error #FC4138
2020-09-14 10:18:35 +02:00
2020-09-19 13:41:22 +02:00
set $font_family Roboto
set $font_size 14
set $gtk_font_size 11
set $font $font_family $font_size
2020-09-21 20:18:50 +02:00
set $background $HOME/.local/share/backgrounds/mountain.jpg
# ------------------------------------------------------------------------------
# Device specific include
# ------------------------------------------------------------------------------
# This needs to set the following variables and additionally can override any of the above variables:
2020-10-26 13:56:28 +01:00
# $primary_monitor_identifier - Identifier of the primary monitor
# $primary_monitor_resolution - Resolution for the primary monitor
# $primary_monitor_scale - Scale factor for thr primary monitor
# $secondary_monitor_identifier - Identifier of the primary monitor
# $secondary_monitor_x_offset - X offset for the secondary monitor
include config.local
2020-09-14 10:18:35 +02:00
2020-09-14 12:40:03 +02:00
# ------------------------------------------------------------------------------
# Inputs
# ------------------------------------------------------------------------------
2020-09-14 10:18:35 +02:00
input * {
xkb_layout "de,de,us"
xkb_variant "nodeadkeys,,"
2020-09-22 00:53:18 +02:00
xkb_options grp:shifts_toggle
2020-09-14 10:18:35 +02:00
}
2020-09-15 12:37:21 +02:00
input 9011:26214:ydotoold_virtual_device {
xkb_layout "us"
xkb_variant ""
}
2020-09-14 12:40:03 +02:00
input 9456:311:Metadot_-_Das_Keyboard_Das_Keyboard_Model_S xkb_model "pc105"
2021-08-21 15:46:33 +02:00
input 1386:212:Wacom_Bamboo_Pen_Pen map_to_output $secondary_monitor_identifier
2020-09-14 12:40:03 +02:00
# ------------------------------------------------------------------------------
# Outputs
# ------------------------------------------------------------------------------
output $primary_monitor_identifier pos 0 0 res $primary_monitor_resolution scale $primary_monitor_scale
2021-03-20 18:30:51 +01:00
output $secondary_monitor_identifier pos $secondary_monitor_x_offset $secondary_monitor_y_offset res $secondary_monitor_resolution scale $secondary_monitor_scale
output $tertiary_monitor_identifier pos $tertiary_monitor_x_offset $tertiary_monitor_y_offset res $tertiary_monitor_resolution scale $tertiary_monitor_scale transform 90
2020-09-14 15:53:25 +02:00
2021-03-20 18:30:51 +01:00
output $primary_monitor_identifier bg $primary_monitor_background fill
output $secondary_monitor_identifier bg $secondary_monitor_background fill
output $tertiary_monitor_identifier bg $tertiary_monitor_background fill
2020-09-14 10:18:35 +02:00
2021-03-02 15:14:26 +01:00
bindswitch --reload --locked lid:on output $internal_monitor_identifier disable
bindswitch --reload --locked lid:off output $internal_monitor_identifier enable
2020-09-14 15:53:25 +02:00
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# Font
# ------------------------------------------------------------------------------
font pango:$font
# ------------------------------------------------------------------------------
# Launcher
# ------------------------------------------------------------------------------
2020-11-16 18:01:17 +01:00
bindsym $mod+d exec rofi -show drun
bindsym $mod+x exec rofi -show run
2022-08-15 12:59:09 +02:00
bindsym $mod+o exec rofi-pass
2023-07-21 22:34:01 +02:00
bindsym $mod+p exec rofi-ykman type
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# Window management
# ------------------------------------------------------------------------------
# terminate the active window
bindsym $mod+Shift+q kill
# floating modifier
floating_modifier $mod
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+odiaeresis focus right
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+odiaeresis 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
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
2020-09-17 17:48:06 +02:00
bindsym $mod+y focus child
2020-09-14 10:18:35 +02:00
# resize window (you can also use the mouse for that)
mode resize {
2020-09-14 10:18:35 +02:00
# 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 k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym odiaeresis 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
bindsym $mod+r mode default
2020-09-14 10:18:35 +02:00
}
bindsym $mod+r mode resize
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# Workspaces
# ------------------------------------------------------------------------------
2020-09-15 05:33:42 +02:00
set $workspace1 "1:"
set $workspace2 "2:"
set $workspace3 "3:"
2024-09-09 16:29:51 +02:00
set $workspace4 "4:"
2020-09-15 05:33:42 +02:00
set $workspace5 "5:"
2024-09-09 16:29:51 +02:00
set $workspace6 "6:"
set $workspace7 "7:"
set $workspace8 "8:"
set $workspace9 "9:"
set $workspace10 "10:"
2020-09-14 10:18:35 +02:00
# switch to workspace
bindsym $mod+1 workspace $workspace1
bindsym $mod+2 workspace $workspace2
bindsym $mod+3 workspace $workspace3
bindsym $mod+4 workspace $workspace4
bindsym $mod+5 workspace $workspace5
bindsym $mod+6 workspace $workspace6
bindsym $mod+7 workspace $workspace7
bindsym $mod+8 workspace $workspace8
bindsym $mod+9 workspace $workspace9
bindsym $mod+0 workspace $workspace10
2020-09-14 10:18:35 +02:00
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $workspace1
bindsym $mod+Shift+2 move container to workspace $workspace2
bindsym $mod+Shift+3 move container to workspace $workspace3
bindsym $mod+Shift+4 move container to workspace $workspace4
bindsym $mod+Shift+5 move container to workspace $workspace5
bindsym $mod+Shift+6 move container to workspace $workspace6
bindsym $mod+Shift+7 move container to workspace $workspace7
bindsym $mod+Shift+8 move container to workspace $workspace8
bindsym $mod+Shift+9 move container to workspace $workspace9
bindsym $mod+Shift+0 move container to workspace $workspace10
2020-09-14 10:18:35 +02:00
# move current workspace to output
2020-09-19 18:02:15 +02:00
bindsym $mod+$mod2+Right move workspace to output right
2024-09-09 16:29:51 +02:00
bindsym $mod+$mod2+Left move workspace to output left
2024-12-06 10:23:40 +01:00
bindsym $mod+$mod2+Up move workspace to output up
bindsym $mod+$mod2+Down move workspace to output down
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
2020-09-14 11:40:38 +02:00
# sway management
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# reload the configuration file
bindsym $mod+Shift+c reload
2020-09-14 11:40:38 +02:00
# exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec "swaynag -f 'pango:$font' -t warning -m 'sway beenden?' -b 'Ja' 'swaymsg exit'"
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# Program shortcuts
# ------------------------------------------------------------------------------
2021-05-12 18:14:09 +02:00
bindsym $mod+Return exec alacritty
2024-09-09 16:29:51 +02:00
bindsym $mod+c exec chromium
bindsym $mod+b exec librewolf
bindsym $mod+t exec thunderbird
bindsym $mod+g exec code
2024-12-08 20:05:32 +01:00
bindsym $mod+z exec zeditor
bindsym $mod+u exec thunar
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# Audio shortcuts
# ------------------------------------------------------------------------------
2024-09-09 16:29:51 +02:00
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pactl get-default-sink) +1%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pactl get-default-sink) -1%
2023-08-14 17:12:10 +02:00
bindsym Shift+XF86AudioRaiseVolume exec pactl set-source-volume $(pactl get-default-source) +1%
bindsym Shift+XF86AudioLowerVolume exec pactl set-source-volume $(pactl get-default-source) -1%
2023-08-10 22:11:29 +02:00
2022-10-17 09:54:17 +02:00
bindsym XF86AudioMicMute exec $HOME/.local/bin/toggle-default-audio --source
2024-09-09 16:29:51 +02:00
bindsym XF86AudioMute exec $HOME/.local/bin/toggle-default-audio --sink
bindsym $mod+m exec $HOME/.local/bin/toggle-default-audio --source
bindsym $mod+Shift+m exec $HOME/.local/bin/toggle-default-audio --sink
2022-10-17 09:54:17 +02:00
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# Video shortcuts
# ------------------------------------------------------------------------------
2024-09-09 16:29:51 +02:00
bindsym XF86MonBrightnessUp exec xbacklight +5
2020-10-06 04:13:34 +02:00
bindsym XF86MonBrightnessDown exec xbacklight -5
2020-09-15 05:33:42 +02:00
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
2020-09-19 23:50:12 +02:00
# Assignment of programs to workspaces
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
2024-09-09 16:29:51 +02:00
assign [app_id="^Alacritty$"] $workspace1
assign [class="^code-oss$"] $workspace2
assign [app_id="^code-oss$"] $workspace2
assign [app_id="^dev.zed.Zed$"] $workspace2
assign [class="^VSCodium$"] $workspace2
assign [app_id="^codium$"] $workspace2
assign [class="^jetbrains-idea$"] $workspace2
assign [class="^jetbrains-idea-ce$"] $workspace2
assign [class="^firefox$"] $workspace3
assign [app_id="^firefox$"] $workspace3
assign [app_id="^LibreWolf$"] $workspace3
assign [class="^Thunderbird$"] $workspace4
assign [app_id="^thunderbird$"] $workspace4
assign [app_id="^thunderbird-beta$"] $workspace4
assign [app_id="^thunar$"] $workspace5
assign [class="^Chromium$"] $workspace7
assign [app_id="^chromium$"] $workspace7
assign [class="^Slack$"] $workspace8
assign [app_id="^Slack$"] $workspace8
assign [class="^Element$"] $workspace8
assign [class="^discord$"] $workspace8
assign [class="^Aseprite$"] $workspace9
assign [app_id="^@joplin/app-desktop$"] $workspace9
2024-01-04 14:21:27 +01:00
2020-09-22 00:53:18 +02:00
# ------------------------------------------------------------------------------
# Floating windows
# ------------------------------------------------------------------------------
for_window [app_id="xfce-polkit"] floating enable
2024-01-10 09:34:09 +01:00
for_window [title="^Password Required - Mozilla Thunderbird$"] floating enable
2020-09-22 00:53:18 +02:00
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
2020-09-19 18:02:15 +02:00
# Screenshot shortcuts
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
2024-09-09 16:29:51 +02:00
bindsym Print exec $HOME/.local/bin/swaygrim --focused-output
bindsym Shift+Print exec $HOME/.local/bin/swaygrim --focused-window
bindsym $mod+Print exec $HOME/.local/bin/swaygrim --output
2020-09-19 18:02:15 +02:00
bindsym $mod+Shift+Print exec $HOME/.local/bin/swaygrim --window
2024-09-09 16:29:51 +02:00
bindsym $mod2+Print exec $HOME/.local/bin/swaygrim --manual
2020-09-19 18:02:15 +02:00
bindsym $mod+$mod2+Print exec $HOME/.local/bin/swaygrim --all
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# Lockscreen
# ------------------------------------------------------------------------------
2020-09-19 18:02:15 +02:00
exec swayidle -w \
2024-01-30 15:30:25 +01:00
timeout 30 'makoctl -a away' \
2020-09-14 15:53:25 +02:00
timeout 300 'swaylock -f' \
timeout 600 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \
2024-01-30 15:30:25 +01:00
resume 'makoctl -r away' \
2020-09-14 15:53:25 +02:00
before-sleep 'swaylock -f'
2020-09-19 18:02:15 +02:00
bindsym control+$mod2+l exec swaylock
2020-09-14 15:53:25 +02:00
2020-09-14 10:18:35 +02:00
# ------------------------------------------------------------------------------
# Window theming
# ------------------------------------------------------------------------------
# border background text indicator
client.focused $color_bg_focused $color_bg_focused $color_fg_focused $color_bg_focused
client.focused_inactive $color_bg_unfocused $color_bg_unfocused $color_fg_unfocused $color_bg_unfocused
client.unfocused $color_bg_unfocused $color_bg_unfocused $color_fg_unfocused $color_bg_unfocused
client.urgent $color_bg_unfocused $color_warn $color_fg_focused $color_bg_unfocused
2020-09-14 10:18:35 +02:00
# do not display edge borders
2020-09-19 18:02:15 +02:00
#hide_edge_borders both
2020-09-14 10:18:35 +02:00
# do not display a titlebar in tiled layout
2020-09-19 18:02:15 +02:00
default_border none
2020-09-14 10:18:35 +02:00
# gaps
gaps inner 10
# gaps outer -5
# ------------------------------------------------------------------------------
# Workspace bar
# ------------------------------------------------------------------------------
bar {
2020-09-15 05:33:42 +02:00
swaybar_command waybar
2020-09-14 10:18:35 +02:00
}
2020-09-16 16:26:09 +02:00
2020-09-17 02:09:58 +02:00
# ------------------------------------------------------------------------------
# Applets
# ------------------------------------------------------------------------------
2020-09-19 18:02:15 +02:00
exec nm-applet --indicator
2020-09-16 16:26:09 +02:00
2020-09-17 02:09:58 +02:00
# ------------------------------------------------------------------------------
# Notification daemon
# ------------------------------------------------------------------------------
2020-09-19 18:02:15 +02:00
exec /usr/bin/mako
2020-09-16 16:26:09 +02:00
2020-09-22 00:53:18 +02:00
# ------------------------------------------------------------------------------
# Polkit
# ------------------------------------------------------------------------------
exec /usr/lib/xfce-polkit/xfce-polkit
2020-09-16 16:26:09 +02:00
# ------------------------------------------------------------------------------
# GTK3
# ------------------------------------------------------------------------------
2020-09-17 02:09:58 +02:00
set $gnome-schema org.gnome.desktop.interface
2020-09-16 16:26:09 +02:00
exec_always {
gsettings set $gnome-schema gtk-theme 'Arc-Darker'
2024-12-06 12:46:59 +01:00
gsettings set $gnome-schema icon-theme 'Arc'
2020-09-16 16:26:09 +02:00
gsettings set $gnome-schema cursor-theme 'Adwaita'
2020-09-19 13:41:22 +02:00
gsettings set $gnome-schema font-name '$font_family $gtk_font_size'
2020-09-16 16:26:09 +02:00
}
2021-04-27 13:16:46 +02:00
# ------------------------------------------------------------------------------
# xdg-desktop-portal
# ------------------------------------------------------------------------------
exec $HOME/.local/bin/fix_xdg_desktop_portal_sharing.sh
include /etc/sway/config.d/50-systemd-user.conf
2024-12-06 10:23:40 +01:00
# ------------------------------------------------------------------------------
# Clipboard Manager
# ------------------------------------------------------------------------------
exec wl-paste --type text --watch cliphist store
exec wl-paste --type image --watch cliphist store
bindsym $mod+Shift+v exec cliphist list | rofi -dmenu | cliphist decode | wl-copy