It requires x11-display and contributes exec i3 to xinitrc's last slot, and XDG_CURRENT_DESKTOP/XDG_SESSION_DESKTOP to the environment. It owns ~/.config/i3/config, ending with the config.d include where other modules drop their files, and /etc/lemurs/wms/i3, which runs the session's start. Over today's identical config it drops the dead lxpolkit, the D-Bus-activated portal, the xrdb merge xorg now does, and the execs that XDG autostart already started. It sets JetBrainsMono Nerd Font, runs i3-sensible-terminal, and declares dex, which the desktop lacked. The tools speak i3's IPC: the seat's reload, workspaces and windows, and focus, move, layout save/restore, exec, kill, bindings, config check, marks and the scratchpad. A watcher in the bundle (ADR 0198) replaces the predecessor's inotify script and user unit. It reloads only a configuration i3 -C accepts, and at its start whatever i3 has not loaded.
196 lines
7.2 KiB
Plaintext
196 lines
7.2 KiB
Plaintext
# i3 config file (v4), written by the mesh (module i3, novox/hq ADR 0208). Replaced at every push;
|
|
# change the module instead. i3's user guide is the reference.
|
|
#
|
|
# Other modules add to this configuration with files of their own in ~/.config/i3/config.d/, named
|
|
# <NN>-<module>.conf and read in name order by the include at the end, where every variable set here
|
|
# ($mod, $ws1 … $ws10) is in scope. A file of yours there is read the same way and is yours.
|
|
#
|
|
# The reload watcher of this module reloads i3 when this file or a drop-in changes, after checking the
|
|
# result with i3 -C; it never reloads into a configuration with errors.
|
|
|
|
# Font for window titles, and the bars below: the mesh's monospace face (research 026/04).
|
|
font pango:JetBrainsMono Nerd Font 11
|
|
|
|
# XDG autostart entries (~/.config/autostart, /etc/xdg/autostart), started once at login.
|
|
exec --no-startup-id dex --autostart --environment i3
|
|
|
|
#########################################
|
|
###### Keys ####
|
|
#########################################
|
|
# To find key symbols: xmodmap -pke / xmodmap -pm
|
|
set $mod Mod4
|
|
set $alt Mod1
|
|
set $shift Shift
|
|
set $ctrl Control
|
|
|
|
# use these keys for focus, movement, and resize directions when reaching for
|
|
# the arrows is not convenient
|
|
set $left h
|
|
set $down j
|
|
set $up k
|
|
set $right l
|
|
|
|
# use Mouse+$mod to drag floating windows to their wanted position
|
|
floating_modifier $mod
|
|
|
|
# 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: whichever the terminal module names in $TERMINAL
|
|
bindsym $mod+Return exec i3-sensible-terminal
|
|
|
|
# kill focused window
|
|
bindsym $mod+$shift+q kill
|
|
|
|
# change focus
|
|
bindsym $mod+$left focus left
|
|
bindsym $mod+$down focus down
|
|
bindsym $mod+$up focus up
|
|
bindsym $mod+$right focus right
|
|
|
|
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+$left move left
|
|
bindsym $mod+$shift+$down move down
|
|
bindsym $mod+$shift+$up move up
|
|
bindsym $mod+$shift+$right move right
|
|
|
|
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+c split h
|
|
# split in vertical orientation
|
|
bindsym $mod+v split v
|
|
|
|
# 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
|
|
|
|
# alt-tab functionality
|
|
bindsym $mod+Tab workspace back_and_forth
|
|
|
|
#########################################
|
|
###### Workspace mgmt ####
|
|
#########################################
|
|
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"
|
|
|
|
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
|
|
|
|
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
|
|
|
|
#########################################
|
|
###### Window mgmt ####
|
|
#########################################
|
|
set $resize_px 10 px
|
|
bindsym $mod+$ctrl+$left resize shrink width $resize_px
|
|
bindsym $mod+$ctrl+$down resize grow height $resize_px
|
|
bindsym $mod+$ctrl+$up resize shrink height $resize_px
|
|
bindsym $mod+$ctrl+$right resize grow width $resize_px
|
|
|
|
#########################################
|
|
###### Session mgmt ####
|
|
#########################################
|
|
bindsym $mod+$shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
|
|
|
# Lock the screen through logind, so the one locker the lock screen's module runs handles it (and
|
|
# suspend and lid close too).
|
|
bindsym $mod+Delete exec --no-startup-id loginctl lock-session
|
|
|
|
# reload the configuration file
|
|
bindsym $mod+$shift+c reload
|
|
|
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
|
bindsym $mod+$shift+r restart
|
|
|
|
#########################################
|
|
###### Borders ####
|
|
#########################################
|
|
default_border pixel 1
|
|
smart_borders on
|
|
|
|
#########################################
|
|
###### Gaps ####
|
|
#########################################
|
|
gaps inner 0
|
|
gaps outer 0
|
|
|
|
# Only the accent-bearing slots are themed; background and text keep i3's own defaults. Borders are
|
|
# `pixel`, so no title bar shows: the colour says which window has focus.
|
|
# border background text indicator child_border
|
|
client.focused #de5200 #de5200 #1E2127 #de5200 #de5200
|
|
client.urgent #900000 #900000 #ffffff #900000 #900000
|
|
|
|
#########################################
|
|
###### Until their modules carry them ##
|
|
#########################################
|
|
# Each line below belongs to something other than i3, named on its line. When that module is written
|
|
# it contributes the line as its own drop-in in config.d, and the line goes from here in the same
|
|
# change. The launcher, the clipboard, the wallpaper, the bars and the keyring already have theirs
|
|
# (rofi, clipmenu, feh, i3status-rust, gnome-keyring).
|
|
|
|
# the peripherals' tray (the operator's application)
|
|
exec --no-startup-id polychromatic-tray-applet
|
|
|
|
# the operator's scripts: volume, games volume, sessions, screenshot
|
|
bindsym XF86AudioRaiseVolume exec --no-startup-id volume-notify up
|
|
bindsym XF86AudioLowerVolume exec --no-startup-id volume-notify down
|
|
bindsym XF86AudioMute exec --no-startup-id volume-notify mute
|
|
bindsym XF86AudioMicMute exec --no-startup-id mic-notify
|
|
bindsym $ctrl+XF86AudioRaiseVolume exec --no-startup-id set-games-volume 5
|
|
bindsym $ctrl+XF86AudioLowerVolume exec --no-startup-id set-games-volume -5
|
|
bindsym $mod+$shift+Return exec --no-startup-id ~/scripts/i3-sessions/launcher.sh
|
|
bindsym --release $ctrl+$shift+x exec --no-startup-id $XDG_CONFIG_HOME/i3/scripts/screenshot.sh
|
|
|
|
#########################################
|
|
###### Other modules' drop-ins ####
|
|
#########################################
|
|
include ~/.config/i3/config.d/*.conf
|