Merge branch 'main' of ssh://git.duckland.org:2202/don/NixOS-Configs

This commit is contained in:
Don Harper 2024-04-02 22:35:41 -05:00
commit 01d2245f5b
40 changed files with 156 additions and 228 deletions

3
.gitattributes vendored
View file

@ -1,3 +1,2 @@
hosts/*/*key filter=git-crypt diff=git-crypt
workstation/tailscale.nix filter=git-crypt diff=git-crypt
server/tailscale.nix filter=git-crypt diff=git-crypt
hosts/*/tailscale.nix filter=git-crypt diff=git-crypt

58
TODO.md
View file

@ -1,58 +0,0 @@
# TODO
## Machine types
- [ ] add HP 810RG1 profile
- [ ] add ssd to all
- [x] fix eve????
## Home-manager
### To Import
- [ ] aspell.en.prepl
- [ ] aspell.en.pws
- [ ] mbsyncrc
- [ ] neomutt
- [ ] vdirsyncer
### Port/import
- [x] All_Regions
- [x] TrusteRegion
- [x] Unknown_Region
- [x] UntrusteRegion
- [x] appsrv
- [x] authy
- [x] bash_aliases
- [x] bash_functions
- [x] bash_hosts
- [x] bash_logout
- [x] bash_motd
- [x] bash_motownscript
- [x] bash_profile
- [x] bash_ssh
- [x] bashrc
- [x] config-waybar
- [x] gitconfig
- [x] gnupg
- [x] inputrc
- [x] listadmin.ini
- [x] local
- [x] myapps
- [x] notmuch
- [x] qutebrowser
- [x] signature
- [x] sway
- [x] swaylock
- [x] task
- [x] tigrc
- [x] tmux-cssh
- [x] tmux.conf
- [x] tmuxinator
- [x] urlview
- [x] vit
- [x] wfclient
### Drop
- muttprintrc
- pw.gpg
- slack
- token

81
flake.lock generated
View file

