diff --git a/flake.lock b/flake.lock
index 30e3db4..1660a20 100644
--- a/flake.lock
+++ b/flake.lock
@@ -932,6 +932,62 @@
"type": "github"
}
},
+ "niri-flake": {
+ "inputs": {
+ "niri-stable": "niri-stable",
+ "niri-unstable": "niri-unstable",
+ "nixpkgs": "nixpkgs_9",
+ "nixpkgs-stable": "nixpkgs-stable_3",
+ "xwayland-satellite-stable": "xwayland-satellite-stable",
+ "xwayland-satellite-unstable": "xwayland-satellite-unstable"
+ },
+ "locked": {
+ "lastModified": 1749396815,
+ "narHash": "sha256-vwr2vLETE4CSi4c6SFoQyP+uBUnvwPPQmn+1D1207ts=",
+ "owner": "sodiboo",
+ "repo": "niri-flake",
+ "rev": "e6db401ff0aa3b03507b4819f9a44deab3cfcf2f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "sodiboo",
+ "repo": "niri-flake",
+ "type": "github"
+ }
+ },
+ "niri-stable": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1740117926,
+ "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=",
+ "owner": "YaLTeR",
+ "repo": "niri",
+ "rev": "b94a5db8790339cf9134873d8b490be69e02ac71",
+ "type": "github"
+ },
+ "original": {
+ "owner": "YaLTeR",
+ "ref": "v25.02",
+ "repo": "niri",
+ "type": "github"
+ }
+ },
+ "niri-unstable": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1749327170,
+ "narHash": "sha256-mBrxeWd7L8oAIh6G2PgKuZAzqyZMyjBpHEAcSSTbhJg=",
+ "owner": "YaLTeR",
+ "repo": "niri",
+ "rev": "f918eabe6a144e78c62c3fc0cfa7fe32e4623e5a",
+ "type": "github"
+ },
+ "original": {
+ "owner": "YaLTeR",
+ "repo": "niri",
+ "type": "github"
+ }
+ },
"nix": {
"inputs": {
"flake-compat": [
@@ -1054,7 +1110,7 @@
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts_4",
- "nixpkgs": "nixpkgs_9"
+ "nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1749175147,
@@ -1152,7 +1208,7 @@
"nixos-wsl": {
"inputs": {
"flake-compat": "flake-compat_5",
- "nixpkgs": "nixpkgs_10"
+ "nixpkgs": "nixpkgs_11"
},
"locked": {
"lastModified": 1746453552,
@@ -1292,6 +1348,22 @@
"type": "github"
}
},
+ "nixpkgs-stable_3": {
+ "locked": {
+ "lastModified": 1749237914,
+ "narHash": "sha256-N5waoqWt8aMr/MykZjSErOokYH6rOsMMXu3UOVH5kiw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "70c74b02eac46f4e4aa071e45a6189ce0f6d9265",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-25.05",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs-unstable": {
"locked": {
"lastModified": 1748929857,
@@ -1309,6 +1381,22 @@
}
},
"nixpkgs_10": {
+ "locked": {
+ "lastModified": 1748662220,
+ "narHash": "sha256-7gGa49iB9nCnFk4h/g9zwjlQAyjtpgcFkODjcOQS0Es=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "59138c7667b7970d205d6a05a8bfa2d78caa3643",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_11": {
"locked": {
"lastModified": 1742937945,
"narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=",
@@ -1324,7 +1412,7 @@
"type": "github"
}
},
- "nixpkgs_11": {
+ "nixpkgs_12": {
"locked": {
"lastModified": 1749086602,
"narHash": "sha256-DJcgJMekoxVesl9kKjfLPix2Nbr42i7cpEHJiTnBUwU=",
@@ -1340,7 +1428,7 @@
"type": "github"
}
},
- "nixpkgs_12": {
+ "nixpkgs_13": {
"locked": {
"lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
@@ -1356,7 +1444,7 @@
"type": "github"
}
},
- "nixpkgs_13": {
+ "nixpkgs_14": {
"locked": {
"lastModified": 1747610100,
"narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
@@ -1486,16 +1574,16 @@
},
"nixpkgs_9": {
"locked": {
- "lastModified": 1748662220,
- "narHash": "sha256-7gGa49iB9nCnFk4h/g9zwjlQAyjtpgcFkODjcOQS0Es=",
+ "lastModified": 1749285348,
+ "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "59138c7667b7970d205d6a05a8bfa2d78caa3643",
+ "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github"
},
"original": {
"owner": "NixOS",
- "ref": "nixpkgs-unstable",
+ "ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
@@ -3707,13 +3795,14 @@
"home-manager": "home-manager",
"impermanence": "impermanence",
"neovim": "neovim",
+ "niri-flake": "niri-flake",
"nix-darwin": "nix-darwin",
"nix-flatpak": "nix-flatpak",
"nix-gaming": "nix-gaming",
"nix-on-droid": "nix-on-droid",
"nixos-facter-modules": "nixos-facter-modules",
"nixos-wsl": "nixos-wsl",
- "nixpkgs": "nixpkgs_11",
+ "nixpkgs": "nixpkgs_12",
"nixpkgs-master": "nixpkgs-master",
"nixpkgs-unstable": "nixpkgs-unstable",
"sops-nix": "sops-nix",
@@ -3778,7 +3867,7 @@
},
"sops-nix": {
"inputs": {
- "nixpkgs": "nixpkgs_12"
+ "nixpkgs": "nixpkgs_13"
},
"locked": {
"lastModified": 1747603214,
@@ -3806,7 +3895,7 @@
"git-hooks": "git-hooks_2",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
- "nixpkgs": "nixpkgs_13",
+ "nixpkgs": "nixpkgs_14",
"nur": "nur",
"systems": "systems_4",
"tinted-foot": "tinted-foot",
@@ -3992,6 +4081,39 @@
"repo": "treefmt-nix",
"type": "github"
}
+ },
+ "xwayland-satellite-stable": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1739246919,
+ "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=",
+ "owner": "Supreeeme",
+ "repo": "xwayland-satellite",
+ "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Supreeeme",
+ "ref": "v0.5.1",
+ "repo": "xwayland-satellite",
+ "type": "github"
+ }
+ },
+ "xwayland-satellite-unstable": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1749315541,
+ "narHash": "sha256-bEik1BfVOFnWvtOrcOHluos/edJ8f+G2y1QySbt/0Ak=",
+ "owner": "Supreeeme",
+ "repo": "xwayland-satellite",
+ "rev": "da2ecb5be816de35e2efe23a408a1c49fe8b11ba",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Supreeeme",
+ "repo": "xwayland-satellite",
+ "type": "github"
+ }
}
},
"root": "root",
diff --git a/flake.nix b/flake.nix
index b5b5f59..2084d54 100644
--- a/flake.nix
+++ b/flake.nix
@@ -66,6 +66,9 @@
url = "git+https://github.com/KyleKrein/BeeEngine?submodules=1";
};
conduwuit.url = "github:matrix-construct/tuwunel";
+ niri-flake = {
+ url = "github:sodiboo/niri-flake";
+ };
};
outputs = {
diff --git a/nixos/configuration.nix b/nixos/configuration.nix
index 7a54ce7..140d8cc 100644
--- a/nixos/configuration.nix
+++ b/nixos/configuration.nix
@@ -42,10 +42,6 @@ in
boot = {
kernelPackages = lib.mkDefault pkgs.linuxPackages_6_14;
-
- plymouth = {
- enable = true;
- };
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = if hwconfig.hostname != "kylekrein-mac" then true else false;
@@ -244,38 +240,6 @@ in
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
- extraSpecialArgs = {
- inherit pkgs;
- inherit hwconfig;
- inherit first-nixos-install;
- inherit inputs;
- };
- };
- stylix = {
- enable = true;
- image = "${./modules/hyprland/wallpaper.jpg}";
- autoEnable = true;
- opacity = {
- desktop = 0.0;#0.5;
- };
- targets = {
- gtk.enable = true;
- plymouth = {
- enable = true;
- #logo = ./fastfetch/nixos.png;
- logoAnimated = false;
- };
- };
- fonts = {
- sizes = {
- applications = 14;
- desktop = 12;
- popups = 12;
- terminal = 16;
- };
- };
- polarity = "dark";
- base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
};
programs.bash = {
diff --git a/nixos/home.nix b/nixos/home.nix
index 5f4b43f..1ba7454 100644
--- a/nixos/home.nix
+++ b/nixos/home.nix
@@ -23,25 +23,23 @@ in
inherit inputs;
}
)
- ++ lib.optional (config.programs.hyprland.enable) (
- import ./modules/hyprland/home.nix {
- inherit pkgs;
- inherit username;
- inherit inputs;
- inherit hwconfig;
- inherit lib;
- }
- )
+ #++ lib.optional (config.programs.hyprland.enable) (
+ # import ./modules/hyprland/home.nix {
+ # inherit pkgs;
+ # inherit username;
+ # inherit inputs;
+ # inherit hwconfig;
+ # inherit lib;
+ # }
+ #)
++ lib.optional (builtins.pathExists ./homes/${username}) (
- import ./homes/${username} { inherit username; }
+ import ./homes/${username} { inherit username; inherit config; inherit pkgs; inherit lib; inherit inputs; inherit hwconfig; }
);
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = username;
home.homeDirectory = "/home/${username}";
- stylix = {
- enable = lib.strings.hasInfix "kylekrein" hwconfig.hostname;
- };
+
#xdg.configFile."Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
# General.theme = "Catppuccin-Mocha";
# };
@@ -106,8 +104,8 @@ in
programs.kitty = {
enable = lib.strings.hasInfix "kylekrein" hwconfig.hostname;
font = {
- #name = "JetBrainsMono Nerd Font";
- #size = 16;
+ name = "JetBrainsMono Nerd Font";
+ size = 20;
};
settings = {
confirm_os_window_close = 0;
diff --git a/nixos/homes/kylekrein/battery-status.nix b/nixos/homes/kylekrein/battery-status.nix
new file mode 100644
index 0000000..f363627
--- /dev/null
+++ b/nixos/homes/kylekrein/battery-status.nix
@@ -0,0 +1,83 @@
+{pkgs, hwconfig, ...}:
+let
+ battery-path = "/sys/class/power_supply/${if hwconfig.hostname == "kylekrein-mac" then "macsmc-battery" else "BAT0"}";
+ 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}/energy_now)
+POWER_USAGE=$(cat ${battery-path}/power_now)
+if [[ -n "$REMAINING_ENERGY" && -n "$POWER_USAGE" && "$POWER_USAGE" -ne 0 ]]; then
+ TIME_LEFT=$((0 - (REMAINING_ENERGY / POWER_USAGE)))
+ MINUTES_LEFT=$(((0 - ( (REMAINING_ENERGY * 60) / POWER_USAGE )) - (TIME_LEFT * 60)))
+ echo "$TIME_LEFT h $MINUTES_LEFT min"
+else
+ echo ""
+fi
+ ''}/bin/get-remaining-time";
+in
+{
+ available = hwconfig.isLaptop;
+ 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/nixos/homes/kylekrein/default.nix b/nixos/homes/kylekrein/default.nix
index 71ae827..b7531fb 100644
--- a/nixos/homes/kylekrein/default.nix
+++ b/nixos/homes/kylekrein/default.nix
@@ -1,5 +1,14 @@
-{username, ...}: {
+{config, username, pkgs, lib, inputs, hwconfig, ...}: {
imports = [
./git.nix
- ];
+ ] ++ lib.optional (lib.strings.hasInfix "kylekrein" hwconfig.hostname) (
+ import ./niri.nix {
+ inherit pkgs;
+ inherit config;
+ inherit username;
+ inherit inputs;
+ inherit hwconfig;
+ inherit lib;
+ }
+ );
}
diff --git a/nixos/homes/kylekrein/niri.nix b/nixos/homes/kylekrein/niri.nix
new file mode 100644
index 0000000..187ea40
--- /dev/null
+++ b/nixos/homes/kylekrein/niri.nix
@@ -0,0 +1,217 @@
+#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
+{config, pkgs, lib, inputs, hwconfig, ...}:
+{
+ programs.fuzzel = {
+ enable = true;
+ settings.main.terminal = "kitty";
+ };
+ services.swaync = {
+ enable = true;
+ };
+ imports = [
+ ./waybar
+ ];
+ home.packages = with pkgs;[
+ wlogout
+ brightnessctl
+ fuzzel
+ waybar
+ swaybg
+ libnotify
+ swaylock
+ ];
+ programs.niri = {
+ settings = {
+ outputs = lib.mkIf (hwconfig.hostname == "kylekrein-homepc") {
+ "DP-1" = {
+ scale = 1.6;
+ position.x = 1600;
+ position.y = 0;
+ };
+ "DP-3" = {
+ scale = 1.6;
+ position.x = 0;
+ position.y = 0;
+ };
+ };
+ spawn-at-startup = let
+ set-low-brightness = lib.mkIf (hwconfig.isLaptop) {
+ command = [
+ "${lib.getExe pkgs.brightnessctl}"
+ "set"
+ "25%"
+ ];
+ };
+ in [
+ set-low-brightness
+ {
+ command = [
+ "${lib.getExe pkgs.waybar}"
+ ];
+ }
+ {
+ command = [
+ "${lib.getExe pkgs.networkmanagerapplet}"
+ ];
+ }
+ {
+ command = [
+ "${pkgs.solaar}/bin/solaar"
+ "-w"
+ "hide"
+ ];
+ }
+ {
+ command = [
+ "${lib.getExe pkgs.swaybg}"
+ "-m"
+ "fill"
+ "-i"
+ "${../../modules/hyprland/wallpaper.jpg}"
+ ];
+ }
+ {
+ command = [
+ "emacs"
+ "--daemon"
+ ];
+ }
+ ];
+ layout = {
+ preset-column-widths = [
+ {proportion = 1.0 / 3.0;}
+ {proportion = 1.0 / 2.0;}
+ {proportion = 2.0 / 3.0;}
+ {proportion = 1.0;}
+ ];
+ default-column-width = {proportion = 1.0 / 3.0;};
+ };
+ binds = with config.lib.niri.actions;
+ let
+ sh = spawn "sh" "-c";
+ in {
+ "Mod+E".action = sh "emacsclient -c";
+ "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+Q".action = ;
+ "Mod+Shift+S".action = screenshot;
+ "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 = open-overview;
+ };
+ input = {
+ focus-follows-mouse = {
+ #enable = true;
+ };
+ warp-mouse-to-focus = true;
+ keyboard = {
+ xkb.layout = "us, ru";
+ xkb.options = "grp:lctrl_toggle, ctrl:nocaps" + (if hwconfig.hostname == "kylekrein-mac" then ", altwin:swap_alt_win" else "");
+ track-layout = "window";
+ };
+ 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";
+ };
+ window-rules = [
+ { #active
+ matches = [
+ {
+ is-active = true;
+ }
+ ];
+ opacity = 0.9;
+ }
+ { #inactive
+ matches = [
+ {
+ is-active = false;
+ }
+ ];
+ opacity = 0.7;
+ }
+ { #opaque
+ matches = [
+ {
+ app-id = "emacs";
+ }
+ {
+ app-id = "blender";
+ }
+ ];
+ opacity = 1.0;
+ }
+ { #app-launcher
+ matches = [
+ {
+ title = "emacs-run-launcher";
+ }
+ ];
+ open-floating = true;
+ open-focused = true;
+ }
+ ];
+ };
+ };
+}
diff --git a/nixos/homes/kylekrein/waybar/default.nix b/nixos/homes/kylekrein/waybar/default.nix
new file mode 100644
index 0000000..703227c
--- /dev/null
+++ b/nixos/homes/kylekrein/waybar/default.nix
@@ -0,0 +1,199 @@
+{ pkgs, lib, hwconfig, ... }:
+let
+battery = (import ../battery-status.nix {inherit pkgs; inherit hwconfig;});
+in
+{
+ programs.waybar = {
+ enable = true;
+ systemd.enable = true;
+
+ #window#waybar {
+ # background: transparent;
+ #border-bottom: none;
+ #}
+ #${builtins.readFile "${pkgs.waybar}/etc/xdg/waybar/style.css"}
+ style = ''
+ ${builtins.readFile ./waybarstyle.css}
+
+ * {
+ font-size: 15px;
+ }
+ '';
+ settings = [{
+ height = 36;
+ layer = "top";
+ position = "top";
+ tray = { spacing = 3; };
+ modules-center = [
+ #"hyprland/window"
+ "clock"
+ ];
+ modules-left = [
+ "wlr/taskbar"
+ "niri/workspaces"
+ # "hyprland/window"
+ ];
+ modules-right = lib.optional hwconfig.isLaptop "backlight"
+ ++ [
+ "pulseaudio"
+ #"network"
+ #"cpu"
+ "memory"
+ #"temperature"
+ "niri/language"
+ ] ++ lib.optional battery.available "custom/battery"
+ ++ [
+ "tray"
+ "custom/notification"
+ #"custom/disablehypridle"
+ "custom/power"
+ ];
+ battery = {
+ 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.labelAdaptive}
+ ${battery.labelPercent}
+ ''}/bin/battery-widget";
+ interval = 20;
+ tooltip = true;
+ };
+ clock = {
+ format-alt = "{:%d.%m.%Y}";
+ tooltip-format = "{:%d.%m.%Y | %H:%M}";
+ };
+ cpu = {
+ format = "{usage}% ";
+ tooltip = false;
+ };
+ "niri/language" = {
+ format = " {}";
+ format-en = "EN";
+ format-ru = "RU";
+ };
+ "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 = " {icon} {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 = [ "" "" "" ];
+ };
+
+ "hyprland/workspaces" = {
+ disable-scroll = true;
+ all-outputs = false;
+ warp-on-scroll = true;
+ format = "{name}{icon} ";
+ format-icons = {
+ urgent = "";
+ active = "";
+ default = "";
+ };
+ #persistent-workspaces = {
+ # "*" = 3;
+ #};
+ };
+
+ "custom/power" = {
+ format = "⏻ ";
+ tooltip = false;
+ #menu = "on-click";
+ #menu-file = ./power_menu.xml;
+ #menu-actions = {
+ # shutdown = "shutdown -h now";
+ # reboot = "reboot";
+ # suspend = "systemctl suspend";
+ # hibernate = "systemctl hibernate";
+ #};
+ 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;
+ };
+
+ "custom/disablehypridle" = {
+ exec = ''
+ if pgrep -x "hypridle" > /dev/null; then
+ echo "{\"text\": \" \", \"tooltip\": \"Hypridle is running\", \"class\": \"active\"}";
+ else
+ echo "{\"text\": \" \", \"tooltip\": \"Hypridle is not running\", \"class\": \"inactive\"}";
+ fi
+ '';
+ return-type = "json";
+ on-click = ''
+ if pgrep -x "hypridle" > /dev/null; then
+ pkill hypridle
+ else
+ hypridle &
+ fi
+ '';
+ };
+ }];
+ };
+}
diff --git a/nixos/homes/kylekrein/waybar/waybarstyle.css b/nixos/homes/kylekrein/waybar/waybarstyle.css
new file mode 100644
index 0000000..3a19a1d
--- /dev/null
+++ b/nixos/homes/kylekrein/waybar/waybarstyle.css
@@ -0,0 +1,92 @@
+* {
+ border: none;
+ font-family: Font Awesome, Roboto, Arial, sans-serif;
+ font-size: 13px;
+ color: #B9826A;/*#ffffff;*/
+ border-radius: 20px;
+}
+
+window {
+ /*font-weight: bold;*/
+}
+window#waybar {
+ background: transparent;/*rgba(0, 0, 0, 0);*/
+}
+/*-----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,119,179,0.6);
+}
+/*-----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,43,51,0.85);
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#temperature,
+#network,
+#pulseaudio,
+#custom-media,
+#tray,
+#mode,
+#custom-power,
+#custom-menu,
+#idle_inhibitor {
+ padding: 0 10px;
+}
+#mode {
+ color: #cc3436;
+ font-weight: bold;
+}
+#custom-power {
+ background-color: rgba(0,119,179,0.6);
+ border-radius: 100px;
+ margin: 5px 5px;
+ padding: 1px 1px 1px 6px;
+}
+/*-----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;
+}
+/*-----Colors----*/
+/*
+ *rgba(0,85,102,1),#005566 --> Indigo(dye)
+ *rgba(0,43,51,1),#002B33 --> Dark Green
+ *rgba(0,153,153,1),#009999 --> Persian Green
+ *
+ */
diff --git a/nixos/hosts/kylekrein-homepc/default.nix b/nixos/hosts/kylekrein-homepc/default.nix
index d6c9ad2..619388c 100644
--- a/nixos/hosts/kylekrein-homepc/default.nix
+++ b/nixos/hosts/kylekrein-homepc/default.nix
@@ -11,17 +11,13 @@
imports = [
../../hardware/nvidia
- ../../modules/hyprland
+ ../../modules/niri
../../modules/libvirt
../../users/kylekrein
(import ../../modules/libvirt/user.nix {username = "kylekrein";})
- ../../users/dima
- (import ../../modules/libvirt/user.nix {username = "dima";})
-
-
../../users/tania
];
sops.secrets."ssh_keys/${hwconfig.hostname}" = {};
@@ -54,15 +50,6 @@
user = "ollama";
group = "ollama";
};
- services.llama-cpp = {
- enable = false;
- model = "/home/kylekrein/Downloads/ds/DeepSeek-R1-GGUF/DeepSeek-R1-UD-IQ1_S/DeepSeek-R1-UD-IQ1_S-00001-of-00003.gguf";
- port = 10005;
- extraFlags = [
- "--ctx-size 1024" #context size
- "--n-gpu-layers 0"
- ];
- };
services.open-webui.enable = true;
#services.open-webui.package = unstable-pkgs.open-webui;
diff --git a/nixos/modules/hyprland/default.nix b/nixos/modules/hyprland/default.nix
index e542f7e..ee2ebea 100644
--- a/nixos/modules/hyprland/default.nix
+++ b/nixos/modules/hyprland/default.nix
@@ -1,5 +1,31 @@
{ pkgs, inputs, hwconfig, unstable-pkgs, ... }:
{
+ stylix = {
+ enable = true;
+ image = "${./wallpaper.jpg}";
+ autoEnable = true;
+ opacity = {
+ desktop = 0.0;#0.5;
+ };
+ targets = {
+ gtk.enable = true;
+ plymouth = {
+ enable = false;
+ #logo = ./fastfetch/nixos.png;
+ logoAnimated = false;
+ };
+ };
+ fonts = {
+ sizes = {
+ applications = 14;
+ desktop = 12;
+ popups = 12;
+ terminal = 16;
+ };
+ };
+ polarity = "dark";
+ base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
+ };
environment.systemPackages = with pkgs; [
#kando
diff --git a/nixos/modules/niri/default.nix b/nixos/modules/niri/default.nix
new file mode 100644
index 0000000..d53a016
--- /dev/null
+++ b/nixos/modules/niri/default.nix
@@ -0,0 +1,22 @@
+{ pkgs, inputs, ...}:
+{
+ nixpkgs.overlays = [
+ inputs.niri-flake.overlays.niri
+ ];
+ imports = [
+ inputs.niri-flake.nixosModules.niri
+ ];
+ programs.niri = {
+ enable = true;
+ package = pkgs.niri-unstable;
+ };
+ niri-flake.cache.enable = true;
+ environment.systemPackages = with pkgs;[
+ wl-clipboard
+ wayland-utils
+ libsecret
+ gamescope
+ xwayland-satellite-stable
+ swaybg
+ ];
+}
diff --git a/nixos/users/kylekrein/default.nix b/nixos/users/kylekrein/default.nix
index 54581be..1f33747 100644
--- a/nixos/users/kylekrein/default.nix
+++ b/nixos/users/kylekrein/default.nix
@@ -32,16 +32,13 @@ in {
nix.settings.trusted-users = [
"kylekrein"
];
-
- home-manager.users."${username}" = import ../../home.nix {
- inherit lib;
+ home-manager.extraSpecialArgs = {
inherit username;
inherit inputs;
inherit first-nixos-install;
inherit hwconfig;
- inherit config;
- inherit pkgs;
};
+ home-manager.users."${username}" = ../../home.nix;
kylekrein.services.autoUpgrade = {
#configDir = lib.mkForce "/home/${username}/nixos-config";
#user = lib.mkForce username;