Compare commits
9 Commits
7da6384e89
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 35fd66ce80 | |||
| 71d2a9c177 | |||
| a2034dc4f2 | |||
| 388af355bb | |||
| f4b3ac54ef | |||
| 61f29392cf | |||
| 8e4ceadfb1 | |||
| 51deed6aa6 | |||
| 38a6c622f7 |
169
flake.lock
generated
169
flake.lock
generated
@@ -23,6 +23,30 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"agenix-rekey": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759699908,
|
||||
"narHash": "sha256-kYVGY8sAfqwpNch706Fy2+/b+xbtfidhXSnzvthAhIQ=",
|
||||
"owner": "oddlama",
|
||||
"repo": "agenix-rekey",
|
||||
"rev": "42362b12f59978aabf3ec3334834ce2f3662013d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oddlama",
|
||||
"repo": "agenix-rekey",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"aquamarine": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
@@ -146,6 +170,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"agenix-rekey",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728330715,
|
||||
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"elephant": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -184,6 +229,22 @@
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
@@ -199,7 +260,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1751685974,
|
||||
@@ -216,6 +277,27 @@
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"agenix-rekey",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
@@ -233,7 +315,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
@@ -254,7 +336,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_3": {
|
||||
"flake-parts_4": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nvf",
|
||||
@@ -275,7 +357,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_4": {
|
||||
"flake-parts_5": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"stylix",
|
||||
@@ -331,6 +413,28 @@
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"agenix-rekey",
|
||||
"pre-commit-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
@@ -500,7 +604,7 @@
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner_2",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
"pre-commit-hooks": "pre-commit-hooks_2",
|
||||
"systems": "systems_4",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
@@ -743,7 +847,7 @@
|
||||
},
|
||||
"mango": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"scenefx": "scenefx"
|
||||
},
|
||||
@@ -889,7 +993,7 @@
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_2",
|
||||
"flake-parts": "flake-parts_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
@@ -935,8 +1039,8 @@
|
||||
},
|
||||
"nvf": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts_3",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-parts": "flake-parts_4",
|
||||
"mnw": "mnw",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
@@ -984,6 +1088,29 @@
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"agenix-rekey",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735882644,
|
||||
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks_2": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"gitignore": "gitignore_2",
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
@@ -1006,6 +1133,7 @@
|
||||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"agenix-rekey": "agenix-rekey",
|
||||
"elephant": "elephant",
|
||||
"home-manager": "home-manager_2",
|
||||
"hyprdynamicmonitors": "hyprdynamicmonitors",
|
||||
@@ -1069,7 +1197,7 @@
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-parts": "flake-parts_4",
|
||||
"flake-parts": "flake-parts_5",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
@@ -1282,6 +1410,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"agenix-rekey",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735135567,
|
||||
"narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "9e09d30a644c57257715902efbb3adc56c79cf28",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"walker": {
|
||||
"inputs": {
|
||||
"elephant": [
|
||||
|
||||
20
flake.nix
20
flake.nix
@@ -21,6 +21,11 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
agenix-rekey = {
|
||||
url = "github:oddlama/agenix-rekey";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nvf = {
|
||||
url = "github:notashelf/nvf";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -60,18 +65,31 @@
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ nixpkgs, ... }@inputs:
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
agenix-rekey,
|
||||
...
|
||||
}@inputs:
|
||||
{
|
||||
nixosConfigurations.vanta = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
host = "vanta";
|
||||
wallpaper = "twilight-village.png";
|
||||
# Host public SSH key (e.g. /etc/ssh/ssh_host_ed25519_key.pub).
|
||||
hostPubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaDVBJdMDFL8r9NQCbaLe+DPHGhGzRv2N7+7m1/U8DP";
|
||||
};
|
||||
modules = [
|
||||
./modules/system
|
||||
./hosts/vanta
|
||||
];
|
||||
};
|
||||
|
||||
agenix-rekey = agenix-rekey.configure {
|
||||
userFlake = self;
|
||||
nixosConfigurations = self.nixosConfigurations;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,5 +6,6 @@
|
||||
imports = [
|
||||
inputs.nixos-hardware.nixosModules.framework-12th-gen-intel
|
||||
./hardware-configuration.nix
|
||||
../../profiles/intel.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
./screenshot.nix
|
||||
./ssh.nix
|
||||
./stylix.nix
|
||||
./swaync.nix
|
||||
./vscode.nix
|
||||
./walker.nix
|
||||
./wallpaper.nix
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
hyprpolkitagent
|
||||
hyprpicker
|
||||
];
|
||||
|
||||
# xdg.configFile."uwsm/env".source =
|
||||
@@ -23,6 +24,36 @@
|
||||
"${config.xdg.configHome}/hypr/monitors.conf"
|
||||
];
|
||||
|
||||
animations = {
|
||||
# Stolen from https://github.com/Vobledoble/nixparency-dots/
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"easeOutQuint,0.23,1,0.32,1"
|
||||
"easeInOutCubic,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, almostLinear, fade"
|
||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||
];
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 10;
|
||||
@@ -43,7 +74,14 @@
|
||||
size = 8;
|
||||
passes = 3;
|
||||
new_optimizations = true;
|
||||
popups = true;
|
||||
};
|
||||
|
||||
shadow.enabled = false;
|
||||
};
|
||||
|
||||
misc = {
|
||||
vfr = true;
|
||||
};
|
||||
|
||||
layerrule = [
|
||||
@@ -57,6 +95,7 @@
|
||||
"systemctl --user enable --now hyprpolkitagent.service"
|
||||
"systemctl --user enable app-com.mitchellh.ghostty.service"
|
||||
"wpaperd -d"
|
||||
"swaync"
|
||||
"pypr"
|
||||
];
|
||||
|
||||
|
||||
@@ -1,107 +1,106 @@
|
||||
{
|
||||
config,
|
||||
wallpaper,
|
||||
...
|
||||
}:
|
||||
let
|
||||
primary-monitor = "eDP-1";
|
||||
|
||||
text-color = "rgba(${config.lib.stylix.colors.base0F}FF)";
|
||||
entry-background-color = "rgba(${config.lib.stylix.colors.base0F}11)";
|
||||
entry-border-color = "rgba(${config.lib.stylix.colors.base0F}55)";
|
||||
font-family = "Rubik Light";
|
||||
in
|
||||
{
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
settings = with config.lib.stylix.colors; {
|
||||
general = {
|
||||
hide_cursor = true;
|
||||
};
|
||||
background = [
|
||||
{
|
||||
path = "${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/sunset_bay.jpg";
|
||||
path = "${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/${wallpaper}";
|
||||
blur_size = 4;
|
||||
blur_passes = 3;
|
||||
}
|
||||
];
|
||||
input-field = [
|
||||
{
|
||||
monitor = primary-monitor;
|
||||
rec {
|
||||
size = "250, 50";
|
||||
outline_thickness = 2;
|
||||
dots_size = 0.1;
|
||||
dots_spacing = 0.3;
|
||||
outer_color = entry-border-color;
|
||||
inner_color = entry-background-color;
|
||||
font_color = text-color;
|
||||
outline_thickness = 3;
|
||||
dots_size = 0.25;
|
||||
dots_spacing = 0.4;
|
||||
outer_color = "rgba(${base0F}55)";
|
||||
capslock_color = outer_color;
|
||||
numlock_color = outer_color;
|
||||
bothlock_color = outer_color;
|
||||
inner_color = "rgba(${base0F}11)";
|
||||
font_color = "rgba(${base0F}ff)";
|
||||
fade_on_empty = true;
|
||||
|
||||
position = "0, 20";
|
||||
placeholder_text = "<i>Password...</i>";
|
||||
position = "0, -60";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
label = [
|
||||
# Hours
|
||||
{
|
||||
# Caps Lock Warning
|
||||
monitor = primary-monitor;
|
||||
text = "cmd[update:250] check-capslock";
|
||||
color = text-color;
|
||||
font_size = 13;
|
||||
font_family = font-family;
|
||||
position = "0, -25";
|
||||
text = "cmd[update:1000] echo \"<b><big> $(date +\"%H\") </big></b>\"";
|
||||
color = "rgb(${base0F})";
|
||||
font_size = 112;
|
||||
font_family = "GeistMono Nerd Font";
|
||||
position = "0, 350";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
{
|
||||
# Clock
|
||||
monitor = primary-monitor;
|
||||
text = "$TIME";
|
||||
color = text-color;
|
||||
font_size = 65;
|
||||
font_family = font-family;
|
||||
|
||||
position = "0, 300";
|
||||
# Minutes
|
||||
{
|
||||
text = "cmd[update:1000] echo \"<b><big> $(date +\"%M\") </big></b>\"";
|
||||
color = "rgb(${base0F})";
|
||||
font_size = 112;
|
||||
font_family = "GeistMono Nerd Font";
|
||||
position = "0, 220";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
{
|
||||
# Date
|
||||
monitor = primary-monitor;
|
||||
text = "cmd[update:5000] date +\"%A, %B %d\"";
|
||||
color = text-color;
|
||||
font_size = 17;
|
||||
font_family = font-family;
|
||||
|
||||
position = "0, 240";
|
||||
# Day of the Week
|
||||
{
|
||||
text = "cmd[update:18000000] echo \"<b><big> \"$(date +'%A')\" </big></b>\"";
|
||||
color = "rgb(${base0F})";
|
||||
font_size = 22;
|
||||
font_family = "JetBrainsMono Nerd Font";
|
||||
position = "0, 115";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
|
||||
# Date
|
||||
{
|
||||
# User
|
||||
monitor = primary-monitor;
|
||||
text = " $USER";
|
||||
color = text-color;
|
||||
outline_thickness = 2;
|
||||
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true;
|
||||
font_size = 20;
|
||||
font_family = font-family;
|
||||
position = "0, 50";
|
||||
text = "cmd[update:18000000] echo \"<b> \"$(date +'%d %b')\" </b>\"";
|
||||
color = "rgb(${base0F})";
|
||||
font_size = 18;
|
||||
font_family = "JetBrainsMono Nerd Font";
|
||||
position = "0, 85";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
|
||||
# Temperature
|
||||
{
|
||||
text = "cmd[update:18000000] echo \"<b>Feels like<big> $(curl -s 'wttr.in?format=%t' | tr -d '+') </big></b>\"";
|
||||
color = "rgb(${base0F})";
|
||||
font_size = 18;
|
||||
font_family = "GeistMono Nerd Font";
|
||||
position = "0, 40";
|
||||
halign = "center";
|
||||
valign = "bottom";
|
||||
}
|
||||
{
|
||||
# Status
|
||||
monitor = primary-monitor;
|
||||
text = "cmd[update:5000] hyprlock-status";
|
||||
color = text-color;
|
||||
font_size = 14;
|
||||
font_family = font-family;
|
||||
|
||||
position = "30, -30";
|
||||
halign = "left";
|
||||
valign = "top";
|
||||
# Caps Lock Warning
|
||||
{
|
||||
text = "cmd[update:250] check-capslock";
|
||||
color = "rgb(${base0F})";
|
||||
font_size = 13;
|
||||
font_family = "JetBrainsMono Nerd Font";
|
||||
position = "0, -120";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
@@ -29,10 +29,6 @@
|
||||
"$mod CTRL SHIFT, left, movetoworkspace, r-1"
|
||||
"$mod CTRL SHIFT, right, movetoworkspace, r+1"
|
||||
|
||||
# Brightness keys
|
||||
", XF86MonBrightnessUp, exec, brightnessctl set 10%+"
|
||||
", XF86MonBrightnessDown, exec, brightnessctl set 10%-"
|
||||
|
||||
# Screenshoting
|
||||
", PRINT, exec, hyprshot -m output --raw | satty --filename -"
|
||||
"$mod, PRINT, exec, hyprshot -m window --raw | satty --filename -"
|
||||
@@ -45,6 +41,9 @@
|
||||
", XF86AudioMute, exec, pamixer -t"
|
||||
"ALT, XF86AudioMute, exec, pamixer --default-source -t"
|
||||
|
||||
# Notification Center
|
||||
"$mod, n, exec, swaync-client -t -sw"
|
||||
|
||||
# Scratchpads
|
||||
"$mod, TAB, exec, pypr toggle term"
|
||||
]
|
||||
@@ -71,12 +70,16 @@
|
||||
"$mod ALT, mouse:272, resizewindow"
|
||||
];
|
||||
|
||||
binde = [
|
||||
bindel = [
|
||||
# Volume Controls
|
||||
", XF86AudioRaiseVolume, exec, pamixer -i 5"
|
||||
", XF86AudioLowerVolume, exec, pamixer -d 5"
|
||||
"ALT, XF86AudioRaiseVolume, exec, pamixer --default-source -i 5"
|
||||
"ALT, XF86AudioLowerVolume, exec, pamixer --default-source -d 5"
|
||||
|
||||
# Brightness Controls
|
||||
", XF86MonBrightnessUp, exec, brightnessctl set 5%+"
|
||||
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
sqlitebrowser
|
||||
drawio
|
||||
check-capslock
|
||||
wl-clipboard-rs
|
||||
|
||||
# Libre Office
|
||||
libreoffice-qt
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||
fonts = {
|
||||
monospace = {
|
||||
name = "FiraCode Nerd Font";
|
||||
package = pkgs.nerd-fonts.fira-code;
|
||||
name = "JetBrainsMono Nerd Font"; # "FiraCode Nerd Font";
|
||||
package = pkgs.nerd-fonts.jetbrains-mono; # pkgs.nerd-fonts.fira-code;
|
||||
};
|
||||
};
|
||||
targets = {
|
||||
@@ -31,6 +31,7 @@
|
||||
foot.enable = true;
|
||||
lazygit.enable = true;
|
||||
starship.enable = true;
|
||||
swaync.enable = true;
|
||||
yazi.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
104
modules/home/swaync.nix
Normal file
104
modules/home/swaync.nix
Normal file
@@ -0,0 +1,104 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
settings = {
|
||||
positionX = "right";
|
||||
positionY = "top";
|
||||
cssPriority = "user"; # "application"
|
||||
|
||||
control-center-width = 380;
|
||||
control-center-height = 860;
|
||||
control-center-margin-top = 10;
|
||||
control-center-margin-bottom = 10;
|
||||
control-center-margin-right = 10;
|
||||
control-center-margin-left = 10;
|
||||
|
||||
notification-window-width = 400;
|
||||
notification-icon-size = 48;
|
||||
notification-body-image-height = 100;
|
||||
notification-body-image-width = 200;
|
||||
|
||||
timeout = 4;
|
||||
timeout-low = 2;
|
||||
timeout-critical = 6;
|
||||
|
||||
fit-to-screen = false;
|
||||
keyboard-shortcuts = true;
|
||||
image-visibility = "when-available";
|
||||
transition-time = 200;
|
||||
hide-on-clear = false;
|
||||
hide-on-action = false;
|
||||
script-fail-notify = true;
|
||||
scripts = {
|
||||
example-script = {
|
||||
exec = "echo 'Do something...'";
|
||||
urgency = "Normal";
|
||||
};
|
||||
};
|
||||
notification-visibility = {
|
||||
example-name = {
|
||||
state = "muted";
|
||||
urgency = "low";
|
||||
app-name = "Spotify";
|
||||
};
|
||||
};
|
||||
widgets = [
|
||||
"label"
|
||||
"buttons-grid"
|
||||
"mpris"
|
||||
"dnd"
|
||||
"title"
|
||||
"notifications"
|
||||
];
|
||||
widget-config = {
|
||||
title = {
|
||||
text = "Notifications";
|
||||
clear-all-button = true;
|
||||
button-text = " ";
|
||||
};
|
||||
dnd = {
|
||||
text = "Do Not Disturb";
|
||||
};
|
||||
label = {
|
||||
max-lines = 1;
|
||||
text = " ";
|
||||
};
|
||||
mpris = {
|
||||
image-size = 96;
|
||||
image-radius = 12;
|
||||
};
|
||||
volume = {
|
||||
label = "";
|
||||
show-per-app = true;
|
||||
};
|
||||
buttons-grid = {
|
||||
actions = [
|
||||
{
|
||||
label = "";
|
||||
command = "pamixer -t";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "pamixer --default-source -t";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "nmtui";
|
||||
}
|
||||
# {
|
||||
# label = "";
|
||||
# command = "blueman-manager";
|
||||
# }
|
||||
# {
|
||||
# label = "";
|
||||
# command = "nwg-look";
|
||||
# }
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
config,
|
||||
wallpaper,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@@ -18,7 +19,7 @@ in
|
||||
mode = "center";
|
||||
};
|
||||
any = {
|
||||
path = "${wallpapers}/sunset_bay.jpg";
|
||||
path = "${wallpapers}/${wallpaper}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,320 +1,6 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprland-workspaces = {
|
||||
format = "{icon}";
|
||||
show-special = false;
|
||||
active-only = false;
|
||||
on-click = "activate";
|
||||
on-scroll-up = "hyprctl dispatch workspace e+1";
|
||||
on-scroll-down = "hyprctl dispatch workspace e-1";
|
||||
all-outputs = true;
|
||||
sort-by-number = true;
|
||||
persistent-workspaces = {
|
||||
"1" = [ ];
|
||||
"2" = [ ];
|
||||
"3" = [ ];
|
||||
"4" = [ ];
|
||||
};
|
||||
format-icons = {
|
||||
"1" = " ";
|
||||
"2" = " ";
|
||||
"3" = " ";
|
||||
"4" = " ";
|
||||
"5" = "";
|
||||
"6" = " ";
|
||||
"7" = "";
|
||||
"8" = " ";
|
||||
"9" = " ";
|
||||
"10" = "10";
|
||||
"focused" = "";
|
||||
"default" = "";
|
||||
};
|
||||
};
|
||||
|
||||
menu = {
|
||||
format = "{}";
|
||||
exec = "echo ; echo app launcher";
|
||||
interval = 86400;
|
||||
tooltip = true;
|
||||
on-click = "walker";
|
||||
};
|
||||
|
||||
hyprland-window = {
|
||||
format = " {title}";
|
||||
max-length = 40;
|
||||
separate-outputs = false;
|
||||
rewrite = {
|
||||
"^.*( — LibreWolf|LibreWolf)$" = " LibreWolf";
|
||||
"(.*) — Mozilla Firefox" = " Firefox";
|
||||
"^.*v( .*|$)" = " Neovim";
|
||||
"^.*~$" = " Kitty";
|
||||
"(.*) " = " Empty";
|
||||
"^.*pdf( .*|$)" = "";
|
||||
"^.*(- Mousepad)$" = " $1";
|
||||
};
|
||||
};
|
||||
|
||||
cava = {
|
||||
autosens = 1;
|
||||
bars = 15;
|
||||
bar_delimiter = 32; # ASCII for " " (space)
|
||||
format-icons = [
|
||||
"▁"
|
||||
"▂"
|
||||
"▃"
|
||||
"▄"
|
||||
"▅"
|
||||
"▆"
|
||||
"▇"
|
||||
"█"
|
||||
];
|
||||
framerate = 30;
|
||||
input_delay = 2;
|
||||
method = "pipewire";
|
||||
};
|
||||
|
||||
arrow-right = {
|
||||
format = "";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
cpu = {
|
||||
format = " {usage}";
|
||||
};
|
||||
|
||||
memory = {
|
||||
interval = 10;
|
||||
format = "{used:0.1f}G ";
|
||||
format-alt = "{percentage}% ";
|
||||
format-alt-click = "click";
|
||||
tooltip = true;
|
||||
tooltip-format = "{used:0.1f}GB/{total:0.1f}G";
|
||||
# on-click-right = "kitty --title btop sh -c 'btop'";
|
||||
};
|
||||
|
||||
temperature = {
|
||||
interval = 10;
|
||||
tooltip = true;
|
||||
hwmon-path = [
|
||||
"/sys/class/hwmon/hwmon6/temp1_input"
|
||||
"/sys/class/thermal/thermal_zone0/temp"
|
||||
];
|
||||
critical-threshold = 82;
|
||||
format-critical = "{temperatureC}°C {icon}";
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = [ "" ];
|
||||
# on-click-right = "kitty --title nvtop sh -c 'nvtop'";
|
||||
};
|
||||
|
||||
idle-inhibitor = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = " ";
|
||||
deactivated = " ";
|
||||
};
|
||||
};
|
||||
|
||||
tray = {
|
||||
icon-size = 16;
|
||||
spacing = 4;
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = "{icon} {volume}% {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-bluetooth = " {icon} {volume}% {format_source}";
|
||||
format-bluetooth-muted = " {format_source}";
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
scroll-step = 5.0;
|
||||
on-click = "pavucontrol -t 3";
|
||||
on-click-right = "pavucontrol -t 4";
|
||||
tooltip-format = "{icon} {desc} | {volume}%";
|
||||
smooth-scrolling-threshold = 1;
|
||||
};
|
||||
|
||||
wireplumber = {
|
||||
format = "{icon} {volume}% {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
scroll-step = 5.0;
|
||||
on-click = "pavucontrol -t 3";
|
||||
on-click-right = "pavucontrol -t 4";
|
||||
tooltip-format = "{node_name} {volume}%\n{source_desc} {source_volume}%";
|
||||
};
|
||||
|
||||
backlight = {
|
||||
format = "{icon} {percent}%";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
on-scroll-down = "brightnessctl set 10%-";
|
||||
on-scroll-up = "brightnessctl set +10%";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
battery = {
|
||||
align = 0;
|
||||
rotate = 0;
|
||||
full-at = 100;
|
||||
design-capacity = false;
|
||||
states = {
|
||||
critical = 20;
|
||||
};
|
||||
format = "{icon} {capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
format-alt-click = "click";
|
||||
format-full = "{icon} Full";
|
||||
format-alt = "{icon} {time}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
format-time = "{H}h {M}min";
|
||||
tooltip = true;
|
||||
tooltip-format = "{timeTo} {power}w";
|
||||
};
|
||||
|
||||
mpris = {
|
||||
interval = 10;
|
||||
format = "{player_icon} ";
|
||||
format-paused = "{status_icon}";
|
||||
on-click-middle = "playerctl play-pause";
|
||||
on-click = "playerctl previous";
|
||||
on-click-right = "playerctl next";
|
||||
scroll-step = 5.0;
|
||||
smooth-scrolling-threshold = 1;
|
||||
player-icons = {
|
||||
chromium = "";
|
||||
mpd = "";
|
||||
default = "";
|
||||
firefox = "";
|
||||
kdeconnect = "";
|
||||
mopidy = "";
|
||||
mpv = "";
|
||||
spotify = "";
|
||||
vlc = "";
|
||||
};
|
||||
status-icons = {
|
||||
paused = "";
|
||||
playing = "";
|
||||
stopped = "";
|
||||
};
|
||||
max-length = 10;
|
||||
};
|
||||
|
||||
arrow-left = {
|
||||
format = "";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
network = {
|
||||
format-disconnected = " ";
|
||||
format-wifi = " ";
|
||||
format-ethernet = " ";
|
||||
format-linked = " (No IP)";
|
||||
format-disabled = " (Disabled)";
|
||||
tooltip-format = "{essid}: {ipaddr}/{cidr}";
|
||||
};
|
||||
|
||||
notifications = {
|
||||
tooltip = false;
|
||||
format = "{icon} {text}";
|
||||
format-icons = {
|
||||
notification = "";
|
||||
none = "";
|
||||
dnd-notification = "";
|
||||
dnd-none = "";
|
||||
inhibited-notification = "";
|
||||
inhibited-none = "";
|
||||
dnd-inhibited-notification = "";
|
||||
dnd-inhibited-none = "";
|
||||
};
|
||||
return-type = "json";
|
||||
# exec-if = "which swaync-client";
|
||||
# exec = "swaync-client -swb";
|
||||
# on-click = "swaync-client -t -sw";
|
||||
# on-click-right = "swaync-client -d -sw";
|
||||
escape = true;
|
||||
};
|
||||
|
||||
clock = {
|
||||
interval = 1;
|
||||
format = "{:%I:%M %p}"; # AM-PM Format
|
||||
format-alt = " {:%H:%M %Y, %d %B, %A}";
|
||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||
calendar = {
|
||||
mode = "year";
|
||||
mode-mon-col = 3;
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
format = {
|
||||
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
power = {
|
||||
format = "⏻";
|
||||
exec = "echo ; echo power";
|
||||
on-click = "wlogout";
|
||||
interval = 86400;
|
||||
tooltip = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
@@ -323,100 +9,135 @@ in
|
||||
{
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 34;
|
||||
margin-left = 10;
|
||||
margin-right = 10;
|
||||
margin-top = 10;
|
||||
margin-top = 5;
|
||||
fixed-center = true;
|
||||
reload_style_on_change = true;
|
||||
reload_style_on_change = false;
|
||||
|
||||
"hyprland/workspaces" = import ./modules/hyprland-workspaces.nix { };
|
||||
"custom/menu" = import ./modules/menu.nix { };
|
||||
"hyprland/window" = import ./modules/hyprland-window.nix { };
|
||||
"disk" = import ./modules/disk.nix { };
|
||||
"cpu" = import ./modules/cpu.nix { };
|
||||
"memory" = import ./modules/memory.nix { };
|
||||
"temperature" = import ./modules/temperature.nix { };
|
||||
"idle_inhibitor" = import ./modules/idle-inhibitor.nix { };
|
||||
"tray" = import ./modules/tray.nix { };
|
||||
"network" = import ./modules/network.nix { };
|
||||
"wireplumber" = import ./modules/wireplumber.nix { };
|
||||
"backlight" = import ./modules/backlight.nix { };
|
||||
"mpris" = import ./modules/mpris.nix { };
|
||||
"battery" = import ./modules/battery.nix { full-at = 80; }; # Change this to come from the TLP setting
|
||||
"clock" = import ./modules/clock.nix { };
|
||||
"custom/power" = import ./modules/power.nix { };
|
||||
"custom/hyprpicker" = import ./modules/hyprpicker.nix { };
|
||||
"custom/separator#blank" = {
|
||||
format = "";
|
||||
interval = "once";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
modules-left = [
|
||||
"custom/menu"
|
||||
"hyprland/window"
|
||||
"cava"
|
||||
"group/info"
|
||||
"custom/separator#blank"
|
||||
"clock"
|
||||
"custom/separator#blank"
|
||||
"custom/hyprpicker"
|
||||
];
|
||||
|
||||
modules-center = [
|
||||
"hyprland/workspaces#4"
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
|
||||
modules-right = [
|
||||
"idle_inhibitor"
|
||||
"group/demo"
|
||||
"group/hub"
|
||||
"tray"
|
||||
"custom/separator#blank"
|
||||
"group/motherboard"
|
||||
"custom/separator#blank"
|
||||
"wireplumber"
|
||||
"custom/separator#blank"
|
||||
"battery"
|
||||
"custom/separator#blank"
|
||||
"custom/power"
|
||||
];
|
||||
|
||||
"hyprland/workspaces#4" = hyprland-workspaces;
|
||||
"custom/menu" = menu;
|
||||
"hyprland/window" = hyprland-window;
|
||||
"cava" = cava;
|
||||
"custom/arrow-right" = arrow-right;
|
||||
"cpu" = cpu;
|
||||
"memory" = memory;
|
||||
"temperature" = temperature;
|
||||
"idle_inhibitor" = idle-inhibitor;
|
||||
"tray" = tray;
|
||||
"pulseaudio" = pulseaudio;
|
||||
"network" = network;
|
||||
"wireplumber" = wireplumber;
|
||||
"backlight" = backlight;
|
||||
"mpris" = mpris;
|
||||
"battery" = battery;
|
||||
"custom/arrow-left" = arrow-left;
|
||||
"custom/notifications" = notifications;
|
||||
"clock" = clock;
|
||||
"custom/power" = power;
|
||||
|
||||
"group/info" = {
|
||||
"group/motherboard" = {
|
||||
orientation = "inherit";
|
||||
drawer = {
|
||||
transition-duration = 300;
|
||||
transition-left-to-right = false;
|
||||
};
|
||||
modules = [
|
||||
"custom/arrow-right"
|
||||
"cpu"
|
||||
"memory"
|
||||
"temperature"
|
||||
];
|
||||
};
|
||||
|
||||
"group/demo" = {
|
||||
orientation = "inherit";
|
||||
modules = [
|
||||
"tray"
|
||||
"network"
|
||||
"wireplumber"
|
||||
# "pulseaudio"
|
||||
"backlight"
|
||||
"mpris"
|
||||
"battery"
|
||||
];
|
||||
};
|
||||
|
||||
"group/utils" = {
|
||||
orientation = "inherit";
|
||||
drawer = {
|
||||
transition-duration = 300;
|
||||
transition-left-to-right = true;
|
||||
};
|
||||
modules = [
|
||||
"custom/arrow-left"
|
||||
"custom/notifications"
|
||||
];
|
||||
};
|
||||
|
||||
"group/hub" = {
|
||||
orientation = "inherit";
|
||||
modules = [
|
||||
"group/utils"
|
||||
"clock"
|
||||
"custom/power"
|
||||
"disk"
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
style = ./style.css;
|
||||
style = ''
|
||||
@define-color base00 #192435; /* Darkest background (night sky / deep shadows) */
|
||||
@define-color base01 #243449; /* Slightly lighter background */
|
||||
@define-color base02 #36455D; /* Selection / inactive UI */
|
||||
@define-color base03 #51637E; /* Comments / subtle foreground */
|
||||
|
||||
@define-color base04 #8FA3BA; /* Dark foreground (status bars) */
|
||||
@define-color base05 #C7D2DF; /* Default foreground (text) */
|
||||
@define-color base06 #E3EAF2; /* Light foreground (highlighted text) */
|
||||
@define-color base07 #F4D9C7; /* Bright foreground (lantern light) */
|
||||
|
||||
@define-color base08 #D88C7A; /* Red / Errors (warm wood & lantern glow) */
|
||||
@define-color base09 #E5AD97; /* Orange / Numbers / Constants */
|
||||
@define-color base0A #E9C48A; /* Yellow / Classes / Warnings */
|
||||
@define-color base0B #9FBFA8; /* Green / Strings */
|
||||
@define-color base0C #8FB6C8; /* Cyan / Support / Regex */
|
||||
@define-color base0D #7FA6D9; /* Blue / Functions / Keywords */
|
||||
@define-color base0E #B69BCB; /* Purple / Types / Specials */
|
||||
@define-color base0F #B0896A; /* Brown / Deprecated */
|
||||
|
||||
* {
|
||||
all: unset;
|
||||
font-family: "JetBrainsMono Nerd Font Propo"; /* The Propo(rtional) variant of the ensures icons are properly spaced */
|
||||
font-feature-settings: '"zero", "tnum", "ss01", "ss02", "ss03", "cv01"';
|
||||
font-weight: 700;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.module {
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.modules-left,
|
||||
.modules-center,
|
||||
.modules-right {
|
||||
background: @base00;
|
||||
padding: 6px 8px;
|
||||
border-color: @base03;
|
||||
border-width: 1.5px;
|
||||
border-style: solid;
|
||||
border-radius: 0.75rem;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: @base04;
|
||||
font-size: 0.9rem;
|
||||
padding: 0 7px;
|
||||
}
|
||||
|
||||
#motherboard,
|
||||
#custom-menu {
|
||||
color: @base04;
|
||||
}
|
||||
|
||||
#wireplumber,
|
||||
#battery,
|
||||
#custom-power,
|
||||
#custom-hyprpicker,
|
||||
#clock {
|
||||
color: @base05;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
27
modules/home/waybar/modules/backlight.nix
Normal file
27
modules/home/waybar/modules/backlight.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{icon}";
|
||||
tooltip-format = "Backlight {percent}%";
|
||||
format-icons = [
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
];
|
||||
icon-size = 10;
|
||||
on-scroll-down = "brightnessctl set 10%-";
|
||||
on-scroll-up = "brightnessctl set +10%";
|
||||
}
|
||||
33
modules/home/waybar/modules/battery.nix
Normal file
33
modules/home/waybar/modules/battery.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
full-at ? 100,
|
||||
...
|
||||
}:
|
||||
{
|
||||
inherit full-at;
|
||||
states = {
|
||||
# These values are percentages based on `full-at`
|
||||
good = 95;
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{icon} {capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
format-full = "{icon} {capacity}%";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
format-time = "{H}h {M}min";
|
||||
tooltip = true;
|
||||
tooltip-format = "{timeTo} {power}w";
|
||||
}
|
||||
13
modules/home/waybar/modules/bluetooth.nix
Normal file
13
modules/home/waybar/modules/bluetooth.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "";
|
||||
format-disabled = "";
|
||||
format-connected = " {num_connections}";
|
||||
tooltip-format = " {device_alias}";
|
||||
tooltip-format-connected = "{device_enumerate}";
|
||||
tooltip-format-enumerate-connected = " {device_alias} {device_battery_percentage}%";
|
||||
tooltip = true;
|
||||
# on-click = "blueman-manager";
|
||||
}
|
||||
21
modules/home/waybar/modules/clock.nix
Normal file
21
modules/home/waybar/modules/clock.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 1; # Poll every second
|
||||
format = "{:%H:%M - %d/%b}";
|
||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||
calendar = {
|
||||
mode = "year";
|
||||
mode-mon-col = 3;
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
format = {
|
||||
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||
};
|
||||
};
|
||||
}
|
||||
7
modules/home/waybar/modules/cpu.nix
Normal file
7
modules/home/waybar/modules/cpu.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{usage}% ";
|
||||
interval = 1;
|
||||
}
|
||||
10
modules/home/waybar/modules/disk.nix
Normal file
10
modules/home/waybar/modules/disk.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 30;
|
||||
format = "{percentage_used}% ";
|
||||
tooltip = true;
|
||||
tooltip-format = "{specific_free:0.1f}/{specific_total:0.1f}GiB";
|
||||
unit = "GiB";
|
||||
}
|
||||
15
modules/home/waybar/modules/hyprland-window.nix
Normal file
15
modules/home/waybar/modules/hyprland-window.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{title}";
|
||||
max-length = 40;
|
||||
separate-outputs = true; # List different titles for each monitor
|
||||
offscreen-css = true; # No idea what this does
|
||||
offscreen-css-text = "(inactive)"; # No idea what this does either
|
||||
rewrite = {
|
||||
"(.*) — Mozilla Firefox" = " Firefox";
|
||||
# Foot terminal doesn't display any title for some reason
|
||||
# Find a fix
|
||||
};
|
||||
}
|
||||
23
modules/home/waybar/modules/hyprland-workspaces.nix
Normal file
23
modules/home/waybar/modules/hyprland-workspaces.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
active-only = false; # Show all workspaces
|
||||
all-outputs = true; # Show all workspace groups
|
||||
format = "{icon}";
|
||||
show-special = false; # Hide Hyprland's "special" workspaces
|
||||
on-click = "activate";
|
||||
on-scroll-up = "hyprctl dispatch workspace r+1";
|
||||
on-scroll-down = "hyprctl dispatch workspace r-1";
|
||||
persistent-workspaces = {
|
||||
"1" = [ ];
|
||||
"2" = [ ];
|
||||
"3" = [ ];
|
||||
"4" = [ ];
|
||||
"5" = [ ];
|
||||
};
|
||||
format-icons = {
|
||||
active = "";
|
||||
default = "";
|
||||
};
|
||||
}
|
||||
7
modules/home/waybar/modules/hyprpicker.nix
Normal file
7
modules/home/waybar/modules/hyprpicker.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "";
|
||||
on-click = "hyprpicker | tr -d '\\n' | wl-copy";
|
||||
}
|
||||
10
modules/home/waybar/modules/idle-inhibitor.nix
Normal file
10
modules/home/waybar/modules/idle-inhibitor.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = " ";
|
||||
deactivated = " ";
|
||||
};
|
||||
}
|
||||
11
modules/home/waybar/modules/memory.nix
Normal file
11
modules/home/waybar/modules/memory.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 10;
|
||||
format = "{used:0.1f}G ";
|
||||
format-alt = "{percentage}% ";
|
||||
format-alt-click = "click";
|
||||
tooltip = true;
|
||||
tooltip-format = "{used:0.1f}/{total:0.1f}GiB";
|
||||
}
|
||||
10
modules/home/waybar/modules/menu.nix
Normal file
10
modules/home/waybar/modules/menu.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{}";
|
||||
exec = "echo ; echo app launcher";
|
||||
interval = 86400;
|
||||
tooltip = true;
|
||||
on-click = "walker";
|
||||
}
|
||||
26
modules/home/waybar/modules/mpris.nix
Normal file
26
modules/home/waybar/modules/mpris.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 10;
|
||||
format = "{player_icon} ";
|
||||
format-paused = "{status_icon} <i>{dynamic}</i>";
|
||||
player-icons = {
|
||||
chromium = "";
|
||||
mpd = "";
|
||||
default = "";
|
||||
firefox = "";
|
||||
kdeconnect = "";
|
||||
mopidy = "";
|
||||
mpv = "";
|
||||
spotify = "";
|
||||
vlc = "";
|
||||
};
|
||||
status-icons = {
|
||||
paused = "";
|
||||
playing = "";
|
||||
stopped = "";
|
||||
};
|
||||
max-length = 30;
|
||||
|
||||
}
|
||||
22
modules/home/waybar/modules/network.nix
Normal file
22
modules/home/waybar/modules/network.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{ifname}";
|
||||
format-wifi = "{icon}";
|
||||
format-ethernet = "";
|
||||
format-disconnected = "";
|
||||
format-linked = " {ifname} (No IP)";
|
||||
tooltip-format = "{ipaddr} {bandwidthUpBytes} {bandwidthDownBytes}";
|
||||
tooltip-format-wifi = "{essid} {icon} {signalStrength}%";
|
||||
tooltip-format-ethernet = "{essid} ";
|
||||
tooltip-format-disconnected = " Disconnected";
|
||||
max-length = 50;
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
}
|
||||
10
modules/home/waybar/modules/power.nix
Normal file
10
modules/home/waybar/modules/power.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "⏻";
|
||||
exec = "echo ; echo power";
|
||||
on-click = "wlogout";
|
||||
interval = 86400; # once every day
|
||||
tooltip = true;
|
||||
}
|
||||
14
modules/home/waybar/modules/temperature.nix
Normal file
14
modules/home/waybar/modules/temperature.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 10;
|
||||
tooltip = true;
|
||||
# Thermal Zone 12 refers to the CPU package temp
|
||||
# This might vary between devices. Maybe make it an input?
|
||||
thermal-zone = 12;
|
||||
critical-threshold = 85;
|
||||
format-critical = "{temperatureC}°C {icon}";
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = [ "" ];
|
||||
}
|
||||
7
modules/home/waybar/modules/tray.nix
Normal file
7
modules/home/waybar/modules/tray.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
icon-size = 15;
|
||||
spacing = 8;
|
||||
}
|
||||
27
modules/home/waybar/modules/wireplumber.nix
Normal file
27
modules/home/waybar/modules/wireplumber.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{icon} {volume}% {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
scroll-step = 5.0;
|
||||
on-click = "pavucontrol -t 3";
|
||||
on-click-right = "pavucontrol -t 4";
|
||||
tooltip-format = "{node_name} {volume}%\n{source_desc} {source_volume}%";
|
||||
}
|
||||
@@ -1,184 +0,0 @@
|
||||
@define-color foreground #BFE3EA;
|
||||
@define-color background alpha(#000007,0.05);
|
||||
@define-color cursor #B98FAE;
|
||||
|
||||
@define-color color0 #000009;
|
||||
@define-color color1 #60697E;
|
||||
@define-color color2 #BA4F80;
|
||||
@define-color color3 #4F7F96;
|
||||
@define-color color4 #BE869D;
|
||||
@define-color color5 #47A6BD;
|
||||
@define-color color6 #49AEC4;
|
||||
@define-color color7 #9BCED9;
|
||||
@define-color color8 #6D9098;
|
||||
@define-color color9 #60697E;
|
||||
@define-color color10 #BA4F80;
|
||||
@define-color color11 #4F7F96;
|
||||
@define-color color12 #BE869D;
|
||||
@define-color color13 #47A6BD;
|
||||
@define-color color14 #49AEC4;
|
||||
@define-color color15 #9BCED9;
|
||||
|
||||
/* ---- 💫 https://github.com/JaKooLit 💫 ---- */
|
||||
/*DARK_PURPLE*/
|
||||
|
||||
@define-color main-color @color15;
|
||||
* {
|
||||
all: unset; /*this is really important to isolate waybar from gtk*/
|
||||
font: bold 14px "FiraCode Nerd Font";
|
||||
font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
|
||||
border: none;
|
||||
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
/*background: alpha(@background, 0.1);*/
|
||||
background: rgba (0, 0, 0, 0.6);
|
||||
border-radius: 5px;
|
||||
/*border: 0px solid alpha(@background,0.8);*/
|
||||
}
|
||||
|
||||
#window {
|
||||
padding: 0px 8px;
|
||||
margin: 5px 4px 5px 4px;
|
||||
background: alpha(@color12, 0.3);
|
||||
border-radius: 5px;
|
||||
color: lighter(@main-color);
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: alpha(@background, 0.8);
|
||||
border: 2px solid alpha(lighter(@main-color), 0.8);
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @freground;
|
||||
}
|
||||
|
||||
#custom-arrow-right {
|
||||
color: @main-color;
|
||||
margin: 0px 4px;
|
||||
}
|
||||
|
||||
#cpu,
|
||||
#memory,
|
||||
#temperature,
|
||||
#disk,
|
||||
#custom-updates {
|
||||
padding: 0px 6px;
|
||||
margin: 6px 4px;
|
||||
background: alpha(darker(@main-color), 0.4);
|
||||
color: @main-color;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin: 4px 4px;
|
||||
background: alpha(lighter(@color4), 0.09);
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0px 4px;
|
||||
margin: 0px 0px;
|
||||
color: alpha(@foreground, 0.3);
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
transition: color 0.5s;
|
||||
color: lighter(@main-color);
|
||||
}
|
||||
|
||||
#workspaces button.urgent,
|
||||
#workspaces button:hover {
|
||||
color: @color12;
|
||||
background-color: transparent;
|
||||
}
|
||||
#demo,
|
||||
#control-center {
|
||||
padding: 0px 6px;
|
||||
margin: 4px 2px 4px 2px;
|
||||
color: lighter(@color3);
|
||||
background: alpha(lighter(@main-color), 0.08);
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#pulseaudio-slider slider {
|
||||
min-height: 0px;
|
||||
min-width: 0px;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
#pulseaudio-slider {
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
#pulseaudio-slider highlight {
|
||||
border-radius: 8px;
|
||||
background-color: lighter(@main-color);
|
||||
}
|
||||
|
||||
#language {
|
||||
padding: 0px 3px 2px 0px;
|
||||
}
|
||||
|
||||
#custom-arrow-left {
|
||||
color: lighter(@main-color);
|
||||
margin: 0px 4px;
|
||||
}
|
||||
|
||||
#custom-notifications,
|
||||
#custom-weather,
|
||||
#custom-theme-switcher {
|
||||
padding: 0px 8px;
|
||||
margin: 8px 4px;
|
||||
color: @main-color;
|
||||
background: alpha(darker(@main-color), 0.8);
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#tray {
|
||||
padding: 0px 8px;
|
||||
margin: 4px 2px 4px 2px;
|
||||
background: alpha(@color12, 0.3);
|
||||
border-radius: 5px;
|
||||
color: lighter(@main-color);
|
||||
}
|
||||
|
||||
#custom-menu,
|
||||
#custom-power {
|
||||
padding: 0px 10px 0px 6px;
|
||||
margin: 6px 6px 6px 4px;
|
||||
background: alpha(@color12, 0.3);
|
||||
border-radius: 5px;
|
||||
color: lighter(@main-color);
|
||||
}
|
||||
|
||||
#clock {
|
||||
padding: 0px 8px;
|
||||
margin: 5px 2px 5px 4px;
|
||||
background: alpha(@color12, 0.3);
|
||||
border-radius: 5px;
|
||||
color: lighter(@main-color);
|
||||
}
|
||||
|
||||
#power,
|
||||
#bluetooth,
|
||||
#mpd,
|
||||
#pulseaudio,
|
||||
#wireplumber,
|
||||
#battery,
|
||||
#mpris {
|
||||
padding: 4px 4px;
|
||||
color: lighter(@main-color);
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: red;
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
wallpaper,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -56,7 +57,7 @@
|
||||
}
|
||||
|
||||
window {
|
||||
background: url("${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/sunset_bay.jpg");
|
||||
background: url("${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/${wallpaper}");
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,20 +1,42 @@
|
||||
{
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
host,
|
||||
hostPubkey ? null,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.agenix.nixosModules.default
|
||||
inputs.agenix-rekey.nixosModules.default
|
||||
];
|
||||
|
||||
environment.systemPackages = [
|
||||
inputs.agenix.packages.${pkgs.stdenv.hostPlatform.system}.default # CLI Tool
|
||||
# agenix-rekey's CLI tool replaces standard agenix's
|
||||
inputs.agenix-rekey.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
];
|
||||
|
||||
age.secrets = {
|
||||
tailscale-auth.file = ../../secrets/tailscale-auth.age;
|
||||
eclypsecloud-eclypse.file = ../../secrets/eclypsecloud-eclypse.age;
|
||||
eclypse-password.file = ../../secrets/eclypse-password.age;
|
||||
age = {
|
||||
# Need to explicitly set identity paths because OpenSSH daemon is disabled
|
||||
# but the host keys are still generated via services.openssh.generateHostKeys = true
|
||||
identityPaths = map (key: key.path) config.services.openssh.hostKeys;
|
||||
rekey = {
|
||||
masterIdentities = [ "${inputs.self}/secrets/age-yubikey-identity-d9ed335b.pub" ];
|
||||
storageMode = "local";
|
||||
localStorageDir = ../../. + "/secrets/rekeyed/${host}";
|
||||
}
|
||||
# We only set the hostPubkey if one is supplied. For new hosts the pub key will not
|
||||
# exist until it is generated after the first rebuild. Runtime decryption will fail
|
||||
# but then the ssh host key will be generated in /etc/ssh and can be supplied
|
||||
// lib.optionalAttrs (hostPubkey != null) {
|
||||
inherit hostPubkey;
|
||||
};
|
||||
secrets = {
|
||||
tailscale-auth.rekeyFile = ../../secrets/tailscale-auth.age;
|
||||
eclypsecloud-eclypse.rekeyFile = ../../secrets/eclypsecloud-eclypse.age;
|
||||
eclypse-password.rekeyFile = ../../secrets/eclypse-password.age;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
fontconfig.enable = true;
|
||||
packages = with pkgs; [
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.symbols-only
|
||||
nerd-fonts.geist-mono
|
||||
rubik
|
||||
];
|
||||
};
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -7,6 +8,10 @@
|
||||
yubikey-touch-detector.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
age-plugin-yubikey
|
||||
];
|
||||
|
||||
services = {
|
||||
yubikey-agent.enable = true;
|
||||
};
|
||||
|
||||
@@ -52,15 +52,41 @@
|
||||
|
||||
upower.enable = true;
|
||||
|
||||
# Enable the OpenSSH daemon. (Look into Fail2Ban in the future)
|
||||
# Disable SSH daemon but generate host keys anyway for secret rekeying
|
||||
openssh = {
|
||||
enable = false;
|
||||
generateHostKeys = true;
|
||||
};
|
||||
|
||||
system76-scheduler.settings.cfsProfiles.enable = true;
|
||||
|
||||
tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
PermitRootLogin = "prohibit-password";
|
||||
AllowUsers = [ "eclypse" ];
|
||||
CPU_BOOST_ON_AC = 1;
|
||||
CPU_BOOST_ON_BAT = 0;
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
PLATFORM_PROFILE_ON_AC = "performance";
|
||||
PLATFORM_PROFILE_ON_BAT = "balanced";
|
||||
START_CHARGE_THRESH_BAT1 = 65; # Only STOP_CHARGE_THRESH available on Framework
|
||||
STOP_CHARGE_THRESH_BAT1 = 80;
|
||||
# Fixes stuttering Hyprland animations on Intel iGPU (https://wiki.hypr.land/Configuring/Performance/)
|
||||
INTEL_GPU_MIN_FREQ_ON_AC = 300;
|
||||
INTEL_GPU_MIN_FREQ_ON_BAT = 300;
|
||||
};
|
||||
};
|
||||
|
||||
# Disable GNOME's power management (conflicts with TLP)
|
||||
power-profiles-daemon.enable = false;
|
||||
|
||||
# Enable thermald (only necessary for Intel CPUs)
|
||||
thermald.enable = true;
|
||||
};
|
||||
|
||||
powerManagement = {
|
||||
enable = true;
|
||||
powertop.enable = true;
|
||||
};
|
||||
|
||||
hardware = {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
inputs,
|
||||
pkgs,
|
||||
host,
|
||||
wallpaper,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
@@ -11,7 +12,7 @@
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = true;
|
||||
extraSpecialArgs = { inherit inputs host; };
|
||||
extraSpecialArgs = { inherit inputs host wallpaper; };
|
||||
|
||||
users.eclypse = {
|
||||
imports = [ ../home ];
|
||||
|
||||
17
profiles/intel.nix
Normal file
17
profiles/intel.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
intel-ocl
|
||||
intel-vaapi-driver
|
||||
vpl-gpu-rt
|
||||
libvdpau-va-gl
|
||||
libva-vdpau-driver
|
||||
];
|
||||
};
|
||||
}
|
||||
42
profiles/nvidia.nix
Normal file
42
profiles/nvidia.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# Enable OpenGL
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware.nvidia = {
|
||||
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||
# of just the bare essentials.
|
||||
powerManagement.enable = true;
|
||||
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
# Use the Nvidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 513.43.04+
|
||||
open = false;
|
||||
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
}
|
||||
7
secrets/age-yubikey-identity-d9ed335b.pub
Normal file
7
secrets/age-yubikey-identity-d9ed335b.pub
Normal file
@@ -0,0 +1,7 @@
|
||||
# Serial: 27501992, Slot: 1
|
||||
# Name: agenix-rekey-alpha
|
||||
# Created: Sat, 20 Dec 2025 06:01:41 +0000
|
||||
# PIN policy: Once (A PIN is required once per session, if set)
|
||||
# Touch policy: Always (A physical touch is required for every decryption)
|
||||
# Recipient: age1yubikey1qvq48l020xg9xtt5epdpnzp3kvkm2vvc57357p58pyfq557a8q8hv84c82e
|
||||
AGE-PLUGIN-YUBIKEY-14ZJ6XQVZM8KNXKCT2PKLW
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
age-encryption.org/v1
|
||||
-> ssh-ed25519 7p4RPw HgBYYM/VqZ4KN4V4TrGmk86wPRhDgM+VaXfa3VlODRM
|
||||
OdM//HvJTzB7/jw+c+6euiYz9ptUf/z22tzJSgxTD+w
|
||||
-> B%P@9-grease
|
||||
Zgr76aiZDhCWBdnbxoOptAfEuM1RWw1bN4rsUCec4VP0cDN856bCtaQjnWWbSTvv
|
||||
YPHtmw
|
||||
--- obv+bg63dTlnoke3tQdkAizcAqsYG2sUjYBZrhGZG68
|
||||
(2<><04>$<24>Y@<40><>i<EFBFBD>7<EFBFBD>j<EFBFBD><02><>ar<61>7<EFBFBD>X$U<><0E>~<7E><>|<7C><>'<14><><EFBFBD>oo`<60><><EFBFBD><EFBFBD><11>DƆ{<7B>#<23>%<25><<m<>O)V<><56>2C<17><!<21>e<EFBFBD>ݺ(24<01><05><>~<7E><>
|
||||
@@ -0,0 +1,7 @@
|
||||
age-encryption.org/v1
|
||||
-> ssh-ed25519 7p4RPw FdmJ1odfweTU4HWPTeWuEcoIUq1V4ke28BWmlNNdNHg
|
||||
9qi5QQHociRgSzZ97HifRDf+/Hh0cCZJzFsobpP1cpU
|
||||
-> 4pq5-grease
|
||||
yKZUs4lQM6BQgsyzMn3T1pvUt393/NvcRe7KwuTCDCU
|
||||
--- N7NO5Ps2SG3SFNNnNNvYUSGgA0b5Dk7H6+x0rt6JtXA
|
||||
Dl<EFBFBD>]ep<>(F0i3<<3C><><EFBFBD><EFBFBD><EFBFBD>Sm<53>E<7F>Eh<45><01><>S<EFBFBD>eX<><0F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V$0<>Ŝ<EFBFBD><C59C><EFBFBD>c`<60><>%<25><><EFBFBD><EFBFBD><EFBFBD>Q<EFBFBD><51><EFBFBD><17>7&<26>X,<0B><>Lo<4C><6F>?QQ+<2B>~|%{<7B><><EFBFBD>-V<>%H<>):ց]Kx<4B><78>K<EFBFBD><4B>NX<4E><58>6<EFBFBD><36>ۦejO<><4F>#X<><58>
|
||||
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
# This file is NOT imported into the nix configuration, it is just for the agenix CLI
|
||||
let
|
||||
# System public ssh keys (/etc/ssh/)
|
||||
vanta = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaDVBJdMDFL8r9NQCbaLe+DPHGhGzRv2N7+7m1/U8DP";
|
||||
in
|
||||
{
|
||||
# Tailscale auth key need to be up to date with a valid auth key in the tailscale
|
||||
# dashboard. Single-use keys expire after a single machine connects, and even
|
||||
# reusable keys expire after 90 days.
|
||||
# Update tailscale-auth.age with `agenix -e tailscale-auth.age -i /path/to/private-ssh-key`
|
||||
# Note: Only devices with the below public keys are allowed to edit tailscale-auth.age
|
||||
"tailscale-auth.age".publicKeys = [ vanta ]; # Devices allowed to join the tailnet;
|
||||
|
||||
# Devices that can connect to EclypseCloud with the eclypse user.
|
||||
"eclypsecloud-eclypse.age".publicKeys = [ vanta ];
|
||||
|
||||
# Devices that have the eclypse user
|
||||
"eclypse-password.age".publicKeys = [ vanta ];
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
age-encryption.org/v1
|
||||
-> ssh-ed25519 7p4RPw 7GuZj43+NoyPXf//ZLM99vossbJXOpDQSkBi3w51Wl8
|
||||
FTMjlyml+T87LQffffY2AJL5IhTAJF2QlfFvhvZpvOs
|
||||
--- iONf8B3bUxXtCiv0EAv5QO0ZyhE5A6YfRbcxUr/awFg
|
||||
<EFBFBD><0E><><EFBFBD>Tw<54><77>J`<60>~B
|
||||
<EFBFBD><11>;<3B>lOh<4F><68>{2<>?<3F><>P<EFBFBD><50>F>@m<>o<><6F>c<EFBFBD><1C>~X<>3<EFBFBD>@.g<0E>ھ<EFBFBD>eK<65><18>V7zphS<68><53>د6<D8AF><36>.W<><57>O@F
|
||||
-> piv-p256 2e0zWw ApoXPsP2VGfJnOt+dDk7DfssOkbM/3vkn4jwSfxD4UAj
|
||||
jtn4DCA/EyrTl9DW1hs84yd3RgVuDU77ggM218HiUdc
|
||||
-> *E(-grease Ull1npy_ >F7 *?
|
||||
IM+85AtRNlMrFgqk/uAG
|
||||
--- nxCTKF6R3E/qaTTgr7jZdz4ZLRE15NsJpyKHizEJnPw
|
||||
<EFBFBD>><3E>"l<><6C><EFBFBD><14><>r<>sN<4E><7F>V*F<>I<7F>|<0E><>0X<30>8<EFBFBD><38>
|
||||
<EFBFBD><EFBFBD>|P<><50><EFBFBD><1C>F<EFBFBD><0C><>D<EFBFBD>\x<>Z<EFBFBD><5A>P<EFBFBD><50>]<5D>ʧ<EFBFBD>t-"n<>m<EFBFBD><6D><EFBFBD><EFBFBD><EFBFBD>&<26><>|<7C> %<25><><EFBFBD><EFBFBD><EFBFBD>.ӆ
|
||||
BIN
wallpapers/twilight-village.png
Normal file
BIN
wallpapers/twilight-village.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.0 MiB |
Reference in New Issue
Block a user