• 0 Posts
  • 222 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle









  • Can we stop referring to the “what color is your function” post for languages it doesn’t apply for? Contrary to Javascript (where it does apply), Rust with tokio has adapters for both async -> sync (Runtime::spawn_blocking) and sync -> async (Runtime::block_on). It probably isn’t a good idea to overuse spawn_blocking but calling an async function from a sync one is literally no problem.








  • NixOS can boot from a file system that only has /nix, since essentially the kernel command line has init=/nix/store/.../init. Everything else will be created during boot by that if it isn’t already there. So technically you could only mount /nix and you would get a blank system every time you boot (but that wouldn’t be very useful in most cases). Mounting these is done in the initrd.

    A lot of people have a setup where only select files are mounted from a persistent partition, such as /var/lib/postgresql, basically anything they want to keep across reboots, so that the rest is discarded when they reboot. This prevents the system from accumulating junk over time, from services you once used to have but no longer have running, and so on. Personally I found it too much of a hassle to keep track of what files I want to keep, so I save the entire /etc and /var. I still keep the tmpfs though because it’s pretty cool.



  • I have NixOS running on my main desktop with some unusual changes:

    • / is mounted as tmpfs, with /etc, /nix and /var being mounted from the actual system partition (this actually isn’t too uncommon on NixOS)
    • For swap, zswap and dynamically allocated swapfiles using swapspace daemon (this is imo the best swap setup if you don’t need hibernation)
    • Akonadi (KDE’s PIM server) using PostgreSQL instead of MySQL
    • ISO8601 date format, for this I have glibc’s en_DK locale which does this copied to en_SE because Qt has en_SE as the locale with ISO date
    • A couple changes to make the layout more like macOS because I can:
      • Partitions are either mounted or auto-symlinked (if they can’t be mounted there, such as for the system partition) under /Volumes
      • I patched udisks to also mount devices under /Volumes
      • User home directories are under /Users and root’s home is /var/root
      • Keyboard layout changed as far as I can to be mostly like Mac’s so I don’t have to rethink layouts as much when switching between this and my MacBook
    • Can’t technically list this anymore since I’ve had to tear it down for unrelated reasons but NFS using Kerberos authentication for my NAS
    • This is apparently very unusual since a lot of games completely break with it but two monitors with the main monitor on the right