mirror of
https://github.com/starr-dusT/dotfiles.git
synced 2025-02-19 19:27:31 -08:00
144 lines
4.8 KiB
Markdown
144 lines
4.8 KiB
Markdown
# 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](https://github.com/Antynea/grub-btrfs), but I've found that
|
|
akmod-nvidia breaks it. Snapper is setup with:
|
|
|
|
```bash
|
|
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](https://pivpn.io/) makes it easy.
|
|
|
|
1. Create client on server and copy resulting `.conf` file to local machine
|
|
2. Import to networkmanager with:
|
|
```bash
|
|
nmcli connection import type wireguard file <conf file from pivpn>
|
|
```
|
|
3. 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:
|
|
|
|
```bash
|
|
linux-mount-<network drive name>
|
|
```
|
|
|
|
## Taskopen for taskwarrior
|
|
|
|
[taskopen](https://github.com/jschlatow/taskopen) is easier to install
|
|
manually at this point since it isn't packaged and uses nim. Might get this
|
|
automated in the future.
|
|
|
|
```bash
|
|
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.
|
|
|
|
## 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](https://github.com/ilayna/Single-GPU-passthrough-amd-nvidia)
|
|
has scripts that make that process relatively easy and [this wiki](https://gitlab.com/risingprismtv/single-gpu-passthrough/-/wikis/home)
|
|
provides good information on setting up the virtual machine in virt-manager.
|
|
The `patch.rom` required for my GPU is included in my repo. The virt-manager
|
|
setup should usually be avoided by transfering the VM between machines:
|
|
|
|
1. Copy the VM's disks from `/var/lib/libvirt/images` on src host to the same dir on destination host
|
|
2. On the source host run `virsh dumpxml VMNAME > domxml.xml` and copy this xml to the destination host
|
|
3. On the destination host run `virsh define domxml.xml`
|
|
|
|
## xmonad
|
|
|
|
```bash
|
|
cd ~/.config/xmonad
|
|
stack update
|
|
stack init
|
|
stack install
|
|
```
|