364 lines
15 KiB
Text
364 lines
15 KiB
Text
# ------------------------------------------------------------------------------
|
||
# Variables
|
||
# ------------------------------------------------------------------------------
|
||
set $mod Mod4
|
||
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
|
||
|
||
set $font_family Roboto
|
||
set $font_size 14
|
||
set $gtk_font_size 11
|
||
set $font $font_family $font_size
|
||
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:
|
||
# $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
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Inputs
|
||
# ------------------------------------------------------------------------------
|
||
input * {
|
||
xkb_layout "de,de,us"
|
||
xkb_variant "nodeadkeys,,"
|
||
xkb_options grp:shifts_toggle
|
||
}
|
||
|
||
input 9011:26214:ydotoold_virtual_device {
|
||
xkb_layout "us"
|
||
xkb_variant ""
|
||
}
|
||
|
||
input 9456:311:Metadot_-_Das_Keyboard_Das_Keyboard_Model_S xkb_model "pc105"
|
||
input 1386:212:Wacom_Bamboo_Pen_Pen map_to_output $secondary_monitor_identifier
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Outputs
|
||
# ------------------------------------------------------------------------------
|
||
output $primary_monitor_identifier pos 0 0 res $primary_monitor_resolution scale $primary_monitor_scale
|
||
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
|
||
|
||
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
|
||
|
||
bindswitch --reload --locked lid:on output $internal_monitor_identifier disable
|
||
bindswitch --reload --locked lid:off output $internal_monitor_identifier enable
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Font
|
||
# ------------------------------------------------------------------------------
|
||
font pango:$font
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Launcher
|
||
# ------------------------------------------------------------------------------
|
||
bindsym $mod+d exec rofi -show drun
|
||
bindsym $mod+x exec rofi -show run
|
||
bindsym $mod+o exec rofi-pass
|
||
bindsym $mod+p exec rofi-ykman type
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 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
|
||
bindsym $mod+y focus child
|
||
|
||
# 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 window’s width.
|
||
# Pressing right will grow the window’s width.
|
||
# Pressing up will shrink the window’s height.
|
||
# Pressing down will grow the window’s 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
|
||
}
|
||
|
||
bindsym $mod+r mode resize
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Workspaces
|
||
# ------------------------------------------------------------------------------
|
||
set $workspace1 "1:"
|
||
set $workspace2 "2:"
|
||
set $workspace3 "3:"
|
||
set $workspace4 "4:"
|
||
set $workspace5 "5:"
|
||
set $workspace6 "6:"
|
||
set $workspace7 "7:"
|
||
set $workspace8 "8:"
|
||
set $workspace9 "9:"
|
||
set $workspace10 "10:"
|
||
|
||
# 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
|
||
|
||
# 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
|
||
|
||
# move current workspace to output
|
||
bindsym $mod+$mod2+Right move workspace to output right
|
||
bindsym $mod+$mod2+Left move workspace to output left
|
||
bindsym $mod+$mod2+Up move workspace to output up
|
||
bindsym $mod+$mod2+Down move workspace to output down
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# sway management
|
||
# ------------------------------------------------------------------------------
|
||
# reload the configuration file
|
||
bindsym $mod+Shift+c reload
|
||
|
||
# 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'"
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Program shortcuts
|
||
# ------------------------------------------------------------------------------
|
||
bindsym $mod+Return exec alacritty
|
||
bindsym $mod+c exec chromium
|
||
bindsym $mod+b exec librewolf
|
||
bindsym $mod+t exec thunderbird
|
||
bindsym $mod+g exec code
|
||
bindsym $mod+z exec zeditor
|
||
bindsym $mod+u exec thunar
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Audio shortcuts
|
||
# ------------------------------------------------------------------------------
|
||
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pactl get-default-sink) +1%
|
||
bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pactl get-default-sink) -1%
|
||
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%
|
||
|
||
bindsym XF86AudioMicMute exec $HOME/.local/bin/toggle-default-audio --source
|
||
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
|
||
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Video shortcuts
|
||
# ------------------------------------------------------------------------------
|
||
bindsym XF86MonBrightnessUp exec xbacklight +5
|
||
bindsym XF86MonBrightnessDown exec xbacklight -5
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Assignment of programs to workspaces
|
||
# ------------------------------------------------------------------------------
|
||
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
|
||
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Floating windows
|
||
# ------------------------------------------------------------------------------
|
||
for_window [app_id="xfce-polkit"] floating enable
|
||
for_window [title="^Password Required - Mozilla Thunderbird$"] floating enable
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Screenshot shortcuts
|
||
# ------------------------------------------------------------------------------
|
||
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
|
||
bindsym $mod+Shift+Print exec $HOME/.local/bin/swaygrim --window
|
||
bindsym $mod2+Print exec $HOME/.local/bin/swaygrim --manual
|
||
bindsym $mod+$mod2+Print exec $HOME/.local/bin/swaygrim --all
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Lockscreen
|
||
# ------------------------------------------------------------------------------
|
||
exec swayidle -w \
|
||
timeout 30 'makoctl -a away' \
|
||
timeout 300 'swaylock -f' \
|
||
timeout 600 'swaymsg "output * dpms off"' \
|
||
resume 'swaymsg "output * dpms on"' \
|
||
resume 'makoctl -r away' \
|
||
before-sleep 'swaylock -f'
|
||
|
||
bindsym control+$mod2+l exec swaylock
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 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
|
||
|
||
# do not display edge borders
|
||
#hide_edge_borders both
|
||
|
||
# do not display a titlebar in tiled layout
|
||
default_border none
|
||
|
||
# gaps
|
||
gaps inner 10
|
||
# gaps outer -5
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Workspace bar
|
||
# ------------------------------------------------------------------------------
|
||
bar {
|
||
swaybar_command waybar
|
||
}
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Applets
|
||
# ------------------------------------------------------------------------------
|
||
exec nm-applet --indicator
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Notification daemon
|
||
# ------------------------------------------------------------------------------
|
||
exec /usr/bin/mako
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# Polkit
|
||
# ------------------------------------------------------------------------------
|
||
exec /usr/lib/xfce-polkit/xfce-polkit
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# GTK3
|
||
# ------------------------------------------------------------------------------
|
||
set $gnome-schema org.gnome.desktop.interface
|
||
exec_always {
|
||
gsettings set $gnome-schema gtk-theme 'Arc-Darker'
|
||
gsettings set $gnome-schema icon-theme 'Arc'
|
||
gsettings set $gnome-schema cursor-theme 'Adwaita'
|
||
gsettings set $gnome-schema font-name '$font_family $gtk_font_size'
|
||
}
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# xdg-desktop-portal
|
||
# ------------------------------------------------------------------------------
|
||
exec $HOME/.local/bin/fix_xdg_desktop_portal_sharing.sh
|
||
include /etc/sway/config.d/50-systemd-user.conf
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 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
|