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