From a45c4551712c1ba5cb82eaf290f311ab0e8690e4 Mon Sep 17 00:00:00 2001 From: Collin Williams <96917990+bluedragon1221@users.noreply.github.com> Date: Mon, 9 Jun 2025 17:40:46 +0000 Subject: big changes --- README.md | 37 + flake.lock | 254 ++ flake.nix | 33 + hosts/jupiter/config.nix | 67 + hosts/jupiter/disks.nix | 32 + hosts/jupiter/facter.json | 4707 ++++++++++++++++++++ hosts/jupiter/home.nix | 11 + hosts/jupiter/system.nix | 15 + hosts/mercury/battery.nix | 47 + hosts/mercury/config.nix | 73 + hosts/mercury/disks.nix | 14 + hosts/mercury/facter.json | 4072 +++++++++++++++++ hosts/mercury/home.nix | 11 + hosts/mercury/system.nix | 24 + hosts/mercury/wallpaper.jpg | Bin 0 -> 169046 bytes lib/cfgWrapper.nix | 63 + lib/nix-furnace/README.md | 7 + lib/nix-furnace/default.nix | 121 + modules/boot/options.nix | 23 + modules/boot/system/default.nix | 37 + modules/boot/system/plymouth.nix | 21 + modules/desktop/home/default.nix | 14 + .../desktop/home/environments/gnome/default.nix | 67 + .../desktop/home/environments/hyprland/default.nix | 14 + .../desktop/home/environments/hyprland/dunst.nix | 44 + .../desktop/home/environments/hyprland/fuzzel.nix | 44 + .../environments/hyprland/hyprland/catppuccin.conf | 79 + .../environments/hyprland/hyprland/default.nix | 96 + .../environments/hyprland/hyprland/wallpaper.jpg | Bin 0 -> 169046 bytes .../environments/hyprland/waybar/catppuccin.scss | 26 + .../home/environments/hyprland/waybar/config.nix | 59 + .../home/environments/hyprland/waybar/default.nix | 20 + .../environments/hyprland/waybar/power_menu.xml | 23 + .../home/environments/hyprland/waybar/style.scss | 86 + modules/desktop/home/gtk/adwaita.nix | 33 + modules/desktop/home/gtk/catppuccin.nix | 33 + modules/desktop/home/gtk/default.nix | 26 + modules/desktop/home/programs/firefox/adwaita.nix | 25 + .../desktop/home/programs/firefox/catppuccin.nix | 20 + modules/desktop/home/programs/firefox/default.nix | 17 + modules/desktop/home/programs/firefox/profile.nix | 38 + modules/desktop/home/programs/musescore.nix | 13 + modules/desktop/options.nix | 67 + modules/desktop/system/components/dunst.nix | 38 + modules/desktop/system/components/fuzzel.nix | 50 + modules/desktop/system/default.nix | 12 + modules/desktop/system/environments/gnome.nix | 67 + modules/desktop/system/environments/sway.nix | 103 + modules/desktop/system/programs/firefox.nix | 36 + modules/desktop/system/programs/foot.nix | 64 + modules/nix/system/default.nix | 23 + modules/options.nix | 9 + modules/services/options.nix | 20 + modules/services/system/audio.nix | 19 + modules/services/system/bluetooth.nix | 16 + modules/services/system/default.nix | 7 + modules/services/system/networking/default.nix | 19 + modules/services/system/networking/iwd.nix | 26 + modules/services/system/networking/nm.nix | 15 + modules/terminal/home/default.nix | 5 + modules/terminal/home/emulators/blackbox.nix | 30 + modules/terminal/options.nix | 77 + modules/terminal/system/default.nix | 25 + modules/terminal/system/programs/cmus.nix | 83 + modules/terminal/system/programs/fish.nix | 57 + modules/terminal/system/programs/git.nix | 29 + modules/terminal/system/programs/helix.nix | 139 + modules/terminal/system/programs/lazygit.nix | 26 + modules/terminal/system/programs/starship.nix | 48 + modules/terminal/system/programs/tmux.nix | 164 + modules/user/home/default.nix | 3 + modules/user/options.nix | 23 + modules/user/system/default.nix | 25 + 73 files changed, 11771 insertions(+) create mode 100644 README.md create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 hosts/jupiter/config.nix create mode 100644 hosts/jupiter/disks.nix create mode 100644 hosts/jupiter/facter.json create mode 100644 hosts/jupiter/home.nix create mode 100644 hosts/jupiter/system.nix create mode 100644 hosts/mercury/battery.nix create mode 100644 hosts/mercury/config.nix create mode 100644 hosts/mercury/disks.nix create mode 100644 hosts/mercury/facter.json create mode 100644 hosts/mercury/home.nix create mode 100644 hosts/mercury/system.nix create mode 100644 hosts/mercury/wallpaper.jpg create mode 100644 lib/cfgWrapper.nix create mode 100644 lib/nix-furnace/README.md create mode 100644 lib/nix-furnace/default.nix create mode 100644 modules/boot/options.nix create mode 100644 modules/boot/system/default.nix create mode 100644 modules/boot/system/plymouth.nix create mode 100644 modules/desktop/home/default.nix create mode 100644 modules/desktop/home/environments/gnome/default.nix create mode 100644 modules/desktop/home/environments/hyprland/default.nix create mode 100644 modules/desktop/home/environments/hyprland/dunst.nix create mode 100644 modules/desktop/home/environments/hyprland/fuzzel.nix create mode 100644 modules/desktop/home/environments/hyprland/hyprland/catppuccin.conf create mode 100644 modules/desktop/home/environments/hyprland/hyprland/default.nix create mode 100644 modules/desktop/home/environments/hyprland/hyprland/wallpaper.jpg create mode 100644 modules/desktop/home/environments/hyprland/waybar/catppuccin.scss create mode 100644 modules/desktop/home/environments/hyprland/waybar/config.nix create mode 100644 modules/desktop/home/environments/hyprland/waybar/default.nix create mode 100644 modules/desktop/home/environments/hyprland/waybar/power_menu.xml create mode 100644 modules/desktop/home/environments/hyprland/waybar/style.scss create mode 100644 modules/desktop/home/gtk/adwaita.nix create mode 100644 modules/desktop/home/gtk/catppuccin.nix create mode 100644 modules/desktop/home/gtk/default.nix create mode 100644 modules/desktop/home/programs/firefox/adwaita.nix create mode 100644 modules/desktop/home/programs/firefox/catppuccin.nix create mode 100644 modules/desktop/home/programs/firefox/default.nix create mode 100644 modules/desktop/home/programs/firefox/profile.nix create mode 100644 modules/desktop/home/programs/musescore.nix create mode 100644 modules/desktop/options.nix create mode 100644 modules/desktop/system/components/dunst.nix create mode 100644 modules/desktop/system/components/fuzzel.nix create mode 100644 modules/desktop/system/default.nix create mode 100644 modules/desktop/system/environments/gnome.nix create mode 100644 modules/desktop/system/environments/sway.nix create mode 100644 modules/desktop/system/programs/firefox.nix create mode 100644 modules/desktop/system/programs/foot.nix create mode 100644 modules/nix/system/default.nix create mode 100644 modules/options.nix create mode 100644 modules/services/options.nix create mode 100644 modules/services/system/audio.nix create mode 100644 modules/services/system/bluetooth.nix create mode 100644 modules/services/system/default.nix create mode 100644 modules/services/system/networking/default.nix create mode 100644 modules/services/system/networking/iwd.nix create mode 100644 modules/services/system/networking/nm.nix create mode 100644 modules/terminal/home/default.nix create mode 100644 modules/terminal/home/emulators/blackbox.nix create mode 100644 modules/terminal/options.nix create mode 100644 modules/terminal/system/default.nix create mode 100644 modules/terminal/system/programs/cmus.nix create mode 100644 modules/terminal/system/programs/fish.nix create mode 100644 modules/terminal/system/programs/git.nix create mode 100644 modules/terminal/system/programs/helix.nix create mode 100644 modules/terminal/system/programs/lazygit.nix create mode 100644 modules/terminal/system/programs/starship.nix create mode 100644 modules/terminal/system/programs/tmux.nix create mode 100644 modules/user/home/default.nix create mode 100644 modules/user/options.nix create mode 100644 modules/user/system/default.nix 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 Binary files /dev/null and b/hosts/mercury/wallpaper.jpg 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 = "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 Binary files /dev/null and b/modules/desktop/home/environments/hyprland/hyprland/wallpaper.jpg 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 @@ + + + + + + Log Out + + + + + + + + Reboot + + + + + Shutdown + + + + 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; +} -- cgit v1.3.1