nixos/dotfiles/i3/config
2025-08-12 11:53:58 -07:00

194 lines
7.1 KiB
Text

font pango:monospace 8
exec --no-startup-id dex --autostart --environment i3
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# applets
exec --no-startup-id nm-applet
exec --no-startup-id volumeicon
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
# use these keys for focus, movement, and resize directions when reaching for
# the arrows is not convenient
set $up k
set $down j
set $left h
set $right l
# use Mouse+Mod1 to drag floating windows to their wanted position
floating_modifier Mod1
#floating_modifier Mod4
# change focus
bindsym Mod4+$left focus left
bindsym Mod4+$down focus down
bindsym Mod4+$up focus up
bindsym Mod4+$right focus right
# alternatively, you can use the cursor keys:
bindsym Mod4+Left focus left
bindsym Mod4+Down focus down
bindsym Mod4+Up focus up
bindsym Mod4+Right focus right
# move focused window
bindsym Control+Shift+$left move left
bindsym Control+Shift+$down move down
bindsym Control+Shift+$up move up
bindsym Control+Shift+$right move right
# alternatively, you can use the cursor keys:
bindsym Mod4+Shift+Left move left
bindsym Mod4+Shift+Down move down
bindsym Mod4+Shift+Up move up
bindsym Mod4+Shift+Right move right
# split in horizontal orientation
bindsym Mod4+period split h
bindsym Mod4+c split h
# split in vertical orientation
bindsym Mod4+comma split v
bindsym Mod4+x split v
# enter fullscreen mode for the focused container
bindsym Mod4+g fullscreen toggle
# toggle tiling / floating
bindsym Control+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym Control+space focus mode_toggle
# move the currently focused window to the scratchpad
bindsym Control+Shift+0 move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym Control+0 scratchpad show
# Define scripts folder
set $scripts "/home/fred/scripts"
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
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"
# switch to workspace
bindsym Control+1 workspace number $ws1
bindsym Control+2 workspace number $ws2
bindsym Control+3 workspace number $ws3
bindsym Control+4 workspace number $ws4
bindsym Control+5 workspace number $ws5
bindsym Control+6 workspace number $ws6
bindsym Control+7 workspace number $ws7
bindsym Control+8 workspace number $ws8
bindsym Control+9 workspace number $ws9
#bindsym Control+0 workspace number $ws10
# move focused container to workspace
bindsym Control+Shift+1 move container to workspace number $ws1
bindsym Control+Shift+2 move container to workspace number $ws2
bindsym Control+Shift+3 move container to workspace number $ws3
bindsym Control+Shift+4 move container to workspace number $ws4
bindsym Control+Shift+5 move container to workspace number $ws5
bindsym Control+Shift+6 move container to workspace number $ws6
bindsym Control+Shift+7 move container to workspace number $ws7
bindsym Control+Shift+8 move container to workspace number $ws8
bindsym Control+Shift+9 move container to workspace number $ws9
#bindsym Control+Shift+0 move container to workspace number $ws10
# resize window (you can also use the mouse for that)
bindsym Control+Mod4+h resize shrink width 10 px or 10 ppt
bindsym Control+Mod4+j resize grow height 10 px or 10 ppt
bindsym Control+Mod4+k resize shrink height 10 px or 10 ppt
bindsym Control+Mod4+l resize grow width 10 px or 10 ppt
bindsym Mod4+Button4 resize shrink width 10 px or 10 ppt
bindsym Mod4+Button5 resize grow height 10 px or 10 ppt
bindsym Mod4+Button6 resize shrink height 10 px or 10 ppt
bindsym Mod4+Button7 resize grow width 10 px or 10 ppt
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3blocks
tray_output HDMI-1
}
####session management
bindsym Mod4+grave exec screens 4
bindsym Control+Shift+q kill
bindsym Control+Shift+r restart
bindsym Control+Mod1+p exec xfce4-session-logout --logout
bindsym Control+Mod1+bracketright exec i3lock -c 000000
bindsym Control+Mod1+Delete exec i3-sensible-terminal -e 'sh $scripts/setup.sh off'
bindsym Control+Shift+Delete exec i3-sensible-terminal -e 'sh $scripts/setup.sh reboot'
bindsym Control+Mod4+F12 exec i3-sensible-terminal -e 'sh $scripts/VM/VMmanager.sh toggle'
bindsym Control+Shift+F12 exec i3-sensible-terminal -e 'sh $scripts/VM/VMmanager.sh reboot'
bindsym --release Control+Mod4+v exec "xdotool keyup Control keyup Super click 2"
bindsym --release Control+Mod4+d exec "xdotool keyup Control keyup Super type $(date +%y.%m.%d.)"
####Screenshots
bindsym Control+Shift+Print exec xfce4-screenshooter -r
bindsym Control+Mod1+Print exec xfce4-screenshooter -w
bindsym Print exec xfce4-screenshooter
####program shortcuts
bindsym Mod4+r exec "rofi -modi drun,run -show drun"
bindsym Mod1+c exec --no-startup-id rofi -show calc -modi calc -no-show-match -no-sort
bindsym Mod4+f exec firefox
bindsym Mod4+v exec thunar
bindsym Mod4+t exec i3-sensible-terminal
bindsym Mod4+a exec xterm -e "ssh -t mf"
bindsym Mod4+d workspace number $ws2; exec discord
bindsym Mod4+w exec deluge
bindsym Mod4+b exec mousepad
bindsym --release Mod4+u exec sh $scripts/shortcuts.sh searchbar
#########XP-pen
#bindsym Mod1+Up exec sh $scripts/remote/xp.sh q_up
#bindsym Mod1+Down exec sh $scripts/remote/xp.sh q_down
bindsym --release Mod1+1 exec sh $scripts/remote/xp.sh k1
bindsym --release Mod1+2 exec sh $scripts/remote/xp.sh k2
bindsym --release Mod1+3 exec sh $scripts/remote/xp.sh k3
bindsym --release Mod1+4 exec sh $scripts/remote/xp.sh k4
bindsym --release Mod1+5 exec sh $scripts/remote/xp.sh k5
bindsym --release Mod1+6 exec sh $scripts/remote/xp.sh k6
bindsym --release Mod1+7 exec sh $scripts/remote/xp.sh k7
bindsym --release Mod1+8 exec sh $scripts/remote/xp.sh k8
bindsym --release Mod1+9 exec sh $scripts/remote/xp.sh k9
bindsym --release Mod1+0 exec sh $scripts/remote/xp.sh k10
####startup
exec --no-startup-id sh $scripts/init.sh
workspace 1 output HDMI-1
workspace 2 output DP-2
workspace 3 output DP-3
exec_always --no-startup-id feh --bg-scale /home/fred/Pictures/wallpaper/800252.png
exec i3-sensible-terminal -e 'vpn'
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
exec --no-startup-id xset dpms 0 0 600 &
exec --no-startup-id xss-lock -- i3lock -c 000000 &
exec --no-startup-id xbindkeys
exec --no-startup-id i3-msg 'workspace 3; exec firefox'
exec --no-startup-id solaar --window=hide
exec --no-startup-id input-remapper-control --command autoload