Files
dotfiles/.config/i3/config
T
cdanesi a2c82a4734 add workstation-specific overrides
~/.config/i3/hostname.conf
2023-06-11 06:07:10 -04:00

264 lines
7.7 KiB
Plaintext

# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
# i3-gaps
hide_edge_borders both
default_border none
smart_borders on
smart_gaps on
for_window [class="^.*"] border pixel 2
gaps inner 8
gaps outer 0
no_focus [window_role="pop-up"]
workspace_auto_back_and_forth yes
set $mod Mod4
font pango:monospace 8
exec --no-startup-id dex --autostart --environment i3
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
bindsym $mod+Ctrl+l exec betterlockscreen -l dimblur
#bindsym $mod+Ctrl+Escape exec "i3-nagbar -t warning -m 'CHOOSE' -B 'LOCK' 'betterlockscreen -l dimblur' -B 'SUSPEND' 'betterlockscreen -s -l dimblur' -B 'LOGOUT' 'i3-msg exit && exit' -B 'REBOOT' 'systemctl reboot' -B 'POWER OFF' 'systemctl poweroff'"
bindsym $mod+Ctrl+Escape exec --no-startup-id archlinux-logout
bindsym $mod+Ctrl+0 exec --no-startup-id archlinux-logout
#set $mode_system (l)ock (e)xit switch_(u)ser (s)uspend (h)ibernate (r)eboot (shift+s)hutdown
#bindsym $mod+Ctrl+Escape mode "$mode_system"
#mode "$mode_system" {
# bindsym l exec --no-startup-id betterlockscreen -l dimblur
# bindsym e exec --no-startup-id i3exit logout, mode "default"
# bindsym u exec --no-startup-id i3exit switch_user, mode "default"
# #bindsym s exec --no-startup-id i3-msg exit && exit
# bindsym s exec betterlockscreen -s -l dimblur
# bindsym h exec --no-startup-id i3exit hibernate, mode "default"
# bindsym r exec --no-startup-id i3exit reboot, mode "default"
# bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default"
# bindsym Escape mode "default"
# bindsym Return mode "default"
#}
# 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
floating_modifier $mod
floating_minimum_size 1500 x 850
floating_maximum_size -1 x -1
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
#tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec alacritty
# kill focused window
bindsym $mod+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id dmenu_run
bindsym $mod+Shift+d exec "rofi -modi drun,run -show drun"
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# 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
# split in horizontal orientation
#bindsym $mod+Ctrl+h split h; exec notify-send 'Horizontal Split Mode'
# split in vertical orientation
#bindsym $mod+Ctrl+v split v; exec notify-send 'Vertical Split Mode'
#toggle split mode
bindsym $mod+Shift+plus split toggle
# enter fullscreen mode for the focused container
bindsym $mod+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
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# workspace names
set $ws1 "1: term"
set $ws2 "2: www"
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 $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
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
# navigate next/prev workspace
bindsym $mod+Tab workspace next
bindsym $mod+Shift+Tab workspace prev
bindsym $mod+Ctrl+Right workspace next
bindsym $mod+Ctrl+Left workspace prev
# scratchpad
# move current window to a scratchpad
bindsym $mod+Shift+minus move scratchpad
# show scratchpad
bindsym $mod+minus scratchpad show
bindsym $mod+Shift+r restart
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 Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# Colors
set $nord0 #2E3440
set $nord1 #3B4252
set $nord2 #434C5E
set $nord3 #4C566A
set $nord4 #D8DEE9
set $nord5 #E5E9F0
set $nord6 #ECEFF4
set $nord7 #8FBCBB
set $nord8 #88C0D0
set $nord9 #81A1C1
set $nord10 #5E81AC
set $nord11 #BF616A
set $nord12 #D08770
set $nord13 #EBCB8B
set $nord14 #A3BE8C
set $nord15 #B48EAD
# Window color settings
# class border backgr. text indicator
client.focused $nord15 $nord15 $nord4 $nord15
client.unfocused $nord2 $nord2 $nord6 $nord2
client.focused_inactive $nord2 $nord2 $nord6 $nord2
client.placeholder $nord2 $nord2 $nord6 $nord2
client.urgent #d42121 #d42121 #f7f7f7 #d42121
client.background $nord04
bar {
font pango:SpaceMono Nerd Font 10
position top
status_command i3status
tray_output primary
tray_padding 2
separator_symbol ":|:"
i3bar_command i3bar --transparency
strip_workspace_numbers no
strip_workspace_name no
binding_mode_indicator yes
colors {
background $nord0
statusline $nord9
separator $nord10
# colorclass border backgr. text
focused_workspace $nord3 $nord8 $nord4
active_workspace $nord3 $nord8 $nord4
inactive_workspace $nord8 $nord10 $nord4
urgent_workspace $nord3 $nord11 $nord4
}
}
# Launchers
bindsym Print exec flameshot gui
bindsym $mod+b exec firefox
bindsym $mod+m exec dolphin
# Autorun
exec_always --no-startup-id feh -z --bg-scale /usr/share/backgrounds/arcolinux
exec --no-startup-id discord
exec --no-startup-id signal-desktop
exec_always --no-startup-id picom --config ~/.config/picom/picom.conf
exec --no-startup-id nm-applet
exec --no-startup-id volumeicon
exec --no-startup-id dunst
# Specific windows
# Assign workspaces (find class with xprop)
assign [class="Firefox-esr"] 2
assign [class="firefox"] 2
assign [class="Brave-browser"] 2
assign [class="firedragon"] 2
assign [class="Signal"] 4
assign [class="discord"] 4
# workstation specific overrides
include ~/.config/i3/`hostname`.conf