dotfiles/.i3/config

294 lines
9.5 KiB
Plaintext
Raw Normal View History

2022-12-06 07:50:17 +01:00
# 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 bterm
bindsym $mod+Shift+Return fullscreen disable, exec sterm
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"