Some changes

This commit is contained in:
tx0 2025-03-03 00:00:20 +05:00
parent b1d604c496
commit 17bd6c385e
50 changed files with 954 additions and 851 deletions

7
.sops.yaml Normal file
View file

@ -0,0 +1,7 @@
keys:
- &public_key age1wkmgn0m8ln5huvqfcxzwprlpvge82hg572vfuclv7natr7hmp5qs672vt9
creation_rules:
- path_regex: secrets/.*$
key_groups:
- age:
- *public_key

View file

@ -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": {

View file

@ -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";
};
};
}

View file

@ -1,5 +1,5 @@
{inputs, ...}: {
imports = inputs.nypkgs.legacyPackages."x86_64-linux".lib.umport {
{u, ...}: {
imports = u.umport {
path = ./.;
include = [

View file

@ -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;
}

View file

@ -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 {

View file

@ -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;
};
};
}

View file

@ -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"
];
};
};
}

View file

@ -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"
];
};
};
}

View file

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="40px" viewBox="0 -960 960 960" width="40px" fill="#e9ecf2"><path d="M272-120h-85.33q-27 0-46.84-19.83Q120-159.67 120-186.67V-480q0-75 28.5-140.5t77-114q48.5-48.5 114-77T480-840q75 0 140.5 28.5t114 77q48.5 48.5 77 114T840-480v293.33q0 27-19.83 46.84Q800.33-120 773.33-120H688q-27.5 0-47.08-19.58-19.59-19.59-19.59-47.09v-170.66q0-27.5 19.59-47.09Q660.5-424 688-424h85.33v-56q0-122.57-85.38-207.95T480-773.33q-122.57 0-207.95 85.38T186.67-480v56H272q27.5 0 47.08 19.58 19.59 19.59 19.59 47.09v170.66q0 27.5-19.59 47.09Q299.5-120 272-120Z"/></svg>

Before

Width:  |  Height:  |  Size: 592 B

View file

@ -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 = "&#xe322;";
inner = mkOption {
type = types.int;
default = 40;
};
"cpu" = {
interval = 1;
format = "{usage}%";
};
"custom/memory" = {
tooltip = false;
format = "&#xf7a3;";
};
"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 '&#xe045;'";
};
"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 '&#xe044;'";
};
"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 = ["&#xe04e;" "&#xe04d;" "&#xe050;"];
format-muted = "&#xe04f;";
on-click = "pwvucontrol";
max-volume = 100;
};
"wireplumber#text" = {
scroll-step = 2;
format = "{volume}%";
on-click = "pwvucontrol";
max-volume = 100;
};
"custom/language" = {
tooltip = false;
format = "&#xe894;";
};
"hyprland/language" = {
format = "{}";
format-en = "Eng";
format-ru = "Rus";
tooltip-format = "{}";
};
"custom/clock" = {
tooltip = false;
format = "&#xe8b5;";
};
"clock" = {
tooltip = false;
format = "{:%H:%M}";
timezone = "Asia/Yekaterinburg";
};
"custom/date" = {
tooltip = false;
format = "&#xebcc;";
};
"clock#date" = {
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
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 = ["&#xe04e;" "&#xe04d;" "&#xe050;"];
format-muted = "&#xe04f;";
on-click = "pwvucontrol";
max-volume = 100;
};
"wireplumber#text" = {
scroll-step = 2;
format = "{volume}%";
on-click = "pwvucontrol";
max-volume = 100;
};
"custom/clock" = {
tooltip = false;
format = "&#xe8b5;";
};
"clock" = {
tooltip = false;
format = "{:%H:%M}";
timezone = "Asia/Yekaterinburg";
};
"custom/date" = {
tooltip = false;
format = "&#xebcc;";
};
"clock#date" = {
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
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 = "&#xe322;";
};
"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 = "&#xf7a3;";
};
"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 '&#xe045;'";
};
"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 '&#xe044;'";
};
"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 = ["&#xe04e;" "&#xe04d;" "&#xe050;"];
format-muted = "&#xe04f;";
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 = "&#xe894;";
};
"hyprland/language" = {
format = "{}";
format-en = "Eng";
format-ru = "Rus";
tooltip-format = "{}";
};
"custom/clock" = {
tooltip = false;
format = "&#xe8b5;";
};
"clock" = {
tooltip = false;
format = "{:%H:%M}";
timezone = "Asia/Yekaterinburg";
};
"custom/date" = {
tooltip = false;
format = "&#xebcc;";
};
"clock#date" = {
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
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;
}
'';
};
};
}

View file

