Everything in here is a runtime dependency of KDE software, a hardware
enablement package, or a discretionary userspace CLI tool. Move it all
to the files for those things.
We default to lz4 which is mega fast but doesn't have the best
compression. We can get closer to having the best of both worlds by
telling the zram config to fall back to zstd for any huge pages that
lz4 couldn't compress. zstd's default level is slower but has great
compression, so it's quite suitable for this purpose.
We already set a few realtime-friendly settings in /etc/security and
/usr/lib/systemd, but these are not enough for truly realtime workflows
like audio creation. For these they also need adequate defaults for the
`rtprio` and `nice` values.
Arch's `realtime-privileges` package lays down a config file that gives
these to users in the "realtime" group. We don't put new users in that
group because not every user will need it, but we can at least write
some documentation around the topic.
It's so commonly used by experts and power users (e.g. cloning random
github repos) that it's graduated to being a general-purpose tool these
days.
This has no effect right now, but will result in us keeping git in the
base image should we ever move the dev tools into an on-demand extension
or something.
Many AMD systems are affected by a total system freeze that requires a
hard reboot. This is reported upstream at
https://gitlab.freedesktop.org/drm/amd/-/issues/4831 (and others; they
haven't been properly triaged and merged into one).
It's been going on for months with no fix in sight. Given the severity
of the issue, work around it by setting `amdgpu.dcdebugmask=0x10` in
the kernel command line, which disables panel self-refresh. The
consequence will be slightly higher power usage, but this seems worth
it to avoid system freezes and hard reboots.
This merge requests contains some changes to zsh configuration files:
* `/etc/skel/.zshrc` now checks if `/usr/share/zsh/plugins/kde-linux-default/kde-linux-default-zshrc.zsh` exists before sourcing it. This is useful to avoid error messages when user create a container that shares the home directory
* I have added key binding for **Page Up** and **Page down** to scroll through commands that start with user has currently typed. This is default behaviour in bash (at least in some distro, such as fedora), and I personally think it can be very useful
* I have added a key binding for **Control+Delete** to delete the next word
* I have slightly **modified zsh prompt** to make the current location path be colored in cyan, and when truncated, now it adds a `…/` prefix, to make it obvious the path was truncated
* I have **disabled tab cycling** through completion suggestions. This would imitate the default behavior in bash, and I personally think it's more ergonomic. For example, who hasn't pressed tab multiple times because the completion is being slow, and in bash it's ok because the prompt hasn't changed, but in zsh or fish this means that you are getting a completion that might not have been the one you intended, and now you need to undo that.
* I have **added a few aliases**, to make ls and grep have colored output by default, and to add ll, la, lla as shortcuts for useful ls commands (those are all aliases that debian based distros such as ubuntu have in their bashrc files)
Basically we'll set `flatpak config --set languages "*"` which should allow Flatpak to download every language pack available into the image. This should allow translated Flatpak apps on non-english systems.
Fixes#500
This adds some more package-managers to the command-not-found handler and
adds a way to detect if two or more missing commands belong to the same
program.
This can be an attack surface, but because it's shipped with a
user-level systemd service, it gets enabled by default. That's not
ideal.
Instead make it a system-level service to benefit from two effects:
1. It won't be enabled by default
2. Enabling it manually will require authentication
Resolves#477