rename config.{colinsane -> sane}

This commit is contained in:
colin 2022-08-01 00:23:49 -07:00
parent 9dea707eea
commit 451816f623
30 changed files with 138 additions and 138 deletions

View File

@ -4,18 +4,18 @@
./fs.nix ./fs.nix
]; ];
colinsane.gui.sway.enable = true; sane.gui.sway.enable = true;
colinsane.services.duplicity.enable = true; sane.services.duplicity.enable = true;
colinsane.impermanence.enable = true; sane.impermanence.enable = true;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;
boot.loader.efi.canTouchEfiVariables = false; boot.loader.efi.canTouchEfiVariables = false;
colinsane.image.extraBootFiles = [ pkgs.bootpart-uefi-x86_64 ]; sane.image.extraBootFiles = [ pkgs.bootpart-uefi-x86_64 ];
# needed to use libimobiledevice/ifuse, for iphone sync # needed to use libimobiledevice/ifuse, for iphone sync
services.usbmuxd.enable = true; services.usbmuxd.enable = true;
users.users.usbmux.uid = config.colinsane.allocations.usbmux-uid; users.users.usbmux.uid = config.sane.allocations.usbmux-uid;
users.groups.usbmux.gid = config.colinsane.allocations.usbmux-gid; users.groups.usbmux.gid = config.sane.allocations.usbmux-gid;
# default config: https://man.archlinux.org/man/snapper-configs.5 # default config: https://man.archlinux.org/man/snapper-configs.5
# defaults to something like: # defaults to something like:
@ -41,7 +41,7 @@
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
}; };
colinsane.impermanence.home-dirs = [ sane.impermanence.home-dirs = [
".steam" ".steam"
".local/share/Steam" ".local/share/Steam"
]; ];

View File

@ -4,12 +4,12 @@
./fs.nix ./fs.nix
]; ];
colinsane.users.guest.enable = true; sane.users.guest.enable = true;
colinsane.gui.sway.enable = true; sane.gui.sway.enable = true;
colinsane.impermanence.enable = true; sane.impermanence.enable = true;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;
boot.loader.efi.canTouchEfiVariables = false; boot.loader.efi.canTouchEfiVariables = false;
colinsane.image.extraBootFiles = [ pkgs.bootpart-uefi-x86_64 ]; sane.image.extraBootFiles = [ pkgs.bootpart-uefi-x86_64 ];
# default config: https://man.archlinux.org/man/snapper-configs.5 # default config: https://man.archlinux.org/man/snapper-configs.5
# defaults to something like: # defaults to something like:

View File

@ -10,7 +10,7 @@
# XXX colin: phosh doesn't work well with passwordless login # XXX colin: phosh doesn't work well with passwordless login
users.users.colin.initialPassword = "147147"; users.users.colin.initialPassword = "147147";
colinsane.home-manager.extraPackages = [ sane.home-manager.extraPackages = [
# for web browsers see: https://forum.pine64.org/showthread.php?tid=13669 # for web browsers see: https://forum.pine64.org/showthread.php?tid=13669
pkgs.angelfish # plasma mobile web browser; broken on phosh (poor wayland support) pkgs.angelfish # plasma mobile web browser; broken on phosh (poor wayland support)
# pkgs.plasma5Packages.index # file browser # pkgs.plasma5Packages.index # file browser
@ -32,8 +32,8 @@
# pkgs.alacritty # terminal; crashes phosh # pkgs.alacritty # terminal; crashes phosh
]; ];
colinsane.nixcache.enable = true; sane.nixcache.enable = true;
colinsane.gui.phosh.enable = true; sane.gui.phosh.enable = true;
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
mobile.bootloader.enable = false; mobile.bootloader.enable = false;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;
@ -56,13 +56,13 @@
hardware.sensor.iio.enable = true; hardware.sensor.iio.enable = true;
# TODO: this probably lives in the wrong spot (are these groups created by phosh?) # TODO: this probably lives in the wrong spot (are these groups created by phosh?)
users.users.avahi.uid = config.colinsane.allocations.avahi-uid; users.users.avahi.uid = config.sane.allocations.avahi-uid;
users.users.colord.uid = config.colinsane.allocations.colord-uid; users.users.colord.uid = config.sane.allocations.colord-uid;
users.users.geoclue.uid = config.colinsane.allocations.geoclue-uid; users.users.geoclue.uid = config.sane.allocations.geoclue-uid;
users.users.rtkit.uid = config.colinsane.allocations.rtkit-uid; users.users.rtkit.uid = config.sane.allocations.rtkit-uid;
users.groups.avahi.gid = config.colinsane.allocations.avahi-gid; users.groups.avahi.gid = config.sane.allocations.avahi-gid;
users.groups.colord.gid = config.colinsane.allocations.colord-gid; users.groups.colord.gid = config.sane.allocations.colord-gid;
users.groups.geoclue.gid = config.colinsane.allocations.geoclue-gid; users.groups.geoclue.gid = config.sane.allocations.geoclue-gid;
users.groups.rtkit.gid = config.colinsane.allocations.rtkit-gid; users.groups.rtkit.gid = config.sane.allocations.rtkit-gid;
users.groups.feedbackd.gid = config.colinsane.allocations.feedbackd-gid; users.groups.feedbackd.gid = config.sane.allocations.feedbackd-gid;
} }

