


I make things: electronics and software and music and stories and all sorts of other things.

They just seem kinda hacky and overcomplicated rn.
I was on NixOS for a while, which is sort of in this camp since the system build is deterministic an immutable, and I've had to switch away bc it's just annoying. Apps aren't made for immutability in mind, and sometimes when you (read: your OS) try to force them to, the burden falls on you to maintain it, not just the package maintainer. VS Code is a prime example. Some extensions just don't work right. It's not Nix's fault ofc, but that doesn't make it less impractical to use, so after 2 years away from Arch now, I've had to return.
Other immutable distros face similar issues.
On top of that, specific distros have reasons I wouldn't want to use them. I wouldn't use Bazzite, for instance, bc it is based on Fedora, and I won't use Fedora again. I liked Fedora when I used it, and it has things about it I like, but it has a glaring issue: anywhere it can be non-standard it is non-standard. For apps to run on Fedora there always has to have some weird location for a config file or a different way to install a program or some bug that only occurs on Fedora. Fedora be fedorain. That rules out Bazzite, Silverblue, etc. I call it the "RedHat Tax."
I wouldn't say I'm against an immutable distro tho; I just haven't found one for me yet. For now, BTRFS and backups + Arch are enough

I'm running Linus
Linux without X but with S... ystemd

I would, but I can't get through their captcha (even w/ adblockers, tracking, etc all disabled)

People who work at Apple: Completely Blank

"I will revise that part to reflect the correct approach."
Proceeds to spit out the exact same output

Don't leave out "nano duckduckgo" and "code brave"

And any project worth their salt will reject it for two reasons:
- Unclear message/changes (potentially too many changes at once)
- Not signed

Scrollables are neat. I think Niri or KDE + Karousel might be useful to me. Thanks for the tip

Yeah, I may just go back to Gnome/KDE.
I recently switched OS from NixOS to Arch which is why I wanted to give Hyprland a second try while I was messing with stuff.
I was on KDE before with not a ton of issue, but well, the tiling options on KDE are few and limited, so I wanted to go back and retry a dedicated tiler. I was on i3 and happy for a long time before switching to Wayland (which happened once I could get decent game performance), then I was on Hyprland for a while, then switched around a bit, and then settled on KDE once I discovered Polonium which I could live with.
I'm gonna give GNOME a shot for now, and just try not to tweak it too much (other than Pop Shell)

why can’t I just stop forcing myself to this PITA and just use the mouse faster?
You know that i3 has support for mouse, right? Really good support in fact.
I use the mouse all the time in tiling window managers, not exclusively keyboard shortcuts, especially for well, window management. Win + Right Click and drag to resize and Win + Left Click to move a window into place. However, unlike traditional desktops, when I move the window, it snaps to a reasonable and consistent tiling location instead of just left/right snapping, a random place it can get covered up, or tiled using some awful extraneous system like KDE's tiling system or some of the Windows little GUI popups. I also sometimes use floating windows.
The nice thing about tilers is they can do traditional usage well whereas traditional desktops cannot do tiling well. Heck, dynamic tilers can't even do tiling well.
I often make use of very complex layouts like this:
undefined
-------------------------------------- | Win A | Win B | | | | | |---------------| |--------------------| Win C | Win D | | Win E |---------------| | | Win F | --------------------------------------
That many windows with different priorities and visible at once is just not possible to do in traditional desktops or even in dynamic tilers like DWM or KDE's Bismuth plugin.
I need something that makes window organization EASY, and that is manual tilers.
I'll have to look into the scrolling compositor. That does sound interesting.
without keeping track and managing 10 virtual desktops
Also, I don't understand what you mean here. I'm very curious to what troubles you had with workspaces.
What is there to manage? Do you not use virtual desktops at all anymore? I use them even in traditional desktops (including Windows).
It's just a place to put more windows when you run out of room on a screen or when doing a different task, what's the difficulty there?
Did you always use all 10? I don't usually need more than 2, and if I do, then I don't usually need more than 4

