diff --git a/clan.nix b/clan.nix index db8ffed..fd4937f 100644 --- a/clan.nix +++ b/clan.nix @@ -3,9 +3,10 @@ inventory.machines = { aresix = { - deploy.targetHost = "root@[4a6:fed0:59ba:507d:baab:15f3:846d:ead4]"; -tags = ["server" "headless" "spain"]; + tags = ["server" "headless" "spain"]; }; + frues-pc = { + tags = ["desktop" "spain" "gaming"]; }; }; @@ -39,15 +40,44 @@ tags = ["server" "headless" "spain"]; roles.default.extraModules = [./users/pedro/home.nix]; }; - spain-located = { + podman = { module.name = "importer"; roles.default.tags.desktop = {}; + roles.default.extraModules = ["modules/podman.nix"]; + }; + + virtualisation = { + module.name = "importer"; + roles.default.tags.desktop = {}; + roles.default.extraModules = ["modules/virtualisation.nix"]; + }; + + spain-located = { + module.name = "importer"; + roles.default.tags.all = {}; roles.default.extraModules = ["modules/spain.nix"]; }; + desktop-base = { + module.name = "importer"; + roles.default.tags.desktop = {}; + roles.default.extraModules = ["modules/desktop/base"]; + }; + + desktop-gaming = { + module.name = "importer"; + roles.default.tags.gaming = {}; + roles.default.extraModules = ["modules/desktop/gaming.nix"]; + }; + # Docs: https://docs.clan.lol/reference/clanServices/mycelium/ mycelium = { roles.peer.tags.all = {}; }; + + # Fallback: Secure connections via Tor + tor = { + roles.server.tags.all = {}; + }; }; } diff --git a/flake.lock b/flake.lock index a112fb1..9622139 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,72 @@ { "nodes": { + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1746562888, + "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1748408240, + "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, "clan-core": { "inputs": { "data-mesher": "data-mesher", @@ -14,11 +81,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1757135312, - "narHash": "sha256-fUhFuvnyQD+ZObL/p90KMMMK9HyEh2i4UqUvKmmersI=", - "rev": "1a9bbab667c5de507f7ced4f2369c8a20185408c", + "lastModified": 1757257662, + "narHash": "sha256-9gE+R7vRmCUQUFaXWhbIJM+sqrbrXOw/VdAKxp6il2M=", + "rev": "e953f807dedf24c11c2550f9052f7b02462dd994", "type": "tarball", - "url": "https://git.clan.lol/api/v1/repos/clan/clan-core/archive/1a9bbab667c5de507f7ced4f2369c8a20185408c.tar.gz" + "url": "https://git.clan.lol/api/v1/repos/clan/clan-core/archive/e953f807dedf24c11c2550f9052f7b02462dd994.tar.gz" }, "original": { "type": "tarball", @@ -60,11 +127,11 @@ ] }, "locked": { - "lastModified": 1756733629, - "narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=", + "lastModified": 1757255839, + "narHash": "sha256-XH33B1X888Xc/xEXhF1RPq/kzKElM0D5C9N6YdvOvIc=", "owner": "nix-community", "repo": "disko", - "rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1", + "rev": "c8a0e78d86b12ea67be6ed0f7cae7f9bfabae75a", "type": "github" }, "original": { @@ -73,6 +140,44 @@ "type": "github" } }, + "firefox-addons": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "pkgs/firefox-addons", + "lastModified": 1757304222, + "narHash": "sha256-s070stByAXxeCLgftTXxFxZ2ynJhghne4Y6cTuqGAaw=", + "owner": "rycee", + "repo": "nur-expressions", + "rev": "fa312c0175ffb82bc67da095439b9cb683ac52bd", + "type": "gitlab" + }, + "original": { + "dir": "pkgs/firefox-addons", + "owner": "rycee", + "repo": "nur-expressions", + "type": "gitlab" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1748383148, + "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -95,6 +200,27 @@ } }, "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, @@ -114,7 +240,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1731533236, @@ -132,12 +258,12 @@ }, "flocken": { "inputs": { - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts_3", "nixpkgs": [ "tg-ha-door", "nixpkgs" ], - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1737581094, @@ -154,6 +280,39 @@ "type": "github" } }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1744584021, + "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "48.1", + "repo": "gnome-shell", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -279,11 +438,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1757020766, - "narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", + "lastModified": 1757244434, + "narHash": "sha256-AeqTqY0Y95K1Fgs6wuT1LafBNcmKxcOkWnm4alD9pqM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", + "rev": "092c565d333be1e17b4779ac22104338941d913f", "type": "github" }, "original": { @@ -293,11 +452,39 @@ "type": "github" } }, + "nur": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix_2" + }, + "locked": { + "lastModified": 1751320053, + "narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=", + "owner": "nix-community", + "repo": "NUR", + "rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "root": { "inputs": { "clan-core": "clan-core", + "firefox-addons": "firefox-addons", "home-manager": "home-manager", "nixpkgs": "nixpkgs_2", + "stylix": "stylix", "tg-ha-door": "tg-ha-door" } }, @@ -345,6 +532,41 @@ "type": "github" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-parts": "flake-parts_2", + "gnome-shell": "gnome-shell", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur", + "systems": "systems_2", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1757174190, + "narHash": "sha256-eEU7Ku2Dtf6EXXbV1lAGFV8dd3Vlr4h2Mm3HQ+vtAow=", + "owner": "nix-community", + "repo": "stylix", + "rev": "e50ae02496b48e3687ad50a38dc0b6e833a075d2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-25.05", + "repo": "stylix", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -390,6 +612,21 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tg-ha-door": { "inputs": { "flocken": "flocken", @@ -412,6 +649,87 @@ "type": "github" } }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "type": "github" + } + }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1750770351, + "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1751159871, + "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1751158968, + "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "86a470d94204f7652b906ab0d378e4231a5b3384", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -432,6 +750,28 @@ "repo": "treefmt-nix", "type": "github" } + }, + "treefmt-nix_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 6c76918..286c5f6 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,16 @@ url = "github:peprolinbot/tg-ha-door"; inputs.nixpkgs.follows = "nixpkgs"; }; + + stylix = { + url = "github:nix-community/stylix/release-25.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + firefox-addons = { + url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { @@ -44,5 +54,7 @@ packages = [clan-core.packages.${system}.clan-cli]; }; }); + + clan = clan.config; }; } diff --git a/machines/aresix/disko.nix b/machines/aresix/disko.nix index 1f206f0..4c19eaf 100644 --- a/machines/aresix/disko.nix +++ b/machines/aresix/disko.nix @@ -1,12 +1,11 @@ # --- # schema = "single-disk" # [placeholders] -# mainDisk = "/dev/disk/by-id/ata-TOSHIBA_MQ01ABD100_17B5PEO5T" +# mainDisk = "/dev/disk/by-id/ata-TOSHIBA_MQ01ABD100_17B5PEO5T" # --- # This file was automatically generated! # CHANGING this configuration requires wiping and reinstalling the machine { - boot.loader.grub.efiSupport = true; boot.loader.grub.efiInstallAsRemovable = true; boot.loader.grub.enable = true; @@ -31,7 +30,7 @@ type = "filesystem"; format = "vfat"; mountpoint = "/boot"; - mountOptions = [ "umask=0077" ]; + mountOptions = ["umask=0077"]; }; }; root = { diff --git a/machines/aresix/modules/users.nix b/machines/aresix/modules/users.nix index 47a1b32..496a73f 100644 --- a/machines/aresix/modules/users.nix +++ b/machines/aresix/modules/users.nix @@ -1,8 +1,13 @@ -{...}: { +{pkgs, ...}: { users.users.juan = { isNormalUser = true; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFpkZoYCFS6jQyaLgRkG8WlOj8ybpwsJkCWTuKkGB5oA Juan Rey" ]; }; + + # Requested by juan + environment.systemPackages = [pkgs.ecryptfs]; + programs.ecryptfs.enable = true; + boot.kernelModules = ["ecryptfs"]; } diff --git a/machines/frues-pc/configuration.nix b/machines/frues-pc/configuration.nix index 090666a..e2d964f 100644 --- a/machines/frues-pc/configuration.nix +++ b/machines/frues-pc/configuration.nix @@ -1,7 +1,42 @@ -{ +{...}: { imports = [ - + ./disks.nix + ../../modules/desktop/hyprland.nix ]; - # New machine! + hm-pedro.de = "hyprland"; + programs.hyprland.autoLogin.username = "pedro"; + + boot.loader = { + grub = { + efiSupport = true; + device = "nodev"; + useOSProber = true; + }; + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot/efi"; + }; + }; + + # It is an open-source implementation of Nvidia’s Moonlight game streaming application + services.sunshine = { + enable = true; + autoStart = true; + capSysAdmin = true; + openFirewall = true; + }; + + home-manager.users.pedro.wayland.windowManager.hyprland.settings = { + monitor = [ + "DP-2, 1920x1080@60, 0x0, 1" + "DP-1, 2560x1440@165, 1920x0, 1.333333" + "HDMI-A-1, 1920x1080@75, 3840x0, 1" + ]; + exec-once = [ + "uwsm app -- ckb-next -b" + ]; + }; + + hardware.ckb-next.enable = true; } diff --git a/machines/frues-pc/disks.nix b/machines/frues-pc/disks.nix new file mode 100644 index 0000000..3abc852 --- /dev/null +++ b/machines/frues-pc/disks.nix @@ -0,0 +1,29 @@ +{ + fileSystems."/" = { + device = "/dev/disk/by-uuid/120da0bc-6419-42f0-b47f-11aa2e1a7058"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."sda6_crypt".device = "/dev/disk/by-uuid/5fd8e7a0-88be-4779-a52b-01b8888219a6"; + + fileSystems."/home" = { + device = "/dev/disk/by-uuid/7cf15f3c-bf94-470e-96a4-ef537ea934cd"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."sdb2_crypt".device = "/dev/disk/by-uuid/0deeb53b-3885-4a4f-be6d-28a48b6af052"; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/9b01cae4-e5cd-4059-bf31-af746216fbef"; + fsType = "ext4"; + }; + + fileSystems."/boot/efi" = { + device = "/dev/disk/by-uuid/A606-4C72"; + fsType = "vfat"; + }; + + swapDevices = [ + {device = "/dev/disk/by-uuid/98cf8cbb-8d39-45af-8143-326d24b65960";} + ]; +} diff --git a/machines/frues-pc/facter.json b/machines/frues-pc/facter.json new file mode 100644 index 0000000..f7f314a --- /dev/null +++ b/machines/frues-pc/facter.json @@ -0,0 +1,6829 @@ +{ + "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": 771 + }, + "bluetooth": [ + { + "index": 66, + "attached_to": 77, + "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": "2357", + "value": 9047 + }, + "device": { + "hex": "0604", + "name": "TP-Link UB500 Adapter", + "value": 1540 + }, + "revision": { + "hex": "0000", + "name": "2.00", + "value": 0 + }, + "serial": "E848B8C82000", + "model": "TP-Link UB500 Adapter", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.0/usb1/1-2/1-2:1.0", + "sysfs_bus_id": "1-2: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:v2357p0604d0200dcE0dsc01dp01icE0isc01ip01in00" + }, + { + "index": 75, + "attached_to": 77, + "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": "2357", + "value": 9047 + }, + "device": { + "hex": "0604", + "name": "TP-Link UB500 Adapter", + "value": 1540 + }, + "revision": { + "hex": "0000", + "name": "2.00", + "value": 0 + }, + "serial": "E848B8C82000", + "model": "TP-Link UB500 Adapter", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.0/usb1/1-2/1-2:1.1", + "sysfs_bus_id": "1-2: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:v2357p0604d0200dcE0dsc01dp01icE0isc01ip01in01" + } + ], + "bridge": [ + { + "index": 17, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 8 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1632", + "value": 5682 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:08.0", + "sysfs_bus_id": "0000:00:08.0", + "sysfs_iommu_group_id": 5, + "detail": { + "function": 0, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d00001632sv00000000sd00000000bc06sc00i00" + }, + { + "index": 19, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 24 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "166d", + "value": 5741 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:18.3", + "sysfs_bus_id": "0000:00:18.3", + "sysfs_iommu_group_id": 9, + "detail": { + "function": 3, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "driver": "k10temp", + "driver_module": "k10temp", + "drivers": [ + "k10temp" + ], + "driver_modules": [ + "k10temp" + ], + "module_alias": "pci:v00001022d0000166Dsv00000000sd00000000bc06sc00i00" + }, + { + "index": 22, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 24 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "166b", + "value": 5739 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:18.1", + "sysfs_bus_id": "0000:00:18.1", + "sysfs_iommu_group_id": 9, + "detail": { + "function": 1, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d0000166Bsv00000000sd00000000bc06sc00i00" + }, + { + "index": 23, + "attached_to": 29, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 2, + "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": "1002", + "name": "ATI Technologies Inc", + "value": 4098 + }, + "sub_vendor": { + "hex": "1002", + "name": "ATI Technologies Inc", + "value": 4098 + }, + "device": { + "hex": "1479", + "value": 5241 + }, + "sub_device": { + "hex": "1479", + "value": 5241 + }, + "model": "ATI PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0", + "sysfs_bus_id": "0000:02:00.0", + "sysfs_iommu_group_id": 11, + "resources": [ + { + "type": "irq", + "base": 34, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 1, + "secondary_bus": 3, + "irq": 34, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001002d00001479sv00001002sd00001479bc06sc04i00" + }, + { + "index": 24, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 1 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1632", + "value": 5682 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:01.0", + "sysfs_bus_id": "0000:00:01.0", + "sysfs_iommu_group_id": 0, + "detail": { + "function": 0, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d00001632sv00000000sd00000000bc06sc00i00" + }, + { + "index": 27, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 20 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0001", + "name": "ISA bridge", + "value": 1 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "790e", + "value": 30990 + }, + "sub_device": { + "hex": "5001", + "value": 20481 + }, + "revision": { + "hex": "0051", + "value": 81 + }, + "model": "AMD ISA bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:14.3", + "sysfs_bus_id": "0000:00:14.3", + "sysfs_iommu_group_id": 8, + "detail": { + "function": 3, + "command": 15, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d0000790Esv00001458sd00005001bc06sc01i00" + }, + { + "index": 29, + "attached_to": 42, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 1, + "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": "1002", + "name": "ATI Technologies Inc", + "value": 4098 + }, + "device": { + "hex": "1478", + "value": 5240 + }, + "revision": { + "hex": "00c1", + "value": 193 + }, + "model": "ATI PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:01.1/0000:01:00.0", + "sysfs_bus_id": "0000:01:00.0", + "sysfs_iommu_group_id": 10, + "resources": [ + { + "type": "irq", + "base": 33, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4239392768, + "range": 16384, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 7, + "header_type": 1, + "secondary_bus": 2, + "irq": 33, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001002d00001478sv00000000sd00000000bc06sc04i00" + }, + { + "index": 30, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1634", + "value": 5684 + }, + "sub_device": { + "hex": "1453", + "value": 5203 + }, + "model": "AMD PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1", + "sysfs_bus_id": "0000:00:02.1", + "sysfs_iommu_group_id": 3, + "resources": [ + { + "type": "irq", + "base": 29, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 1, + "command": 1031, + "header_type": 1, + "secondary_bus": 4, + "irq": 29, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001022d00001634sv00001022sd00001453bc06sc04i00" + }, + { + "index": 34, + "attached_to": 47, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 5, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1b21", + "value": 6945 + }, + "device": { + "hex": "43c7", + "value": 17351 + }, + "sub_device": { + "hex": "3306", + "value": 13062 + }, + "revision": { + "hex": "0001", + "value": 1 + }, + "model": "AMD PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.2/0000:05:01.0", + "sysfs_bus_id": "0000:05:01.0", + "sysfs_iommu_group_id": 14, + "resources": [ + { + "type": "irq", + "base": 39, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 1, + "secondary_bus": 7, + "irq": 39, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001022d000043C7sv00001B21sd00003306bc06sc04i00" + }, + { + "index": 35, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 24 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1670", + "value": 5744 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:18.6", + "sysfs_bus_id": "0000:00:18.6", + "sysfs_iommu_group_id": 9, + "detail": { + "function": 6, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d00001670sv00000000sd00000000bc06sc00i00" + }, + { + "index": 37, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1630", + "value": 5680 + }, + "sub_device": { + "hex": "1630", + "value": 5680 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:00.0", + "sysfs_bus_id": "0000:00:00.0", + "detail": { + "function": 0, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d00001630sv00001022sd00001630bc06sc00i00" + }, + { + "index": 38, + "attached_to": 47, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 5, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1b21", + "value": 6945 + }, + "device": { + "hex": "43c7", + "value": 17351 + }, + "sub_device": { + "hex": "3306", + "value": 13062 + }, + "revision": { + "hex": "0001", + "value": 1 + }, + "model": "AMD PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.2/0000:05:04.0", + "sysfs_bus_id": "0000:05:04.0", + "sysfs_iommu_group_id": 14, + "resources": [ + { + "type": "irq", + "base": 40, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 1, + "secondary_bus": 8, + "irq": 40, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001022d000043C7sv00001B21sd00003306bc06sc04i00" + }, + { + "index": 39, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 8 + }, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1635", + "value": 5685 + }, + "sub_device": { + "hex": "1635", + "value": 5685 + }, + "model": "AMD PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1", + "sysfs_bus_id": "0000:00:08.1", + "sysfs_iommu_group_id": 6, + "resources": [ + { + "type": "irq", + "base": 31, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 1, + "command": 1031, + "header_type": 1, + "secondary_bus": 10, + "irq": 31, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001022d00001635sv00001022sd00001635bc06sc04i00" + }, + { + "index": 40, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 24 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "166e", + "value": 5742 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:18.4", + "sysfs_bus_id": "0000:00:18.4", + "sysfs_iommu_group_id": 9, + "detail": { + "function": 4, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d0000166Esv00000000sd00000000bc06sc00i00" + }, + { + "index": 41, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 24 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "166c", + "value": 5740 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:18.2", + "sysfs_bus_id": "0000:00:18.2", + "sysfs_iommu_group_id": 9, + "detail": { + "function": 2, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d0000166Csv00000000sd00000000bc06sc00i00" + }, + { + "index": 42, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1633", + "value": 5683 + }, + "sub_device": { + "hex": "1453", + "value": 5203 + }, + "model": "AMD PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:01.1", + "sysfs_bus_id": "0000:00:01.1", + "sysfs_iommu_group_id": 1, + "resources": [ + { + "type": "irq", + "base": 28, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 1, + "command": 1031, + "header_type": 1, + "secondary_bus": 1, + "irq": 28, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001022d00001633sv00001022sd00001453bc06sc04i00" + }, + { + "index": 45, + "attached_to": 47, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1b21", + "value": 6945 + }, + "device": { + "hex": "43c7", + "value": 17351 + }, + "sub_device": { + "hex": "3306", + "value": 13062 + }, + "revision": { + "hex": "0001", + "value": 1 + }, + "model": "AMD PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.2/0000:05:00.0", + "sysfs_bus_id": "0000:05:00.0", + "sysfs_iommu_group_id": 14, + "resources": [ + { + "type": "irq", + "base": 37, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 1, + "secondary_bus": 6, + "irq": 37, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001022d000043C7sv00001B21sd00003306bc06sc04i00" + }, + { + "index": 46, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 24 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "166a", + "value": 5738 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:18.0", + "sysfs_bus_id": "0000:00:18.0", + "sysfs_iommu_group_id": 9, + "detail": { + "function": 0, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d0000166Asv00000000sd00000000bc06sc00i00" + }, + { + "index": 47, + "attached_to": 30, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 4, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1b21", + "value": 6945 + }, + "device": { + "hex": "43c6", + "value": 17350 + }, + "sub_device": { + "hex": "0201", + "value": 513 + }, + "revision": { + "hex": "0001", + "value": 1 + }, + "model": "AMD PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.2", + "sysfs_bus_id": "0000:04:00.2", + "sysfs_iommu_group_id": 14, + "resources": [ + { + "type": "irq", + "base": 35, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 2, + "command": 7, + "header_type": 1, + "secondary_bus": 5, + "irq": 35, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001022d000043C6sv00001B21sd00000201bc06sc04i00" + }, + { + "index": 48, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1634", + "value": 5684 + }, + "sub_device": { + "hex": "1453", + "value": 5203 + }, + "model": "AMD PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:02.2", + "sysfs_bus_id": "0000:00:02.2", + "sysfs_iommu_group_id": 4, + "resources": [ + { + "type": "irq", + "base": 30, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 2, + "command": 1031, + "header_type": 1, + "secondary_bus": 9, + "irq": 30, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001022d00001634sv00001022sd00001453bc06sc04i00" + }, + { + "index": 51, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 2 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1632", + "value": 5682 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:02.0", + "sysfs_bus_id": "0000:00:02.0", + "sysfs_iommu_group_id": 2, + "detail": { + "function": 0, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d00001632sv00000000sd00000000bc06sc00i00" + }, + { + "index": 52, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 24 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1671", + "value": 5745 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:18.7", + "sysfs_bus_id": "0000:00:18.7", + "sysfs_iommu_group_id": 9, + "detail": { + "function": 7, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d00001671sv00000000sd00000000bc06sc00i00" + }, + { + "index": 54, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 8 + }, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1635", + "value": 5685 + }, + "sub_device": { + "hex": "1635", + "value": 5685 + }, + "model": "AMD PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:08.2", + "sysfs_bus_id": "0000:00:08.2", + "sysfs_iommu_group_id": 7, + "resources": [ + { + "type": "irq", + "base": 32, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 2, + "command": 1031, + "header_type": 1, + "secondary_bus": 11, + "irq": 32, + "prog_if": 0 + }, + "driver": "pcieport", + "driver_module": "pcieportdrv", + "drivers": [ + "pcieport" + ], + "driver_modules": [ + "pcieportdrv" + ], + "module_alias": "pci:v00001022d00001635sv00001022sd00001635bc06sc04i00" + }, + { + "index": 55, + "attached_to": 0, + "class_list": [ + "pci", + "bridge" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 24 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "166f", + "value": 5743 + }, + "model": "AMD Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:18.5", + "sysfs_bus_id": "0000:00:18.5", + "sysfs_iommu_group_id": 9, + "detail": { + "function": 5, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d0000166Fsv00000000sd00000000bc06sc00i00" + } + ], + "cpu": [ + { + "architecture": "x86_64", + "vendor_name": "AuthenticAMD", + "family": 25, + "model": 80, + "stepping": 0, + "features": [ + "fpu", + "vme", + "de", + "pse", + "tsc", + "msr", + "pae", + "mce", + "cx8", + "apic", + "sep", + "mtrr", + "pge", + "mca", + "cmov", + "pat", + "pse36", + "clflush", + "mmx", + "fxsr", + "sse", + "sse2", + "ht", + "syscall", + "nx", + "mmxext", + "fxsr_opt", + "pdpe1gb", + "rdtscp", + "lm", + "constant_tsc", + "rep_good", + "nopl", + "xtopology", + "nonstop_tsc", + "cpuid", + "extd_apicid", + "aperfmperf", + "rapl", + "pni", + "pclmulqdq", + "monitor", + "ssse3", + "fma", + "cx16", + "sse4_1", + "sse4_2", + "x2apic", + "movbe", + "popcnt", + "aes", + "xsave", + "avx", + "f16c", + "rdrand", + "lahf_lm", + "cmp_legacy", + "svm", + "extapic", + "cr8_legacy", + "abm", + "sse4a", + "misalignsse", + "3dnowprefetch", + "osvw", + "ibs", + "skinit", + "wdt", + "tce", + "topoext", + "perfctr_core", + "perfctr_nb", + "bpext", + "perfctr_llc", + "mwaitx", + "cpb", + "cat_l3", + "cdp_l3", + "hw_pstate", + "ssbd", + "mba", + "ibrs", + "ibpb", + "stibp", + "vmmcall", + "fsgsbase", + "bmi1", + "avx2", + "smep", + "bmi2", + "erms", + "invpcid", + "cqm", + "rdt_a", + "rdseed", + "adx", + "smap", + "clflushopt", + "clwb", + "sha_ni", + "xsaveopt", + "xsavec", + "xgetbv1", + "xsaves", + "cqm_llc", + "cqm_occup_llc", + "cqm_mbm_total", + "cqm_mbm_local", + "user_shstk", + "clzero", + "irperf", + "xsaveerptr", + "rdpru", + "wbnoinvd", + "cppc", + "arat", + "npt", + "lbrv", + "svm_lock", + "nrip_save", + "tsc_scale", + "vmcb_clean", + "flushbyasid", + "decodeassists", + "pausefilter", + "pfthreshold", + "avic", + "v_vmsave_vmload", + "vgif", + "v_spec_ctrl", + "umip", + "pku", + "ospke", + "vaes", + "vpclmulqdq", + "rdpid", + "overflow_recov", + "succor", + "smca", + "fsrm", + "debug_swap" + ], + "bugs": [ + "sysret_ss_attrs", + "spectre_v1", + "spectre_v2", + "spec_store_bypass", + "srso", + "ibpb_no_ret", + "tsa" + ], + "power_management": [ + "ts", + "ttp", + "tm", + "hwpstate", + "cpb", + "eff_freq_ro", + "[13]", + "[14]" + ], + "bogo": 7785.45, + "cache": 512, + "units": 12, + "physical_id": 0, + "siblings": 12, + "cores": 6, + "fpu": true, + "fpu_exception": true, + "cpuid_level": 16, + "write_protect": false, + "tlb_size": 2560, + "clflush_size": 64, + "cache_alignment": 64, + "address_sizes": { + "physical": "0x30", + "virtual": "0x30" + } + } + ], + "disk": [ + { + "index": 60, + "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": "1e0f", + "value": 7695 + }, + "sub_vendor": { + "hex": "1e0f", + "value": 7695 + }, + "device": { + "hex": "0009", + "name": "KIOXIA-EXCERIA G2 SSD", + "value": 9 + }, + "sub_device": { + "hex": "0033", + "value": 51 + }, + "serial": "34CA12QLK77S", + "model": "KIOXIA-EXCERIA G2 SSD", + "sysfs_id": "/class/block/nvme0n1", + "sysfs_bus_id": "nvme0", + "sysfs_device_link": "/devices/pci0000:00/0000:00:02.2/0000:09: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-KIOXIA-EXCERIA_G2_SSD_34CA12QLK77S", + "/dev/disk/by-id/nvme-KIOXIA-EXCERIA_G2_SSD_34CA12QLK77S_1", + "/dev/disk/by-id/nvme-eui.00000000000000008ce38e0300977876", + "/dev/disk/by-path/pci-0000:09:00.0-nvme-1", + "/dev/nvme0n1" + ], + "resources": [ + { + "type": "disk_geo", + "cylinders": 953869, + "heads": 64, + "sectors": 32, + "size": "0x0", + "geo_type": "logical" + }, + { + "type": "size", + "unit": "sectors", + "value_1": 1953525168, + "value_2": 512 + } + ], + "driver": "nvme", + "driver_module": "nvme", + "drivers": [ + "nvme" + ], + "driver_modules": [ + "nvme" + ] + }, + { + "index": 61, + "attached_to": 28, + "class_list": [ + "disk", + "ide", + "block_device" + ], + "bus_type": { + "hex": "0085", + "name": "IDE", + "value": 133 + }, + "slot": { + "bus": 1, + "number": 0 + }, + "base_class": { + "hex": "0106", + "name": "Mass Storage Device", + "value": 262 + }, + "sub_class": { + "hex": "0000", + "name": "Disk", + "value": 0 + }, + "vendor": { + "hex": "0000", + "name": "WDC", + "value": 0 + }, + "device": { + "hex": "0000", + "name": "WD20EFRX-68E", + "value": 0 + }, + "revision": { + "hex": "0000", + "name": "0A82", + "value": 0 + }, + "serial": "WD-WCC4M6FLDYCK", + "model": "WDC WD20EFRX-68E", + "sysfs_id": "/class/block/sda", + "sysfs_bus_id": "1:0:0:0", + "sysfs_device_link": "/devices/pci0000:00/0000:00:02.1/0000:04:00.1/ata2/host1/target1:0:0/1: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/ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M6FLDYCK", + "/dev/disk/by-id/wwn-0x50014ee2b6c5df68", + "/dev/disk/by-path/pci-0000:04:00.1-ata-2", + "/dev/disk/by-path/pci-0000:04:00.1-ata-2.0", + "/dev/sda" + ], + "resources": [ + { + "type": "disk_geo", + "cylinders": 243201, + "heads": 255, + "sectors": 63, + "size": "0x0", + "geo_type": "logical" + }, + { + "type": "size", + "unit": "sectors", + "value_1": 3907029168, + "value_2": 512 + } + ], + "driver": "ahci", + "driver_module": "ahci", + "drivers": [ + "ahci", + "sd" + ], + "driver_modules": [ + "ahci", + "sd_mod" + ] + } + ], + "graphics_card": [ + { + "index": 16, + "attached_to": 23, + "class_list": [ + "graphics_card", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 3, + "number": 0 + }, + "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": "1002", + "name": "ATI Technologies Inc", + "value": 4098 + }, + "sub_vendor": { + "hex": "148c", + "value": 5260 + }, + "device": { + "hex": "73ff", + "value": 29695 + }, + "sub_device": { + "hex": "2412", + "value": 9234 + }, + "revision": { + "hex": "00c1", + "value": 193 + }, + "model": "ATI VGA compatible controller", + "sysfs_id": "/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0", + "sysfs_bus_id": "0000:03:00.0", + "sysfs_iommu_group_id": 12, + "resources": [ + { + "type": "io", + "base": 61440, + "range": 256, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 41, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 1082331758592, + "range": 8589934592, + "enabled": true, + "access": "read_only", + "prefetch": "no" + }, + { + "type": "mem", + "base": 1090921693184, + "range": 268435456, + "enabled": true, + "access": "read_only", + "prefetch": "no" + }, + { + "type": "mem", + "base": 4237295616, + "range": 1048576, + "enabled": true, + "access": "read_write", + "prefetch": "no" + }, + { + "type": "mem", + "base": 4238344192, + "range": 131072, + "enabled": false, + "access": "read_only", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 0, + "secondary_bus": 0, + "irq": 41, + "prog_if": 0 + }, + "driver": "amdgpu", + "driver_module": "amdgpu", + "drivers": [ + "amdgpu" + ], + "driver_modules": [ + "amdgpu" + ], + "module_alias": "pci:v00001002d000073FFsv0000148Csd00002412bc03sc00i00" + } + ], + "hub": [ + { + "index": 63, + "attached_to": 21, + "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.39 xhci-hcd", + "value": 7531 + }, + "device": { + "hex": "0003", + "name": "xHCI Host Controller", + "value": 3 + }, + "revision": { + "hex": "0000", + "name": "6.12", + "value": 0 + }, + "serial": "0000:0a:00.4", + "model": "Linux 6.12.39 xhci-hcd xHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb6/6-0:1.0", + "sysfs_bus_id": "6-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", + "driver_module": "usbcore", + "drivers": [ + "hub" + ], + "driver_modules": [ + "usbcore" + ], + "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00" + }, + { + "index": 69, + "attached_to": 44, + "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.39 xhci-hcd", + "value": 7531 + }, + "device": { + "hex": "0002", + "name": "xHCI Host Controller", + "value": 2 + }, + "revision": { + "hex": "0000", + "name": "6.12", + "value": 0 + }, + "serial": "0000:0a:00.3", + "model": "Linux 6.12.39 xhci-hcd xHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.3/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", + "driver_module": "usbcore", + "drivers": [ + "hub" + ], + "driver_modules": [ + "usbcore" + ], + "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00" + }, + { + "index": 72, + "attached_to": 44, + "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.39 xhci-hcd", + "value": 7531 + }, + "device": { + "hex": "0003", + "name": "xHCI Host Controller", + "value": 3 + }, + "revision": { + "hex": "0000", + "name": "6.12", + "value": 0 + }, + "serial": "0000:0a:00.3", + "model": "Linux 6.12.39 xhci-hcd xHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.3/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", + "driver_module": "usbcore", + "drivers": [ + "hub" + ], + "driver_modules": [ + "usbcore" + ], + "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00" + }, + { + "index": 77, + "attached_to": 50, + "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.39 xhci-hcd", + "value": 7531 + }, + "device": { + "hex": "0002", + "name": "xHCI Host Controller", + "value": 2 + }, + "revision": { + "hex": "0000", + "name": "6.12", + "value": 0 + }, + "serial": "0000:04:00.0", + "model": "Linux 6.12.39 xhci-hcd xHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.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", + "driver_module": "usbcore", + "drivers": [ + "hub" + ], + "driver_modules": [ + "usbcore" + ], + "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00" + }, + { + "index": 80, + "attached_to": 21, + "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.39 xhci-hcd", + "value": 7531 + }, + "device": { + "hex": "0002", + "name": "xHCI Host Controller", + "value": 2 + }, + "revision": { + "hex": "0000", + "name": "6.12", + "value": 0 + }, + "serial": "0000:0a:00.4", + "model": "Linux 6.12.39 xhci-hcd xHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb5/5-0:1.0", + "sysfs_bus_id": "5-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", + "driver_module": "usbcore", + "drivers": [ + "hub" + ], + "driver_modules": [ + "usbcore" + ], + "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00" + }, + { + "index": 81, + "attached_to": 50, + "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.39 xhci-hcd", + "value": 7531 + }, + "device": { + "hex": "0003", + "name": "xHCI Host Controller", + "value": 3 + }, + "revision": { + "hex": "0000", + "name": "6.12", + "value": 0 + }, + "serial": "0000:04:00.0", + "model": "Linux 6.12.39 xhci-hcd xHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.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", + "driver_module": "usbcore", + "drivers": [ + "hub" + ], + "driver_modules": [ + "usbcore" + ], + "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00" + } + ], + "keyboard": [ + { + "index": 62, + "attached_to": 80, + "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": "1b1c", + "name": "Corsair", + "value": 6940 + }, + "device": { + "hex": "1b49", + "name": "CORSAIR K70 RGB MK.2 Mechanical Gaming Keyboard", + "value": 6985 + }, + "revision": { + "hex": "0000", + "name": "3.24", + "value": 0 + }, + "serial": "05033014AF8D050360929253F5001BC0", + "model": "Corsair CORSAIR K70 RGB MK.2 Mechanical Gaming Keyboard", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb5/5-1/5-1:1.0", + "sysfs_bus_id": "5-1: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": "usbfs", + "driver_module": "usbcore", + "drivers": [ + "usbfs" + ], + "driver_modules": [ + "usbcore" + ], + "driver_info": { + "type": "keyboard", + "xkb_rules": "xfree86", + "xkb_model": "pc104" + }, + "module_alias": "usb:v1B1Cp1B49d0324dc00dsc00dp00ic03isc01ip01in00" + }, + { + "index": 73, + "attached_to": 80, + "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": "1b1c", + "name": "Corsair", + "value": 6940 + }, + "device": { + "hex": "1b7f", + "name": "CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "value": 7039 + }, + "revision": { + "hex": "0000", + "name": "5.06", + "value": 0 + }, + "serial": "B248820A968C440F", + "model": "Corsair CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb5/5-2/5-2:1.5", + "sysfs_bus_id": "5-2:1.5", + "unix_device_name": "/dev/input/event7", + "unix_device_number": { + "type": 99, + "major": 13, + "minor": 71, + "range": 1 + }, + "unix_device_names": [ + "/dev/input/by-id/usb-Corsair_CORSAIR_DARK_CORE_RGB_PRO_SE_Gaming_Dongle_B248820A968C440F-if05-event-kbd", + "/dev/input/by-path/pci-0000:0a:00.4-usb-0:2:1.5-event-kbd", + "/dev/input/by-path/pci-0000:0a:00.4-usbv2-0:2:1.5-event-kbd", + "/dev/input/event7" + ], + "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": 5, + "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:v1B1Cp1B7Fd0506dc00dsc00dp00ic03isc01ip01in05" + }, + { + "index": 76, + "attached_to": 80, + "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": "1b1c", + "name": "Corsair", + "value": 6940 + }, + "device": { + "hex": "1b7f", + "name": "CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "value": 7039 + }, + "revision": { + "hex": "0000", + "name": "5.06", + "value": 0 + }, + "serial": "B248820A968C440F", + "model": "Corsair CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb5/5-2/5-2:1.3", + "sysfs_bus_id": "5-2:1.3", + "unix_device_name": "/dev/input/event9", + "unix_device_number": { + "type": 99, + "major": 13, + "minor": 73, + "range": 1 + }, + "unix_device_names": [ + "/dev/input/by-id/usb-Corsair_CORSAIR_DARK_CORE_RGB_PRO_SE_Gaming_Dongle_B248820A968C440F-if03-event-kbd", + "/dev/input/by-path/pci-0000:0a:00.4-usb-0:2:1.3-event-kbd", + "/dev/input/by-path/pci-0000:0a:00.4-usbv2-0:2:1.3-event-kbd", + "/dev/input/event9" + ], + "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": 3, + "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:v1B1Cp1B7Fd0506dc00dsc00dp00ic03isc01ip01in03" + } + ], + "memory": [ + { + "index": 15, + "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": 50378657792, + "enabled": true, + "access": "read_write", + "prefetch": "unknown" + }, + { + "type": "phys_mem", + "range": 51539607552 + } + ] + } + ], + "monitor": [ + { + "index": 56, + "attached_to": 16, + "class_list": [ + "monitor" + ], + "base_class": { + "hex": "0100", + "name": "Monitor", + "value": 256 + }, + "sub_class": { + "hex": "0002", + "name": "LCD Monitor", + "value": 2 + }, + "vendor": { + "hex": "1e6d", + "name": "LG ELECTRONICS", + "value": 7789 + }, + "device": { + "hex": "5b55", + "name": "LG FULL HD", + "value": 23381 + }, + "model": "LG ELECTRONICS LG FULL HD", + "resources": [ + { + "type": "monitor", + "width": 1024, + "height": 768, + "vertical_frequency": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 1024, + "height": 768, + "vertical_frequency": 75, + "interlaced": false + }, + { + "type": "monitor", + "width": 1152, + "height": 864, + "vertical_frequency": 75, + "interlaced": false + }, + { + "type": "monitor", + "width": 1280, + "height": 1024, + "vertical_frequency": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 1280, + "height": 1024, + "vertical_frequency": 75, + "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": 75, + "interlaced": false + }, + { + "type": "monitor", + "width": 720, + "height": 400, + "vertical_frequency": 70, + "interlaced": false + }, + { + "type": "monitor", + "width": 800, + "height": 600, + "vertical_frequency": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 800, + "height": 600, + "vertical_frequency": 75, + "interlaced": false + }, + { + "type": "size", + "unit": "mm", + "value_1": 480, + "value_2": 270 + } + ], + "detail": { + "manufacture_year": 2016, + "manufacture_week": 1, + "vertical_sync": { + "min": 56, + "max": 75 + }, + "horizontal_sync": { + "min": 30, + "max": 85 + }, + "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": 480, + "height_millimetres": 270, + "horizontal_flag": 43, + "vertical_flag": 43, + "vendor": "", + "name": "LG FULL HD" + }, + "driver_info": { + "type": "display", + "width": 1920, + "height": 1080, + "vertical_sync": { + "min": 56, + "max": 75 + }, + "horizontal_sync": { + "min": 30, + "max": 85 + }, + "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": 57, + "attached_to": 16, + "class_list": [ + "monitor" + ], + "base_class": { + "hex": "0100", + "name": "Monitor", + "value": 256 + }, + "sub_class": { + "hex": "0002", + "name": "LCD Monitor", + "value": 2 + }, + "vendor": { + "hex": "410c", + "name": "PHILIPS", + "value": 16652 + }, + "device": { + "hex": "c156", + "name": "PHL 273V7", + "value": 49494 + }, + "serial": "UK01937003186", + "model": "PHILIPS PHL 273V7", + "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": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 1280, + "height": 1024, + "vertical_frequency": 75, + "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": 598, + "value_2": 336 + } + ], + "detail": { + "manufacture_year": 2019, + "manufacture_week": 37, + "vertical_sync": { + "min": 50, + "max": 76 + }, + "horizontal_sync": { + "min": 30, + "max": 83 + }, + "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": 598, + "height_millimetres": 336, + "horizontal_flag": 43, + "vertical_flag": 43, + "vendor": "", + "name": "PHL 273V7" + }, + "driver_info": { + "type": "display", + "width": 1920, + "height": 1080, + "vertical_sync": { + "min": 50, + "max": 76 + }, + "horizontal_sync": { + "min": 30, + "max": 83 + }, + "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": 58, + "attached_to": 16, + "class_list": [ + "monitor" + ], + "base_class": { + "hex": "0100", + "name": "Monitor", + "value": 256 + }, + "sub_class": { + "hex": "0002", + "name": "LCD Monitor", + "value": 2 + }, + "vendor": { + "hex": "10ac", + "name": "DELL", + "value": 4268 + }, + "device": { + "hex": "d175", + "name": "DELL G2724D", + "value": 53621 + }, + "serial": "GFQ94V3", + "model": "DELL G2724D", + "resources": [ + { + "type": "monitor", + "width": 1024, + "height": 768, + "vertical_frequency": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 1024, + "height": 768, + "vertical_frequency": 75, + "interlaced": false + }, + { + "type": "monitor", + "width": 1152, + "height": 864, + "vertical_frequency": 75, + "interlaced": false + }, + { + "type": "monitor", + "width": 1280, + "height": 1024, + "vertical_frequency": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 1280, + "height": 1024, + "vertical_frequency": 75, + "interlaced": false + }, + { + "type": "monitor", + "width": 1280, + "height": 720, + "vertical_frequency": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 1280, + "height": 960, + "vertical_frequency": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 2560, + "height": 1440, + "vertical_frequency": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 640, + "height": 480, + "vertical_frequency": 60, + "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": 60, + "interlaced": false + }, + { + "type": "monitor", + "width": 800, + "height": 600, + "vertical_frequency": 75, + "interlaced": false + }, + { + "type": "size", + "unit": "mm", + "value_1": 596, + "value_2": 335 + } + ], + "detail": { + "manufacture_year": 2024, + "manufacture_week": 15, + "vertical_sync": { + "min": 48, + "max": 165 + }, + "horizontal_sync": { + "min": 255, + "max": 255 + }, + "horizontal_sync_timings": { + "disp": 2560, + "sync_start": 2608, + "sync_end": 2640, + "total": 2720 + }, + "vertical_sync_timings": { + "disp": 1440, + "sync_start": 1443, + "sync_end": 1448, + "total": 1481 + }, + "clock": 241500, + "width": 2560, + "height": 1440, + "width_millimetres": 596, + "height_millimetres": 335, + "horizontal_flag": 45, + "vertical_flag": 43, + "vendor": "", + "name": "DELL G2724D" + }, + "driver_info": { + "type": "display", + "width": 2560, + "height": 1440, + "vertical_sync": { + "min": 48, + "max": 165 + }, + "horizontal_sync": { + "min": 255, + "max": 255 + }, + "bandwidth": 0, + "horizontal_sync_timings": { + "disp": 2560, + "sync_start": 2608, + "sync_end": 2640, + "total": 2720 + }, + "vertical_sync_timings": { + "disp": 1440, + "sync_start": 1443, + "sync_end": 1448, + "total": 1481 + }, + "horizontal_flag": 45, + "vertical_flag": 43 + } + } + ], + "mouse": [ + { + "index": 70, + "attached_to": 80, + "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": "1b1c", + "name": "Corsair", + "value": 6940 + }, + "device": { + "hex": "1b7f", + "name": "CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "value": 7039 + }, + "revision": { + "hex": "0000", + "name": "5.06", + "value": 0 + }, + "serial": "B248820A968C440F", + "compat_vendor": "Unknown", + "compat_device": "Generic USB Mouse", + "model": "Corsair CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb5/5-2/5-2:1.0", + "sysfs_bus_id": "5-2: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": 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": 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:v1B1Cp1B7Fd0506dc00dsc00dp00ic03isc01ip02in00" + } + ], + "network_controller": [ + { + "index": 32, + "attached_to": 34, + "class_list": [ + "network_controller", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 7, + "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": "1458", + "value": 5208 + }, + "device": { + "hex": "8168", + "value": 33128 + }, + "sub_device": { + "hex": "e000", + "value": 57344 + }, + "revision": { + "hex": "000c", + "value": 12 + }, + "model": "Ethernet controller", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.2/0000:05:01.0/0000:07:00.0", + "sysfs_bus_id": "0000:07:00.0", + "sysfs_iommu_group_id": 14, + "unix_device_name": "enp7s0", + "unix_device_names": [ + "enp7s0" + ], + "resources": [ + { + "type": "hwaddr", + "address": 98 + }, + { + "type": "io", + "base": 57344, + "range": 256, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 38, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 1091191177216, + "range": 16384, + "enabled": true, + "access": "read_only", + "prefetch": "no" + }, + { + "type": "mem", + "base": 4240441344, + "range": 4096, + "enabled": true, + "access": "read_write", + "prefetch": "no" + }, + { + "type": "phwaddr", + "address": 98 + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 0, + "secondary_bus": 0, + "irq": 38, + "prog_if": 0 + }, + "driver": "r8169", + "driver_module": "r8169", + "drivers": [ + "r8169" + ], + "driver_modules": [ + "r8169" + ], + "module_alias": "pci:v000010ECd00008168sv00001458sd0000E000bc02sc00i00" + } + ], + "network_interface": [ + { + "index": 82, + "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": 84, + "attached_to": 32, + "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/enp7s0", + "sysfs_device_link": "/devices/pci0000:00/0000:00:02.1/0000:04:00.2/0000:05:01.0/0000:07:00.0", + "unix_device_name": "enp7s0", + "unix_device_names": [ + "enp7s0" + ], + "resources": [ + { + "type": "hwaddr", + "address": 98 + }, + { + "type": "phwaddr", + "address": 98 + } + ], + "driver": "r8169", + "driver_module": "r8169", + "drivers": [ + "r8169" + ], + "driver_modules": [ + "r8169" + ] + } + ], + "pci": [ + { + "index": 26, + "attached_to": 39, + "class_list": [ + "pci", + "unknown" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 10, + "number": 0 + }, + "base_class": { + "hex": "0010", + "name": "Encryption controller", + "value": 16 + }, + "sub_class": { + "hex": "0080", + "name": "Encryption controller", + "value": 128 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "15df", + "value": 5599 + }, + "sub_device": { + "hex": "15df", + "value": 5599 + }, + "model": "AMD Encryption controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.2", + "sysfs_bus_id": "0000:0a:00.2", + "sysfs_iommu_group_id": 18, + "resources": [ + { + "type": "irq", + "base": 36, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4235198464, + "range": 1048576, + "enabled": true, + "access": "read_write", + "prefetch": "no" + }, + { + "type": "mem", + "base": 4236296192, + "range": 8192, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 2, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 36, + "prog_if": 0 + }, + "driver": "ccp", + "driver_module": "ccp", + "drivers": [ + "ccp" + ], + "driver_modules": [ + "ccp" + ], + "module_alias": "pci:v00001022d000015DFsv00001022sd000015DFbc10sc80i00" + }, + { + "index": 31, + "attached_to": 39, + "class_list": [ + "pci", + "unknown" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 10, + "number": 0 + }, + "base_class": { + "hex": "0013", + "value": 19 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "145a", + "value": 5210 + }, + "sub_device": { + "hex": "d000", + "value": 53248 + }, + "revision": { + "hex": "00c9", + "value": 201 + }, + "model": "unknown unknown", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.0", + "sysfs_bus_id": "0000:0a:00.0", + "sysfs_iommu_group_id": 16, + "detail": { + "function": 0, + "command": 0, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d0000145Asv00001458sd0000D000bc13sc00i00" + }, + { + "index": 33, + "attached_to": 0, + "class_list": [ + "pci", + "unknown" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "0008", + "name": "Generic system peripheral", + "value": 8 + }, + "sub_class": { + "hex": "0006", + "value": 6 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "device": { + "hex": "1631", + "value": 5681 + }, + "sub_device": { + "hex": "1631", + "value": 5681 + }, + "model": "AMD Generic system peripheral", + "sysfs_id": "/devices/pci0000:00/0000:00:00.2", + "sysfs_bus_id": "0000:00:00.2", + "resources": [ + { + "type": "irq", + "base": 255, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 2, + "command": 4, + "header_type": 0, + "secondary_bus": 0, + "irq": 255, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d00001631sv00001022sd00001631bc08sc06i00" + }, + { + "index": 53, + "attached_to": 0, + "class_list": [ + "pci", + "unknown" + ], + "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": "0005", + "name": "SMBus", + "value": 5 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "790b", + "value": 30987 + }, + "sub_device": { + "hex": "5001", + "value": 20481 + }, + "revision": { + "hex": "0051", + "value": 81 + }, + "model": "AMD SMBus", + "sysfs_id": "/devices/pci0000:00/0000:00:14.0", + "sysfs_bus_id": "0000:00:14.0", + "sysfs_iommu_group_id": 8, + "detail": { + "function": 0, + "command": 1027, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "module_alias": "pci:v00001022d0000790Bsv00001458sd00005001bc0Csc05i00" + } + ], + "sound": [ + { + "index": 18, + "attached_to": 39, + "class_list": [ + "sound", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 10, + "number": 0 + }, + "base_class": { + "hex": "0004", + "name": "Multimedia controller", + "value": 4 + }, + "sub_class": { + "hex": "0003", + "value": 3 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "15e3", + "value": 5603 + }, + "sub_device": { + "hex": "a182", + "value": 41346 + }, + "model": "AMD Multimedia controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.6", + "sysfs_bus_id": "0000:0a:00.6", + "sysfs_iommu_group_id": 21, + "resources": [ + { + "type": "irq", + "base": 87, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4236247040, + "range": 32768, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 6, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 87, + "prog_if": 0 + }, + "driver": "snd_hda_intel", + "driver_module": "snd_hda_intel", + "drivers": [ + "snd_hda_intel" + ], + "driver_modules": [ + "snd_hda_intel" + ], + "module_alias": "pci:v00001022d000015E3sv00001458sd0000A182bc04sc03i00" + }, + { + "index": 36, + "attached_to": 23, + "class_list": [ + "sound", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 3, + "number": 0 + }, + "base_class": { + "hex": "0004", + "name": "Multimedia controller", + "value": 4 + }, + "sub_class": { + "hex": "0003", + "value": 3 + }, + "vendor": { + "hex": "1002", + "name": "ATI Technologies Inc", + "value": 4098 + }, + "sub_vendor": { + "hex": "1002", + "name": "ATI Technologies Inc", + "value": 4098 + }, + "device": { + "hex": "ab28", + "value": 43816 + }, + "sub_device": { + "hex": "ab28", + "value": 43816 + }, + "model": "ATI Multimedia controller", + "sysfs_id": "/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.1", + "sysfs_bus_id": "0000:03:00.1", + "sysfs_iommu_group_id": 13, + "resources": [ + { + "type": "irq", + "base": 85, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4238475264, + "range": 16384, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 1, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 85, + "prog_if": 0 + }, + "driver": "snd_hda_intel", + "driver_module": "snd_hda_intel", + "drivers": [ + "snd_hda_intel" + ], + "driver_modules": [ + "snd_hda_intel" + ], + "module_alias": "pci:v00001002d0000AB28sv00001002sd0000AB28bc04sc03i00" + }, + { + "index": 49, + "attached_to": 39, + "class_list": [ + "sound", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 10, + "number": 0 + }, + "base_class": { + "hex": "0004", + "name": "Multimedia controller", + "value": 4 + }, + "sub_class": { + "hex": "0003", + "value": 3 + }, + "vendor": { + "hex": "1002", + "name": "ATI Technologies Inc", + "value": 4098 + }, + "sub_vendor": { + "hex": "1002", + "name": "ATI Technologies Inc", + "value": 4098 + }, + "device": { + "hex": "1637", + "value": 5687 + }, + "sub_device": { + "hex": "1637", + "value": 5687 + }, + "model": "ATI Multimedia controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.1", + "sysfs_bus_id": "0000:0a:00.1", + "sysfs_iommu_group_id": 17, + "resources": [ + { + "type": "irq", + "base": 88, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4236279808, + "range": 16384, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 1, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 88, + "prog_if": 0 + }, + "driver": "snd_hda_intel", + "driver_module": "snd_hda_intel", + "drivers": [ + "snd_hda_intel" + ], + "driver_modules": [ + "snd_hda_intel" + ], + "module_alias": "pci:v00001002d00001637sv00001002sd00001637bc04sc03i00" + }, + { + "index": 65, + "attached_to": 77, + "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": "1532", + "name": "Macronix", + "value": 5426 + }, + "device": { + "hex": "0552", + "name": "Razer Barracuda X 2.4", + "value": 1362 + }, + "revision": { + "hex": "0000", + "name": "0.01", + "value": 0 + }, + "serial": "1234", + "model": "Macronix Razer Barracuda X 2.4", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.0/usb1/1-6/1-6:1.2", + "sysfs_bus_id": "1-6: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": "0002", + "name": "comm", + "value": 2 + }, + "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:v1532p0552d0001dc00dsc00dp00ic01isc02ip00in02" + }, + { + "index": 68, + "attached_to": 77, + "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": "1532", + "name": "Macronix", + "value": 5426 + }, + "device": { + "hex": "0552", + "name": "Razer Barracuda X 2.4", + "value": 1362 + }, + "revision": { + "hex": "0000", + "name": "0.01", + "value": 0 + }, + "serial": "1234", + "model": "Macronix Razer Barracuda X 2.4", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.0/usb1/1-6/1-6:1.0", + "sysfs_bus_id": "1-6: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": "0001", + "name": "audio", + "value": 1 + }, + "interface_subclass": { + "hex": "0001", + "name": "audio", + "value": 1 + }, + "interface_protocol": 0, + "interface_number": 0, + "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:v1532p0552d0001dc00dsc00dp00ic01isc01ip00in00" + }, + { + "index": 78, + "attached_to": 77, + "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": "1532", + "name": "Macronix", + "value": 5426 + }, + "device": { + "hex": "0552", + "name": "Razer Barracuda X 2.4", + "value": 1362 + }, + "revision": { + "hex": "0000", + "name": "0.01", + "value": 0 + }, + "serial": "1234", + "model": "Macronix Razer Barracuda X 2.4", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.0/usb1/1-6/1-6:1.1", + "sysfs_bus_id": "1-6: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": "0002", + "name": "comm", + "value": 2 + }, + "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:v1532p0552d0001dc00dsc00dp00ic01isc02ip00in01" + } + ], + "storage_controller": [ + { + "index": 20, + "attached_to": 48, + "class_list": [ + "storage_controller", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 9, + "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": "1e0f", + "value": 7695 + }, + "sub_vendor": { + "hex": "1e0f", + "value": 7695 + }, + "device": { + "hex": "0009", + "value": 9 + }, + "sub_device": { + "hex": "0033", + "value": 51 + }, + "revision": { + "hex": "0001", + "value": 1 + }, + "model": "Mass storage controller", + "sysfs_id": "/devices/pci0000:00/0000:00:02.2/0000:09:00.0", + "sysfs_bus_id": "0000:09:00.0", + "sysfs_iommu_group_id": 15, + "resources": [ + { + "type": "irq", + "base": 42, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4243587072, + "range": 16384, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 42, + "prog_if": 2 + }, + "driver": "nvme", + "driver_module": "nvme", + "drivers": [ + "nvme" + ], + "driver_modules": [ + "nvme" + ], + "module_alias": "pci:v00001E0Fd00000009sv00001E0Fsd00000033bc01sc08i02" + }, + { + "index": 25, + "attached_to": 54, + "class_list": [ + "storage_controller", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 11, + "number": 0 + }, + "base_class": { + "hex": "0001", + "name": "Mass storage controller", + "value": 1 + }, + "sub_class": { + "hex": "0006", + "value": 6 + }, + "pci_interface": { + "hex": "0001", + "value": 1 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "7901", + "value": 30977 + }, + "sub_device": { + "hex": "b002", + "value": 45058 + }, + "revision": { + "hex": "0081", + "value": 129 + }, + "model": "AMD Mass storage controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.2/0000:0b:00.0", + "sysfs_bus_id": "0000:0b:00.0", + "sysfs_iommu_group_id": 22, + "resources": [ + { + "type": "irq", + "base": 54, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4242542592, + "range": 2048, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 0, + "secondary_bus": 0, + "irq": 54, + "prog_if": 1 + }, + "driver": "ahci", + "driver_module": "ahci", + "drivers": [ + "ahci" + ], + "driver_modules": [ + "ahci" + ], + "module_alias": "pci:v00001022d00007901sv00001458sd0000B002bc01sc06i01" + }, + { + "index": 28, + "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": "0006", + "value": 6 + }, + "pci_interface": { + "hex": "0001", + "value": 1 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1b21", + "value": 6945 + }, + "device": { + "hex": "43c8", + "value": 17352 + }, + "sub_device": { + "hex": "1062", + "value": 4194 + }, + "revision": { + "hex": "0001", + "value": 1 + }, + "model": "AMD Mass storage controller", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.1", + "sysfs_bus_id": "0000:04:00.1", + "sysfs_iommu_group_id": 14, + "resources": [ + { + "type": "irq", + "base": 52, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4241489920, + "range": 524288, + "enabled": false, + "access": "read_only", + "prefetch": "no" + }, + { + "type": "mem", + "base": 4242014208, + "range": 131072, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 1, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 52, + "prog_if": 1 + }, + "driver": "ahci", + "driver_module": "ahci", + "drivers": [ + "ahci" + ], + "driver_modules": [ + "ahci" + ], + "module_alias": "pci:v00001022d000043C8sv00001B21sd00001062bc01sc06i01" + }, + { + "index": 43, + "attached_to": 54, + "class_list": [ + "storage_controller", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 11, + "number": 0 + }, + "base_class": { + "hex": "0001", + "name": "Mass storage controller", + "value": 1 + }, + "sub_class": { + "hex": "0006", + "value": 6 + }, + "pci_interface": { + "hex": "0001", + "value": 1 + }, + "vendor": { + "hex": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "7901", + "value": 30977 + }, + "sub_device": { + "hex": "b002", + "value": 45058 + }, + "revision": { + "hex": "0081", + "value": 129 + }, + "model": "AMD Mass storage controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.2/0000:0b:00.1", + "sysfs_bus_id": "0000:0b:00.1", + "sysfs_iommu_group_id": 23, + "resources": [ + { + "type": "irq", + "base": 56, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4242538496, + "range": 2048, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 1, + "command": 1031, + "header_type": 0, + "secondary_bus": 0, + "irq": 56, + "prog_if": 1 + }, + "driver": "ahci", + "driver_module": "ahci", + "drivers": [ + "ahci" + ], + "driver_modules": [ + "ahci" + ], + "module_alias": "pci:v00001022d00007901sv00001458sd0000B002bc01sc06i01" + } + ], + "system": { + "form_factor": "desktop" + }, + "unknown": [ + { + "index": 59, + "attached_to": 0, + "class_list": [ + "unknown" + ], + "base_class": { + "hex": "0007", + "name": "Communication controller", + "value": 7 + }, + "sub_class": { + "hex": "0000", + "name": "Serial controller", + "value": 0 + }, + "pci_interface": { + "hex": "0002", + "name": "16550", + "value": 2 + }, + "device": { + "hex": "0000", + "name": "16550A", + "value": 0 + }, + "model": "16550A", + "unix_device_name": "/dev/ttyS0", + "unix_device_names": [ + "/dev/ttyS0" + ], + "resources": [ + { + "type": "io", + "base": 1016, + "range": 0, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 4, + "triggered": 0, + "enabled": true + } + ] + } + ], + "usb": [ + { + "index": 64, + "attached_to": 80, + "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": "1b1c", + "name": "Corsair", + "value": 6940 + }, + "device": { + "hex": "1b7f", + "name": "CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "value": 7039 + }, + "revision": { + "hex": "0000", + "name": "5.06", + "value": 0 + }, + "serial": "B248820A968C440F", + "model": "Corsair CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb5/5-2/5-2:1.4", + "sysfs_bus_id": "5-2:1.4", + "unix_device_name": "/dev/input/event8", + "unix_device_number": { + "type": 99, + "major": 13, + "minor": 72, + "range": 1 + }, + "unix_device_names": [ + "/dev/input/by-id/usb-Corsair_CORSAIR_DARK_CORE_RGB_PRO_SE_Gaming_Dongle_B248820A968C440F-event-if04", + "/dev/input/by-path/pci-0000:0a:00.4-usb-0:2:1.4-event", + "/dev/input/by-path/pci-0000:0a:00.4-usbv2-0:2:1.4-event", + "/dev/input/event8" + ], + "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": 2, + "interface_number": 4, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "usbhid", + "driver_module": "usbhid", + "drivers": [ + "usbhid" + ], + "driver_modules": [ + "usbhid" + ], + "module_alias": "usb:v1B1Cp1B7Fd0506dc00dsc00dp00ic03isc00ip02in04" + }, + { + "index": 67, + "attached_to": 80, + "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": "1b1c", + "name": "Corsair", + "value": 6940 + }, + "device": { + "hex": "1b7f", + "name": "CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "value": 7039 + }, + "revision": { + "hex": "0000", + "name": "5.06", + "value": 0 + }, + "serial": "B248820A968C440F", + "model": "Corsair CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb5/5-2/5-2:1.2", + "sysfs_bus_id": "5-2: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:v1B1Cp1B7Fd0506dc00dsc00dp00ic03isc00ip00in02" + }, + { + "index": 71, + "attached_to": 80, + "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": "1b1c", + "name": "Corsair", + "value": 6940 + }, + "device": { + "hex": "1b49", + "name": "CORSAIR K70 RGB MK.2 Mechanical Gaming Keyboard", + "value": 6985 + }, + "revision": { + "hex": "0000", + "name": "3.24", + "value": 0 + }, + "serial": "05033014AF8D050360929253F5001BC0", + "model": "Corsair CORSAIR K70 RGB MK.2 Mechanical Gaming Keyboard", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb5/5-1/5-1:1.1", + "sysfs_bus_id": "5-1: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": "0000", + "name": "per_interface", + "value": 0 + }, + "interface_protocol": 0, + "interface_number": 1, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "usbfs", + "driver_module": "usbcore", + "drivers": [ + "usbfs" + ], + "driver_modules": [ + "usbcore" + ], + "module_alias": "usb:v1B1Cp1B49d0324dc00dsc00dp00ic03isc00ip00in01" + }, + { + "index": 74, + "attached_to": 77, + "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": "1532", + "name": "Macronix", + "value": 5426 + }, + "device": { + "hex": "0552", + "name": "Razer Barracuda X 2.4", + "value": 1362 + }, + "revision": { + "hex": "0000", + "name": "0.01", + "value": 0 + }, + "serial": "1234", + "model": "Macronix Razer Barracuda X 2.4", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.0/usb1/1-6/1-6:1.3", + "sysfs_bus_id": "1-6:1.3", + "unix_device_name": "/dev/input/event29", + "unix_device_number": { + "type": 99, + "major": 13, + "minor": 93, + "range": 1 + }, + "unix_device_names": [ + "/dev/input/by-id/usb-Macronix_Razer_Barracuda_X_2.4_1234-event-if03", + "/dev/input/by-path/pci-0000:04:00.0-usb-0:6:1.3-event", + "/dev/input/by-path/pci-0000:04:00.0-usbv2-0:6:1.3-event", + "/dev/input/event29" + ], + "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": 0, + "interface_number": 3, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "usbhid", + "driver_module": "usbhid", + "drivers": [ + "usbhid" + ], + "driver_modules": [ + "usbhid" + ], + "module_alias": "usb:v1532p0552d0001dc00dsc00dp00ic03isc01ip00in03" + }, + { + "index": 79, + "attached_to": 80, + "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": "1b1c", + "name": "Corsair", + "value": 6940 + }, + "device": { + "hex": "1b7f", + "name": "CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "value": 7039 + }, + "revision": { + "hex": "0000", + "name": "5.06", + "value": 0 + }, + "serial": "B248820A968C440F", + "model": "Corsair CORSAIR DARK CORE RGB PRO SE Gaming Dongle", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4/usb5/5-2/5-2:1.1", + "sysfs_bus_id": "5-2: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": "0000", + "name": "per_interface", + "value": 0 + }, + "interface_protocol": 0, + "interface_number": 1, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "usbhid", + "driver_module": "usbhid", + "drivers": [ + "usbhid" + ], + "driver_modules": [ + "usbhid" + ], + "module_alias": "usb:v1B1Cp1B7Fd0506dc00dsc00dp00ic03isc00ip00in01" + } + ], + "usb_controller": [ + { + "index": 21, + "attached_to": 39, + "class_list": [ + "usb_controller", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 10, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1639", + "value": 5689 + }, + "sub_device": { + "hex": "5007", + "value": 20487 + }, + "model": "AMD USB Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.4", + "sysfs_bus_id": "0000:0a:00.4", + "sysfs_iommu_group_id": 20, + "resources": [ + { + "type": "irq", + "base": 35, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4233101312, + "range": 1048576, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 4, + "command": 1031, + "header_type": 0, + "secondary_bus": 0, + "irq": 35, + "prog_if": 48 + }, + "driver": "xhci_hcd", + "driver_module": "xhci_pci", + "drivers": [ + "xhci_hcd" + ], + "driver_modules": [ + "xhci_pci" + ], + "module_alias": "pci:v00001022d00001639sv00001458sd00005007bc0Csc03i30" + }, + { + "index": 44, + "attached_to": 39, + "class_list": [ + "usb_controller", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 10, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1639", + "value": 5689 + }, + "sub_device": { + "hex": "5007", + "value": 20487 + }, + "model": "AMD USB Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0a:00.3", + "sysfs_bus_id": "0000:0a:00.3", + "sysfs_iommu_group_id": 19, + "resources": [ + { + "type": "irq", + "base": 38, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4234149888, + "range": 1048576, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 3, + "command": 1031, + "header_type": 0, + "secondary_bus": 0, + "irq": 38, + "prog_if": 48 + }, + "driver": "xhci_hcd", + "driver_module": "xhci_pci", + "drivers": [ + "xhci_hcd" + ], + "driver_modules": [ + "xhci_pci" + ], + "module_alias": "pci:v00001022d00001639sv00001458sd00005007bc0Csc03i30" + }, + { + "index": 50, + "attached_to": 30, + "class_list": [ + "usb_controller", + "pci" + ], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 4, + "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": "1022", + "name": "AMD", + "value": 4130 + }, + "sub_vendor": { + "hex": "1b21", + "value": 6945 + }, + "device": { + "hex": "43d5", + "value": 17365 + }, + "sub_device": { + "hex": "1142", + "value": 4418 + }, + "revision": { + "hex": "0001", + "value": 1 + }, + "model": "AMD USB Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:02.1/0000:04:00.0", + "sysfs_bus_id": "0000:04:00.0", + "sysfs_iommu_group_id": 14, + "resources": [ + { + "type": "irq", + "base": 36, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4242145280, + "range": 32768, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 36, + "prog_if": 48 + }, + "driver": "xhci_hcd", + "driver_module": "xhci_pci", + "drivers": [ + "xhci_hcd" + ], + "driver_modules": [ + "xhci_pci" + ], + "module_alias": "pci:v00001022d000043D5sv00001B21sd00001142bc0Csc03i30" + } + ] + }, + "smbios": { + "bios": { + "handle": 0, + "vendor": "American Megatrends International, LLC.", + "version": "F63c", + "date": "07/20/2022", + "features": [ + "PCI supported", + "BIOS flashable", + "BIOS shadowing allowed", + "CD boot supported", + "Selectable boot supported", + "BIOS ROM socketed", + "EDD spec supported", + "1.2MB NEC 9800 Japanese Floppy supported", + "1.2MB Toshiba Japanese Floppy supported", + "360kB Floppy supported", + "1.2MB Floppy supported", + "720kB Floppy supported", + "2.88MB Floppy supported", + "Print Screen supported", + "Serial Services supported", + "Printer Services supported", + "CGA/Mono Video supported", + "USB Legacy supported", + "BIOS Boot Spec supported" + ], + "start_address": "0xf0000", + "rom_size": 16777216 + }, + "board": { + "handle": 2, + "manufacturer": "Gigabyte Technology Co., Ltd.", + "product": "B450M DS3H-CF", + "version": "Default string", + "board_type": { + "hex": "000a", + "name": "Motherboard", + "value": 10 + }, + "features": [ + "Hosting Board", + "Replaceable" + ], + "location": "Default string", + "chassis": 3 + }, + "cache": [ + { + "handle": 13, + "socket": "L1 - Cache", + "size_max": 384, + "size_current": 384, + "speed": 1, + "mode": { + "hex": "0001", + "name": "Write Back", + "value": 1 + }, + "enabled": true, + "location": { + "hex": "0000", + "name": "Internal", + "value": 0 + }, + "socketed": false, + "level": 0, + "ecc": { + "hex": "0006", + "name": "Multi-bit", + "value": 6 + }, + "cache_type": { + "hex": "0005", + "name": "Unified", + "value": 5 + }, + "associativity": { + "hex": "0007", + "name": "8-way Set-Associative", + "value": 7 + }, + "sram_type_current": [ + "Pipeline Burst" + ], + "sram_type_supported": [ + "Pipeline Burst" + ] + }, + { + "handle": 14, + "socket": "L2 - Cache", + "size_max": 3072, + "size_current": 3072, + "speed": 1, + "mode": { + "hex": "0001", + "name": "Write Back", + "value": 1 + }, + "enabled": true, + "location": { + "hex": "0000", + "name": "Internal", + "value": 0 + }, + "socketed": false, + "level": 1, + "ecc": { + "hex": "0006", + "name": "Multi-bit", + "value": 6 + }, + "cache_type": { + "hex": "0005", + "name": "Unified", + "value": 5 + }, + "associativity": { + "hex": "0007", + "name": "8-way Set-Associative", + "value": 7 + }, + "sram_type_current": [ + "Pipeline Burst" + ], + "sram_type_supported": [ + "Pipeline Burst" + ] + }, + { + "handle": 15, + "socket": "L3 - Cache", + "size_max": 16384, + "size_current": 16384, + "speed": 1, + "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": [ + "Pipeline Burst" + ], + "sram_type_supported": [ + "Pipeline Burst" + ] + } + ], + "chassis": [ + { + "handle": 3, + "manufacturer": "Default string", + "version": "Default string", + "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": "0x0" + } + ], + "config": { + "handle": 6, + "options": [ + "Default string" + ] + }, + "language": [ + { + "handle": 50, + "languages": [ + "en|US|iso8859-1", + "zh|TW|unicode", + "zh|CN|unicode", + "ru|RU|iso8859-5", + "de|DE|iso8859-1", + "ja|JP|unicode", + "ko|KR|unicode", + "es|ES|iso8859-1", + "fr|FR|iso8859-1", + "it|IT|iso8859-1", + "pt|PT|iso8859-1", + "vi|VI|iso8859-1", + "id|ID|iso8859-1", + "tr|TR|iso8859-1", + "pl|PL|iso8859-1" + ] + } + ], + "memory_array": [ + { + "handle": 11, + "location": { + "hex": "0003", + "name": "Motherboard", + "value": 3 + }, + "usage": { + "hex": "0003", + "name": "System memory", + "value": 3 + }, + "ecc": { + "hex": "0003", + "name": "None", + "value": 3 + }, + "max_size": "0x8000000", + "error_handle": 10, + "slots": 4 + } + ], + "memory_array_mapped_address": [ + { + "handle": 12, + "array_handle": 11, + "start_address": "0x0", + "end_address": "0xc00000000", + "part_width": 4 + } + ], + "memory_device": [ + { + "handle": 18, + "location": "DIMM 0", + "bank_location": "P0 CHANNEL A", + "manufacturer": "Unknown", + "part_number": "CP16G4DFRA32A.M8FF", + "array_handle": 11, + "error_handle": 17, + "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": 2400 + }, + { + "handle": 21, + "location": "DIMM 1", + "bank_location": "P0 CHANNEL A", + "manufacturer": "Unknown", + "part_number": "CT8G4DFS824A.M8FE", + "array_handle": 11, + "error_handle": 20, + "width": 64, + "ecc_bits": 0, + "size": 8388608, + "form_factor": { + "hex": "0009", + "name": "DIMM", + "value": 9 + }, + "set": 0, + "memory_type": { + "hex": "001a", + "name": "Other", + "value": 26 + }, + "memory_type_details": [ + "Synchronous" + ], + "speed": 2400 + }, + { + "handle": 24, + "location": "DIMM 0", + "bank_location": "P0 CHANNEL B", + "manufacturer": "Unknown", + "part_number": "CP16G4DFRA32A.M8FF", + "array_handle": 11, + "error_handle": 23, + "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": 2400 + }, + { + "handle": 27, + "location": "DIMM 1", + "bank_location": "P0 CHANNEL B", + "manufacturer": "Unknown", + "part_number": "CT8G4DFS824A.C8FDD1", + "array_handle": 11, + "error_handle": 26, + "width": 64, + "ecc_bits": 0, + "size": 8388608, + "form_factor": { + "hex": "0009", + "name": "DIMM", + "value": 9 + }, + "set": 0, + "memory_type": { + "hex": "001a", + "name": "Other", + "value": 26 + }, + "memory_type_details": [ + "Synchronous" + ], + "speed": 2400 + } + ], + "memory_device_mapped_address": [ + { + "handle": 19, + "memory_device_handle": 18, + "array_map_handle": 12, + "start_address": "0x0", + "end_address": "0xc00000000", + "row_position": 255, + "interleave_position": 255, + "interleave_depth": 255 + }, + { + "handle": 22, + "memory_device_handle": 21, + "array_map_handle": 12, + "start_address": "0x0", + "end_address": "0xc00000000", + "row_position": 255, + "interleave_position": 255, + "interleave_depth": 255 + }, + { + "handle": 25, + "memory_device_handle": 24, + "array_map_handle": 12, + "start_address": "0x0", + "end_address": "0xc00000000", + "row_position": 255, + "interleave_position": 255, + "interleave_depth": 255 + }, + { + "handle": 28, + "memory_device_handle": 27, + "array_map_handle": 12, + "start_address": "0x0", + "end_address": "0xc00000000", + "row_position": 255, + "interleave_position": 255, + "interleave_depth": 255 + } + ], + "memory_error": [ + { + "handle": 10, + "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": "0x80000000", + "device_address": "0x80000000", + "range": 2147483648 + }, + { + "handle": 17, + "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": "0x80000000", + "device_address": "0x80000000", + "range": 2147483648 + }, + { + "handle": 20, + "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": "0x80000000", + "device_address": "0x80000000", + "range": 2147483648 + }, + { + "handle": 23, + "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": "0x80000000", + "device_address": "0x80000000", + "range": 2147483648 + }, + { + "handle": 26, + "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": "0x80000000", + "device_address": "0x80000000", + "range": 2147483648 + } + ], + "onboard": [ + { + "handle": 4, + "devices": [ + { + "name": "To Be Filled By O.E.M.", + "type": { + "hex": "0003", + "name": "Video", + "value": 3 + }, + "enabled": true + } + ] + } + ], + "port_connector": [ + { + "handle": 29, + "port_type": { + "hex": "0010", + "name": "USB", + "value": 16 + }, + "internal_reference_designator": "J1500", + "external_connector_type": { + "hex": "0012", + "name": "Access Bus [USB]", + "value": 18 + }, + "external_reference_designator": "USB 3.0" + }, + { + "handle": 30, + "port_type": { + "hex": "0010", + "name": "USB", + "value": 16 + }, + "internal_reference_designator": "J1501", + "external_connector_type": { + "hex": "0012", + "name": "Access Bus [USB]", + "value": 18 + }, + "external_reference_designator": "USB 3.0" + }, + { + "handle": 31, + "port_type": { + "hex": "0010", + "name": "USB", + "value": 16 + }, + "internal_reference_designator": "J1502", + "external_connector_type": { + "hex": "0012", + "name": "Access Bus [USB]", + "value": 18 + }, + "external_reference_designator": "USB-C" + }, + { + "handle": 32, + "port_type": { + "hex": "0010", + "name": "USB", + "value": 16 + }, + "internal_reference_designator": "J1503", + "external_connector_type": { + "hex": "0012", + "name": "Access Bus [USB]", + "value": 18 + }, + "external_reference_designator": "USB 3.0" + }, + { + "handle": 33, + "port_type": { + "hex": "0010", + "name": "USB", + "value": 16 + }, + "internal_reference_designator": "J1504", + "external_connector_type": { + "hex": "0012", + "name": "Access Bus [USB]", + "value": 18 + }, + "external_reference_designator": "USB 3.1" + }, + { + "handle": 34, + "port_type": { + "hex": "001f", + "name": "Network Port", + "value": 31 + }, + "internal_reference_designator": "J1503", + "external_connector_type": { + "hex": "000b", + "name": "RJ-45", + "value": 11 + }, + "external_reference_designator": "Network" + }, + { + "handle": 35, + "port_type": { + "hex": "0020", + "name": "Other", + "value": 32 + }, + "internal_connector_type": { + "hex": "0022", + "name": "Other", + "value": 34 + }, + "internal_reference_designator": "J1704", + "external_reference_designator": "Sata Express" + }, + { + "handle": 36, + "port_type": { + "hex": "0020", + "name": "Other", + "value": 32 + }, + "internal_connector_type": { + "hex": "0022", + "name": "Other", + "value": 34 + }, + "internal_reference_designator": "J1705", + "external_reference_designator": "Sata Express" + }, + { + "handle": 37, + "port_type": { + "hex": "0020", + "name": "Other", + "value": 32 + }, + "internal_connector_type": { + "hex": "0022", + "name": "Other", + "value": 34 + }, + "internal_reference_designator": "J1701", + "external_reference_designator": "iSATA" + }, + { + "handle": 38, + "port_type": { + "hex": "0020", + "name": "Other", + "value": 32 + }, + "internal_connector_type": { + "hex": "0022", + "name": "Other", + "value": 34 + }, + "internal_reference_designator": "J1702", + "external_reference_designator": "iSATA" + }, + { + "handle": 39, + "port_type": { + "hex": "0020", + "name": "Other", + "value": 32 + }, + "internal_connector_type": { + "hex": "0022", + "name": "Other", + "value": 34 + }, + "internal_reference_designator": "J1703", + "external_reference_designator": "iSATA" + }, + { + "handle": 40, + "port_type": { + "hex": "0020", + "name": "Other", + "value": 32 + }, + "internal_connector_type": { + "hex": "0022", + "name": "Other", + "value": 34 + }, + "internal_reference_designator": "J1706", + "external_reference_designator": "iSATA" + }, + { + "handle": 41, + "port_type": { + "hex": "001c", + "name": "Video Port", + "value": 28 + }, + "internal_reference_designator": "J1100", + "external_reference_designator": "HDMI" + }, + { + "handle": 42, + "port_type": { + "hex": "001c", + "name": "Video Port", + "value": 28 + }, + "internal_reference_designator": "J1101", + "external_reference_designator": "HDMI" + }, + { + "handle": 43, + "port_type": { + "hex": "001c", + "name": "Video Port", + "value": 28 + }, + "internal_reference_designator": "J1102", + "external_reference_designator": "DP" + }, + { + "handle": 44, + "port_type": { + "hex": "001d", + "name": "Audio Port", + "value": 29 + }, + "internal_reference_designator": "J2100", + "external_connector_type": { + "hex": "001f", + "name": "Mini-jack [headphones]", + "value": 31 + }, + "external_reference_designator": "Front Audio" + }, + { + "handle": 45, + "port_type": { + "hex": "001d", + "name": "Audio Port", + "value": 29 + }, + "internal_reference_designator": "J2101", + "external_connector_type": { + "hex": "001f", + "name": "Mini-jack [headphones]", + "value": 31 + }, + "external_reference_designator": "Audio Jack" + }, + { + "handle": 46, + "port_type": { + "hex": "0020", + "name": "Other", + "value": 32 + }, + "internal_connector_type": { + "hex": "0022", + "name": "Other", + "value": 34 + }, + "internal_reference_designator": "J1700", + "external_reference_designator": "Sata Express" + } + ], + "processor": [ + { + "handle": 16, + "socket": "AM4", + "socket_type": { + "hex": "0031", + "name": "Other", + "value": 49 + }, + "socket_populated": true, + "manufacturer": "Advanced Micro Devices, Inc.", + "version": "AMD Ryzen 5 5600G with Radeon Graphics", + "part": "Unknown", + "processor_type": { + "hex": "0003", + "name": "CPU", + "value": 3 + }, + "processor_family": { + "hex": "006b", + "name": "Other", + "value": 107 + }, + "processor_status": { + "hex": "0001", + "name": "Enabled", + "value": 1 + }, + "clock_ext": 100, + "clock_max": 4450, + "cache_handle_l1": 13, + "cache_handle_l2": 14, + "cache_handle_l3": 15 + } + ], + "slot": [ + { + "handle": 47, + "designation": "J10", + "slot_type": { + "hex": "00aa", + "name": "Other", + "value": 170 + }, + "bus_width": { + "hex": "000b", + "name": "Other", + "value": 11 + }, + "usage": { + "hex": "0004", + "name": "In Use", + "value": 4 + }, + "length": { + "hex": "0003", + "name": "Short", + "value": 3 + }, + "id": 1, + "features": [ + "3.3 V", + "PME#" + ] + }, + { + "handle": 48, + "designation": "J3600 Pcie x8 slot", + "slot_type": { + "hex": "00a9", + "name": "Other", + "value": 169 + }, + "bus_width": { + "hex": "000b", + "name": "Other", + "value": 11 + }, + "usage": { + "hex": "0001", + "name": "Other", + "value": 1 + }, + "length": { + "hex": "0003", + "name": "Short", + "value": 3 + }, + "id": 32, + "features": [ + "3.3 V", + "PME#" + ] + } + ], + "system": { + "handle": 1, + "manufacturer": "Gigabyte Technology Co., Ltd.", + "product": "B450M DS3H", + "version": "Default string", + "wake_up": { + "hex": "0001", + "name": "Other", + "value": 1 + } + } + } +} \ No newline at end of file diff --git a/modules/desktop/base/default.nix b/modules/desktop/base/default.nix new file mode 100644 index 0000000..459a606 --- /dev/null +++ b/modules/desktop/base/default.nix @@ -0,0 +1,12 @@ +{...}: { + imports = [ + ./hardware.nix + ./networking.nix + ./nix.nix + ./pipewire.nix + ./programs.nix + ./security.nix + ./services.nix + ./stylix.nix + ]; +} diff --git a/modules/desktop/base/hardware.nix b/modules/desktop/base/hardware.nix new file mode 100644 index 0000000..de1723a --- /dev/null +++ b/modules/desktop/base/hardware.nix @@ -0,0 +1,7 @@ +{pkgs, ...}: { + hardware.flipperzero.enable = true; # Installs and setups everything Flipper Zero + + hardware.bluetooth.enable = true; + + hardware.sane.enable = true; +} diff --git a/modules/desktop/base/networking.nix b/modules/desktop/base/networking.nix new file mode 100644 index 0000000..95b05a8 --- /dev/null +++ b/modules/desktop/base/networking.nix @@ -0,0 +1,21 @@ +{pkgs, ...}: { + networking = { + networkmanager.enable = true; + nameservers = ["1.1.1.1"]; + firewall = { + enable = true; + + ### https://nixos.wiki/wiki/WireGuard#Setting_up_WireGuard_with_NetworkManager + checkReversePath = "loose"; + }; + }; + + environment.systemPackages = with pkgs; [ + networkmanagerapplet + + wireguard-tools + + openconnect + networkmanager-openconnect + ]; +} diff --git a/modules/desktop/base/nix.nix b/modules/desktop/base/nix.nix new file mode 100644 index 0000000..4a2572b --- /dev/null +++ b/modules/desktop/base/nix.nix @@ -0,0 +1,11 @@ +{lib, ...}: { + nix.settings = { + trusted-users = ["pedro"]; + }; + + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "steam" + "steam-unwrapped" + ]; +} diff --git a/modules/desktop/base/pipewire.nix b/modules/desktop/base/pipewire.nix new file mode 100644 index 0000000..223cc92 --- /dev/null +++ b/modules/desktop/base/pipewire.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + # lowLatency.enable = true; + }; + environment.systemPackages = with pkgs; [ + pulseaudioFull + ]; +} diff --git a/modules/desktop/base/programs.nix b/modules/desktop/base/programs.nix new file mode 100644 index 0000000..b84bcf2 --- /dev/null +++ b/modules/desktop/base/programs.nix @@ -0,0 +1,6 @@ +{...}: { + programs.nix-ld.enable = true; + + programs.adb.enable = true; + programs.kdeconnect.enable = true; +} diff --git a/modules/desktop/base/security.nix b/modules/desktop/base/security.nix new file mode 100644 index 0000000..51e6679 --- /dev/null +++ b/modules/desktop/base/security.nix @@ -0,0 +1,10 @@ +{pkgs, ...}: { + security.rtkit.enable = true; + security.polkit.enable = true; + security.sudo = { + enable = true; + package = pkgs.sudo.override {withInsults = true;}; # I'm spanish and I love cursing + }; + + security.pam.services.hyprlock = {}; +} diff --git a/modules/desktop/base/services.nix b/modules/desktop/base/services.nix new file mode 100644 index 0000000..eeb289e --- /dev/null +++ b/modules/desktop/base/services.nix @@ -0,0 +1,20 @@ +{pkgs, ...}: { + services = { + gvfs.enable = true; + gnome.gnome-keyring.enable = true; + dbus.enable = true; + + flatpak.enable = true; + + printing.enable = true; + avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + }; + + blueman.enable = true; + }; + + environment.systemPackages = [pkgs.libsecret]; +} diff --git a/modules/desktop/base/stylix.nix b/modules/desktop/base/stylix.nix new file mode 100644 index 0000000..601620f --- /dev/null +++ b/modules/desktop/base/stylix.nix @@ -0,0 +1,16 @@ +{ + inputs, + pkgs, + ... +}: { + imports = [inputs.stylix.nixosModules.stylix]; + stylix = { + enable = true; + homeManagerIntegration.autoImport = false; # Handled in each user's HM config + base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; + targets = { + console.enable = false; + grub.enable = false; + }; + }; +} diff --git a/modules/desktop/gaming.nix b/modules/desktop/gaming.nix new file mode 100644 index 0000000..314810c --- /dev/null +++ b/modules/desktop/gaming.nix @@ -0,0 +1,11 @@ +{...}: { + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = false; + }; + + programs.gamemode.enable = true; + + services.joycond.enable = true; +} diff --git a/modules/desktop/hyprland.nix b/modules/desktop/hyprland.nix new file mode 100644 index 0000000..d29e3d3 --- /dev/null +++ b/modules/desktop/hyprland.nix @@ -0,0 +1,44 @@ +{ + pkgs, + lib, + config, + ... +}: { + imports = [./regreet.nix]; + + options = { + programs.hyprland.autoLogin.username = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + example = "john"; + description = "User for Hyprland auto login with ReGreet. Disabled by default"; + }; + }; + + config = { + programs.hyprland = { + enable = true; + withUWSM = true; + }; + + xdg.portal = { + enable = true; + wlr.enable = true; + xdgOpenUsePortal = true; + extraPortals = [ + pkgs.xdg-desktop-portal-hyprland + pkgs.xdg-desktop-portal-gtk + ]; + }; + + services.greetd.settings.initial_session = let + username = config.programs.hyprland.autoLogin.username; + in + lib.mkIf (!isNull username) { + command = "uwsm start hyprland-uwsm.desktop"; + user = username; + }; + + environment.sessionVariables.XKB_DEFAULT_LAYOUT = "es"; + }; +} diff --git a/modules/desktop/regreet.nix b/modules/desktop/regreet.nix new file mode 100644 index 0000000..bd02562 --- /dev/null +++ b/modules/desktop/regreet.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + programs.regreet = { + enable = true; + settings = { + background = { + path = pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath; + fit = "Cover"; + }; + }; + cageArgs = ["-s" "-m" "last"]; # Only show on the last monitor + }; +} diff --git a/modules/gnome.nix b/modules/gnome.nix deleted file mode 100644 index d36b852..0000000 --- a/modules/gnome.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: -{ - # Can be imported into machines to enable GNOME and GDM. - # - # Copy this into a machine's configuration: - # `machines//configuration.nix` - # ```nix - # imports = [ - # ../../modules/gnome.nix - # ]; - # ``` - - services.displayManager.gdm.enable = true; - services.desktopManager.gnome.enable = true; -} diff --git a/modules/podman.nix b/modules/podman.nix new file mode 100644 index 0000000..d221b33 --- /dev/null +++ b/modules/podman.nix @@ -0,0 +1,13 @@ +{pkgs, ...}: { + environment.systemPackages = with pkgs; [ + podman-compose + ]; + + virtualisation.podman = { + enable = true; + # Create a `docker` alias for podman, to use it as a drop-in replacement + dockerCompat = true; + # Required for containers under podman-compose to be able to talk to each other. + defaultNetwork.settings.dns_enabled = true; + }; +} diff --git a/modules/virtualisation.nix b/modules/virtualisation.nix new file mode 100644 index 0000000..4b0c3f1 --- /dev/null +++ b/modules/virtualisation.nix @@ -0,0 +1,28 @@ +{pkgs, ...}: { + # Install necessary packages + environment.systemPackages = with pkgs; [ + virt-manager + virt-viewer + spice + spice-gtk + spice-protocol + win-virtio + win-spice + adwaita-icon-theme + ]; + + # Manage the virtualisation services + virtualisation = { + libvirtd = { + enable = true; + qemu = { + swtpm.enable = true; + ovmf.enable = true; + ovmf.packages = [pkgs.OVMFFull.fd]; + }; + }; + + spiceUSBRedirection.enable = true; + }; + services.spice-vdagentd.enable = true; +} diff --git a/users/pedro/configuration.nix b/users/pedro/configuration.nix deleted file mode 100644 index 0ff31c1..0000000 --- a/users/pedro/configuration.nix +++ /dev/null @@ -1,11 +0,0 @@ -# This are some NixOS options this user requires -{pkgs, ...}: { - users.users.pedro = { - shell = pkgs.zsh; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJji4h4bgzgmp7YoRX/8ePN0TcCYRfI2wlrEeZkBQ/y2 personal@peprolinbot.com" - ]; - }; - - programs.zsh.enable = true; -} diff --git a/users/pedro/home-configuration/browsers/default.nix b/users/pedro/home-configuration/browsers/default.nix new file mode 100644 index 0000000..397d431 --- /dev/null +++ b/users/pedro/home-configuration/browsers/default.nix @@ -0,0 +1,10 @@ +{...}: { + imports = [(import ./librewolf.nix)]; + + xdg.mimeApps.defaultApplications = { + "text/html" = ["librewolf.desktop"]; + "text/xml" = ["librewolf.desktop"]; + "x-scheme-handler/http" = ["librewolf.desktop"]; + "x-scheme-handler/https" = ["librewolf.desktop"]; + }; +} diff --git a/users/pedro/home-configuration/browsers/extensions/ublock-origin.nix b/users/pedro/home-configuration/browsers/extensions/ublock-origin.nix new file mode 100644 index 0000000..1762b1d --- /dev/null +++ b/users/pedro/home-configuration/browsers/extensions/ublock-origin.nix @@ -0,0 +1,19 @@ +{ + selectedFilterLists = [ + "user-filters" + "ublock-filters" + "ublock-badware" + "ublock-privacy" + "ublock-quick-fixes" + "ublock-unbreak" + "easylist" + "easyprivacy" + "LegitimateURLShortener" + "adguard-spyware-url" + "urlhaus-1" + "curben-phishing" + "plowe-0" + "fanboy-cookiemonster" + "ublock-cookies-easylist" + ]; +} diff --git a/users/pedro/home-configuration/browsers/librewolf.nix b/users/pedro/home-configuration/browsers/librewolf.nix new file mode 100644 index 0000000..3bfd1ef --- /dev/null +++ b/users/pedro/home-configuration/browsers/librewolf.nix @@ -0,0 +1,128 @@ +{ + pkgs, + inputs, + lib, + ... +}: { + programs.librewolf = { + enable = true; + settings = { + "webgl.disabled" = false; + "privacy.resistFingerprinting" = true; + "privacy.clearOnShutdown.history" = false; + "privacy.clearOnShutdown.cookies" = false; + "network.cookie.lifetimePolicy" = 0; + "identity.fxaccounts.enabled" = true; + }; + profiles.pedro = { + search = { + force = true; + default = "FruesX"; + privateDefault = "FruesX"; + order = ["FruesX" "ddg" "google"]; + engines = { + "FruesX" = { + urls = [{template = "https://searx.peprolinbot.com/search?q={searchTerms}";}]; + icon = "https://searx.peprolinbot.com/favicon.ico"; + }; + }; + }; + + containersForce = true; + containers = { + Personal = { + color = "blue"; + icon = "fingerprint"; + id = 1; + }; + University = { + color = "pink"; + icon = "briefcase"; + id = 2; + }; + Shopping = { + color = "orange"; + icon = "cart"; + id = 3; + }; + Banking = { + color = "green"; + icon = "dollar"; + id = 4; + }; + Private = { + color = "purple"; + icon = "chill"; + id = 5; + }; + }; + + extensions = { + force = true; + packages = with inputs.firefox-addons.packages.${pkgs.system}; [ + ublock-origin # Included in Librewolf + bitwarden + skip-redirect + libredirect + multi-account-containers + tridactyl + ]; + + settings = { + "uBlock0@raymondhill.net".settings = import ./extensions/ublock-origin.nix; + }; + }; + bookmarks = {}; + settings = { + webgl.disabled = false; + privacy.resistFingerprinting = true; + privacy.clearOnShutdown = { + history = false; + cookies = false; + }; + network.cookie.lifetimePolicy = 0; + identity.fxaccounts.enabled = true; + + # Sync settings + services.sync.engine = { + bookmarks = true; + history = true; + tabs = true; + addresses = false; + creditcards = false; + passwords = false; + prefs = false; + addons = false; + }; + browser.urlbar.autoFill = false; + + # Layout + browser.uiCustomization.state = builtins.toJSON { + currentVersion = 20; + newElementCount = 5; + dirtyAreaCache = ["nav-bar" "PersonalToolbar" "toolbar-menubar" "TabsToolbar" "widget-overflow-fixed-list"]; + placements = { + PersonalToolbar = ["personal-bookmarks"]; + TabsToolbar = ["tabbrowser-tabs" "new-tab-button" "alltabs-button"]; + nav-bar = [ + "back-button" + "forward-button" + "stop-reload-button" + "urlbar-container" + "downloads-button" + "ublock0_raymondhill_net-browser-action" # uBlock + "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action" # Bitwarden + "7esoorv3_alefvanoon_anonaddy_me-browser-action" # LibRedirect + "_testpilot-containers-browser-action" # Multi-account containers + "unified-extensions-button" # Button with the rest of extensions + ]; + toolbar-menubar = ["menubar-items"]; + unified-extensions-area = []; + widget-overflow-fixed-list = []; + }; + seen = ["developer-button" "ublock0_raymondhill_net-browser-action" "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action" "_testpilot-containers-browser-action"]; + }; + }; + }; + }; +} diff --git a/users/pedro/home-configuration/default.nix b/users/pedro/home-configuration/default.nix index fc8e5a3..e1431bf 100644 --- a/users/pedro/home-configuration/default.nix +++ b/users/pedro/home-configuration/default.nix @@ -1,3 +1,37 @@ -{...}: { - imports = [(import ./zsh.nix)]; # shell +{osConfig, ...}: { + imports = + [ + ./programs + ./distrobox.nix + ./git.nix + ./gpg.nix + ./packages.nix + ./services.nix + ./stylix.nix + ./zsh.nix + ] + ++ ( + if osConfig.hm-pedro.de != "none" + then [ + ./browsers + ./gtk.nix + ./kitty.nix + ./libreoffice.nix + ./nemo.nix + ./qt.nix + ./spotify.nix + ./vscodium.nix + ] + else [] + ) + ++ ( + if osConfig.hm-pedro.de == "hyprland" + then [ + ./hyprland + ./scripts + ./waybar + ./mako.nix + ] + else [] + ); } diff --git a/users/pedro/home-configuration/distrobox.nix b/users/pedro/home-configuration/distrobox.nix new file mode 100644 index 0000000..4905f93 --- /dev/null +++ b/users/pedro/home-configuration/distrobox.nix @@ -0,0 +1,37 @@ +{ + osConfig, + pkgs, + ... +}: let + hasDE = osConfig.hm-pedro.de != "none"; +in { + programs.distrobox = { + enable = true; + enableSystemdUnit = true; + containers = { + debian13 = { + image = "debian:13"; + entry = false; + additional_packages = "git"; + init_hooks = [ + "ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker" + "ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker-compose" + ]; + }; + + kali = { + image = "docker.io/kalilinux/kali-rolling:latest"; + entry = false; + init_hooks = [ + "ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker" + "ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker-compose" + ]; + }; + }; + }; + + home.packages = with pkgs; + if hasDE + then [boxbuddy] + else []; +} diff --git a/users/pedro/home-configuration/git.nix b/users/pedro/home-configuration/git.nix new file mode 100644 index 0000000..9f1a294 --- /dev/null +++ b/users/pedro/home-configuration/git.nix @@ -0,0 +1,20 @@ +{pkgs, ...}: { + programs.git = { + enable = true; + + userName = "Pedro Rey Anca"; + userEmail = "personal@peprolinbot.com"; + + signing = { + signByDefault = true; + key = null; # Let GnuPG decide what signing key to use depending on commit’s author. + }; + + extraConfig = { + init.defaultBranch = "main"; + credential.helper = "store"; + }; + }; + + # home.packages = [ pkgs.gh pkgs.git-lfs ]; +} diff --git a/users/pedro/home-configuration/gpg.nix b/users/pedro/home-configuration/gpg.nix new file mode 100644 index 0000000..d622cdc --- /dev/null +++ b/users/pedro/home-configuration/gpg.nix @@ -0,0 +1,25 @@ +{ + pkgs, + osConfig, + ... +}: { + programs.gpg = { + enable = true; + settings = { + keyserver = "hkps://keys.openpgp.org"; + }; + }; + + services.gpg-agent = { + enable = true; + enableSshSupport = true; + pinentry = { + package = + if osConfig.hm-pedro.de == "none" + then pkgs.pinentry-curses + else pkgs.pinentry-gnome3; + program = "pinentry-gnome3"; + }; + sshKeys = ["D2A3680589B81F2B07DA6CFE21DF848F1AF4E9D3"]; + }; +} diff --git a/users/pedro/home-configuration/gtk.nix b/users/pedro/home-configuration/gtk.nix new file mode 100644 index 0000000..2d9e351 --- /dev/null +++ b/users/pedro/home-configuration/gtk.nix @@ -0,0 +1,11 @@ +{ + pkgs, + config, + ... +}: { + fonts.fontconfig.enable = true; + + gtk = { + enable = true; + }; +} diff --git a/users/pedro/home-configuration/hyprland/default.nix b/users/pedro/home-configuration/hyprland/default.nix new file mode 100644 index 0000000..e01ec82 --- /dev/null +++ b/users/pedro/home-configuration/hyprland/default.nix @@ -0,0 +1,11 @@ +{...}: { + imports = [ + ./hyprland.nix + ./hyprlock.nix + ./hypridle.nix + ./variables.nix + ./utils.nix + ]; + + xdg.configFile."hypr/default_wallpaper.png".source = ./default_wallpaper.png; +} diff --git a/users/pedro/home-configuration/hyprland/default_wallpaper.png b/users/pedro/home-configuration/hyprland/default_wallpaper.png new file mode 100644 index 0000000..087e3e3 Binary files /dev/null and b/users/pedro/home-configuration/hyprland/default_wallpaper.png differ diff --git a/users/pedro/home-configuration/hyprland/hypridle.nix b/users/pedro/home-configuration/hyprland/hypridle.nix new file mode 100644 index 0000000..a3487ab --- /dev/null +++ b/users/pedro/home-configuration/hyprland/hypridle.nix @@ -0,0 +1,23 @@ +{...}: { + services.hypridle = { + enable = true; + settings = { + general = { + lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances. + before_sleep_cmd = "loginctl lock-session"; # lock before suspend. + after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display. + }; + listener = [ + { + timeout = 300; # 5 min + on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed + on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired. + } + { + timeout = 330; # 5.5 min + on-timeout = "loginctl lock-session"; # lock screen when timeout has passed + } + ]; + }; + }; +} diff --git a/users/pedro/home-configuration/hyprland/hyprland.nix b/users/pedro/home-configuration/hyprland/hyprland.nix new file mode 100644 index 0000000..6c54725 --- /dev/null +++ b/users/pedro/home-configuration/hyprland/hyprland.nix @@ -0,0 +1,389 @@ +{pkgs, ...}: { + wayland.windowManager.hyprland = { + enable = true; + xwayland = { + enable = true; + }; + systemd.enable = false; + + plugins = [ + pkgs.hyprlandPlugins.hyprgrass + ]; + + settings = let + app_menu = "${pkgs.fuzzel}/bin/fuzzel"; + in { + # Autostart + exec-once = [ + "uwsm app -- nm-applet" + "uwsm app -- ${pkgs.wl-clip-persist}/bin/persist --clipboard regular" + "uwsm app -- bash -c 'if [ ! -f ~/.config/hypr/wallpaper.png ]; then wall-change ~/.config/hypr/default_wallpaper.png; fi'" + "uwsm app -- ${pkgs.swaybg}/bin/swaybg -m fill -i ~/.config/hypr/wallpaper.png &" + "uwsm app -- ${pkgs.poweralertd}/bin/poweralertd" + "uwsm app -- waybar" + "uwsm app -- element-desktop --hidden" + ]; + + input = { + kb_layout = "es,us"; + kb_options = "grp:alt_caps_toggle"; + numlock_by_default = true; + follow_mouse = 1; + sensitivity = 0; + touchpad = { + natural_scroll = true; + }; + }; + + general = { + "$mainMod" = "SUPER"; + layout = "dwindle"; + gaps_in = 0; + gaps_out = 0; + border_size = 2; + no_border_on_floating = false; + }; + + misc = { + disable_autoreload = true; + disable_hyprland_logo = true; + always_follow_on_dnd = true; + layers_hog_keyboard_focus = true; + animate_manual_resizes = false; + enable_swallow = true; + focus_on_activate = true; + }; + + dwindle = { + force_split = 0; + special_scale_factor = 1.0; + split_width_multiplier = 1.0; + use_active_for_splits = true; + pseudotile = true; + preserve_split = true; + }; + + master = { + new_status = "master"; + special_scale_factor = 1; + }; + + decoration = { + rounding = 0; + + blur = { + enabled = true; + size = 1; + passes = 1; + brightness = 1; + contrast = 1.400; + ignore_opacity = true; + noise = 0; + new_optimizations = true; + xray = false; + }; + + shadow = { + enabled = true; + + ignore_window = true; + offset = "0 2"; + range = 20; + render_power = 3; + }; + }; + + animations = { + enabled = true; + + bezier = [ + "fluent_decel, 0, 0.2, 0.4, 1" + "easeOutCirc, 0, 0.55, 0.45, 1" + "easeOutCubic, 0.33, 1, 0.68, 1" + "easeinoutsine, 0.37, 0, 0.63, 1" + ]; + + animation = [ + # Windows + "windowsIn, 1, 3, easeOutCubic, popin 30%" # window open + "windowsOut, 1, 3, fluent_decel, popin 70%" # window close. + "windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing. + + # Fade + "fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows + "fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows + "fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity + "fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows + "fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows + "border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed + "borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop + "workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert + ]; + }; + + bind = + [ + # show keybinds list + "$mainMod, F1, exec, show-keybinds" + + # keybindings + "$mainMod, Return, exec, uwsm app -- kitty" + "ALT, Return, exec, uwsm app -- kitty --title float_kitty" + "$mainMod SHIFT, Return, exec, uwsm app -- kitty --start-as=fullscreen -o 'font_size=16'" + "$mainMod, B, exec, uwsm app -- librewolf" + "$mainMod, N, exec, uwsm app -- makoctl mode -t do-not-disturb" + "$mainMod SHIFT, N, exec, uwsm app -- swaync-client -d" + "$mainMod SHIFT, Q, killactive," + "$mainMod, F, fullscreen, 0" + "$mainMod SHIFT, F, fullscreen, 1" + "$mainMod, Space, togglefloating," + "$mainMod, D, exec, uwsm app -- ${app_menu}" + "$mainMod SHIFT, E, exec, uwsm app -- ${pkgs.bemoji}/bin/bemoji -n" + "$mainMod, M, exec, uwsm app -- element-desktop" + "$mainMod, Y, exec, uwsm app -- kitty spotify_player" + "$mainMod, X, exec, uwsm app -- rofi-rbw" + "$mainMod, Escape, exec, uwsm app -- loginctl lock-session" + "$mainMod SHIFT, Escape, exec, uwsm app -- shutdown-script" + "$mainMod, P, pseudo," + "$mainMod SHIFT, P, togglesplit," + "$mainMod, E, exec, uwsm app -- nemo" + "$mainMod SHIFT, B, exec, uwsm app -- pkill -SIGUSR1 .waybar-wrapped" + "$mainMod, C ,exec, uwsm app -- ${pkgs.hyprpicker}/bin/hyprpicker -a" + "$mainMod, W,exec, uwsm app -- wallpaper-picker" + + # screenshot + "$mainMod, Print, exec, uwsm app -- screenshot-menu" + ",Print, exec, uwsm app -- ${pkgs.grimblast}/bin/grimblast --notify --freeze copy area" + ] + ++ ( + # workspaces + # binds $mod + [shift +] {1..10} to [move to] workspace {1..10} + builtins.concatLists ( + builtins.genList ( + x: let + ws = let + c = (x + 1) / 10; + in + builtins.toString (x + 1 - (c * 10)); + in [ + "$mainMod, ${ws}, workspace, ${toString (x + 1)}" + "$mainMod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}" + ] + ) + 10 + ) + ) + ++ [ + "$mainMod CTRL, c, workspace, emptym" + "$mainMod SHIFT, c, movetoworkspace, emptym" + + "$mainMod, S, togglespecialworkspace," + "$mainMod SHIFT, S, movetoworkspacesilent, special" + ] + ++ ( + # Window focus, movement and control + builtins.concatLists ( + let + keys = ["H" "L" "K" "J"]; + directions = ["l" "r" "u" "d"]; + resize = toString 80; # Change this to change how much a window resizes each keypress + resize_list = ["-${resize} 0" "${resize} 0" "0 -${resize}" "0 ${resize}"]; + in + builtins.genList ( + x: let + k = builtins.elemAt keys x; + d = builtins.elemAt directions x; + r = builtins.elemAt resize_list x; + in [ + "$mainMod, ${k}, movefocus, ${d}" + "$mainMod SHIFT, ${k}, movewindow, ${d}" + "$mainMod CTRL, ${k}, resizeactive, ${r}" + "$mainMod ALT, ${k}, moveactive, ${r}" + ] + ) + 4 + ) + ) + ++ [ + "$mainMod, mouse_down, workspace, e-1" + "$mainMod, mouse_up, workspace, e+1" + + # laptop brigthness + ",XF86MonBrightnessUp, exec, brightnessctl set 5%+" + ",XF86MonBrightnessDown, exec, brightnessctl set 5%-" + "$mainMod, XF86MonBrightnessUp, exec, brightnessctl set 100%+" + "$mainMod, XF86MonBrightnessDown, exec, brightnessctl set 100%-" + + # clipboard manager + "$mainMod, V, exec, cliphist list | fuzzel --dmenu --prompt '📋 ' | cliphist decode | wl-copy" + ]; + + # Bindings that work when locked + bindl = [ + # media and volume controls + ",XF86AudioRaiseVolume,exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ && wp-vol" + ",XF86AudioLowerVolume,exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && wp-vol" + ",XF86AudioMute,exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ",XF86AudioPlay,exec, playerctl play-pause" + ",XF86AudioNext,exec, playerctl next" + ",XF86AudioPrev,exec, playerctl previous" + ",XF86AudioStop, exec, playerctl stop" + ]; + + # mouse binding + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + + # windowrule + windowrule = [ + "float,class:vimiv" + "center,class:vimiv" + "float,class:mpv" + "center,class:mpv" + "size 1200 725,class:mpv" + "float,title:^(float_kitty)$" + "center,title:^(float_kitty)$" + "size 950 600,title:^(float_kitty)$" + "tile, class:neovide" + "idleinhibit focus,class:mpv" + "float,class:udiskie" + "float,title:^(Volume Control)$" + "float,title:^(Firefox — Sharing Indicator)$" + "move 0 0,title:^(Firefox — Sharing Indicator)$" + "size 700 450,title:^(Volume Control)$" + "move 40 55%,title:^(Volume Control)$" + "float, title:^(Picture-in-Picture)$" + "opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$" + "pin, title:^(Picture-in-Picture)$" + "opacity 1.0 override 1.0 override, class:(Aseprite)" + "opacity 1.0 override 1.0 override, class:(Unity)" + "idleinhibit focus, class:^(mpv)$" + "idleinhibit fullscreen, class:^(firefox)$" + "float,class:^(zenity)$" + "center,class:^(zenity)$" + "size 850 500,class:^(zenity)$" + "float,class:^(pavucontrol)$" + "float,class:^(.sameboy-wrapped)$" + "float,class:^(file_progress)$" + "float,class:^(confirm)$" + "float,class:^(dialog)$" + "float,class:^(download)$" + "float,class:^(notification)$" + "float,class:^(error)$" + "float,class:^(confirmreset)$" + "float,title:^(Open File)$" + "float,title:^(branchdialog)$" + "float,title:^(Confirm to replace files)$" + "float,title:^(File Operation Progress)$" + + "opacity 0.0 override,class:^(xwaylandvideobridge)$" + "noanim,class:^(xwaylandvideobridge)$" + "noinitialfocus,class:^(xwaylandvideobridge)$" + "maxsize 1 1,class:^(xwaylandvideobridge)$" + "noblur,class:^(xwaylandvideobridge)$" + ]; + + monitor = [ + ",preferred,auto,1" + ]; + + xwayland = { + force_zero_scaling = true; + }; + + gestures = { + workspace_swipe = true; + workspace_swipe_direction_lock = false; + }; + ecosystem = { + no_update_news = true; + no_donation_nag = true; + }; + plugin = { + touch_gestures = { + # The default sensitivity is probably too low on tablet screens, + # I recommend turning it up to 4.0 + sensitivity = 5.0; + + # must be >= 3 + workspace_swipe_fingers = 3; + + # switching workspaces by swiping from an edge, this is separate from workspace_swipe_fingers + # and can be used at the same time + # possible values: l, r, u, or d + # to disable it set it to anything else + workspace_swipe_edge = "no"; + + # in milliseconds + long_press_delay = 400; + + # resize windows by long-pressing on window borders and gaps. + # If general:resize_on_border is enabled, general:extend_border_grab_area is used for floating + # windows + resize_on_border_long_press = true; + + # in pixels, the distance from the edge that is considered an edge + edge_margin = 20; + + # emulates touchpad swipes when swiping in a direction that does not trigger workspace swipe. + # ONLY triggers when finger count is equal to workspace_swipe_fingers + # + # might be removed in the future in favor of event hooks + emulate_touchpad_swipe = false; + + hyprgrass-bind = [ + # swipe left from right edge + ", edge:r:l, exec, playerctl next" + + # swipe right from left edge + ", edge:l:r, exec, playerctl previous" + + # swipe up from bottom edge + ", edge:d:u, exec, pkill -SIGUSR2 wvkbd" # Show wvkbd + + # swipe down to bottom edge + ", edge:u:d, exec, pkill -SIGUSR1 wvkbd" # Hide wvkbd + + # tap with 3 fingers + ", tap:4, exec, pkill -SIGRTMIN wvkbd" # Toggles wvkbd + + # swipe up from left edge + ", edge:l:u, exec, pamixer -i 4" + + # swipe down from left edge + ", edge:l:d, exec, pamixer -d 4" + + # swipe up with 3 fingers + ", swipe:3:u, exec, ${pkgs.nwg-drawer}/bin/nwg-drawer" + + # swipe down with 3 fingers + ", swipe:3:d, killactive" + + # swipe diagonally left and down with 3 fingers + ", swipe:3:ld, exec, uwsm app -- librewolf" + + # swipe diagonally right and down with 3 fingers + ", swipe:3:rd, exec, uwsm app -- xournalpp" + + # tap with 3 fingers + ", tap:3, exec, playerctl play-pause" + ]; + + # longpress can trigger mouse binds: + hyprgrass-bindm = [ + ", longpress:2, movewindow" + ", longpress:3, resizewindow" + ]; + + experimental = { + # send proper cancel events to windows instead of hacky touch_up events, + # NOT recommended as it crashed a few times, once it's stabilized I'll make it the default + send_cancel = 0; + }; + }; + }; + }; + }; +} diff --git a/users/pedro/home-configuration/hyprland/hyprlock.nix b/users/pedro/home-configuration/hyprland/hyprlock.nix new file mode 100644 index 0000000..1104faf --- /dev/null +++ b/users/pedro/home-configuration/hyprland/hyprlock.nix @@ -0,0 +1,73 @@ +{config, ...}: { + programs.hyprlock = { + enable = true; + settings = let + colors = with config.lib.stylix.colors; { + text = base05; + accent = base0E; + warning = base0A; + }; + in { + general = { + hide_cursor = true; + }; + + background = { + path = "~/.config/hypr/wallpaper.png"; + blur_passes = 2; + }; + + label = [ + # Time + { + text = "cmd[update:30000] echo \" $(date +\"%R\") \""; + color = "rgb(${colors.text})"; + font_size = 110; + shadow_passes = 3; + shadow_size = 3; + + position = "0, -100"; + halign = "center"; + valign = "top"; + } + + # Date + { + text = "cmd[update:43200000] echo \"$(date +\"%A, %d %B %Y\")\""; + color = "rgb(${colors.text})"; + font_size = 18; + position = "0, -300"; + halign = "center"; + valign = "top"; + } + ]; + + # User Avatar + image = { + path = "~/.face.png"; + size = 125; + border_color = "rgb(${colors.accent})"; + + position = "0, -450"; + halign = "center"; + valign = "center"; + }; + + input-field = { + size = "300, 60"; + outline_thickness = 4; + dots_size = 0.2; + dots_spacing = 0.4; + dots_center = true; + fade_on_empty = false; + placeholder_text = "󰌾 Logged in as $USER"; + hide_input = false; + fail_text = "$FAIL ($ATTEMPTS)"; + capslock_color = "rgb(${colors.warning})"; + position = "0, -100"; + halign = "center"; + valign = "center"; + }; + }; + }; +} diff --git a/users/pedro/home-configuration/hyprland/utils.nix b/users/pedro/home-configuration/hyprland/utils.nix new file mode 100644 index 0000000..a2c543f --- /dev/null +++ b/users/pedro/home-configuration/hyprland/utils.nix @@ -0,0 +1,49 @@ +{pkgs, ...}: { + services.hyprpolkitagent.enable = true; + + programs.fuzzel = { + enable = true; + settings = { + main = { + use-bold = true; + line-height = 25; + fields = "name,generic,comment,categories,filename,keywords"; + terminal = "kitty"; + prompt = "'🔍 '"; + layer = "top"; + lines = 10; + width = 35; + horizontal-pad = 25; + inner-pad = 5; + dpi-aware = false; + }; + border = { + radius = 15; + width = 3; + }; + }; + }; + + services.cliphist = { + enable = true; + + allowImages = true; + }; + + home.packages = [ + (pkgs.writeShellApplication + { + # From https://github.com/emersion/mako/wiki/Volume-change-notification#1-create-the-notifier-script + name = "wp-vol"; + runtimeInputs = with pkgs; [wireplumber gawk bc]; + text = '' + # Get the volume level and convert it to a percentage + volume=$(wpctl get-volume @DEFAULT_AUDIO_SINK@) + volume=$(echo "$volume" | awk '{print $2}') + volume=$(echo "( $volume * 100 ) / 1" | bc) + + notify-send -t 1000 -a 'wp-vol' -h "int:value:$volume" "Volume: ''${volume}%" + ''; + }) + ]; +} diff --git a/users/pedro/home-configuration/hyprland/variables.nix b/users/pedro/home-configuration/hyprland/variables.nix new file mode 100644 index 0000000..bb68b39 --- /dev/null +++ b/users/pedro/home-configuration/hyprland/variables.nix @@ -0,0 +1,31 @@ +{lib, ...}: let + variables = { + NIXOS_OZONE_WL = 1; + ELECTRON_OZONE_PLATFORM_HINT = "auto"; + __GL_GSYNC_ALLOWED = 0; + __GL_VRR_ALLOWED = 0; + _JAVA_AWT_WM_NONEREPARENTING = 1; + DISABLE_QT5_COMPAT = 0; + GDK_BACKEND = "wayland,x11,*"; + ANKI_WAYLAND = 1; + DIRENV_LOG_FORMAT = ""; + WLR_DRM_NO_ATOMIC = 1; + QT_AUTO_SCREEN_SCALE_FACTOR = 1; + QT_WAYLAND_DISABLE_WINDOWDECORATION = 1; + QT_QPA_PLATFORM = "wayland;xcb"; + MOZ_ENABLE_WAYLAND = 1; + MOZ_USE_XINPUT2 = 1; + WLR_BACKEND = "vulkan"; + SDL_VIDEODRIVER = "wayland"; + CLUTTER_BACKEND = "wayland"; + }; +in { + home.sessionVariables = variables; + + xdg.configFile."uwsm/env".text = builtins.concatStringsSep "\n" ( + lib.attrsets.mapAttrsToList ( + name: value: "export ${name}=\"${builtins.toString value}\"" + ) + variables + ); +} diff --git a/users/pedro/home-configuration/kitty.nix b/users/pedro/home-configuration/kitty.nix new file mode 100644 index 0000000..fc25edf --- /dev/null +++ b/users/pedro/home-configuration/kitty.nix @@ -0,0 +1,34 @@ +{pkgs, ...}: { + programs.kitty = { + enable = true; + + shellIntegration.enableZshIntegration = true; + + settings = { + confirm_os_window_close = 0; + window_padding_width = 10; + scrollback_lines = 10000; + enable_audio_bell = false; + mouse_hide_wait = 60; + + ## Tabs + tab_title_template = "{index}"; + active_tab_font_style = "normal"; + inactive_tab_font_style = "normal"; + tab_bar_style = "powerline"; + tab_powerline_style = "round"; + active_tab_foreground = "#1e1e2e"; + active_tab_background = "#cba6f7"; + inactive_tab_foreground = "#bac2de"; + inactive_tab_background = "#313244"; + }; + + keybindings = { + ## Tabs + "alt+1" = "goto_tab 1"; + "alt+2" = "goto_tab 2"; + "alt+3" = "goto_tab 3"; + "alt+4" = "goto_tab 4"; + }; + }; +} diff --git a/users/pedro/home-configuration/libreoffice.nix b/users/pedro/home-configuration/libreoffice.nix new file mode 100644 index 0000000..3bf0f5a --- /dev/null +++ b/users/pedro/home-configuration/libreoffice.nix @@ -0,0 +1,9 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + libreoffice + hunspell + hunspellDicts.en_US + hunspellDicts.en_GB-ise + hunspellDicts.es_ES + ]; +} diff --git a/users/pedro/home-configuration/mako.nix b/users/pedro/home-configuration/mako.nix new file mode 100644 index 0000000..91dac54 --- /dev/null +++ b/users/pedro/home-configuration/mako.nix @@ -0,0 +1,31 @@ +{...}: { + services.mako = { + enable = true; + settings = { + default-timeout = 5000; + + "mode=do-not-disturb" = { + invisible = 1; + }; + + # From https://github.com/emersion/mako/wiki/Volume-change-notification + "app-name=wp-vol" = { + layer = "overlay"; + history = 0; + anchor = "top-center"; + # Group all volume notifications together + group-by = "app-name"; + # Hide the group-index + format = "%s\\n%b"; + }; + "app-name=volume group-index=0" = { + # Only show last notification + invisible = 0; + }; + "app-name=volume grouped=false" = { + # Force initial volume notification to be visible + invisible = 0; + }; + }; + }; +} diff --git a/users/pedro/home-configuration/nemo.nix b/users/pedro/home-configuration/nemo.nix new file mode 100644 index 0000000..3ac8091 --- /dev/null +++ b/users/pedro/home-configuration/nemo.nix @@ -0,0 +1,13 @@ +{pkgs, ...}: { + home.packages = with pkgs; [nemo-with-extensions]; + + xdg.mimeApps.defaultApplications = { + "inode/directory" = ["nemo.desktop"]; + "application/x-gnome-saved-search" = ["nemo.desktop"]; + }; + dconf.settings = { + "org/cinnamon/desktop/applications/terminal" = { + exec = "kitty"; + }; + }; +} diff --git a/users/pedro/home-configuration/packages.nix b/users/pedro/home-configuration/packages.nix new file mode 100644 index 0000000..66154d2 --- /dev/null +++ b/users/pedro/home-configuration/packages.nix @@ -0,0 +1,91 @@ +{ + osConfig, + pkgs, + ... +}: let + hasDE = osConfig.hm-pedro.de != "none"; +in { + xdg.mimeApps.enable = hasDE; + xdg.mimeApps.defaultApplications = + { + "application/pdf" = ["okularApplication_pdf.desktop" "org.gnome.Evince.desktop"]; + "text/plain" = ["org.gnome.TextEditor.desktop"]; + } + // builtins.listToAttrs (map (key: { + name = "image/${key}"; + value = ["vimiv.desktop"]; + }) ["png" "jpeg" "webp" "bmp" "gif"]) + // builtins.listToAttrs (map (key: { + name = "video/${key}"; + value = ["mpv.desktop"]; + }) ["mp4" "x-matroska" "webm"]); + + home.packages = with pkgs; ([ + # CLI utils + bitwarden-cli + file # Show file information + gtrash # rm replacement, put deleted files in system trash + imagemagick + lazygit # Simple terminal UI for git commands + jq # command-line JSON processor + nitch # neofetch-like util + tdf # cli pdf viewer + todo # cli todo list + yazi # terminal file manager + yt-dlp + wtype # xdotool type for wayland + caligula # TUI for disk imaging + ffmpeg + killall + man-pages # extra man pages + openssl + pamixer # pulseaudio command line mixer + playerctl # controller for media players + wl-clipboard # clipboard utils for wayland (wl-copy, wl-paste) + unzip + wget + usbutils + gotify-cli + ] + ++ ( + if hasDE + then [ + #GUI Utils + zenity # Create GTK dialog boxes from CLI + file-roller # Archive manager + wdisplays # Configuring displays in Wayland compositors + pavucontrol # pulseaudio volume controle (GUI) + + # GUI Apps + evince # gnome pdf viewer + freetube # YouTube client + thunderbird + vlc + mpv # video player + xournalpp # For notes and pdf editing + qbittorrent # torrent client + speedcrunch # Fast power user calculator + simple-scan + orca-slicer + kdePackages.okular # KDE's pdf viewer/editor (supports digital signing) + inkscape + kdePackages.kleopatra # GPG GUI + gimp + gnome-text-editor + gparted # partition manager + vimiv-qt # Image viewer, vim-like + webcord + + # Wine stuff + winetricks + wineWowPackages.wayland + bottles + + # VPN + wireguard-tools + openconnect + networkmanager-openconnect + ] + else [] + )); +} diff --git a/users/pedro/home-configuration/programs/cli.nix b/users/pedro/home-configuration/programs/cli.nix new file mode 100644 index 0000000..297de86 --- /dev/null +++ b/users/pedro/home-configuration/programs/cli.nix @@ -0,0 +1,11 @@ +{...}: { + programs.bat.enable = true; + + programs.btop.enable = true; + + programs.direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; +} diff --git a/users/pedro/home-configuration/programs/default.nix b/users/pedro/home-configuration/programs/default.nix new file mode 100644 index 0000000..64d510f --- /dev/null +++ b/users/pedro/home-configuration/programs/default.nix @@ -0,0 +1,9 @@ +{osConfig, ...}: { + imports = + [./cli.nix] + ++ ( + if osConfig.hm-pedro.de != "none" + then [./gui.nix] + else [] + ); +} diff --git a/users/pedro/home-configuration/programs/gui.nix b/users/pedro/home-configuration/programs/gui.nix new file mode 100644 index 0000000..97efbde --- /dev/null +++ b/users/pedro/home-configuration/programs/gui.nix @@ -0,0 +1,5 @@ +{...}: { + programs.cava.enable = true; # Not GUI, but only wanted in machines with GUI + + programs.element-desktop.enable = true; +} diff --git a/users/pedro/home-configuration/qt.nix b/users/pedro/home-configuration/qt.nix new file mode 100644 index 0000000..b88dc67 --- /dev/null +++ b/users/pedro/home-configuration/qt.nix @@ -0,0 +1,22 @@ +{ + pkgs, + config, + ... +}: let + qtctConf = '' + [Appearance] + style=kvantum + icon_theme=${config.stylix.iconTheme.${config.stylix.polarity}} + + [Fonts] + general="${config.stylix.fonts.sansSerif.name},${builtins.toString config.stylix.fonts.sizes.applications},-1,5,50,0,0,0,0,0,Regular" + fixed="${config.stylix.fonts.monospace.name},${builtins.toString config.stylix.fonts.sizes.applications},-1,5,50,0,0,0,0,0,Regular" + ''; +in { + qt = { + enable = true; + }; + + xdg.configFile."qt5ct/qt5ct.conf".text = qtctConf; + xdg.configFile."qt6ct/qt6ct.conf".text = qtctConf; +} diff --git a/users/pedro/home-configuration/scripts/default.nix b/users/pedro/home-configuration/scripts/default.nix new file mode 100644 index 0000000..520a9cc --- /dev/null +++ b/users/pedro/home-configuration/scripts/default.nix @@ -0,0 +1,70 @@ +{pkgs, ...}: { + home.packages = + [ + (pkgs.writeShellApplication { + name = "ddcmonitorctl"; + runtimeInputs = with pkgs; [ddcutil]; + text = builtins.readFile ./scripts/ddcmonitorctl.sh; + }) + ] + ++ (let + wall-change = pkgs.writeShellApplication { + name = "wall-change"; + runtimeInputs = with pkgs; [swaybg imagemagick]; + text = builtins.readFile ./scripts/wall-change.sh; + }; + setbg-apotd = pkgs.writeShellApplication { + name = "setbg-apotd"; + runtimeInputs = [pkgs.curl pkgs.gnugrep pkgs.gnused wall-change]; + text = builtins.readFile ./scripts/setbg-apotd.sh; + }; + setbg-bpotd = pkgs.writeShellApplication { + name = "setbg-bpotd"; + runtimeInputs = with pkgs; [pkgs.curl pkgs.jq wall-change]; + text = builtins.readFile ./scripts/setbg-bpotd.sh; + }; + wallpaper-picker = pkgs.writeShellApplication { + name = "wallpaper-picker"; + runtimeInputs = [pkgs.fuzzel setbg-apotd setbg-bpotd wall-change]; + text = builtins.readFile ./scripts/wallpaper-picker.sh; + }; + in [ + wall-change + setbg-apotd + setbg-bpotd + wallpaper-picker + ]) + ++ [ + (pkgs.writeShellApplication { + name = "runbg"; + text = builtins.readFile ./scripts/runbg.sh; + }) + + (pkgs.writeShellApplication { + name = "toggle_blur"; + text = builtins.readFile ./scripts/toggle_blur.sh; + }) + (pkgs.writeShellApplication { + name = "toggle_oppacity"; + text = builtins.readFile ./scripts/toggle_oppacity.sh; + }) + + (pkgs.writeShellApplication { + name = "shutdown-script"; + runtimeInputs = with pkgs; [fuzzel]; + text = builtins.readFile ./scripts/shutdown-script.sh; + }) + + (pkgs.writeShellApplication { + name = "show-keybinds"; + runtimeInputs = with pkgs; [fuzzel gnugrep]; + text = builtins.readFile ./scripts/show-keybinds.sh; + }) + + (pkgs.writeShellApplication { + name = "screenshot-menu"; + runtimeInputs = with pkgs; [fuzzel grimblast swappy]; + text = builtins.readFile ./scripts/screenshot-menu.sh; + }) + ]; +} diff --git a/users/pedro/home-configuration/scripts/scripts/ddcmonitorctl.sh b/users/pedro/home-configuration/scripts/scripts/ddcmonitorctl.sh new file mode 100755 index 0000000..646d490 --- /dev/null +++ b/users/pedro/home-configuration/scripts/scripts/ddcmonitorctl.sh @@ -0,0 +1,14 @@ +if [ "$1" == "on" ]; then + state_opt=1 +elif [ "$1" == "off" ]; then + state_opt=4 +else + echo "First argument must be either 'on' or 'off'" + exit 1 +fi + + + +monitor_count=$(bash -c "ddcutil detect | grep Display | wc -l") + +seq "$monitor_count" | xargs -n 1 ddcutil setvcp d6 $state_opt -d \ No newline at end of file diff --git a/users/pedro/home-configuration/scripts/scripts/runbg.sh b/users/pedro/home-configuration/scripts/scripts/runbg.sh new file mode 100755 index 0000000..10c618b --- /dev/null +++ b/users/pedro/home-configuration/scripts/scripts/runbg.sh @@ -0,0 +1,14 @@ +[ $# -eq 0 ] && { # $# is number of args + echo "$(basename "$0"): missing command" >&2 + exit 1 +} +prog="$(which "$1")" # see below +[ -z "$prog" ] && { + echo "$(basename "$0"): unknown command: $1" >&2 + exit 1 +} +shift # remove $1, now $prog, from args +tty -s && exec /dev/null # if stdout is a terminal, redirect to null +tty -s <&2 && exec 2>&1 # stderr to stdout (which might not be null) +"$prog" "$@" & # $@ is all args \ No newline at end of file diff --git a/users/pedro/home-configuration/scripts/scripts/screenshot-menu.sh b/users/pedro/home-configuration/scripts/scripts/screenshot-menu.sh new file mode 100755 index 0000000..0baabfc --- /dev/null +++ b/users/pedro/home-configuration/scripts/scripts/screenshot-menu.sh @@ -0,0 +1,114 @@ +#### Options + +option_1="󰹑 Capture" +option_2="󰁫 Timer capture" + +option_capture_1="󰍺 All Screen" +option_capture_2="󰍹 Capture Active Screen" +option_capture_3="󱣴 Capture Area/Window/Application" + +option_time_1="5s" +option_time_2="10s" +option_time_3="20s" +option_time_4="30s" +option_time_5="60s" + +#### + + +#### Initial menu to decide wether a timer is wanted + +want_timer_cmd() { + echo -e "$option_1\n$option_2" | fuzzel --dmenu -p 'Screenshot: ' +} + +#### + + +#### Choose Timer seconds + +timer_cmd() { + echo -e "$option_time_1\n$option_time_2\n$option_time_3\n$option_time_4\n$option_time_5" | fuzzel --dmenu -p 'Choose timer: ' +} + +timer_menu() { + selected_timer="$(timer_cmd)" + if [[ "$selected_timer" == "$option_time_1" ]]; then + countdown=5 + elif [[ "$selected_timer" == "$option_time_2" ]]; then + countdown=10 + elif [[ "$selected_timer" == "$option_time_3" ]]; then + countdown=20 + elif [[ "$selected_timer" == "$option_time_4" ]]; then + countdown=30 + elif [[ "$selected_timer" == "$option_time_5" ]]; then + countdown=60 + fi +} + +#### + + +#### Chose Screenshot Type + +type_screenshot_cmd() { + echo -e "$option_capture_1\n$option_capture_2\n$option_capture_3" | fuzzel --dmenu -p 'Type of screenshot: ' +} + +type_screenshot_menu() { + selected_type_screenshot="$(type_screenshot_cmd)" + if [[ "$selected_type_screenshot" == "$option_capture_1" ]]; then + option_type_screenshot=screen + elif [[ "$selected_type_screenshot" == "$option_capture_2" ]]; then + option_type_screenshot=output + elif [[ "$selected_type_screenshot" == "$option_capture_3" ]]; then + option_type_screenshot=area + fi +} + +#### + + +### Run the timer + +timer() { + # Countdown notifications must start at 10 seconds so they aren't annoying + if [[ $countdown -gt 10 ]]; then + notify-send -t 1000 "Taking Screenshot in ${countdown} seconds" + sleep $((countdown - 10)) + countdown=10 + fi + while [[ $countdown -ne 0 ]]; do + notify-send -t 900 "Taking Screenshot in ${countdown}" + countdown=$((countdown - 1)) + sleep 1 + done +} + +#### + + +#### Main logic + +chosen="$(want_timer_cmd)" +if [ -z "$chosen" ]; then + exit +fi + +type_screenshot_menu +if [ -z "$selected_type_screenshot" ]; then + exit +fi + +if [[ $option_2 == *$chosen* ]]; then + timer_menu + if [ -z "$selected_timer" ]; then + exit + fi + timer +else + sleep 0.7 # So fuzzel has time to fade-out +fi +GRIMBLAST_EDITOR="swappy -f " grimblast --notify edit "$option_type_screenshot" + +#### diff --git a/users/pedro/home-configuration/scripts/scripts/setbg-apotd.sh b/users/pedro/home-configuration/scripts/scripts/setbg-apotd.sh new file mode 100755 index 0000000..702562b --- /dev/null +++ b/users/pedro/home-configuration/scripts/scripts/setbg-apotd.sh @@ -0,0 +1,32 @@ +## Based on https://github.com/sgsax/apod-desktop/blob/master/apod + + +# base URL for the APOD website +BASE_URL=https://apod.nasa.gov/apod/ + +# API endpoint which returns the Picture Of The Day data +PAGE_URL="$BASE_URL/astropix.html" + +IMG_FILE=/tmp/apotd.jpg + + +echo Getting APOD page... +if ! page_data=$(curl -s $PAGE_URL); then + echo "Unable to retrieve page"; + exit 1; +fi + +# extract the image url from the astropix page +echo Getting image url... +imgurl=$(echo "$page_data" | grep -i "img src" | sed -e 's/.*/dev/null ; then + hyprctl keyword decoration:blur:enabled false >/dev/null +else + hyprctl keyword decoration:blur:enabled true >/dev/null +fi diff --git a/users/pedro/home-configuration/scripts/scripts/toggle_oppacity.sh b/users/pedro/home-configuration/scripts/scripts/toggle_oppacity.sh new file mode 100755 index 0000000..43f3298 --- /dev/null +++ b/users/pedro/home-configuration/scripts/scripts/toggle_oppacity.sh @@ -0,0 +1,7 @@ +if hyprctl getoption decoration:active_opacity | grep "float: 1" >/dev/null ; then + hyprctl keyword decoration:active_opacity 0.90 >/dev/null + hyprctl keyword decoration:inactive_opacity 0.90 >/dev/null +else + hyprctl keyword decoration:active_opacity 1 >/dev/null + hyprctl keyword decoration:inactive_opacity 1 >/dev/null +fi diff --git a/users/pedro/home-configuration/scripts/scripts/wall-change.sh b/users/pedro/home-configuration/scripts/scripts/wall-change.sh new file mode 100644 index 0000000..bf66f89 --- /dev/null +++ b/users/pedro/home-configuration/scripts/scripts/wall-change.sh @@ -0,0 +1,9 @@ +PIDS=$(pgrep -f "swaybg") + +swaybg -m fill -i "$1" & + +if [ -n "$PIDS" ]; then + echo "$PIDS" | xargs kill +fi + +magick "$1" ~/.config/hypr/wallpaper.png diff --git a/users/pedro/home-configuration/scripts/scripts/wallpaper-picker.sh b/users/pedro/home-configuration/scripts/scripts/wallpaper-picker.sh new file mode 100755 index 0000000..bb1d0c9 --- /dev/null +++ b/users/pedro/home-configuration/scripts/scripts/wallpaper-picker.sh @@ -0,0 +1,14 @@ +bpotd_entry="⚙️ Bing's Picture Of The Day" +apotd_entry="⚙️ NASA's Astronomy Picture Of The Day" +wallpapers_folder=$HOME/Pictures/Wallpapers/ + +wallpaper_name=$(echo -e "$bpotd_entry\n$apotd_entry" | { cat; find "$wallpapers_folder" -type f | sed "s|$wallpapers_folder||"; } | fuzzel --dmenu) +if [ "$wallpaper_name" == "$bpotd_entry" ]; then + setbg-bpotd +elif [ "$wallpaper_name" == "$apotd_entry" ]; then + setbg-apotd +elif [[ -f $wallpapers_folder/$wallpaper_name ]]; then + wall-change "$wallpapers_folder/$wallpaper_name" +else + exit 1 +fi \ No newline at end of file diff --git a/users/pedro/home-configuration/services.nix b/users/pedro/home-configuration/services.nix new file mode 100644 index 0000000..41699e9 --- /dev/null +++ b/users/pedro/home-configuration/services.nix @@ -0,0 +1,13 @@ +{osConfig, ...}: let + hasDE = osConfig.hm-pedro.de != "none"; +in { + services.nextcloud-client = { + enable = hasDE; + startInBackground = true; + }; + + services.kdeconnect = { + enable = hasDE; + indicator = true; + }; +} diff --git a/users/pedro/home-configuration/spotify.nix b/users/pedro/home-configuration/spotify.nix new file mode 100644 index 0000000..692af21 --- /dev/null +++ b/users/pedro/home-configuration/spotify.nix @@ -0,0 +1,6 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + spotify-player + sptlrx + ]; +} diff --git a/users/pedro/home-configuration/stylix.nix b/users/pedro/home-configuration/stylix.nix new file mode 100644 index 0000000..4af4a60 --- /dev/null +++ b/users/pedro/home-configuration/stylix.nix @@ -0,0 +1,53 @@ +{ + inputs, + config, + pkgs, + ... +}: { + imports = [inputs.stylix.homeModules.stylix]; + + stylix = { + enable = true; + autoEnable = true; + + base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; + polarity = "dark"; + + targets = { + librewolf.profileNames = ["pedro"]; + }; + + fonts = { + monospace = { + package = pkgs.nerd-fonts.jetbrains-mono; + name = "JetBrainsMono Nerd Font"; + }; + serif = config.stylix.fonts.monospace; + sansSerif = config.stylix.fonts.monospace; + emoji = config.stylix.fonts.monospace; + }; + + cursor = { + package = pkgs.catppuccin-cursors.mochaDark; + name = "Catppuccin Mocha Dark"; + size = 22; + }; + + iconTheme = { + enable = true; + package = pkgs.catppuccin-papirus-folders.override { + flavor = "mocha"; + accent = "lavender"; + }; + light = "Papirus-Light"; + dark = "Papirus-Dark"; + }; + + opacity = { + applications = 0.65; + desktop = 1.0; + popups = 0.8; + terminal = 0.55; + }; + }; +} diff --git a/users/pedro/home-configuration/vscodium.nix b/users/pedro/home-configuration/vscodium.nix new file mode 100644 index 0000000..030b82e --- /dev/null +++ b/users/pedro/home-configuration/vscodium.nix @@ -0,0 +1,91 @@ +{pkgs, ...}: { + home.packages = with pkgs; [cmake black alejandra]; # The CMake extension needs it + programs.vscode = { + enable = true; + package = pkgs.vscodium; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + # nix language + bbenoist.nix + # nix-shell suport + arrterian.nix-env-selector + # nix formatting + kamadorueda.alejandra + # python + ms-python.python + ms-python.black-formatter + # OCaml + ocamllabs.ocaml-platform + # CMake + ms-vscode.cmake-tools + # TOML + tamasfe.even-better-toml + + # Theming + catppuccin.catppuccin-vsc-icons + ]; + + userSettings = { + "update.mode" = "none"; + "extensions.autoUpdate" = false; # This stuff fixes vscode freaking out when theres an update + "window.titleBarStyle" = "custom"; # needed otherwise vscode crashes, see https://github.com/NixOS/nixpkgs/issues/246509 + + "window.menuBarVisibility" = "toggle"; + "vsicons.dontShowNewVersionMessage" = true; + "explorer.confirmDragAndDrop" = true; + "editor.fontLigatures" = true; + "editor.minimap.enabled" = true; + "workbench.startupEditor" = "none"; + + "editor.formatOnSave" = true; + "editor.formatOnType" = true; + "editor.formatOnPaste" = true; + + "workbench.layoutControl.type" = "menu"; + "workbench.editor.limit.enabled" = true; + "workbench.editor.limit.value" = 10; + "workbench.editor.limit.perEditorGroup" = true; + "workbench.editor.showTabs" = "multiple"; + "files.autoSave" = "onWindowChange"; + "explorer.openEditors.visible" = 0; + "breadcrumbs.enabled" = false; + "editor.renderControlCharacters" = false; + "workbench.activityBar.location" = "default"; + "workbench.statusBar.visible" = false; + "editor.scrollbar.verticalScrollbarSize" = 4; + "editor.scrollbar.horizontalScrollbarSize" = 4; + "editor.scrollbar.vertical" = "auto"; + "editor.scrollbar.horizontal" = "auto"; + "workbench.layoutControl.enabled" = false; + + "editor.mouseWheelZoom" = true; + + "C_Cpp.autocompleteAddParentheses" = true; + "C_Cpp.formatting" = "clangFormat"; + "C_Cpp.intelliSenseCacheSize" = 2048; + "C_Cpp.intelliSenseMemoryLimit" = 2048; + "C_Cpp.default.browse.path" = [ + ''''${workspaceFolder}/**'' + ]; + "C_Cpp.default.cStandard" = "gnu99"; + "C_Cpp.inlayHints.parameterNames.hideLeadingUnderscores" = false; + "C_Cpp.intelliSenseUpdateDelay" = 500; + "C_Cpp.workspaceParsingPriority" = "medium"; + "C_Cpp.clang_format_sortIncludes" = true; + "C_Cpp.doxygen.generatedStyle" = "/**"; + }; + # Keybindings + keybindings = [ + { + key = "ctrl+q"; + command = "editor.action.commentLine"; + when = "editorTextFocus && !editorReadonly"; + } + { + key = "ctrl+s"; + command = "workbench.action.files.saveFiles"; + } + ]; + }; + }; +} diff --git a/users/pedro/home-configuration/waybar/default.nix b/users/pedro/home-configuration/waybar/default.nix new file mode 100644 index 0000000..eece7b5 --- /dev/null +++ b/users/pedro/home-configuration/waybar/default.nix @@ -0,0 +1,10 @@ +{...}: { + imports = [ + ./settings.nix + ./style.nix + ]; + + programs.waybar = { + enable = true; + }; +} diff --git a/users/pedro/home-configuration/waybar/settings.nix b/users/pedro/home-configuration/waybar/settings.nix new file mode 100644 index 0000000..303f95d --- /dev/null +++ b/users/pedro/home-configuration/waybar/settings.nix @@ -0,0 +1,157 @@ +{host, ...}: { + programs.waybar.settings.mainBar = { + position = "top"; + layer = "top"; + # height= 15; + margin-top = 0; + margin-bottom = 5; + margin-left = 0; + margin-right = 0; + modules-left = [ + "custom/launcher" + "custom/playerctl#backward" + "custom/playerctl#play" + "custom/playerctl#forward" + ]; + modules-center = [ + "hyprland/workspaces" + ]; + modules-right = [ + "tray" + "cpu" + "memory" + "disk" + "pulseaudio" + "battery" + "idle_inhibitor" + "network" + "clock" + ]; + + clock = { + format = " {:%H:%M}"; + tooltip = true; + tooltip-format = "{:%Y %B}\n{calendar}"; + format-alt = " {:%d/%m}"; + }; + + "hyprland/workspaces" = { + active-only = false; + all-outputs = false; + disable-scroll = false; + on-scroll-up = "hyprctl dispatch workspace e-1"; + on-scroll-down = "hyprctl dispatch workspace e+1"; + format = "{name}"; + on-click = "activate"; + format-icons = { + urgent = ""; + active = ""; + default = ""; + sort-by-number = true; + }; + }; + + "custom/playerctl#backward" = { + format = "󰙣 "; + on-click = "playerctl previous"; + on-scroll-up = "playerctl volume .05+"; + on-scroll-down = "playerctl volume .05-"; + tooltip = false; + }; + + "custom/playerctl#play" = { + format = "{icon}"; + return-type = "json"; + exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F"; + on-click = "playerctl play-pause"; + on-scroll-up = "playerctl volume .05+"; + on-scroll-down = "playerctl volume .05-"; + format-icons = { + Playing = "󰏥 "; + Paused = ""; + Stopped = ""; + }; + }; + + "custom/playerctl#forward" = { + format = "󰙡 "; + on-click = "playerctl next"; + on-scroll-up = "playerctl volume .05+"; + on-scroll-down = "playerctl volume .05-"; + tooltip = false; + }; + + memory = { + format = " {}%"; + format-alt = " {used} GiB"; #  + interval = 2; + }; + + cpu = { + format = " {usage}%"; + format-alt = " {avg_frequency} GHz"; + interval = 2; + }; + + disk = { + # path = "/"; + format = "󰋊 {percentage_used}%"; + interval = 60; + }; + + network = { + format-wifi = " {signalStrength}%"; + format-ethernet = "󰀂 "; + tooltip-format = "Connected to {essid} {ifname} via {gwaddr}"; + format-linked = "{ifname} (No IP)"; + format-disconnected = "󰖪 "; + }; + + tray = { + icon-size = 20; + spacing = 8; + }; + + pulseaudio = { + format = "{icon} {volume}%"; + format-muted = " "; + format-icons = { + default = [" "]; + }; + scroll-step = 5; + on-click = "pamixer -t"; + on-click-right = "pavucontrol"; + }; + + battery = { + format = "{icon} {capacity}%"; + format-icons = [" " " " " " " " " "]; + format-charging = " {capacity}%"; + format-full = " {capacity}%"; + format-warning = " {capacity}%"; + interval = 5; + states = { + warning = 20; + }; + format-time = "{H}h{M}m"; + tooltip = true; + tooltip-format = "{time}"; + }; + + idle_inhibitor = { + format = "{icon}"; + format-icons = { + activated = " "; + deactivated = " "; + }; + timeout = 30; + }; + + "custom/launcher" = { + format = ""; + on-click = "pkill fuzzel || fuzzel"; + on-click-right = "pkill fuzzel || wallpaper-picker"; + tooltip = false; + }; + }; +} diff --git a/users/pedro/home-configuration/waybar/style.nix b/users/pedro/home-configuration/waybar/style.nix new file mode 100644 index 0000000..2c0a203 --- /dev/null +++ b/users/pedro/home-configuration/waybar/style.nix @@ -0,0 +1,155 @@ +{ + lib, + config, + ... +}: { + stylix.targets.waybar.addCss = false; + + programs.waybar.style = '' + * { + border: none; + border-radius: 0; + min-height: 0; + } + + + window#waybar { + background: none; + } + + .module { + background: @base00; + color: @base05; + margin: 5px 0px; + min-height: 0; + font-weight: bold; + } + + tooltip { + background: @base02; + color: @base05; + border-radius: 4px; + } + + tooltip label { + color: @base05; + } + + #workspaces { + margin: 5px 5px; + padding: 8px 12px; + border-radius: 12px 12px 24px 24px; + } + + #workspaces button { + padding: 0px 5px; + margin: 0px 3px; + border-radius: 15px; + color: @base00; + background-color: @base0D; + min-width: 15px; + transition: all 0.2s ease-in-out; + } + + #workspaces button.visible { + background-color: @base0F; + } + + #workspaces button.active { + background-color: @base0E; + min-width: 35px; + } + + #workspaces button:hover { + background-color: @base07; + min-width: 35px; + } + + #cpu { + border-radius: 10px 0px 0px 24px; + padding-left: 15px; + padding-right: 9px; + margin-left: 7px; + } + #memory { + border-radius: 0; + padding-left: 9px; + padding-right: 9px; + } + #disk { + border-radius: 0px 24px 10px 0px; + padding-left: 9px; + padding-right: 15px; + } + + #tray { + border-radius: 10px 24px 10px 24px; + padding: 0 20px; + margin-left: 7px; + } + + #pulseaudio { + border-radius: 10px 0px 0px 24px; + padding-left: 15px; + padding-right: 9px; + margin-left: 7px; + } + + #battery { + border-radius: 0; + padding-left: 9px; + padding-right: 9px; + } + + #idle_inhibitor { + border-radius: 0; + padding-left: 9px; + padding-right: 9px; + } + + #network { + border-radius: 0px 24px 10px 0px; + padding-left: 9px; + padding-right: 15px; + } + + #clock { + border-radius: 0px 0px 0px 40px; + padding: 10px 10px 15px 25px; + margin: 0px; + margin-left: 7px; + font-size: 16px; + } + + #custom-launcher { + color: @base0D; + border-radius: 0px 0px 40px 0px; + margin: 0px; + padding: 0px 30px 0px 10px; + font-size: 28px; + } + + #custom-playerctl.backward, #custom-playerctl.play, #custom-playerctl.forward { + font-size: 22px; + } + #custom-playerctl.backward:hover, #custom-playerctl.play:hover, #custom-playerctl.forward:hover{ + color: @base05; + } + #custom-playerctl.backward { + color: @base0E; + border-radius: 24px 0px 0px 10px; + padding-left: 16px; + margin-left: 7px; + } + #custom-playerctl.play { + color: @base0D; + padding: 0 5px; + } + #custom-playerctl.forward { + color: @base0E; + border-radius: 0px 10px 24px 0px; + padding-right: 12px; + margin-right: 7px + } + ''; +} diff --git a/users/pedro/home.nix b/users/pedro/home.nix index 181fe72..79c01fd 100644 --- a/users/pedro/home.nix +++ b/users/pedro/home.nix @@ -1,11 +1,36 @@ -{self, ...}: { - imports = [self.inputs.home-manager.nixosModules.default ./configuration.nix]; +{ + inputs, + lib, + pkgs, + ... +}: { + imports = [inputs.home-manager.nixosModules.default]; - home-manager.users.pedro = { - imports = [ - ./home-configuration - ]; + options = { + hm-pedro.de = lib.mkOption { + default = "none"; + type = lib.types.enum ["none" "hyprland"]; + }; + }; + config = { + home-manager = { + backupFileExtension = "hmbkp"; + extraSpecialArgs = {inherit inputs;}; + users.pedro = { + imports = [./home-configuration]; - home.stateVersion = "25.05"; + home.stateVersion = "25.05"; + }; + }; + + programs.zsh.enable = true; # To use as user's default shell below + users.users.pedro = { + shell = pkgs.zsh; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJji4h4bgzgmp7YoRX/8ePN0TcCYRfI2wlrEeZkBQ/y2 personal@peprolinbot.com" + ]; + }; + + programs.dconf.enable = true; # Doesn't work on headless installs without dconf (?) }; } diff --git a/vars/per-machine/aresix/tor_tor/hostname/machines/aresix b/vars/per-machine/aresix/tor_tor/hostname/machines/aresix new file mode 120000 index 0000000..a7839bb --- /dev/null +++ b/vars/per-machine/aresix/tor_tor/hostname/machines/aresix @@ -0,0 +1 @@ +../../../../../../sops/machines/aresix \ No newline at end of file diff --git a/vars/per-machine/aresix/tor_tor/hostname/secret b/vars/per-machine/aresix/tor_tor/hostname/secret new file mode 100644 index 0000000..ccd9b23 --- /dev/null +++ b/vars/per-machine/aresix/tor_tor/hostname/secret @@ -0,0 +1,19 @@ +{ + "data": "ENC[AES256_GCM,data:5ULwA0e+RgzZf4EnAAGERfAX/ISc3ySSjAET+ysVjRv0QdIWGcpCvWyhe6ylmkjb7sL3yUN/xIZM+9YuSWxy,iv:hZT3LYk5GkenIm8MN88xRKX+1uShh8EG15Rp+/P13AM=,tag:PtPDU6InsGiLeakSt+RlGg==,type:str]", + "sops": { + "age": [ + { + "recipient": "age12dw69nvfyqype23gmn4cy7wccr6ct3luj05hat4g65kzwqz9rpzs7z4jpe", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBreHFUNjBPOFJ0d281YTN4\nUFpMdk1hOVlhV3lKRmNFa2RmaUh6ZHNDMW1FCk93YXRJcDBUT3RidmE2Ui9vTnhu\nc09jUFN0T2xVZXRrZ2VUYVBrbFJaQ3cKLS0tIHo0bGp4OHoyRm1rb0s0K29BYnFj\nWjA2T0NWdDE3elltM0c0aWIzNzhNb1UKYtaUL7//G9zRTVu4w/gq/SK/T+SU3ajO\nP6HXVsZluQoXYSs+epUSqoD44OGKqLeFvU60I6AGbDwuvM6/bFfBgA==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age1r2sw9uncvkqtklypw4rttufhw86lhhqrghed8l2kda6hdrd9ypyqm7y863", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAySFNGWkdPeHhQWldIcDk5\nVUxCTHNwRThzbmgwK0N5TFY2RmJ4YzFiMlNzCjJzSkpmZlVoVVc5Q1FCWmQwRndN\nYnB0cm45QzZjb3VUNk9vSXREQzNEMHcKLS0tICtnOGNCcTNzYlF4S2prOEp6b1Zu\ncHZTc0F6QTY0UHd3cGhESkhnblY4TlEKKEHGxQyUOvJBGpopkeCRuby0+RacaV/4\nXyyCED/jni9GtqZGtFJGIN9ujfXmbBnB6VEeENH7xOGzZujOKLrJDw==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-09-06T18:14:48Z", + "mac": "ENC[AES256_GCM,data:qSdB/qhbNNtiN7QOXGes8Cv3j2JZ//EVHdTJ99JjJk/zhYHufqXxLTNhwkCejkpyxN51gR4TxKr+ink/ozy9gi7jc3S1i8HRYX4v8amhcrjNmF60OWyQiZnTXg1W7tQBgTcg9gqAPOyQymadz1ICMqpEEhd5/g+FfrkzTNKcmUE=,iv:OG37uN5EPUBGg9zRdFMIK+l0jqBLoqiLN0qwvo1KV3w=,tag:EeE4PNc2s8OwQmWW3BL8Ig==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/vars/per-machine/aresix/tor_tor/hostname/users/pedro b/vars/per-machine/aresix/tor_tor/hostname/users/pedro new file mode 120000 index 0000000..ae0c694 --- /dev/null +++ b/vars/per-machine/aresix/tor_tor/hostname/users/pedro @@ -0,0 +1 @@ +../../../../../../sops/users/pedro \ No newline at end of file diff --git a/vars/per-machine/aresix/tor_tor/hs_ed25519_secret_key/machines/aresix b/vars/per-machine/aresix/tor_tor/hs_ed25519_secret_key/machines/aresix new file mode 120000 index 0000000..a7839bb --- /dev/null +++ b/vars/per-machine/aresix/tor_tor/hs_ed25519_secret_key/machines/aresix @@ -0,0 +1 @@ +../../../../../../sops/machines/aresix \ No newline at end of file diff --git a/vars/per-machine/aresix/tor_tor/hs_ed25519_secret_key/secret b/vars/per-machine/aresix/tor_tor/hs_ed25519_secret_key/secret new file mode 100644 index 0000000..01c3943 --- /dev/null +++ b/vars/per-machine/aresix/tor_tor/hs_ed25519_secret_key/secret @@ -0,0 +1,19 @@ +{ + "data": "ENC[AES256_GCM,data:6LI/75OIdKbi5xSBfs2m6GrpZgyz8qmQU+f3CFfoakvwiA+XSYpHZeu1sFpBgfNf5RBNjfUHe+aQQU1kpXpSPY8AEJINTkxXSq/4hkXorEQQDYK2r9fKt83mBIokyq5Y,iv:NixWGdqNqRK1PUGHlBrw3B+FXUIDRZePjqf3pNq9yh0=,tag:1HhQHF+q1KZlKx2G1lcnbg==,type:str]", + "sops": { + "age": [ + { + "recipient": "age12dw69nvfyqype23gmn4cy7wccr6ct3luj05hat4g65kzwqz9rpzs7z4jpe", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1QkxLbzVTVjM5QXBPQXJ2\ndU5KdzVoY1FGc2hoZytrSkJOVzZJc0REVkNBCitRb1JmSlBlZHNxVVJzY0E4ZEt5\nUE5tclBXam9kN0JoNnJuZFQzaWdQS2cKLS0tIDVicFgwTjBrcGlqK0VnUmhScW1I\nM0FvdXFMbHBvREtXRjMvTEFHRWUvV28KYu61K71HcxcXDk6RrU31d76ZZn/9aIov\n5zRPSymed/3vJQBVJBZy5MpMk+bAicwu4AHLcgJ5cdm10q3+Jt9+WQ==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age1r2sw9uncvkqtklypw4rttufhw86lhhqrghed8l2kda6hdrd9ypyqm7y863", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZVTlmVHAvYnVoV3NtQmRn\nL1ZkNmtydk1hWW9EYWNVT1ppS0UvUjl1Z0N3CmRJVlErVXcxOThLVHI3WVRMOTBz\nUExHaGxTODlCYzNCS0VMSjZGWUxUVzQKLS0tIDZ2ZjArSUZLVk45QWFHV0JqdWN6\nd05WSUZMQ2J1WEp3ckhPeVQzWjBRcGcKzBJbAulJ3u4yEk1AFINkD5HgSTlo6JYc\nfSylgrNWzJgmpACqeWzOklZP7BNdMqpopPLCNtA38Bq945St7wZp1Q==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-09-06T18:14:48Z", + "mac": "ENC[AES256_GCM,data:rWsHq0YG7RHQ4JoemodZ3m+uvJiFwRn5vw+cHY0kXehHiDJJV4seN8Xjeyb79/7ySNE+Weca3YZEr55xEXvQX0fzvr5siF4i1ntDt0547Hw1LxW2jPAAw8wEiXTYCSYrS56Anb4bgwHXL2fNhto2UBl0U/B36ZFn4za9O4fYKdY=,iv:q1iNGncH+lBtS3Z0l1b8U8knrsY0ubiO4oI3VkYLH/s=,tag:5Norb5GLcB3K5fVBTHK9dw==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/vars/per-machine/aresix/tor_tor/hs_ed25519_secret_key/users/pedro b/vars/per-machine/aresix/tor_tor/hs_ed25519_secret_key/users/pedro new file mode 120000 index 0000000..ae0c694 --- /dev/null +++ b/vars/per-machine/aresix/tor_tor/hs_ed25519_secret_key/users/pedro @@ -0,0 +1 @@ +../../../../../../sops/users/pedro \ No newline at end of file diff --git a/vars/per-machine/frues-pc/tor_tor/hostname/machines/frues-pc b/vars/per-machine/frues-pc/tor_tor/hostname/machines/frues-pc new file mode 120000 index 0000000..52e22d8 --- /dev/null +++ b/vars/per-machine/frues-pc/tor_tor/hostname/machines/frues-pc @@ -0,0 +1 @@ +../../../../../../sops/machines/frues-pc \ No newline at end of file diff --git a/vars/per-machine/frues-pc/tor_tor/hostname/secret b/vars/per-machine/frues-pc/tor_tor/hostname/secret new file mode 100644 index 0000000..7910e93 --- /dev/null +++ b/vars/per-machine/frues-pc/tor_tor/hostname/secret @@ -0,0 +1,19 @@ +{ + "data": "ENC[AES256_GCM,data:2ia7fBXPyvWpIeOACsRuaNbFpY9A5EEK5quR224EZh4xusBcadfDvEc2rFDsGO/hmTy/fRetcOkBVLBz7jIb,iv:ZzF4FxNzczaGK7Y/99VgZwAKnWeOgCcHWF7DPxjoKfo=,tag:m0zZZ/HJaCSkllYdhovgTw==,type:str]", + "sops": { + "age": [ + { + "recipient": "age17pu3mvhwlvlffhvu2p4ut4wx60j6srdmjtk3889t9cs7jp60ws5qsc8myu", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhWFNpRGZQcEY1anBMZUpK\nazd1U0JaOWtFc0g1SzFRNElHUkEreXF4d0FVCklWUkQ4UGFSd2hSeTBEWk1XbWdl\neEtWellDVlFMU0VZUGlYcEVTcG0xZzQKLS0tIC9YK2h4YzJMTVd4VUFxVkZEMHVh\nVGpCdjI5am51c2lNRS85akRYa3ovWkEKjTc4mGwW06jb8ZB250sMAEWj5vqjwXEU\nai/rlApd3X4sUXQhHhdlpZV0/Tal/mSHCqBkHzef/JLEIBZqHlMeWw==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age1r2sw9uncvkqtklypw4rttufhw86lhhqrghed8l2kda6hdrd9ypyqm7y863", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHQkNYT3N2aHVvb21mR2hQ\nalVyM1pOcTZBUVNiKytzbG03YVZEaEQzdlNnCmtrd25oaGV4RjVpby9qQTh1eVF1\nTGVPY3Zwcm54OWx6a3JyOTJMb2RhWHcKLS0tIFMrRjNicDQvcFpHS1d5M0lKdmZa\ncUxyektmOXFoUi81QVlkRGZ0dDJhM2sKepu5HjfuD/CFwNkStqP+v2/S7AtGQAjt\nxyHUTKlWM+VOrVWh7Mta1FIe6+Ig6QikG9Ev4OFV8tF5T9XDrodKqQ==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-09-06T21:22:25Z", + "mac": "ENC[AES256_GCM,data:IBbFV7nq9JDzihjgMLBJ048ao2RtTGgX6Zxd4ccLez4W8Ds7FiCW/R5huiB0lOEMW3e+iCe/T8FQuts76X24TRaRIyPWrePQq7IOHq2HcgRApmruOv1Z8gnrFyFVS/i1pE9qiD16tgOyV974RJZ0ls6sj7iom/9JsagfBkaWN9Q=,iv:eEPYE8uNGSTqfV43DyRjJm0ifZmIgZbxyAVvmMREcA8=,tag:742Hg1RNjlSeWbiah4Qt2Q==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/vars/per-machine/frues-pc/tor_tor/hostname/users/pedro b/vars/per-machine/frues-pc/tor_tor/hostname/users/pedro new file mode 120000 index 0000000..ae0c694 --- /dev/null +++ b/vars/per-machine/frues-pc/tor_tor/hostname/users/pedro @@ -0,0 +1 @@ +../../../../../../sops/users/pedro \ No newline at end of file diff --git a/vars/per-machine/frues-pc/tor_tor/hs_ed25519_secret_key/machines/frues-pc b/vars/per-machine/frues-pc/tor_tor/hs_ed25519_secret_key/machines/frues-pc new file mode 120000 index 0000000..52e22d8 --- /dev/null +++ b/vars/per-machine/frues-pc/tor_tor/hs_ed25519_secret_key/machines/frues-pc @@ -0,0 +1 @@ +../../../../../../sops/machines/frues-pc \ No newline at end of file diff --git a/vars/per-machine/frues-pc/tor_tor/hs_ed25519_secret_key/secret b/vars/per-machine/frues-pc/tor_tor/hs_ed25519_secret_key/secret new file mode 100644 index 0000000..daa42d3 --- /dev/null +++ b/vars/per-machine/frues-pc/tor_tor/hs_ed25519_secret_key/secret @@ -0,0 +1,19 @@ +{ + "data": "ENC[AES256_GCM,data:gE1RN2GQ1EAHK16Gz9J8SHMpbmHyFEDNA7r/DSUcp+QkxBELDieJKO+t1FA736A50gVRapR0+qui7XrUfjfu5aqVJUYQPtGCUf8ZXgYpLid9+DDKqekKDdNZhQXBhi3/,iv:hcj5+TRje7o3vW85hGOlTCGA6Gh2EcXms41a9Vx/VHo=,tag:4cNJw55hGfx2xlSUmHwTxw==,type:str]", + "sops": { + "age": [ + { + "recipient": "age17pu3mvhwlvlffhvu2p4ut4wx60j6srdmjtk3889t9cs7jp60ws5qsc8myu", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUTHVTcWltWlNnOU5sbndD\nSnZ1T1l5OVpDK2NDSHBKSmFGSVhockJIM1NjCmY1NzUrazNYWHM4ajJ4L1hJUm1W\nUHlQUVFBVFVYNzlReWhVL0RRdHB1TU0KLS0tIDN1dit5bHdleXJxTnJpM1Q2cmFV\nVC8xNU4vZXZ1bjNCc09GLzRBVFRPdzAKn3FacqY2a+mdcCauGrfPOfoggEkPKwiM\nu8fkNgUgEIVXf5omcutT8mAydRTRUGar6cFy4CHUakv2HvxJ6Jg4vw==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age1r2sw9uncvkqtklypw4rttufhw86lhhqrghed8l2kda6hdrd9ypyqm7y863", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWZHFOdER1SStCc3dzVnlp\nRm9Qd1ZmYXhxM0VqT1VCRmF4NmErUVlSWENZCng2M2pOT3VDc0ord1J1bkI5OEV6\nYiszYU94OHJpQVZqaHhONEtwNkJxSFEKLS0tIEZZWHRwMDhzdXRxckR6WTgrQUtR\nNlEvZGJDUDE4eHlIWmppM05XM0Erc00KVYftdzj6yA6CABi5EP6BPnuGZLDmeszM\nhyP7YsyPlUxsxMkvIK/usY9OqaRShvr7a0dRfqh7K7T+pfBgMJq1Qw==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-09-06T21:22:25Z", + "mac": "ENC[AES256_GCM,data:rdHig7L9dtpaYlkvt8Dfq/692CKRhrPetlg3zfi8qhehw+VcX6borOXqw0iBAfHH8QtMl4GGIfrkYt6WtQYmNhxdqmxm/kwJubBzg0cE5KEvzV/vPTC2PwVDNekKMhou6/0HxxqjvEED3Id9tKBgz1UplBYSpcGRXww2lMHicd4=,iv:QuH5hcFbvLppofvgHLnePM9DDZTVKJSp54OU/KDgzyc=,tag:BAAH4nmU0LV2ZfMg1lHnUQ==,type:str]", + "unencrypted_suffix": "_unencrypted", + "version": "3.10.2" + } +} diff --git a/vars/per-machine/frues-pc/tor_tor/hs_ed25519_secret_key/users/pedro b/vars/per-machine/frues-pc/tor_tor/hs_ed25519_secret_key/users/pedro new file mode 120000 index 0000000..ae0c694 --- /dev/null +++ b/vars/per-machine/frues-pc/tor_tor/hs_ed25519_secret_key/users/pedro @@ -0,0 +1 @@ +../../../../../../sops/users/pedro \ No newline at end of file