nix-files/TODO.md

6.8 KiB

BUGS

  • nixpkgs date is incorrect (1970.01.01...)
  • ringer (i.e. dino incoming call) doesn't prevent moby from sleeping
  • nix operations from lappy hang when desko is unreachable
    • could at least direct the cache to http://desko-hn:5001

REFACTORING:

  • fold hosts/common/home/ssh.nix -> hosts/common/users/colin.nix

sops/secrets

  • attach secrets to the thing they're used by (sane.programs)
  • rework secrets to leverage sane.fs
  • remove sops activation script as it's covered by my systemd sane.fs impl

roles

  • allow any host to take the role of uninsane.org
    • will make it easier to test new services?

upstreaming

  • split out a sxmo module usable by NUR consumers
  • bump nodejs version in lemmy-ui
  • add updateScripts to all my packages in nixpkgs
  • fix lightdm-mobile-greeter for newer libhandy
  • port zecwallet-lite to a from-source build
  • REVIEW/integrate jellyfin dataDir config: https://github.com/NixOS/nixpkgs/pull/233617

upstreaming to non-nixpkgs repos

IMPROVEMENTS:

security/resilience

  • validate duplicity backups!
  • encrypt more ~ dirs (~/archives, ~/records, ..?)
    • best to do this after i know for sure i have good backups
  • port all sane.programs to be sandboxed
    • consider using landlock instead of bwrap: conceptually simpler and fewer restrictions with the capabilities system
    • enforce that all environment.packages has a bwrap profile (or explicitly opts out)
    • integrate xdg-open with the bwrap profiles
      • xdg-open can run as a highly-permissioned service, fielding requests.
      • when it determines the handler, it can enforce the bwrap profile on that handler's behalf, ensuring that anything launched with xdg-open is lowly-permissioned.
      • then, the actual desktop can be permissioned lower. e.g. no access to ~/.ssh, even in nautilus. xdg-open terminal would grant a high-permission interactive terminal, for doing high-permissioned things.
      • i think there's already a xdg-open dbus equivalent in gnome. search "firejail URL issue"
    • lock down dbus calls within the sandbox
    • remove .ssh access from Firefox!
      • limit access to ~/private/knowledge/secrets through an agent that requires GUI approval, so a firefox exploit can't steal all my logins
  • canaries for important services
    • e.g. daily email checks; daily backup checks
    • integrate nix check into Gitea actions?

faster/better deployments

  • remove audacity's dependency on webkitgtk (via wxwidgets)

user experience

moby

  • fix cpuidle (gets better power consumption): https://xnux.eu/log/077.html
  • SwayNC:
    • don't show MPRIS if no players detected
      • this is a problem of playerctld, i guess
    • add option to change audio output
    • fix colors (red alert) to match overall theme
  • moby: tune GPS
    • run only geoclue, and not gpsd, to save power?
    • tune QGPS setting in eg25-control, for less jitter?
    • direct mepo to prefer gpsd, with fallback to geoclue, for better accuracy?
    • configure geoclue to do some smoothing?
    • manually do smoothing, as some layer between mepo and geoclue/gpsd?
  • moby: show battery state on ssh login
  • moby: improve gPodder launch time
  • moby: theme GTK apps (i.e. non-adwaita styles)
  • phog: remove the gnome-shell runtime dependency to save hella closure size

non-moby

  • RSS: integrate a paywall bypass
    • e.g. self-hosted ladder (like 12ft.io)
  • neovim: set up language server (lsp; rnix-lsp; nvim-lspconfig)
  • Helix: make copy-to-system clipboard be the default
  • firefox/librewolf: persist history
    • just not cookies or tabs
  • package Nix/NixOS docs for Zeal
  • have xdg-open parse `repo:... URIs (or adjust them so that it can parse)
  • sane-bt-search: show details like 5.1 vs stereo, h264 vs h265
    • maybe just color these "keywords" in all search results?
  • uninsane.org: make URLs relative to allow local use (and as offline homepage)
  • email: fix so that local mail doesn't go to junk
    • git sendmail flow adds the DKIM signatures, but gets delivered locally w/o having the sig checked, so goes into Junk
    • could change junk filter from "no DKIM success" to explicit "DKIM failed"

perf

  • debug nixos-rebuild times
    • i bet sane.programs adds a LOT of time, with how it automatically creates an attrs for EVERY package in nixpkgs.
  • add pkgs.impure-cached.<foo> package set to build things with ccache enabled
    • every package here can be auto-generated, and marked with some env var so that it doesn't pollute the pure package set
    • would be super handy for package prototyping!
  • fix desko so it doesn't dispatch so many build jobs to servo by default

NEW FEATURES: