For me, I really want to get into niri, but the lack of XWayland support scares me (I know there’s solutions, but I don’t understand them yet).
Also, I stopped using Emacs (even though I love its design and philosophy with my whole heart) because it’s very slow, even as a daemon.
NixOS
Nix flakes, me.
I just started yesterday in a VM. It’s no stress and you can easily put your configuration on metal after. Pretty fun stuff.
The most satisfying part of the NixOS process is deploying to bare metal and watching it work exactly as you intend it to
I have my garuda installation just where and how i want it to be. NixOS just always seemed very interesting, but i don’t want to run it on my daily machine.
Don’t, you can still install nix into Garuda. Works great as a separate package manager that won’t get in the way.
Agreed, but I found getting NixOS the way I want it, to be super overwhelming, and documentation simply sucks. I’ve been thinking of forking ZaneyOS (Link: https://gitlab.com/Zaney/zaneyos) and basing my NixOS config on it. Otherwise, it’s just too much.
I tried it a while back, thought it would be good for my servers, but at the end of the day I found that it was a lot of learning for a very small benefit that could be achieved differently. Instead I focused on learning Ansible which also allowed me to write configs to deploy lots of services to my servers. I still want to learn Nix at some point, but I feel it’s a lot less important if you have an Ansible playbook that does the same thing and even more for any distro you might care to install.
I think the problem is that most people dive right in and go to NixOS which has its quirks as a linux OS (see FHS). The Nix language is great at building and moving source code between computers, really any big collection of binaries. If you don’t do that, try just using the nix-shell command to instantly run a piece of software without installing it. You can write a shell.nix file to hop into and out of an environment with whatever software you need. Once you can write a couple .nix files then move onto NixOS; which after all is just a big collection of binaries.
My drive to nix was so I could simply manage what packages I had installed with a text file. If I removed something from the file, I expect it to be uninstalled. I never found a tool/wrapper for apt to do this.
If you want to start with nixos, I would take whatever distro you are on and install nix and then home manager. Then, you can slowly migrate your user configuration over without starting from scratch. That worked really well for me going from ubuntu to nixos.
Estroge- oh, I’m in the Linux community whoops
I’d just like to interject for a moment. What you’re refering to as Estrogen, is in fact, GNU/Estrogen, or as I’ve recently taken to calling it, GNU plus Estrogen. Estrogen is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called Estrogen, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.
There really is a Estrogen, and these people are using it, but it is just a part of the system they use. Estrogen is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Estrogen is normally used in combination with the GNU operating system: the whole system is basically GNU with Estrogen added, or GNU/Estrogen. All the so-called Estrogen distributions are really distributions of GNU/Estrogen!
Is your gender POSIX-compliant?
“I use Estrogen as my operating system,” I state proudly to the unkempt, bearded man. He swivels around in his desk chair with a devilish gleam in his eyes, ready to mansplain with extreme precision. “Actually”, he says with a grin, "Estrogen is just the kernel. You use GNU+Estrogen!’ I don’t miss a beat and reply with a smirk, "I use Alpine, a distro that doesn’t include the GNU coreutils, or any other GNU code. It’s Estrogen, but it’s not GNU+Estrogen.
The smile quickly drops from the man’s face. His body begins convulsing and he foams at the mouth and drops to the floor with a sickly thud. As he writhes around he screams “I-IT WAS COMPILED WITH GCC! THAT MEANS IT’S STILL GNU!” Coolly, I reply “If Testosterone was compiled With gcc, would that make it GNU?” I interrupt his response with “-and work is being made on the kernel to make it more compiler-agnostic. Even you were correct, you wont be for long.”
With a sickly wheeze, the last of the man’s life is ejected from his body. He lies on the floor, cold and limp. I’ve womansplained him to death.
Whenever I see this spin, I just want to say: “No it wasn’t. It was compiled with Clang.”
No, no - legit! Do go on.
I have my Estrogen tablets sitting on a shelf waiting for me to finish with fertility preservation
docker I guess, I still don’t know how it works, create them, etc
You don’t have to know how it works in order to use it. I don’t know either but I could host services using docker. trust me it’s way easier than it seems.
Same here. Even easier if you use an app to manage it for you like dockge, portainer, Cosmos, etc.
You don’t have to… if the project you want to use has a good setup process. Otherwise you’ll be scouring Docker docs, GitHub issues, and StackOverflow for years.
Docker, how they work?
Docker? I barely know her!
I’ve been using linux on and off for 20 years and docker reignited my interest for running linux. There’s plenty of good guides and free courses, if you need help finding one - let me know and I’ll send you a YT playlist.
How to docker-compose in thirty seconds.
Simply make a file called
compose.yaml
Then paste in the text from your application’s docker-compose instructions.
Often the timezone needs to be set, along with the volume
Example:
volume: /mnt/hdd/data:/data
This means the application’s data directory will be mounted at /mnt/hdd/data
Then
docker compose up -d
You’re done, that’s all there is.
docker-compose is fantastic because in a single compose.yaml file you can list multiple services.
For example, my compose.yaml file contains my sonarr/radarr/bazarr/lidarr/prowlarr/qbittorrent/deemix/jellyfish/jellyseerr
And I can update them all by running a shell script made of three lines.
its counter intuitive to learn but a godsend after you learn it
And then when to do learn it, it pisses you off when something doesn’t have a freely available image.
Docker compose is amazing. I don’t even know how many things I’m running right now. Hell I’m running things I didn’t even use! (I could easily disable or delete them; I’m just lazy)
Bcachefs, and bcachefs on root. Need something with filesystem level encryption instead of LUKS, and *ubuntu’s and derivatives have all abandoned ZFS on root installs now.
What’s your use case for FS-level encryption? LUKS has worked for me so far, I wonder where I’m missing out.
Bcachefs has filesystem encryption without LUKS? Did this have an audit? I use BTRFS and it is fine, but boot is unencrypted (using TPM would be cool)
https://en.wikipedia.org/wiki/Bcachefs
Bcachefs is a copy-on-write (COW) file system for Linux-based operating systems.[3] Features include caching,[4] full file-system encryption using the ChaCha20 and Poly1305 algorithms,[5] native compression[4] via LZ4, gzip[6] and Zstandard,[7] snapshots,[4] CRC-32C and 64-bit checksumming.[3] It can span block devices, including in RAID configurations.[5]
I see it has an audit back in 2017, but I’ve yet to find anything newer. The finding was good, but suggested further audit be done.
I dont see the difference to BTRFS apart from encryption and maybe caching? I was always confused why people hype it so much.
Interesting, yes I wouldnt not use LUKS if the alternative is less known, not used by enterprise distros
The tiered storage stuff is pretty cool. You can say “I want this data on this disk, so if I get a cache miss from a faster disk/RAM it’ll come from this other disk first.”
I believe it also has some interesting ways of handling redundancy like erasure coding, and I thiiiink it does some kind of byte-level deduplication? I don’t know if that’s implemented or is even still planned, but I remember being quite excited for it. It was supposed to be dedupe without all of the hideous drawbacks that things like ZFS dedupe have.
EDIT: deduplication is absolutely not a thing yet. I don’t know if it’s still on the roadmap.
It’s mainly supposed to be simpler and by extension faster than btrfs (which is kinda proven by the fact that fewer devs made this thing work in less time when compared to btrfs). It happens to enable some extra features that way too.
However, while btrfs annecdotally had many issues, it’s used by big players like SUSE and even bigger ones like Facebook these days. bcachefs on the other hand is nowhere near as battle tested, so I’ll stay away from it for a little longer.
Does it have the self-healing capabilies of
btrfs scrup
andbtrfs defragment
? I guessbtrfs balance
is b-tree specific.I heard BTRFS is bettter than EXT4 because it can do these things, EXT4 cant
Bachefs is in the kernel now so trying it on a spare drive or partition is super trivial these days depending on distro. You only need a few minutes of time.
Getting it on root is a bit harder as almost no installers support it yet. The only distro I can think of is CachyOS.
It’s far more ready than Wayland, get it into these distro’s installers! Are you listening, distros?
I want to use Neovim but I haven’t gotten around to really learning it yet.
I used neovim but recently switched to helix and highly recommend it. If you haven’t tried nvim yet, give helix a try before deciding. A good way to compare is do the tutorial of each and see which you like more
nvim +Tutor
andhx --tutor
(orhelix --tutor
).If you’re a current vim user the helix keybindings are only a small learning curve after the tutorial, and feel a lot smoother imo
I love Helix. I like that it pretty much works out of the box and the only thing you have to do is install language servers and in some cases configure them, but that’s (mostly) well documented. No need to install plugins or use a preset “distribution” like with NeoVim. I also like the built-in keyboard shortcut hints, for example when you press g (goto) it shows you what key will do what.
The way Helix does “select first, then act” is subjective, but I like it.
This is the reason I liked kakoune right away after I started using it: select, then act, and every movement is also a selection.
Agree on all counts. I didn’t like finding and comparing plugins for neovim, and then wrestling with environment stuff to get them to work, and having to change a bunch of options to get nvim to work how I want. With helix, my config of things I’ve changed from default is very small, and there’s no wrestling with plugins.
And yeah, “select then act” feels a lot smoother and more intuitive to me. If you like that and like plugins tho, check out kakuone
I’ve used helix for a few months and liked a few default keybindings. Didn’t like the reversed sequences (movement then action) so switched back to neovim and configured helix like bindings for some actions.
I tried out Helix, but I think the biggest issue that I have is that with (neo)vim, I can use the keybindings in most of the editors I use through a plugin (such as IdeaVim for the JetBrains suite) - but I do not think the concept of Helix keybinding plugins have really hit anywhere.
Helix itself seemed really cool when I was playing around with the tutor mode though.
Yeah I only really use it for personal stuff for that reason. There’s a vscode plugin, but last time I tried it it was really slow
Could you elaborate on what helix is?
A keyboard and terminal based text editor, similar in some ways to neovim, vim, and vi
That’s me as well, I’ve used vim for simple edits over the years but more and more just used nano for most of my terminal based edits. Finally ran vimtutor (mainly because I wasn’t aware of it) and wow, I should have done that years ago.
NeoVim is almost a drop-in replacement for Vim (the configuration file is under .config). Plugin installation might be different, tho.
Find a migration guide and be brave.
The learning curve is absolutely colossal, especially if you want to use it as a full IDE. Even with the legend panel it still doesn’t tell you have the story
Neovim. I tried to use it a year ago, but I felt like I was fighting it every time I just wanted to make progress on my project. VSCode doesn’t get in my way. I’m going to give it another shot in a few years.
Haven’t used neovim, but I had to try vim way too many times. I can’t use anything else now.
vim (or better yet vim bindings) is great. I’ll never go back.
Try kickstart.nvim. I was skeptical until I tried it. It’s a very good starting point for Neovim. Pretty much eberything else I’ve ever tried is either too bloated, too complicated, too outdated, too overwhelming, or a mix of the above. Link: https://github.com/nvim-lua/kickstart.nvim
If you aren’t already, you could get familiar with the vim motions within VSCode via a plugin. Moving over to a vim setup can be overwhelming, setting up your lsp,linters, other packages. Adding on the need to still learn key bindings makes it extra difficult. I started with VSCode using vim motions, went to doom emacs and used evil mode and then my mentor got me hooked on vim. Do it in steps and you’ll get to a config that lets you code without much fussing, good luck!
Oh, yeah, vim motions are wonderful. I started using them when I installed Linux on my Chromebook due to the lack of a good keyboard setup (I still don’t know where the Delete key is on that thing).
I just moved from Neovim to Helix. I think it’s worth considering, especially if you don’t know the keybindings yet. Plus, Helix is probably easier to learn.
Common Lisp. It would take a long while before I’m comfortable working on a project using that language. There’s also Lem editor but setting it up is a pain on NixOS.
That’s my first time hearing of Lem—it looks fantastic. What’s the issue with it on NixOS?
- There is no lem package on NixOS.
- Common lisp related packages tend to be outdated
- NixOS violates FHS to allow each packages to build against specific versions of dependencies, so CL tools might not work as expected.
Wayland, but I’m patiently waiting for xfce to support it
A fine day that will be!
Wayland here as well, but I don’t see compositors having xmonad functionality that I need
I kind of want to try wayland just to be modern, but I’m pretty happy with xmonad and don’t want to learn another window manager.
I migrated from XMonad to Sway, it checks all my requirements. I don’t miss the Turing-complete configurability.
You might want to look into River, a tiling Wayland compositor inspired by xmonad. Disclaimer, I’ve not actually used xmonad before so I’m not in a position to compare the two. But River is configured entirely through riverctl commands. Its “config” is an executable, by default at
$XDG_CONFIG_HOME/river/init
but you can point it to a different path, which can technically be any executable file that just executes when River starts. Ordinarily it’d be a shell script calling all the riverctl commands you want to get your River set up the way you like it, but it could be any executable you like really. You can also use other languages other than shell scripting.It’s still in pretty early development, but I daily drive it for my main general-purpose machine and it works completely fine. I use it for web browsing, coding, gaming, chatting, general productivity, etc, all works. I’ve noticed some minor hiccups but nothing breaking or unusable. Tbh I would say it’s more stable than Hyprland which I’ve also used and have noticed that Hyprland updates (especially from git) would frequently break it, whereas I was running River compiled from the latest commit of master branch for a while and never had an update break things.
There are several things I was doing in X-Org that I really don’t have the capacity to figure out in Wayland. One of them was customizing touch pad shortcuts, I used to like having 3 figure swipe commands that worked like keyboard shortcuts. The other was my KVM programs like Barrier seems unable to work in Wayland.
I hope for simple solutions to these problems in the future.
I think the new Wayland fork will fix that
Btrfs. I’ve been using ext4 for so long, I’m afraid that switching up will just annoy me.
Zsh: same reason.
Perhaps you are a more discerning filesystem user than I am, but I don’t think I’ve actually noticed any difference on btrfs except that I can use snapshots and deduplication.
BtrFS has Stuff.
- Subvolumes, which enable you to share the same /home between Linux distros
- Snapshots that are an great for
- freezing the FS during off-machine backups: create a snapshot, rsync the snapshot not the main FS, drop the snapshot
- transient backups. Will executing this thing hose my system? If no, drop the snapshot.
- ability to pool different disks into a single FS
- and so much more.
Fun story: once I needed to do something (resize? can’t recall) a partition that happened to be in use. The solution involved
smbmount
ing a network disk,losetup
helping transform that thing into a virtual disk, then migrating the root FS there, recreating partitions, all while running the rootfs on that thing. Thus, pooling can bu useful.By the way, what does Zsh have over bash that you find useful?
Not OP , but regarding zsh, it has much better auto completion, and suggestion support. Additionally you can theme your prompt much more, see for example powerlevel10k
zsh has vi mode
Honestly, the only btrfs feature that interests me is the snapshotting, as the current state of my backups is rather sub-par. There’s just a lot of inertia involved in adopting it when ext4 Just Works™. Maybe next time I install a new system I’ll give it a shot.
As for zsh, I rather like the general “intelligence” I see on others’ machines: the way it autocorrects typos, draws a navigable menu for tab completions complete with colour highlighting… it looks lovely. I’ve been a Bash user for 25 years though, and muscle memory like smashing the tab key to get what I want is a hard habit to break.
Zsh
FWIW, the excellent ZSH Quickstart kit has been splendid for my transition.
Actually, tutorials like that are a big reason that I don’t want to switch. The first steps are things like:
- Install these fonts that only work in a GUI environment
- Install these programs straight from GitHub without your package manager
…and all I hear is: “this stuff isn’t ready yet” and “I’m going to be staring at Unicode glyphs the next time I have to tinker outside of my GUI”.
If I can’t easily and securely install a shell on every environment I use as I don’t want to be constantly context switching, then I’m going to have to stick to Bash.
…and all I hear is: “this stuff isn’t ready yet” and “I’m going to be starring at Unicode glyphs the next time I have to tinker outside of my GUI”.
This really isn’t a zsh problem, but a “people putting too much stuff in a ‘getting started’ config”.
I used zsh for 15 years before looking at any plug-in manager, you can get a lot of the good stuff like the completion by just going through the first-run wizard included in zsh. A lot of stuff is included directly with zsh, including various prompt themes (which is what that tutorial wants extra fonts for, because they use a fancy prompt with custom glyphs; I don’t think any of the built-in ones need that)
Things like fuzzy history search with fzf is usually included with fzf’s distro package and the additional zsh-completions package for less used or newer commands is also packaged by most distros. In my experience, a lot of the other plugins are stuff that could be a standalone script instead of a plug-in anyway.
Well that’s much more encouraging. I may just give it a try if the first run wizard is simple enough. Thanks!
Lapce, an IDE written in Rust. It’s nice and light compared to most IDE’s, so I use it a bit on my aging laptop from 2015. However, it doesn’t have the extension ecosystem or polish of my favored IDE, VS Code.
Have you tried zed? Written in rust, has many extensions. I gave it a try, I quite like it. It’s blazing fast. But I haven’t tried on an old machine.