What are your 'defaults' for your desktop Linux installations, especially when they deviate from your distros defaults? What are your reasons for this deviations?
To give you an example what I am asking for, here is my list with reasons (funnily enough, using these settings on Debian, which are AFAIK the defaults for Fedora):
Btrfs:
I use Btrfs for transparent compression which is a game changer for my use cases and using it w/o Raid I had never trouble with corrupt data on power failures, compared to ext4.
ZRAM:
I wrote about it somewhere else, but ZRAM transformed even my totally under-powered HP Stream 11" with 4GB Ram into a usable machine. Nowadays I don't have swap partitions anymore and use ZRAM everywhere and it just works (TM).
ufw: I cannot fathom why firewalls with all ports but ssh closed by default are not the default. Especially on Debian, where unconfigured services are started by default after installation, it does not make sense to me.
My next project is to slim down my Gnome desktop installation, but I guess this is quite common in the Debian community.
Before you ask: Why not Fedora? - I love Fedora, but I need something stable for work, and Fedoras recent kernels brake virtual machines for me.
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.
Please tell me more about Spiral Linux.
I'm not a huge Debian fan personally(at least for desktop), but I often install Linux on other people's machines.
And Mint/ Debian is great for them.
Key points are BTRFS with Snapper, PipeWire, newer kernels and some other niceties from backports, proprietary drivers/codecs by default, VirtualBox support (which I've personally had huge problems with in the past on multiple distros). They also mention font tweaks, but I haven't done side-by-side comparisons, so I'm not sure exactly what that means.
Edit: shoutout to Spiral Linux creator @sb56637@lemmy.ca , who posted a few illuminating comments on this older thread: https://lemmy.ca/post/6855079 (if there's a way to link to posts in an instance-agnostic way on Lemmy, please let me know!)
Well for one thing their driver support is apparently "harrowing". 😊
I will never understand why people choose distributions that will brick themselves when the wind blows, so they add snapshot support as a band-aid, and then they celebrate "woo hoo, it takes pre and post snapshots after every package install!"
How about using a distro where you never have to restore a snapshot...
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.
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.
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)
Opal drives are self-encrypting, so they're done by the disk's own controller transparently. The main advantage is that there's almost no performance overhead because the encryption is fully hardware backed. The second advantage is that the encryption is transparent to the OS - so you could have a multi-boot OS setup (Windows and FreeBSD etc) all on the same encrypted drive, so there's no need to bother with Bitlocker, Veracrypt etc to secure your other OSes. This also means you no longer have a the bootloader limitation of not being able to boot from an encrypted boot partition, like in the case of certain filesystems. And because your entire disk is encrypted (including the ESP), it's more secure.
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.
Honnestly. Firewalls shut be enabled by default. Specially on laptops connecting to public places.
A good default shut be choosen by the disteo maintainer. A default shut not overwrite your own config. Like any config really. So no upset folks that like to change the firewall. Also if you dont block much outgoing trafic you are not likely to run into problems. And for people that like to poke holes in the incoming trafic. Your a "advanced" user anyway.
So what should happen when the user installs a service that needs an open port in order to work? Presumably the whole point of installing it being to, you know, use it.
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.
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 also have 64 GB and yes, it gets used. For very low quantities, mind you, we're talking couple hundred KB at most, and only if you don't reboot for extended periods of time (including suspend time).
Creating a big swap is not needed, but if you add one that's a couple hundred MB you will see it gets used eventually.
You don't have to create a swap partition, you can create a swap file (with dd, mkswap, swapon and /etc/fstab). You can also look into zswap.
Swap is not meant as overflow "disk RAM", it's meant as a particular type of data cache. It can be used when you run out of RAM but the system will be extremely slow when that happens and most users would just reboot.
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).
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
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 used Mate for years, but at some point it became unstable for me. I need Wayland, though, so I have to hold my breath until Xfce supports it in the future.
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.
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.
EndeavourOS as the distro of choice for easy installation and AUR access.
Depending on the DE, if it's not MATE, I almost always install Caja, Engrampa, and MATE Calculator since they just have the most sane look and UX to them for my use cases.
Waterfox as my browser of choice (reason over Firefox is that it offers tabs below address bar as an option in Preferences rather than mucking about in userChrome.css files that often break on updates)
Vivaldi as a secondary browser for websites that only render right in Chromium
Kitty as my terminal of choice.
Clementine as my music player of choice
yt-dlp for downloading Youtube videos as mp3s
htop over top, also have gotop for a more graphical look
Interesting browser choices. ;-) I like what I see from Vivaldi, but I rarely need Chrome compatibility and Chromium is in the repositories of all distributions I use, so I never opt for Vivaldi. Just a personal preference or any good reason to use Vivaldi over Chromium etc.?
Honestly because it's quite customizable, that's about it. Being able to customize my software to look and work the way I want them to is a big reason why I use certain programs over others.
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
I tried to use kitty but I have to ssh in to remote machines often for work, usually one of a few hundred edge devices, and I can't configure them all to work properly with it. Is solid ssh support just not a deal breaker for others?