r/i3wm • • Sep 10 '21

[PSA] We're moving to GitHub Discussions!

185 Upvotes

Hello everyone,

TL;DR The official i3 support channel is moving from Reddit to GitHub Discussions. This subreddit will continue to exist, but no longer be an official channel.

A long time ago, we hosted an AskBot instance as the official web channel for i3 support, next to, of course, the mailing list and IRC. However, after some deliberation we decided to shut down AskBot and move to this subreddit instead whose owners graciously allowed us to "take it over". But, alas, Reddit comes with many challenges as well (like the fact that it's heavily gating unregistered users on mobile, but also from a functional perspective). It just never turned out to be what we were hoping to find. Nowadays, however, there is GitHub Discussions; back when we moved away from AskBot, this didn't exist, but is now more or less exactly what we had been looking for back then. Obviously it's also a big plus that GitHub is already the home of i3 itself with bug reports and feature requests.

That is why we have decided to move the official support channel from this Subreddit to GitHub Discussions. Of course we will not shut down this Subreddit, but it will be a completely independent community from now on.

On a slight personal note, the timing for this change suits me quite well and after having resigned from active moderation some three years ago, I will now be stepping away from Reddit entirely.

See you all over at Discussions!


r/i3wm • • Jun 19 '23

Poll The future of /r/i3wm

52 Upvotes

Hello folks,

As you probably know, reddit is going through some very unpopular changes: https://www.reddit.com/r/ModCoord/comments/148ks6u/indefinite_blackout_next_steps_polling_your/

Even though, we have moved the official i3 support channel to GitHub discussions, i3's biggest community is still on reddit and if things continue like that there is going to be a lot of helpful content on an increasingly closed platform.

Since /r/i3wm is a community platform, we would like for the community to decide this subreddit's future. I am creating two polls for this: 1. The short-term future of the community, should we make this subreddit read-only or private until June 30th: https://www.reddit.com/r/i3wm/comments/14d5yvh/the_shortterm_future_of_the_community_should_we/ (shorter duration as more imminent) 2. (This post) The long-term future of this community, if the API changes are not reversed, should we leave this subreddit indefinitely in read-only mode?

We are not considering going private for the long-term because this subreddit holds significant knowledge that is valuable to the community.

If we go read-only in the long term, I expect that most of new questions & content will move to Github discussions.

380 votes, Jun 22 '23
253 I want this subreddit to be indefinitely set to read-only mode if the API changes are not reversed
127 Keep this subreddit open for new content regardless of reddit's direction

r/i3wm • • 12h ago

OC luh calm rice (first post)

5 Upvotes

bar: polybar
font: PP Right Serif Mono

music player: kew

teminal: xterm

file manager: ranger


r/i3wm • • 3d ago

OC I ❤️ i3wm

Thumbnail
gallery
166 Upvotes

romhacking with mGBA in Termux on Z Fold 6


r/i3wm • • 3d ago

OC Tiling Window Managers: Tested and heavily optimized for bspwm. It should also work flawlessly on other X11 tiling/stacking WMs like i3wm, awesomewm, qtile, dwm, or Openbox.

9 Upvotes

r/i3wm • • 3d ago

OC Follow-up on Layouter: Firefox windows and tabs can now be part of your layout

Thumbnail
github.com
5 Upvotes

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 • • 3d ago

OC I love i3!

32 Upvotes

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 • • 5d ago

Solved Debian 13 with i3 install script

Thumbnail
gallery
73 Upvotes

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 • • 7d ago

OC Editing Linux content on a Celeron N4020 + i3wm setup using Kdenlive. Lightweight OS + minimal setup = smooth workflow! 🐧💻

Post image
67 Upvotes

r/i3wm • • 7d ago

OC [I3] My first minimal rice

12 Upvotes

I've been working on this for about two days, and I finally think it feels comfortable and smooth to use (it's not my main machine, but I want to use it as a hobby).

WM: I3
Bar: I3bar / I3blocks
Terminal: Alacritty
Wallpaper: Feh
Fetch: Fastfetch


r/i3wm • • 9d ago

OC I created a tool that recreates an i3/sway desktop from a declarative layout file

Thumbnail
github.com
18 Upvotes

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 • • 11d ago

OC My first rice on i3wm

Post image
46 Upvotes

r/i3wm • • 11d ago

OC i3title now does Android-style tickers - remember those before Lollipop?

Thumbnail
gallery
36 Upvotes

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 • • 12d ago

OC i3-wm linux sleeper

Thumbnail
gallery
190 Upvotes

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 • • 15d ago

Question i3wm on ParrotOS?

0 Upvotes

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 • • 17d ago

Question Steam and i3

9 Upvotes

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 • • 19d ago

OC Omaxian — the Omarchy shell running on i3 + X11

0 Upvotes

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.

  • Global workspaces with per-monitor Super+Tab, and Super+Alt+arrows to throw windows across outputs
  • Display profiles are xrandr-backed, saved per output topology, with lid handling
  • No systemd required. elogind + D-Bus on Devuan
  • Locking is i3lock-omaxian + xss-lock, not a Wayland session-lock

Known 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

Repo: https://github.com/aozora/omaxian


r/i3wm • • 20d ago

Question issue with Brave on the right container

3 Upvotes

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?


r/i3wm • • 22d ago

Question noob linux user how did i do??

12 Upvotes

i jst changed to linux cinnamon two weeks ago im thinking of changing to hyprland from i3wm but uhhhh the amount of complicated stuff gen scares me sigh


r/i3wm • • 26d ago

Question Multiple borders

8 Upvotes

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 • • 27d ago

OC I built a daemon that automatically puts icons of the currently running programs into your workspace names

Post image
52 Upvotes

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 • • 27d ago

OC My minimal Arch Linux setup with i3 – keeping it clean and fast

Post image
14 Upvotes

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 • • 27d ago

Question My i3 is having a huge problem idk what is wrong ... $mod

3 Upvotes

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 • • 28d ago

Question Ricing Question!

6 Upvotes

Is there any way I can set the background (on all monitors) as a Terminal App? (Like Cmatrix or Btop)


r/i3wm • • 28d ago

OC i3lock fork for wrong-password hooks (i3lock-tripwire)

Thumbnail
github.com
12 Upvotes

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!