Some changes
This commit is contained in:
parent
b1d604c496
commit
17bd6c385e
7
.sops.yaml
Normal file
7
.sops.yaml
Normal file
|
@ -0,0 +1,7 @@
|
|||
keys:
|
||||
- &public_key age1wkmgn0m8ln5huvqfcxzwprlpvge82hg572vfuclv7natr7hmp5qs672vt9
|
||||
creation_rules:
|
||||
- path_regex: secrets/.*$
|
||||
key_groups:
|
||||
- age:
|
||||
- *public_key
|
135
flake.lock
135
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": {
|
||||
|
|
99
flake.nix
99
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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{inputs, ...}: {
|
||||
imports = inputs.nypkgs.legacyPackages."x86_64-linux".lib.umport {
|
||||
{u, ...}: {
|
||||
imports = u.umport {
|
||||
path = ./.;
|
||||
|
||||
include = [
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 |
|
@ -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 = "<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 = ["" "" ""];
|
||||
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 = "<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 = "";
|
||||
};
|
||||
"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 = "<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;
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
10
home/programs/terminal/nh.nix
Normal file
10
home/programs/terminal/nh.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{...}: {
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
clean = {
|
||||
enable = true;
|
||||
dates = "weekly";
|
||||
extraArgs = "--keep-since 7d";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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
107
home/theming/stylix.nix
Normal 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
5
home/theming/x11.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{...}: {
|
||||
home.pointerCursor = {
|
||||
x11.enable = true;
|
||||
};
|
||||
}
|
10
hosts/common/default.nix
Normal file
10
hosts/common/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{u, ...}: {
|
||||
system.stateVersion = "24.11";
|
||||
imports = u.umport {
|
||||
path = ./.;
|
||||
|
||||
exclude = [
|
||||
./default.nix
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{...}: {
|
||||
nixpkgs.config = {
|
||||
allowUnfree = true;
|
||||
allowBroken = true;
|
||||
allowAliases = true;
|
||||
allowInsecure = true;
|
||||
allowUnfreePredicate = true;
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
3
hosts/common/programs/graphical/anmezia-vpn.nix
Normal file
3
hosts/common/programs/graphical/anmezia-vpn.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{...}: {
|
||||
programs.amnezia-vpn.enable = true;
|
||||
}
|
11
hosts/common/programs/graphical/hyprland.nix
Normal file
11
hosts/common/programs/graphical/hyprland.nix
Normal 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;
|
||||
};
|
||||
}
|
5
hosts/common/programs/terminal/fish.nix
Normal file
5
hosts/common/programs/terminal/fish.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{...}: {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
20
hosts/common/secrets/awg0.conf
Normal file
20
hosts/common/secrets/awg0.conf
Normal 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"
|
||||
}
|
||||
}
|
5
hosts/common/secrets/default.nix
Normal file
5
hosts/common/secrets/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{inputs, ...}: {
|
||||
imports = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
}
|
30
hosts/common/secrets/secrets.yaml
Normal file
30
hosts/common/secrets/secrets.yaml
Normal 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
|
7
hosts/common/services/command-not-found.nix
Normal file
7
hosts/common/services/command-not-found.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}: {
|
||||
programs.command-not-found.dbPath = inputs.programsdb.packages.${system}.programs-sqlite;
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
3
hosts/common/services/libinput.nix
Normal file
3
hosts/common/services/libinput.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{...}: {
|
||||
services.libinput.enable = true;
|
||||
}
|
9
hosts/common/services/openssh.nix
Normal file
9
hosts/common/services/openssh.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{...}: {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
ports = [22 48001];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,9 +1,4 @@
|
|||
{pkgs, ...}: {
|
||||
environment.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
FLAKE = "/home/tx0/nixos/";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
fish
|
9
hosts/common/services/pipewire.nix
Normal file
9
hosts/common/services/pipewire.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{lib, ...}: {
|
||||
services.pipewire = {
|
||||
enable = lib.mkForce true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
audio.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{...}: {
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
3
hosts/common/services/resolved.nix
Normal file
3
hosts/common/services/resolved.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{...}: {
|
||||
services.resolved.enable = true;
|
||||
}
|
5
hosts/common/services/udev.nix
Normal file
5
hosts/common/services/udev.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
services.udev.packages = [
|
||||
pkgs.android-udev-rules
|
||||
];
|
||||
}
|
3
hosts/common/services/udisks2.nix
Normal file
3
hosts/common/services/udisks2.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{...}: {
|
||||
services.udisks2.enable = true;
|
||||
}
|
4
hosts/common/system/locale.nix
Normal file
4
hosts/common/system/locale.nix
Normal file
|
@ -0,0 +1,4 @@
|
|||
{...}: {
|
||||
time.timeZone = "Asia/Yekaterinburg";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
}
|
|
@ -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"];
|
||||
|
13
hosts/common/system/nixpkgs.nix
Normal file
13
hosts/common/system/nixpkgs.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{system, ...}: {
|
||||
system.stateVersion = "24.11";
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowBroken = true;
|
||||
allowAliases = true;
|
||||
allowInsecure = true;
|
||||
allowUnfreePredicate = _: true;
|
||||
};
|
||||
hostPlatform = system;
|
||||
};
|
||||
}
|
|
@ -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
9
hosts/earth/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{u, ...}: {
|
||||
imports = u.umport {
|
||||
path = ./.;
|
||||
|
||||
exclude = [
|
||||
./default.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;
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
networking = {
|
||||
hostName = "nixos";
|
||||
hostName = "earth";
|
||||
networkmanager.enable = true;
|
||||
dhcpcd.enable = true;
|
||||
};
|
2
hosts/earth/system/yggdrasil.nix
Normal file
2
hosts/earth/system/yggdrasil.nix
Normal file
|
@ -0,0 +1,2 @@
|
|||
{...}: {
|
||||
}
|
15
hosts/earth/vpn.nix
Normal file
15
hosts/earth/vpn.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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
|
||||
];
|
||||
};
|
||||
}
|
|
@ -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
7
ulib/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}: {
|
||||
umport = inputs.nypkgs.legacyPackages.${system}.lib.umport;
|
||||
}
|
11
universe.nix
Normal file
11
universe.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
universe = {
|
||||
programs = {
|
||||
alacritty.enable = true;
|
||||
};
|
||||
de = {
|
||||
hyprland.enable = true;
|
||||
waybar.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
BIN
wallpapers.jpg
Normal file
BIN
wallpapers.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
Loading…
Reference in a new issue