[-] chayleaf@lemmy.ml 2 points 6 days ago

people always joke about this but defenestration has never been that common in neither the Russian Empire, USSR nor Russian Federation

[-] chayleaf@lemmy.ml 32 points 4 months ago

because killing birds isn't a task of the kernel, it's the task of a userspace utility part of the coreutils

[-] chayleaf@lemmy.ml 14 points 5 months ago

it's no secret that Israel can only function like it does thanks to US support

[-] chayleaf@lemmy.ml 15 points 5 months ago

least genocidal liberal

[-] chayleaf@lemmy.ml 25 points 7 months ago

Freedom House is a bourgeois organization, and it doesn't lie, that's what's good about it. It truthfully tells you how free capitalists are to act as they please in a country. When they say "LGBT representation", they mean "freedom to open NGOs". When they say "democracy", they mean "freedom to lobby your interests in the parliament, to promote your candidates", etc. That's why I really like Freedom House and consider it a good source.

[-] chayleaf@lemmy.ml 14 points 8 months ago

strictly speaking, NixOS doesn't have repositories.

NixOS has "derivations" (rules are written in the Nix language to generate a script that builds a package, which is called a derivation - yes, everything is built from source to the extent possible/reasonable) and "platforms" (the system that builds the derivation OR the system the derivation is built for). A "platform" is e.g. the CPU architecture, the libc used, the target kernel (there's most support for Linux and Darwin, which is the macOS kernel, but e.g. FreeBSD is supported to some extent too). The derivation code may well be shared across platforms, though often platform-specific workarounds are required.

Of course, different platforms have different support. Some platforms have derivations from nixpkgs (the NixOS git repo) regularly built for them and put into the official binary cache (which stores the derivation outputs, i.e. ready-built packages for a certain set of inputs, which generally match what you would've built from source because Nix strives for reproducibility, you're still free to override a package's inputs and build it from source). linux-aarch64 is one of such platforms. Other platforms may only have a small set of core packages like gcc built for them, or simply require building absolutely everything from source.

The reason nixpkgs is not a repository (though I guess you could call it one) is because it only provides rules to build a package, but not the package itself. Some derivations (e.g. for Gog games) even require you to add some non-redistributable files to the Nix store manually. The derivations may or may not build correctly for each platform they're supposed to work on.

The reason the binary cache is not a repository is because it's just a cache for nixpkgs - it stores every derivation's output (if the build doesn't fail), even if that derivation is one that downloads a package's source code (yes, that's a derivation too), even if the derivation is from many years ago (which has historical value, as you can revert nixpkgs to an old version and still be able to download prebuilt versions of packages).

Together, they form something like a repository, but it's still way too different. For example, unlike on Arch, I can stay on the same nixpkgs version for a long time without updating, which I really prefer because I have to build 3 kernels on each update, since I'm syncing the nixpkgs version of my 4 NixOS devices, only 1 of which doesn't require a custom kernel config. Or I can always revert back to an older version of nixpkgs if a new one breaks something and it will still work. Or I can fork nixpkgs and change some stuff, and the stuff with changed inputs will have to be rebuilt locally, with stuff that didn't change still available from the binary cache.

106
submitted 8 months ago by chayleaf@lemmy.ml to c/linux@lemmy.ml

My biggest blog post yet, and it's about running (almost) vanilla NixOS on a (formerly) Android phone! This was 50% fun and 50% exhausting... you solve one issue and another one crops up right away... it was certainly an interesting educational experience.

I'm not explaining any basic technical concepts here, as I'm not a complete noob in phone ROMs and Linux.

Ask me any questions if you have them!

[-] chayleaf@lemmy.ml 12 points 9 months ago

actually many "Unix people" got mad at cat becoming "bloated", because of options like -v (which escapes nonprinting characters)

[-] chayleaf@lemmy.ml 20 points 9 months ago

they're freed from this plane of existence duh

[-] chayleaf@lemmy.ml 16 points 9 months ago* (last edited 9 months ago)

I use fish + tide

I tried zsh+p10k before fish+tide, but zsh felt annoying in subtle ways that weren't fixable with (existing) plugins, so I switched back to fish, but installed tide to mimic my previous p10k theme.

[-] chayleaf@lemmy.ml 60 points 10 months ago

Discord isn't encrypted at all

[-] chayleaf@lemmy.ml 13 points 10 months ago

for example, when you need to copy some files and not the other, you can take your time selecting the specific files you need to copy instead of writing the list of files in one command. When you want to check the contents of a lot of files, you can just open file preview. Etc, basically sometimes CLI isn't as convenient as TUI/GUI

112
submitted 1 year ago* (last edited 1 year ago) by chayleaf@lemmy.ml to c/linux@lemmy.ml

After commit 0bc3126c9cfa0b8c761483215c25382f831a7c6f in linux-firmware my system stopped booting (due to being unable to mount root fs). The bug isn't occurring all the time even with this commit, but I've still successfully tracked it down to this specific commit. Now I'm not sure where I can report it, as I could find info about maintainers of certain Linux subsystems, but not of linux-firmware or its constituent parts (like amd-ucode).

Edit: I've sent it to the person who authored the commit for the time being

55

This is a lightweight alternative for Goldberg for the single purpose of unlocking DLCs. Just rename the game's steam_api.dll to steam_api.orig.dll, download steam_api.dll from releases and put it in place of the original steam_api.dll, the game will keep interacting with Steam as usual but it will consider all DLCs installed. Of course, you also need to download the actual DLC files from somewhere.

I've actually only tested it on Linux, so I'm curious to know if it works fine on Windows and MacOS.

[-] chayleaf@lemmy.ml 26 points 1 year ago* (last edited 1 year ago)

You know why reinstalling Linux is annoying? Because you have to remember (or write down) every piece of config you ever changed. Dark mode in KDE? Change it in settings. Some systemd unit tweak? Change it in /etc/systemd. Want to run some commands at boot? Use systemd (see above), or write an initrd hook (distro-specific). Need a specific version of an app? Need some files in /opt? Need certain packages installed? You better remember to do that!

In NixOS, you "reinstall" your OS every time you change a single setting, because reinstalling NixOS isn't scary at all - everything that needs to be changed is configured in your configuration - just make sure /home and /var/lib are saved (and perhaps some other dirs, I have root on tmpfs and bind mount all persistent files I need to ensure I know what needs to be preserved on clean reinstall and what doesn't).

Want to move it to a different PC? No problem, copy the files in /home and /var/lib and simply install NixOS using the configuration you already have on the new PC. Want to create a boot option with slightly different kernel or kernel options, or maybe even another DE? No problem, specializations got you covered.

And of course, this also means it's easy to share configurations for specific use cases. Want to run on some specific hardware that doesn't work out of the box? Perhaps nixos-hardware got you covered. Want a certain program set up? Maybe there's already a NixOS option for system-level config or a home-manager option for user-level config, worst case you can write it yourself and share for everyone else in the community using flakes, and maybe open a PR to nixpkgs/home-manager. Want to share configuration between systems? That's easy, put them in the same flake and write a common module shared between all of your systems.

Basically, if you're fine with whatever comes out of the box in any Linux distro, you don't need NixOS, but if you need configuration, if you run servers, it is a lifesaver. I switched from Arch, no regrets. I run my personal laptop, my server, which I effortlessly migrated from Oracle Cloud when they quit Russia, and my router on it, here's my NixOS/home-manager config.

The only downsides are the learning curve and the fact that you can't "just" run programs that expect a FHS layout. You can do it with workarounds like steam-run or appimage-run anyway, but overall be prepared to learn to package stuff for NixOS. Also if you have no experience with functional programming, the Nix language may be hard to understand at first.

17
submitted 1 year ago* (last edited 1 year ago) by chayleaf@lemmy.ml to c/nixos@lemmy.ml

Example config linked in readme! My ISP doesn't offer IPv6, so it might not fit your use case well, but it's a setup with multiple routing tables (one for vpn, one for direct internet access, one for no internet access)+multiple network namespaces (default namespace has the vpn interface, wan namespace has the vpn socket)+configured dnat/port forwarding which is hard to get right in such setups. It also takes port forwarding rules from another system's config, which was always my dream before even starting this project lol

"framework" is really the right choice of words because while it's well integrated with itself, it forces you to use itself, it doesn't integrate with networking.interfaces because it itself is a more featureful variant of networking.interfaces.

In my experience, this let me focus on writing the router itself, while previously half the time I felt that NixOS just doesn't provide enough customizability for routers. However, I don't offer many features right now, only device config/network namespace management/bridge creation/veth pair creation/dhcp/router advertisement/wireless access point creation. Obviously, there are many cases for which this won't be enough. If this isn't enough for you, open an issue and I'll try to add what you want (or better yet, do it yourself, as I probably wouldn't be able to test it).

5
submitted 1 year ago by chayleaf@lemmy.ml to c/nixos@lemmy.ml

Honestly I don't know why I made this, it clearly isn't worth it lol (Jesus, 5000kloc for this), but it was interesting to learn more about nftables (I also found a bug in Nix in the process). I will contribute to nftables docs some time later, as I found many undocumented or poorly documented parts, and some documentation that's flat out wrong.

Currently this can only export rules in json, but it shouldn't be too hard to write a transpiler into the nftables language.

view more: next ›

chayleaf

joined 2 years ago