It turns out that the README for the xeventbind PKGBUILD actually works
very well here. On another note, I've yet to figure out how exactly I
want to document PKGBUILDs.
This is an X-specific script that changes (mostly) everything that needs
to be changed on resolution change, with the exception of X cursor size.
Note that any programs already running are not affected. For this kind
of functionality, you probably want to use Wayland instead.
Since fonts and other desktop-related packages are now handled by
tari-desktop, this is no longer necessary. Note that I also created
tari-web before I figured out HiDPI support for Qt and GTK applications.
I initially created tari-util as a package to be pre-built and installed
in the installation media. This was a while ago, and now that I know
exactly how the installation process and PKGBUILDs work, all the
previous issues I had with makepkg turned out to not be issues at all.
I added shortened systemd timeouts when I didn't know how to use
journalctl. But now that I know enough to fix things that might
stall these commands, this is no longer necessary.
As much as rofi-pass may appear to be useful, it is simply easier to
just use the pass command directly, especially if you have a passphrase
set on the private encryption key you use to unlock passwords.
Although rofi-calc was certainly cool to use, it is not in the
official repositories. Instead of trying to rely on it as a
dependency, I've gone ahead and removed it instead.
This gives the task of setting environment variables to rofi's
launch.sh, instead of trying to do it in sxhkdrc.
Another benefit is that rofi can be launched properly from anywhere,
regardless of whether or not sxhkd is being used.
Now that I know how to use terminal multiplexers, and now that I
understand more about how shells and terminals work, the launch
dependency is no longer necessary.
Additionally, *too many* abbreviations is difficult to use in the long
term, no matter how short the commands are. Since I don't need to launch
programs from the terminal as often anymore (now that I use rofi and
other programs), this change makes sense.
Typing git repositories in the format 'hub' and 'lab' accepted actually
took more time than simply copy/pasting the URL for `git clone`. Sometimes
we didn't even *want* to change our current directory, which made these
functions impractical.
Having to use `git clone` directly helps us remember what we're actually
doing when we clone a repository, and should be preferred over aliases
and other functions that try to do the same.
Besides the fact that .files is indisputably cooler, using a literal dot
instead of the actual word makes this a hidden directory, which is great
since configuration files are expected to be hidden by default.
This also keeps our home dir nice and tidy, with only directories
generated by xdg-user-dirs.
Since fish will warn when there are background processes before exiting,
and since when we type "exit" we really do want to close both the shell
and its corresponding terminal window, this change makes sense.
In attempt to keep the home directory as clean as possible, we remove
the rpmbuild directory when we're done with it, which, as of this
writing, will not contain any files anyway.
As a side note, running a bootstrap.sh in a post-install environment is
significantly easier (and more practical) than trying to accomplish
every step before a reboot in the installation image. This separates
things like making partitions from the actual system.
Note that most (if not all) of these programs can run inside any
environment with the same expected behavior, not just Plasma and GNOME,
provided the proper environment variables and config values are set.
xeventbind is a useful program that lets you run any command on
resolution change, similar to how GNOME on Wayland is able to change
scaling on on resolution change, but not exactly.
Since we're still using X, existing programs are not affected; they
have to be restarted instead.
This commit adds full variable DPI support to polybar. This means that
it is possible to use the same polybar setup on both a traditional and
HiDPI display.
Additionally, font size has been slightly adjusted since polybar does
not support decimal font sizes. Some other numbers have also been
changed.
It turns out that neofetch works exceptionally well with this terminal
size, so I'm making it the default in kitty.
Now I can use neofetch without having to worry about resizing the
terminal window for the desired effect.
For software development and other practices where distinguishing
between the colors in a color scheme is important (e.g. red versus
green, etc.) the base16-tomorrow-night theme offers a great middle
ground between aesthetics and readability.
It turns out that 'window' (as of this writing) does not work very well
when trying to use it as an alt-tab replacement. It's simply easier to
just use the functionality provided by your window manager instead.
I have never used rofi's 'run' feature, since any time I'd need to run
a command I'd just do it from a terminal, which also lets me see any
output from that program as well.
Note that window order is not based on the order in which windows are
hidden, but something else entirely. For this reason, it is recommended
to hide only one window at once.
A more robust solution would be to let the user choose from a list of
available hidden windows, potentially through rofi's dmenu capability.
Instead of managing these variables at the bspwm level, we can simply
use rofi instead. This means that applications can be launched in other
desktop environments with the correct settings applied through rofi.
Now that I understand more about how GNU/Linux distributions, display
managers, and X sessions work, it makes sense to separate meta packages
based on environment used.
When you use a display manager, you're just starting X in a fancy way.
Since you can run any program you want on the X server, it is easy to
install multiple desktop environments on the same machine and switch
between them easily, provided your setup is adequately modular (which
it should be by default).
Instead of manually setting the DPI to 192 or other values, we can
just take the value from xrdb instead.
This script, in combination with GTK's settings.ini if you are in a
non-GNOME environment, is everything you need to launch both GTK and
Qt applications at the appropriate DPI, with their respective themes
applied as well.
Instead of relying on a fish function to configure neofetch,
we can use config.conf instead.
Since neofetch is an independent program, we also make a new stow
package for it, instead of relying on the fish config being present.