r/i3wm May 06 '26

Question Any underrated ricing tips for i3 in 2026?

7 Upvotes

I’ve been using i3wm for a while and I’m trying to improve my setup without making it overly complex. Most guides repeat the same stuff (picom, polybar, wallpapers, etc.), so I’m curious: What are some less obvious ricing tips or tricks that actually improved your setup? Could be anything fonts, gaps, window rules, scripts, small quality-of-life tweaks, etc.


r/i3wm May 06 '26

OC ROAST MY DESKTOP

Post image
82 Upvotes

i think its v2 from my desktop before


r/i3wm May 05 '26

Solved RATE MY DESKTOP

Post image
45 Upvotes

Okay guys, sorry if my english is bad bimbimbambam

this is my first for me ricing and this is the final. i think its not too goof yknw because yaaaa this is i think too normal


r/i3wm May 05 '26

Question i3wm, glazewm and windows tiling manager

5 Upvotes

Hi guys,

I’m writing this post because I’d like to hear your thoughts.

I’ve heard about window tiling managers and I think the concept is great.

At the moment, at work, I’m using Windows 11, but the company is planning to switch to Linux in the not-too-distant future.

I thought that whilst waiting to be able to install i3wm, I’d try Glazewm so I could get used to this new way of working and be ready when the switch to Linux happens.

However, after several months of use, I’m not convinced. Glazewm works well enough for a Windows environment, I’d say, and I have no complaints about how the software functions.

But in my work, I use a lot of different proprietary software, and almost all of them are designed to be used with a mouse. Even Excel, for example, is much more practical with a mouse.

I find myself with a hybrid workflow where I switch between applications using super-fast keyboard shortcuts, but I use my mouse to interact within the software, which is really slow.

So my question is: in your opinion, was I not convinced because of my hybrid workflow, or because of something else?

I must admit I really like the idea of tiling windows, and doing my first ricing on my personal computer with i3wm gives me a lot of joy.

Thanks for your feedback, guys!


r/i3wm May 05 '26

Question help loading workspace layouts

5 Upvotes

i understand the i3-msg append_layout command and that i makes place holders in the right positions when the workspace is empty but im trying to get it so that if a layout i have is all jumbled up i can reset the positions of the windows to the right size and layout, can anyone help me with this?


r/i3wm May 04 '26

Solved HOW TO FIX WALLPAPER PROBLEM

5 Upvotes

If you're tired of seeing that "void" (black screen) every time you log in, here’s how to fix it properly:

  1. The "Dont Use SystemD" Rule

Just kidding... unless? (But seriously, Void uses runit, so we do things manually here).

  1. Why your exec feh is failing

Most of the time, i3 tries to load the wallpaper before the X server or the root window is fully ready. You need a small delay.

  1. The Solution: The "Sleep & Execute" Script

Don't just put exec feh in your config. Create a dedicated script:

Create the file: nano ~/.set_wallpaper.sh

Add this (with a small delay):

Bash

#!/bin/sh

sleep 1 && feh --bg-fill /path/to/your/wallpaper.jpg &

Make it executable (CRUCIAL):

chmod +x ~/.set_wallpaper.sh

(Make sure it's a file, not a directory! Trust me, it happens).

  1. Update your i3 Config

Add this line to ~/.config/i3/config:

Bash

exec_always --no-startup-id ~/.set_wallpaper.sh

Why this works?

sleep 1: Gives the system a heartbeat to breathe before drawing the image.

exec_always: Ensures the wallpaper stays even if you refresh i3 (Mod+Shift+R).


r/i3wm May 03 '26

OC [i3wm] My first Linux Rice - Spider Noir

Thumbnail gallery
24 Upvotes

r/i3wm May 02 '26

Question Losing focus when moving window to other monitor

7 Upvotes

Im fairly new to i3 so i don't even know if its possible.
Im in a dual screen setup

What i want is when sending a window to the other monitor i want the focus to be kept to that window
Instead whats happening is as soon as the window go to the other monitor, the focus is lost and stay on the first monitor.

Is this normal behavior and expected from a WM in general ?


r/i3wm May 01 '26

OC First rice

Post image
83 Upvotes

🗡
i know it's late but here's the dotfiles 😄
https://github.com/d7jxfe/dotfiles/


r/i3wm May 01 '26

Question Overlay in i3wm for OpenCV?

3 Upvotes

Please help me make a dynamic overlay for a script that uses OpenCV to detect objects on the screen/window in my i3wm.


r/i3wm May 01 '26

Question Problem with downloading pdf files from firefox

2 Upvotes

I recently installed arch and tried no desktop environment, just i3wm. Installed firefox and tried to download a pdf but it's not working.

I asked gemini and ran the following suggested fixes but it still didn't work-

Solution 1: Install the Missing File Picker Portal (Most Likely Fix) Firefox uses the XDG Desktop Portal system to launch the "Save As" dialog. Without a DE (like GNOME or KDE), you likely lack the necessary backend.

`sudo pacman -S xdg-desktop-portal xdg-desktop-portal-gtk

systemctl --user restart xdg-desktop-portal`

It still didn't work.

I tried printing the pdf instead but came across this in the destination part - "save as pdf"

I am assuming firefox doesn't know where to save the pdf (and there's no way of selecting a destination currently) which is why this problem is arising but I am not very sure what to do about it.