Also, are you sure you want to use a tiling compositor on a gaming laptop
I can't go back to moving windows around by hand. It's so tedious. I can't stand it anymore. Even on Windows which I use for work I always install FancyWM to achieve some sense of tiling. It's just imo a superior way to use a computer.
That said, GNOME has the fantastic Pop Shell 2 which functions similar to Hyprland or i3, so that's fine on GNOME. Honestly, I'm hopeful for COSMIC and plan to try it out once it gets out of Alpha.
The problem I have with GNOME is I always end up breaking it in a way that I can't restore it. Some extension or GTK theme tweak or something, even when uninstalled, always seems to get it stuck in a bad state. It doesn't like customization. KDE does, but it doesn't have as good tiling support (there's Polonium, which is... okay).
Perhaps I'll try it again tho. I've used GNOME for several months at a time before, but I had problems when switching to Wayland a couple years ago initially (which I'm sure are fixed now).

What is the best setup for Wayland + Nvidia/Intel Laptop (Alternative to Reverse Sync)?
Not sure if this is a good place to ask for help, but I have scoured the internet and no one has a solution, so hopefully this question helps me as well as others.
I'm trying to get my computer to run at its best when on Hyprland. I have an MSI Raider GE76 which has an Nvidia GTX 3080 Mobile and an Intel Tiger Lake CPU with integrated graphics.
I typically have an external display over display port, an Ultrawide 3440x1440@60Hz, and the internal laptop display is on eDP at 1920x1080@360Hz. Note tho that while I often have the dual screen setup, I do need to be able to go to just the Intel display. The Nvidia GPU drives all outputs (DP, HDMI, Thunderbolt) EXCEPT for the eDP which is connected to the Intel card.
On X11, I could use reverse prime sync to use the Nvidia card for everything and just have the Intel card draw whatever the Nvidia card renders. This worked well. Unfortunately there isn't anything like that for Wayland, and I don't have a hardware switch to put the eDP on the

The modern version of Gtk and its APIs started with the switch to Cairo back in Gtk 2.8 circa 2005. While Gtk 3 and 4 have undoubtedly improved upon Gtk 2, they fundamentally still work in a similar paradigm and still have all the crust of a 20 year old library. Like most old software projects, it has some level of backwards compatibility and deprecates and adds slowly. Gtk is, like, the definition of legacy, and Qt is in a similar boat. They're OLD old.

I personally turn back on persistent sessions and history
I did as well.
My point is just that it makes sense to be the default in that browser given its inclination towards privacy.

just philosophically it should be kinda evident that over-concentration on one corporate controlled rendering engine isn’t a good thing
Totally with you on that point.
However, I feel now that Gecko has already lost. I was a long-time FF and later Librewolf user, but Websites don't care to support FF as much, so I'd have important sites break. I'd have to have a Chromium-based backup anyway.
So I've now given up on that from. I have no real choice but to use Blink in some capacity.

Right. So perhaps Librewolf isn't a good choice for Zorin OS

Could it have been because of Librewolf?
Some issues definitiely were, but I also noticed issues when going back to regular Firefox and on Firefox mobile and Mull (which is sorta like Librewolf principles but for FF Mobile).
it was mainly because Google could afford to implement new standards faster than Mozilla could
I think that's exactly what happens.
It definitely wasn't Firefox's fault for the compat issues.
Websites would work for months, and then one day only work in Chromium browsers. Sometimes they'd come back. Sometimes only parts would fail. Sometimes they'd never come back. These sites were changing things and breaking Gecko compatibility, but never Blink compatibility. I'd try turning off all the privacy settings, disabling ad blockers and extensions too, but nothing could fix it except using a Blink browser.
So I don't blame Firefox/Librewolf for this, but it also means I suddenly couldn't, say, access my loan payment as an example in Firefox. That's one that broke. I need that to work. It works in Chrome, but not in FF (actually I think it came back to working in FF eventually)
I was always having to have 2 browsers installed, Firefox-based for most things and a Chromium-based backup.
One day I realize that it doesn't make sense to use a FF-based browser, since if I have to have a Chromium-based backup anyway, I might as well just use a Chromium browser. I didn't want to use a it, I'm generally against it Blink, but I feel that Gecko has already lost the war. I have no choice. FF is not long for this world

It has to be the default tho, bc the whole point of Librewolf is that it's trying to by default be untraceable and private.
It's very easy to disable that and re-enable cookies and the like, but your default experience will fundamentally be private, which is its goal

What's wrong with Brave?
- Based on Chromium so good web support
- Decent privacy
- Built-in adblock
- Easy to customize
- Open Source
It's the browser I've chosen to use after getting fed up w/ Gecko's terrible web compatibility these days (coming from Librewolf).
What's wrong with it? How is it evil?

Slint
I really like Slint.
It has Python bindings, tho you wouldn't know it from the docs as it's brand new bindings.
However, it does WORK, and it works well.
Just look for python files in the examples and reference the slint docs (it uses its own UI lang for that stuff anyway).
I'm currently making an application in Python using Slint, and I really like it.
It also supports embedded systems, the web, and multiple languages, AND since it has its own UI lang, you can reuse parts of your UI code across different codebases
It seems to suit your use case.
Godot
Other than that, I second Godot.
HOWEVER
Godot's GD Script is not Python but rather a Python-like language. (in fact, in some ways, I'm glad it's not; there are things I prefer in GD Script).
This is important as you may want to use specific Python libraries which won't work with Godot!
You can, however, use GD Native to bind C++ code and thus C++ libraries, so you'll still be able to get done whatever you need to get done.
Iced
If you're not tied to Python, then I recommend the Rust library Iced as it is a very intuitive system. I really enjoy working with it.
Although, that said, Slint has great support for Rust, so maybe I'd recommend Slint anyway if you were gonna change language.
Warning Against Legacy
Avoid GTK, Qt, and TK at all costs imo. Also WinForms if ur on Windows.
They're old and crusty, and their APIs suck to use, even modern versions, and despite being aged, they're buggy still, not robust "tried-and-true" methods.
It's also hard to do dynamic stuff with them.
Just not well designed systems. Important, valuable to know bc they're used all over, but not well designed
Immediate
I would also try ImGUI.
It's meant more for gamedev UIs rather than Apps themselves (tho I've made a couple in it)
BUT
It's a totally different way of doing UI called "Immediate" bc you program the elements in a big loop, rather than event driven.
It's interesting and worth trying as a learning experience
React
And ofc, the Javascript/Electron world is huge and React is very popular with lots of tools. At least read up on it.

