commit 388f3bb09eafac6132e4f8860d874b7b8587f4c5 Author: Quinn Date: Fri Dec 26 11:36:03 2025 +0100 Squashed 'etc/i3/' content from commit c59f51a git-subtree-dir: etc/i3 git-subtree-split: c59f51a0a982e36ace98586a866ce05172a2743e diff --git a/config b/config new file mode 100644 index 0000000..eec0f73 --- /dev/null +++ b/config @@ -0,0 +1,21 @@ +# define modifier keys +set $mod mod4 +set $alt mod1 + +# define workspaces +set $ws1 "1" +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" +set $ws11 "11" +set $ws12 "12" + +# include different modules (may not include definitions shared across multiple units) +include $XDG_CONFIG_HOME/i3/config.d/*.conf +exec --no-startup-id i3-msg 'workspace $ws1' diff --git a/config.d/applications.conf b/config.d/applications.conf new file mode 100644 index 0000000..a4939c0 --- /dev/null +++ b/config.d/applications.conf @@ -0,0 +1,28 @@ +# assign custom classes to specific workspaces +# to more easily assign apps to specific workspaces temporarily +assign [class="app-ws1"] $ws1 +assign [class="app-ws2"] $ws2 +assign [class="app-ws3"] $ws3 +assign [class="app-ws4"] $ws4 +assign [class="app-ws5"] $ws5 +assign [class="app-ws6"] $ws6 +assign [class="app-ws7"] $ws7 +assign [class="app-ws8"] $ws8 +assign [class="app-ws9"] $ws9 +assign [class="app-ws10"] $ws10 +assign [class="app-ws11"] $ws11 +assign [class="app-ws12"] $ws12 + +# assign applications to specific workspaces +# TODO: I'd prefer to switch to the designated workspace when it's launched in another workspace. +# assign [class="Spotify"] $ws8 +assign [class="vesktop"] $ws9 + +# autostart applications on a specific workspace +exec --no-startup-id i3-msg 'workspace $ws2; exec firefox --new-window' +exec --no-startup-id i3-msg 'workspace $ws1; exec kitty --single-instance' + +# autostart applications in general (usually always assigned to a workspace) +exec --no-startup-id flatpak run dev.vencord.Vesktop +# exec --no-startup-id spotify +exec --no-startup-id blueman-applet diff --git a/config.d/display.conf b/config.d/display.conf new file mode 100644 index 0000000..bc0b7f4 --- /dev/null +++ b/config.d/display.conf @@ -0,0 +1,36 @@ +# set the font +font pango:JetBrainsMonoNLNerdFont-Regular 10 + +# launch polybar +exec_always --no-startup-id $XDG_CONFIG_HOME/polybar/launch.sh + +# set the border width (and remove title bars) +default_orientation vertical +for_window [class=".*"] border pixel 1 +# for_window [floating] border pixel 5 +for_window [class=".*"] split toggle + +set $scr1 "eDP-1" +set $scr2 "HDMI-1" + +# set xrandr settings +exec_always xrandr --auto \ + --output $scr1 --dpi 96 --primary \ + --output $scr2 --dpi 96 --above $scr1 + +# attach each workspace to a specific screen +workspace $ws1 output $scr1 +workspace $ws2 output $scr1 +workspace $ws3 output $scr1 +workspace $ws4 output $scr1 +workspace $ws5 output $scr1 +workspace $ws6 output $scr1 +workspace $ws7 output $scr1 +workspace $ws8 output $scr1 +workspace $ws9 output $scr1 +workspace $ws10 output $scr2 +workspace $ws11 output $scr2 +workspace $ws12 output $scr2 + +# update the satellite render +exec_always ~/usr/bin/satallite-wp-update diff --git a/config.d/keymap.conf b/config.d/keymap.conf new file mode 100644 index 0000000..86ac3b0 --- /dev/null +++ b/config.d/keymap.conf @@ -0,0 +1,79 @@ +# +# OS-shortcuts +# +# workspace navigation +bindsym $mod+ctrl+h workspace prev +# TODO: multi-monitor setup using J/K? +bindsym $mod+ctrl+l workspace next + +# window navigation +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# move windows +bindsym $mod+shift+h move left +bindsym $mod+shift+j move down +bindsym $mod+shift+k move up +bindsym $mod+shift+l move right + +# closing windows (kill uses WM_DELETE, if available) (split is toggled for quasi alternating layout) +bindsym $mod+q split toggle kill +bindsym $alt+F4 split toggle kill + +# toggle between the different possible splits +bindsym $mod+F10 fullscreen toggle +bindsym $mod+e layout toggle split + +# system commands +bindsym $mod+shift+c reload +bindsym $mod+shift+r restart +bindsym $mod+shift+e exit +bindsym $mod+shift+f floating toggle +bindsym $mod+o exec --no-startup-id xlock -mode petri -delay 20000 -size 2 -ncolors 16 -saturation 0.4 -echokeys -echokey '*' -usefirst + +# +# XF86 key actions +# +# volume control +bindsym XF86AudioRaiseVolume exec --no-startup-id x-volume up +bindsym XF86AudioLowerVolume exec --no-startup-id x-volume down +bindsym XF86AudioMute exec --no-startup-id x-volume mute +bindsym XF86AudioMicMute exec --no-startup-id x-mic-mute + +# brightness control +bindsym XF86MonBrightnessUp exec --no-startup-id x-brightness-up +bindsym XF86MonBrightnessDown exec --no-startup-id x-brightness-down + +# media controls +bindsym XF86AudioPlay exec playerctl play-pause +bindsym XF86AudioPause exec playerctl play-pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous + +# app launchers and such +bindsym XF86Calculator exec --no-startup-id kitty -e 'calc' + +# +# apps +# +# pickers +bindsym $mod+F5 exec --no-startup-id rofi -show window +bindsym $mod+space exec --no-startup-id rofi -show drun +bindsym $mod+period exec --no-startup-id rofi -show emoji -config emoji + +# terminal +bindsym $mod+Return exec --no-startup-id kitty --single-instance +bindsym $mod+t exec --no-startup-id kitty --single-instance +bindsym $mod+backslash exec --no-startup-id kitty --single-instance + +# internet browser +bindsym $mod+b exec --no-startup-id firefox --new-window +bindsym $mod+shift+b exec --no-startup-id firefox --new-window --private-window + +# screenshot +bindsym $mod+shift+s exec --no-startup-id maim -f png -s | xclip -selection clipboard -t image/png +bindsym Print exec --no-startup-id maim -f png | xclip -selection clipboard -t image/png +bindsym $mod+ctrl+shift+s exec --no-startup-id maim -f png -s > $(xdg-user-dir PICTURES)/screenshot.png +bindsym $mod+Print+s exec --no-startup-id maim -f png > $(xdg-user-dir PICTURES)/screenshot.png diff --git a/config.d/workspace.conf b/config.d/workspace.conf new file mode 100644 index 0000000..a852e0e --- /dev/null +++ b/config.d/workspace.conf @@ -0,0 +1,27 @@ +# workspace switch keybinds +bindsym $mod+1 workspace $ws1 +bindsym $mod+2 workspace $ws2 +bindsym $mod+3 workspace $ws3 +bindsym $mod+4 workspace $ws4 +bindsym $mod+5 workspace $ws5 +bindsym $mod+6 workspace $ws6 +bindsym $mod+7 workspace $ws7 +bindsym $mod+8 workspace $ws8 +bindsym $mod+9 workspace $ws9 +bindsym $mod+0 workspace $ws10 +bindsym $mod+minus workspace $ws11 +bindsym $mod+equal workspace $ws12 + +# move containers to workspaces +bindsym $mod+shift+1 move container to workspace $ws1 +bindsym $mod+shift+2 move container to workspace $ws2 +bindsym $mod+shift+3 move container to workspace $ws3 +bindsym $mod+shift+4 move container to workspace $ws4 +bindsym $mod+shift+5 move container to workspace $ws5 +bindsym $mod+shift+6 move container to workspace $ws6 +bindsym $mod+shift+7 move container to workspace $ws7 +bindsym $mod+shift+8 move container to workspace $ws8 +bindsym $mod+shift+9 move container to workspace $ws9 +bindsym $mod+shift+0 move container to workspace $ws10 +bindsym $mod+shift+minus move container to workspace $ws11 +bindsym $mod+shift+equal move container to workspace $ws12