# TODO

Plans for the future of this dotfiles.

## General

- [ ] Add [GuixWL](https://guixwl) workflow

## System

### Configuration

- [ ] /etc/security/access.conf
- [ ] Filesystem snapshot:
  - [ ] zrepl (rootfs=zfs)
- [ ] Root on tmpfs
- [ ] Filesystem backup (I don't have spare hard drives -_- so not supported for now):
  - [ ] Local incremental backups (to spare disk)
  - [ ] Remote backups
- [ ] incron
- [ ] bees
- [ ] kea as another option for dhcp client
- [ ] booster and dracut options for initramfs_generator
- [ ] `i915.enable_guc=3` (/etc/modprobe.d/kms.conf)
- [ ] turnstile as an alternative to pam-rundir/elogind

### Cosmetic

- [ ] Packer + Terraform / Pulumi (zfs + btrfs VMs) for testing the playbook

### Just in case I forget

- [ ] nftables with rootful podman (<https://github.com/greenpau/cni-plugins>)
- [ ] Write docs about AlpineLinux installation:
  - [ ] BTRFS on LUKS (no encrypted /boot) / ZFS on root
  - [ ] Bootloader configuration:
    - [ ] limine / grub (BTRFS)
    - [ ] gummyboot (a.k.a systemd-boot) / stubbyboot / direct efistub (ZFS)
    - [ ] [APK post-commit hook](https://ptrcnull.me/posts/alpine-commit-hooks/) in the case of gummyboot, stubbyboot, efistub and limine
    - [ ] EFI secure boot (also sign fwupd efi binary)
    - [ ] Add EFI entries for EFI shell and fwupd
  - [ ] Common kernel parameters: `init_on_free=1 page_alloc.shuffle=1 lockdown=integrity quiet`
    - [ ] ZFS: `root=ZFS=rpool/ROOT/alpine`
    - [ ] BTRFS: `modules=sd-mod,usb-storage,btrfs,nvme rootfstype=btrfs cryptroot=UUID=<...> cryptdm=alpine`

## Dotfiles

### Software

- [ ] ~~[wayout](https://git.sr.ht/~proycon/wayout)~~
- [x] ~~Use [bubblewrap](https://github.com/containers/bubblewrap) for some applications~~ ==> replace with rootless [podman](https://podman.io) and [apptainer](https://apptainer.org)
- [ ] [eww](https://github.com/elkowar/eww)
- [ ] ~~[swhkd](https://github.com/waycrate/swhkd)~~
- [ ] [senpai](https://git.sr.ht/~taiite/senpai)
- [ ] [ripgrep](https://github.com/BurntSushi/ripgrep) -> [ugrep](https://github.com/Genivia/ugrep)
- [ ] [vieb](https://github.com/Jelmerro/Vieb)
- [ ] ~~[wolfssh](https://www.wolfssl.com)~~
- [ ] [AutoSub](https://github.com/abhirooptalasila/AutoSub)
- [ ] ~~[fnm](https://github.com/Schniz/fnm)~~
- [ ] ~~[asdf](https://github.com/asdf-vm/asdf)~~
- [ ] [userspace-tablet-driver](https://github.com/kurikaesu/userspace-tablet-driver-daemon) for my XP-PEN Artist 16 Pro
- [ ] [lite-xl](https://github.com/lite-xl/lite-xl) / helix / kakoune
- [ ] Wayland compositors: [japokwm](https://github.com/werererer/japokwm), [dwl](https://github.com/djpohly/dwl), [labwc](https://github.com/labwc/labwc), [vivarium](https://github.com/inclement/vivarium), [qtile](https://github.com/qtile/qtile) (also revaluate [hikari](https://hub.darcs.net/raichoo/hikari) and [wayfire](https://wayfire.org))
- [x] ~~[tremc](https://github.com/tremc/tremc) / [rtorrent](https://github.com/rakshasa/rtorrent/)~~ ==> I use [qbt](https://github.com/ludviglundgren/qbittorrent-cli) with qbittorrent-nox daemon now
- [ ] Other terminals (contour, wezterm)
- [ ] CopyQ (config, themes + superd service + clipboard menu script)
- [ ] mangal
- [ ] musikcube
- [ ] vimiv-qt
- [ ] mpd-mpris (as an alternative to mpDris2)

### Cosmetic

- [ ] GTK/Icons/Cursor theme, Sarasa font bootstrapping
- [ ] Waybar config file for River
- [ ] [catppuccin](https://github.com/catppuccin/catppuccin) theme
- [ ] Remove `pipewire-pulse` entirely (is there alternative to pavucontrol for pipewire??)
- [ ] ~~qBittorrent themes~~
- [ ] [vivid](https://github.com/sharkdp/vivid) themes
- [ ] waybar: pulseaudio module -> wireplumber module (wait for more features, e.g. scrolling)
- [ ] html2text, html2org
- [ ] Build podman container images with ansible-bender or stacker
- [ ] Add `target-determinator` and `aspect-cli` to packages (or containers, with underlying `bazel`)

### Sandboxing

- [ ] Dockerfile for [animdl](https://github.com/justfoolingaround/animdl) + mpv
- [ ] podman rootless with dbus access (without ANONYMOUS authentication) + socket permissions (wayland / dbus/ pipewire / pulseaudio) in container (777 is no good)
