Add optional GUI for Arch Linux
Up until now these dotfiles were laser focused on the command line. It does currently install a few graphical apps but it never meddled with your desktop environment. That's going to change because I recently picked up a laptop that I plan to run Arch on. I already formatted it last night and all I've done is run archinstall.
Edit: Originally back in August I was thinking Hyprland but that turned into Niri. The comments have more details.
Opt-in to begin with
An optional environment variable can be set to enable this, this way you can easily skip this if you're happy with what you have but still want what these dotfiles for your CLI. At some point in the future it can be turned on by default and the initial package installation warning screen will show a callout letting you know about it so you have a chance to turn it off before your system is modified.
OS support
These dotfiles support Arch Linux, Debian, Ubuntu and macOS. I think it will be straight forward to only optionally install and configure these new GUI related tools when using Arch Linux and not within WSL 2.
With macOS you already have a full blown desktop environment so it's a no brainer not to mess with that.
I worry a little about Debian / Ubuntu for this because I'm not sure if all of the packages will be available and while I use Debian all day on servers, I don't know about supporting a full blown GUI set up for it when I'm not using it personally. Also I'm guessing folks using Ubuntu or Debian may not be interested in a custom DE / window manager set up. Let's first focus on Arch Linux and see how it goes.
Game plan
Use Arch Linux on the laptop in my day to day to fully immerse myself. Learn, tweak, assess, experiment and once things are reasonably stable I will start moving those new additions into this repo's install script and update the docs. All of that will be done in a PR. I imagine I won't be committing a lot to begin with and things will change as I go.
If you have thoughts or suggestions feel free to reply!
🚀
Overall I'm excited! I've been wanting to switch to native Linux for ~10 years but was always held back by issues with my computer's hardware around video editing. This laptop allows me to go all-in with Linux without disrupting my main machine.
I'm not convinced I will be sticking with Hyprland. I used i3 for a long time on my Chromebook that I modified to run Linux. That machine was super underpowered and it ran great but I never drank the full kool-aid for tiling window managers.
Having used this new Hyprland set up for only a few days I'm not sold. It's nothing against Hyprland, it's tiling by default. Sure it looks cool, the minimal animations are nice and its configuration system is easy to customize for multiple machines being served from the same dotfiles since it supports variables and including files.
I have a lot more to say on this topic which I'll make a video about in the future but wanted to share this early in case anyone cares enough about my dotfiles to get an early look into the evolved direction of them.
My headpace is currently at:
- Maybe I stick with Hyprland
- I kind of want to switch to Niri because a dedicated scrolling environment already feels quite good with Hyprland's scrolling plugin but its plugin ecosystem for scrolling feels like it's put off to the side and is pretty buggy with multiple monitors
- The thing stopping me from really using Niri is its config system is not suitable for distributing dotfiles and the author has mentioned it's a really hard problem to solve to add includes and other features for merging and modifying a base config
- Just roll with KDE Plasma
I don't want to compromise in the end but we'll see how it goes.
It looks like there's incoming support for more dynamic configs in Niri through https://github.com/YaLTeR/niri/pull/2340. This looks really promising.
I'm probably going to hang tight and continue using Hyprland for now and I'll see how that Niri PR goes and then try it out if it gets merged into main and released.
The author of Niri created an in-depth PR to add dynamic config support. It's merged but not released yet.
I started to use Niri and I'm a fan. I will be using it instead of Hyprland. KDE is still up in the air, my thought process at the moment is I'll use Niri for the time being.
I'll be traveling out of the country for almost a month so I won't be publishing anything yet, and we still need to wait for Niri to release dynamic config support but the good news is, I've tweaked quite a few things for the GUI environment already. It's not fully baked but very usable.
Exciting times ahead!
The latest Niri release has been out for a bit. Dynamic configs work perfectly, I've been using it for a bit.
By December 31st 2025 my main machine will be on native Linux no matter what. These dotfiles will be updated around then or basically when I'm confident everything is working on multiple devices.