5.8 KiB
Additional Setup
The following documents some Fedora setup that wasn't automated with ansible.
Snapper
Snapper is used to create snapshots with the BTRFS filesystem for root and home directories. I'd like to make these snapshots available at grub with grub-btrfs, but I've found that akmod-nvidia breaks it. Snapper is setup with:
sudo btrfs filesystem label / *FTL ship name*
# Make /var/log subvolume
sudo mv -v /var/log /var/log-old
sudo btrfs subvolume create /var/log
sudo cp -arv /var/log-old/. /var/log/
sudo restorecon -RFv /var/log
sudo rm -rvf /var/log-old
# Add /var/log to fstab
sudo vi /etc/fstab
# UUID=<drive uuid> /var/log btrfs subvol=var/log,compress=zstd:1 0 0
sudo systemctl daemon-reload
sudo mount -va
# Create snapper configs
sudo snapper -c root create-config /
sudo snapper -c home create-config /home
# Allow users to perform snapshots
sudo snapper -c root set-config ALLOW_USERS=$USER SYNC_ACL=yes
sudo snapper -c home set-config ALLOW_USERS=$USER SYNC_ACL=yes
sudo chown -R :$USER /.snapshots
sudo chown -R :$USER /home/.snapshots
# Add / and /home to fstab
sudo vi /etc/fstab
# UUID=<drive uuid> /.snapshots btrfs subvol=.snapshots,compress=zstd:1 0 0
# UUID=<drive uuid> /home/.snapshots btrfs subvol=home/.snapshots,compress=zstd:1 0 0
sudo systemctl daemon-reload
sudo mount -va
# Show resulting subvolume structure
sudo btrfs subvolume list /
# Enable and start snapper timeline and cleanup services
sudo systemctl enable snapper-timeline.timer
sudo systemctl start snapper-timeline.timer
sudo systemctl enable snapper-cleanup.timer
sudo systemctl start snapper-cleanup.timer
Wireguard Client
Wireguard is nice for a home vpn and pivpn makes it easy.
- Create client on server and copy resulting
.conf
file to local machine - Import to networkmanager with:
nmcli connection import type wireguard file <conf file from pivpn>
- Use
nm-connection-editor
to disable automatic connection
Mount network drives
I find fstab messing about more troubule than it is worth. Credentials are stored in ~/.smb. Mount network drives when needed with the following command:
linux-mount-<network drive name>
Taskopen for taskwarrior
taskopen is easier to install manually at this point since it isn't packaged and uses nim. Might get this automated in the future.
curl https://nim-lang.org/choosenim/init.sh -sSf | sh # install nim
git clone https://github.com/jschlatow/taskopen.git
cd taskopen
make PREFIX=/usr
sudo make PREFIX=/usr install
Syncthing
Syncthing is used to sync folders between various computers and android. The ansible script should setup and run the service, but shares must be setup via the web gui. Currently four shares exists:
.warrior
-.task
and.timewarrior
folders to sync taskwarrior tasks. These two folders are symlinked to the home folder where taskwarrior/timewarrior expects them.warrior
- contains text files associated with taskwarrior (mostly from taskopen).phone photos
- personal photos synched from android.phone screenshots
- personal screenshots synced from android.ssh_keys
- contains ssh keys for git remotes (~/.ssh/keys)vimwiki
- contains text files associate with my personal vimwiki.
Lxappearance
My GTK theme is pulled down by chezmoi, but isn't active by default. This can be fixed with the lxappearance gui (for X sessions).
Git SSH for personal and work
- ~/.gitconfig - personal github configuration.
- ~/devel/work/.gitconfig - work gitlab configuration.
Gitconfig files for SSH git push/pull are automaitcally placed. The only additional configuration required is the transfer of SSH keys (see Syncthing section).
Firefox
Transfer the .mozilla
folder from install-to-install to maintain Firefox
settings and configurations.
Dracula colorscheme for gnome terminal
Dracula is used for gnome-terminal. Run the following commands to install:
git clone https://github.com/dracula/gnome-terminal
cd gnome-terminal
./install.sh
Bluetooth Audio
In addition to the pipewire-codec-aptx
package being required (installed
with ansible) you need to set ControllerMode = bredr
in
/etc/bluetooth/main.conf
to get bluetooth to work properly with audio devices.
Linux-tkg kernel
The linux-tkg kernel provides a more responsive desktop. Install with the following:
git clone https://github.com/Frogging-Family/linux-tkg.git
cd linux-tkg
Set CONFIG_EFI_HANDOVER_PROTOCOL
to y
in
linux-tkg-config/<kernel-version>/config.x86_64
.
./install.sh install
sudo dnf install akmod-nvidia
Reboot into new kernel.
Single GPU Passthrough to windows
I use a windows virtual machine with gpu passthrough of the few games that
won't work on linux, Zwift, and Fusion360. This
has scripts that make that process relatively easy and this wiki
provides good information on setting up the virtual machine in virt-manager.
The virt-manager setup should usually be avoided by transfering the VM between
machines. The patch.rom
required for my GPU is included in my repo.
Google earth pro
Google earth is nice for visualizing my hikes and checking out snow levels. Download the RPM and install with yum.
Rofi for wayland
Rofi doesn't work by default on wayland.
sudo pacman -S meson
# Use wayland branch
git clone https://github.com/lbonn/rofi.git
cd rofi
meson setup build -Dxcb=disabled
ninja -C build
sudo ninja -C build install