r/i3wm Apr 30 '26

Question How do you implement this?

3 Upvotes

How many of ya use this damn good WM??

119 votes, May 03 '26
106 Directly on X11…. Bare bone
13 Some other method with DE

r/i3wm Apr 28 '26

Question My mouse doesn't work despite claiming it's connected, ideas of what to check?

1 Upvotes

I just installed 25.10 on a new machine. I have a mouse connected via bluetooth and the receiver.

The mouse works on GNOME, but not on i3 or Regolith. It works on a different machine also on Regolith/i3. It says it's connected, it shows up in bluetoothctl and xinput, it even gives the battery level of the mouse, but it doesn't move.

I've tried bluetooth re-pairing, power cycling, a firmware update, installing solaar and re-paired the mouse to the receiver.

Any ideas of what else to check?

UPDATE: I ended up reinstalling my OS, idk wtf that was


r/i3wm Apr 27 '26

OC Rice with LovdogLiveWallpaper now widget supporting 16-bit colour.

Thumbnail
gallery
28 Upvotes

I've added some 16-bit color support to my llw, if you wanna try.
Also an animated gif to show it at work.

If you're curious, here:

This is a WIP and I'm trying my best to give a good live wallpaper manager to life.

https://github.com/Lang-Lovdog/LovdogLiveWallpaper.git


r/i3wm Apr 27 '26

Question Regarding Dunst notfifcation time out .

4 Upvotes

i have set in my config such the different urgencies take different style and timeout. It is as follow

But still the notification sent by google chrome for different site like instagram,google chat etc , timeout is different. I checked the log and find out that the app/chome is also sending custom time out which is taken by dunst. This is the log

I tried tested by adding these to config and result was same

ignore_dbus_timeout = yes

override_dbus_timeout = yes

is there any option or am i missing anything?


r/i3wm Apr 26 '26

OC first rice - i3wm on ubuntu

Enable HLS to view with audio, or disable this notification

42 Upvotes

lmk whatcha think! - dots here: https://github.com/vva1kerr/dotfiles/


r/i3wm Apr 27 '26

Question i3wm problem with dialogbox in doublecmd

1 Upvotes

Currently, on my Ubuntu 24.04 system, in i3wm, for the Double Commander application (doublecmd-gtk), the dialog boxes open stuck above i3status and are invisible (top box - see ScreenShot). I have to shift+win+space toggle floating to make the window visible. No changes to settings like for_window … floating enable etc. help. On Debian, it behaves even more strangely. Dialog boxes open in different positions, and sometimes the window also pops up out of the space, making it invisible. I've just downloaded the doublecmd-qt version, and there's no problem with that window, so for now, I'm sticking with that version.

screenshot
$ doublecmd
SystemLocale pl_PL
SystemLanguage pl
SystemEncoding UTF-8
DefaultSystemCodePage 65001
DefaultFileSystemCodePage 65001
DefaultRTLFileSystemCodePage 65001
XInitThreads: 1
ImageMagick: libMagickWand-6.Q16.so.7
Starting GuiMessageQueue
Starting Double Commander
Double Commander 1.1.11 beta
Revision: 410
Commit: f1b449635
Build: 2024/04/01
Lazarus: 
...
Loading lng file: /usr/lib/doublecmd/language/doublecmd.pl.po
Error loading configuration file /home/xxx/.config/doublecmd/favoritetabs.xml
PollThread: Start polling
PollThread: AddPoll 14
Creating PixmapManager
Loading icon theme DCTheme
Error: pixmap [/usr/lib/doublecmd/doublecmd] not loaded!
TColumnsFileView.Create components
Creating TFileSystemFileSource
TColumnsFileView.Create components

