Compare commits

...

69 Commits

Author SHA1 Message Date
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
45 changed files with 1976 additions and 1323 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
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
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 KiB

+341
View File
@@ -0,0 +1,341 @@
// 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"
}
numlock
}
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;
}
layer-rule {
match namespace="^noctalia-overview*"
place-within-backdrop true
}
debug {
honor-xdg-activation-with-invalid-serial
}
spawn-at-startup "noctalia-shell"
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-shell" "ipc" "call" "lockScreen" "lock"; }
Mod+Space hotkey-overlay-title="Run application launcher" { spawn-sh "noctalia-shell ipc call launcher toggle"; }
XF86AudioRaiseVolume { spawn "noctalia-shell" "ipc" "call" "volume" "increase"; }
XF86AudioLowerVolume { spawn "noctalia-shell" "ipc" "call" "volume" "decrease"; }
XF86AudioMute { spawn "noctalia-shell" "ipc" "call" "volume" "muteOutput"; }
XF86AudioPause { spawn "noctalia-shell" "ipc" "call" "media" "pause"; }
XF86AudioPlay { spawn "noctalia-shell" "ipc" "call" "media" "playPause"; }
XF86AudioStop { spawn "noctalia-shell" "ipc" "call" "media" "stop"; }
XF86AudioPrev { spawn "noctalia-shell" "ipc" "call" "media" "previous"; }
XF86AudioNext { spawn "noctalia-shell" "ipc" "call" "media" "next"; }
XF86MonBrightnessUp { spawn "noctalia-shell" "ipc" "call" "brightness" "increase"; }
XF86MonBrightnessDown { spawn "noctalia-shell" "ipc" "call" "brightness" "decrease"; }
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; }
// Alternatively, there are commands to move just a single window:
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
// ...
// And you can also move a whole workspace to another monitor:
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
// ...
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; }
// Alternatively, there are commands to move just a single window:
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
// ...
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; }
// You can bind mouse wheel scroll ticks using the following syntax.
// These binds will change direction based on the natural-scroll setting.
//
// To avoid scrolling through workspaces really fast, you can use
// the cooldown-ms property. The bind will be rate-limited to this value.
// You can set a cooldown on any bind, but it's most useful for the wheel.
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; }
// Usually scrolling up and down with Shift in applications results in
// horizontal scrolling; these binds replicate that.
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: 242 KiB

