i3 Base Setup and Styling on Arch
Configure the core i3 desktop on Arch. This base workflow covers the i3 package install, first i3 login, Alacritty as the default Mod+Enter terminal, Starship prompt, Fastfetch terminal banner, OS age command, image wallpaper, Picom compositor support, subtle tiled window gaps, thin borders, calm focused window colors, the top i3status bar, screen layout shortcuts, base keybindings, and config checks. Login manager setup, lid behavior, sound, ASUS controls, dev mode, display power helpers, screenshots, and the actual screen layout profile script definitions are kept in separate focused notes.
Install base packages
Section titled “Install base packages”Install the base packages for i3, Alacritty, Starship, Fastfetch, Rofi, Picom, i3status, image wallpaper, basic display sleep control, and Meslo Nerd Font.
sudo pacman -S i3-wm alacritty starship fastfetch rofi picom i3status feh xorg-xset ttf-meslo-nerd- i3-wm provides the window manager.
- Alacritty provides the default terminal emulator used by Mod+Enter.
- Starship provides the shell prompt.
- Fastfetch provides the terminal startup banner.
- Rofi provides the app launcher and open-window switcher.
- Picom provides Alacritty transparency and rounded window corners through the X11 compositor layer.
- i3status provides the status bar content.
- feh sets the image wallpaper on the X11 root window.
- xorg-xset is useful for display sleep and DPMS checks.
- ttf-meslo-nerd provides the MesloLGS Nerd Font used by i3, Alacritty, Rofi, and VS Code.
Place the wallpaper image
Section titled “Place the wallpaper image”Place the wallpaper image at ~/.config/wallpaper.jpg before reloading i3. feh supports JPG, PNG, and most common image formats, but the i3 config below expects this exact path.
mkdir -p ~/.configls -lh ~/.config/wallpaper.jpgFirst login to i3
Section titled “First login to i3”- Log in to the i3 session from the selected display manager.
- On first i3 login, accept the prompt to generate a default config if one does not already exist.
- When asked, choose Super as the Mod key.
- Use the separate ly login setup note when configuring ly as the display manager.
Core i3 config
Section titled “Core i3 config”Add the main i3 visual and workspace configuration. This block sets the laptop-only layout at startup, starts Picom for transparency and rounded corners, sets the wallpaper with feh, pins the first three workspaces to the primary output, forces selected apps to tile, configures screen layout shortcuts, sets Alacritty as the terminal, uses Rofi for app launching and open-window switching, and applies subtle gaps, thin borders, calm window colors, and Meslo font styling.
nano ~/.config/i3/configfont pango:MesloLGS Nerd Font 10focus_follows_mouse nomouse_warping none
exec --no-startup-id ~/.screenlayout/laptop-only.sh# exec_always --no-startup-id xsetroot -solid "#0b0f14"exec_always --no-startup-id feh --bg-fill ~/.config/wallpaper.jpgexec_always --no-startup-id picom --config ~/.config/picom/picom.conf
workspace 1 output primaryworkspace 2 output primaryworkspace 3 output primary
for_window [class="Upwork"] floating disable
bindsym $mod+Control+1 exec --no-startup-id ~/.screenlayout/laptop-only.shbindsym $mod+Control+2 exec --no-startup-id ~/.screenlayout/external-1k-only.shbindsym $mod+Control+3 exec --no-startup-id ~/.screenlayout/external-2k-only.shbindsym $mod+Control+4 exec --no-startup-id ~/.screenlayout/mirror-1k.sh
set $term alacrittybindsym $mod+Return exec $term
bindsym $mod+space exec rofi -show drunbindsym $mod+Tab exec rofi -show window
# Window gapsgaps inner 6gaps outer 2
# Remove outer gaps when only one window is visiblesmart_gaps on
# Window bordersdefault_border pixel 1default_floating_border pixel 1
# Window colorsclient.focused #3a3a3a #3a3a3a #ffffff #3a3a3a #3a3a3aclient.focused_inactive #2a2a2a #2a2a2a #d4d4d4 #2a2a2a #2a2a2aclient.unfocused #1e1e1e #1e1e1e #a0a0a0 #1e1e1e #1e1e1eclient.urgent #c75c5c #c75c5c #ffffff #c75c5c #c75c5c- The font line applies MesloLGS Nerd Font to i3 workspace labels, title text, binding mode text, and i3bar text.
- focus_follows_mouse no keeps pointer hover from changing the focused window.
- mouse_warping none stops i3 from moving the pointer when focus changes.
- The laptop-only script applies the default laptop display layout when i3 starts.
- The old xsetroot line is commented out because feh now controls the root window wallpaper.
- The feh line sets ~/.config/wallpaper.jpg as a filled wallpaper on every i3 start or reload.
- Do not keep both xsetroot and feh active for the background because both write to the root window.
- The Picom startup line enables Alacritty transparency and rounded corners after each i3 start.
- Workspace 1, 2, and 3 are assigned to the primary output.
- The Upwork rule disables floating behavior for the Upwork window.
- Mod+Control+1 through Mod+Control+4 switch between saved screen layout scripts.
- The actual screen layout script contents are documented in the linked i3 screen layout profiles note.
- set $term alacritty defines the terminal used by Mod+Enter.
- Mod+Space opens the Rofi desktop app launcher with drun mode.
- Mod+Tab opens the Rofi open-window switcher.
- gaps inner 6 adds a small space between tiled windows.
- gaps outer 2 adds a small space around the workspace edge.
- smart_gaps on removes the outer gap when only one window is visible.
- default_border pixel 1 keeps tiled window borders thin.
- default_floating_border pixel 1 keeps floating window borders thin.
- client.focused replaces the default bright focused window color with a calmer gray.
After editing the config, reload i3. If i3 reports duplicate keybindings, search for the conflicting bindsym line and keep only one binding for that key combination.
i3-msg reloadUse Alacritty for Mod+Enter
Section titled “Use Alacritty for Mod+Enter”Use Alacritty as the default i3 terminal. The generated i3 config may already include a Mod+Enter binding that calls i3-sensible-terminal. Comment that generated line before adding the Alacritty binding, otherwise i3 can report a duplicate keybinding.
nano ~/.config/i3/configComment the generated default terminal binding if it exists.
# start a terminal# bindsym $mod+Return exec i3-sensible-terminalAdd the Alacritty terminal variable and binding. Keeping it at the end of the config is fine as long as there is no other active Mod+Return binding.
set $term alacrittybindsym $mod+Return exec $termReload i3, open a new terminal with Mod+Enter, then check the parent process from inside that terminal.
i3-msg reload
ps -p $PPID -o comm=- Expected output is alacritty.
- If the output is konsole or another terminal, another binding or launcher is still opening that terminal.
- This Mod+Enter change does not automatically update separate scripts such as dev-mode if those scripts hardcode a terminal command.
Create the OS age command
Section titled “Create the OS age command”Create a small command that estimates the age of the Arch install from the first pacman log entry. Fastfetch uses this command for the OS Age line.
mkdir -p ~/.local/binnano ~/.local/bin/os-age#!/bin/bash
first="$(head -n 1 /var/log/pacman.log | sed -E 's/^\[([^]]+)\].*/\1/')"first_epoch="$(date -d "$first" +%s)"now_epoch="$(date +%s)"days="$(( (now_epoch - first_epoch) / 86400 ))"
echo "$days days"chmod +x ~/.local/bin/os-age~/.local/bin/os-ageConfigure Fastfetch
Section titled “Configure Fastfetch”Fastfetch shows the system banner when the terminal opens. The OS Age module uses the full script path so it works reliably at shell startup.
mkdir -p ~/.config/fastfetchnano ~/.config/fastfetch/config.jsonc{ "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": { "type": "builtin", "source": "arch", "padding": { "right": 2 } },
"display": { "separator": " " },
"modules": [ "title", "separator", "os", { "type": "command", "key": "OS Age", "text": "/home/baris/.local/bin/os-age" }, "uptime", "kernel", "shell", "wm", "terminal", "cpu", "gpu", "memory", { "type": "disk", "folders": [ "/" ] } ]}fastfetchConfigure Starship
Section titled “Configure Starship”Starship is the shell prompt. The gcloud module is disabled so saved Google Cloud accounts do not appear in the prompt.
mkdir -p ~/.confignano ~/.config/starship.tomladd_newline = true
[gcloud]disabled = true
[character]success_symbol = "[❯](bold green)"error_symbol = "[❯](bold red)"
[directory]truncation_length = 3truncate_to_repo = trueEnable Starship in Bash only if it is not already enabled.
grep -q 'starship init bash' ~/.bashrc || cat >> ~/.bashrc <<'EOF'
eval "$(starship init bash)"EOFRun Fastfetch when Bash opens
Section titled “Run Fastfetch when Bash opens”Add ~/.local/bin to PATH before running Fastfetch so local commands are available. Fastfetch should run before Starship draws the prompt.
grep -q 'export PATH="$HOME/.local/bin:$PATH"' ~/.bashrc || cat >> ~/.bashrc <<'EOF'
export PATH="$HOME/.local/bin:$PATH"EOF
grep -q 'command -v fastfetch' ~/.bashrc || cat >> ~/.bashrc <<'EOF'
if [[ $- == *i* ]]then command -v fastfetch >/dev/null && fastfetchfiEOFgrep -n 'starship init bash' ~/.bashrcgrep -n 'fastfetch' ~/.bashrcgrep -n '.local/bin' ~/.bashrcCheck final Bash order
Section titled “Check final Bash order”If needed, manually edit ~/.bashrc and keep this order near the bottom.
nano ~/.bashrcexport PATH="$HOME/.local/bin:$PATH"
if [[ $- == *i* ]]then command -v fastfetch >/dev/null && fastfetchfi
eval "$(starship init bash)"Configure Alacritty
Section titled “Configure Alacritty”Alacritty uses a file-based config. This setup uses MesloLGS Nerd Font, a dark background color, and slight transparency. Opacity requires Picom or another compositor, and existing Alacritty windows may need to be closed and reopened.
mkdir -p ~/.config/alacrittynano ~/.config/alacritty/alacritty.tomlPaste the following:
[window]padding = { x = 8, y = 8 }dynamic_padding = falseopacity = 0.80
[font]size = 11.5
[font.normal]family = "MesloLGS Nerd Font"style = "Regular"
[font.bold]family = "MesloLGS Nerd Font"style = "Bold"
[font.italic]family = "MesloLGS Nerd Font"style = "Italic"
[font.bold_italic]family = "MesloLGS Nerd Font"style = "Bold Italic"
[colors.primary]background = "#0b0f14"foreground = "#d8dee9"
[scrolling]history = 10000multiplier = 3
[selection]save_to_clipboard = true
[cursor]style = { shape = "Block", blinking = "Off" }unfocused_hollow = true
[mouse]hide_when_typing = true- Window padding gives terminal text a small margin so it does not touch the edge.
- MesloLGS Nerd Font gives the terminal a consistent developer font with Nerd Font glyph support.
- opacity = 0.80 makes Alacritty more transparent when Picom is running.
- The primary background color remains dark behind the transparent terminal.
- Scrollback history is set to 10000 lines for logs and command output.
- save_to_clipboard copies selected text to the clipboard automatically.
- The block cursor keeps the terminal visually clear in a keyboard-driven i3 setup.
- hide_when_typing removes mouse cursor distraction while typing.
Check font resolution, then restart Alacritty windows after changing the config. Existing Alacritty windows may not reflect every setting until reopened.
fc-match "MesloLGS Nerd Font"Replace the default bar block
Section titled “Replace the default bar block”The generated config includes a minimal bar { status_command i3status } block. Replace it with the thin native i3bar version below. There must be only one bar block. Do not nest it. Bar transparency is handled by Picom, so the i3bar background color uses plain hex without an alpha byte.
bar { status_command i3status --config ~/.config/i3status/config position top tray_output none tray_padding 0 font pango:MesloLGS Nerd Font 8
separator_symbol " " workspace_min_width 20 strip_workspace_numbers no binding_mode_indicator yes
colors { background #121216 statusline #d4d4d4 separator #121216
focused_workspace #3a3a3a #3a3a3a #ffffff active_workspace #242428 #242428 #d4d4d4 inactive_workspace #121216 #121216 #909090 urgent_workspace #c75c5c #c75c5c #ffffff binding_mode #4a4a4a #4a4a4a #ffffff }}- status_command points i3bar at the explicit i3status config file.
- position top keeps the bar at the top of the screen.
- tray_output none hides the tray for a thinner status bar.
- font pango:MesloLGS Nerd Font 8 keeps the bar compact.
- workspace_min_width 20 keeps workspace labels narrow.
- The workspace colors use a darker native i3bar palette.
- Picom controls bar opacity with an opacity rule, not the i3bar background color.
- The urgent workspace color is muted red instead of the default bright warning style.
Configure i3status
Section titled “Configure i3status”i3status has its own config file, separate from the i3 window manager config. Put tztime, battery, memory, and similar blocks here, not in ~/.config/i3/config.
mkdir -p ~/.config/i3statusnano ~/.config/i3status/configPaste the following:
general { colors = false interval = 5}
order += "wireless _first_"order += "battery all"order += "memory"order += "tztime local"
wireless _first_ { format_up = "WiFi" format_down = "WiFi down"}
battery all { format = "BAT %percentage" integer_battery_capacity = true format_down = "" status_chr = "CHR" status_bat = "BAT" status_full = "FULL" status_unk = "BAT"}
memory { format = "RAM %used"}
tztime local { format = "%a %d %b %H:%M"}- colors = false removes the default green WiFi text for a calmer look.
- integer_battery_capacity = true makes the battery display show a whole-number percentage.
- The battery labels are shortened so the top bar stays compact.
- RAM uses %used because plain i3status does not provide a simple integer GiB option for memory.
- The date uses abbreviated weekday and month text to keep the bar readable.
- Local IP and disk blocks are intentionally omitted; add back if needed.
Configure Picom rounded corners
Section titled “Configure Picom rounded corners”Picom is the compositor layer used for Alacritty transparency, i3bar transparency, and rounded corners on X11/i3. i3 handles layout, gaps, borders, and focus colors. Picom handles opacity, visual corner rounding, and compositor timing. This setup uses the GLX backend, enables vsync, makes the whole i3bar 60% opaque, keeps shadows disabled, and disables fading so transitions stay immediate.
mkdir -p ~/.config/picomnano ~/.config/picom/picom.confPaste the following:
backend = "glx";vsync = true;
corner-radius = 10;
rounded-corners-exclude = [ "window_type = 'dock'", "window_type = 'desktop'"];
opacity-rule = [ "60:class_g = 'i3bar'"];
shadow = false;fading = false;- backend = glx enables the GLX rendering backend.
- vsync = true keeps the compositor synchronized with display refresh.
- corner-radius = 10 gives visible but still restrained rounded corners.
- Dock and desktop windows are excluded from corner rounding.
- opacity-rule makes the whole i3bar 60% opaque, including the background and text.
- The alpha byte in the i3bar background color is intentionally not used because Picom controls bar transparency.
- Picom must be running for Alacritty opacity to appear.
- shadow = false keeps the setup clean and avoids extra visual effects.
- fading = false avoids slow open and close transitions.
Test Picom manually before relying on the i3 startup line.
pkill picompicom --config ~/.config/picom/picom.conf &After the manual test works, keep the Picom startup line in ~/.config/i3/config so rounded corners load after login.
exec_always --no-startup-id picom --config ~/.config/picom/picom.confKeep i3 startup lines
Section titled “Keep i3 startup lines”Keep these lines in ~/.config/i3/config. They set the wallpaper, start Picom automatically, and keep Alacritty as the default terminal.
nano ~/.config/i3/config# exec_always --no-startup-id xsetroot -solid "#0b0f14"exec_always --no-startup-id feh --bg-fill ~/.config/wallpaper.jpgexec_always --no-startup-id picom --config ~/.config/picom/picom.conf
set $term alacrittybindsym $mod+Return exec $termReload and test
Section titled “Reload and test”Reload the shell and i3 after editing the terminal, compositor, and i3 config files. Stop Picom before the i3 reload so the exec_always line starts it again with the updated config. Close and reopen Alacritty after changing Alacritty window settings.
source ~/.bashrcpkill picomi3-msg reload
fastfetchstarship explain- A new Alacritty window should show the Fastfetch banner.
- Fastfetch should include the OS Age line.
- The prompt should use Starship.
- The wallpaper should fill the desktop background.
- The Alacritty background should be more transparent when Picom is running.
- The i3bar should be translucent as a whole when Picom restarts.
Screen layout shortcuts
Section titled “Screen layout shortcuts”The screen layout shortcuts call saved scripts under ~/.screenlayout. Keep the actual xrandr commands inside those scripts and keep this base i3 config limited to launching them.
Use the linked i3 screen layout profiles note for the script definitions and display profile details.
exec --no-startup-id ~/.screenlayout/laptop-only.sh
workspace 1 output primaryworkspace 2 output primaryworkspace 3 output primary
bindsym $mod+Control+1 exec --no-startup-id ~/.screenlayout/laptop-only.shbindsym $mod+Control+2 exec --no-startup-id ~/.screenlayout/external-1k-only.shbindsym $mod+Control+3 exec --no-startup-id ~/.screenlayout/external-2k-only.shbindsym $mod+Control+4 exec --no-startup-id ~/.screenlayout/mirror-1k.sh| Shortcut | Action |
|---|---|
| Mod+Control+1 | Use laptop display only |
| Mod+Control+2 | Use external 1K display only |
| Mod+Control+3 | Use external 2K display only |
| Mod+Control+4 | Mirror to external 1K layout |
Force a specific app to tile
Section titled “Force a specific app to tile”Some apps default to floating windows. Identify the window class with xprop and add a for_window rule. Upwork is configured here as a real rule, and Example is kept as a template for future app rules.
for_window [class="Upwork"] floating disablexprop | grep WM_CLASS# Click the target window. Output looks like: WM_CLASS(STRING) = "example", "Example"Add a new app rule to ~/.config/i3/config and reload:
for_window [class="Example"] floating disableConfigure Rofi launcher
Section titled “Configure Rofi launcher”Rofi replaces the old dmenu launcher flow with a themed app launcher and open-window switcher. Mod+Space opens drun mode for desktop applications, and Mod+Tab opens window mode for switching between already-open windows.
mkdir -p ~/.config/rofinano ~/.config/rofi/config.rasiPaste the following:
configuration { modi: "drun,run,window"; show-icons: true; icon-theme: "Papirus"; font: "MesloLGS Nerd Font 10"; terminal: "alacritty"; drun-display-format: "{name}"; location: 0; disable-history: false; hide-scrollbar: true; display-drun: "Apps"; display-run: "Run"; display-window: "Windows";}
@theme "~/.config/rofi/i3-dark.rasi"nano ~/.config/rofi/i3-dark.rasiPaste the following:
* { font: "MesloLGS Nerd Font 10";
background: #1e1e1e; background-alt: #2a2a2a; foreground: #d4d4d4; foreground-strong: #ffffff; muted: #a0a0a0; selected: #3a3a3a; urgent: #c75c5c; border: #3a3a3a;}
window { width: 36%; background-color: @background; border: 1px; border-color: @border; border-radius: 10px; padding: 12px;}
mainbox { background-color: @background; spacing: 10px; padding: 0;}
inputbar { background-color: @background-alt; text-color: @foreground-strong; border-radius: 8px; padding: 10px 12px; spacing: 8px; children: [ prompt, entry ];}
prompt { background-color: @background-alt; text-color: @muted;}
entry { background-color: @background-alt; text-color: @foreground-strong; placeholder: "Search"; placeholder-color: @muted;}
case-indicator { background-color: @background-alt; text-color: @muted;}
listview { background-color: @background; columns: 1; lines: 8; spacing: 6px; fixed-height: false; scrollbar: false;}
element { background-color: transparent; text-color: @foreground; border-radius: 8px; padding: 8px 10px; spacing: 10px;}
element normal.normal { background-color: transparent; text-color: @foreground;}
element selected.normal { background-color: @selected; text-color: @foreground-strong;}
element alternate.normal { background-color: transparent; text-color: @foreground;}
element urgent.normal { background-color: @urgent; text-color: @foreground-strong;}
element active.normal { background-color: @background-alt; text-color: @foreground-strong;}
element-icon { background-color: transparent; size: 22px;}
element-text { background-color: transparent; text-color: inherit; vertical-align: 0.5;}
message { background-color: @background-alt; border-radius: 8px; padding: 8px;}
textbox { background-color: @background-alt; text-color: @foreground;}
mode-switcher { background-color: @background; spacing: 6px;}
button { background-color: @background-alt; text-color: @foreground; border-radius: 8px; padding: 6px 10px;}
button selected { background-color: @selected; text-color: @foreground-strong;}- The Rofi theme uses the same dark gray palette as the i3 bar and window colors.
- MesloLGS Nerd Font keeps launcher text consistent with i3 and Alacritty.
- drun mode opens desktop applications such as Firefox, VS Code, Okular, and Alacritty.
- window mode searches already-open windows and jumps to the selected one.
- run mode remains available from Rofi internally, but no i3 shortcut is assigned to it in this setup.
Test Rofi manually.
rofi -show drunrofi -show windowDaily shortcuts
Section titled “Daily shortcuts”Mod is the configured i3 modifier key.
| Shortcut | Action |
|---|---|
| Mod+Enter | Open Alacritty terminal |
| Mod+Space | Open Rofi app launcher in drun mode |
| Mod+Tab | Open Rofi window switcher |
| Mod+1 … Mod+6 | Switch to workspace 1-6 |
| Mod+Shift+1 … Mod+Shift+6 | Move focused window to workspace 1-6 |
| Mod+Shift+Q | Close focused window |
| Mod+F | Fullscreen focused window |
| Mod+H | Split horizontal for the next window |
| Mod+V | Split vertical for the next window |
| Mod+E | Toggle split layout |
| Mod+R | Enter resize mode, then use arrows, Enter, or Escape |
| Mod+Left / Right / Up / Down | Focus neighbor window |
| Mod+Shift+Left / Right / Up / Down | Move focused window |
| Mod+Shift+Space | Toggle floating on focused window |
| Mod+Control+1 | Apply laptop-only screen layout |
| Mod+Control+2 | Apply external 1K-only screen layout |
| Mod+Control+3 | Apply external 2K-only screen layout |
| Mod+Control+4 | Apply mirror 1K screen layout |
| Mod+Shift+R | Reload i3 config |
| Mod+Shift+E | Exit i3 session |
Debug commands
Section titled “Debug commands”# Find duplicate keybindings manually if i3 reports a conflictgrep -n '^bindsym' ~/.config/i3/config
# Check the i3 modifier and fontgrep -nE '^set \$mod|^font ' ~/.config/i3/config
# Check the active terminal bindinggrep -n 'Return.*terminal\|Return.*alacritty\|i3-sensible-terminal\|set \$term' ~/.config/i3/config
# Check Rofi bindingsgrep -nE 'rofi|dmenu|space|Tab' ~/.config/i3/config
# Check Picom startupgrep -n 'picom' ~/.config/i3/config
# Check wallpaper commandgrep -nE 'feh|xsetroot|wallpaper' ~/.config/i3/configls -lh ~/.config/wallpaper.jpg
# Check screen layout startup and shortcutsgrep -nE 'screenlayout|workspace [123] output primary' ~/.config/i3/config
# Check window gapsgrep -nE '^gaps |^smart_gaps' ~/.config/i3/config
# Check border and window color rulesgrep -nE 'default_border|default_floating_border|client\.focused|client\.focused_inactive|client\.unfocused|client\.urgent|new_window|new_float|for_window.*border|hide_edge_borders' ~/.config/i3/config
# Check app window rulesgrep -nE 'for_window|Upwork' ~/.config/i3/config
# Check window class of a running appxprop | grep WM_CLASS
# Check i3status configcat ~/.config/i3status/config
# Check Alacritty configcat ~/.config/alacritty/alacritty.toml
# Check OS age command~/.local/bin/os-age
# Check Fastfetch config and outputcat ~/.config/fastfetch/config.jsoncfastfetch
# Check Starship config and prompt modulescat ~/.config/starship.tomlstarship explain
# Check Bash startup ordergrep -n 'starship init bash' ~/.bashrcgrep -n 'fastfetch' ~/.bashrcgrep -n '.local/bin' ~/.bashrc
# Check Rofi configcat ~/.config/rofi/config.rasicat ~/.config/rofi/i3-dark.rasi
# Check Picom configcat ~/.config/picom/picom.confgrep -n 'i3bar' ~/.config/picom/picom.conf
# Check Meslo font resolutionfc-match "MesloLGS Nerd Font"
# Check which terminal opened the current shellps -p $PPID -o comm=
# Check the process tree for the current shellpstree -s $$
# Exit i3 from terminali3-msg exitConfig file locations
Section titled “Config file locations”- i3 window manager config: ~/.config/i3/config
- Wallpaper image: ~/.config/wallpaper.jpg
- Alacritty terminal config: ~/.config/alacritty/alacritty.toml
- Fastfetch config: ~/.config/fastfetch/config.jsonc
- Starship config: ~/.config/starship.toml
- OS age command: ~/.local/bin/os-age
- Bash startup config: ~/.bashrc
- Picom compositor config: ~/.config/picom/picom.conf
- i3status modules: ~/.config/i3status/config
- Screen layout scripts: ~/.screenlayout/
- Screen layout script definitions are documented in the linked i3 screen layout profiles note.
- Do not put i3status blocks such as tztime, battery, or memory in ~/.config/i3/config. They belong only in ~/.config/i3status/config.
- Do not rely on Mod+Enter to update separate launcher scripts. If a script hardcodes konsole, update that script directly.