set $mod Mod4 set $megamod Alt+Mod4 # Include machine-specific colours include ~/.config/sway/sway.`hostname`.config # Home row direction keys, like vim set $left h set $down j set $up k set $right l # Your preferred terminal emulator set $term foot # Your preferred application launcher # Note: it's recommended that you pass the final command to sway set $menu "my-rofi" set $display_laptop eDP-1 set $display_dell "Dell Inc. DELL U2415 7MT018BM1PGU" set $display_lg "Goldstar Company Ltd 34UM95 0x00000101" set $display_coworking "Dell Inc. DELL U2713H C6F0K34O095L" ### Output configuration output * bg ~/Pictures/Wallpapers/spring-grindelwald.jpg fill output $display_lg mode 3440x1440@49.987000Hz pos 1200 450 output $display_dell transform 90 pos 0 0 output $display_coworking pos 2560 0 ### Idle configuration # # Example configuration: # # exec swayidle -w \ # timeout 300 'swaylock -f -c 000000' \ # timeout 600 'swaymsg "output * dpms off"' \ # resume 'swaymsg "output * dpms on"' \ # before-sleep 'swaylock -f -c 000000' # # This will lock your screen after 300 seconds of inactivity, then turn off # your displays after another 300 seconds, and turn your screens back on when # resumed. It will also lock your screen before your computer goes to sleep. ### Input configuration # # Example configuration: # # input "2:14:SynPS/2_Synaptics_TouchPad" { # dwt enabled # tap enabled # natural_scroll enabled # middle_emulation enabled # } # # You can get the names of your inputs by running: swaymsg -t get_inputs # Read `man 5 sway-input` for more information about this section. input "2:7:SynPS/2_Synaptics_TouchPad" { tap enabled natural_scroll enabled } input "1133:16449:Logitech_MX_Master" { natural_scroll enabled } input "1133:16495:Logitech_MX_Ergo" { natural_scroll enabled scroll_button 276 scroll_method on_button_down } input "1739:0:Synaptics_TM3381-002" { tap enabled natural_scroll enabled } input "2:14:ETPS/2_Elantech_Touchpad" { tap enabled natural_scroll enabled } input "2:10:TPPS/2_IBM_TrackPoint" { tap enabled natural_scroll enabled } input "6780:405:SONiX_Evoluent_VerticalMouse_C" { natural_scroll enabled } input "2:14:ETPS/2_Elantech_TrackPoint" { tap enabled natural_scroll enabled } input "1390:269:ELECOM_TrackBall_Mouse_HUGE_TrackBall" { natural_scroll enabled scroll_button 279 scroll_method on_button_down accel_profile adaptive } input "65261:4871:ErgoDox_EZ_ErgoDox_EZ" { xkb_layout "de" xkb_numlock enabled } input "65261:4871:ErgoDox_EZ_ErgoDox_EZ_Keyboard" { xkb_layout "de" xkb_numlock enabled } input "1:1:AT_Translated_Set_2_keyboard" { xkb_layout "de" xkb_options caps:escape } input * xkb_layout "de" bindswitch --locked lid:on output $display_laptop disable bindswitch --locked lid:off output $display_laptop enable bindsym $mod+shift+b border toggle bindsym $mod+shift+s sticky toggle ### Key bindings # # Mine bindsym XF86AudioRaiseVolume exec pactl -- set-sink-volume @DEFAULT_SINK@ +1% bindsym $mod+Prior exec pactl -- set-sink-volume @DEFAULT_SINK@ +1% bindsym XF86AudioLowerVolume exec pactl -- set-sink-volume @DEFAULT_SINK@ -1% bindsym $mod+Next exec pactl -- set-sink-volume @DEFAULT_SINK@ -1% bindsym XF86AudioMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle bindsym XF86MonBrightnessUp exec brightnessctl set 5%+ bindsym XF86MonBrightnessDown exec brightnessctl set 5%- bindsym XF86AudioNext exec playerctl next bindsym XF86AudioPrev exec playerctl prev bindsym XF86AudioPlay exec playerctl play-pause bindsym Print exec screenshot bindsym shift+Print exec screenshot -s bindsym control+shift+Print exec dropshot bindsym control+alt+l exec blur-lock bindsym XF86Mail exec blur-lock bindsym XF86Calculator exec swytch bindsym $mod+shift+o move workspace to output right bindsym $mod+o focus output right # Basics: # # start a terminal bindsym $mod+Return exec $term # kill focused window bindsym $mod+q kill for_window [app_id="^launcher$"] floating enable, border none, move position center for_window [app_id="^wofi$"] floating enable, border none # 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 workspace '1 ' output $display_lg workspace '2 ' output $display_lg workspace '3 ' output $display_dell workspace '5 ' output $display_dell 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. # # 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 bindsym $mod+c move position center bindsym $mod+Alt+c move position center, resize set 80ppt 80ppt # 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 # 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+alt+space focus mode_toggle # move focus to the parent container bindsym $mod+a focus parent bindsym $mod+shift+a focus child # # 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 gh them. bindsym $mod+minus scratchpad show bindsym $mod+t scratchpad toggle for_window [title=".*"] title_format %title (class=%class app_id=%app_id instance=%instance shell=%shell) for_window [app_id="terminal_scratchpad"] move scratchpad, fullscreen disable, border pixel 4, move position center for_window [app_id="launcher"] border pixel 6, move position center bindsym $mod+u exec scratchpad # mako bindsym $mod+n exec makoctl dismiss bindsym $mod+Shift+n exec makoctl dismiss -a for_window [title="^worklogger.*$"] floating enable, border pixel 4, move position center for_window [title="^backup$"] floating enable, border pixel 4, move position center for_window [title="nm-tray"] floating enable for_window [app_id="org.gnome.Nautilus"] floating enable for_window [title="Firefox - Sharing Indicator"] floating enable for_window [title="^alfaview - Region share.*$"] floating enable, border pixel 1, move position center assign [instance="^.*\.yakshed\.org$"] "3 " assign [title=".*slack.*"] "3 " assign [instance="web.whatsapp.com"] "3 " assign [instance="inoreader.com"] "3 " assign [instance="wire"] "3 " assign [instance="signal"] "3 " # # 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" } set $mode_alfaview "Alfaview: (r) launch (s) share (k) stop share" set $mode_run "Run: (d) launcher (b)ookmarks (f)ile (c)lipboard (r)ofi (p)ass (s)snippets (w)eb (a)lfaview" set $mode_file "Files: (h)ome (s)creenshots (d)ocuments (l)astshot" # Modeless shortcuts bindsym $megamod+d exec $menu; bindsym $megamod+a mode $mode_alfaview; bindsym $megamod+f mode $mode_file; bindsym $megamod+w exec browser; bindsym $megamod+b exec $menu bookmarks; bindsym $megamod+p exec $menu gopass; bindsym $megamod+s exec $menu snippets; bindsym $megamod+e exec em; bindsym $megamod+c exec $menu clipboard; mode $mode_run { bindsym a mode $mode_alfaview bindsym f mode $mode_file; # start your launcher bindsym d exec $menu; mode "default"; bindsym $mod+d exec $menu; mode "default"; bindsym b exec $menu bookmarks; mode "default" bindsym $mod+shift+d exec $menu bookmarks; mode "default" bindsym r exec rofi -show run; mode "default"; bindsym p exec $menu gopass; mode "default"; bindsym s exec $menu snippets; mode "default" bindsym tab exec swytch; mode "default" bindsym w exec browser; mode "default"; bindsym $mod+w exec chromium-browser; mode "default"; bindsym e exec em; mode "default" bindsym $mod+f exec nautilus; mode "default" bindsym c exec $menu clipboard; mode "default" bindsym o exec pavucontrol; mode "default" bindsym v exec foot --id 'vm' zsh -c 'vm' # return to default mode bindsym Return mode "default" bindsym Escape mode "default" } mode $mode_alfaview { bindsym r exec "alfaview"; mode "default"; bindsym s exec "alfaview-screenshare"; mode "default"; bindsym k exec "alfaview-screenshare stop"; mode "default"; # return to default mode bindsym Return mode "default" bindsym Escape mode "default" } mode $mode_file { bindsym h exec browse-folder; mode "default" bindsym s exec browse-screenshot-folder; mode "default" bindsym l exec drag-last-screenshot; mode "default" bindsym d exec $menu documents; mode "default" # return to default mode bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+d mode $mode_run bindsym $mod+shift+d mode $mode_run bindsym $mod+r mode "resize" font pango:JetBrains Mono 10 default_border pixel 2 workspace_auto_back_and_forth yes smart_gaps on smart_borders on # class border backgr. text indic. child_border # Property Name Border BG Text Indicator Child Border client.focused $base05 $base0D $base00 $base0D $base0C client.focused_inactive $base01 $base01 $base05 $base03 $base01 client.unfocused $base01 $base00 $base05 $base01 $base01 client.urgent $base08 $base08 $base00 $base08 $base08 client.placeholder $base00 $base00 $base05 $base00 $base00 client.background $base07 bar { id main position top status_command i3status-rs ~/.config/i3status-main.toml font pango:JetBrains Mono, FontAwesome 12 output $display_laptop output $display_lg output $display_coworking colors { background $base00 separator $base01 statusline $base04 # State Border BG Text focused_workspace $base05 $base0D $base00 active_workspace $base05 $base03 $base00 inactive_workspace $base03 $base01 $base05 urgent_workspace $base08 $base08 $base00 binding_mode $base00 $base0A $base00 } } bar { id secondary position top status_command i3status-rs ~/.config/i3status-secondary.toml font pango:JetBrains Mono, FontAwesome 12 output $display_dell tray_output none colors { background $base00 separator $base01 statusline $base04 # State Border BG Text focused_workspace $base05 $base0D $base00 active_workspace $base05 $base03 $base00 inactive_workspace $base03 $base01 $base05 urgent_workspace $base08 $base08 $base00 binding_mode $base00 $base0A $base00 } } exec autostart