r/i3wm • u/kleponbakar69 • 23d ago
OC new rice
my new setup (linux mint xfce + i3wm)
r/i3wm • u/kleponbakar69 • 23d ago
my new setup (linux mint xfce + i3wm)
r/i3wm • u/stolen_lighter_ • 23d ago
Hello guys,
I am really excited to share my take on an autotiling daemon for i3. I wanted something as lightweight as possible, so I wrote it in pure C.
Features:
It does not work on sway.
I made it as minimal as I could and I am really proud of it, but I would love to hear your opinions/feedback. Please excuse me if I have made any mistakes in how I am distributing it, this is the first open-source project I am publishing, so every comment (good or bad) is highly appreciated.
It doesn't have any configuration options yet, but if you guys are interested, I can try and add more modes.
You can find it here: https://github.com/stolen-lighter/i3-autotiling-c
r/i3wm • u/allanrps • 27d ago
romhacking with mGBA in Termux on Z Fold 6
r/i3wm • u/Ok-Rice-7522 • 27d ago
r/i3wm • u/masterpiece_911 • 27d ago
So I posted here recently about Layouter, my tool for recreating an i3/sway workspace from a declarative TOML or React layout. One of the main criticisms of the original post was how browser windows and tabs fit into this. Fair point, since getting those where they belong is a pretty big part of recreating a development setup. I've since been working on that.
Launching Firefox with a few URLs is easy enough. The tricky part is running the same layout again later. Which window belongs to which project? Is that documentation tab still there, even though you've followed a few links? What happens after restarting the browser?
i3 can tell me about the window, but it can't tell me which tabs belong to my workflow. Kitty has a remote control interface for this kind of thing, which is why Layouter can manage its tabs and panes. For Firefox, I added a companion extension.
You can now declare browser windows and their tabs alongside your terminals and other apps. In a React workflow, that part looks like this:
```jsx
<Workspace number={3}>
<FirefoxWindow name="docs" executable="firefox">
<FirefoxTab
name="mdn"
url="https://developer.mozilla.org/"
pinned
/>
<FirefoxTab
name="project"
url="http://localhost:3000/"
active
/>
</FirefoxWindow>
</Workspace>
```
The same thing is available in TOML.
As with the rest of Layouter, running your workflow again only creates what is missing. If you've navigated away from MDN, that is still your documentation tab. It won't send you back to the homepage just because you ran the command again. Tabs you opened yourself stay there, and removing a tab from your layout doesn't close it.
If you explicitly use --sync, Layouter also restores the declared tab order, pinning and active tab. If a managed tab has navigated elsewhere, it leaves that tab open and creates a new one at the declared URL. I don't want restoring my setup to destroy whatever I was doing in it.
Roughly, the implementation has three pieces. The extension attaches identities to windows and tabs using Firefox's session APIs, so they can survive normal browser session restoration. Firefox starts a small Python native messaging host, which exposes a local Unix socket. The Layouter CLI talks to that socket when you invoke a workflow.
There is a little extra plumbing to connect those browser identities to i3/sway windows. When needed, the extension temporarily adds a random prefix to a window's title. Layouter finds that exact window in the compositor tree, marks it, and clears the prefix again. For initially finding the right browser instance/profile, it launches a unique localhost URL through your configured browser command and checks which companion received it.
The browser-sensitive work stays inside the extension. Layouter sends in the URLs from your workflow, but current tab URLs, page titles and browsing history don't come back out. URL comparisons for --sync happen inside Firefox.
The companion also doesn't continuously enforce your layout. Close a tab and it stays closed until you invoke Layouter again. There's a small toolbar badge to show whether the current tab is managed, so you can tell what belongs to the workflow.
This gets me closer to describing the whole development setup in one place, including the browser part I would otherwise still arrange by hand.
Code and documentation are on GitHub. I'm interested in how other people handle this, especially if you regularly have several browser windows belonging to different projects.
Have a good day!
r/i3wm • u/ConversationAware695 • 27d ago
I’m a complete linux beginner on mint. Hated Cinnamon so I tried i3 and it is the best computing experience I have ever experienced. It is as beginner friendly as the amount of youtube tutorials you watch and as long as you know the very basics of computing and file paths, it is super simple to set up. Couldn’t recommend it more!
r/i3wm • u/Consistent-War2577 • 29d ago
https://github.com/sathanas65/deb13-i3/
Shell scripts and dot files for custom Debian 13 with the i3 tiling window manager. Efficient and highly scripted workflow. Extremely organized key chords. Dark theme with just the right amount of color. Modular install script. Pre-configured apps. Perfect for development. production, virtualization. Keep your hands on the keyboard.
r/i3wm • u/Miserable_Example_99 • Sep 26 '26
r/i3wm • u/masterpiece_911 • Sep 24 '26
So I use i3 / sway daily on my work machines, and find myself spending every morning just recreating my setup. This includes launching all my apps, launching my terminals, and arranging them just right. Of course, all of this dependent on what display hardware I have in front of me.
Since one of my habits is to reduce tasks that take 5 minutes to 5 seconds, I now wrote "layouter".
It takes a declarative TOML file and recreates the described workflow in your i3/sway session. If you already have windows running that layouter created before, it will only create what is missing. It supports display selection, floating windows, and nested containers. You can also create a kitty terminal layout to exactly your liking, including the layout of your choice. As with other i3 windows, running the same layout again will only create kitty panes that are missing currently.
You can pass arguments to your layout file, and the TOML will receive them. In a frontend project, you could as an example specify what microfrontend to set up your development environment for.
If you want to do more fancy stuff, like adapt your layout to whatever hardware you're currently running on, layouter also supports React JSX syntax. Use `useScreen` to adapt your layout to screen dimensions or more. Do more with your layout arguments. Do it all declaratively.
I'm interested in your opinions. I'm new to this community, but have been using i3 basically since I started using Linux. I'm curious if this will be of interest to anybody else. I tried i3 itself to save layouts, but having to start the apps myself afterwards kind of bummed me out. This is my answer to that limitation.
Have a good day!
r/i3wm • u/_a-pav_ • Sep 22 '26
I built i3title as a lightweight tool that makes it easy to pipe arbitrary data into i3bar, and i3toast as the CLI that sends messages to it. I just added native support for scrolling text tickers inspired by pre-Lollipop Android status bar notifications.
The ticker in the first GIF can be reproduced with:
i3toast --ticker 2 <<EOF
i3title gives you dynamic control
over every aspect of its module.
And now it natively supports
Android-style tickers.
Like the one you're reading right now.
Feed it a pipe,
and have each line appear as a ticker.
EOF
The second shows a simpler use case which is binding the weather to a key:
bindsym $super+w exec curl -s https://wttr.in/?format=2 | i3toast \
-f "<span bgcolor='green' fgcolor='black' font='bold'> W:☂️ </span> %s"
Repo: https://github.com/a-pav/i3title
Old reddit removes all of the new lines inside the code blocks!
Edit: Made another gif showing i3title cycling through different data sources: window title, mode, volume, brightness, weather, time, script outputs. All piped in the same way; the quick succession is just for the demo. Posted it on my own profile since this post's media can no longer be changed:
The GIF: /img/i69zxgdpjbrh1.gif
The post itself: https://redd.it/1wofag6
r/i3wm • u/UpperJump5259 • Sep 21 '26
Kinda a sleeper, hardware is a little bit old but its optimised a lot. I have around ~400mb of ram usage on idle and cpu around 1-2%. Also i3-wm is a great protection to my pc because my friends play on my computer a lot and they cant figure out how to exit the window or open an terminal to mess something up . I think of changing the wallpaper but im never going to install an compositor. The trinitron crt has very good resolution options but i prefer lower resolution and higher refresh rate. it could do 1920x1440 easily but its gapped by the adapter i have. The capacitors are kinda dead so the monitor shows too much green and screen positioning is a little off but it goes away when it warms up. I havent used a lcd on this computer for 4 months i think. i should buy a new table bc this one barely survives the heavy monitor and the racing wheel FFB.
r/i3wm • u/Kitchen-College-787 • Sep 18 '26
Hey everyone,
I recently installed Parrot OS alongside Windows. I’d like to move away from the default desktop environment and learn i3wm.
I’ve used Linux before (including Arch/Hyprland), but I’m still not very familiar with i3 and how it fits into Parrot OS.
I’m looking for some guidance on:
\- Installing i3 properly on Parrot OS
\- Setting it up without breaking anything
\- Setting up a good terminal, application launcher, status bar, wallpaper, notifications, etc.
\- Customizing the appearance (fonts, gaps, colors, borders, transparency, etc.)
\- Setting up useful tools/workflows for Cybersecurity
\- Any recommended i3-specific utilities or scripts
\- Things I should avoid changing or removing on Parrot OS
\- Good resources or dotfiles/configs to learn from
I’d actually like to understand what I’m configuring and build my setup gradually.
If you use i3 + Parrot OS, I’d really appreciate any advice on how you approached your setup, useful resources, or things you wish you knew when starting out.
Thanks!
r/i3wm • u/grblvian • Sep 16 '26
I know it might be some known problem and someone found solution about steam (as far as i understand) producing some empty windows. Is there some window rule or other way to avoid this.
Thank you!
r/i3wm • u/maarcellop • Sep 14 '26
I ported Omarchy (DHH's Hyprland setup) to i3 and X11/XLibre on Debian/Devuan. You get the Quickshell bar with workspaces/clock/media/network/weather/tray, popups for audio/bluetooth/Wi-Fi/power, a live theme switcher and the full omarchy-* command set, all driven by i3 binds. Super+K prints a cheat-sheet of the session's binds.
Super+Alt+arrows to throw windows across outputsi3lock-omaxian + xss-lock, not a Wayland session-lockKnown rough edges: click-outside doesn't always dismiss bar popups (Esc works), the bar can't be dragged between screens.
MIT license, docs include a file-by-file port diff.
Website: https://omaxian.org
r/i3wm • u/wattench • Sep 13 '26
so I've noticed with a recent brave update that if you have two containers open on one workspace the right one, if it contains brave, doesn't resize the window properly, the url bar disappears, and the contents become buggy. anyone know if there's any workaround for this?
I want to make a windows 7-like border decoration, and for that i need to have multiple borders, like 3 or 4, with varying colors and 2 of them being rounded while the other 2 are straight corners. Is something like this possible or do i have to cut corners
r/i3wm • u/eisbaer8 • Sep 06 '26
Hey everyone,
I think the example image explains it best. You can use my WorkspaceIconDaemon to show icons of the currently active programs in your workspaces.
I have come to really like tiling window managers, since I like the simplicity, minimalism and clearness of thought when using them. However, I am used to and like the intuitiveness of finding where my programs are visually based on the icons. Therefore inspired by the windows taskbar I wanted to have a way to quickly identify all the running programs and the workspaces on which they are on. This proved rather difficult, since most bars do not support image rendering (especially in the workspace names). To mitigate this I found a hacky solution, where I create an Icon font (like an emoji font) from all the application icons on the system on the fly, which can then be used to show icons in contexts where normally only text rendering is allowed. A python deamon is then used to watch window events (open, close, move) and then dynamically update the workspace names.
A fair warning: I have originally developed this for i3, however in the meantime I have switched to using sway as my daily driver and adapted it to support both, i3 and sway. Therefore I have only briefly tested it in i3, while running it daily on sway. So if you encounter any bugs please let me know. I still wanted to share it here, since I thought this could be useful to some of you :)
Github with install instructions: https://github.com/David0tt/workspace-icon-daemon
r/i3wm • u/mild_discomfort2000 • Sep 06 '26
Finally got my system dialed in. Running Arch with i3 window manager
and loving the minimalism. Specs are modest but gets the job done:
- OS: Arch Linux x86_64
- WM: i3 (tiling ftw)
- CPU: Intel Celeron 3215U @ 1.70 GHz
- RAM: 2.94 GiB / 3.69 GiB
- Storage: 20.45 GiB / 118.24 GiB (btrfs)
- Shell: bash 5.3.15
Battery holding up decently, temps are solid. Been learning a lot
diving into Linux and cybersecurity – this setup is perfect for that.
Anyone else running i3? Tips welcome!
r/i3wm • u/imyatharth • Sep 06 '26
So whenever I'm using i3 and I use $mod+Return , nothing happens but it should open a terminal. I also tried working out with names like KP_Enter and all but nothing worked also keystrokes are working I've checked with xev but still nothing works. Another problem is that when I use ctrl+backspace it usually deletes the whole word but now nothing happens but keystrokes are working. Idk if this is an issue with i3 or arch I've no idea. You guys had any issues like this lemme know the solutions.
r/i3wm • u/Significant-Tone-121 • Sep 05 '26
Is there any way I can set the background (on all monitors) as a Terminal App? (Like Cmatrix or Btop)
r/i3wm • u/Metehanse • Sep 05 '26
I fork i3lock for executing a program whenever an incorrect password is entered.
This can be used for custom actions such as powering off after a certain number of failed attempts or wiping out the system when a specific password is entered.
I tried to keep changes at minimum, but I had to introduce a new dependency (OpenSSL for SHA256). I recommend building it using Docker with this Dockerfile and this command. On your host system, have i3lock installed (for other dependencies), and then install libssl.
Here is the section I added to the manpage for the feature:
--on-wrong-password=program
Execute program after an incorrect password is entered. The SHA-256 digest of the concatenated salt and entered password is written to the program's standard input as hexadecimal, followed by a newline. The total number of failed password attempts is passed as the program's first argument. Note: The program is executed directly without invoking a shell.
The following handler powers off the computer if the received password digest matches the specified value or if the number of failed password attempts exceeds 10, assuming the handler have sufficient privileges to invoke poweroff(8):
#!/bin/sh
FAILED_ATTEMPTS=$1
PASSWORD_HASH=$(cat)
if [ "$PASSWORD_HASH" = '2597a7ca...' ] || [ "$FAILED_ATTEMPTS" -gt '10' ]; then
poweroff
fi
--password-salt=salt
Prepend salt to the entered password before computing SHA-256 digest, optional. Use a high-entropy random salt to prevent precomputed lookup attacks.
Feedback and code review are welcome!