KDE, just because it's a good balance of usability and customisability.
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
I don't think I will ever go back to a filesystem without snapshot support. BTRFS with Snapper is just so damn cool. It's an absolute lifesaver when working with Nvidia drivers because if you breathe on your system wrong it will fail to boot. Kernel updates and driver updates are a harrowing experience with Nvidia, but snapper is like an IRL cheat code.
OpenSuse has this by default, but I'm back to good ol' Debian now. This and PipeWire are the main reasons I installed Debian via Spiral Linux instead of the stock Debian installer. Every time I install a new package with apt, it automatically created pre
and post
snapshots. Absolutely thrilled with the results so far. Saved me a few hours already, after yet another failed Nvidia installation attempt.
Nice use case for snapshots! :-) I'll put it in my backlog, perhaps it is a nice insurance for my crash prone machines.
- NixOS
- disko + nixos-anywhere (automatic partitioning & remote installation of new systems)
- stylix (system-wide theming)
- agenix (secret management)
- impermanence (managing persistent data)
- nixos containers for sandboxing applications & services (using systemd-nspawn)
- TMPFS as /
- LUKS
- BTRFS as /nix (might try bcachefs)
- SWAP partition (= RAM size, to susbend to disk)
- Greetd with TUIgreet (DM)
- SwayFX (WM)
- Kitty & foot (term)
- Nushell (shell)
- Helix (editor)
- Firefox (browser)
- slackhq/nebula (c.f. self-hosted tailscale, connecting my systems beyond double NATs)
EDIT1: fix "DE" -> "DM"
Now that's quite an interesting NixOS setup, I'm especially intrigued by the tmpfs root portion. The link you provided was a great read, and I'll keep this and honestly most of what you've described in mind for when I mess with NixOS again.
There are also these two blog posts by elis on setting up tmpfs specifically. Though these posts rather are setup guides, than "talking about the philosophy" of systems design.
Much appreciated, I'll definitely take a look!
This is a very interesting setup would you mind providing more explanation / documentation? Also would you mind sharing your nixOS config? I would love to try it.
My system configuration can be found on git.sr.ht/~sntx/flake. I've linked the file tree pinned to the version 0.1.1 of my config, since I'm currrently restructuring the entire config[^1] as the current tree is non-optimal[^2].
The documentation in the README in combination with the files should cover most of what I've described, with the following exception: disko is not present to the repo yet, since I've set it up with a forked version of my config and the merge depends on finishing the restructuring of my system configuration.
- You can take a look at these (non-declarative) installation steps to get an idea on how TMPFS as root can be setup
- If you're interested, I can also DM you the disko expression for it
[^1]: The goal is to provide definitions for desktops, user-packages, system-packages, themes and users. Each system can then enable a set of users, which in turn have their own desktop, user-packages and theme. A system can also enable system-packages for itself, independent of users. If a user is enabled that has a desktop set, the system will need to have display-manager set as well, which should launch the users configured desktop.
[^2]: The current config assumes a primary user, and can only configure a single DE and apply the application/service configs only to that user.
This looks like a whole project. What is the overall goal of this build?
I am very new to nixOS and am interested in it. Specifically for ansible scripts to build out easily replicateable docker hosts for lab. I have also considered it for switching my primary desktop and laptops as being able to have the same OS with everything the way I like it is also intriguing.
Sorry for theate response. P.S. I love your wallpaper.
What is the overall goal of this build?
There's no overall goal to the project. It's just the result of me tinkering with my systems from time to time (I'm allocating a bit less than three hours each day to coding on personal projects to improve my skills, some of that time flows into my nixos config).
I am very new to nixOS and am interested in it. Specifically for ansible scripts to build out easily replicateable docker hosts for lab.
I've extensively used docker/compose before I switched my systems to NixOS, since then I've barely touched it.
The thing with Ansible and Docker is that you mostly define the steps you want your systems to automatically go through to reach a specific state.
Nix[^1] approaches the problem the other way around. You define the state you want to have, and Nix solves for the steps that need to be taken to reach that state.
If you want to try your hands at that concept, I recommend installing just Nix
on one of your test machines and trying out development shells
/devshells
with it.
For example the SwayFX
repo contains a flake.nix
providing a devShell
. This allows everyone
working on the project to just run nix develop
in the cloned repo, or
nix develop github:WillPower3309/swayfx
without cloning the repo to enter
the development environment.
This can be combined with tools like direnv to automatically setup development environments, based on the current directory.
If you want a more encompassing example of what Nix can provide, take a look at:
- nixified.ai
- This presentation by Matthew Croughan on Nix-Flakes and Dockerfiles.
[^1]: The "package manager" that NixOS is build around. Though I think of it more as a "build system" - not to be confused with Nix, the language the build "scripts" are written in.
I have also considered it for switching my primary desktop and laptops as being able to have the same OS with everything the way I like it is also intriguing.
While I personally think NixOS is one of the most potent software in existence, and a computer without feels less capable for me, I do not recommend it easily.
Just take a look at hlissner's FAQ on his system config (which I greatly agree with).
That said, I initially tried NixOS on my PC and pushed the config to a git-forge. I then installed the base NixOS ISO on my laptop and told it to build the config from git. And that worked flawlessly.
In leaving the PC unattended for about 20mins, it went from a full Gnome desktop to my Sway setup.
That's the point when I was sold.
Sorry for theate response. P.S. I love your wallpaper.
Don't worry about the late reponse ^^
The wallpaper can be build with nix build sourcehut:~sntx/nix-bg#abstract-liquid
btw.
Nobara KDE user here. One of the reasons why I chose it is because it comes with many of the customisations that I'd normally do (such as using an optimized kernel). But in addition, I use:
- Opal instead of LUKS
- KDE configured with a more GNOME/macOS like layout (top panel+side dock)
- GDM instead of SDDM, for fingerprint login
- Fingerprint authentication for sudo
- TLP instead of power-profiles-daemon for better power saving (AMD P-State EPP control, charging thresholds etc)
- Yakuake terminal (and Kitty for ad-hoc stuff)
- fish shell instead of bash
- mosh instead of ssh
- btop instead of top/htop
- gdu instead of du/ncdu
- bat instead of cat
- eza instead of ls
- fd instead of find
- ripgrep instead of grep
- broot instead of tree
- skim instead of fzf
What about fedora silverblue? Would it have saved you?
I totally love the idea of Fedora Silverblue and UBlue. Played around with Silverblue and perhaps it will replace my Debian installation on my multi media laptop. Still, no substitute for Debian since the kernel is too new/fast changing (problems with VM and I don't want to pin an old kernel w/o security updates forever) and I have a very custom (but fully automated) setup via Ansible, which wouldn't work like this on Silverblue. (I would have to use Ansible for the host and then create a lot of custom containers, to the best of my understanding.)
- /boot and root partition: i dont use swap (i dont need it, i have plenty of ram) and i usually encrypt the root partition with luks
- ext4: ppl keep telling me btrfs is better and all that but idk shit about filesystems and ext4 just works
- any x11 wm: currently im using qtile and ive used bunch of wms in the past
- alacritty: its fast and it has easy config with great doc
- firefox with arkenfox userjs, ublock and tor proxy configuration
- (neo)vim
- qemu/kvm/virt-manager
- doas
- fish shell
Well, almost the opposite of you, I currently use Fedora Silverblue (including BTRFS which I very much appreciate for versioned backups), except that I override GNOME Software (never got it to work properly for me) and Fedora's Firefox (I use the Firefox from Flathub but not Fedora).
I've never had a problem with ext4 after power failure.
Zram is not a substitute for swap. Your system is less optimal by not having at least a small swap.
Firewalls should never default to on. It's an advanced tool and it should be left to advanced users.
Not to mention how much grief it would cause distro maintainers. If they don't auto configure the firewall they get blasted by people who don't know why their stuff isn't working. If they auto configure they get blasted by people upset that the auto configurator dared change their precious firewall rules. You just can't win.
What is the difference between physical swap and having a swap partition on ZRAM, especially for the kernel? To the best of my knowledge, nearly no Linux distribution supports suspend to disk any more, any ZRAM swap looks for the kernel like ... swap. Thanks to the virtual file system. Further, I have high trust in the Fedora community, which decided to use ZRAM.
We can agree to disagree about the firewalls, especially for people who don't now why their stuff isn't working, it protects them and is much better than having unconfigured services with open ports on a laptop in a public network IMHO.
I have a question about swap.
My current rig has 64 gb, and I opted to not create a swap partition. My logic being I have more than enough.
The question is does swap ever get used for non-overflow reasons? I would have expected 64 GB to be more than enough to keep most applications in memory. (including whatever the kernel wants to cache)
I believe so, though I went without swap for a while myself and never noticed any issues. When in doubt a 1gb swap partition can't hurt.
Start with a small swap file (100 MB) and see how much gets used, no need to waste 1 GB.
Xfs filesystem and a kernel with BORE scheduler, which are the default on CachyOs for a faster and snappier system.
Once, some years back, I posted a topic on how could I slim down my Gnome DE.
It sparked a rather long and complex discussion and the bottom line was that Gnome integration was already at a point where so many parts depended on so many it was not an easy task.
I opted to move to a GTK compatible DE. Currently I use XFCE but spent years with Mate.
I still use Mate, but switched the window manager to i3.
Nothing radical, but I've used mplayer as default video player since FreeBSD 4.0, and that's not changing any time soon. VLC is good and all, I just prefer mplayer.
Oh, and for general purpose storage partitions I use XFS, as it plays nice with beegfs.
why not mpv?
- Void
- EFI and LUKS partition, containing an LVM with root/home/swap. Ext4 partitions. I'm vaguely aware of btrfs and zram but haven't taken them for a spin yet.
- ufw
- wayland
- basic plasma install + desired apps.
Gnome with Wayland: I am just too used to the touchpad gestures and sleek looking apps to go back. Even windows looks and behaves janky in comparison
Firefox: plain better than the alternatives, the scrolling is so much better under Wayland too
The auto dark mode GNOME extention: it between dark and light mode depending on the time of day
Rounded window corners GNOME extension: forces all 4 corners of applications to have rounded corners
Separate /home partition, very useful for distro hopping or in case just going the nuclear option and reinstalling everything is the easiest way to deal with a breakage
Fedora Workstation (i.e. the Gnome one)
Separate /home partition
Then the only other changes are to a few keyboard shortcuts, icons, and changing Firefox to a GTK4-style theme.
I'm coming back to linux as a main desktop, finally ditching windows (again). I tried out fedora workstation and the fedora KDE spin. KdE looks so good now, before i atteibuted it to a windows wanna-be knock off. This was back in the windows xp days... now it looks so polished. I probably prefer it to gnome because I've been a windows user for so long but gnome is nice with its minimal approach, looks nice and clean. Can't get away from how nice KDE looks though, I'm going to stick with that I think.
i always use:
- KDE
- yakuake
- kate
- vlc
- fishshell
- gparted
- firefox
no matter what the default might be
- btrfs unless I know I'm not gonna use it that much (might check out bcachefs soon)
- Kitty as the terminal, life is better without fancy multiplexers
- Firefox
- fastfetch > neofetch
- zsh without oh-my-zsh
- tbsm as DM (if available)
- Hyprland as the WM
- Plasma if I have to use a DE
- ~~Swapfile instead of partition so I don't risk losing my data if I don't have enough memory (haven't checked out ZRAM yet)~~ Welp that changed quickly, ZRAM looks insane
- GRUB as bootloader, also a separate install for every distro, kinda just out of fear that I'll break it somehow