View File

@ -2,8 +2,8 @@
{ {
# we need space in the GPT header to place tow-boot. # we need space in the GPT header to place tow-boot.
# only actually need 1 MB, but better to over-allocate than under-allocate # only actually need 1 MB, but better to over-allocate than under-allocate
colinsane.image.extraGPTPadding = 16 * 1024 * 1024; sane.image.extraGPTPadding = 16 * 1024 * 1024;
colinsane.image.firstPartGap = 0; sane.image.firstPartGap = 0;
system.build.img = pkgs.runCommandNoCC "nixos_full-disk-image.img" {} '' system.build.img = pkgs.runCommandNoCC "nixos_full-disk-image.img" {} ''
cp -v ${config.system.build.img-without-firmware}/nixos.img $out cp -v ${config.system.build.img-without-firmware}/nixos.img $out
chmod +w $out chmod +w $out

View File

@ -6,10 +6,10 @@
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;
boot.loader.efi.canTouchEfiVariables = false; boot.loader.efi.canTouchEfiVariables = false;
colinsane.image.extraBootFiles = [ pkgs.bootpart-uefi-x86_64 ]; sane.image.extraBootFiles = [ pkgs.bootpart-uefi-x86_64 ];
users.users.dhcpcd.uid = config.colinsane.allocations.dhcpcd-uid; users.users.dhcpcd.uid = config.sane.allocations.dhcpcd-uid;
users.groups.dhcpcd.gid = config.colinsane.allocations.dhcpcd-gid; users.groups.dhcpcd.gid = config.sane.allocations.dhcpcd-gid;
# docs: https://nixos.org/manual/nixos/stable/options.html#opt-system.stateVersion # docs: https://nixos.org/manual/nixos/stable/options.html#opt-system.stateVersion
system.stateVersion = "21.05"; system.stateVersion = "21.05";

View File

@ -20,18 +20,18 @@
./services/transmission.nix ./services/transmission.nix
]; ];
colinsane.home-manager.enable = true; sane.home-manager.enable = true;
colinsane.home-manager.extraPackages = [ sane.home-manager.extraPackages = [
pkgs.matrix-synapse pkgs.matrix-synapse
]; ];
colinsane.impermanence.enable = true; sane.impermanence.enable = true;
colinsane.services.duplicity.enable = true; sane.services.duplicity.enable = true;
# TODO: validate this # TODO: validate this
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;
boot.loader.efi.canTouchEfiVariables = false; boot.loader.efi.canTouchEfiVariables = false;
colinsane.image.extraBootFiles = [ pkgs.bootpart-u-boot-rpi-aarch64 ]; sane.image.extraBootFiles = [ pkgs.bootpart-u-boot-rpi-aarch64 ];
sops.secrets.duplicity_passphrase = { sops.secrets.duplicity_passphrase = {
sopsFile = ../../secrets/servo.yaml; sopsFile = ../../secrets/servo.yaml;

View File

@ -1,11 +1,11 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
{ {
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? could be more granular # TODO: mode? could be more granular
{ user = "git"; group = "gitea"; directory = "/var/lib/gitea"; } { user = "git"; group = "gitea"; directory = "/var/lib/gitea"; }
]; ];
users.groups.gitea.gid = config.colinsane.allocations.gitea-gid; users.groups.gitea.gid = config.sane.allocations.gitea-gid;
services.gitea.enable = true; services.gitea.enable = true;
services.gitea.user = "git"; # default is 'gitea' services.gitea.user = "git"; # default is 'gitea'
services.gitea.database.type = "postgres"; services.gitea.database.type = "postgres";

View File

@ -1,6 +1,6 @@
{ ... }: { ... }:
{ {
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? could be more granular # TODO: mode? could be more granular
{ user = "261"; group = "261"; directory = "/var/lib/ipfs"; } { user = "261"; group = "261"; directory = "/var/lib/ipfs"; }
]; ];

View File

@ -1,7 +1,7 @@
{ ... }: { ... }:
{ {
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? we only need this to save Indexer creds ==> migrate to config? # TODO: mode? we only need this to save Indexer creds ==> migrate to config?
{ user = "root"; group = "root"; directory = "/var/lib/jackett"; } { user = "root"; group = "root"; directory = "/var/lib/jackett"; }
]; ];

View File

@ -1,11 +1,11 @@
{ config, ... }: { config, ... }:
{ {
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? could be more granular # TODO: mode? could be more granular
{ user = "jellyfin"; group = "jellyfin"; directory = "/var/lib/jellyfin"; } { user = "jellyfin"; group = "jellyfin"; directory = "/var/lib/jellyfin"; }
]; ];
users.users.jellyfin.uid = config.colinsane.allocations.jellyfin-uid; users.users.jellyfin.uid = config.sane.allocations.jellyfin-uid;
users.groups.jellyfin.gid = config.colinsane.allocations.jellyfin-gid; users.groups.jellyfin.gid = config.sane.allocations.jellyfin-gid;
services.jellyfin.enable = true; services.jellyfin.enable = true;
} }

