288 lines
8.4 KiB
Org Mode
288 lines
8.4 KiB
Org Mode
#+TITLE: I3 Configuration
|
|
#+SETUPFILE: ./setup/org-setup-file.org
|
|
#+PROPERTY: header-args:conf :comments none
|
|
#+PROPERTY: header-args:conf+ :mkdirp yes
|
|
#+PROPERTY: header-args:conf+ :tangle ~/.config/i3/config
|
|
|
|
#+begin_src conf
|
|
# i3 config file (v4)
|
|
#+end_src
|
|
|
|
* Mod Key
|
|
Set mod key (Mod1=<Alt>, Mod4=<Super>)
|
|
#+BEGIN_SRC conf
|
|
set $mod Mod4
|
|
set $alt Mod1
|
|
#+end_src
|
|
|
|
* Border Style
|
|
#+begin_src conf
|
|
default_border pixel 2
|
|
default_floating_border pixel 2
|
|
for_window [class="^.*"] border pixel 2
|
|
#+end_src
|
|
|
|
Hide borders
|
|
#+begin_src conf
|
|
hide_edge_borders none
|
|
#+end_src
|
|
|
|
* Font for window titles
|
|
#+begin_src conf
|
|
font pango:Hack Nerd Font Mono 11
|
|
#+end_src
|
|
|
|
* Colors Variables
|
|
#+begin_src conf
|
|
set_from_resource $bg color0 #000000
|
|
set_from_resource $darkred color1 #000000
|
|
set_from_resource $darkgreen color2 #000000
|
|
set_from_resource $darkyellow color3 #000000
|
|
set_from_resource $darkblue color4 #000000
|
|
set_from_resource $darkpurple color5 #000000
|
|
set_from_resource $darkaqua color6 #000000
|
|
set_from_resource $darkgray color7 #000000
|
|
set_from_resource $gray color8 #000000
|
|
set_from_resource $red color9 #000000
|
|
set_from_resource $green color10 #000000
|
|
set_from_resource $yellow color11 #000000
|
|
set_from_resource $blue color12 #000000
|
|
set_from_resource $purple color13 #000000
|
|
set_from_resource $aqua color14 #000000
|
|
set_from_resource $fg color15 #000000
|
|
#+end_src
|
|
|
|
* Theme colors
|
|
#+begin_src conf
|
|
# class border backgr. text indic. child_border
|
|
client.focused $darkaqua $darkaqua $fg $bg
|
|
client.focused_inactive $bg $bg $fg $bg
|
|
client.unfocused $bg $bg $fg $bg
|
|
client.urgent $bg $bg $fg $bg
|
|
|
|
client.background $bg
|
|
#+end_src
|
|
|
|
* Various Config
|
|
Layout mode for new containers
|
|
#+begin_src conf
|
|
workspace_layout default
|
|
#+end_src
|
|
|
|
* Focus Configuration
|
|
#+begin_src conf
|
|
focus_follows_mouse no
|
|
#+end_src
|
|
|
|
* Settings for i3-gaps
|
|
#+begin_src conf
|
|
gaps inner 10
|
|
gaps outer 1
|
|
smart_gaps off
|
|
#+end_src
|
|
|
|
* Workspace names
|
|
To display names or symbols instead of plain workspace numbers you can use something like: =set $ws1 1:mail= and =set $ws2 2:=.
|
|
|
|
#+begin_src conf
|
|
set $ws1 1
|
|
set $ws2 2
|
|
set $ws3 3
|
|
set $ws4 4
|
|
set $ws5 5
|
|
set $ws6 6
|
|
set $ws7 7
|
|
set $ws8 8
|
|
#+end_src
|
|
|
|
#+begin_src conf
|
|
workspace 1 output DP-3-2
|
|
workspace 3 output DP-3-2
|
|
workspace 5 output DP-3-2
|
|
workspace 7 output DP-3-2
|
|
workspace 9 output DP-3-2
|
|
|
|
workspace 2 output DP-3-1
|
|
workspace 4 output DP-3-1
|
|
workspace 6 output DP-3-1
|
|
workspace 8 output DP-3-1
|
|
#+end_src
|
|
|
|
* Use Mouse+$mod to drag floating windows
|
|
#+begin_src conf
|
|
floating_modifier $mod
|
|
#+end_src
|
|
|
|
* Back and Forth
|
|
#+begin_src conf
|
|
workspace_auto_back_and_forth yes
|
|
#+end_src
|
|
|
|
* Application Specific
|
|
** Open applications on specific workspaces
|
|
#+begin_src conf
|
|
assign[title="^Fig"] $ws6 # Matlab Figures
|
|
for_window [title="^Fig"] layout tabbed
|
|
assign[title="^HG_Peer"] $ws6 # Name of window when export figure with matlab
|
|
#+end_src
|
|
|
|
#+begin_src conf
|
|
assign[class="^RDP"] $ws7 # Remote
|
|
for_window [class="^RDP"] layout tabbed
|
|
#+end_src
|
|
|
|
** Open specific applications in floating mode
|
|
#+begin_src conf
|
|
for_window [title="File Transfer*"] floating enable
|
|
for_window [class="GParted"] floating enable border normal
|
|
for_window [class="Lxappearance"] floating enable sticky enable border normal
|
|
for_window [class="Pavucontrol"] floating enable
|
|
for_window [class="Arandr"] floating enable
|
|
for_window [class="Simple-scan"] floating enable border normal
|
|
for_window [class="(?i)System-config-printer.py"] floating enable border normal
|
|
for_window [title="^Documentation -"] floating enable border normal
|
|
for_window [class="Yad"] floating enable
|
|
for_window [title="Bluetooth Devices"] floating enable
|
|
for_window [title="Simulink Library Browser"] floating enable
|
|
for_window [class="Floating"] floating enable, resize set 800 600, move position 1100 460
|
|
for_window [class="mpv"] floating enable # Size/Position is defined in mpv.conf
|
|
for_window [class="Sxiv"] floating enable, resize set 800 600, move position center
|
|
for_window [class="Cropgui"] floating enable, resize set 800 600, move position center
|
|
for_window [title="khal"] floating enable, resize set 600 600, move position center
|
|
for_window [title="ncmpcpp"] floating enable, resize set 800 400, move position center
|
|
for_window [title="stig"] floating enable, resize set 800 400, move position center
|
|
for_window [title="Sensors"] floating enable, resize set 800 400, move position center
|
|
for_window [title="TexText"] floating enable, resize set 800 400, move position center
|
|
for_window [title="nmtui"] floating enable, resize set 800 600, move position center
|
|
for_window [title="Xournal"] floating enable, resize set 1100 750, move position center
|
|
for_window [title="esrf-phonebook"] floating enable, resize set 1400 400, move position center
|
|
for_window [title="^zoom$" class="[zoom]*"] floating enable
|
|
for_window [title="F3D"] floating enable, resize set 800 600, move position center
|
|
#+end_src
|
|
|
|
* Scratchpad
|
|
Move the currently focused window to the scratchpad
|
|
#+begin_src conf
|
|
bindsym $mod+Shift+BackSpace move scratchpad
|
|
#+end_src
|
|
|
|
Show the next scratchpad window or hide the focused scratchpad window.
|
|
If there are multiple scratchpad windows, this command cycles through them.
|
|
#+begin_src conf
|
|
bindsym $mod+BackSpace scratchpad show
|
|
#+end_src
|
|
|
|
* I3 key bindings
|
|
** Kill Window
|
|
#+begin_src conf
|
|
# close and kill
|
|
bindsym $mod+q kill
|
|
#+end_src
|
|
|
|
** Set the window State
|
|
#+begin_src conf
|
|
# Set the window to full-screen
|
|
bindsym $mod+f fullscreen toggle
|
|
|
|
# Set the window to floating
|
|
bindsym $mod+s floating toggle
|
|
|
|
# Alternate between the tiled and normal layout
|
|
bindsym $mod+t layout toggle tabbed split
|
|
|
|
# Change focus between tiling / floating windows
|
|
bindsym $mod+c focus mode_toggle
|
|
|
|
# Sticky window
|
|
bindsym $mod+y sticky toggle
|
|
#+end_src
|
|
|
|
** focus/swap
|
|
#+begin_src conf
|
|
# Focus/swap the node in the given direction
|
|
bindsym $mod+h focus left
|
|
bindsym $mod+j focus down
|
|
bindsym $mod+k focus up
|
|
bindsym $mod+l focus right
|
|
|
|
bindsym $mod+Shift+h move left
|
|
bindsym $mod+Shift+j move down
|
|
bindsym $mod+Shift+k move up
|
|
bindsym $mod+Shift+l move right
|
|
#+end_src
|
|
|
|
#+begin_src conf
|
|
# Focus the next/previous desktop in the current monitor
|
|
bindsym $mod+p workspace prev
|
|
bindsym $mod+n workspace next
|
|
|
|
# Focus the last Desktop
|
|
bindsym $mod+b workspace back_and_forth
|
|
|
|
# Focus to the given desktop
|
|
bindsym $mod+1 workspace 1
|
|
bindsym $mod+2 workspace 2
|
|
bindsym $mod+3 workspace 3
|
|
bindsym $mod+4 workspace 4
|
|
bindsym $mod+5 workspace 5
|
|
bindsym $mod+6 workspace 6
|
|
bindsym $mod+7 workspace 7
|
|
bindsym $mod+8 workspace 8
|
|
bindsym $mod+9 workspace 9
|
|
bindsym $mod+0 workspace 10
|
|
|
|
bindsym $mod+ctrl+1 move contrainer to workspace 1
|
|
bindsym $mod+ctrl+2 move contrainer to workspace 2
|
|
bindsym $mod+ctrl+3 move contrainer to workspace 3
|
|
bindsym $mod+ctrl+4 move contrainer to workspace 4
|
|
bindsym $mod+ctrl+5 move contrainer to workspace 5
|
|
bindsym $mod+ctrl+6 move contrainer to workspace 6
|
|
bindsym $mod+ctrl+7 move contrainer to workspace 7
|
|
bindsym $mod+ctrl+8 move contrainer to workspace 8
|
|
bindsym $mod+ctrl+9 move contrainer to workspace 9
|
|
bindsym $mod+ctrl+0 move contrainer to workspace 10
|
|
|
|
bindsym $mod+Shift+1 move contrainer to workspace 1; workspace 1
|
|
bindsym $mod+Shift+2 move contrainer to workspace 2; workspace 2
|
|
bindsym $mod+Shift+3 move contrainer to workspace 3; workspace 3
|
|
bindsym $mod+Shift+4 move contrainer to workspace 4; workspace 4
|
|
bindsym $mod+Shift+5 move contrainer to workspace 5; workspace 5
|
|
bindsym $mod+Shift+6 move contrainer to workspace 6; workspace 6
|
|
bindsym $mod+Shift+7 move contrainer to workspace 7; workspace 7
|
|
bindsym $mod+Shift+8 move contrainer to workspace 8; workspace 8
|
|
bindsym $mod+Shift+9 move contrainer to workspace 9; workspace 9
|
|
bindsym $mod+Shift+0 move contrainer to workspace 10; workspace 10
|
|
#+end_src
|
|
|
|
** Preselect
|
|
Preselect the direction
|
|
#+begin_src conf
|
|
# Set Horizontal Layout
|
|
bindsym $mod+ctrl+h split h
|
|
bindsym $mod+ctrl+l split h
|
|
|
|
# Set Vertical Layout
|
|
bindsym $mod+ctrl+j split v
|
|
bindsym $mod+ctrl+k split v
|
|
#+end_src
|
|
|
|
** Resize
|
|
Expand/Shrink a window
|
|
#+begin_src conf
|
|
# Horizontal Shrink
|
|
bindsym $mod+$alt+h resize shrink width 10 px or 10 ppt
|
|
# Vertical Grow
|
|
bindsym $mod+$alt+j resize grow height 10 px or 10 ppt
|
|
# Vertical Shrink
|
|
bindsym $mod+$alt+k resize shrink height 10 px or 10 ppt
|
|
# Horizontal Grow
|
|
bindsym $mod+$alt+l resize grow width 10 px or 10 ppt
|
|
#+end_src
|
|
|
|
* Run Polybar and SXHKD
|
|
#+begin_src conf
|
|
# exec --no-startup-id sxhkd -m 1 -c ~/.config/sxhkd/sxhkdrc.i3
|
|
exec --no-startup-id sxhkd -m 1
|
|
exec --no-startup-id polybar top >>/tmp/polybar.log 2>&1 &
|
|
#+end_src
|