@ -0,0 +1,10 @@
{...}: {
programs.nh = {
enable = true;
clean = {
enable = true;
dates = "weekly";
extraArgs = "--keep-since 7d";
};
};
}

View file

@ -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

107
home/theming/stylix.nix Normal file
View file

@ -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;
};
};
};
}

5
home/theming/x11.nix Normal file
View file

@ -0,0 +1,5 @@
{...}: {
home.pointerCursor = {
x11.enable = true;
};
}

10
hosts/common/default.nix Normal file
View file

@ -0,0 +1,10 @@
{u, ...}: {
system.stateVersion = "24.11";
imports = u.umport {
path = ./.;
exclude = [
./default.nix
];
};
}

View file

@ -1,9 +0,0 @@
{...}: {
nixpkgs.config = {
allowUnfree = true;
allowBroken = true;
allowAliases = true;
allowInsecure = true;
allowUnfreePredicate = true;
};
}

View file

@ -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;
};
}

View file

@ -0,0 +1,3 @@
{...}: {
programs.amnezia-vpn.enable = true;
}

View file

@ -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;
};
}

View file

@ -0,0 +1,5 @@
{...}: {
programs.fish = {
enable = true;
};
}

View file

@ -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"
}
}

View file

@ -0,0 +1,5 @@
{inputs, ...}: {
imports = [
inputs.sops-nix.nixosModules.sops
];
}

View file

@ -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

View file

@ -0,0 +1,7 @@
{
inputs,
system,
...
}: {
programs.command-not-found.dbPath = inputs.programsdb.packages.${system}.programs-sqlite;
}

View file

@ -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;
};
}

View file

@ -0,0 +1,3 @@
{...}: {
services.libinput.enable = true;
}

View file

@ -0,0 +1,9 @@
{...}: {
services.openssh = {
enable = true;
ports = [22 48001];
settings = {
PasswordAuthentication = false;
};
};
}

View file

@ -1,9 +1,4 @@
{pkgs, ...}: {
environment.sessionVariables = {
EDITOR = "nvim";
FLAKE = "/home/tx0/nixos/";
};
environment.systemPackages = with pkgs; [
git
fish

View file

@ -0,0 +1,9 @@
{lib, ...}: {
services.pipewire = {
enable = lib.mkForce true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
audio.enable = true;
};
}

View file

@ -1,4 +1,4 @@
{
{...}: {
virtualisation.podman = {
enable = true;
dockerCompat = true;

View file

@ -0,0 +1,3 @@
{...}: {
services.resolved.enable = true;
}

View file

@ -0,0 +1,5 @@
{pkgs, ...}: {
services.udev.packages = [
pkgs.android-udev-rules
];
}

View file

@ -0,0 +1,3 @@
{...}: {
services.udisks2.enable = true;
}

View file

@ -0,0 +1,4 @@
{...}: {
time.timeZone = "Asia/Yekaterinburg";
i18n.defaultLocale = "en_US.UTF-8";
}

View file

@ -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"];

View file

@ -0,0 +1,13 @@
{system, ...}: {
system.stateVersion = "24.11";
nixpkgs = {
config = {
allowUnfree = true;
allowBroken = true;
allowAliases = true;
allowInsecure = true;
allowUnfreePredicate = _: true;
};
hostPlatform = system;
};
}

View file

@ -1,6 +1,4 @@
{pkgs, ...}: {
time.timeZone = "Asia/Yekaterinburg";
i18n.defaultLocale = "en_US.UTF-8";
users = {
defaultUserShell = pkgs.fish;
users."tx0" = {

9
hosts/earth/default.nix Normal file
View file

@ -0,0 +1,9 @@
{u, ...}: {
imports = u.umport {
path = ./.;
exclude = [
./default.nix
];
};
}

View file

@ -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;
}

View file

@ -1,6 +1,6 @@
{
networking = {
hostName = "nixos";
hostName = "earth";
networkmanager.enable = true;
dhcpcd.enable = true;
};

View file

@ -0,0 +1,2 @@
{...}: {
}

15
hosts/earth/vpn.nix Normal file
View file

@ -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";
};
};
}

View file

@ -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
];
};
}

View file

@ -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";
};
}

7
ulib/default.nix Normal file
View file

@ -0,0 +1,7 @@
{
inputs,
system,
...
}: {
umport = inputs.nypkgs.legacyPackages.${system}.lib.umport;
}

11
universe.nix Normal file
View file

@ -0,0 +1,11 @@
{
universe = {
programs = {
alacritty.enable = true;
};
de = {
hyprland.enable = true;
waybar.enable = true;
};
};
}

BIN
wallpapers.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB