diff --git a/.sops.yaml b/.sops.yaml
new file mode 100644
index 0000000..6447e8d
--- /dev/null
+++ b/.sops.yaml
@@ -0,0 +1,7 @@
+keys:
+ - &public_key age1wkmgn0m8ln5huvqfcxzwprlpvge82hg572vfuclv7natr7hmp5qs672vt9
+creation_rules:
+ - path_regex: secrets/.*$
+ key_groups:
+ - age:
+ - *public_key
diff --git a/flake.lock b/flake.lock
index 87211a5..859daed 100644
--- a/flake.lock
+++ b/flake.lock
@@ -532,7 +532,9 @@
"hyprlang": "hyprlang_2",
"hyprutils": "hyprutils_2",
"hyprwayland-scanner": "hyprwayland-scanner",
- "nixpkgs": "nixpkgs",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_2",
"xdph": "xdph"
@@ -874,11 +876,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1738410390,
- "narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=",
+ "lastModified": 1738680400,
+ "narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "3a228057f5b619feb3186e986dbe76278d707b6e",
+ "rev": "799ba5bffed04ced7067a91798353d360788b30d",
"type": "github"
},
"original": {
@@ -944,86 +946,6 @@
"type": "github"
}
},
- "nixpkgs_2": {
- "locked": {
- "lastModified": 1738680400,
- "narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "799ba5bffed04ced7067a91798353d360788b30d",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_3": {
- "locked": {
- "lastModified": 1738680400,
- "narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "799ba5bffed04ced7067a91798353d360788b30d",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_4": {
- "locked": {
- "lastModified": 1737370608,
- "narHash": "sha256-hFA6SmioeqvGW/XvZa9bxniAeulksCOcj3kokdNT/YE=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "300081d0cc72df578b02d914df941b8ec62240e6",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_5": {
- "locked": {
- "lastModified": 1736798957,
- "narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "9abb87b552b7f55ac8916b6fc9e5cb486656a2f3",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_6": {
- "locked": {
- "lastModified": 1735471104,
- "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
"nmd": {
"flake": false,
"locked": {
@@ -1043,7 +965,9 @@
"nur": {
"inputs": {
"flake-parts": "flake-parts_3",
- "nixpkgs": "nixpkgs_3",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
"treefmt-nix": "treefmt-nix"
},
"locked": {
@@ -1066,7 +990,9 @@
"flake-utils": "flake-utils_2",
"mnw": "mnw",
"nil": "nil",
- "nixpkgs": "nixpkgs_4",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
"nmd": "nmd",
"plugin-aerial-nvim": "plugin-aerial-nvim",
"plugin-alpha-nvim": "plugin-alpha-nvim",
@@ -3980,13 +3906,14 @@
"hyprland": "hyprland",
"lix-module": "lix-module",
"nix-index-database": "nix-index-database",
- "nixpkgs": "nixpkgs_2",
+ "nixpkgs": "nixpkgs",
"nixpkgs-master": "nixpkgs-master",
"nixpkgs-stable": "nixpkgs-stable",
"nur": "nur",
"nvf": "nvf",
"nypkgs": "nypkgs",
"programsdb": "programsdb",
+ "sops-nix": "sops-nix",
"stylix": "stylix",
"zen-browser": "zen-browser"
}
@@ -4013,6 +3940,26 @@
"type": "github"
}
},
+ "sops-nix": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1739262228,
+ "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=",
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "type": "github"
+ }
+ },
"stylix": {
"inputs": {
"base16": "base16",
@@ -4025,7 +3972,9 @@
"git-hooks": "git-hooks",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
- "nixpkgs": "nixpkgs_5",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
"systems": "systems_6",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
@@ -4281,14 +4230,16 @@
},
"zen-browser": {
"inputs": {
- "nixpkgs": "nixpkgs_6"
+ "nixpkgs": [
+ "nixpkgs"
+ ]
},
"locked": {
- "lastModified": 1738941466,
- "narHash": "sha256-mtHsTGEBFMH3e28bwX43pNFCP7xTb4VdMikOcJg36PQ=",
+ "lastModified": 1740554227,
+ "narHash": "sha256-xpwZeMw2gGenixGQDyVv+ja+epcR+EJ1BPuGFdgFS18=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
- "rev": "25356eff9ab70ccb01e70528fc8543ceb033a0c2",
+ "rev": "7de16ae319e6f6852274fa90b0d41c00049767c9",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 520866a..fb5fa7b 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,65 +1,63 @@
{
- description = ''
- $$\
- \__|
- $$\ $$\ $$$$$$$\ $$\ $$\ $$\ $$$$$$\ $$$$$$\ $$$$$$$\ $$$$$$\
- $$ | $$ |$$ __$$\ $$ |\$$\ $$ |$$ __$$\ $$ __$$\ $$ _____|$$ __$$\
- $$ | $$ |$$ | $$ |$$ | \$$\$$ / $$$$$$$$ |$$ | \__|\$$$$$$\ $$$$$$$$ |
- $$ | $$ |$$ | $$ |$$ | \$$$ / $$ ____|$$ | \____$$\ $$ ____|
- \$$$$$$ |$$ | $$ |$$ | \$ / \$$$$$$$\ $$ | $$$$$$$ |\$$$$$$$\
- \______/ \__| \__|\__| \_/ \_______|\__| \_______/ \_______|
+ description = '' .
+ $$\
+ \__|
+ $$\ $$\ $$$$$$$\ $$\ $$\ $$\ $$$$$$\ $$$$$$\ $$$$$$$\ $$$$$$\
+ $$ | $$ |$$ __$$\ $$ |\$$\ $$ |$$ __$$\ $$ __$$\ $$ _____|$$ __$$\
+ $$ | $$ |$$ | $$ |$$ | \$$\$$ / $$$$$$$$ |$$ | \__|\$$$$$$\ $$$$$$$$ |
+ $$ | $$ |$$ | $$ |$$ | \$$$ / $$ ____|$$ | \____$$\ $$ ____|
+ \$$$$$$ |$$ | $$ |$$ | \$ / \$$$$$$$\ $$ | $$$$$$$ |\$$$$$$$\
+ \______/ \__| \__|\__| \_/ \_______|\__| \_______/ \_______|
+
+ A nixos/hm flake
'';
- outputs = {
- self,
- stylix,
- nixpkgs,
- nixpkgs-master,
- nix-index-database,
- flake-parts,
- nypkgs,
- home-manager,
- nvf,
- lix-module,
- ...
- } @ inputs:
- flake-parts.lib.mkFlake {inherit inputs;} {
+ outputs = {self, ...} @ inputs: let
+ universe = import ./universe.nix;
+ system = "x86_64-linux";
+ in
+ inputs.flake-parts.lib.mkFlake {inherit inputs;} {
flake = let
- system = "x86_64-linux";
+ u = import ./ulib {inherit inputs system;};
in {
- nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
- specialArgs = {inherit inputs;};
+ nixosConfigurations."earth" = inputs.nixpkgs.lib.nixosSystem {
+ specialArgs = {inherit system inputs u;};
modules = [
- stylix.nixosModules.stylix
- lix-module.nixosModules.default
- ./hosts/nixos
+ inputs.stylix.nixosModules.stylix
+ inputs.lix-module.nixosModules.default
+ ./hosts/common
+ ./hosts/earth
+ universe
];
};
- homeConfigurations.tx0 = home-manager.lib.homeManagerConfiguration {
- pkgs = import nixpkgs {
+ homeConfigurations.tx0 = inputs.home-manager.lib.homeManagerConfiguration {
+ pkgs = import inputs.nixpkgs {
inherit system;
- config.allowUnfree = true;
- overlays = [];
};
- extraSpecialArgs = {inherit inputs;};
+ extraSpecialArgs = {inherit system inputs u;};
modules = [
- stylix.homeManagerModules.stylix
- nix-index-database.hmModules.nix-index
- nvf.homeManagerModules.default
+ inputs.stylix.homeManagerModules.stylix
+ inputs.nix-index-database.hmModules.nix-index
+ inputs.nvf.homeManagerModules.default
./home
+ universe
];
};
};
- systems = ["x86_64-linux"];
+ systems = [system];
};
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/release-24.11";
nixpkgs-master.url = "github:nixos/nixpkgs/master";
- nur.url = "github:nix-community/NUR";
+
+ nur = {
+ url = "github:nix-community/NUR";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
home-manager = {
url = "github:nix-community/home-manager";
@@ -67,8 +65,16 @@
};
flake-parts.url = "github:hercules-ci/flake-parts";
- stylix.url = "github:danth/stylix";
- zen-browser.url = "github:0xc000022070/zen-browser-flake";
+
+ stylix = {
+ url = "github:danth/stylix";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ zen-browser = {
+ url = "github:0xc000022070/zen-browser-flake";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
nix-index-database = {
url = "github:nix-community/nix-index-database";
@@ -90,15 +96,24 @@
inputs.nixpkgs.follows = "nixpkgs";
};
- nvf.url = "github:notashelf/nvf";
+ nvf = {
+ url = "github:notashelf/nvf";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
hyprland = {
url = "github:hyprwm/Hyprland/v0.46.2";
+ inputs.nixpkgs.follows = "nixpkgs";
};
lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
+
+ sops-nix = {
+ url = "github:Mic92/sops-nix";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
}
diff --git a/home/default.nix b/home/default.nix
index 8c5501b..f3fe312 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -1,5 +1,5 @@
-{inputs, ...}: {
- imports = inputs.nypkgs.legacyPackages."x86_64-linux".lib.umport {
+{u, ...}: {
+ imports = u.umport {
path = ./.;
include = [
diff --git a/home/profile.nix b/home/profile.nix
index 74cd5c2..7875515 100644
--- a/home/profile.nix
+++ b/home/profile.nix
@@ -5,12 +5,12 @@
}: {
home = {
username = "tx0";
- homeDirectory = "/home/tx0/";
+ homeDirectory = "/home/tx0";
stateVersion = "24.11";
sessionVariables = {
EDITOR = "${config.home.homeDirectory}/.nix-profile/bin/nvim";
HYPRSHOT_DIR = "${config.home.homeDirectory}/Pictures/Screenshots/";
- FLAKE = "${config.home.homeDirectory}/nixos/";
+ FLAKE = "${config.home.homeDirectory}/universe/";
NIXOS_OZONE_WL = 1;
ELECTRON_OZONE_PLATFORM_HINT = 1;
MOZ_ENABLE_WAYLAND = 1;
@@ -26,6 +26,4 @@
"file://${config.home.homeDirectory}/Documents/"
"file://${config.home.homeDirectory}/Pictures/Screenshots"
];
-
- universe.alacritty.enable = true;
}
diff --git a/home/programs/graphical/alacritty.nix b/home/programs/graphical/alacritty.nix
index ce9af2e..f60d4f3 100644
--- a/home/programs/graphical/alacritty.nix
+++ b/home/programs/graphical/alacritty.nix
@@ -3,9 +3,9 @@
config,
...
}: let
- cfg = config.universe.alacritty;
+ cfg = config.universe.programs.alacritty;
in {
- options.universe.alacritty = {
+ options.universe.programs.alacritty = {
enable = lib.mkEnableOption "alacritty terminal";
};
config = lib.mkIf cfg.enable {
diff --git a/home/programs/graphical/ghostty.nix b/home/programs/graphical/ghostty.nix
deleted file mode 100644
index 4cd1e4a..0000000
--- a/home/programs/graphical/ghostty.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{pkgs, ...}: {
- programs.ghostty = {
- enable = true;
- enableFishIntegration = true;
- installBatSyntax = true;
- installVimSyntax = false;
- clearDefaultKeybinds = true;
- settings = {
- window-padding-x = 10;
- window-padding-y = 10;
- window-vsync = true;
- window-decoration = "none";
- command = "tmux new";
- confirm-close-surface = false;
- };
- };
-}
diff --git a/home/programs/graphical/hyprland/binds.nix b/home/programs/graphical/hyprland/binds.nix
index c1a65fc..34928d1 100644
--- a/home/programs/graphical/hyprland/binds.nix
+++ b/home/programs/graphical/hyprland/binds.nix
@@ -1,74 +1,82 @@
-let
+{
+ config,
+ lib,
+ ...
+}: let
terminal = "foot";
fileManager = "nautilus -w";
discord = "vesktop";
telegram = "telegram-desktop";
browser = "zen";
menu = "anyrun";
+
+ cfg = config.universe.de.hyprland;
in {
- wayland.windowManager.hyprland.settings = {
- bind = [
- # Software
- "SUPER, RETURN, exec, ${terminal}"
- "SUPER, E, exec, ${fileManager}"
- "SUPER, D, exec, ${discord}"
- "SUPER, T, exec, ${telegram}"
- "SUPER, B, exec, ${browser}"
+ config = lib.mkIf cfg.enable {
+ wayland.windowManager.hyprland.settings = {
+ bind = [
+ # Software
+ "SUPER, RETURN, exec, ${terminal}"
+ "SUPER, E, exec, ${fileManager}"
+ "SUPER, D, exec, ${discord}"
+ "SUPER, T, exec, ${telegram}"
+ "SUPER, B, exec, ${browser}"
- # Controls
- "SUPER, Q, killactive, "
- "SUPER, M, exit, "
- "SUPER, C, togglefloating, "
- "SUPER, SPACE, exec, ${menu}"
- "SUPER, Z, pseudo"
- "SUPER, V, layoutmsg, swapsplit"
- "SUPER, X, togglesplit"
- "SUPER, Home, exec, hyprshot -m region"
- "SUPER, Prior, exec, hyprshot -m window"
- "SUPER, Next, exec, hyprshot -m output"
- "SUPER Ctrl, Q, exec, $locker"
+ # Controls
+ "SUPER, Q, killactive, "
+ "SUPER, M, exit, "
+ "SUPER, C, togglefloating, "
+ "SUPER, SPACE, exec, ${menu}"
+ "SUPER, Z, pseudo"
+ "SUPER, V, layoutmsg, swapsplit"
+ "SUPER, X, togglesplit"
+ "SUPER, Home, exec, hyprshot -m region"
+ "SUPER, Prior, exec, hyprshot -m window"
+ "SUPER, Next, exec, hyprshot -m output"
+ "SUPER Ctrl, Q, exec, $locker"
- # Media
- ", XF86AudioPlay, exec, playerctl play-pause"
- ", XF86AudioNext, exec, playerctl next"
- ", XF86AudioPrev, exec, playerctl previous"
- ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
- ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+"
- ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
+ # Media
+ ", XF86AudioPlay, exec, playerctl play-pause"
+ ", XF86AudioNext, exec, playerctl next"
+ ", XF86AudioPrev, exec, playerctl previous"
+ ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+"
+ ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
- # Focus
- "SUPER, left, movefocus, l "
- "SUPER, right, movefocus, r "
- "SUPER, up, movefocus, u "
- "SUPER, down, movefocus, d "
+ # Focus
+ "SUPER, left, movefocus, l "
+ "SUPER, right, movefocus, r "
+ "SUPER, up, movefocus, u "
+ "SUPER, down, movefocus, d "
- # Workspaces
- "SUPER, 1, workspace, 1 "
- "SUPER, 2, workspace, 2 "
- "SUPER, 3, workspace, 3 "
- "SUPER, 4, workspace, 4 "
- "SUPER, 5, workspace, 5 "
- "SUPER, 6, workspace, 6 "
- "SUPER, 7, workspace, 7"
- "SUPER, 8, workspace, 8"
- "SUPER, 9, workspace, 9"
- "SUPER, 0, workspace, 10"
- "SUPER SHIFT, 1, movetoworkspace, 1"
- "SUPER SHIFT, 2, movetoworkspace, 2"
- "SUPER SHIFT, 3, movetoworkspace, 3"
- "SUPER SHIFT, 4, movetoworkspace, 4"
- "SUPER SHIFT, 5, movetoworkspace, 5"
- "SUPER SHIFT, 6, movetoworkspace, 6"
- "SUPER SHIFT, 7, movetoworkspace, 7"
- "SUPER SHIFT, 8, movetoworkspace, 8"
- "SUPER SHIFT, 9, movetoworkspace, 9"
- "SUPER SHIFT, 0, movetoworkspace, 10"
- "SUPER, mouse_down, workspace, e+1"
- "SUPER, mouse_up, workspace, e-1"
- ];
- bindm = [
- "SUPER, mouse:272, movewindow"
- "SUPER, mouse:273, resizewindow"
- ];
+ # Workspaces
+ "SUPER, 1, workspace, 1 "
+ "SUPER, 2, workspace, 2 "
+ "SUPER, 3, workspace, 3 "
+ "SUPER, 4, workspace, 4 "
+ "SUPER, 5, workspace, 5 "
+ "SUPER, 6, workspace, 6 "
+ "SUPER, 7, workspace, 7"
+ "SUPER, 8, workspace, 8"
+ "SUPER, 9, workspace, 9"
+ "SUPER, 0, workspace, 10"
+ "SUPER SHIFT, 1, movetoworkspace, 1"
+ "SUPER SHIFT, 2, movetoworkspace, 2"
+ "SUPER SHIFT, 3, movetoworkspace, 3"
+ "SUPER SHIFT, 4, movetoworkspace, 4"
+ "SUPER SHIFT, 5, movetoworkspace, 5"
+ "SUPER SHIFT, 6, movetoworkspace, 6"
+ "SUPER SHIFT, 7, movetoworkspace, 7"
+ "SUPER SHIFT, 8, movetoworkspace, 8"
+ "SUPER SHIFT, 9, movetoworkspace, 9"
+ "SUPER SHIFT, 0, movetoworkspace, 10"
+ "SUPER, mouse_down, workspace, e+1"
+ "SUPER, mouse_up, workspace, e-1"
+ ];
+ bindm = [
+ "SUPER, mouse:272, movewindow"
+ "SUPER, mouse:273, resizewindow"
+ ];
+ };
};
}
diff --git a/home/programs/graphical/hyprland/default.nix b/home/programs/graphical/hyprland/default.nix
index 5576647..3cf0a4c 100644
--- a/home/programs/graphical/hyprland/default.nix
+++ b/home/programs/graphical/hyprland/default.nix
@@ -1,143 +1,154 @@
{
pkgs,
inputs,
+ config,
+ lib,
...
-}: {
- wayland.windowManager.hyprland = {
- enable = true;
- package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
- portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
- systemd.variables = ["--all"];
- settings = {
- monitor = [
- "DP-1, 3440x1440@100, 1920x0, 1"
- "HDMI-A-1, 1920x1200@60, 0x0, 1"
- ];
+}:
+with lib; let
+ cfg = config.universe.de.hyprland;
+in {
+ options.universe.de.hyprland = {
+ enable = mkEnableOption "hyprland";
+ };
- general = {
- gaps_in = 15;
- gaps_out = 40;
- border_size = 3;
- resize_on_border = false;
- allow_tearing = false;
- layout = "dwindle";
- };
+ config = mkIf cfg.enable {
+ wayland.windowManager.hyprland = {
+ enable = true;
+ package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
+ portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
+ systemd.variables = ["--all"];
+ settings = {
+ monitor = [
+ "DP-1, 3440x1440@100, 1920x0, 1"
+ "HDMI-A-1, 1920x1200@60, 0x0, 1"
+ ];
- decoration = {
- rounding = 10;
- active_opacity = 1.0;
- inactive_opacity = 1.0;
-
- dim_inactive = false;
- dim_strength = 0.2;
-
- blur = {
- enabled = true;
- size = 3;
- passes = 4;
- noise = 0.07;
- xray = true;
- brightness = 0.4;
- popups = false;
+ general = {
+ gaps_in = 15;
+ gaps_out = 40;
+ border_size = 3;
+ resize_on_border = false;
+ allow_tearing = false;
+ layout = "dwindle";
};
- };
- dwindle = {
- pseudotile = false;
- preserve_split = true;
- smart_split = false;
- smart_resizing = false;
- };
+ decoration = {
+ rounding = 10;
+ active_opacity = 1.0;
+ inactive_opacity = 1.0;
- misc = {
- disable_hyprland_logo = true;
- };
+ dim_inactive = false;
+ dim_strength = 0.2;
- layerrule = [
- "blur, notifications"
- "ignorezero, notifications"
+ blur = {
+ enabled = true;
+ size = 3;
+ passes = 4;
+ noise = 0.07;
+ xray = true;
+ brightness = 0.4;
+ popups = false;
+ };
+ };
- "blur, rofi"
- "ignorezero, rofi"
+ dwindle = {
+ pseudotile = false;
+ preserve_split = true;
+ smart_split = false;
+ smart_resizing = false;
+ };
- "animation fade, selection"
- "animation slide top, anyrun"
- ];
+ misc = {
+ disable_hyprland_logo = true;
+ };
- windowrulev2 = [
- "suppressevent maximize, class:.*"
- "float, class:^(com.saivert.pwvucontrol)$"
- "size 696 570, class:^(com.saivert.pwvucontrol)$"
- "move 1654 807, class:^(com.saivert.pwvucontrol)$"
- "monitor DP-1, class:^(com.saivert.pwvucontrol)$"
- "opacity 0.9, class:^(com.saivert.pwvucontrol)$"
- "maximize, class:^(org.telegram.desktop)$,title:^(Media viewer)$"
- "float, class:^(org.telegram.desktop)$,title:^(Media viewer)$"
- "float, class:^(nemo)$,title:^.*(Properties)$"
- "float, class:^(zen-alpha)$,title:^(Library)$"
- "opacity 0.9, class:^(zen-alpha)$,title:^(Library)$"
- "opacity 0.9, class:^(Spotify)$"
- "noblur, class:^()$,title:^()$"
- "plugin:chromakey,fullscreen:0"
- "opacity 0.999,fullscreen:0"
- ];
+ layerrule = [
+ "blur, notifications"
+ "ignorezero, notifications"
- animations = {
- enabled = true;
- # bezier = [
- # "myBezier, 0.05, 1, 0.1, 1"
- # ];
- # animation = [
- # "windows, 1, 7, myBezier, slide"
- # "fade, 1, 7, myBezier"
- # "workspaces, 1, 6, myBezier"
- # "layers, 1, 6, myBezier, slide bottom"
- # ];
+ "blur, rofi"
+ "ignorezero, rofi"
- bezier = [
- "easeOutQuint,0.23,1,0.32,1"
- "aseInOutCubic,0.65,0.05,0.36,1"
- "linear,0,0,1,1"
- "almostLinear,0.5,0.5,0.75,1.0"
- "quick,0.15,0,0.1,1"
+ "animation fade, selection"
+ "animation slide top, anyrun"
];
- animation = [
- "global, 1, 10, default"
- "border, 1, 5.39, easeOutQuint"
- "windows, 1, 4.79, easeOutQuint"
- "windowsIn, 1, 4.1, easeOutQuint, popin 87%"
- "windowsOut, 1, 1.49, linear, popin 87%"
- "fadeIn, 1, 1.73, almostLinear"
- "fadeOut, 1, 1.46, almostLinear"
- "fade, 1, 3.03, quick"
- "layers, 1, 3.81, easeOutQuint"
- "layersIn, 1, 4, easeOutQuint, fade"
- "layersOut, 1, 1.5, linear, fade"
- "fadeLayersIn, 1, 1.79, almostLinear"
- "fadeLayersOut, 1, 1.39, almostLinear"
- "workspaces, 1, 1.94, aseInOutCubic"
- "workspacesIn, 1, 1.21, aseInOutCubic"
- "workspacesOut, 1, 1.94, aseInOutCubic"
+ windowrulev2 = [
+ "suppressevent maximize, class:.*"
+ "float, class:^(com.saivert.pwvucontrol)$"
+ "size 696 570, class:^(com.saivert.pwvucontrol)$"
+ "move 1654 807, class:^(com.saivert.pwvucontrol)$"
+ "monitor DP-1, class:^(com.saivert.pwvucontrol)$"
+ "opacity 0.9, class:^(com.saivert.pwvucontrol)$"
+ "maximize, class:^(org.telegram.desktop)$,title:^(Media viewer)$"
+ "float, class:^(org.telegram.desktop)$,title:^(Media viewer)$"
+ "float, class:^(nemo)$,title:^.*(Properties)$"
+ "float, class:^(zen-alpha)$,title:^(Library)$"
+ "opacity 0.9, class:^(zen-alpha)$,title:^(Library)$"
+ "opacity 0.9, class:^(Spotify)$"
+ "noblur, class:^()$,title:^()$"
+ "plugin:chromakey,fullscreen:0"
+ "opacity 0.999,fullscreen:0"
+ ];
+
+ animations = {
+ enabled = true;
+ # bezier = [
+ # "myBezier, 0.05, 1, 0.1, 1"
+ # ];
+ # animation = [
+ # "windows, 1, 7, myBezier, slide"
+ # "fade, 1, 7, myBezier"
+ # "workspaces, 1, 6, myBezier"
+ # "layers, 1, 6, myBezier, slide bottom"
+ # ];
+
+ bezier = [
+ "easeOutQuint,0.23,1,0.32,1"
+ "aseInOutCubic,0.65,0.05,0.36,1"
+ "linear,0,0,1,1"
+ "almostLinear,0.5,0.5,0.75,1.0"
+ "quick,0.15,0,0.1,1"
+ ];
+
+ animation = [
+ "global, 1, 10, default"
+ "border, 1, 5.39, easeOutQuint"
+ "windows, 1, 4.79, easeOutQuint"
+ "windowsIn, 1, 4.1, easeOutQuint, popin 87%"
+ "windowsOut, 1, 1.49, linear, popin 87%"
+ "fadeIn, 1, 1.73, almostLinear"
+ "fadeOut, 1, 1.46, almostLinear"
+ "fade, 1, 3.03, quick"
+ "layers, 1, 3.81, easeOutQuint"
+ "layersIn, 1, 4, easeOutQuint, fade"
+ "layersOut, 1, 1.5, linear, fade"
+ "fadeLayersIn, 1, 1.79, almostLinear"
+ "fadeLayersOut, 1, 1.39, almostLinear"
+ "workspaces, 1, 1.94, aseInOutCubic"
+ "workspacesIn, 1, 1.21, aseInOutCubic"
+ "workspacesOut, 1, 1.94, aseInOutCubic"
+ ];
+ };
+
+ input = {
+ kb_layout = "us,ru";
+ kb_options = "grp:caps_toggle";
+ follow_mouse = 1;
+ sensitivity = 0;
+ };
+
+ exec-once = [
+ "hyprctl setcursor Bibata-Modern-Classic 24"
+ "waybar"
+ "telegram-desktop -startintray"
+ "vesktop"
+ "nm-applet"
+ "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
+ "hyprpaper"
];
};
-
- input = {
- kb_layout = "us,ru";
- kb_options = "grp:caps_toggle";
- follow_mouse = 1;
- sensitivity = 0;
- };
-
- exec-once = [
- "hyprctl setcursor Bibata-Modern-Classic 24"
- "waybar"
- "telegram-desktop -startintray"
- "vesktop"
- "nm-applet"
- "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
- "hyprpaper"
- ];
};
};
}
diff --git a/home/programs/graphical/waybar/assets/vol.svg b/home/programs/graphical/waybar/assets/vol.svg
deleted file mode 100644
index 47f6ec0..0000000
--- a/home/programs/graphical/waybar/assets/vol.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/home/programs/graphical/waybar/default.nix b/home/programs/graphical/waybar/default.nix
index 5859d8a..2a939d3 100644
--- a/home/programs/graphical/waybar/default.nix
+++ b/home/programs/graphical/waybar/default.nix
@@ -1,405 +1,359 @@
{
pkgs,
config,
+ lib,
...
-}: let
+}:
+with lib; let
+ cfg = config.universe.de.waybar;
+
music-script = pkgs.callPackage ./scripts/music {};
in {
- programs.waybar = {
- enable = true;
- package = pkgs.waybar;
+ options.universe.de.waybar = {
+ enable = mkEnableOption "waybar";
settings = {
- main = {
- name = "main";
- layer = "top";
- position = "bottom";
- # output = ["DP-1"];
- height = 50;
- width = 1800;
- spacing = 0;
- margin-top = -15;
- margin-bottom = 0;
-
- modules-left = [
- "tray"
-
- "custom/cpu"
- "cpu"
-
- "custom/memory"
- "memory"
-
- "custom/player-btn-play"
- #"custom/player-btn-prev"
- #"custom/player-btn-next"
- "custom/player-text"
- ];
-
- modules-center = [
- "hyprland/workspaces"
- ];
-
- modules-right = [
- "wireplumber#icon"
- "wireplumber#text"
-
- "custom/language"
- "hyprland/language"
-
- "custom/clock"
- "clock"
-
- "custom/date"
- "clock#date"
- ];
-
- "tray" = {
- icon-size = 15;
- spacing = 16;
+ radiuses = {
+ outer = mkOption {
+ type = types.int;
+ default = 100;
};
-
- "custom/cpu" = {
- tooltip = false;
- format = "";
+ inner = mkOption {
+ type = types.int;
+ default = 40;
};
- "cpu" = {
- interval = 1;
- format = "{usage}%";
- };
-
- "custom/memory" = {
- tooltip = false;
- format = "";
- };
- "memory" = {
- interval = 1;
- format = "{used:0.1f}Gb";
- };
-
- "custom/player-btn-prev" = {
- tooltip = false;
- on-click = "${pkgs.playerctl}/bin/playerctl previous";
- format = "{}";
- return-type = "json";
- exec = "${music-script}/bin/main.py --icon-text ''";
- };
- "custom/player-btn-play" = {
- tooltip = false;
- format = "{}";
- max-length = 40;
- return-type = "json";
- on-click = "${pkgs.playerctl}/bin/playerctl play-pause";
- exec = "${music-script}/bin/main.py --icon";
- };
- "custom/player-btn-next" = {
- tooltip = false;
- on-click = "${pkgs.playerctl}/bin/playerctl next";
- format = "{}";
- return-type = "json";
- exec = "${music-script}/bin/main.py --icon-text ''";
- };
- "custom/player-text" = {
- tooltip-format = "{}";
- format = "{}";
- max-length = 40;
- return-type = "json";
- escape = false;
- exec = "${music-script}/bin/main.py";
- };
-
- "hyprland/workspaces" = {
- format = "{name}";
- on-click = "activate";
- tooltip = false;
- "persistent_workspaces" = {
- "*" = [];
- };
- };
-
- "wireplumber#icon" = {
- tooltip = false;
- scroll-step = 2;
- format = "{icon}";
- format-icons = ["" "" ""];
- format-muted = "";
- on-click = "pwvucontrol";
- max-volume = 100;
- };
- "wireplumber#text" = {
- scroll-step = 2;
- format = "{volume}%";
- on-click = "pwvucontrol";
- max-volume = 100;
- };
-
- "custom/language" = {
- tooltip = false;
- format = "";
- };
- "hyprland/language" = {
- format = "{}";
- format-en = "Eng";
- format-ru = "Rus";
- tooltip-format = "{}";
- };
-
- "custom/clock" = {
- tooltip = false;
- format = "";
- };
- "clock" = {
- tooltip = false;
- format = "{:%H:%M}";
- timezone = "Asia/Yekaterinburg";
- };
-
- "custom/date" = {
- tooltip = false;
- format = "";
- };
- "clock#date" = {
- tooltip-format = "{:%Y %B}\n{calendar}";
- format = "{:%b %d}";
- timezone = "Asia/Yekaterinburg";
+ bar = mkOption {
+ type = types.int;
+ default = 25;
};
};
-
- /*
- second = {
- name = "second";
- layer = "top";
- position = "bottom";
- output = ["HDMI-A-1"];
- height = 50;
- width = 900;
- spacing = 0;
- margin-top = -15;
- margin-bottom = 0;
-
- modules-left = [
- "tray"
- ];
-
- modules-center = [
- "hyprland/workspaces"
- ];
-
- modules-right = [
- "wireplumber#icon"
- "wireplumber#text"
-
- "custom/clock"
- "clock"
-
- "custom/date"
- "clock#date"
- ];
-
- "tray" = {
- icon-size = 15;
- spacing = 16;
+ gapps = {
+ outer = mkOption {
+ type = types.int;
+ default = 6;
};
-
- "hyprland/workspaces" = {
- format = "{name}";
- on-click = "activate";
- tooltip = false;
- "persistent_workspaces" = {
- "*" = [];
- };
+ inner = mkOption {
+ type = types.int;
+ default = 8;
};
-
- "wireplumber#icon" = {
- tooltip = false;
- scroll-step = 2;
- format = "{icon}";
- format-icons = ["" "" ""];
- format-muted = "";
- on-click = "pwvucontrol";
- max-volume = 100;
- };
- "wireplumber#text" = {
- scroll-step = 2;
- format = "{volume}%";
- on-click = "pwvucontrol";
- max-volume = 100;
- };
-
- "custom/clock" = {
- tooltip = false;
- format = "";
- };
- "clock" = {
- tooltip = false;
- format = "{:%H:%M}";
- timezone = "Asia/Yekaterinburg";
- };
-
- "custom/date" = {
- tooltip = false;
- format = "";
- };
- "clock#date" = {
- tooltip-format = "{:%Y %B}\n{calendar}";
- format = "{:%b %d}";
- timezone = "Asia/Yekaterinburg";
+ chips = mkOption {
+ type = types.int;
+ default = 4;
+ };
+ };
+ sizes = {
+ icons = mkOption {
+ type = types.int;
+ default = 20;
+ };
+ text = mkOption {
+ type = types.int;
+ default = 15;
};
};
- */
};
+ };
+ config = mkIf cfg.enable {
+ programs.waybar = {
+ enable = true;
+ package = pkgs.waybar;
+ settings = {
+ main = {
+ name = "main";
+ layer = "top";
+ position = "bottom";
+ height = 50;
+ width = 1800;
+ spacing = 0;
+ margin-top = -15;
+ margin-bottom = 0;
- style = let
- outer-radius = 100;
- inner-radius = 40;
- bar-radius = 25;
- outer-gapps = 6;
- inner-gapps = 8;
- chip-gapps = 4;
- icon-size = 20;
- text-size = 15;
+ modules-left = [
+ "tray"
- s = x: builtins.toString x;
- half = x: s ((builtins.floor (x * 10 / 2) * 1.0) / 10);
- in
- with config.lib.stylix.colors.withHashtag;
- /*
- css
- */
- ''
- * {
- font-family: "${config.stylix.fonts.serif.name}";
- font-weight: bold;
- font-size: ${s text-size}px;
- min-height: 0px;
- }
+ "custom/cpu"
+ "cpu"
- window#waybar {
- background-color: ${base01};
- transition-duration: 0.5s;
- border-radius: ${s bar-radius}px ${s bar-radius}px 0px 0px;
- /* border-radius: ${s bar-radius}px; */
- }
+ "custom/memory"
+ "memory"
- #workspaces {
- font-size: 14px;
- background-color: ${base00};
- margin: ${s outer-gapps}px ${half inner-gapps}px;
- padding: 4px;
- border-radius: ${s outer-radius}px;
- }
+ "custom/player-btn-play"
+ "custom/player-text"
+ ];
- #workspaces button {
- background-color: ${base00};
- color: ${base04};
- padding: 2px 4px;
- margin: 3px;
- border-radius: ${s outer-radius}px;
- }
+ modules-center = [
+ "hyprland/workspaces"
+ ];
- #workspaces button:hover {
- background-color: ${base02};
- color: ${base06};
- }
+ modules-right = [
+ "wireplumber#icon"
+ "wireplumber#text"
- #workspaces button.active {
- background-color: ${base05};
- color: ${base01};
- }
+ "custom/language"
+ "hyprland/language"
- /* global rules */
- #custom-cpu,
- #custom-memory,
- #custom-language,
- #custom-clock,
- #custom-date,
- #custom-player-btn-play,
- #custom-player-btn-prev,
- #custom-player-btn-next,
- #custom-player-text,
- #battery,
- #wireplumber,
- #tray,
- #language,
- #clock,
- #cpu,
- #memory,
- #custom-spotify {
- background: ${base00};
- border-style: none;
- border-radius: ${s outer-radius}px;
- color: ${base05};
- margin: ${s outer-gapps}px ${half inner-gapps}px;
- padding: 0px 10px;
- }
+ "custom/clock"
+ "clock"
- #tray {
- margin: ${s outer-gapps}px ${half chip-gapps}px ${s outer-gapps}px ${s outer-gapps}px;
- }
+ "custom/date"
+ "clock#date"
+ ];
- /* icon chips */
- #wireplumber.icon,
- #custom-memory,
- #custom-language,
- #custom-clock,
- #custom-date,
- #custom-player-btn-prev,
- #custom-player-btn-next,
- #custom-player-btn-play,
- #custom-cpu {
- font-size: ${s icon-size}px;
- font-family: "Material Symbols Rounded";
- min-width: 25px;
- }
+ "tray" = {
+ cfg.sizes.icons = 15;
+ spacing = 16;
+ };
- /* text chips */
- #wireplumber.text,
- #memory,
- #language,
- #clock,
- #cpu {
- min-width: 40px;
- }
+ "custom/cpu" = {
+ tooltip = false;
+ format = "";
+ };
+ "cpu" = {
+ interval = 1;
+ format = "{usage}%";
+ };
- /* start chips */
- #custom-cpu,
- #custom-memory,
- #custom-player-btn-play,
- #wireplumber.icon,
- #custom-language,
- #custom-clock,
- #custom-date {
- padding: 0px 7px 0px 10px;
- margin: ${s outer-gapps}px ${half chip-gapps}px ${s outer-gapps}px ${half inner-gapps}px;
- border-radius: ${s outer-radius}px ${s inner-radius}px ${s inner-radius}px ${s outer-radius}px
- }
+ "custom/memory" = {
+ tooltip = false;
+ format = "";
+ };
+ "memory" = {
+ interval = 1;
+ format = "{used:0.1f}Gb";
+ };
- /* center chips */
- #custom-player-btn-next,
- #custom-player-btn-prev {
- margin: ${s outer-gapps}px ${half chip-gapps}px ${s outer-gapps}px ${half chip-gapps}px;
- border-radius: ${s (inner-radius / 4)}px;
- min-width: 15px;
- }
+ "custom/player-btn-prev" = {
+ tooltip = false;
+ on-click = "${pkgs.playerctl}/bin/playerctl previous";
+ format = "{}";
+ return-type = "json";
+ exec = "${music-script}/bin/main.py --icon-text ''";
+ };
+ "custom/player-btn-play" = {
+ tooltip = false;
+ format = "{}";
+ max-length = 40;
+ return-type = "json";
+ on-click = "${pkgs.playerctl}/bin/playerctl play-pause";
+ exec = "${music-script}/bin/main.py --icon";
+ };
+ "custom/player-btn-next" = {
+ tooltip = false;
+ on-click = "${pkgs.playerctl}/bin/playerctl next";
+ format = "{}";
+ return-type = "json";
+ exec = "${music-script}/bin/main.py --icon-text ''";
+ };
+ "custom/player-text" = {
+ tooltip-format = "{}";
+ format = "{}";
+ max-length = 40;
+ return-type = "json";
+ escape = false;
+ exec = "${music-script}/bin/main.py";
+ };
- /* end chips */
- #cpu,
- #memory,
- #custom-player-text,
- #wireplumber.text,
- #language,
- #clock{
- padding: 0px 10px 0px 7px;
- margin: ${s outer-gapps}px ${half inner-gapps}px ${s outer-gapps}px ${half chip-gapps}px;
- border-radius: ${s inner-radius}px ${s outer-radius}px ${s outer-radius}px ${s inner-radius}px
- }
+ "hyprland/workspaces" = {
+ format = "{name}";
+ on-click = "activate";
+ tooltip = false;
+ "persistent_workspaces" = {
+ "*" = [];
+ };
+ };
- #wireplumber.icon.muted {
- color: ${base08};
- }
+ "wireplumber#icon" = {
+ tooltip = false;
+ scroll-step = 2;
+ format = "{icon}";
+ format-icons = ["" "" ""];
+ format-muted = "";
+ on-click = "pwvucontrol";
+ max-volume = 100;
+ };
+ "wireplumber#text" = {
+ scroll-step = 2;
+ format = "{volume}%";
+ on-click = "pwvucontrol";
+ max-volume = 100;
+ };
- #clock.date {
- margin: ${s outer-gapps}px ${s outer-gapps}px ${s outer-gapps}px ${half chip-gapps}px;
- }
- '';
+ "custom/language" = {
+ tooltip = false;
+ format = "";
+ };
+ "hyprland/language" = {
+ format = "{}";
+ format-en = "Eng";
+ format-ru = "Rus";
+ tooltip-format = "{}";
+ };
+
+ "custom/clock" = {
+ tooltip = false;
+ format = "";
+ };
+ "clock" = {
+ tooltip = false;
+ format = "{:%H:%M}";
+ timezone = "Asia/Yekaterinburg";
+ };
+
+ "custom/date" = {
+ tooltip = false;
+ format = "";
+ };
+ "clock#date" = {
+ tooltip-format = "{:%Y %B}\n{calendar}";
+ format = "{:%b %d}";
+ timezone = "Asia/Yekaterinburg";
+ };
+ };
+ };
+
+ style = let
+ s = x: builtins.toString x;
+ half = x: s ((builtins.floor (x * 10 / 2) * 1.0) / 10);
+ in
+ with config.lib.stylix.colors.withHashtag;
+ /*
+ css
+ */
+ ''
+ * {
+ font-family: "${config.stylix.fonts.serif.name}";
+ font-weight: bold;
+ font-size: ${s cfg.settings.sizes.text}px;
+ min-height: 0px;
+ }
+
+ window#waybar {
+ background-color: ${base01};
+ transition-duration: 0.5s;
+ border-radius: ${s cfg.settings.radiuses.bar}px ${s cfg.settings.radiuses.bar}px 0px 0px;
+ /* border-radius: ${s cfg.settings.radiuses.bar}px; */
+ }
+
+ #workspaces {
+ font-size: 14px;
+ background-color: ${base00};
+ margin: ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.inner}px;
+ padding: 4px;
+ border-radius: ${s cfg.settings.radiuses.outer}px;
+ }
+
+ #workspaces button {
+ background-color: ${base00};
+ color: ${base04};
+ padding: 2px 4px;
+ margin: 3px;
+ border-radius: ${s cfg.settings.radiuses.outer}px;
+ }
+
+ #workspaces button:hover {
+ background-color: ${base02};
+ color: ${base06};
+ }
+
+ #workspaces button.active {
+ background-color: ${base05};
+ color: ${base01};
+ }
+
+ /* global rules */
+ #custom-cpu,
+ #custom-memory,
+ #custom-language,
+ #custom-clock,
+ #custom-date,
+ #custom-player-btn-play,
+ #custom-player-btn-prev,
+ #custom-player-btn-next,
+ #custom-player-text,
+ #battery,
+ #wireplumber,
+ #tray,
+ #language,
+ #clock,
+ #cpu,
+ #memory,
+ #custom-spotify {
+ background: ${base00};
+ border-style: none;
+ border-radius: ${s cfg.settings.radiuses.outer}px;
+ color: ${base05};
+ margin: ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.inner}px;
+ padding: 0px 10px;
+ }
+
+ #tray {
+ margin: ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.chips}px ${s cfg.settings.gapps.outer}px ${s cfg.settings.gapps.outer}px;
+ }
+
+ /* icon chips */
+ #wireplumber.icon,
+ #custom-memory,
+ #custom-language,
+ #custom-clock,
+ #custom-date,
+ #custom-player-btn-prev,
+ #custom-player-btn-next,
+ #custom-player-btn-play,
+ #custom-cpu {
+ font-size: ${s cfg.settings.sizes.icons}px;
+ font-family: "Material Symbols Rounded";
+ min-width: 25px;
+ }
+
+ /* text chips */
+ #wireplumber.text,
+ #memory,
+ #language,
+ #clock,
+ #cpu {
+ min-width: 40px;
+ }
+
+ /* start chips */
+ #custom-cpu,
+ #custom-memory,
+ #custom-player-btn-play,
+ #wireplumber.icon,
+ #custom-language,
+ #custom-clock,
+ #custom-date {
+ padding: 0px 7px 0px 10px;
+ margin: ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.chips}px ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.inner}px;
+ border-radius: ${s cfg.settings.radiuses.outer}px ${s cfg.settings.radiuses.inner}px ${s cfg.settings.radiuses.inner}px ${s cfg.settings.radiuses.outer}px
+ }
+
+ /* center chips */
+ #custom-player-btn-next,
+ #custom-player-btn-prev {
+ margin: ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.chips}px ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.chips}px;
+ border-radius: ${s (cfg.settings.radiuses.inner / 4)}px;
+ min-width: 15px;
+ }
+
+ /* end chips */
+ #cpu,
+ #memory,
+ #custom-player-text,
+ #wireplumber.text,
+ #language,
+ #clock{
+ padding: 0px 10px 0px 7px;
+ margin: ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.inner}px ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.chips}px;
+ border-radius: ${s cfg.settings.radiuses.inner}px ${s cfg.settings.radiuses.outer}px ${s cfg.settings.radiuses.outer}px ${s cfg.settings.radiuses.inner}px
+ }
+
+ #wireplumber.icon.muted {
+ color: ${base08};
+ }
+
+ #clock.date {
+ margin: ${s cfg.settings.gapps.outer}px ${s cfg.settings.gapps.outer}px ${s cfg.settings.gapps.outer}px ${half cfg.settings.gapps.chips}px;
+ }
+ '';
+ };
};
}
diff --git a/home/programs/terminal/nh.nix b/home/programs/terminal/nh.nix
new file mode 100644
index 0000000..38257ad
--- /dev/null
+++ b/home/programs/terminal/nh.nix
@@ -0,0 +1,10 @@
+{...}: {
+ programs.nh = {
+ enable = true;
+ clean = {
+ enable = true;
+ dates = "weekly";
+ extraArgs = "--keep-since 7d";
+ };
+ };
+}
diff --git a/home/system/packages/default.nix b/home/system/packages/default.nix
index 3161e09..025cead 100644
--- a/home/system/packages/default.nix
+++ b/home/system/packages/default.nix
@@ -5,7 +5,7 @@
}: {
home.packages = with pkgs; [
# flakes
- inputs.zen-browser.packages.${system}.default
+ inputs.zen-browser.packages.${system}.beta
(callPackage ./derivations/bunnyfetch {})
#fonts
@@ -35,6 +35,7 @@
zip
unzip
nix-output-monitor
+ sops
#net
amneziawg-go
diff --git a/home/theming/stylix.nix b/home/theming/stylix.nix
new file mode 100644
index 0000000..a883872
--- /dev/null
+++ b/home/theming/stylix.nix
@@ -0,0 +1,107 @@
+{
+ pkgs,
+ config,
+ inputs,
+ lib,
+ ...
+}:
+with lib; let
+ cfg = config.universe.theme.stylix;
+in {
+ imports = [
+ inputs.stylix.homeManagerModules.stylix
+ ];
+
+ options.universe.theme.stylix = {
+ enable = mkEnableOption "stylix";
+ settings = {
+ useLutgen = mkEnableOption "lutgen";
+
+ wallpapers = mkOption {
+ type = types.path;
+ };
+
+ base16Scheme = mkOption {
+ type = types.str;
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ stylix = {
+ enable = true;
+ base16Scheme = cfg.settings.base16Scheme;
+ image =
+ if cfg.settings.useLutgen
+ then let
+ level = 10;
+ lum = 1.0;
+ preserve = false;
+ in
+ pkgs.runCommand "output.png" {} ''
+ ${pkgs.lutgen}/bin/lutgen apply ${cfg.settings.wallpapers} -l ${builtins.toString level} -L ${builtins.toString lum} ${
+ if preserve == true
+ then "-P"
+ else ""
+ } -o $out -- ${
+ builtins.concatStringsSep " " (with config.lib.stylix.colors; [
+ base00
+ base01
+ base02
+ base03
+ base04
+ base05
+ base06
+ base07
+ base08
+ base09
+ base0A
+ base0B
+ base0C
+ base0D
+ base0E
+ base0F
+ ])
+ }
+ ''
+ else cfg.settings.wallpapers;
+
+ polarity = "dark";
+
+ cursor = {
+ package = pkgs.bibata-cursors;
+ name = "Bibata-Modern-Classic";
+ size = 24;
+ };
+
+ fonts = {
+ serif = {
+ name = "Cantarell";
+ package = pkgs.cantarell-fonts;
+ };
+ monospace = {
+ name = "CaskaydiaCove Nerd Font Mono";
+ package = pkgs.nerd-fonts.jetbrains-mono;
+ };
+ sansSerif = config.stylix.fonts.serif;
+ emoji = config.stylix.fonts.serif;
+
+ sizes = {
+ desktop = 12;
+ applications = 12;
+ popups = 12;
+ terminal = 16;
+ };
+ };
+
+ opacity = {terminal = 0.65;};
+
+ targets = {
+ kde.enable = false;
+ waybar.enable = false;
+ vesktop.enable = true;
+ btop.enable = true;
+ };
+ };
+ };
+}
diff --git a/home/theming/x11.nix b/home/theming/x11.nix
new file mode 100644
index 0000000..f635f19
--- /dev/null
+++ b/home/theming/x11.nix
@@ -0,0 +1,5 @@
+{...}: {
+ home.pointerCursor = {
+ x11.enable = true;
+ };
+}
diff --git a/hosts/common/default.nix b/hosts/common/default.nix
new file mode 100644
index 0000000..2b679e2
--- /dev/null
+++ b/hosts/common/default.nix
@@ -0,0 +1,10 @@
+{u, ...}: {
+ system.stateVersion = "24.11";
+ imports = u.umport {
+ path = ./.;
+
+ exclude = [
+ ./default.nix
+ ];
+ };
+}
diff --git a/hosts/common/nixpkgs/default.nix b/hosts/common/nixpkgs/default.nix
deleted file mode 100644
index a71e4d6..0000000
--- a/hosts/common/nixpkgs/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{...}: {
- nixpkgs.config = {
- allowUnfree = true;
- allowBroken = true;
- allowAliases = true;
- allowInsecure = true;
- allowUnfreePredicate = true;
- };
-}
diff --git a/hosts/common/programs/default.nix b/hosts/common/programs/default.nix
deleted file mode 100644
index 628a2a6..0000000
--- a/hosts/common/programs/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- pkgs,
- inputs,
- ...
-}: {
- programs = {
- fish.enable = true;
- amnezia-vpn.enable = true;
-
- nh = {
- enable = true;
- clean = {
- enable = true;
- dates = "weekly";
- extraArgs = "--keep-since 7d";
- };
- };
-
- clash-verge = {
- enable = true;
- autoStart = true;
- };
-
- hyprland = {
- enable = true;
- package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
- portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
- };
-
- command-not-found.dbPath = inputs.programsdb.packages.${pkgs.system}.programs-sqlite;
- };
-}
diff --git a/hosts/common/programs/graphical/anmezia-vpn.nix b/hosts/common/programs/graphical/anmezia-vpn.nix
new file mode 100644
index 0000000..33465a6
--- /dev/null
+++ b/hosts/common/programs/graphical/anmezia-vpn.nix
@@ -0,0 +1,3 @@
+{...}: {
+ programs.amnezia-vpn.enable = true;
+}
diff --git a/hosts/common/programs/graphical/hyprland.nix b/hosts/common/programs/graphical/hyprland.nix
new file mode 100644
index 0000000..9955908
--- /dev/null
+++ b/hosts/common/programs/graphical/hyprland.nix
@@ -0,0 +1,11 @@
+{
+ inputs,
+ system,
+ ...
+}: {
+ programs.hyprland = {
+ enable = true;
+ package = inputs.hyprland.packages.${system}.hyprland;
+ portalPackage = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland;
+ };
+}
diff --git a/hosts/common/programs/terminal/fish.nix b/hosts/common/programs/terminal/fish.nix
new file mode 100644
index 0000000..a2c737a
--- /dev/null
+++ b/hosts/common/programs/terminal/fish.nix
@@ -0,0 +1,5 @@
+{...}: {
+ programs.fish = {
+ enable = true;
+ };
+}
diff --git a/hosts/common/secrets/awg0.conf b/hosts/common/secrets/awg0.conf
new file mode 100644
index 0000000..8105691
--- /dev/null
+++ b/hosts/common/secrets/awg0.conf
@@ -0,0 +1,20 @@
+{
+ "data": "ENC[AES256_GCM,data:dtRZmIQCS74zfrn9Efk7jqFkjlNh9k2tjuNEVQnx/raxzRnYNyUEZojnLW9zXeQfb44y0WK+ZqKod2EDGV+YmzU+Ml3jOyzU4LyCeOo6uZMR0pDg7gttwEl08tOfEP+Ik8RWQXoldDNX0WytL3EZViPiWQZUkwpu7dz7nXkXmSdDLAcfRuGcgHW9osSghEvEn5SBmj0pScyD7bgodk+JoZSqGqqHVH95FM44wefTn+sA+OTbmbf79lj8060i12mANMnKq0xM718F3UpgADfeZ+uOUouoE3XH7wLoG4pqGtL0bxBVh/d6xjYOPTWRkAu86/4/sVUf0yJdNs5G0ADPsfu4Ae6GV19IqPQZHTh+H5acx3nbxGxz3aCZaZGoCKHgAdVlik3udXtK/LxdYzbnHHSMPaZU6A0WlJ0aHvKc2UqJZ1t3ySvOKA4a4+t/uykGcMG42ZfTTUcHgaF0LYqJVDyOh4aRgaWabZiS2K/o++90QTlTLHr7kMdHRQ3HQ5Nt/TS/U7qlSLsTveBjrZTRVn3u5raQnsqbtI2XByjcp465lqFxERjAtf68HivWRIBcZ77YMqyrdiedkS0Uj2J3dyjU/IPbuO0DevVRNKd+YQ+tVfe+owsTjahRnoBdBnZK/yhm0qQ6Gupim9v/ohimdGiIGHFGA/bQoMpr2A2n0yCwzjYkHFJ6POd2n7l1+Wa+Sx+FBF5ntg==,iv:D0S5uTkQ/iOGdeVcy1AxGNFs2DGcUoD8ETyEO28ZPSo=,tag:67oRUU6IbfOI8MXu6FskKw==,type:str]",
+ "sops": {
+ "kms": null,
+ "gcp_kms": null,
+ "azure_kv": null,
+ "hc_vault": null,
+ "age": [
+ {
+ "recipient": "age1wkmgn0m8ln5huvqfcxzwprlpvge82hg572vfuclv7natr7hmp5qs672vt9",
+ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzTGFteUpZVndEbG1ETGZw\nUHU0cEcvcmZYajA2VHQwSTJOeXM1Q1ZVSWtFCnBVMW5jQzNEV3hyQjl2cG9OckNx\naFZIaXhxRWlmRkNYRmZVNlpxTHlTNmcKLS0tIEJmWVFtS0tIb0xtK3hTbkoxSC9E\nS0V1Z0VEdC9BNngrbGs5V2pUYm01SGMKvHXkW6h+KsALMKAHZlnpezxo/3WwPmk/\nxH5pAw1F8A0+OehJbGPpE6pj+wD6TmnUBlupnq/FfFeVgbrmFfEHHw==\n-----END AGE ENCRYPTED FILE-----\n"
+ }
+ ],
+ "lastmodified": "2025-03-02T18:25:21Z",
+ "mac": "ENC[AES256_GCM,data:q8NnAHWGJIGBprDCBqPGrveUBom6lFCLjFoQjEq0qQo/filDxS+hWzOVefoXWAq4bR3NbMWjYzvB1vHcakAkrfT8q9dDJpzSkM3Xl6aecTKWzEnEdwIS14t/1oGaWTku3WKJTO9Hf8xJaRf+fy8pdT5BsGqFRiyAVyp2dn1SPgY=,iv:RVBbmnPbfVMroHeh3q5Bfo8AHIESFV2PbhXlvesOFXI=,tag:SDCpBgLj0PSMqB1ILeatEg==,type:str]",
+ "pgp": null,
+ "unencrypted_suffix": "_unencrypted",
+ "version": "3.9.4"
+ }
+}
\ No newline at end of file
diff --git a/hosts/common/secrets/default.nix b/hosts/common/secrets/default.nix
new file mode 100644
index 0000000..e651fae
--- /dev/null
+++ b/hosts/common/secrets/default.nix
@@ -0,0 +1,5 @@
+{inputs, ...}: {
+ imports = [
+ inputs.sops-nix.nixosModules.sops
+ ];
+}
diff --git a/hosts/common/secrets/secrets.yaml b/hosts/common/secrets/secrets.yaml
new file mode 100644
index 0000000..1ae0774
--- /dev/null
+++ b/hosts/common/secrets/secrets.yaml
@@ -0,0 +1,30 @@
+hello: ENC[AES256_GCM,data:s3MSqxa6QhZUxpUI3SiwwboUlMEw3lgnkbtT2iUuJlY5Fm1xGNgkVCz7pN9rxw==,iv:qdte/usQyvDISCm4WfaaDt/9F4CFdwxAyColJ22Y7O0=,tag:3lgWdE8HfFZfYMb5UtkEuA==,type:str]
+example_key: ENC[AES256_GCM,data:QfpmpB/cipG/JpioDQ==,iv:ZQ1mrFYk4QwU4R2ubOEiQp5VMFiT3ZhgIkgNeEmZvGI=,tag:w4A0d+EF2fvEhqtUcDpXYg==,type:str]
+#ENC[AES256_GCM,data:mZebWGKkb7XFFWnO06FiRA==,iv:OtP8AwQvI/rsTLhFvJkuVKuMav9PL2f1yG7had+ABWI=,tag:AXTyOa62PZeF+3ndekGmcw==,type:comment]
+example_array:
+ - ENC[AES256_GCM,data:4sNGqJIHIwflJXc6KJo=,iv:Sd1dJ2Y0XLYWZpVCTYDUXvfC2tsWEDVsSmgBEYdMp+E=,tag:iQ2XKLMmCdWf30YTi1Yf5g==,type:str]
+ - ENC[AES256_GCM,data:ceFkMb2Ew07WPhncdDI=,iv:++H39hsNAoJfAO5mtcXl0k7IjX/8X4/9FM/dZjCr3JM=,tag:vymaspCobCyty7d+vk5jMQ==,type:str]
+example_number: ENC[AES256_GCM,data:HvsewMuhZcCorw==,iv:ZRx4Iu2MVJoqMOHIpCIHLtAzt7y/xvyN6bcxcTsAB3w=,tag:pNY429ei1DPbITgDlqrv8Q==,type:float]
+example_booleans:
+ - ENC[AES256_GCM,data:NRUkIg==,iv:Ya1WGCYu0ivjNw26KZy30kR3zQtOrb8V23qqBfG1ANE=,tag:sWnXwH2IK7+Jij2+kT8zAA==,type:bool]
+ - ENC[AES256_GCM,data:CMqKVBA=,iv:uO367cgd/m22PjCxWCmIRUja9Bq0+OcoxVwzoVjpfjQ=,tag:g5KiutD+l+5yG4WU1wOHaw==,type:bool]
+sops:
+ kms: []
+ gcp_kms: []
+ azure_kv: []
+ hc_vault: []
+ age:
+ - recipient: age1wkmgn0m8ln5huvqfcxzwprlpvge82hg572vfuclv7natr7hmp5qs672vt9
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVmhFcHNlckhpZlpaUWE1
+ a296ay9oT05BKzFrZWNPbThaZUszaVpNQ3prCms0ZkVEY09zSWt4aGJ4Z1JHMDlC
+ a3BDYjY1cHFIcENwYWhUNFphamNZSWsKLS0tIEpnSmxyaGE5dW9xdGljdUdSQnhS
+ cmVlV3hDS2Q3YS9BOWJuMnJ2VVFreE0KORY7ACyeGjmtmkEHRVgCr/S1m2MQOOKn
+ Ki0po0z8U464LH9IE2qcaVCcSZO/Ane19/NYsEc6fvZKBttRdF6zTQ==
+ -----END AGE ENCRYPTED FILE-----
+ lastmodified: "2025-03-02T18:27:48Z"
+ mac: ENC[AES256_GCM,data:ZdrLNhC+BUe7thdF7bc30Y18rcZJC/4XITJWGhJ2lZJH06zYMUnUaoTGu8PZz69wodCf9nwNFjFMUP63fCJMU8lU+5wygfqptJNtgfqD2av8l1WoaN3l2kMhQm6LpjudiYsSa+t4qXeSdMVBlxSE0Ie752UnX3or5rVXYNB+z20=,iv:BEAjK0Rflfu7ITCLVTahIaNS7bWSkvXmEWwoS34w+Wg=,tag:TxsS428UWsl+oEiFnxPunw==,type:str]
+ pgp: []
+ unencrypted_suffix: _unencrypted
+ version: 3.9.4
diff --git a/hosts/common/services/command-not-found.nix b/hosts/common/services/command-not-found.nix
new file mode 100644
index 0000000..629c755
--- /dev/null
+++ b/hosts/common/services/command-not-found.nix
@@ -0,0 +1,7 @@
+{
+ inputs,
+ system,
+ ...
+}: {
+ programs.command-not-found.dbPath = inputs.programsdb.packages.${system}.programs-sqlite;
+}
diff --git a/hosts/common/services/default.nix b/hosts/common/services/default.nix
deleted file mode 100644
index a809010..0000000
--- a/hosts/common/services/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- lib,
- pkgs,
- ...
-}: {
- services = {
- resolved.enable = true;
-
- openssh = {
- enable = true;
- ports = [22 48001];
- settings = {
- PasswordAuthentication = false;
- };
- };
-
- udev.packages = [
- pkgs.android-udev-rules
- ];
-
- printing.enable = true;
-
- libinput.enable = true;
-
- pipewire = {
- enable = lib.mkForce true;
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- audio.enable = true;
- };
-
- udisks2.enable = true;
- };
-}
diff --git a/hosts/common/services/libinput.nix b/hosts/common/services/libinput.nix
new file mode 100644
index 0000000..cb1378d
--- /dev/null
+++ b/hosts/common/services/libinput.nix
@@ -0,0 +1,3 @@
+{...}: {
+ services.libinput.enable = true;
+}
diff --git a/hosts/common/services/openssh.nix b/hosts/common/services/openssh.nix
new file mode 100644
index 0000000..cc59beb
--- /dev/null
+++ b/hosts/common/services/openssh.nix
@@ -0,0 +1,9 @@
+{...}: {
+ services.openssh = {
+ enable = true;
+ ports = [22 48001];
+ settings = {
+ PasswordAuthentication = false;
+ };
+ };
+}
diff --git a/hosts/common/packages/default.nix b/hosts/common/services/packages.nix
similarity index 58%
rename from hosts/common/packages/default.nix
rename to hosts/common/services/packages.nix
index 2c4c17b..ea96bd8 100644
--- a/hosts/common/packages/default.nix
+++ b/hosts/common/services/packages.nix
@@ -1,9 +1,4 @@
{pkgs, ...}: {
- environment.sessionVariables = {
- EDITOR = "nvim";
- FLAKE = "/home/tx0/nixos/";
- };
-
environment.systemPackages = with pkgs; [
git
fish
diff --git a/hosts/common/services/pipewire.nix b/hosts/common/services/pipewire.nix
new file mode 100644
index 0000000..e6e6b57
--- /dev/null
+++ b/hosts/common/services/pipewire.nix
@@ -0,0 +1,9 @@
+{lib, ...}: {
+ services.pipewire = {
+ enable = lib.mkForce true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ audio.enable = true;
+ };
+}
diff --git a/hosts/common/virtualisation/podman.nix b/hosts/common/services/podman.nix
similarity index 89%
rename from hosts/common/virtualisation/podman.nix
rename to hosts/common/services/podman.nix
index c982261..e31c3ac 100644
--- a/hosts/common/virtualisation/podman.nix
+++ b/hosts/common/services/podman.nix
@@ -1,4 +1,4 @@
-{
+{...}: {
virtualisation.podman = {
enable = true;
dockerCompat = true;
diff --git a/hosts/common/services/resolved.nix b/hosts/common/services/resolved.nix
new file mode 100644
index 0000000..aa3b1a1
--- /dev/null
+++ b/hosts/common/services/resolved.nix
@@ -0,0 +1,3 @@
+{...}: {
+ services.resolved.enable = true;
+}
diff --git a/hosts/common/services/udev.nix b/hosts/common/services/udev.nix
new file mode 100644
index 0000000..30e59f3
--- /dev/null
+++ b/hosts/common/services/udev.nix
@@ -0,0 +1,5 @@
+{pkgs, ...}: {
+ services.udev.packages = [
+ pkgs.android-udev-rules
+ ];
+}
diff --git a/hosts/common/services/udisks2.nix b/hosts/common/services/udisks2.nix
new file mode 100644
index 0000000..d4422c1
--- /dev/null
+++ b/hosts/common/services/udisks2.nix
@@ -0,0 +1,3 @@
+{...}: {
+ services.udisks2.enable = true;
+}
diff --git a/hosts/common/boot/default.nix b/hosts/common/system/boot.nix
similarity index 100%
rename from hosts/common/boot/default.nix
rename to hosts/common/system/boot.nix
diff --git a/hosts/common/system/locale.nix b/hosts/common/system/locale.nix
new file mode 100644
index 0000000..8056076
--- /dev/null
+++ b/hosts/common/system/locale.nix
@@ -0,0 +1,4 @@
+{...}: {
+ time.timeZone = "Asia/Yekaterinburg";
+ i18n.defaultLocale = "en_US.UTF-8";
+}
diff --git a/hosts/common/nix/default.nix b/hosts/common/system/nix.nix
similarity index 89%
rename from hosts/common/nix/default.nix
rename to hosts/common/system/nix.nix
index 3236f3c..cb0e020 100644
--- a/hosts/common/nix/default.nix
+++ b/hosts/common/system/nix.nix
@@ -5,7 +5,10 @@
}: {
nix = {
package = pkgs.lix;
- nixPath = ["nixpkgs=${inputs.nixpkgs}"];
+ nixPath = [
+ "nixpkgs=${inputs.nixpkgs}"
+ "home-manager=${inputs.home-manager}"
+ ];
settings = {
experimental-features = ["nix-command" "flakes"];
diff --git a/hosts/common/system/nixpkgs.nix b/hosts/common/system/nixpkgs.nix
new file mode 100644
index 0000000..ca00db1
--- /dev/null
+++ b/hosts/common/system/nixpkgs.nix
@@ -0,0 +1,13 @@
+{system, ...}: {
+ system.stateVersion = "24.11";
+ nixpkgs = {
+ config = {
+ allowUnfree = true;
+ allowBroken = true;
+ allowAliases = true;
+ allowInsecure = true;
+ allowUnfreePredicate = _: true;
+ };
+ hostPlatform = system;
+ };
+}
diff --git a/hosts/common/users/default.nix b/hosts/common/system/users.nix
similarity index 94%
rename from hosts/common/users/default.nix
rename to hosts/common/system/users.nix
index bad661f..a50f8c6 100644
--- a/hosts/common/users/default.nix
+++ b/hosts/common/system/users.nix
@@ -1,6 +1,4 @@
{pkgs, ...}: {
- time.timeZone = "Asia/Yekaterinburg";
- i18n.defaultLocale = "en_US.UTF-8";
users = {
defaultUserShell = pkgs.fish;
users."tx0" = {
diff --git a/hosts/earth/default.nix b/hosts/earth/default.nix
new file mode 100644
index 0000000..b86ca0f
--- /dev/null
+++ b/hosts/earth/default.nix
@@ -0,0 +1,9 @@
+{u, ...}: {
+ imports = u.umport {
+ path = ./.;
+
+ exclude = [
+ ./default.nix
+ ];
+ };
+}
diff --git a/hosts/nixos/network/yggdrasil.nix b/hosts/earth/services/yggdrasil.nix
similarity index 100%
rename from hosts/nixos/network/yggdrasil.nix
rename to hosts/earth/services/yggdrasil.nix
diff --git a/hosts/nixos/hardware/default.nix b/hosts/earth/system/hardware.nix
similarity index 61%
rename from hosts/nixos/hardware/default.nix
rename to hosts/earth/system/hardware.nix
index e1b7568..37301e8 100644
--- a/hosts/nixos/hardware/default.nix
+++ b/hosts/earth/system/hardware.nix
@@ -2,6 +2,7 @@
config,
lib,
modulesPath,
+ system,
...
}: {
imports = [
@@ -40,30 +41,6 @@
options = ["compress=zstd" "subvol=@Home"];
};
- # fileSystems."/mnt/arch" = {
- # device = "/dev/disk/by-uuid/7c552892-f313-438d-91bd-b10fb8c06230";
- # fsType = "btrfs";
- # options = ["compress=zstd" "subvol=@"];
- # };
-
- # fileSystems."/mnt/arch/var/log" = {
- # device = "/dev/disk/by-uuid/7c552892-f313-438d-91bd-b10fb8c06230";
- # fsType = "btrfs";
- # options = ["compress=zstd" "subvol=@log"];
- # };
-
- # fileSystems."/mnt/arch/var/cache/pacman/pkg" = {
- # device = "/dev/disk/by-uuid/7c552892-f313-438d-91bd-b10fb8c06230";
- # fsType = "btrfs";
- # options = ["compress=zstd" "subvol=@pkg"];
- # };
-
- # fileSystems."/mnt/arch/home" = {
- # device = "/dev/disk/by-uuid/7c552892-f313-438d-91bd-b10fb8c06230";
- # fsType = "btrfs";
- # options = ["compress=zstd" "subvol=@home"];
- # };
-
swapDevices = [];
networking.useDHCP = lib.mkDefault true;
@@ -76,6 +53,5 @@
services.xserver.videoDrivers = ["displaylink" "modesetting" "amdgpu"];
virtualisation.vmware.host.enable = true;
- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
diff --git a/hosts/nixos/network/default.nix b/hosts/earth/system/networking.nix
similarity index 78%
rename from hosts/nixos/network/default.nix
rename to hosts/earth/system/networking.nix
index 6a0474a..3e0c2e7 100644
--- a/hosts/nixos/network/default.nix
+++ b/hosts/earth/system/networking.nix
@@ -1,6 +1,6 @@
{
networking = {
- hostName = "nixos";
+ hostName = "earth";
networkmanager.enable = true;
dhcpcd.enable = true;
};
diff --git a/hosts/earth/system/yggdrasil.nix b/hosts/earth/system/yggdrasil.nix
new file mode 100644
index 0000000..ea8f50d
--- /dev/null
+++ b/hosts/earth/system/yggdrasil.nix
@@ -0,0 +1,2 @@
+{...}: {
+}
diff --git a/hosts/earth/vpn.nix b/hosts/earth/vpn.nix
new file mode 100644
index 0000000..332bdc2
--- /dev/null
+++ b/hosts/earth/vpn.nix
@@ -0,0 +1,15 @@
+{pkgs, ...}: {
+ systemd.services.awg0 = {
+ enable = true;
+ description = "AmneziaWG Interface awg0";
+ after = ["network.target"];
+ wantedBy = ["multi-user.target"];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ ExecStart = "${pkgs.amneziawg-tools}/bin/awg-quick up /run/secrets.d/awg0.conf";
+ ExecStop = "${pkgs.amneziawg-tools}/bin/awg-quick down /run/secrets.d/awg0.conf";
+ Restart = "on-failure";
+ };
+ };
+}
diff --git a/hosts/nixos/default.nix b/hosts/nixos/default.nix
deleted file mode 100644
index ea14766..0000000
--- a/hosts/nixos/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{inputs, ...}: {
- system.stateVersion = "24.11";
- imports = inputs.nypkgs.legacyPackages."x86_64-linux".lib.umport {
- paths = [./. ../common];
-
- exclude = [
- ./default.nix
- # ./stylix/themes
- # ./programs/niri.nix
- ];
- };
-}
diff --git a/hosts/nixos/ollama/default.nix b/hosts/nixos/ollama/default.nix
deleted file mode 100644
index b424e5d..0000000
--- a/hosts/nixos/ollama/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- pkgs,
- config,
- ...
-}: {
- services.ollama = {
- enable = true;
- # acceleration = "rocm";
- # environmentVariables = {
- # HCC_AMDGPU_TARGET = "gfx1032"; # used to be necessary, but doesn't seem to anymore
- # };
- # rocmOverrideGfx = "10.3.1";
- };
-}
diff --git a/ulib/default.nix b/ulib/default.nix
new file mode 100644
index 0000000..b882ad1
--- /dev/null
+++ b/ulib/default.nix
@@ -0,0 +1,7 @@
+{
+ inputs,
+ system,
+ ...
+}: {
+ umport = inputs.nypkgs.legacyPackages.${system}.lib.umport;
+}
diff --git a/universe.nix b/universe.nix
new file mode 100644
index 0000000..52fbead
--- /dev/null
+++ b/universe.nix
@@ -0,0 +1,11 @@
+{
+ universe = {
+ programs = {
+ alacritty.enable = true;
+ };
+ de = {
+ hyprland.enable = true;
+ waybar.enable = true;
+ };
+ };
+}
diff --git a/wallpapers.jpg b/wallpapers.jpg
new file mode 100644
index 0000000..d0d18f4
Binary files /dev/null and b/wallpapers.jpg differ