+735
View File
@@ -0,0 +1,735 @@
{
"settingsVersion": 59,
"bar": {
"barType": "floating",
"position": "top",
"monitors": [],
"density": "default",
"showOutline": false,
"showCapsule": true,
"capsuleOpacity": 1,
"capsuleColorKey": "none",
"widgetSpacing": 6,
"contentPadding": 2,
"fontScale": 1,
"enableExclusionZoneInset": true,
"backgroundOpacity": 0.93,
"useSeparateOpacity": false,
"marginVertical": 4,
"marginHorizontal": 4,
"frameThickness": 8,
"frameRadius": 12,
"outerCorners": true,
"hideOnOverview": false,
"displayMode": "always_visible",
"autoHideDelay": 500,
"autoShowDelay": 150,
"showOnWorkspaceSwitch": true,
"widgets": {
"left": [
{
"colorizeSystemIcon": "none",
"colorizeSystemText": "none",
"customIconPath": "",
"enableColorization": false,
"icon": "rocket",
"iconColor": "none",
"id": "Launcher",
"useDistroLogo": false
},
{
"compactMode": true,
"diskPath": "/",
"iconColor": "error",
"id": "SystemMonitor",
"showCpuCores": false,
"showCpuFreq": false,
"showCpuTemp": true,
"showCpuUsage": true,
"showDiskAvailable": false,
"showDiskUsage": false,
"showDiskUsageAsPercent": false,
"showGpuTemp": false,
"showLoadAverage": false,
"showMemoryAsPercent": false,
"showMemoryUsage": true,
"showNetworkStats": false,
"showSwapUsage": false,
"textColor": "none",
"useMonospaceFont": true,
"usePadding": false
},
{
"characterCount": 2,
"colorizeIcons": false,
"emptyColor": "none",
"enableScrollWheel": true,
"focusedColor": "primary",
"followFocusedScreen": false,
"fontWeight": "bold",
"groupedBorderOpacity": 1,
"hideUnoccupied": false,
"iconScale": 0.8,
"id": "Workspace",
"labelMode": "index",
"occupiedColor": "error",
"pillSize": 0.6,
"showApplications": false,
"showApplicationsHover": false,
"showBadge": true,
"showLabelsOnlyWhenOccupied": true,
"unfocusedIconsOpacity": 1
},
{
"colorizeIcons": true,
"hideMode": "visible",
"id": "ActiveWindow",
"maxWidth": 250,
"scrollingMode": "hover",
"showIcon": true,
"showText": true,
"textColor": "none",
"useFixedWidth": false
},
{
"compactMode": false,
"hideMode": "hidden",
"hideWhenIdle": false,
"id": "MediaMini",
"maxWidth": 145,
"panelShowAlbumArt": true,
"scrollingMode": "hover",
"showAlbumArt": true,
"showArtistFirst": true,
"showProgressRing": true,
"showVisualizer": false,
"textColor": "none",
"useFixedWidth": false,
"visualizerType": "linear"
}
],
"center": [
{
"clockColor": "none",
"customFont": "",
"formatHorizontal": "HH:mm ddd, MMM dd",
"formatVertical": "HH mm - dd MM",
"id": "Clock",
"tooltipFormat": "HH:mm ddd, MMM dd",
"useCustomFont": false
}
],
"right": [
{
"blacklist": [],
"chevronColor": "none",
"colorizeIcons": true,
"drawerEnabled": false,
"hidePassive": true,
"id": "Tray",
"pinned": []
},
{
"displayMode": "forceOpen",
"iconColor": "none",
"id": "KeyboardLayout",
"showIcon": true,
"textColor": "none"
},
{
"hideWhenZero": false,
"hideWhenZeroUnread": false,
"iconColor": "none",
"id": "NotificationHistory",
"showUnreadBadge": true,
"unreadBadgeColor": "primary"
},
{
"deviceNativePath": "__default__",
"displayMode": "graphic",
"hideIfIdle": false,
"hideIfNotDetected": true,
"id": "Battery",
"showNoctaliaPerformance": false,
"showPowerProfiles": false
},
{
"displayMode": "onhover",
"iconColor": "none",
"id": "Volume",
"middleClickCommand": "pwvucontrol || pavucontrol",
"textColor": "none"
},
{
"applyToAllMonitors": false,
"displayMode": "onhover",
"iconColor": "none",
"id": "Brightness",
"textColor": "none"
},
{
"displayMode": "alwaysHide",
"iconColor": "none",
"id": "VPN",
"textColor": "none"
},
{
"defaultSettings": {
"compactMode": false,
"defaultDuration": 0,
"iconColor": "none",
"textColor": "none"
},
"id": "plugin:timer"
},
{
"colorizeDistroLogo": false,
"colorizeSystemIcon": "error",
"colorizeSystemText": "none",
"customIconPath": "",
"enableColorization": true,
"icon": "noctalia",
"id": "ControlCenter",
"useDistroLogo": true
}
]
},
"mouseWheelAction": "none",
"reverseScroll": false,
"mouseWheelWrap": true,
"middleClickAction": "none",
"middleClickFollowMouse": false,
"middleClickCommand": "",
"rightClickAction": "controlCenter",
"rightClickFollowMouse": true,
"rightClickCommand": "",
"screenOverrides": []
},
"general": {
"avatarImage": "/home/r3ddy/.face",
"dimmerOpacity": 0.2,
"showScreenCorners": false,
"forceBlackScreenCorners": false,
"scaleRatio": 1,
"radiusRatio": 1,
"iRadiusRatio": 1,
"boxRadiusRatio": 1,
"screenRadiusRatio": 1,
"animationSpeed": 1,
"animationDisabled": false,
"compactLockScreen": false,
"lockScreenAnimations": false,
"lockOnSuspend": true,
"showSessionButtonsOnLockScreen": true,
"showHibernateOnLockScreen": false,
"enableLockScreenMediaControls": false,
"enableShadows": true,
"enableBlurBehind": true,
"shadowDirection": "bottom_right",
"shadowOffsetX": 2,
"shadowOffsetY": 3,
"language": "",
"allowPanelsOnScreenWithoutBar": true,
"showChangelogOnStartup": true,
"telemetryEnabled": true,
"enableLockScreenCountdown": true,
"lockScreenCountdownDuration": 10000,
"autoStartAuth": false,
"allowPasswordWithFprintd": false,
"clockStyle": "custom",
"clockFormat": "hh\\nmm",
"passwordChars": false,
"lockScreenMonitors": [],
"lockScreenBlur": 0,
"lockScreenTint": 0,
"keybinds": {
"keyUp": [
"Up"
],
"keyDown": [
"Down"
],
"keyLeft": [
"Left"
],
"keyRight": [
"Right"
],
"keyEnter": [
"Return",
"Enter"
],
"keyEscape": [
"Esc"
],
"keyRemove": [
"Del"
]
},
"reverseScroll": false,
"smoothScrollEnabled": true
},
"ui": {
"fontDefault": "Sans Serif",
"fontFixed": "JetBrainsMono Nerd Font",
"fontDefaultScale": 1,
"fontFixedScale": 1,
"tooltipsEnabled": true,
"scrollbarAlwaysVisible": true,
"boxBorderEnabled": false,
"panelBackgroundOpacity": 0.93,
"translucentWidgets": false,
"panelsAttachedToBar": true,
"settingsPanelMode": "attached",
"settingsPanelSideBarCardStyle": false
},
"location": {
"name": "Bolzano",
"weatherEnabled": true,
"weatherShowEffects": true,
"weatherTaliaMascotAlways": false,
"useFahrenheit": false,
"use12hourFormat": false,
"showWeekNumberInCalendar": false,
"showCalendarEvents": true,
"showCalendarWeather": true,
"analogClockInCalendar": false,
"firstDayOfWeek": -1,
"hideWeatherTimezone": false,
"hideWeatherCityName": false,
"autoLocate": false
},
"calendar": {
"cards": [
{
"enabled": true,
"id": "calendar-header-card"
},
{
"enabled": true,
"id": "calendar-month-card"
},
{
"enabled": true,
"id": "weather-card"
}
]
},
"wallpaper": {
"enabled": true,
"overviewEnabled": true,
"directory": "/home/r3ddy/Pictures/Wallpapers",
"monitorDirectories": [],
"enableMultiMonitorDirectories": false,
"showHiddenFiles": false,
"viewMode": "single",
"setWallpaperOnAllMonitors": true,
"linkLightAndDarkWallpapers": true,
"fillMode": "crop",
"fillColor": "#000000",
"useSolidColor": false,
"solidColor": "#1a1a2e",
"automationEnabled": false,
"wallpaperChangeMode": "random",
"randomIntervalSec": 300,
"transitionDuration": 1500,
"transitionType": [
"fade",
"disc",
"stripes",
"wipe",
"pixelate",
"honeycomb"
],
"skipStartupTransition": false,
"transitionEdgeSmoothness": 0.05,
"panelPosition": "follow_bar",
"hideWallpaperFilenames": false,
"useOriginalImages": true,
"overviewBlur": 0.4,
"overviewTint": 0.6,
"useWallhaven": false,
"wallhavenQuery": "",
"wallhavenSorting": "relevance",
"wallhavenOrder": "desc",
"wallhavenCategories": "111",
"wallhavenPurity": "100",
"wallhavenRatios": "",
"wallhavenApiKey": "",
"wallhavenResolutionMode": "atleast",
"wallhavenResolutionWidth": "",
"wallhavenResolutionHeight": "",
"sortOrder": "name",
"favorites": []
},
"appLauncher": {
"enableClipboardHistory": false,
"autoPasteClipboard": false,
"enableClipPreview": true,
"clipboardWrapText": true,
"enableClipboardSmartIcons": true,
"enableClipboardChips": true,
"clipboardWatchTextCommand": "wl-paste --type text --watch cliphist store",
"clipboardWatchImageCommand": "wl-paste --type image --watch cliphist store",
"position": "center",
"pinnedApps": [],
"sortByMostUsed": true,
"terminalCommand": "kitty -e",
"customLaunchPrefixEnabled": false,
"customLaunchPrefix": "",
"viewMode": "list",
"showCategories": true,
"iconMode": "tabler",
"showIconBackground": false,
"enableSettingsSearch": true,
"enableWindowsSearch": true,
"enableSessionSearch": true,
"ignoreMouseInput": false,
"screenshotAnnotationTool": "",
"overviewLayer": false,
"density": "default"
},
"controlCenter": {
"position": "close_to_bar_button",
"diskPath": "/",
"shortcuts": {
"left": [
{
"id": "Network"
},
{
"id": "Bluetooth"
},
{
"id": "WallpaperSelector"
},
{
"id": "NoctaliaPerformance"
}
],
"right": [
{
"id": "Notifications"
},
{
"id": "PowerProfile"
},
{
"id": "KeepAwake"
},
{
"id": "NightLight"
}
]
},
"cards": [
{
"enabled": true,
"id": "profile-card"
},
{
"enabled": true,
"id": "shortcuts-card"
},
{
"enabled": true,
"id": "audio-card"
},
{
"enabled": true,
"id": "brightness-card"
},
{
"enabled": true,
"id": "weather-card"
},
{
"enabled": true,
"id": "media-sysmon-card"
}
]
},
"systemMonitor": {
"cpuWarningThreshold": 80,
"cpuCriticalThreshold": 90,
"tempWarningThreshold": 80,
"tempCriticalThreshold": 90,
"gpuWarningThreshold": 80,
"gpuCriticalThreshold": 90,
"memWarningThreshold": 80,
"memCriticalThreshold": 90,
"swapWarningThreshold": 80,
"swapCriticalThreshold": 90,
"diskWarningThreshold": 80,
"diskCriticalThreshold": 90,
"diskAvailWarningThreshold": 20,
"diskAvailCriticalThreshold": 10,
"batteryWarningThreshold": 20,
"batteryCriticalThreshold": 5,
"enableDgpuMonitoring": false,
"useCustomColors": false,
"warningColor": "",
"criticalColor": "",
"externalMonitor": "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor"
},
"noctaliaPerformance": {
"disableWallpaper": true,
"disableDesktopWidgets": true
},
"dock": {
"enabled": true,
"position": "bottom",
"displayMode": "auto_hide",
"dockType": "floating",
"backgroundOpacity": 1,
"floatingRatio": 1,
"size": 1,
"onlySameOutput": true,
"monitors": [],
"pinnedApps": [],
"colorizeIcons": false,
"showLauncherIcon": false,
"launcherPosition": "end",
"launcherUseDistroLogo": false,
"launcherIcon": "",
"launcherIconColor": "none",
"pinnedStatic": false,
"inactiveIndicators": false,
"groupApps": false,
"groupContextMenuMode": "extended",
"groupClickAction": "cycle",
"groupIndicatorStyle": "dots",
"deadOpacity": 0.6,
"animationSpeed": 1,
"sitOnFrame": false,
"showDockIndicator": false,
"indicatorThickness": 3,
"indicatorColor": "primary",
"indicatorOpacity": 0.6
},
"network": {
"bluetoothRssiPollingEnabled": false,
"bluetoothRssiPollIntervalMs": 60000,
"networkPanelView": "wifi",
"wifiDetailsViewMode": "grid",
"bluetoothDetailsViewMode": "grid",
"bluetoothHideUnnamedDevices": false,
"disableDiscoverability": false,
"bluetoothAutoConnect": true
},
"sessionMenu": {
"enableCountdown": true,
"countdownDuration": 10000,
"position": "center",
"showHeader": true,
"showKeybinds": true,
"largeButtonsStyle": true,
"largeButtonsLayout": "single-row",
"powerOptions": [
{
"action": "lock",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "1"
},
{
"action": "suspend",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "2"
},
{
"action": "hibernate",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "3"
},
{
"action": "reboot",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "4"
},
{
"action": "logout",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "5"
},
{
"action": "shutdown",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "6"
},
{
"action": "rebootToUefi",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "7"
},
{
"action": "userspaceReboot",
"command": "",
"countdownEnabled": true,
"enabled": false,
"keybind": ""
}
]
},
"notifications": {
"enabled": true,
"enableMarkdown": false,
"density": "default",
"monitors": [],
"location": "top_right",
"overlayLayer": true,
"backgroundOpacity": 1,
"respectExpireTimeout": false,
"lowUrgencyDuration": 3,
"normalUrgencyDuration": 8,
"criticalUrgencyDuration": 15,
"clearDismissed": true,
"saveToHistory": {
"low": true,
"normal": true,
"critical": true
},
"sounds": {
"enabled": false,
"volume": 0.5,
"separateSounds": false,
"criticalSoundFile": "",
"normalSoundFile": "",
"lowSoundFile": "",
"excludedApps": "discord,firefox,chrome,chromium,edge"
},
"enableMediaToast": false,
"enableKeyboardLayoutToast": true,
"enableBatteryToast": true
},
"osd": {
"enabled": true,
"location": "top_right",
"autoHideMs": 2000,
"overlayLayer": true,
"backgroundOpacity": 1,
"enabledTypes": [
0,
1,
2
],
"monitors": []
},
"audio": {
"volumeStep": 5,
"volumeOverdrive": false,
"spectrumFrameRate": 30,
"visualizerType": "linear",
"spectrumMirrored": true,
"mprisBlacklist": [],
"preferredPlayer": "mpv",
"volumeFeedback": true,
"volumeFeedbackSoundFile": ""
},
"brightness": {
"brightnessStep": 5,
"enforceMinimum": true,
"enableDdcSupport": false,
"backlightDeviceMappings": []
},
"colorSchemes": {
"useWallpaperColors": false,
"predefinedScheme": "Catppuccin",
"darkMode": true,
"schedulingMode": "off",
"manualSunrise": "06:30",
"manualSunset": "18:30",
"generationMethod": "tonal-spot",
"monitorForColors": "",
"syncGsettings": true
},
"templates": {
"activeTemplates": [
{
"enabled": true,
"id": "niri"
},
{
"enabled": true,
"id": "steam"
},
{
"enabled": true,
"id": "gtk"
},
{
"enabled": true,
"id": "discord"
}
],
"enableUserTheming": false
},
"nightLight": {
"enabled": false,
"forced": false,
"autoSchedule": true,
"nightTemp": "4000",
"dayTemp": "6500",
"manualSunrise": "06:30",
"manualSunset": "18:30"
},
"hooks": {
"enabled": false,
"wallpaperChange": "",
"darkModeChange": "",
"screenLock": "",
"screenUnlock": "",
"performanceModeEnabled": "",
"performanceModeDisabled": "",
"startup": "",
"session": "",
"colorGeneration": ""
},
"plugins": {
"autoUpdate": false,
"notifyUpdates": true
},
"idle": {
"enabled": false,
"screenOffTimeout": 600,
"lockTimeout": 660,
"suspendTimeout": 1800,
"fadeDuration": 5,
"screenOffCommand": "",
"lockCommand": "",
"suspendCommand": "",
"resumeScreenOffCommand": "",
"resumeLockCommand": "",
"resumeSuspendCommand": "",
"customCommands": "[]"
},
"desktopWidgets": {
"enabled": true,
"overviewEnabled": true,
"gridSnap": false,
"gridSnapScale": false,
"monitorWidgets": [
{
"name": "eDP-1",
"widgets": []
},
{
"name": "HDMI-A-1",
"widgets": []
}
]
}
}
Generated
+247 -458
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": 1774211390, "lastModified": 1779085181,
"narHash": "sha256-sTtAgCCaX8VNNZlQFACd3i1IQ+DB0Wf3COgiFS152ds=", "narHash": "sha256-ZdiBlGOkI9tS3ggyNlJ5gU4qCkvGWLT3sbrnHEemN2o=",
"owner": "hyprwm", "owner": "CachyOS",
"repo": "aquamarine", "repo": "linux-cachyos",
"rev": "f62a4dbfa4e5584f14ad4c62afedf6e4b433cf70", "rev": "391e1e35d62d30dccd14ec3af01d58e5310b7d80",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "CachyOS",
"repo": "aquamarine", "repo": "linux-cachyos",
"type": "github"
}
},
"cachyos-kernel-patches": {
"flake": false,
"locked": {
"lastModified": 1779191960,
"narHash": "sha256-QqEC7SVMVf1vj9OoflWzP+nGewMrUNSBSf1dB8sUbqY=",
"owner": "CachyOS",
"repo": "kernel-patches",
"rev": "65cbbfc17bb7e172cb06ef69037be5b0d517b2cd",
"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": 1775457580, "lastModified": 1779507042,
"narHash": "sha256-ikws/ssAmG20AGrEwBuwspwPlkubJu34mB+Uz2fJBJs=", "narHash": "sha256-7wOwi8B6D0BYsieZCnHZZj2sNUzgJhLoIVSfkwB7lxQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "5de7dbd151b0bd65d45785553d4a22d832733ffc", "rev": "509ed3c603349a9d43de9e2ae6613baea6bd5b34",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -131,364 +126,152 @@
"type": "github" "type": "github"
} }
}, },
"hyprcursor": { "mkdocs-catppuccin": {
"inputs": { "flake": false,
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": { "locked": {
"lastModified": 1772461003, "lastModified": 1767028711,
"narHash": "sha256-pVICsV7FtcEeVwg5y/LFh3XFUkVJninm/P1j/JHzEbM=", "narHash": "sha256-YVIZAtQT2B4Xs2sBaszvyyukm+1klCJdRpsc/BYV1gw=",
"owner": "hyprwm", "owner": "ruslanlap",
"repo": "hyprcursor", "repo": "mkdocs-catppuccin",
"rev": "b62396457b9cfe2ebf24fe05404b09d2a40f8ed7", "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": 1772461523, "lastModified": 1779477384,
"narHash": "sha256-mI6A51do+hEUzeJKk9YSWfVHdI/SEEIBi2tp5Whq5mI=", "narHash": "sha256-lByanSWg/pKyDJ2pMuphIxMuCMy7qpYG2/gGjp//UFk=",
"owner": "hyprwm", "owner": "xddxdd",
"repo": "hyprgraphics", "repo": "nix-cachyos-kernel",
"rev": "7d63c04b4a2dd5e59ef943b4b143f46e713df804", "rev": "86d7051a5694db99f4db6165bcaf15e7bba8672a",
"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": 1775416789,
"narHash": "sha256-0IELkB6YXCZGqZqLdmOcTw8mki6NNhDmG47y7Qynuj8=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "aaa2fc342f002bf4acd965f1ad2ead3796347e35",
"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": 1772467975, "lastModified": 1779483163,
"narHash": "sha256-kipyuDBxrZq+beYpZqWzGvFWm4QbayW9agAvi94vDXY=", "narHash": "sha256-rlTpDEuu9RjUus7Vl1jfREXj8jDfDjzatczPhKY2mZk=",
"owner": "hyprwm", "owner": "kiriwalawren",
"repo": "hyprland-guiutils", "repo": "nixflix",
"rev": "5e1c6b9025aaf4d578f3eff7c0eb1f0c197a9507", "rev": "119e778540c94d3f035979af1ffdaa163b47c8ec",
"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": 1772460177,
"narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1772459629,
"narHash": "sha256-/iwvNUYShmmnwmz/czEUh6+0eF5vCMv0xtDW0STPIuM=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "7615ee388de18239a4ab1400946f3d0e498a8186",
"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": 1772462885,
"narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "9af245a69fa6b286b88ddfc340afd288e00a6998",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprtoolkit",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1774211405,
"narHash": "sha256-6KNwP4ojUzv3YBlZU5BqCpTrWHcix1Jo01BISsTT0xk=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "cb4e152dc72095a2af422956c6b689590572231a",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1772459835,
"narHash": "sha256-978jRz/y/9TKmZb/qD4lEYHCQGHpEXGqy+8X2lFZsak=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "0a692d4a645165eebd65f109146b8861e3a925e7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"hyprwire": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1773074819,
"narHash": "sha256-qRqYnXiKoJLRTcfaRukn7EifmST2IVBUMZOeZMAc5UA=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "f68afd0e73687598cc2774804fedad76693046f0",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwire",
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1774106199, "lastModified": 1779436535,
"narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=", "narHash": "sha256-jJ8YPw+bnLy1c8oI0hO4NKvbCQOt9V1aSUzhpLPs3Cw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655", "rev": "d04de155b837ea2ba199ec83851b9dbffe57af08",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-unstable-small",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-25-11": {
"locked": {
"lastModified": 1779102034,
"narHash": "sha256-vZJZjLo513IeI8hjzHFc6TDezUd4uCE2Eq4SNO3DNNg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "687f05a9184cad4eaf905c48b63649e3a86f5433",
"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_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1775403759, "lastModified": 1779357205,
"narHash": "sha256-cGyKiTspHEUx3QwAnV3RfyT+VOXhHLs+NEr17HU34Wo=", "narHash": "sha256-cCO8aTqss5x9Ky8GWkpY0Hy5fyTZEbtifSUV8QjSzic=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5e11f7acce6c3469bef9df154d78534fa7ae8b6c", "rev": "f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1",
"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 +281,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": 1775496315, "lastModified": 1779534872,
"narHash": "sha256-OXJQ+w2HaASZ0e+ANAXB5I9s1zstG3UCk4YIM+SVxzs=", "narHash": "sha256-5bzlMvP/1vTZljeNNr7uqNnlcatX9yBUuq4aAzIrsnc=",
"owner": "Superredstone", "owner": "Superredstone",
"repo": "nixvim", "repo": "nixvim",
"rev": "3296385ac42ec582ce109a5b35f97a9c37a9c163", "rev": "3ff6d04d297aafb25bdd1e520e8f6857408b4090",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -536,16 +303,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": 1775307257, "lastModified": 1778906310,
"narHash": "sha256-y9hEecHH4ennFwIcw1n480YCGh73DkEmizmQnyXuvgg=", "narHash": "sha256-LqASEJRtLuKRBJd9051T1KMAEaYvsVrc6m64jhD6xbw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "2e008bb941f72379d5b935d5bfe70ed8b7c793ff", "rev": "06cace835d7ee727852ac789e3dcd42fc2fd360e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -554,37 +321,60 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": { "noctalia": {
"inputs": { "inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
"hyprland",
"nixpkgs" "nixpkgs"
] ],
"noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1774104215, "lastModified": 1779504029,
"narHash": "sha256-EAtviqz0sEAxdHS4crqu7JGR5oI3BwaqG0mw7CmXkO8=", "narHash": "sha256-f8u9DV9Qk8KJh7DVvk4UgUFTN0NDJeFxgrffTSwPkpA=",
"owner": "cachix", "owner": "noctalia-dev",
"repo": "git-hooks.nix", "repo": "noctalia-shell",
"rev": "f799ae951fde0627157f40aec28dec27b22076d0", "rev": "b99b7a7f06ff749df9ac43181ff7889ff90c5599",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "cachix", "owner": "noctalia-dev",
"repo": "git-hooks.nix", "repo": "noctalia-shell",
"type": "github"
}
},
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"noctalia",
"nixpkgs"
],
"systems": "systems_3",
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1778983195,
"narHash": "sha256-hE3EFK5GoSdbO5WHZ8bZDUVYkofbDLQN/KK25z7IOOI=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "4116b41cdc89e186be7cb8b24a9b6022af95d742",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"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",
"nixvim": "nixvim", "nixvim": "nixvim",
"sops-nix": "sops-nix", "noctalia": "noctalia",
"spotiflac-cli": "spotiflac-cli" "sops-nix": "sops-nix"
} }
}, },
"sops-nix": { "sops-nix": {
@@ -594,11 +384,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775365543, "lastModified": 1777944972,
"narHash": "sha256-f50qrK0WwZ9z5EdaMGWOTtALgSF7yb7XwuE7LjCuDmw=", "narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "a4ee2de76efb759fe8d4868c33dec9937897916f", "rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -607,36 +397,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"
} }
}, },
@@ -657,57 +429,74 @@
}, },
"systems_3": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1689347949,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"type": "github" "type": "github"
} }
}, },
"xdph": { "treefmt-nix": {
"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": 1773601989, "lastModified": 1775636079,
"narHash": "sha256-2tJf/CQoHApoIudxHeJye+0Ii7scR0Yyi7pNiWk0Hn8=", "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "hyprwm", "owner": "numtide",
"repo": "xdg-desktop-portal-hyprland", "repo": "treefmt-nix",
"rev": "a9b862d1aa000a676d310cc62d249f7ad726233d", "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "numtide",
"repo": "xdg-desktop-portal-hyprland", "repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"noctalia",
"noctalia-qs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775636079,
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github"
},
"original": {
"owner": "numtide",
"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"
} }
} }
+24 -8
View File
@@ -1,33 +1,45 @@
{ {
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";
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";
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,
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 +47,11 @@
inherit inherit
overlays overlays
nixvim nixvim
spotiflac-cli
sops-nix sops-nix
noctalia
inputs inputs
nixpkgs nixpkgs
nixpkgs-25-11
home-manager home-manager
; ;
}; };
@@ -49,8 +62,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 +82,9 @@
user = username; user = username;
desktopEnvironment = "none"; desktopEnvironment = "none";
enableZram = true; enableZram = true;
additionalModules = [
nixflix.nixosModules.default
];
}; };
}; };
} }
+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";
};
}
+4 -3
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
+5
View File
@@ -7,7 +7,10 @@
# fish_config theme choose Catppuccin\ Mocha # fish_config theme choose Catppuccin\ Mocha
function fish_greeting function fish_greeting
# Check if not inside of a distrobox
if not test -n "$CONTAINER_ID"
krabby random --no-title --padding-left 2 krabby random --no-title --padding-left 2
end
end end
function weather function weather
@@ -17,6 +20,8 @@
function dev function dev
nix develop --command "fish" nix develop --command "fish"
end end
alias ssh "kitten ssh"
''; '';
plugins = with pkgs.fishPlugins; [ plugins = with pkgs.fishPlugins; [
{ {
-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-shell = {
enable = true;
settings = ../assets/noctalia.json;
};
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
;
}
+5 -10
View File
@@ -2,10 +2,11 @@
{ {
overlays, overlays,
nixvim, nixvim,
spotiflac-cli,
sops-nix, sops-nix,
noctalia,
inputs, inputs,
nixpkgs, nixpkgs,
nixpkgs-25-11,
home-manager, home-manager,
}: }:
name: name:
@@ -25,23 +26,17 @@ 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};
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 {
+18 -16
View File
@@ -1,23 +1,25 @@
{ config, ... }: { ... }:
{
sops =
let
default = {
sopsFile = ../../secrets/bomba.sops.yaml;
};
in
{ {
sops = {
secrets = { secrets = {
nextcloud_password = { nextcloud_password = default // {
owner = "nextcloud"; owner = "nextcloud";
sopsFile = ../../secrets/bomba.sops.yaml;
}; };
ntfy_users = { nixflix_password = default;
# owner = "ntfy-sh"; jellyfin_api_key = default;
sopsFile = ../../secrets/bomba.sops.yaml; 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;
}; };
ntfy_access = {
# owner = "ntfy-sh";
sopsFile = ../../secrets/bomba.sops.yaml;
};
};
templates."ntfy.env".content = ''
NTFY_AUTH_USERS='${config.sops.placeholder.ntfy_users}'
NTFY_AUTH_ACCESS='${config.sops.placeholder.ntfy_access}'
'';
}; };
} }
+44
View File
@@ -0,0 +1,44 @@
{ config, ... }:
{
services.caddy = {
enable = true;
virtualHosts = {
"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}
'';
};
};
}
+4 -7
View File
@@ -1,18 +1,15 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
# ./nginx.nix ./caddy.nix
./gitea.nix ./gitea.nix
./nextcloud.nix ./nextcloud.nix
./ntfy.nix ./nixflix.nix
./maddy.nix
./octoprint.nix ./octoprint.nix
./teamspeak.nix
./vaultwarden.nix ./vaultwarden.nix
./vikunja.nix
]; ];
services.teamspeak3 = {
enable = true;
openFirewall = true;
};
services.openssh.enable = true; services.openssh.enable = true;
} }
-41
View File
@@ -1,41 +0,0 @@
{
pkgs,
config,
options,
currentSystemEmail,
...
}:
{
services.maddy = {
enable = true;
primaryDomain = "patrickcanal.it";
ensureAccounts = [
"postmaster@patrickcanal.it"
"test@patrickcanal.it"
];
ensureCredentials = {
"postmaster@patrickcanal.it".passwordFile = "${pkgs.writeText "postmaster" "test"}";
"test@patrickcanal.it".passwordFile = "${pkgs.writeText "test" "test"}";
};
tls = {
loader = "file";
certificates = [
{
keyPath = "/etc/ssl/certs/privkey.pem";
certPath = "/etc/ssl/certs/fullchain.pem";
}
];
};
config =
builtins.replaceStrings
[
"imap tcp://0.0.0.0:143"
"submission tcp://0.0.0.0:587"
]
[
"imap tls://0.0.0.0:993 tcp://0.0.0.0:143"
"submission tls://0.0.0.0:465 tcp://0.0.0.0:587"
]
options.services.maddy.config.default;
};
}
+2 -4
View File
@@ -20,18 +20,16 @@
default_phone_region = "IT"; default_phone_region = "IT";
overwriteprotocol = "https"; overwriteprotocol = "https";
mail_domain = "patrickcanal.it"; mail_domain = "patrickcanal.it";
mail_from_address = "nextcloud";
mail_smtphost = "127.0.0.1";
mail_smtpport = 25;
log_type = "file"; log_type = "file";
trusted_domains = [ trusted_domains = [
"nextcloud.patrickcanal.it" "nextcloud.patrickcanal.it"
]; ];
}; };
}; };
# Required to change nextcloud port
nginx.virtualHosts."${config.services.nextcloud.hostName}".listen = [ nginx.virtualHosts."${config.services.nextcloud.hostName}".listen = [
{ {
addr = "172.18.0.1"; addr = "127.0.0.1";
port = 8004; 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"
];
};
};
};
};
}
-16
View File
@@ -1,16 +0,0 @@
{ config, ... }:
{
# services.ntfy-sh = {
# enable = false;
# environmentFile = config.sops.templates."ntfy.env".path;
# settings = {
# listen-http = ":8005";
# base-url = "https://ntfy.patrickcanal.it";
# smtp-server-listen = ":25";
# smtp-server-domain = "patrickcanal.it";
# behind-proxy = true;
# enable-login = true;
# require-login = true;
# };
# };
}
+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";
};
}
+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 -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
];
}
-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.
+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
+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;
}; };
+50 -61
View File
@@ -1,5 +1,7 @@
{ {
pkgs, pkgs,
# pkgs-25-11,
lib,
gamingSystem, gamingSystem,
workSystem, workSystem,
currentSystemDe, currentSystemDe,
@@ -12,19 +14,23 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
environment.systemPackages = environment.systemPackages = with pkgs;
with pkgs; let
[ hostSystem = pkgs.stdenv.hostPlatform.system;
basePackages = [
# CLI utils # CLI utils
appimage-run appimage-run
bat bat
bintools
btop btop
bun bun
busybox busybox
dig
distrobox distrobox
docker docker
dua dua
fd fd
file
fish fish
fzf fzf
gh gh
@@ -37,6 +43,7 @@
killall killall
krabby krabby
lazygit lazygit
nixpkgs-review
nmap nmap
nodejs nodejs
openssl openssl
@@ -44,11 +51,13 @@
pinentry-tty pinentry-tty
python3 python3
ripgrep ripgrep
rsync
sops sops
tree tree
unzip unzip
wget wget
wl-clipboard wl-clipboard
xwayland-satellite
zip zip
zoxide zoxide
zulu zulu
@@ -58,93 +67,73 @@
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") [
]
++ (
if currentSystemDe != "none" then
[
# Video card
vulkan-tools
# GUI applications
baobab baobab
bazaar bazaar
blackbox-terminal blackbox-terminal
discord discord
firefox firefox
gapless gapless
gnome-boxes gimp
mpv mpv
nautilus
nextcloud-client nextcloud-client
obs-studio obs-studio
ollama
onlyoffice-desktopeditors
piper piper
qbittorrent
seahorse seahorse
telegram-desktop telegram-desktop
thunderbird thunderbird
] vlc
else vulkan-tools
[ ] ];
)
++ ( gamingPackages = lib.optionals gamingSystem [
if gamingSystem then arrpc
[
cura-appimage cura-appimage
heroic heroic
mangohud obs-studio
openrgb openrgb
prismlauncher prismlauncher
protonplus protonplus
satisfactorymodmanager satisfactorymodmanager
];
# Required for Discord RPC workPackages = lib.optionals workSystem [
arrpc
]
else
[ ]
)
++ (
if workSystem then
[
android-studio android-studio
ansible ansible
virt-manager virt-manager
] ];
else
[ ] plasmaPackages = lib.optionals (currentSystemDe == "plasma") [
)
++ (
if currentSystemDe == "plasma" then
[
kdePackages.wallpaper-engine-plugin kdePackages.wallpaper-engine-plugin
] ];
else
[ ] gnomePackages = lib.optionals (currentSystemDe == "gnome") [
)
++ (
if currentSystemDe == "hyprland" then
[
# Hyprland
brightnessctl
hyprpaper
pamixer
pavucontrol
kdePackages.dolphin
]
else
[ ]
)
++ (
if currentSystemDe == "gnome" then
[
gnome-tweaks gnome-tweaks
gnomeExtensions.appindicator gnomeExtensions.appindicator
gnomeExtensions.caffeine gnomeExtensions.caffeine
gnomeExtensions.dash-to-dock gnomeExtensions.dash-to-dock
gnomeExtensions.wallpaper-slideshow gnomeExtensions.wallpaper-slideshow
] ];
else
[ ] niriPackages = lib.optionals (currentSystemDe == "niri") [
); gnome-keyring
loupe
inputs.noctalia.packages.${hostSystem}.default
];
in
basePackages
++ guiPackages
++ gamingPackages
++ workPackages
++ plasmaPackages
++ gnomePackages
++ niriPackages;
} }
+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
];
}
+14 -7
View File
@@ -1,10 +1,16 @@
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]
ntfy_users: ENC[AES256_GCM,data:jFN6axA2cyszWRWRcLMe0KRmLeqM8rPho7/k0tOZGajJ33CO7uAul9tQ9LjEl59lhgrX13fnH5ofBOoRZAC/Ck1wS/PcSbSO,iv:TlelbuZkIo8iI5njBEQQLK8FClbpDo/bFraLwoQ0Kkk=,tag:M9Uh5SHs77ONsnPIqZuO2g==,type:str] nixflix_password: ENC[AES256_GCM,data:g8S6Z925bLWDFjFKL3TqDQ==,iv:sFg8bCBL71yVUUJ7ibD/IH2O47gsxbH8Zrgu67lH3+A=,tag:J3Y8KQw8bSYzBrOCN23q2w==,type:str]
ntfy_access: ENC[AES256_GCM,data:7bcKYCS8,iv:Wwm1g/+0SzgAYh2tjKvJQEL2RJDG2tKqI4OjNeJjvio=,tag:nJ304eakWx0Kvo8I8bXPJQ==,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]
sops: sops:
age: age:
- recipient: age1ynu6zhhy84rr5xqce0flp25x5tnfgskesxfe39u7ewsk900fvagq9sq0lx - enc: |
enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsOC9xeExzN2VzT2NmZS9I YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsOC9xeExzN2VzT2NmZS9I
TEVxamNYOWZDWUJvYnpjL2JpMHJRbTlOV1Y4CmFGaXhEd0pRWU1tRTBMdDVPU2Fr TEVxamNYOWZDWUJvYnpjL2JpMHJRbTlOV1Y4CmFGaXhEd0pRWU1tRTBMdDVPU2Fr
@@ -12,7 +18,8 @@ sops:
YjVvSDV1TGExYUJGUk00MTF4bXNFVTQKG/GueSmnuA23L42X6AvAWZgBbJuCGLw1 YjVvSDV1TGExYUJGUk00MTF4bXNFVTQKG/GueSmnuA23L42X6AvAWZgBbJuCGLw1
ZQ17gIIOjhKHlGx8Lo5t/PekzFyQKCKdijS7caq74dVib1vO3tk+uQ== ZQ17gIIOjhKHlGx8Lo5t/PekzFyQKCKdijS7caq74dVib1vO3tk+uQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2026-03-14T07:23:58Z" recipient: age1ynu6zhhy84rr5xqce0flp25x5tnfgskesxfe39u7ewsk900fvagq9sq0lx
mac: ENC[AES256_GCM,data:nCPTfEu1wGfUtnJzMQISmrd5DHSffMacwgVYurFE1sWzhDue2fXssUCTbqf/bnzak5kB2TFkpZGH+SywC8BrCh+pRyG+Ey2HMHDCkM8eXrfyFxzV8k3V0pa9Ek+Rs63vaX1lRFBFh4iQtdLThjs/mnw3nla/B8wO/ArZ3NhF95k=,iv:8160XN5N36HwgjDUWulvS6tBk80svOt7DtXNqNNv5zU=,tag:1nrrxUjKTV0pPUr8S6e9+g==,type:str] lastmodified: "2026-05-24T10:44:51Z"
mac: ENC[AES256_GCM,data:vKUOBMV/FHyWdfJhsGpFmyhyFIM9RjhucfHRCE+jT2orlWDyu215qSfiWlhHLtLSqdh7IIrv2QFDUDhz0JNa0nHe5aoePyg6dsuLeDLvBTlmidSpDITsCcp+yYWtUx1TegmOXXs4GV2mvOboIFo+Ks7mCVy7WOVzoVubhZmHTzo=,iv:FoQbhWk+JZTohbd2CaYLVVcIp792GCH/TtQE7jGQ9+o=,tag:jJrC5nFZODIr856rb+CEiQ==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.12.1 version: 3.13.1