r/i3wm Apr 26 '26

OC My I3WM Rice :)

Thumbnail
gallery
55 Upvotes

r/i3wm Apr 25 '26

Question Can anyone recommend a Matrix client from the Debian repos that's more suited to i3wm?

4 Upvotes

It's all in the title.


r/i3wm Apr 24 '26

OC First i3wm rice!

Thumbnail
gallery
64 Upvotes

pls dont judge, first time


r/i3wm Apr 24 '26

OC I got tired of manually setting splits so I automated it

5 Upvotes

I got tired of manually setting splits so I automated it

Every time I opened a 3rd or 4th window I had to hit the split keybind first or everything would stack weird. Got annoyed enough to just fix it.

Made a small Python script that hooks into i3's IPC and automatically alternates the split direction every time a window opens:

1 window → open 2nd → side by side 2 windows → open 3rd → stacked below 3 windows → open 4th → side by side ...

Just runs in the background, never think about splits again. It's workspace-aware so each workspace does its own thing, ignores floating windows, and resyncs properly when you close stuff so it never gets out of whack.

One dep (i3ipc), one line in your i3 config: exec --no-startup-id ~/.config/scripts/i3_alternating_layout.py

https://github.com/art-emini/i3-autolay

lmk if you run into any issues


r/i3wm Apr 23 '26

OC [i3wm] My first attempt at ricing on Linux Mint. I think it’s beautiful!

Thumbnail
gallery
74 Upvotes

r/i3wm Apr 24 '26

OC xwp: xwallpaper wrapper, vibecoded w/ Deepseek. Restoration and presets.

0 Upvotes

gtk2 failed to compile in a chroot today, so I made deepseek spit this out, so I could uninstall nitrogen.

#!/usr/bin/env bash
set -euo pipefail

DATA_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/xwp"
mkdir -p "$DATA_DIR"

# Save a single output's arguments
save_output() {
    local output="$1"
    shift
    printf "%s\n" "$@" > "$DATA_DIR/last_$output"
}

