This can be solved by setting the DISPLAY environment variable in your shell’s config file (e.g. ~/.zshrc and /etc/zsh/zprofile if using zsh):
export DISPLAY=$(ip route | grep default | awk '{print $3; exit;}'):0.0
This can be solved by setting the DISPLAY environment variable in your shell’s config file (e.g. ~/.zshrc and /etc/zsh/zprofile if using zsh):
export DISPLAY=$(ip route | grep default | awk '{print $3; exit;}'):0.0
There are a few different GTK theme configuration tools out there – lxappearance (which doesn’t require the LXDE desktop environment), gnome-tweaks, and xfce4-appearance-settings – to name a few, as well as some desktop-environment agnostic ones such as gtk-chtheme (which supports GTK2 only).
However, my current favorite tool which works for GTK2, GTK3, and GTK4 is nwg-look:

Software developers who work on Windows have likely heard of WSL, which stands for the Windows Subsystem for Windows. Essentially, it is a way to run Linux distributions within Windows somewhat like running a virtual machine (VM) but more seamless – or akin to running a Docker container. WSL provides support for GUI applications out-of-the-box with WSLg. The important thing to note about WSLg is that it is implemented using the RDP protocol, so GUI applications are essentially run via an RDP process running on the host Windows machine. Due to this implementation, the performance of GUI applications running on WSLg will not perform as well as would a native Windows application or compared to running the application on a regular Linux installation.
There are some really cool uses of WSL even outside of software development that may be useful for users who are somewhat technical. Some of these are from the interoperability provided with WSL:
C:\ is mounted in WSL at /mnt/c\\wsl.localhost and can be mounted to network drives (for example I have \\wsl.localhost\Arch mounted as L:\) Windows provides the ability to mount network drives using FTP or SMB – however, it doesn’t provide support natively for mounting network locations using SSH/SFTP. Linux has a FUSE filesystem called sshfs. With WSL, this means network locations can be mounted and accessed from Windows. Similarly, Windows does not natively support mounting external drives containing ext4 formatted partitions.
X410 is a really cool alternative to WSLg, which allows X-Window GUI apps to run like any other Windows application. Note that X410 does require the purchase of a license. The license I purchased is for perpetual for the version when I purchased, though updating to newer versions of X410 will require an additional purchase. Here is an example of Caja running in X410:
Notice how the Window appears like a normal Windows application would. For comparison, here is what Caja looks like in WSLg: 
While it may not look like much of a difference, the advantage of X410 is not about the appearance but performance. The UI responsiveness running X410 is noticeably better than running in WSLg.
If make fails due to
[ 13%] Building CXX object CMakeFiles/treeseg.dir/src/treeseg.cpp.o
./treeseg/src/pcdPointXYZRGB2txt.cpp: In function ‘int main(int, char**)’:
./treeseg/src/pcdPointXYZRGB2txt.cpp:12:24: error: ‘split’ is not a member of ‘boost’
12 | boost::split(tmp1,args[i],boost::is_any_of("/"));
| ^~~~~
./treeseg/src/pcdPointXYZRGB2txt.cpp:13:24: error: ‘split’ is not a member of ‘boost’
13 | boost::split(tmp2,tmp1[tmp1.size()-1],boost::is_any_of("."));
| ^~~~~
make[2]: *** [CMakeFiles/pcdPointXYZRGB2txt.dir/build.make:79: CMakeFiles/pcdPointXYZRGB2txt.dir/src/pcdPointXYZRGB2txt.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:578: CMakeFiles/pcdPointXYZRGB2txt.dir/all] Error 2
This can be resolved by including the required header (source: boost::split in C++ library | GreeksForGeeks):
#include <boost/algorithm/string.hpp>
I maintain a set of PKGBUILDs for the Arch Linux distro in a public GitHub repository: archlinux-pkgbuilds. Many of these are modified versions from the official Arch package repositories or from AUR packages, however some are not found in either. The modifications for existing packages are usually small fixes for issues building with the existing version or to build configured with different CMake variables.
Many of the packages are GIS applications, including
Some of the PKGBUILDs have not been built in several years. I will periodically update this list with recently built packages that are not available in the official repos or AUR.