dotfiles/dot_config/sway/config

459 lines
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
set $base00 #2E3440
set $base01 #3B4252
set $base02 #434C5E
set $base03 #4C566A
set $base04 #D8DEE9
set $base05 #E5E9F0
set $base06 #ECEFF4
set $base07 #8FBCBB
set $base08 #88C0D0
set $base09 #81A1C1
set $base0A #5E81AC
set $base0B #BF616A
set $base0C #D08770
set $base0D #EBCB8B
set $base0E #A3BE8C
set $base0F #B48EAD
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term alacritty
# 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
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
output * bg ~/Pictures/Wallpapers/christmas-gingerbread.jpg fill
output $display_dell transform 270 pos 0 0
output $display_lg mode 3440x1440@49.987000Hz pos 1200 290
output $display_coworking pos 2560 0
#
# Example configuration:
#
# output HDMI-A-1 resolution 1920x1080 position 1920,0
#
# You can get the names of your outputs by running: swaymsg -t get_outputs
### 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:45074:MX_Master_Mouse" {
natural_scroll enabled
accel_profile flat
}
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 "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
}
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 amixer -D pulse sset Master 1%+
bindsym $mod+Prior exec amixer -D pulse sset Master 1%+
bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 1%-
bindsym $mod+Next exec amixer -D pulse sset Master 1%-
bindsym XF86AudioMute exec amixer -D pulse set Master toggle
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym XF86AudioNext exec mpc next
bindsym XF86AudioPrev exec mpc prev
bindsym XF86AudioPlay exec mpc toggle
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 pixel 4, resize set width 25 ppt height 100 ppt, 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
# 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 [title="terminal_scratchpad"] move scratchpad, fullscreen disable, border pixel 4, 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="nm-tray"] floating enable
for_window [app_id="org.gnome.Nautilus"] floating enable
for_window [title="Firefox - Sharing Indicator"] floating enable
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 (r)ofi (p)ass (s)wytch (w) firefox (a)lfaview"
mode $mode_run {
# 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 rofi-pass; mode "default";
bindsym s exec swytch; mode "default"
bindsym tab exec swytch; mode "default"
bindsym a mode $mode_alfaview
bindsym w exec firefox; mode "default";
bindsym $mod+w exec chromium-browser; mode "default";
bindsym e exec em -c; mode "default"
bindsym $mod+e exec emacs; mode "default"
bindsym f exec screenshot-folder; mode "default"
bindsym $mod+f exec nautilus; mode "default"
bindsym c exec clipman pick --tool=rofi --histpath="~/.local/share/clipman-primary.json"; mode "default"
bindsym o exec pavucontrol; mode "default"
bindsym v exec alacritty --class 'vm' --command 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"
}
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
}
}
include /etc/sway/config.d/*
# Currently inactive see https://github.com/swaywm/sway/issues/4649
#exec wl-paste -t text --watch clipman store
# See https://github.com/swaywm/sway/wiki#after-unplugging-an-external-display-some-applications-appear-too-large-on-my-hidpi-screen
exec xrdb -load ~/.Xresources
exec autostart