Well, it's gotta be a tiling system. And a good one. At this point I can't function in a non-tiling environment. Specifically a manual tiler with an auto-tile a la i3 w/ i3-alternating-layout or a dynamic tiler that still let's you break stuff (doesn't really exist).
It's just a better way to use a computer, and I can't go back. It's so much nicer. I would stop using a computer before I go back to dragging windows around.
And that rules out most DEs. It rules out Mac OS and Windows, as well, but at least on Windows I can almost get by with Fancy WM. It's "okay."
And speaking of just getting by, that's Polonium with KDE. KDE is pretty good as an "environment," but it doesn't have a tiler that meets my needs, or at least I thought it didn't until recently. Then I discovered Polonium. It works pretty well. Used it for several months (and still do on one machine). It's very bare bones tho, and is hard to configure the handful of floating windows I do want like popups. So KDE is just scraping by.
GNOME on the other hand has the excellent Pop Shell 2. But well, GNOME is GNOME. It's buggy when you try to use it a different way than intended. God forbid I want Qt, Gtk2, Gtk3, Gtk4, and libadwaita apps to all look nice on my system! It's clunky, but the tiling is excellent at least.
Now you mention XFCE. So what about that? You could use i3 as the WM for Xfce. I used i3 for years and years and years as my WM and know how to build a DE around it. Why not use Xfce + i3?
Well, the thing is X11 is as good as dead, and while XFCE now supports Wayland, you can't use a tiling system with the Wayland version of XFCE.
So what does that leave me?
Nothing. At least for a full on DE, which is what you asked.
There is not a single (pre-made) Desktop Environment that suits my needs. Not a one. Either it doesn't support good tiling, is too rigid, or hasn't switched to Wayland.
My only options are:
- Roll my own DE built around Hyprland/Sway, and since I'm on nvidia, those aren't fantastic options (albeit Hyprland works a lot better on Nvidia these days), and that's what I'm using.
- Deal with the slight annoyance of the under-implemented Polonium in KDE
Right now I'm on Hyprland. May go back to KDE bc multi monitor is being weird on Hyprland rn.
My one hope is that COSMIC polishes itself up and gets to its first real release.

