dotfiles/.i3/config
2023-11-05 12:22:05 +01:00

294 lines
9.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# i3 config
# Mod == Alt_L
set $mod Mod1
set $term sterm
# Set font
font pango:Spleen 12
# Set color scheme (somewhat brown'ish)
set $base00 #181818
set $base01 #282828
set $base02 #383838
set $base03 #585858
set $base04 #b8b8b8
set $base05 #d8d8d8
set $base06 #e8e8e8
set $base07 #f8f8f8
set $base08 #FF4642
set $base09 #dc9656
set $base0A #f7ca88
set $base0B #a1b56c
set $base0C #86c1b9
set $base0D #7cafc2
set $base0E #ba8baf
set $base0F #a16946
# default ws names
set $workspace1 "1:[1]"
set $workspace2 "2:[2]"
set $workspace3 "3:[3]"
set $workspace4 "4:[4]"
set $workspace5 "5:[5]"
set $workspace6 "6:[6]"
set $workspace7 "7:[7]"
set $workspace8 "8:[8]"
set $workspace9 "9:[9]"
set $workspace10 "10:[10]"
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# kill focused window
bindsym $mod+Shift+Q kill
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right 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
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
# bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split toggle
bindsym $mod+period split toggle
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen
popup_during_fullscreen smart
# change container layout (stacked, tabbed, default)
bindsym $mod+s layout stacked
bindsym $mod+w layout tabbed
bindsym $mod+e layout default
workspace_layout default
# 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+Shift+a focus child
# switch to workspace
bindsym $mod+1 workspace number $workspace1
bindsym $mod+2 workspace number $workspace2
bindsym $mod+3 workspace number $workspace3
bindsym $mod+4 workspace number $workspace4
bindsym $mod+5 workspace number $workspace5
bindsym $mod+6 workspace number $workspace6
bindsym $mod+7 workspace number $workspace7
bindsym $mod+8 workspace number $workspace8
bindsym $mod+9 workspace number $workspace9
bindsym $mod+0 workspace number $workspace10
# cycle through workspace
bindsym $mod+Next workspace next
bindsym $mod+Prior workspace prev
# move focused container to workspace
bindsym $mod+Shift+exclam move container to workspace number $workspace1
bindsym $mod+Shift+quotedbl move container to workspace number $workspace2
bindsym $mod+Shift+section move container to workspace number $workspace3
bindsym $mod+Shift+dollar move container to workspace number $workspace4
bindsym $mod+Shift+percent move container to workspace number $workspace5
bindsym $mod+Shift+ampersand move container to workspace number $workspace6
bindsym $mod+Shift+slash move container to workspace number $workspace7
bindsym $mod+Shift+parenleft move container to workspace number $workspace8
bindsym $mod+Shift+parenright move container to workspace number $workspace9
bindsym $mod+Shift+equal move container to workspace number $workspace10
# move workspace to other monitor
bindsym $mod+Shift+greater move workspace to output right
bindsym $mod+Shift+less move workspace to output left
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+Home restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+Delete exec "i3-nagbar -t warning -f profont-10 -m 'Do you really want to exit i3?' -b 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# > Pressing left will shrink the windows width.
# > Pressing right will grow the windows width.
# > Pressing up will shrink the windows height.
# > Pressing down will grow the windows height.
bindsym Left resize shrink width 2 px or 2 ppt
bindsym Up resize grow height 2 px or 2 ppt
bindsym Down resize shrink height 2 px or 2 ppt
bindsym Right resize grow width 2 px or 2 ppt
bindsym h resize shrink width 2 px or 2 ppt
bindsym j resize shrink height 2 px or 2 ppt
bindsym k resize grow height 2 px or 2 ppt
bindsym l resize grow width 2 px or 2 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# Go to last workspace
bindsym $mod+Tab workspace back_and_forth
# temporarily disable i3 shortcuts (for emacs for example)
mode "shortcuts_disabled" {
bindsym $mod+dead_acute mode "default"
}
bindsym $mod+dead_acute mode "shortcuts_disabled"
# marks
show_marks yes
# Program Workspaces
assign [class="Deadbeef"] $workspace10
# No titlebar
for_window [class="^.*"] border pixel 1
# Floating
for_window [class="Bitcoin-qt"] floating enable
for_window [class="Bitmessagemain.py"] floating enable
for_window [class="Electrum"] floating enable
for_window [class="Litecoin-qt"] floating enable
for_window [class="Lxappearance"] floating enable
for_window [class="Namecoin-qt"] floating enable
for_window [class="Networkmgr"] floating enable
for_window [class="Pavucontrol"] floating enable
for_window [class="Pinentry-gtk-2"] floating enable
for_window [class="Seahorse"] floating enable
for_window [class="Telegram"] floating enable, sticky enable, resize set 1371 819, move position 273 204
for_window [title="^ScummVM.*"] floating enable
# Window behavior
#for_window [class="SAP GUI for Java"] floating enable, resize set 335 898, move position 1547 90
for_window [class="Caja"] floating enable
for_window [class="Ding"] floating enable, sticky enable, resize set +800 320, move position 1118 64
for_window [class="Pidgin" window_role="buddy_list"] floating enable, sticky enable, resize set 320 600, move position 1600 64
for_window [class="Pidgin" window_role="conversation"] floating enable, sticky enable
for_window [class="Seafile Client" title="Cloud File Browser"] floating enable, sticky enable
for_window [class="Seafile Client" title="Seafile"] floating enable, sticky enable, resize set 320 600, move position 1511 64
for_window [class="Wine"] floating enable
for_window [class="mpv"] floating enable, sticky enable
for_window [class="wine.exe"] floating enable
# Focus exlusion list
no_focus [class="mpv"]
# move mpv around with a keypress
#bindsym $mod+F1 [class="mpv"] move position 0 30
#bindsym $mod+F2 [class="mpv"] move position 1280 30
#bindsym $mod+F3 [class="mpv"] move position 0 760
#bindsym $mod+F4 [class="mpv"] move position 1280 760
# limit the floating container
floating_minimum_size 75 x 50
floating_maximum_size 5000 x 5000
# show where the next window will be created
hide_edge_borders none
new_window pixel 1
new_float pixel 1
# read alert for WS activity
force_display_urgency_hint 2000 ms
focus_on_window_activation urgent
# Widow Colours
# border background text indicator
client.focused $base03 $base03 $base07 $base08
client.focused_inactive $base00 $base00 $base03 $base08
client.unfocused $base01 $base00 $base03 $base08
client.urgent $base08 $base08 $base00 $base08
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status -c ~/.i3/i3status.conf
position top
workspace_buttons yes
binding_mode_indicator yes
strip_workspace_numbers yes
mode dock
hidden_state show
binding_mode_indicator yes
strip_workspace_numbers yes
colors {
separator $base03
background $base00
statusline $base05
# border background text
focused_workspace $base02 $base02 $base07
active_workspace $base00 $base00 $base07
inactive_workspace $base00 $base00 $base07
urgent_workspace $base00 $base00 $base09
}
}
## Volume & Media Bindings
bindsym XF86AudioLowerVolume exec pkill -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec pkill -SIGUSR1 i3status
bindsym XF86AudioMute exec pkill -SIGUSR1 i3status
# deadbeef
#bindsym XF86AudioPlay exec --no-startup-id exec deadbeef --play-pause
#bindsym XF86AudioPause exec --no-startup-id exec deadbeef --toggle-pause
#bindsym XF86AudioNext exec --no-startup-id exec deadbeef --next
#bindsym XF86AudioPrev exec --no-startup-id exec deadbeef --prev
# keyboard leds & lcd brightness
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight +2
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -2
# scratchpad
bindsym $mod+minus scratchpad show
bindsym $mod+Shift+minus move scratchpad, scratchpad show
# start dmenu (a program launcher)
bindsym $mod+Return fullscreen disable, exec sterm
bindsym $mod+Shift+Return fullscreen disable, exec bterm
bindsym $mod+Control Return fullscreen disable, exec hterm
bindsym $mod+End exec i3lock -c "#000000"
bindsym $mod+D exec dexec
#bindsym $mod+A exec dexec_apps
bindsym $mod+Shift+P exec dexec_pass
bindsym $mod+P exec dexec_pim
#bindsym $mod+S exec dexec_ssh
# bindsym $mod+A exec dexec_apps
bindsym $mod+Shift+W exec dexec_work
bindsym $mod+Shift+F fullscreen disable, exec dexec_browser
bindsym $mod+Q kill
# this is a workaround as the workspace is named wrong after start
#exec i3-msg "rename workspace 1 to $workspace1"