diff --git a/README.org b/README.org
index 1f6543c..49316a4 100644
--- a/README.org
+++ b/README.org
@@ -16,927 +16,10 @@ The biggest part of this is through NixOS. NixOS is a declarative way of buildin
 
 Let's start with the core of this, the flake.
 
-** flake.nix
-This is not a wholly complex setup with flakes. I've seen far more complex and unique ones. But the basic idea is to have a few of our inputs setup to bring in the expected pkgs and then output things to the correct system/user.
-
-Note how in the outputs I do have some duplicated code. That is will disappear as I grow more accustomed to flakes and nix. Anyhow, the important things to gather in this file are that I'm making sure to use non-free software by making pkgs =config = { allowUnfree = true; }=. This ensures that things like the non-free linux kernel are accessible.
-
-Also, syl is my laptop and kaladin is my desktop. So those are going to be unique in the future.
-
-Both include the home-manager module. Primarily I chose that route so that I could use the same command to update the entire system without needing to update the system and user stuff seperately.
-#+begin_src nix :tangle flake.nix
-{
-  description = "The Flake";
-
-  inputs = {
-    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
-    nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-22.05";
-    home-manager = {
-      url = "github:nix-community/home-manager/master";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    hyprland = {
-      url = "github:hyprwm/Hyprland";
-    };
-    eww = {
-      url = "github:elkowar/eww";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    emacs = {
-      url = "github:nix-community/emacs-overlay";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    nix-bitcoin = {
-      url = "github:fort-nix/nix-bitcoin/release";
-    };
-    libre-presenter = {
-      url = "gitlab:chriscochrun/church-presenter";
-    };
-  };
-
-  outputs = { nixpkgs, nixpkgs-stable, home-manager, hyprland, emacs, nix-bitcoin, libre-presenter, ... }:
-    let
-      system = "x86_64-linux";
-      username = "chris";
-      pkgsForSystem = import nixpkgs {
-        inherit system;
-        config = { allowUnfree = true; };
-        overlays = [
-          emacs.overlays.default
-
-          (self: super:
-            {
-              awesome = super.awesome.overrideAttrs (old: rec {
-                pname = "awesome";
-                version = "git-20220614-3a54221";
-                src = super.fetchFromGitHub {
-                  owner = "awesomeWM";
-                  repo = "awesome";
-                  rev = "3a542219f3bf129546ae79eb20e384ea28fa9798";
-                  sha256 = "4z3w6iuv+Gw2xRvhv2AX4suO6dl82woJn0p1nkEx3uM=";
-                };
-                patches = [];
-              });
-            }
-          )
-
-          (self: super:
-            {
-              qt5ct = super.qt5ct.overrideAttrs (old: rec {
-                patches = (old.patches or []) ++ [
-                  ../../qt5ct.patch
-                ];
-              });
-            }
-          )
-        ];
-      };
-
-      lib = nixpkgs.lib;
-      # unstable = nixpkgs;
-
-    in  {
-      nixosConfigurations = {
-        syl = lib.nixosSystem {
-          inherit system;
-          pkgs = pkgsForSystem;
-          modules = [
-            ./system/syl/configuration.nix
-            home-manager.nixosModules.home-manager
-            hyprland.nixosModules.default
-            # libre-presenter.defaultPackage
-            {
-              home-manager.useGlobalPkgs = true;
-              home-manager.useUserPackages = true;
-              home-manager.users.chris = import ./user/home.nix;
-            }
-          ];
-        };
-        kaladin = lib.nixosSystem {
-          inherit system;
-          pkgs = pkgsForSystem;
-          modules = [
-            ./system/kaladin/configuration.nix
-            home-manager.nixosModules.home-manager
-            hyprland.nixosModules.default
-            {
-              home-manager.useGlobalPkgs = true;
-              home-manager.useUserPackages = true;
-              home-manager.users.chris = import ./user/home.nix;
-            }
-          ];
-        };
-        dalinar = nixpkgs-stable.lib.nixosSystem {
-          inherit system;
-          modules = [
-            ./system/dalinar/configuration.nix
-            nix-bitcoin.nixosModules.default
-          ];
-        };
-        kohlin = nixpkgs-stable.lib.nixosSystem {
-          inherit system;
-          modules = [
-            ./system/kohlin/configuration.nix
-            nix-bitcoin.nixosModules.default
-          ];
-        };
-      };
-    };
-}
-#+end_src
-
-** General
-All my machines have these settings.
-
-Every machine has it's own hardware config and we'll throw in the cachix piece here too.
-#+NAME: hardware
-#+begin_src nix
-imports =
-  [
-    ./hardware-configuration.nix
-    /etc/nixos/cachix.nix
-  ];
-#+end_src
-
-Let's make sure all the machines have their pkgs setup to be unstable and using the flake system.
-
-#+NAME: experimental-features
-#+begin_src nix
-nix = {
-  extraOptions = "experimental-features = nix-command flakes";
-  package = pkgs.nixVersions.unstable;
-};
-
-#+end_src
-
-I use plasma and hyprland mostly as my desktop. Also all desktops will likely need ntfs support in order to work with windows devices.
-#+NAME: desktop
-#+begin_src nix
-# This adds hyprland cache to cachix
-nix.settings = {
-  substituters = ["https://hyprland.cachix.org"];
-  trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
-};
-
-boot.supportedFilesystems = [ "ntfs" ];
-services.xserver = {
-  enable = true;
-  autorun = false;
-  # windowManager.awesome = {
-  #   enable = true;
-  #   package = pkgs.awesome;
-  # };
-  displayManager = {
-    startx.enable = true;
-    sddm = {
-      enable = false;
-    };
-    session = [
-      {
-        manage = "desktop";
-        name = "Hyprland";
-        start = ''
-          /home/chris/bin/hyprland &
-          waitPID=$!
-        '';
-      }
-    ];
-  };
-  desktopManager.plasma5 = {
-    enable = true;
-    runUsingSystemd = true;
-  };
-  # desktopManager.gnome.enable = true;
-};
-
-services.greetd = {
-  enable = true;
-  settings = rec {
-    initial_session = {
-      command = "dbus-run-session startplasma-wayland";
-      user = "chris";
-    };
-    default_session = {
-      command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time -r --window-padding 2 --cmd 'dbus-run-session startplasma-wayland'";
-      user = "greeter";
-    };
-    plasma_session = {
-      command = "dbus-run-session startplasma-wayland";
-      user = "chris";
-    };
-    hyprland_session = {
-      command = "/home/chris/bin/hyprland";
-      user = "chris";
-    };
-  };
-};
-
-environment.etc."greetd/environments".text = ''
-    /home/chris/bin/hyprland
-    fish
-    bash
-    dbus-run-session startplasma-wayland
-'';
-
-programs.hyprland = {
-  enable = true;
-};
-
-services.avahi = {
-  enable = true;
-  nssmdns = true;
-};
-#+end_src
-
-In order to make sure the kde xdg-portals are used we need this
-#+NAME: xdg-portals
-#+begin_src nix
-xdg.portals.extraPortals = [ "xdg-desktop-portal-kde" ];
-#+end_src
-
-To use pipewire there are some specific setup pieces that I like to have.
-#+NAME: pipewire
-#+begin_src nix
-# Enable sound.
-security.rtkit.enable = true;
-services.pipewire = {
-  enable = true;
-  alsa.enable = true;
-  alsa.support32Bit = true;
-  pulse.enable = true;
-  wireplumber.enable = true;
-};
-
-# Needed for some pipewire progs and other gtk apps
-programs.dconf.enable = true;
-#+end_src
-
-To make sure certain things are setup properly I'll modify the shells a bit.
-#+NAME: shell
-#+begin_src nix
-# Set default shell to be dash for speed
-# Apparently this is bad because a lot of nix relies on bash
-# environment.binsh = "${pkgs.dash}/bin/dash";
-
-environment.homeBinInPath = true;
-programs.fish.enable = true;
-programs.zsh.enable = true;
-#+end_src
-
-And here are environment variables I need in all computers
-#+NAME: env
-#+begin_src nix
-  EDITOR = "emacsclient -t -a";
-  VISUAL = "emacsclient -c -a";
-  # Fixing Qt apps in other environments
-  # Thought I needed this but apparently they are working fine without it.
-  # QT_XCB_GL_INTEGRATION = "xcb_egl";
-  # QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.qt5.qtbase.bin}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms";
-#+end_src
-
-#+NAME: samba
-#+begin_src nix
-services.samba-wsdd.enable = true;
-services.samba = {
-  enable = true;
-  extraConfig = ''
-      workgroup = WORKGROUP                                     
-      server string = smbnix
-      netbios name = smbnix
-      security = user 
-      #use sendfile = yes
-      #max protocol = smb2
-      # note: localhost is the ipv6 localhost ::1
-      hosts allow = 192.168.0. 127.0.0.1 localhost
-      hosts deny = 0.0.0.0/0
-      guest account = nobody
-      map to guest = bad user
-  '';
-  shares = {
-    public = {
-      path = "/home/chris/Public";
-      "read only" = false;
-      browsable = true;
-      "guest ok" = true;
-      comment = "Share";
-    };
-  };
-};
-#+end_src
-
-Now lets turn on docker and podman. I create a lot of containers for my job.
-#+NAME: containers
-#+begin_src nix
-virtualisation.podman.enable = true;
-# virtualisation.docker.enable = true;
-virtualisation.libvirtd = {
-  enable = true;
-  qemu = {
-    runAsRoot = false;
-    ovmf = {
-      enable = true;
-      packages = [
-        pkgs.OVMFFull.fd
-        pkgs.pkgsCross.aarch64-multiplatform.OVMF.fd
-      ];
-    };
-    swtpm.enable = true;
-  };
-};
-#+end_src
-
-Here is android dev tools packages properly setup for doing android flashes.
-#+NAME: android-tools
-#+begin_src nix
-programs.adb.enable = true;
-services.udev.packages = [ pkgs.android-udev-rules ];
-#+end_src
-
-*** Packages
-Here are a list of packages that I like to have on all machines.
-
-These first base packages are used on all systems. From laptops, to desktops, and even servers.
-#+NAME: base-packages
-#+begin_src nix
-vim
-wget
-killall
-git
-tmux
-dutree
-cachix
-unzip
-unrar
-p7zip
-zip
-gzip
-usbutils
-binutils
-podman-compose
-exa
-# img2pdf
-yt-dlp
-bat
-rsync
-jq
-ripgrep
-fd
-socat
-ffmpeg-full
-imagemagick
-libheif
-trash-cli
-htop
-btop
-bc 
-sysstat
-procs
-pandoc
-samba
-blesh
-# OVMFFull
-quickemu
-#+end_src
-
-These are just for general graphical machines. Laptops, and desktops.
-#+NAME: general-packages
-#+begin_src nix
-discover
-# kde-rounded-corners
-lightly-qt
-pinentry
-pinentry-qt
-hunspell
-caffeine-ng
-hunspellDicts.en_US
-transmission
-openssh
-ark
-ifuse
-dash
-brightnessctl
-dunst
-ttyper
-kget
-audacity
-krename
-kwallet-pam
-plasma5Packages.kwallet
-sierra-breeze-enhanced
-libimobiledevice
-bottles
-# jitsi-meet-electron
-imv
-feh
-tagutil
-python310Packages.mutagen
-python310Packages.audiotools
-(mpv.override {scripts = with pkgs.mpvScripts; [ mpris youtube-quality sponsorblock ];})
-ani-cli
-mov-cli
-nerdfonts
-# latte-dock
-plasma-browser-integration
-alacritty
-libsForQt5.bismuth
-libnotify
-rofi-wayland
-wf-recorder
-wofi
-waybar
-tridactyl-native
-eww-wayland
-wlrctl
-hyprpaper
-swaylock-fancy
-aha
-glxinfo
-vulkan-tools
-wayland-utils
-nextcloud-client
-# mkchromecast
-plocate
-# librepresenter.libre-presenter
-papirus-icon-theme
-phinger-cursors
-plasma-hud
-kde-cli-tools
-gzip 
-qrencode
-brave
-scribus
-darktable
-qutebrowser
-virt-manager
-virt-viewer
-# firefox
-kate
-kdialog
-plasma5Packages.khotkeys
-# openlp
-inkscape
-libreoffice-fresh
-vlc
-neochat
-haskellPackages.greenclip
-pulsemixer
-any-nix-shell
-wtype
-xdotool
-# ydotool
-wmctrl
-xcape
-xclip
-maim
-unclutter-xfixes
-bluez-tools
-networkmanager_dmenu
-plasma5Packages.qt5ct
-lxappearance
-spotdl
-kdenlive
-minetest
-# natron
-digikam
-rubberband
-texlive.combined.scheme-full
-wlroots
-picom-next
-pamixer
-playerctl
-jellyfin-mpv-shim
-pfetch
-macchina
-gimp
-powertop
-element-desktop-wayland
-scrcpy
-python
-python3
-airshipper
-# hyprland
-
-#+end_src
-
-Here are some dev tools that I often have on a few devices.
-#+NAME: dev-tools
-#+begin_src nix
-# android-tools
-nix-index
-# meson
-# ninja
-# gnumake
-# gcc
-# gdb
-# clang
-# clang-tools
-# cmake 
-# qtcreator
-# extra-cmake-modules
-# pkg-config
-# libsForQt5.wrapQtAppsHook
-# python310Packages.pyqt5
-# LIBRARIES FOR DEV
-# qt5.qtbase
-# qt5.qtquickcontrols2
-# qt5.qtx11extras
-# libsForQt5.appstream-qt
-# libsForQt5.kdelibs4support
-# libsForQt5.kirigami2
-# libsForQt5.ki18n
-# libsForQt5.kcoreaddons
-# plasma5Packages.kirigami2
-sqlite
-fennel
-#+end_src
-
-Let's create our own custom LightlyShaders package. This is in it's own file for now.
-#+NAME: lightlyshaders
-#+begin_src nix
-# (libsForQt5.callPackage /home/chris/dev/LightlyShaders {})
-#+end_src
-
-Let's also add our own package from my WIP presenter
-#+NAME: librepresenter
-#+begin_src nix
-# (libsForQt5.callPackage /home/chris/dev/church-presenter {})
-#+end_src
-
-#+NAME: ydotool
-#+begin_src nix
-(import /home/chris/.dotfiles/ydotool { inherit lib stdenv util-linux cmake scdoc fetchFromGitHub; })
-#+end_src
-
-Firefox has it's own setup
-#+NAME: firefox
-#+begin_src nix
-nixpkgs.config.firefox.enableTridactyl = true;
-#+end_src
-
-Here are the two main overlays I like to use. One for Emacs and another for the AwesomeWM.
-For some reason the emacs overlay has a specific sha256. So I'll create it in each config.
-#+NAME: overlays
-#+begin_src nix
-(self: super:
-  {
-    myAwesome = super.awesome.overrideAttrs (old: rec {
-      pname = "myAwesome";
-      version = "git-20220614-3a54221";
-      src = super.fetchFromGitHub {
-        owner = "awesomeWM";
-        repo = "awesome";
-        rev = "3a542219f3bf129546ae79eb20e384ea28fa9798";
-        sha256 = "4z3w6iuv+Gw2xRvhv2AX4suO6dl82woJn0p1nkEx3uM=";
-      };
-      patches = [];
-    });
-  }
-)
-
-(self: super:
-  {
-    qt5ct = super.qt5ct.overrideAttrs (old: rec {
-      patches = (old.patches or []) ++ [
-        ../../qt5ct.patch
-      ];
-    });
-  }
-)
-#+end_src
-
-*** Emacs
-Emacs service
-#+NAME: emacs
-#+begin_src nix
-services.emacs = {
-  enable = true;
-  package = with pkgs; ((emacsPackagesFor emacsPgtk).emacsWithPackages 
-    (epkgs: with epkgs; [
-      vterm
-      magit
-      pdf-tools
-      consult-eglot
-      org
-      org-roam
-      command-log-mode
-      all-the-icons
-      doom-modeline
-      doom-themes
-      rainbow-delimiters
-      smartparens
-      aggressive-indent
-      adaptive-wrap
-      which-key
-      exec-path-from-shell
-      no-littering
-      tree-sitter
-      tree-sitter-langs
-      rustic
-      evil
-      evil-collection
-      general
-      evil-escape
-      evil-surround
-      evil-org
-      org-super-agenda
-      websocket
-      org-roam-ui
-      org-present
-      org-modern
-      org-re-reveal
-      org-re-reveal-ref
-      org-re-reveal-citeproc
-      ox-reveal
-      oer-reveal
-      ox-spectacle
-      unicode-fonts
-      emojify
-      undo-tree
-      visual-fill-column
-      toc-org
-      pulsar
-      vertico
-      consult
-      marginalia
-      all-the-icons-completion
-      embark
-      embark-consult
-      corfu
-      orderless
-      cape
-      devdocs
-      yasnippet
-      tempel
-      projectile
-      simple-httpd
-      avy
-      evil-avy
-      ace-link
-      ace-window
-      helpful
-      format-all
-      web-mode
-      lua-mode
-      nix-mode
-      cmake-mode
-      fennel-mode
-      yaml-mode
-      docker
-      docker-tramp
-      fish-mode
-      markdown-mode
-      qml-mode
-      csv-mode
-      restclient
-      ob-restclient
-      dart-mode
-      flutter
-      hover
-      direnv
-      all-the-icons-dired
-      dired-single
-      dired-rainbow
-      diredfl
-      dired-rsync
-      fd-dired
-      ledger-mode
-      org-msg
-      calfw
-      calfw-org
-      calfw-ical
-      org-caldav
-      org-wild-notifier
-      magit
-      sly
-      nov
-      elfeed
-      elfeed-org
-      bongo
-      emms
-      transmission
-      hass
-      pass
-      password-store
-      password-store-otp
-      plz
-      ement
-      mastodon
-      qrencode
-      gcmh
-      use-package
-      esh-autosuggest
-      pkgs.mu
-    ]));
-  defaultEditor = true;
-};
-#+end_src
-
 ** Syl
 Syl is my laptop and has some configuration unique to that. In particular, it's a Framework Laptop. Honestly a great piece of tech. Love it.
 
 Notice how I am including all of my software here. It may be a big file, but having all of it in one place means I can easily grok through it and remove something.
-*** Config
-#+begin_src nix :tangle system/syl/configuration.nix :noweb yes
-{ lib, config, pkgs, callPackage, ... }:
-
-{
-  <<hardware>>
-  <<experimental-features>>
-
-  # Use the systemd-boot EFI boot loader.
-  boot.kernelPackages = pkgs.linuxPackages_zen;
-  boot.loader.systemd-boot.enable = true;
-  boot.loader.efi.canTouchEfiVariables = true;
-  boot.initrd.kernelModules = [ "i915" ];
-
-  nixpkgs.config.allowUnfree = true;
-
-  boot.kernelParams = [ "mem_sleep_default=deep" "nvme.noacpi=1" ];
-  hardware.cpu.intel.updateMicrocode =
-    lib.mkDefault config.hardware.enableRedistributableFirmware;
-
-  hardware.acpilight.enable = lib.mkDefault true;
-
-  networking.hostName = "syl"; # Define your hostname.
-  networking.networkmanager.enable = true;
-  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
-
-  # Set your time zone.
-  time.timeZone = "America/Chicago";
-
-  # The global useDHCP flag is deprecated, therefore explicitly set to false here.
-  # Per-interface useDHCP will be mandatory in the future, so this generated config
-  # replicates the default behaviour.
-  networking.useDHCP = false;
-  networking.interfaces.wlp170s0.useDHCP = true;
-
-  <<containers>>
-
-  # Select internationalisation properties.
-  i18n.defaultLocale = "en_US.UTF-8";
-
-  hardware.uinput.enable = true;
-
-  hardware.bluetooth.enable = true;
-
-  nixpkgs.config.packageOverrides = pkgs: {
-    vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
-  };
-
-  hardware.opengl = {
-    enable = true;
-    extraPackages = with pkgs; [
-      intel-media-driver # LIBVA_DRIVER_NAME=iHD
-      vaapiIntel         # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
-      libvdpau-va-gl
-    ];
-  };
-
-  services.xserver.videoDrivers = ["intel"];
-
-  <<desktop>>
-
-  # Configure keymap in X11
-  services.xserver.layout = "us";
-  # services.xserver.xkbOptions = "eurosign:e";
-
-  systemd.services.display-manager = {
-    wants = [ "systemd-user-sessions.service" "multi-user.target" "network-online.target" ];
-    after = [ "systemd-user-sessions.service" "multi-user.target" "network-online.target" ];
-  };
-
-  # Enable CUPS to print documents.
-  services.printing.enable = true;
-  services.printing.drivers = [ pkgs.gutenprint pkgs.gutenprintBin pkgs.hplipWithPlugin ]; 
-
-  # Enable fingerprint
-  services.fprintd.enable = true;
-  # programs.qt5ct.enable = true;
-
-  <<pipewire>>
-
-  # Turn on flatpak
-  services.flatpak.enable = true;
-
-  # Some other things
-  services.thermald.enable = true;
-  services.power-profiles-daemon.enable = false;
-  services.tlp = {
-    enable = true;
-    settings = {
-      CPU_SCALING_GOVERNOR_ON_AC="performance";
-      CPU_SCALING_GOVERNOR_ON_BAT="powersave";
-      CPU_ENERGY_PERF_POLICY_ON_AC="balance_performance";
-      CPU_ENERGY_PERF_POLICY_ON_BAT="power";
-      PCIE_ASPM_ON_AC="default";
-      PCIE_ASPM_ON_BAT="powersupersave";
-      SCHED_POWERSAVE_ON_AC=0;
-      SCHED_POWERSAVE_ON_BAT=1;
-      START_CHARGE_THRESH_BAT1=70;
-      STOP_CHARGE_THRESH_BAT1=80;
-      USB_ALLOWLIST="32ac:0002";
-    };
-  };
-
-  services.usbmuxd.enable = true;
-  services.fstrim.enable = true;
-
-  # Enable touchpad support (enabled default in most desktopManager).
-  services.xserver.libinput.enable = true;
-
-  <<shell>>
-
-  environment.variables = {
-    <<env>>
-    VDPAU_DRIVER = lib.mkIf config.hardware.opengl.enable (lib.mkDefault "va_gl");
-    # QT_QPA_PLATFORMTHEME = "qt5ct";
-    # QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
-    # QT_QPA_PLATFORM = "wayland;xcb";
-    # QT_AUTO_SCREEN_SCALE_FACTOR = "1";
-  };
-
-  # Define a user account. Don't forget to set a password with ‘passwd’.
-  users.users.chris = {
-    isNormalUser = true;
-    extraGroups = [ "adbusers" "wheel" "networkmanager" "input" "uinput" ];
-  };
-
-  <<android-tools>>
-
-  programs.partition-manager.enable = true;
-  programs.kdeconnect.enable = true;
-
-  security.pam.services.kwallet = {
-    name = "kwallet";
-    enableKwallet = true;
-  };
-  security.pam.services.sddm.enableKwallet = true;
-
-  # virtualisation.waydroid.enable = true;
-
-  # <<firefox>>
-
-  # List packages installed in system profile. To search, run:
-  # $ nix search wget
-  environment.systemPackages = with pkgs; [
-    <<base-packages>>
-    <<general-packages>>
-    neofetch
-    afetch
-    yafetch
-    freshfetch
-    disfetch
-    bunnyfetch
-    fet-sh
-    macchina
-    # Dev tools
-    <<ydotool>>
-    <<dev-tools>>
-    <<lightlyshaders>>
-    <<librepresenter>>
-  ];
-
-  <<emacs>>
-  <<samba>>
-
-  # Some programs need SUID wrappers, can be configured further or are
-  # started in user sessions.
-  # programs.mtr.enable = true;
-  # programs.gnupg.agent = {
-  #   enable = true;
-  #   enableSSHSupport = true;
-  # };
-
-  # List services that you want to enable:
-
-  services.locate = {
-    enable = true;
-    locate = pkgs.plocate;
-    localuser = null;
-    interval = "hourly";
-    prunePaths = [ "/tmp" "/nix/store" "/nix/var/log/nix" "/etc" "/bin" "/boot" "/usr" "/var" "/run" "/srv" "/sys" "/root" "/proc" "/opt" "/dev" "/home/chris/.emacs.d" "/home/chris/.config" "/home/chris/.nix-profile" "/home/chris/.profile" "/home/chris/dev/nixpkgs" "/home/chris/.cache" "/home/chris/.local" "/home/chris/.dotemacs" "/home/chris/.cargo" "/home/chris/.mozilla" "/home/chris/.var" "/home/chris/.dotfiles" "/home/chris/.dbus" "/home/chris/.android" "/var/lib"];
-  };
-
-  # Enable the OpenSSH daemon.
-  services.openssh.enable = true;
-
-  # Open ports in the firewall.
-  # networking.firewall.allowedTCPPorts = [ ... ];
-  # networking.firewall.allowedUDPPorts = [ ... ];
-  # Or disable the firewall altogether.
-  # networking.firewall.enable = false;
-
-  # This value determines the NixOS release from which the default
-  # settings for stateful data, like file locations and database versions
-  # on your system were taken. It‘s perfectly fine and recommended to leave
-  # this value at the release version of the first install of this system.
-  # Before changing this value read the documentation for this option
-  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
-  system.stateVersion = "21.11"; # Did you read the comment?
-
-}
-#+end_src
-
 *** Hardware
 Now in the =hardware-configuration.nix= file, I didn't change much because I wanted to keep it roughly the same in case things do get overwritten, but this is another nice feature of literate programming, should things change in the /etc folder, I'll have this readme as a backup of what it was before the changes.
 #+begin_src nix :tangle system/syl/hardware-configuration.nix
@@ -986,209 +69,6 @@ Now in the =hardware-configuration.nix= file, I didn't change much because I wan
 ** Kaladin
 Kaladin is my desktop machine. A powerhouse for the most part with a recent i7 and 64gb of memory and an Nvidia 1080. Basically I use this for video editing, animation, and some other things. Here is it's configuration.
 
-*** Config
-#+begin_src nix :tangle system/kaladin/configuration.nix :noweb yes
-{ config, pkgs, ... }:
-
-{
-  imports =
-    [
-      ./hardware-configuration.nix
-    ];
-
-  <<experimental-features>>
-
-  # Use the systemd-boot EFI boot loader.
-  boot = {
-    kernelPackages = pkgs.linuxPackages_zen;
-    kernelParams = [ "mem_sleep_default=deep" ];
-    initrd.kernelModules = [ "amdgpu" ];
-    loader = {
-      systemd-boot.enable = true;
-      efi.canTouchEfiVariables = true;
-    };
-  };
-
-  nixpkgs.config.allowUnfree = true;
-
-  networking.hostName = "kaladin"; # Define your hostname.
-  networking.networkmanager.enable = true;
-  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
-
-  # Set your time zone.
-  time.timeZone = "America/Chicago";
-
-  # The global useDHCP flag is deprecated, therefore explicitly set to false here.
-  # Per-interface useDHCP will be mandatory in the future, so this generated config
-  # replicates the default behaviour.
-  networking.useDHCP = false;
-  networking.interfaces.enp0s31f6.useDHCP = true;
-  networking.interfaces.wlp7s0.useDHCP = true;
-
-  <<containers>>
-
-  # Select internationalisation properties.
-  i18n.defaultLocale = "en_US.UTF-8";
-
-  # Set default shell to be dash for speed
-  # environment.binsh = "${pkgs.dash}/bin/dash";
-
-  # NVIDIA
-  services.xserver.videoDrivers = [ "nvidia" ];
-  hardware = {
-    opengl = {
-      enable = true;
-      extraPackages = with pkgs; [
-        vaapiVdpau
-        libvdpau-va-gl
-      ];
-    };
-    nvidia = {
-      package = config.boot.kernelPackages.nvidiaPackages.latest;
-      modesetting.enable = true;
-      powerManagement.enable = true;
-    };
-  };
-
-  services.xserver.screenSection = ''
-  Option         "metamodes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}"
-  Option         "AllowIndirectGLXProtocol" "off"
-  Option         "TripleBuffer" "on"
-  '';
-
-  <<desktop>>
-  
-  # Configure keymap in X11
-  services.xserver.layout = "us";
-  # services.xserver.xkbOptions = "eurosign:e";
-
-  # Enable CUPS to print documents.
-  services.printing.enable = true;
-  services.printing.drivers = [ pkgs.gutenprint pkgs.gutenprintBin pkgs.hplipWithPlugin ]; 
-
-  <<pipewire>>
-  
-  # Turn on flatpak
-  services.flatpak.enable = true;
-
-  services.usbmuxd.enable = true;
-  services.fstrim.enable = true;
-
-  <<shell>>
-
-  environment.variables = {
-    <<env>>
-    WLR_NO_HARDWARE_CURSORS = "1";
-  };
-
-  # Define a user account. Don't forget to set a password with ‘passwd’.
-  users.users.chris = {
-    isNormalUser = true;
-    extraGroups = [ "wheel" "networkmanager" "input" "no-internet" ]; # Enable ‘sudo’ for the user.
-  };
-
-  programs.partition-manager.enable = true;
-  programs.kdeconnect.enable = true;
-
-  security.pam.services.kwallet = {
-    name = "kwallet";
-    enableKwallet = true;
-  };
-  security.pam.services.sddm.enableKwallet = true;
-
-  # virtualisation.waydroid.enable = true;
-
-  # services.ethminer = {
-  #   enable = true;
-  #   pool = "us-eth.2miners.com:2020";
-  #   toolkit = "cuda";
-  #   rig = "kaladin";
-  #   wallet = "0xE43c525d05Ac52303cb43772Eb209824AE328CA3";
-  #   registerMail = "ceth@cochrun.xyz";
-  # };
-
-  programs.steam = {
-    enable = true;
-    remotePlay.openFirewall = true;
-    dedicatedServer.openFirewall = true;
-  };
-
-  # List packages installed in system profile. To search, run:
-  # $ nix search wget
-  environment.systemPackages = with pkgs; [
-    <<base-packages>>
-    <<general-packages>>
-    blender
-    neofetch
-    # ethminer
-    lutris
-    protonup
-    nvtop
-    # Dev tools
-    <<ydotool>>
-    <<dev-tools>>
-    <<lightlyshaders>>
-    <<librepresenter>>
-  ];
-
-  # nixpkgs.overlays = [
-
-  #   (import (builtins.fetchTarball {
-  #     url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
-  #     sha256 = "1v1n30a2ai5mnlkrkwv4mfczd3601sqxxlawadxariblfvg7qz4j";
-  #   }))
-
-  #   <<overlays>>
-  # ];
-
-  <<emacs>>
-  <<samba>>
-
-  # Some programs need SUID wrappers, can be configured further or are
-  # started in user sessions.
-  # programs.mtr.enable = true;
-  # programs.gnupg.agent = {
-  #   enable = true;
-  #   enableSSHSupport = true;
-  # };
-
-  # List services that you want to enable:
-
-  # Enable the OpenSSH daemon.
-  services.openssh.enable = true;
-
-  
-  # services.caddy = {
-  #   enable = true;
-  #   virtualHosts = {
-  #     "videosdani.tfcconnection.org".extraConfig = ''
-  #     reverse_proxy localhost:9000
-  #     '';
-  #   };
-  #   virtualHosts = {
-  #     "videosdani.tfcconnection.org:1935".extraConfig = ''
-  #     reverse_proxy localhost:1935
-  #     '';
-  #   };
-  # };
-
-  # Open ports in the firewall.
-  # networking.firewall.allowedTCPPorts = [ ... ];
-  # networking.firewall.allowedUDPPorts = [ ... ];
-  # Or disable the firewall altogether.
-  # networking.firewall.enable = false;
-
-  # This value determines the NixOS release from which the default
-  # settings for stateful data, like file locations and database versions
-  # on your system were taken. It‘s perfectly fine and recommended to leave
-  # this value at the release version of the first install of this system.
-  # Before changing this value read the documentation for this option
-  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
-  system.stateVersion = "21.11"; # Did you read the comment?
-
-}
-#+end_src
-
 *** hardware
 And here is it's hardware config.
 #+begin_src nix :tangle system/kaladin/hardware-configuration.nix
@@ -1266,352 +146,6 @@ Kaladin is still not fullly setup, so I'll be working on that more and more as t
 ** Dalinar
 Dalinar is my home server. It's built with an old laptop at the moment, but the way everything is orchestrated is to protect from screw ups.
 
-*** Configuration
-Dalinar's config is of course server oriented.
-
-#+begin_src nix :tangle system/dalinar/configuration.nix
-{ config, pkgs, ... }:
-
-{
-  imports =
-    [ # Include the results of the hardware scan.
-      ./hardware-configuration.nix
-    ];
-
-  nix = {
-   extraOptions = "experimental-features = nix-command flakes";
-   package = pkgs.nixFlakes; 
-  };
-
-  nixpkgs.config.allowUnFree = true;
-
-  # Use the systemd-boot EFI boot loader.
-  boot.loader.systemd-boot.enable = true;
-  boot.loader.efi.canTouchEfiVariables = true;
-
-  networking.hostName = "dalinar"; # Define your hostname.
-  # Pick only one of the below networking options.
-  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
-  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
-
-  # Set your time zone.
-  time.timeZone = "America/Chicago";
-
-  # Configure network proxy if necessary
-  # networking.proxy.default = "http://user:password@proxy:port/";
-  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
-
-  # Select internationalisation properties.
-  i18n.defaultLocale = "en_US.UTF-8";
-
-  # Enable the X11 windowing system.
-  # services.xserver.enable = true;
-
-  # Configure keymap in X11
-  # services.xserver.layout = "us";
-  # services.xserver.xkbOptions = {
-  #   "eurosign:e";
-  #   "caps:escape" # map caps to escape.
-  # };
-
-  # Enable CUPS to print documents.
-  # services.printing.enable = true;
-
-  # Enable sound.
-  # sound.enable = true;
-  # hardware.pulseaudio.enable = true;
-
-  hardware.opengl = {
-   enable = true;
-   extraPackages = with pkgs; [
-    intel-media-driver
-    vaapiIntel
-    vaapiVdpau
-    libvdpau-va-gl    
-   ];
-  };
-
-  environment.homeBinInPath = true;
-  programs.fish.enable = true;
-
-  # Enable touchpad support (enabled default in most desktopManager).
-  # services.xserver.libinput.enable = true;
-
-  # Define a user account. Don't forget to set a password with ‘passwd’.
-  users.users.chris = {
-    isNormalUser = true;
-    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
-  };
-
-  # List packages installed in system profile. To search, run:
-  # $ nix search wget
-  environment.systemPackages = with pkgs; [
-    vim  
-    wget
-    yt-dlp
-    bat
-    ripgrep
-    ffmpeg-full
-    rsync
-    dutree
-    tmux
-    git
-    samba
-    exa
-    jq
-    fd
-    bc
-    sysstat
-    procs
-    btop
-    htop
-    unzip
-    #blesh
-  ];
-
-  virtualisation.docker.enable = true;
-
-  # Some programs need SUID wrappers, can be configured further or are
-  # started in user sessions.
-  # programs.mtr.enable = true;
-  # programs.gnupg.agent = {
-  #   enable = true;
-  #   enableSSHSupport = true;
-  # };
-
-  services.syncthing = {
-    enable = true;
-    dataDir = "/storage/syncthing";
-    openDefaultPorts = true;
-    configDir = "/home/chris/syncthing";
-    user = "chris";
-    group = "users";
-    guiAddress = "0.0.0.0:8384";
-    devices = {
-      syl = {
-        id = "AJMADOK-TENODAA-VSOEW2A-4RXY2XI-YNHIS7H-H3ZYAO5-3UQ64EE-O2N5BAY";
-      };
-      kaladin = {
-        id = "LH6523Z-QQ5F3A4-SINZDOI-UFMQBIX-ZV6Q5BQ-LTKVMDB-CRI6QG5-RRKJFQS";
-      };
-      shadow = {
-        id = "SGO2BUT-WDOB2B7-SD5BHKU-ES3BFZF-EZPFSQJ-B4744TP-SXKZS4O-SDLJ5QX";
-      };
-      tablet = {
-        id = "4HEXCNH-MCVBZQX-LQ735TG-P2VTJ7N-CZ5MK4P-ICZAPC7-YCXVEWV-7NILMA5";
-      };
-      kohlin = {
-        id = "BSWKBRR-2IJBCHA-UQY7DE7-CV2U2IL-PMFQFCJ-D5ZZJMU-FPYRUPC-MCC32QQ";
-      };
-    };
-    folders = {
-      music = {
-        id = "teqqy-rzvec";
-        path = "/storage/syncthing/Music";
-        devices = [ "syl" "kaladin" "shadow" "kohlin"];
-        versioning = {
-          type = "trashcan";
-          params.cleanoutDays = "100";
-        };
-      };
-      ebooks = {
-        id = "wziqy-7hyv9";
-        path = "/storage/syncthing/ebooks";
-        devices = [ "syl" "kaladin" "shadow" "tablet" "kohlin"];
-        versioning = {
-          type = "trashcan";
-          params.cleanoutDays = "100";
-        };
-      };
-      notes = {
-        id = "zwshm-umwbt";
-        path = "/storage/syncthing/notes";
-        devices = [ "syl" "kaladin" "shadow" "kohlin"];
-        versioning = {
-          type = "trashcan";
-          params.cleanoutDays = "100";
-        };
-      };
-      librera = {
-        id = "vvtvj-osndy";
-        path = "/storage/syncthing/librera";
-        devices = [ "tablet" "shadow" "kohlin"];
-        versioning = {
-          type = "trashcan";
-          params.cleanoutDays = "100";
-        };
-      };
-    };
-  };
-
-  nix-bitcoin = {
-    generateSecrets = true;
-    operator = {
-      enable = true;
-      name = "chris";
-    };
-  };
-
-  # List services that you want to enable:
-
-  services.locate = {
-    enable = true;
-    locate = pkgs.plocate;
-    localuser = null;
-  };
-
-  # Enable the OpenSSH daemon.
-  services.openssh.enable = true;
-  services.fstrim.enable = true;
-  services.logind = {
-    lidSwitch = "ignore";
-    lidSwitchExternalPower = "ignore";
-  };
-
-  services.monero = {
-    enable = false;
-    dataDir = "/storage/monero";
-  };
-
-  services.bitcoind = {
-    enable = true;
-    listen = true;
-    dataDir = "/storage/bitcoind";
-    dbCache = 5000;
-  };
-
-  services.clightning = {
-    enable = true;
-    dataDir = "/storage/clightning";
-  };
-
-  services.rtl = {
-    enable = true;
-    dataDir = "/storage/rtl";
-    nightTheme = true;
-    extraCurrency = "USD";
-    nodes.clightning.enable = true;
-  };
-
-  # DDCLIENT
-  services.ddclient = {
-    enable = true;
-    configFile = /home/chris/ddclient.conf;
-   #domains = [
-   #  "nc.cochrun.xyz"
-   #  "home.cochrun.xyz"
-   #  "mail.cochrun.xyz"
-   #  "jelly.cochrun.xyz"
-   #];
-   #passwordFile = "/etc/nixos/ddclientp";
-   #protocol = "namecheap";
-   #use = "web, web=dynamicdns.park-your-domain.com/getip";
-   #server = "dynamicdns.park-your-domain.com";
-   #username = "cochrun.xyz";
-   #extraConfig = ''
-   #use=web, web=dynamicdns.park-your-domain.com/getip
-   #protocol=namecheap
-   #server=dynamicdns.park-your-domain.com
-   #login=livingseedco.shop
-   #password=e157e42337fc4ccd850d0a3904733f46
-   #@
-
-   #use=web, web=dynamicdns.park-your-domain.com/getip
-   #protocol=namecheap
-   #server=dynamicdns.park-your-domain.com
-   #login=cochrun.xyz
-   #password=94602c373f9f4743838bf567def2eb72
-   #@,nc.cochrun.xyz,home.cochrun.xyz,mail.cochrun.xyz,jelly.cochrun.xyz
-
-
-   #'';
-  };
-
-  # CADDY
-  services.caddy = {
-    enable = true;
-    virtualHosts = {
-      "home.cochrun.xyz".extraConfig = ''
-        reverse_proxy localhost:8123
-      '';
-    };
-    virtualHosts = {
-      "jelly.cochrun.xyz".extraConfig = ''
-        reverse_proxy localhost:8096
-      '';
-    };
-    virtualHosts = {
-      "livingseedco.shop".extraConfig = ''
-        reverse_proxy localhost:8282
-      '';
-    };
-    virtualHosts = {
-      "sonarr.cochrun.xyz".extraConfig = ''
-        reverse_proxy localhost:7879
-      '';
-    };
-    virtualHosts = {
-      "radarr.cochrun.xyz".extraConfig = ''
-        reverse_proxy localhost:7878
-      '';
-    };
-    virtualHosts = {
-      "192.168.1.2".extraConfig = ''
-        reverse_proxy localhost:9091
-      '';
-    };
-    virtualHosts = {
-      "rtl.cochrun.xyz".extraConfig = ''
-        reverse_proxy localhost:3000
-      '';
-    };
-    virtualHosts = {
-      "nc.cochrun.xyz".extraConfig = ''
-        reverse_proxy localhost:8080
-        encode gzip
-        redir /.well-known/carddav /remote.php/carddav 301
-        redir /.well-known/caldav /remote.php/caldav 301
-        header Strict-Transport-Security "max-age=15768000; includeSubDomains; reload;"
-      '';
-    };
-  };
-
-  systemd.services = {
-    # mail-cert-renew = {
-    #   enable = true;
-    #   serviceConfig = {
-    #     Type = "oneshot";
-    #     ExecStart = with pkgs.docker "sh -c /home/chris/bin/mail-cert-renew";
-    #   };
-    # };
-  };
-
-  # Open ports in the firewall.
-  # networking.firewall.allowedTCPPorts = [ ... ];
-  # networking.firewall.allowedUDPPorts = [ ... ];
-  # Or disable the firewall altogether.
-  networking.firewall.enable = false;
-
-  # Copy the NixOS configuration file and link it from the resulting system
-  # (/run/current-system/configuration.nix). This is useful in case you
-  # accidentally delete configuration.nix.
-  # system.copySystemConfiguration = true;
-
-  # This value determines the NixOS release from which the default
-  # settings for stateful data, like file locations and database versions
-  # on your system were taken. It‘s perfectly fine and recommended to leave
-  # this value at the release version of the first install of this system.
-  # Before changing this value read the documentation for this option
-  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
-  system.stateVersion = "22.05"; # Did you read the comment?
-
-  # The nix-bitcoin release version that your config is compatible with.
-  # When upgrading to a backwards-incompatible release, nix-bitcoin will display an
-  # an error and provide instructions for migrating your config to the new release.
-  nix-bitcoin.configVersion = "0.0.77";
-}
-#+end_src
-
 *** Containers
 Here are Dalinar's containers
 
@@ -1678,273 +212,6 @@ Dalinar's hardware
 ** Kohlin
 Kohlin is another home server. It's built with an old laptop at the moment, but the way everything is orchestrated is to protect from screw ups.
 
-*** Configuration
-Kohlin's config is of course server oriented.
-
-#+begin_src nix :tangle system/kohlin/configuration.nix
-{ config, pkgs, ... }:
-
-{
-  imports =
-    [ # Include the results of the hardware scan.
-      ./hardware-configuration.nix
-    ];
-
-  nix = {
-   extraOptions = "experimental-features = nix-command flakes";
-   package = pkgs.nixFlakes; 
-  };
-
-  nixpkgs.config.allowUnFree = true;
-
-  # Use the systemd-boot EFI boot loader.
-  boot.loader.systemd-boot.enable = true;
-  boot.loader.efi.canTouchEfiVariables = true;
-  boot.loader.efi.efiSysMountPoint = "/boot/efi";
-
-  networking.hostName = "kohlin"; # Define your hostname.
-  # Pick only one of the below networking options.
-  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
-  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
-
-  # Set your time zone.
-  time.timeZone = "America/Chicago";
-
-  # Configure network proxy if necessary
-  # networking.proxy.default = "http://user:password@proxy:port/";
-  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
-
-  # Select internationalisation properties.
-  i18n.defaultLocale = "en_US.UTF-8";
-
-  # Enable the X11 windowing system.
-  # services.xserver.enable = true;
-
-  # Configure keymap in X11
-  # services.xserver.layout = "us";
-  # services.xserver.xkbOptions = {
-  #   "eurosign:e";
-  #   "caps:escape" # map caps to escape.
-  # };
-
-  # Enable CUPS to print documents.
-  # services.printing.enable = true;
-
-  # Enable sound.
-  # sound.enable = true;
-  # hardware.pulseaudio.enable = true;
-
-  hardware.opengl = {
-   enable = true;
-   extraPackages = with pkgs; [
-    intel-media-driver
-    vaapiIntel
-    vaapiVdpau
-    libvdpau-va-gl    
-   ];
-  };
-
-  environment.homeBinInPath = true;
-  programs.fish.enable = true;
-
-  # Enable touchpad support (enabled default in most desktopManager).
-  # services.xserver.libinput.enable = true;
-
-  # Define a user account. Don't forget to set a password with ‘passwd’.
-  users.users = {
-    chris = {
-      isNormalUser = true;
-      extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
-    };
-  };
-
-
-  # List packages installed in system profile. To search, run:
-  # $ nix search wget
-  environment.systemPackages = with pkgs; [
-    vim  
-    wget
-    yt-dlp
-    bat
-    ripgrep
-    ffmpeg-full
-    rsync
-    dutree
-    tmux
-    git
-    samba
-    exa
-    jq
-    fd
-    bc
-    sysstat
-    procs
-    btop
-    htop
-    unzip
-    #blesh
-  ];
-
-  virtualisation.docker.enable = true;
-
-  # Some programs need SUID wrappers, can be configured further or are
-  # started in user sessions.
-  # programs.mtr.enable = true;
-  # programs.gnupg.agent = {
-  #   enable = true;
-  #   enableSSHSupport = true;
-  # };
-
-  services.syncthing = {
-    enable = true;
-    dataDir = "/storage/syncthing";
-    openDefaultPorts = true;
-    configDir = "/home/chris/syncthing";
-    user = "chris";
-    group = "users";
-    guiAddress = "0.0.0.0:8384";
-    devices = {
-      syl = {
-        id = "AJMADOK-TENODAA-VSOEW2A-4RXY2XI-YNHIS7H-H3ZYAO5-3UQ64EE-O2N5BAY";
-      };
-      kaladin = {
-        id = "LH6523Z-QQ5F3A4-SINZDOI-UFMQBIX-ZV6Q5BQ-LTKVMDB-CRI6QG5-RRKJFQS";
-      };
-      shadow = {
-        id = "SGO2BUT-WDOB2B7-SD5BHKU-ES3BFZF-EZPFSQJ-B4744TP-SXKZS4O-SDLJ5QX";
-      };
-      tablet = {
-        id = "4HEXCNH-MCVBZQX-LQ735TG-P2VTJ7N-CZ5MK4P-ICZAPC7-YCXVEWV-7NILMA5";
-      };
-      dalinar = {
-        id = "I6BKBTH-EYKIX5P-GRN6WY5-JHZNFM2-PKMNYU7-Q6JQQY5-EBEWSHO-XGZINAR";
-      };
-    };
-    folders = {
-      music = {
-        id = "teqqy-rzvec";
-        path = "/storage/syncthing/Music";
-        devices = [ "syl" "kaladin" "shadow" "dalinar"];
-        versioning = {
-          type = "trashcan";
-          params.cleanoutDays = "100";
-        };
-      };
-      ebooks = {
-        id = "wziqy-7hyv9";
-        path = "/storage/syncthing/ebooks";
-        devices = [ "syl" "kaladin" "shadow" "tablet" "dalinar"];
-        versioning = {
-          type = "trashcan";
-          params.cleanoutDays = "100";
-        };
-      };
-      notes = {
-        id = "zwshm-umwbt";
-        path = "/storage/syncthing/notes";
-        devices = [ "syl" "kaladin" "shadow" "dalinar"];
-        versioning = {
-          type = "trashcan";
-          params.cleanoutDays = "100";
-        };
-      };
-      librera = {
-        id = "vvtvj-osndy";
-        path = "/storage/syncthing/librera";
-        devices = [ "tablet" "shadow" "dalinar"];
-        versioning = {
-          type = "trashcan";
-          params.cleanoutDays = "100";
-        };
-      };
-    };
-  };
-
-  # List services that you want to enable:
-
-  nix-bitcoin = {
-    generateSecrets = true;
-    operator = {
-      enable = true;
-      name = "chris";
-    };
-  };
-
-  services.locate = {
-    enable = true;
-    locate = pkgs.plocate;
-    localuser = null;
-  };
-
-  services.openssh.enable = true;
-  services.fstrim.enable = true;
-  services.logind = {
-    lidSwitch = "ignore";
-    lidSwitchExternalPower = "ignore";
-  };
-
-  services.monero = {
-    enable = false;
-    dataDir = "/storage/monero";
-  };
-
-  services.bitcoind = {
-    enable = true;
-    listen = true;
-    dataDir = "/storage/bitcoind";
-    dbCache = 3000;
-  };
-
-  services.clightning = {
-    enable = true;
-    dataDir = "/storage/clightning";
-  };
-
-  services.rtl = {
-    enable = true;
-    dataDir = "/storage/rtl";
-    nightTheme = true;
-    extraCurrency = "USD";
-    nodes.clightning.enable = true;
-  };
-
-  # CADDY
-  services.caddy = {
-    enable = true;
-  };
-
-  systemd.services = {
-    # mail-cert-renew = {
-    #   enable = true;
-    #   serviceConfig = {
-    #     Type = "oneshot";
-    #     ExecStart = with pkgs.docker "sh -c /home/chris/bin/mail-cert-renew";
-    #   };
-    # };
-  };
-
-  # Open ports in the firewall.
-  # networking.firewall.allowedTCPPorts = [ ... ];
-  # networking.firewall.allowedUDPPorts = [ ... ];
-  # Or disable the firewall altogether.
-  networking.firewall.enable = false;
-
-  # Copy the NixOS configuration file and link it from the resulting system
-  # (/run/current-system/configuration.nix). This is useful in case you
-  # accidentally delete configuration.nix.
-  # system.copySystemConfiguration = true;
-
-  # This value determines the NixOS release from which the default
-  # settings for stateful data, like file locations and database versions
-  # on your system were taken. It‘s perfectly fine and recommended to leave
-  # this value at the release version of the first install of this system.
-  # Before changing this value read the documentation for this option
-  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
-  system.stateVersion = "22.05"; # Did you read the comment?
-
-}
-#+end_src
-
 *** Containers
 *** Hardware Configuration
 Kohlin's hardware
@@ -1995,577 +262,6 @@ Kohlin's hardware
 ** Home
 I also use home-manager for managing dotfiles. This means that everything is contained in this folder and then tangled out to their respective places when rebuilding the system.
 
-*** MPV
-Here is my mpv config
-
-#+NAME: mpv
-#+begin_src nix
-# programs.mpv = {
-#   enable = true;
-#   scripts = with pkgs.mpvScripts; [ mpris thumbnail youtube-quality sponsorblock ];
-# };
-
-home.file.".config/mpv" = {
-  source = ../mpv;
-  recursive = true;
-};
-#+end_src
-
-*** General
-#+begin_src nix :tangle user/home.nix :noweb yes
-{ config, lib, pkgs, ... }:
-
-{
-  # Home Manager needs a bit of information about you and the
-  # paths it should manage.
-  home.username = "chris";
-  home.homeDirectory = "/home/chris";
-
-  # This value determines the Home Manager release that your
-  # configuration is compatible with. This helps avoid breakage
-  # when a new Home Manager release introduces backwards
-  # incompatible changes.
-  #
-  # You can update Home Manager without changing this value. See
-  # the Home Manager release notes for a list of state version
-  # changes in each release.
-  home.stateVersion = "21.11"; # Did you read the comment?
-
-  # Let Home Manager install and manage itself.
-  programs.home-manager.enable = true;
-
-  # accounts.email.accounts = {
-  #   personal = {
-  #     address = "chris@cochrun.xyz";
-  #     mbsync.enable = true;
-  #     create =  "maildir";
-  #     mu.enable = true;
-  #     imap = {
-  #       host = "mail.cochrun.xyz";
-  #       port = 993;
-  #       tls.enable = true;
-  #     };
-  #     smtp = {
-  #       host = "mail.cochrun.xyz";
-  #       port = 25;
-  #       tls.enable = true;
-  #     };
-  #   };
-  #   work = {
-  #     address = "chris@tfcconnection.org";
-  #     mbsync.enable = true;
-  #     create =  "maildir";
-  #     mu.enable = true;
-  #     imap = {
-  #       host = "outlook.office365.com";
-  #       port = 993;
-  #       tls.enable = true;
-  #     };
-  #     smtp = {
-  #       host = "mail.cochrun.xyz";
-  #       port = 25;
-  #       tls.enable = true;
-  #     };
-  #   };
-  # };
-
-  programs.git = {
-    enable = true;
-    userName = "Chris Cochrun";
-    userEmail = "chris@cochrun.xyz";
-  };
-
-  home.packages = with pkgs; [
-  ];
-
-  programs.mu.enable = true;
-
-  programs.mbsync = {
-    enable = true;
-    extraConfig = ''
-    IMAPAccount gmail
-    Host imap.gmail.com
-    User ccochrun21@gmail.com
-    PassCmd "rbw get gmail"
-    AuthMechs LOGIN
-    SSLType IMAPS
-    SSLVersions SSLv3
-    # CertificateFile /opt/local/share/curl/curl-ca-bundle.crt
-    
-    IMAPAccount office
-    Host outlook.office365.com
-    User chris@tfcconnection.org
-    PassCmd "rbw get 'Office 365'"
-    AuthMechs LOGIN
-    SSLType IMAPS
-    
-    IMAPAccount outlook
-    Host outlook.office365.com
-    User chris.cochrun@outlook.com
-    PassCmd "rbw get outlook"
-    AuthMechs LOGIN
-    SSLType IMAPS
-    
-    IMAPAccount cochrun
-    Host mail.cochrun.xyz
-    User chris@cochrun.xyz
-    PassCmd "rbw get 'Office 365'"
-    AuthMechs LOGIN
-    SSLType IMAPS
-    # SSLVersions SSLv3
-    # CertificateFile /opt/local/share/curl/curl-ca-bundle.crt
-    # THEN WE SPECIFY THE LOCAL AND REMOTE STORAGE
-    # - THE REMOTE STORAGE IS WHERE WE GET THE MAIL FROM (E.G., THE
-    #   SPECIFICATION OF AN IMAP ACCOUNT)
-    # - THE LOCAL STORAGE IS WHERE WE STORE THE EMAIL ON OUR COMPUTER
-    
-    # REMOTE STORAGE (USE THE IMAP ACCOUNT SPECIFIED ABOVE)
-    IMAPStore gmail-remote
-    Account gmail
-    
-    MaildirStore gmail-local
-    Path ~/Maildir/gmail/
-    Inbox ~/Maildir/gmail/INBOX
-    
-    IMAPStore office-remote
-    Account office
-    
-    # LOCAL STORAGE (CREATE DIRECTORIES with mkdir -p Maildir/gmail)
-    
-    MaildirStore office-local
-    Path ~/Maildir/office/
-    Inbox ~/Maildir/office/INBOX
-    Subfolders Verbatim
-    
-    
-    IMAPStore outlook-remote
-    Account outlook
-    
-    MaildirStore outlook-local
-    Path ~/Maildir/outlook/
-    Inbox ~/Maildir/outlook/INBOX
-    Subfolders Verbatim
-    
-    IMAPStore cochrun-remote
-    Account cochrun
-    
-    MaildirStore cochrun-local
-    Path ~/Maildir/cochrun/
-    Inbox ~/Maildir/cochrun/INBOX
-    Subfolders Verbatim
-    
-    # CONNECTIONS SPECIFY LINKS BETWEEN REMOTE AND LOCAL FOLDERS
-    #
-    # CONNECTIONS ARE SPECIFIED USING PATTERNS, WHICH MATCH REMOTE MAIl
-    # FOLDERS. SOME COMMONLY USED PATTERS INCLUDE:
-    #
-    # 1 "*" TO MATCH EVERYTHING
-    # 2 "!DIR" TO EXCLUDE "DIR"
-    # 3 "DIR" TO MATCH DIR
-    
-    Channel gmail-inbox
-    Far :gmail-remote:
-    Near :gmail-local:
-    Patterns "INBOX"
-    Create Both
-    Expunge Both
-    SyncState *
-    
-    Channel gmail-trash
-    Far :gmail-remote:"[Gmail]/Bin"
-    Near :gmail-local:"[Gmail].Bin"
-    Create Both
-    Expunge Both
-    SyncState *
-    
-    Channel gmail-sent
-    Far :gmail-remote:"[Gmail]/Sent Mail"
-    Near :gmail-local:"[Gmail].Sent Mail"
-    Create Both
-    Expunge Both
-    SyncState *
-    
-    Channel gmail-all
-    Far :gmail-remote:"[Gmail]/All Mail"
-    Near :gmail-local:"[Gmail].All Mail"
-    Create Both
-    Expunge Both
-    SyncState *
-    
-    Channel gmail-starred
-    Far :gmail-remote:"[Gmail]/Starred"
-    Near :gmail-local:"[Gmail].Starred"
-    Create Both
-    Expunge Both
-    SyncState *
-    
-    Channel office-inbox
-    Far :office-remote:
-    Near :office-local:
-    Patterns "*"
-    Create Both
-    Expunge Both
-    SyncState *
-    
-    Channel outlook-inbox
-    Far :outlook-remote:
-    Near :outlook-local:
-    Patterns "*"
-    Create Both
-    Expunge Both
-    SyncState *
-    
-    Channel cochrun-inbox
-    Far :cochrun-remote:
-    Near :cochrun-local:
-    Patterns "*"
-    Create Both
-    Expunge Both
-    SyncState *
-    # GROUPS PUT TOGETHER CHANNELS, SO THAT WE CAN INVOKE
-    # MBSYNC ON A GROUP TO SYNC ALL CHANNELS
-    #
-    # FOR INSTANCE: "mbsync gmail" GETS MAIL FROM
-    # "gmail-inbox", "gmail-sent", and "gmail-trash"
-    #
-    # Group gmail
-    # Channel gmail-inbox
-    # Channel gmail-sent
-    # Channel gmail-trash
-    # Channel gmail-all
-    # Channel gmail-starred
-    
-    Group office
-    Channel office-inbox
-    
-    Group outlook
-    Channel outlook-inbox
-    
-    Group cochrun
-    Channel cochrun-inbox
-    '';
-  };
-  programs.msmtp.enable = true;
-  services.mbsync.enable = true;
-
-  programs.obs-studio = {
-    enable = true;
-    plugins = [ pkgs.obs-studio-plugins.obs-move-transition ];
-  };
-
-  <<mpv>>
-
-  services.nextcloud-client = {
-    enable = true;
-    startInBackground = true;
-  };
-
-  services.syncthing.enable = true;
-  # services.kdeconnect.enable = true;
-  services.easyeffects.enable = true;
-
-  services.espanso = {
-    enable = true;
-    settings = {
-      
-      toggle_key = "RIGHT_CTRL";
-      matches = [
-        { # dates
-          trigger = ":date";
-          replace = "{{mydate}}";
-          vars = [{
-
-            name = "mydate";
-            type = "date";
-            params = {format = "%m/%d/%Y";};
-          }];
-        }
-        { # Shell commands
-          trigger = ":shell";
-          replace = "{{output}}";
-          vars = [{
-            name = "output";
-            type = "shell";
-            params = { cmd = "echo Hello from your shell";};
-          }];
-        }
-        { # simple text
-          trigger = ":gml";
-          replace = "ccochrun21@gmail.com";
-        }
-        {
-          trigger = ":otl";
-          replace = "chris.cochrun@outlook.com";
-        }
-        {
-          trigger = ":tfcml";
-          replace = "chris@tfcconnection.org";
-        }
-        {
-          trigger = ":name";
-          replace = "Chris Cochrun";
-        }
-        {
-          trigger = ":cn";
-          replace = "A Giant Gummy Lizard";
-        }
-      ];
-    };
-  };
-
-  home.file.".config/rofi" = {
-    source = ../rofi;
-    recursive = true;
-  };
-
-  programs.firefox = {
-    enable = true;
-    package = pkgs.firefox-wayland.override {
-      cfg = {
-        enableTridactylNative = true;
-        enablePlasmaBrowserIntegration = true;
-      };
-    };
-    profiles.chris = {
-      name = "default";
-      path = "nw77o6yc.default";
-      isDefault = true;
-    };
-  };
-
-  home.file.".mozilla/native-messaging-hosts".source = "/run/current-system/sw/lib/mozilla/native-messaging-hosts";
-
-  home.file.".mozilla/firefox/nw77o6yc.default/chrome" = {
-    source = ../firefox/chrome;
-    recursive = true;
-  };
-
-  home.file.".config/tridactyl" = {
-    source = ../tridactyl;
-    recursive = true;
-  };
-
-  programs.rbw.enable = true;
-  home.file.".config/rbw" = {
-    source = ../rbw;
-    recursive = true;
-  };
-
-  home.file.".config/fish/config.fish" = {
-    source = ../fish/config.fish;
-  };
-
-  home.file.".config/fish/functions" = {
-    source = ../fish/functions;
-  };
-
-  programs.nushell = {
-    enable = true;
-  };
-
-  home.file.".config/hypr" = {
-    source = config.lib.file.mkOutOfStoreSymlink /home/chris/.dotfiles/hypr;
-  };
-
-  home.file.".config/dunst" = {
-    source = ../dunst;
-  };
-
-  programs.direnv.enable = true;
-  programs.direnv.nix-direnv.enable = true;
-
-  # programs.qutebrowser.enable = true;
-  home.file.".config/qutebrowser/config.py" = {
-    source = ../qutebrowser/config.py;
-  };
-
-  home.file.".config/qutebrowser/bookmarks" = {
-    source = ../qutebrowser/bookmarks;
-  };
-
-  home.file.".config/qutebrowser/css" = {
-    source = ../qutebrowser/css;
-  };
-
-  home.file.".config/qutebrowser/quickmarks" = {
-    source = ../qutebrowser/quickmarks;
-  };
-
-  home.file.".config/qutebrowser/qsettings" = {
-    source = ../qutebrowser/qsettings;
-  };
-
-  home.file.".config/imv" = {
-    source = ../imv;
-    recursive = true;
-  };
-
-  home.file.".config/macchina" = {
-    source = ../macchina;
-    recursive = true;
-  };
-
-  home.file.".config/awesome" = {
-    source = ../awesome;
-    recursive = true;
-  };
-
-  home.file.".config/awesome/bling" = {
-    source = ../awesome/bling;
-    recursive = true;
-  };
-
-  home.file.".config/awesome/rubato" = {
-    source = ../awesome/rubato;
-    recursive = true;
-  };
-
-  home.file.".config/alacritty" = {
-    source = ../alacritty;
-    recursive = true;
-  };
-
-  home.file.".config/picom.conf" = {
-    source = ../picom.conf;
-  };
-
-  # home.file.".config/networkmanager-dmenu/config.ini" = {
-  #   source = ../networkmanager-dmenu/config.ini;
-  # };
-
-  home.file."bin" = {
-    source = ../scripts;
-    recursive = true;
-  };
-
-  home.shellAliases = {
-    ls = "exa -l";
-    la = "exa -la";
-    mpf = "mpv --profile=fast";
-    mps = "mpv --profile=slow";
-    ec = "emacsclient -t";
-    ecc = "emacsclient -c";
-    mkdir = "mkdir -pv";
-    nupd = "update-nix";
-    nupg = "upgrade-nix";
-    suspend = "systemctl suspend";
-    sysuse = "systemctl --user";
-    myip = "curl icanhazip.com";
-    nixs = "nix search nixpkgs";
-    ytd = "yt-dlp -o ~/Videos/%(title)s.%(ext)s";
-  };
-
-  programs.starship = {
-    enable = true;
-    enableBashIntegration = true;
-  };
-
-  programs.bash = {
-    enable = true;
-    bashrcExtra = ''
-    # export ENV_EFI_CODE_SECURE=/run/libvirt/nix-ovmf/OVMF_CODE.fd ENV_EFI_VARS_SECURE=/run/libvirt/nix-ovmf/OVMF_VARS.fd
-    source $(blesh-share)
-    ble-face auto_complete="fg=238"
-    # eval "$(starship init bash)"
-    '';
-  };
-
-  programs.zsh = {
-    enable = true;
-    enableAutosuggestions = true;
-    enableCompletion = true;
-    enableSyntaxHighlighting = true;
-    autocd = true;
-    dotDir = ".config/zsh";
-    shellAliases = {
-      ls = "exa -l";
-      la = "exa -la";
-      mpf = "mpv --profile=fast";
-      mps = "mpv --profile=slow";
-      ec = "emacsclient -t";
-      ecc = "emacsclient -c";
-      mkdir = "mkdir -pv";
-      nupd = "update-nix";
-      nupg = "upgrade-nix";
-      suspend = "systemctl suspend";
-      sysuse = "systemctl --user";
-      myip = "curl icanhazip.com";
-    };
-    initExtra = ''
-      macchina
-    '';
-  };
-
-
-  xdg.desktopEntries = {
-    mpv-slow = {
-      name = "MPV";
-      genericName = "Play from MPV but at normal speed";
-      exec = "alacritty -e mpv --profile=slow %U";
-      terminal = true;
-      categories = [ "Application" ];
-      mimeType = [ "audio/ogg" "audio/mpeg" "audio/opus" "audio/x-opus+ogg" "audio/x-wav" ];
-    };
-    imv-rifle = {
-      name = "IMV";
-      genericName = "Show images in current directory in IMV";
-      exec = "/home/chris/bin/rifle-imv %U";
-      terminal = false;
-      categories = [ "Application" ];
-      mimeType = [ "image/gif" "image/jpeg" "image/png" "image/heif" ];
-    };
-  };
-
-  systemd.user.services = {
-    ydotoold = {
-      Unit = {
-        Description = "An auto-input utility for wayland";
-        Documentation = [ "man:ydotool(1)" "man:ydotoold(8)" ];
-      };
-      
-      Service = {
-        ExecStart = "/run/current-system/sw/bin/ydotoold --socket-path /tmp/ydotools";
-      };
-
-      Install = {
-        WantedBy = ["default.target"];
-      };
-    };
-
-    jellyfin-mpv-shim = {
-      Unit = {
-        Description = "Play Jellyfin media in mpv";
-        After = "graphical-session-pre.target";
-      };
-      
-      Service = {
-        ExecStart = "/run/current-system/sw/bin/jellyfin-mpv-shim";
-      };
-
-      Install = {
-        WantedBy = ["graphical-session.target"];
-      };
-    };
-
-    nextlcoud-client = {
-      Unit = {
-        Description = "Nextcloud Client";
-        After = [ "graphical-session.target" ];
-        # PartOf = [ "plasma-workspace.target" ];
-      };
-      Service = {
-        Environment = ["PATH=/etc/profiles/per-user/chris/bin"
-                       "WAYLAND_DISPLAY=wayland-1"];
-      };
-    };
-  };
-
-}
-#+end_src
-
-*** Plasma
-Plasma manager helps me to configure plasma declaratively.
-
 
 * Thanks!