From 75dd586db53b95fab14130b34a72bb87e008a437 Mon Sep 17 00:00:00 2001 From: binaryDiv Date: Mon, 22 Aug 2022 23:25:05 +0200 Subject: [PATCH] [kanaya] i3 config: Merge local config with config from roxy --- _local/kanaya/.config/i3/config | 345 +++++++++++++++++--------- _local/kanaya/.config/i3status/config | 3 +- 2 files changed, 229 insertions(+), 119 deletions(-) diff --git a/_local/kanaya/.config/i3/config b/_local/kanaya/.config/i3/config index 4a17d30..c9edb98 100644 --- a/_local/kanaya/.config/i3/config +++ b/_local/kanaya/.config/i3/config @@ -13,9 +13,12 @@ set $mod Mod4 # ~~ Define output displays (primary, secondary monitor) -set $OUTPUT1 HDMI-A-0 +set $OUTPUT1 HDMI-A-1 set $OUTPUT2 DVI-D-0 +set $OUTPUT_LEFT HDMI-A-1 +set $OUTPUT_RIGHT DVI-D-0 + # GENERAL SETTINGS # ~~~~~~~~~~~~~~~~ @@ -26,12 +29,18 @@ floating_modifier $mod # ~~ No auto focussing via mouseover focus_follows_mouse no +# ~~ When switching to the currently focused workspace, switch to the previous one +workspace_auto_back_and_forth yes + # APPEARANCE # ~~~~~~~~~~ +# ~~ Hide window borders on workspaces with only one window +hide_edge_borders smart + # ~~ Define font -font pango:Liberation Sans 9.5 +font pango:Liberation Sans 11 # Alternative: Monospace font #font pango:DejaVu Sans Mono 9 @@ -87,17 +96,22 @@ bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcu # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~ Start a terminal -bindsym $mod+Return exec i3-sensible-terminal +bindsym $mod+Return exec sakura # ~~ Start a terminal in floating mode (works at least with mate-terminal, parameters may vary) for_window [window_role="floating"] floating enable -bindsym $mod+Shift+Return exec i3-sensible-terminal --window --role=floating +for_window [instance="kitty-floating"] floating enable +for_window [instance="sakura-floating"] floating enable +#bindsym $mod+Shift+Return exec mate-terminal --window --role=floating +#bindsym $mod+Shift+Return exec kitty --name=kitty-floating +bindsym $mod+Shift+Return exec sakura --name=sakura-floating -# ~~ Start application launcher (dmenu) -# Regular dmenu: -bindsym $mod+d exec dmenu_run -# This one only displays .desktop file applications -bindsym $mod+Shift+d exec --no-startup-id i3-dmenu-desktop +# ~~ Start application launcher +bindsym $mod+d exec rofi -show run +bindsym $mod+Shift+d exec rofi -show drun +bindsym $mod+w exec rofi -show window +bindsym $mod+c exec rofi -show calc +bindsym $mod+m exec rofi -show emoji # ~~ Kill focused window bindsym $mod+Shift+q kill @@ -147,12 +161,82 @@ bindsym $mod+space focus mode_toggle bindsym $mod+f fullscreen toggle # ~~ Define resize mode -mode "resize" { - # Resize window with [hjkl] - bindsym h resize shrink width 10 px or 10 ppt - bindsym j 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 +mode "move & resize" { + # Set move and resize rates + set $MOVE_NORMAL 40 px + set $MOVE_SLOW 10 px + set $MOVE_FAST 120 px + set $RESIZE_NORMAL 40 px or 5 ppt + set $RESIZE_SLOW 10 px or 1 ppt + set $RESIZE_FAST 120 px or 10 ppt + + # Change window focus with mod key (like in regular mode) + bindsym Mod1+h focus left + bindsym Mod1+j focus down + bindsym Mod1+k focus up + bindsym Mod1+l focus right + + # Move focused window with Alt + hjkl + bindsym $mod+h move left $MOVE_NORMAL + bindsym $mod+j move down $MOVE_NORMAL + bindsym $mod+k move up $MOVE_NORMAL + bindsym $mod+l move right $MOVE_NORMAL + + # Move focused window faster with Shift + Alt + hjkl + bindsym $mod+Shift+h move left $MOVE_FAST + bindsym $mod+Shift+j move down $MOVE_FAST + bindsym $mod+Shift+k move up $MOVE_FAST + bindsym $mod+Shift+l move right $MOVE_FAST + + # Move focused window slower with Ctrl + Alt + hjkl + bindsym $mod+Ctrl+h move left $MOVE_SLOW + bindsym $mod+Ctrl+j move down $MOVE_SLOW + bindsym $mod+Ctrl+k move up $MOVE_SLOW + bindsym $mod+Ctrl+l move right $MOVE_SLOW + + # Resize window with hjkl + bindsym h resize shrink width $RESIZE_NORMAL + bindsym j resize grow height $RESIZE_NORMAL + bindsym k resize shrink height $RESIZE_NORMAL + bindsym l resize grow width $RESIZE_NORMAL + + # Resize window faster with Shift + hjkl + bindsym Shift+h resize shrink width $RESIZE_FAST + bindsym Shift+j resize grow height $RESIZE_FAST + bindsym Shift+k resize shrink height $RESIZE_FAST + bindsym Shift+l resize grow width $RESIZE_FAST + + # Resize window more precisely with Ctrl + hjkl + bindsym Ctrl+h resize shrink width $RESIZE_SLOW + bindsym Ctrl+j resize grow height $RESIZE_SLOW + bindsym Ctrl+k resize shrink height $RESIZE_SLOW + bindsym Ctrl+l resize grow width $RESIZE_SLOW + + # Set defined sizes for windows + bindsym 1 resize set width 25 ppt + bindsym 2 resize set width 33 ppt + bindsym 3 resize set width 50 ppt + bindsym 4 resize set width 67 ppt + bindsym 5 resize set width 75 ppt + bindsym 6 resize set width 100 ppt + + bindsym Shift+1 resize set height 25 ppt + bindsym Shift+2 resize set height 33 ppt + bindsym Shift+3 resize set height 50 ppt + bindsym Shift+4 resize set height 67 ppt + bindsym Shift+5 resize set height 75 ppt + bindsym Shift+6 resize set height 100 ppt + + bindsym $mod+1 resize set 25 ppt 25 ppt; move position center + bindsym $mod+2 resize set 33 ppt 33 ppt; move position center + bindsym $mod+3 resize set 50 ppt 50 ppt; move position center + bindsym $mod+4 resize set 67 ppt 67 ppt; move position center + bindsym $mod+5 resize set 75 ppt 75 ppt; move position center + bindsym $mod+6 resize set 95 ppt 95 ppt; move position center + + # Center window with c + bindsym c move position center + bindsym $mod+c move position center # Exit to default mode bindsym Return mode "default" @@ -160,36 +244,37 @@ mode "resize" { bindsym $mod+r mode "default" } -bindsym $mod+r mode "resize" +bindsym $mod+r mode "move & resize" # WORKSPACE AND DISPLAY MANAGEMENT # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~ Define workspace names -set $WS0 0 -set $WS1 "1: www" -set $WS2 2 -set $WS3 3 -set $WS4 4 -set $WS5 5 -set $WS6 6 -set $WS7 7 -set $WS8 8 -set $WS9 9 +set $WS0 0 +set $WS1 "1: www" +set $WS2 2 +set $WS3 3 +set $WS4 4 +set $WS5 5 +set $WS6 6 +set $WS7 7 +set $WS8 8 +set $WS9 9 set $WS10 "10: mail" set $WS11 "11: music" +set $WS12 "12: chat" # Alternative set of workspaces for secondary monitor -set $WSf1 "F1: com" -set $WSf2 "F2" -set $WSf3 "F3" -set $WSf4 "F4" -set $WSf5 "F5" -set $WSf6 "F6" -set $WSf7 "F7" -set $WSf8 "F8" -set $WSf9 "F9" +set $WSf1 "F1" +set $WSf2 "F2" +set $WSf3 "F3" +set $WSf4 "F4" +set $WSf5 "F5" +set $WSf6 "F6" +set $WSf7 "F7" +set $WSf8 "F8" +set $WSf9 "F9" set $WSf10 "F10" set $WSf11 "F11" set $WSf12 "F12" @@ -197,104 +282,106 @@ set $WSf12 "F12" # Specialized workspaces set $WS_www $WS1 set $WS_mail $WS10 -set $WS_music $WS11 -set $WS_com $WSf1 +set $WS_com $WS12 # ~~ Assign workspaces to displays -workspace $WS1 output $OUTPUT1 -workspace $WS2 output $OUTPUT1 -workspace $WS3 output $OUTPUT1 -workspace $WS4 output $OUTPUT1 -workspace $WS5 output $OUTPUT1 -workspace $WS6 output $OUTPUT1 -workspace $WS7 output $OUTPUT1 -workspace $WS8 output $OUTPUT1 -workspace $WS9 output $OUTPUT1 -workspace $WS10 output $OUTPUT1 -workspace $WS11 output $OUTPUT1 -workspace $WS0 output $OUTPUT1 +workspace $WS1 output primary +workspace $WS2 output primary +workspace $WS3 output primary +workspace $WS4 output primary +workspace $WS5 output primary +workspace $WS6 output primary +workspace $WS7 output primary +workspace $WS8 output primary +workspace $WS9 output primary +workspace $WS10 output primary +workspace $WS11 output primary +workspace $WS0 output primary -workspace $WSf1 output $OUTPUT2 -workspace $WSf2 output $OUTPUT2 -workspace $WSf3 output $OUTPUT2 -workspace $WSf4 output $OUTPUT2 -workspace $WSf5 output $OUTPUT2 -workspace $WSf6 output $OUTPUT2 -workspace $WSf7 output $OUTPUT2 -workspace $WSf8 output $OUTPUT2 -workspace $WSf9 output $OUTPUT2 -workspace $WSf10 output $OUTPUT2 -workspace $WSf11 output $OUTPUT2 -workspace $WSf12 output $OUTPUT2 +# Special case: Chat workspace +workspace $WS12 output $OUTPUT_RIGHT + +workspace $WSf1 output $OUTPUT_RIGHT +workspace $WSf2 output $OUTPUT_RIGHT +workspace $WSf3 output $OUTPUT_RIGHT +workspace $WSf4 output $OUTPUT_RIGHT +workspace $WSf5 output $OUTPUT_RIGHT +workspace $WSf6 output $OUTPUT_RIGHT +workspace $WSf7 output $OUTPUT_RIGHT +workspace $WSf8 output $OUTPUT_RIGHT +workspace $WSf9 output $OUTPUT_RIGHT +workspace $WSf10 output $OUTPUT_RIGHT +workspace $WSf11 output $OUTPUT_RIGHT +workspace $WSf12 output $OUTPUT_RIGHT # ~~ Keybindings to switch workspaces bindsym $mod+grave workspace number $WS0 -bindsym $mod+1 workspace number $WS1 -bindsym $mod+2 workspace number $WS2 -bindsym $mod+3 workspace number $WS3 -bindsym $mod+4 workspace number $WS4 -bindsym $mod+5 workspace number $WS5 -bindsym $mod+6 workspace number $WS6 -bindsym $mod+7 workspace number $WS7 -bindsym $mod+8 workspace number $WS8 -bindsym $mod+9 workspace number $WS9 -bindsym $mod+0 workspace number $WS10 +bindsym $mod+1 workspace number $WS1 +bindsym $mod+2 workspace number $WS2 +bindsym $mod+3 workspace number $WS3 +bindsym $mod+4 workspace number $WS4 +bindsym $mod+5 workspace number $WS5 +bindsym $mod+6 workspace number $WS6 +bindsym $mod+7 workspace number $WS7 +bindsym $mod+8 workspace number $WS8 +bindsym $mod+9 workspace number $WS9 +bindsym $mod+0 workspace number $WS10 bindsym $mod+minus workspace number $WS11 +bindsym $mod+equal workspace number $WS12 -bindsym $mod+equal workspace $WSf1 -bindsym $mod+F1 workspace $WSf1 -bindsym $mod+F2 workspace $WSf2 -bindsym $mod+F3 workspace $WSf3 -bindsym $mod+F4 workspace $WSf4 -bindsym $mod+F5 workspace $WSf5 -bindsym $mod+F6 workspace $WSf6 -bindsym $mod+F7 workspace $WSf7 -bindsym $mod+F8 workspace $WSf8 -bindsym $mod+F9 workspace $WSf9 +bindsym $mod+F1 workspace $WSf1 +bindsym $mod+F2 workspace $WSf2 +bindsym $mod+F3 workspace $WSf3 +bindsym $mod+F4 workspace $WSf4 +bindsym $mod+F5 workspace $WSf5 +bindsym $mod+F6 workspace $WSf6 +bindsym $mod+F7 workspace $WSf7 +bindsym $mod+F8 workspace $WSf8 +bindsym $mod+F9 workspace $WSf9 bindsym $mod+F10 workspace $WSf10 bindsym $mod+F11 workspace $WSf11 bindsym $mod+F12 workspace $WSf12 # ~~ Keybindings to move focused container to workspaces -bindsym $mod+Shift+grave move container to workspace number $WS0; workspace $WS0 -bindsym $mod+Shift+1 move container to workspace number $WS1; workspace $WS1 -bindsym $mod+Shift+2 move container to workspace number $WS2; workspace $WS2 -bindsym $mod+Shift+3 move container to workspace number $WS3; workspace $WS3 -bindsym $mod+Shift+4 move container to workspace number $WS4; workspace $WS4 -bindsym $mod+Shift+5 move container to workspace number $WS5; workspace $WS5 -bindsym $mod+Shift+6 move container to workspace number $WS6; workspace $WS6 -bindsym $mod+Shift+7 move container to workspace number $WS7; workspace $WS7 -bindsym $mod+Shift+8 move container to workspace number $WS8; workspace $WS8 -bindsym $mod+Shift+9 move container to workspace number $WS9; workspace $WS9 -bindsym $mod+Shift+0 move container to workspace number $WS10; workspace $WS10 +bindsym $mod+Shift+grave move container to workspace number $WS0; workspace $WS0 +bindsym $mod+Shift+1 move container to workspace number $WS1; workspace $WS1 +bindsym $mod+Shift+2 move container to workspace number $WS2; workspace $WS2 +bindsym $mod+Shift+3 move container to workspace number $WS3; workspace $WS3 +bindsym $mod+Shift+4 move container to workspace number $WS4; workspace $WS4 +bindsym $mod+Shift+5 move container to workspace number $WS5; workspace $WS5 +bindsym $mod+Shift+6 move container to workspace number $WS6; workspace $WS6 +bindsym $mod+Shift+7 move container to workspace number $WS7; workspace $WS7 +bindsym $mod+Shift+8 move container to workspace number $WS8; workspace $WS8 +bindsym $mod+Shift+9 move container to workspace number $WS9; workspace $WS9 +bindsym $mod+Shift+0 move container to workspace number $WS10; workspace $WS10 bindsym $mod+Shift+minus move container to workspace number $WS11; workspace $WS11 +bindsym $mod+Shift+equal move container to workspace number $WS12; workspace $WS12 -bindsym $mod+Shift+equal move container to workspace $WSf1; workspace $WSf1 -bindsym $mod+Shift+F1 move container to workspace $WSf1; workspace $WSf1 -bindsym $mod+Shift+F2 move container to workspace $WSf2; workspace $WSf2 -bindsym $mod+Shift+F3 move container to workspace $WSf3; workspace $WSf3 -bindsym $mod+Shift+F4 move container to workspace $WSf4; workspace $WSf4 -bindsym $mod+Shift+F5 move container to workspace $WSf5; workspace $WSf5 -bindsym $mod+Shift+F6 move container to workspace $WSf6; workspace $WSf6 -bindsym $mod+Shift+F7 move container to workspace $WSf7; workspace $WSf7 -bindsym $mod+Shift+F8 move container to workspace $WSf8; workspace $WSf8 -bindsym $mod+Shift+F9 move container to workspace $WSf9; workspace $WSf9 +bindsym $mod+Shift+F1 move container to workspace $WSf1; workspace $WSf1 +bindsym $mod+Shift+F2 move container to workspace $WSf2; workspace $WSf2 +bindsym $mod+Shift+F3 move container to workspace $WSf3; workspace $WSf3 +bindsym $mod+Shift+F4 move container to workspace $WSf4; workspace $WSf4 +bindsym $mod+Shift+F5 move container to workspace $WSf5; workspace $WSf5 +bindsym $mod+Shift+F6 move container to workspace $WSf6; workspace $WSf6 +bindsym $mod+Shift+F7 move container to workspace $WSf7; workspace $WSf7 +bindsym $mod+Shift+F8 move container to workspace $WSf8; workspace $WSf8 +bindsym $mod+Shift+F9 move container to workspace $WSf9; workspace $WSf9 bindsym $mod+Shift+F10 move container to workspace $WSf10; workspace $WSf10 bindsym $mod+Shift+F11 move container to workspace $WSf11; workspace $WSf11 bindsym $mod+Shift+F12 move container to workspace $WSf12; workspace $WSf12 # ~~ Keybindings for moving focus/containers/workspaces between monitors -bindsym $mod+comma focus output $OUTPUT3 +bindsym $mod+comma focus output $OUTPUT_LEFT bindsym $mod+period focus output primary -bindsym $mod+slash focus output $OUTPUT2 +bindsym $mod+slash focus output $OUTPUT_RIGHT -bindsym $mod+Shift+comma move container to output $OUTPUT3; focus output $OUTPUT3 -bindsym $mod+Shift+period move container to output primary; focus output primary -bindsym $mod+Shift+slash move container to output $OUTPUT2; focus output $OUTPUT2 +bindsym $mod+Shift+comma move container to output $OUTPUT_LEFT; focus output $OUTPUT_LEFT +bindsym $mod+Shift+period move container to output primary; focus output primary +bindsym $mod+Shift+slash move container to output $OUTPUT_RIGHT; focus output $OUTPUT_RIGHT -bindsym Control+$mod+comma move workspace to output $OUTPUT3 +bindsym Control+$mod+comma move workspace to output $OUTPUT_LEFT bindsym Control+$mod+period move workspace to output primary -bindsym Control+$mod+slash move workspace to output $OUTPUT2 +bindsym Control+$mod+slash move workspace to output $OUTPUT_RIGHT # ~~ Other workspace related keybindings bindsym $mod+Tab workspace back_and_forth @@ -303,27 +390,37 @@ bindsym $mod+Tab workspace back_and_forth # APP-SPECIFIC WINDOW RULES # ~~~~~~~~~~~~~~~~~~~~~~~~~ -# ~~ Make windows on workspace F1 (messengers) floating by default -for_window [workspace=$WSf1] floating enable +# ~~ Make windows on "com" workspace floating by default +for_window [workspace=$WS_com] floating enable # ~~ Waterfox, Firefox assign [class="^(Water|Fire)fox$"] number $WS_www for_window [class="^(Water|Fire)fox$"] layout tabbed +# TODO: use "workspace_layout" tabbed for workspace 1? + # ~~ Thunderbird assign [class="^Thunderbird$"] number $WS_mail for_window [class="^Thunderbird$"] layout tabbed # ~~ Telegram -assign [class="^TelegramDesktop$"] output $OUTPUT2 +#assign [class="^TelegramDesktop$"] output $OUTPUT2 assign [class="^TelegramDesktop$"] number $WS_com for_window [class="^TelegramDesktop$" title="^Telegram"] floating enable # ~~ Gajim -assign [class="^Gajim$"] output $OUTPUT2 +#assign [class="^Gajim$"] output $OUTPUT2 assign [class="^Gajim$"] number $WS_com for_window [class="^Gajim$"] floating enable +# ~~ Zulip +assign [class="^Zulip$"] number $WS_com +for_window [class="^Zulip$"] floating enable + +# ~~ Discord +assign [class="^discord$"] number $WS_com +for_window [class="^discord$"] floating enable + # ~~ VS Code for_window [class="^code-oss$"] layout tabbed @@ -334,15 +431,23 @@ for_window [class="^jetbrains-" title="Commit Changes"] floating disable # ~~ Steam for_window [class="^Steam$"] layout tabbed for_window [title="^Friends List"] floating disable +# TODO: use no_focus to avoid focus grabbing by the update window # ~~ Misc other apps for_window [class="^Pavucontrol$"] floating enable +# ~~ Flameshot +for_window [class="^flameshot$"] floating enable + # ~~ Dev projects for_window [class="^BigPileOfUncreativity$"] move to workspace $WSf12; workspace $WSf12 for_window [class="^ld49-unstable$"] floating enable for_window [class="^TileShenanigans$"] floating enable +# ~~ Others +# The Sims 4 Origin launcher +#for_window [class="^steam_app_1182480$"] floating enable + # DESKTOP AND APPLICATION KEYBINDINGS # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -357,9 +462,11 @@ bindsym XF86AudioLowerVolume exec --no-startup-id "volctl down" bindsym XF86AudioMute exec --no-startup-id "volctl mute toggle" # Bind volume control to Print/ScrollLock/Pause for TKL keyboard -bindsym Print exec --no-startup-id "volctl down" -bindsym Scroll_Lock exec --no-startup-id "volctl up" -bindsym Pause exec --no-startup-id "volctl mute toggle" +bindsym Print exec --no-startup-id "volctl down" +bindsym Shift+Print exec --no-startup-id "volctl down 1%" +bindsym Scroll_Lock exec --no-startup-id "volctl up" +bindsym Shift+Scroll_Lock exec --no-startup-id "volctl up 1%" +bindsym Pause exec --no-startup-id "volctl mute toggle" # ~~ Switch between display profiles bindsym $mod+p exec --no-startup-id "displayprofile auto" @@ -367,10 +474,10 @@ bindsym $mod+Scroll_Lock exec --no-startup-id "displayprofile auto" bindsym $mod+Ctrl+Scroll_Lock exec --no-startup-id "displayprofile default" # ~~ Password manager: passmenu -bindsym $mod+Shift+p exec --no-startup-id passmenu +bindsym $mod+Shift+p exec passrofi # ~~ Screenshot tool -bindsym $mod+Print exec "flameshot gui" +bindsym $mod+Print exec flameshot gui # INITIALIZATION AND AUTOSTART @@ -382,3 +489,5 @@ exec --no-startup-id sh /home/lexi/.xprofile.i3 # ~~ Run background applications exec --no-startup-id redshift-gtk #exec --no-startup-id nextcloud + +# TODO: Use exec_always to set keyboard layout etc.? diff --git a/_local/kanaya/.config/i3status/config b/_local/kanaya/.config/i3status/config index 225adc7..d8b31d6 100644 --- a/_local/kanaya/.config/i3status/config +++ b/_local/kanaya/.config/i3status/config @@ -54,7 +54,8 @@ cpu_temperature 0 { format = "%degrees °C" format_above_threshold = "🔥 %degrees °C" max_threshold = 70 - path = "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp1_input" + #path = "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp1_input" + path = "/sys/class/thermal/thermal_zone2/temp" } # ~~ CPU average load