@ -5,11 +5,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1710379155,
"narHash": "sha256-zdHEsOOnfBTO1ymL6gd9etR+iNS6HowbJM4Llqxy+Uc=",
"lastModified": 1711934712,
"narHash": "sha256-sBDe+QmX/QohlnKeSEzrftcXyZL5FY09OMjZ59Rpyy4=",
"owner": "nix-community",
"repo": "disko",
"rev": "cc69c2340b59e290982ec7e6238471d470c839d0",
"rev": "611c9ea53250f7bb22286b3d26872280a0e608f9",
"type": "github"
},
"original": {
@ -59,11 +59,11 @@
]
},
"locked": {
"lastModified": 1710349883,
"narHash": "sha256-bjbdS2mC76xNJwt1d/uZa+JdHR8CCyYbF4Ey/NgOJus=",
"lastModified": 1711915616,
"narHash": "sha256-co6LoFA+j6BZEeJNSR8nZ4oOort5qYPskjrDHBaJgmo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2f0db7d418e781354d8a3c50e611e3b1cd413087",
"rev": "820be197ccf3adaad9a8856ef255c13b6cc561a6",
"type": "github"
},
"original": {
@ -73,27 +73,6 @@
"type": "github"
}
},
"home-manager-2311": {
"inputs": {
"nixpkgs": [
"nixpkgs-2311"
]
},
"locked": {
"lastModified": 1706981411,
"narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "652fda4ca6dafeb090943422c34ae9145787af37",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"repo": "home-manager",
"type": "github"
}
},
"libgit2": {
"flake": false,
"locked": {
@ -118,11 +97,11 @@
"nixpkgs-regression": "nixpkgs-regression"
},
"locked": {
"lastModified": 1710366336,
"narHash": "sha256-eJeZ3vMbuC351B6CH4mqcpuZJ9RgtdRcxvhd7X2++Nk=",
"lastModified": 1711812209,
"narHash": "sha256-3uijtGKH6tvQtXIhWzGojSVnoYvc0daAGA4LD0lV+Pc=",
"owner": "NixOS",
"repo": "nix",
"rev": "c152c2767a262b772c912287e1c2d85173b4781c",
"rev": "9b88e5284608116b7db0dbd3d5dd7a33b90d52d7",
"type": "github"
},
"original": {
@ -132,11 +111,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1710123225,
"narHash": "sha256-j3oWlxRZxB7cFsgEntpH3rosjFHRkAo/dhX9H3OfxtY=",
"lastModified": 1711352745,
"narHash": "sha256-luvqik+i3HTvCbXQZgB6uggvEcxI9uae0nmrgtXJ17U=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "ad2fd7b978d5e462048729a6c635c45d3d33c9ba",
"rev": "9a763a7acc4cfbb8603bb0231fec3eda864f81c0",
"type": "github"
},
"original": {
@ -148,11 +127,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1710346304,
"narHash": "sha256-vwoyBoCovK7+vdbCYqL9MssoFQjaXtZN8sElcjUdbx8=",
"lastModified": 1711715736,
"narHash": "sha256-9slQ609YqT9bT/MNX9+5k5jltL9zgpn36DpFB7TkttM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a0906f14161a5c5792e9883117b9471f5bf6df72",
"rev": "807c549feabce7eddbf259dbdcec9e0600a0660d",
"type": "github"
},
"original": {
@ -162,22 +141,6 @@
"type": "github"
}
},
"nixpkgs-2311": {
"locked": {
"lastModified": 1701282334,
"narHash": "sha256-MxCVrXY6v4QmfTwIysjjaX0XUhqBbxTWWB4HXtDYsdk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "057f9aecfb71c4437d2b27d3323df7f93c010b7e",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"dir": "lib",
@ -230,11 +193,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1710272261,
"narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
"lastModified": 1711703276,
"narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2",
"rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
"type": "github"
},
"original": {
@ -264,11 +227,9 @@
"inputs": {
"disko": "disko",
"home-manager": "home-manager",
"home-manager-2311": "home-manager-2311",
"nix": "nix",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_3",
"nixpkgs-2311": "nixpkgs-2311",
"wayland-pipewire-idle-inhibit": "wayland-pipewire-idle-inhibit"
}
},
@ -299,11 +260,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1707783103,
"narHash": "sha256-VOP1VOeXOyjn+AJfSHzVNT0l+rgm63ev9p4uTfMfYY0=",
"lastModified": 1711769260,
"narHash": "sha256-2akYbnQnJ0wb51S3bwrm3/EiZydxbwkfuSfsiTvtNz8=",
"owner": "rafaelrc7",
"repo": "wayland-pipewire-idle-inhibit",
"rev": "328da9a7ec30648666434e05cdea614c54f71b46",
"rev": "b962b793c436e688d7a71ef58273c0224c50bdfe",
"type": "github"
},
"original": {

127
flake.nix
View file

@ -3,11 +3,6 @@
disko.url = "github:nix-community/disko";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-2311.url = "github:nixos/nixpkgs/23.11";
home-manager-2311 = {
url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs-2311";
};
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
@ -21,7 +16,6 @@
outputs = inputs@{
self,
nixpkgs,
nixpkgs-2311,
nix,
disko,
nixos-hardware,
@ -30,55 +24,96 @@
...
}:
let
inputs = { inherit disko home-manager nixpkgs nixos-hardware wayland-pipewire-idle-inhibit; };
inherit (self) outputs;
lib = nixpkgs.lib // home-manager.lib;
systems = [ "x86_64-linux" "aarch64-linux" ];
forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system});
pkgsFor = lib.genAttrs systems (system: import nixpkgs {
inherit system;
config.allowUnfree = true;
});
in
{
inherit lib;
nixosModules = import ./modules/nixos;
homeManagerModules = import ./modules/home-manager;
templates = import ./templates;
genPkgs = system: import nixpkgs { inherit system; config.allowUnfree = true; };
overlays = import ./overlays { inherit inputs outputs; };
# packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
# devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
# formatter = forEachSystem (pkgs: pkgs.nixpkgs-fmt);
# creates a nixos system config
nixosSystem = system: hostname: username:
let
pkgs = genPkgs system;
in
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit pkgs;
# lets us use these things in modules
customArgs = { inherit system hostname username pkgs; };
};
modules = [
#disko.nixosModules.disko
./hosts/${hostname}
home-manager.nixosModules.home-manager {
networking.hostName = hostname;
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
#home-manager.users.${username} = { imports = [ ./home/${username}.nix ]; };
}
];
};
in {
nixosConfigurations = {
# clients
ace = nixosSystem "x86_64-linux" "ace" "don";
dragon = nixosSystem "x86_64-linux" "dragon" "don";
eve = nixosSystem "x86_64-linux" "eve" "don";
loki = nixosSystem "x86_64-linux" "loki" "don";
pocket2 = nixosSystem "x86_64-linux" "pocket2" "don";
smaug = nixosSystem "x86_64-linux" "smaug" "don";
#t2 = nixosSystem "x86_64-linux" "t2" "don";
ace = lib.nixosSystem {
modules = [ ./hosts/ace ];
specialArgs = { inherit inputs outputs; };
};
dragon = lib.nixosSystem {
modules = [ ./hosts/dragon ];
specialArgs = { inherit inputs outputs; };
};
eve = lib.nixosSystem {
modules = [ ./hosts/eve ];
specialArgs = { inherit inputs outputs; };
};
loki = lib.nixosSystem {
modules = [
nixos-hardware.nixosModules.dell-xps-13-9310
./hosts/loki
];
specialArgs = { inherit inputs outputs; };
};
pocket2 = lib.nixosSystem {
modules = [ ./hosts/pocket2 ];
specialArgs = { inherit inputs outputs; };
};
smaug = lib.nixosSystem {
modules = [
nixos-hardware.nixosModules.lenovo-thinkpad-x260
./hosts/smaug
];
specialArgs = { inherit inputs outputs; };
};
# t2 = lib.nixosSystem {
# modules = [ ./hosts/t2 ];
# specialArgs = { inherit inputs outputs; };
# };
# servers
display = nixosSystem "x86_64-linux" "display" "don";
harper2 = nixosSystem "x86_64-linux" "harper2" "don";
harper = nixosSystem "x86_64-linux" "harper" "don";
nuwww = nixosSystem "x86_64-linux" "nuwww" "don";
pihole = nixosSystem "x86_64-linux" "pihole" "don";
www2 = nixosSystem "x86_64-linux" "www2" "don";
display = lib.nixosSystem {
modules = [ ./hosts/display ];
specialArgs = { inherit inputs outputs; };
};
harper2 = lib.nixosSystem {
modules = [ ./hosts/harper2 ];
specialArgs = { inherit inputs outputs; };
};
harper = lib.nixosSystem {
modules = [ ./hosts/harper ];
specialArgs = { inherit inputs outputs; };
};
nuwww = lib.nixosSystem {
modules = [ ./hosts/nuwww ];
specialArgs = { inherit inputs outputs; };
};
pihole = lib.nixosSystem {
modules = [ ./hosts/pihole ];
specialArgs = { inherit inputs outputs; };
};
www2 = lib.nixosSystem {
modules = [ ./hosts/www2 ];
specialArgs = { inherit inputs outputs; };
};
# test system
# use this for a blank ISO + disko to work
nixos = nixosSystem "x86_64-linux" "nixos" "don";
nixos = lib.nixosSystem {
modules = [ ./hosts/nixos ];
specialArgs = { inherit inputs outputs; };
};
};
};
}