View File

@ -3,7 +3,7 @@
{ config, ... }: { config, ... }:
{ {
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? # TODO: mode?
# user and group are both "matrix-appservice-irc" # user and group are both "matrix-appservice-irc"
{ user = "993"; group = "992"; directory = "/var/lib/matrix-appservice-irc"; } { user = "993"; group = "992"; directory = "/var/lib/matrix-appservice-irc"; }

View File

@ -255,9 +255,9 @@
security.acme.acceptTerms = true; security.acme.acceptTerms = true;
security.acme.defaults.email = "admin.acme@uninsane.org"; security.acme.defaults.email = "admin.acme@uninsane.org";
users.users.acme.uid = config.colinsane.allocations.acme-uid; users.users.acme.uid = config.sane.allocations.acme-uid;
users.groups.acme.gid = config.colinsane.allocations.acme-gid; users.groups.acme.gid = config.sane.allocations.acme-gid;
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? # TODO: mode?
{ user = "acme"; group = "acme"; directory = "/var/lib/acme"; } { user = "acme"; group = "acme"; directory = "/var/lib/acme"; }
{ user = "colin"; group = "users"; directory = "/var/lib/uninsane"; } { user = "colin"; group = "users"; directory = "/var/lib/uninsane"; }

View File

@ -4,12 +4,12 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? could be more granular # TODO: mode? could be more granular
{ user = "pleroma"; group = "pleroma"; directory = "/var/lib/pleroma"; } { user = "pleroma"; group = "pleroma"; directory = "/var/lib/pleroma"; }
]; ];
users.users.pleroma.uid = config.colinsane.allocations.pleroma-uid; users.users.pleroma.uid = config.sane.allocations.pleroma-uid;
users.groups.pleroma.gid = config.colinsane.allocations.pleroma-gid; users.groups.pleroma.gid = config.sane.allocations.pleroma-gid;
services.pleroma.enable = true; services.pleroma.enable = true;
services.pleroma.secretConfigFile = config.sops.secrets.pleroma_secrets.path; services.pleroma.secretConfigFile = config.sops.secrets.pleroma_secrets.path;
services.pleroma.configs = [ services.pleroma.configs = [

View File

@ -16,7 +16,7 @@ let
}; };
in in
{ {
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? could be more granular # TODO: mode? could be more granular
{ user = "221"; group = "221"; directory = "/var/lib/opendkim"; } { user = "221"; group = "221"; directory = "/var/lib/opendkim"; }
{ user = "root"; group = "root"; directory = "/var/lib/postfix"; } { user = "root"; group = "root"; directory = "/var/lib/postfix"; }

View File

@ -1,7 +1,7 @@
{ ... }: { ... }:
{ {
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? # TODO: mode?
{ user = "71"; group = "71"; directory = "/var/lib/postgresql"; } { user = "71"; group = "71"; directory = "/var/lib/postgresql"; }
]; ];

View File

@ -1,7 +1,7 @@
{ ... }: { ... }:
{ {
colinsane.impermanence.service-dirs = [ sane.impermanence.service-dirs = [
# TODO: mode? we need this specifically for the stats tracking in .config/ # TODO: mode? we need this specifically for the stats tracking in .config/
{ user = "70"; group = "70"; directory = "/var/lib/transmission"; } { user = "70"; group = "70"; directory = "/var/lib/transmission"; }
]; ];

View File

@ -12,7 +12,7 @@
home = "/var/lib/gitea"; home = "/var/lib/gitea";
useDefaultShell = true; useDefaultShell = true;
group = "gitea"; group = "gitea";
uid = config.colinsane.allocations.git-uid; uid = config.sane.allocations.git-uid;
isSystemUser = true; isSystemUser = true;
# sendmail access (not 100% sure if this is necessary) # sendmail access (not 100% sure if this is necessary)
extraGroups = [ "postdrop" ]; extraGroups = [ "postdrop" ];
@ -22,6 +22,6 @@
# raw `sendmail` works, but i think pleroma's passing it some funny flags or something, idk. # raw `sendmail` works, but i think pleroma's passing it some funny flags or something, idk.
# hack to fix that. # hack to fix that.
users.users.pleroma.extraGroups = [ "postdrop" ]; users.users.pleroma.extraGroups = [ "postdrop" ];
users.users.dhcpcd.uid = config.colinsane.allocations.dhcpcd-uid; users.users.dhcpcd.uid = config.sane.allocations.dhcpcd-uid;
users.groups.dhcpcd.gid = config.colinsane.allocations.dhcpcd-gid; users.groups.dhcpcd.gid = config.sane.allocations.dhcpcd-gid;
} }

View File

@ -2,7 +2,7 @@
with lib; with lib;
let let
cfg = config.colinsane.gui; cfg = config.sane.gui;
in in
{ {
imports = [ imports = [
@ -14,15 +14,15 @@ in
options = { options = {
# doesn't directly create outputs. consumed by e.g. home-manager.nix module # doesn't directly create outputs. consumed by e.g. home-manager.nix module
colinsane.gui.enable = mkOption { sane.gui.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
colinsane.home-manager.enable = true; sane.home-manager.enable = true;
# all GUIs use network manager? # all GUIs use network manager?
users.users.nm-iodine.uid = config.colinsane.allocations.nm-iodine-uid; users.users.nm-iodine.uid = config.sane.allocations.nm-iodine-uid;
}; };
} }

View File

@ -2,18 +2,18 @@
with lib; with lib;
let let
cfg = config.colinsane.gui.gnome; cfg = config.sane.gui.gnome;
in in
{ {
options = { options = {
colinsane.gui.gnome.enable = mkOption { sane.gui.gnome.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
colinsane.gui.enable = true; sane.gui.enable = true;
# start gnome/gdm on boot # start gnome/gdm on boot
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.xserver.desktopManager.gnome.enable = true;

View File

@ -2,18 +2,18 @@
with lib; with lib;
let let
cfg = config.colinsane.gui.phosh; cfg = config.sane.gui.phosh;
in in
{ {
options = { options = {
colinsane.gui.phosh.enable = mkOption { sane.gui.phosh.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
colinsane.gui.enable = true; sane.gui.enable = true;
# docs: https://github.com/NixOS/nixpkgs/blob/nixos-22.05/nixos/modules/services/x11/desktop-managers/phosh.nix # docs: https://github.com/NixOS/nixpkgs/blob/nixos-22.05/nixos/modules/services/x11/desktop-managers/phosh.nix
services.xserver.desktopManager.phosh = { services.xserver.desktopManager.phosh = {
enable = true; enable = true;

View File

@ -2,18 +2,18 @@
with lib; with lib;
let let
cfg = config.colinsane.gui.plasma-mobile; cfg = config.sane.gui.plasma-mobile;
in in
{ {
options = { options = {
colinsane.gui.plasma-mobile.enable = mkOption { sane.gui.plasma-mobile.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
colinsane.gui.enable = true; sane.gui.enable = true;
# start plasma-mobile on boot # start plasma-mobile on boot
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.desktopManager.plasma5.mobile.enable = true; services.xserver.desktopManager.plasma5.mobile.enable = true;

View File

@ -3,19 +3,19 @@
# docs: https://nixos.wiki/wiki/Sway # docs: https://nixos.wiki/wiki/Sway
with lib; with lib;
let let
cfg = config.colinsane.gui.sway; cfg = config.sane.gui.sway;
in in
{ {
options = { options = {
colinsane.gui.sway.enable = mkOption { sane.gui.sway.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
colinsane.gui.enable = true; sane.gui.enable = true;
users.users.greeter.uid = config.colinsane.allocations.greeter-uid; users.users.greeter.uid = config.sane.allocations.greeter-uid;
users.groups.greeter.gid = config.colinsane.allocations.greeter-gid; users.groups.greeter.gid = config.sane.allocations.greeter-gid;
programs.sway = { programs.sway = {
# we configure sway with home-manager, but this enable gets us e.g. opengl and fonts # we configure sway with home-manager, but this enable gets us e.g. opengl and fonts
enable = true; enable = true;
@ -49,7 +49,7 @@ in
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.wireless.enable = lib.mkForce false; networking.wireless.enable = lib.mkForce false;
colinsane.home-manager.windowManager.sway = { sane.home-manager.windowManager.sway = {
enable = true; enable = true;
wrapperFeatures.gtk = true; wrapperFeatures.gtk = true;
config = rec { config = rec {
@ -208,7 +208,7 @@ in
}; };
}; };
colinsane.home-manager.programs.waybar = { sane.home-manager.programs.waybar = {
enable = true; enable = true;
# docs: https://github.com/Alexays/Waybar/wiki/Configuration # docs: https://github.com/Alexays/Waybar/wiki/Configuration
settings = { settings = {
@ -545,7 +545,7 @@ in
# } # }
# ''; # '';
}; };
colinsane.home-manager.extraPackages = with pkgs; [ sane.home-manager.extraPackages = with pkgs; [
swaylock swaylock
swayidle swayidle
wl-clipboard wl-clipboard

View File

@ -2,15 +2,15 @@
with lib; with lib;
let let
cfg = config.colinsane.image; cfg = config.sane.image;
in in
{ {
options = { options = {
colinsane.image.extraBootFiles = mkOption { sane.image.extraBootFiles = mkOption {
default = []; default = [];
type = types.listOf types.package; type = types.listOf types.package;
}; };
colinsane.image.extraGPTPadding = mkOption { sane.image.extraGPTPadding = mkOption {
default = 0; default = 0;
# NB: rpi doesn't like non-zero values for this. # NB: rpi doesn't like non-zero values for this.
# at the same time, spinning disks REALLY need partitions to be aligned to 4KiB boundaries. # at the same time, spinning disks REALLY need partitions to be aligned to 4KiB boundaries.
@ -18,7 +18,7 @@ in
# default = 2014 * 512; # standard is to start part0 at sector 2048 (versus 34 if no padding) # default = 2014 * 512; # standard is to start part0 at sector 2048 (versus 34 if no padding)
type = types.int; type = types.int;
}; };
colinsane.image.firstPartGap = mkOption { sane.image.firstPartGap = mkOption {
# align the first part to 16 MiB. # align the first part to 16 MiB.
# do this by inserting a gap of 16 MiB - gptHeaderSize # do this by inserting a gap of 16 MiB - gptHeaderSize
# and then multiply by 1MiB and subtract 1 because mobile-nixos # and then multiply by 1MiB and subtract 1 because mobile-nixos
@ -26,7 +26,7 @@ in
default = (16 * 1024 * 1024 - 34 * 512) * 1024 * 1024 - 1; default = (16 * 1024 * 1024 - 34 * 512) * 1024 * 1024 - 1;
type = types.nullOr types.int; type = types.nullOr types.int;
}; };
colinsane.image.bootPartSize = mkOption { sane.image.bootPartSize = mkOption {
default = 512 * 1024 * 1024; default = 512 * 1024 * 1024;
type = types.int; type = types.int;
}; };

View File

@ -6,19 +6,19 @@
with lib; with lib;
let let
cfg = config.colinsane.impermanence; cfg = config.sane.impermanence;
in in
{ {
options = { options = {
colinsane.impermanence.enable = mkOption { sane.impermanence.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };
colinsane.impermanence.home-dirs = mkOption { sane.impermanence.home-dirs = mkOption {
default = []; default = [];
type = types.listOf (types.either types.str (types.attrsOf types.str)); type = types.listOf (types.either types.str (types.attrsOf types.str));
}; };
colinsane.impermanence.service-dirs = mkOption { sane.impermanence.service-dirs = mkOption {
default = []; default = [];
type = types.listOf (types.either types.str (types.attrsOf types.str)); type = types.listOf (types.either types.str (types.attrsOf types.str));
}; };

View File

@ -2,11 +2,11 @@
with lib; with lib;
let let
cfg = config.colinsane.nixcache; cfg = config.sane.nixcache;
in in
{ {
options = { options = {
colinsane.nixcache.enable = mkOption { sane.nixcache.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };

View File

@ -3,11 +3,11 @@
with lib; with lib;
let let
cfg = config.colinsane.services.duplicity; cfg = config.sane.services.duplicity;
in in
{ {
options = { options = {
colinsane.services.duplicity.enable = mkOption { sane.services.duplicity.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };
@ -15,7 +15,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
# we need this mostly because of the size of duplicity's cache # we need this mostly because of the size of duplicity's cache
colinsane.impermanence.service-dirs = [ "/var/lib/duplicity" ]; sane.impermanence.service-dirs = [ "/var/lib/duplicity" ];
services.duplicity.enable = true; services.duplicity.enable = true;
services.duplicity.targetUrl = ''"$DUPLICITY_URL"''; services.duplicity.targetUrl = ''"$DUPLICITY_URL"'';

View File

@ -10,45 +10,45 @@ in
{ {
options = { options = {
# legacy servo users, some are inconvenient to migrate # legacy servo users, some are inconvenient to migrate
colinsane.allocations.dhcpcd-gid = mkId 991; sane.allocations.dhcpcd-gid = mkId 991;
colinsane.allocations.dhcpcd-uid = mkId 992; sane.allocations.dhcpcd-uid = mkId 992;
colinsane.allocations.gitea-gid = mkId 993; sane.allocations.gitea-gid = mkId 993;
colinsane.allocations.git-uid = mkId 994; sane.allocations.git-uid = mkId 994;
colinsane.allocations.jellyfin-gid = mkId 994; sane.allocations.jellyfin-gid = mkId 994;
colinsane.allocations.pleroma-gid = mkId 995; sane.allocations.pleroma-gid = mkId 995;
colinsane.allocations.jellyfin-uid = mkId 996; sane.allocations.jellyfin-uid = mkId 996;
colinsane.allocations.acme-gid = mkId 996; sane.allocations.acme-gid = mkId 996;
colinsane.allocations.pleroma-uid = mkId 997; sane.allocations.pleroma-uid = mkId 997;
colinsane.allocations.acme-uid = mkId 998; sane.allocations.acme-uid = mkId 998;
colinsane.allocations.greeter-uid = mkId 999; sane.allocations.greeter-uid = mkId 999;
colinsane.allocations.greeter-gid = mkId 999; sane.allocations.greeter-gid = mkId 999;
colinsane.allocations.colin-uid = mkId 1000; sane.allocations.colin-uid = mkId 1000;
colinsane.allocations.guest-uid = mkId 1100; sane.allocations.guest-uid = mkId 1100;
# found on all machines # found on all machines
colinsane.allocations.sshd-uid = mkId 2001; # 997 sane.allocations.sshd-uid = mkId 2001; # 997
colinsane.allocations.sshd-gid = mkId 2001; # 997 sane.allocations.sshd-gid = mkId 2001; # 997
colinsane.allocations.polkituser-gid = mkId 2002; # 998 sane.allocations.polkituser-gid = mkId 2002; # 998
colinsane.allocations.systemd-coredump-gid = mkId 2003; # 996 sane.allocations.systemd-coredump-gid = mkId 2003; # 996
# found on graphical machines # found on graphical machines
colinsane.allocations.nm-iodine-uid = mkId 2101; # desko/moby/lappy sane.allocations.nm-iodine-uid = mkId 2101; # desko/moby/lappy
# found on desko machine # found on desko machine
colinsane.allocations.usbmux-uid = mkId 2204; sane.allocations.usbmux-uid = mkId 2204;
colinsane.allocations.usbmux-gid = mkId 2204; sane.allocations.usbmux-gid = mkId 2204;
# originally found on moby machine # originally found on moby machine
colinsane.allocations.avahi-uid = mkId 2304; sane.allocations.avahi-uid = mkId 2304;
colinsane.allocations.avahi-gid = mkId 2304; sane.allocations.avahi-gid = mkId 2304;
colinsane.allocations.colord-uid = mkId 2305; sane.allocations.colord-uid = mkId 2305;
colinsane.allocations.colord-gid = mkId 2305; sane.allocations.colord-gid = mkId 2305;
colinsane.allocations.geoclue-uid = mkId 2306; sane.allocations.geoclue-uid = mkId 2306;
colinsane.allocations.geoclue-gid = mkId 2306; sane.allocations.geoclue-gid = mkId 2306;
colinsane.allocations.rtkit-uid = mkId 2307; sane.allocations.rtkit-uid = mkId 2307;
colinsane.allocations.rtkit-gid = mkId 2307; sane.allocations.rtkit-gid = mkId 2307;
colinsane.allocations.feedbackd-gid = mkId 2308; sane.allocations.feedbackd-gid = mkId 2308;
}; };
} }

View File

@ -8,24 +8,24 @@
with lib; with lib;
let let
cfg = config.colinsane.home-manager; cfg = config.sane.home-manager;
vim-swap-dir = ".cache/vim-swap"; vim-swap-dir = ".cache/vim-swap";
in in
{ {
options = { options = {
colinsane.home-manager.enable = mkOption { sane.home-manager.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };
colinsane.home-manager.extraPackages = mkOption { sane.home-manager.extraPackages = mkOption {
default = [ ]; default = [ ];
type = types.listOf types.package; type = types.listOf types.package;
}; };
colinsane.home-manager.windowManager = mkOption { sane.home-manager.windowManager = mkOption {
default = {}; default = {};
type = types.attrs; type = types.attrs;
}; };
colinsane.home-manager.programs = mkOption { sane.home-manager.programs = mkOption {
default = {}; default = {};
type = types.attrs; type = types.attrs;
}; };
@ -38,7 +38,7 @@ in
format = "binary"; format = "binary";
}; };
colinsane.impermanence.home-dirs = [ sane.impermanence.home-dirs = [
"archive" "archive"
"dev" "dev"
"records" "records"
@ -214,7 +214,7 @@ in
''; '';
}; };
firefox = lib.mkIf (sysconfig.colinsane.gui.enable) { firefox = lib.mkIf (sysconfig.sane.gui.enable) {
enable = true; enable = true;
package = import ./web-browser.nix pkgs; package = import ./web-browser.nix pkgs;
}; };

View File

@ -31,7 +31,7 @@ let
wireguard-tools wireguard-tools
youtube-dl youtube-dl
] ]
++ (if config.colinsane.gui.enable then ++ (if config.sane.gui.enable then
[ [
# GUI only # GUI only
aerc # email client aerc # email client
@ -72,7 +72,7 @@ let
whalebird # pleroma client. input is broken on phosh whalebird # pleroma client. input is broken on phosh
xterm # broken on phosh xterm # broken on phosh
] else []) ] else [])
++ (if config.colinsane.gui.enable && pkgs.system == "x86_64-linux" then ++ (if config.sane.gui.enable && pkgs.system == "x86_64-linux" then
[ [
# x86_64 only # x86_64 only
@ -117,7 +117,7 @@ in
# mix2nix # mix2nix
# rustup # rustup
# swig # swig
colinsane.home-manager.extraPackages = pkglist; sane.home-manager.extraPackages = pkglist;
# TODO: this should be gated behind home-manager being enabled... # TODO: this should be gated behind home-manager being enabled...
colinsane.impermanence.home-dirs = dirlist; sane.impermanence.home-dirs = dirlist;
} }

View File

@ -3,11 +3,11 @@
# installer docs: https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/profiles/installation-device.nix # installer docs: https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/profiles/installation-device.nix
with lib; with lib;
let let
cfg = config.colinsane.users; cfg = config.sane.users;
in in
{ {
options = { options = {
colinsane.users.guest.enable = mkOption { sane.users.guest.enable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
}; };
@ -23,7 +23,7 @@ in
# sets group to "users" (?) # sets group to "users" (?)
isNormalUser = true; isNormalUser = true;
home = "/home/colin"; home = "/home/colin";
uid = config.colinsane.allocations.colin-uid; uid = config.sane.allocations.colin-uid;
# i don't get exactly what this is, but nixos defaults to this non-deterministically # i don't get exactly what this is, but nixos defaults to this non-deterministically
# in /var/lib/nixos/auto-subuid-map and i don't want that. # in /var/lib/nixos/auto-subuid-map and i don't want that.
subUidRanges = [ subUidRanges = [
@ -53,13 +53,13 @@ in
]; ];
}; };
colinsane.impermanence.service-dirs = mkIf cfg.guest.enable [ sane.impermanence.service-dirs = mkIf cfg.guest.enable [
{ user = "guest"; group = "users"; directory = "/home/guest"; } { user = "guest"; group = "users"; directory = "/home/guest"; }
]; ];
users.users.guest = mkIf cfg.guest.enable { users.users.guest = mkIf cfg.guest.enable {
isNormalUser = true; isNormalUser = true;
home = "/home/guest"; home = "/home/guest";
uid = config.colinsane.allocations.guest-uid; uid = config.sane.allocations.guest-uid;
subUidRanges = [ subUidRanges = [
{ startUid=200000; count=1; } { startUid=200000; count=1; }
]; ];
@ -83,10 +83,10 @@ in
}; };
# affix some UIDs which were historically auto-generated # affix some UIDs which were historically auto-generated
users.users.sshd.uid = config.colinsane.allocations.sshd-uid; users.users.sshd.uid = config.sane.allocations.sshd-uid;
users.groups.polkituser.gid = config.colinsane.allocations.polkituser-gid; users.groups.polkituser.gid = config.sane.allocations.polkituser-gid;
users.groups.sshd.gid = config.colinsane.allocations.sshd-gid; users.groups.sshd.gid = config.sane.allocations.sshd-gid;
users.groups.systemd-coredump.gid = config.colinsane.allocations.systemd-coredump-gid; users.groups.systemd-coredump.gid = config.sane.allocations.systemd-coredump-gid;
# guarantee determinism in uid/gid generation for users: # guarantee determinism in uid/gid generation for users:
assertions = let assertions = let