Since I now know how GNOME works (using dconf and gsettings), changing
settings manually with GNOME Tweaks is no longer necessary. Instead,
everything can be handled directly through the `make rice` command.
Since sudo times out after 5 minutes, and since we don't want to run
every command as root, we can instead create a "persistent sudo" by
invoking the sudo command at least once within 5 minute time frames.
This script does just that, and solves the problem of sudo timing out
after a long command.
Since dotfiles only change the functionality of existing programs, it is
reasonable to stow everything at once for consistency between operating
systems.
Although there's already a default terminal emulator, configuring it
through dotfiles is non-trivial. kitty works exceptionally well on
Fedora, and since I already use it on Arch Linux, I might as well
use it here too.
Instead of installing a pre-built RPM, we can build it ourselves on the
spot instead. This is less maintenance for me and makes it easier to
verify the package being installed.
This should work, but it hasn't been tested yet. In the future I'd like
to use branches before pushing large updates to master. This would also
give me the chance to see how symlinks behave when a different branch is
checked out.
These scripts can be manually updated by running the `make update`
command. When you do so, visually compare the diffs. This is to
ensure that nothing particularly naughty happened upstream.
Note that this is not a fool-proof solution since one can simply
modify the content returned by any other location a script requests.
This hasn't been tested yet, but it *should* work.
Most of the software I install is handled by the RPM, with the
exception of software not present in the official repositories.
The install scripts for these software are stored locally in this
repository since I want an easy way to keep track of the diffs. Of
course, you should run the `make update` command yourself to get the
latest updates and visually compare any differences from upstream.
Instead of having a separate repository for each rice, I can instead put
them in this repository (prefixed with ., so that they're not indexed by
the stow Makefile).