Compare commits

..

122 Commits

Author SHA1 Message Date
Superredstone 81d3c978a0 feat(niri): add keyboard layout switch key 2026-06-16 17:09:25 +02:00
Superredstone bff122ce0a flake.lock: update 2026-06-13 13:29:39 +02:00
Superredstone f5db64cf8d feat(bomba): allow factorio ports 2026-06-10 09:45:48 +02:00
Superredstone c10c4c079a flake.lock: update 2026-06-10 09:45:03 +02:00
Superredstone b0317879f5 feat(noctalia): update config 2026-06-08 09:50:41 +02:00
Superredstone 6b0b208998 style: sort packages 2026-06-06 09:57:37 +02:00
Superredstone a98e351805 feat(package): move spotiflac to unstable branch 2026-06-03 13:52:28 +02:00
Superredstone 2bf3810a09 feat(package): add papers 2026-06-03 13:47:31 +02:00
Patrick Canal e47ed43030 feat(noctalia): migrate to v5 (#3) 2026-06-03 13:42:57 +02:00
Superredstone a7e150bb73 feat(niri): remove numlock 2026-06-03 13:29:17 +02:00
Superredstone 2cc9b4b636 docs: update screenshot 2026-06-02 08:43:36 +02:00
Superredstone 73a4f9a2ba feat(noctalia): move to v5 2026-06-02 08:36:53 +02:00
Superredstone f968851556 feat(bomba): bump to 26.05 2026-05-30 10:17:31 +02:00
Superredstone 046c0abf8b feat(katana): bump to 26.05 2026-05-30 10:11:55 +02:00
Superredstone 45060af46d feat(package): add tor-browser 2026-05-29 16:54:05 +02:00
Superredstone 4a6a50a593 style: run clean-code 2026-05-29 07:59:46 +02:00
Superredstone eeac9a9e65 fix(blackbox): move to gnome systems 2026-05-29 07:58:20 +02:00
Superredstone da2301e7f0 style(fish): format 2026-05-28 16:11:09 +02:00
Superredstone 93385a01b3 flake.lock: update 2026-05-28 16:09:59 +02:00
Superredstone 3c45e40941 fix(fish): shell completions 2026-05-28 16:09:59 +02:00
Patrick Canal 1f47725bdd feat(gitea): add ci runner (#2) 2026-05-28 11:41:58 +02:00
Superredstone 107ac22292 feat(gitea): add ci runner 2026-05-28 11:39:34 +02:00
Superredstone 817ed30cdb feat(fish): add some aliases
feat(fish): add some aliases
2026-05-28 10:37:14 +02:00
Superredstone 5e794db02a feat(sudo): add sane rules 2026-05-28 10:24:22 +02:00
Superredstone 38d8c0118f feat(boot): delete /tmp 2026-05-28 10:18:56 +02:00
Superredstone eeae6d4647 feat(octoprint): get octoprint plugin from my-features branch 2026-05-27 22:36:39 +02:00
Superredstone 6ee882ef10 feat(package): get spotiflac from my-features branch 2026-05-27 22:23:27 +02:00
Superredstone 78b2b21122 feat(flake): add my nixpkgs fork to inputs 2026-05-27 22:23:01 +02:00
Patrick Canal efca613abc feat(machines): add frog (#1) 2026-05-27 18:56:58 +02:00
Superredstone 1df7534088 feat(machines): add frog 2026-05-27 18:51:49 +02:00
Superredstone 05d66c068e feat(git): enable autosetupremote 2026-05-27 18:07:33 +02:00
Superredstone 3f7b0028b9 docs: update new machine instructions 2026-05-25 09:49:23 +02:00
Superredstone 535b169dd5 feat(katana): remove nftables to fix libvirt network 2026-05-25 09:49:23 +02:00
Superredstone aac20b0c00 feat(bomba): remove docker firewall rules 2026-05-25 09:49:23 +02:00
Superredstone 0a68c42251 fix(bomba): move websockify service from user to dynamic user 2026-05-24 20:02:52 +02:00
Superredstone 3c7f5750b9 feat(caddy): add novnc 2026-05-24 19:53:29 +02:00
Superredstone 36974581fd feat(caddy): add personal website 2026-05-24 18:12:12 +02:00
Superredstone 54af41d9ef feat(package): add spotiflac 2026-05-24 17:33:50 +02:00
Superredstone ee1baa5a86 feat(nextcloud): remove email notifications 2026-05-24 13:59:41 +02:00
Superredstone 1a146572c7 feat(bomba): add vikunja 2026-05-24 13:56:34 +02:00
Superredstone 2f6f1dd405 feat(bomba): move from docker to native services 2026-05-24 13:09:20 +02:00
Superredstone 0f1274172c fix(de): enable xserver only when there is a de 2026-05-23 22:21:39 +02:00
Superredstone 89318957b9 feat(de): remove hyprland 2026-05-23 15:38:42 +02:00
Superredstone bc8c13d740 feat(niri): set window outline to 2px 2026-05-23 15:38:42 +02:00
Superredstone ef8dc4d33e style(bomba): correct indent 2026-05-23 14:18:52 +02:00
Superredstone 1797c65131 refactor(bomba): separate teamspeak service 2026-05-23 14:14:53 +02:00
Superredstone de290efc06 feat(bomba): remove maddy 2026-05-23 14:13:52 +02:00
Superredstone 2aae138a6c feat(bomba): add nginx 2026-05-23 14:10:45 +02:00
Superredstone 135a109c08 feat(niri): start some applications as maximized 2026-05-23 11:34:47 +02:00
Superredstone 826ba6b1fd feat(niri): remove open-maximized 2026-05-23 11:26:03 +02:00
Superredstone 049f9ec296 fix(kitty): alias ssh to kitten ssh 2026-05-23 11:25:30 +02:00
Superredstone c598be8f3f feat(program): replace blackbox with kitty 2026-05-23 11:24:23 +02:00
Superredstone 5703190fc1 feat(home): enable mangohud only on gaming systems 2026-05-22 18:30:14 +02:00
Superredstone 853b018d54 feat(package): remove mangohud 2026-05-22 18:29:51 +02:00
Superredstone adafb57a6a flake.lock: update 2026-05-22 17:53:57 +02:00
Superredstone 9f0915f81a docs: update screenshot 2026-05-17 14:32:35 +02:00
Superredstone 08b8136f68 fix(font): flatpak gtk application correct font rendering 2026-05-16 10:40:41 +02:00
Superredstone 8822f46029 flake.lock: update 2026-05-16 08:13:25 +02:00
Superredstone 12f439e2cd style: clean mksystem 2026-05-16 08:12:58 +02:00
Superredstone aafc16e893 feat(cache): add garnix 2026-05-14 14:35:31 +02:00
Superredstone 69c1e9c286 feat(package): add bintools dig nixpkgs-review rsync 2026-05-11 21:31:03 +02:00
Superredstone 34ae00d94e fix(niri): move xdg.mime from home to os 2026-05-10 22:09:10 +02:00
Superredstone 10bdff1835 feat(package): replace gnome-photos with loupe 2026-05-10 22:02:17 +02:00
Superredstone 1cd31aad75 style(niri): group home.file 2026-05-10 21:59:15 +02:00
Superredstone 2ced4eb2ae fix(niri): set pdf viewer to firefox 2026-05-10 21:58:09 +02:00
Superredstone 75dfdac36a feat(package): add file 2026-05-10 21:53:57 +02:00
Superredstone 21f55c6046 feat(package): add gimp onlyoffice qbittorrent vlc obs-studio gnome-photos 2026-05-10 08:52:22 +02:00
Superredstone 937e32ee07 flake.lock: update 2026-05-10 08:41:30 +02:00
Superredstone afa7a706de refactor(packages): remove if-else hell 2026-05-10 08:37:54 +02:00
Superredstone 251f4d70e1 fix(package): move gnome-keyring to niri 2026-05-10 08:27:47 +02:00
Superredstone 160501d74f feat(package): remove lutris 2026-05-10 08:26:50 +02:00
Superredstone a5bd5047d4 feat(package): add ollama 2026-05-10 08:26:30 +02:00
Superredstone 6ee4aca640 feat(virt): enable 2026-05-09 18:13:51 +02:00
Superredstone e7c4854cf0 flake.lock: update 2026-05-08 20:19:52 +02:00
Superredstone 277f3b6a39 feat(package): add lutris from nixpkgs-25-11 2026-05-08 20:19:42 +02:00
Superredstone 7d707f8afb feat(niri): set qt theme to dark 2026-05-03 08:05:05 +02:00
Superredstone 39dcffe02f flake.lock: update 2026-05-03 08:04:01 +02:00
Superredstone 8f1b973b47 fix(fish): remove krabby greeting inside of distrobox 2026-05-01 19:01:28 +02:00
Superredstone 76b3cdc2a7 feat(noctalia): update settings 2026-05-01 18:50:48 +02:00
Superredstone 32c01dd525 fix(niri): correct monitor priority 2026-05-01 17:31:26 +02:00
Superredstone e50f4aa465 flake.lock: update 2026-04-30 17:20:23 +02:00
Superredstone b0a8e65454 fix(niri): add generic hdmi monitor config 2026-04-28 16:30:47 +02:00
Superredstone 71c6112a3e fix(niri): correct steam notification position without focus 2026-04-27 22:25:02 +02:00
Superredstone d8ba87b574 feat(blackbox): add catppuccin theme 2026-04-26 21:35:25 +02:00
Superredstone 4ad37b406d fix: replaced typo gnome-boxes with blackbox 2026-04-26 21:12:50 +02:00
Superredstone 9d9cdce774 fix: move noctalia to niri only 2026-04-26 16:37:29 +02:00
Superredstone 9b3f9ddb77 refactor(de): move plasma config to separate file 2026-04-26 14:58:48 +02:00
Superredstone 85d7fbad13 feat(niri): add gnome-keyring 2026-04-26 14:55:36 +02:00
Superredstone 2a66123a12 refactor(de): move gnome config to separate file 2026-04-26 14:55:19 +02:00
Superredstone 252e890242 feat(noctalia): update settings 2026-04-26 14:45:19 +02:00
Superredstone d785fb043b feat(niri): bind Mod+Return to terminal 2026-04-26 13:13:00 +02:00
Superredstone 958d17cd9e fix: typo in udiskie service 2026-04-26 12:52:56 +02:00
Superredstone 89a9436dbb feat(noctalia): update settings 2026-04-26 12:52:08 +02:00
Superredstone de1cad857c feat(niri): add disk automount 2026-04-26 12:41:45 +02:00
Superredstone 151fd90ac5 feat(niri): open windows maximized 2026-04-26 09:28:04 +02:00
Superredstone c49ee5cf9a style(niri): unfold services 2026-04-26 07:23:29 +02:00
Superredstone 26489ab0ef feat(niri): add power-profiles-daemon 2026-04-26 07:22:13 +02:00
Superredstone 36094dcaed fix: make portals great again! 2026-04-26 07:15:21 +02:00
Superredstone 701b7e58a8 feat(home): add niri config 2026-04-25 21:32:23 +02:00
Superredstone 42233d6439 feat(de): add niri 2026-04-25 20:58:14 +02:00
Superredstone 13a2f51241 feat(katana): move to cachy kernel 2026-04-24 17:40:33 +02:00
Superredstone 522db5d205 feat(flake): move from nixpkgs/nixpkgs-unstable to nixpkgs/nixos-unstable 2026-04-24 11:49:52 +02:00
Superredstone a93f8b2a7d flake.lock: update 2026-04-24 09:39:54 +02:00
Superredstone 7c1d3c78e4 flake.lock: update 2026-04-21 18:44:27 +02:00
Superredstone 35e874c116 flake.lock: update 2026-04-18 09:59:48 +02:00
Superredstone 9c50c6a19c feat(virt): remove waydroid 2026-04-14 18:28:00 +02:00
Superredstone 9eea0d39d7 flake.lock: update 2026-04-12 09:50:12 +02:00
Superredstone 52714156f0 flake.lock: update 2026-04-06 20:42:32 +02:00
Superredstone c6c951817a fix: set gtk theme to 26.05 default 2026-04-06 20:42:20 +02:00
Superredstone 75c554f0e0 fix: update git signing setting 2026-04-06 19:15:46 +02:00
Superredstone 4d31cb350d flake.lock: update 2026-04-05 08:24:59 +02:00
Superredstone 62f99a75dc feat(service): replace ntfy with maddy
feat(service): remove ntfy
2026-04-05 08:24:28 +02:00
Superredstone 5340d33e0f flake.lock: update 2026-03-28 10:16:43 +01:00
Superredstone 95a1db5a4f feat(service): add teamspeak 2026-03-25 21:45:12 +01:00
Superredstone 6b380ce2a4 feat(package): remove delfin 2026-03-22 14:53:51 +01:00
Superredstone 3691bae82c feat(bomba): improve firewall rules 2026-03-21 23:27:18 +01:00
Superredstone 9efff63559 fix(bomba): remove redundant open port 2026-03-21 22:35:51 +01:00
Superredstone 360772cc81 feat(bomba): add port 5900 for vnc 2026-03-21 19:09:15 +01:00
Superredstone 7036ab882c flake.lock: update 2026-03-21 18:57:10 +01:00
Superredstone c7a951893f flake.lock: update 2026-03-14 08:38:50 +01:00
Superredstone fdb347c0e6 feat(service): add ntfy 2026-03-14 08:35:29 +01:00
Superredstone a96c1e8d92 feat(service): add nextcloud 2026-03-13 18:05:31 +01:00
56 changed files with 1628 additions and 1326 deletions
+2
View File
@@ -1,12 +1,14 @@
keys: keys:
- &katana age18ujjw92tm6vpcpgqqky7dzg3yvzm9nytgzeptkfhtz5jhdskcdpsgmv0vs - &katana age18ujjw92tm6vpcpgqqky7dzg3yvzm9nytgzeptkfhtz5jhdskcdpsgmv0vs
- &bomba age1ynu6zhhy84rr5xqce0flp25x5tnfgskesxfe39u7ewsk900fvagq9sq0lx - &bomba age1ynu6zhhy84rr5xqce0flp25x5tnfgskesxfe39u7ewsk900fvagq9sq0lx
- &frog age1xfr76wj2hzz9mkxxce5qxgr2n72zsypatzhgl2fxgsh408wdzsaq39wt9z
creation_rules: creation_rules:
- path_regex: secrets/default.sops.yaml - path_regex: secrets/default.sops.yaml
key_groups: key_groups:
- age: - age:
- *katana - *katana
- *bomba - *bomba
- *frog
- path_regex: secrets/bomba.sops.yaml - path_regex: secrets/bomba.sops.yaml
key_groups: key_groups:
- age: - age:
+9 -5
View File
@@ -2,16 +2,20 @@
My own NixOS configuration, made for myself so probably won't suit you well. My own NixOS configuration, made for myself so probably won't suit you well.
![Screenshot](assets/gnome.png) ![Screenshot](assets/niri.png)
## How to install ## How to install
1) Clone the repo 1) Clone the repo
```bash ```bash
git clone git@github.com:Superredstone/nixos.git ~/.nixos && cd .nixos git clone git@github.com:Superredstone/nixos.git ~/.nixos && cd .nixos
``` ```
2) Choose an hostname 2) Choose a hostname
3) Copy your current configuration inside of `machines/$HOSTNAME` 3) Copy your current configuration inside of `machines/$HOSTNAME`
4) Create a file named `machines/$HOSTNAME/default.nix` with the following contents 4) Load basic utils to your current environment
```bash
nix-shell -p git neovim just
```
5) Create a file named `machines/$HOSTNAME/default.nix` with the following contents
```nix ```nix
{ ... }: { ... }:
{ {
@@ -20,11 +24,11 @@ git clone git@github.com:Superredstone/nixos.git ~/.nixos && cd .nixos
]; ];
} }
``` ```
5) Follow `secrets/README.md`
6) Switch to the new configuration 6) Switch to the new configuration
```bash ```bash
HOSTNAME=HOSTNAME just switch HOSTNAME=HOSTNAME just new-machine
``` ```
7) Follow `secrets/README.md`
## Contributing ## Contributing
After commit [bd788c3](https://github.com/Superredstone/nixos/commit/bd788c366af4b94e1fab8251cabc08fc10f5b037) this repository will follow the [conventional commits specification](https://www.conventionalcommits.org/en/v1.0.0/#specification) After commit [bd788c3](https://github.com/Superredstone/nixos/commit/bd788c366af4b94e1fab8251cabc08fc10f5b037) this repository will follow the [conventional commits specification](https://www.conventionalcommits.org/en/v1.0.0/#specification)
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 KiB

+323
View File
@@ -0,0 +1,323 @@
// This config is in the KDL format: https://kdl.dev
// "/-" comments out the following node.
// Check the wiki for a full description of the configuration:
// https://yalter.github.io/niri/Configuration:-Introduction
// Input device configuration.
// Find the full list of options on the wiki:
// https://yalter.github.io/niri/Configuration:-Input
input {
keyboard {
xkb {
layout "us,it"
}
}
touchpad {
tap
natural-scroll
accel-profile "flat"
}
mouse {
accel-speed 0.01
accel-profile "flat"
}
}
// https://yalter.github.io/niri/Configuration:-Outputs
output "eDP-1" {
mode "1920x1080@144.003"
transform "normal"
position x=0 y=0
}
output "Acer Technologies Acer KG241Q 0x93210922" {
mode "1920x1080@74.986"
}
output "HDMI-A-1" {
mode "1920x1080@60.000"
}
// https://yalter.github.io/niri/Configuration:-Layout
layout {
// Set gaps around windows in logical pixels.
gaps 16
// When to center a column when changing focus, options are:
// - "never", default behavior, focusing an off-screen column will keep at the left
// or right edge of the screen.
// - "always", the focused column will always be centered.
// - "on-overflow", focusing a column will center it if it doesn't fit
// together with the previously focused column.
center-focused-column "never"
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
preset-column-widths {
// Proportion sets the width as a fraction of the output width, taking gaps into account.
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
proportion 0.33333
proportion 0.5
proportion 0.66667
// Fixed sets the width in logical pixels exactly.
// fixed 1920
}
default-column-width { proportion 0.5; }
focus-ring {
// Uncomment this line to disable the focus ring.
// off
// How many logical pixels the ring extends out from the windows.
width 2
// Colors can be set in a variety of ways:
// - CSS named colors: "red"
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
// Color of the ring on the active monitor.
active-color "#7fc8ff"
// Color of the ring on inactive monitors.
//
// The focus ring only draws around the active window, so the only place
// where you can see its inactive-color is on other monitors.
inactive-color "#505050"
// You can also use gradients. They take precedence over solid colors.
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
// The angle is the same as in linear-gradient, and is optional,
// defaulting to 180 (top-to-bottom gradient).
// You can use any CSS linear-gradient tool on the web to set these up.
// Changing the color space is also supported, check the wiki for more info.
//
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
// You can also color the gradient relative to the entire view
// of the workspace, rather than relative to just the window itself.
// To do that, set relative-to="workspace-view".
//
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
}
border {
off
width 4
active-color "#ffc87f"
inactive-color "#505050"
urgent-color "#9b0000"
}
shadow {
on
softness 30
spread 5
offset x=0 y=5
color "#0007"
}
}
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
hotkey-overlay {
skip-at-startup
}
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
// https://yalter.github.io/niri/Configuration:-Animations
animations {
}
// https://yalter.github.io/niri/Configuration:-Window-Rules
// Open the Firefox picture-in-picture player as floating by default.
window-rule {
// This app-id regular expression will work for both:
// - host Firefox (app-id is "firefox")
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
open-floating true
}
window-rule {
match app-id="steam" title=r#"^notificationtoasts_\d+_desktop$"#
default-floating-position x=10 y=10 relative-to="bottom-right"
}
window-rule {
geometry-corner-radius 12
clip-to-geometry true
}
window-rule {
match title="Steam"
match title="Firefox"
match title="Discord"
open-maximized true;
}
window-rule {
match app-id="dev.noctalia.Noctalia.Settings"
open-floating true
default-column-width { fixed 1080; }
default-window-height { fixed 920; }
}
debug {
honor-xdg-activation-with-invalid-serial
}
spawn-at-startup "noctalia"
binds {
Mod+Shift+Slash { show-hotkey-overlay; }
Mod+Return hotkey-overlay-title="Run Kitty" { spawn "kitty"; }
Mod+B hotkey-overlay-title="Run Firefox" { spawn "firefox"; }
Super+Alt+L hotkey-overlay-title="Lock the Screen" { spawn "noctalia" "msg" "session" "lock"; }
Mod+Space hotkey-overlay-title="Run application launcher" { spawn "noctalia" "msg" "panel-toggle" "launcher"; }
XF86AudioRaiseVolume { spawn "noctalia" "msg" "volume-up"; }
XF86AudioLowerVolume { spawn "noctalia" "msg" "volume-down"; }
XF86AudioMute { spawn "noctalia" "msg" "volume-mute"; }
XF86AudioPause { spawn "noctalia" "msg" "media" "toggle"; }
XF86AudioPlay { spawn "noctalia" "msg" "media" "toggle"; }
XF86AudioStop { spawn "noctalia" "msg" "media" "stop"; }
XF86AudioPrev { spawn "noctalia" "msg" "media" "previous"; }
XF86AudioNext { spawn "noctalia" "msg" "media" "next"; }
XF86MonBrightnessUp { spawn "noctalia" "msg" "brightness-up"; }
XF86MonBrightnessDown { spawn "noctalia" "msg" "brightness-down"; }
Mod+Shift+Space { spawn "niri" "msg" "action" "switch-layout" "next"; }
Mod+O repeat=false { toggle-overview; }
Mod+Shift+Q repeat=false { close-window; }
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; }
Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Down { focus-monitor-down; }
Mod+Shift+Up { focus-monitor-up; }
Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; }
Mod+Shift+K { focus-monitor-up; }
Mod+Shift+L { focus-monitor-right; }
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
Mod+1 { focus-workspace 1; }
Mod+2 { focus-workspace 2; }
Mod+3 { focus-workspace 3; }
Mod+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
Mod+Ctrl+1 { move-column-to-workspace 1; }
Mod+Ctrl+2 { move-column-to-workspace 2; }
Mod+Ctrl+3 { move-column-to-workspace 3; }
Mod+Ctrl+4 { move-column-to-workspace 4; }
Mod+Ctrl+5 { move-column-to-workspace 5; }
Mod+Ctrl+6 { move-column-to-workspace 6; }
Mod+Ctrl+7 { move-column-to-workspace 7; }
Mod+Ctrl+8 { move-column-to-workspace 8; }
Mod+Ctrl+9 { move-column-to-workspace 9; }
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
Mod+Comma { consume-window-into-column; }
Mod+Period { expel-window-from-column; }
Mod+R { switch-preset-column-width; }
Mod+Shift+R { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
Mod+Ctrl+F { expand-column-to-available-width; }
Mod+C { center-column; }
Mod+Ctrl+C { center-visible-columns; }
Mod+Minus { set-column-width "-10%"; }
Mod+Equal { set-column-width "+10%"; }
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
Mod+V { toggle-window-floating; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
Mod+W { toggle-column-tabbed-display; }
Print { screenshot; }
Ctrl+Print { screenshot-screen; }
Alt+Print { screenshot-window; }
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+E { quit; }
Ctrl+Alt+Delete { quit; }
Mod+Shift+P { power-off-monitors; }
}
include "./noctalia.kdl"
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

+114
View File
@@ -0,0 +1,114 @@
[bar.default]
end = [
"media",
"tray",
"notifications",
"clipboard",
"network",
"bluetooth",
"volume",
"brightness",
"battery",
"control-center"
]
margin_edge = 0
margin_ends = 0
radius = 0
start = [ "launcher", "workspaces" ]
[calendar]
enabled = true
[calendar.account.personal_google]
name = "Calendar"
type = "google"
[desktop_widgets]
schema_version = 1
widget_order = []
[desktop_widgets.grid]
cell_size = 16
major_interval = 4
visible = true
[desktop_widgets.widget]
[dock]
auto_hide = true
enabled = true
icon_size = 40
padding = 4
show_dots = true
[location]
address = "Bolzano"
[lockscreen_widgets]
enabled = false
schema_version = 1
widget_order = [ "lockscreen-login-box@HDMI-A-1", "lockscreen-login-box@eDP-1" ]
[lockscreen_widgets.grid]
cell_size = 16
major_interval = 4
visible = true
[lockscreen_widgets.widget."lockscreen-login-box@HDMI-A-1"]
cx = 960.0
cy = 957.0
output = "HDMI-A-1"
rotation = 0.0
scale = 1.0
type = "login_box"
[lockscreen_widgets.widget."lockscreen-login-box@eDP-1"]
cx = 960.0
cy = 957.0
output = "eDP-1"
rotation = 0.0
scale = 1.0
type = "login_box"
[shell]
avatar_path = "/home/r3ddy/.face"
font_family = "Noto Sans"
[theme]
builtin = "Catppuccin"
community_palette = "Tokyo Night Moon"
custom_palette = "Tokyo Night Moon"
source = "builtin"
wallpaper_scheme = "m3-content"
[theme.templates]
builtin_ids = [ "gtk3", "gtk4", "kitty", "niri", "qt" ]
community_ids = [ "telegram" ]
[wallpaper]
directory = "/home/r3ddy/Pictures/Wallpapers"
[wallpaper.default]
path = "/home/r3ddy/Pictures/Wallpapers/wallpaper.jpg"
[wallpaper.last]
path = "/home/r3ddy/Pictures/Wallpapers/wallpaper.jpg"
[wallpaper.monitors.HDMI-A-1]
path = "/home/r3ddy/Pictures/Wallpapers/wallpaper.jpg"
[wallpaper.monitors.eDP-1]
path = "/home/r3ddy/Pictures/Wallpapers/wallpaper.jpg"
[weather]
address = "Bolzano"
refresh_minutes = 60
[widget.clock]
format = "{:%a %d %b %Y %H:%M}"
[widget.control-center]
glyph = "ghost-3-filled"
[widget.network]
show_label = false
Generated
+213 -467
View File
@@ -1,35 +1,34 @@
{ {
"nodes": { "nodes": {
"aquamarine": { "cachyos-kernel": {
"inputs": { "flake": false,
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": { "locked": {
"lastModified": 1772292445, "lastModified": 1781455283,
"narHash": "sha256-4F1Q7U313TKUDDovCC96m/Za4wZcJ3yqtu4eSrj8lk8=", "narHash": "sha256-/71qSmWc0vIyGsvtADG8/uHnC/NvXPEY6TXRoDMufeo=",
"owner": "hyprwm", "owner": "CachyOS",
"repo": "aquamarine", "repo": "linux-cachyos",
"rev": "1dbbba659c1cef0b0202ce92cadfe13bae550e8f", "rev": "3bd5b77999c4180ed01bdd0669bfabc5171b090a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "CachyOS",
"repo": "aquamarine", "repo": "linux-cachyos",
"type": "github"
}
},
"cachyos-kernel-patches": {
"flake": false,
"locked": {
"lastModified": 1781257359,
"narHash": "sha256-J2/PBS+5u6osnWZUB7UTjLaD+S8diM+6hlOWDoX/+bw=",
"owner": "CachyOS",
"repo": "kernel-patches",
"rev": "46b45d26b536195f3ee8bc510b96b7fa47567163",
"type": "github"
},
"original": {
"owner": "CachyOS",
"repo": "kernel-patches",
"type": "github" "type": "github"
} }
}, },
@@ -50,6 +49,24 @@
} }
}, },
"flake-parts": { "flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nixvim", "nixvim",
@@ -58,11 +75,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769996383, "lastModified": 1778716662,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -73,7 +90,7 @@
}, },
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -89,28 +106,6 @@
"type": "github" "type": "github"
} }
}, },
"gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"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"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -118,11 +113,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1772633327, "lastModified": 1781615165,
"narHash": "sha256-jl+DJB2DUx7EbWLRng+6HNWW/1/VQOnf0NsQB4PlA7I=", "narHash": "sha256-CFF4fNNfr2GZSx1xJhBNBi7VMj8OtOqZGOV+fiBSbzw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "5a75730e6f21ee624cbf86f4915c6e7489c74acc", "rev": "34dd288e65012954cf7170658e0e6a61255b0327",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -131,364 +126,168 @@
"type": "github" "type": "github"
} }
}, },
"hyprcursor": { "mkdocs-catppuccin": {
"inputs": { "flake": false,
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": { "locked": {
"lastModified": 1753964049, "lastModified": 1767028711,
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", "narHash": "sha256-YVIZAtQT2B4Xs2sBaszvyyukm+1klCJdRpsc/BYV1gw=",
"owner": "hyprwm", "owner": "ruslanlap",
"repo": "hyprcursor", "repo": "mkdocs-catppuccin",
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", "rev": "fd8ac6106b5b6d32922cd80cbc3d221622a17408",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "ruslanlap",
"repo": "hyprcursor", "repo": "mkdocs-catppuccin",
"type": "github" "type": "github"
} }
}, },
"hyprgraphics": { "nix-cachyos-kernel": {
"inputs": { "inputs": {
"hyprutils": [ "cachyos-kernel": "cachyos-kernel",
"hyprland", "cachyos-kernel-patches": "cachyos-kernel-patches",
"hyprutils" "flake-compat": "flake-compat",
], "flake-parts": "flake-parts",
"nixpkgs": [ "nixpkgs": "nixpkgs"
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
}, },
"locked": { "locked": {
"lastModified": 1770511807, "lastModified": 1781463250,
"narHash": "sha256-suKmSbSk34uPOJDTg/GbPrKEJutzK08vj0VoTvAFBCA=", "narHash": "sha256-gYE/0gtSedmA21UWRZ2DA+iXhySh1JGKOssuqejV7cQ=",
"owner": "hyprwm", "owner": "xddxdd",
"repo": "hyprgraphics", "repo": "nix-cachyos-kernel",
"rev": "7c75487edd43a71b61adb01cae8326d277aab683", "rev": "4039d20f1495f2c521e7d12723a0c45348b118e8",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "xddxdd",
"repo": "hyprgraphics", "ref": "release",
"repo": "nix-cachyos-kernel",
"type": "github" "type": "github"
} }
}, },
"hyprland": { "nixflix": {
"inputs": { "inputs": {
"aquamarine": "aquamarine", "mkdocs-catppuccin": "mkdocs-catppuccin",
"hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics",
"hyprland-guiutils": "hyprland-guiutils",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1772723663,
"narHash": "sha256-OKaOxpeK42A0QdlUkl68/4l32EZzQRHjKzBHXI3Q2a8=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "ae9ca17b40e04cd11b53b82e9292d3070710df18",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-guiutils": {
"inputs": {
"aquamarine": [
"hyprland",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprtoolkit": "hyprtoolkit",
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [ "nixpkgs": [
"hyprland",
"nixpkgs" "nixpkgs"
], ],
"systems": [ "treefmt-nix": "treefmt-nix",
"hyprland", "vpn-confinement": "vpn-confinement"
"systems"
]
}, },
"locked": { "locked": {
"lastModified": 1767023960, "lastModified": 1781620378,
"narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=", "narHash": "sha256-+8sMPwMOM6c3z9KNb+qDzw7yg8CXyg3nHQpURsP5Ptc=",
"owner": "hyprwm", "owner": "kiriwalawren",
"repo": "hyprland-guiutils", "repo": "nixflix",
"rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660", "rev": "80d3a69ad8bdfcddf3a21b105978f9bce7b8fca5",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "kiriwalawren",
"repo": "hyprland-guiutils", "repo": "nixflix",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1765214753,
"narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771866172,
"narHash": "sha256-fYFoXhQLrm1rD8vSFKQBOEX4OGCuJdLt1amKfHd5GAw=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "0b219224910e7642eb0ed49f0db5ec3d008e3e41",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprtoolkit": {
"inputs": {
"aquamarine": [
"hyprland",
"hyprland-guiutils",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprland-guiutils",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprland-guiutils",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-guiutils",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprland-guiutils",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"systems"
]
},
"locked": {
"lastModified": 1764592794,
"narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "5cfe0743f0e608e1462972303778d8a0859ee63e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprtoolkit",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771271487,
"narHash": "sha256-41gEiUS0Pyw3L/ge1l8MXn61cK14VAhgWB/JV8s/oNI=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "340a792e3b3d482c4ae5f66d27a9096bdee6d76d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770501770,
"narHash": "sha256-NWRM6+YxTRv+bT9yvlhhJ2iLae1B1pNH3mAL5wi2rlQ=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "0bd8b6cde9ec27d48aad9e5b4deefb3746909d40",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"hyprwire": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771606233,
"narHash": "sha256-F3PLUqQ/TwgR70U+UeOqJnihJZ2EuunzojYC4g5xHr0=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "06c7f1f8c4194786c8400653c4efc49dc14c0f3a",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwire",
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1772198003, "lastModified": 1781421111,
"narHash": "sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE=", "narHash": "sha256-2xSTHlKBF5h/tgAeHyQPR/g48qk9ACz7dED3jc3pGKA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dd9b079222d43e1943b6ebd802f04fd959dc8e61", "rev": "7fe8f446d9475534dc54591ccb5c87c1ce6eaf8b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-unstable-small",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-25-11": {
"locked": {
"lastModified": 1781509190,
"narHash": "sha256-uJZs9Di8I6ciTp6jiojj0HzlNpBkud8ax5aT/O5aJkw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d6df3513510aa548c83868fd22bfddd0a8c0a0d4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1777168982,
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-my-features": {
"locked": {
"lastModified": 1779912664,
"narHash": "sha256-OtD0RA+zI3a5BE/g6IgflMf8DiwdKIJ2S2P4k7ww3AI=",
"owner": "Superredstone",
"repo": "nixpkgs",
"rev": "4788847e7c2deefd8c9a7369af552a1d9e9964d1",
"type": "github"
},
"original": {
"owner": "Superredstone",
"ref": "my-features",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1772736753, "lastModified": 1781074563,
"narHash": "sha256-au/m3+EuBLoSzWUCb64a/MZq6QUtOV8oC0D9tY2scPQ=", "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "917fec990948658ef1ccd07cef2a1ef060786846", "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixpkgs-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1770380644, "lastModified": 1778869304,
"narHash": "sha256-P7dWMHRUWG5m4G+06jDyThXO7kwSk46C1kgjEWcybkE=", "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ae67888ff7ef9dff69b3cf0cc0fbfbcd3a722abe", "rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1778794387,
"narHash": "sha256-BL04pOS9453Awkeb9f90XBJXBSkWxN+vB7HIgnL0iMM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8a1b0127302ea51e05bf4ea5a291743fac442406",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -498,34 +297,18 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": {
"locked": {
"lastModified": 1770562336,
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=",
"rev": "d6c71932130818840fc8fe9509cf50be8c64634f",
"revCount": 942779,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.942779%2Brev-d6c71932130818840fc8fe9509cf50be8c64634f/019c3fb4-003d-710c-9b72-1d2bb1b28de3/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1"
}
},
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": [ "nixpkgs": "nixpkgs_3",
"nixpkgs"
],
"nixvim": "nixvim_2" "nixvim": "nixvim_2"
}, },
"locked": { "locked": {
"lastModified": 1772744314, "lastModified": 1779534872,
"narHash": "sha256-vCSCSvjvzUTp4m7ST09i1OXNfVuO61SkKqHUMtnKHB4=", "narHash": "sha256-5bzlMvP/1vTZljeNNr7uqNnlcatX9yBUuq4aAzIrsnc=",
"owner": "Superredstone", "owner": "Superredstone",
"repo": "nixvim", "repo": "nixvim",
"rev": "baba0d4aeb2f9c820f8d4e2dcd3fa050e09d86f3", "rev": "3ff6d04d297aafb25bdd1e520e8f6857408b4090",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -536,16 +319,16 @@
}, },
"nixvim_2": { "nixvim_2": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"systems": "systems_3" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1772402258, "lastModified": 1778906310,
"narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=", "narHash": "sha256-LqASEJRtLuKRBJd9051T1KMAEaYvsVrc6m64jhD6xbw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10", "rev": "06cace835d7ee727852ac789e3dcd42fc2fd360e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -554,37 +337,38 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": { "noctalia": {
"inputs": { "inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
"hyprland",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1772024342, "lastModified": 1780809674,
"narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=", "narHash": "sha256-JFbpz7FeJ1pLND4sC2jE6L1oxufaJWM24QUPSofgIbc=",
"owner": "cachix", "owner": "noctalia-dev",
"repo": "git-hooks.nix", "repo": "noctalia-shell",
"rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476", "rev": "3329444884247883597103776645419fb4b46d94",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "cachix", "owner": "noctalia-dev",
"repo": "git-hooks.nix", "ref": "v5",
"repo": "noctalia-shell",
"type": "github" "type": "github"
} }
}, },
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "nix-cachyos-kernel": "nix-cachyos-kernel",
"nixflix": "nixflix",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-25-11": "nixpkgs-25-11",
"nixpkgs-my-features": "nixpkgs-my-features",
"nixvim": "nixvim", "nixvim": "nixvim",
"sops-nix": "sops-nix", "noctalia": "noctalia",
"spotiflac-cli": "spotiflac-cli" "sops-nix": "sops-nix"
} }
}, },
"sops-nix": { "sops-nix": {
@@ -594,11 +378,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1772495394, "lastModified": 1780547341,
"narHash": "sha256-hmIvE/slLKEFKNEJz27IZ8BKlAaZDcjIHmkZ7GCEjfw=", "narHash": "sha256-Gq8KNx5A7hBB3uGJaj6eQfLDIz5YdLu92gqBcvHvoUo=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "1d9b98a29a45abe9c4d3174bd36de9f28755e3ff", "rev": "9ed65852b6257fbeae4355bc24ecfea307ca759a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -607,36 +391,18 @@
"type": "github" "type": "github"
} }
}, },
"spotiflac-cli": {
"inputs": {
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1771096762,
"narHash": "sha256-c9Goe1e2XhaLFmzd6ktCXEPyTi4zflISTJV1FnS5rmo=",
"owner": "Superredstone",
"repo": "spotiflac-cli",
"rev": "63d9892e7220d2d6c305478f93cb9f79c5a206a3",
"type": "github"
},
"original": {
"owner": "Superredstone",
"repo": "spotiflac-cli",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1681028828,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default-linux", "repo": "default",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default-linux", "repo": "default",
"type": "github" "type": "github"
} }
}, },
@@ -655,59 +421,39 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": { "treefmt-nix": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"xdph": {
"inputs": { "inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [ "nixpkgs": [
"hyprland", "nixflix",
"nixpkgs" "nixpkgs"
],
"systems": [
"hyprland",
"systems"
] ]
}, },
"locked": { "locked": {
"lastModified": 1761431178, "lastModified": 1780220602,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", "narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"owner": "hyprwm", "owner": "numtide",
"repo": "xdg-desktop-portal-hyprland", "repo": "treefmt-nix",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", "rev": "db947814a175b7ca6ded66e21383d938df01c227",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "numtide",
"repo": "xdg-desktop-portal-hyprland", "repo": "treefmt-nix",
"type": "github"
}
},
"vpn-confinement": {
"locked": {
"lastModified": 1778182451,
"narHash": "sha256-Bz3n2THDGf90Z9gMqhH/J492prYH8B6RFRlxv/fPBwc=",
"owner": "Maroka-chan",
"repo": "VPN-Confinement",
"rev": "cf5bfc4c3559f2e783698b1aa23c165072039a7d",
"type": "github"
},
"original": {
"owner": "Maroka-chan",
"repo": "VPN-Confinement",
"type": "github" "type": "github"
} }
} }
+35 -8
View File
@@ -1,33 +1,47 @@
{ {
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-25-11.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs-my-features.url = "github:Superredstone/nixpkgs/my-features";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixvim = { nixvim = {
url = "github:Superredstone/nixvim"; url = "github:Superredstone/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
}; };
sops-nix = { sops-nix = {
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland.url = "github:hyprwm/Hyprland"; noctalia = {
spotiflac-cli.url = "github:Superredstone/spotiflac-cli"; url = "github:noctalia-dev/noctalia-shell/v5";
inputs.nixpkgs.follows = "nixpkgs";
};
nixflix = {
url = "github:kiriwalawren/nixflix";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
}; };
outputs = outputs =
{ {
nixpkgs, nixpkgs,
nixpkgs-25-11,
nixpkgs-my-features,
home-manager, home-manager,
nixvim, nixvim,
spotiflac-cli,
sops-nix, sops-nix,
nix-cachyos-kernel,
noctalia,
nixflix,
... ...
}@inputs: }@inputs:
let let
overlays = [ overlays = [
nix-cachyos-kernel.overlays.pinned
]; ];
personalEmail = "patrickcanal3@gmail.com"; personalEmail = "patrickcanal3@gmail.com";
username = "r3ddy"; username = "r3ddy";
@@ -35,10 +49,12 @@
inherit inherit
overlays overlays
nixvim nixvim
spotiflac-cli
sops-nix sops-nix
noctalia
inputs inputs
nixpkgs nixpkgs
nixpkgs-25-11
nixpkgs-my-features
home-manager home-manager
; ;
}; };
@@ -49,8 +65,8 @@
user = username; user = username;
email = personalEmail; email = personalEmail;
gamingSystem = true; gamingSystem = true;
# Currently supported: plasma, gnome, hyprland and none # Currently supported: plasma, gnome, niri and none
desktopEnvironment = "gnome"; desktopEnvironment = "niri";
enableZram = true; enableZram = true;
additionalModules = [ additionalModules = [
]; ];
@@ -69,6 +85,17 @@
user = username; user = username;
desktopEnvironment = "none"; desktopEnvironment = "none";
enableZram = true; enableZram = true;
additionalModules = [
nixflix.nixosModules.default
];
};
nixosConfigurations."frog" = mkSystem "frog" {
system = "x86_64-linux";
user = username;
email = personalEmail;
workSystem = true;
desktopEnvironment = "gnome";
enableZram = true;
}; };
}; };
} }
+21
View File
@@ -0,0 +1,21 @@
{ pkgs, ... }:
let
catppuccinTheme = pkgs.stdenv.mkDerivation {
name = "catppuccin-theme";
src = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "tilix";
rev = "f29239686d1309b9eaaf03447156ae16427a3ef7";
hash = "sha256-d/HOSQ4F06s2aMojS9lK8Vbx8AJXdlxuK88W9h9q0kw=";
};
installPhase = ''
cp themes/catppuccin-mocha.json $out
'';
};
in
{
home.file."blackbox-catppuccin" = {
source = catppuccinTheme;
target = ".local/share/blackbox/schemes/catppuccin-mocha.json";
};
}
+5 -4
View File
@@ -6,6 +6,7 @@
}: }:
{ {
imports = [ imports = [
./blackbox.nix
./fish.nix ./fish.nix
./git.nix ./git.nix
./kitty.nix ./kitty.nix
@@ -14,15 +15,15 @@
./vesktop.nix ./vesktop.nix
./zoxide.nix ./zoxide.nix
] ]
++ (if currentSystemDe == "hyprland" then [ ./hyprland ] else [ ]) ++ (if currentSystemDe == "gnome" then [ ./gnome.nix ] else [ ])
++ (if currentSystemDe == "gnome" then [ ./gnome.nix ] else [ ]); ++ (if currentSystemDe == "niri" then [ ./niri.nix ] else [ ]);
home = { home = {
username = "${currentSystemUser}"; username = "${currentSystemUser}";
sessionVariables = { sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
BROWSER = "firefox"; BROWSER = "firefox";
TERMINAL = "gnome-boxes"; TERMINAL = "kitty";
}; };
packages = [ packages = [
pkgs.dconf pkgs.dconf
@@ -31,7 +32,7 @@
"$HOME/.local/bin" "$HOME/.local/bin"
]; ];
stateVersion = "24.11"; stateVersion = "26.05";
}; };
dconf.enable = true; dconf.enable = true;
+17 -14
View File
@@ -2,22 +2,25 @@
{ {
programs.fish = { programs.fish = {
enable = true; enable = true;
shellAliases = {
"please" = "sudo $history[1]";
"amend" = "git commit --amend";
"commit" = "git commit";
"add" = "git add .";
"ssh" = "kitten ssh";
"dev" = "nix develop --command 'fish'";
};
interactiveShellInit = '' interactiveShellInit = ''
# This is commented until a good way of installing themes is found # This is commented until a good way of installing themes is found
# fish_config theme choose Catppuccin\ Mocha # fish_config theme choose Catppuccin\ Mocha
function fish_greeting function fish_greeting
krabby random --no-title --padding-left 2 # Check if not inside of a distrobox
end if not test -n "$CONTAINER_ID"
krabby random --no-title --padding-left 2
function weather end
curl "wttr.in/Bolzano?0?Q?" end
end '';
function dev
nix develop --command "fish"
end
'';
plugins = with pkgs.fishPlugins; [ plugins = with pkgs.fishPlugins; [
{ {
name = "fzf.fish"; name = "fzf.fish";
+2
View File
@@ -2,6 +2,7 @@
{ {
programs.git = { programs.git = {
enable = true; enable = true;
signing.format = "openpgp";
settings = { settings = {
user = { user = {
name = "Superredstone"; name = "Superredstone";
@@ -11,6 +12,7 @@
init.defaultBranch = "main"; init.defaultBranch = "main";
pull.rebase = true; pull.rebase = true;
commit.gpgsign = true; commit.gpgsign = true;
push.autoSetupRemote = true;
}; };
}; };
} }
+1
View File
@@ -15,6 +15,7 @@
gtk = { gtk = {
enable = true; enable = true;
colorScheme = "dark"; colorScheme = "dark";
gtk4.theme = null;
iconTheme = { iconTheme = {
name = "Papirus"; name = "Papirus";
package = pkgs.papirus-icon-theme; package = pkgs.papirus-icon-theme;
-9
View File
@@ -1,9 +0,0 @@
{ ... }:
{
imports = [
./hyprland.nix
./hyprlock.nix
./waybar.nix
./wofi.nix
];
}
-86
View File
@@ -1,86 +0,0 @@
{ currentSystemUser, ... }:
{
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
wayland.windowManager.hyprland = {
enable = true;
settings = {
"$mod" = "SUPER";
bind = [
"$mod, Return, exec, kitty"
"$mod, SPACE, exec, wofi --show run"
"$mod SHIFT, L, exec, hyprlock"
"$mod SHIFT, Q, killactive"
"$mod, F, fullscreen"
"$mod, H, movefocus, l"
"$mod, L, movefocus, r"
"$mod, K, movefocus, u"
"$mod, J, movefocus, d"
"$mod SHIFT, H, movewindow, l"
"$mod SHIFT, L, movewindow, r"
"$mod SHIFT, K, movewindow, u"
"$mod SHIFT, J, movewindow, d"
"$mod SHIFT, right, resizeactive, 30 0"
"$mod SHIFT, left, resizeactive, -30 0"
"$mod SHIFT, up, resizeactive, 0 -30"
"$mod SHIFT, down, resizeactive, 0 30"
"$mod SHIFT, U, togglefloating"
",XF86MonBrightnessDown, exec, brightnessctl set 2%-"
",XF86MonBrightnessUp, exec, brightnessctl set +2%"
",XF86AudioLowerVolume, exec, pamixer -d 2"
",XF86AudioRaiseVolume, exec, pamixer -i 2"
"$mod, delete, exit"
]
++ (builtins.concatLists (
builtins.genList (
i:
let
ws = i + 1;
in
[
"$mod, code:1${toString i}, workspace, ${toString ws}"
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
]
) 9
));
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
monitor = ", preferred, auto, 1";
input = {
touchpad = {
natural_scroll = "yes";
};
sensitivity = "0";
accel_profile = "flat";
};
exec-once = [
"waybar"
"hyprpaper"
];
exec = [
];
};
};
services.hyprpaper = {
enable = true;
settings = {
preload = [ "/home/${currentSystemUser}/Pictures/wallpaper.jpg" ];
wallpaper = [ ",/home/${currentSystemUser}/Pictures/wallpaper.jpg" ];
};
};
}
-6
View File
@@ -1,6 +0,0 @@
{ ... }:
{
programs.hyprlock = {
enable = true;
};
}
-377
View File
@@ -1,377 +0,0 @@
{ ... }:
{
programs.waybar = {
enable = true;
settings = {
mainBar = {
height = 30;
spacing = 1;
modules-left = [
"hyprland/workspaces"
];
modules-center = [
"hyprland/window"
];
modules-right = [
"tray"
"pulseaudio"
"network"
"power-profiles-daemon"
"backlight"
"battery"
"clock"
];
"hyprland/workspaces" = {
format = "{name} {icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
};
};
"tray" = {
spacing = 10;
};
"pulseaudio" = {
format = "{volume}% {icon}";
format-icons = {
headphones = "";
bluetooth = "󰥰";
handsfree = "";
headset = "󱡬";
phone = "";
portable = "";
car = "";
default = [
"🕨"
"🕩"
"🕪"
];
};
on-click = "pavucontrol";
};
"hyprland/window" = {
format = "{class}";
};
"battery" = {
"interval" = 1;
states = {
good = 80;
warning = 30;
critical = 20;
};
format = "{capacity}% {icon}";
format-charging = "{capacity}% 󰂄";
format-plugged = "{capacity}% ";
format-alt = "{time} {icon}";
format-icons = [
"󰁻"
"󰁼"
"󰁾"
"󰂀"
"󰂂"
"󰁹"
];
};
# Currently not enabled because i don't want to add some external tools to manage brightness
# backlight = {
# format = "{percent}% {icon}";
# format-icons = [
# ""
# ""
# ""
# ""
# ""
# ""
# ""
# ""
# ""
# ""
# ];
# on-scroll-down = "light -A 10";
# on-scroll-up = "light -U 10";
# smooth-scrolling-threshold = 1;
# };
"network" = {
format-wifi = "{ipaddr} Wi-Fi";
format-ethernet = "{ipaddr} Eth";
};
"power-profiles-daemon" = {
"format" = "{icon}";
"tooltip-format" = "Power profile: {profile}\nDriver: {driver}";
"tooltip" = true;
"format-icons" = {
"default" = "";
"performance" = "";
"balanced" = "";
"power-saver" = "";
};
};
};
};
style = ''
@define-color rosewater #f5e0dc;
@define-color flamingo #f2cdcd;
@define-color pink #f5c2e7;
@define-color mauve #cba6f7;
@define-color red #f38ba8;
@define-color maroon #eba0ac;
@define-color peach #fab387;
@define-color yellow #f9e2af;
@define-color green #a6e3a1;
@define-color teal #94e2d5;
@define-color sky #89dceb;
@define-color sapphire #74c7ec;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color text #cdd6f4;
@define-color subtext1 #bac2de;
@define-color subtext0 #a6adc8;
@define-color overlay2 #9399b2;
@define-color overlay1 #7f849c;
@define-color overlay0 #6c7086;
@define-color surface2 #585b70;
@define-color surface1 #45475a;
@define-color surface0 #313244;
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;
* {
border: none;
border-radius: 1px;
font-family: JetBrainsMono Nerd Font;
font-size: 13px;
min-height: 0;
}
window#waybar {
background-color: @mantle;
color: @text;
}
window#waybar.hidden {
opacity: 0.2;
}
tooltip {
background-color: @base;
border: 1px solid @surface1;
}
tooltip label {
color: @text;
}
button {
box-shadow: inset 0 -3px transparent;
border: none;
border-radius: 1px;
}
button:hover {
background: inherit;
box-shadow: inset 0 -3px @text;
}
#workspaces button {
padding: 0 0;
background-color: @mantle;
color: @text;
}
#workspaces button:hover {
box-shadow: inherit;
text-shadow: inherit;
background-image: linear-gradient(0deg, @surface1, @mantle);
}
#workspaces button.focused {
background-image: linear-gradient(0deg, @mauve, @surface1);
box-shadow: inset 0 -3px @text;
}
#workspaces button.urgent {
background-image: linear-gradient(0deg, @red, @mantle);
}
#taskbar button.active {
background-image: linear-gradient(0deg, @surface1, @mantle);
}
#mode {
background-color: @base;
box-shadow: inset 0 -2px @text;
}
#mpris,
#custom-weather,
#clock,
#language,
#pulseaudio,
#bluetooth,
#network,
#memory,
#cpu,
#temperature,
#disk,
#custom-kernel,
#idle_inhibitor,
#scratchpad,
#mode,
#power-profiles-daemon,
#backlight,
#battery,
#tray {
padding: 0 10px;
margin: 5px 1px;
color: @text;
}
#window,
#workspaces {
margin: 0 4px;
}
#power-profiles-daemon {
background-color: @red;
color: @base;
}
#custom-weather {
background-color: @teal;
color: @mantle;
margin-right: 5px;
}
#custom-kernel {
background-color: @rosewater;
color: @mantle;
}
#clock {
background-color: @green;
color: @mantle;
}
@keyframes blink {
to {
background-color: @mantle;
color: @text;
}
}
label:focus {
background-color: @mantle;
}
#cpu {
background-color: @mauve;
color: @mantle;
min-width: 45px;
}
#memory {
background-color: @red;
color: @mantle;
}
#disk {
background-color: @flamingo;
color: @mantle;
}
#battery {
background-color: @mauve;
color: @base;
}
#backlight {
background-color: @sky;
color: @base;
}
#network {
background-color: @peach;
color: @mantle;
}
#network.disconnected {
background-color: red;
color: @mantle;
}
#bluetooth {
background-color: @maroon;
color: @mantle;
min-width: 40px;
}
#pulseaudio {
background-color: @yellow;
color: @mantle;
}
#pulseaudio.muted {
background-color: red;
color: @mantle;
}
#temperature {
background-color: @pink;
color: @mantle;
min-width: 37px;
}
#temperature.critical {
background-color: red;
color: @mantle;
min-width: 37px;
}
#mpris {
background-color: @base;
color: @text;
}
#tray {
background-color: @overlay0;
color: @text;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: @mantle;
}
#idle_inhibitor {
background-color: @base;
color: @text;
font-family: Inter;
}
#idle_inhibitor.activated {
background-color: @text;
color: @base;
}
#scratchpad {
background-color: @base;
color: @text;
}
#scratchpad.empty {
background-color: transparent;
}
'';
};
}
-6
View File
@@ -1,6 +0,0 @@
{ ... }:
{
programs.wofi = {
enable = true;
};
}
+8 -6
View File
@@ -1,17 +1,19 @@
{ pkgs, ... }: { pkgs, currentSystemDe, ... }:
{ {
programs.kitty = { programs.kitty = {
enable = false; enable = currentSystemDe != "none";
themeFile = "Catppuccin-Mocha";
extraConfig = " ";
enableGitIntegration = true;
settings = { settings = {
enable_audio_bell = false; enable_audio_bell = false;
linux_display_server = "x11"; # This is how you get borders in gnome! hide_window_decorations = true;
# linux_display_server = "x11"; # This is how you get borders in gnome!
}; };
font = { font = {
package = pkgs.nerd-fonts.jetbrains-mono; package = pkgs.nerd-fonts.jetbrains-mono;
name = "JetBrainsMono Nerd Font"; name = "JetBrainsMono Nerd Font";
size = 16; size = 12;
}; };
themeFile = "Catppuccin-Mocha";
extraConfig = " ";
}; };
} }
+2 -2
View File
@@ -1,7 +1,7 @@
{ ... }: { gamingSystem, ... }:
{ {
programs.mangohud = { programs.mangohud = {
enable = true; enable = gamingSystem;
settings = { settings = {
fps_limit = 75; fps_limit = 75;
}; };
+49
View File
@@ -0,0 +1,49 @@
{ inputs, pkgs, ... }:
{
imports = [
inputs.noctalia.homeModules.default
];
programs.noctalia = {
enable = true;
settings = ../assets/noctalia-config.toml;
};
gtk = {
enable = true;
colorScheme = "dark";
gtk4.theme = null;
iconTheme = {
name = "Papirus";
package = pkgs.papirus-icon-theme;
};
cursorTheme = {
name = "Bibata-Modern-Classic";
package = pkgs.bibata-cursors;
};
};
qt = {
enable = true;
style = {
name = "adwaita-dark";
};
};
home.file = {
# Fix for steam cursor
".local/share/icons/default" = {
source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic/";
recursive = true;
};
"niri-config" = {
source = ../assets/niri.kdl;
target = ".config/niri/config.kdl";
};
};
services.udiskie = {
enable = true;
settings.program_options.file_manager = "${pkgs.nautilus}/bin/nautilus";
};
}
-27
View File
@@ -1,27 +0,0 @@
{ currentSystemDe, ... }:
let
ifDesktop = de: content: {
_type = "if";
condition = currentSystemDe == de;
inherit content;
};
ifNotDesktop = de: content: {
_type = "if";
condition = currentSystemDe != de;
inherit content;
};
ifGnome = ifDesktop "gnome";
ifPlasma = ifDesktop "plasma";
ifNone = ifDesktop "none";
ifNotNone = ifNotDesktop "none";
in
{
inherit
ifDesktop
ifNotDesktop
ifGnome
ifPlasma
ifNone
ifNotNone
;
}
+16 -10
View File
@@ -2,10 +2,12 @@
{ {
overlays, overlays,
nixvim, nixvim,
spotiflac-cli,
sops-nix, sops-nix,
noctalia,
inputs, inputs,
nixpkgs, nixpkgs,
nixpkgs-25-11,
nixpkgs-my-features,
home-manager, home-manager,
}: }:
name: name:
@@ -25,23 +27,27 @@ let
HMConfig = ../home; HMConfig = ../home;
systemPackages = ../modules/packages.nix; systemPackages = ../modules/packages.nix;
specialArgs = { specialArgs = {
pkgs-stable = import nixpkgs { inherit
gamingSystem
workSystem
enableZram
nixvim
sops-nix
noctalia
inputs
additionalModules
;
pkgs-unstable = import nixpkgs {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
}; };
pkgs-25-11 = nixpkgs-25-11.legacyPackages.${system};
pkgs-my-features = nixpkgs-my-features.legacyPackages.${system};
currentSystem = system; currentSystem = system;
currentSystemName = name; currentSystemName = name;
currentSystemUser = user; currentSystemUser = user;
currentSystemEmail = email; currentSystemEmail = email;
currentSystemDe = desktopEnvironment; currentSystemDe = desktopEnvironment;
gamingSystem = gamingSystem;
workSystem = workSystem;
enableZram = enableZram;
nixvim = nixvim;
spotiflac-cli = spotiflac-cli;
sops-nix = sops-nix;
inputs = inputs;
additionalModules = additionalModules;
}; };
in in
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
+1 -1
View File
@@ -14,5 +14,5 @@
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
system.stateVersion = "25.05"; # Did you read the comment? system.stateVersion = "26.05"; # Did you read the comment?
} }
+9 -7
View File
@@ -2,23 +2,25 @@
{ {
networking = { networking = {
networkmanager.enable = true; networkmanager.enable = true;
nftables.enable = true;
firewall = { firewall = {
enable = true;
allowedTCPPorts = [ allowedTCPPorts = [
22 22
25
80 80
143
443 443
]; 465
allowedTCPPortRanges = [ 587
{ 993
from = 8001; 27015
to = 8005;
}
]; ];
allowedUDPPorts = [ allowedUDPPorts = [
80 80
443 443
34197
]; ];
enable = true;
}; };
}; };
} }
+31 -4
View File
@@ -1,6 +1,33 @@
{ ... }: { config, ... }:
{ {
sops.secrets = { sops =
nextcloud_password.sopsFile = ../../secrets/bomba.sops.yaml; let
}; default = {
sopsFile = ../../secrets/bomba.sops.yaml;
};
in
{
secrets = {
nextcloud_password = default // {
owner = "nextcloud";
};
nixflix_password = default;
jellyfin_api_key = default;
qbittorrent_api_key = default;
qbittorrent_password = default;
radarr_api_key = default;
sonarr_api_key = default;
prowlarr_api_key = default;
seerr_api_key = default;
indexers_ilcorsaroblu_password = default;
gitea_registration_token = default;
};
templates = {
"gitea_runner.env".content = ''
GITEA_INSTANCE_URL=${config.services.gitea.settings.server.ROOT_URL}
GITEA_RUNNER_NAME="Runner"
GITEA_RUNNER_REGISTRATION_TOKEN=${config.sops.placeholder.gitea_registration_token}
'';
};
};
} }
+88
View File
@@ -0,0 +1,88 @@
{
pkgs,
config,
currentSystemUser,
...
}:
{
services.caddy =
let
basicAuth = ''
basicauth {
${currentSystemUser} $2a$14$L6SBwu.0FhGBYwH2LWa6uOrBSeRHo8Lo95Vkle/g5uB7kZl7nmJPO
}
'';
in
{
enable = true;
virtualHosts = {
"patrickcanal.it".extraConfig = ''
root /var/www/patrickcanal.it/public
file_server
'';
"novnc.patrickcanal.it".extraConfig = ''
handle {
${basicAuth}
root ${pkgs.novnc}/share/webapps/novnc
file_server browse
}
handle /websockify {
${basicAuth}
reverse_proxy 127.0.0.1:6080
}
'';
"vaultwarden.patrickcanal.it".extraConfig = ''
encode zstd gzip
reverse_proxy :${toString config.services.vaultwarden.config.ROCKET_PORT} {
header_up X-Real-IP {remote_host}
}
'';
"gitea.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.services.gitea.settings.server.HTTP_PORT}
'';
"nextcloud.patrickcanal.it".extraConfig = ''
reverse_proxy :8004
'';
"octoprint.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.services.octoprint.port}
'';
"vikunja.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.services.vikunja.port}
'';
"jellyfin.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.jellyfin.network.internalHttpPort}
'';
"qbittorrent.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.downloadarr.qbittorrent.port}
'';
"radarr.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.radarr.settings.server.port}
'';
"sonarr.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.sonarr.settings.server.port}
'';
"prowlarr.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.prowlarr.settings.server.port}
'';
"seerr.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.seerr.port}
'';
};
};
systemd.services.websockify = {
description = "Websockify for noVNC";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Restart = "always";
DynamicUser = true;
ExecStart = ''
${pkgs.python3Packages.websockify}/bin/websockify \
--web ${pkgs.novnc}/share/webapps/novnc \
6080 127.0.0.1:5900
'';
};
};
}
+5
View File
@@ -1,9 +1,14 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./caddy.nix
./gitea.nix ./gitea.nix
./nextcloud.nix
./nixflix.nix
./octoprint.nix ./octoprint.nix
./teamspeak.nix
./vaultwarden.nix ./vaultwarden.nix
./vikunja.nix
]; ];
services.openssh.enable = true; services.openssh.enable = true;
+12 -2
View File
@@ -1,6 +1,6 @@
{ ... }: { config, ... }:
{ {
services.gitea = { config.services.gitea = {
enable = true; enable = true;
settings = { settings = {
server = { server = {
@@ -11,4 +11,14 @@
service.DISABLE_REGISTRATION = true; service.DISABLE_REGISTRATION = true;
}; };
}; };
config.virtualisation.oci-containers.containers.gitea-act-runner = {
image = "docker.io/gitea/act_runner:latest";
environmentFiles = [
config.sops.templates."gitea_runner.env".path
];
volumes = [
"/var/run/docker.sock:/var/run/docker.sock"
];
};
} }
+37
View File
@@ -0,0 +1,37 @@
{
pkgs,
config,
currentSystemUser,
...
}:
{
services = {
nextcloud = {
enable = true;
package = pkgs.nextcloud33;
hostName = "nextcloud.patrickcanal.it";
https = false;
config = {
adminpassFile = config.sops.secrets.nextcloud_password.path;
dbtype = "sqlite";
adminuser = currentSystemUser;
};
settings = {
default_phone_region = "IT";
overwriteprotocol = "https";
mail_domain = "patrickcanal.it";
log_type = "file";
trusted_domains = [
"nextcloud.patrickcanal.it"
];
};
};
# Required to change nextcloud port
nginx.virtualHosts."${config.services.nextcloud.hostName}".listen = [
{
addr = "127.0.0.1";
port = 8004;
}
];
};
}
+121
View File
@@ -0,0 +1,121 @@
{ config, ... }:
let
user = "Patrick";
baseDir = "/var/lib/nixflix";
stateDir = "${baseDir}/state";
downloadsDir = "${baseDir}/downloads";
mediaDir = "${baseDir}/media";
jellyfinPort = 8005;
qbittorrentPort = 8006;
radarrPort = 8007;
prowlarrPort = 8008;
seerrPort = 8009;
sonarrPort = 8010;
hostConfig = {
username = user;
password._secret = config.sops.secrets.nixflix_password.path;
};
in
{
nixflix = {
inherit mediaDir downloadsDir stateDir;
enable = true;
caddy = {
enable = true;
domain = "patrickcanal.it";
};
flaresolverr.enable = true;
torrentClients.qbittorrent = {
enable = true;
webuiPort = qbittorrentPort;
password._secret = config.sops.secrets.nixflix_password.path;
serverConfig = {
LegalNotice.Accepted = true;
Preferences.WebUI = {
MaxAuthenticationFailCount = 0;
Username = user;
Password_PBKDF2 = "@ByteArray(8AhaCcVLo4H07+dv5uF7pQ==:m+wRuZuzus0N5mkOGXePQmDZfgTpRZiv2OSKbk1pnOA/QPa/JF4Ai1FwVbyZ1PF9odSOSI1UaRQwDMb3MxOKMg==)";
};
};
};
radarr = {
enable = true;
settings.server.port = radarrPort;
config = {
apiKey._secret = config.sops.secrets.radarr_api_key.path;
hostConfig = hostConfig // {
port = radarrPort;
};
};
};
sonarr = {
enable = true;
settings.server.port = sonarrPort;
config = {
apiKey._secret = config.sops.secrets.sonarr_api_key.path;
hostConfig = hostConfig // {
port = sonarrPort;
};
};
};
prowlarr = {
enable = true;
settings.server.port = prowlarrPort;
config = {
apiKey._secret = config.sops.secrets.prowlarr_api_key.path;
hostConfig = hostConfig // {
port = prowlarrPort;
};
indexers = [
{
name = "Il Corsaro Blu";
username = "Petrich";
password._secret = config.sops.secrets.indexers_ilcorsaroblu_password.path;
}
];
};
};
seerr = {
enable = true;
port = seerrPort;
apiKey._secret = config.sops.secrets.seerr_api_key.path;
};
jellyfin = {
enable = true;
apiKey._secret = config.sops.secrets.jellyfin_api_key.path;
network = {
knownProxies = [ "127.0.0.1" ];
internalHttpPort = jellyfinPort;
};
users."${user}" = {
mutable = false;
policy.isAdministrator = true;
password._secret = config.sops.secrets.nixflix_password.path;
};
libraries = {
Movies = {
collectionType = "movies";
paths = [
"${mediaDir}/movies"
];
};
Shows = {
collectionType = "tvshows";
seasonZeroDisplayName = "Specials";
paths = [
"${mediaDir}/tv"
];
};
};
};
};
}
+3 -24
View File
@@ -1,33 +1,12 @@
{ ... }: { pkgs-my-features, ... }:
{ {
nixpkgs.overlays = [
(self: super: {
octoprint = super.octoprint.override {
packageOverrides = pyself: pysuper: {
octoprint-fanspeedslider = pyself.buildPythonPackage rec {
pname = "fanspeedslider";
version = "0.2.3";
src = self.fetchFromGitHub {
owner = "mival";
repo = "OctoPrint-FanSpeedSlider";
rev = "${version}";
sha256 = "sha256-0Gp9EgaKyCnRQv4A1sNHquTRqjag2Oz/fDGVVo95FfY=";
};
propagatedBuildInputs = [ pysuper.octoprint ];
pyproject = true;
doCheck = false;
};
};
};
})
];
services.octoprint = { services.octoprint = {
enable = true; enable = true;
openFirewall = true;
port = 8002; port = 8002;
package = pkgs-my-features.octoprint;
plugins = plugins =
plugins: with plugins; [ plugins: with plugins; [
octoprint-fanspeedslider fanspeedslider
]; ];
}; };
} }
+7
View File
@@ -0,0 +1,7 @@
{ ... }:
{
services.teamspeak3 = {
enable = true;
openFirewall = true;
};
}
+2 -2
View File
@@ -2,9 +2,9 @@
{ {
services.vaultwarden = { services.vaultwarden = {
enable = true; enable = true;
domain = "vaultwarden.patrickcanal.it";
config = { config = {
ROCKET_ADDRESS = "0.0.0.0"; DOMAIN = "https://vaultwarden.patrickcanal.it";
ROCKET_ADDRESS = "127.0.0.1";
ROCKET_PORT = 8003; ROCKET_PORT = 8003;
}; };
}; };
+9
View File
@@ -0,0 +1,9 @@
{ ... }:
{
services.vikunja = {
enable = true;
port = 8011;
frontendScheme = "http";
frontendHostname = "vikunja.patrickcanal.it";
};
}
+59
View File
@@ -0,0 +1,59 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ pkgs, ... }:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/vda";
boot.loader.grub.useOSProber = true;
networking.hostName = "frog"; # Define your hostname.
networking.networkmanager.enable = true;
time.timeZone = "Europe/Rome";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "it_IT.UTF-8";
LC_IDENTIFICATION = "it_IT.UTF-8";
LC_MEASUREMENT = "it_IT.UTF-8";
LC_MONETARY = "it_IT.UTF-8";
LC_NAME = "it_IT.UTF-8";
LC_NUMERIC = "it_IT.UTF-8";
LC_PAPER = "it_IT.UTF-8";
LC_TELEPHONE = "it_IT.UTF-8";
LC_TIME = "it_IT.UTF-8";
};
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
services.xserver.xkb = {
layout = "us";
variant = "";
};
services.printing.enable = true;
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
environment.systemPackages = with pkgs; [
];
system.stateVersion = "25.11"; # Did you read the comment?
}
+6
View File
@@ -0,0 +1,6 @@
{ ... }:
{
imports = [
./configuration.nix
];
}
+32
View File
@@ -0,0 +1,32 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ lib, modulesPath, ... }:
{
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [
"ahci"
"xhci_pci"
"virtio_pci"
"sr_mod"
"virtio_blk"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/b3a05e5f-6394-4115-b206-8fb51c235067";
fsType = "ext4";
};
swapDevices = [
{ device = "/dev/disk/by-uuid/c94fa719-f29a-41bb-8e85-e186fe96846c"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}
+1 -1
View File
@@ -10,7 +10,7 @@
verbose = false; verbose = false;
systemd.enable = true; systemd.enable = true;
}; };
kernelPackages = pkgs.linuxPackages_zen; # pkgs.linuxPackages_latest; kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest; # pkgs.linuxPackages_latest;
consoleLogLevel = 3; consoleLogLevel = 3;
kernelParams = [ kernelParams = [
"quiet" "quiet"
+1 -1
View File
@@ -11,5 +11,5 @@
networking.hostName = "katana"; # Define your hostname. networking.hostName = "katana"; # Define your hostname.
system.stateVersion = "25.11"; # Did you read the comment? system.stateVersion = "26.05";
} }
-1
View File
@@ -3,7 +3,6 @@
networking = { networking = {
networkmanager.enable = true; networkmanager.enable = true;
wireguard.enable = true; wireguard.enable = true;
nftables.enable = true;
firewall = { firewall = {
checkReversePath = false; checkReversePath = false;
allowedUDPPorts = [ 25565 ]; allowedUDPPorts = [ 25565 ];
+1 -2
View File
@@ -3,8 +3,7 @@
programs.virt-manager.enable = true; programs.virt-manager.enable = true;
virtualisation = { virtualisation = {
docker.enable = true; docker.enable = true;
# libvirtd.enable = true; disable temorarly because of https://github.com/NixOS/nixpkgs/issues/496836 libvirtd.enable = true;
spiceUSBRedirection.enable = true; spiceUSBRedirection.enable = true;
waydroid.enable = true;
}; };
} }
+6 -2
View File
@@ -3,13 +3,17 @@
nix.settings = { nix.settings = {
substituters = [ substituters = [
"https://cache.nixos.org" "https://cache.nixos.org"
"https://cache.garnix.io"
"https://nixvim-superredstone.cachix.org" "https://nixvim-superredstone.cachix.org"
"https://spotiflac-cli.cachix.org" "https://attic.xuyh0120.win/lantian"
"https://noctalia.cachix.org"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
"nixvim-superredstone.cachix.org-1:mEXHVxEv5dKka3FOxTMFDfdk/DJ0baydsahi+zZIcQE=" "nixvim-superredstone.cachix.org-1:mEXHVxEv5dKka3FOxTMFDfdk/DJ0baydsahi+zZIcQE="
"spotiflac-cli.cachix.org-1:UgpE8P0TO8NuF03vF117r/vgTkjq13Z3JqGzaQdC7xE=" "lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
]; ];
trusted-users = [ trusted-users = [
"root" "root"
-89
View File
@@ -1,89 +0,0 @@
{
pkgs,
lib,
currentSystemDe,
...
}:
let
libDe = import ../../lib/libde.nix {
inherit currentSystemDe lib;
};
in
{
services = {
xserver.enable = true;
xserver.excludePackages = with pkgs; [
xterm
];
# Display managers
displayManager = {
sddm = libDe.ifPlasma {
enable = true;
wayland.enable = true;
};
gdm.enable = libDe.ifGnome true;
};
# Desktop environments
desktopManager = {
plasma6.enable = libDe.ifPlasma true;
gnome.enable = libDe.ifGnome true;
};
gnome.gnome-keyring.enable = libDe.ifGnome true;
};
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
konsole
];
environment.gnome.excludePackages = with pkgs; [
epiphany
geary
gedit
gnome-characters
gnome-console
gnome-contacts
gnome-maps
gnome-music
gnome-software
gnome-tour
seahorse
simple-scan
xterm
yelp
];
xdg = {
autostart.enable = true;
portal.enable = true;
};
programs.kdeconnect = libDe.ifNotNone {
enable = true;
package =
if (currentSystemDe == "gnome") then
pkgs.gnomeExtensions.gsconnect
else
pkgs.kdePackages.kdeconnect-kde;
};
programs.thunar.plugins =
with pkgs.xfce;
libDe.ifGnome [ ]
++ [
thunar-archive-plugin
thunar-media-tags-plugin
thunar-vcs-plugin
tumbler
];
# Hack to fix "Your GStreamer installation is missing a plug-in." inside of Nautilus
environment.sessionVariables.GST_PLUGIN_SYSTEM_PATH_1_0 =
lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0"
[
pkgs.gst_all_1.gst-plugins-good
pkgs.gst_all_1.gst-plugins-bad
pkgs.gst_all_1.gst-plugins-ugly
];
}
+1 -2
View File
@@ -16,14 +16,12 @@
++ ( ++ (
if (currentSystemDe != "none") then if (currentSystemDe != "none") then
[ [
./de.nix
./fonts.nix ./fonts.nix
./sound.nix ./sound.nix
] ]
else else
[ ] [ ]
); );
time.timeZone = "Europe/Rome"; time.timeZone = "Europe/Rome";
# Select internationalisation properties. # Select internationalisation properties.
@@ -74,4 +72,5 @@
}; };
documentation.man.cache.enable = false; documentation.man.cache.enable = false;
boot.tmp.cleanOnBoot = true;
} }
+59 -1
View File
@@ -1,5 +1,63 @@
{ pkgs, ... }: { pkgs, config, ... }:
{ {
system.fsPackages = [ pkgs.bindfs ];
fileSystems =
let
mkRoSymBind = path: {
device = path;
fsType = "fuse.bindfs";
options = [
"ro"
"resolve-symlinks"
"x-gvfs-hide"
];
};
fontsPkgs =
config.fonts.packages
++ (with pkgs; [
bibata-cursors
]);
x11Fonts =
pkgs.runCommand "X11-fonts"
{
preferLocalBuild = true;
nativeBuildInputs = with pkgs; [
gzip
mkfontscale
mkfontdir
];
}
(
''
mkdir -p "$out/share/fonts"
font_regexp='.*\.\(ttf\|ttc\|otb\|otf\|pcf\|pfa\|pfb\|bdf\)\(\.gz\)?'
''
+ (builtins.concatStringsSep "\n" (
builtins.map (pkg: ''
find ${toString pkg} -regex "$font_regexp" \
-exec ln -sf -t "$out/share/fonts" '{}' \;
'') fontsPkgs
))
+ ''
cd "$out/share/fonts"
mkfontscale
mkfontdir
cat $(find ${pkgs.fontalias}/ -name fonts.alias) >fonts.alias
''
);
aggregatedIcons = pkgs.buildEnv {
name = "system-icons";
paths = fontsPkgs;
pathsToLink = [
"/share/icons"
];
};
in
{
"/usr/share/icons" = mkRoSymBind (aggregatedIcons + "/share/icons");
"/usr/share/fonts" = mkRoSymBind (x11Fonts + "/share/fonts");
};
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
nerd-fonts.jetbrains-mono nerd-fonts.jetbrains-mono
noto-fonts noto-fonts
+37 -4
View File
@@ -1,9 +1,42 @@
{ currentSystemUser, ... }: { currentSystemUser, ... }:
let
swBin = "/run/current-system/sw/bin";
wrappersBin = "/run/wrappers/bin";
in
{ {
security.sudo.extraConfig = '' security.sudo = {
Defaults pwfeedback extraConfig = ''
Defaults timestamp_timeout=120 Defaults pwfeedback
''; Defaults timestamp_timeout=120
'';
extraRules = [
{
groups = [ "wheel" ];
commands = [
{
command = "${swBin}/shutdown";
options = [ "NOPASSWD" ];
}
{
command = "${swBin}/reboot";
options = [ "NOPASSWD" ];
}
{
command = "${swBin}/poweroff";
options = [ "NOPASSWD" ];
}
{
command = "${wrappersBin}/mount";
options = [ "NOPASSWD" ];
}
{
command = "${wrappersBin}/umount";
options = [ "NOPASSWD" ];
}
];
}
];
};
sops = { sops = {
age.sshKeyPaths = [ age.sshKeyPaths = [
"/etc/ssh/ssh_host_ed25519_key" "/etc/ssh/ssh_host_ed25519_key"
+5 -1
View File
@@ -1,7 +1,11 @@
{ ... }: { pkgs, currentSystemDe, ... }:
{ {
services = { services = {
pcscd.enable = true; pcscd.enable = true;
xserver.enable = currentSystemDe != "none";
xserver.excludePackages = with pkgs; [
xterm
];
openssh = { openssh = {
enable = true; enable = true;
hostKeys = [ hostKeys = [
+1
View File
@@ -7,6 +7,7 @@
alsa.enable = true; alsa.enable = true;
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
wireplumber.enable = true;
}; };
pulseaudio.enable = false; pulseaudio.enable = false;
}; };
+120 -135
View File
@@ -1,5 +1,8 @@
{ {
pkgs, pkgs,
# pkgs-25-11,
pkgs-my-features,
lib,
gamingSystem, gamingSystem,
workSystem, workSystem,
currentSystemDe, currentSystemDe,
@@ -14,146 +17,128 @@
environment.systemPackages = environment.systemPackages =
with pkgs; with pkgs;
[ let
# CLI utils hostSystem = pkgs.stdenv.hostPlatform.system;
appimage-run basePackages = [
bat # CLI utils
btop appimage-run
bun bat
busybox bintools
distrobox btop
docker bun
dua busybox
fd dig
fish distrobox
fzf docker
gh dua
git fd
gitlab-ci-local file
gnumake fish
htop fzf
jq gh
just git
killall gitlab-ci-local
krabby gnumake
lazygit htop
nmap jq
nodejs just
openssl killall
openvpn krabby
pinentry-tty lazygit
python3 nixpkgs-review
ripgrep nmap
sops nodejs
tree openssl
unzip openvpn
wget pinentry-tty
wl-clipboard python3
zip ripgrep
zoxide rsync
zulu sops
tree
unzip
wget
wl-clipboard
xwayland-satellite
zip
zoxide
zulu
# Man pages # Man pages
man-pages man-pages
vim # The only and one great editor vim # The only and one great editor
inputs.nixvim.packages.${stdenv.hostPlatform.system}.default # The only and one great editor improved even further inputs.nixvim.packages.${stdenv.hostPlatform.system}.default # The only and one great editor improved even further
];
inputs.spotiflac-cli.packages.${stdenv.hostPlatform.system}.default guiPackages = lib.optionals (currentSystemDe != "none") [
] baobab
++ ( bazaar
if currentSystemDe != "none" then discord
[ firefox
# Video card gapless
vulkan-tools gimp
mpv
nautilus
nextcloud-client
obs-studio
ollama
onlyoffice-desktopeditors
piper
qbittorrent
seahorse
spotiflac
telegram-desktop
thunderbird
tor-browser
vlc
vulkan-tools
];
# GUI applications gamingPackages = lib.optionals gamingSystem [
baobab arrpc
bazaar cura-appimage
blackbox-terminal heroic
discord obs-studio
firefox openrgb
gapless prismlauncher
gnome-boxes protonplus
mpv satisfactorymodmanager
nextcloud-client ];
obs-studio
piper
seahorse
telegram-desktop
thunderbird
(delfin.overrideAttrs (old: { workPackages = lib.optionals workSystem [
src = fetchFromCodeberg { android-studio
repo = "delfin"; ansible
owner = "Fisch"; virt-manager
rev = "0c4edad17189943162bbc98304e0211f765ba70e"; ];
hash = "sha256-xe1US0Yk6hpRN57qx0yhuwolope/j4UkDtIGliOO4Gc=";
};
}))
]
else
[ ]
)
++ (
if gamingSystem then
[
cura-appimage
heroic
mangohud
openrgb
prismlauncher
protonplus
satisfactorymodmanager
# Required for Discord RPC plasmaPackages = lib.optionals (currentSystemDe == "plasma") [
arrpc kdePackages.wallpaper-engine-plugin
] ];
else
[ ] gnomePackages = lib.optionals (currentSystemDe == "gnome") [
) blackbox-terminal
++ ( gnome-tweaks
if workSystem then gnomeExtensions.appindicator
[ gnomeExtensions.caffeine
android-studio gnomeExtensions.dash-to-dock
ansible gnomeExtensions.wallpaper-slideshow
virt-manager ];
]
else niriPackages = lib.optionals (currentSystemDe == "niri") [
[ ] gnome-keyring
) loupe
++ ( papers
if currentSystemDe == "plasma" then
[ inputs.noctalia.packages.${hostSystem}.default
kdePackages.wallpaper-engine-plugin ];
] in
else basePackages
[ ] ++ guiPackages
) ++ gamingPackages
++ ( ++ workPackages
if currentSystemDe == "hyprland" then ++ plasmaPackages
[ ++ gnomePackages
# Hyprland ++ niriPackages;
brightnessctl
hyprpaper
pamixer
pavucontrol
kdePackages.dolphin
]
else
[ ]
)
++ (
if currentSystemDe == "gnome" then
[
gnome-tweaks
gnomeExtensions.appindicator
gnomeExtensions.caffeine
gnomeExtensions.dash-to-dock
gnomeExtensions.wallpaper-slideshow
]
else
[ ]
);
} }
+7 -1
View File
@@ -5,6 +5,13 @@
... ...
}: }:
{ {
imports = [
]
++ (if currentSystemDe == "niri" then [ ./niri.nix ] else [ ])
++ (if currentSystemDe == "gnome" then [ ./gnome.nix ] else [ ])
++ (if currentSystemDe == "plasma" then [ ./plasma.nix ] else [ ]);
programs = { programs = {
gamescope = { gamescope = {
enable = true; enable = true;
@@ -26,6 +33,5 @@
nh = { nh = {
enable = true; enable = true;
}; };
hyprland.enable = if currentSystemDe == "hyprland" then true else false;
}; };
} }
+41
View File
@@ -0,0 +1,41 @@
{ pkgs, lib, ... }:
{
services = {
desktopManager.gnome.enable = true;
displayManager.gdm.enable = true;
gnome.gnome-keyring.enable = true;
};
environment.gnome.excludePackages = with pkgs; [
epiphany
geary
gedit
gnome-characters
gnome-console
gnome-contacts
gnome-maps
gnome-music
gnome-software
gnome-tour
seahorse
simple-scan
xterm
yelp
];
programs.thunar.plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-media-tags-plugin
thunar-vcs-plugin
tumbler
];
# Hack to fix "Your GStreamer installation is missing a plug-in." inside of Nautilus
environment.sessionVariables.GST_PLUGIN_SYSTEM_PATH_1_0 =
lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0"
[
pkgs.gst_all_1.gst-plugins-good
pkgs.gst_all_1.gst-plugins-bad
pkgs.gst_all_1.gst-plugins-ugly
];
}
+56
View File
@@ -0,0 +1,56 @@
{ pkgs, lib, ... }:
{
programs.niri.enable = true;
services = {
dbus.packages = [ pkgs.nautilus ];
dbus.implementation = "broker";
xserver.desktopManager.runXdgAutostartIfNone = true;
upower.enable = true;
power-profiles-daemon.enable = true;
udisks2.enable = true;
gvfs.enable = true;
gnome.gnome-keyring.enable = true;
displayManager.dms-greeter = {
enable = true;
compositor.name = "niri";
};
};
xdg = {
mime = {
enable = true;
defaultApplications = {
"application/pdf" = "firefox.desktop";
"audio/*" = [
"mpv.desktop"
];
"video/*" = [
"mpv.desktop"
];
"image/*" = [
"org.gnome.Loupe.desktop"
];
};
};
# For god's sake, never touch this code again, so much pain has been released on the following lines.
portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = lib.mkForce [
pkgs.xdg-desktop-portal-wlr
pkgs.xdg-desktop-portal-gtk
];
config = {
niri = {
default = lib.mkForce [
"gtk"
"wlr"
];
"org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ];
"org.freedesktop.impl.portal.Screenshot" = [ "wlr" ];
};
};
};
};
}
+15
View File
@@ -0,0 +1,15 @@
{ pkgs, ... }:
{
services = {
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
desktopManager.plasma6.enable = true;
};
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
konsole
];
}
+15 -5
View File
@@ -1,8 +1,17 @@
nextcloud_password: ENC[AES256_GCM,data:lMavQvl4grki9c5AgaKE8Q==,iv:jJ0/Wka5/2TBD4C739HBeiVzxujWC4WL6FDLqov6FVA=,tag:1skCLwSr6VSzZWthtzaxwg==,type:str] nextcloud_password: ENC[AES256_GCM,data:lMavQvl4grki9c5AgaKE8Q==,iv:jJ0/Wka5/2TBD4C739HBeiVzxujWC4WL6FDLqov6FVA=,tag:1skCLwSr6VSzZWthtzaxwg==,type:str]
nixflix_password: ENC[AES256_GCM,data:g8S6Z925bLWDFjFKL3TqDQ==,iv:sFg8bCBL71yVUUJ7ibD/IH2O47gsxbH8Zrgu67lH3+A=,tag:J3Y8KQw8bSYzBrOCN23q2w==,type:str]
jellyfin_api_key: ENC[AES256_GCM,data:Xhd3X3iy78kmPPmWQOngdF9jqPb6YBM9kgjhib6K1zw+wQ14VPJORqkVgKw/K0AwjF81zJXVGgkGHZbdjvKDPQ==,iv:2Y8c8iCcJ4MNlKZsDG/RyfQ4zO5686ExGQCCTkfcigw=,tag:/T/ms/SVL2EIyI+iMX7rVg==,type:str]
qbittorrent_api_key: ENC[AES256_GCM,data:EJmLZr15745Fcwu6zO1GJ68ptrZjS3NgG2BTNC0bgxEuGR8rjo3UrUj6zo3wkMUu9j3A9uZD1mNH5HLL/nGKrg==,iv:B5riJE+jMy3u+nBV7jhnYdpxw8cIMmPwdVm6XCTgxEA=,tag:1IofM5ieuyHL3l6fOsaV8Q==,type:str]
qbittorrent_password: ENC[AES256_GCM,data:qZNlHLMcihmfaP8t6Bd0vbt89A5nzgukJ0lO+n52R9lldNQiHKNCNI2LpitIsHGfjNMiluuo5r4fTwVjJsA1zA==,iv:InCWhFfWkmMo1R0wGNx7n09Wpq2RW1TYtuaQWJknkvM=,tag:Qp59jzDWEjD/s04DUV9u8A==,type:str]
radarr_api_key: ENC[AES256_GCM,data:NxYoYFffrPFmI3cmtgi+qRBzH15imO3knq00GWcY+uJSvBL0hOs1Zem+n7Ij7L5V7PbZfWVnnuRJvjy2BnRzYA==,iv:+b5jm/Z8wHf3CidKV1L5a3vlSJvsi+eWhBBO6J48/8o=,tag:RiA0/dbcftCp79YqEwu7yA==,type:str]
sonarr_api_key: ENC[AES256_GCM,data:nm9lcY9/3aMce7MIEK9E+su9o0f7RdOafx52a8vgG8hxiv4J6bktiK8EAfLIr0ae8Yi17gDiHtRgPw/9EUOdCw==,iv:elRPggP64PdaV1j6fCyZSilgwi41cmG9rDpXVKcX0PY=,tag:o0ZdHxh1NaJSfW7iNlV9eg==,type:str]
prowlarr_api_key: ENC[AES256_GCM,data:UDpnqIP64k8Qt9k/sjbESNostFiGHfLo3CEYfyWppHEwfkjVu1oirdtzDgAO056rxWaLwwcqJs0jDFau5VZi8Q==,iv:N9d9Sdbo/akFecQRYfbrkigq2Za3CXzsRJvNljm1MQM=,tag:Et1kIBHPX4bLlCgqpZf4CA==,type:str]
seerr_api_key: ENC[AES256_GCM,data:KDQxxo2W4tz9UokscAUSz7pf7wY2AfsEQpZh2aXGjsQOBgSLt1DEe5LUxealBZju8gabhp4sNGFvp0+ioZpfkg==,iv:V/rbR6bZtVnDhLLVmygGyTf5Ujm8sb2xHy4JuvLiiV8=,tag:MxGzXHbZWgu3H+ICS2tSNQ==,type:str]
indexers_ilcorsaroblu_password: ENC[AES256_GCM,data:w3CIGQqLxHEkUHvscZc=,iv:fjsB3zt4Z43MKRECjpa7+gNDzM8D+JK0sbKt2P+Hdiw=,tag:KvLawon+KfrhGmi1TWRHLw==,type:str]
gitea_registration_token: ENC[AES256_GCM,data:aHoUBwPXtlme9RgGObwWt1V90JU5qeVBUtpINrb1hY6XjKi4+kLxAg==,iv:zkgDdx82Lku7/oNIoSoKUIrxvZuyPaGUI411V/rkW9c=,tag:0eBC0Kd71UwokH9scs/AKA==,type:str]
sops: sops:
age: age:
- recipient: age1ynu6zhhy84rr5xqce0flp25x5tnfgskesxfe39u7ewsk900fvagq9sq0lx - enc: |
enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsOC9xeExzN2VzT2NmZS9I YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsOC9xeExzN2VzT2NmZS9I
TEVxamNYOWZDWUJvYnpjL2JpMHJRbTlOV1Y4CmFGaXhEd0pRWU1tRTBMdDVPU2Fr TEVxamNYOWZDWUJvYnpjL2JpMHJRbTlOV1Y4CmFGaXhEd0pRWU1tRTBMdDVPU2Fr
@@ -10,7 +19,8 @@ sops:
YjVvSDV1TGExYUJGUk00MTF4bXNFVTQKG/GueSmnuA23L42X6AvAWZgBbJuCGLw1 YjVvSDV1TGExYUJGUk00MTF4bXNFVTQKG/GueSmnuA23L42X6AvAWZgBbJuCGLw1
ZQ17gIIOjhKHlGx8Lo5t/PekzFyQKCKdijS7caq74dVib1vO3tk+uQ== ZQ17gIIOjhKHlGx8Lo5t/PekzFyQKCKdijS7caq74dVib1vO3tk+uQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2026-03-13T07:59:07Z" recipient: age1ynu6zhhy84rr5xqce0flp25x5tnfgskesxfe39u7ewsk900fvagq9sq0lx
mac: ENC[AES256_GCM,data:xJWtKkpQuAPXcToLfWuEshInHIBG59uKoQAh3+SmKu/UAkvMDNywMZbBhrxn/cF/xo8TKkaPxd4luXsdw+Z0YvVezn43jKNyXsIrUNtd5hMlE4hbAuAf/ifb3t2AVg1s/R6GZWMZvc0rmSePTWyowHgceaxTqHPr6vvHEVHt0oM=,iv:UXYUS/sn1+TcUOAWAQC1y+TtDIayNez6ssYh+Qt5AmI=,tag:YgWujpGrzwtjnEsLoKm3ig==,type:str] lastmodified: "2026-05-28T09:37:32Z"
mac: ENC[AES256_GCM,data:NNYUj3P5mdw+zS7DLmMVwUOAP1Vz/GTYFLAZWP6pR1Y9+g9/R4mTo2Cb/piMb0Wqopifo4a2VeMPSwkgz2+yGKajqU+LsgCFQRCeWurJxo1NTZTW3jabWYY4aw20piIQAWaOwfpy4pC2uukwS48Wat0vbL+l4hgBRNUUymfukDU=,iv:If1h3b0WVEPwh7mrU/VKqnXG7Yz0wXnXxdiBwiNaYIs=,tag:LojwaxKBLUu40TrDROapnQ==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.12.1 version: 3.13.1
+23 -14
View File
@@ -2,24 +2,33 @@ wifi_password: ENC[AES256_GCM,data:7plUlREKK8mNdWGhlTG5+3ICFqZq+hBp6aHz1mrLbOm9x
user_password: ENC[AES256_GCM,data:oRb4aO3iby+cA5YU5cyCeyOeSzZqd58/WozcHrK00VSHG01OnUZqpWbBa6zIm43UqfoZUM7IScWQZcWPbVR6t4H/uErZbZi2dQ==,iv:UzoJS290MWP7E/A1todnmyiNV3C8f5lg5h1Tf81QSPA=,tag:rvGNdn2I2TxVX8xDpDe/Vw==,type:str] user_password: ENC[AES256_GCM,data:oRb4aO3iby+cA5YU5cyCeyOeSzZqd58/WozcHrK00VSHG01OnUZqpWbBa6zIm43UqfoZUM7IScWQZcWPbVR6t4H/uErZbZi2dQ==,iv:UzoJS290MWP7E/A1todnmyiNV3C8f5lg5h1Tf81QSPA=,tag:rvGNdn2I2TxVX8xDpDe/Vw==,type:str]
sops: sops:
age: age:
- recipient: age18ujjw92tm6vpcpgqqky7dzg3yvzm9nytgzeptkfhtz5jhdskcdpsgmv0vs - enc: |
enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvM3dublNrNkQ2dlpJQUVP YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2QjFrS0Zhbm9KRk1VUy9h
MVE4c1hwdksyN3BtL1pWRXBISS9yaDRkNmhnCm5EQW4wTXZNQWxIYkhNVjh5TWFO MjNxMXU0UFB0MzZkeG1NV2hEN0lNcnBVczNvCitFWjk5ellheEpsUE16ZE8rbkZa
cGJGRHFBekwzMUJWZzc2NCtTNDV2ckEKLS0tIDJpN0UyK0sraExiOVk1UTN2dUEw QmtZUm51bHpyOGFGcDdscENZckh2SGcKLS0tIEJKVHNPY0hvRStCdjl5bDNjWmxx
ZjVBVUpBekJOaTZraEtWdEx2QU9VSWsKql10qo6BZUPZw/oXDQV0AlEihQnOi9Qd MlhmSFREVEdmaHhnb2lneWdPK0trK0UKyLnmxyb+1D4Rg40Vdt5j0ChSWDXc8Ft3
f4gtZWBFpy5EUXolgtbbJH0LPwKhi7hVvQk/PkOGq11jNnA6PQJ93w== UCIXrOebQlaJjbO3B8I2HkuOUtwg/SrljTa6SFwMlY2gZOhneEn/8g==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1ynu6zhhy84rr5xqce0flp25x5tnfgskesxfe39u7ewsk900fvagq9sq0lx recipient: age18ujjw92tm6vpcpgqqky7dzg3yvzm9nytgzeptkfhtz5jhdskcdpsgmv0vs
enc: | - enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPN2R4cFZpOFlLcG4zVmlm YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvQkJQZVgrcW05TEEyYmRV
ZGF3MW9sb1NHOEhZY0UxNzF0TVIxanZHSFhFCkZYR01lUGFZaW9tbXhFZjg3UFB4 VjFuVW9nVFIzcVc5ZnpPQm1rRThPQ3d1RTNNCnhmUjc2RkxSNU81dXUwbWM3RGpM
dUhZNEduNUt3elFwSFRGYVF0Z3BZVWcKLS0tIC9oOUhER0JxWjg2OUhmTTI1ellE ZWZSNng0eDFoN0w0eDFia05mKzZqNGcKLS0tIGVIU2JMZXBIelFScWJGR2pCdWN4
NDN3c1J1dVcvY21uOUYrVFZMVXZXUTQK8GFPONewI3mzyG9Eh8PSjGVETsslyHiy akYvWXFVbXl6a0syY2FNdGhpSExKbGMKRzJDY2JPQoLG2MutoqQKzDfTT06QbsQz
ud/QT1fJFbjZzbKHu2RsFNYukLuoEodQ5t9ccGfWCpSfgddNXjGtHg== aukZRfGNouysaBvrXU7uasJ9KRvJQXjFRI/JRmkWicYR8oxXbkgSeQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
recipient: age1ynu6zhhy84rr5xqce0flp25x5tnfgskesxfe39u7ewsk900fvagq9sq0lx
- enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzb2laTm13VTRBeUpaS0VK
ZEUzL1g0M1A2ZzJudytPUnU2czNzbWdDMkhNCjVjOHBzcE8wQXdWZmt1eVl6VzBJ
bkhHMUczdG9sbCtMNVNUbDcraWovV2MKLS0tIEtuQ29rQk9PY0ZVTytMVGRGNGVt
dytEdkxoS3NtOFR0bHd0dmFUbEJ5b3cKju79g7jKN+m11YKHqTK+sNzXaw9j/gCI
EFS3/WCaFB4VI4olS0uzDsnsBzBywzgj/RTVwXYagzDkIqH2CAXRsw==
-----END AGE ENCRYPTED FILE-----
recipient: age1xfr76wj2hzz9mkxxce5qxgr2n72zsypatzhgl2fxgsh408wdzsaq39wt9z
lastmodified: "2026-03-07T16:01:24Z" lastmodified: "2026-03-07T16:01:24Z"
mac: ENC[AES256_GCM,data:Ni5qtsBcjKj9R2g78rdzd7+4tBL20SsU6aD5YZII/jaxjFxwFeVzfXuJruLnq3bEUiZShzOBVCc7gUi/6DaaluhXfltwwywu0QjJkPxfpGtQ7gmmiSDQAItwmj+9bJ/BFjx6ViBI/Vi1hnSRsS/gr1K0QkAzCT0JRehWi2HwnE4=,iv:rHWCfNa2hR6kB7lGB/VhPlB7MexgSFyWl5xyteQC3sk=,tag:6vBjVUIJLKDkJ7hjbkQXKw==,type:str] mac: ENC[AES256_GCM,data:Ni5qtsBcjKj9R2g78rdzd7+4tBL20SsU6aD5YZII/jaxjFxwFeVzfXuJruLnq3bEUiZShzOBVCc7gUi/6DaaluhXfltwwywu0QjJkPxfpGtQ7gmmiSDQAItwmj+9bJ/BFjx6ViBI/Vi1hnSRsS/gr1K0QkAzCT0JRehWi2HwnE4=,iv:rHWCfNa2hR6kB7lGB/VhPlB7MexgSFyWl5xyteQC3sk=,tag:6vBjVUIJLKDkJ7hjbkQXKw==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted