I think that this is above all else the reason that I use Arch. Arch Linux makes creating packages trivial, basically just wrapping build instructions into a shell script template. Arch handles the rest. The build systems for deb or rpm packages don’t come close, and good luck rolling your own flatpak.
This allows me to use pacman for everything outside of my home directory. Pacman is practically the central feature of my computer, and it’s wonderful. I’m sure those Nix people can relate, though I guess my method is a bit less robust.
Xremap, despite the name, supports both X and Wayland, and can be used to move modifier keys around. Configuration is done with YAML but is otherwise pretty easy. I personally use it for full Emacs keybind emulation.
This might be the first time I’ve ever seen something productive happen in the Phoronix forums. I love that place. Go to any topic with more than about a dozen posts and it’s almost guaranteed to be a flame war. Genuinely one of the funniest places on the Internet.
Check out this one. It took like three posts!
The reason that Doom is so portable goes beyond Linux and is an artefact of its development. id developed Doom on NeXTSTEP (i.e. Unix) machines and obviously targeted DOS. This is pretty unique among DOS games at the time and required id to write as much code as possible in a platform agnostic way. This means that the main engine does not care about where it is running and the usual DOS hacks are contained to DOS-specific files. In order to port Doom to a new platform, ideally one only needs to rewrite the system-specific implementation files for video, sound, filesystem access, etc., and this mostly holds true today. (These files are prefixed with
i_
in the Doom source).The Linux port is just one of many versions developed at the time. I don’t believe that it was commercially released; it was more of a portability test. The reason that the Linux version was chosen for the source release over the DOS version was because it didn’t rely on the proprietary DMX sound library that the DOS port used.