diff --git a/.config/i3/config b/.config/i3/config new file mode 100644 index 00000000..3db60f28 --- /dev/null +++ b/.config/i3/config @@ -0,0 +1,168 @@ +# +# Salt's i3 configuration file +# Licensed under the terms of the MIT License +# + +## STARTUP TASKS +# High-priority +exec --no-startup-id pulseaudio +exec --no-startup-id ~/.config/compton/launch.sh +exec --no-startup-id nitrogen --restore +exec --no-startup-id ~/.config/polybar/launch.sh +exec --no-startup-id redshift +# Low-priority +exec --no-startup-id dunst +exec --no-startup-id "sleep 15 && mpd" +exec --no-startup-id "g910-lights" +# XDG +exec --no-startup-id "dex -a" + +## WORKSPACES +set $w1 1 +set $w2 2 +set $w3 3 +set $w4 4 +set $w5 5 +set $w6 6 +set $w7 7 +set $w8 8 +# Workspace setup for my desktop +# Defaults to whatever on my laptop and on other machines +set $monprim DisplayPort-0 +set $monsec HDMI-A-0 +workspace $w1 output $monprim +workspace $w2 output $monprim +workspace $w3 output $monprim +workspace $w4 output $monprim +workspace $w5 output $monprim +# Putting 8 here first so it's the default for my secondary +workspace $w8 output $monsec +workspace $w6 output $monsec +workspace $w7 output $monsec + +## COSMETICS +font pango:Roboto 10 +new_window pixel 4 +focus_on_window_activation none + +## KEYBINDINGS +# Set modifiers +set $mod Mod1 +set $sup Mod4 +set $ctl Ctrl +set $shift Shift + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# Program opening and closing +bindsym $mod+Return exec "konsole" +bindsym $mod+q kill +bindsym $mod+space exec "rofi -show drun" +bindsym $mod+backslash exec "rofi -show ssh" +bindsym $mod+Tab exec "rofi -show window" + +# Pulse controls +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound + +# Brightness controls +bindsym XF86MonBrightnessUp exec xbacklight -inc 5 # increase screen brightness +bindsym XF86MonBrightnessDown exec xbacklight -dec 5 # decrease screen brightness + +# pavucontrol-qt controls +bindsym $mod+p exec --no-startup-id "pgrep pavucontrol-qt || pavucontrol-qt" +bindsym $mod+$shift+p exec --no-startup-id "pkill pavucontrol-qt" + +# i3-settree +bindsym $mod+o exec --no-startup-id "~/.bin/i3-settree" + +# Miscellaneous non-movement hotkeys +bindsym $ctl+$mod+l exec --no-startup-id "~/.bin/i3lock-custom" +bindsym $mod+$shift+c reload +bindsym $mod+$shift+r restart + +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# move focused window +bindsym $mod+$shift+h move left +bindsym $mod+$shift+j move down +bindsym $mod+$shift+k move up +bindsym $mod+$shift+l move right + +# move focused workspace between monitors +bindsym $sup+h move workspace to output left +bindsym $sup+j move workspace to output down +bindsym $sup+k move workspace to output up +bindsym $sup+l move workspace to output right + +# split in horizontal orientation +bindsym $mod+semicolon split h + +# split in vertical orientation +bindsym $mod+v split v + +# toggle tiling / floating +bindsym $mod+f floating toggle + +# enter fullscreen mode for the focused container +bindsym $mod+$shift+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 + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +bindsym $mod+d focus child + +# switch to workspace +bindsym $mod+1 workspace $w1 +bindsym $mod+2 workspace $w2 +bindsym $mod+3 workspace $w3 +bindsym $mod+4 workspace $w4 +bindsym $mod+5 workspace $w5 +bindsym $mod+6 workspace $w6 +bindsym $mod+7 workspace $w7 +bindsym $mod+8 workspace $w8 + +# switch to next and previous workspaces +bindsym $mod+period workspace next +bindsym $mod+comma workspace prev + +# move focused container to workspace +bindsym $mod+$shift+1 move container to workspace $w1 +bindsym $mod+$shift+2 move container to workspace $w2 +bindsym $mod+$shift+3 move container to workspace $w3 +bindsym $mod+$shift+4 move container to workspace $w4 +bindsym $mod+$shift+5 move container to workspace $w5 +bindsym $mod+$shift+6 move container to workspace $w6 +bindsym $mod+$shift+7 move container to workspace $w7 +bindsym $mod+$shift+8 move container to workspace $w8 + +## MODES +# Resize +bindsym $mod+r mode "resize" +mode "resize" { + 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 + + 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 + + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +}