From 3b0ed14d85e9a34ead331d3ae0610df3a449b591 Mon Sep 17 00:00:00 2001 From: Nickolaj Jepsen Date: Wed, 19 Feb 2025 23:42:24 +0100 Subject: [PATCH] ready --- flake.lock | 67 +- flake.nix | 3 + justfile | 1 - parts/hosts/desktop/facter.json | 1276 ++++------------- parts/hosts/desktop/monitors.nix | 1 - parts/hosts/laptop/configuration.nix | 5 +- parts/modules/apps/firefox.nix | 50 +- parts/modules/apps/vscode.nix | 24 +- parts/modules/base/ld.nix | 3 + parts/modules/base/ssh.nix | 3 +- parts/modules/base/time.nix | 3 + parts/modules/desktop/astal/default.nix | 57 +- parts/modules/desktop/astal/src/config.ts | 6 +- .../desktop/astal/src/utils/monitors.ts | 3 +- parts/modules/desktop/gtk/default.nix | 28 + parts/modules/desktop/gtk/theme.css | 0 parts/modules/desktop/hyprland/default.nix | 39 + parts/modules/dev/docker.nix | 10 + parts/modules/dev/k8s.nix | 25 + parts/modules/dev/python.nix | 8 + parts/modules/dev/tilt.nix | 5 + parts/modules/devenv.nix | 3 + parts/modules/graphical.nix | 2 +- parts/modules/hardware/monitors.nix | 2 +- parts/modules/hardware/yubikey.nix | 2 +- parts/modules/required.nix | 2 + parts/modules/shell/fish/default.nix | 1 + parts/modules/shell/fish/k8s.fish | 63 + parts/modules/shell/git.nix | 1 + parts/vm.nix | 2 +- ...bc55ba290d942143bab9a09e714-k8s-ao-dev.age | Bin 0 -> 2076 bytes ...4b22e19ec88c60fd5f828efbce-k8s-ao-prod.age | Bin 0 -> 2118 bytes ...bc55ba290d942143bab9a09e714-k8s-ao-dev.age | Bin 0 -> 2147 bytes ...4b22e19ec88c60fd5f828efbce-k8s-ao-prod.age | Bin 0 -> 2164 bytes secrets/k8s/ao-dev.age | Bin 0 -> 2247 bytes secrets/k8s/ao-prod.age | Bin 0 -> 2196 bytes 36 files changed, 663 insertions(+), 1032 deletions(-) create mode 100644 parts/modules/base/ld.nix create mode 100644 parts/modules/base/time.nix create mode 100644 parts/modules/desktop/gtk/default.nix create mode 100644 parts/modules/desktop/gtk/theme.css create mode 100644 parts/modules/dev/docker.nix create mode 100644 parts/modules/dev/k8s.nix create mode 100644 parts/modules/dev/tilt.nix create mode 100644 parts/modules/shell/fish/k8s.fish create mode 100644 secrets/hosts/desktop/.rekey/1fb47bc55ba290d942143bab9a09e714-k8s-ao-dev.age create mode 100644 secrets/hosts/desktop/.rekey/4071734b22e19ec88c60fd5f828efbce-k8s-ao-prod.age create mode 100644 secrets/hosts/laptop/.rekey/1fb47bc55ba290d942143bab9a09e714-k8s-ao-dev.age create mode 100644 secrets/hosts/laptop/.rekey/4071734b22e19ec88c60fd5f828efbce-k8s-ao-prod.age create mode 100644 secrets/k8s/ao-dev.age create mode 100644 secrets/k8s/ao-prod.age diff --git a/flake.lock b/flake.lock index ff94efd..56df382 100644 --- a/flake.lock +++ b/flake.lock @@ -285,6 +285,27 @@ "type": "github" } }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1659877975, @@ -538,6 +559,28 @@ "type": "github" } }, + "nur": { + "inputs": { + "flake-parts": "flake-parts_3", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix_2" + }, + "locked": { + "lastModified": 1739903703, + "narHash": "sha256-w2tTcjx39lJoPDaFbIxi+INIjAKE0jbIx9TNjj9ghmg=", + "owner": "nix-community", + "repo": "NUR", + "rev": "2215ad5c4347f522523715e809f5f2022509f504", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -576,7 +619,8 @@ "nixos-generators": "nixos-generators", "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", - "treefmt-nix": "treefmt-nix_2", + "nur": "nur", + "treefmt-nix": "treefmt-nix_3", "walker": "walker" } }, @@ -663,6 +707,27 @@ } }, "treefmt-nix_2": { + "inputs": { + "nixpkgs": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_3": { "inputs": { "nixpkgs": "nixpkgs_3" }, diff --git a/flake.nix b/flake.nix index c74d8e9..895b894 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,9 @@ home-manager.url = "github:nix-community/home-manager/release-24.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; + nur.url = "github:nix-community/NUR"; + nur.inputs.nixpkgs.follows = "nixpkgs"; + disko.url = "github:nix-community/disko"; disko.inputs.nixpkgs.follows = "nixpkgs"; diff --git a/justfile b/justfile index 795ebd8..5b498ca 100644 --- a/justfile +++ b/justfile @@ -68,7 +68,6 @@ deploy hostname *ARGS: --flake .#{{ hostname }} \ {{ ARGS }} switch - [group('deploy')] deploy-remote hostname target: #!/usr/bin/env -S bash -e diff --git a/parts/hosts/desktop/facter.json b/parts/hosts/desktop/facter.json index 0a4c87d..0293b6a 100644 --- a/parts/hosts/desktop/facter.json +++ b/parts/hosts/desktop/facter.json @@ -25,10 +25,7 @@ { "index": 60, "attached_to": 76, - "class_list": [ - "usb", - "bluetooth" - ], + "class_list": ["usb", "bluetooth"], "bus_type": { "hex": "0086", "name": "USB", @@ -98,25 +95,15 @@ "hotplug": "usb", "driver": "btusb", "driver_module": "btusb", - "drivers": [ - "btusb" - ], - "driver_modules": [ - "btusb" - ], + "drivers": ["btusb"], + "driver_modules": ["btusb"], "driver_info": { "type": "module", - "db_entry_0": [ - "btusb" - ], + "db_entry_0": ["btusb"], "active": true, "modprobe": true, - "names": [ - "btusb" - ], - "module_args": [ - "" - ], + "names": ["btusb"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v8087p0AAAd0002dcE0dsc01dp01icE0isc01ip01in00" @@ -124,10 +111,7 @@ { "index": 77, "attached_to": 76, - "class_list": [ - "usb", - "bluetooth" - ], + "class_list": ["usb", "bluetooth"], "bus_type": { "hex": "0086", "name": "USB", @@ -197,25 +181,15 @@ "hotplug": "usb", "driver": "btusb", "driver_module": "btusb", - "drivers": [ - "btusb" - ], - "driver_modules": [ - "btusb" - ], + "drivers": ["btusb"], + "driver_modules": ["btusb"], "driver_info": { "type": "module", - "db_entry_0": [ - "btusb" - ], + "db_entry_0": ["btusb"], "active": true, "modprobe": true, - "names": [ - "btusb" - ], - "module_args": [ - "" - ], + "names": ["btusb"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v8087p0AAAd0002dcE0dsc01dp01icE0isc01ip01in01" @@ -225,10 +199,7 @@ { "index": 22, "attached_to": 0, - "class_list": [ - "pci", - "bridge" - ], + "class_list": ["pci", "bridge"], "bus_type": { "hex": "0004", "name": "PCI", @@ -294,18 +265,13 @@ "prog_if": 0 }, "driver": "pcieport", - "drivers": [ - "pcieport" - ], + "drivers": ["pcieport"], "module_alias": "pci:v00008086d0000A338sv00001458sd00005001bc06sc04i00" }, { "index": 23, "attached_to": 0, - "class_list": [ - "pci", - "bridge" - ], + "class_list": ["pci", "bridge"], "bus_type": { "hex": "0004", "name": "PCI", @@ -363,10 +329,7 @@ { "index": 24, "attached_to": 0, - "class_list": [ - "pci", - "bridge" - ], + "class_list": ["pci", "bridge"], "bus_type": { "hex": "0004", "name": "PCI", @@ -432,18 +395,13 @@ "prog_if": 0 }, "driver": "pcieport", - "drivers": [ - "pcieport" - ], + "drivers": ["pcieport"], "module_alias": "pci:v00008086d0000A32Csv00001458sd00005001bc06sc04i00" }, { "index": 25, "attached_to": 0, - "class_list": [ - "pci", - "bridge" - ], + "class_list": ["pci", "bridge"], "bus_type": { "hex": "0004", "name": "PCI", @@ -509,18 +467,13 @@ "prog_if": 0 }, "driver": "pcieport", - "drivers": [ - "pcieport" - ], + "drivers": ["pcieport"], "module_alias": "pci:v00008086d00001901sv00001458sd00005000bc06sc04i00" }, { "index": 26, "attached_to": 0, - "class_list": [ - "pci", - "bridge" - ], + "class_list": ["pci", "bridge"], "bus_type": { "hex": "0004", "name": "PCI", @@ -586,18 +539,13 @@ "prog_if": 0 }, "driver": "pcieport", - "drivers": [ - "pcieport" - ], + "drivers": ["pcieport"], "module_alias": "pci:v00008086d0000A33Fsv00001458sd00005001bc06sc04i00" }, { "index": 32, "attached_to": 0, - "class_list": [ - "pci", - "bridge" - ], + "class_list": ["pci", "bridge"], "bus_type": { "hex": "0004", "name": "PCI", @@ -663,18 +611,13 @@ "prog_if": 0 }, "driver": "pcieport", - "drivers": [ - "pcieport" - ], + "drivers": ["pcieport"], "module_alias": "pci:v00008086d0000A340sv00001458sd00005001bc06sc04i00" }, { "index": 35, "attached_to": 0, - "class_list": [ - "pci", - "bridge" - ], + "class_list": ["pci", "bridge"], "bus_type": { "hex": "0004", "name": "PCI", @@ -728,25 +671,15 @@ }, "driver": "skl_uncore", "driver_module": "intel_uncore", - "drivers": [ - "skl_uncore" - ], - "driver_modules": [ - "intel_uncore" - ], + "drivers": ["skl_uncore"], + "driver_modules": ["intel_uncore"], "driver_info": { "type": "module", - "db_entry_0": [ - "ie31200_edac" - ], + "db_entry_0": ["ie31200_edac"], "active": false, "modprobe": true, - "names": [ - "ie31200_edac" - ], - "module_args": [ - "" - ], + "names": ["ie31200_edac"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v00008086d00003E30sv00001458sd00005000bc06sc00i00", @@ -755,10 +688,7 @@ { "index": 38, "attached_to": 26, - "class_list": [ - "pci", - "bridge" - ], + "class_list": ["pci", "bridge"], "bus_type": { "hex": "0004", "name": "PCI", @@ -819,10 +749,7 @@ { "index": 39, "attached_to": 0, - "class_list": [ - "pci", - "bridge" - ], + "class_list": ["pci", "bridge"], "bus_type": { "hex": "0004", "name": "PCI", @@ -888,9 +815,7 @@ "prog_if": 0 }, "driver": "pcieport", - "drivers": [ - "pcieport" - ], + "drivers": ["pcieport"], "module_alias": "pci:v00008086d0000A330sv00001458sd00005001bc06sc04i00" } ], @@ -1053,11 +978,7 @@ { "index": 50, "attached_to": 20, - "class_list": [ - "disk", - "block_device", - "nvme" - ], + "class_list": ["disk", "block_device", "nvme"], "bus_type": { "hex": "0096", "name": "NVME", @@ -1132,21 +1053,13 @@ ], "driver": "nvme", "driver_module": "nvme", - "drivers": [ - "nvme" - ], - "driver_modules": [ - "nvme" - ] + "drivers": ["nvme"], + "driver_modules": ["nvme"] }, { "index": 51, "attached_to": 21, - "class_list": [ - "disk", - "ide", - "block_device" - ], + "class_list": ["disk", "ide", "block_device"], "bus_type": { "hex": "0085", "name": "IDE", @@ -1218,19 +1131,12 @@ } ], "driver": "ahci", - "drivers": [ - "ahci", - "sd" - ] + "drivers": ["ahci", "sd"] }, { "index": 52, "attached_to": 21, - "class_list": [ - "disk", - "ide", - "block_device" - ], + "class_list": ["disk", "ide", "block_device"], "bus_type": { "hex": "0085", "name": "IDE", @@ -1297,20 +1203,14 @@ } ], "driver": "ahci", - "drivers": [ - "ahci", - "sd" - ] + "drivers": ["ahci", "sd"] } ], "graphics_card": [ { "index": 30, "attached_to": 25, - "class_list": [ - "graphics_card", - "pci" - ], + "class_list": ["graphics_card", "pci"], "bus_type": { "hex": "0004", "name": "PCI", @@ -1417,25 +1317,15 @@ }, "driver": "nvidia", "driver_module": "nvidia", - "drivers": [ - "nvidia" - ], - "driver_modules": [ - "nvidia" - ], + "drivers": ["nvidia"], + "driver_modules": ["nvidia"], "driver_info": { "type": "module", - "db_entry_0": [ - "nouveau" - ], + "db_entry_0": ["nouveau"], "active": false, "modprobe": true, - "names": [ - "nouveau" - ], - "module_args": [ - "" - ], + "names": ["nouveau"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v000010DEd00001E81sv000010DEsd000013A1bc03sc00i00" @@ -1445,10 +1335,7 @@ { "index": 61, "attached_to": 27, - "class_list": [ - "usb", - "hub" - ], + "class_list": ["usb", "hub"], "bus_type": { "hex": "0086", "name": "USB", @@ -1520,18 +1407,13 @@ }, "hotplug": "usb", "driver": "hub", - "drivers": [ - "hub" - ], + "drivers": ["hub"], "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00" }, { "index": 67, "attached_to": 76, - "class_list": [ - "usb", - "hub" - ], + "class_list": ["usb", "hub"], "bus_type": { "hex": "0086", "name": "USB", @@ -1601,18 +1483,13 @@ }, "hotplug": "usb", "driver": "hub", - "drivers": [ - "hub" - ], + "drivers": ["hub"], "module_alias": "usb:v05E3p0608d8536dc09dsc00dp01ic09isc00ip00in00" }, { "index": 68, "attached_to": 67, - "class_list": [ - "usb", - "hub" - ], + "class_list": ["usb", "hub"], "bus_type": { "hex": "0086", "name": "USB", @@ -1683,18 +1560,13 @@ }, "hotplug": "usb", "driver": "hub", - "drivers": [ - "hub" - ], + "drivers": ["hub"], "module_alias": "usb:v2109p2813d9011dc09dsc00dp01ic09isc00ip00in00" }, { "index": 71, "attached_to": 27, - "class_list": [ - "usb", - "hub" - ], + "class_list": ["usb", "hub"], "bus_type": { "hex": "0086", "name": "USB", @@ -1756,18 +1628,13 @@ }, "hotplug": "usb", "driver": "hub", - "drivers": [ - "hub" - ], + "drivers": ["hub"], "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00" }, { "index": 76, "attached_to": 43, - "class_list": [ - "usb", - "hub" - ], + "class_list": ["usb", "hub"], "bus_type": { "hex": "0086", "name": "USB", @@ -1839,18 +1706,13 @@ }, "hotplug": "usb", "driver": "hub", - "drivers": [ - "hub" - ], + "drivers": ["hub"], "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00" }, { "index": 86, "attached_to": 43, - "class_list": [ - "usb", - "hub" - ], + "class_list": ["usb", "hub"], "bus_type": { "hex": "0086", "name": "USB", @@ -1912,18 +1774,13 @@ }, "hotplug": "usb", "driver": "hub", - "drivers": [ - "hub" - ], + "drivers": ["hub"], "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00" }, { "index": 87, "attached_to": 76, - "class_list": [ - "usb", - "hub" - ], + "class_list": ["usb", "hub"], "bus_type": { "hex": "0086", "name": "USB", @@ -1993,9 +1850,7 @@ }, "hotplug": "usb", "driver": "hub", - "drivers": [ - "hub" - ], + "drivers": ["hub"], "module_alias": "usb:v05E3p0608d8536dc09dsc00dp01ic09isc00ip00in00" } ], @@ -2003,10 +1858,7 @@ { "index": 72, "attached_to": 68, - "class_list": [ - "keyboard", - "usb" - ], + "class_list": ["keyboard", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -2095,12 +1947,8 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "keyboard", "xkb_rules": "xfree86", @@ -2111,10 +1959,7 @@ { "index": 74, "attached_to": 67, - "class_list": [ - "keyboard", - "usb" - ], + "class_list": ["keyboard", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -2205,12 +2050,8 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "keyboard", "xkb_rules": "xfree86", @@ -2221,10 +2062,7 @@ { "index": 78, "attached_to": 76, - "class_list": [ - "keyboard", - "usb" - ], + "class_list": ["keyboard", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -2301,12 +2139,8 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "keyboard", "xkb_rules": "xfree86", @@ -2317,10 +2151,7 @@ { "index": 79, "attached_to": 76, - "class_list": [ - "keyboard", - "usb" - ], + "class_list": ["keyboard", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -2410,12 +2241,8 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "keyboard", "xkb_rules": "xfree86", @@ -2426,10 +2253,7 @@ { "index": 83, "attached_to": 67, - "class_list": [ - "keyboard", - "usb" - ], + "class_list": ["keyboard", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -2506,12 +2330,8 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "keyboard", "xkb_rules": "xfree86", @@ -2524,9 +2344,7 @@ { "index": 19, "attached_to": 0, - "class_list": [ - "memory" - ], + "class_list": ["memory"], "base_class": { "hex": "0101", "name": "Internally Used Class", @@ -2558,9 +2376,7 @@ { "index": 45, "attached_to": 30, - "class_list": [ - "monitor" - ], + "class_list": ["monitor"], "base_class": { "hex": "0100", "name": "Monitor", @@ -2767,9 +2583,7 @@ { "index": 46, "attached_to": 30, - "class_list": [ - "monitor" - ], + "class_list": ["monitor"], "base_class": { "hex": "0100", "name": "Monitor", @@ -3004,9 +2818,7 @@ { "index": 47, "attached_to": 30, - "class_list": [ - "monitor" - ], + "class_list": ["monitor"], "base_class": { "hex": "0100", "name": "Monitor", @@ -3129,9 +2941,7 @@ { "index": 48, "attached_to": 30, - "class_list": [ - "monitor" - ], + "class_list": ["monitor"], "base_class": { "hex": "0100", "name": "Monitor", @@ -3348,10 +3158,7 @@ { "index": 53, "attached_to": 68, - "class_list": [ - "mouse", - "usb" - ], + "class_list": ["mouse", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -3397,9 +3204,7 @@ "minor": 63, "range": 1 }, - "unix_device_names": [ - "/dev/input/mice" - ], + "unix_device_names": ["/dev/input/mice"], "unix_device_name2": "/dev/input/mouse2", "unix_device_number2": { "type": 99, @@ -3446,18 +3251,11 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "mouse", - "db_entry_0": [ - "explorerps/2", - "exps2" - ], + "db_entry_0": ["explorerps/2", "exps2"], "xf86": "explorerps/2", "gpm": "exps2", "buttons": -1, @@ -3468,10 +3266,7 @@ { "index": 59, "attached_to": 67, - "class_list": [ - "mouse", - "usb" - ], + "class_list": ["mouse", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -3519,9 +3314,7 @@ "minor": 63, "range": 1 }, - "unix_device_names": [ - "/dev/input/mice" - ], + "unix_device_names": ["/dev/input/mice"], "unix_device_name2": "/dev/input/mouse1", "unix_device_number2": { "type": 99, @@ -3568,18 +3361,11 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "mouse", - "db_entry_0": [ - "explorerps/2", - "exps2" - ], + "db_entry_0": ["explorerps/2", "exps2"], "xf86": "explorerps/2", "gpm": "exps2", "buttons": -1, @@ -3590,10 +3376,7 @@ { "index": 63, "attached_to": 67, - "class_list": [ - "mouse", - "usb" - ], + "class_list": ["mouse", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -3672,18 +3455,11 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "mouse", - "db_entry_0": [ - "explorerps/2", - "exps2" - ], + "db_entry_0": ["explorerps/2", "exps2"], "xf86": "explorerps/2", "gpm": "exps2", "buttons": -1, @@ -3696,11 +3472,7 @@ { "index": 28, "attached_to": 0, - "class_list": [ - "network_controller", - "pci", - "wlan_card" - ], + "class_list": ["network_controller", "pci", "wlan_card"], "bus_type": { "hex": "0004", "name": "PCI", @@ -3746,9 +3518,7 @@ "sysfs_id": "/devices/pci0000:00/0000:00:14.3", "sysfs_bus_id": "0000:00:14.3", "unix_device_name": "wlo1", - "unix_device_names": [ - "wlo1" - ], + "unix_device_names": ["wlo1"], "resources": [ { "type": "hwaddr", @@ -3842,18 +3612,8 @@ "5.5", "5.52" ], - "auth_modes": [ - "open", - "sharedkey", - "wpa-psk", - "wpa-eap" - ], - "enc_modes": [ - "WEP40", - "WEP104", - "TKIP", - "CCMP" - ] + "auth_modes": ["open", "sharedkey", "wpa-psk", "wpa-eap"], + "enc_modes": ["WEP40", "WEP104", "TKIP", "CCMP"] } ], "detail": { @@ -3866,25 +3626,15 @@ }, "driver": "iwlwifi", "driver_module": "iwlwifi", - "drivers": [ - "iwlwifi" - ], - "driver_modules": [ - "iwlwifi" - ], + "drivers": ["iwlwifi"], + "driver_modules": ["iwlwifi"], "driver_info": { "type": "module", - "db_entry_0": [ - "iwlwifi" - ], + "db_entry_0": ["iwlwifi"], "active": true, "modprobe": true, - "names": [ - "iwlwifi" - ], - "module_args": [ - "" - ], + "names": ["iwlwifi"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v00008086d0000A370sv00008086sd00000034bc02sc80i00", @@ -3893,10 +3643,7 @@ { "index": 42, "attached_to": 0, - "class_list": [ - "network_controller", - "pci" - ], + "class_list": ["network_controller", "pci"], "bus_type": { "hex": "0004", "name": "PCI", @@ -3941,9 +3688,7 @@ "sysfs_id": "/devices/pci0000:00/0000:00:1f.6", "sysfs_bus_id": "0000:00:1f.6", "unix_device_name": "eno2", - "unix_device_names": [ - "eno2" - ], + "unix_device_names": ["eno2"], "resources": [ { "type": "hwaddr", @@ -3978,25 +3723,15 @@ }, "driver": "e1000e", "driver_module": "e1000e", - "drivers": [ - "e1000e" - ], - "driver_modules": [ - "e1000e" - ], + "drivers": ["e1000e"], + "driver_modules": ["e1000e"], "driver_info": { "type": "module", - "db_entry_0": [ - "e1000e" - ], + "db_entry_0": ["e1000e"], "active": true, "modprobe": true, - "names": [ - "e1000e" - ], - "module_args": [ - "" - ], + "names": ["e1000e"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v00008086d000015BCsv00001458sd0000E000bc02sc00i00", @@ -4007,9 +3742,7 @@ { "index": 90, "attached_to": 42, - "class_list": [ - "network_interface" - ], + "class_list": ["network_interface"], "base_class": { "hex": "0107", "name": "Network Interface", @@ -4024,9 +3757,7 @@ "sysfs_id": "/class/net/eno2", "sysfs_device_link": "/devices/pci0000:00/0000:00:1f.6", "unix_device_name": "eno2", - "unix_device_names": [ - "eno2" - ], + "unix_device_names": ["eno2"], "resources": [ { "type": "hwaddr", @@ -4039,19 +3770,13 @@ ], "driver": "e1000e", "driver_module": "e1000e", - "drivers": [ - "e1000e" - ], - "driver_modules": [ - "e1000e" - ] + "drivers": ["e1000e"], + "driver_modules": ["e1000e"] }, { "index": 91, "attached_to": 0, - "class_list": [ - "network_interface" - ], + "class_list": ["network_interface"], "base_class": { "hex": "0107", "name": "Network Interface", @@ -4065,16 +3790,12 @@ "model": "Loopback network interface", "sysfs_id": "/class/net/lo", "unix_device_name": "lo", - "unix_device_names": [ - "lo" - ] + "unix_device_names": ["lo"] }, { "index": 92, "attached_to": 28, - "class_list": [ - "network_interface" - ], + "class_list": ["network_interface"], "base_class": { "hex": "0107", "name": "Network Interface", @@ -4089,9 +3810,7 @@ "sysfs_id": "/class/net/wlo1", "sysfs_device_link": "/devices/pci0000:00/0000:00:14.3", "unix_device_name": "wlo1", - "unix_device_names": [ - "wlo1" - ], + "unix_device_names": ["wlo1"], "resources": [ { "type": "hwaddr", @@ -4104,22 +3823,15 @@ ], "driver": "iwlwifi", "driver_module": "iwlwifi", - "drivers": [ - "iwlwifi" - ], - "driver_modules": [ - "iwlwifi" - ] + "drivers": ["iwlwifi"], + "driver_modules": ["iwlwifi"] } ], "pci": [ { "index": 29, "attached_to": 0, - "class_list": [ - "pci", - "unknown" - ], + "class_list": ["pci", "unknown"], "bus_type": { "hex": "0004", "name": "PCI", @@ -4189,25 +3901,15 @@ }, "driver": "mei_me", "driver_module": "mei_me", - "drivers": [ - "mei_me" - ], - "driver_modules": [ - "mei_me" - ], + "drivers": ["mei_me"], + "driver_modules": ["mei_me"], "driver_info": { "type": "module", - "db_entry_0": [ - "mei_me" - ], + "db_entry_0": ["mei_me"], "active": true, "modprobe": true, - "names": [ - "mei_me" - ], - "module_args": [ - "" - ], + "names": ["mei_me"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v00008086d0000A360sv00001458sd00001C3Abc07sc80i00", @@ -4216,10 +3918,7 @@ { "index": 33, "attached_to": 0, - "class_list": [ - "pci", - "unknown" - ], + "class_list": ["pci", "unknown"], "bus_type": { "hex": "0004", "name": "PCI", @@ -4283,25 +3982,15 @@ }, "driver": "intel-spi", "driver_module": "spi_intel_pci", - "drivers": [ - "intel-spi" - ], - "driver_modules": [ - "spi_intel_pci" - ], + "drivers": ["intel-spi"], + "driver_modules": ["spi_intel_pci"], "driver_info": { "type": "module", - "db_entry_0": [ - "spi_intel_pci" - ], + "db_entry_0": ["spi_intel_pci"], "active": true, "modprobe": true, - "names": [ - "spi_intel_pci" - ], - "module_args": [ - "" - ], + "names": ["spi_intel_pci"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v00008086d0000A324sv00008086sd00007270bc0Csc80i00", @@ -4310,10 +3999,7 @@ { "index": 36, "attached_to": 0, - "class_list": [ - "pci", - "unknown" - ], + "class_list": ["pci", "unknown"], "bus_type": { "hex": "0004", "name": "PCI", @@ -4383,25 +4069,15 @@ }, "driver": "intel_pch_thermal", "driver_module": "intel_pch_thermal", - "drivers": [ - "intel_pch_thermal" - ], - "driver_modules": [ - "intel_pch_thermal" - ], + "drivers": ["intel_pch_thermal"], + "driver_modules": ["intel_pch_thermal"], "driver_info": { "type": "module", - "db_entry_0": [ - "intel_pch_thermal" - ], + "db_entry_0": ["intel_pch_thermal"], "active": true, "modprobe": true, - "names": [ - "intel_pch_thermal" - ], - "module_args": [ - "" - ], + "names": ["intel_pch_thermal"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v00008086d0000A379sv00001458sd00008888bc11sc80i00", @@ -4410,10 +4086,7 @@ { "index": 37, "attached_to": 25, - "class_list": [ - "pci", - "unknown" - ], + "class_list": ["pci", "unknown"], "bus_type": { "hex": "0004", "name": "PCI", @@ -4483,17 +4156,11 @@ }, "driver_info": { "type": "module", - "db_entry_0": [ - "i2c_nvidia_gpu" - ], + "db_entry_0": ["i2c_nvidia_gpu"], "active": false, "modprobe": true, - "names": [ - "i2c_nvidia_gpu" - ], - "module_args": [ - "" - ], + "names": ["i2c_nvidia_gpu"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v000010DEd00001AD9sv000010DEsd000013A1bc0Csc80i00" @@ -4501,10 +4168,7 @@ { "index": 41, "attached_to": 0, - "class_list": [ - "pci", - "unknown" - ], + "class_list": ["pci", "unknown"], "bus_type": { "hex": "0004", "name": "PCI", @@ -4581,10 +4245,7 @@ { "index": 44, "attached_to": 0, - "class_list": [ - "pci", - "unknown" - ], + "class_list": ["pci", "unknown"], "bus_type": { "hex": "0004", "name": "PCI", @@ -4661,25 +4322,15 @@ }, "driver": "i801_smbus", "driver_module": "i2c_i801", - "drivers": [ - "i801_smbus" - ], - "driver_modules": [ - "i2c_i801" - ], + "drivers": ["i801_smbus"], + "driver_modules": ["i2c_i801"], "driver_info": { "type": "module", - "db_entry_0": [ - "i2c_i801" - ], + "db_entry_0": ["i2c_i801"], "active": true, "modprobe": true, - "names": [ - "i2c_i801" - ], - "module_args": [ - "" - ], + "names": ["i2c_i801"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v00008086d0000A323sv00001458sd00005001bc0Csc05i00", @@ -4690,10 +4341,7 @@ { "index": 31, "attached_to": 38, - "class_list": [ - "sound", - "pci" - ], + "class_list": ["sound", "pci"], "bus_type": { "hex": "0004", "name": "PCI", @@ -4757,25 +4405,15 @@ }, "driver": "snd_oxygen", "driver_module": "snd_oxygen", - "drivers": [ - "snd_oxygen" - ], - "driver_modules": [ - "snd_oxygen" - ], + "drivers": ["snd_oxygen"], + "driver_modules": ["snd_oxygen"], "driver_info": { "type": "module", - "db_entry_0": [ - "snd_oxygen" - ], + "db_entry_0": ["snd_oxygen"], "active": true, "modprobe": true, - "names": [ - "snd_oxygen" - ], - "module_args": [ - "" - ], + "names": ["snd_oxygen"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v000013F6d00008788sv00001043sd00008521bc04sc01i00" @@ -4783,10 +4421,7 @@ { "index": 34, "attached_to": 0, - "class_list": [ - "sound", - "pci" - ], + "class_list": ["sound", "pci"], "bus_type": { "hex": "0004", "name": "PCI", @@ -4863,25 +4498,15 @@ }, "driver": "snd_hda_intel", "driver_module": "snd_hda_intel", - "drivers": [ - "snd_hda_intel" - ], - "driver_modules": [ - "snd_hda_intel" - ], + "drivers": ["snd_hda_intel"], + "driver_modules": ["snd_hda_intel"], "driver_info": { "type": "module", - "db_entry_0": [ - "snd_hda_intel" - ], + "db_entry_0": ["snd_hda_intel"], "active": true, "modprobe": true, - "names": [ - "snd_hda_intel" - ], - "module_args": [ - "" - ], + "names": ["snd_hda_intel"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v00008086d0000A348sv00001458sd0000A0C3bc04sc03i00", @@ -4890,10 +4515,7 @@ { "index": 40, "attached_to": 25, - "class_list": [ - "sound", - "pci" - ], + "class_list": ["sound", "pci"], "bus_type": { "hex": "0004", "name": "PCI", @@ -4963,25 +4585,15 @@ }, "driver": "snd_hda_intel", "driver_module": "snd_hda_intel", - "drivers": [ - "snd_hda_intel" - ], - "driver_modules": [ - "snd_hda_intel" - ], + "drivers": ["snd_hda_intel"], + "driver_modules": ["snd_hda_intel"], "driver_info": { "type": "module", - "db_entry_0": [ - "snd_hda_intel" - ], + "db_entry_0": ["snd_hda_intel"], "active": true, "modprobe": true, - "names": [ - "snd_hda_intel" - ], - "module_args": [ - "" - ], + "names": ["snd_hda_intel"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v000010DEd000010F8sv000010DEsd000013A1bc04sc03i00" @@ -4989,10 +4601,7 @@ { "index": 55, "attached_to": 68, - "class_list": [ - "sound", - "usb" - ], + "class_list": ["sound", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -5070,25 +4679,15 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "driver_info": { "type": "module", - "db_entry_0": [ - "snd_usb_audio" - ], + "db_entry_0": ["snd_usb_audio"], "active": true, "modprobe": true, - "names": [ - "snd_usb_audio" - ], - "module_args": [ - "" - ], + "names": ["snd_usb_audio"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v046Dp0AAAd0031dc00dsc00dp00ic01isc01ip00in00" @@ -5096,10 +4695,7 @@ { "index": 65, "attached_to": 76, - "class_list": [ - "sound", - "usb" - ], + "class_list": ["sound", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -5176,21 +4772,14 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "module_alias": "usb:v1852p7022d0001dc00dsc00dp00ic01isc02ip00in02" }, { "index": 66, "attached_to": 76, - "class_list": [ - "sound", - "usb" - ], + "class_list": ["sound", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -5268,21 +4857,14 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "module_alias": "usb:vB58Ep9E84d0100dc00dsc00dp00ic01isc02ip00in01" }, { "index": 69, "attached_to": 68, - "class_list": [ - "sound", - "usb" - ], + "class_list": ["sound", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -5360,21 +4942,14 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "module_alias": "usb:v046Dp0AAAd0031dc00dsc00dp00ic01isc02ip00in01" }, { "index": 81, "attached_to": 76, - "class_list": [ - "sound", - "usb" - ], + "class_list": ["sound", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -5451,21 +5026,14 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "module_alias": "usb:v1852p7022d0001dc00dsc00dp00ic01isc02ip00in03" }, { "index": 82, "attached_to": 76, - "class_list": [ - "sound", - "usb" - ], + "class_list": ["sound", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -5543,21 +5111,14 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "module_alias": "usb:vB58Ep9E84d0100dc00dsc00dp00ic01isc02ip00in02" }, { "index": 84, "attached_to": 68, - "class_list": [ - "sound", - "usb" - ], + "class_list": ["sound", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -5635,21 +5196,14 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "module_alias": "usb:v046Dp0AAAd0031dc00dsc00dp00ic01isc02ip00in02" }, { "index": 85, "attached_to": 76, - "class_list": [ - "sound", - "usb" - ], + "class_list": ["sound", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -5726,25 +5280,15 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "driver_info": { "type": "module", - "db_entry_0": [ - "snd_usb_audio" - ], + "db_entry_0": ["snd_usb_audio"], "active": true, "modprobe": true, - "names": [ - "snd_usb_audio" - ], - "module_args": [ - "" - ], + "names": ["snd_usb_audio"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v1852p7022d0001dc00dsc00dp00ic01isc01ip00in01" @@ -5752,10 +5296,7 @@ { "index": 88, "attached_to": 76, - "class_list": [ - "sound", - "usb" - ], + "class_list": ["sound", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -5833,25 +5374,15 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "driver_info": { "type": "module", - "db_entry_0": [ - "snd_usb_audio" - ], + "db_entry_0": ["snd_usb_audio"], "active": true, "modprobe": true, - "names": [ - "snd_usb_audio" - ], - "module_args": [ - "" - ], + "names": ["snd_usb_audio"], + "module_args": [""], "conf": "" }, "module_alias": "usb:vB58Ep9E84d0100dc00dsc00dp00ic01isc01ip00in00" @@ -5861,10 +5392,7 @@ { "index": 20, "attached_to": 24, - "class_list": [ - "storage_controller", - "pci" - ], + "class_list": ["storage_controller", "pci"], "bus_type": { "hex": "0004", "name": "PCI", @@ -5932,25 +5460,15 @@ }, "driver": "nvme", "driver_module": "nvme", - "drivers": [ - "nvme" - ], - "driver_modules": [ - "nvme" - ], + "drivers": ["nvme"], + "driver_modules": ["nvme"], "driver_info": { "type": "module", - "db_entry_0": [ - "nvme" - ], + "db_entry_0": ["nvme"], "active": true, "modprobe": true, - "names": [ - "nvme" - ], - "module_args": [ - "" - ], + "names": ["nvme"], + "module_args": [""], "conf": "" }, "module_alias": "pci:v0000144Dd0000A808sv0000144Dsd0000A801bc01sc08i02" @@ -5958,10 +5476,7 @@ { "index": 21, "attached_to": 0, - "class_list": [ - "storage_controller", - "pci" - ], + "class_list": ["storage_controller", "pci"], "bus_type": { "hex": "0004", "name": "PCI", @@ -6070,9 +5585,7 @@ "prog_if": 1 }, "driver": "ahci", - "drivers": [ - "ahci" - ], + "drivers": ["ahci"], "module_alias": "pci:v00008086d0000A352sv00001458sd0000B005bc01sc06i01", "label": "Onboard - SATA" } @@ -6084,10 +5597,7 @@ { "index": 54, "attached_to": 67, - "class_list": [ - "tv_card", - "usb" - ], + "class_list": ["tv_card", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -6175,25 +5685,15 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "driver_info": { "type": "module", - "db_entry_0": [ - "gspca_vc032x" - ], + "db_entry_0": ["gspca_vc032x"], "active": true, "modprobe": true, - "names": [ - "gspca_vc032x" - ], - "module_args": [ - "" - ], + "names": ["gspca_vc032x"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v046Dp0892d0019dcEFdsc02dp01ic01isc02ip00in03" @@ -6201,10 +5701,7 @@ { "index": 57, "attached_to": 67, - "class_list": [ - "tv_card", - "usb" - ], + "class_list": ["tv_card", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -6292,25 +5789,15 @@ "hotplug": "usb", "driver": "uvcvideo", "driver_module": "uvcvideo", - "drivers": [ - "uvcvideo" - ], - "driver_modules": [ - "uvcvideo" - ], + "drivers": ["uvcvideo"], + "driver_modules": ["uvcvideo"], "driver_info": { "type": "module", - "db_entry_0": [ - "gspca_vc032x" - ], + "db_entry_0": ["gspca_vc032x"], "active": true, "modprobe": true, - "names": [ - "gspca_vc032x" - ], - "module_args": [ - "" - ], + "names": ["gspca_vc032x"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v046Dp0892d0019dcEFdsc02dp01ic0Eisc02ip00in01" @@ -6318,10 +5805,7 @@ { "index": 73, "attached_to": 67, - "class_list": [ - "tv_card", - "usb" - ], + "class_list": ["tv_card", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -6409,25 +5893,15 @@ "hotplug": "usb", "driver": "snd-usb-audio", "driver_module": "snd_usb_audio", - "drivers": [ - "snd-usb-audio" - ], - "driver_modules": [ - "snd_usb_audio" - ], + "drivers": ["snd-usb-audio"], + "driver_modules": ["snd_usb_audio"], "driver_info": { "type": "module", - "db_entry_0": [ - "gspca_vc032x" - ], + "db_entry_0": ["gspca_vc032x"], "active": true, "modprobe": true, - "names": [ - "gspca_vc032x" - ], - "module_args": [ - "" - ], + "names": ["gspca_vc032x"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v046Dp0892d0019dcEFdsc02dp01ic01isc01ip00in02" @@ -6435,10 +5909,7 @@ { "index": 75, "attached_to": 67, - "class_list": [ - "tv_card", - "usb" - ], + "class_list": ["tv_card", "usb"], "bus_type": { "hex": "0086", "name": "USB", @@ -6526,25 +5997,15 @@ "hotplug": "usb", "driver": "uvcvideo", "driver_module": "uvcvideo", - "drivers": [ - "uvcvideo" - ], - "driver_modules": [ - "uvcvideo" - ], + "drivers": ["uvcvideo"], + "driver_modules": ["uvcvideo"], "driver_info": { "type": "module", - "db_entry_0": [ - "gspca_vc032x" - ], + "db_entry_0": ["gspca_vc032x"], "active": true, "modprobe": true, - "names": [ - "gspca_vc032x" - ], - "module_args": [ - "" - ], + "names": ["gspca_vc032x"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v046Dp0892d0019dcEFdsc02dp01ic0Eisc01ip00in00" @@ -6554,9 +6015,7 @@ { "index": 49, "attached_to": 0, - "class_list": [ - "unknown" - ], + "class_list": ["unknown"], "base_class": { "hex": "0007", "name": "Communication controller", @@ -6579,9 +6038,7 @@ }, "model": "16550A", "unix_device_name": "/dev/ttyS0", - "unix_device_names": [ - "/dev/ttyS0" - ], + "unix_device_names": ["/dev/ttyS0"], "resources": [ { "type": "io", @@ -6603,10 +6060,7 @@ { "index": 56, "attached_to": 67, - "class_list": [ - "usb", - "unknown" - ], + "class_list": ["usb", "unknown"], "bus_type": { "hex": "0086", "name": "USB", @@ -6684,25 +6138,15 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "module", - "db_entry_0": [ - "usbhid" - ], + "db_entry_0": ["usbhid"], "active": true, "modprobe": true, - "names": [ - "usbhid" - ], - "module_args": [ - "" - ], + "names": ["usbhid"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v046DpC08Dd1700dc00dsc00dp00ic03isc00ip00in02" @@ -6710,10 +6154,7 @@ { "index": 58, "attached_to": 76, - "class_list": [ - "usb", - "unknown" - ], + "class_list": ["usb", "unknown"], "bus_type": { "hex": "0086", "name": "USB", @@ -6803,25 +6244,15 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "module", - "db_entry_0": [ - "usbhid" - ], + "db_entry_0": ["usbhid"], "active": true, "modprobe": true, - "names": [ - "usbhid" - ], - "module_args": [ - "" - ], + "names": ["usbhid"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v3297p4975d0001dc00dsc00dp00ic03isc00ip00in01" @@ -6829,10 +6260,7 @@ { "index": 62, "attached_to": 76, - "class_list": [ - "usb", - "unknown" - ], + "class_list": ["usb", "unknown"], "bus_type": { "hex": "0086", "name": "USB", @@ -6923,25 +6351,15 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "module", - "db_entry_0": [ - "usbhid" - ], + "db_entry_0": ["usbhid"], "active": true, "modprobe": true, - "names": [ - "usbhid" - ], - "module_args": [ - "" - ], + "names": ["usbhid"], + "module_args": [""], "conf": "" }, "module_alias": "usb:vB58Ep9E84d0100dc00dsc00dp00ic03isc00ip00in03" @@ -6949,10 +6367,7 @@ { "index": 64, "attached_to": 68, - "class_list": [ - "usb", - "unknown" - ], + "class_list": ["usb", "unknown"], "bus_type": { "hex": "0086", "name": "USB", @@ -7043,25 +6458,15 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "module", - "db_entry_0": [ - "usbhid" - ], + "db_entry_0": ["usbhid"], "active": true, "modprobe": true, - "names": [ - "usbhid" - ], - "module_args": [ - "" - ], + "names": ["usbhid"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v046Dp0AAAd0031dc00dsc00dp00ic03isc00ip00in03" @@ -7069,10 +6474,7 @@ { "index": 70, "attached_to": 76, - "class_list": [ - "usb", - "unknown" - ], + "class_list": ["usb", "unknown"], "bus_type": { "hex": "0086", "name": "USB", @@ -7162,25 +6564,15 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "module", - "db_entry_0": [ - "usbhid" - ], + "db_entry_0": ["usbhid"], "active": true, "modprobe": true, - "names": [ - "usbhid" - ], - "module_args": [ - "" - ], + "names": ["usbhid"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v1852p7022d0001dc00dsc00dp00ic03isc00ip00in00" @@ -7188,10 +6580,7 @@ { "index": 80, "attached_to": 67, - "class_list": [ - "usb", - "unknown" - ], + "class_list": ["usb", "unknown"], "bus_type": { "hex": "0086", "name": "USB", @@ -7268,25 +6657,15 @@ "hotplug": "usb", "driver": "usbhid", "driver_module": "usbhid", - "drivers": [ - "usbhid" - ], - "driver_modules": [ - "usbhid" - ], + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], "driver_info": { "type": "module", - "db_entry_0": [ - "usbhid" - ], + "db_entry_0": ["usbhid"], "active": true, "modprobe": true, - "names": [ - "usbhid" - ], - "module_args": [ - "" - ], + "names": ["usbhid"], + "module_args": [""], "conf": "" }, "module_alias": "usb:v046DpC539d3904dc00dsc00dp00ic03isc00ip00in02" @@ -7296,10 +6675,7 @@ { "index": 27, "attached_to": 25, - "class_list": [ - "usb_controller", - "pci" - ], + "class_list": ["usb_controller", "pci"], "bus_type": { "hex": "0004", "name": "PCI", @@ -7381,18 +6757,13 @@ "prog_if": 48 }, "driver": "xhci_hcd", - "drivers": [ - "xhci_hcd" - ], + "drivers": ["xhci_hcd"], "module_alias": "pci:v000010DEd00001AD8sv000010DEsd000013A1bc0Csc03i30" }, { "index": 43, "attached_to": 0, - "class_list": [ - "usb_controller", - "pci" - ], + "class_list": ["usb_controller", "pci"], "bus_type": { "hex": "0004", "name": "PCI", @@ -7465,9 +6836,7 @@ "prog_if": 48 }, "driver": "xhci_hcd", - "drivers": [ - "xhci_hcd" - ], + "drivers": ["xhci_hcd"], "module_alias": "pci:v00008086d0000A36Dsv00001458sd00005007bc0Csc03i30", "label": "Onboard - Other" } @@ -7510,10 +6879,7 @@ "name": "Motherboard", "value": 10 }, - "features": [ - "Hosting Board", - "Replaceable" - ], + "features": ["Hosting Board", "Replaceable"], "location": "Default string", "chassis": 3 }, @@ -7552,12 +6918,8 @@ "name": "8-way Set-Associative", "value": 7 }, - "sram_type_current": [ - "Synchronous" - ], - "sram_type_supported": [ - "Synchronous" - ] + "sram_type_current": ["Synchronous"], + "sram_type_supported": ["Synchronous"] }, { "handle": 69, @@ -7593,12 +6955,8 @@ "name": "4-way Set-Associative", "value": 5 }, - "sram_type_current": [ - "Synchronous" - ], - "sram_type_supported": [ - "Synchronous" - ] + "sram_type_current": ["Synchronous"], + "sram_type_supported": ["Synchronous"] }, { "handle": 70, @@ -7634,12 +6992,8 @@ "name": "16-way Set-Associative", "value": 8 }, - "sram_type_current": [ - "Synchronous" - ], - "sram_type_supported": [ - "Synchronous" - ] + "sram_type_current": ["Synchronous"], + "sram_type_supported": ["Synchronous"] } ], "chassis": { @@ -7676,28 +7030,18 @@ }, "config": { "handle": 35, - "options": [ - "Default string" - ] + "options": ["Default string"] }, "group_associations": [ { "handle": 92, "name": "Firmware Version Info", - "handles": [ - 279172874304, - 283467841601, - 287762808898, - 386547056707, - 90 - ] + "handles": [279172874304, 283467841601, 287762808898, 386547056707, 90] }, { "handle": 93, "name": "$MEI", - "handles": [ - 0 - ] + "handles": [0] } ], "language": [ @@ -7777,9 +7121,7 @@ "name": "Other", "value": 26 }, - "memory_type_details": [ - "Synchronous" - ], + "memory_type_details": ["Synchronous"], "speed": 2133 }, { @@ -7804,9 +7146,7 @@ "name": "Other", "value": 26 }, - "memory_type_details": [ - "Synchronous" - ], + "memory_type_details": ["Synchronous"], "speed": 2133 }, { @@ -7831,9 +7171,7 @@ "name": "Other", "value": 26 }, - "memory_type_details": [ - "Synchronous" - ], + "memory_type_details": ["Synchronous"], "speed": 2133 }, { @@ -7858,9 +7196,7 @@ "name": "Other", "value": 26 }, - "memory_type_details": [ - "Synchronous" - ], + "memory_type_details": ["Synchronous"], "speed": 2133 } ], @@ -8328,11 +7664,7 @@ "value": 4 }, "id": 0, - "features": [ - "3.3 V", - "Shared", - "PME#" - ] + "features": ["3.3 V", "Shared", "PME#"] }, { "handle": 29, @@ -8358,11 +7690,7 @@ "value": 3 }, "id": 1, - "features": [ - "3.3 V", - "Shared", - "PME#" - ] + "features": ["3.3 V", "Shared", "PME#"] }, { "handle": 30, @@ -8388,11 +7716,7 @@ "value": 3 }, "id": 2, - "features": [ - "3.3 V", - "Shared", - "PME#" - ] + "features": ["3.3 V", "Shared", "PME#"] }, { "handle": 31, @@ -8418,11 +7742,7 @@ "value": 3 }, "id": 3, - "features": [ - "3.3 V", - "Shared", - "PME#" - ] + "features": ["3.3 V", "Shared", "PME#"] }, { "handle": 32, @@ -8448,11 +7768,7 @@ "value": 3 }, "id": 4, - "features": [ - "3.3 V", - "Shared", - "PME#" - ] + "features": ["3.3 V", "Shared", "PME#"] } ], "system": { @@ -8467,4 +7783,4 @@ } } } -} \ No newline at end of file +} diff --git a/parts/hosts/desktop/monitors.nix b/parts/hosts/desktop/monitors.nix index 33e6a6d..b64640d 100644 --- a/parts/hosts/desktop/monitors.nix +++ b/parts/hosts/desktop/monitors.nix @@ -1,5 +1,4 @@ _: { - # monitor=DP-1,1920x1080@60,2880x0,auto monitors = [ { name = "DP-2"; diff --git a/parts/hosts/laptop/configuration.nix b/parts/hosts/laptop/configuration.nix index e7bed8f..e436ccf 100644 --- a/parts/hosts/laptop/configuration.nix +++ b/parts/hosts/laptop/configuration.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: { +{pkgs, ...}: { # Enable OpenGL hardware.graphics = { enable = true; diff --git a/parts/modules/apps/firefox.nix b/parts/modules/apps/firefox.nix index 6ff63b3..576269c 100644 --- a/parts/modules/apps/firefox.nix +++ b/parts/modules/apps/firefox.nix @@ -1,3 +1,49 @@ -_: { - programs.firefox.enable = true; +{ + pkgsUnstable, + inputs, + pkgs, + ... +}: let + nur = inputs.nur.legacyPackages.${pkgs.system}; + extensions = nur.repos.rycee.firefox-addons; +in { + programs.firefox = { + enable = true; + package = pkgsUnstable.firefox; + }; + + fireproof.home-manager = { + programs.firefox = { + enable = true; + package = pkgsUnstable.firefox; + profiles.default = { + extensions = with extensions; [ + # Privacy + ublock-origin + clearurls + libredirect + + # Security + bitwarden + + # Media + dearrow + sponsorblock + + # Search + kagi-search + + # Productivity + new-tab-override + + # Social + reddit-enhancement-suite + ]; + + settings = { + "browser.startup.homepage" = "https://flame.nickolaj.com"; + }; + }; + }; + }; } diff --git a/parts/modules/apps/vscode.nix b/parts/modules/apps/vscode.nix index ba7c6f4..f1e85e2 100644 --- a/parts/modules/apps/vscode.nix +++ b/parts/modules/apps/vscode.nix @@ -14,8 +14,8 @@ mkFormatter = formatter: languages: { "[${lib.concatStringsSep "][" languages}]" = { - editor.defaultFormatter = formatter; - editor.formatOnSave = true; + "editor.defaultFormatter" = formatter; + "editor.formatOnSave" = true; }; }; in { @@ -28,20 +28,28 @@ in { userSettings = lib.mkMerge [ { # General - extensions.ignoreRecommendations = true; + "extensions.ignoreRecommendations" = true; # Remote - remote.SSH.useLocalServer = false; + "remote.SSH.useLocalServer" = false; # AI - github.copilot.editor.enableAutoCompletions = true; - github.copilot.enable."*" = true; + "github.copilot.editor.enableAutoCompletions" = true; + "github.copilot.enable" = {"*" = true;}; # Theme - workbench.colorTheme = "Darcula Theme from IntelliJ"; + "workbench.colorTheme" = "Darcula Theme from IntelliJ"; # Keybindings - workbench.commandPalette.experimental.suggestCommands = true; # Emulates IntelliJ's "Search Everywhere" + "workbench.commandPalette.experimental.suggestCommands" = true; # Emulates IntelliJ's "Search Everywhere" + + # nix-ide + "nix.enableLanguageServer" = true; + "nix.serverPath" = lib.getExe pkgs.nil; + + "nix.serverSettings" = { + nil.formatting.command = ["nix" "fmt" "--" "--"]; + }; } (mkFormatter "esbenp.prettier-vscode" ["json" "jsonc" "markdown" "css" "scss" "typescript" "typescriptreact" "html" "yaml"]) (mkFormatter "charliermarsh.ruff" ["python"]) diff --git a/parts/modules/base/ld.nix b/parts/modules/base/ld.nix new file mode 100644 index 0000000..7b5d34f --- /dev/null +++ b/parts/modules/base/ld.nix @@ -0,0 +1,3 @@ +_: { + programs.nix-ld.enable = true; +} \ No newline at end of file diff --git a/parts/modules/base/ssh.nix b/parts/modules/base/ssh.nix index c328fdd..49cfa97 100644 --- a/parts/modules/base/ssh.nix +++ b/parts/modules/base/ssh.nix @@ -32,7 +32,8 @@ in { user = "nij"; identityFile = "${config.age.secrets.ssh-key-ao.path}"; }; - "dev.ao,scw.ao".proxyJump = "bastion.ao"; + "dev.ao".proxyJump = "bastion.ao"; + "scw.ao".proxyJump = "bastion.ao"; "clickhouse.ao".user = "ubuntu"; "flex.ao" = { hostname = "192.168.2.5"; diff --git a/parts/modules/base/time.nix b/parts/modules/base/time.nix new file mode 100644 index 0000000..42a4416 --- /dev/null +++ b/parts/modules/base/time.nix @@ -0,0 +1,3 @@ +_: { + time.timeZone = "Europe/Copenhagen"; +} \ No newline at end of file diff --git a/parts/modules/desktop/astal/default.nix b/parts/modules/desktop/astal/default.nix index 372b751..62531ed 100644 --- a/parts/modules/desktop/astal/default.nix +++ b/parts/modules/desktop/astal/default.nix @@ -5,6 +5,11 @@ config, ... }: let + primaryMonitorName = + if builtins.length config.monitors > 0 + then (builtins.elemAt config.monitors 0).name + else ""; + packageName = "fireproof-shell"; cfg = config.modules.astral; package = inputs.ags.lib.bundle { @@ -27,9 +32,9 @@ in { options = { modules.astral.primaryMonitor = lib.mkOption { - type = lib.types.string; - default = ""; - example = "M27Q"; + type = lib.types.str; + default = primaryMonitorName; + example = "DP-1"; }; modules.astral.notificationIgnores = lib.mkOption { type = lib.types.listOf lib.types.str; @@ -44,32 +49,32 @@ in { }; config = { - environment.systemPackages = [package inputs.ags.packages.${pkgs.system}.agsFull]; + environment.systemPackages = [package inputs.ags.packages.${pkgs.system}.agsFull]; - fireproof.home-manager = { - systemd.user.services.astal = { - Unit = { - Description = "Astal"; - Documentation = "https://github.com/Aylur/astal"; - After = ["graphical-session.target"]; - }; + fireproof.home-manager = { + systemd.user.services.astal = { + Unit = { + Description = "Astal"; + Documentation = "https://github.com/Aylur/astal"; + After = ["graphical-session.target"]; + }; - Service = { - ExecStart = "${package}/bin/${packageName}"; - Restart = "on-failure"; - KillMode = "mixed"; - Slice = "app-graphical.slice"; - DefaultEnvironment = '' - ASTRAL_PRIMARY_MONITOR=${cfg.primaryMonitor} - ASTRAL_NOTIFICATION_IGNORE=${lib.concatStringsSep "," cfg.notificationIgnores} - ASTRAL_TRAY_IGNORE=${lib.concatStringsSep "," cfg.trayIgnore} - ''; - }; + Service = { + ExecStart = "${package}/bin/${packageName}"; + Restart = "on-failure"; + KillMode = "mixed"; + Slice = "app-graphical.slice"; + Environment = [ + "ASTRAL_PRIMARY_MONITOR=${cfg.primaryMonitor}" + "ASTRAL_NOTIFICATION_IGNORE=${lib.concatStringsSep "," cfg.notificationIgnores}" + "ASTRAL_TRAY_IGNORE=${lib.concatStringsSep "," cfg.trayIgnore}" + ]; + }; - Install = { - WantedBy = ["graphical-session.target"]; + Install = { + WantedBy = ["graphical-session.target"]; + }; }; }; }; -}; -} \ No newline at end of file +} diff --git a/parts/modules/desktop/astal/src/config.ts b/parts/modules/desktop/astal/src/config.ts index 432803b..c0b5186 100644 --- a/parts/modules/desktop/astal/src/config.ts +++ b/parts/modules/desktop/astal/src/config.ts @@ -1,4 +1,4 @@ -import GLib from "gi://GLib" +import GLib from "gi://GLib"; type ignoreFn = (test: string) => boolean; @@ -18,7 +18,7 @@ const envArray = (name: string): string[] => { const value = GLib.getenv(name); if (!value) return []; return value.split(","); -} +}; const envIgnoreArray = (name: string): ignoreFn[] => { return envArray(name).map((r: string) => { @@ -27,7 +27,7 @@ const envIgnoreArray = (name: string): ignoreFn[] => { } return (test: string) => test === r; }); -} +}; export default { monitor: { diff --git a/parts/modules/desktop/astal/src/utils/monitors.ts b/parts/modules/desktop/astal/src/utils/monitors.ts index daa9170..4bb9a9c 100644 --- a/parts/modules/desktop/astal/src/utils/monitors.ts +++ b/parts/modules/desktop/astal/src/utils/monitors.ts @@ -12,12 +12,13 @@ export const getMonitors = (): { } => { const scanFn = [ // Monitor in config - (monitor: Gdk.Monitor) => config.monitor.main === monitor.get_model(), + (monitor: Gdk.Monitor) => config.monitor.main === monitor.get_connector(), // First monitor () => true, ]; const monitors = App.get_monitors(); + console.log("config.monitor.main", config.monitor.main); const main = scanFn.map((fn) => monitors.find(fn)).find((m) => m) || monitors[0]; const secondary = monitors diff --git a/parts/modules/desktop/gtk/default.nix b/parts/modules/desktop/gtk/default.nix new file mode 100644 index 0000000..d09882b --- /dev/null +++ b/parts/modules/desktop/gtk/default.nix @@ -0,0 +1,28 @@ +{ + pkgs, + ... +}: { + environment.systemPackages = with pkgs; [ + nautilus + ]; + + fireproof.home-manager = { + home.pointerCursor = { + gtk.enable = true; + name = "Adwaita"; + package = pkgs.adwaita-icon-theme; + size = 24; + }; + + gtk = { + enable = true; + theme = { + name = "adw-gtk3-dark"; + package = pkgs.adw-gtk3; + }; + + gtk4.extraCss = builtins.readFile ./theme.css; + gtk3.extraCss = builtins.readFile ./theme.css; + }; + }; +} diff --git a/parts/modules/desktop/gtk/theme.css b/parts/modules/desktop/gtk/theme.css new file mode 100644 index 0000000..e69de29 diff --git a/parts/modules/desktop/hyprland/default.nix b/parts/modules/desktop/hyprland/default.nix index 2b32181..122c400 100644 --- a/parts/modules/desktop/hyprland/default.nix +++ b/parts/modules/desktop/hyprland/default.nix @@ -1,15 +1,27 @@ { lib, config, + pkgs, ... }: with lib; let cfg = config.fireproof; + primaryMonitorName = + if builtins.length config.monitors > 0 + then (builtins.elemAt config.monitors 0).name + else ""; + + + mkKeyboard = name: { inherit name; kb_layout = "eu"; }; in { + imports = [ + ./hyprpolkitagent.nix + ]; + config = { programs.uwsm.enable = true; programs.hyprland = { @@ -29,6 +41,9 @@ in { }; environment.sessionVariables.NIXOS_OZONE_WL = "1"; + environment.systemPackages = with pkgs; [ + hyprcursor + ]; fireproof.home-manager = { wayland.windowManager.hyprland = { @@ -37,6 +52,10 @@ in { systemd.enable = false; # Conficts with UWSM settings = { + env = [ + "HYPRCURSOR_THEME,Adwaita" + "HYPRCURSOR_SIZE,24" + ]; monitor = map ( m: let @@ -71,8 +90,28 @@ in { touchpad = { natural_scroll = false; }; + + sensitivity = 0; + accel_profile = "flat"; }; + workspace = + if primaryMonitorName != "" + then [ + "1, monitor:${primaryMonitorName}, persistent:true, default:true" + "2, monitor:${primaryMonitorName}, persistent:true" + "3, monitor:${primaryMonitorName}, persistent:true" + "4, monitor:${primaryMonitorName}, persistent:true" + "5, monitor:${primaryMonitorName}, persistent:true" + ] + else [ + "1, persistent:true, default:true" + "2, persistent:true" + "3, persistent:true" + "4, persistent:true" + "5, persistent:true" + ]; + # Names can be found with: # $ hyprctl devices -j | jq '.["keyboards"].[].name' -r | grep -vE "(system|consumer)-control" device = map mkKeyboard [ diff --git a/parts/modules/dev/docker.nix b/parts/modules/dev/docker.nix new file mode 100644 index 0000000..c5a51cb --- /dev/null +++ b/parts/modules/dev/docker.nix @@ -0,0 +1,10 @@ +{username, pkgs, ...}: { + environment.systemPackages = [ + pkgs.docker + pkgs.docker-compose + ]; + + virtualisation.docker.enable = true; + virtualisation.docker.storageDriver = "btrfs"; + users.extraGroups.docker.members = [username]; +} \ No newline at end of file diff --git a/parts/modules/dev/k8s.nix b/parts/modules/dev/k8s.nix new file mode 100644 index 0000000..52a5e9d --- /dev/null +++ b/parts/modules/dev/k8s.nix @@ -0,0 +1,25 @@ +{pkgs, username, config, ...}: { + environment.systemPackages = [ + pkgs.kubectl + ]; + + age.secrets.k8s-ao-dev = { + rekeyFile = ../../../secrets/k8s/ao-dev.age; + path = "/home/${username}/.kube/config.ao-dev"; + mode = "0600"; + owner = username; + }; + + age.secrets.k8s-ao-prod = { + rekeyFile = ../../../secrets/k8s/ao-prod.age; + path = "/home/${username}/.kube/config.ao-prod"; + mode = "0600"; + owner = username; + }; + + fireproof.home-manager = { + home.sessionVariables = { + KUBECONFIG = "${config.age.secrets.k8s-ao-dev.path}:${config.age.secrets.k8s-ao-prod.path}:$HOME/.kube/config"; + }; + }; +} \ No newline at end of file diff --git a/parts/modules/dev/python.nix b/parts/modules/dev/python.nix index e89d748..65830ee 100644 --- a/parts/modules/dev/python.nix +++ b/parts/modules/dev/python.nix @@ -5,6 +5,14 @@ }: { environment.systemPackages = [ pkgsUnstable.uv + pkgsUnstable.rye pkgs.python3 ]; + + # uv tool adds executable to $HOME/.local/bin, so add it to PATH + fireproof.home-manager = { + home.sessionPath = [ + "$HOME/.local/bin" + ]; + }; } diff --git a/parts/modules/dev/tilt.nix b/parts/modules/dev/tilt.nix new file mode 100644 index 0000000..d4daa95 --- /dev/null +++ b/parts/modules/dev/tilt.nix @@ -0,0 +1,5 @@ +{pkgsUnstable, ...}: { + environment.systemPackages = [ + pkgsUnstable.tilt + ]; +} diff --git a/parts/modules/devenv.nix b/parts/modules/devenv.nix index 20ea3e0..42165ad 100644 --- a/parts/modules/devenv.nix +++ b/parts/modules/devenv.nix @@ -3,5 +3,8 @@ ./apps/pycharm.nix ./apps/vscode.nix ./dev/python.nix + ./dev/k8s.nix + ./dev/docker.nix + ./dev/tilt.nix ]; } diff --git a/parts/modules/graphical.nix b/parts/modules/graphical.nix index 948003b..6a541e1 100644 --- a/parts/modules/graphical.nix +++ b/parts/modules/graphical.nix @@ -5,9 +5,9 @@ ./desktop/fonts.nix ./desktop/greetd.nix ./desktop/hyprland/default.nix - ./desktop/hyprland/hyprpolkitagent.nix ./desktop/astal/default.nix ./desktop/walker/default.nix + ./desktop/gtk/default.nix ./apps/firefox.nix ./apps/ghostty.nix ]; diff --git a/parts/modules/hardware/monitors.nix b/parts/modules/hardware/monitors.nix index 45af05c..629d5e2 100644 --- a/parts/modules/hardware/monitors.nix +++ b/parts/modules/hardware/monitors.nix @@ -37,6 +37,6 @@ }; }; }); - default = [{}]; + default = []; }; } diff --git a/parts/modules/hardware/yubikey.nix b/parts/modules/hardware/yubikey.nix index 519fb9b..ad5ccff 100644 --- a/parts/modules/hardware/yubikey.nix +++ b/parts/modules/hardware/yubikey.nix @@ -1,3 +1,3 @@ _: { services.pcscd.enable = true; -} \ No newline at end of file +} diff --git a/parts/modules/required.nix b/parts/modules/required.nix index df4815a..d0ddfa1 100644 --- a/parts/modules/required.nix +++ b/parts/modules/required.nix @@ -5,6 +5,8 @@ ./base/security.nix ./base/secrets.nix ./base/boot.nix + ./base/ld.nix + ./base/time.nix ./base/ssh.nix ./base/default-apps.nix ./dev/just.nix diff --git a/parts/modules/shell/fish/default.nix b/parts/modules/shell/fish/default.nix index 318d6f3..2f308a9 100644 --- a/parts/modules/shell/fish/default.nix +++ b/parts/modules/shell/fish/default.nix @@ -15,6 +15,7 @@ shellInit = '' ${builtins.readFile ./theme.fish} + ${builtins.readFile ./k8s.fish} ''; plugins = [ diff --git a/parts/modules/shell/fish/k8s.fish b/parts/modules/shell/fish/k8s.fish new file mode 100644 index 0000000..563be51 --- /dev/null +++ b/parts/modules/shell/fish/k8s.fish @@ -0,0 +1,63 @@ +set __kube_verbs get describe delete edit +set __kube_verbs_short g d rm e +set __kube_resource pods deployments services ingresses configmaps daemonsets statefulsets namespace namespace +set __kube_resource_short p d s i c ds ss n ns + +function __echo_kubeexec; + set _flag_namespace (kubectl config view --minify --output 'jsonpath={..namespace}') + if test -z "$_flag_namespace" + set _flag_namespace default + end + + set _flag_pod shop + set POD (kubectl get pods --namespace $_flag_namespace 2>/dev/null | grep "^$_flag_pod" | grep Running | head -n1 | awk '{ print $1 }') + if test -z "$POD" + echo "kubectl exec --namespace $_flag_namespace -it" + return + end + echo "kubectl exec --namespace $_flag_namespace -it $POD --" +end + +function __echo_kubemanage; + set _flag_namespace (kubectl config view --minify --output 'jsonpath={..namespace}') + if test -z "$_flag_namespace" + set _flag_namespace default + end + + set _flag_pod shop + set POD (kubectl get pods --namespace $_flag_namespace 2>/dev/null | grep "^$_flag_pod" | grep Running | head -n1 | awk '{ print $1 }') + if test -z "$POD" + echo "kubectl exec --namespace $_flag_namespace -it" + return + end + echo "kubectl exec --namespace $_flag_namespace -it $POD -- python3 /src/lib/manage.py" +end + +if type -q kubectl + for verb_index in (seq (count $__kube_verbs)) + abbr "k$__kube_verbs_short[$verb_index]" "kubectl $__kube_verbs[$verb_index]" + for res_index in (seq (count $__kube_resource)) + abbr "k$__kube_verbs_short[$verb_index]$__kube_resource_short[$res_index]" "kubectl $__kube_verbs[$verb_index] $__kube_resource[$res_index]" + end + end + + abbr k kubectl + abbr kl kubectl logs -f + abbr kgl kubectl logs -f + abbr kaf kubectl apply -f + abbr kr kubectl rollout + abbr krs kubectl rollout status + abbr krr kubectl rollout restart + abbr kt kubectl top + abbr ktp kubectl top pods + abbr ktn kubectl top nodes + abbr kpf kubectl port-forward + abbr kfp kubectl port-forward + + alias kns "kubectl config view --minify --output 'jsonpath={..namespace}'" + abbr ksns "kubectl config set-context --current --namespace" + abbr ksc "kubectl config set-context" + + abbr kexec --function __echo_kubeexec + abbr kmanage --function __echo_kubemanage +end \ No newline at end of file diff --git a/parts/modules/shell/git.nix b/parts/modules/shell/git.nix index 0ef6202..2438ace 100644 --- a/parts/modules/shell/git.nix +++ b/parts/modules/shell/git.nix @@ -1,6 +1,7 @@ {pkgs, ...}: { environment.systemPackages = with pkgs; [ git + pre-commit ]; fireproof.home-manager.programs.git = { diff --git a/parts/vm.nix b/parts/vm.nix index fbdd10d..60af985 100644 --- a/parts/vm.nix +++ b/parts/vm.nix @@ -29,7 +29,7 @@ in { isNormalUser = true; extraGroups = ["wheel" "networkmanager" "libvirt" "kvm"]; }; - monitors = [{resolution="1920x1080";}]; + monitors = [{resolution = "1920x1080";}]; services.qemuGuest.enable = true; services.spice-vdagentd.enable = true; } diff --git a/secrets/hosts/desktop/.rekey/1fb47bc55ba290d942143bab9a09e714-k8s-ao-dev.age b/secrets/hosts/desktop/.rekey/1fb47bc55ba290d942143bab9a09e714-k8s-ao-dev.age new file mode 100644 index 0000000000000000000000000000000000000000..bad72a99d98bc28fc44ab3660bff3078f95123ba GIT binary patch literal 2076 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 literal 0 HcmV?d00001 diff --git a/secrets/hosts/desktop/.rekey/4071734b22e19ec88c60fd5f828efbce-k8s-ao-prod.age b/secrets/hosts/desktop/.rekey/4071734b22e19ec88c60fd5f828efbce-k8s-ao-prod.age new file mode 100644 index 0000000000000000000000000000000000000000..84d5896a10132839a1f527c8c701cd3f6da86991 GIT binary patch literal 2118 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCR+Ep!ddFIO-RcJXud zDM|G$OY+W%DDaLbbBoFe^3E`h2+gfB4|NaruMEi156w5uEavhrDDZVOb2GJc3J-NQ z%!&+7x6ls{wG1^Vbn?nDO$jM+^3Mn|G)xP~FaX(Rpst%SecYm>S9f;e+?3f&o@8j$i9^hpdo@QndQIJ!S zZqAjaU6>f`UmgC_TsBe&KT&7>1=NRa3o*Yyb z8JXx-n(desZs}QQp3NmB>|JSoDpstdB~T?kr0&7*2P?uZzINg`@?^`Nt&E#YPi%cW zEoeFumuC3%=e5rtEA|G!qw=9e}xxyjxozsLsjaST(7AKj*W_>&G z?(_X8?f<0%XS}YORkxYx_^0hvCtoraT6X12GPFP8vEs7aIko!8O5RfsS=GFr@+}Oy27>1UT@yLMWu(D_M7#4yH&XtoRuv3exB>^ z(-Mmx>Pz_6x^zs~Q_djyJ(k~RyVfd!+Hl#r>nm5S=J8d`ez`eUDv2@ujm@K!lZkGQ zK|JUGH6_0nTb{VG?uG3#(Ex{-i-}yPV=v4+qrJvB#rx*dUEWE1mv1ieJQ%%d&X1!N zPmMh+Pxrgv2cKWt%LVh^a_bDVsPb8Jsa9x#;HQHDmWoBbZ>!&IXSeeE zl6JP*VMB6izo3Eo=AbufSN|Dk6;2X+VzK6{(qj`R5et(&S?|7eE0w(bW3(-*d#i>0 zI{wKf+qG08Z!?KYm*@B#dvBkixaQpP?0xLrhw}UxZ38(O(q8NkSD3!w_$Qww)o0RN zch600Ja*foMbgj9_44h^_!tJ&1v$_Dgy-#JQPWjo6=0v@EvV(Y$GUGPy_Jj->z|7piHRr&C=+!vv@J2$+PtXa(S=;!8LI&V^T zx6L~?H8JonpGN)EsbbdbuMWL&Pul12y7(|lRgRyTT%NDRFSo0I(i2;Hu1Cqe2@F*# z?^B(mJh$y!idLqcie3iqwBE*xQ!cc*_J}RIf9UU7FNUvtk0vVHuc&1`AY9||q2k#L z(LHX*cC8YxpP~HIcvhUyg}4mfsFdj9)k~~Q`g6>6^7CGXJ{4Xg@iFpE0pos&)ol4X z3z}DMTa)%JSbmA{)x8D3?QHD>EgyV%sokX$%4;wyCbxC{JFl*p{!8osbKCw2 zeuirf#Xi2OI#%`_2pFS9Sljrke#%gN|sXIKCU%PgF znSH;Pnh+7H$NR4J;+MVr3o1Q2O%m2v&z|Yt zIcMfI-YIeN`x5LbHvZglfiqn6(r2N#o~kADzwPBzU@-r&)N%VW_PQi^z%QfZt0*`eVs08bpo#=MCY(CR-PfB^IZRLb}x@(2pzZu=# z+!yz?-%V0B>*g^{!COn3n9cU+Z^_hK^h7`Q6ocowb&(UN^_hzbMs&sM*6XaPaQFDT zrRTPZ)~7d%CueEz$?SUH$@px7XZepQ7i7QirrqVn z_fN`w#l;fc{P*Z@gEJQ$Xze zjp|3!%p9No^lRGm`-SSt(@%QO2I`z%c)qA3s6PF2POwn6ZK^W=Dd2m z{QkbfbN#=W-1y^AuPOB0XaVErL(dNHjM%*5-{oa5v+jTOKE(96{mn}I@DrCiruStn zYFz(g(%ZMvGg~Yg_CztCur87`nY87HN83|9t+So0f2?KOn8zi>ck%oI{f!^_W=vUo zBC*!d@f5rGB&DUBrt)h9g&3?llUp!#)0I1u?5Ya3vOT#sVS#pu!}X-e^Lm?hO?22f zrGf3QMt3aNm+73Qb*|;nJ&7?)pHi+qGwujIwqCQaW2t6b_10A@W;|UTcltp3^|Dw=cVK z2VJ|}v)3}ZnBTL%_*(Xs3sNcGxBF|l4wddJOz6x0>AqVmxq7j%XVDYq63b7|3*WCO j@V_H|P3DR30WU@-HjxU6BV`p0TIIg3s#EoJE>!{ms-NB+ literal 0 HcmV?d00001 diff --git a/secrets/hosts/laptop/.rekey/1fb47bc55ba290d942143bab9a09e714-k8s-ao-dev.age b/secrets/hosts/laptop/.rekey/1fb47bc55ba290d942143bab9a09e714-k8s-ao-dev.age new file mode 100644 index 0000000000000000000000000000000000000000..fcf6d8fbe758a47792b48bc573a40bb362b36a1a GIT binary patch literal 2147 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCR+Ep!ddFIT7v&aSZZ ztJF^{E6FxZDs%Gk2}ugdH7_hMH;YU+_H)j5&W^~c2+MFYisbT0@yLuUG0@J+s4O*) z(#|x&p}j0#Q+@depd5~642pJ6;)!H8)_Np7iL)E z>YL_~mTAo8ooZR>SWs4x7F3kt6mD7&nd;|W>Q(GxX&8{1dot9qan`Kf^Vjk(q#q0X0 zov}A~^YPNd6&h*(=S2kTZ_IzSIi;}Xa7CPp_|k1cdB3<)b{vTFOUn1DeRi+7JEh?A zD>Ji;alW^9ZNJK2Gwp;#OC95ZQ~$XN4)b1i;B-3jZ0pN8kCJv>^0)Qd;2zoWqvylT zqRnnIHe0F5R$bV7@t&3T;%z7pH(+;_5~K@b2l3&9|)buXBrw)>Be>KH$rPc5mfZD#qfqWlPp`1+7FPc9WIMqR27 zS-Eq?>D7~7-Z&X@W8X!UHy?#Pt`xfe-F2vS=l#@M(QCV&IX_jOKjkdXiVXEFlJkpo zA_}FiYceTKsoL>!r^zf^AGIl3+Ybb@>`}LQrTp-HrIPZ`dtu`)LoY zUs*1;*v^r1#ag9Sa*qDP6BjNObWKTL;v+H7<(hRsh$wq>NNlH{dL|r z#_Zg}otMU$sW4^Hmf3USvd)RjeN^2!?el4U3um)kf(CkJU(a4{lI(t=`0I3XLF!g7 z`zGyanb~E$#Vw7#XP2(I`?R3n-@tNnsn(Ma_WP4JYyLOXQtvF9!k_luZ%*KGz8!rH zi8`6zZ)}x4b3r?QQ+JVe^t8QgwRbsucl@#yxqms-sGiu({Ebb~ zNap|XM~lt~rB7SZ@AdX7*J9D&7Kc~fSK|ElDXH)VrIa!rt9iu6e&p}BwA<_Ze0~}J zi&OKj{kYC!@A)vMqY1uJ=S*2RuPScc&3y8DS7+9#J}<+okzvof-!IyjllSG5@4V(r zw-@`KeNIUAEazSCK3Az!BT|%Wo{0N{o}agxTP1WJeyvb6*Vu3)NkZe~_4&tMM?bX9 zxT<&RgR<7X+3!!h-RL5{O6q!Yhg_WA%}-ZCwBxKV*{@x>_D*Hp|3jI|CwHa#8}|q( z*TkMnZ@VivvnRM{+T(D$NM=#7C9AbEf48iRE#+>Wke57j-Ss(UFTD;uX?u65mg%l^ zgM8W%HKlsx?QHlmyn9`cAuHmFL~==`{1+5AprayXvEk zIZt2@e{x&DA@S+4_TCi9SMRpiF@$DHw(gge|KPUodAvSYDWLEJtSue@^9Vu=l+A-eC?(T4&(S5DBsKR>L z+Z6}=&6Bl&B@ zySZGCF4uixn&7kJ%cSnI`_DN}=S9dIGLC-k=+ICXI&0|+{yQ`KLvQaiPm$?3BA)lP zOC|2@%zY5pw z-8Trwex0c0YW(}guT7s6Qzv@aJ-vHq!7G+eK1UT_^! zahza1p|pGtN8#H~I~^`OmC49AWsH$HD9v>s>v3~dZ1Myr**V%L@@MWk$Je&LedQCK zyX-!pZ`jn{iY;ViI4-SLbI?XS#&bm~Xl?1zoW5qm;$>^TN14kgJNnqaTov|kbsoblV_^ZC3r3x0>zoC1lbu7? zd=7q_@3ZVZ*!P+9qaWvc2?nXrr9FF6iY9r+@&Y1hm-TYet5Hg|t-TlKr3 zNbY!xYDSD_D+)#XkJhfg@A<*uUnWOmrb1xr6fFP@jGwLoL7BmWW` z-XD2-mftrRa#|&yS+welMf8E&%w}J{>nzqda{F*hQ?tm;(m$0c$F5B%PgX2hYdGu7 za(DZguRU$~t^_>zo$)+*M#P$~BiHV}aVsh_Uo`E~T_&TI{{ElVwO^Banvpr9YIQ|X M$)A5=VsBeY07k#@RsaA1 literal 0 HcmV?d00001 diff --git a/secrets/hosts/laptop/.rekey/4071734b22e19ec88c60fd5f828efbce-k8s-ao-prod.age b/secrets/hosts/laptop/.rekey/4071734b22e19ec88c60fd5f828efbce-k8s-ao-prod.age new file mode 100644 index 0000000000000000000000000000000000000000..f259a37fc1b821b10dc858c3ce7ae61df5e707da GIT binary patch literal 2164 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCR+Ep!ddFIO<|(GN{3 zDR*@%GV?0&Pl*gn_px*hj?9fpOg0VD&r2$Bib&E9&Cc--^yM;jb4>B|@{IBi3@)|^ z_A}Sl546k<4~i-*PBbxcE^-d>(+;UH@%0T&EC<SU(P6&7q(m|+-T6zJ_-kml%EmX=&*kR6g$5tw7>lBjRtt)1s#;gRZ=WtNi@5E5MG zX^`dQn`d6;QJ9pH6%|q8#$`}hSe~nInrvAf9ORgsRG60UuAf_Ml4Fn>u5FR$UTW%9 z5fS8=o0sIA7UY!9rK_u}km2ZDY@zMy8}3(bYEfZkS{|UU?PBTS<>lcQm7U}0Q)OV` zmLFbRP+sE6_4q|jwaWjRv>Tj-mO`e#TJC&35+)kK5tlG$OWocwMw1H-e2tNN=1ecX zq^qg6aQV9IxyK7O9aT6IvrB8^Ibq&^o5dDxy2bJN(4@kU(-SwA-COlZ;#jxHmGVEK zTLm}mDXiBi-~RTQp7Hj(CVa0ay-i)?T0i~yx~GwUUg%{`I`>EJg!Y|T&mP{Hw)2(Q zMZ1TeCtUBiKXp~*iS(V-@&PvYR;V0J^;G$_c2DX*$9+O^9A7u^#Rc}Si&r+7&%OLZ z!EyHGjP1KanqxX!_>OR!Kc0Tye8LY)f#MLEokuNG*Dty`c@DE*pL>YIp9MWqzg)V* z5149lEB940-SVm5b?z2_n$tz6^9$wF&%e?>d2e-^{XePSxu4W7%q{Z#wm3>=%Gu?@ z8xI!V=DoC7TX9#o#QiyqDk;Y=r$&bMlsz-N$+YZ*r6wGOBCq#&_Ljz2J5CT-@cK^vS=U8wHL)TY z4a?MHw5-pp+1n>% z@fY!JTeSFOeX-6QpKq-fpMQH0dOA2Q{L)XW0}B+xXT90>nso!$63x(#-1koB-9r|r z`jy>T*J!Ts;9Kpl`^-xV?<>R}S#P_28iUx|iKU4OefzV%>wK#IA-wEwri<6QOIJM( zK3u%0dPWONG`EdL**3pQajAJr%!JzRul1f?6&tyt&RN@YHRtjguF9@F55r%ve-?}D z3N5!Nr@ZztScx3cI%S7I#AO>bGX9o+l#g zxAw?SYCE62ho!}4S?|IC^FHR-84_I_l>yIMmtMb|ls(JHMY^Bm*1aE^-xSPl?&_=I zSts666tzbDaoMHQr`A8aygH*sc>8|#xm%?6)-9T4BzVH6Tk&0Ijo_akhaa_@RyIzu z|28QzY!RwubO=!oobFqimwEh$$hn4u{FN!G$5X>j6g`+YMd_1+$U4M#<+!UTB?+e{C5-XPYiCq7@KVHX3 zGRpDFIkCL6e8*R~+b>*Z!JinK{>pK|bJzB-?f*1Za%SINFt_Ua_qIEGnertHFPOdi zaI&}kY+XU~8FmT3TbaAk4ktKvF75Vu%YTJU@WW@e8qd#eN&jYE=)G_^_X%Uc87-5U zN|t^r%-O@$`6Bk= z>$ck)ru@0) z$=&v5ncT-Eaz}DoihEYRsbQL5Q0?zth~!e(-FG&+mb zZ?w_Bd~
    W*2{Z-<{V&%GH_J2B5QKW|NWT84?!@oy|$C2!9JdzwtnU&WAX5xjK! zL;riSzq9N@3?~*b$%J^z9!=Z(fI%z%)C-Xxwa+q56-s)QV;R5e_TSkYrqEhfx>%TF zS&81O1-v`wpX#{1;`L6Qll*zt#Ab9&I^1*X-1@t-#S*8?`@Z1B)WVX^*!!9P{B&M^ z__5CEirDp5@0o>{M7<NPR5(sB&n<^k(UMG4`vzoSU;!thea) z?DtFN^7lU|zPC|(iSM1pXHPCOH6)bh`AO+X^wm^-Z#u;GD>|b2!C>)*A>R$Tb1x!goe`}vKQFWT2;=02PJ iEBc|;2E~KMIi8`ahu7-2U9Q@>bboC@qH2V5WC#FS1ON*F literal 0 HcmV?d00001 diff --git a/secrets/k8s/ao-dev.age b/secrets/k8s/ao-dev.age new file mode 100644 index 0000000000000000000000000000000000000000..259a7ef22490b54bfb35ee534e16d3fdce0bf17b GIT binary patch literal 2247 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 JIa5^T0syH^1l<4t literal 0 HcmV?d00001 diff --git a/secrets/k8s/ao-prod.age b/secrets/k8s/ao-prod.age new file mode 100644 index 0000000000000000000000000000000000000000..498d0e7aa91b62219708c8a1ee54f6f643acac0b GIT binary patch literal 2196 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR2FFfuhYv{dj6vJ5scOwP?pE=x{H&NR_> zEGbJ*(JsvPurT!r_wjNK57G9j^o%I3@a6JPck(JsE%r`#OUiaFi_p$5D9y;oaLg(7 z_Rq^H3iZ?uttg3bF3fN$2nE?tkXfc%U}S2hP-yJq7gny|Se)bTSK;ASSPH80Y)Dx@I5%`d{&q$=6n&&0c;EGr^Ashmq!S69J9JIB${ zIjk(I${^UY*rzZwEXO(1x4^8dsw|+))iJ2lJR`}}ywp3p(32}rCr4u^TM(bjhjnHN z$_(9lrCwm>l{>wkn3_aDSTLJ&&|7&gEAH`PjNW{=km-}`EY=f(|k?h zzd2ugPS+nlBi6L0e*F&qj~By}T%E7BEIYeLvb@diOwZdHlQeI?)iV<{w-re(3e4VC zxw+LS+@XR^%w&b$uld)m{k|I)#&dI4ZAsO2=YV|m3GdgNJUBLG?bEwCQXw~Iys18A>K}M)i^yIp z#aKV5t&iF62HH#yw3d-J2KTC*ZwJHDsidQ@>s}vHuw9= zzy9kRgR?c;KV7LcQ1KMrZkIn%Z1tYk%EqaxlMeMUW=>O=4A{~)ky%b(EBMP)+Y14F zX?DBsw(oJ8c*W;dMBL$wCD)4WH#(o5mUw6pe~{0&i@iby*0A*J>;JvWPU!I(vbL2)t~=ng#bC$9EAxV) zMAuur`v0s-C$qWmoRSQuWM|C(nfq2A_`W}Hdco0`EN3ke73yVx_EfTDbK+&nN1_lKFc>hMmyX1BcO5^Spmu zk?j2z&UaYDKb`OAC*3>uZ0nnZbWnwH&>inXt`(Y3!9wRHy2!99W65b@7-ArpDm_-xREJ-IQo0-GvOJ3 zxM#dFS@Lhn+#LPms|A+MsoeGSNlM1FnJc#&sXJGAJ$t;UV_M4#;rE}W&e!Wr^?A86 z+|ae{%aOfum8s7R!a7psthuhUzUIuYXK^d;Wfffxymn{V z@=G&Kiuc!gJ+Z@aOPU7SDMx%+b%+8hfLr>hAfA@HS&&3B#Y`b2p z-WcEgY$v~wgl&9M!qoekCY|SAN=-SKpA`S~hT1CGEmjQm@nwEFf`|4r{Cp#_izQoA z_^>>K^7Y%Tf8-*ke2RW|a8bys5a0a{%D!vfl)XM@Fkeh&`KqJ^Gu+R-(%61s#tM&l zOcJl&g>JmeDkc=fFz>)R6^_3dGfo?|D72RT-mJCjdil52&HK3DEc&(fmEG_9A|0#v z0%>;Vi1;-RuT;BE7n?fck@&Nz=eF$mYgfypWa!S#Bl0EH!Nlwr!_A((TkmDsUMh}Y z+tC=ubmo<#Q_t_Ce)24*3k+ia2PnSuTRKJc?Jv%EuN>dK%nxAZPtI6T{XvDFkxy0j zfE(j(-R%~~GO}d;DQo%vd2ycSs;jr#mVfn%Kh~{?y}80jIiP7n!S1PskGMWRZkM=q zH&4UYy^(9}k9@AChLYMdziOGwSTybX9j?6Iud8{_Hoxnq9j}*XSr&)xX+xVO;vLHW z!>2vryxqX}>Xczf)}j56_Os$&!$zUH|jCezTV7O`F?&)alstw@-{sR^8k5vox)A NtJg6PSH0UDjsWvg5F!8o literal 0 HcmV?d00001