View file

@ -1,6 +1,11 @@
{ pkgs, config, ... }:
{
programs.lazygit = {
settings = {
os.editPreset = "lvim";
};
};
programs.git = {
enable = true;
aliases = {

View file

@ -1,6 +1,6 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ taskwarrior tasksh vit timewarrior ];
home.packages = with pkgs; [ taskwarrior taskwarrior-tui tasksh vit timewarrior ];
programs.taskwarrior = {
enable = true;
colorTheme = "dark-green-256";

View file

@ -3,10 +3,6 @@
programs.topgrade = {
enable = true;
settings = {
linux = {
home_manager_arguments = [ "--flake" ];
nix_arguments = "--flake";
};
misc = {
assume_yes = true;
no_retry = true;

View file

@ -1,6 +1,8 @@
{ ... }:
{ inputs, outputs, ... }:
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager.extraSpecialArgs = { inherit inputs outputs; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;

View file

@ -52,7 +52,7 @@
poweralertd
powerline-fonts
prusa-slicer
pwvucontrol
# pwvucontrol ## TODO FIXME This is currently broken upstream 2024-03-26
qpwgraph
quickemu
quickgui

View file

@ -1,6 +1,6 @@
{ ... }:
{ inputs, outputs, ... }:
{
# xdg.configFile."sway/config".source = files/sway/${config.networking.hostName};
# xdg.configFile."sway/config".source = files/sway/${inputs.networking.hostName};
xdg.configFile."sway/config".source = files/sway/default;
programs.swaylock = {
enable = true;

View file

@ -4,10 +4,10 @@
imports =
[
./hardware-configuration.nix
../../workstation
../workstation
../../home
../../home/gui
../../wm
../wm
];
networking.hostName = "ace";
}

View file

@ -8,10 +8,10 @@
#inputs.nixos-hardware.nixosModules.common-gpu-intel
#inputs.nixos-hardware.nixosModules.common-pc-laptop
#inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
../../workstation
../workstation
../../home
../../home/gui
../../wm
../wm
];
networking.hostName = "dragon";
}

View file

@ -4,10 +4,10 @@
imports =
[
./hardware-configuration.nix
../../workstation
../workstation
../../home
../../home/gui
../../wm
../wm
];
networking.hostName = "eve";
}

View file

@ -1,13 +1,14 @@
{ config, pkgs, ... }:
{ inputs, outputs, ... }:
{
imports =
[
./hardware-configuration.nix
../../workstation
../workstation
../workstation/kvm.nix
../../home
../../home/gui
../../wm
../wm
];
networking.hostName = "loki";
}

View file

@ -4,14 +4,14 @@
imports =
[
./hardware-configuration.nix
#inputs.nixos-hardware.nixosModules.common-cpu-intel
#inputs.nixos-hardware.nixosModules.common-gpu-intel
#inputs.nixos-hardware.nixosModules.common-pc-laptop
#inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
../../workstation
inputs.nixos-hardware.nixosModules.common-cpu-intel
inputs.nixos-hardware.nixosModules.common-gpu-intel
inputs.nixos-hardware.nixosModules.common-pc-laptop
inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
../workstation
../../home
../../home/gui
../../wm
../wm
];
networking.hostName = "pocket2";
}

View file

@ -23,10 +23,6 @@
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/13b6e2c4-b8f1-48c9-b992-bf2d172d9a25"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction

View file

@ -4,10 +4,10 @@
imports =
[
./hardware-configuration.nix
../../workstation
../workstation
../../home
../../home/gui
../../wm
../wm
];
networking.hostName = "smaug";
}

View file

@ -4,10 +4,10 @@
imports =
[
./hardware-configuration.nix
../../workstation
../workstation
../../home
../../home/gui
../../wm
../wm
];
networking.hostName = "t2";
}

View file

@ -3,7 +3,7 @@
let
my-python-packages = python-packages: with python-packages; [
pip
pipx
# pipx
python-dateutil
setuptools
requests
@ -185,6 +185,12 @@ in
];
};
zramSwap = {
enable = true;
memoryPercent = 25;
memoryMax = 2147483648;
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ];

View file

@ -0,0 +1,5 @@
{ pkgs, inputs, ... }:
{
virtualisation.libvirtd.enable = true;
environment.systemPackages = with pkgs; [ gnome.gnome-boxes ];
}

View file

@ -3,18 +3,21 @@ UNAME_S := $(shell uname -s)
UNAME_M := $(shell uname -m)
all:
locate home-manager-backup | sort -u | xargs rm -f
@locate home-manager-backup | sort -u | xargs rm -f
doas nixos-rebuild build --flake .#${HOSTNAME}
switch:
doas nixos-rebuild switch --flake .#${HOSTNAME}
weekly: pull clean update ci all push
weekly: pull clean update ci switch push
cweekly: clean pull all
cweekly: clean pull switch
update:
nix flake update
clean:
doas nix-collect-garbage
doas nix-collect-garbage --quiet --log-format bar --no-build-output --delete-old
doas nix store optimise
push:
@ -24,8 +27,8 @@ push:
pull:
@. ~/.bash_ssh
git pull
doas nix-prefetch-url file://$$PWD/$$(ls -1 pkgs/linuxx64* | tail -n1)
doas nix-prefetch-url file://$$PWD/$$(ls -1 pkgs/linuxarm64* | tail -n1)
doas nix-prefetch-url file://$$PWD/$$(ls -1 src/linuxx64* | tail -n1)
# doas nix-prefetch-url file://$$PWD/$$(ls -1 src/linuxarm64* | tail -n1)
ci:

View file

@ -1,3 +0,0 @@
{ allowUnfree = true;
permittedInsecurePackages = [ "electron-18.1.0" ];
}

View file

@ -1,20 +0,0 @@
{ config, pkgs, callPackage, ... }:
{
users.users.vicky = {
isNormalUser = true;
description = "Vicky Harper";
extraGroups = [ "networkmanager" "wheel" "scanner" "lp" "video" "mlocate" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINd8AdVbQQ/Fmw+b9mI8EMYqIoRkwmSwAOtmlte3incL don@loki"
];
};
services.xserver = {
enable = true;
desktopManager = {
xterm.enable = false;
xfce.enable = true;
};
displayManager.defaultSession = "xfce";
};
}