mirror of
https://github.com/tuxdotrs/nix-config.git
synced 2026-06-21 03:36:32 +05:30
Compare commits
22 Commits
6ebc3ed144
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
5a4483b615
|
|||
|
c3adf234f7
|
|||
|
7f74855511
|
|||
|
383bc98052
|
|||
|
828ca02935
|
|||
|
6438a98d18
|
|||
|
6b09bf0e7e
|
|||
|
cd4e81178d
|
|||
|
b649b974fa
|
|||
|
71aaf2d392
|
|||
|
8ec23b15af
|
|||
|
fdc63b9307
|
|||
|
626dd68af6
|
|||
|
8bca900c98
|
|||
|
a1c8b6c56e
|
|||
|
8ce1d22066
|
|||
|
5f895aeee0
|
|||
|
c75ff5eee2
|
|||
|
03f7aeb49b
|
|||
|
bc553b6248
|
|||
|
20cfab3d6b
|
|||
|
61791f311e
|
@@ -4,6 +4,7 @@ keys:
|
|||||||
|
|
||||||
- &hosts
|
- &hosts
|
||||||
- &sirius age1maxsx5tq2h3d92rfyl8ekcdan5gu5cpch4qs3c56cu7qag02xgvs3h0gqc
|
- &sirius age1maxsx5tq2h3d92rfyl8ekcdan5gu5cpch4qs3c56cu7qag02xgvs3h0gqc
|
||||||
|
- &canopus age1x36yr8h993srfj29sfpzt4wyz52nztvncpmhgmfs0j26qvfecq3qvcm0an
|
||||||
- &arcturus age1huqa3hc7wcxk4dpelrzny437nzrx4fnll3d8g9ahznzk268yju5qufapxy
|
- &arcturus age1huqa3hc7wcxk4dpelrzny437nzrx4fnll3d8g9ahznzk268yju5qufapxy
|
||||||
- &alpha age1mzxxxzhy3us3rd960ufqv7vlxj5cnug86md6x69llg9ujzw2pqws057llf
|
- &alpha age1mzxxxzhy3us3rd960ufqv7vlxj5cnug86md6x69llg9ujzw2pqws057llf
|
||||||
|
|
||||||
@@ -13,6 +14,11 @@ creation_rules:
|
|||||||
- age:
|
- age:
|
||||||
- *tux
|
- *tux
|
||||||
- *sirius
|
- *sirius
|
||||||
|
- path_regex: hosts/canopus/secrets.yaml$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *tux
|
||||||
|
- *canopus
|
||||||
- path_regex: hosts/arcturus/secrets.yaml$
|
- path_regex: hosts/arcturus/secrets.yaml$
|
||||||
key_groups:
|
key_groups:
|
||||||
- age:
|
- age:
|
||||||
|
|||||||
72
flake.lock
generated
72
flake.lock
generated
@@ -273,11 +273,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777678872,
|
"lastModified": 1777988971,
|
||||||
"narHash": "sha256-EPIFsulyon7Z1vLQq5Fk64GR8L7cQsT+IPhcsukVbgk=",
|
"narHash": "sha256-qIoWPDs+0/8JecyYgE3gpKQxW/4bLW/gp45vow9ioCQ=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "5250617bffd85403b14dbf43c3870e7f255d2c16",
|
"rev": "0678d8986be1661af6bb555f3489f2fdfc31f6ff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -446,11 +446,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777846259,
|
"lastModified": 1778444552,
|
||||||
"narHash": "sha256-jzln9xcpVcmEB1zfhJ+FIHd7/kaVHgGF+gQQHxj2fGI=",
|
"narHash": "sha256-f18pIiR9q/p1vHY93gmAum7aHhQOG49oGvAB9+lptRo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "4625f26228f4f7ea3cf65eee3023359a8221fcff",
|
"rev": "dcebe66f958673729896eec2de4abfd86ef22d21",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -555,11 +555,11 @@
|
|||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778072172,
|
"lastModified": 1778442165,
|
||||||
"narHash": "sha256-onx/6cN1tHDnMH0oCQCnpQPKv9VijeLtfOh7PStp2f0=",
|
"narHash": "sha256-SEwIBVG4RPEVBqRbEZadGteMlndFqIJD/9HOkPRIBm0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "1681bea42dd2f11ba3fe6df05560d0b231de3c76",
|
"rev": "3e21a68bd0a81c2fc45f2c843c9d02c47350ef44",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -732,11 +732,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777492286,
|
"lastModified": 1778234770,
|
||||||
"narHash": "sha256-PwuoEJQcjSKJNP5T55qhfDwIP0tw5zxEhfu8GDfKfeg=",
|
"narHash": "sha256-jAcsogZwWMfXT9MfXxZzkwliAqIuZUV0p71h6Ba9ReE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "ec5c0c709706bad5b82f667fd8758eae442577ce",
|
"rev": "a2dbd8a4cc51f7cbe4224732668392bb1aa79df2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -900,11 +900,11 @@
|
|||||||
"scenefx": "scenefx"
|
"scenefx": "scenefx"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778073611,
|
"lastModified": 1778376841,
|
||||||
"narHash": "sha256-6rNTdQZq4x/F2bHQsk7qo4OhXs5Y0xsQrTR1hgKZOqw=",
|
"narHash": "sha256-mUSCkFQGrcdVitwx0fDajWxxgvAV5BmppP4ShV3JOyY=",
|
||||||
"owner": "DreamMaoMao",
|
"owner": "DreamMaoMao",
|
||||||
"repo": "mango",
|
"repo": "mango",
|
||||||
"rev": "42c02e3dc20eb09c0191b027e387c0268f8e0fb5",
|
"rev": "cabafb2393ff71615af4959a51885c8d1eefc9a0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -921,11 +921,11 @@
|
|||||||
"nixpkgs-nixcord": "nixpkgs-nixcord"
|
"nixpkgs-nixcord": "nixpkgs-nixcord"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778145028,
|
"lastModified": 1778346777,
|
||||||
"narHash": "sha256-tJHyzazrh9cnL72lPiDCnLDOOP95vDb37PprmgiqHtw=",
|
"narHash": "sha256-7gpzB8MDCMcRE0wDr7jjxK7/obfeiyAulsfQEsK9pi4=",
|
||||||
"owner": "kaylorben",
|
"owner": "kaylorben",
|
||||||
"repo": "nixcord",
|
"repo": "nixcord",
|
||||||
"rev": "b53c871a9c3d4d450ffbcac71d54f3e0ca1bbafc",
|
"rev": "43930a83206bcdcf3ba4fc10aa4fb9c5f7a677e6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -936,11 +936,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777796046,
|
"lastModified": 1778143761,
|
||||||
"narHash": "sha256-bEJp/zaQApzynGRaAO62BZSz9tFikKtIHCn2yIA/s7Q=",
|
"narHash": "sha256-lkesY6x2X2qxlqLM7CT2iM/0rP2JB7fruPN3h8POXmI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "eeb02f6e29fc8139c0b15af5ff0fdfdc6d0d3d90",
|
"rev": "3bcaa367d4c550d687a17ac792fd5cda214ee871",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1014,11 +1014,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777805331,
|
"lastModified": 1778353088,
|
||||||
"narHash": "sha256-jINoZUP2tJEBLuVoMEhJn9qWQgpriGorwlgnBc1QAPg=",
|
"narHash": "sha256-5yu6kIgn+hO0V7pomciXixWAnMcuwQvqFD5Dgb2K9L4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8cbe20ad0f64f9f9619b871dfdf57022beccef65",
|
"rev": "071465abe725f841e610a52b194c3b86b288316a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1030,11 +1030,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_10": {
|
"nixpkgs_10": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777918403,
|
"lastModified": 1775888245,
|
||||||
"narHash": "sha256-7QiZv0LcW1yIOLo2LNuCQjWon1Z1r99FwK24hbtBOF4=",
|
"narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "afc5551119aae6eab73a95c1960891cfe63204f6",
|
"rev": "13043924aaa7375ce482ebe2494338e058282925",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1158,11 +1158,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_8": {
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777578337,
|
"lastModified": 1777954456,
|
||||||
"narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=",
|
"narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "15f4ee454b1dce334612fa6843b3e05cf546efab",
|
"rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1194,11 +1194,11 @@
|
|||||||
"nixpkgs": "nixpkgs_9"
|
"nixpkgs": "nixpkgs_9"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778156530,
|
"lastModified": 1778454210,
|
||||||
"narHash": "sha256-4VhPk2NQKyYptNw1x/HG23sFmR4iYTOTZhGhzzYDQOs=",
|
"narHash": "sha256-U6wleXwWGNDX588cqrz+Kg+7GrlB003JHQ0CVHj+3yA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nur",
|
"repo": "nur",
|
||||||
"rev": "1b24f43e7f25d9c297a2ed45c654a72fc68d3d29",
|
"rev": "c7c431a1bd1360cb568d309c2c18aa4785c254c8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1575,11 +1575,11 @@
|
|||||||
"vicinae": "vicinae"
|
"vicinae": "vicinae"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777930825,
|
"lastModified": 1778369365,
|
||||||
"narHash": "sha256-0hVf9yH+v+0YaCqmr0aX0nR4pfmXjW1XhJcJyblJqE0=",
|
"narHash": "sha256-Qxu3wUKqOJGJzj1RFvXw2StqHBDs+tVWvhKg9OZY87I=",
|
||||||
"owner": "vicinaehq",
|
"owner": "vicinaehq",
|
||||||
"repo": "extensions",
|
"repo": "extensions",
|
||||||
"rev": "20d6a13d2a389e61619b8540b8af746705409322",
|
"rev": "de5313f14242dda1f88f6e8443eb349ed2b2cdb1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.desktop =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
home.pointerCursor = {
|
|
||||||
package = pkgs.bibata-cursors;
|
|
||||||
name = "Bibata-Modern-Ice";
|
|
||||||
size = 28;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
5
modules/hm/desktop/easyeffects.nix
Normal file
5
modules/hm/desktop/easyeffects.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
flake.modules.homeManager.desktop = {
|
||||||
|
services.easyeffects.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
47
modules/hm/desktop/ghostty.nix
Normal file
47
modules/hm/desktop/ghostty.nix
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
flake.modules.homeManager.desktop = {
|
||||||
|
programs.ghostty = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
confirm-close-surface = false;
|
||||||
|
gtk-titlebar = false;
|
||||||
|
window-padding-x = 10;
|
||||||
|
window-padding-y = 10;
|
||||||
|
font-size = 12;
|
||||||
|
font-family = "JetBrainsMono Nerd Font";
|
||||||
|
theme = "poimandres";
|
||||||
|
};
|
||||||
|
|
||||||
|
themes = {
|
||||||
|
poimandres = {
|
||||||
|
background = "#0f0f0f";
|
||||||
|
foreground = "#a6accd";
|
||||||
|
cursor-color = "#f2eacf";
|
||||||
|
selection-background = "#1a1a1a";
|
||||||
|
selection-foreground = "#f1f1f1";
|
||||||
|
palette = [
|
||||||
|
"0=#252b37"
|
||||||
|
"1=#d0679d"
|
||||||
|
"2=#5de4c7"
|
||||||
|
"3=#fffac2"
|
||||||
|
"4=#89ddff"
|
||||||
|
"5=#fae4fc"
|
||||||
|
"6=#add7ff"
|
||||||
|
"7=#ffffff"
|
||||||
|
"8=#a6accd"
|
||||||
|
"9=#d0679d"
|
||||||
|
"10=#5de4c7"
|
||||||
|
"11=#fffac2"
|
||||||
|
"12=#add7ff"
|
||||||
|
"13=#89ddff"
|
||||||
|
"14=#fcc5e9"
|
||||||
|
"15=#ffffff"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,13 +1,7 @@
|
|||||||
{
|
{
|
||||||
flake.modules.homeManager.desktop =
|
flake.modules.homeManager.desktop =
|
||||||
{ pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
ags
|
|
||||||
awww
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = null;
|
package = null;
|
||||||
@@ -15,5 +9,31 @@
|
|||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
systemd.variables = [ "--all" ];
|
systemd.variables = [ "--all" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# TODO: Hyprland 0.55 switched to Lua-based configuration.
|
||||||
|
# Until the Home Manager module is updated, we symlink our config instead.
|
||||||
|
home.file = {
|
||||||
|
".config/hypr/config".source =
|
||||||
|
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/config";
|
||||||
|
".config/hypr/hyprland.lua".source =
|
||||||
|
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/hyprland.lua";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
ags
|
||||||
|
awww
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
hyprshot
|
||||||
|
wl-clipboard
|
||||||
|
wl-screenrec
|
||||||
|
(writeShellScriptBin "hypr-screenshot" ''
|
||||||
|
hyprshot -m region -r ppm - | satty --filename -
|
||||||
|
'')
|
||||||
|
|
||||||
|
(writeShellScriptBin "hypr-screenrecord" ''
|
||||||
|
wl-screenrec -g "$(slurp)"
|
||||||
|
'')
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,250 +1,256 @@
|
|||||||
{ inputs, ... }:
|
{ inputs, ... }:
|
||||||
{
|
{
|
||||||
flake.modules.homeManager.desktop =
|
flake.modules.homeManager.desktop =
|
||||||
{ pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.tnix.desktop.mangowm;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.mango.hmModules.mango
|
inputs.mango.hmModules.mango
|
||||||
];
|
];
|
||||||
|
|
||||||
wayland.windowManager.mango = {
|
options.tnix.desktop.mangowm = {
|
||||||
enable = true;
|
enable = mkEnableOption "Enable MangoWM";
|
||||||
settings = {
|
|
||||||
# Monitors
|
|
||||||
monitorrule = [
|
|
||||||
"name:DP-2, width:1440, height:2560, refresh:144, x:0, y:0, vrr:0, rr:1"
|
|
||||||
"name:DP-3, width:2560, height:1440, refresh:144, x:1440, y:0, vrr:0"
|
|
||||||
"name:DP-1, width:1080, height:1920, refresh:144, x:4000, y:0, vrr:0, rr:3"
|
|
||||||
];
|
|
||||||
|
|
||||||
focus_cross_monitor = 1;
|
monitorRule = mkOption {
|
||||||
exchange_cross_monitor = 1;
|
type = with types; listOf str;
|
||||||
drag_tile_to_tile = 1;
|
default = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
# Keyboard
|
tagRule = mkOption {
|
||||||
repeat_rate = 25;
|
type = with types; listOf str;
|
||||||
repeat_delay = 600;
|
default = [ ];
|
||||||
numlockon = 0;
|
|
||||||
xkb_rules_layout = "us";
|
|
||||||
|
|
||||||
# Trackpad
|
|
||||||
disable_trackpad = 0;
|
|
||||||
tap_to_click = 1;
|
|
||||||
tap_and_drag = 1;
|
|
||||||
drag_lock = 1;
|
|
||||||
trackpad_natural_scrolling = 1;
|
|
||||||
disable_while_typing = 1;
|
|
||||||
left_handed = 0;
|
|
||||||
middle_button_emulation = 0;
|
|
||||||
swipe_min_threshold = 1;
|
|
||||||
|
|
||||||
# Mouse
|
|
||||||
mouse_natural_scrolling = 0;
|
|
||||||
mouse_accel_profile = 0;
|
|
||||||
|
|
||||||
# Theme
|
|
||||||
border_radius = 8;
|
|
||||||
no_radius_when_single = 0;
|
|
||||||
focused_opacity = 0.9;
|
|
||||||
unfocused_opacity = 0.9;
|
|
||||||
|
|
||||||
# Scroller Layout Setting
|
|
||||||
scroller_structs = 0;
|
|
||||||
scroller_default_proportion = 0.5;
|
|
||||||
scroller_ignore_proportion_single = 0;
|
|
||||||
scroller_default_proportion_single = 1.0;
|
|
||||||
|
|
||||||
# Master-Stack Layout Setting
|
|
||||||
new_is_master = 0;
|
|
||||||
default_mfact = 0.5;
|
|
||||||
default_nmaster = 1;
|
|
||||||
smartgaps = 0;
|
|
||||||
|
|
||||||
# Overview Setting
|
|
||||||
hotarea_size = 10;
|
|
||||||
enable_hotarea = 1;
|
|
||||||
ov_tab_mode = 0;
|
|
||||||
overviewgappi = 15;
|
|
||||||
overviewgappo = 15;
|
|
||||||
|
|
||||||
# layouts
|
|
||||||
tagrule = [
|
|
||||||
"id:1, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
"id:2, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
"id:3, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
"id:4, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
"id:5, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
|
|
||||||
"id:1, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
"id:2, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
"id:3, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
"id:4, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
"id:5, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
|
|
||||||
"id:1, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
"id:2, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
"id:3, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
"id:4, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
"id:5, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Keybindings
|
|
||||||
mousebind = [
|
|
||||||
"SUPER, btn_left, moveresize, curmove"
|
|
||||||
"SUPER, btn_right, moveresize, curresize"
|
|
||||||
];
|
|
||||||
|
|
||||||
gesturebind = [
|
|
||||||
"none, right, 3, viewtoleft_have_client"
|
|
||||||
"none, up, 3, toggleoverview"
|
|
||||||
"none, down, 3, toggleoverview"
|
|
||||||
];
|
|
||||||
|
|
||||||
bind = [
|
|
||||||
# apps
|
|
||||||
"SUPER, Return, spawn, wezterm"
|
|
||||||
"SUPER, Space, spawn, vicinae toggle"
|
|
||||||
"SUPER, D, spawn, vesktop"
|
|
||||||
"SUPER, T, spawn, Telegram"
|
|
||||||
"SUPER, B, spawn, brave"
|
|
||||||
"SUPER, V, spawn, vicinae vicinae://extensions/vicinae/clipboard/history"
|
|
||||||
"SUPER+SHIFT, W, spawn, vicinae vicinae://extensions/sovereign/awww-switcher/wpgrid"
|
|
||||||
|
|
||||||
# WM
|
|
||||||
"SUPER, Q, killclient"
|
|
||||||
"SUPER+SHIFT, R, reload_config"
|
|
||||||
"SUPER+SHIFT, F, togglefullscreen"
|
|
||||||
"SUPER+SHIFT, Space, togglefloating"
|
|
||||||
|
|
||||||
"ALT, Tab, toggleoverview"
|
|
||||||
"ALT+SHIFT, minus, incgaps, -1"
|
|
||||||
"ALT+SHIFT, equal, incgaps, 1"
|
|
||||||
"ALT+SHIFT, R, togglegaps"
|
|
||||||
|
|
||||||
# switch layout
|
|
||||||
"SUPER+SHIFT, H, setlayout, tile"
|
|
||||||
"SUPER+SHIFT, V, setlayout, vertical_tile"
|
|
||||||
"SUPER+SHIFT, S, setlayout, scroller"
|
|
||||||
|
|
||||||
# resize client
|
|
||||||
"SUPER+CTRL, Up, resizewin, +0, -50"
|
|
||||||
"SUPER+CTRL, Down, resizewin, +0, +50"
|
|
||||||
"SUPER+CTRL, Left, resizewin, -50, +0"
|
|
||||||
"SUPER+CTRL, Right, resizewin, +50, +0"
|
|
||||||
|
|
||||||
# swap client
|
|
||||||
"SUPER+SHIFT, Up, exchange_client, up"
|
|
||||||
"SUPER+SHIFT, Down, exchange_client, down"
|
|
||||||
"SUPER+SHIFT, Left, exchange_client, left"
|
|
||||||
"SUPER+SHIFT, Right, exchange_client, right"
|
|
||||||
|
|
||||||
# switch client focus
|
|
||||||
"SUPER, Tab, focusstack, next"
|
|
||||||
"SUPER, Left, focusdir, left"
|
|
||||||
"SUPER, Right, focusdir, right"
|
|
||||||
"SUPER, Up, focusdir, up"
|
|
||||||
"SUPER, Down, focusdir, down"
|
|
||||||
|
|
||||||
# switch view
|
|
||||||
"SUPER, 1, view, 1, 1"
|
|
||||||
"SUPER, 2, view, 2, 1"
|
|
||||||
"SUPER, 3, view, 3, 1"
|
|
||||||
"SUPER, 4, view, 4, 1"
|
|
||||||
"SUPER, 5, view, 5, 1"
|
|
||||||
|
|
||||||
# move client to the tag with focus
|
|
||||||
"SUPER+SHIFT, 1, tagsilent, 1, 1"
|
|
||||||
"SUPER+SHIFT, 2, tagsilent, 2, 1"
|
|
||||||
"SUPER+SHIFT, 3, tagsilent, 3, 1"
|
|
||||||
"SUPER+SHIFT, 4, tagsilent, 4, 1"
|
|
||||||
"SUPER+SHIFT, 5, tagsilent, 5, 1"
|
|
||||||
|
|
||||||
# move client to the tag without focus
|
|
||||||
"SUPER+ALT, 1, tag, 1, 1"
|
|
||||||
"SUPER+ALT, 2, tag, 2, 1"
|
|
||||||
"SUPER+ALT, 3, tag, 3, 1"
|
|
||||||
"SUPER+ALT, 4, tag, 4, 1"
|
|
||||||
"SUPER+ALT, 5, tag, 5, 1"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Window effect
|
|
||||||
blur = 1;
|
|
||||||
blur_layer = 0;
|
|
||||||
blur_optimized = 1;
|
|
||||||
blur_params_num_passes = 2;
|
|
||||||
blur_params_radius = 5;
|
|
||||||
blur_params_noise = 0.02;
|
|
||||||
blur_params_brightness = 0.9;
|
|
||||||
blur_params_contrast = 0.9;
|
|
||||||
blur_params_saturation = 1.2;
|
|
||||||
|
|
||||||
shadows = 1;
|
|
||||||
layer_shadows = 0;
|
|
||||||
shadow_only_floating = 1;
|
|
||||||
shadows_size = 10;
|
|
||||||
shadows_blur = 15;
|
|
||||||
shadows_position_x = 0;
|
|
||||||
shadows_position_y = 0;
|
|
||||||
shadowscolor = "0x000000ff";
|
|
||||||
|
|
||||||
# Animation
|
|
||||||
animations = 1;
|
|
||||||
layer_animations = 1;
|
|
||||||
animation_type_open = "slide";
|
|
||||||
animation_type_close = "fade";
|
|
||||||
animation_fade_in = 1;
|
|
||||||
animation_fade_out = 1;
|
|
||||||
tag_animation_direction = 0;
|
|
||||||
zoom_initial_ratio = 0.3;
|
|
||||||
zoom_end_ratio = 0.8;
|
|
||||||
fadein_begin_opacity = 0.5;
|
|
||||||
fadeout_begin_opacity = 0.8;
|
|
||||||
|
|
||||||
animation_duration_move = 100;
|
|
||||||
animation_duration_open = 100;
|
|
||||||
animation_duration_close = 100;
|
|
||||||
animation_duration_tag = 200;
|
|
||||||
animation_duration_focus = 0;
|
|
||||||
|
|
||||||
animation_curve_open = "0.46, 1.0, 0.29, 1";
|
|
||||||
animation_curve_move = "0.46, 1.0, 0.29, 1";
|
|
||||||
animation_curve_tag = "0.46, 1.0, 0.29, 1";
|
|
||||||
animation_curve_close = "0.08, 0.92, 0, 1";
|
|
||||||
animation_curve_focus = "0.46, 1.0, 0.29, 1";
|
|
||||||
animation_curve_opafadeout = "0.5, 0.5, 0.5, 0.5";
|
|
||||||
animation_curve_opafadein = "0.46, 1.0, 0.29, 1";
|
|
||||||
|
|
||||||
# Appearance
|
|
||||||
borderpx = 0;
|
|
||||||
gappih = 10;
|
|
||||||
gappiv = 10;
|
|
||||||
gappoh = 10;
|
|
||||||
gappov = 10;
|
|
||||||
|
|
||||||
rootcolor = "0x201b14ff";
|
|
||||||
bordercolor = "0x444444ff";
|
|
||||||
focuscolor = "0xc9b890ff";
|
|
||||||
maximizescreencolor = "0x89aa61ff";
|
|
||||||
urgentcolor = "0xad401fff";
|
|
||||||
scratchpadcolor = "0x516c93ff";
|
|
||||||
globalcolor = "0xb153a7ff";
|
|
||||||
overlaycolor = "0x14a57cff";
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
syncobj_enable = 1;
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
"dbus-update-activation-environment --systemd --all; systemctl --user reset-failed && systemctl --user start mango-session.target"
|
|
||||||
"awww-daemon"
|
|
||||||
"dms run"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
config = mkIf cfg.enable {
|
||||||
quickshell
|
wayland.windowManager.mango = {
|
||||||
dms-shell
|
enable = true;
|
||||||
dgop
|
settings = {
|
||||||
];
|
# Monitors
|
||||||
|
monitorrule = cfg.monitorRule;
|
||||||
|
|
||||||
|
focus_cross_monitor = 1;
|
||||||
|
exchange_cross_monitor = 1;
|
||||||
|
drag_tile_to_tile = 1;
|
||||||
|
|
||||||
|
# Keyboard
|
||||||
|
repeat_rate = 25;
|
||||||
|
repeat_delay = 600;
|
||||||
|
numlockon = 0;
|
||||||
|
xkb_rules_layout = "us";
|
||||||
|
|
||||||
|
# Trackpad
|
||||||
|
disable_trackpad = 0;
|
||||||
|
tap_to_click = 1;
|
||||||
|
tap_and_drag = 1;
|
||||||
|
drag_lock = 1;
|
||||||
|
trackpad_natural_scrolling = 1;
|
||||||
|
disable_while_typing = 1;
|
||||||
|
left_handed = 0;
|
||||||
|
middle_button_emulation = 0;
|
||||||
|
swipe_min_threshold = 1;
|
||||||
|
|
||||||
|
# Mouse
|
||||||
|
mouse_natural_scrolling = 0;
|
||||||
|
mouse_accel_profile = 0;
|
||||||
|
|
||||||
|
# Theme
|
||||||
|
border_radius = 8;
|
||||||
|
no_radius_when_single = 0;
|
||||||
|
focused_opacity = 0.9;
|
||||||
|
unfocused_opacity = 0.9;
|
||||||
|
|
||||||
|
# Scroller Layout Setting
|
||||||
|
scroller_structs = 0;
|
||||||
|
scroller_default_proportion = 0.5;
|
||||||
|
scroller_ignore_proportion_single = 0;
|
||||||
|
scroller_default_proportion_single = 1.0;
|
||||||
|
|
||||||
|
# Master-Stack Layout Setting
|
||||||
|
new_is_master = 0;
|
||||||
|
default_mfact = 0.5;
|
||||||
|
default_nmaster = 1;
|
||||||
|
smartgaps = 0;
|
||||||
|
|
||||||
|
# Overview Setting
|
||||||
|
hotarea_size = 10;
|
||||||
|
enable_hotarea = 1;
|
||||||
|
ov_tab_mode = 0;
|
||||||
|
overviewgappi = 15;
|
||||||
|
overviewgappo = 15;
|
||||||
|
|
||||||
|
# layouts
|
||||||
|
tagrule = cfg.tagRule;
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
mousebind = [
|
||||||
|
"SUPER, btn_left, moveresize, curmove"
|
||||||
|
"SUPER, btn_right, moveresize, curresize"
|
||||||
|
];
|
||||||
|
|
||||||
|
gesturebind = [
|
||||||
|
"none, right, 3, viewtoleft_have_client"
|
||||||
|
"none, up, 3, toggleoverview"
|
||||||
|
"none, down, 3, toggleoverview"
|
||||||
|
];
|
||||||
|
|
||||||
|
bind = [
|
||||||
|
# apps
|
||||||
|
"SUPER, Return, spawn, wezterm"
|
||||||
|
"SUPER, Space, spawn, vicinae toggle"
|
||||||
|
"SUPER, D, spawn, vesktop"
|
||||||
|
"SUPER, T, spawn, Telegram"
|
||||||
|
"SUPER, B, spawn, brave"
|
||||||
|
"SUPER, V, spawn, vicinae vicinae://extensions/vicinae/clipboard/history"
|
||||||
|
"SUPER+SHIFT, W, spawn, vicinae vicinae://extensions/sovereign/awww-switcher/wpgrid"
|
||||||
|
|
||||||
|
# WM
|
||||||
|
"SUPER, Q, killclient"
|
||||||
|
"SUPER+SHIFT, R, reload_config"
|
||||||
|
"SUPER+SHIFT, F, togglefullscreen"
|
||||||
|
"SUPER+SHIFT, Space, togglefloating"
|
||||||
|
"SUPER+SHIFT, Space, centerwin"
|
||||||
|
|
||||||
|
"ALT, Tab, toggleoverview"
|
||||||
|
"ALT+SHIFT, minus, incgaps, -1"
|
||||||
|
"ALT+SHIFT, equal, incgaps, 1"
|
||||||
|
"ALT+SHIFT, R, togglegaps"
|
||||||
|
"SUPER+SHIFT, P, toggleglobal"
|
||||||
|
|
||||||
|
# switch layout
|
||||||
|
"SUPER+SHIFT, H, setlayout, tile"
|
||||||
|
"SUPER+SHIFT, V, setlayout, vertical_tile"
|
||||||
|
"SUPER+SHIFT, S, setlayout, scroller"
|
||||||
|
|
||||||
|
# resize client
|
||||||
|
"SUPER+CTRL, Up, resizewin, +0, -50"
|
||||||
|
"SUPER+CTRL, Down, resizewin, +0, +50"
|
||||||
|
"SUPER+CTRL, Left, resizewin, -50, +0"
|
||||||
|
"SUPER+CTRL, Right, resizewin, +50, +0"
|
||||||
|
"SUPER+CTRL, Equal, setoption, default_mfact, 0.5"
|
||||||
|
|
||||||
|
# swap client
|
||||||
|
"SUPER+SHIFT, Up, exchange_client, up"
|
||||||
|
"SUPER+SHIFT, Down, exchange_client, down"
|
||||||
|
"SUPER+SHIFT, Left, exchange_client, left"
|
||||||
|
"SUPER+SHIFT, Right, exchange_client, right"
|
||||||
|
|
||||||
|
# switch client focus
|
||||||
|
"SUPER, Tab, focusstack, next"
|
||||||
|
"SUPER, Left, focusdir, left"
|
||||||
|
"SUPER, Right, focusdir, right"
|
||||||
|
"SUPER, Up, focusdir, up"
|
||||||
|
"SUPER, Down, focusdir, down"
|
||||||
|
|
||||||
|
# switch view
|
||||||
|
"SUPER, 1, view, 1, 1"
|
||||||
|
"SUPER, 2, view, 2, 1"
|
||||||
|
"SUPER, 3, view, 3, 1"
|
||||||
|
"SUPER, 4, view, 4, 1"
|
||||||
|
"SUPER, 5, view, 5, 1"
|
||||||
|
|
||||||
|
# move client to the tag with focus
|
||||||
|
"SUPER+SHIFT, 1, tagsilent, 1, 1"
|
||||||
|
"SUPER+SHIFT, 2, tagsilent, 2, 1"
|
||||||
|
"SUPER+SHIFT, 3, tagsilent, 3, 1"
|
||||||
|
"SUPER+SHIFT, 4, tagsilent, 4, 1"
|
||||||
|
"SUPER+SHIFT, 5, tagsilent, 5, 1"
|
||||||
|
|
||||||
|
# move client to the tag without focus
|
||||||
|
"SUPER+ALT, 1, tag, 1, 1"
|
||||||
|
"SUPER+ALT, 2, tag, 2, 1"
|
||||||
|
"SUPER+ALT, 3, tag, 3, 1"
|
||||||
|
"SUPER+ALT, 4, tag, 4, 1"
|
||||||
|
"SUPER+ALT, 5, tag, 5, 1"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Window effect
|
||||||
|
blur = 1;
|
||||||
|
blur_layer = 0;
|
||||||
|
blur_optimized = 1;
|
||||||
|
blur_params_num_passes = 2;
|
||||||
|
blur_params_radius = 5;
|
||||||
|
blur_params_noise = 0.02;
|
||||||
|
blur_params_brightness = 0.9;
|
||||||
|
blur_params_contrast = 0.9;
|
||||||
|
blur_params_saturation = 1.2;
|
||||||
|
|
||||||
|
shadows = 1;
|
||||||
|
layer_shadows = 0;
|
||||||
|
shadow_only_floating = 1;
|
||||||
|
shadows_size = 10;
|
||||||
|
shadows_blur = 15;
|
||||||
|
shadows_position_x = 0;
|
||||||
|
shadows_position_y = 0;
|
||||||
|
shadowscolor = "0x000000ff";
|
||||||
|
|
||||||
|
# Animation
|
||||||
|
animations = 1;
|
||||||
|
layer_animations = 1;
|
||||||
|
animation_type_open = "slide";
|
||||||
|
animation_type_close = "fade";
|
||||||
|
animation_fade_in = 1;
|
||||||
|
animation_fade_out = 1;
|
||||||
|
tag_animation_direction = 0;
|
||||||
|
zoom_initial_ratio = 0.3;
|
||||||
|
zoom_end_ratio = 0.8;
|
||||||
|
fadein_begin_opacity = 0.5;
|
||||||
|
fadeout_begin_opacity = 0.8;
|
||||||
|
|
||||||
|
animation_duration_move = 100;
|
||||||
|
animation_duration_open = 100;
|
||||||
|
animation_duration_close = 100;
|
||||||
|
animation_duration_tag = 200;
|
||||||
|
animation_duration_focus = 0;
|
||||||
|
|
||||||
|
animation_curve_open = "0.46, 1.0, 0.29, 1";
|
||||||
|
animation_curve_move = "0.46, 1.0, 0.29, 1";
|
||||||
|
animation_curve_tag = "0.46, 1.0, 0.29, 1";
|
||||||
|
animation_curve_close = "0.08, 0.92, 0, 1";
|
||||||
|
animation_curve_focus = "0.46, 1.0, 0.29, 1";
|
||||||
|
animation_curve_opafadeout = "0.5, 0.5, 0.5, 0.5";
|
||||||
|
animation_curve_opafadein = "0.46, 1.0, 0.29, 1";
|
||||||
|
|
||||||
|
# Appearance
|
||||||
|
borderpx = 0;
|
||||||
|
gappih = 10;
|
||||||
|
gappiv = 10;
|
||||||
|
gappoh = 10;
|
||||||
|
gappov = 10;
|
||||||
|
|
||||||
|
rootcolor = "0x201b14ff";
|
||||||
|
bordercolor = "0x444444ff";
|
||||||
|
focuscolor = "0xc9b890ff";
|
||||||
|
maximizescreencolor = "0x89aa61ff";
|
||||||
|
urgentcolor = "0xad401fff";
|
||||||
|
scratchpadcolor = "0x516c93ff";
|
||||||
|
globalcolor = "0xb153a7ff";
|
||||||
|
overlaycolor = "0x14a57cff";
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
syncobj_enable = 1;
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
"dbus-update-activation-environment --systemd --all; systemctl --user reset-failed && systemctl --user start mango-session.target"
|
||||||
|
"awww-daemon"
|
||||||
|
"dms run"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
quickshell
|
||||||
|
dms-shell
|
||||||
|
dgop
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
24
modules/hm/desktop/mpv.nix
Normal file
24
modules/hm/desktop/mpv.nix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
flake.modules.homeManager.desktop =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.mpv = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
scripts = (
|
||||||
|
with pkgs.mpvScripts;
|
||||||
|
[
|
||||||
|
modernz
|
||||||
|
thumbfast
|
||||||
|
mpris
|
||||||
|
mpv-image-viewer.image-positioning
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
config = {
|
||||||
|
osc = "no";
|
||||||
|
border = "no";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
19
modules/hm/desktop/satty.nix
Normal file
19
modules/hm/desktop/satty.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
flake.modules.homeManager.desktop = {
|
||||||
|
programs.satty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
corner-roundness = 12;
|
||||||
|
initial-tool = "arrow";
|
||||||
|
early-exit = true;
|
||||||
|
copy-command = "wl-copy";
|
||||||
|
};
|
||||||
|
|
||||||
|
font = {
|
||||||
|
family = "JetBrainsMono NerdFont";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
31
modules/hm/desktop/theme.nix
Normal file
31
modules/hm/desktop/theme.nix
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
flake.modules.homeManager.desktop =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.pointerCursor = {
|
||||||
|
package = pkgs.bibata-cursors;
|
||||||
|
name = "Bibata-Modern-Ice";
|
||||||
|
size = 28;
|
||||||
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
style = {
|
||||||
|
name = "Breeze";
|
||||||
|
package = pkgs.kdePackages.breeze;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = {
|
||||||
|
name = "Materia-dark";
|
||||||
|
package = pkgs.materia-theme;
|
||||||
|
};
|
||||||
|
iconTheme = {
|
||||||
|
package = pkgs.tela-icon-theme;
|
||||||
|
name = "Tela-black";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -54,11 +54,6 @@
|
|||||||
imports = [ "/run/secrets/vicinae.json" ];
|
imports = [ "/run/secrets/vicinae.json" ];
|
||||||
|
|
||||||
providers = {
|
providers = {
|
||||||
"@samlinville/store.raycast.tailscale" = {
|
|
||||||
"preferences" = {
|
|
||||||
"tailscalePath" = "${pkgs.tailscale}/bin/tailscale";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"@sovereign/vicinae-extension-awww-switcher-0" = {
|
"@sovereign/vicinae-extension-awww-switcher-0" = {
|
||||||
"preferences" = {
|
"preferences" = {
|
||||||
"transitionDuration" = "1";
|
"transitionDuration" = "1";
|
||||||
|
|||||||
@@ -4,22 +4,15 @@
|
|||||||
{
|
{
|
||||||
hostName,
|
hostName,
|
||||||
userName,
|
userName,
|
||||||
modulesPath,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports =
|
imports = with config.flake.modules.nixos; [
|
||||||
with config.flake.modules.nixos;
|
boot
|
||||||
[
|
networking
|
||||||
boot
|
virtualisation
|
||||||
hardware
|
services
|
||||||
networking
|
];
|
||||||
virtualisation
|
|
||||||
services
|
|
||||||
]
|
|
||||||
++ [
|
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
tnix = {
|
tnix = {
|
||||||
boot = {
|
boot = {
|
||||||
|
|||||||
@@ -14,7 +14,14 @@ in
|
|||||||
{
|
{
|
||||||
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit hostName userName userEmail; };
|
specialArgs = {
|
||||||
|
inherit
|
||||||
|
hostName
|
||||||
|
userName
|
||||||
|
userEmail
|
||||||
|
system
|
||||||
|
;
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
config.flake.modules.nixos.core
|
config.flake.modules.nixos.core
|
||||||
config.flake.modules.nixos.${hostName}
|
config.flake.modules.nixos.${hostName}
|
||||||
|
|||||||
17
modules/hosts/alpha/hardware.nix
Normal file
17
modules/hosts/alpha/hardware.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
flake.modules.nixos.alpha =
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
modulesPath,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault system;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
{
|
{
|
||||||
flake.modules.nixos.arcturus =
|
flake.modules.nixos.arcturus =
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
hostName,
|
hostName,
|
||||||
userName,
|
userName,
|
||||||
...
|
...
|
||||||
@@ -10,7 +9,6 @@
|
|||||||
{
|
{
|
||||||
imports = with config.flake.modules.nixos; [
|
imports = with config.flake.modules.nixos; [
|
||||||
boot
|
boot
|
||||||
hardware
|
|
||||||
networking
|
networking
|
||||||
virtualisation
|
virtualisation
|
||||||
services
|
services
|
||||||
@@ -109,10 +107,6 @@
|
|||||||
firewall.enable = false;
|
firewall.enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nvtopPackages.full
|
|
||||||
];
|
|
||||||
|
|
||||||
system.stateVersion = "26.05";
|
system.stateVersion = "26.05";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,14 @@ in
|
|||||||
{
|
{
|
||||||
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit hostName userName userEmail; };
|
specialArgs = {
|
||||||
|
inherit
|
||||||
|
hostName
|
||||||
|
userName
|
||||||
|
userEmail
|
||||||
|
system
|
||||||
|
;
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
config.flake.modules.nixos.core
|
config.flake.modules.nixos.core
|
||||||
config.flake.modules.nixos.${hostName}
|
config.flake.modules.nixos.${hostName}
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.arcturus =
|
flake.modules.nixos.arcturus =
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}@innerArgs:
|
||||||
{
|
{
|
||||||
|
imports = with config.flake.modules.nixos; [
|
||||||
|
hardware
|
||||||
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"nvme"
|
"nvme"
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
@@ -18,15 +24,13 @@
|
|||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.wlp10s0f3u2i2.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
networking.useDHCP = lib.mkDefault true;
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
nixpkgs.hostPlatform = lib.mkDefault system;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
nvtopPackages.amd
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
132
modules/hosts/canopus/config.nix
Normal file
132
modules/hosts/canopus/config.nix
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.canopus =
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
hostName,
|
||||||
|
userName,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = with config.flake.modules.nixos; [
|
||||||
|
boot
|
||||||
|
networking
|
||||||
|
desktop
|
||||||
|
gaming
|
||||||
|
virtualisation
|
||||||
|
];
|
||||||
|
|
||||||
|
tnix = {
|
||||||
|
boot = {
|
||||||
|
secure-boot.enable = true;
|
||||||
|
|
||||||
|
impermanence = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
home = {
|
||||||
|
directories = [
|
||||||
|
"Distrobox"
|
||||||
|
".steam"
|
||||||
|
".cache/awww"
|
||||||
|
".config/BraveSoftware"
|
||||||
|
".config/zed"
|
||||||
|
".config/Vencord"
|
||||||
|
".config/vesktop"
|
||||||
|
".config/sops"
|
||||||
|
".config/obs-studio"
|
||||||
|
".config/easyeffects"
|
||||||
|
".config/DankMaterialShell"
|
||||||
|
".local/share/Steam"
|
||||||
|
".local/share/nvim"
|
||||||
|
".local/share/opencode"
|
||||||
|
".local/share/zsh"
|
||||||
|
".local/share/zoxide"
|
||||||
|
".local/state/lazygit"
|
||||||
|
".local/share/vicinae"
|
||||||
|
".local/share/TelegramDesktop"
|
||||||
|
];
|
||||||
|
|
||||||
|
files = [
|
||||||
|
".wakatime.cfg"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
openssh.enable = true;
|
||||||
|
netbird-client.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation = {
|
||||||
|
docker.enable = true;
|
||||||
|
docker.nvidia.enable = false;
|
||||||
|
qemu.enable = true;
|
||||||
|
waydroid.enable = true;
|
||||||
|
distrobox.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sops.secrets = {
|
||||||
|
tux-password = {
|
||||||
|
sopsFile = ./secrets.yaml;
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
gemini-api-key = {
|
||||||
|
sopsFile = ./secrets.yaml;
|
||||||
|
owner = userName;
|
||||||
|
};
|
||||||
|
|
||||||
|
openrouter-api-key = {
|
||||||
|
sopsFile = ./secrets.yaml;
|
||||||
|
owner = userName;
|
||||||
|
};
|
||||||
|
|
||||||
|
opencode-go-api-key = {
|
||||||
|
sopsFile = ./secrets.yaml;
|
||||||
|
owner = userName;
|
||||||
|
};
|
||||||
|
|
||||||
|
netbird-key = {
|
||||||
|
sopsFile = ./secrets.yaml;
|
||||||
|
owner = userName;
|
||||||
|
};
|
||||||
|
|
||||||
|
vicinae-json = {
|
||||||
|
sopsFile = ./secrets.yaml;
|
||||||
|
owner = userName;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# --- Networking ---
|
||||||
|
networking = {
|
||||||
|
hostName = hostName;
|
||||||
|
networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
wifi.backend = "iwd";
|
||||||
|
};
|
||||||
|
wireless.iwd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
Network = {
|
||||||
|
EnableIPv6 = true;
|
||||||
|
};
|
||||||
|
Settings = {
|
||||||
|
AutoConnect = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
firewall.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
davinci-resolve
|
||||||
|
telegram-desktop
|
||||||
|
];
|
||||||
|
|
||||||
|
# !!! DO NOT CHANGE THIS !!!
|
||||||
|
# This should match the version used at initial install.
|
||||||
|
system.stateVersion = "26.05";
|
||||||
|
};
|
||||||
|
}
|
||||||
30
modules/hosts/canopus/default.nix
Normal file
30
modules/hosts/canopus/default.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
hostName = "canopus";
|
||||||
|
userName = "tux";
|
||||||
|
userEmail = "t@tux.rs";
|
||||||
|
system = "x86_64-linux";
|
||||||
|
unstable = true;
|
||||||
|
nixpkgs = if unstable then inputs.nixpkgs else inputs.nixpkgs-stable;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
specialArgs = {
|
||||||
|
inherit
|
||||||
|
hostName
|
||||||
|
userName
|
||||||
|
userEmail
|
||||||
|
system
|
||||||
|
;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
config.flake.modules.nixos.core
|
||||||
|
config.flake.modules.nixos.${hostName}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
82
modules/hosts/canopus/disko.nix
Normal file
82
modules/hosts/canopus/disko.nix
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.canopus =
|
||||||
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
hasOptinPersistence = config.tnix.boot.impermanence.enable;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.disko.nixosModules.disko
|
||||||
|
];
|
||||||
|
|
||||||
|
disko.devices.disk.primary = {
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
ESP = {
|
||||||
|
size = "1G";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [
|
||||||
|
"defaults"
|
||||||
|
"umask=0077"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
swap = {
|
||||||
|
size = "32G";
|
||||||
|
content = {
|
||||||
|
type = "swap";
|
||||||
|
discardPolicy = "both";
|
||||||
|
resumeDevice = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
type = "8300";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
# Base subvolumes that always exist
|
||||||
|
subvolumes = {
|
||||||
|
"/root" = {
|
||||||
|
mountOptions = [
|
||||||
|
"compress=zstd"
|
||||||
|
"noatime"
|
||||||
|
"space_cache=v2"
|
||||||
|
];
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
"/nix" = {
|
||||||
|
mountOptions = [
|
||||||
|
"compress=zstd"
|
||||||
|
"noatime"
|
||||||
|
"noacl"
|
||||||
|
"space_cache=v2"
|
||||||
|
];
|
||||||
|
mountpoint = "/nix";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# Conditionally merge /persist only when impermanence is enabled
|
||||||
|
// lib.optionalAttrs hasOptinPersistence {
|
||||||
|
"/persist" = {
|
||||||
|
mountOptions = [
|
||||||
|
"compress=zstd"
|
||||||
|
"noatime"
|
||||||
|
"space_cache=v2"
|
||||||
|
];
|
||||||
|
mountpoint = "/persist";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
134
modules/hosts/canopus/hardware.nix
Normal file
134
modules/hosts/canopus/hardware.nix
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
{ inputs, config, ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.canopus =
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}@innerArgs:
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
with config.flake.modules.nixos;
|
||||||
|
[
|
||||||
|
hardware
|
||||||
|
]
|
||||||
|
++ [ inputs.nixos-hardware.nixosModules.asus-zephyrus-ga503 ];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [
|
||||||
|
"nvme"
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
|
services = {
|
||||||
|
power-profiles-daemon.enable = true;
|
||||||
|
upower.enable = true;
|
||||||
|
|
||||||
|
supergfxd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
mode = "Integrated";
|
||||||
|
vfio_enable = false;
|
||||||
|
vfio_save = false;
|
||||||
|
always_reboot = false;
|
||||||
|
no_logind = false;
|
||||||
|
logout_timeout_s = 180;
|
||||||
|
hotplug_type = "None";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
asusd = {
|
||||||
|
enable = true;
|
||||||
|
asusdConfig.text = ''
|
||||||
|
(
|
||||||
|
charge_control_end_threshold: 80,
|
||||||
|
disable_nvidia_powerd_on_battery: true,
|
||||||
|
ac_command: "",
|
||||||
|
bat_command: "",
|
||||||
|
|
||||||
|
platform_profile_linked_epp: true,
|
||||||
|
platform_profile_on_battery: Quiet,
|
||||||
|
platform_profile_on_ac: Performance,
|
||||||
|
|
||||||
|
change_platform_profile_on_battery: true,
|
||||||
|
change_platform_profile_on_ac: true,
|
||||||
|
|
||||||
|
profile_quiet_epp: Power,
|
||||||
|
profile_balanced_epp: BalancePower,
|
||||||
|
profile_custom_epp: Performance,
|
||||||
|
profile_performance_epp: Performance,
|
||||||
|
|
||||||
|
ac_profile_tunings: {},
|
||||||
|
dc_profile_tunings: {},
|
||||||
|
armoury_settings: {},
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
profileConfig.text = ''
|
||||||
|
(
|
||||||
|
active_profile: Quiet,
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
fanCurvesConfig.text = ''
|
||||||
|
(
|
||||||
|
profiles: (
|
||||||
|
balanced: [
|
||||||
|
(
|
||||||
|
fan: CPU,
|
||||||
|
pwm: (2, 22, 45, 68, 91, 153, 153, 153),
|
||||||
|
temp: (55, 62, 66, 70, 74, 78, 78, 78),
|
||||||
|
enabled: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
fan: GPU,
|
||||||
|
pwm: (2, 25, 48, 71, 94, 165, 165, 165),
|
||||||
|
temp: (55, 62, 66, 70, 74, 78, 78, 78),
|
||||||
|
enabled: false,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
performance: [
|
||||||
|
(
|
||||||
|
fan: CPU,
|
||||||
|
pwm: (35, 68, 79, 91, 114, 175, 175, 175),
|
||||||
|
temp: (58, 62, 66, 70, 74, 78, 78, 78),
|
||||||
|
enabled: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
fan: GPU,
|
||||||
|
pwm: (35, 71, 84, 94, 119, 188, 188, 188),
|
||||||
|
temp: (58, 62, 66, 70, 74, 78, 78, 78),
|
||||||
|
enabled: false,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
quiet: [
|
||||||
|
(
|
||||||
|
fan: CPU,
|
||||||
|
pwm: (2, 12, 22, 35, 45, 58, 79, 79),
|
||||||
|
temp: (55, 62, 66, 70, 74, 78, 82, 82),
|
||||||
|
enabled: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
fan: GPU,
|
||||||
|
pwm: (2, 12, 25, 35, 48, 61, 84, 84),
|
||||||
|
temp: (55, 62, 66, 70, 74, 78, 82, 82),
|
||||||
|
enabled: true,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
custom: [],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault system;
|
||||||
|
};
|
||||||
|
}
|
||||||
39
modules/hosts/canopus/home.nix
Normal file
39
modules/hosts/canopus/home.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.canopus = {
|
||||||
|
imports = with config.flake.modules.homeManager; [
|
||||||
|
desktop
|
||||||
|
];
|
||||||
|
|
||||||
|
tnix = {
|
||||||
|
desktop = {
|
||||||
|
mangowm = {
|
||||||
|
enable = true;
|
||||||
|
monitorRule = [
|
||||||
|
"name:eDP-1, width:2560, height:1440, refresh:165, x:0, y:0, vrr:1"
|
||||||
|
];
|
||||||
|
|
||||||
|
tagRule = [
|
||||||
|
"id:1, layout_name:tile"
|
||||||
|
"id:2, layout_name:tile"
|
||||||
|
"id:3, layout_name:tile"
|
||||||
|
"id:4, layout_name:tile"
|
||||||
|
"id:5, layout_name:scroller"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.lan-mouse = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
authorized_fingerprints = {
|
||||||
|
"f4:4b:17:61:f7:01:a4:a2:e1:c7:8c:1c:7a:f3:8b:87:14:3d:05:3d:a0:8b:cc:e7:88:d8:d8:d2:a4:c2:75:8b" =
|
||||||
|
"sirius";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.stateVersion = "26.05";
|
||||||
|
};
|
||||||
|
}
|
||||||
30
modules/hosts/canopus/secrets.yaml
Normal file
30
modules/hosts/canopus/secrets.yaml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
tux-password: ENC[AES256_GCM,data:Xb4/JMAZCBnBheDCJdRRGXLnMJ1ej8HbN+AUqA/+2sdYESKeF1PFny4Iq2kqvzdK4D3mp+pdjd7GAGfJp4M7sOcvI3V/coyxPQ==,iv:h+S+MEwHj22uHaTzFoxGZtefNUAQNp3fbU+QRfgtKvQ=,tag:VHrIEIQivPFTfhmm7dWEyQ==,type:str]
|
||||||
|
gemini-api-key: ENC[AES256_GCM,data:Q6+actg0oyUWiUJVy/9yZmea1QyGu2o8LfMsuAVFD6k7kp0dYIrl,iv:ukyouqrHxzVpBBE98KL6PW8P3j+seemm/e0Gl1urUcM=,tag:Z7MM3dJ414CmdxE72cdzNA==,type:str]
|
||||||
|
openrouter-api-key: ENC[AES256_GCM,data:SalhWKR6artX/kOVKZGpKSmrgsQDU/heshrdkK3wotOZ3BRn/ZqZRBldvl1JPSenMAMvE2LWUdmBQmwG/id7L7JL1O/+lUHIQw==,iv:hLlHayFJgUkWOirVLfqP0pGRBZAqGKe+EE2yG1ELGNk=,tag:0qoo0tb+xWjjQXr4n1qGmw==,type:str]
|
||||||
|
opencode-go-api-key: ENC[AES256_GCM,data:zbeTcaXJZFVfYnM/7sgblJFU9WfeosX/44KsXvrzKwiLPfGLLYYo9AFaCvWzzG6jHuSZC5OYrBWfOZv4+3omfCgglQ==,iv:LscUQE+PNhXGim9PSqc9nZIZichWSgAn/zsNxQ/HM/o=,tag:MaBCobnRM42fopiibibe5Q==,type:str]
|
||||||
|
netbird-key: ENC[AES256_GCM,data:swmaa+RjxeUmEl8hS2riGrW4lP5jdks9HM3x57/FLpOuqFtR,iv:MrpVjiocrPi+dBGPk7pwgSUNlJ1eryRpMjC8+jkU+T0=,tag:j6sqpQ02apqc6FwkdDvk9g==,type:str]
|
||||||
|
vicinae-json: ENC[AES256_GCM,data:FarBf6l8pl3hF7kGKPIWztUhwiKoQXmyTufCuJ120K/bPh1Bfiyi+ETt4DLYOGI6FJXfpVz4BbZOA29bXTLhVPxH0QtyBu/F5uEqA015b/c8VevDJSyy9huR13qO9ksLbMBt8RfWbAd9j26t7A1C8/mMyiJOEXCCTV9CEIW3xWrsYmhwsT8RYM+PwrPSeN1gQXHSMyRUjf/kOdJoda8+iXpLfjo4II4r2ELpbqi8QxhrRdsJsoOfAymFM784NtlTjE+h6S4TMehmoF/9ARif6I5SGQ0WfIKt/8orTGCPllL+NupLziSnpIGRGSybdArD+o5NCw59GOAbVRADxq8rCESwEkq3cF+hm8HabfYbiQ==,iv:Y/hXLFTJT3gNF3B6tgKoAh7njVuneoUzjVTlsCZiySw=,tag:2hfrwph6IccJdRu/yGu3XA==,type:str]
|
||||||
|
sops:
|
||||||
|
age:
|
||||||
|
- recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqS2RZdVJaNTlRamZPMkll
|
||||||
|
MDRVSVl1b2x2LzZpdlBrdmZtdyt3UE15RldRCldXUXE2a1BFeHg5NGNPbW5IMDht
|
||||||
|
cHN1QituOU9uWFQwNS9udzNEbVhtUjQKLS0tIEtkTXhlYS9XSUlQRTY1eXBjeXZQ
|
||||||
|
bThQTFdZU29ISm93TWcwVk5ZTkhRWm8KCcprmLGhahgDkXCBpzjctHgao+gc+rKC
|
||||||
|
xLIwheUyFJOGK+ixqcdoZ/PC0kY68hVLt1YzLAyxFi4Ur1wltPrNug==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1x36yr8h993srfj29sfpzt4wyz52nztvncpmhgmfs0j26qvfecq3qvcm0an
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGVW13WFE1Ylh3Uk1HNU1i
|
||||||
|
bU9kRzFqTmhkQlRzMlRkM0VhMlNmMDUyK25NCkZYUStxM2tScGozRXJGekxGa1RX
|
||||||
|
b1VXK0Y2Z1U0YU9XRmxRUWdWem50L1EKLS0tIFovcHRlZ1JJd2lRN0RFbHdCdm9m
|
||||||
|
V1N3eUVjZ0VZRjBZdXRPNng3Y3JoUTAKQau9CG9XfvM+5JZVRwaJr/o/sXMaJiy2
|
||||||
|
wo2YcDb+4vfT4Wr+/8J3ccQgbLRZH916X5ZPL+A+nFyVXVKOCl3ENg==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2026-05-12T06:33:00Z"
|
||||||
|
mac: ENC[AES256_GCM,data:htDJdEx34Q5NG8vwbBimnFENZawbLZ4FC0DkyG6J5RYP0BFnycKcKGsYR87SvIjcJZXvfZ0e6fXdtc78dd6I0sQtrQ7aNn4Iktbu/AkPmntsBwpIjVI99X9zUyQB87go/oX15yuyt8loB6ds2RkL/pfFsgLbFc10JHsBy+WcEzI=,iv:HvY+5LYzyHpRm8XCSKrN8ra/LJT9v23TPSsZg/4QVNU=,tag:k+d45+zgBYq4vlWmmc8ZkQ==,type:str]
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.12.2
|
||||||
@@ -10,7 +10,6 @@
|
|||||||
{
|
{
|
||||||
imports = with config.flake.modules.nixos; [
|
imports = with config.flake.modules.nixos; [
|
||||||
boot
|
boot
|
||||||
hardware
|
|
||||||
networking
|
networking
|
||||||
desktop
|
desktop
|
||||||
gaming
|
gaming
|
||||||
@@ -26,6 +25,7 @@
|
|||||||
|
|
||||||
home = {
|
home = {
|
||||||
directories = [
|
directories = [
|
||||||
|
"Distrobox"
|
||||||
".steam"
|
".steam"
|
||||||
".cache/awww"
|
".cache/awww"
|
||||||
".config/BraveSoftware"
|
".config/BraveSoftware"
|
||||||
@@ -121,20 +121,7 @@
|
|||||||
firewall.enable = false;
|
firewall.enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# --- Hardware / GPU ---
|
|
||||||
hardware = {
|
|
||||||
nvidia = {
|
|
||||||
modesetting.enable = true;
|
|
||||||
open = false;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
boot.kernelParams = [ "nvidia-drm.modeset=1" ];
|
|
||||||
nixpkgs.config.cudaSupport = true;
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
nvtopPackages.full
|
|
||||||
davinci-resolve
|
davinci-resolve
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -14,7 +14,14 @@ in
|
|||||||
{
|
{
|
||||||
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit hostName userName userEmail; };
|
specialArgs = {
|
||||||
|
inherit
|
||||||
|
hostName
|
||||||
|
userName
|
||||||
|
userEmail
|
||||||
|
system
|
||||||
|
;
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
config.flake.modules.nixos.core
|
config.flake.modules.nixos.core
|
||||||
config.flake.modules.nixos.${hostName}
|
config.flake.modules.nixos.${hostName}
|
||||||
|
|||||||
@@ -1,11 +1,18 @@
|
|||||||
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.sirius =
|
flake.modules.nixos.sirius =
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}@innerArgs:
|
||||||
{
|
{
|
||||||
|
imports = with config.flake.modules.nixos; [
|
||||||
|
hardware
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.kernelParams = [ "nvidia-drm.modeset=1" ];
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"nvme"
|
"nvme"
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
@@ -18,15 +25,27 @@
|
|||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
hardware = {
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
nvidia = {
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
modesetting.enable = true;
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
open = false;
|
||||||
networking.useDHCP = lib.mkDefault true;
|
nvidiaSettings = true;
|
||||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
};
|
||||||
# networking.interfaces.wlp10s0f3u2i2.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
power-profiles-daemon.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
nixpkgs.config.cudaSupport = true;
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault system;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
nvtopPackages.full
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,17 +5,50 @@
|
|||||||
desktop
|
desktop
|
||||||
];
|
];
|
||||||
|
|
||||||
tnix.services.lan-mouse = {
|
tnix = {
|
||||||
enable = true;
|
desktop = {
|
||||||
settings = {
|
mangowm = {
|
||||||
clients = [
|
enable = true;
|
||||||
{
|
monitorRule = [
|
||||||
position = "bottom";
|
"name:DP-2, width:1440, height:2560, refresh:144, x:0, y:0, vrr:0, rr:1"
|
||||||
hostname = "canopus";
|
"name:DP-3, width:2560, height:1440, refresh:144, x:1440, y:0, vrr:0"
|
||||||
activate_on_startup = true;
|
"name:DP-1, width:1080, height:1920, refresh:144, x:4000, y:0, vrr:0, rr:3"
|
||||||
ips = [ "192.168.8.2" ];
|
];
|
||||||
}
|
|
||||||
];
|
tagRule = [
|
||||||
|
"id:1, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
"id:2, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
"id:3, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
"id:4, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
"id:5, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
|
||||||
|
"id:1, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
"id:2, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
"id:3, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
"id:4, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
"id:5, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
|
||||||
|
"id:1, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
"id:2, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
"id:3, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
"id:4, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
"id:5, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.lan-mouse = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
clients = [
|
||||||
|
{
|
||||||
|
position = "bottom";
|
||||||
|
hostname = "canopus";
|
||||||
|
activate_on_startup = true;
|
||||||
|
ips = [ "192.168.8.2" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,22 +3,15 @@
|
|||||||
flake.modules.nixos.vps =
|
flake.modules.nixos.vps =
|
||||||
{
|
{
|
||||||
hostName,
|
hostName,
|
||||||
modulesPath,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports =
|
imports = with config.flake.modules.nixos; [
|
||||||
with config.flake.modules.nixos;
|
boot
|
||||||
[
|
networking
|
||||||
boot
|
virtualisation
|
||||||
hardware
|
services
|
||||||
networking
|
];
|
||||||
virtualisation
|
|
||||||
services
|
|
||||||
]
|
|
||||||
++ [
|
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
tnix = {
|
tnix = {
|
||||||
boot = {
|
boot = {
|
||||||
|
|||||||
@@ -14,7 +14,14 @@ in
|
|||||||
{
|
{
|
||||||
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit hostName userName userEmail; };
|
specialArgs = {
|
||||||
|
inherit
|
||||||
|
hostName
|
||||||
|
userName
|
||||||
|
userEmail
|
||||||
|
system
|
||||||
|
;
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
config.flake.modules.nixos.core
|
config.flake.modules.nixos.core
|
||||||
config.flake.modules.nixos.${hostName}
|
config.flake.modules.nixos.${hostName}
|
||||||
|
|||||||
17
modules/hosts/vps/hardware.nix
Normal file
17
modules/hosts/vps/hardware.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
flake.modules.nixos.vps =
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
modulesPath,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault system;
|
||||||
|
};
|
||||||
|
}
|
||||||
7
modules/nixos/desktop/misc.nix
Normal file
7
modules/nixos/desktop/misc.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
flake.modules.nixos.desktop =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [ brightnessctl ];
|
||||||
|
};
|
||||||
|
}
|
||||||
18
modules/nixos/desktop/thunar.nix
Normal file
18
modules/nixos/desktop/thunar.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
flake.modules.nixos.desktop =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
gvfs.enable = true;
|
||||||
|
tumbler.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.thunar = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs; [
|
||||||
|
thunar-archive-plugin
|
||||||
|
thunar-volman
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,8 +1,11 @@
|
|||||||
{
|
{
|
||||||
flake.modules.nixos.gaming = {
|
flake.modules.nixos.gaming =
|
||||||
programs.steam = {
|
{ pkgs, ... }:
|
||||||
enable = true;
|
{
|
||||||
protontricks.enable = true;
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
protontricks.enable = true;
|
||||||
|
extraCompatPackages = with pkgs; [ proton-ge-bin ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user