From 7988bde6ddac24f19ef227a14a41d39f21143ffe Mon Sep 17 00:00:00 2001 From: Jimbo Date: Sat, 26 Oct 2024 23:55:40 -0400 Subject: [PATCH] Add MacBook computer to the roster, add names for each machine in the flake --- flake.nix | 16 ++--- hosts/treefruit/home/default.nix | 25 +++++++ hosts/treefruit/id_ed25519.pub | 1 + hosts/treefruit/system/boot/default.nix | 17 +++++ hosts/treefruit/system/default.nix | 31 +++++++++ hosts/treefruit/system/hardware/default.nix | 63 ++++++++++++++++++ .../system/accounts/users/jimbo/default.nix | 1 + modules/system/services/pc/keyd/default.nix | 22 +++++- variables/secrets/default.nix | Bin 2497 -> 2475 bytes 9 files changed, 166 insertions(+), 10 deletions(-) create mode 100644 hosts/treefruit/home/default.nix create mode 100644 hosts/treefruit/id_ed25519.pub create mode 100644 hosts/treefruit/system/boot/default.nix create mode 100644 hosts/treefruit/system/default.nix create mode 100644 hosts/treefruit/system/hardware/default.nix diff --git a/flake.nix b/flake.nix index b8c07ca..ee2ed99 100644 --- a/flake.nix +++ b/flake.nix @@ -66,15 +66,14 @@ in { # nixos-rebuild switch --flake .#hostname nixosConfigurations = { - # PCs and Laptops - firefly = mkNix [ ./hosts/firefly/system ]; - shuttleworth = mkNix [ ./hosts/shuttleworth/system ]; - lacros = mkNix [ ./hosts/lacros/system ]; - redmond = mkNix [ ./hosts/redmond/system ]; + firefly = mkNix [ ./hosts/firefly/system ]; # Main Desktop + shuttleworth = mkNix [ ./hosts/shuttleworth/system ]; # Pinebook Pro + lacros = mkNix [ ./hosts/lacros/system ]; # Dell Chromebook + redmond = mkNix [ ./hosts/redmond/system ]; # Lenovo Laptop + treefruit = mkNix [ ./hosts/treefruit/system ]; # Macbook 14,1 - # Servers - cyberspark = mkNix [ ./hosts/cyberspark/system ]; - bomberman = mkNix [ ./hosts/bomberman/system ]; + cyberspark = mkNix [ ./hosts/cyberspark/system ]; # Dell Optiplex 7010 + bomberman = mkNix [ ./hosts/bomberman/system ]; # Oracle ARM }; # home-manager switch --flake .#username@hostname @@ -83,6 +82,7 @@ "jimbo@shuttleworth" = mkHome [ ./hosts/shuttleworth/home ] nixpkgs.legacyPackages.aarch64-linux; "jimbo@lacros" = mkHome [ ./hosts/lacros/home ] nixpkgs.legacyPackages.x86_64-linux; "jimbo@redmond" = mkHome [ ./hosts/redmond/home ] nixpkgs.legacyPackages.x86_64-linux; + "jimbo@treefruit" = mkHome [ ./hosts/treefruit/home ] nixpkgs.legacyPackages.x86_64-linux; "jimbo@cyberspark" = mkHome [ ./hosts/cyberspark/home ] nixpkgs.legacyPackages.x86_64-linux; "jimbo@bomberman" = mkHome [ ./hosts/bomberman/home ] nixpkgs.legacyPackages.aarch64-linux; diff --git a/hosts/treefruit/home/default.nix b/hosts/treefruit/home/default.nix new file mode 100644 index 0000000..769a875 --- /dev/null +++ b/hosts/treefruit/home/default.nix @@ -0,0 +1,25 @@ +{ config, nur, ... }: +{ + imports = [ + # Apps and programs + ../../../modules/home + ../../../modules/home/users + ../../../modules/home/files + ../../../modules/home/settings + ../../../modules/home/programs + ../../../modules/home/programs/misc/production + ../../../modules/home/programs/misc/gaming/launchers + ../../../modules/home/programs/misc/gaming/xash3d + ../../../modules/home/programs/misc/remote-desktop + ../../../modules/home/sway + ../../../modules/home/utils + + # Misc + ../../../overlays + ../../../variables + ../../../variables/look/colors/orange + + # Imports + nur.nixosModules.nur + ]; +} diff --git a/hosts/treefruit/id_ed25519.pub b/hosts/treefruit/id_ed25519.pub new file mode 100644 index 0000000..089969c --- /dev/null +++ b/hosts/treefruit/id_ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAzAyY6bLK/pOlijVOZjw3ikdIaOuCC1yQjxL922bON7 jimbo@treefruit diff --git a/hosts/treefruit/system/boot/default.nix b/hosts/treefruit/system/boot/default.nix new file mode 100644 index 0000000..90ff8e8 --- /dev/null +++ b/hosts/treefruit/system/boot/default.nix @@ -0,0 +1,17 @@ +{ pkgs, ... }: +{ + boot = { + kernelPackages = pkgs.linuxPackages_latest; + kernel.sysctl."vm.max_map_count" = 2147483642; + initrd = { + systemd.enable = true; + luks.devices = { + crypt-mmc = { + device = "/dev/disk/by-uuid/5bc11b61-e4dc-465c-b87a-533955cf6177"; + preLVM = true; + allowDiscards = true; + }; + }; + }; + }; +} diff --git a/hosts/treefruit/system/default.nix b/hosts/treefruit/system/default.nix new file mode 100644 index 0000000..db774c6 --- /dev/null +++ b/hosts/treefruit/system/default.nix @@ -0,0 +1,31 @@ +{ config, lib, hardware, ... }: +{ + imports = [ + ./hardware + ./boot + + # Apps and programs + ../../../modules/system + ../../../modules/system/accounts + ../../../modules/system/desktop + ../../../modules/system/programs + ../../../modules/system/services + + # Devices and hardware + ../../../modules/system/devices + ../../../modules/system/devices/boot/systemd + ../../../modules/system/devices/networking/wireless + ../../../modules/system/devices/networking/firewall/pc + ../../../modules/system/devices/networking/wireguard/pc + + # Extras + ../../../overlays + ../../../variables + + # Imports + hardware.nixosModules.apple-macbook-pro-14-1 + ]; + + networking.hostName = "treefruit"; + networking.wireguard.interfaces."${config.ips.wgInt}".ips = [ "${config.ips.wgSpan}.21/24" ]; +} diff --git a/hosts/treefruit/system/hardware/default.nix b/hosts/treefruit/system/hardware/default.nix new file mode 100644 index 0000000..9975bc5 --- /dev/null +++ b/hosts/treefruit/system/hardware/default.nix @@ -0,0 +1,63 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot = { + kernelModules = [ "kvm-intel" ]; + initrd = { + availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + kernelModules = [ "dm-snapshot" ]; + }; + }; + + fileSystems = { + "/" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@" ]; + }; + "/home" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@home" ]; + }; + "/nix" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@nix" ]; + }; + "/var" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@var" ]; + }; + "/.snapshots" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@snapshots" ]; + }; + "/boot" = { + device = "/dev/disk/by-uuid/7B59-F17A"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + # Remote + "/home/jimbo/JimboNFS" = { + device = "${config.ips.wgSpan}.1:/export/JimboNFS"; + fsType = "nfs4"; + options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; + }; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/25b5e281-f1be-49ca-991e-b340fed3e5da"; } + ]; + + networking.useDHCP = lib.mkDefault true; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/modules/system/accounts/users/jimbo/default.nix b/modules/system/accounts/users/jimbo/default.nix index 967ab0e..8ad47c8 100644 --- a/modules/system/accounts/users/jimbo/default.nix +++ b/modules/system/accounts/users/jimbo/default.nix @@ -10,6 +10,7 @@ (builtins.readFile ../../../../../hosts/shuttleworth/id_ed25519.pub) (builtins.readFile ../../../../../hosts/lacros/id_ed25519.pub) (builtins.readFile ../../../../../hosts/redmond/id_ed25519.pub) + (builtins.readFile ../../../../../hosts/treefruit/id_ed25519.pub) (builtins.readFile ../../../../../hosts/cyberspark/id_ed25519.pub) (builtins.readFile ../../../../../hosts/bomberman/id_ed25519.pub) diff --git a/modules/system/services/pc/keyd/default.nix b/modules/system/services/pc/keyd/default.nix index 2af1288..b71dc61 100644 --- a/modules/system/services/pc/keyd/default.nix +++ b/modules/system/services/pc/keyd/default.nix @@ -7,14 +7,16 @@ settings = { main = { capslock = "overload(control,esc)"; - esc = "capslock"; + leftcontrol = "overload(ctrlmod,noop)"; + + esc = "`"; rightcontrol = "esc"; - leftcontrol = "noop"; left = "noop"; down = "noop"; up = "noop"; right = "noop"; }; + control = { h = "left"; j = "down"; @@ -22,6 +24,22 @@ l = "right"; semicolon = "macro(C-l)"; }; + + ctrlmod = { + backspace = "delete"; + "1" = "f1"; + "2" = "f2"; + "3" = "f3"; + "4" = "f4"; + "5" = "f5"; + "6" = "f6"; + "7" = "f7"; + "8" = "f8"; + "9" = "f9"; + "0" = "f10"; + "-" = "f11"; + "=" = "f12"; + }; }; }; }; diff --git a/variables/secrets/default.nix b/variables/secrets/default.nix index 0cbd023f7a04ac7ef1ef3441fce5ee46316b423d..b9c351c598766a31ae808f792860b58296b0737e 100644 GIT binary patch literal 2475 zcmZWr*>a=E5`FKlU~Ek|!tF+YSm#DRNN7W7L7TNajH7^J-vk8$b@aavg=EXV{enbR z*2$AuStt2L1g`!<7;$8|_6tFhB=P&7Z@<0~M4TWujxsWXMha0z{KTGQ=r0;Ofn5j! zRSCSU;J+CO5K6QEHESlcKpvoa`PXl3sUP+88tD`273h)ZL(7dIVa6eFqpU&j+_2xg z)))`!F@9xweaoa&p6NT5q*2$)p3gN@5q1ITsiL1g2GgIWPOCLQ7zUi^-!|g=hYmzz1v*PWvf4ey9ZaLD7A-v=6 z+!We5NKFj+XHk#?iL+fFdl-VqY(k#xHB1YbYN=b`n7eUVx?Jawi1XFa*?jLUqeAAH zp5ZUxh%TA+qVRV?NTE^u^LAt(5V?*KPSIl14)%-53@q*b*4!tRH9GbfWl(M7eC0tV zZ0j0Ab$bkzZ^iE=?N_EzUz%IVej#9QhEO@ySSf{m-OtrJoI}HqfBE$mPvVTBa zNi5Xuxb5(V^>(GOg$*}Hb=jx6Wp)CUZR(qd4!gU{GLhEQ9YJ$T7)aU`!PI2rg}eaF z*-?(FDZOB(-}CLlr&hYxl{RhUAUgeiG6tVGEK*O3)t2*LpOSF+tFFlM6_$g zAv`^%@YrqX|9bsOdY#{n1@BnLd1}D-Evi54!x^<6E7RwU|I1{{XTa)@x^cRP*PIx| zN$O_d|1)TeUntmVXYDJebXyV!xSCYL#N_&*6MD$%MBc@#D*n{n%Fqnlp1)VP<8kW2jrh*TqJ>C*CxZRm;&e^%o+{ zGeqc+=rDxgfVxo-Ofw>gBfBA$;O49SuXq3HsjF#k>frEmC!L@h@f64T(#R~%Bi)?v zyK*Ve)0Cr)<ugdGWucp8^{gQ3L1ETc$^}8K17CXyee#oQw_&a0brGJf`bZGh zDS#{WkS4~DyjI#;hT+3MH{pMHX&8SvG(uaK9y^@>Uh2x==)^ATInUm+rh?uq>=+5)z`#oFsF}Wb;e{RmU~=!JR844RxO%p`B~2j^E~$CU33|q zl3qU^v={N{Se-15oaQm(2Eut~oW?L5+b1Vknl68X#Pj$oWRv+R8PQ;?R5S3nNPC&s^kznO2X4zoYBB_0RlqedF4@r_ph80L!5J!)aVuRxPxy_I1}hWT8I>uPQ0c~TNd`ifhBI{p6k EA56mT;{X5v literal 2497 zcmV;y2|o4!M@dveQdv+`0Kazh-j<*S8s0hXNo)6O2-dU_Xm^CcvjB7}!VIkQ1*k5Zev^t(QCGZKsf8gLxtkO2mDR*ex^$qF`3Ul_*@M zQsGAGJ6ukOjOM#8*XYBc7IUOkL_1SzmNt2OqXaM06GCpEUY0%81yz z9p?ID3<-ATA;&HuzU?8de#I=oba$)8<>q>R9r@qWOP~#fhWAP~f!r^(TT<~njj5$n zwbo@sN+vwENmM{gaC1X1ckH&s5r1DZ6>`)`(opfOs7J z-@TCCksqtlJ=&jMn^Kq|iNs%y@=ifE0bdZ24=#$?WDLF(p z|6uj;ZjXo|;+jXJTYQ=f#PE6sy||@O8p(x(kj!u7FjY6G+cU!o!6u#coa7jrZjL1vL{qbokDoyblP@z>!_LVsE#i-hB zJlUr*rEFBEOWvh_j+4CGDAH8F?aoiMauh~yC4V5lI zGd1L@+x=&>a*~Jut^~IfN?GL~aU-+^7h@T%xhBrusDGFJIf7xO-D>84J7n95r~Qqh z+s#IJDOqrU#UizYcTr-a*?Bk#O)l6>mhO)kQ_o{&Gs&q<36=F-H)kY0M65S`!6aG_ z+IQ8o)mZT0TEOG%R27b~2RuimzEq*_j_C>6T=Fepzz*HIG)v};2@DpK`0`gHMQOrY z-BXGr4qIrx$olfq!CRLMK}UYoYJKohDMnIVoPg- zi0vz(1evT}h&!n=Qp;G{zm=sNfIf~SNBRLz28iX*VTZmdhq9zo07gb1uG7eT;6skK z18q|OE}$qXs+UX6kl!;^;eNgZ<|K#SLKSIXuj8{$h(sIi!d%q8z^CFztzZE~_5b8v zb){_DYRWHfa;PG=`X;65rEZDppS)|tiZJKm%%^Lwxahm`}PH+rtnZUVOb%{ZP*$cfnR{2(JshD;PqANrVR8C_+X z?eZB_*t`jSZ%XDHlKTXj$!2zskp{YF9)Y3f7T{qlrhOZ*py=i(0)kgxJQIW}^8m49 zA(D!%de=Ux*VXcdNqS6pk)j4!nQl&qPQ3H0L}{Bew{iFcIJ&|(-y&O;SkweG+EPF`=cXIR6vdf&xBQvUe-Vy{J7){CrUH z|I}~sg11h(Euvdp>iFp7Sut`La2VyyXzzd=*?S&^kxwN`<5C}cJZ;Y%E@q56O!BmL z*e;RzF(%bR*yvlSbvu?fe|z@^w9vdwAAQM&b^Um}X$DFCU%4om!P(W>?{jfRz#r3) zpcP9^_J&a1h6>oWYU%2!F-Ko)H?K#vkeAdC%%3~t0`PtiGUgydN!koM03W1%ljEpx zJC{|}#?{=-PWFtna;`BiaRJQ>ys=rQtr7a1-kbbgqH`B^ovKp!#b{SMWmR zr=Jr0S_v}R*qA5t@3OrCOI|m^i0fa(t%Y7;5<5lnb<`1eBEmLrImPN5?m}g(cWSazfKw?zVGiAPIgyYQbbCFuk7#ocjz=0Q15~9qj))M_Ka` LN#hQf5Z!9_x}@Av