aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-06-09 17:40:46 +0000
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-06-09 17:40:46 +0000
commita45c4551712c1ba5cb82eaf290f311ab0e8690e4 (patch)
treef62b23489fb31f8ea58fef77f99619efd784eb36
big changes
-rw-r--r--README.md37
-rw-r--r--flake.lock254
-rw-r--r--flake.nix33
-rw-r--r--hosts/jupiter/config.nix67
-rw-r--r--hosts/jupiter/disks.nix32
-rw-r--r--hosts/jupiter/facter.json4707
-rw-r--r--hosts/jupiter/home.nix11
-rw-r--r--hosts/jupiter/system.nix15
-rw-r--r--hosts/mercury/battery.nix47
-rw-r--r--hosts/mercury/config.nix73
-rw-r--r--hosts/mercury/disks.nix14
-rw-r--r--hosts/mercury/facter.json4072
-rw-r--r--hosts/mercury/home.nix11
-rw-r--r--hosts/mercury/system.nix24
-rw-r--r--hosts/mercury/wallpaper.jpgbin0 -> 169046 bytes
-rw-r--r--lib/cfgWrapper.nix63
-rw-r--r--lib/nix-furnace/README.md7
-rw-r--r--lib/nix-furnace/default.nix121
-rw-r--r--modules/boot/options.nix23
-rw-r--r--modules/boot/system/default.nix37
-rw-r--r--modules/boot/system/plymouth.nix21
-rw-r--r--modules/desktop/home/default.nix14
-rw-r--r--modules/desktop/home/environments/gnome/default.nix67
-rw-r--r--modules/desktop/home/environments/hyprland/default.nix14
-rw-r--r--modules/desktop/home/environments/hyprland/dunst.nix44
-rw-r--r--modules/desktop/home/environments/hyprland/fuzzel.nix44
-rw-r--r--modules/desktop/home/environments/hyprland/hyprland/catppuccin.conf79
-rw-r--r--modules/desktop/home/environments/hyprland/hyprland/default.nix96
-rw-r--r--modules/desktop/home/environments/hyprland/hyprland/wallpaper.jpgbin0 -> 169046 bytes
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/catppuccin.scss26
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/config.nix59
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/default.nix20
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/power_menu.xml23
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/style.scss86
-rw-r--r--modules/desktop/home/gtk/adwaita.nix33
-rw-r--r--modules/desktop/home/gtk/catppuccin.nix33
-rw-r--r--modules/desktop/home/gtk/default.nix26
-rw-r--r--modules/desktop/home/programs/firefox/adwaita.nix25
-rw-r--r--modules/desktop/home/programs/firefox/catppuccin.nix20
-rw-r--r--modules/desktop/home/programs/firefox/default.nix17
-rw-r--r--modules/desktop/home/programs/firefox/profile.nix38
-rw-r--r--modules/desktop/home/programs/musescore.nix13
-rw-r--r--modules/desktop/options.nix67
-rw-r--r--modules/desktop/system/components/dunst.nix38
-rw-r--r--modules/desktop/system/components/fuzzel.nix50
-rw-r--r--modules/desktop/system/default.nix12
-rw-r--r--modules/desktop/system/environments/gnome.nix67
-rw-r--r--modules/desktop/system/environments/sway.nix103
-rw-r--r--modules/desktop/system/programs/firefox.nix36
-rw-r--r--modules/desktop/system/programs/foot.nix64
-rw-r--r--modules/nix/system/default.nix23
-rw-r--r--modules/options.nix9
-rw-r--r--modules/services/options.nix20
-rw-r--r--modules/services/system/audio.nix19
-rw-r--r--modules/services/system/bluetooth.nix16
-rw-r--r--modules/services/system/default.nix7
-rw-r--r--modules/services/system/networking/default.nix19
-rw-r--r--modules/services/system/networking/iwd.nix26
-rw-r--r--modules/services/system/networking/nm.nix15
-rw-r--r--modules/terminal/home/default.nix5
-rw-r--r--modules/terminal/home/emulators/blackbox.nix30
-rw-r--r--modules/terminal/options.nix77
-rw-r--r--modules/terminal/system/default.nix25
-rw-r--r--modules/terminal/system/programs/cmus.nix83
-rw-r--r--modules/terminal/system/programs/fish.nix57
-rw-r--r--modules/terminal/system/programs/git.nix29
-rw-r--r--modules/terminal/system/programs/helix.nix139
-rw-r--r--modules/terminal/system/programs/lazygit.nix26
-rw-r--r--modules/terminal/system/programs/starship.nix48
-rw-r--r--modules/terminal/system/programs/tmux.nix164
-rw-r--r--modules/user/home/default.nix3
-rw-r--r--modules/user/options.nix23
-rw-r--r--modules/user/system/default.nix25
73 files changed, 11771 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..52714f9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,37 @@
+```sh
+nixos-rebuild build-vm --flake .#collinux
+```
+
+
+A host config has many parts
+- user environment config (home-manager)
+- system config
+- hardware config (facter)
+ - disks config (disko or manual)
+
+## Dream hosts/config.nix
+```nix
+collinux = {
+ user = {
+ fullName = "";
+ name = "";
+ email = "";
+ password = "";
+ };
+
+ theme = "";
+
+ desktop = {
+ programs = {};
+ };
+
+ terminal = {
+ programs = {};
+ };
+
+ boot = {};
+
+ extraNixosModules = [];
+ extraHomeModules = [];
+};
+```
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..2b32d1b
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,254 @@
+{
+ "nodes": {
+ "crane": {
+ "locked": {
+ "lastModified": 1746291859,
+ "narHash": "sha256-DdWJLA+D5tcmrRSg5Y7tp/qWaD05ATI4Z7h22gd1h7Q=",
+ "owner": "ipetkov",
+ "repo": "crane",
+ "rev": "dfd9a8dfd09db9aad544c4d3b6c47b12562544a5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "ipetkov",
+ "repo": "crane",
+ "type": "github"
+ }
+ },
+ "disko": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1747274630,
+ "narHash": "sha256-87RJwXbfOHyzTB9LYagAQ6vOZhszCvd8Gvudu+gf3qo=",
+ "owner": "nix-community",
+ "repo": "disko",
+ "rev": "ec7c109a4f794fce09aad87239eab7f66540b888",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "disko",
+ "type": "github"
+ }
+ },
+ "flake-compat": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1733328505,
+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "lanzaboote",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1743550720,
+ "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "c621e8422220273271f52058f618c94e405bb0f5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "gitignore": {
+ "inputs": {
+ "nixpkgs": [
+ "lanzaboote",
+ "pre-commit-hooks-nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1709087332,
+ "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "type": "github"
+ }
+ },
+ "hjem": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1747038076,
+ "narHash": "sha256-vy+My+8yRRu0OG6XBEPDR8ebfrPS4iuruyQ1ZUyHq6s=",
+ "owner": "feel-co",
+ "repo": "hjem",
+ "rev": "7d674eaded6586554910e62baed5eadad6496315",
+ "type": "github"
+ },
+ "original": {
+ "owner": "feel-co",
+ "repo": "hjem",
+ "type": "github"
+ }
+ },
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1747556831,
+ "narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "ref": "release-25.05",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "lanzaboote": {
+ "inputs": {
+ "crane": "crane",
+ "flake-compat": "flake-compat",
+ "flake-parts": "flake-parts",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "pre-commit-hooks-nix": "pre-commit-hooks-nix",
+ "rust-overlay": "rust-overlay"
+ },
+ "locked": {
+ "lastModified": 1747056319,
+ "narHash": "sha256-qSKcBaISBozadtPq6BomnD+wIYTZIkiua3UuHLaD52c=",
+ "owner": "nix-community",
+ "repo": "lanzaboote",
+ "rev": "2e425f3da6ce7f5b34fa6eaf7a2a7f78dbabcc85",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "lanzaboote",
+ "type": "github"
+ }
+ },
+ "nixos-facter-modules": {
+ "locked": {
+ "lastModified": 1743671943,
+ "narHash": "sha256-7sYig0+RcrR3sOL5M+2spbpFUHyEP7cnUvCaqFOBjyU=",
+ "owner": "numtide",
+ "repo": "nixos-facter-modules",
+ "rev": "58ad9691670d293a15221d4a78818e0088d2e086",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "nixos-facter-modules",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1747428706,
+ "narHash": "sha256-XVds9FkRrY59xRNNq14FNsFGqDiexXX/mlHcX4hPyyk=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "2e1496bf8652ff4af4e4d4737277f71e4a4f5cb2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-25.05",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "pre-commit-hooks-nix": {
+ "inputs": {
+ "flake-compat": [
+ "lanzaboote",
+ "flake-compat"
+ ],
+ "gitignore": "gitignore",
+ "nixpkgs": [
+ "lanzaboote",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1746537231,
+ "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=",
+ "owner": "cachix",
+ "repo": "pre-commit-hooks.nix",
+ "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "pre-commit-hooks.nix",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "disko": "disko",
+ "hjem": "hjem",
+ "home-manager": "home-manager",
+ "lanzaboote": "lanzaboote",
+ "nixos-facter-modules": "nixos-facter-modules",
+ "nixpkgs": "nixpkgs"
+ }
+ },
+ "rust-overlay": {
+ "inputs": {
+ "nixpkgs": [
+ "lanzaboote",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1747017456,
+ "narHash": "sha256-C/U12fcO+HEF071b5mK65lt4XtAIZyJSSJAg9hdlvTk=",
+ "owner": "oxalica",
+ "repo": "rust-overlay",
+ "rev": "5b07506ae89b025b14de91f697eba23b48654c52",
+ "type": "github"
+ },
+ "original": {
+ "owner": "oxalica",
+ "repo": "rust-overlay",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..12cbf52
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,33 @@
+{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
+
+ disko = {
+ url = "github:nix-community/disko";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
+
+ lanzaboote = {
+ url = "github:nix-community/lanzaboote";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ home-manager = {
+ url = "github:nix-community/home-manager/release-25.05";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ hjem = {
+ url = "github:feel-co/hjem";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ };
+
+ outputs = inputs:
+ (import ./lib/nix-furnace).mkFlake {
+ inherit inputs;
+ namespace = "collinux";
+ };
+}
diff --git a/hosts/jupiter/config.nix b/hosts/jupiter/config.nix
new file mode 100644
index 0000000..d8c2037
--- /dev/null
+++ b/hosts/jupiter/config.nix
@@ -0,0 +1,67 @@
+{inputs, ...}: {
+ nix-furnace = {
+ extraHomeModules = [
+ ./home.nix
+ ];
+
+ extraSystemModules = [
+ ./system.nix
+ ];
+ };
+
+ collinux = {
+ theme = "adwaita";
+
+ user = {
+ name = "collin";
+ email = "96917990+bluedragon1221@users.noreply.github.com";
+ password = "$y$j9T$08yFysn8jr9K4Wk.hYXbG0$NzY9vIbNknJViA..Jw.vF8wmQtBgEZZU.cdLQOmDvU2";
+ };
+
+ desktop = {
+ gnome.enable = true;
+
+ programs = {
+ firefox.enable = true;
+ };
+ };
+
+ terminal = {
+ theme = "adwaita";
+
+ terminalEmulators.blackbox.enable = true;
+
+ shells.fish.enable = true;
+
+ programs = {
+ bat.enable = true;
+ eza.enable = true;
+ fzf.enable = true;
+
+ nh.enable = true;
+ lazygit.enable = true;
+
+ starship = {
+ enable = true;
+ theme = "default";
+ };
+
+ helix = {
+ enable = true;
+ hardMode = false;
+ };
+ };
+ };
+
+ boot = {
+ theme = "default";
+ bootloader = "systemd-boot";
+ plymouth.enable = true;
+ };
+
+ networking = {
+ enable = true;
+ wifiDaemon = "networkmanager"; # apparently gnome doesn't support iwd
+ };
+ };
+}
diff --git a/hosts/jupiter/disks.nix b/hosts/jupiter/disks.nix
new file mode 100644
index 0000000..ebf76e4
--- /dev/null
+++ b/hosts/jupiter/disks.nix
@@ -0,0 +1,32 @@
+{
+ disko.enableConfig = true;
+ disko.devices = {
+ disk.main = {
+ device = "/dev/nvme0n1";
+ type = "disk";
+ content = {
+ type = "gpt";
+ partitions = {
+ ESP = {
+ type = "EF00";
+ size = "1G";
+ content = {
+ type = "filesystem";
+ format = "vfat";
+ mountpoint = "/boot";
+ mountOptions = ["umask=0077"];
+ };
+ };
+ root = {
+ size = "100%";
+ content = {
+ type = "filesystem";
+ format = "ext4";
+ mountpoint = "/";
+ };
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/hosts/jupiter/facter.json b/hosts/jupiter/facter.json
new file mode 100644
index 0000000..97ee195
--- /dev/null
+++ b/hosts/jupiter/facter.json
@@ -0,0 +1,4707 @@
+{
+ "version": 1,
+ "system": "x86_64-linux",
+ "virtualisation": "none",
+ "hardware": {
+ "bios": {
+ "apm_info": {
+ "supported": false,
+ "enabled": false,
+ "version": 0,
+ "sub_version": 0,
+ "bios_flags": 0
+ },
+ "vbe_info": {
+ "version": 0,
+ "video_memory": 0
+ },
+ "pnp": false,
+ "pnp_id": 0,
+ "lba_support": false,
+ "low_memory_size": 0,
+ "smbios_version": 770
+ },
+ "bluetooth": [
+ {
+ "index": 48,
+ "attached_to": 51,
+ "class_list": [
+ "usb",
+ "bluetooth"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0115",
+ "name": "Bluetooth Device",
+ "value": 277
+ },
+ "vendor": {
+ "hex": "0bda",
+ "name": "Realtek",
+ "value": 3034
+ },
+ "device": {
+ "hex": "b00c",
+ "name": "Bluetooth Radio",
+ "value": 45068
+ },
+ "serial": "00e04c000001",
+ "model": "Realtek Bluetooth Radio",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0",
+ "sysfs_bus_id": "1-14:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "device_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 1,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "btusb",
+ "driver_module": "btusb",
+ "drivers": [
+ "btusb"
+ ],
+ "driver_modules": [
+ "btusb"
+ ],
+ "module_alias": "usb:v0BDApB00Cd0000dcE0dsc01dp01icE0isc01ip01in00"
+ },
+ {
+ "index": 52,
+ "attached_to": 51,
+ "class_list": [
+ "usb",
+ "bluetooth"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0115",
+ "name": "Bluetooth Device",
+ "value": 277
+ },
+ "vendor": {
+ "hex": "0bda",
+ "name": "Realtek",
+ "value": 3034
+ },
+ "device": {
+ "hex": "b00c",
+ "name": "Bluetooth Radio",
+ "value": 45068
+ },
+ "serial": "00e04c000001",
+ "model": "Realtek Bluetooth Radio",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.1",
+ "sysfs_bus_id": "1-14:1.1",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "device_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 1,
+ "interface_number": 1,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "btusb",
+ "driver_module": "btusb",
+ "drivers": [
+ "btusb"
+ ],
+ "driver_modules": [
+ "btusb"
+ ],
+ "module_alias": "usb:v0BDApB00Cd0000dcE0dsc01dp01icE0isc01ip01in01"
+ }
+ ],
+ "bridge": [
+ {
+ "index": 22,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 28
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06bd",
+ "value": 1725
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "revision": {
+ "hex": "00f0",
+ "value": 240
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1c.0",
+ "sysfs_bus_id": "0000:00:1c.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 122,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1287,
+ "header_type": 1,
+ "secondary_bus": 1,
+ "irq": 122,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d000006BDsv0000103Csd00008767bc06sc04i00"
+ },
+ {
+ "index": 24,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "ISA bridge",
+ "value": 1
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "0684",
+ "value": 1668
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel ISA bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.0",
+ "sysfs_bus_id": "0000:00:1f.0",
+ "detail": {
+ "function": 0,
+ "command": 263,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 0,
+ "prog_if": 0
+ },
+ "module_alias": "pci:v00008086d00000684sv0000103Csd00008767bc06sc01i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 27,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 28
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06bf",
+ "value": 1727
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "revision": {
+ "hex": "00f0",
+ "value": 240
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1c.7",
+ "sysfs_bus_id": "0000:00:1c.7",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 123,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 7,
+ "command": 1287,
+ "header_type": 1,
+ "secondary_bus": 2,
+ "irq": 123,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d000006BFsv0000103Csd00008767bc06sc04i00"
+ },
+ {
+ "index": 33,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Host bridge",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "9b43",
+ "value": 39747
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "revision": {
+ "hex": "0005",
+ "value": 5
+ },
+ "model": "Intel Host bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:00.0",
+ "sysfs_bus_id": "0000:00:00.0",
+ "detail": {
+ "function": 0,
+ "command": 262,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 0,
+ "prog_if": 0
+ },
+ "driver": "skl_uncore",
+ "driver_module": "intel_uncore",
+ "drivers": [
+ "skl_uncore"
+ ],
+ "driver_modules": [
+ "intel_uncore"
+ ],
+ "module_alias": "pci:v00008086d00009B43sv0000103Csd00008767bc06sc00i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 36,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 29
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06b0",
+ "value": 1712
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "revision": {
+ "hex": "00f0",
+ "value": 240
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0",
+ "sysfs_bus_id": "0000:00:1d.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 124,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1287,
+ "header_type": 1,
+ "secondary_bus": 3,
+ "irq": 124,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d000006B0sv0000103Csd00008767bc06sc04i00"
+ }
+ ],
+ "cpu": [
+ {
+ "architecture": "x86_64",
+ "vendor_name": "GenuineIntel",
+ "model_name": "Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz",
+ "family": 6,
+ "model": 165,
+ "stepping": 5,
+ "features": [
+ "fpu",
+ "vme",
+ "de",
+ "pse",
+ "tsc",
+ "msr",
+ "pae",
+ "mce",
+ "cx8",
+ "apic",
+ "sep",
+ "mtrr",
+ "pge",
+ "mca",
+ "cmov",
+ "pat",
+ "pse36",
+ "clflush",
+ "dts",
+ "acpi",
+ "mmx",
+ "fxsr",
+ "sse",
+ "sse2",
+ "ss",
+ "ht",
+ "tm",
+ "pbe",
+ "syscall",
+ "nx",
+ "pdpe1gb",
+ "rdtscp",
+ "lm",
+ "constant_tsc",
+ "art",
+ "arch_perfmon",
+ "pebs",
+ "bts",
+ "rep_good",
+ "nopl",
+ "xtopology",
+ "nonstop_tsc",
+ "cpuid",
+ "aperfmperf",
+ "pni",
+ "pclmulqdq",
+ "dtes64",
+ "monitor",
+ "ds_cpl",
+ "vmx",
+ "smx",
+ "est",
+ "tm2",
+ "ssse3",
+ "sdbg",
+ "fma",
+ "cx16",
+ "xtpr",
+ "pdcm",
+ "pcid",
+ "sse4_1",
+ "sse4_2",
+ "x2apic",
+ "movbe",
+ "popcnt",
+ "tsc_deadline_timer",
+ "aes",
+ "xsave",
+ "avx",
+ "f16c",
+ "rdrand",
+ "lahf_lm",
+ "abm",
+ "3dnowprefetch",
+ "cpuid_fault",
+ "epb",
+ "ssbd",
+ "ibrs",
+ "ibpb",
+ "stibp",
+ "ibrs_enhanced",
+ "tpr_shadow",
+ "flexpriority",
+ "ept",
+ "vpid",
+ "ept_ad",
+ "fsgsbase",
+ "tsc_adjust",
+ "bmi1",
+ "avx2",
+ "smep",
+ "bmi2",
+ "erms",
+ "invpcid",
+ "mpx",
+ "rdseed",
+ "adx",
+ "smap",
+ "clflushopt",
+ "intel_pt",
+ "xsaveopt",
+ "xsavec",
+ "xgetbv1",
+ "xsaves",
+ "dtherm",
+ "ida",
+ "arat",
+ "pln",
+ "pts",
+ "hwp",
+ "hwp_notify",
+ "hwp_act_window",
+ "hwp_epp",
+ "vnmi",
+ "pku",
+ "ospke",
+ "md_clear",
+ "flush_l1d",
+ "arch_capabilities"
+ ],
+ "bugs": [
+ "spectre_v1",
+ "spectre_v2",
+ "spec_store_bypass",
+ "swapgs",
+ "itlb_multihit",
+ "srbds",
+ "mmio_stale_data",
+ "retbleed",
+ "eibrs_pbrsb",
+ "gds",
+ "bhi"
+ ],
+ "power_management": [
+ ""
+ ],
+ "bogo": 5799.77,
+ "cache": 16384,
+ "units": 16,
+ "physical_id": 0,
+ "siblings": 16,
+ "cores": 8,
+ "fpu": false,
+ "fpu_exception": false,
+ "cpuid_level": 22,
+ "write_protect": false,
+ "clflush_size": 64,
+ "cache_alignment": 64,
+ "address_sizes": {
+ "physical": "0x27",
+ "virtual": "0x30"
+ }
+ }
+ ],
+ "disk": [
+ {
+ "index": 43,
+ "attached_to": 20,
+ "class_list": [
+ "disk",
+ "block_device",
+ "nvme"
+ ],
+ "bus_type": {
+ "hex": "0096",
+ "name": "NVME",
+ "value": 150
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0106",
+ "name": "Mass Storage Device",
+ "value": 262
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Disk",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "1c5c",
+ "value": 7260
+ },
+ "sub_vendor": {
+ "hex": "1c5c",
+ "value": 7260
+ },
+ "device": {
+ "hex": "1339",
+ "name": "SK hynix BC511 HFM512GDJTNI-82A0A",
+ "value": 4921
+ },
+ "sub_device": {
+ "hex": "0000",
+ "value": 0
+ },
+ "serial": "NN0CNB09510101523",
+ "model": "SK hynix BC511 HFM512GDJTNI-82A0A",
+ "sysfs_id": "/class/block/nvme0n1",
+ "sysfs_bus_id": "nvme0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:1d.0/0000:03:00.0/nvme/nvme0",
+ "unix_device_name": "/dev/nvme0n1",
+ "unix_device_number": {
+ "type": 98,
+ "major": 259,
+ "minor": 0,
+ "range": 0
+ },
+ "unix_device_names": [
+ "/dev/disk/by-id/nvme-SK_hynix_BC511_HFM512GDJTNI-82A0A_NN0CNB09510101523",
+ "/dev/disk/by-id/nvme-SK_hynix_BC511_HFM512GDJTNI-82A0A_NN0CNB09510101523_1",
+ "/dev/disk/by-id/nvme-eui.ace42e00063d3736",
+ "/dev/disk/by-path/pci-0000:03:00.0-nvme-1",
+ "/dev/nvme0n1"
+ ],
+ "resources": [
+ {
+ "type": "disk_geo",
+ "cylinders": 488386,
+ "heads": 64,
+ "sectors": 32,
+ "size": "0x0",
+ "geo_type": "logical"
+ },
+ {
+ "type": "size",
+ "unit": "sectors",
+ "value_1": 1000215216,
+ "value_2": 512
+ }
+ ],
+ "driver": "nvme",
+ "driver_module": "nvme",
+ "drivers": [
+ "nvme"
+ ],
+ "driver_modules": [
+ "nvme"
+ ]
+ },
+ {
+ "index": 44,
+ "attached_to": 39,
+ "class_list": [
+ "disk",
+ "usb",
+ "scsi",
+ "block_device"
+ ],
+ "bus_type": {
+ "hex": "0084",
+ "name": "SCSI",
+ "value": 132
+ },
+ "slot": {
+ "bus": 6,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0106",
+ "name": "Mass Storage Device",
+ "value": 262
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Disk",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "090c",
+ "name": "USB",
+ "value": 2316
+ },
+ "device": {
+ "hex": "3267",
+ "name": "Flash Disk",
+ "value": 12903
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "1100",
+ "value": 0
+ },
+ "serial": "AA00000000000489",
+ "model": "USB Flash Disk",
+ "sysfs_id": "/class/block/sda",
+ "sysfs_bus_id": "6:0:0:0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host6/target6:0:0/6:0:0:0",
+ "unix_device_name": "/dev/sda",
+ "unix_device_number": {
+ "type": 98,
+ "major": 8,
+ "minor": 0,
+ "range": 16
+ },
+ "unix_device_names": [
+ "/dev/disk/by-id/usb-USB_Flash_Disk-0:0",
+ "/dev/disk/by-path/pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0",
+ "/dev/disk/by-path/pci-0000:00:14.0-usbv2-0:1:1.0-scsi-0:0:0:0",
+ "/dev/sda"
+ ],
+ "unix_device_name2": "/dev/sg0",
+ "unix_device_number2": {
+ "type": 99,
+ "major": 21,
+ "minor": 0,
+ "range": 1
+ },
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ },
+ {
+ "type": "disk_geo",
+ "cylinders": 15200,
+ "heads": 64,
+ "sectors": 32,
+ "size": "0x0",
+ "geo_type": "logical"
+ },
+ {
+ "type": "size",
+ "unit": "sectors",
+ "value_1": 31129600,
+ "value_2": 512
+ }
+ ],
+ "driver": "usb-storage",
+ "driver_module": "usb_storage",
+ "drivers": [
+ "sd",
+ "usb-storage"
+ ],
+ "driver_modules": [
+ "sd_mod",
+ "usb_storage"
+ ],
+ "module_alias": "usb:v090Cp3267d1100dc00dsc00dp00ic08isc06ip50in00"
+ }
+ ],
+ "graphics_card": [
+ {
+ "index": 38,
+ "attached_to": 0,
+ "class_list": [
+ "graphics_card",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 2
+ },
+ "base_class": {
+ "hex": "0003",
+ "name": "Display controller",
+ "value": 3
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "VGA compatible controller",
+ "value": 0
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "VGA",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "9bc5",
+ "value": 39877
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "revision": {
+ "hex": "0005",
+ "value": 5
+ },
+ "model": "Intel VGA compatible controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:02.0",
+ "sysfs_bus_id": "0000:00:02.0",
+ "resources": [
+ {
+ "type": "io",
+ "base": 20480,
+ "range": 64,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "irq",
+ "base": 147,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2684354560,
+ "range": 268435456,
+ "enabled": true,
+ "access": "read_only",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 2952790016,
+ "range": 16777216,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 786432,
+ "range": 131072,
+ "enabled": false,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 147,
+ "prog_if": 0
+ },
+ "driver": "i915",
+ "driver_module": "i915",
+ "drivers": [
+ "i915"
+ ],
+ "driver_modules": [
+ "i915"
+ ],
+ "module_alias": "pci:v00008086d00009BC5sv0000103Csd00008767bc03sc00i00",
+ "label": "Onboard - Video"
+ }
+ ],
+ "hub": [
+ {
+ "index": 51,
+ "attached_to": 39,
+ "class_list": [
+ "usb",
+ "hub"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010a",
+ "name": "Hub",
+ "value": 266
+ },
+ "vendor": {
+ "hex": "1d6b",
+ "name": "Linux 6.6.44 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0002",
+ "name": "xHCI Host Controller",
+ "value": 2
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.06",
+ "value": 0
+ },
+ "serial": "0000:00:14.0",
+ "model": "Linux 6.6.44 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-0:1.0",
+ "sysfs_bus_id": "1-0:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "hub",
+ "drivers": [
+ "hub"
+ ],
+ "module_alias": "usb:v1D6Bp0002d0606dc09dsc00dp01ic09isc00ip00in00"
+ },
+ {
+ "index": 56,
+ "attached_to": 39,
+ "class_list": [
+ "usb",
+ "hub"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010a",
+ "name": "Hub",
+ "value": 266
+ },
+ "vendor": {
+ "hex": "1d6b",
+ "name": "Linux 6.6.44 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0003",
+ "name": "xHCI Host Controller",
+ "value": 3
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.06",
+ "value": 0
+ },
+ "serial": "0000:00:14.0",
+ "model": "Linux 6.6.44 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb2/2-0:1.0",
+ "sysfs_bus_id": "2-0:1.0",
+ "detail": {
+ "device_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 3,
+ "interface_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "hub",
+ "drivers": [
+ "hub"
+ ],
+ "module_alias": "usb:v1D6Bp0003d0606dc09dsc00dp03ic09isc00ip00in00"
+ }
+ ],
+ "keyboard": [
+ {
+ "index": 53,
+ "attached_to": 51,
+ "class_list": [
+ "keyboard",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0108",
+ "name": "Keyboard",
+ "value": 264
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Keyboard",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "c52b",
+ "name": "USB Receiver",
+ "value": 50475
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "12.11",
+ "value": 0
+ },
+ "model": "Logitech USB Receiver",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0",
+ "sysfs_bus_id": "1-8:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 0,
+ "interface_class": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 1,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "driver_info": {
+ "type": "keyboard",
+ "xkb_rules": "xfree86",
+ "xkb_model": "pc104"
+ },
+ "module_alias": "usb:v046DpC52Bd1211dc00dsc00dp00ic03isc01ip01in00"
+ }
+ ],
+ "memory": [
+ {
+ "index": 19,
+ "attached_to": 0,
+ "class_list": [
+ "memory"
+ ],
+ "base_class": {
+ "hex": "0101",
+ "name": "Internally Used Class",
+ "value": 257
+ },
+ "sub_class": {
+ "hex": "0002",
+ "name": "Main Memory",
+ "value": 2
+ },
+ "model": "Main Memory",
+ "resources": [
+ {
+ "type": "mem",
+ "base": 0,
+ "range": 16594014208,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "unknown"
+ },
+ {
+ "type": "phys_mem",
+ "range": 16106127360
+ }
+ ]
+ }
+ ],
+ "monitor": [
+ {
+ "index": 41,
+ "attached_to": 38,
+ "class_list": [
+ "monitor"
+ ],
+ "base_class": {
+ "hex": "0100",
+ "name": "Monitor",
+ "value": 256
+ },
+ "sub_class": {
+ "hex": "0002",
+ "name": "LCD Monitor",
+ "value": 2
+ },
+ "vendor": {
+ "hex": "5a63",
+ "name": "VIEWSONIC",
+ "value": 23139
+ },
+ "device": {
+ "hex": "d22b",
+ "name": "VG2439 Series",
+ "value": 53803
+ },
+ "serial": "VBW184000686",
+ "model": "VIEWSONIC VG2439 Series",
+ "resources": [
+ {
+ "type": "monitor",
+ "width": 1024,
+ "height": 768,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1024,
+ "height": 768,
+ "vertical_frequency": 70,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1024,
+ "height": 768,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1280,
+ "height": 1024,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1600,
+ "height": 1200,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1600,
+ "height": 900,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1920,
+ "height": 1080,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 67,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 72,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 720,
+ "height": 400,
+ "vertical_frequency": 70,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 56,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 72,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 832,
+ "height": 624,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "size",
+ "unit": "mm",
+ "value_1": 521,
+ "value_2": 293
+ }
+ ],
+ "detail": {
+ "manufacture_year": 2018,
+ "manufacture_week": 40,
+ "vertical_sync": {
+ "min": 50,
+ "max": 75
+ },
+ "horizontal_sync": {
+ "min": 15,
+ "max": 82
+ },
+ "horizontal_sync_timings": {
+ "disp": 1920,
+ "sync_start": 2008,
+ "sync_end": 2052,
+ "total": 2200
+ },
+ "vertical_sync_timings": {
+ "disp": 1080,
+ "sync_start": 1084,
+ "sync_end": 1089,
+ "total": 1125
+ },
+ "clock": 148500,
+ "width": 1920,
+ "height": 1080,
+ "width_millimetres": 521,
+ "height_millimetres": 293,
+ "horizontal_flag": 43,
+ "vertical_flag": 43,
+ "vendor": "",
+ "name": "VG2439 Series"
+ },
+ "driver_info": {
+ "type": "display",
+ "width": 1920,
+ "height": 1080,
+ "vertical_sync": {
+ "min": 50,
+ "max": 75
+ },
+ "horizontal_sync": {
+ "min": 15,
+ "max": 82
+ },
+ "bandwidth": 0,
+ "horizontal_sync_timings": {
+ "disp": 1920,
+ "sync_start": 2008,
+ "sync_end": 2052,
+ "total": 2200
+ },
+ "vertical_sync_timings": {
+ "disp": 1080,
+ "sync_start": 1084,
+ "sync_end": 1089,
+ "total": 1125
+ },
+ "horizontal_flag": 43,
+ "vertical_flag": 43
+ }
+ },
+ {
+ "index": 42,
+ "attached_to": 38,
+ "class_list": [
+ "monitor"
+ ],
+ "base_class": {
+ "hex": "0100",
+ "name": "Monitor",
+ "value": 256
+ },
+ "vendor": {
+ "hex": "5a63",
+ "name": "VIEWSONIC",
+ "value": 23139
+ },
+ "device": {
+ "hex": "d22b",
+ "name": "VG2439 Series",
+ "value": 53803
+ },
+ "serial": "VBW191801652",
+ "model": "VIEWSONIC VG2439 Series",
+ "resources": [
+ {
+ "type": "monitor",
+ "width": 1024,
+ "height": 768,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1024,
+ "height": 768,
+ "vertical_frequency": 70,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1024,
+ "height": 768,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1280,
+ "height": 1024,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1600,
+ "height": 1200,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1600,
+ "height": 900,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1920,
+ "height": 1080,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 67,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 72,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 720,
+ "height": 400,
+ "vertical_frequency": 70,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 56,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 72,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 832,
+ "height": 624,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "size",
+ "unit": "mm",
+ "value_1": 521,
+ "value_2": 293
+ }
+ ],
+ "detail": {
+ "manufacture_year": 2019,
+ "manufacture_week": 18,
+ "vertical_sync": {
+ "min": 50,
+ "max": 75
+ },
+ "horizontal_sync": {
+ "min": 24,
+ "max": 82
+ },
+ "horizontal_sync_timings": {
+ "disp": 1920,
+ "sync_start": 2008,
+ "sync_end": 2052,
+ "total": 2200
+ },
+ "vertical_sync_timings": {
+ "disp": 1080,
+ "sync_start": 1084,
+ "sync_end": 1089,
+ "total": 1125
+ },
+ "clock": 148500,
+ "width": 1920,
+ "height": 1080,
+ "width_millimetres": 521,
+ "height_millimetres": 293,
+ "horizontal_flag": 43,
+ "vertical_flag": 43,
+ "vendor": "",
+ "name": "VG2439 Series"
+ },
+ "driver_info": {
+ "type": "display",
+ "width": 1920,
+ "height": 1080,
+ "vertical_sync": {
+ "min": 50,
+ "max": 75
+ },
+ "horizontal_sync": {
+ "min": 24,
+ "max": 82
+ },
+ "bandwidth": 0,
+ "horizontal_sync_timings": {
+ "disp": 1920,
+ "sync_start": 2008,
+ "sync_end": 2052,
+ "total": 2200
+ },
+ "vertical_sync_timings": {
+ "disp": 1080,
+ "sync_start": 1084,
+ "sync_end": 1089,
+ "total": 1125
+ },
+ "horizontal_flag": 43,
+ "vertical_flag": 43
+ }
+ }
+ ],
+ "mouse": [
+ {
+ "index": 46,
+ "attached_to": 51,
+ "class_list": [
+ "mouse",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0105",
+ "name": "Mouse",
+ "value": 261
+ },
+ "sub_class": {
+ "hex": "0003",
+ "name": "USB Mouse",
+ "value": 3
+ },
+ "vendor": {
+ "hex": "0461",
+ "name": "Colorado",
+ "value": 1121
+ },
+ "device": {
+ "hex": "4e66",
+ "name": "HP USB Optical Mouse",
+ "value": 20070
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "1.00",
+ "value": 0
+ },
+ "compat_vendor": "Unknown",
+ "compat_device": "Generic USB Mouse",
+ "model": "Colorado HP USB Optical Mouse",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0",
+ "sysfs_bus_id": "1-10:1.0",
+ "unix_device_name": "/dev/input/mice",
+ "unix_device_number": {
+ "type": 99,
+ "major": 13,
+ "minor": 63,
+ "range": 1
+ },
+ "unix_device_names": [
+ "/dev/input/mice"
+ ],
+ "unix_device_name2": "/dev/input/mouse1",
+ "unix_device_number2": {
+ "type": 99,
+ "major": 13,
+ "minor": 33,
+ "range": 1
+ },
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 1500000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 0,
+ "interface_class": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 2,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "driver_info": {
+ "type": "mouse",
+ "db_entry_0": [
+ "explorerps/2",
+ "exps2"
+ ],
+ "xf86": "explorerps/2",
+ "gpm": "exps2",
+ "buttons": -1,
+ "wheels": -1
+ },
+ "module_alias": "usb:v0461p4E66d0100dc00dsc00dp00ic03isc01ip02in00"
+ },
+ {
+ "index": 47,
+ "attached_to": 51,
+ "class_list": [
+ "mouse",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0105",
+ "name": "Mouse",
+ "value": 261
+ },
+ "sub_class": {
+ "hex": "0003",
+ "name": "USB Mouse",
+ "value": 3
+ },
+ "vendor": {
+ "hex": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "c52b",
+ "name": "USB Receiver",
+ "value": 50475
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "12.11",
+ "value": 0
+ },
+ "compat_vendor": "Unknown",
+ "compat_device": "Generic USB Mouse",
+ "model": "Logitech USB Receiver",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1",
+ "sysfs_bus_id": "1-8:1.1",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 0,
+ "interface_class": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 2,
+ "interface_number": 1,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "driver_info": {
+ "type": "mouse",
+ "db_entry_0": [
+ "explorerps/2",
+ "exps2"
+ ],
+ "xf86": "explorerps/2",
+ "gpm": "exps2",
+ "buttons": -1,
+ "wheels": -1
+ },
+ "module_alias": "usb:v046DpC52Bd1211dc00dsc00dp00ic03isc01ip02in01"
+ }
+ ],
+ "network_controller": [
+ {
+ "index": 25,
+ "attached_to": 27,
+ "class_list": [
+ "network_controller",
+ "pci",
+ "wlan_card"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 2,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0002",
+ "name": "Network controller",
+ "value": 2
+ },
+ "sub_class": {
+ "hex": "0082",
+ "name": "WLAN controller",
+ "value": 130
+ },
+ "vendor": {
+ "hex": "10ec",
+ "value": 4332
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "c822",
+ "value": 51234
+ },
+ "sub_device": {
+ "hex": "85f7",
+ "value": 34295
+ },
+ "model": "WLAN controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1c.7/0000:02:00.0",
+ "sysfs_bus_id": "0000:02:00.0",
+ "unix_device_name": "wlp2s0",
+ "unix_device_names": [
+ "wlp2s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 54
+ },
+ {
+ "type": "io",
+ "base": 12288,
+ "range": 256,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "irq",
+ "base": 149,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2971664384,
+ "range": 65536,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "phwaddr",
+ "address": 54
+ },
+ {
+ "type": "wlan",
+ "channels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "36",
+ "40",
+ "44",
+ "48",
+ "52",
+ "56",
+ "60",
+ "64",
+ "100",
+ "104",
+ "108",
+ "112",
+ "116",
+ "120",
+ "124",
+ "128",
+ "132",
+ "136",
+ "140",
+ "144",
+ "149"
+ ],
+ "frequencies": [
+ "2.412",
+ "2.417",
+ "2.422",
+ "2.427",
+ "2.432",
+ "2.437",
+ "2.442",
+ "2.447",
+ "2.452",
+ "2.457",
+ "2.462",
+ "5.18",
+ "5.2",
+ "5.22",
+ "5.24",
+ "5.26",
+ "5.28",
+ "5.3",
+ "5.32",
+ "5.5",
+ "5.52",
+ "5.54",
+ "5.56",
+ "5.58",
+ "5.6",
+ "5.62",
+ "5.64",
+ "5.66",
+ "5.68",
+ "5.7",
+ "5.72",
+ "5.745"
+ ],
+ "auth_modes": [
+ "open",
+ "sharedkey",
+ "wpa-psk",
+ "wpa-eap"
+ ],
+ "enc_modes": [
+ "WEP40",
+ "WEP104",
+ "TKIP",
+ "CCMP"
+ ]
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1287,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 149,
+ "prog_if": 0
+ },
+ "driver": "rtw_8822ce",
+ "driver_module": "rtw88_8822ce",
+ "drivers": [
+ "rtw_8822ce"
+ ],
+ "driver_modules": [
+ "rtw88_8822ce"
+ ],
+ "module_alias": "pci:v000010ECd0000C822sv0000103Csd000085F7bc02sc80i00"
+ },
+ {
+ "index": 29,
+ "attached_to": 22,
+ "class_list": [
+ "network_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 1,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0002",
+ "name": "Network controller",
+ "value": 2
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Ethernet controller",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "10ec",
+ "value": 4332
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "8168",
+ "value": 33128
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "revision": {
+ "hex": "0016",
+ "value": 22
+ },
+ "model": "Ethernet controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1c.0/0000:01:00.0",
+ "sysfs_bus_id": "0000:01:00.0",
+ "unix_device_name": "enp1s0",
+ "unix_device_names": [
+ "enp1s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 48
+ },
+ {
+ "type": "io",
+ "base": 16384,
+ "range": 256,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "irq",
+ "base": 17,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2972712960,
+ "range": 16384,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 2972729344,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "phwaddr",
+ "address": 48
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1287,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 17,
+ "prog_if": 0
+ },
+ "driver": "r8169",
+ "driver_module": "r8169",
+ "drivers": [
+ "r8169"
+ ],
+ "driver_modules": [
+ "r8169"
+ ],
+ "module_alias": "pci:v000010ECd00008168sv0000103Csd00008767bc02sc00i00"
+ }
+ ],
+ "network_interface": [
+ {
+ "index": 57,
+ "attached_to": 25,
+ "class_list": [
+ "network_interface"
+ ],
+ "base_class": {
+ "hex": "0107",
+ "name": "Network Interface",
+ "value": 263
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "Ethernet",
+ "value": 1
+ },
+ "model": "Ethernet network interface",
+ "sysfs_id": "/class/net/wlp2s0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:1c.7/0000:02:00.0",
+ "unix_device_name": "wlp2s0",
+ "unix_device_names": [
+ "wlp2s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 54
+ },
+ {
+ "type": "phwaddr",
+ "address": 54
+ }
+ ],
+ "driver": "rtw_8822ce",
+ "driver_module": "rtw88_8822ce",
+ "drivers": [
+ "rtw_8822ce"
+ ],
+ "driver_modules": [
+ "rtw88_8822ce"
+ ]
+ },
+ {
+ "index": 58,
+ "attached_to": 29,
+ "class_list": [
+ "network_interface"
+ ],
+ "base_class": {
+ "hex": "0107",
+ "name": "Network Interface",
+ "value": 263
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "Ethernet",
+ "value": 1
+ },
+ "model": "Ethernet network interface",
+ "sysfs_id": "/class/net/enp1s0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:1c.0/0000:01:00.0",
+ "unix_device_name": "enp1s0",
+ "unix_device_names": [
+ "enp1s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 48
+ },
+ {
+ "type": "phwaddr",
+ "address": 48
+ }
+ ],
+ "driver": "r8169",
+ "driver_module": "r8169",
+ "drivers": [
+ "r8169"
+ ],
+ "driver_modules": [
+ "r8169"
+ ]
+ },
+ {
+ "index": 59,
+ "attached_to": 0,
+ "class_list": [
+ "network_interface"
+ ],
+ "base_class": {
+ "hex": "0107",
+ "name": "Network Interface",
+ "value": 263
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Loopback",
+ "value": 0
+ },
+ "model": "Loopback network interface",
+ "sysfs_id": "/class/net/lo",
+ "unix_device_name": "lo",
+ "unix_device_names": [
+ "lo"
+ ]
+ }
+ ],
+ "pci": [
+ {
+ "index": 23,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 8
+ },
+ "base_class": {
+ "hex": "0008",
+ "name": "Generic system peripheral",
+ "value": 8
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "System peripheral",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "1911",
+ "value": 6417
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel System peripheral",
+ "sysfs_id": "/devices/pci0000:00/0000:00:08.0",
+ "sysfs_bus_id": "0000:00:08.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 255,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2973896704,
+ "range": 4096,
+ "enabled": false,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 0,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 255,
+ "prog_if": 0
+ },
+ "module_alias": "pci:v00008086d00001911sv0000103Csd00008767bc08sc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 26,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 20
+ },
+ "base_class": {
+ "hex": "0008",
+ "name": "Generic system peripheral",
+ "value": 8
+ },
+ "sub_class": {
+ "hex": "0005",
+ "value": 5
+ },
+ "pci_interface": {
+ "hex": "0001",
+ "value": 1
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06f5",
+ "value": 1781
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel Generic system peripheral",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.5",
+ "sysfs_bus_id": "0000:00:14.5",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 19,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2973884416,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 5,
+ "command": 262,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 19,
+ "prog_if": 1
+ },
+ "driver": "sdhci-pci",
+ "driver_module": "sdhci_pci",
+ "drivers": [
+ "sdhci-pci"
+ ],
+ "driver_modules": [
+ "sdhci_pci"
+ ],
+ "module_alias": "pci:v00008086d000006F5sv0000103Csd00008767bc08sc05i01",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 28,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 22
+ },
+ "base_class": {
+ "hex": "0007",
+ "name": "Communication controller",
+ "value": 7
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "Communication controller",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06e0",
+ "value": 1760
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel Communication controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:16.0",
+ "sysfs_bus_id": "0000:00:16.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 145,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2973876224,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 145,
+ "prog_if": 0
+ },
+ "driver": "mei_me",
+ "driver_module": "mei_me",
+ "drivers": [
+ "mei_me"
+ ],
+ "driver_modules": [
+ "mei_me"
+ ],
+ "module_alias": "pci:v00008086d000006E0sv0000103Csd00008767bc07sc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 30,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "base_class": {
+ "hex": "000c",
+ "name": "Serial bus controller",
+ "value": 12
+ },
+ "sub_class": {
+ "hex": "0080",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06a4",
+ "value": 1700
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel Serial bus controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.5",
+ "sysfs_bus_id": "0000:00:1f.5",
+ "resources": [
+ {
+ "type": "mem",
+ "base": 4261478400,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 5,
+ "command": 1282,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 0,
+ "prog_if": 0
+ },
+ "driver": "intel-spi",
+ "driver_module": "spi_intel_pci",
+ "drivers": [
+ "intel-spi"
+ ],
+ "driver_modules": [
+ "spi_intel_pci"
+ ],
+ "module_alias": "pci:v00008086d000006A4sv0000103Csd00008767bc0Csc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 31,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 30
+ },
+ "base_class": {
+ "hex": "0007",
+ "name": "Communication controller",
+ "value": 7
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "Communication controller",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06a8",
+ "value": 1704
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel Communication controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1e.0",
+ "sysfs_bus_id": "0000:00:1e.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 20,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2659192832,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 262,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 20,
+ "prog_if": 0
+ },
+ "driver": "intel-lpss",
+ "driver_module": "intel_lpss_pci",
+ "drivers": [
+ "intel-lpss"
+ ],
+ "driver_modules": [
+ "intel_lpss_pci"
+ ],
+ "module_alias": "pci:v00008086d000006A8sv0000103Csd00008767bc07sc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 34,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 18
+ },
+ "base_class": {
+ "hex": "0011",
+ "name": "Signal processing controller",
+ "value": 17
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "Signal processing controller",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06f9",
+ "value": 1785
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel Signal processing controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:12.0",
+ "sysfs_bus_id": "0000:00:12.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2973892608,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 258,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 16,
+ "prog_if": 0
+ },
+ "driver": "intel_pch_thermal",
+ "driver_module": "intel_pch_thermal",
+ "drivers": [
+ "intel_pch_thermal"
+ ],
+ "driver_modules": [
+ "intel_pch_thermal"
+ ],
+ "module_alias": "pci:v00008086d000006F9sv0000103Csd00008767bc11sc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 35,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 21
+ },
+ "base_class": {
+ "hex": "000c",
+ "name": "Serial bus controller",
+ "value": 12
+ },
+ "sub_class": {
+ "hex": "0080",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06e8",
+ "value": 1768
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel Serial bus controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:15.0",
+ "sysfs_bus_id": "0000:00:15.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2659188736,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 262,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 16,
+ "prog_if": 0
+ },
+ "driver": "intel-lpss",
+ "driver_module": "intel_lpss_pci",
+ "drivers": [
+ "intel-lpss"
+ ],
+ "driver_modules": [
+ "intel_lpss_pci"
+ ],
+ "module_alias": "pci:v00008086d000006E8sv0000103Csd00008767bc0Csc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 37,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 20
+ },
+ "base_class": {
+ "hex": "0005",
+ "name": "Memory controller",
+ "value": 5
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "RAM memory",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06ef",
+ "value": 1775
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel RAM memory",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.2",
+ "sysfs_bus_id": "0000:00:14.2",
+ "resources": [
+ {
+ "type": "mem",
+ "base": 2973851648,
+ "range": 8192,
+ "enabled": false,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 2973888512,
+ "range": 4096,
+ "enabled": false,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 2,
+ "command": 256,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 0,
+ "prog_if": 0
+ },
+ "module_alias": "pci:v00008086d000006EFsv0000103Csd00008767bc05sc00i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 40,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "base_class": {
+ "hex": "000c",
+ "name": "Serial bus controller",
+ "value": 12
+ },
+ "sub_class": {
+ "hex": "0005",
+ "name": "SMBus",
+ "value": 5
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06a3",
+ "value": 1699
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel SMBus",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.4",
+ "sysfs_bus_id": "0000:00:1f.4",
+ "resources": [
+ {
+ "type": "io",
+ "base": 61344,
+ "range": 32,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2973859840,
+ "range": 256,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 4,
+ "command": 259,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 16,
+ "prog_if": 0
+ },
+ "driver": "i801_smbus",
+ "driver_module": "i2c_i801",
+ "drivers": [
+ "i801_smbus"
+ ],
+ "driver_modules": [
+ "i2c_i801"
+ ],
+ "module_alias": "pci:v00008086d000006A3sv0000103Csd00008767bc0Csc05i00",
+ "label": "Onboard - Other"
+ }
+ ],
+ "sound": [
+ {
+ "index": 32,
+ "attached_to": 0,
+ "class_list": [
+ "sound",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "base_class": {
+ "hex": "0004",
+ "name": "Multimedia controller",
+ "value": 4
+ },
+ "sub_class": {
+ "hex": "0003",
+ "value": 3
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06c8",
+ "value": 1736
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel Multimedia controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.3",
+ "sysfs_bus_id": "0000:00:1f.3",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 148,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2969567232,
+ "range": 1048576,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 2973827072,
+ "range": 16384,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 3,
+ "command": 1286,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 148,
+ "prog_if": 0
+ },
+ "driver": "snd_hda_intel",
+ "driver_module": "snd_hda_intel",
+ "drivers": [
+ "snd_hda_intel"
+ ],
+ "driver_modules": [
+ "snd_hda_intel"
+ ],
+ "module_alias": "pci:v00008086d000006C8sv0000103Csd00008767bc04sc03i00",
+ "label": "Onboard - Sound"
+ },
+ {
+ "index": 49,
+ "attached_to": 51,
+ "class_list": [
+ "sound",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0004",
+ "name": "Multimedia controller",
+ "value": 4
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "Multimedia audio controller",
+ "value": 1
+ },
+ "vendor": {
+ "hex": "2011",
+ "name": "AKAI",
+ "value": 8209
+ },
+ "device": {
+ "hex": "0715",
+ "name": "MPKmini2",
+ "value": 1813
+ },
+ "serial": "0001",
+ "model": "AKAI MPKmini2",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.1",
+ "sysfs_bus_id": "1-9:1.1",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 0,
+ "interface_class": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 0,
+ "interface_number": 1,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "snd-usb-audio",
+ "driver_module": "snd_usb_audio",
+ "drivers": [
+ "snd-usb-audio"
+ ],
+ "driver_modules": [
+ "snd_usb_audio"
+ ],
+ "module_alias": "usb:v2011p0715d0000dc00dsc00dp00ic01isc01ip00in01"
+ },
+ {
+ "index": 54,
+ "attached_to": 51,
+ "class_list": [
+ "sound",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0004",
+ "name": "Multimedia controller",
+ "value": 4
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "Multimedia audio controller",
+ "value": 1
+ },
+ "vendor": {
+ "hex": "2011",
+ "name": "AKAI",
+ "value": 8209
+ },
+ "device": {
+ "hex": "0715",
+ "name": "MPKmini2",
+ "value": 1813
+ },
+ "serial": "0001",
+ "model": "AKAI MPKmini2",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.2",
+ "sysfs_bus_id": "1-9:1.2",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 0,
+ "interface_class": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_subclass": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_protocol": 0,
+ "interface_number": 2,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "snd-usb-audio",
+ "driver_module": "snd_usb_audio",
+ "drivers": [
+ "snd-usb-audio"
+ ],
+ "driver_modules": [
+ "snd_usb_audio"
+ ],
+ "module_alias": "usb:v2011p0715d0000dc00dsc00dp00ic01isc03ip00in02"
+ }
+ ],
+ "storage_controller": [
+ {
+ "index": 20,
+ "attached_to": 36,
+ "class_list": [
+ "storage_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 3,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0001",
+ "name": "Mass storage controller",
+ "value": 1
+ },
+ "sub_class": {
+ "hex": "0008",
+ "value": 8
+ },
+ "pci_interface": {
+ "hex": "0002",
+ "value": 2
+ },
+ "vendor": {
+ "hex": "1c5c",
+ "value": 7260
+ },
+ "sub_vendor": {
+ "hex": "1c5c",
+ "value": 7260
+ },
+ "device": {
+ "hex": "1339",
+ "value": 4921
+ },
+ "sub_device": {
+ "hex": "0000",
+ "value": 0
+ },
+ "model": "Mass storage controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:03:00.0",
+ "sysfs_bus_id": "0000:03:00.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2970615808,
+ "range": 16384,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1287,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 16,
+ "prog_if": 2
+ },
+ "driver": "nvme",
+ "driver_module": "nvme",
+ "drivers": [
+ "nvme"
+ ],
+ "driver_modules": [
+ "nvme"
+ ],
+ "module_alias": "pci:v00001C5Cd00001339sv00001C5Csd00000000bc01sc08i02"
+ },
+ {
+ "index": 21,
+ "attached_to": 0,
+ "class_list": [
+ "storage_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 23
+ },
+ "base_class": {
+ "hex": "0001",
+ "name": "Mass storage controller",
+ "value": 1
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "RAID bus controller",
+ "value": 4
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "2822",
+ "value": 10274
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel RAID bus controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:17.0",
+ "sysfs_bus_id": "0000:00:17.0",
+ "resources": [
+ {
+ "type": "io",
+ "base": 20576,
+ "range": 32,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "io",
+ "base": 20608,
+ "range": 4,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "io",
+ "base": 20624,
+ "range": 8,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2973843456,
+ "range": 8192,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 2973868032,
+ "range": 2048,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 2973872128,
+ "range": 256,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1287,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 16,
+ "prog_if": 0
+ },
+ "driver": "ahci",
+ "driver_module": "ahci",
+ "drivers": [
+ "ahci"
+ ],
+ "driver_modules": [
+ "ahci"
+ ],
+ "module_alias": "pci:v00008086d00002822sv0000103Csd00008767bc01sc04i00",
+ "label": "Onboard - Other"
+ }
+ ],
+ "system": {
+ "form_factor": "desktop"
+ },
+ "usb": [
+ {
+ "index": 45,
+ "attached_to": 51,
+ "class_list": [
+ "usb",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "2011",
+ "name": "AKAI",
+ "value": 8209
+ },
+ "device": {
+ "hex": "0715",
+ "name": "MPKmini2",
+ "value": 1813
+ },
+ "serial": "0001",
+ "model": "AKAI MPKmini2",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0",
+ "sysfs_bus_id": "1-9:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 0,
+ "interface_class": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "module_alias": "usb:v2011p0715d0000dc00dsc00dp00ic03isc00ip00in00"
+ },
+ {
+ "index": 50,
+ "attached_to": 51,
+ "class_list": [
+ "usb",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "c52b",
+ "name": "USB Receiver",
+ "value": 50475
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "12.11",
+ "value": 0
+ },
+ "model": "Logitech USB Receiver",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2",
+ "sysfs_bus_id": "1-8:1.2",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 0,
+ "interface_class": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 2,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "module_alias": "usb:v046DpC52Bd1211dc00dsc00dp00ic03isc00ip00in02"
+ }
+ ],
+ "usb_controller": [
+ {
+ "index": 39,
+ "attached_to": 0,
+ "class_list": [
+ "usb_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 20
+ },
+ "base_class": {
+ "hex": "000c",
+ "name": "Serial bus controller",
+ "value": 12
+ },
+ "sub_class": {
+ "hex": "0003",
+ "name": "USB Controller",
+ "value": 3
+ },
+ "pci_interface": {
+ "hex": "0030",
+ "value": 48
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "103c",
+ "value": 4156
+ },
+ "device": {
+ "hex": "06ed",
+ "value": 1773
+ },
+ "sub_device": {
+ "hex": "8767",
+ "value": 34663
+ },
+ "model": "Intel USB Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0",
+ "sysfs_bus_id": "0000:00:14.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 125,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 2973761536,
+ "range": 65536,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1286,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 125,
+ "prog_if": 48
+ },
+ "driver": "xhci_hcd",
+ "driver_module": "xhci_pci",
+ "drivers": [
+ "xhci_hcd"
+ ],
+ "driver_modules": [
+ "xhci_pci"
+ ],
+ "module_alias": "pci:v00008086d000006EDsv0000103Csd00008767bc0Csc03i30",
+ "label": "Onboard - Other"
+ }
+ ]
+ },
+ "smbios": {
+ "bios": {
+ "handle": 0,
+ "vendor": "AMI",
+ "version": "F.23",
+ "date": "01/13/2021",
+ "features": [
+ "PCI supported",
+ "PnP supported",
+ "BIOS flashable",
+ "BIOS shadowing allowed",
+ "CD boot supported",
+ "Selectable boot supported",
+ "EDD spec supported",
+ "Print Screen supported",
+ "8042 Keyboard Services supported",
+ "Serial Services supported",
+ "Printer Services supported",
+ "ACPI supported",
+ "USB Legacy supported",
+ "BIOS Boot Spec supported",
+ "F12 Network boot supported"
+ ],
+ "start_address": "0xf0000",
+ "rom_size": 16777216
+ },
+ "board": {
+ "handle": 2,
+ "manufacturer": "HP",
+ "product": "8767",
+ "version": "A (SMVB)",
+ "board_type": {
+ "hex": "000a",
+ "name": "Motherboard",
+ "value": 10
+ },
+ "features": [
+ "Hosting Board",
+ "Removable",
+ "Replaceable"
+ ],
+ "location": "",
+ "chassis": 3
+ },
+ "cache": [
+ {
+ "handle": 63,
+ "socket": "L1 Cache",
+ "size_max": 512,
+ "size_current": 512,
+ "speed": 0,
+ "mode": {
+ "hex": "0001",
+ "name": "Write Back",
+ "value": 1
+ },
+ "enabled": true,
+ "location": {
+ "hex": "0000",
+ "name": "Internal",
+ "value": 0
+ },
+ "socketed": false,
+ "level": 0,
+ "ecc": {
+ "hex": "0004",
+ "name": "Parity",
+ "value": 4
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0007",
+ "name": "8-way Set-Associative",
+ "value": 7
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 64,
+ "socket": "L2 Cache",
+ "size_max": 2048,
+ "size_current": 2048,
+ "speed": 0,
+ "mode": {
+ "hex": "0001",
+ "name": "Write Back",
+ "value": 1
+ },
+ "enabled": true,
+ "location": {
+ "hex": "0000",
+ "name": "Internal",
+ "value": 0
+ },
+ "socketed": false,
+ "level": 1,
+ "ecc": {
+ "hex": "0005",
+ "name": "Single-bit",
+ "value": 5
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0005",
+ "name": "4-way Set-Associative",
+ "value": 5
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 65,
+ "socket": "L3 Cache",
+ "size_max": 16384,
+ "size_current": 16384,
+ "speed": 0,
+ "mode": {
+ "hex": "0001",
+ "name": "Write Back",
+ "value": 1
+ },
+ "enabled": true,
+ "location": {
+ "hex": "0000",
+ "name": "Internal",
+ "value": 0
+ },
+ "socketed": false,
+ "level": 2,
+ "ecc": {
+ "hex": "0006",
+ "name": "Multi-bit",
+ "value": 6
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0008",
+ "name": "16-way Set-Associative",
+ "value": 8
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ }
+ ],
+ "chassis": [
+ {
+ "handle": 3,
+ "manufacturer": "HP",
+ "version": "",
+ "chassis_type": {
+ "hex": "0003",
+ "name": "Desktop",
+ "value": 3
+ },
+ "lock_present": false,
+ "bootup_state": {
+ "hex": "0003",
+ "name": "Safe",
+ "value": 3
+ },
+ "power_state": {
+ "hex": "0003",
+ "name": "Safe",
+ "value": 3
+ },
+ "thermal_state": {
+ "hex": "0003",
+ "name": "Safe",
+ "value": 3
+ },
+ "security_state": {
+ "hex": "0003",
+ "name": "None",
+ "value": 3
+ },
+ "oem": "0x38373637"
+ }
+ ],
+ "config": {
+ "handle": 27,
+ "options": [
+ "Default string"
+ ]
+ },
+ "group_associations": [
+ {
+ "handle": 89,
+ "name": "$MEI",
+ "handles": [
+ 0
+ ]
+ },
+ {
+ "handle": 92,
+ "name": "Firmware Version Info",
+ "handles": [
+ 253403070522,
+ 257698037819,
+ 261993005116,
+ 266287972413,
+ 373662154814,
+ 4488240824407
+ ]
+ }
+ ],
+ "language": [
+ {
+ "handle": 88,
+ "languages": [
+ "en|US|iso8859-1",
+ "fr|FR|iso8859-1",
+ "es|ES|iso8859-1",
+ "de|DE|iso8859-1",
+ "it|IT|iso8859-1",
+ "da|DK|iso8859-1",
+ "fi|FI|iso8859-1",
+ "nl|NL|iso8859-1",
+ "no|NO|iso8859-1",
+ "pt|PT|iso8859-1",
+ "sv|SE|iso8859-1",
+ "ja|JP|unicode",
+ "zh|CN|unicode"
+ ]
+ }
+ ],
+ "memory_array": [
+ {
+ "handle": 51,
+ "location": {
+ "hex": "0003",
+ "name": "Motherboard",
+ "value": 3
+ },
+ "usage": {
+ "hex": "0003",
+ "name": "System memory",
+ "value": 3
+ },
+ "ecc": {
+ "hex": "0003",
+ "name": "None",
+ "value": 3
+ },
+ "max_size": "0x4000000",
+ "error_handle": 65534,
+ "slots": 4
+ }
+ ],
+ "memory_array_mapped_address": [
+ {
+ "handle": 56,
+ "array_handle": 51,
+ "start_address": "0x0",
+ "end_address": "0x400000000",
+ "part_width": 1
+ }
+ ],
+ "memory_device": [
+ {
+ "handle": 52,
+ "location": "DIMM2",
+ "bank_location": "BANK 0",
+ "manufacturer": "",
+ "part_number": "",
+ "array_handle": 51,
+ "error_handle": 65534,
+ "width": 0,
+ "ecc_bits": 0,
+ "size": 0,
+ "form_factor": {
+ "hex": "0001",
+ "name": "Other",
+ "value": 1
+ },
+ "set": 0,
+ "memory_type": {
+ "hex": "0002",
+ "name": "Unknown",
+ "value": 2
+ },
+ "memory_type_details": null,
+ "speed": 0
+ },
+ {
+ "handle": 54,
+ "location": "DIMM1",
+ "bank_location": "BANK 2",
+ "manufacturer": "Samsung",
+ "part_number": "M378A2G43AB3-CWE",
+ "array_handle": 51,
+ "error_handle": 65534,
+ "width": 64,
+ "ecc_bits": 0,
+ "size": 16777216,
+ "form_factor": {
+ "hex": "0009",
+ "name": "DIMM",
+ "value": 9
+ },
+ "set": 0,
+ "memory_type": {
+ "hex": "001a",
+ "name": "Other",
+ "value": 26
+ },
+ "memory_type_details": [
+ "Synchronous"
+ ],
+ "speed": 3200
+ }
+ ],
+ "memory_device_mapped_address": [
+ {
+ "handle": 57,
+ "memory_device_handle": 54,
+ "array_map_handle": 56,
+ "start_address": "0x0",
+ "end_address": "0x400000000",
+ "row_position": 1,
+ "interleave_position": 0,
+ "interleave_depth": 0
+ }
+ ],
+ "port_connector": [
+ {
+ "handle": 4,
+ "port_type": {
+ "hex": "001f",
+ "name": "Network Port",
+ "value": 31
+ },
+ "internal_connector_type": {
+ "hex": "000b",
+ "name": "RJ-45",
+ "value": 11
+ },
+ "internal_reference_designator": "LJ9",
+ "external_connector_type": {
+ "hex": "000b",
+ "name": "RJ-45",
+ "value": 11
+ },
+ "external_reference_designator": "Network"
+ },
+ {
+ "handle": 5,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "internal_reference_designator": "LJ9",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "Rear USB 2.0 Port 3"
+ },
+ {
+ "handle": 6,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "internal_reference_designator": "LJ9",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "Rear USB 2.0 Port 5"
+ },
+ {
+ "handle": 7,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "internal_reference_designator": "J10",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "Rear USB 2.0 Port 6"
+ },
+ {
+ "handle": 8,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "internal_reference_designator": "J10",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "Rear USB 2.0 Port 8"
+ },
+ {
+ "handle": 9,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "internal_reference_designator": "J91",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "Front USB 3.1 Port 0"
+ },
+ {
+ "handle": 10,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "internal_reference_designator": "J70",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "Front USB 3.1 Port 4"
+ },
+ {
+ "handle": 11,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "internal_reference_designator": "J71",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "Front USB 3.1 Port 7"
+ },
+ {
+ "handle": 12,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "internal_reference_designator": "J90",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "Front USB 3.1 Port 9"
+ },
+ {
+ "handle": 13,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "internal_reference_designator": "J8",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "Front TYPE C"
+ },
+ {
+ "handle": 14,
+ "port_type": {
+ "hex": "001c",
+ "name": "Video Port",
+ "value": 28
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "HJ206",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "HDMI"
+ },
+ {
+ "handle": 15,
+ "port_type": {
+ "hex": "001c",
+ "name": "Video Port",
+ "value": 28
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "VJ69",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "VGA"
+ },
+ {
+ "handle": 16,
+ "port_type": {
+ "hex": "001d",
+ "name": "Audio Port",
+ "value": 29
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "AJ78/AJ1",
+ "external_connector_type": {
+ "hex": "001f",
+ "name": "Mini-jack [headphones]",
+ "value": 31
+ },
+ "external_reference_designator": "Audio Jack"
+ },
+ {
+ "handle": 17,
+ "port_type": {
+ "hex": "001d",
+ "name": "Audio Port",
+ "value": 29
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "AJ76",
+ "external_connector_type": {
+ "hex": "001f",
+ "name": "Mini-jack [headphones]",
+ "value": 31
+ },
+ "external_reference_designator": "Front Combo Jack"
+ },
+ {
+ "handle": 18,
+ "port_type": {
+ "hex": "0020",
+ "name": "Other",
+ "value": 32
+ },
+ "internal_connector_type": {
+ "hex": "0022",
+ "name": "Other",
+ "value": 34
+ },
+ "internal_reference_designator": "SATA0",
+ "external_connector_type": {
+ "hex": "0022",
+ "name": "Other",
+ "value": 34
+ },
+ "external_reference_designator": "SATA0"
+ },
+ {
+ "handle": 19,
+ "port_type": {
+ "hex": "0020",
+ "name": "Other",
+ "value": 32
+ },
+ "internal_connector_type": {
+ "hex": "0022",
+ "name": "Other",
+ "value": 34
+ },
+ "internal_reference_designator": "SATA1",
+ "external_connector_type": {
+ "hex": "0022",
+ "name": "Other",
+ "value": 34
+ },
+ "external_reference_designator": "SATA1"
+ },
+ {
+ "handle": 20,
+ "port_type": {
+ "hex": "0020",
+ "name": "Other",
+ "value": 32
+ },
+ "internal_connector_type": {
+ "hex": "0022",
+ "name": "Other",
+ "value": 34
+ },
+ "internal_reference_designator": "SATA2",
+ "external_connector_type": {
+ "hex": "0022",
+ "name": "Other",
+ "value": 34
+ },
+ "external_reference_designator": "SATA2"
+ },
+ {
+ "handle": 21,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "KJ166",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "CARD READER"
+ }
+ ],
+ "processor": [
+ {
+ "handle": 66,
+ "socket": "U3E1",
+ "socket_type": {
+ "hex": "0001",
+ "name": "Other",
+ "value": 1
+ },
+ "socket_populated": true,
+ "manufacturer": "Intel(R) Corporation",
+ "version": "Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz",
+ "part": "",
+ "processor_type": {
+ "hex": "0003",
+ "name": "CPU",
+ "value": 3
+ },
+ "processor_family": {
+ "hex": "00c6",
+ "name": "Other",
+ "value": 198
+ },
+ "processor_status": {
+ "hex": "0001",
+ "name": "Enabled",
+ "value": 1
+ },
+ "clock_ext": 100,
+ "clock_max": 8300,
+ "cache_handle_l1": 63,
+ "cache_handle_l2": 64,
+ "cache_handle_l3": 65
+ }
+ ],
+ "slot": [
+ {
+ "handle": 22,
+ "designation": "PCIE_x16",
+ "slot_type": {
+ "hex": "00a5",
+ "name": "Other",
+ "value": 165
+ },
+ "bus_width": {
+ "hex": "000d",
+ "name": "Other",
+ "value": 13
+ },
+ "usage": {
+ "hex": "0003",
+ "name": "Available",
+ "value": 3
+ },
+ "length": {
+ "hex": "0004",
+ "name": "Long",
+ "value": 4
+ },
+ "id": 0,
+ "features": [
+ "3.3 V",
+ "Shared",
+ "PME#"
+ ]
+ },
+ {
+ "handle": 23,
+ "designation": "M2_WIFI",
+ "slot_type": {
+ "hex": "00a5",
+ "name": "Other",
+ "value": 165
+ },
+ "bus_width": {
+ "hex": "0008",
+ "name": "Other",
+ "value": 8
+ },
+ "usage": {
+ "hex": "0004",
+ "name": "In Use",
+ "value": 4
+ },
+ "length": {
+ "hex": "0003",
+ "name": "Short",
+ "value": 3
+ },
+ "id": 1,
+ "features": [
+ "3.3 V",
+ "Shared",
+ "PME#"
+ ]
+ },
+ {
+ "handle": 24,
+ "designation": "M2_2280",
+ "slot_type": {
+ "hex": "00a5",
+ "name": "Other",
+ "value": 165
+ },
+ "bus_width": {
+ "hex": "000a",
+ "name": "Other",
+ "value": 10
+ },
+ "usage": {
+ "hex": "0004",
+ "name": "In Use",
+ "value": 4
+ },
+ "length": {
+ "hex": "0003",
+ "name": "Short",
+ "value": 3
+ },
+ "id": 2,
+ "features": [
+ "3.3 V",
+ "Shared",
+ "PME#"
+ ]
+ },
+ {
+ "handle": 25,
+ "designation": "PCIE_x1",
+ "slot_type": {
+ "hex": "00a5",
+ "name": "Other",
+ "value": 165
+ },
+ "bus_width": {
+ "hex": "0008",
+ "name": "Other",
+ "value": 8
+ },
+ "usage": {
+ "hex": "0003",
+ "name": "Available",
+ "value": 3
+ },
+ "length": {
+ "hex": "0003",
+ "name": "Short",
+ "value": 3
+ },
+ "id": 3,
+ "features": [
+ "3.3 V",
+ "Shared",
+ "PME#"
+ ]
+ }
+ ],
+ "system": {
+ "handle": 1,
+ "manufacturer": "HP",
+ "product": "HP ENVY TE01-1xxx",
+ "version": "",
+ "wake_up": {
+ "hex": "0006",
+ "name": "Power Switch",
+ "value": 6
+ }
+ }
+ }
+}
diff --git a/hosts/jupiter/home.nix b/hosts/jupiter/home.nix
new file mode 100644
index 0000000..ffc20ab
--- /dev/null
+++ b/hosts/jupiter/home.nix
@@ -0,0 +1,11 @@
+{pkgs, ...}: {
+ home.preferXdgDirectories = true;
+ home.packages = with pkgs; [
+ bambu-studio
+ freecad-wayland
+ gimp
+ wine64
+ ];
+
+ home.stateVersion = "25.05";
+}
diff --git a/hosts/jupiter/system.nix b/hosts/jupiter/system.nix
new file mode 100644
index 0000000..faef253
--- /dev/null
+++ b/hosts/jupiter/system.nix
@@ -0,0 +1,15 @@
+{inputs, ...}: {
+ imports = [
+ inputs.disko.nixosModules.disko
+ ./disks.nix
+
+ inputs.nixos-facter-modules.nixosModules.facter
+ {facter.reportPath = ./facter.json;}
+
+ ../../system/nix.nix
+ ];
+
+ systemd.network.wait-online.enable = false; # fix for weird wifi issue
+
+ system.stateVersion = "25.05";
+}
diff --git a/hosts/mercury/battery.nix b/hosts/mercury/battery.nix
new file mode 100644
index 0000000..ff7e59e
--- /dev/null
+++ b/hosts/mercury/battery.nix
@@ -0,0 +1,47 @@
+{pkgs, ...}: {
+ # auto-cpufreq
+ services.power-profiles-daemon.enable = false; # conflicts with auto-cpufreq
+ services.tlp.enable = false; # conflicts with auto-cpufreq
+ services.thermald.enable = true; # does not conflict, recomended to run with auto-cpufreq
+ services.auto-cpufreq = {
+ enable = true;
+ settings = {
+ charger = {
+ governor = "performance";
+ energy_performance_preference = "performance";
+ turbo = "auto";
+ };
+ battery = {
+ governor = "powersave";
+ energy_performance_preference = "power";
+ turbo = "never";
+ };
+ };
+ };
+
+ # Undervolt
+ services.undervolt = {
+ enable = true;
+ useTimer = false;
+ # power-limit-long
+ p1 = {
+ window = 1; # no clue what this means
+ limit = 40;
+ };
+
+ # power-limit-short
+ p2 = {
+ window = 1;
+ limit = 50;
+ };
+
+ coreOffset = -50; # also applied to cache
+ gpuOffset = -10;
+ };
+
+ # environment.systemPackages = with pkgs; [
+ # undervolt
+ # s-tui
+ # stress
+ # ];
+}
diff --git a/hosts/mercury/config.nix b/hosts/mercury/config.nix
new file mode 100644
index 0000000..60c1c0c
--- /dev/null
+++ b/hosts/mercury/config.nix
@@ -0,0 +1,73 @@
+{inputs, ...}: {
+ nix-furnace = {
+ extraSystemModules = [
+ inputs.hjem.nixosModules.default
+ ./system.nix
+ ./disks.nix
+ ];
+ extraHomeModules = [
+ ./home.nix
+ ];
+ };
+
+ collinux = {
+ theme = "catppuccin";
+
+ user = {
+ name = "collin";
+ password = "$y$j9T$08yFysn8jr9K4Wk.hYXbG0$NzY9vIbNknJViA..Jw.vF8wmQtBgEZZU.cdLQOmDvU2";
+ };
+
+ desktop = {
+ sway.enable = true;
+ wallpaper = ./wallpaper.jpg;
+ components.fuzzel.enable = true;
+ components.dunst.enable = true;
+
+ programs = {
+ firefox.enable = true;
+ foot.enable = true;
+ musescore.enable = true;
+ };
+ };
+
+ services = {
+ audio.enable = true;
+ networking = {
+ enable = true;
+ wifiDaemon = "iwd";
+ };
+ bluetooth.enable = true;
+ };
+
+ terminal = {
+ shells.fish.enable = true;
+
+ programs = {
+ starship.enable = true;
+ tmux.enable = true;
+ lazygit.enable = true;
+
+ git = {
+ enable = true;
+ userName = "Collin Williams";
+ userEmail = "96917990+bluedragon1221@users.noreply.github.com";
+ };
+
+ nh.enable = true;
+ cmus.enable = true;
+
+ helix = {
+ enable = true;
+ hardMode = true;
+ };
+ };
+ };
+
+ boot = {
+ bootloader = "systemd-boot";
+ plymouth.enable = true;
+ secureBoot.enable = true;
+ };
+ };
+}
diff --git a/hosts/mercury/disks.nix b/hosts/mercury/disks.nix
new file mode 100644
index 0000000..ffa0871
--- /dev/null
+++ b/hosts/mercury/disks.nix
@@ -0,0 +1,14 @@
+{
+ # TODO: Replace this with disko eventually
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-uuid/3d80a86b-3268-4209-a833-b531b8bc0ebc";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-uuid/45A4-2E5B";
+ fsType = "vfat";
+ options = ["fmask=0022" "dmask=0022"];
+ };
+}
diff --git a/hosts/mercury/facter.json b/hosts/mercury/facter.json
new file mode 100644
index 0000000..17aa2a1
--- /dev/null
+++ b/hosts/mercury/facter.json
@@ -0,0 +1,4072 @@
+{
+ "version": 1,
+ "system": "x86_64-linux",
+ "virtualisation": "none",
+ "hardware": {
+ "bios": {
+ "apm_info": {
+ "supported": false,
+ "enabled": false,
+ "version": 0,
+ "sub_version": 0,
+ "bios_flags": 0
+ },
+ "vbe_info": {
+ "version": 0,
+ "video_memory": 0
+ },
+ "pnp": false,
+ "pnp_id": 0,
+ "lba_support": false,
+ "low_memory_size": 0,
+ "smbios_version": 768
+ },
+ "bluetooth": [
+ {
+ "index": 42,
+ "attached_to": 44,
+ "class_list": [
+ "usb",
+ "bluetooth"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0115",
+ "name": "Bluetooth Device",
+ "value": 277
+ },
+ "vendor": {
+ "hex": "8087",
+ "value": 32903
+ },
+ "device": {
+ "hex": "0a2b",
+ "value": 2603
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "0.10",
+ "value": 0
+ },
+ "model": "Bluetooth Device",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0",
+ "sysfs_bus_id": "1-7:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "device_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 1,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "btusb",
+ "driver_module": "btusb",
+ "drivers": [
+ "btusb"
+ ],
+ "driver_modules": [
+ "btusb"
+ ],
+ "module_alias": "usb:v8087p0A2Bd0010dcE0dsc01dp01icE0isc01ip01in00"
+ },
+ {
+ "index": 47,
+ "attached_to": 44,
+ "class_list": [
+ "usb",
+ "bluetooth"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0115",
+ "name": "Bluetooth Device",
+ "value": 277
+ },
+ "vendor": {
+ "hex": "8087",
+ "value": 32903
+ },
+ "device": {
+ "hex": "0a2b",
+ "value": 2603
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "0.10",
+ "value": 0
+ },
+ "model": "Bluetooth Device",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1",
+ "sysfs_bus_id": "1-7:1.1",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "device_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 1,
+ "interface_number": 1,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "btusb",
+ "driver_module": "btusb",
+ "drivers": [
+ "btusb"
+ ],
+ "driver_modules": [
+ "btusb"
+ ],
+ "module_alias": "usb:v8087p0A2Bd0010dcE0dsc01dp01icE0isc01ip01in01"
+ }
+ ],
+ "bridge": [
+ {
+ "index": 14,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 28
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d10",
+ "value": 40208
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "00f1",
+ "value": 241
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1c.0",
+ "sysfs_bus_id": "0000:00:1c.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 120,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 1,
+ "secondary_bus": 2,
+ "irq": 120,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d00009D10sv000017AAsd0000225Cbc06sc04i00"
+ },
+ {
+ "index": 16,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "ISA bridge",
+ "value": 1
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d4e",
+ "value": 40270
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0021",
+ "value": 33
+ },
+ "model": "Intel ISA bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.0",
+ "sysfs_bus_id": "0000:00:1f.0",
+ "detail": {
+ "function": 0,
+ "command": 7,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 0,
+ "prog_if": 0
+ },
+ "module_alias": "pci:v00008086d00009D4Esv000017AAsd0000225Cbc06sc01i00"
+ },
+ {
+ "index": 18,
+ "attached_to": 26,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 6,
+ "number": 1
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "2222",
+ "value": 8738
+ },
+ "device": {
+ "hex": "15d3",
+ "value": 5587
+ },
+ "sub_device": {
+ "hex": "1111",
+ "value": 4369
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:05:00.0/0000:06:01.0",
+ "sysfs_bus_id": "0000:06:01.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 124,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 1,
+ "secondary_bus": 8,
+ "irq": 124,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d000015D3sv00002222sd00001111bc06sc04i00"
+ },
+ {
+ "index": 21,
+ "attached_to": 26,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 6,
+ "number": 4
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "2222",
+ "value": 8738
+ },
+ "device": {
+ "hex": "15d3",
+ "value": 5587
+ },
+ "sub_device": {
+ "hex": "1111",
+ "value": 4369
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:05:00.0/0000:06:04.0",
+ "sysfs_bus_id": "0000:06:04.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 126,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 1,
+ "secondary_bus": 60,
+ "irq": 126,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d000015D3sv00002222sd00001111bc06sc04i00"
+ },
+ {
+ "index": 24,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Host bridge",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "5914",
+ "value": 22804
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0008",
+ "value": 8
+ },
+ "model": "Intel Host bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:00.0",
+ "sysfs_bus_id": "0000:00:00.0",
+ "detail": {
+ "function": 0,
+ "command": 6,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 0,
+ "prog_if": 0
+ },
+ "driver": "skl_uncore",
+ "driver_module": "intel_uncore",
+ "drivers": [
+ "skl_uncore"
+ ],
+ "driver_modules": [
+ "intel_uncore"
+ ],
+ "module_alias": "pci:v00008086d00005914sv000017AAsd0000225Cbc06sc00i00"
+ },
+ {
+ "index": 25,
+ "attached_to": 26,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 6,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "2222",
+ "value": 8738
+ },
+ "device": {
+ "hex": "15d3",
+ "value": 5587
+ },
+ "sub_device": {
+ "hex": "1111",
+ "value": 4369
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:05:00.0/0000:06:00.0",
+ "sysfs_bus_id": "0000:06:00.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 123,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 1,
+ "secondary_bus": 7,
+ "irq": 123,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d000015D3sv00002222sd00001111bc06sc04i00"
+ },
+ {
+ "index": 26,
+ "attached_to": 27,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 5,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "2222",
+ "value": 8738
+ },
+ "device": {
+ "hex": "15d3",
+ "value": 5587
+ },
+ "sub_device": {
+ "hex": "1111",
+ "value": 4369
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:05:00.0",
+ "sysfs_bus_id": "0000:05:00.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 7,
+ "header_type": 1,
+ "secondary_bus": 6,
+ "irq": 16,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d000015D3sv00002222sd00001111bc06sc04i00"
+ },
+ {
+ "index": 27,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 29
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d18",
+ "value": 40216
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "00f1",
+ "value": 241
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0",
+ "sysfs_bus_id": "0000:00:1d.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 122,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 1,
+ "secondary_bus": 5,
+ "irq": 122,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d00009D18sv000017AAsd0000225Cbc06sc04i00"
+ },
+ {
+ "index": 30,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 28
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d14",
+ "value": 40212
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "00f1",
+ "value": 241
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1c.4",
+ "sysfs_bus_id": "0000:00:1c.4",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 121,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 4,
+ "command": 1031,
+ "header_type": 1,
+ "secondary_bus": 4,
+ "irq": 121,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d00009D14sv000017AAsd0000225Cbc06sc04i00"
+ },
+ {
+ "index": 35,
+ "attached_to": 26,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 6,
+ "number": 2
+ },
+ "base_class": {
+ "hex": "0006",
+ "name": "Bridge",
+ "value": 6
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "PCI bridge",
+ "value": 4
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "Normal decode",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "2222",
+ "value": 8738
+ },
+ "device": {
+ "hex": "15d3",
+ "value": 5587
+ },
+ "sub_device": {
+ "hex": "1111",
+ "value": 4369
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:05:00.0/0000:06:02.0",
+ "sysfs_bus_id": "0000:06:02.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 125,
+ "triggered": 0,
+ "enabled": true
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 1,
+ "secondary_bus": 59,
+ "irq": 125,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "drivers": [
+ "pcieport"
+ ],
+ "module_alias": "pci:v00008086d000015D3sv00002222sd00001111bc06sc04i00"
+ }
+ ],
+ "camera": [
+ {
+ "index": 40,
+ "attached_to": 44,
+ "class_list": [
+ "camera",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010f",
+ "name": "Camera",
+ "value": 271
+ },
+ "vendor": {
+ "hex": "5986",
+ "name": "SunplusIT Inc",
+ "value": 22918
+ },
+ "device": {
+ "hex": "2115",
+ "name": "Integrated Camera",
+ "value": 8469
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "54.20",
+ "value": 0
+ },
+ "model": "SunplusIT Integrated Camera",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1",
+ "sysfs_bus_id": "1-8:1.1",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00ef",
+ "name": "miscellaneous",
+ "value": 239
+ },
+ "device_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "000e",
+ "name": "video",
+ "value": 14
+ },
+ "interface_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "interface_protocol": 0,
+ "interface_number": 1,
+ "interface_alternate_setting": 0,
+ "interface_association": {
+ "function_class": {
+ "hex": "000e",
+ "name": "video",
+ "value": 14
+ },
+ "function_subclass": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "function_protocol": 0,
+ "interface_count": 2,
+ "first_interface": 0
+ }
+ },
+ "hotplug": "usb",
+ "driver": "uvcvideo",
+ "driver_module": "uvcvideo",
+ "drivers": [
+ "uvcvideo"
+ ],
+ "driver_modules": [
+ "uvcvideo"
+ ],
+ "module_alias": "usb:v5986p2115d5420dcEFdsc02dp01ic0Eisc02ip00in01"
+ },
+ {
+ "index": 46,
+ "attached_to": 44,
+ "class_list": [
+ "camera",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010f",
+ "name": "Camera",
+ "value": 271
+ },
+ "vendor": {
+ "hex": "5986",
+ "name": "SunplusIT Inc",
+ "value": 22918
+ },
+ "device": {
+ "hex": "2115",
+ "name": "Integrated Camera",
+ "value": 8469
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "54.20",
+ "value": 0
+ },
+ "model": "SunplusIT Integrated Camera",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0",
+ "sysfs_bus_id": "1-8:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00ef",
+ "name": "miscellaneous",
+ "value": 239
+ },
+ "device_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "000e",
+ "name": "video",
+ "value": 14
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0,
+ "interface_association": {
+ "function_class": {
+ "hex": "000e",
+ "name": "video",
+ "value": 14
+ },
+ "function_subclass": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "function_protocol": 0,
+ "interface_count": 2,
+ "first_interface": 0
+ }
+ },
+ "hotplug": "usb",
+ "driver": "uvcvideo",
+ "driver_module": "uvcvideo",
+ "drivers": [
+ "uvcvideo"
+ ],
+ "driver_modules": [
+ "uvcvideo"
+ ],
+ "module_alias": "usb:v5986p2115d5420dcEFdsc02dp01ic0Eisc01ip00in00"
+ }
+ ],
+ "cpu": [
+ {
+ "architecture": "x86_64",
+ "vendor_name": "GenuineIntel",
+ "family": 6,
+ "model": 142,
+ "stepping": 10,
+ "features": [
+ "fpu",
+ "vme",
+ "de",
+ "pse",
+ "tsc",
+ "msr",
+ "pae",
+ "mce",
+ "cx8",
+ "apic",
+ "sep",
+ "mtrr",
+ "pge",
+ "mca",
+ "cmov",
+ "pat",
+ "pse36",
+ "clflush",
+ "dts",
+ "acpi",
+ "mmx",
+ "fxsr",
+ "sse",
+ "sse2",
+ "ss",
+ "ht",
+ "tm",
+ "pbe",
+ "syscall",
+ "nx",
+ "pdpe1gb",
+ "rdtscp",
+ "lm",
+ "constant_tsc",
+ "art",
+ "arch_perfmon",
+ "pebs",
+ "bts",
+ "rep_good",
+ "nopl",
+ "xtopology",
+ "nonstop_tsc",
+ "cpuid",
+ "aperfmperf",
+ "pni",
+ "pclmulqdq",
+ "dtes64",
+ "monitor",
+ "ds_cpl",
+ "vmx",
+ "est",
+ "tm2",
+ "ssse3",
+ "sdbg",
+ "fma",
+ "cx16",
+ "xtpr",
+ "pdcm",
+ "pcid",
+ "sse4_1",
+ "sse4_2",
+ "x2apic",
+ "movbe",
+ "popcnt",
+ "tsc_deadline_timer",
+ "aes",
+ "xsave",
+ "avx",
+ "f16c",
+ "rdrand",
+ "lahf_lm",
+ "abm",
+ "3dnowprefetch",
+ "cpuid_fault",
+ "epb",
+ "pti",
+ "ssbd",
+ "ibrs",
+ "ibpb",
+ "stibp",
+ "tpr_shadow",
+ "flexpriority",
+ "ept",
+ "vpid",
+ "ept_ad",
+ "fsgsbase",
+ "tsc_adjust",
+ "sgx",
+ "bmi1",
+ "avx2",
+ "smep",
+ "bmi2",
+ "erms",
+ "invpcid",
+ "mpx",
+ "rdseed",
+ "adx",
+ "smap",
+ "clflushopt",
+ "intel_pt",
+ "xsaveopt",
+ "xsavec",
+ "xgetbv1",
+ "xsaves",
+ "dtherm",
+ "ida",
+ "arat",
+ "pln",
+ "pts",
+ "hwp",
+ "hwp_notify",
+ "hwp_act_window",
+ "hwp_epp",
+ "vnmi",
+ "md_clear",
+ "flush_l1d",
+ "arch_capabilities"
+ ],
+ "bugs": [
+ "cpu_meltdown",
+ "spectre_v1",
+ "spectre_v2",
+ "spec_store_bypass",
+ "l1tf",
+ "mds",
+ "swapgs",
+ "itlb_multihit",
+ "srbds",
+ "mmio_stale_data",
+ "retbleed",
+ "gds"
+ ],
+ "bogo": 3600,
+ "cache": 6144,
+ "units": 16,
+ "physical_id": 0,
+ "siblings": 8,
+ "cores": 4,
+ "fpu": true,
+ "fpu_exception": true,
+ "cpuid_level": 22,
+ "write_protect": false,
+ "clflush_size": 64,
+ "cache_alignment": 64,
+ "address_sizes": {
+ "physical": 39,
+ "virtual": 48
+ }
+ }
+ ],
+ "disk": [
+ {
+ "index": 37,
+ "attached_to": 31,
+ "class_list": [
+ "disk",
+ "block_device",
+ "nvme"
+ ],
+ "bus_type": {
+ "hex": "0096",
+ "name": "NVME",
+ "value": 150
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0106",
+ "name": "Mass Storage Device",
+ "value": 262
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Disk",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "0003",
+ "name": "LENSE20256GMSP34MEAT2TA",
+ "value": 3
+ },
+ "sub_device": {
+ "hex": "1003",
+ "value": 4099
+ },
+ "serial": "1204748913815",
+ "model": "LENSE20256GMSP34MEAT2TA",
+ "sysfs_id": "/class/block/nvme0n1",
+ "sysfs_bus_id": "nvme0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/nvme/nvme0",
+ "unix_device_name": "/dev/nvme0n1",
+ "unix_device_number": {
+ "type": 98,
+ "major": 259,
+ "minor": 0,
+ "range": 0
+ },
+ "unix_device_names": [
+ "/dev/disk/by-id/nvme-LENSE20256GMSP34MEAT2TA_1204748913815",
+ "/dev/disk/by-id/nvme-LENSE20256GMSP34MEAT2TA_1204748913815_1",
+ "/dev/disk/by-id/nvme-eui.a03299a5b9153815",
+ "/dev/disk/by-path/pci-0000:04:00.0-nvme-1",
+ "/dev/nvme0n1"
+ ],
+ "resources": [
+ {
+ "type": "disk_geo",
+ "cylinders": 244198,
+ "heads": 64,
+ "sectors": 32,
+ "size": 0,
+ "geo_type": "logical"
+ },
+ {
+ "type": "size",
+ "unit": "sectors",
+ "value_1": 500118192,
+ "value_2": 512
+ }
+ ],
+ "driver": "nvme",
+ "driver_module": "nvme",
+ "drivers": [
+ "nvme"
+ ],
+ "driver_modules": [
+ "nvme"
+ ]
+ },
+ {
+ "index": 38,
+ "attached_to": 33,
+ "class_list": [
+ "disk",
+ "usb",
+ "scsi",
+ "block_device"
+ ],
+ "bus_type": {
+ "hex": "0084",
+ "name": "SCSI",
+ "value": 132
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0106",
+ "name": "Mass Storage Device",
+ "value": 262
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Disk",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "0bda",
+ "name": "Generic-",
+ "value": 3034
+ },
+ "device": {
+ "hex": "0328",
+ "name": "SD/MMC CRW",
+ "value": 808
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "1.00",
+ "value": 0
+ },
+ "serial": "2012062914345300",
+ "model": "Generic SD/MMC CRW",
+ "sysfs_id": "/class/block/sda",
+ "sysfs_bus_id": "0:0:0:0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.0/host0/target0:0:0/0:0:0:0",
+ "unix_device_name": "/dev/sda",
+ "unix_device_number": {
+ "type": 98,
+ "major": 8,
+ "minor": 0,
+ "range": 16
+ },
+ "unix_device_names": [
+ "/dev/disk/by-id/usb-Generic-_SD_MMC_CRW_28203008282014000-0:0",
+ "/dev/disk/by-path/pci-0000:00:14.0-usb-0:3:1.0-scsi-0:0:0:0",
+ "/dev/disk/by-path/pci-0000:00:14.0-usbv3-0:3:1.0-scsi-0:0:0:0",
+ "/dev/sda"
+ ],
+ "unix_device_name2": "/dev/sg0",
+ "unix_device_number2": {
+ "type": 99,
+ "major": 21,
+ "minor": 0,
+ "range": 1
+ },
+ "resources": [
+ {
+ "type": "disk_geo",
+ "cylinders": 1024,
+ "heads": 0,
+ "sectors": 62,
+ "size": 0,
+ "geo_type": "logical"
+ }
+ ],
+ "driver": "usb-storage",
+ "driver_module": "usb_storage",
+ "drivers": [
+ "sd",
+ "usb-storage"
+ ],
+ "driver_modules": [
+ "sd_mod",
+ "usb_storage"
+ ],
+ "module_alias": "usb:v0BDAp0328d2908dc00dsc00dp00ic08isc06ip50in00"
+ }
+ ],
+ "graphics_card": [
+ {
+ "index": 32,
+ "attached_to": 0,
+ "class_list": [
+ "graphics_card",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 2
+ },
+ "base_class": {
+ "hex": "0003",
+ "name": "Display controller",
+ "value": 3
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "VGA compatible controller",
+ "value": 0
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "VGA",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "5917",
+ "value": 22807
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0007",
+ "value": 7
+ },
+ "model": "Intel VGA compatible controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:02.0",
+ "sysfs_bus_id": "0000:00:02.0",
+ "resources": [
+ {
+ "type": "io",
+ "base": 57344,
+ "range": 64,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "irq",
+ "base": 127,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 204547817472,
+ "range": 268435456,
+ "enabled": true,
+ "access": "read_only",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 206057766912,
+ "range": 16777216,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 786432,
+ "range": 131072,
+ "enabled": false,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 127,
+ "prog_if": 0
+ },
+ "driver": "i915",
+ "driver_module": "i915",
+ "drivers": [
+ "i915"
+ ],
+ "driver_modules": [
+ "i915"
+ ],
+ "module_alias": "pci:v00008086d00005917sv000017AAsd0000225Cbc03sc00i00"
+ }
+ ],
+ "hub": [
+ {
+ "index": 41,
+ "attached_to": 12,
+ "class_list": [
+ "usb",
+ "hub"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010a",
+ "name": "Hub",
+ "value": 266
+ },
+ "vendor": {
+ "hex": "1d6b",
+ "name": "Linux 6.12.23 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0002",
+ "name": "xHCI Host Controller",
+ "value": 2
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.12",
+ "value": 0
+ },
+ "serial": "0000:3b:00.0",
+ "model": "Linux 6.12.23 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:05:00.0/0000:06:02.0/0000:3b:00.0/usb3/3-0:1.0",
+ "sysfs_bus_id": "3-0:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "hub",
+ "drivers": [
+ "hub"
+ ],
+ "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00"
+ },
+ {
+ "index": 43,
+ "attached_to": 12,
+ "class_list": [
+ "usb",
+ "hub"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010a",
+ "name": "Hub",
+ "value": 266
+ },
+ "vendor": {
+ "hex": "1d6b",
+ "name": "Linux 6.12.23 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0003",
+ "name": "xHCI Host Controller",
+ "value": 3
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.12",
+ "value": 0
+ },
+ "serial": "0000:3b:00.0",
+ "model": "Linux 6.12.23 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:05:00.0/0000:06:02.0/0000:3b:00.0/usb4/4-0:1.0",
+ "sysfs_bus_id": "4-0:1.0",
+ "detail": {
+ "device_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 3,
+ "interface_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "hub",
+ "drivers": [
+ "hub"
+ ],
+ "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00"
+ },
+ {
+ "index": 44,
+ "attached_to": 33,
+ "class_list": [
+ "usb",
+ "hub"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010a",
+ "name": "Hub",
+ "value": 266
+ },
+ "vendor": {
+ "hex": "1d6b",
+ "name": "Linux 6.12.23 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0002",
+ "name": "xHCI Host Controller",
+ "value": 2
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.12",
+ "value": 0
+ },
+ "serial": "0000:00:14.0",
+ "model": "Linux 6.12.23 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-0:1.0",
+ "sysfs_bus_id": "1-0:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "hub",
+ "drivers": [
+ "hub"
+ ],
+ "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00"
+ },
+ {
+ "index": 48,
+ "attached_to": 33,
+ "class_list": [
+ "usb",
+ "hub"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010a",
+ "name": "Hub",
+ "value": 266
+ },
+ "vendor": {
+ "hex": "1d6b",
+ "name": "Linux 6.12.23 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0003",
+ "name": "xHCI Host Controller",
+ "value": 3
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.12",
+ "value": 0
+ },
+ "serial": "0000:00:14.0",
+ "model": "Linux 6.12.23 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb2/2-0:1.0",
+ "sysfs_bus_id": "2-0:1.0",
+ "detail": {
+ "device_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "device_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "device_protocol": 3,
+ "interface_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "hub",
+ "drivers": [
+ "hub"
+ ],
+ "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00"
+ }
+ ],
+ "memory": [
+ {
+ "index": 11,
+ "attached_to": 0,
+ "class_list": [
+ "memory"
+ ],
+ "base_class": {
+ "hex": "0101",
+ "name": "Internally Used Class",
+ "value": 257
+ },
+ "sub_class": {
+ "hex": "0002",
+ "name": "Main Memory",
+ "value": 2
+ },
+ "model": "Main Memory",
+ "resources": [
+ {
+ "type": "mem",
+ "base": 0,
+ "range": 8080396288,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "unknown"
+ },
+ {
+ "type": "phys_mem",
+ "range": 8053063680
+ }
+ ]
+ }
+ ],
+ "monitor": [
+ {
+ "index": 36,
+ "attached_to": 32,
+ "class_list": [
+ "monitor"
+ ],
+ "base_class": {
+ "hex": "0100",
+ "name": "Monitor",
+ "value": 256
+ },
+ "sub_class": {
+ "hex": "0002",
+ "name": "LCD Monitor",
+ "value": 2
+ },
+ "vendor": {
+ "hex": "09e5",
+ "name": "BOE CQ",
+ "value": 2533
+ },
+ "device": {
+ "hex": "06df",
+ "value": 1759
+ },
+ "serial": "0",
+ "model": "BOE CQ LCD Monitor",
+ "resources": [
+ {
+ "type": "monitor",
+ "width": 1920,
+ "height": 1080,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "size",
+ "unit": "mm",
+ "value_1": 309,
+ "value_2": 173
+ }
+ ],
+ "detail": {
+ "manufacture_year": 2016,
+ "manufacture_week": 1,
+ "vertical_sync": {
+ "min": 0,
+ "max": 0
+ },
+ "horizontal_sync": {
+ "min": 0,
+ "max": 0
+ },
+ "horizontal_sync_timings": {
+ "disp": 1920,
+ "sync_start": 1968,
+ "sync_end": 2000,
+ "total": 2142
+ },
+ "vertical_sync_timings": {
+ "disp": 1080,
+ "sync_start": 1083,
+ "sync_end": 1089,
+ "total": 1100
+ },
+ "clock": 113120,
+ "width": 1920,
+ "height": 1080,
+ "width_millimetres": 309,
+ "height_millimetres": 173,
+ "horizontal_flag": 45,
+ "vertical_flag": 43,
+ "vendor": "BOE CQ",
+ "name": ""
+ }
+ }
+ ],
+ "mouse": [
+ {
+ "index": 52,
+ "attached_to": 0,
+ "bus_type": {
+ "hex": "0008",
+ "name": "other",
+ "value": 8
+ },
+ "base_class": {
+ "hex": "0118",
+ "name": "touchpad",
+ "value": 280
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "other",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "06cb",
+ "value": 1739
+ },
+ "device": {
+ "hex": "0000",
+ "value": 0
+ },
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.4/i2c-6/6-002c/rmi4-00/input/input9",
+ "unix_device_names": [
+ "/dev/input/event12",
+ "/dev/input/ + handler"
+ ]
+ }
+ ],
+ "network_controller": [
+ {
+ "index": 17,
+ "attached_to": 14,
+ "class_list": [
+ "network_controller",
+ "pci",
+ "wlan_card"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 2,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0002",
+ "name": "Network controller",
+ "value": 2
+ },
+ "sub_class": {
+ "hex": "0082",
+ "name": "WLAN controller",
+ "value": 130
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "device": {
+ "hex": "24fd",
+ "value": 9469
+ },
+ "sub_device": {
+ "hex": "0010",
+ "value": 16
+ },
+ "revision": {
+ "hex": "0078",
+ "value": 120
+ },
+ "model": "Intel WLAN controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1c.0/0000:02:00.0",
+ "sysfs_bus_id": "0000:02:00.0",
+ "unix_device_name": "wlp2s0",
+ "unix_device_names": [
+ "wlp2s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 51
+ },
+ {
+ "type": "irq",
+ "base": 171,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 3995074560,
+ "range": 8192,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "phwaddr",
+ "address": 51
+ },
+ {
+ "type": "wlan",
+ "channels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "36",
+ "40",
+ "44",
+ "48",
+ "52",
+ "56",
+ "60",
+ "64",
+ "100",
+ "104",
+ "108",
+ "112",
+ "116",
+ "120",
+ "124",
+ "128",
+ "132",
+ "136",
+ "140"
+ ],
+ "frequencies": [
+ "2.412",
+ "2.417",
+ "2.422",
+ "2.427",
+ "2.432",
+ "2.437",
+ "2.442",
+ "2.447",
+ "2.452",
+ "2.457",
+ "2.462",
+ "2.467",
+ "2.472",
+ "5.18",
+ "5.2",
+ "5.22",
+ "5.24",
+ "5.26",
+ "5.28",
+ "5.3",
+ "5.32",
+ "5.5",
+ "5.52",
+ "5.54",
+ "5.56",
+ "5.58",
+ "5.6",
+ "5.62",
+ "5.64",
+ "5.66",
+ "5.68",
+ "5.7"
+ ],
+ "auth_modes": [
+ "open",
+ "sharedkey",
+ "wpa-psk",
+ "wpa-eap"
+ ],
+ "enc_modes": [
+ "WEP40",
+ "WEP104",
+ "TKIP",
+ "CCMP"
+ ]
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 171,
+ "prog_if": 0
+ },
+ "driver": "iwlwifi",
+ "driver_module": "iwlwifi",
+ "drivers": [
+ "iwlwifi"
+ ],
+ "driver_modules": [
+ "iwlwifi"
+ ],
+ "module_alias": "pci:v00008086d000024FDsv00008086sd00000010bc02sc80i00"
+ },
+ {
+ "index": 29,
+ "attached_to": 0,
+ "class_list": [
+ "network_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "base_class": {
+ "hex": "0002",
+ "name": "Network controller",
+ "value": 2
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Ethernet controller",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "15d8",
+ "value": 5592
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0021",
+ "value": 33
+ },
+ "model": "Intel Ethernet controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.6",
+ "sysfs_bus_id": "0000:00:1f.6",
+ "unix_device_name": "enp0s31f6",
+ "unix_device_names": [
+ "enp0s31f6"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 56
+ },
+ {
+ "type": "irq",
+ "base": 170,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 3996123136,
+ "range": 131072,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "phwaddr",
+ "address": 56
+ }
+ ],
+ "detail": {
+ "function": 6,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 170,
+ "prog_if": 0
+ },
+ "driver": "e1000e",
+ "driver_module": "e1000e",
+ "drivers": [
+ "e1000e"
+ ],
+ "driver_modules": [
+ "e1000e"
+ ],
+ "module_alias": "pci:v00008086d000015D8sv000017AAsd0000225Cbc02sc00i00"
+ }
+ ],
+ "network_interface": [
+ {
+ "index": 49,
+ "attached_to": 17,
+ "class_list": [
+ "network_interface"
+ ],
+ "base_class": {
+ "hex": "0107",
+ "name": "Network Interface",
+ "value": 263
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "Ethernet",
+ "value": 1
+ },
+ "model": "Ethernet network interface",
+ "sysfs_id": "/class/net/wlp2s0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:1c.0/0000:02:00.0",
+ "unix_device_name": "wlp2s0",
+ "unix_device_names": [
+ "wlp2s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 51
+ },
+ {
+ "type": "phwaddr",
+ "address": 51
+ }
+ ],
+ "driver": "iwlwifi",
+ "driver_module": "iwlwifi",
+ "drivers": [
+ "iwlwifi"
+ ],
+ "driver_modules": [
+ "iwlwifi"
+ ]
+ },
+ {
+ "index": 50,
+ "attached_to": 0,
+ "class_list": [
+ "network_interface"
+ ],
+ "base_class": {
+ "hex": "0107",
+ "name": "Network Interface",
+ "value": 263
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Loopback",
+ "value": 0
+ },
+ "model": "Loopback network interface",
+ "sysfs_id": "/class/net/lo",
+ "unix_device_name": "lo",
+ "unix_device_names": [
+ "lo"
+ ]
+ },
+ {
+ "index": 51,
+ "attached_to": 29,
+ "class_list": [
+ "network_interface"
+ ],
+ "base_class": {
+ "hex": "0107",
+ "name": "Network Interface",
+ "value": 263
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "Ethernet",
+ "value": 1
+ },
+ "model": "Ethernet network interface",
+ "sysfs_id": "/class/net/enp0s31f6",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:1f.6",
+ "unix_device_name": "enp0s31f6",
+ "unix_device_names": [
+ "enp0s31f6"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 56
+ },
+ {
+ "type": "phwaddr",
+ "address": 56
+ }
+ ],
+ "driver": "e1000e",
+ "driver_module": "e1000e",
+ "drivers": [
+ "e1000e"
+ ],
+ "driver_modules": [
+ "e1000e"
+ ]
+ }
+ ],
+ "pci": [
+ {
+ "index": 13,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "base_class": {
+ "hex": "0005",
+ "name": "Memory controller",
+ "value": 5
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "Memory controller",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d21",
+ "value": 40225
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0021",
+ "value": 33
+ },
+ "model": "Intel Memory controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.2",
+ "sysfs_bus_id": "0000:00:1f.2",
+ "resources": [
+ {
+ "type": "mem",
+ "base": 3996254208,
+ "range": 16384,
+ "enabled": false,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 2,
+ "command": 0,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 0,
+ "prog_if": 0
+ },
+ "module_alias": "pci:v00008086d00009D21sv000017AAsd0000225Cbc05sc80i00"
+ },
+ {
+ "index": 15,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 8
+ },
+ "base_class": {
+ "hex": "0008",
+ "name": "Generic system peripheral",
+ "value": 8
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "System peripheral",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "1911",
+ "value": 6417
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "model": "Intel System peripheral",
+ "sysfs_id": "/devices/pci0000:00/0000:00:08.0",
+ "sysfs_bus_id": "0000:00:08.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 255,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 206074736640,
+ "range": 4096,
+ "enabled": false,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 0,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 255,
+ "prog_if": 0
+ },
+ "module_alias": "pci:v00008086d00001911sv000017AAsd0000225Cbc08sc80i00"
+ },
+ {
+ "index": 19,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 4
+ },
+ "base_class": {
+ "hex": "0011",
+ "name": "Signal processing controller",
+ "value": 17
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "Signal processing controller",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "1903",
+ "value": 6403
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0008",
+ "value": 8
+ },
+ "model": "Intel Signal processing controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:04.0",
+ "sysfs_bus_id": "0000:00:04.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 206074675200,
+ "range": 32768,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 2,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 16,
+ "prog_if": 0
+ },
+ "driver": "proc_thermal",
+ "driver_module": "processor_thermal_device_pci_legacy",
+ "drivers": [
+ "proc_thermal"
+ ],
+ "driver_modules": [
+ "processor_thermal_device_pci_legacy"
+ ],
+ "module_alias": "pci:v00008086d00001903sv000017AAsd0000225Cbc11sc80i00"
+ },
+ {
+ "index": 20,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 22
+ },
+ "base_class": {
+ "hex": "0007",
+ "name": "Communication controller",
+ "value": 7
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "Communication controller",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d3a",
+ "value": 40250
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0021",
+ "value": 33
+ },
+ "model": "Intel Communication controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:16.0",
+ "sysfs_bus_id": "0000:00:16.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 136,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 206074728448,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 136,
+ "prog_if": 0
+ },
+ "driver": "mei_me",
+ "driver_module": "mei_me",
+ "drivers": [
+ "mei_me"
+ ],
+ "driver_modules": [
+ "mei_me"
+ ],
+ "module_alias": "pci:v00008086d00009D3Asv000017AAsd0000225Cbc07sc80i00"
+ },
+ {
+ "index": 22,
+ "attached_to": 25,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 7,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0008",
+ "name": "Generic system peripheral",
+ "value": 8
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "System peripheral",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "2222",
+ "value": 8738
+ },
+ "device": {
+ "hex": "15d2",
+ "value": 5586
+ },
+ "sub_device": {
+ "hex": "1111",
+ "value": 4369
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel System peripheral",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:05:00.0/0000:06:00.0/0000:07:00.0",
+ "sysfs_bus_id": "0000:07:00.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 3992977408,
+ "range": 262144,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 3993239552,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 16,
+ "prog_if": 0
+ },
+ "driver": "thunderbolt",
+ "driver_module": "thunderbolt",
+ "drivers": [
+ "thunderbolt"
+ ],
+ "driver_modules": [
+ "thunderbolt"
+ ],
+ "module_alias": "pci:v00008086d000015D2sv00002222sd00001111bc08sc80i00"
+ },
+ {
+ "index": 28,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 20
+ },
+ "base_class": {
+ "hex": "0011",
+ "name": "Signal processing controller",
+ "value": 17
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "Signal processing controller",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d31",
+ "value": 40241
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0021",
+ "value": 33
+ },
+ "model": "Intel Signal processing controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.2",
+ "sysfs_bus_id": "0000:00:14.2",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 18,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 206074732544,
+ "range": 4096,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 2,
+ "command": 2,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 18,
+ "prog_if": 0
+ },
+ "driver": "intel_pch_thermal",
+ "driver_module": "intel_pch_thermal",
+ "drivers": [
+ "intel_pch_thermal"
+ ],
+ "driver_modules": [
+ "intel_pch_thermal"
+ ],
+ "module_alias": "pci:v00008086d00009D31sv000017AAsd0000225Cbc11sc80i00"
+ },
+ {
+ "index": 34,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "base_class": {
+ "hex": "000c",
+ "name": "Serial bus controller",
+ "value": 12
+ },
+ "sub_class": {
+ "hex": "0005",
+ "name": "SMBus",
+ "value": 5
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d23",
+ "value": 40227
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0021",
+ "value": 33
+ },
+ "model": "Intel SMBus",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.4",
+ "sysfs_bus_id": "0000:00:1f.4",
+ "resources": [
+ {
+ "type": "io",
+ "base": 61344,
+ "range": 32,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 206074724352,
+ "range": 256,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 4,
+ "command": 3,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 16,
+ "prog_if": 0
+ },
+ "driver": "i801_smbus",
+ "driver_module": "i2c_i801",
+ "drivers": [
+ "i801_smbus"
+ ],
+ "driver_modules": [
+ "i2c_i801"
+ ],
+ "module_alias": "pci:v00008086d00009D23sv000017AAsd0000225Cbc0Csc05i00"
+ }
+ ],
+ "sound": [
+ {
+ "index": 23,
+ "attached_to": 0,
+ "class_list": [
+ "sound",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "base_class": {
+ "hex": "0004",
+ "name": "Multimedia controller",
+ "value": 4
+ },
+ "sub_class": {
+ "hex": "0003",
+ "value": 3
+ },
+ "pci_interface": {
+ "hex": "0080",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d71",
+ "value": 40305
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0021",
+ "value": 33
+ },
+ "model": "Intel Multimedia controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.3",
+ "sysfs_bus_id": "0000:00:1f.3",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 172,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 206074544128,
+ "range": 65536,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ },
+ {
+ "type": "mem",
+ "base": 206074707968,
+ "range": 16384,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 3,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 172,
+ "prog_if": 128
+ },
+ "driver": "snd_hda_intel",
+ "driver_module": "snd_hda_intel",
+ "drivers": [
+ "snd_hda_intel"
+ ],
+ "driver_modules": [
+ "snd_hda_intel"
+ ],
+ "module_alias": "pci:v00008086d00009D71sv000017AAsd0000225Cbc04sc03i80"
+ }
+ ],
+ "storage_controller": [
+ {
+ "index": 31,
+ "attached_to": 30,
+ "class_list": [
+ "storage_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 4,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0001",
+ "name": "Mass storage controller",
+ "value": 1
+ },
+ "sub_class": {
+ "hex": "0008",
+ "value": 8
+ },
+ "pci_interface": {
+ "hex": "0002",
+ "value": 2
+ },
+ "vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "0003",
+ "value": 3
+ },
+ "sub_device": {
+ "hex": "1003",
+ "value": 4099
+ },
+ "model": "Mass storage controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1c.4/0000:04:00.0",
+ "sysfs_bus_id": "0000:04:00.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 16,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 3994025984,
+ "range": 16384,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 16,
+ "prog_if": 2
+ },
+ "driver": "nvme",
+ "driver_module": "nvme",
+ "drivers": [
+ "nvme"
+ ],
+ "driver_modules": [
+ "nvme"
+ ],
+ "module_alias": "pci:v000017AAd00000003sv000017AAsd00001003bc01sc08i02"
+ }
+ ],
+ "system": {
+ "form_factor": "laptop"
+ },
+ "usb": [
+ {
+ "index": 39,
+ "attached_to": 44,
+ "class_list": [
+ "usb",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "06cb",
+ "value": 1739
+ },
+ "device": {
+ "hex": "009a",
+ "value": 154
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "1.64",
+ "value": 0
+ },
+ "serial": "4a76b8863642",
+ "model": "Unclassified device",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0",
+ "sysfs_bus_id": "1-9:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00ff",
+ "name": "vendor_spec",
+ "value": 255
+ },
+ "device_subclass": {
+ "hex": "0010",
+ "name": "audio_video",
+ "value": 16
+ },
+ "device_protocol": 255,
+ "interface_class": {
+ "hex": "00ff",
+ "name": "vendor_spec",
+ "value": 255
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "module_alias": "usb:v06CBp009Ad0164dcFFdsc10dpFFicFFisc00ip00in00"
+ }
+ ],
+ "usb_controller": [
+ {
+ "index": 12,
+ "attached_to": 35,
+ "class_list": [
+ "usb_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 59,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "000c",
+ "name": "Serial bus controller",
+ "value": 12
+ },
+ "sub_class": {
+ "hex": "0003",
+ "name": "USB Controller",
+ "value": 3
+ },
+ "pci_interface": {
+ "hex": "0030",
+ "value": 48
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "2222",
+ "value": 8738
+ },
+ "device": {
+ "hex": "15d4",
+ "value": 5588
+ },
+ "sub_device": {
+ "hex": "1111",
+ "value": 4369
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel USB Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:05:00.0/0000:06:02.0/0000:3b:00.0",
+ "sysfs_bus_id": "0000:3b:00.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 137,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 3622830080,
+ "range": 65536,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 137,
+ "prog_if": 48
+ },
+ "driver": "xhci_hcd",
+ "driver_module": "xhci_pci",
+ "drivers": [
+ "xhci_hcd"
+ ],
+ "driver_modules": [
+ "xhci_pci"
+ ],
+ "module_alias": "pci:v00008086d000015D4sv00002222sd00001111bc0Csc03i30"
+ },
+ {
+ "index": 33,
+ "attached_to": 0,
+ "class_list": [
+ "usb_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 20
+ },
+ "base_class": {
+ "hex": "000c",
+ "name": "Serial bus controller",
+ "value": 12
+ },
+ "sub_class": {
+ "hex": "0003",
+ "name": "USB Controller",
+ "value": 3
+ },
+ "pci_interface": {
+ "hex": "0030",
+ "value": 48
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "17aa",
+ "value": 6058
+ },
+ "device": {
+ "hex": "9d2f",
+ "value": 40239
+ },
+ "sub_device": {
+ "hex": "225c",
+ "value": 8796
+ },
+ "revision": {
+ "hex": "0021",
+ "value": 33
+ },
+ "model": "Intel USB Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0",
+ "sysfs_bus_id": "0000:00:14.0",
+ "resources": [
+ {
+ "type": "irq",
+ "base": 128,
+ "triggered": 0,
+ "enabled": true
+ },
+ {
+ "type": "mem",
+ "base": 206074609664,
+ "range": 65536,
+ "enabled": true,
+ "access": "read_write",
+ "prefetch": "no"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "irq": 128,
+ "prog_if": 48
+ },
+ "driver": "xhci_hcd",
+ "driver_module": "xhci_pci",
+ "drivers": [
+ "xhci_hcd"
+ ],
+ "driver_modules": [
+ "xhci_pci"
+ ],
+ "module_alias": "pci:v00008086d00009D2Fsv000017AAsd0000225Cbc0Csc03i30"
+ }
+ ]
+ },
+ "smbios": {
+ "bios": {
+ "handle": 11,
+ "vendor": "LENOVO",
+ "version": "N23ET87W (1.62 )",
+ "date": "10/31/2023",
+ "features": [
+ "PCI supported",
+ "PnP supported",
+ "BIOS flashable",
+ "BIOS shadowing allowed",
+ "CD boot supported",
+ "Selectable boot supported",
+ "EDD spec supported",
+ "720kB Floppy supported",
+ "Print Screen supported",
+ "8042 Keyboard Services supported",
+ "Serial Services supported",
+ "Printer Services supported",
+ "CGA/Mono Video supported",
+ "ACPI supported",
+ "USB Legacy supported",
+ "BIOS Boot Spec supported"
+ ],
+ "start_address": "0xe0000",
+ "rom_size": 16777216
+ },
+ "board": {
+ "handle": 13,
+ "manufacturer": "LENOVO",
+ "product": "20KH002SUS",
+ "version": "SDK0J40697 WIN",
+ "board_type": {
+ "hex": "000a",
+ "name": "Motherboard",
+ "value": 10
+ },
+ "features": [
+ "Hosting Board",
+ "Replaceable"
+ ],
+ "location": "Not Available",
+ "chassis": 0
+ },
+ "cache": [
+ {
+ "handle": 7,
+ "socket": "L1 Cache",
+ "size_max": 256,
+ "size_current": 256,
+ "speed": 0,
+ "mode": {
+ "hex": "0001",
+ "name": "Write Back",
+ "value": 1
+ },
+ "enabled": true,
+ "location": {
+ "hex": "0000",
+ "name": "Internal",
+ "value": 0
+ },
+ "socketed": false,
+ "level": 0,
+ "ecc": {
+ "hex": "0004",
+ "name": "Parity",
+ "value": 4
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0007",
+ "name": "8-way Set-Associative",
+ "value": 7
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 8,
+ "socket": "L2 Cache",
+ "size_max": 1024,
+ "size_current": 1024,
+ "speed": 0,
+ "mode": {
+ "hex": "0001",
+ "name": "Write Back",
+ "value": 1
+ },
+ "enabled": true,
+ "location": {
+ "hex": "0000",
+ "name": "Internal",
+ "value": 0
+ },
+ "socketed": false,
+ "level": 1,
+ "ecc": {
+ "hex": "0005",
+ "name": "Single-bit",
+ "value": 5
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0005",
+ "name": "4-way Set-Associative",
+ "value": 5
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 9,
+ "socket": "L3 Cache",
+ "size_max": 6144,
+ "size_current": 6144,
+ "speed": 0,
+ "mode": {
+ "hex": "0001",
+ "name": "Write Back",
+ "value": 1
+ },
+ "enabled": true,
+ "location": {
+ "hex": "0000",
+ "name": "Internal",
+ "value": 0
+ },
+ "socketed": false,
+ "level": 2,
+ "ecc": {
+ "hex": "0006",
+ "name": "Multi-bit",
+ "value": 6
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0009",
+ "name": "Other",
+ "value": 9
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ }
+ ],
+ "chassis": {
+ "handle": 14,
+ "manufacturer": "LENOVO",
+ "version": "None",
+ "chassis_type": {
+ "hex": "000a",
+ "name": "Notebook",
+ "value": 10
+ },
+ "lock_present": false,
+ "bootup_state": {
+ "hex": "0002",
+ "name": "Unknown",
+ "value": 2
+ },
+ "power_state": {
+ "hex": "0002",
+ "name": "Unknown",
+ "value": 2
+ },
+ "thermal_state": {
+ "hex": "0002",
+ "name": "Unknown",
+ "value": 2
+ },
+ "security_state": {
+ "hex": "0002",
+ "name": "Unknown",
+ "value": 2
+ },
+ "oem": "0x0"
+ },
+ "config": {
+ "handle": 34
+ },
+ "group_associations": [
+ {
+ "handle": 1,
+ "name": "Intel(R) Silicon View Technology",
+ "handles": [
+ 0
+ ]
+ },
+ {
+ "handle": 47,
+ "power": {
+ "hex": "0000",
+ "name": "Disabled",
+ "value": 0
+ },
+ "keyboard": {
+ "hex": "0002",
+ "name": "Not Implemented",
+ "value": 2
+ },
+ "admin": {
+ "hex": "0000",
+ "name": "Disabled",
+ "value": 0
+ },
+ "reset": {
+ "hex": "0002",
+ "name": "Not Implemented",
+ "value": 2
+ }
+ },
+ {
+ "handle": 60,
+ "name": "$MEI",
+ "handles": [
+ 0
+ ]
+ }
+ ],
+ "language": [
+ {
+ "handle": 35,
+ "languages": [
+ "en-US"
+ ]
+ }
+ ],
+ "memory_array": [
+ {
+ "handle": 3,
+ "location": {
+ "hex": "0003",
+ "name": "Motherboard",
+ "value": 3
+ },
+ "usage": {
+ "hex": "0003",
+ "name": "System memory",
+ "value": 3
+ },
+ "ecc": {
+ "hex": "0003",
+ "name": "None",
+ "value": 3
+ },
+ "max_size": 8388608,
+ "error_handle": 65534,
+ "slots": 2
+ }
+ ],
+ "memory_array_mapped_address": [
+ {
+ "handle": 6,
+ "array_handle": 3,
+ "start_address": 0,
+ "end_address": 8589934592,
+ "part_width": 2
+ }
+ ],
+ "memory_device": [
+ {
+ "handle": 4,
+ "location": "ChannelA-DIMM0",
+ "bank_location": "BANK 0",
+ "manufacturer": "SK Hynix",
+ "part_number": "H9CCNNNBJTALAR-NVD",
+ "array_handle": 3,
+ "error_handle": 65534,
+ "width": 64,
+ "ecc_bits": 0,
+ "size": 4194304,
+ "form_factor": {
+ "hex": "000b",
+ "name": "Row of Chips",
+ "value": 11
+ },
+ "set": 0,
+ "memory_type": {
+ "hex": "001d",
+ "name": "Other",
+ "value": 29
+ },
+ "memory_type_details": [
+ "Synchronous"
+ ],
+ "speed": 2133
+ },
+ {
+ "handle": 5,
+ "location": "ChannelB-DIMM0",
+ "bank_location": "BANK 2",
+ "manufacturer": "SK Hynix",
+ "part_number": "H9CCNNNBJTALAR-NVD",
+ "array_handle": 3,
+ "error_handle": 65534,
+ "width": 64,
+ "ecc_bits": 0,
+ "size": 4194304,
+ "form_factor": {
+ "hex": "000b",
+ "name": "Row of Chips",
+ "value": 11
+ },
+ "set": 0,
+ "memory_type": {
+ "hex": "001d",
+ "name": "Other",
+ "value": 29
+ },
+ "memory_type_details": [
+ "Synchronous"
+ ],
+ "speed": 2133
+ }
+ ],
+ "memory_error": [
+ {
+ "handle": 49,
+ "error_type": {
+ "hex": "0003",
+ "name": "OK",
+ "value": 3
+ },
+ "granularity": {
+ "hex": "0002",
+ "name": "Unknown",
+ "value": 2
+ },
+ "operation": {
+ "hex": "0002",
+ "name": "Unknown",
+ "value": 2
+ },
+ "syndrome": 0,
+ "array_address": 2147483648,
+ "device_address": 2147483648,
+ "range": 2147483648
+ }
+ ],
+ "pointing_device": [
+ {
+ "handle": 50,
+ "mouse_type": {
+ "hex": "0005",
+ "name": "Track Point",
+ "value": 5
+ },
+ "interface": {
+ "hex": "0004",
+ "name": "PS/2",
+ "value": 4
+ },
+ "buttons": 3
+ },
+ {
+ "handle": 51,
+ "mouse_type": {
+ "hex": "0007",
+ "name": "Touch Pad",
+ "value": 7
+ },
+ "interface": {
+ "hex": "0004",
+ "name": "PS/2",
+ "value": 4
+ },
+ "buttons": 2
+ }
+ ],
+ "port_connector": [
+ {
+ "handle": 15,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_reference_designator": "Not Available",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "USB 1"
+ },
+ {
+ "handle": 16,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_reference_designator": "Not Available",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "USB 2"
+ },
+ {
+ "handle": 17,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_reference_designator": "Not Available",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "USB 3"
+ },
+ {
+ "handle": 18,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_reference_designator": "Not Available",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "USB 4"
+ },
+ {
+ "handle": 24,
+ "port_type": {
+ "hex": "001f",
+ "name": "Network Port",
+ "value": 31
+ },
+ "internal_reference_designator": "Not Available",
+ "external_connector_type": {
+ "hex": "000b",
+ "name": "RJ-45",
+ "value": 11
+ },
+ "external_reference_designator": "Ethernet"
+ },
+ {
+ "handle": 26,
+ "port_type": {
+ "hex": "001c",
+ "name": "Video Port",
+ "value": 28
+ },
+ "internal_reference_designator": "Not Available",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "Hdmi1"
+ },
+ {
+ "handle": 30,
+ "port_type": {
+ "hex": "001d",
+ "name": "Audio Port",
+ "value": 29
+ },
+ "internal_reference_designator": "Not Available",
+ "external_connector_type": {
+ "hex": "001f",
+ "name": "Mini-jack [headphones]",
+ "value": 31
+ },
+ "external_reference_designator": "Headphone/Microphone Combo Jack1"
+ }
+ ],
+ "processor": [
+ {
+ "handle": 10,
+ "socket": "U3E1",
+ "socket_type": {
+ "hex": "0033",
+ "name": "Other",
+ "value": 51
+ },
+ "socket_populated": true,
+ "manufacturer": "Intel(R) Corporation",
+ "version": "Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz",
+ "part": "None",
+ "processor_type": {
+ "hex": "0003",
+ "name": "CPU",
+ "value": 3
+ },
+ "processor_family": {
+ "hex": "00cd",
+ "name": "Other",
+ "value": 205
+ },
+ "processor_status": {
+ "hex": "0001",
+ "name": "Enabled",
+ "value": 1
+ },
+ "clock_ext": 100,
+ "clock_max": 1800,
+ "cache_handle_l1": 7,
+ "cache_handle_l2": 8,
+ "cache_handle_l3": 9
+ }
+ ],
+ "slot": [
+ {
+ "handle": 32,
+ "designation": "Media Card Slot",
+ "slot_type": {
+ "hex": "0001",
+ "name": "Other",
+ "value": 1
+ },
+ "bus_width": {
+ "hex": "0001",
+ "name": "Other",
+ "value": 1
+ },
+ "usage": {
+ "hex": "0003",
+ "name": "Available",
+ "value": 3
+ },
+ "length": {
+ "hex": "0001",
+ "name": "Other",
+ "value": 1
+ },
+ "id": 0,
+ "features": [
+ "Hot-Plug"
+ ]
+ },
+ {
+ "handle": 33,
+ "designation": "SimCard Slot",
+ "slot_type": {
+ "hex": "0001",
+ "name": "Other",
+ "value": 1
+ },
+ "bus_width": {
+ "hex": "0001",
+ "name": "Other",
+ "value": 1
+ },
+ "usage": {
+ "hex": "0003",
+ "name": "Available",
+ "value": 3
+ },
+ "length": {
+ "hex": "0001",
+ "name": "Other",
+ "value": 1
+ },
+ "id": 0
+ }
+ ],
+ "system": {
+ "handle": 12,
+ "manufacturer": "LENOVO",
+ "product": "20KH002SUS",
+ "version": "ThinkPad X1 Carbon 6th",
+ "wake_up": {
+ "hex": "0006",
+ "name": "Power Switch",
+ "value": 6
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/hosts/mercury/home.nix b/hosts/mercury/home.nix
new file mode 100644
index 0000000..5ae0a55
--- /dev/null
+++ b/hosts/mercury/home.nix
@@ -0,0 +1,11 @@
+{pkgs, ...}: {
+ home.packages = with pkgs; [
+ # GUI apps
+ tor-browser # don't ask
+ obsidian
+ kdePackages.kleopatra
+ mpv
+ ];
+
+ home.stateVersion = "25.05";
+}
diff --git a/hosts/mercury/system.nix b/hosts/mercury/system.nix
new file mode 100644
index 0000000..9a78bef
--- /dev/null
+++ b/hosts/mercury/system.nix
@@ -0,0 +1,24 @@
+{
+ pkgs,
+ inputs,
+ ...
+}: {
+ imports = [
+ ./battery.nix
+
+ inputs.nixos-facter-modules.nixosModules.facter
+ {facter.reportPath = ./facter.json;}
+
+ inputs.lanzaboote.nixosModules.lanzaboote
+ ];
+
+ fonts = {
+ enableDefaultPackages = false;
+ packages = with pkgs; [
+ ibm-plex
+ nerd-fonts.iosevka
+ ];
+ };
+
+ system.stateVersion = "25.05";
+}
diff --git a/hosts/mercury/wallpaper.jpg b/hosts/mercury/wallpaper.jpg
new file mode 100644
index 0000000..039afcc
--- /dev/null
+++ b/hosts/mercury/wallpaper.jpg
Binary files differ
diff --git a/lib/cfgWrapper.nix b/lib/cfgWrapper.nix
new file mode 100644
index 0000000..2e57656
--- /dev/null
+++ b/lib/cfgWrapper.nix
@@ -0,0 +1,63 @@
+{pkgs}: {
+ pkg,
+ binName ? pkg.meta.mainProgram,
+ extraFlags ? [],
+ extraWrapperFlags ? [],
+ extraPkgs ? [],
+ extraEnv ? {},
+ postBuild ? "",
+ hidePkgs ? false,
+ reducePath ? false,
+}: let
+ extraFlagsArgs = pkgs.lib.pipe extraFlags [
+ (builtins.map (x: ''--add-flags "${x}" ''))
+ (builtins.concatStringsSep " ")
+ ];
+
+ extraWrapperFlagsArgs = builtins.concatStringsSep " " extraWrapperFlags;
+
+ pathArg =
+ if (extraPkgs != [])
+ then ''--prefix PATH : "${pkgs.lib.makeBinPath extraPkgs}"''
+ else "";
+
+ # Looks like {
+ # VAR = "value";
+ # VAR2 = "value_again";
+ # }
+ envArgs = pkgs.lib.pipe extraEnv [
+ (builtins.mapAttrs (k: v: ''--set ${k} "${v}"''))
+ builtins.attrValues
+ (builtins.concatStringsSep " ")
+ ];
+
+ extraPkgs2 =
+ if reducePath
+ then
+ (pkgs.symlinkJoin {
+ name = "${binName}-extra-pkgs";
+ paths = extraPkgs;
+ })
+ else extraPkgs;
+
+ wrapped-program = pkgs.symlinkJoin {
+ name = "${binName}-wrapped-program";
+ paths = [pkg] ++ extraPkgs2;
+
+ buildInputs = [pkgs.makeWrapper];
+ postBuild = ''
+ ${postBuild}
+
+ wrapProgram $out/bin/${binName} ${extraFlagsArgs} ${pathArg} ${envArgs} ${extraWrapperFlagsArgs}
+ '';
+ };
+in
+ if hidePkgs
+ then
+ (pkgs.linkFarm "${binName}-only-bin" [
+ {
+ name = "bin/${binName}";
+ path = "${wrapped-program}/bin/${binName}";
+ }
+ ])
+ else wrapped-program
diff --git a/lib/nix-furnace/README.md b/lib/nix-furnace/README.md
new file mode 100644
index 0000000..cff5c2d
--- /dev/null
+++ b/lib/nix-furnace/README.md
@@ -0,0 +1,7 @@
+# `nix-furnace`
+my homebrewed library for defining nix machines
+
+Features:
+- Homogenous modules: each module contains a home part, a system part, and a shared `options.nix`
+- Path-based: All modules in `modules/` are imported automatically
+- Exclusive: Only supports single-user nixos machines running home-manager
diff --git a/lib/nix-furnace/default.nix b/lib/nix-furnace/default.nix
new file mode 100644
index 0000000..7c18ae9
--- /dev/null
+++ b/lib/nix-furnace/default.nix
@@ -0,0 +1,121 @@
+let
+ lazyImport = path:
+ if (builtins.pathExists path)
+ then import path
+ else {};
+
+ mkIfNull = cond: onTrue:
+ if cond
+ then onTrue
+ else null;
+
+ getSubdirs = dir:
+ builtins.filter (x: x != null)
+ (builtins.attrValues
+ (builtins.mapAttrs
+ (name: value: mkIfNull (value == "directory") name)
+ (builtins.readDir dir)));
+
+ getSubfiles = dir:
+ builtins.filter (x: x != null)
+ (builtins.attrValues
+ (builtins.mapAttrs
+ (name: value: mkIfNull (value == "file") name)
+ (builtins.readDir dir)));
+
+ mkHomeImports = modName: [
+ (lazyImport ../../modules/${modName}/options.nix)
+ (lazyImport ../../modules/${modName}/home/default.nix)
+ ];
+ mkSystemImports = modName: [
+ (lazyImport ../../modules/${modName}/options.nix)
+ (lazyImport ../../modules/${modName}/system/default.nix)
+ ];
+
+ mkModules = mapFn: {
+ imports =
+ [../../modules/options.nix]
+ ++ (builtins.foldl' (a: b: a ++ b) [] (builtins.map mapFn (getSubdirs ../../modules)));
+ };
+
+ mkHomeModules = mkModules mkHomeImports;
+ mkSystemModules = mkModules mkSystemImports;
+
+ mkHost = {
+ hostname,
+ namespace,
+ inputs,
+ ...
+ }: let
+ preloadedConfig = import ../../hosts/${hostname}/config.nix {inherit inputs;};
+ username = preloadedConfig."${namespace}".user.name;
+
+ furnaceOptions = {lib, ...}: let
+ inherit (lib) mkOption types;
+ in {
+ options.nix-furnace = {
+ extraHomeModules = mkOption {
+ type = with types; listOf path;
+ default = [];
+ };
+
+ extraSystemModules = mkOption {
+ type = with types; listOf path;
+ default = [];
+ };
+ };
+ };
+ in
+ inputs.nixpkgs.lib.nixosSystem {
+ specialArgs = {inherit inputs;};
+ modules =
+ [
+ {networking.hostName = hostname;}
+
+ ../../hosts/${hostname}/config.nix
+
+ mkSystemModules
+
+ furnaceOptions
+
+ # Home-manager
+ inputs.home-manager.nixosModules.home-manager
+ {
+ home-manager = {
+ backupFileExtension = "bak";
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ extraSpecialArgs = {inherit inputs;};
+ users."${username}" = {
+ imports =
+ [
+ mkHomeModules
+
+ furnaceOptions
+
+ ../../hosts/${hostname}/config.nix
+ ]
+ ++ preloadedConfig.nix-furnace.extraHomeModules;
+ };
+ };
+ }
+ ]
+ ++ preloadedConfig.nix-furnace.extraSystemModules;
+ };
+
+ mkFlake = {
+ namespace,
+ inputs,
+ ...
+ }: {
+ nixosConfigurations =
+ builtins.listToAttrs
+ (builtins.map (hostname: {
+ name = hostname;
+ value = mkHost {inherit inputs hostname namespace;};
+ })
+ (getSubdirs ../../hosts));
+ };
+in {
+ inherit mkFlake;
+}
diff --git a/modules/boot/options.nix b/modules/boot/options.nix
new file mode 100644
index 0000000..c040032
--- /dev/null
+++ b/modules/boot/options.nix
@@ -0,0 +1,23 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ inherit (lib) mkOption mkEnableOption types;
+in {
+ options = {
+ collinux.boot = {
+ bootloader = mkOption {
+ type = types.enum ["grub" "systemd-boot"];
+ };
+ plymouth = {
+ enable = mkEnableOption "plymouth bootsplash";
+ theme = mkOption {
+ type = types.enum ["catppuccin" "adwaita"];
+ default = config.collinux.theme;
+ };
+ };
+ secureBoot.enable = mkEnableOption "lanzaboote";
+ };
+ };
+}
diff --git a/modules/boot/system/default.nix b/modules/boot/system/default.nix
new file mode 100644
index 0000000..e32601c
--- /dev/null
+++ b/modules/boot/system/default.nix
@@ -0,0 +1,37 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.boot;
+in {
+ imports = [
+ ./plymouth.nix
+ ];
+
+ boot =
+ {
+ initrd = {
+ verbose = false;
+ systemd.enable = true;
+ };
+ loader = {
+ systemd-boot = lib.optionalAttrs (cfg.bootloader == "systemd-boot" && !cfg.secureBoot.enable) {
+ enable = true;
+ configurationLimit = 3;
+ };
+ grub = lib.optionalAttrs (cfg.bootloader == "grub") {enable = true;};
+ efi.canTouchEfiVariables = true;
+ timeout = 0;
+ };
+ }
+ // (lib.optionalAttrs cfg.secureBoot.enable {
+ lanzaboote = {
+ enable = true;
+ pkiBundle = "/var/lib/sbctl";
+ };
+ });
+
+ environment.systemPackages = lib.mkIf cfg.secureBoot.enable [pkgs.sbctl];
+}
diff --git a/modules/boot/system/plymouth.nix b/modules/boot/system/plymouth.nix
new file mode 100644
index 0000000..5f7952b
--- /dev/null
+++ b/modules/boot/system/plymouth.nix
@@ -0,0 +1,21 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.boot.plymouth;
+in
+ lib.mkIf cfg.enable {
+ boot.plymouth = {
+ enable = true;
+ theme =
+ if (cfg.theme == "catppuccin")
+ then "catppuccin-macchiato" # for whatever reason catppuccin-mocha has errors
+ else "nixos-bgrt";
+ themePackages =
+ if (cfg.theme == "catppuccin")
+ then [pkgs.catppuccin-plymouth]
+ else [pkgs.nixos-bgrt-plymouth];
+ };
+ }
diff --git a/modules/desktop/home/default.nix b/modules/desktop/home/default.nix
new file mode 100644
index 0000000..47d8687
--- /dev/null
+++ b/modules/desktop/home/default.nix
@@ -0,0 +1,14 @@
+let
+ findPrograms =
+ builtins.attrValues
+ (builtins.mapAttrs
+ (file: type: ./programs/${file})
+ (builtins.readDir ./programs));
+in {
+ imports =
+ [
+ ./environments/gnome
+ ./gtk
+ ]
+ ++ findPrograms;
+}
diff --git a/modules/desktop/home/environments/gnome/default.nix b/modules/desktop/home/environments/gnome/default.nix
new file mode 100644
index 0000000..9b248ea
--- /dev/null
+++ b/modules/desktop/home/environments/gnome/default.nix
@@ -0,0 +1,67 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.gnome;
+in
+ lib.mkIf cfg.enable {
+ home.packages = with pkgs.gnomeExtensions; [
+ blur-my-shell
+ dash-to-dock
+ ];
+
+ dconf = {
+ enable = true;
+ settings = {
+ "org/gnome/mutter" = {
+ workspaces-only-on-primary = false;
+ };
+ "org/gnome/shell/app-switcher" = {
+ current-workspace-only = true;
+ };
+
+ # Idle settings
+ "org/gnome/desktop/session" = {
+ idle-delay = 0;
+ };
+ "org/gnome/settings-daemon/plugins/power" = {
+ sleep-inactive-ac-type = "nothing";
+ };
+
+ # Keybindings
+ "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
+ binding = "<Super>Return";
+ command = "blackbox";
+ name = "Terminal";
+ };
+ "org/gnome/settings-daemon/plugins/media-keys" = {
+ custom-keybindings = [
+ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
+ ];
+ };
+
+ # Background
+ "org/gnome/desktop/background" = rec {
+ picture-uri = "file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/blobs-d.svg";
+ picture-uri-dark = picture-uri;
+ };
+
+ # Extensions
+ "org/gnome/shell" = {
+ disable-user-extensions = false;
+ enabled-extensions = with pkgs.gnomeExtensions; [
+ blur-my-shell.extensionUuid
+ dash-to-dock.extensionUuid
+ ];
+ };
+
+ "org/gnome/shell/extensions/dash-to-dock" = {
+ dash-max-icon-size = 48;
+ show-trash = false;
+ show-mounts = false;
+ };
+ };
+ };
+ }
diff --git a/modules/desktop/home/environments/hyprland/default.nix b/modules/desktop/home/environments/hyprland/default.nix
new file mode 100644
index 0000000..85abeaa
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/default.nix
@@ -0,0 +1,14 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.hyprland;
+in {
+ imports = [
+ ./hyprland
+ ./dunst.nix
+ ./fuzzel.nix
+ ./waybar
+ ];
+}
diff --git a/modules/desktop/home/environments/hyprland/dunst.nix b/modules/desktop/home/environments/hyprland/dunst.nix
new file mode 100644
index 0000000..6a5a0d1
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/dunst.nix
@@ -0,0 +1,44 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.hyprland.components.dunst;
+in
+ lib.mkIf cfg.enable {
+ services.dunst = {
+ enable = true;
+ settings = lib.mkMerge [
+ {
+ global = {
+ offset = "8x30";
+ origin = "top-right";
+ transparency = 10;
+ font = "Iosevka Nerd Font";
+ };
+ }
+ (lib.mkIf (cfg.theme == "catppuccin") {
+ global = {
+ frame_color = "#89b4fa";
+ highlight = "#89b4fa";
+ };
+
+ urgency_low = {
+ background = "#1e1e2e";
+ foreground = "#cdd6f4";
+ };
+
+ urgency_normal = {
+ background = "#1e1e2e";
+ foreground = "#cdd6f4";
+ };
+
+ urgency_critical = {
+ background = "#1e1e2e";
+ foreground = "#cdd6f4";
+ frame_color = "#fab387";
+ };
+ })
+ ];
+ };
+ }
diff --git a/modules/desktop/home/environments/hyprland/fuzzel.nix b/modules/desktop/home/environments/hyprland/fuzzel.nix
new file mode 100644
index 0000000..6dca3fb
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/fuzzel.nix
@@ -0,0 +1,44 @@
+{
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.hyprland.components.fuzzel;
+in
+ lib.mkIf cfg.enable {
+ programs.fuzzel = {
+ enable = true;
+ settings = {
+ main = {
+ prompt = " ";
+ dpi-aware = false;
+
+ font = "Iosevka Nerd Font";
+ line-height = 25;
+ lines = 10;
+ width = 30;
+
+ horizontal-pad = 8;
+ vertical-pad = 8;
+ };
+ border = {
+ radius = 0;
+ width = 2;
+ };
+
+ colors = lib.mkIf (cfg.theme == "catppuccin") {
+ background = "1e1e2edd";
+ text = "cdd6f4ff";
+ prompt = "bac2deff";
+ placeholder = "7f849cff";
+ input = "cdd6f4ff";
+ match = "89b4faff";
+ selection = "585b70ff";
+ selection-text = "cdd6f4ff";
+ selection-match = "89b4faff";
+ counter = "7f849cff";
+ border = "89b4faff";
+ };
+ };
+ };
+ }
diff --git a/modules/desktop/home/environments/hyprland/hyprland/catppuccin.conf b/modules/desktop/home/environments/hyprland/hyprland/catppuccin.conf
new file mode 100644
index 0000000..572cb7e
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/hyprland/catppuccin.conf
@@ -0,0 +1,79 @@
+$rosewater = rgb(f5e0dc)
+$rosewaterAlpha = f5e0dc
+
+$flamingo = rgb(f2cdcd)
+$flamingoAlpha = f2cdcd
+
+$pink = rgb(f5c2e7)
+$pinkAlpha = f5c2e7
+
+$mauve = rgb(cba6f7)
+$mauveAlpha = cba6f7
+
+$red = rgb(f38ba8)
+$redAlpha = f38ba8
+
+$maroon = rgb(eba0ac)
+$maroonAlpha = eba0ac
+
+$peach = rgb(fab387)
+$peachAlpha = fab387
+
+$yellow = rgb(f9e2af)
+$yellowAlpha = f9e2af
+
+$green = rgb(a6e3a1)
+$greenAlpha = a6e3a1
+
+$teal = rgb(94e2d5)
+$tealAlpha = 94e2d5
+
+$sky = rgb(89dceb)
+$skyAlpha = 89dceb
+
+$sapphire = rgb(74c7ec)
+$sapphireAlpha = 74c7ec
+
+$blue = rgb(89b4fa)
+$blueAlpha = 89b4fa
+
+$lavender = rgb(b4befe)
+$lavenderAlpha = b4befe
+
+$text = rgb(cdd6f4)
+$textAlpha = cdd6f4
+
+$subtext1 = rgb(bac2de)
+$subtext1Alpha = bac2de
+
+$subtext0 = rgb(a6adc8)
+$subtext0Alpha = a6adc8
+
+$overlay2 = rgb(9399b2)
+$overlay2Alpha = 9399b2
+
+$overlay1 = rgb(7f849c)
+$overlay1Alpha = 7f849c
+
+$overlay0 = rgb(6c7086)
+$overlay0Alpha = 6c7086
+
+$surface2 = rgb(585b70)
+$surface2Alpha = 585b70
+
+$surface1 = rgb(45475a)
+$surface1Alpha = 45475a
+
+$surface0 = rgb(313244)
+$surface0Alpha = 313244
+
+$base = rgb(1e1e2e)
+$baseAlpha = 1e1e2e
+
+$mantle = rgb(181825)
+$mantleAlpha = 181825
+
+$crust = rgb(11111b)
+$crustAlpha = 11111b
+
+$accent = $mauve
diff --git a/modules/desktop/home/environments/hyprland/hyprland/default.nix b/modules/desktop/home/environments/hyprland/hyprland/default.nix
new file mode 100644
index 0000000..1c3c2b8
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/hyprland/default.nix
@@ -0,0 +1,96 @@
+{
+ config,
+ pkgs,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.hyprland;
+in
+ lib.mkIf cfg.enable {
+ home.file."${config.xdg.configHome}/uwsm/env" = lib.mkIf cfg.useUwsm {
+ text = ''export QT_QPA_PLATFORM=wayland'';
+ };
+
+ home.packages = with pkgs; [wl-clipboard hyprshot brightnessctl];
+
+ wayland.windowManager.hyprland = {
+ enable = true;
+ systemd.enable = !cfg.useUwsm; # conflicts with uwsm
+
+ settings = {
+ source = "${./catppuccin.conf}";
+
+ xwayland.enabled = false; # all of my apps are compatible with wayland
+ general = {
+ "col.active_border" = "$accent";
+ "col.inactive_border" = "$base";
+ border_size = 2;
+ gaps_in = 5;
+ gaps_out = 8;
+ };
+
+ # TODO these should be dependent on what applications are enabled
+ bind =
+ [
+ "Mod4, q, killactive"
+ "Mod4, x, exec, footclient"
+ "Mod4, b, exec, firefox"
+ "Mod4, h, exec, obsidian"
+ "Mod4, SPACE, exec, fuzzel"
+ ]
+ ++ (
+ # workspaces
+ # binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
+ builtins.concatLists (builtins.genList (
+ i: let
+ ws = i + 1;
+ in [
+ "Mod4, code:1${toString i}, workspace, ${toString ws}"
+ "Mod4 SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
+ ]
+ )
+ 9)
+ );
+
+ binde = [
+ ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
+ ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+
+ ", XF86MonBrightnessUp, exec, brightnessctl s 5%+"
+ ", XF86MonBrightnessDown, exec, brightnessctl s 5%-"
+ ];
+
+ bindm = [
+ "Mod4, mouse:272, movewindow"
+ "Mod4, mouse:273, resizewindow"
+ ];
+
+ monitor = ", prefred, auto, 1";
+ animations = {
+ bezier = [
+ "ease, 0.25, 0.1, 0.25, 1"
+ "menu_decel, 0.1, 1, 0, 1"
+ ];
+ animation = [
+ "workspaces, 1, 2, ease"
+ "workspaces, 1, 7, menu_decel, slidefade 15%"
+ "global, 1, 2.5, ease"
+ "windowsIn, 1, 2.75, ease, slide"
+ "windowsOut, 1.275, ease, slide"
+ ];
+ };
+ misc.disable_hyprland_logo = true;
+ };
+ };
+
+ home.file."Pictures/wallpaper.jpg".source = ./wallpaper.jpg;
+
+ services.hyprpaper = {
+ enable = true;
+ settings = {
+ ipc = false;
+ preload = ["Pictures/wallpaper.jpg"];
+ wallpaper = ",Pictures/wallpaper.jpg";
+ };
+ };
+ }
diff --git a/modules/desktop/home/environments/hyprland/hyprland/wallpaper.jpg b/modules/desktop/home/environments/hyprland/hyprland/wallpaper.jpg
new file mode 100644
index 0000000..039afcc
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/hyprland/wallpaper.jpg
Binary files differ
diff --git a/modules/desktop/home/environments/hyprland/waybar/catppuccin.scss b/modules/desktop/home/environments/hyprland/waybar/catppuccin.scss
new file mode 100644
index 0000000..0eb6a82
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/catppuccin.scss
@@ -0,0 +1,26 @@
+@define-color rosewater #f5e0dc;
+@define-color flamingo #f2cdcd;
+@define-color pink #f5c2e7;
+@define-color mauve #cba6f7;
+@define-color red #f38ba8;
+@define-color maroon #eba0ac;
+@define-color peach #fab387;
+@define-color yellow #f9e2af;
+@define-color green #a6e3a1;
+@define-color teal #94e2d5;
+@define-color sky #89dceb;
+@define-color sapphire #74c7ec;
+@define-color blue #89b4fa;
+@define-color lavender #b4befe;
+@define-color text #cdd6f4;
+@define-color subtext1 #bac2de;
+@define-color subtext0 #a6adc8;
+@define-color overlay2 #9399b2;
+@define-color overlay1 #7f849c;
+@define-color overlay0 #6c7086;
+@define-color surface2 #585b70;
+@define-color surface1 #45475a;
+@define-color surface0 #313244;
+@define-color base #1e1e2e;
+@define-color mantle #181825;
+@define-color crust #11111b;
diff --git a/modules/desktop/home/environments/hyprland/waybar/config.nix b/modules/desktop/home/environments/hyprland/waybar/config.nix
new file mode 100644
index 0000000..7afa83c
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/config.nix
@@ -0,0 +1,59 @@
+{pkgs, ...}: {
+ spacing = 4;
+ modules-left = ["custom/launcher" "hyprland/workspaces"];
+ modules-center = ["hyprland/window"];
+ modules-right = ["bluetooth" "wireplumber" "battery" "clock" "custom/power"];
+
+ "custom/launcher" = {
+ format = " ";
+ on-click = "${pkgs.fuzzel}/bin/fuzzel";
+ };
+ "hyprland/workspaces" = {
+ disable-scroll = true;
+ all-outputs = true;
+ warp-on-scroll = false;
+ format = "{icon}";
+ format-icons = {
+ "1" = "";
+ "2" = "󰈹";
+ "3" = "󰝚";
+ "4" = "󰎚";
+ "5" = "";
+ };
+ };
+ "hyprland/window" = {
+ on-click = "hyprctl dispatch float";
+ };
+ "bluetooth" = {
+ format = "";
+ format-connected = "󰂯 {device_alias}";
+ };
+ "battery" = {
+ format = "{icon} {capacity}%";
+ format-alt = "{icon}";
+ format-icons = [" " " " " " " " " "];
+ };
+ "wireplumber" = {
+ format = "{icon} {volume}%";
+ format-alt = "{icon}";
+ format-muted = "󰖁 {volume}%";
+ format-icons.default = ["󰕿" "󰖀" "󰕾"];
+ tooltip = false;
+ };
+ "clock" = {
+ format = "{:%I:%M}";
+ format-alt = "/{:%Y/%b/%d-%a}";
+ tooltip = false;
+ };
+ "custom/power" = {
+ format = " collin";
+ tooltip = false;
+ menu = "on-click";
+ menu-file = "${./power_menu.xml}";
+ menu-actions = {
+ logout = "hyprctl dispatch exit";
+ reboot = "reboot";
+ shutdown = "poweroff";
+ };
+ };
+}
diff --git a/modules/desktop/home/environments/hyprland/waybar/default.nix b/modules/desktop/home/environments/hyprland/waybar/default.nix
new file mode 100644
index 0000000..3b73a78
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/default.nix
@@ -0,0 +1,20 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.hyprland.components.waybar;
+in
+ lib.mkIf cfg.enable {
+ programs.waybar = {
+ enable = true;
+ systemd.enable = true;
+ settings."mainBar" = import ./config.nix {inherit pkgs;};
+ style = lib.mkIf (cfg.theme == "catppuccin") ''
+ @import "${./catppuccin.scss}";
+
+ ${builtins.readFile ./style.scss}
+ '';
+ };
+ }
diff --git a/modules/desktop/home/environments/hyprland/waybar/power_menu.xml b/modules/desktop/home/environments/hyprland/waybar/power_menu.xml
new file mode 100644
index 0000000..2935c89
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/power_menu.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkMenu" id="menu">
+ <child>
+ <object class="GtkMenuItem" id="logout">
+ <property name="label">Log Out</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="delimiter1"/>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="reboot">
+ <property name="label">Reboot</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="shutdown">
+ <property name="label">Shutdown</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/modules/desktop/home/environments/hyprland/waybar/style.scss b/modules/desktop/home/environments/hyprland/waybar/style.scss
new file mode 100644
index 0000000..7674164
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/style.scss
@@ -0,0 +1,86 @@
+* {
+ font-family: Iosevka Nerd Font;
+ font-size: 10pt;
+ min-height: 0;
+}
+
+#waybar {
+ background: @base;
+ color: @text;
+}
+
+#workspaces,
+#clock,
+#battery,
+#wireplumber,
+#bluetooth.connected,
+#custom-power {
+ color: @text;
+ background: @surface0;
+
+ padding: 0.5rem 1rem;
+ border-radius: 1rem;
+
+ margin: 5px 0;
+}
+
+#workspaces button {
+ color: @lavender;
+ border-radius: 1rem;
+ padding: 0rem 0.75rem;
+}
+
+#workspaces button.active {
+ color: @sky;
+}
+
+#workspaces button:hover {
+ box-shadow: inherit;
+ text-shadow: inherit;
+ background: none;
+ border: none;
+ border-color: transparent;
+ padding: 0 0.75rem;
+ margin: 0;
+}
+
+#window {
+ font-size: 12pt;
+}
+
+#custom-launcher {
+ color: @blue;
+ font-size: 12pt;
+ padding: 0;
+ margin: 0;
+
+ margin-left: 1rem;
+ margin-right: 1rem;
+}
+
+#bluetooth.connected {
+ color: @blue;
+}
+
+#wireplumber {
+ color: @maroon;
+ border-radius: 1rem 0 0 1rem;
+ margin-left: 1rem;
+}
+
+#battery {
+ color: @green;
+ border-radius: 0;
+}
+
+#clock {
+ color: @blue;
+ border-radius: 0 1rem 1rem 0;
+ margin-right: 1rem;
+}
+
+#custom-power {
+ color: @rosewater;
+ margin-right: 1rem;
+ /* border: @rosewater 1px solid; */
+} \ No newline at end of file
diff --git a/modules/desktop/home/gtk/adwaita.nix b/modules/desktop/home/gtk/adwaita.nix
new file mode 100644
index 0000000..1a17d13
--- /dev/null
+++ b/modules/desktop/home/gtk/adwaita.nix
@@ -0,0 +1,33 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.gtk;
+in
+ lib.mkIf (cfg.theme == "adwaita") {
+ home.pointerCursor = {
+ gtk.enable = true;
+ dotIcons.enable = false;
+
+ package = pkgs.vanilla-dmz;
+ name = "Vanilla-DMZ";
+ size = 24;
+ };
+
+ gtk.theme = {
+ name = "adw-gtk3";
+ package = pkgs.adw-gtk3;
+ };
+
+ dconf = {
+ enable = true;
+ settings = {
+ "org/gnome/desktop/interface" = {
+ color-scheme = "prefer-dark";
+ enable-hot-corners = false;
+ };
+ };
+ };
+ }
diff --git a/modules/desktop/home/gtk/catppuccin.nix b/modules/desktop/home/gtk/catppuccin.nix
new file mode 100644
index 0000000..81f0d3d
--- /dev/null
+++ b/modules/desktop/home/gtk/catppuccin.nix
@@ -0,0 +1,33 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.gtk;
+in
+ lib.mkIf (cfg.theme == "catppuccin") {
+ home.pointerCursor = {
+ hyprcursor = {
+ enable = true;
+ size = 24;
+ };
+ gtk.enable = true;
+ dotIcons.enable = false;
+
+ package = pkgs.catppuccin-cursors.mochaDark;
+ name = "catppuccin-mocha-dark-cursors";
+ size = 24;
+ };
+
+ gtk = {
+ theme = {
+ package = pkgs.catppuccin-gtk.override {
+ accents = ["blue"];
+ variant = "mocha";
+ size = "standard";
+ };
+ name = "catppuccin-mocha-blue-standard";
+ };
+ };
+ }
diff --git a/modules/desktop/home/gtk/default.nix b/modules/desktop/home/gtk/default.nix
new file mode 100644
index 0000000..8dc00f2
--- /dev/null
+++ b/modules/desktop/home/gtk/default.nix
@@ -0,0 +1,26 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.gtk;
+in {
+ imports = [
+ ./catppuccin.nix
+ ./adwaita.nix
+ ];
+
+ config = {
+ home.packages = [pkgs.dconf];
+
+ gtk = {
+ enable = true;
+ iconTheme = {
+ package = pkgs.papirus-icon-theme;
+ name = "Papirus";
+ };
+ gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
+ };
+ };
+}
diff --git a/modules/desktop/home/programs/firefox/adwaita.nix b/modules/desktop/home/programs/firefox/adwaita.nix
new file mode 100644
index 0000000..2655f42
--- /dev/null
+++ b/modules/desktop/home/programs/firefox/adwaita.nix
@@ -0,0 +1,25 @@
+{
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.firefox;
+
+ firefox-gnome-theme = builtins.fetchGit {
+ url = "https://github.com/rafaelmardojai/firefox-gnome-theme";
+ rev = "59e3de00f01e5adb851d824cf7911bd90c31083a";
+ };
+in
+ lib.mkIf (cfg.enable && cfg.theme == "adwaita") {
+ home.file.".mozilla/firefox/${cfg.profileName}/chrome" = {
+ recursive = true;
+ source = firefox-gnome-theme;
+ };
+
+ programs.firefox.profiles."${cfg.profileName}" = {
+ settings = {
+ "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
+ "svg.context-properties.content.enabled" = true;
+ };
+ };
+ }
diff --git a/modules/desktop/home/programs/firefox/catppuccin.nix b/modules/desktop/home/programs/firefox/catppuccin.nix
new file mode 100644
index 0000000..7c78fab
--- /dev/null
+++ b/modules/desktop/home/programs/firefox/catppuccin.nix
@@ -0,0 +1,20 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.firefox;
+in
+ lib.mkIf (cfg.enable && cfg.theme == "catppuccin") {
+ programs.firefox.profiles."${cfg.profileName}".settings = {
+ "browser.compactmode.show" = true;
+ "browser.uidensity" = 1;
+
+ "browser.tabs.inTitlebar" = 0;
+ "sidebar.verticalTabs" = true;
+ "sidebar.main.tools" = "";
+
+ "browser.uiCustomization.state" = ''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":[],"nav-bar":["sidebar-button","customizableui-special-spring4","back-button","forward-button","urlbar-container","ublock0_raymondhill_net-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","unified-extensions-button","vertical-spacer"],"toolbar-menubar":["menubar-items"],"TabsToolbar":[],"vertical-tabs":["tabbrowser-tabs"],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","ublock0_raymondhill_net-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"],"dirtyAreaCache":["nav-bar","TabsToolbar","vertical-tabs","PersonalToolbar","toolbar-menubar","unified-extensions-area"],"currentVersion":21,"newElementCount":6}'';
+ "browser.uiCustomization.navBarWhenVerticalTabs" = ''["sidebar-button","customizableui-special-spring4","back-button","forward-button","urlbar-container","ublock0_raymondhill_net-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","unified-extensions-button","vertical-spacer"]'';
+ };
+ }
diff --git a/modules/desktop/home/programs/firefox/default.nix b/modules/desktop/home/programs/firefox/default.nix
new file mode 100644
index 0000000..91230d9
--- /dev/null
+++ b/modules/desktop/home/programs/firefox/default.nix
@@ -0,0 +1,17 @@
+{
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.firefox;
+in {
+ imports = [
+ ./profile.nix
+ ./adwaita.nix
+ ./catppuccin.nix
+ ];
+
+ config = lib.mkIf (cfg.enable) {
+ programs.firefox.enable = true;
+ };
+}
diff --git a/modules/desktop/home/programs/firefox/profile.nix b/modules/desktop/home/programs/firefox/profile.nix
new file mode 100644
index 0000000..cab8f40
--- /dev/null
+++ b/modules/desktop/home/programs/firefox/profile.nix
@@ -0,0 +1,38 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.firefox;
+in
+ lib.mkIf cfg.enable {
+ programs.firefox.profiles."${cfg.profileName}" = {
+ isDefault = true;
+ search.default = "ddg";
+
+ containersForce = true;
+ containers = {
+ "school" = {
+ color = "orange";
+ icon = "briefcase";
+ id = 3;
+ };
+ "personal" = {
+ color = "blue";
+ icon = "fingerprint";
+ id = 2;
+ };
+ "default" = {
+ color = "red";
+ icon = "circle";
+ id = 1;
+ };
+ };
+
+ settings = {
+ "browser.aboutConfig.showWarning" = false;
+ "browser.toolbars.bookmarks.visibility" = "never";
+ "browser.urlbar.groupLabels.enabled" = false;
+ };
+ };
+ }
diff --git a/modules/desktop/home/programs/musescore.nix b/modules/desktop/home/programs/musescore.nix
new file mode 100644
index 0000000..5fbf0f5
--- /dev/null
+++ b/modules/desktop/home/programs/musescore.nix
@@ -0,0 +1,13 @@
+{
+ lib,
+ pkgs,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.musescore;
+in
+ lib.mkIf cfg.enable {
+ home.packages = [pkgs.musescore];
+
+ # TODO: is there a way to declare a musescore configuration?
+ }
diff --git a/modules/desktop/options.nix b/modules/desktop/options.nix
new file mode 100644
index 0000000..0301373
--- /dev/null
+++ b/modules/desktop/options.nix
@@ -0,0 +1,67 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ inherit (lib) mkOption mkEnableOption types;
+
+ mkProgramOption' = name: extraOpts:
+ {
+ enable = mkEnableOption "whether to enable ${name}";
+ theme = mkOption {
+ type = types.enum ["catppuccin" "adwaita"];
+ default = config.collinux.terminal.theme;
+ };
+ }
+ // extraOpts;
+
+ mkProgramOption = name: mkProgramOption' name {};
+in {
+ options = {
+ collinux.desktop = {
+ greeter = mkOption {
+ type = types.enum ["gdm" "greetd"];
+ default = let
+ cfg = config.collinux.desktop;
+ in
+ if ((cfg.hyprland.enable || cfg.sway.enable) && !cfg.gnome.enable)
+ then "greetd"
+ else "gdm";
+ };
+
+ components = {
+ waybar = mkProgramOption "waybar";
+ dunst = mkProgramOption "dunst";
+ fuzzel = mkProgramOption "fuzzel";
+ };
+
+ sway = {
+ enable = mkEnableOption "sway";
+ };
+
+ gnome.enable = mkEnableOption "gnome";
+
+ gtk.theme = mkOption {
+ type = types.enum ["catppuccin" "adwaita"];
+ default = config.collinux.theme;
+ };
+
+ programs = {
+ firefox = {
+ enable = mkEnableOption "firefox";
+ profileName = mkOption {
+ type = types.str;
+ default = config.collinux.user.name;
+ };
+ theme = mkOption {
+ type = types.enum ["none" "catppuccin" "adwaita"];
+ default = config.collinux.theme;
+ };
+ };
+ foot.enable = mkEnableOption "foot";
+
+ musescore.enable = mkEnableOption "musescore";
+ };
+ };
+ };
+}
diff --git a/modules/desktop/system/components/dunst.nix b/modules/desktop/system/components/dunst.nix
new file mode 100644
index 0000000..cb650a1
--- /dev/null
+++ b/modules/desktop/system/components/dunst.nix
@@ -0,0 +1,38 @@
+{
+ lib,
+ config,
+ pkgs,
+ ...
+}: let
+ cfg = config.collinux.desktop.components.dunst;
+
+ settings = pkgs.writeText "dunstrc" ''
+ [global]
+ frame_color = "#89b4fa"
+ separator_color = frame
+ highlight = "#89b4fa"
+ offset = "8x30"
+ origin = "top-right"
+ transparency = 10
+ font = "Iosevka Nerd Font"
+
+ [urgency_low]
+ background = "#1e1e2e"
+ foreground = "#cdd6f4"
+
+ [urgency_normal]
+ background = "#1e1e2e"
+ foreground = "#cdd6f4"
+
+ [urgency_critical]
+ background = "#1e1e2e"
+ foreground = "#cdd6f4"
+ frame_color = "#fab387"
+ '';
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files.".config/dunst/dunstrc".source = settings;
+ packages = [pkgs.dunst];
+ };
+ }
diff --git a/modules/desktop/system/components/fuzzel.nix b/modules/desktop/system/components/fuzzel.nix
new file mode 100644
index 0000000..f5937c6
--- /dev/null
+++ b/modules/desktop/system/components/fuzzel.nix
@@ -0,0 +1,50 @@
+{
+ lib,
+ config,
+ pkgs,
+ ...
+}: let
+ cfg = config.collinux.desktop.components.fuzzel;
+ ini' = pkgs.formats.ini {};
+
+ settings = ini'.generate "fuzzel.ini" {
+ main = {
+ prompt = " ";
+ dpi-aware = false;
+
+ font = "Iosevka Nerd Font";
+ line-height = 25;
+ lines = 10;
+ width = 30;
+
+ horizontal-pad = 8;
+ vertical-pad = 8;
+ };
+ border = {
+ radius = 0;
+ width = 2;
+ };
+
+ colors = {
+ background = "1e1e2edd";
+ text = "cdd6f4ff";
+ prompt = "bac2deff";
+ placeholder = "7f849cff";
+ input = "cdd6f4ff";
+ match = "89b4faff";
+ selection = "585b70ff";
+ selection-text = "cdd6f4ff";
+ selection-match = "89b4faff";
+ counter = "7f849cff";
+ border = "89b4faff";
+ };
+ };
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/fuzzel/fuzzel.ini".source = settings;
+ };
+ packages = [pkgs.fuzzel];
+ };
+ }
diff --git a/modules/desktop/system/default.nix b/modules/desktop/system/default.nix
new file mode 100644
index 0000000..8ebe9b0
--- /dev/null
+++ b/modules/desktop/system/default.nix
@@ -0,0 +1,12 @@
+{...}: {
+ imports = [
+ ./environments/gnome.nix
+ ./environments/sway.nix
+
+ ./programs/firefox.nix
+ ./programs/foot.nix
+
+ ./components/fuzzel.nix
+ ./components/dunst.nix
+ ];
+}
diff --git a/modules/desktop/system/environments/gnome.nix b/modules/desktop/system/environments/gnome.nix
new file mode 100644
index 0000000..e4f6922
--- /dev/null
+++ b/modules/desktop/system/environments/gnome.nix
@@ -0,0 +1,67 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.gnome;
+in
+ lib.mkIf cfg.enable {
+ services.xserver = {
+ displayManager.gdm = {
+ enable = true;
+ wayland = true;
+ };
+ desktopManager.gnome.enable = true;
+ };
+
+ environment.gnome.excludePackages = with pkgs; [
+ orca
+ evince
+ file-roller
+ geary
+ gnome-disk-utility
+ seahorse
+ # sushi
+ # sysprof
+ # gnome-shell-extensions
+ adwaita-icon-theme
+ # nixos-background-info
+ gnome-backgrounds
+ # gnome-bluetooth
+ # gnome-color-manager
+ # gnome-control-center
+ # gnome-shell-extensions
+ gnome-tour # GNOME Shell detects the .desktop file on first log-in.
+ gnome-user-docs
+ # glib # for gsettings program
+ # gnome-menus
+ # gtk3.out # for gtk-launch program
+ # xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
+ # xdg-user-dirs-gtk # Used to create the default bookmarks
+ #
+ baobab
+ epiphany
+ gnome-text-editor
+ gnome-calculator
+ gnome-calendar
+ gnome-characters
+ # gnome-clocks
+ gnome-console
+ gnome-contacts
+ gnome-font-viewer
+ gnome-logs
+ gnome-maps
+ gnome-music
+ # gnome-system-monitor
+ gnome-weather
+ # loupe
+ # nautilus
+ gnome-connections
+ simple-scan
+ snapshot
+ totem
+ yelp
+ gnome-software
+ ];
+ }
diff --git a/modules/desktop/system/environments/sway.nix b/modules/desktop/system/environments/sway.nix
new file mode 100644
index 0000000..467363a
--- /dev/null
+++ b/modules/desktop/system/environments/sway.nix
@@ -0,0 +1,103 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.sway;
+
+ colors = pkgs.writeText "catppuccin-mocha" ''
+ set $rosewater #f5e0dc
+ set $flamingo #f2cdcd
+ set $pink #f5c2e7
+ set $mauve #cba6f7
+ set $red #f38ba8
+ set $maroon #eba0ac
+ set $peach #fab387
+ set $yellow #f9e2af
+ set $green #a6e3a1
+ set $teal #94e2d5
+ set $sky #89dceb
+ set $sapphire #74c7ec
+ set $blue #89b4fa
+ set $lavender #b4befe
+ set $text #cdd6f4
+ set $subtext1 #bac2de
+ set $subtext0 #a6adc8
+ set $overlay2 #9399b2
+ set $overlay1 #7f849c
+ set $overlay0 #6c7086
+ set $surface2 #585b70
+ set $surface1 #45475a
+ set $surface0 #313244
+ set $base #1e1e2e
+ set $mantle #181825
+ set $crust #11111b
+ '';
+
+ settings = pkgs.writeText "config" ''
+ exec ${pkgs.foot}/bin/foot --server
+ exec ${pkgs.swaybg}/bin/swaybg -i ${config.collinux.desktop.wallpaper}
+
+ include catppuccin-mocha
+
+ # target title bg text indicator border
+ client.focused $lavender $base $text $rosewater $lavender
+ client.focused_inactive $overlay0 $base $text $rosewater $overlay0
+ client.unfocused $overlay0 $base $text $rosewater $overlay0
+ client.urgent $peach $base $peach $overlay0 $peach
+ client.placeholder $overlay0 $base $text $overlay0 $overlay0
+ client.background $base
+
+ # bar {
+ # colors {
+ # background $base
+ # statusline $text
+ # focused_statusline $text
+ # focused_separator $base
+
+ # # target border bg text
+ # focused_workspace $base $mauve $crust
+ # active_workspace $base $surface2 $text
+ # inactive_workspace $base $base $text
+ # urgent_workspace $base $red $crust
+ # }
+ # }
+
+ bindsym Mod4+1 workspace number 1
+ bindsym Mod4+2 workspace number 2
+ bindsym Mod4+3 workspace number 3
+ bindsym Mod4+4 workspace number 4
+ bindsym Mod4+Return exec "${pkgs.foot}/bin/footclient"
+ bindsym Mod4+Shift+Return exec ${pkgs.foot}/bin/foot
+ bindsym Mod4+Space exec ${pkgs.fuzzel}/bin/fuzzel
+ bindsym Mod4+b exec ${pkgs.firefox}/bin/firefox
+ bindsym Mod4+q kill
+
+ default_border pixel 2
+ smart_borders on
+ smart_gaps on
+ '';
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/sway/config".source = settings;
+ ".config/sway/catppuccin-mocha".source = colors;
+ };
+
+ packages = [pkgs.sway];
+ };
+
+ # Greetd
+ services.greetd = {
+ enable = true;
+ settings = rec {
+ initial_session = {
+ command = "${pkgs.sway}/bin/sway";
+ user = config.collinux.user.name;
+ };
+ default_session = initial_session;
+ };
+ };
+ }
diff --git a/modules/desktop/system/programs/firefox.nix b/modules/desktop/system/programs/firefox.nix
new file mode 100644
index 0000000..e5c5e21
--- /dev/null
+++ b/modules/desktop/system/programs/firefox.nix
@@ -0,0 +1,36 @@
+{
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.firefox;
+in
+ lib.mkIf cfg.enable {
+ programs.firefox = {
+ enable = true;
+ policies = {
+ PasswordManagerEnabled = false; # use bitwarden instead
+ DisableAccounts = true;
+ DisablePocket = true;
+
+ OverrideFirstRunPage = "";
+ OverridePostUpdatePage = "";
+
+ ExtensionSettings = let
+ ext = name: {
+ installation_mode = "force_installed";
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi";
+ };
+ in
+ lib.mkMerge [
+ {
+ "{446900e4-71c2-419f-a6a7-df9c091e268b}" = ext "bitwarden-password-manager";
+ "uBlock0@raymondhill.net" = ext "uBlock0@raymondhill.net";
+ }
+ (lib.mkIf (cfg.theme == "catppuccin") {
+ "{88b098c8-19be-421e-8ffa-85ddd1f3f004}" = ext "catppuccin-mocha-blue";
+ })
+ ];
+ };
+ };
+ }
diff --git a/modules/desktop/system/programs/foot.nix b/modules/desktop/system/programs/foot.nix
new file mode 100644
index 0000000..d6f97c7
--- /dev/null
+++ b/modules/desktop/system/programs/foot.nix
@@ -0,0 +1,64 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.foot;
+ ini' = pkgs.formats.ini {listsAsDuplicateKeys = true;};
+
+ settings = ini'.generate "foot.ini" {
+ main = {
+ font = "Iosevka Nerd Font:size=12";
+ shell =
+ if config.collinux.terminal.programs.tmux.enable
+ then "${pkgs.tmux}/bin/tmux"
+ else "${pkgs.fish}/bin/fish";
+ };
+
+ cursor.color = "11111b f5e0dc";
+ colors = {
+ foreground = "cdd6f4";
+ background = "1e1e2e";
+
+ regular0 = "45475a";
+ regular1 = "f38ba8";
+ regular2 = "a6e3a1";
+ regular3 = "f9e2af";
+ regular4 = "89b4fa";
+ regular5 = "f5c2e7";
+ regular6 = "94e2d5";
+ regular7 = "bac2de";
+
+ bright0 = "585b70";
+ bright1 = "f38ba8";
+ bright2 = "a6e3a1";
+ bright3 = "f9e2af";
+ bright4 = "89b4fa";
+ bright5 = "f5c2e7";
+ bright6 = "94e2d5";
+ bright7 = "a6adc8";
+
+ "16" = "fab387";
+ "17" = "f5e0dc";
+
+ selection-foreground = "cdd6f4";
+ selection-background = "414356";
+
+ search-box-no-match = "11111b f38ba8";
+ search-box-match = "cdd6f4 313244";
+
+ jump-labels = "11111b fab387";
+ urls = "89b4fa";
+ };
+ };
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/foot/foot.ini".source = settings;
+ };
+
+ packages = [pkgs.foot];
+ };
+ }
diff --git a/modules/nix/system/default.nix b/modules/nix/system/default.nix
new file mode 100644
index 0000000..c35d3b3
--- /dev/null
+++ b/modules/nix/system/default.nix
@@ -0,0 +1,23 @@
+{
+ nix = {
+ gc.automatic = false; # use nh cleaner instead
+
+ # Make builds run with low priority so my system stays responsive
+ daemonCPUSchedPolicy = "idle";
+ daemonIOSchedClass = "idle";
+
+ settings = {
+ extra-experimental-features = ["nix-command" "flakes" "pipe-operators"];
+ auto-optimise-store = true;
+ use-xdg-base-directories = true;
+ };
+ };
+
+ # Disable channels
+ nix.channel.enable = false;
+ programs.command-not-found.enable = false; # breaks unless you use channels
+
+ nixpkgs = {
+ config.allowUnfree = true;
+ };
+}
diff --git a/modules/options.nix b/modules/options.nix
new file mode 100644
index 0000000..b890831
--- /dev/null
+++ b/modules/options.nix
@@ -0,0 +1,9 @@
+{lib, ...}: let
+ inherit (lib) mkOption types;
+in {
+ options = {
+ collinux.theme = mkOption {
+ type = types.enum ["catppuccin" "adwaita"];
+ };
+ };
+}
diff --git a/modules/services/options.nix b/modules/services/options.nix
new file mode 100644
index 0000000..344d37d
--- /dev/null
+++ b/modules/services/options.nix
@@ -0,0 +1,20 @@
+{lib, ...}: let
+ inherit (lib) mkEnableOption mkOption types;
+in {
+ options = {
+ collinux.services = {
+ networking = {
+ enable = mkEnableOption "wifi";
+ wifiDaemon = mkOption {
+ type = types.enum ["networkmanager" "iwd"];
+ };
+ };
+ audio = {
+ enable = mkEnableOption "pipewire + wireplumber";
+ pulse.enable = mkEnableOption "pipewire-pulse";
+ # some config to make audio work with wine (TODO for jupiter)
+ };
+ bluetooth.enable = mkEnableOption "bluetooth";
+ };
+ };
+}
diff --git a/modules/services/system/audio.nix b/modules/services/system/audio.nix
new file mode 100644
index 0000000..f0586ea
--- /dev/null
+++ b/modules/services/system/audio.nix
@@ -0,0 +1,19 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.services.audio;
+in
+ lib.mkIf cfg.enable {
+ services.pipewire = {
+ enable = true;
+ wireplumber.enable = true;
+ alsa.enable = true;
+
+ pulse.enable = cfg.pulse.enable;
+ };
+
+ environment.systemPackages = [pkgs.pwvucontrol];
+ }
diff --git a/modules/services/system/bluetooth.nix b/modules/services/system/bluetooth.nix
new file mode 100644
index 0000000..a0c3f86
--- /dev/null
+++ b/modules/services/system/bluetooth.nix
@@ -0,0 +1,16 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.services.bluetooth;
+in
+ lib.mkIf cfg.enable {
+ hardware.bluetooth = {
+ enable = true;
+ powerOnBoot = true;
+ };
+
+ environment.systemPackages = [pkgs.blueman];
+ }
diff --git a/modules/services/system/default.nix b/modules/services/system/default.nix
new file mode 100644
index 0000000..4c03dfd
--- /dev/null
+++ b/modules/services/system/default.nix
@@ -0,0 +1,7 @@
+{
+ imports = [
+ ./networking
+ ./audio.nix
+ ./bluetooth.nix
+ ];
+}
diff --git a/modules/services/system/networking/default.nix b/modules/services/system/networking/default.nix
new file mode 100644
index 0000000..4908b6f
--- /dev/null
+++ b/modules/services/system/networking/default.nix
@@ -0,0 +1,19 @@
+{
+ imports = [
+ ./iwd.nix
+ ./nm.nix
+ ];
+
+ config = {
+ services.resolved = {
+ enable = true;
+ domains = [
+ "10.0.0.1"
+ "10.0.0.10"
+ ];
+ };
+
+ networking.resolvconf.enable = false;
+ };
+}
+
diff --git a/modules/services/system/networking/iwd.nix b/modules/services/system/networking/iwd.nix
new file mode 100644
index 0000000..5306f29
--- /dev/null
+++ b/modules/services/system/networking/iwd.nix
@@ -0,0 +1,26 @@
+{
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.services.networking;
+in
+ lib.mkIf (cfg.enable && cfg.wifiDaemon == "iwd") {
+ networking = {
+ wireless.iwd = {
+ enable = true;
+ settings = {
+ General = {
+ EnableNetworkConfiguration = true; # use builtin dhcp client
+ AddressRandomization = "once";
+ };
+ Network.NameResolvingService = "systemd"; # either systemd or resolvconf
+ };
+ };
+
+ # Disable default networking stuff
+ dhcpcd.enable = false;
+ useDHCP = false;
+ networkmanager.enable = false;
+ };
+ }
diff --git a/modules/services/system/networking/nm.nix b/modules/services/system/networking/nm.nix
new file mode 100644
index 0000000..674664e
--- /dev/null
+++ b/modules/services/system/networking/nm.nix
@@ -0,0 +1,15 @@
+{
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.services.networking;
+in
+ lib.mkIf (cfg.enable && cfg.wifiDaemon == "networkmanager") {
+ networking = {
+ nameservers = ["1.1.1.1" "1.0.0.1"];
+ enableIPv6 = false;
+
+ networkmanager.enable = true;
+ };
+ }
diff --git a/modules/terminal/home/default.nix b/modules/terminal/home/default.nix
new file mode 100644
index 0000000..a874872
--- /dev/null
+++ b/modules/terminal/home/default.nix
@@ -0,0 +1,5 @@
+{pkgs, ...}: {
+ imports = [
+ ./emulators/blackbox.nix # can't do dbus with hjem
+ ];
+}
diff --git a/modules/terminal/home/emulators/blackbox.nix b/modules/terminal/home/emulators/blackbox.nix
new file mode 100644
index 0000000..7da15a9
--- /dev/null
+++ b/modules/terminal/home/emulators/blackbox.nix
@@ -0,0 +1,30 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.terminal.terminalEmulators.blackbox;
+in
+ lib.mkIf cfg.enable {
+ home.packages = [pkgs.blackbox-terminal];
+
+ dconf = {
+ enable = true;
+ settings = {
+ "com/raggesilver/BlackBox" = {
+ context-aware-header-bar = true;
+ fill-tabs = true;
+ notify-process-completion = true;
+ opacity = 100;
+ pixel-scrolling = true;
+ pretty = true;
+ show-scrollbars = false;
+ terminal-padding = "(10, 10, 10, 10)";
+
+ floating-controls = false;
+ show-headerbar = true;
+ };
+ };
+ };
+ }
diff --git a/modules/terminal/options.nix b/modules/terminal/options.nix
new file mode 100644
index 0000000..b728f99
--- /dev/null
+++ b/modules/terminal/options.nix
@@ -0,0 +1,77 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ inherit (lib) mkOption mkEnableOption types;
+
+ mkProgramOption' = name: extraOpts:
+ {
+ enable = mkEnableOption "whether to enable ${name}";
+ theme = mkOption {
+ type = types.enum ["catppuccin" "adwaita"];
+ default = config.collinux.terminal.theme;
+ };
+ }
+ // extraOpts;
+
+ mkProgramOption = name: mkProgramOption' name {};
+in {
+ options = {
+ collinux.terminal = {
+ theme = mkOption {
+ type = types.enum ["catppuccin" "adwaita"];
+ default = config.collinux.theme;
+ };
+
+ shells = {
+ fish = mkProgramOption "fish shell";
+ bash = mkProgramOption "bash shell";
+
+ defaultShell = mkOption {
+ type = types.package;
+ description = "which shell is default";
+ default = let
+ cfg = config.collinux.terminal.shells;
+ in
+ if (cfg.fish.enable && !cfg.bash.enable)
+ then pkgs.fish
+ else if (!cfg.fish.enable && cfg.bash.enable)
+ then pkgs.bash
+ else null;
+ };
+ };
+
+ programs = {
+ # Themed
+ starship = mkProgramOption "starship prompt";
+ lazygit.enable = mkEnableOption "lazygit";
+ nh.enable = mkEnableOption "nh";
+
+ cmus = mkProgramOption "cmus";
+
+ git = {
+ enable = mkEnableOption "git";
+ userName = mkOption {
+ type = types.str;
+ default = config.collinux.user.name;
+ };
+ userEmail = mkOption {
+ type = types.str;
+ };
+ };
+
+ helix = mkProgramOption' "helix text editor" {
+ hardMode = mkOption {
+ type = types.bool;
+ description = "Disable arrow keys and mouse";
+ default = false;
+ };
+ };
+
+ tmux = mkProgramOption "tmux terminal multiplexer";
+ };
+ };
+ };
+}
diff --git a/modules/terminal/system/default.nix b/modules/terminal/system/default.nix
new file mode 100644
index 0000000..32ca3f9
--- /dev/null
+++ b/modules/terminal/system/default.nix
@@ -0,0 +1,25 @@
+{
+ config,
+ pkgs,
+ ...
+}: let
+ cfg = config.collinux.terminal.shells;
+in {
+ imports = [
+ ./programs/helix.nix
+ ./programs/tmux.nix
+ ./programs/fish.nix
+ ./programs/starship.nix
+ ./programs/lazygit.nix
+ ./programs/cmus.nix
+ ./programs/git.nix
+ ];
+
+ programs.command-not-found.enable = false; # broken without nix-channels
+
+ users.users."${config.collinux.user.name}" = {
+ shell = cfg.defaultShell;
+ ignoreShellProgramCheck = true;
+ packages = [pkgs.nh]; # Couldn't figure out where else to put this
+ };
+}
diff --git a/modules/terminal/system/programs/cmus.nix b/modules/terminal/system/programs/cmus.nix
new file mode 100644
index 0000000..3f1639b
--- /dev/null
+++ b/modules/terminal/system/programs/cmus.nix
@@ -0,0 +1,83 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.terminal.programs.cmus;
+
+ scripts.statusDisplay = pkgs.writeShellScriptBin "status.sh" ''
+ while [ $# -ge 2 ]; do
+ eval _$1='$2'
+ shift
+ shift
+ done
+
+ [ -d ~/.local/share/cmus ] || mkdir ~/.local/share/cmus
+
+ if [ -n "$_file" ]; then
+ ${pkgs.ffmpeg}/bin/ffmpeg -i "$_file" -y -an -c:v copy ~/.local/share/cmus/curr_cover.jpg || rm ~/.local/share/cmus/curr_cover.jpg
+ fi
+
+ if [[ "$_status" = "playing" ]]; then
+ notify-send -t 3000 -u low -i ~/.local/share/cmus/curr_cover.jpg "Now Playing: $_title" "$_artist"
+ fi
+ '';
+
+ cmus_theme = pkgs.writeText "catppuccin.theme" ''
+ set color_cmdline_bg=default
+ set color_cmdline_fg=default
+ set color_error=211
+ set color_info=223
+ set color_separator=8
+ set color_statusline_bg=default
+ set color_statusline_fg=default
+ set color_titleline_bg=183
+ set color_titleline_fg=8
+ set color_titleline_attr=bold
+ set color_win_bg=default
+ set color_win_cur=117
+ set color_win_cur_sel_bg=117
+ set color_win_cur_sel_fg=235
+ set color_win_dir=default
+ set color_win_fg=default
+ set color_win_inactive_cur_sel_bg=0
+ set color_win_inactive_cur_sel_fg=default
+ set color_win_inactive_sel_bg=0
+ set color_win_inactive_sel_fg=default
+ set color_win_sel_bg=15
+ set color_win_sel_fg=235
+ set color_win_title_bg=default
+ set color_win_title_fg=183
+ set color_win_title_attr=bold
+ '';
+
+ cmus_rc = pkgs.writeText "rc" ''
+ colorscheme catppuccin
+ set status_display_program=${scripts.statusDisplay}/bin/status.sh
+ '';
+
+ cava_config = pkgs.writeText "config" ''
+ [color]
+ gradient=1
+ gradient_color_1='#94e2d5'
+ gradient_color_2='#89dceb'
+ gradient_color_3='#74c7ec'
+ gradient_color_4='#89b4fa'
+ gradient_color_5='#cba6f7'
+ gradient_color_6='#f5c2e7'
+ gradient_color_7='#eba0ac'
+ gradient_color_8='#f38ba8'
+ '';
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/cmus/rc".source = cmus_rc;
+ ".config/cmus/catppuccin.theme".source = cmus_theme;
+ ".config/cava/config".source = cava_config;
+ };
+
+ packages = with pkgs; [cava cmus];
+ };
+ }
diff --git a/modules/terminal/system/programs/fish.nix b/modules/terminal/system/programs/fish.nix
new file mode 100644
index 0000000..89d26ef
--- /dev/null
+++ b/modules/terminal/system/programs/fish.nix
@@ -0,0 +1,57 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.terminal.shells.fish;
+
+ init = pkgs.writeText "config.fish" ''
+ set fish_greeting
+
+ function starship_transient_prompt_func
+ ${pkgs.starship}/bin/starship module character
+ end
+
+ if status is-interactive
+ alias cat bat
+
+ alias eza "eza -A -w 80 --group-directories-first -I '.git*'"
+ alias ls eza
+ alias tree "ls -T"
+
+ ${pkgs.fzf}/bin/fzf --fish | source
+ ${pkgs.starship}/bin/starship init fish | source
+
+ enable_transience
+
+ # env vars
+ set -x EDITOR hx
+ set -x NH_FLAKE "$HOME/nixos"
+
+ set -x BAT_THEME "base16"
+ set -x FZF_DEFAULT_OPTS "--color bg:#1E1E2E,bg+:#313244,border:#313244,fg:#CDD6F4,fg+:#CDD6F4,header:#F38BA8,hl:#F38BA8,hl+:#F38BA8,info:#CBA6F7,label:#CDD6F4,marker:#B4BEFE,pointer:#F5E0DC,prompt:#CBA6F7,selected-bg:#45475A,spinner:#F5E0DC"
+ end
+ '';
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/fish/config.fish".source = init;
+ };
+
+ packages = with pkgs; [
+ fish
+ bat
+ eza
+ fzf
+ ripgrep
+ fd
+ moreutils
+ zip
+ unzip
+ btop
+ jq
+ ];
+ };
+ }
diff --git a/modules/terminal/system/programs/git.nix b/modules/terminal/system/programs/git.nix
new file mode 100644
index 0000000..b7c85bc
--- /dev/null
+++ b/modules/terminal/system/programs/git.nix
@@ -0,0 +1,29 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.collinux.terminal.programs.git;
+
+ git_config = pkgs.writeText "config" ''
+ [alias]
+ stage = "add"
+ unstage = "restore --staged"
+
+ [init]
+ defaultBranch = "main"
+
+ [user]
+ email = "${cfg.userEmail}"
+ name = "${cfg.userName}"
+ '';
+in {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/git/config".source = git_config;
+ };
+
+ packages = [pkgs.git];
+ };
+}
diff --git a/modules/terminal/system/programs/helix.nix b/modules/terminal/system/programs/helix.nix
new file mode 100644
index 0000000..4ba78d0
--- /dev/null
+++ b/modules/terminal/system/programs/helix.nix
@@ -0,0 +1,139 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.terminal.programs.helix;
+ toml' = pkgs.formats.toml {};
+
+ languages = toml'.generate "languages.toml" {
+ language = [
+ {
+ name = "nix";
+ file-types = ["nix"];
+ language-servers = ["nil"];
+ indent = {
+ tab-width = 2;
+ unit = " ";
+ };
+ formatter.command = "${pkgs.alejandra}/bin/alejandra";
+ auto-format = true;
+ }
+ {
+ name = "html";
+ file-types = ["html"];
+ language-servers = ["superhtml"];
+ auto-format = true;
+ }
+ ];
+ };
+
+ customCatppuccinTheme = toml'.generate "catppuccin_mocha_transparent.toml" {
+ inherits = "catppuccin_mocha";
+ "ui.background" = {};
+ };
+
+ mkHelixConfig = {
+ theme,
+ hardMode ? false,
+ }:
+ toml'.generate "config.toml" {
+ inherit theme;
+ editor = {
+ gutters = ["diff" "diagnostics" "line-numbers" "spacer" "spacer"];
+ cursorline = true;
+ color-modes = true;
+
+ mouse = !hardMode;
+
+ lsp.display-inlay-hints = true;
+
+ statusline = {
+ left = ["mode" "file-name" "spacer" "file-modification-indicator"];
+ right = ["spinner" "spacer" "workspace-diagnostics" "file-type"];
+ separator = "x";
+ };
+
+ cursor-shape = {
+ insert = "bar";
+ normal = "block";
+ select = "underline";
+ };
+ };
+ keys = {
+ normal =
+ {
+ "C-space" = "expand_selection";
+ "A-j" = ["extend_to_line_bounds" "delete_selection" "paste_after"];
+ "A-k" = ["extend_to_line_bounds" "delete_selection" "move_line_up" "paste_before"];
+ "X" = ["extend_line_up" "extend_to_line_bounds"];
+ "C-left" = "goto_line_start";
+ "C-right" = "goto_line_end";
+ ";" = "flip_selections";
+ "esc" = ["collapse_selection" "keep_primary_selection"];
+
+ # I don't even use these anyway
+ "pageup" = "no_op";
+ "pagedown" = "no_op";
+ "home" = "no_op";
+ "end" = "no_op";
+ }
+ // (
+ if hardMode
+ then {
+ "up" = "no_op";
+ "down" = "no_op";
+ "left" = "no_op";
+ "right" = "no_op";
+ }
+ else {}
+ );
+
+ insert =
+ {
+ "pageup" = "no_op";
+ "pagedown" = "no_op";
+ "home" = "no_op";
+ "end" = "no_op";
+ }
+ // (
+ if hardMode
+ then {
+ "up" = "no_op";
+ "down" = "no_op";
+ "left" = "no_op";
+ "right" = "no_op";
+ }
+ else {}
+ );
+
+ select = {
+ "esc" = ["collapse_selection" "insert_mode"];
+ };
+ };
+ };
+
+ settings = mkHelixConfig {
+ inherit (cfg) hardMode;
+ theme =
+ if cfg.theme == "catppuccin"
+ then "catppuccin_mocha_transparent"
+ else if cfg.theme == "adwaita"
+ then "adwaita_dark"
+ else "";
+ };
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/helix/config.toml".source = settings;
+ ".config/helix/languages.toml".source = languages;
+ ".config/helix/themes/catppuccin_mocha_transparent.toml".source = customCatppuccinTheme;
+ };
+
+ packages = [
+ pkgs.helix
+ ];
+ };
+ }
diff --git a/modules/terminal/system/programs/lazygit.nix b/modules/terminal/system/programs/lazygit.nix
new file mode 100644
index 0000000..4c048a0
--- /dev/null
+++ b/modules/terminal/system/programs/lazygit.nix
@@ -0,0 +1,26 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.terminal.programs.lazygit;
+ yaml' = pkgs.formats.yaml {};
+
+ settings = yaml'.generate "config.yml" {
+ git.paging.pager = "${pkgs.diff-so-fancy}/bin/diff-so-fancy";
+ gui = {
+ showRandomTip = false;
+ commitLength.show = false;
+ };
+ };
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/lazygit/config.yml".source = settings;
+ };
+
+ packages = [pkgs.lazygit];
+ };
+ }
diff --git a/modules/terminal/system/programs/starship.nix b/modules/terminal/system/programs/starship.nix
new file mode 100644
index 0000000..60fcc00
--- /dev/null
+++ b/modules/terminal/system/programs/starship.nix
@@ -0,0 +1,48 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.terminal.programs.starship;
+ toml' = pkgs.formats.toml {};
+
+ settings = toml'.generate "starship.toml" {
+ format = ''$directory$git_branch$git_status $character'';
+
+ add_newline = false;
+ scan_timeout = 10;
+
+ character = {
+ success_symbol = "[λ](green bold)";
+ error_symbol = "[Σ](red bold)";
+ };
+
+ git_branch.format = "[@$branch](underline)";
+
+ git_status = {
+ format = "$modified$staged$ahead$behind";
+ modified = "[!](red bold)";
+ staged = "[+](green bold)";
+ ahead = "[](green)";
+ behind = "[](red)";
+ };
+
+ directory = {
+ format = "$path";
+ truncation_length = 3;
+ truncate_to_repo = true;
+ };
+ };
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/starship.toml".source = settings;
+ };
+
+ packages = [
+ pkgs.starship
+ ];
+ };
+ }
diff --git a/modules/terminal/system/programs/tmux.nix b/modules/terminal/system/programs/tmux.nix
new file mode 100644
index 0000000..b947d95
--- /dev/null
+++ b/modules/terminal/system/programs/tmux.nix
@@ -0,0 +1,164 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.terminal.programs.tmux;
+
+ scripts.bat = pkgs.writeShellScriptBin "battery.sh" ''
+ energy_now=$(cat /sys/class/power_supply/BAT0/energy_now)
+ energy_full=$(cat /sys/class/power_supply/BAT0/energy_full)
+ percentage=$((energy_now * 100 / energy_full))
+ printf "%.0f%%" "$percentage"
+ '';
+
+ scripts.primeProjects = pkgs.writeShellScriptBin "projects.sh" ''
+ FZF_DEFAULT_OPTS="--color bg:#1E1E2E,bg+:#313244,border:#313244,fg:#CDD6F4,fg+:#CDD6F4,header:#F38BA8,hl:#F38BA8,hl+:#F38BA8,info:#CBA6F7,label:#CDD6F4,marker:#B4BEFE,pointer:#F5E0DC,prompt:#CBA6F7,selected-bg:#45475A,spinner:#F5E0DC"
+
+ projects="
+ $(find $HOME/projects -maxdepth 1 -mindepth 1 -type d)
+ $HOME/Documents/brain2.0
+ $HOME/Music
+ $HOME/nixos
+ "
+ if [ $# -eq 1 ]; then
+ selected="$1"
+ else
+ selected="$(echo "$projects" | fzf --tmux --style=minimal --info=hidden $FZF_DEFAULT_OPTS)"
+ fi
+
+ [ -z "$selected" ] && exit
+
+ session_name="$(basename "$selected" | tr '.' '_')"
+
+ if tmux list-sessions | grep -q "^$session_name:"; then
+ # session already exists, switch to it
+ tmux switch -t "$session_name"
+ else
+ # session doesn't exist, create it and switch to it
+ tmux new-session -ds "$session_name" -c "$selected"
+ tmux switch -t "$session_name"
+ fi
+ '';
+
+ scripts.cleanSessions = pkgs.writeShellScriptBin "clean-sessions.sh" ''
+ current="$(tmux display-message -p '#S')"
+
+ tmux list-sessions -F '#S' | while read -r line; do
+ if [[ "$line" != "$current" && "$line" =~ ^[[:digit:]]+$ ]]; then
+ tmux kill-session -t "$line"
+ fi
+ done
+ '';
+
+ scripts.bar = pkgs.writeShellScriptBin "bar.sh" ''
+ text="#c6d0f5"
+ text_dark="#7F849C"
+ blue="#b3befe"
+ green="#a6d189"
+ red="#f38ba8"
+ bg_dark="#181825"
+ bg_light="#1E1E2E"
+
+ tset() {
+ tmux set -gq "$@"
+ }
+
+ tset status on
+
+ tset status-position bottom
+ tset status-justify absolute-centre
+ tset status-bg $bg_light
+
+ tset status-left-style fg=$green
+ tset status-left "  #{client_session} "
+
+ tset window-status-style fg=$text_dark
+ tset window-status-format "#I:#W"
+ tset window-status-current-style fg=$blue,bold
+ tset window-status-current-format "#I:#W"
+ tset window-status-separator " "
+
+ tset status-right-style fg=$red
+ tset status-right "#(${scripts.bat}/bin/battery.sh)"
+
+ ## pane borders
+ tset pane-border-style fg=$bg_dark,bg=$bg_dark
+ tset pane-active-border-style fg=$bg_dark,bg=$bg_dark
+
+ ## pane backgrounds
+ # Set the foreground/background color for the active window
+ tset window-active-style bg=$bg_light
+
+ # Set the foreground/background color for all other windows
+ tset window-style bg=$bg_dark
+ '';
+
+ plugins.tmux-resurrect = builtins.fetchGit {
+ url = "https://github.com/tmux-plugins/tmux-resurrect";
+ rev = "cff343cf9e81983d3da0c8562b01616f12e8d548";
+ };
+
+ tmux-conf = pkgs.writeText "tmux.conf" ''
+ # Resurrect
+ run-shell ${plugins.tmux-resurrect}/resurrect.tmux
+ set -g @resurrect-dir "$HOME/.local/share/tmux-resurrect"
+ set -g @resurrect-processes 'hx cmus cava nix-shell'
+
+ set -g mouse on
+
+ # bell
+ set -g visual-activity off
+ set -g visual-bell off
+ set -g visual-silence off
+ setw -g monitor-activity off
+ set -g bell-action none
+
+ # Panes
+ bind-key -n C-w kill-pane
+
+ bind -n C-Enter if -F '#{e|>:#{e|/:#{pane_width},#{pane_height}},2.5}' {
+ split-window -h -c '#{pane_current_path}'
+ } {
+ split-window -v -c '#{pane_current_path}'
+ }
+
+ unbind -n MouseDown3Pane ## disable right click menu
+ bind-key -n M-z resize-pane -Z ## Pane zoom
+
+ # Windows
+ bind-key -n C-t new-window -c '#{pane_current_path}'
+ bind-key -n C-Tab next-window
+ bind-key -n C-S-Tab previous-window # doesn't work in foot :(
+
+ set -g renumber-windows on
+ set -g allow-rename off
+
+ # Statusbar
+ set-hook -g client-attached 'if -F "#{==:#{session_windows},1}" { set status off } { set status on }'
+ set-hook -g window-linked 'if -F "#{==:#{session_windows},1}" { set status off } { set status on }'
+ set-hook -g window-unlinked 'if -F "#{==:#{session_windows},1}" { set status off } { set status on }'
+
+ run-shell "${scripts.bar}/bin/bar.sh"
+
+ # Sessions
+ # set-hook -ag client-detached 'run-shell ${scripts.cleanSessions}/bin/clean-sessions.sh'
+ # set-hook -ag client-session-changed 'run-shell ${scripts.cleanSessions}/bin/clean-sessions.sh'
+
+ bind-key -n C-f run-shell "${scripts.primeProjects}/bin/projects.sh"
+ bind-key -n M-1 run-shell "${scripts.primeProjects}/bin/projects.sh ~/Music"
+ bind-key -n M-2 run-shell "${scripts.primeProjects}/bin/projects.sh ~/Documents/brain2.0"
+ bind-key -n M-3 run-shell "${scripts.primeProjects}/bin/projects.sh ~/nixos"
+
+ bind-key -n C-g display-popup -E -w 80% -h 80% -x C -y C -d "#{pane_current_path}" "${pkgs.lazygit}/bin/lazygit"
+ '';
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/tmux/tmux.conf".source = tmux-conf;
+ };
+ packages = [pkgs.tmux];
+ };
+ }
diff --git a/modules/user/home/default.nix b/modules/user/home/default.nix
new file mode 100644
index 0000000..9394bca
--- /dev/null
+++ b/modules/user/home/default.nix
@@ -0,0 +1,3 @@
+{
+ home.preferXdgDirectories = true;
+}
diff --git a/modules/user/options.nix b/modules/user/options.nix
new file mode 100644
index 0000000..f5c7a5f
--- /dev/null
+++ b/modules/user/options.nix
@@ -0,0 +1,23 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ inherit (lib) mkOption types;
+in {
+ options = {
+ collinux.user = {
+ name = mkOption {
+ type = types.str;
+ };
+ password = mkOption {
+ type = types.str;
+ description = "hashed password for user";
+ };
+ isAdmin = mkOption {
+ type = types.bool;
+ default = true;
+ };
+ };
+ };
+}
diff --git a/modules/user/system/default.nix b/modules/user/system/default.nix
new file mode 100644
index 0000000..52d8116
--- /dev/null
+++ b/modules/user/system/default.nix
@@ -0,0 +1,25 @@
+{config, ...}: let
+ cfg = config.collinux.user;
+in {
+ users.users."${cfg.name}" = {
+ isNormalUser = true;
+ description = cfg.name;
+ extraGroups =
+ ["networkmanager" "disks"]
+ ++ (
+ if cfg.isAdmin
+ then ["wheel"]
+ else []
+ );
+ hashedPassword = cfg.password;
+ };
+
+ hjem.clobberByDefault = true;
+ hjem.users."${cfg.name}" = {
+ enable = true;
+ directory = "/home/${cfg.name}";
+ user = cfg.name;
+ };
+
+ security.sudo-rs.enable = true;
+}