ACBS - Another C Build System (compatible with C++)
I created a little side project over the past few days, a new build system for C and C++: https://github.com/blueOkiris/acbs/
I've seen a lot of discourse over C build tools. None of them really seem solid except for (some) Makefiles (some Makefiles are atrocious; you just can't rely on people these days). Bazel, cmake - they're just not straight forward like a clean Makefile is, basically black magic, but setting up a Makefile from scratch is a skill. Many copy the same one over each time. Wouldn't it be nice if that Makefile didn't even need to be copied over?
Building C should be straight forward. Grab the C files and headers I want, set some flags, include some libraries, build, link. Instead project build systems are way way way overcomplicated! Like have you ever tried building any of Google's C projects? Nearly impossible to figure out and integrate with projects.
So I've designed a simplistic build system for C (also C++) that is basically set up to work like a normal Makefi

ACBS - Another C Build System
I created a little side project over the past few days, a new build system for C and C++: https://github.com/blueOkiris/acbs/
I've seen a lot of discourse over C build tools. None of them really seem solid except for (some) Makefiles (some Makefiles are atrocious; you just can't rely on people these days). Bazel, cmake - they're just not straight forward like a clean Makefile is, basically black magic, but setting up a Makefile from scratch is a skill. Many copy the same one over each time. Wouldn't it be nice if that Makefile didn't even need to be copied over?
Building C should be straight forward. Grab the C files and headers I want, set some flags, include some libraries, build, link. Instead project build systems are way way way overcomplicated! Like have you ever tried building any of Google's C projects? Nearly impossible to figure out and integrate with projects.
So I've designed a simplistic build system for C (also C++) that is basically set up to work like a normal Makefi

It's nothing special, but it's special to me :)



OoT-lineage-Zelda-like Camera and Movement in Godot 4
Video
Click to view this content.
I'm making a game that takes heavy inspiration from Zelda games like Ocarina of Time, Wind Waker, and Twlight princess, i.e. OoT-lineage Zelda as opposed to BotW & TotK and games that stem from Link to the Past. It's not a fan game, of course, but if you like OoT/MM/WW/TP/SS, then you'll (hopefully) like my game.
One central aspect to nail is the camera system these games use. There's some variation, so I've picked one to "clone." I'm basing this camera off of Wind Waker's. It has a default mode where Link runs around the camera with left and right and pushes/pulls the camera with up and down. If you wait long enough, the camera will move to be behind him, and of course there's a Z-targeting mode that will force the camera to move behind him and let him strafe. Finally, there's a free camera mode that works like the camera in a lot of modern third person games.
In terms of movement, there's walking and running, but jumping is relegated to hopping across short gaps in these games, and

An unexpected similarity, but a welcome one



How to declaratively define Strongswan VPN connections for NetworkManager?
I have enabled the strongswan plugin for Network Manager via networking.networkmanager.enableStrongSwan
.
I manually set up my work VPN using nm-applet, but obviously this won't come with me if I reinstall NixOS, so I'd like to set up the VPN using nix.
The problem is that networking.networkmanager doesn't seem to have any sort of vpn configuration system. How would I go about this?