diff --git a/flake.lock b/flake.lock
index b3613b3..10c30f2 100644
--- a/flake.lock
+++ b/flake.lock
@@ -716,7 +716,7 @@
"flake-parts_6": {
"inputs": {
"nixpkgs-lib": [
- "nix-schemes",
+ "nix-schemas",
"nixpkgs"
]
},
@@ -939,17 +939,17 @@
"git-hooks-nix": {
"inputs": {
"flake-compat": [
- "nix-schemes"
+ "nix-schemas"
],
"gitignore": [
- "nix-schemes"
+ "nix-schemas"
],
"nixpkgs": [
- "nix-schemes",
+ "nix-schemas",
"nixpkgs"
],
"nixpkgs-stable": [
- "nix-schemes",
+ "nix-schemas",
"nixpkgs"
]
},
@@ -1164,6 +1164,22 @@
"type": "github"
}
},
+ "master": {
+ "locked": {
+ "lastModified": 1754742265,
+ "narHash": "sha256-fK5QWs+Z0MaORZKHITj0xHjQrxDp4+z1w5W5gw5TmkY=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "9114a7402bc71dd710b3b62ae7e6e915e658a08a",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "master",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"mnw": {
"locked": {
"lastModified": 1735150973,
@@ -1509,7 +1525,7 @@
"type": "github"
}
},
- "nix-schemes": {
+ "nix-schemas": {
"inputs": {
"flake-compat": "flake-compat_6",
"flake-parts": "flake-parts_6",
@@ -1677,22 +1693,6 @@
"type": "github"
}
},
- "nixpkgs-master": {
- "locked": {
- "lastModified": 1754301979,
- "narHash": "sha256-EW3KN4OwiMtushATrcMsaEn0oYWuSrg4XmqpsB09ZW0=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "796e3f0d8b5570e3e3cddcf245a80e1bb70bc916",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "master",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
"nixpkgs-regression": {
"locked": {
"lastModified": 1643052045,
@@ -1741,22 +1741,6 @@
"type": "github"
}
},
- "nixpkgs-unstable": {
- "locked": {
- "lastModified": 1754214453,
- "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
"nixpkgs_10": {
"locked": {
"lastModified": 1735523292,
@@ -4232,23 +4216,23 @@
"home-manager": "home-manager_2",
"impermanence": "impermanence",
"lanzaboote": "lanzaboote",
+ "master": "master",
"neovim": "neovim",
"niri-flake": "niri-flake",
"nix-darwin": "nix-darwin",
"nix-flatpak": "nix-flatpak",
"nix-gaming": "nix-gaming",
"nix-on-droid": "nix-on-droid",
- "nix-schemes": "nix-schemes",
+ "nix-schemas": "nix-schemas",
"nixos-facter-modules": "nixos-facter-modules",
"nixos-hardware": "nixos-hardware",
"nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs_14",
- "nixpkgs-master": "nixpkgs-master",
- "nixpkgs-unstable": "nixpkgs-unstable",
"snowfall-flake": "snowfall-flake",
"snowfall-lib": "snowfall-lib_2",
"sops-nix": "sops-nix",
- "stylix": "stylix"
+ "stylix": "stylix",
+ "unstable": "unstable"
}
},
"rust-analyzer-src": {
@@ -4667,6 +4651,22 @@
"type": "github"
}
},
+ "unstable": {
+ "locked": {
+ "lastModified": 1754498491,
+ "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"xwayland-satellite-stable": {
"flake": false,
"locked": {
diff --git a/flake.nix b/flake.nix
index 11dfcae..7ea665a 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,10 +14,10 @@
nixpkgs = {
url = "github:nixos/nixpkgs?ref=nixos-25.05";
};
- nixpkgs-unstable = {
+ unstable = {
url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
- nixpkgs-master = {
+ master = {
url = "github:nixos/nixpkgs?ref=master";
};
neovim = {
@@ -80,11 +80,12 @@
url = "github:snowfallorg/flake";
inputs.nixpkgs.follows = "nixpkgs";
};
- nix-schemes = {
+ flake-schemas.url = "github:DeterminateSystems/flake-schemas";
+ ## nix client with schema support: see https://github.com/NixOS/nix/pull/8892
+ nix-schemas = {
url = "github:DeterminateSystems/nix-src/flake-schemas";
inputs.nixpkgs.follows = "nixpkgs";
};
- flake-schemas.url = "github:DeterminateSystems/flake-schemas";
};
outputs = inputs:
@@ -99,10 +100,10 @@
overlays = with inputs; [
niri-flake.overlays.niri
snowfall-flake.overlays.default
- nix-schemes.overlays.default
];
systems.modules.nixos = with inputs; [
+ home-manager.nixosModules.home-manager
nix-flatpak.nixosModules.nix-flatpak
niri-flake.nixosModules.niri
sops-nix.nixosModules.sops
@@ -116,6 +117,14 @@
impermanence.nixosModules.impermanence
];
+ systems.modules.home = with inputs; [
+ inputs.impermanence.nixosModules.home-manager.impermanence
+ ];
+
+ home.modules = with inputs; [
+ impermanence.homeManagerModules.impermanence
+ ];
+
templates = import ./templates {};
outputs-builder = channels: {
diff --git a/homes/x86_64-linux/kylekrein/default.nix b/homes/x86_64-linux/kylekrein/default.nix
new file mode 100644
index 0000000..4031af9
--- /dev/null
+++ b/homes/x86_64-linux/kylekrein/default.nix
@@ -0,0 +1,44 @@
+{
+ lib,
+ pkgs,
+ config,
+ osConfig ? {},
+ ...
+}: let
+ name = config.snowfallorg.user.name;
+ home = config.snowfallorg.user.home.directory;
+in
+ with lib;
+ with lib.custom; {
+ imports = lib.snowfall.fs.get-non-default-nix-files-recursive ./.;
+ custom = {
+ programs = {
+ fastfetch = {
+ enable = true;
+ firstNixOSInstall = 1729112485;
+ };
+ librewolf = enabled;
+ prismlauncher.enable = osConfig.custom.presets.gaming.enable;
+ bottles = enabled;
+ };
+ };
+ home = {
+ packages = with pkgs; [
+ gdb
+ element-desktop
+ obs-studio
+ neovim
+ localsend
+ kdePackages.kdenlive
+ ] ++ lib.optionals osConfig.custom.presets.gaming.enable [mcpelauncher-ui-qt];
+
+ sessionVariables = {
+ EDITOR = "emacsclient -c";
+ NH_OS_FLAKE = "${home}/nixos-config";
+ NH_HOME_FLAKE = "${home}/nixos-config";
+ NH_DARWIN_FLAKE = "${home}/nixos-config";
+ };
+
+ stateVersion = "25.05";
+ };
+ }
diff --git a/homes/x86_64-linux/kylekrein/emacs.nix b/homes/x86_64-linux/kylekrein/emacs.nix
new file mode 100644
index 0000000..6e7047c
--- /dev/null
+++ b/homes/x86_64-linux/kylekrein/emacs.nix
@@ -0,0 +1,28 @@
+{
+ pkgs,
+ system,
+ inputs,
+ ...
+}: let
+ emacs = inputs.emacs-kylekrein.packages.${system}.with-lsps-native;
+in {
+ programs.emacs = {
+ enable = true;
+ package = emacs;
+ };
+ systemd.user.services.emacs = {
+ Unit = {
+ Description = "Launches (and relaunches) emacs";
+ };
+ Install = {
+ WantedBy = ["default.target"];
+ };
+ Service = {
+ ExecStart = "${pkgs.writeShellScript "run-emacs" ''
+ ${emacs}/bin/emacs --fg-daemon
+ ''}";
+ Restart = "on-failure";
+ RestartSec = 5;
+ };
+ };
+}
diff --git a/homes/x86_64-linux/kylekrein/git.nix b/homes/x86_64-linux/kylekrein/git.nix
new file mode 100644
index 0000000..310529c
--- /dev/null
+++ b/homes/x86_64-linux/kylekrein/git.nix
@@ -0,0 +1,12 @@
+{...}: {
+ programs.git = {
+ enable = true;
+ userName = "Aleksandr Lebedev";
+ userEmail = "alex.lebedev2003@icloud.com";
+ extraConfig = {
+ credential.helper = "manager";
+ credential."https://github.com".username = "KyleKrein";
+ credential.credentialStore = "plaintext";
+ };
+ };
+}
diff --git a/homes/x86_64-linux/kylekrein/kitty.nix b/homes/x86_64-linux/kylekrein/kitty.nix
new file mode 100644
index 0000000..eba071a
--- /dev/null
+++ b/homes/x86_64-linux/kylekrein/kitty.nix
@@ -0,0 +1,27 @@
+{osConfig, pkgs, ...}:
+{
+ home.packages = with pkgs; [kitty-themes];
+ programs.fzf = {
+ enable = true;
+ enableBashIntegration = true;
+ };
+
+ programs.eza = {
+ enable = true;
+ icons = "always";
+ };
+programs.kitty = {
+ enable = osConfig.custom.presets.workstation.enable;
+ font = {
+ name = "JetBrainsMono Nerd Font";
+ size = 20;
+ };
+ settings = {
+ confirm_os_window_close = 0;
+ };
+ #shellIntegration.enableFishIntegration = true;
+ themeFile = "Catppuccin-Macchiato";
+ #Also available: Catppuccin-Frappe Catppuccin-Latte Catppuccin-Macchiato Catppuccin-Mocha
+ # See all available kitty themes at: https://github.com/kovidgoyal/kitty-themes/blob/46d9dfe230f315a6a0c62f4687f6b3da20fd05e4/themes.json
+ };
+}
diff --git a/homes/x86_64-linux/kylekrein/niri/drawerstyle.css b/homes/x86_64-linux/kylekrein/niri/drawerstyle.css
new file mode 100644
index 0000000..b92b6c1
--- /dev/null
+++ b/homes/x86_64-linux/kylekrein/niri/drawerstyle.css
@@ -0,0 +1,47 @@
+* {
+ border: none;
+ font-family: Font Awesome, Roboto, Arial, sans-serif;
+ font-size: 16px;
+ color: #eeeeee;
+ border-radius: 10px;
+}
+window {
+ background-color: rgba(50, 63, 99, 0.718);
+ color: #eeeeee;
+}
+
+/* search entry */
+entry {
+ background-color: rgba(0, 0, 0, 0.2)
+}
+
+button, image {
+ background: none;
+ border: none
+}
+
+button:hover {
+ background-color: rgba(255, 255, 255, 0.1)
+}
+
+/* in case you wanted to give category buttons a different look */
+#category-button {
+ margin: 0 10px 0 10px
+}
+
+#pinned-box {
+ padding-bottom: 5px;
+ border-bottom: 1px dotted gray
+}
+
+#files-box {
+ padding: 5px;
+ border: 1px dotted gray;
+ border-radius: 15px
+}
+
+/* math operation result label */
+#math-label {
+ font-weight: bold;
+ font-size: 16px
+}
diff --git a/homes/x86_64-linux/kylekrein/niri/hyprlock.nix b/homes/x86_64-linux/kylekrein/niri/hyprlock.nix
new file mode 100644
index 0000000..ac6f2ca
--- /dev/null
+++ b/homes/x86_64-linux/kylekrein/niri/hyprlock.nix
@@ -0,0 +1,97 @@
+{
+ pkgs,
+ lib,
+ osConfig,
+ ...
+}: let
+ enable = osConfig.custom.windowManagers.niri.enable;
+ profile-image = ./nixos-warbler.png;
+ battery = osConfig.custom.hardware.battery;
+ battery-level = battery.scripts.labelPercent;
+in {
+ programs.hyprlock = {
+ inherit enable;
+ settings = {
+ general = {
+ #enable_fingerprint = true;
+ disable_loading_bar = true;
+ hide_cursor = true;
+ no_fade_in = false;
+ grace = 10;
+ };
+ background = {
+ path = "${./wallpaper.jpg}";
+ blur_passes = 1;
+ blur_size = 7;
+ noise = 0.0117;
+ contrast = 0.8916;
+ brightness = 0.8172;
+ vibrancy = 0.1696;
+ vibrancy_darkness = 0.0;
+ };
+ image = {
+ path = "${profile-image}";
+ size = 150;
+ border_size = 4;
+ #border_color = "rgb(0C96F9)";
+ rounding = -1; # Negative means circle
+ position = "0, 220";
+ halign = "center";
+ valign = "center";
+ };
+ input-field = {
+ size = "600, 100";
+ outline_thickness = 3;
+ dots_size = 0.33;
+ dots_spacing = 0.15;
+ dots_center = true;
+ dots_rounding = -1;
+ dots_fade_time = 200;
+ placeholder_text = "Input Password...";
+ hide_input = false;
+ fade_on_empty = false;
+ fail_text = "$FAIL ($ATTEMPTS)";
+ fail_timeout = 2000;
+ fail_transition = 300;
+ position = "0, -20";
+ halign = "center";
+ valign = "center";
+ };
+ label =
+ [
+ {
+ text = "$USER";
+ font_family = "Fira Code";
+ font_size = 56;
+ position = "0, 100";
+ halign = "center";
+ valign = "center";
+ }
+ {
+ text = "$TIME";
+ font_family = "Roboto";
+ font_size = 72;
+ position = "-40, -40";
+ halign = "right";
+ valign = "top";
+ }
+ {
+ text = "$LAYOUT";
+ font_family = "JetBrains Mono";
+ font_size = 28;
+ position = "-20, 20";
+ halign = "right";
+ valign = "bottom";
+ }
+ ]
+ ++ lib.optional (battery.enable) {
+ text = ''cmd[update:10000] ${battery-level}'';
+ font_family = "JetBrains Mono";
+ font_size = 28;
+ position = "20, 20";
+ halign = "left";
+ valign = "bottom";
+ };
+ };
+ };
+}
diff --git a/homes/x86_64-linux/kylekrein/niri/niri.nix b/homes/x86_64-linux/kylekrein/niri/niri.nix
new file mode 100644
index 0000000..fdd2b40
--- /dev/null
+++ b/homes/x86_64-linux/kylekrein/niri/niri.nix
@@ -0,0 +1,358 @@
+#https://github.com/sodiboo/niri-flake/blob/main/default-config.kdl.nix
+#https://github.com/sodiboo/niri-flake/blob/main/docs.md
+#https://github.com/sodiboo/system/blob/main/niri.mod.nix
+{
+ osConfig,
+ config,
+ pkgs,
+ lib,
+ ...
+}: let
+ username = config.snowfallorg.user.name;
+ home = config.snowfallorg.user.home.directory;
+in
+ lib.mkIf osConfig.custom.windowManagers.niri.enable {
+ programs.fuzzel = {
+ enable = true;
+ settings.main.terminal = "kitty";
+ };
+ services.swaync = {
+ enable = true;
+ };
+ home.packages = with pkgs; [
+ nwg-drawer
+ wlogout
+ brightnessctl
+ fuzzel
+ waybar
+ swaybg
+ libnotify
+ hyprlock
+ networkmanagerapplet
+ custom.wvkbd-kylekrein
+ custom.lisgd-kylekrein
+ ];
+ programs.niri = {
+ settings = {
+ spawn-at-startup = [
+ {
+ command = [
+ "${lib.getExe pkgs.custom.wvkbd-kylekrein}"
+ "--hidden"
+ ];
+ }
+ {
+ command = [
+ "${lib.getExe pkgs.networkmanagerapplet}"
+ ];
+ }
+ {
+ command = [
+ "${lib.getExe pkgs.networkmanagerapplet}"
+ ];
+ }
+ {
+ command = [
+ "dbus-update-activation-environment"
+ "--systemd"
+ "--all"
+ ];
+ }
+ {
+ command = [
+ "${pkgs.solaar}/bin/solaar"
+ "-w"
+ "hide"
+ ];
+ }
+ {
+ command = [
+ "${lib.getExe pkgs.swaybg}"
+ "-m"
+ "fill"
+ "-i"
+ "${./wallpaper.jpg}"
+ ];
+ }
+ ];
+ layout = {
+ preset-column-widths = [
+ {proportion = 1.0 / 2.0;}
+ {proportion = 1.0;}
+ {proportion = 2.0 / 3.0;}
+ {proportion = 1.0 / 3.0;}
+ ];
+ default-column-width = {proportion = 1.0 / 2.0;};
+ };
+ binds = with config.lib.niri.actions; let
+ sh = spawn "sh" "-c";
+ emacs = action: sh "emacsclient -c --eval \"${action}\"";
+ homedir = "/home/${username}/";
+ screenshot-annotate = sh ''${lib.getExe pkgs.grim} -g "$(${lib.getExe pkgs.slurp} -w 0)" -t ppm - | ${lib.getExe pkgs.satty} --early-exit --copy-command 'wl-copy' --filename '-' --initial-tool brush'';
+ in {
+ "Mod+E".action = sh "emacsclient -c";
+ "Mod+Shift+C".action = sh "dolphin";
+ "Mod+C".action = emacs ''(dirvish \"${homedir}\")'';
+ "Mod+T".action = spawn "kitty";
+ "Mod+D".action = spawn "fuzzel";
+ "Mod+B".action = spawn "librewolf";
+ "Mod+H".action = show-hotkey-overlay;
+ "Mod+F".action = fullscreen-window;
+ "Mod+R".action = switch-preset-column-width;
+ "Mod+Q".action = close-window;
+ "Mod+Shift+S".action = screenshot-annotate;
+ "Mod+1".action = focus-workspace 1;
+ "Mod+2".action = focus-workspace 2;
+ "Mod+3".action = focus-workspace 3;
+ "Mod+4".action = focus-workspace 4;
+ "Mod+5".action = focus-workspace 5;
+ "Mod+6".action = focus-workspace 6;
+ "Mod+7".action = focus-workspace 7;
+ "Mod+8".action = focus-workspace 8;
+ "Mod+9".action = focus-workspace 9;
+ "Mod+0".action = focus-workspace 10;
+
+ "Mod+Shift+1".action.move-column-to-workspace = 1;
+ "Mod+Shift+2".action.move-column-to-workspace = 2;
+ "Mod+Shift+3".action.move-column-to-workspace = 3;
+ "Mod+Shift+4".action.move-column-to-workspace = 4;
+ "Mod+Shift+5".action.move-column-to-workspace = 5;
+ "Mod+Shift+6".action.move-column-to-workspace = 6;
+ "Mod+Shift+7".action.move-column-to-workspace = 7;
+ "Mod+Shift+8".action.move-column-to-workspace = 8;
+ "Mod+Shift+9".action.move-column-to-workspace = 9;
+ "Mod+Shift+0".action.move-column-to-workspace = 10;
+
+ "Mod+Left".action = focus-column-left;
+ "Mod+Right".action = focus-column-right;
+ "Mod+Up".action = focus-workspace-up;
+ "Mod+Down".action = focus-workspace-down;
+ "Mod+Shift+Left".action = move-column-left;
+ "Mod+Shift+Right".action = move-column-right;
+ "Mod+Shift+Up".action = move-column-to-workspace-up;
+ "Mod+Shift+Down".action = move-column-to-workspace-down;
+ "Mod+Ctrl+Left".action = focus-monitor-left;
+ "Mod+Ctrl+Right".action = focus-monitor-right;
+ "Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
+ "Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
+
+ "XF86AudioRaiseVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+";
+ "XF86AudioLowerVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-";
+ "XF86AudioMute".action = sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
+
+ "XF86MonBrightnessUp".action = sh "brightnessctl set 10%+";
+ "XF86MonBrightnessDown".action = sh "brightnessctl set 10%-";
+ #"Mod+Tab".action = focus-window-down-or-column-right;
+ #"Mod+Shift+Tab".action = focus-window-up-or-column-left;
+ "Mod+Tab".action = toggle-overview;
+ };
+ input = {
+ power-key-handling.enable = true;
+ focus-follows-mouse = {
+ #enable = true;
+ };
+ warp-mouse-to-focus.enable = true;
+ keyboard = {
+ xkb.layout = "us, ru, de";
+ xkb.options = "grp:lctrl_toggle, ctrl:nocaps";
+ track-layout = "window";
+ numlock = true;
+ };
+ touchpad = {
+ tap = true;
+ #accel-profile = "adaptive";
+ click-method = "clickfinger";
+ };
+ };
+ cursor = {
+ hide-after-inactive-ms = 10000;
+ };
+ gestures.hot-corners.enable = true;
+ prefer-no-csd = true;
+ environment = {
+ XDG_SESSION_TYPE = "wayland";
+ __GL_GSYNC_ALLOWED = "1";
+ QT_QPA_PLATFORM = "wayland";
+ DISPLAY = ":0";
+ };
+ layer-rules = [
+ {
+ #this is for later to place keyboard on top of hyprlock
+ matches = [{namespace = "wvkbd";}];
+ }
+ ];
+ window-rules = [
+ {
+ #active
+ matches = [
+ {
+ is-active = true;
+ }
+ ];
+ opacity = 1.0;
+ }
+ {
+ #inactive
+ matches = [
+ {
+ is-active = false;
+ }
+ ];
+ opacity = 1.0;
+ }
+ {
+ #opaque
+ matches = [
+ {
+ app-id = "emacs";
+ }
+ {
+ app-id = "blender";
+ }
+ ];
+ opacity = 1.0;
+ }
+ {
+ #Popups
+ matches = [
+ {
+ title = "emacs-run-launcher";
+ }
+ {
+ title = "Paradox Crash Reporter";
+ }
+ ];
+ open-floating = true;
+ open-focused = true;
+ }
+ {
+ #PiP
+ matches = [
+ {
+ title = "Picture-in-Picture";
+ }
+ ];
+ open-floating = true;
+ open-focused = false;
+ opacity = 1.0;
+ default-floating-position = {
+ x = 0;
+ y = 0;
+ relative-to = "top-right";
+ };
+ }
+ ];
+ xwayland-satellite = {
+ enable = true;
+ path = "${lib.getExe pkgs.xwayland-satellite-unstable}";
+ };
+ };
+ };
+
+ services.hypridle = let
+ niri = lib.getExe config.programs.niri.package;
+ loginctl = "${pkgs.systemd}/bin/loginctl";
+ pidof = "${pkgs.procps}/bin/pidof";
+ locking-script = "${pidof} hyprlock || ${lib.getExe pkgs.hyprlock}";
+ systemctl = "${pkgs.systemd}/bin/systemctl";
+ #locking-script = "${pkgs.swaylock}/bin/swaylock --daemonize";
+ #unlocking-script = "pkill -SIGUSR1 swaylock";
+ suspendScript = cmd:
+ pkgs.writeShellScript "suspend-script" ''
+ # check if any player has status "Playing"
+ ${lib.getExe pkgs.playerctl} -a status | ${lib.getExe pkgs.ripgrep} Playing -q
+ # only suspend if nothing is playing
+ if [ $? == 1 ]; then
+ ${cmd}
+ fi
+ '';
+ in {
+ enable = true;
+ settings.general = {
+ before_sleep_cmd = "${pidof} hyprlock || ${loginctl} lock-session;#${niri} msg action power-off-monitors";
+ after_sleep_cmd = "#${niri} msg action power-on-monitors";
+ lock_cmd = "${locking-script}";
+ };
+ settings.listener = let
+ secondary = "${systemctl} suspend";
+ in
+ lib.mkIf (osConfig.custom.hardware.battery.enable) [
+ #{
+ # timeout = 30;
+ # command = "pidof hyprlock && ${secondary}";
+ #}
+ {
+ timeout = 870;
+ on-timeout = "${suspendScript ''${pkgs.libnotify}/bin/notify-send "You are idle. Going to sleep in 30 seconds"''}";
+ }
+ {
+ timeout = 900;
+ on-timeout = "${suspendScript "${systemctl} suspend"}";
+ }
+ ];
+ };
+ services = {
+ mako = {
+ enable = false;
+ settings = {
+ };
+ };
+ };
+ systemd.user.services.lisgd-niri = lib.mkIf (osConfig.custom.hardware.framework12.enable) {
+ Unit = {
+ Description = "Makes sure that you have touchscreen gestures.";
+ };
+ Install = {
+ WantedBy = ["default.target"];
+ };
+ Service = {
+ ExecStart = "${pkgs.writeShellScript "run-lisgd" ''
+ ${pkgs.custom.lisgd-kylekrein}/bin/lisgd
+ ''}";
+ Restart = "on-failure";
+ RestartSec = 5;
+ };
+ };
+ systemd.user.services.autorotate-niri = lib.mkIf (osConfig.custom.hardware.framework12.enable) {
+ Unit = {
+ Description = "Adds auto rotation to Niri.";
+ };
+ Install = {
+ WantedBy = ["default.target"];
+ };
+ Service = {
+ ExecStart = "${pkgs.writeShellScript "autorotate" ''
+ transform="normal"
+
+ monitor-sensor | while read -r line; do
+ case "$line" in
+ *normal*)
+ new_transform="normal"
+ ;;
+ *right-up*)
+ new_transform="270"
+ ;;
+ *bottom-up*)
+ new_transform="180"
+ ;;
+ *left-up*)
+ new_transform="90"
+ ;;
+ *)
+ continue
+ ;;
+ esac
+
+ if [[ "$new_transform" != "$transform" ]]; then
+ transform="$new_transform"
+ echo "Transform: $transform"
+ niri msg output eDP-1 transform "$transform"
+ systemctl --user restart lisgd-niri.service
+ fi
+ done
+ ''}";
+ Restart = "always";
+ RestartSec = 5;
+ };
+ };
+ }
diff --git a/homes/x86_64-linux/kylekrein/niri/nixos-warbler.png b/homes/x86_64-linux/kylekrein/niri/nixos-warbler.png
new file mode 100755
index 0000000..e87245c
Binary files /dev/null and b/homes/x86_64-linux/kylekrein/niri/nixos-warbler.png differ
diff --git a/homes/x86_64-linux/kylekrein/niri/wallpaper.jpg b/homes/x86_64-linux/kylekrein/niri/wallpaper.jpg
new file mode 100644
index 0000000..1475467
Binary files /dev/null and b/homes/x86_64-linux/kylekrein/niri/wallpaper.jpg differ
diff --git a/homes/x86_64-linux/kylekrein/niri/waybar.nix b/homes/x86_64-linux/kylekrein/niri/waybar.nix
new file mode 100644
index 0000000..14f2e87
--- /dev/null
+++ b/homes/x86_64-linux/kylekrein/niri/waybar.nix
@@ -0,0 +1,163 @@
+{
+ pkgs,
+ lib,
+ osConfig,
+ ...
+}: let
+ battery = osConfig.custom.hardware.battery;
+ enable = osConfig.custom.windowManagers.niri.enable;
+in {
+ programs.waybar = {
+ inherit enable;
+ systemd.enable = true;
+ style = ''
+ ${builtins.readFile ./waybarstyle.css}'';
+ settings = [
+ {
+ height = 36;
+ layer = "top";
+ position = "top";
+ tray = {spacing = 3;};
+ modules-center = [
+ "clock"
+ ];
+ modules-left = [
+ "custom/drawer"
+ "wlr/taskbar"
+ "niri/workspaces"
+ "niri/window"
+ ];
+ modules-right =
+ [
+ "backlight"
+ "pulseaudio"
+ #"network"
+ #"cpu"
+ "memory"
+ #"temperature"
+ "niri/language"
+ ]
+ ++ lib.optional battery.enable "custom/battery"
+ ++ [
+ "tray"
+ "custom/notification"
+ "custom/power"
+ ];
+ battery = lib.mkIf battery.enable {
+ format = " {time} {icon} ";
+ format-alt = " {capacity}% {icon} ";
+ format-charging = " {capacity}% ";
+ format-icons = ["" "" "" "" ""];
+ format-plugged = " {capacity}% ";
+ states = {
+ critical = 10;
+ warning = 20;
+ };
+ };
+ backlight = {
+ format = "{percent}% ";
+ on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl s 5%+";
+ on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl s 5%-";
+ };
+ "custom/battery" = {
+ exec = "${pkgs.writeShellScriptBin "battery-widget" ''
+ ${battery.scripts.labelAdaptive}
+ ${battery.scripts.labelPercent}
+ ''}/bin/battery-widget";
+ interval = 20;
+ tooltip = true;
+ };
+ clock = {
+ format = "{:%a %d | %H:%M}";
+ format-alt = "{:%d.%m.%Y}";
+ tooltip-format = "{:%d.%m.%Y | %H:%M}";
+ };
+ cpu = {
+ format = "{usage}% ";
+ tooltip = false;
+ };
+ "custom/drawer" = {
+ format = "";
+ tooltip = false;
+ on-click = ''nwg-drawer -fm "dolphin" -closebtn "right" -nocats -term "kitty" -ovl -wm "niri" -s "${./drawerstyle.css}" '';
+ };
+ "niri/language" = {
+ format = "{}";
+ format-en = "EN";
+ format-ru = "RU";
+ format-de = "DE";
+ on-click = "niri msg action switch-layout next";
+ on-click-right = "niri msg action switch-layout prev";
+ };
+ "wlr/taskbar" = {
+ format = "{icon}";
+ icon-size = 18;
+ tooltip-format = "{title}";
+ on-click = "activate";
+ on-click-middle = "close";
+ };
+ memory = {
+ interval = 1;
+ format = " {used}/{total}Gb";
+ };
+ network = {
+ interval = 1;
+ format-alt = "{ifname}: {ipaddr}/{cidr}";
+ format-disconnected = "Disconnected ⚠";
+ format-ethernet = "{ifname}: {ipaddr}/{cidr} up: {bandwidthUpBits} down: {bandwidthDownBits}";
+ format-linked = "{ifname} (No IP) ";
+ #format-wifi = "{signalStrength}% ";
+ format-wifi = "{signalStrength}% ";
+ tooltip-format = "{essid} ({signalStrength}%) ";
+ };
+ pulseaudio = {
+ format = "{icon} {volume}% {format_source}";
+ format-bluetooth = "{icon} {volume}% {format_source}";
+ format-bluetooth-muted = " {format_source}";
+ format-icons = {
+ car = "";
+ default = [" " " " " "];
+ handsfree = "";
+ headphones = "";
+ headset = "";
+ phone = "";
+ portable = "";
+ };
+ format-muted = " {format_source}";
+ format-source = " {volume}%";
+ format-source-muted = " ";
+ on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol";
+ };
+ "hyprland/submap" = {format = ''{}'';};
+ temperature = {
+ critical-threshold = 80;
+ format = "{temperatureC}°C {icon}";
+ format-icons = ["" "" ""];
+ };
+
+ "custom/power" = {
+ format = "⏻";
+ tooltip = false;
+ on-click = "wlogout";
+ };
+
+ "custom/notification" = {
+ tooltip = false;
+ format = "{icon}";
+ format-icons = {
+ notification = "";
+ none = "";
+ dnd-notification = "";
+ dnd-none = "";
+ };
+ return-type = "json";
+ exec-if = "which swaync-client";
+ exec = "swaync-client -swb";
+ on-click = "sleep 0.1 && swaync-client -t -sw";
+ on-click-right = "sleep 0.1 && swaync-client -d -sw";
+ escape = true;
+ };
+ }
+ ];
+ };
+}
diff --git a/homes/x86_64-linux/kylekrein/niri/waybarstyle.css b/homes/x86_64-linux/kylekrein/niri/waybarstyle.css
new file mode 100644
index 0000000..3b1cc5f
--- /dev/null
+++ b/homes/x86_64-linux/kylekrein/niri/waybarstyle.css
@@ -0,0 +1,104 @@
+* {
+ border: none;
+ font-family: Font Awesome, Roboto, Arial, sans-serif;
+ font-size: 16px;
+ color: #B9826A;
+ border-radius: 10px;
+}
+
+window {
+ font-weight: bold;
+}
+window#waybar {
+ background: transparent;
+}
+/*-----module groups----*/
+.modules-right {
+ background-color: rgba(0,43,51,0.85);
+ margin: 2px 10px 0 0;
+}
+.modules-center {
+ background-color: rgba(0,43,51,0.85);
+ margin: 2px 0 0 0;
+}
+.modules-left {
+ margin: 2px 0 0 5px;
+ background-color: rgba(0,43,51,0.85);
+}
+/*-----modules indv----*/
+#workspaces button {
+ padding: 1px 5px;
+ background-color: transparent;
+}
+#workspaces button:hover {
+ box-shadow: inherit;
+ background-color: rgba(0,153,153,1);
+}
+
+#workspaces button.focused {
+ background-color: rgba(0,119,179,0.6);
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#temperature,
+#network,
+#pulseaudio,
+#custom-media,
+#tray,
+#mode,
+#niri-language,
+#language,
+#custom-power,
+#custom-menu,
+#custom-battery,
+#custom-notification,
+#custom-drawer,
+#backlight,
+#workspaces,
+#window,
+#taskbar,
+#idle_inhibitor {
+ margin: 0px 0px;
+ padding: 0px 5px;
+ border-right: 1px solid rgba(255,255,255,0.2);
+ border-radius: 0px;
+}
+#clock,
+#custom-power,
+#window {
+ border-right: none;
+}
+#custom-drawer {
+ font-size: 20px;
+}
+#custom-power,
+#custom-drawer,
+#custom-notification {
+ padding: 0px 0.5em 0px 0.3em;
+}
+#mode {
+ color: #cc3436;
+ font-weight: bold;
+}
+/*-----Indicators----*/
+#idle_inhibitor.activated {
+ color: #2dcc36;
+}
+#pulseaudio.muted {
+ color: #cc3436;
+}
+#battery.charging {
+ color: #2dcc36;
+}
+#battery.warning:not(.charging) {
+ color: #e6e600;
+}
+#battery.critical:not(.charging) {
+ color: #cc3436;
+}
+#temperature.critical {
+ color: #cc3436;
+}
diff --git a/homes/x86_64-linux/tania/default.nix b/homes/x86_64-linux/tania/default.nix
new file mode 100644
index 0000000..276d8d4
--- /dev/null
+++ b/homes/x86_64-linux/tania/default.nix
@@ -0,0 +1,22 @@
+{
+ lib,
+ pkgs,
+ config,
+ ...
+}:
+# User information gathered by Snowfall Lib is available.
+let
+ name = config.snowfallorg.user.name;
+ home = config.snowfallorg.user.home.directory;
+in {
+ imports = lib.snowfall.fs.get-non-default-nix-files ./.;
+ home = {
+ packages = with pkgs; [
+ ];
+
+ sessionVariables = {
+ };
+
+ stateVersion = "25.05";
+ };
+}
diff --git a/lib/users/default.nix b/lib/users/default.nix
index c194d06..706afe2 100644
--- a/lib/users/default.nix
+++ b/lib/users/default.nix
@@ -1,51 +1,11 @@
{
lib,
namespace,
+ inputs,
...
}:
with lib; rec {
- mkHomeManagerConfigOpt = config:
- mkOption {
- # HM-compatible options taken from:
- # https://github.com/nix-community/home-manager/blob/0ee5ab611dc1fbb5180bd7d88d2aeb7841a4d179/nixos/common.nix#L14
- # NOTE: This has been adapted to support documentation generation without
- # having home-manager options fully declared.
- type = types.submoduleWith {
- specialArgs =
- {
- osConfig = config;
- modulesPath = "${inputs.home-manager or "/"}/modules";
- }
- // (config.home-manager.extraSpecialArgs or {});
- modules =
- [
- ({
- lib,
- modulesPath,
- ...
- }:
- if inputs ? home-manager
- then {
- imports = import "${modulesPath}/modules.nix" {
- inherit pkgs lib;
- useNixpkgsModule = !(config.home-manager.useGlobalPkgs or false);
- };
-
- config = {
- submoduleSupport.enable = true;
- submoduleSupport.externalPackageInstall = config.home-manager.useUserPackages;
-
- home.username = config.users.users.${name}.name;
- home.homeDirectory = config.users.users.${name}.home;
-
- nix.package = config.nix.package;
- };
- }
- else {})
- ]
- ++ (config.home-manager.sharedModules or []);
- };
- };
+ mkHomeManagerConfigOpt = config: lib.${namespace}.mkOpt' types.anything {};
mkUser = {
config,
@@ -65,7 +25,7 @@ with lib; rec {
home = {
enable = enable;
- config = homeConfig;
+ #config = homeConfig;
};
};
users.users.${username} = mkIf enable {
diff --git a/modules/home/impermanence/default.nix b/modules/home/impermanence/default.nix
new file mode 100644
index 0000000..7e13966
--- /dev/null
+++ b/modules/home/impermanence/default.nix
@@ -0,0 +1,87 @@
+{
+ lib,
+ osConfig,
+ pkgs,
+ inputs,
+ namespace,
+ system,
+ target,
+ format,
+ virtual,
+ systems,
+ config,
+ ...
+}:
+with lib;
+with lib.${namespace}; let
+ cfg = config.${namespace}.impermanence;
+ osCfg = osConfig.${namespace}.impermanence;
+ name = config.snowfallorg.user.name;
+ home = config.snowfallorg.user.home.directory;
+in {
+ options.${namespace}.impermanence = with types; {
+ enable = mkBoolOpt osCfg.enable "Enable impermanence";
+ persistentStorage = mkOpt path "${osCfg.persistentStorage}${home}" "Actual persistent storage path";
+ };
+
+ imports = with inputs; [
+ impermanence.homeManagerModules.impermanence
+ ];
+
+ config = mkIf cfg.enable {
+ home.persistence."${cfg.persistentStorage}" = {
+ directories = [
+ "Downloads"
+ "Music"
+ "Pictures"
+ "Documents"
+ "Videos"
+ "Apps"
+ "VMs"
+ "Git"
+ "nixos-config"
+ "blender"
+ ".gnupg"
+ ".password-store"
+ ".ssh"
+ ".emacs.d"
+ ".local/share/keyrings"
+ ".local/share/direnv"
+ ".local/share/chat.fluffy.fluffychat"
+ ".klei"
+ "Android"
+ {
+ directory = ".var/app";
+ method = "symlink";
+ }
+ {
+ directory = ".local/share/Steam";
+ method = "symlink";
+ }
+ ".mozilla"
+ ".librewolf"
+ ".local/share/mcpelauncher"
+ ".local/share/PrismLauncher"
+ ".local/share/TelegramDesktop"
+ ".local/share/Paradox Interactive"
+ ".config/unity3d/Ludeon Studios/RimWorld by Ludeon Studios"
+ ".config/solaar"
+ ".config/eww"
+ ".config/kdeconnect"
+ ".config/blender"
+ ".config/unity3d"
+ ".config/Element"
+ ".config/GIMP"
+ ".cache/nix-index"
+ ".local/share/aspyr-media"
+ ".themes"
+ ];
+ files = [
+ ".screenrc"
+ ".config/kdeglobals"
+ ".config/Minecraft Linux Launcher/Minecraft Linux Launcher UI.conf"
+ ];
+ allowOther = true;
+ };
+ };
+}
diff --git a/modules/home/programs/bottles/default.nix b/modules/home/programs/bottles/default.nix
new file mode 100644
index 0000000..0e0274c
--- /dev/null
+++ b/modules/home/programs/bottles/default.nix
@@ -0,0 +1,34 @@
+{
+ lib,
+ pkgs,
+ inputs,
+ namespace,
+ system,
+ target,
+ format,
+ virtual,
+ systems,
+ config,
+ ...
+}:
+with lib;
+with lib.${namespace}; let
+ cfg = config.${namespace}.programs.bottles;
+ impermanence = config.${namespace}.impermanence;
+in {
+ options.${namespace}.programs.bottles = with types; {
+ enable = mkBoolOpt false "Enable Bottles";
+ };
+
+ config = mkIf cfg.enable (mkIf impermanence.enable {
+ home.persistence."${impermanence.persistentStorage}".directories = [
+ {
+ directory = ".local/share/bottles";
+ method = "symlink";
+ }
+ ];
+ }
+ // {
+ home.packages = with pkgs; [bottles];
+ });
+}
diff --git a/modules/home/programs/default.nix b/modules/home/programs/fastfetch/default.nix
similarity index 100%
rename from modules/home/programs/default.nix
rename to modules/home/programs/fastfetch/default.nix
diff --git a/modules/nixos/programs/fastfetch/nixos.png b/modules/home/programs/fastfetch/nixos.png
similarity index 100%
rename from modules/nixos/programs/fastfetch/nixos.png
rename to modules/home/programs/fastfetch/nixos.png
diff --git a/modules/home/programs/librewolf/default.nix b/modules/home/programs/librewolf/default.nix
new file mode 100644
index 0000000..eebb90e
--- /dev/null
+++ b/modules/home/programs/librewolf/default.nix
@@ -0,0 +1,143 @@
+{
+ lib,
+ pkgs,
+ inputs,
+ namespace,
+ system,
+ target,
+ format,
+ virtual,
+ systems,
+ config,
+ ...
+}:
+with lib;
+with lib.${namespace}; let
+ cfg = config.${namespace}.programs.librewolf;
+ lock-false = {
+ Value = false;
+ Status = "locked";
+ };
+ lock-true = {
+ Value = true;
+ Status = "locked";
+ };
+in {
+ options.${namespace}.programs.librewolf = with types; {
+ enable = mkBoolOpt false "Enable librewolf with best settings";
+ };
+
+ config = mkIf cfg.enable {
+ programs = {
+ librewolf = {
+ enable = true;
+ languagePacks = ["de" "en-US" "ru"];
+
+ /*
+ ---- POLICIES ----
+ */
+ # Check about:policies#documentation for options.
+ policies = {
+ DisableTelemetry = true;
+ DisableFirefoxStudies = true;
+ EnableTrackingProtection = {
+ Value = true;
+ Locked = true;
+ Cryptomining = true;
+ Fingerprinting = true;
+ };
+ DisablePocket = true;
+ DisableFirefoxAccounts = true;
+ DisableAccounts = true;
+ DisableFirefoxScreenshots = true;
+ OverrideFirstRunPage = "";
+ OverridePostUpdatePage = "";
+ DontCheckDefaultBrowser = true;
+ DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab"
+ DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
+ SearchBar = "unified"; # alternative: "separate"
+ OfferToSaveLogins = false;
+ OffertosaveloginsDefault = false;
+ PasswordManagerEnabled = false;
+ NoDefaultBookmarks = true;
+
+ /*
+ ---- EXTENSIONS ----
+ */
+ # Check about:support for extension/add-on ID strings.
+ # Valid strings for installation_mode are "allowed", "blocked",
+ # "force_installed" and "normal_installed".
+ #https://mozilla.github.io/policy-templates/#extensionsettings
+ ExtensionSettings = {
+ "*".installation_mode = "allowed"; # blocks all addons except the ones specified below
+ # uBlock Origin
+ "uBlock0@raymondhill.net" = {
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
+ installation_mode = "force_installed";
+ };
+ # Privacy Badger:
+ "jid1-MnnxcxisBPnSXQ@jetpack" = {
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
+ installation_mode = "force_installed";
+ };
+
+ # Dark Reader
+ "addon@darkreader.org" = {
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi";
+ installation_mode = "force_installed";
+ };
+ #auto tab discard
+ "{c2c003ee-bd69-42a2-b0e9-6f34222cb046}" = {
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/auto-tab-discard/latest.xpi";
+ installation_mode = "force_installed";
+ };
+ # global speed
+ "{f4961478-ac79-4a18-87e9-d2fb8c0442c4}" = {
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/global-speed/latest.xpi";
+ installation_mode = "force_installed";
+ };
+ # sponsorblock
+ "sponsorBlocker@ajay.app" = {
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi";
+ installation_mode = "force_installed";
+ };
+
+ # Adguard adblocker
+ "adguardadblocker@adguard.com" = {
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/adguard-adblocker/latest.xpi";
+ installation_mode = "force_installed";
+ };
+ };
+ /*
+ ---- PREFERENCES ----
+ */
+ # Check about:config for options.
+ Preferences = {
+ "browser.contentblocking.category" = {
+ Value = "strict";
+ Status = "locked";
+ };
+ "extensions.pocket.enabled" = lock-false;
+ "extensions.screenshots.disabled" = lock-true;
+ "browser.startup.page" = 3; # restore session on startup
+ "browser.topsites.contile.enabled" = lock-false;
+ "browser.formfill.enable" = lock-false;
+ "browser.search.suggest.enabled" = lock-false;
+ "browser.search.suggest.enabled.private" = lock-false;
+ "browser.urlbar.suggest.searches" = lock-false;
+ "browser.urlbar.showSearchSuggestionsFirst" = lock-false;
+ "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
+ "browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
+ "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
+ "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
+ "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
+ "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
+ "browser.newtabpage.activity-stream.showSponsored" = lock-false;
+ "browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
+ "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/modules/home/programs/prismlauncher/default.nix b/modules/home/programs/prismlauncher/default.nix
new file mode 100644
index 0000000..02a3393
--- /dev/null
+++ b/modules/home/programs/prismlauncher/default.nix
@@ -0,0 +1,34 @@
+{
+ lib,
+ pkgs,
+ inputs,
+ namespace,
+ system,
+ target,
+ format,
+ virtual,
+ systems,
+ config,
+ ...
+}:
+with lib;
+with lib.${namespace}; let
+ cfg = config.${namespace}.programs.prismlauncher;
+ impermanence = config.${namespace}.impermanence;
+in {
+ options.${namespace}.programs.prismlauncher = with types; {
+ enable = mkBoolOpt false "Enable prismlauncher";
+ };
+
+ config = mkIf cfg.enable (mkIf impermanence.enable {
+ home.persistence."${impermanence.persistentStorage}".directories = [
+ {
+ directory = ".local/share/Prismlauncher";
+ method = "symlink";
+ }
+ ];
+ }
+ // {
+ home.packages = with pkgs; [prismlauncher];
+ });
+}
diff --git a/modules/nixos/hardware/battery/batteryStatus.nix b/modules/nixos/hardware/battery/batteryStatus.nix
new file mode 100644
index 0000000..05a5678
--- /dev/null
+++ b/modules/nixos/hardware/battery/batteryStatus.nix
@@ -0,0 +1,88 @@
+{
+ config,
+ namespace,
+ pkgs,
+ ...
+}: let
+ cfg = config.${namespace}.hardware.battery;
+ battery-path = "/sys/class/power_supply/${cfg.batteryName}";
+ get-battery-level = "${pkgs.writeShellScriptBin "get-battery-level" ''
+ cat ${battery-path}/capacity 2>/dev/null || echo "N/A"
+ ''}/bin/get-battery-level";
+ get-status = "${pkgs.writeShellScriptBin "get-status" ''
+ cat ${battery-path}/status 2>/dev/null || echo "Unknown"
+ ''}/bin/get-status";
+ get-icon = "${pkgs.writeShellScriptBin "get-icon" ''
+ BATTERY_LEVEL=$(${get-battery-level})
+ STATUS=$(${get-status})
+ if [[ "$BATTERY_LEVEL" == "N/A" ]]; then
+ ICON=" "
+ elif [[ "$STATUS" == "Charging" ]]; then
+ if [[ $BATTERY_LEVEL -ge 90 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 80 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 70 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 60 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 50 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 40 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 30 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 20 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 10 ]]; then
+ ICON=" "
+ else
+ ICON=" "
+ fi
+ else
+ if [[ $BATTERY_LEVEL -ge 90 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 70 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 50 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 30 ]]; then
+ ICON=" "
+ elif [[ $BATTERY_LEVEL -ge 10 ]]; then
+ ICON=" "
+ else
+ ICON=" "
+ fi
+ fi
+
+ echo "$ICON"
+ ''}/bin/get-icon";
+ get-remaining-time = "${pkgs.writeShellScriptBin "get-remaining-time" ''
+ REMAINING_ENERGY=$(cat ${battery-path}/${cfg.remainingEnergy})
+ POWER_USAGE=$(cat ${battery-path}/${cfg.powerUsage})
+ if [[ -n "$REMAINING_ENERGY" && -n "$POWER_USAGE" && "$POWER_USAGE" -ne 0 ]]; then
+ TIME_LEFT=$(((REMAINING_ENERGY / POWER_USAGE)))
+ MINUTES_LEFT=$(((( (REMAINING_ENERGY * 60) / POWER_USAGE )) - (TIME_LEFT * 60)))
+ echo "$TIME_LEFT h $MINUTES_LEFT min"
+ else
+ echo ""
+ fi
+ ''}/bin/get-remaining-time";
+in {
+ ${namespace}.hardware.battery.scripts = {
+ icon = get-icon;
+ status = get-status;
+ time = get-remaining-time;
+ level = get-battery-level;
+ labelAdaptive = "${pkgs.writeShellScriptBin "labelAdaptive" ''
+ if [[ "$(${get-status})" == "Charging" ]]; then
+ echo "$(${get-battery-level})% $(${get-icon})"
+ else
+ echo "$(${get-remaining-time}) $(${get-icon})"
+ fi
+ ''}/bin/labelAdaptive";
+ labelPercent = "${pkgs.writeShellScriptBin "labelPercent" ''
+ echo "$(${get-battery-level})% $(${get-icon})"
+ ''}/bin/labelPercent";
+ };
+}
diff --git a/modules/nixos/hardware/battery/default.nix b/modules/nixos/hardware/battery/default.nix
new file mode 100644
index 0000000..733503d
--- /dev/null
+++ b/modules/nixos/hardware/battery/default.nix
@@ -0,0 +1,38 @@
+{
+ lib,
+ pkgs,
+ namespace,
+ config,
+ ...
+}:
+with lib;
+with lib.${namespace}; let
+ cfg = config.${namespace}.hardware.battery;
+in {
+ options.${namespace}.hardware.battery = with types; {
+ enable = mkBoolOpt false "If you have a battery in your hardware, enable this";
+ batteryName = mkOpt str "BAT1" ''
+ Put your battery name here. You can find it at "/sys/class/power_supply/"
+ '';
+ remainingEnergy = mkOpt str "charge_now" ''
+ File in your battery, that tells the current amount of energy
+ '';
+ powerUsage = mkOpt str "current_now" ''
+ File in your battery, that tells, how much energy your hardware is using
+ '';
+ scripts = {
+ icon = mkOpt' str "";
+ status = mkOpt' str "";
+ time = mkOpt' str "";
+ level = mkOpt' str "";
+ labelAdaptive = mkOpt' str "";
+ labelPercent = mkOpt' str "";
+ };
+ };
+
+ config = mkIf cfg.enable (import ./batteryStatus.nix {
+ inherit config;
+ inherit namespace;
+ inherit pkgs;
+ });
+}
diff --git a/modules/nixos/presets/workstation/default.nix b/modules/nixos/presets/workstation/default.nix
index 6c61745..13660cb 100644
--- a/modules/nixos/presets/workstation/default.nix
+++ b/modules/nixos/presets/workstation/default.nix
@@ -47,7 +47,6 @@ in {
with pkgs.${namespace}; [
libreoffice
root-files
- pass
gparted
qdirstat
exfatprogs
@@ -65,14 +64,6 @@ in {
#kde
kdePackages.gwenview
kdePackages.ark
-
- # user packages
- obs-studio
- neovim
- localsend
-
- gdb
- element-desktop
];
programs.kdeconnect.enable = true;
programs.kdeconnect.package = lib.mkDefault pkgs.kdePackages.kdeconnect-kde;
diff --git a/modules/nixos/users/tania/default.nix b/modules/nixos/users/tania/default.nix
new file mode 100644
index 0000000..f1faa0a
--- /dev/null
+++ b/modules/nixos/users/tania/default.nix
@@ -0,0 +1,37 @@
+{
+ lib,
+ pkgs,
+ inputs,
+ namespace,
+ system,
+ target,
+ format,
+ virtual,
+ systems,
+ config,
+ ...
+}:
+with lib;
+with lib.${namespace}; let
+ username = "tania";
+ admin = false;
+ extraGroups = ["networkmanager" "touchscreen"];
+ trustedSshKeys = [];
+
+ cfg = config.${namespace}.users.${username};
+in {
+ options.${namespace}.users.${username} = with types; {
+ enable = mkBoolOpt false "Enable ${username} user";
+ config = mkHomeManagerConfigOpt config;
+ };
+
+ config = mkUser {
+ inherit config;
+ inherit (cfg) enable;
+ homeConfig = cfg.config;
+ inherit username;
+ inherit admin;
+ inherit extraGroups;
+ inherit trustedSshKeys;
+ };
+}
diff --git a/modules/nixos/windowManagers/niri/default.nix b/modules/nixos/windowManagers/niri/default.nix
index 687bb4e..3542c90 100644
--- a/modules/nixos/windowManagers/niri/default.nix
+++ b/modules/nixos/windowManagers/niri/default.nix
@@ -20,7 +20,10 @@ in {
};
config = mkIf cfg.enable {
- ${namespace}.loginManagers.sddm.enable = mkDefault true;
+ ${namespace} = {
+ loginManagers.sddm.enable = mkDefault true;
+ programs.dolphin.enable = mkDefault true;
+ };
security.pam.services.hyprlock = {};
programs.niri = {
enable = true;
diff --git a/nixos/homes/kylekrein/git.nix b/nixos/homes/kylekrein/git.nix
index a77869b..f4805f0 100644
--- a/nixos/homes/kylekrein/git.nix
+++ b/nixos/homes/kylekrein/git.nix
@@ -4,7 +4,7 @@
userName = "Aleksandr Lebedev";
userEmail = "alex.lebedev2003@icloud.com";
extraConfig = {
- credential.helper = "manager"; #"${pkgs.git.override { withLibsecret = true; }}/bin/git-credential-libsecret";
+ credential.helper = "manager";
credential."https://github.com".username = "KyleKrein";
credential.credentialStore = "plaintext";
};
diff --git a/overlays/nix-schemas/default.nix b/overlays/nix-schemas/default.nix
new file mode 100644
index 0000000..e531390
--- /dev/null
+++ b/overlays/nix-schemas/default.nix
@@ -0,0 +1,19 @@
+{
+ # Channels are named after NixPkgs instances in your flake inputs. For example,
+ # with the input `nixpkgs` there will be a channel available at `channels.nixpkgs`.
+ # These channels are system-specific instances of NixPkgs that can be used to quickly
+ # pull packages into your overlay.
+ channels,
+ inputs,
+ ...
+}: final: prev: {
+ nix-schemas = inputs.nix-schemas.packages.${prev.system}.nix.overrideAttrs (old: {
+ doCheck = false;
+ doInstallCheck = false;
+ postInstall =
+ old.postInstall or ""
+ + ''
+ mv $out/bin/nix $out/bin/nix-schemas
+ '';
+ });
+}
diff --git a/packages/lisgd-kylekrein/default.nix b/packages/lisgd-kylekrein/default.nix
new file mode 100644
index 0000000..423933a
--- /dev/null
+++ b/packages/lisgd-kylekrein/default.nix
@@ -0,0 +1,6 @@
+{lisgd}:
+(lisgd.overrideAttrs
+ (final: prev: {
+ pname = "lisgd-kylekrein";
+ name = "lisgd-kylekrein";
+ })).override {conf = ./lisgd-config.h;}
diff --git a/packages/lisgd-kylekrein/lisgd-config.h b/packages/lisgd-kylekrein/lisgd-config.h
new file mode 100644
index 0000000..40b1a47
--- /dev/null
+++ b/packages/lisgd-kylekrein/lisgd-config.h
@@ -0,0 +1,56 @@
+/*
+ distancethreshold: Minimum cutoff for a gestures to take effect
+ degreesleniency: Offset degrees within which gesture is recognized (max=45)
+ timeoutms: Maximum duration for a gesture to take place in miliseconds
+ orientation: Number of 90 degree turns to shift gestures by
+ verbose: 1=enabled, 0=disabled; helpful for debugging
+ device: Path to the /dev/ filesystem device events should be read from
+ gestures: Array of gestures; binds num of fingers / gesturetypes to commands
+ Supported gestures: SwipeLR, SwipeRL, SwipeDU, SwipeUD,
+ SwipeDLUR, SwipeURDL, SwipeDRUL, SwipeULDR
+*/
+
+unsigned int distancethreshold = 125;
+unsigned int distancethreshold_pressed = 60;
+unsigned int degreesleniency = 15;
+unsigned int timeoutms = 800;
+unsigned int orientation = 0;
+unsigned int verbose = 1;
+double edgesizeleft = 50.0;
+double edgesizetop = 50.0;
+double edgesizeright = 50.0;
+double edgesizebottom = 50.0;
+double edgessizecaling = 1.0;
+char *device = "/dev/touchscreen";
+
+// Gestures can also be specified interactively from the command line using -g
+Gesture gestures[] = {
+ {1, SwipeRL, EdgeRight, DistanceAny, ActModeReleased,
+ "niri msg action focus-column-right"},
+ {1, SwipeLR, EdgeLeft, DistanceAny, ActModeReleased,
+ "niri msg action focus-column-left"},
+ {1, SwipeDU, CornerBottomRight, DistanceMedium, ActModeReleased,
+ "niri msg action focus-workspace-down"},
+ {1, SwipeUD, CornerTopRight, DistanceMedium, ActModeReleased,
+ "niri msg action focus-workspace-up"},
+ {1, SwipeDU, CornerBottomLeft, DistanceShort, ActModeReleased,
+ "niri msg action switch-preset-column-width"},
+ //{1, SwipeUD, EdgeTop, DistanceAny, ActModeReleased, "nwggrid -o 0.98"},
+ //"pkill -SIGRTMIN -f wvkbd"},
+ //{2, SwipeUD, EdgeAny, DistanceAny, ActModeReleased,
+ //"sway-interactive-screenshot -s focused-output"},
+ //{3, SwipeLR, EdgeAny, DistanceAny, ActModeReleased,
+ //"swaymsg layout tabbed"},
+ //{3, SwipeRL, EdgeAny, DistanceAny, ActModeReleased,
+ //"swaymsg layout toggle split"},
+ {2, SwipeUD, EdgeLeft, DistanceShort, ActModePressed,
+ "niri msg action fullscreen-window"},
+ {2, SwipeUD, EdgeRight, DistanceMedium, ActModeReleased,
+ "niri msg action close-window"},
+ {2, SwipeDU, EdgeBottom, DistanceAny, ActModeReleased,
+ "pkill -34 -f wvkbd"},
+ //{2, SwipeUD, EdgeBottom, DistanceAny, ActModeReleased,
+ //"pkill -9 -f wvkbd-mobintl"},
+ {3, SwipeDU, EdgeAny, DistanceAny, ActModeReleased,
+ "niri msg action toggle-overview"},
+};
diff --git a/packages/wvkbd-kylekrein/default.nix b/packages/wvkbd-kylekrein/default.nix
new file mode 100644
index 0000000..d63f1ef
--- /dev/null
+++ b/packages/wvkbd-kylekrein/default.nix
@@ -0,0 +1,21 @@
+{
+ wvkbd,
+ fetchFromGitHub,
+ lib,
+}: let
+ smithay-patch = ./wvkbd-smithay.patch; #https://github.com/jjsullivan5196/wvkbd/issues/70
+in
+ wvkbd.overrideAttrs (final: prev: {
+ pname = "wvkbd-kylekrein";
+ name = "wvkbd-kylekrein";
+ version = "0.17";
+ src = fetchFromGitHub {
+ owner = "Paulicat";
+ repo = "wvkbd";
+ rev = "ac02545ab6f6ccfa5b6f132414021ba57ea73096";
+ hash = "sha256-py/IqNEEaTOx/9W935Vc47WoNFz99+bNaYD0sL//JmY=";
+ };
+ installFlags = prev.installFlags ++ ["LAYOUT=vistath"];
+ patches = prev.patches or [] ++ [smithay-patch];
+ meta.mainProgram = "wvkbd";
+ })
diff --git a/packages/wvkbd-kylekrein/wvkbd-smithay.patch b/packages/wvkbd-kylekrein/wvkbd-smithay.patch
new file mode 100644
index 0000000..aa00213
--- /dev/null
+++ b/packages/wvkbd-kylekrein/wvkbd-smithay.patch
@@ -0,0 +1,27 @@
+From 764c39633aa4bb8b94463dd19961bb4e9c78be26 Mon Sep 17 00:00:00 2001
+From: Maarten van Gompel
+Date: Sun, 31 Mar 2024 13:57:24 +0200
+Subject: [PATCH] debug: include trailing \0 byte in call to
+ zwp_virtual_keyboard_v1.keymap()
+
+Ref: https://github.com/jjsullivan5196/wvkbd/issues/70
+---
+ keyboard.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/keyboard.c b/keyboard.c
+index afe0639..cd9a11e 100644
+--- a/keyboard.c
++++ b/keyboard.c
+@@ -678,7 +678,7 @@ create_and_upload_keymap(struct kbd *kb, const char *name, uint32_t comp_unichr,
+ size_t keymap_size = strlen(keymap_template) + 64;
+ char *keymap_str = malloc(keymap_size);
+ sprintf(keymap_str, keymap_template, comp_unichr, comp_shift_unichr);
+- keymap_size = strlen(keymap_str);
++ keymap_size = strlen(keymap_str) + 1;
+ int keymap_fd = os_create_anonymous_file(keymap_size);
+ if (keymap_fd < 0) {
+ die("could not create keymap fd\n");
+--
+2.49.0
+
diff --git a/systems/x86_64-linux/kylekrein-homepc/default.nix b/systems/x86_64-linux/kylekrein-homepc/default.nix
index b5749b4..479479b 100644
--- a/systems/x86_64-linux/kylekrein-homepc/default.nix
+++ b/systems/x86_64-linux/kylekrein-homepc/default.nix
@@ -13,6 +13,10 @@
}:
with lib;
with lib.${namespace}; {
+ facter.reportPath = ./facter.json;
+ systemd.network.wait-online.enable = lib.mkForce false; #facter
+
+ custom.hardware.nvidia = enabled;
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_cachyos;
services.scx.enable = true; # by default uses scx_rustland scheduler
custom.impermanence = enabled;
@@ -31,11 +35,29 @@ with lib.${namespace}; {
};
custom.users = {
- kylekrein = enabled;
+ tania = enabled;
+ kylekrein = {
+ enable = true;
+ };
};
+ snowfallorg.users.kylekrein.home.config = {
+ programs.niri.settings.outputs = {
+ "DP-1" = {
+ scale = 1.6;
+ position.x = 1600;
+ position.y = 0;
+ };
+ "DP-3" = {
+ scale = 1.6;
+ position.x = 0;
+ position.y = 0;
+ };
+ };
+ };
environment.systemPackages = with pkgs; [
blender
+ nix-schemas
];
services.zerotierone = {
diff --git a/systems/x86_64-linux/kylekrein-homepc/facter.json b/systems/x86_64-linux/kylekrein-homepc/facter.json
index 0a68ae5..ee61326 100644
--- a/systems/x86_64-linux/kylekrein-homepc/facter.json
+++ b/systems/x86_64-linux/kylekrein-homepc/facter.json
@@ -21,176 +21,6 @@
"low_memory_size": 0,
"smbios_version": 771
},
- "bluetooth": [
- {
- "index": 69,
- "attached_to": 75,
- "class_list": [
- "usb",
- "bluetooth"
- ],
- "bus_type": {
- "hex": "0086",
- "name": "USB",
- "value": 134
- },
- "slot": {
- "bus": 0,
- "number": 0
- },
- "base_class": {
- "hex": "0115",
- "name": "Bluetooth Device",
- "value": 277
- },
- "vendor": {
- "hex": "8087",
- "value": 32903
- },
- "device": {
- "hex": "0029",
- "value": 41
- },
- "revision": {
- "hex": "0000",
- "name": "0.01",
- "value": 0
- },
- "model": "Bluetooth Device",
- "sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-6/1-6.2/1-6.2:1.0",
- "sysfs_bus_id": "1-6.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:v8087p0029d0001dcE0dsc01dp01icE0isc01ip01in00"
- },
- {
- "index": 81,
- "attached_to": 75,
- "class_list": [
- "usb",
- "bluetooth"
- ],
- "bus_type": {
- "hex": "0086",
- "name": "USB",
- "value": 134
- },
- "slot": {
- "bus": 0,
- "number": 0
- },
- "base_class": {
- "hex": "0115",
- "name": "Bluetooth Device",
- "value": 277
- },
- "vendor": {
- "hex": "8087",
- "value": 32903
- },
- "device": {
- "hex": "0029",
- "value": 41
- },
- "revision": {
- "hex": "0000",
- "name": "0.01",
- "value": 0
- },
- "model": "Bluetooth Device",
- "sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-6/1-6.2/1-6.2:1.1",
- "sysfs_bus_id": "1-6.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:v8087p0029d0001dcE0dsc01dp01icE0isc01ip01in01"
- }
- ],
"bridge": [
{
"index": 20,
@@ -243,27 +73,22 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:00.0",
"sysfs_bus_id": "0000:03:00.0",
- "sysfs_iommu_group_id": 15,
- "resources": [
- {
- "type": "irq",
- "base": 36,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 16,
"detail": {
"function": 0,
"command": 1031,
"header_type": 1,
"secondary_bus": 4,
- "irq": 36,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d000043EAsv00001B21sd00003308bc06sc04i00"
},
{
@@ -318,27 +143,22 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:03.1",
"sysfs_bus_id": "0000:00:03.1",
- "sysfs_iommu_group_id": 5,
- "resources": [
- {
- "type": "irq",
- "base": 30,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 6,
"detail": {
"function": 1,
"command": 1031,
"header_type": 1,
"secondary_bus": 10,
- "irq": 30,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d00001483sv00001022sd00001453bc06sc04i00"
},
{
@@ -379,13 +199,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:08.0",
"sysfs_bus_id": "0000:00:08.0",
- "sysfs_iommu_group_id": 10,
+ "sysfs_iommu_group_id": 11,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001482sv00000000sd00000000bc06sc00i00"
@@ -428,13 +247,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:18.3",
"sysfs_bus_id": "0000:00:18.3",
- "sysfs_iommu_group_id": 13,
+ "sysfs_iommu_group_id": 14,
"detail": {
"function": 3,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"driver": "k10temp",
@@ -498,27 +316,22 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2",
"sysfs_bus_id": "0000:02:00.2",
- "sysfs_iommu_group_id": 15,
- "resources": [
- {
- "type": "irq",
- "base": 34,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 16,
"detail": {
"function": 2,
"command": 7,
"header_type": 1,
"secondary_bus": 3,
- "irq": 34,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d000043E9sv00001B21sd00000201bc06sc04i00"
},
{
@@ -573,27 +386,22 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2",
"sysfs_bus_id": "0000:00:01.2",
- "sysfs_iommu_group_id": 2,
- "resources": [
- {
- "type": "irq",
- "base": 29,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 3,
"detail": {
"function": 2,
"command": 1031,
"header_type": 1,
"secondary_bus": 2,
- "irq": 29,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d00001483sv00001022sd00001453bc06sc04i00"
},
{
@@ -647,27 +455,22 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:03.0",
"sysfs_bus_id": "0000:03:03.0",
- "sysfs_iommu_group_id": 15,
- "resources": [
- {
- "type": "irq",
- "base": 39,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 16,
"detail": {
"function": 0,
"command": 1031,
"header_type": 1,
"secondary_bus": 6,
- "irq": 39,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d000043EAsv00001B21sd00003308bc06sc04i00"
},
{
@@ -708,13 +511,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:18.1",
"sysfs_bus_id": "0000:00:18.1",
- "sysfs_iommu_group_id": 13,
+ "sysfs_iommu_group_id": 14,
"detail": {
"function": 1,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001441sv00000000sd00000000bc06sc00i00"
@@ -757,13 +559,12 @@
"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,
+ "sysfs_iommu_group_id": 1,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001482sv00000000sd00000000bc06sc00i00"
@@ -806,13 +607,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:04.0",
"sysfs_bus_id": "0000:00:04.0",
- "sysfs_iommu_group_id": 6,
+ "sysfs_iommu_group_id": 7,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001482sv00000000sd00000000bc06sc00i00"
@@ -868,27 +668,22 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:09.0",
"sysfs_bus_id": "0000:03:09.0",
- "sysfs_iommu_group_id": 15,
- "resources": [
- {
- "type": "irq",
- "base": 43,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 16,
"detail": {
"function": 0,
"command": 1031,
"header_type": 1,
"secondary_bus": 9,
- "irq": 43,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d000043EAsv00001B21sd00003308bc06sc04i00"
},
{
@@ -941,13 +736,12 @@
"model": "AMD ISA bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:14.3",
"sysfs_bus_id": "0000:00:14.3",
- "sysfs_iommu_group_id": 12,
+ "sysfs_iommu_group_id": 13,
"detail": {
"function": 3,
"command": 15,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d0000790Esv00001458sd00005001bc06sc01i00"
@@ -990,13 +784,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:07.0",
"sysfs_bus_id": "0000:00:07.0",
- "sysfs_iommu_group_id": 8,
+ "sysfs_iommu_group_id": 9,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001482sv00000000sd00000000bc06sc00i00"
@@ -1052,27 +845,22 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:02.0",
"sysfs_bus_id": "0000:03:02.0",
- "sysfs_iommu_group_id": 15,
- "resources": [
- {
- "type": "irq",
- "base": 37,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 16,
"detail": {
"function": 0,
"command": 1031,
"header_type": 1,
"secondary_bus": 5,
- "irq": 37,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d000043EAsv00001B21sd00003308bc06sc04i00"
},
{
@@ -1113,13 +901,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:18.6",
"sysfs_bus_id": "0000:00:18.6",
- "sysfs_iommu_group_id": 13,
+ "sysfs_iommu_group_id": 14,
"detail": {
"function": 6,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001446sv00000000sd00000000bc06sc00i00"
@@ -1171,12 +958,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:00.0",
"sysfs_bus_id": "0000:00:00.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:v00001022d00001480sv00001022sd00001480bc06sc00i00"
@@ -1233,27 +1020,22 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:08.1",
"sysfs_bus_id": "0000:00:08.1",
- "sysfs_iommu_group_id": 11,
- "resources": [
- {
- "type": "irq",
- "base": 33,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 12,
"detail": {
"function": 1,
"command": 1031,
"header_type": 1,
"secondary_bus": 12,
- "irq": 33,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d00001484sv00001022sd00001484bc06sc04i00"
},
{
@@ -1294,13 +1076,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:18.4",
"sysfs_bus_id": "0000:00:18.4",
- "sysfs_iommu_group_id": 13,
+ "sysfs_iommu_group_id": 14,
"detail": {
"function": 4,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001444sv00000000sd00000000bc06sc00i00"
@@ -1343,13 +1124,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:03.0",
"sysfs_bus_id": "0000:00:03.0",
- "sysfs_iommu_group_id": 4,
+ "sysfs_iommu_group_id": 5,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001482sv00000000sd00000000bc06sc00i00"
@@ -1405,27 +1185,22 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:08.0",
"sysfs_bus_id": "0000:03:08.0",
- "sysfs_iommu_group_id": 15,
- "resources": [
- {
- "type": "irq",
- "base": 41,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 16,
"detail": {
"function": 0,
"command": 1031,
"header_type": 1,
"secondary_bus": 8,
- "irq": 41,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d000043EAsv00001B21sd00003308bc06sc04i00"
},
{
@@ -1466,13 +1241,12 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:18.2",
"sysfs_bus_id": "0000:00:18.2",
- "sysfs_iommu_group_id": 13,
+ "sysfs_iommu_group_id": 14,
"detail": {
"function": 2,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001442sv00000000sd00000000bc06sc00i00"
@@ -1529,31 +1303,26 @@
"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
- }
- ],
+ "sysfs_iommu_group_id": 2,
"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:v00001022d00001483sv00001022sd00001453bc06sc04i00"
},
{
- "index": 53,
+ "index": 52,
"attached_to": 0,
"class_list": [
"pci",
@@ -1590,19 +1359,18 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:18.0",
"sysfs_bus_id": "0000:00:18.0",
- "sysfs_iommu_group_id": 13,
+ "sysfs_iommu_group_id": 14,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001440sv00000000sd00000000bc06sc00i00"
},
{
- "index": 55,
+ "index": 54,
"attached_to": 25,
"class_list": [
"pci",
@@ -1652,31 +1420,26 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:04.0",
"sysfs_bus_id": "0000:03:04.0",
- "sysfs_iommu_group_id": 15,
- "resources": [
- {
- "type": "irq",
- "base": 40,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 16,
"detail": {
"function": 0,
"command": 1031,
"header_type": 1,
"secondary_bus": 7,
- "irq": 40,
"prog_if": 0
},
"driver": "pcieport",
+ "driver_module": "pcieportdrv",
"drivers": [
"pcieport"
],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
"module_alias": "pci:v00001022d000043EAsv00001B21sd00003308bc06sc04i00"
},
{
- "index": 56,
+ "index": 55,
"attached_to": 0,
"class_list": [
"pci",
@@ -1727,31 +1490,26 @@
"model": "AMD PCI bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:07.1",
"sysfs_bus_id": "0000:00:07.1",
- "sysfs_iommu_group_id": 9,
- "resources": [
- {
- "type": "irq",
- "base": 32,
- "triggered": 0,
- "enabled": true
- }
- ],
+ "sysfs_iommu_group_id": 10,
"detail": {
"function": 1,
"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:v00001022d00001484sv00001022sd00001484bc06sc04i00"
},
{
- "index": 58,
+ "index": 57,
"attached_to": 0,
"class_list": [
"pci",
@@ -1788,19 +1546,18 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:02.0",
"sysfs_bus_id": "0000:00:02.0",
- "sysfs_iommu_group_id": 3,
+ "sysfs_iommu_group_id": 4,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001482sv00000000sd00000000bc06sc00i00"
},
{
- "index": 59,
+ "index": 58,
"attached_to": 0,
"class_list": [
"pci",
@@ -1837,19 +1594,18 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:18.7",
"sysfs_bus_id": "0000:00:18.7",
- "sysfs_iommu_group_id": 13,
+ "sysfs_iommu_group_id": 14,
"detail": {
"function": 7,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001447sv00000000sd00000000bc06sc00i00"
},
{
- "index": 61,
+ "index": 60,
"attached_to": 0,
"class_list": [
"pci",
@@ -1886,19 +1642,18 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:05.0",
"sysfs_bus_id": "0000:00:05.0",
- "sysfs_iommu_group_id": 7,
+ "sysfs_iommu_group_id": 8,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001482sv00000000sd00000000bc06sc00i00"
},
{
- "index": 62,
+ "index": 61,
"attached_to": 0,
"class_list": [
"pci",
@@ -1935,212 +1690,22 @@
"model": "AMD Host bridge",
"sysfs_id": "/devices/pci0000:00/0000:00:18.5",
"sysfs_bus_id": "0000:00:18.5",
- "sysfs_iommu_group_id": 13,
+ "sysfs_iommu_group_id": 14,
"detail": {
"function": 5,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001445sv00000000sd00000000bc06sc00i00"
}
],
- "camera": [
- {
- "index": 74,
- "attached_to": 87,
- "class_list": [
- "camera",
- "usb"
- ],
- "bus_type": {
- "hex": "0086",
- "name": "USB",
- "value": 134
- },
- "slot": {
- "bus": 0,
- "number": 0
- },
- "base_class": {
- "hex": "010f",
- "name": "Camera",
- "value": 271
- },
- "vendor": {
- "hex": "2104",
- "name": "Tobii AB",
- "value": 8452
- },
- "device": {
- "hex": "0313",
- "name": "EyeChip",
- "value": 787
- },
- "revision": {
- "hex": "0000",
- "name": "1.00",
- "value": 0
- },
- "serial": "IS5FF-100212740213",
- "model": "Tobii EyeChip",
- "sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-8/1-8:1.1",
- "sysfs_bus_id": "1-8:1.1",
- "resources": [
- {
- "type": "baud",
- "speed": 480000000,
- "bits": 0,
- "stop_bits": 0,
- "parity": 0,
- "handshake": 0
- }
- ],
- "detail": {
- "device_class": {
- "hex": "00ef",
- "name": "miscellaneous",
- "value": 239
- },
- "device_subclass": {
- "hex": "0002",
- "name": "comm",
- "value": 2
- },
- "device_protocol": 1,
- "interface_class": {
- "hex": "000e",
- "name": "video",
- "value": 14
- },
- "interface_subclass": {
- "hex": "0001",
- "name": "audio",
- "value": 1
- },
- "interface_protocol": 0,
- "interface_number": 1,
- "interface_alternate_setting": 0,
- "interface_association": {
- "function_class": {
- "hex": "000e",
- "name": "video",
- "value": 14
- },
- "function_subclass": {
- "hex": "0003",
- "name": "hid",
- "value": 3
- },
- "function_protocol": 0,
- "interface_count": 2,
- "first_interface": 1
- }
- },
- "hotplug": "usb",
- "module_alias": "usb:v2104p0313d0100dcEFdsc02dp01ic0Eisc01ip00in01"
- },
- {
- "index": 86,
- "attached_to": 87,
- "class_list": [
- "camera",
- "usb"
- ],
- "bus_type": {
- "hex": "0086",
- "name": "USB",
- "value": 134
- },
- "slot": {
- "bus": 0,
- "number": 0
- },
- "base_class": {
- "hex": "010f",
- "name": "Camera",
- "value": 271
- },
- "vendor": {
- "hex": "2104",
- "name": "Tobii AB",
- "value": 8452
- },
- "device": {
- "hex": "0313",
- "name": "EyeChip",
- "value": 787
- },
- "revision": {
- "hex": "0000",
- "name": "1.00",
- "value": 0
- },
- "serial": "IS5FF-100212740213",
- "model": "Tobii EyeChip",
- "sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-8/1-8:1.2",
- "sysfs_bus_id": "1-8:1.2",
- "resources": [
- {
- "type": "baud",
- "speed": 480000000,
- "bits": 0,
- "stop_bits": 0,
- "parity": 0,
- "handshake": 0
- }
- ],
- "detail": {
- "device_class": {
- "hex": "00ef",
- "name": "miscellaneous",
- "value": 239
- },
- "device_subclass": {
- "hex": "0002",
- "name": "comm",
- "value": 2
- },
- "device_protocol": 1,
- "interface_class": {
- "hex": "000e",
- "name": "video",
- "value": 14
- },
- "interface_subclass": {
- "hex": "0002",
- "name": "comm",
- "value": 2
- },
- "interface_protocol": 0,
- "interface_number": 2,
- "interface_alternate_setting": 0,
- "interface_association": {
- "function_class": {
- "hex": "000e",
- "name": "video",
- "value": 14
- },
- "function_subclass": {
- "hex": "0003",
- "name": "hid",
- "value": 3
- },
- "function_protocol": 0,
- "interface_count": 2,
- "first_interface": 1
- }
- },
- "hotplug": "usb",
- "module_alias": "usb:v2104p0313d0100dcEFdsc02dp01ic0Eisc02ip00in02"
- }
- ],
"cpu": [
{
"architecture": "x86_64",
"vendor_name": "AuthenticAMD",
+ "model_name": "AMD Ryzen 7 5800X 8-Core Processor",
"family": 25,
"model": 33,
"stepping": 0,
@@ -2292,7 +1857,9 @@
"spectre_v2",
"spec_store_bypass",
"srso",
- "ibpb_no_ret"
+ "ibpb_no_ret",
+ "spectre_v2_user",
+ "tsa"
],
"power_management": [
"ts",
@@ -2304,28 +1871,28 @@
"[13]",
"[14]"
],
- "bogo": 7586.15,
+ "bogo": 7585,
"cache": 512,
"units": 16,
"physical_id": 0,
"siblings": 16,
"cores": 8,
- "fpu": true,
- "fpu_exception": true,
+ "fpu": false,
+ "fpu_exception": false,
"cpuid_level": 16,
"write_protect": false,
"tlb_size": 2560,
"clflush_size": 64,
"cache_alignment": 64,
"address_sizes": {
- "physical": 48,
- "virtual": 48
+ "physical": "0x30",
+ "virtual": "0x30"
}
}
],
"disk": [
{
- "index": 65,
+ "index": 64,
"attached_to": 36,
"class_list": [
"disk",
@@ -2373,15 +1940,7 @@
"sysfs_id": "/class/block/nvme0n1",
"sysfs_bus_id": "nvme0",
"sysfs_device_link": "/devices/pci0000:00/0000:00:01.1/0000:01: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-diskseq/1",
"/dev/disk/by-id/nvme-WDC_WDS100T2B0C-00PXH0_21167U469302",
"/dev/disk/by-id/nvme-WDC_WDS100T2B0C-00PXH0_21167U469302_1",
"/dev/disk/by-id/nvme-eui.e8238fa6bf530001001b444a46f48e5d",
@@ -2394,7 +1953,7 @@
"cylinders": 119233,
"heads": 64,
"sectors": 32,
- "size": 0,
+ "size": "0x0",
"geo_type": "logical"
},
{
@@ -2413,6 +1972,86 @@
"nvme"
]
},
+ {
+ "index": 65,
+ "attached_to": 50,
+ "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": "WD10EZEX-35W",
+ "value": 0
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "1A01",
+ "value": 0
+ },
+ "serial": "WCC6Y7XR2XFZ",
+ "model": "WDC WD10EZEX-35W",
+ "sysfs_id": "/class/block/sdb",
+ "sysfs_bus_id": "1:0:0:0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:01.2/0000:02:00.1/ata2/host1/target1:0:0/1:0:0:0",
+ "unix_device_names": [
+ "/dev/disk/by-id/ata-WDC_WD10EZEX-35WN4A0_WCC6Y7XR2XFZ",
+ "/dev/disk/by-id/wwn-0x50014ee26492ddba",
+ "/dev/disk/by-path/pci-0000:02:00.1-ata-2",
+ "/dev/disk/by-path/pci-0000:02:00.1-ata-2.0",
+ "/dev/sdb"
+ ],
+ "resources": [
+ {
+ "type": "disk_geo",
+ "cylinders": 121601,
+ "heads": 255,
+ "sectors": 63,
+ "size": "0x0",
+ "geo_type": "logical"
+ },
+ {
+ "type": "size",
+ "unit": "sectors",
+ "value_1": 1953525168,
+ "value_2": 512
+ }
+ ],
+ "driver": "ahci",
+ "driver_module": "ahci",
+ "drivers": [
+ "ahci",
+ "sd"
+ ],
+ "driver_modules": [
+ "ahci"
+ ]
+ },
{
"index": 66,
"attached_to": 50,
@@ -2457,23 +2096,15 @@
},
"serial": "X7P97EENS",
"model": "TOSHIBA HDWD110",
- "sysfs_id": "/class/block/sdb",
+ "sysfs_id": "/class/block/sda",
"sysfs_bus_id": "0:0:0:0",
"sysfs_device_link": "/devices/pci0000:00/0000:00:01.2/0000:02:00.1/ata1/host0/target0:0:0/0:0:0:0",
- "unix_device_name": "/dev/sdb",
- "unix_device_number": {
- "type": 98,
- "major": 8,
- "minor": 16,
- "range": 16
- },
"unix_device_names": [
- "/dev/disk/by-diskseq/3",
"/dev/disk/by-id/ata-TOSHIBA_HDWD110_X7P97EENS",
"/dev/disk/by-id/wwn-0x5000039fd3d24abf",
"/dev/disk/by-path/pci-0000:02:00.1-ata-1",
"/dev/disk/by-path/pci-0000:02:00.1-ata-1.0",
- "/dev/sdb"
+ "/dev/sda"
],
"resources": [
{
@@ -2481,7 +2112,7 @@
"cylinders": 121601,
"heads": 255,
"sectors": 63,
- "size": 0,
+ "size": "0x0",
"geo_type": "logical"
},
{
@@ -2498,27 +2129,16 @@
"sd"
],
"driver_modules": [
- "ahci",
- "sd_mod"
+ "ahci"
]
},
{
"index": 67,
- "attached_to": 50,
+ "attached_to": 0,
"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",
@@ -2529,66 +2149,20 @@
"name": "Disk",
"value": 0
},
- "vendor": {
- "hex": "0000",
- "name": "WDC",
- "value": 0
- },
- "device": {
- "hex": "0000",
- "name": "WD10EZEX-35W",
- "value": 0
- },
- "revision": {
- "hex": "0000",
- "name": "1A01",
- "value": 0
- },
- "serial": "WCC6Y7XR2XFZ",
- "model": "WDC WD10EZEX-35W",
- "sysfs_id": "/class/block/sda",
- "sysfs_bus_id": "1:0:0:0",
- "sysfs_device_link": "/devices/pci0000:00/0000:00:01.2/0000:02: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
- },
+ "model": "Disk",
+ "sysfs_id": "/class/block/zram0",
"unix_device_names": [
- "/dev/disk/by-diskseq/2",
- "/dev/disk/by-id/ata-WDC_WD10EZEX-35WN4A0_WCC6Y7XR2XFZ",
- "/dev/disk/by-id/wwn-0x50014ee26492ddba",
- "/dev/disk/by-path/pci-0000:02:00.1-ata-2",
- "/dev/disk/by-path/pci-0000:02:00.1-ata-2.0",
- "/dev/sda"
+ "/dev/disk/by-label/zram0",
+ "/dev/disk/by-uuid/68632d17-edda-42aa-861f-cf9bf9b45af2",
+ "/dev/zram0"
],
"resources": [
- {
- "type": "disk_geo",
- "cylinders": 121601,
- "heads": 255,
- "sectors": 63,
- "size": 0,
- "geo_type": "logical"
- },
{
"type": "size",
"unit": "sectors",
- "value_1": 1953525168,
- "value_2": 512
+ "value_1": 4100352,
+ "value_2": 4096
}
- ],
- "driver": "ahci",
- "driver_module": "ahci",
- "drivers": [
- "ahci",
- "sd"
- ],
- "driver_modules": [
- "ahci",
- "sd_mod"
]
}
],
@@ -2648,7 +2222,7 @@
"model": "nVidia VGA compatible controller",
"sysfs_id": "/devices/pci0000:00/0000:00:03.1/0000:0a:00.0",
"sysfs_bus_id": "0000:0a:00.0",
- "sysfs_iommu_group_id": 16,
+ "sysfs_iommu_group_id": 17,
"resources": [
{
"type": "io",
@@ -2656,44 +2230,6 @@
"range": 128,
"enabled": true,
"access": "read_write"
- },
- {
- "type": "irq",
- "base": 104,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 1030792151040,
- "range": 34359738368,
- "enabled": true,
- "access": "read_only",
- "prefetch": "no"
- },
- {
- "type": "mem",
- "base": 1065151889408,
- "range": 33554432,
- "enabled": true,
- "access": "read_only",
- "prefetch": "no"
- },
- {
- "type": "mem",
- "base": 4211081216,
- "range": 16777216,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- },
- {
- "type": "mem",
- "base": 4227858432,
- "range": 524288,
- "enabled": false,
- "access": "read_only",
- "prefetch": "no"
}
],
"detail": {
@@ -2701,7 +2237,6 @@
"command": 1031,
"header_type": 0,
"secondary_bus": 0,
- "irq": 104,
"prog_if": 0
},
"driver": "nvidia",
@@ -2717,8 +2252,8 @@
],
"hub": [
{
- "index": 75,
- "attached_to": 87,
+ "index": 73,
+ "attached_to": 83,
"class_list": [
"usb",
"hub"
@@ -2792,13 +2327,17 @@
},
"hotplug": "usb",
"driver": "hub",
+ "driver_module": "usbcore",
"drivers": [
"hub"
],
+ "driver_modules": [
+ "usbcore"
+ ],
"module_alias": "usb:v05E3p0608d8536dc09dsc00dp01ic09isc00ip00in00"
},
{
- "index": 76,
+ "index": 74,
"attached_to": 39,
"class_list": [
"usb",
@@ -2820,7 +2359,7 @@
},
"vendor": {
"hex": "1d6b",
- "name": "Linux 6.12.4 xhci-hcd",
+ "name": "Linux 6.16.0-cachyos xhci-hcd",
"value": 7531
},
"device": {
@@ -2830,11 +2369,11 @@
},
"revision": {
"hex": "0000",
- "name": "6.12",
+ "name": "6.16",
"value": 0
},
"serial": "0000:0c:00.3",
- "model": "Linux 6.12.4 xhci-hcd xHCI Host Controller",
+ "model": "Linux 6.16.0-cachyos xhci-hcd xHCI Host Controller",
"sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0c:00.3/usb3/3-0:1.0",
"sysfs_bus_id": "3-0:1.0",
"resources": [
@@ -2875,13 +2414,17 @@
},
"hotplug": "usb",
"driver": "hub",
+ "driver_module": "usbcore",
"drivers": [
"hub"
],
- "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00"
+ "driver_modules": [
+ "usbcore"
+ ],
+ "module_alias": "usb:v1D6Bp0002d0616dc09dsc00dp01ic09isc00ip00in00"
},
{
- "index": 82,
+ "index": 79,
"attached_to": 39,
"class_list": [
"usb",
@@ -2903,7 +2446,7 @@
},
"vendor": {
"hex": "1d6b",
- "name": "Linux 6.12.4 xhci-hcd",
+ "name": "Linux 6.16.0-cachyos xhci-hcd",
"value": 7531
},
"device": {
@@ -2913,11 +2456,11 @@
},
"revision": {
"hex": "0000",
- "name": "6.12",
+ "name": "6.16",
"value": 0
},
"serial": "0000:0c:00.3",
- "model": "Linux 6.12.4 xhci-hcd xHCI Host Controller",
+ "model": "Linux 6.16.0-cachyos xhci-hcd xHCI Host Controller",
"sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0c:00.3/usb4/4-0:1.0",
"sysfs_bus_id": "4-0:1.0",
"detail": {
@@ -2948,13 +2491,17 @@
},
"hotplug": "usb",
"driver": "hub",
+ "driver_module": "usbcore",
"drivers": [
"hub"
],
- "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00"
+ "driver_modules": [
+ "usbcore"
+ ],
+ "module_alias": "usb:v1D6Bp0003d0616dc09dsc00dp03ic09isc00ip00in00"
},
{
- "index": 87,
+ "index": 83,
"attached_to": 29,
"class_list": [
"usb",
@@ -2976,7 +2523,7 @@
},
"vendor": {
"hex": "1d6b",
- "name": "Linux 6.12.4 xhci-hcd",
+ "name": "Linux 6.16.0-cachyos xhci-hcd",
"value": 7531
},
"device": {
@@ -2986,11 +2533,11 @@
},
"revision": {
"hex": "0000",
- "name": "6.12",
+ "name": "6.16",
"value": 0
},
"serial": "0000:02:00.0",
- "model": "Linux 6.12.4 xhci-hcd xHCI Host Controller",
+ "model": "Linux 6.16.0-cachyos xhci-hcd xHCI Host Controller",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-0:1.0",
"sysfs_bus_id": "1-0:1.0",
"resources": [
@@ -3031,14 +2578,18 @@
},
"hotplug": "usb",
"driver": "hub",
+ "driver_module": "usbcore",
"drivers": [
"hub"
],
- "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00"
+ "driver_modules": [
+ "usbcore"
+ ],
+ "module_alias": "usb:v1D6Bp0002d0616dc09dsc00dp01ic09isc00ip00in00"
},
{
- "index": 91,
- "attached_to": 76,
+ "index": 86,
+ "attached_to": 74,
"class_list": [
"usb",
"hub"
@@ -3113,13 +2664,17 @@
},
"hotplug": "usb",
"driver": "hub",
+ "driver_module": "usbcore",
"drivers": [
"hub"
],
+ "driver_modules": [
+ "usbcore"
+ ],
"module_alias": "usb:v058Fp9254d0312dc09dsc00dp00ic09isc00ip00in00"
},
{
- "index": 94,
+ "index": 89,
"attached_to": 29,
"class_list": [
"usb",
@@ -3141,7 +2696,7 @@
},
"vendor": {
"hex": "1d6b",
- "name": "Linux 6.12.4 xhci-hcd",
+ "name": "Linux 6.16.0-cachyos xhci-hcd",
"value": 7531
},
"device": {
@@ -3151,11 +2706,11 @@
},
"revision": {
"hex": "0000",
- "name": "6.12",
+ "name": "6.16",
"value": 0
},
"serial": "0000:02:00.0",
- "model": "Linux 6.12.4 xhci-hcd xHCI Host Controller",
+ "model": "Linux 6.16.0-cachyos xhci-hcd xHCI Host Controller",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb2/2-0:1.0",
"sysfs_bus_id": "2-0:1.0",
"detail": {
@@ -3186,16 +2741,20 @@
},
"hotplug": "usb",
"driver": "hub",
+ "driver_module": "usbcore",
"drivers": [
"hub"
],
- "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00"
+ "driver_modules": [
+ "usbcore"
+ ],
+ "module_alias": "usb:v1D6Bp0003d0616dc09dsc00dp03ic09isc00ip00in00"
}
],
"keyboard": [
{
- "index": 84,
- "attached_to": 75,
+ "index": 81,
+ "attached_to": 73,
"class_list": [
"keyboard",
"usb"
@@ -3290,8 +2849,8 @@
"module_alias": "usb:v046DpC52Bd1211dc00dsc00dp00ic03isc01ip01in00"
},
{
- "index": 92,
- "attached_to": 75,
+ "index": 87,
+ "attached_to": 73,
"class_list": [
"keyboard",
"usb"
@@ -3333,18 +2892,11 @@
"model": "Logitech USB Receiver",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-6/1-6.1/1-6.1:1.0",
"sysfs_bus_id": "1-6.1:1.0",
- "unix_device_name": "/dev/input/event1",
- "unix_device_number": {
- "type": 99,
- "major": 13,
- "minor": 65,
- "range": 1
- },
"unix_device_names": [
"/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd",
"/dev/input/by-path/pci-0000:02:00.0-usb-0:6.1:1.0-event-kbd",
"/dev/input/by-path/pci-0000:02:00.0-usbv2-0:6.1:1.0-event-kbd",
- "/dev/input/event1"
+ "/dev/input/event3"
],
"resources": [
{
@@ -3418,14 +2970,6 @@
},
"model": "Main Memory",
"resources": [
- {
- "type": "mem",
- "base": 0,
- "range": 33599733760,
- "enabled": true,
- "access": "read_write",
- "prefetch": "unknown"
- },
{
"type": "phys_mem",
"range": 34359738368
@@ -3435,7 +2979,7 @@
],
"monitor": [
{
- "index": 63,
+ "index": 62,
"attached_to": 37,
"class_list": [
"monitor"
@@ -3665,7 +3209,7 @@
}
},
{
- "index": 64,
+ "index": 63,
"attached_to": 37,
"class_list": [
"monitor"
@@ -3898,7 +3442,7 @@
"mouse": [
{
"index": 68,
- "attached_to": 75,
+ "attached_to": 73,
"class_list": [
"mouse",
"usb"
@@ -4001,8 +3545,8 @@
"module_alias": "usb:v046DpC52Bd1211dc00dsc00dp00ic03isc01ip02in01"
},
{
- "index": 72,
- "attached_to": 75,
+ "index": 71,
+ "attached_to": 73,
"class_list": [
"mouse",
"usb"
@@ -4046,23 +3590,10 @@
"model": "Logitech USB Receiver",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-6/1-6.1/1-6.1:1.3",
"sysfs_bus_id": "1-6.1:1.3",
- "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",
@@ -4122,8 +3653,8 @@
"module_alias": "usb:v046DpC548d0503dc00dsc00dp00ic03isc00ip00in03"
},
{
- "index": 77,
- "attached_to": 75,
+ "index": 75,
+ "attached_to": 73,
"class_list": [
"mouse",
"usb"
@@ -4167,23 +3698,10 @@
"model": "Logitech USB Receiver",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-6/1-6.1/1-6.1:1.1",
"sysfs_bus_id": "1-6.1:1.1",
- "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/mouse0",
- "unix_device_number2": {
- "type": 99,
- "major": 13,
- "minor": 32,
- "range": 1
- },
"resources": [
{
"type": "baud",
@@ -4243,7 +3761,7 @@
"module_alias": "usb:v046DpC548d0503dc00dsc00dp00ic03isc01ip02in01"
},
{
- "index": 99,
+ "index": 95,
"attached_to": 0,
"bus_type": {
"hex": "0086",
@@ -4270,9 +3788,9 @@
"name": "USB_Receiver",
"value": 50504
},
- "sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-6/1-6.1/1-6.1:1.3/0003:046D:C548.0009/input/input16",
+ "sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-6/1-6.1/1-6.1:1.3/0003:046D:C548.0009/input/input20",
"unix_device_names": [
- "/dev/input/event9",
+ "/dev/input/event2",
"/dev/input/ + handler"
]
}
@@ -4327,8 +3845,7 @@
"model": "Ethernet controller",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:08.0/0000:08:00.0",
"sysfs_bus_id": "0000:08:00.0",
- "sysfs_iommu_group_id": 15,
- "unix_device_name": "eno1",
+ "sysfs_iommu_group_id": 16,
"unix_device_names": [
"eno1"
],
@@ -4344,28 +3861,6 @@
"enabled": true,
"access": "read_write"
},
- {
- "type": "irq",
- "base": 35,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 4233101312,
- "range": 65536,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- },
- {
- "type": "mem",
- "base": 4233166848,
- "range": 16384,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- },
{
"type": "phwaddr",
"address": 49
@@ -4376,7 +3871,6 @@
"command": 1031,
"header_type": 0,
"secondary_bus": 0,
- "irq": 35,
"prog_if": 0
},
"driver": "r8169",
@@ -4389,235 +3883,11 @@
],
"module_alias": "pci:v000010ECd00008125sv00001458sd0000E000bc02sc00i00",
"label": "RTL8111E Giga LAN"
- },
- {
- "index": 52,
- "attached_to": 41,
- "class_list": [
- "network_controller",
- "pci",
- "wlan_card"
- ],
- "bus_type": {
- "hex": "0004",
- "name": "PCI",
- "value": 4
- },
- "slot": {
- "bus": 5,
- "number": 0
- },
- "base_class": {
- "hex": "0002",
- "name": "Network controller",
- "value": 2
- },
- "sub_class": {
- "hex": "0082",
- "name": "WLAN controller",
- "value": 130
- },
- "vendor": {
- "hex": "8086",
- "name": "Intel Corporation",
- "value": 32902
- },
- "sub_vendor": {
- "hex": "8086",
- "name": "Intel Corporation",
- "value": 32902
- },
- "device": {
- "hex": "2723",
- "value": 10019
- },
- "sub_device": {
- "hex": "0084",
- "value": 132
- },
- "revision": {
- "hex": "001a",
- "value": 26
- },
- "model": "Intel WLAN controller",
- "sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:02.0/0000:05:00.0",
- "sysfs_bus_id": "0000:05:00.0",
- "sysfs_iommu_group_id": 15,
- "unix_device_name": "wlp5s0",
- "unix_device_names": [
- "wlp5s0"
- ],
- "resources": [
- {
- "type": "hwaddr",
- "address": 99
- },
- {
- "type": "irq",
- "base": 34,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 4234149888,
- "range": 16384,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- },
- {
- "type": "phwaddr",
- "address": 99
- },
- {
- "type": "wlan",
- "channels": [
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10",
- "11",
- "12",
- "13",
- "36",
- "40",
- "44",
- "48",
- "52",
- "56",
- "60",
- "64",
- "100",
- "104",
- "108",
- "112",
- "116",
- "120",
- "124",
- "128",
- "132",
- "136",
- "140"
- ],
- "frequencies": [
- "2.412",
- "2.417",
- "2.422",
- "2.427",
- "2.432",
- "2.437",
- "2.442",
- "2.447",
- "2.452",
- "2.457",
- "2.462",
- "2.467",
- "2.472",
- "5.18",
- "5.2",
- "5.22",
- "5.24",
- "5.26",
- "5.28",
- "5.3",
- "5.32",
- "5.5",
- "5.52",
- "5.54",
- "5.56",
- "5.58",
- "5.6",
- "5.62",
- "5.64",
- "5.66",
- "5.68",
- "5.7"
- ],
- "auth_modes": [
- "open",
- "sharedkey",
- "wpa-psk",
- "wpa-eap"
- ],
- "enc_modes": [
- "WEP40",
- "WEP104",
- "TKIP",
- "CCMP"
- ]
- }
- ],
- "detail": {
- "function": 0,
- "command": 1030,
- "header_type": 0,
- "secondary_bus": 0,
- "irq": 34,
- "prog_if": 0
- },
- "driver": "iwlwifi",
- "driver_module": "iwlwifi",
- "drivers": [
- "iwlwifi"
- ],
- "driver_modules": [
- "iwlwifi"
- ],
- "module_alias": "pci:v00008086d00002723sv00008086sd00000084bc02sc80i00"
}
],
"network_interface": [
{
- "index": 96,
- "attached_to": 52,
- "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/wlp5s0",
- "sysfs_device_link": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:02.0/0000:05:00.0",
- "unix_device_name": "wlp5s0",
- "unix_device_names": [
- "wlp5s0"
- ],
- "resources": [
- {
- "type": "hwaddr",
- "address": 99
- },
- {
- "type": "phwaddr",
- "address": 99
- }
- ],
- "driver": "iwlwifi",
- "driver_module": "iwlwifi",
- "drivers": [
- "iwlwifi"
- ],
- "driver_modules": [
- "iwlwifi"
- ]
- },
- {
- "index": 97,
+ "index": 91,
"attached_to": 0,
"class_list": [
"network_interface"
@@ -4634,13 +3904,12 @@
},
"model": "Loopback network interface",
"sysfs_id": "/class/net/lo",
- "unix_device_name": "lo",
"unix_device_names": [
"lo"
]
},
{
- "index": 98,
+ "index": 92,
"attached_to": 32,
"class_list": [
"network_interface"
@@ -4658,7 +3927,6 @@
"model": "Ethernet network interface",
"sysfs_id": "/class/net/eno1",
"sysfs_device_link": "/devices/pci0000:00/0000:00:01.2/0000:02:00.2/0000:03:08.0/0000:08:00.0",
- "unix_device_name": "eno1",
"unix_device_names": [
"eno1"
],
@@ -4724,20 +3992,19 @@
"model": "unknown unknown",
"sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0c:00.0",
"sysfs_bus_id": "0000:0c:00.0",
- "sysfs_iommu_group_id": 18,
+ "sysfs_iommu_group_id": 19,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001485sv00001022sd00001485bc13sc00i00"
},
{
"index": 31,
- "attached_to": 56,
+ "attached_to": 55,
"class_list": [
"pci",
"unknown"
@@ -4776,13 +4043,12 @@
"model": "unknown unknown",
"sysfs_id": "/devices/pci0000:00/0000:00:07.1/0000:0b:00.0",
"sysfs_bus_id": "0000:0b:00.0",
- "sysfs_iommu_group_id": 17,
+ "sysfs_iommu_group_id": 18,
"detail": {
"function": 0,
"command": 0,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d0000148Asv00001022sd0000148Abc13sc00i00"
@@ -4838,7 +4104,6 @@
"command": 64,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d00001481sv00001022sd00001481bc08sc06i00"
@@ -4890,37 +4155,12 @@
"model": "AMD Encryption controller",
"sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0c:00.1",
"sysfs_bus_id": "0000:0c:00.1",
- "sysfs_iommu_group_id": 19,
- "resources": [
- {
- "type": "irq",
- "base": 80,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 4231004160,
- "range": 1048576,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- },
- {
- "type": "mem",
- "base": 4232085504,
- "range": 8192,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- }
- ],
+ "sysfs_iommu_group_id": 20,
"detail": {
"function": 1,
"command": 1030,
"header_type": 0,
"secondary_bus": 0,
- "irq": 80,
"prog_if": 0
},
"driver": "ccp",
@@ -4934,7 +4174,7 @@
"module_alias": "pci:v00001022d00001486sv00001022sd00001486bc10sc80i00"
},
{
- "index": 60,
+ "index": 59,
"attached_to": 0,
"class_list": [
"pci",
@@ -4983,13 +4223,12 @@
"model": "AMD SMBus",
"sysfs_id": "/devices/pci0000:00/0000:00:14.0",
"sysfs_bus_id": "0000:00:14.0",
- "sysfs_iommu_group_id": 12,
+ "sysfs_iommu_group_id": 13,
"detail": {
"function": 0,
"command": 1027,
"header_type": 0,
"secondary_bus": 0,
- "irq": 0,
"prog_if": 0
},
"module_alias": "pci:v00001022d0000790Bsv00001458sd00005001bc0Csc05i00"
@@ -4997,7 +4236,7 @@
],
"sound": [
{
- "index": 54,
+ "index": 53,
"attached_to": 21,
"class_list": [
"sound",
@@ -5045,29 +4284,12 @@
"model": "nVidia Multimedia controller",
"sysfs_id": "/devices/pci0000:00/0000:00:03.1/0000:0a:00.1",
"sysfs_bus_id": "0000:0a:00.1",
- "sysfs_iommu_group_id": 16,
- "resources": [
- {
- "type": "irq",
- "base": 84,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 4228382720,
- "range": 16384,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- }
- ],
+ "sysfs_iommu_group_id": 17,
"detail": {
"function": 1,
"command": 6,
"header_type": 0,
"secondary_bus": 0,
- "irq": 84,
"prog_if": 0
},
"driver": "snd_hda_intel",
@@ -5081,7 +4303,7 @@
"module_alias": "pci:v000010DEd00001AEFsv00007377sd00002000bc04sc03i00"
},
{
- "index": 57,
+ "index": 56,
"attached_to": 45,
"class_list": [
"sound",
@@ -5125,29 +4347,12 @@
"model": "AMD Multimedia controller",
"sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0c:00.4",
"sysfs_bus_id": "0000:0c:00.4",
- "sysfs_iommu_group_id": 21,
- "resources": [
- {
- "type": "irq",
- "base": 86,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 4232052736,
- "range": 32768,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- }
- ],
+ "sysfs_iommu_group_id": 22,
"detail": {
"function": 4,
"command": 1030,
"header_type": 0,
"secondary_bus": 0,
- "irq": 86,
"prog_if": 0
},
"driver": "snd_hda_intel",
@@ -5162,8 +4367,8 @@
"label": "Realtek ALC1220"
},
{
- "index": 73,
- "attached_to": 91,
+ "index": 72,
+ "attached_to": 86,
"class_list": [
"sound",
"usb"
@@ -5254,8 +4459,8 @@
"module_alias": "usb:v1038p12C4d0003dc00dsc00dp00ic01isc01ip00in03"
},
{
- "index": 78,
- "attached_to": 91,
+ "index": 76,
+ "attached_to": 86,
"class_list": [
"sound",
"usb"
@@ -5346,8 +4551,8 @@
"module_alias": "usb:v1038p12C4d0003dc00dsc00dp00ic01isc02ip00in01"
},
{
- "index": 85,
- "attached_to": 91,
+ "index": 82,
+ "attached_to": 86,
"class_list": [
"sound",
"usb"
@@ -5438,8 +4643,8 @@
"module_alias": "usb:v1038p12C4d0003dc00dsc00dp00ic01isc02ip00in04"
},
{
- "index": 89,
- "attached_to": 91,
+ "index": 85,
+ "attached_to": 86,
"class_list": [
"sound",
"usb"
@@ -5530,8 +4735,8 @@
"module_alias": "usb:v1038p12C4d0003dc00dsc00dp00ic01isc02ip00in02"
},
{
- "index": 93,
- "attached_to": 91,
+ "index": 88,
+ "attached_to": 86,
"class_list": [
"sound",
"usb"
@@ -5675,37 +4880,12 @@
"model": "Mass storage controller",
"sysfs_id": "/devices/pci0000:00/0000:00:01.1/0000:01:00.0",
"sysfs_bus_id": "0000:01:00.0",
- "sysfs_iommu_group_id": 14,
- "resources": [
- {
- "type": "irq",
- "base": 44,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 4236247040,
- "range": 16384,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- },
- {
- "type": "mem",
- "base": 4236263424,
- "range": 256,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- }
- ],
+ "sysfs_iommu_group_id": 15,
"detail": {
"function": 0,
"command": 1031,
"header_type": 0,
"secondary_bus": 0,
- "irq": 44,
"prog_if": 2
},
"driver": "nvme",
@@ -5767,37 +4947,12 @@
"model": "AMD Mass storage controller",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.1",
"sysfs_bus_id": "0000:02:00.1",
- "sysfs_iommu_group_id": 15,
- "resources": [
- {
- "type": "irq",
- "base": 62,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 4235198464,
- "range": 524288,
- "enabled": false,
- "access": "read_only",
- "prefetch": "no"
- },
- {
- "type": "mem",
- "base": 4235722752,
- "range": 131072,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- }
- ],
+ "sysfs_iommu_group_id": 16,
"detail": {
"function": 1,
"command": 1030,
"header_type": 0,
"secondary_bus": 0,
- "irq": 62,
"prog_if": 1
},
"driver": "ahci",
@@ -5816,8 +4971,8 @@
},
"usb": [
{
- "index": 70,
- "attached_to": 91,
+ "index": 69,
+ "attached_to": 86,
"class_list": [
"usb",
"unknown"
@@ -5907,8 +5062,8 @@
"module_alias": "usb:v1038p12C2d0101dc00dsc00dp00ic03isc00ip00in00"
},
{
- "index": 71,
- "attached_to": 91,
+ "index": 70,
+ "attached_to": 86,
"class_list": [
"usb",
"unknown"
@@ -5999,8 +5154,8 @@
"module_alias": "usb:v1038p12C4d0003dc00dsc00dp00ic03isc00ip00in05"
},
{
- "index": 79,
- "attached_to": 75,
+ "index": 77,
+ "attached_to": 73,
"class_list": [
"usb",
"unknown"
@@ -6090,8 +5245,8 @@
"module_alias": "usb:v046DpC52Bd1211dc00dsc00dp00ic03isc00ip00in02"
},
{
- "index": 80,
- "attached_to": 87,
+ "index": 78,
+ "attached_to": 83,
"class_list": [
"usb",
"unknown"
@@ -6181,8 +5336,8 @@
"module_alias": "usb:v048Dp5702d0001dc00dsc00dp00ic03isc00ip00in00"
},
{
- "index": 83,
- "attached_to": 91,
+ "index": 80,
+ "attached_to": 86,
"class_list": [
"usb",
"unknown"
@@ -6224,19 +5379,6 @@
"model": "SteelSeries Arctis 9",
"sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0c:00.3/usb3/3-2/3-2.2/3-2.2:1.1",
"sysfs_bus_id": "3-2.2:1.1",
- "unix_device_name": "/dev/input/event0",
- "unix_device_number": {
- "type": 99,
- "major": 13,
- "minor": 64,
- "range": 1
- },
- "unix_device_names": [
- "/dev/input/by-id/usb-SteelSeries_SteelSeries_Arctis_9-event-if01",
- "/dev/input/by-path/pci-0000:0c:00.3-usb-0:2.2:1.1-event",
- "/dev/input/by-path/pci-0000:0c:00.3-usbv2-0:2.2:1.1-event",
- "/dev/input/event0"
- ],
"resources": [
{
"type": "baud",
@@ -6285,8 +5427,8 @@
"module_alias": "usb:v1038p12C2d0101dc00dsc00dp00ic03isc00ip00in01"
},
{
- "index": 88,
- "attached_to": 75,
+ "index": 84,
+ "attached_to": 73,
"class_list": [
"usb",
"unknown"
@@ -6377,91 +5519,7 @@
},
{
"index": 90,
- "attached_to": 87,
- "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": "2104",
- "name": "Tobii AB",
- "value": 8452
- },
- "device": {
- "hex": "0313",
- "name": "EyeChip",
- "value": 787
- },
- "revision": {
- "hex": "0000",
- "name": "1.00",
- "value": 0
- },
- "serial": "IS5FF-100212740213",
- "model": "Tobii EyeChip",
- "sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-8/1-8:1.0",
- "sysfs_bus_id": "1-8:1.0",
- "resources": [
- {
- "type": "baud",
- "speed": 480000000,
- "bits": 0,
- "stop_bits": 0,
- "parity": 0,
- "handshake": 0
- }
- ],
- "detail": {
- "device_class": {
- "hex": "00ef",
- "name": "miscellaneous",
- "value": 239
- },
- "device_subclass": {
- "hex": "0002",
- "name": "comm",
- "value": 2
- },
- "device_protocol": 1,
- "interface_class": {
- "hex": "00ff",
- "name": "vendor_spec",
- "value": 255
- },
- "interface_subclass": {
- "hex": "0000",
- "name": "per_interface",
- "value": 0
- },
- "interface_protocol": 0,
- "interface_number": 0,
- "interface_alternate_setting": 0
- },
- "hotplug": "usb",
- "module_alias": "usb:v2104p0313d0100dcEFdsc02dp01icFFisc00ip00in00"
- },
- {
- "index": 95,
- "attached_to": 91,
+ "attached_to": 86,
"class_list": [
"usb",
"unknown"
@@ -6602,29 +5660,12 @@
"model": "AMD USB Controller",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/0000:02:00.0",
"sysfs_bus_id": "0000:02:00.0",
- "sysfs_iommu_group_id": 15,
- "resources": [
- {
- "type": "irq",
- "base": 35,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 4235853824,
- "range": 32768,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- }
- ],
+ "sysfs_iommu_group_id": 16,
"detail": {
"function": 0,
"command": 1030,
"header_type": 0,
"secondary_bus": 0,
- "irq": 35,
"prog_if": 48
},
"driver": "xhci_hcd",
@@ -6687,29 +5728,12 @@
"model": "AMD USB Controller",
"sysfs_id": "/devices/pci0000:00/0000:00:08.1/0000:0c:00.3",
"sysfs_bus_id": "0000:0c:00.3",
- "sysfs_iommu_group_id": 20,
- "resources": [
- {
- "type": "irq",
- "base": 71,
- "triggered": 0,
- "enabled": true
- },
- {
- "type": "mem",
- "base": 4229955584,
- "range": 1048576,
- "enabled": true,
- "access": "read_write",
- "prefetch": "no"
- }
- ],
+ "sysfs_iommu_group_id": 21,
"detail": {
"function": 3,
"command": 1031,
"header_type": 0,
"secondary_bus": 0,
- "irq": 71,
"prog_if": 48
},
"driver": "xhci_hcd",
@@ -6893,38 +5917,40 @@
]
}
],
- "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"
- },
+ "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": [
@@ -6971,7 +5997,7 @@
"name": "None",
"value": 3
},
- "max_size": 134217728,
+ "max_size": "0x8000000",
"error_handle": 10,
"slots": 4
}
@@ -6980,15 +6006,15 @@
{
"handle": 12,
"array_handle": 11,
- "start_address": 0,
- "end_address": 3221225472,
+ "start_address": "0x0",
+ "end_address": "0xc0000000",
"part_width": 2
},
{
"handle": 13,
"array_handle": 11,
- "start_address": 4294967296,
- "end_address": 35433480192,
+ "start_address": "0x100000000",
+ "end_address": "0x840000000",
"part_width": 2
}
],
@@ -7107,8 +6133,8 @@
"handle": 22,
"memory_device_handle": 21,
"array_map_handle": 13,
- "start_address": 0,
- "end_address": 34359738368,
+ "start_address": "0x0",
+ "end_address": "0x800000000",
"row_position": 255,
"interleave_position": 255,
"interleave_depth": 255
@@ -7117,8 +6143,8 @@
"handle": 27,
"memory_device_handle": 26,
"array_map_handle": 13,
- "start_address": 0,
- "end_address": 34359738368,
+ "start_address": "0x0",
+ "end_address": "0x800000000",
"row_position": 255,
"interleave_position": 255,
"interleave_depth": 255
@@ -7143,8 +6169,8 @@
"value": 2
},
"syndrome": 0,
- "array_address": 2147483648,
- "device_address": 2147483648,
+ "array_address": "0x80000000",
+ "device_address": "0x80000000",
"range": 2147483648
},
{
@@ -7165,8 +6191,8 @@
"value": 2
},
"syndrome": 0,
- "array_address": 2147483648,
- "device_address": 2147483648,
+ "array_address": "0x80000000",
+ "device_address": "0x80000000",
"range": 2147483648
},
{
@@ -7187,8 +6213,8 @@
"value": 2
},
"syndrome": 0,
- "array_address": 2147483648,
- "device_address": 2147483648,
+ "array_address": "0x80000000",
+ "device_address": "0x80000000",
"range": 2147483648
},
{
@@ -7209,8 +6235,8 @@
"value": 2
},
"syndrome": 0,
- "array_address": 2147483648,
- "device_address": 2147483648,
+ "array_address": "0x80000000",
+ "device_address": "0x80000000",
"range": 2147483648
},
{
@@ -7231,8 +6257,8 @@
"value": 2
},
"syndrome": 0,
- "array_address": 2147483648,
- "device_address": 2147483648,
+ "array_address": "0x80000000",
+ "device_address": "0x80000000",
"range": 2147483648
}
],
@@ -7654,9 +6680,9 @@
"product": "B550 AORUS ELITE V2",
"version": "Default string",
"wake_up": {
- "hex": "0006",
- "name": "Power Switch",
- "value": 6
+ "hex": "0007",
+ "name": "PCI PME#",
+ "value": 7
}
}
}
diff --git a/templates/home/default.nix b/templates/home/default.nix
index c7717c0..adec372 100644
--- a/templates/home/default.nix
+++ b/templates/home/default.nix
@@ -9,6 +9,7 @@ let
name = config.snowfallorg.user.name;
home = config.snowfallorg.user.home.directory;
in {
+ imports = lib.snowfall.fs.get-non-default-nix-files ./.;
home = {
packages = with pkgs; [
librewolf
diff --git a/templates/overlay/default.nix b/templates/overlay/default.nix
index 8ccc207..bc482bb 100644
--- a/templates/overlay/default.nix
+++ b/templates/overlay/default.nix
@@ -1,3 +1,15 @@
-channels: (final: prev: {
- package = prev.package.override {};
-})
+{
+ # Channels are named after NixPkgs instances in your flake inputs. For example,
+ # with the input `nixpkgs` there will be a channel available at `channels.nixpkgs`.
+ # These channels are system-specific instances of NixPkgs that can be used to quickly
+ # pull packages into your overlay.
+ channels,
+ namespace,
+ inputs,
+ ...
+}: final: prev: {
+ # For example, to pull a package from unstable NixPkgs
+ inherit (channels.unstable) chromium;
+
+ my-package = inputs.my-input.packages.${prev.system}.my-package;
+}
diff --git a/templates/system/default.nix b/templates/system/default.nix
index e60108a..148689e 100644
--- a/templates/system/default.nix
+++ b/templates/system/default.nix
@@ -11,27 +11,7 @@
config,
...
}: {
- imports = [./hardware-configuration.nix];
-
- # Enable Bootloader (EFI or BIOS)
- #system.boot.efi.enable = true;
- #system.boot.bios.enable = true;
-
- # Better battery life on laptops
- # system.battery.enable = true;
-
- # suites.desktop.enable = true;
- # suites.development.enable = true;
-
- # suites.server.enable = true;
-
- # Nvidia Drivers
- # hardware.nvidia.enable = true;
-
- # Add packages (custom for ones in these dotfiles)
- # environment.systemPackages = with pkgs; [
- # ${namespace}.package
- # ];
+ facter.reportPath = ./facter.json;
# ======================== DO NOT CHANGE THIS ========================
system.stateVersion = "25.05";