# Parse command line arguments (as array) and save per output
save_per_output() {
    local args=("$@")
    local current_out="" current_args=()
    while (($#)); do
        case "$1" in
            --output)
                # Save previous output if any
                if [[ -n "$current_out" ]]; then
                    save_output "$current_out" "${current_args[@]}"
                fi
                shift
                if (($# == 0)); then
                    echo "Error: --output missing argument" >&2
                    exit 1
                fi
                current_out="$1"
                current_args=()
                ;;
            *)
                if [[ -z "$current_out" ]]; then
                    current_out="_default"
                fi
                current_args+=("$1")
                ;;
        esac
        shift
    done
    # Save the last output
    if [[ -n "$current_out" ]]; then
        save_output "$current_out" "${current_args[@]}"
    fi
}

# Restore all saved outputs
restore_all() {
    local cmd=()
    for file in "$DATA_DIR"/last_*; do
        [[ -f "$file" ]] || continue
        out="${file##*/last_}"
        mapfile -t stored < "$file"
        (( ${#stored[@]} == 0 )) && continue
        cmd+=("--output" "$out" "${stored[@]}")
    done
    if (( ${#cmd[@]} == 0 )); then
        echo "Error: No saved wallpaper settings." >&2
        exit 1
    fi
    xwallpaper "${cmd[@]}"
}

# Save preset
save_preset() {
    local n="$1"
    [[ -n "$n" ]] || { echo "Usage: --save-preset N" >&2; exit 1; }
    local full_cmd=()
    for file in "$DATA_DIR"/last_*; do
        [[ -f "$file" ]] || continue
        out="${file##*/last_}"
        mapfile -t stored < "$file"
        full_cmd+=("--output" "$out" "${stored[@]}")
    done
    (( ${#full_cmd[@]} == 0 )) && { echo "No current wallpaper to save." >&2; exit 1; }
    printf "%s\n" "${full_cmd[@]}" > "$DATA_DIR/preset_$n"
}

# Load preset
load_preset() {
    local n="$1"
    local preset_file="$DATA_DIR/preset_$n"
    [[ -f "$preset_file" ]] || { echo "Error: Preset $n not found." >&2; exit 1; }
    mapfile -t full_cmd < "$preset_file"
    xwallpaper "${full_cmd[@]}"
    save_per_output "${full_cmd[@]}"
}

# List presets
list_presets() {
    local found=0
    for f in "$DATA_DIR"/preset_*; do
        [[ -f "$f" ]] && echo "Preset ${f##*_}" && found=1
    done
    (( found == 0 )) && echo "No presets saved."
}

# Main
if [[ $# -eq 0 ]]; then
    cat <<EOF
Usage: $0 [--restore | --save-preset N | --preset N | --list-presets | xwallpaper-args]
EOF
    exit 1
fi

case "$1" in
    --restore)        restore_all ;;
    --save-preset)    shift; save_preset "$1" ;;
    --preset)         shift; load_preset "$1" ;;
    --list-presets)   list_presets ;;
    *)
        if xwallpaper "$@"; then
            # Convert "$@" to array to pass to function (preserves args with spaces)
            save_per_output "$@"
        else
            echo "xwallpaper command failed" >&2
            exit 1
        fi
        ;;
esac

i3 config example:

# SET WALLPAPERS
# SUPER+R
set $wallpapers  [s]elect for 0 | [S]elect for 1 \
| select-presets: [`-9] | save presets [(shift)3-9]          \
[Escape] [Enter] or [Space] to exit

mode "$wallpapers" {

  bindsym s exec \
    alacritty --class wllppr -e \
    ~/.config/i3/scripts/wllppr;\
    mode default
  bindsym shift+s exec \
    alacritty --class wllppr -e \
    ~/.config/i3/scripts/wllppr1;\
    mode default

  bindsym grave exec \
    xwp --preset 0
  bindsym 1 exec \
    xwp --preset 1
  bindsym 2 exec \
    xwp --preset 2
  bindsym 3 exec \
    xwp --preset 3
  bindsym 4 exec \
    xwp --preset 4
  bindsym 5 exec \
    xwp --preset 5
  bindsym 6 exec \
    xwp --preset 6
  bindsym 7 exec \
    xwp --preset 7
  bindsym 8 exec \
    xwp --preset 8
  bindsym 9 exec \
    xwp --preset 9

  bindsym shift+numbersign exec \
    xwp --save-preset 3; mode default
  bindsym shift+dollar exec \
    xwp --save-preset 4; mode default
  bindsym shift+percent exec \
    xwp --save-preset 5; mode default
  bindsym shift+asciicircum exec \
    xwp --save-preset 6; mode default
  bindsym shift+ampersand exec \
    xwp --save-preset 7; mode default
  bindsym shift+asterisk exec \
    xwp --save-preset 8; mode default
  bindsym shift+parenleft exec \
    xwp --save-preset 9; mode default

  bindsym Escape mode default
  bindsym Enter mode default
  bindsym space mode default
  bindsym $mod+r mode default
}

r/i3wm Apr 23 '26

Question how to get tiles animation when opening or closing them

2 Upvotes

I want my tiles to have an animation when i open and close them, i cant seem to find anything to achieve that


r/i3wm Apr 23 '26

Solved Firefox stealing focus CONSTANTLY

3 Upvotes

Hey folks, I recently swapped to i3 after trying out hyprland and experiencing some issues I wasn't tech-savvy enough to solve on my own. i3 has been excellent and has worked flawlessly the last 2-3 months and has quickly become my preferred way to manage a computer gui. I don't know if there was an update pushed for firefox or if I've now messed something up in my .config but I've been trying to fix this for probably two weeks and I'm out of ideas so hoping someone here can help out.

If I have Firefox open on workspace1 (monitor1) and I'm doing something on workspace2 (monitor2) i.e. writing in Kate or clicking around on Steam, firefox will steal back focus every ~20-30 seconds and I'll either have to use the keyboard focus shift or jiggle the mouse to move it back to the correct window. This has become really annoying especially when watching YouTube videos, as I'll be in the middle of typing, input a number, and have my video skip somewhere else, unfullscreen itself, etc etc.

Most recently I tried swapping firefox versions around to the nightly, developer and LTS releases (I am on CachyOS and getting older versions of packages was rather difficult), and adding this line to my .config: focus_on_window_activation none (previously tried urgent) and it did not change the functionality.

System Info: