Merge branch 'master' of github.com:/kropatz/nix-config

This commit is contained in:
Kopatz
2026-02-26 12:26:50 +01:00
29 changed files with 451 additions and 102 deletions

View File

@@ -3,7 +3,6 @@
set $mod Mod4 set $mod Mod4
set $LeftMonitor HDMI-A-0 set $LeftMonitor HDMI-A-0
set $RightMonitor DisplayPort-0 set $RightMonitor DisplayPort-0
# Font for window titles. Will also be used by the bar unless a different font # Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. # is used in the bar {} block below.
font pango:monospace 8 font pango:monospace 8
@@ -70,6 +69,7 @@ bindsym $mod+period exec --no-startup-id rofimoji
# -config ~/.config/rofi/rofidmenu.rasi # -config ~/.config/rofi/rofidmenu.rasi
set $warpmouse exec eval $(xdotool getwindowfocus getwindowgeometry --shell) && xdotool mousemove --window $(xdotool getwindowfocus) $((WIDTH/2)) $((HEIGHT/2))
# change focus # change focus
bindsym $mod+h focus left bindsym $mod+h focus left
bindsym $mod+j focus down bindsym $mod+j focus down
@@ -77,10 +77,10 @@ bindsym $mod+k focus up
bindsym $mod+l focus right bindsym $mod+l focus right
# alternatively, you can use the cursor keys: # alternatively, you can use the cursor keys:
bindsym $mod+Left focus left bindsym $mod+Left focus left; $warpmouse
bindsym $mod+Down focus down bindsym $mod+Down focus down; $warpmouse
bindsym $mod+Up focus up bindsym $mod+Up focus up; $warpmouse
bindsym $mod+Right focus right bindsym $mod+Right focus right; $warpmouse
# switch between windows with alt tab # switch between windows with alt tab
bindsym Mod1+Tab focus next bindsym Mod1+Tab focus next

100
flake.lock generated
View File

@@ -122,11 +122,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768913864, "lastModified": 1768923567,
"narHash": "sha256-NYh/M3mnVZ0XouM98BJvcpKTarjgBSYqH8bDvkG1cDE=", "narHash": "sha256-GVJ0jKsyXLuBzRMXCDY6D5J8wVdwP1DuQmmvYL/Vw/Q=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "e0bbbb8886d0630402e1a5882134a1a772c91fed", "rev": "00395d188e3594a1507f214a2f15d4ce5c07cb28",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -309,11 +309,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768603898, "lastModified": 1768949235,
"narHash": "sha256-vRV1dWJOCpCal3PRr86wE2WTOMfAhTu6G7bSvOsryUo=", "narHash": "sha256-TtjKgXyg1lMfh374w5uxutd6Vx2P/hU81aEhTxrO2cg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "2a63d0e9d2c72ac4d4150ebb242cf8d86f488c8c", "rev": "75ed713570ca17427119e7e204ab3590cc3bf2a5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -330,11 +330,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768912518, "lastModified": 1768984719,
"narHash": "sha256-FJlof1jnbLIT5RbKxef/NV6RzcOj1GoMzXE4FcBFg5Y=", "narHash": "sha256-O6nXCW9FN39qw204e5Nl3qgaxKFcSvdpx0bULqfwyTA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "9c5f8aceb6ef620e881f50fe65cb4a2c6b1e8527", "rev": "d6e3935ec6e43c8f54cd0132276c82d951e1453e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -344,6 +344,25 @@
"type": "github" "type": "github"
} }
}, },
"matugen": {
"inputs": {
"nixpkgs": "nixpkgs_3",
"systems": "systems_5"
},
"locked": {
"lastModified": 1769341810,
"narHash": "sha256-5AYLcqR45alSB0C4nsU3EMOLvnMEr9slDH2evoi+M88=",
"owner": "InioX",
"repo": "Matugen",
"rev": "b2b28bf9d92851fde8c737af49984daba3f86226",
"type": "github"
},
"original": {
"owner": "InioX",
"repo": "Matugen",
"type": "github"
}
},
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1768736227, "lastModified": 1768736227,
@@ -378,11 +397,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1768564909, "lastModified": 1770841267,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", "narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", "rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -418,11 +437,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1768873557, "lastModified": 1768960140,
"narHash": "sha256-gbH6l4liUkBtfZjL26iMBkw4MtZSzi8vVed02OLP1RY=", "narHash": "sha256-iy2UleY4gdaz7AOKCVoWSBxuFaLZMPh2QVZJbZw+7gA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs-xr", "repo": "nixpkgs-xr",
"rev": "77bd9e44e5a0842f1d2583edfc103d0576f97403", "rev": "17ca156becd777c9698ef45dbeca80223dbec87e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -447,6 +466,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": {
"locked": {
"lastModified": 1724479785,
"narHash": "sha256-pP3Azj5d6M5nmG68Fu4JqZmdGt4S4vqI5f8te+E/FTw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d0e1602ddde669d5beb01aec49d71a51937ed7be",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
@@ -477,11 +512,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768914561, "lastModified": 1768987531,
"narHash": "sha256-O0XJuaGyuYDUrr/qjtQ5IjdxbaV9PNzCMvyP5SgxaX0=", "narHash": "sha256-OUuPCbbpt2TScCThL4xPByL5U7gOXQ83aJvXbtcnV9Y=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "d1b81205dfc1b37b093c272089d15c608a5d0b62", "rev": "8e6425272de3f758a3b7103b49d6b7edbfb01b40",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -571,11 +606,12 @@
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"matugen": "matugen",
"nixpkgs": [ "nixpkgs": [
"nixpkgs-unstable" "nixpkgs-unstable"
], ],
"nur": "nur_2", "nur": "nur_2",
"systems": "systems_5", "systems": "systems_6",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
@@ -583,15 +619,16 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1768744881, "lastModified": 1769348032,
"narHash": "sha256-3+h7OxqfrPIB/tRsiZXWE9sCbTm7NQN5Ie428p+S6BA=", "narHash": "sha256-Fy5dre1KS7xxGX2v5HxZSe++S4I0XXd7qCRUImEnrRM=",
"owner": "danth", "owner": "make-42",
"repo": "stylix", "repo": "stylix",
"rev": "06684f00cfbee14da96fd4307b966884de272d3a", "rev": "89d5e0bffe49c3fa285e93556159be5e27fd600a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "danth", "owner": "make-42",
"ref": "matugen",
"repo": "stylix", "repo": "stylix",
"type": "github" "type": "github"
} }
@@ -657,6 +694,21 @@
} }
}, },
"systems_5": { "systems_5": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_6": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",

View File

@@ -40,7 +40,8 @@
}; };
# styling # styling
stylix = { stylix = {
url = "github:danth/stylix"; #url = "github:danth/stylix";
url = "github:make-42/stylix/matugen";
inputs.nixpkgs.follows = "nixpkgs-unstable"; inputs.nixpkgs.follows = "nixpkgs-unstable";
inputs.home-manager.follows = "home-manager-unstable"; inputs.home-manager.follows = "home-manager-unstable";
}; };
@@ -123,7 +124,7 @@
( (
{ outputs, ... }: { outputs, ... }:
{ {
stylix.image = ./tsukasa.jpg; stylix.image = ./wallpaper/tsukasa.jpg;
} }
) )
]; ];
@@ -173,6 +174,12 @@
./systems/pc/configuration.nix ./systems/pc/configuration.nix
]; ];
}; };
"test-pc" = mkHost {
modules = [
./users/kopatz
./systems/test-pc/configuration.nix
];
};
"framework" = mkHost { "framework" = mkHost {
modules = [ modules = [
### User specific ### ### User specific ###

View File

@@ -1,11 +1,19 @@
{ pkgs, config, ... }:
{ {
services.easyeffects = { pkgs,
enable = true; config,
preset = "mic"; osConfig,
extraPresets = { lib,
mic = builtins.fromJSON (builtins.readFile ./mic.json); ...
other_mic = builtins.fromJSON (builtins.readFile ./other_mic.json); }:
{
config = lib.mkIf osConfig.custom.graphical.noise-supression.enable {
services.easyeffects = {
enable = true;
preset = "mic";
extraPresets = {
mic = builtins.fromJSON (builtins.readFile ./mic.json);
other_mic = builtins.fromJSON (builtins.readFile ./other_mic.json);
};
}; };
}; };
} }

View File

@@ -337,7 +337,7 @@ in
colorTheme.enable = true; colorTheme.enable = true;
}; };
}; };
programs.firefox = { programs.firefox = lib.mkIf osConfig.custom.graphical.firefox-custom.enable {
enable = true; enable = true;
policies = { policies = {
DisableTelemetry = true; DisableTelemetry = true;

View File

@@ -226,7 +226,7 @@ in
# Example windowrule v1 # Example windowrule v1
# windowrule = float, ^(kitty)$ # windowrule = float, ^(kitty)$
# Example windowrule v2 # Example windowrule v2
# float,class:^(kitty)$,title:^(kitty)$ # float,match:class ^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Keywords/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more
@@ -244,16 +244,17 @@ in
wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste"; wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste";
grimblast = "${pkgs.grimblast}/bin/grimblast"; grimblast = "${pkgs.grimblast}/bin/grimblast";
saved-screenshot-cmd = '' saved-screenshot-cmd = ''
${grimblast} --freeze save area $OUT && notify-send "Saved screenshot to $OUT" -h string:image-path:$OUT && echo "file://$(realpath $OUT)" | wl-copy -t text/uri-list ${hyprshot} -z -s -m region -o $OUT -f $FILE && notify-send "Saved screenshot to $OUT/$FILE" -h string:image-path:$OUT/$FILE && echo "file://$(realpath $OUT/$FILE)" | wl-copy -t text/uri-list
''; '';
saved-screenshot-cmd-output = '' saved-screenshot-cmd-output = ''
${grimblast} --freeze save output $OUT && notify-send "Saved screenshot to $OUT" -h string:image-path:$OUT && echo "file://$(realpath $OUT)" | wl-copy -t text/uri-list ${hyprshot} -z -s -m output -o $OUT -f $FILE && notify-send "Saved screenshot to $OUT/$FILE" -h string:image-path:$OUT/$FILE && echo "file://$(realpath $OUT/$FILE)" | wl-copy -t text/uri-list
''; '';
pdfgrep = "${pkgs.pdfgrep}/bin/pdfgrep"; pdfgrep = "${pkgs.pdfgrep}/bin/pdfgrep";
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
#swaylock = "${pkgs.swaylock}/bin/swaylock"; #swaylock = "${pkgs.swaylock}/bin/swaylock";
hyprlock = "${pkgs.hyprlock}/bin/hyprlock"; hyprlock = "${pkgs.hyprlock}/bin/hyprlock";
hyprpicker = "${pkgs.hyprpicker}/bin/hyprpicker"; hyprpicker = "${pkgs.hyprpicker}/bin/hyprpicker";
hyprshot = "${pkgs.hyprshot}/bin/hyprshot";
playerctl = "${pkgs.playerctl}/bin/playerctl"; playerctl = "${pkgs.playerctl}/bin/playerctl";
peek = "${pkgs.peek}/bin/peek"; peek = "${pkgs.peek}/bin/peek";
zenity = "${pkgs.zenity}/bin/zenity"; zenity = "${pkgs.zenity}/bin/zenity";
@@ -277,10 +278,10 @@ in
''$mainMod, S, exec, echo "skip" | nc kopatz.dev 8888'' ''$mainMod, S, exec, echo "skip" | nc kopatz.dev 8888''
''$mainMod SHIFT, R, exec, hyprctl hyprpaper reload ,"$(ls -d ~/synced/default/dinge/Bg/* | shuf -n 1)"'' ''$mainMod SHIFT, R, exec, hyprctl hyprpaper reload ,"$(ls -d ~/synced/default/dinge/Bg/* | shuf -n 1)"''
"$mainMod SHIFT, W, exec, hyprctl hyprpaper reload ,${config.stylix.image}" "$mainMod SHIFT, W, exec, hyprctl hyprpaper reload ,${config.stylix.image}"
" , Print, exec, ${grimblast} --freeze copy area" " , Print, exec, ${hyprshot} -s -z -m region --clipboard-only"
''$mainMod, Print, exec, export OUT=/tmp/$(date +'%s_grim.png') && ${saved-screenshot-cmd}'' ''$mainMod, Print, exec, export OUT=/tmp && FILE=$(date +'%s_screenshot.png') && ${saved-screenshot-cmd}''
''Shift_L, Print, exec, export OUT=~/Pictures/$(date +'%s_grim.png') && ${saved-screenshot-cmd}'' ''Shift_L, Print, exec, export OUT=~/Pictures && FILE=$(date +'%s_screenshot.png') && ${saved-screenshot-cmd}''
''$mainMod Shift_L, Print, exec, export OUT=~/Pictures/$(date +'%s_grim.png') && ${saved-screenshot-cmd-output}'' ''$mainMod Shift_L, Print, exec, export OUT=~/Pictures && FILE=$(date +'%s_screenshot.png') && ${saved-screenshot-cmd-output}''
#"$mainMod, G, exec, ${peek}" # record gif #"$mainMod, G, exec, ${peek}" # record gif
"$mainMod, SPACE, exec, ${rofi} -modi drun -show drun -config ~/.config/rofi/rofidmenu.rasi" "$mainMod, SPACE, exec, ${rofi} -modi drun -show drun -config ~/.config/rofi/rofidmenu.rasi"
" , XF86AudioPlay, exec, ${playerctl} play-pause" " , XF86AudioPlay, exec, ${playerctl} play-pause"
@@ -367,50 +368,51 @@ in
"float on, match:class zenity" "float on, match:class zenity"
"center on, match:class zenity" "center on, match:class zenity"
"workspace 1, match:class steam_app_.*" "workspace 1, match:class steam_app_.*"
"allows_input on, match:title Trove"
#"stay_focused on, match:title Trove"
# Fix splash screen showing in weird places and prevent annoying focus takeovers # Fix splash screen showing in weird places and prevent annoying focus takeovers
#"tag +jetbrains-splash, class:^(jetbrains-.*)$, title:^(splash)$, floating:1" #"tag +jetbrains-splash, match:class ^(jetbrains-.*)$, title:^(splash)$, floating:1"
#"center, tag:jetbrains-splash" #"center, tag:jetbrains-splash"
#"nofocus, tag:jetbrains-splash" #"nofocus, tag:jetbrains-splash"
#"noborder, tag:jetbrains-splash" #"noborder, tag:jetbrains-splash"
## Center popups/find windows ## Center popups/find windows
#"tag +jetbrains, class:^(jetbrains-.*), title:^()$, floating:1" #"tag +jetbrains, match:class ^(jetbrains-.*), title:^()$, floating:1"
#"center, tag:jetbrains" #"center, tag:jetbrains"
## Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.) ## Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.)
#"stayfocused, tag:jetbrains" #"stayfocused, tag:jetbrains"
#"noborder, tag:jetbrains" #"noborder, tag:jetbrains"
## For some reason tag:jetbrains does not work for size rule ## For some reason tag:jetbrains does not work for size rule
#"size >50% >50%, class:^(jetbrains-.*), title:^()$, floating:1" #"size >50% >50%, match:class ^(jetbrains-.*), title:^()$, floating:1"
## Disable window flicker when autocomplete or tooltips appear ## Disable window flicker when autocomplete or tooltips appear
#"noinitialfocus, class:^(jetbrains-.*)$, title:^(win.*)$, floating:1" #"noinitialfocus, match:class ^(jetbrains-.*)$, title:^(win.*)$, floating:1"
## Disable mouse focus ## Disable mouse focus
#"nofollowmouse, class:^(jetbrains-.*)$" #"nofollowmouse, match:class ^(jetbrains-.*)$"
];
windowrulev2 = [ #"center, match:class jetbrains-idea"
#"center, class:jetbrains-idea" #"noinitialfocus,match:class ^jetbrains-(?!toolbox),floating:1"
#"noinitialfocus,class:^jetbrains-(?!toolbox),floating:1"
## -- Fix odd behaviors in IntelliJ IDEs -- ## -- Fix odd behaviors in IntelliJ IDEs --
##! Fix focus issues when dialogs are opened or closed ##! Fix focus issues when dialogs are opened or closed
#"windowdance,class:^(jetbrains-.*)$,floating:1" #"windowdance,match:class ^(jetbrains-.*)$,floating:1"
##! Fix splash screen showing in weird places and prevent annoying focus takeovers ##! Fix splash screen showing in weird places and prevent annoying focus takeovers
#"center,class:^(jetbrains-.*)$,title:^(splash)$,floating:1" #"center,match:class ^(jetbrains-.*)$,title:^(splash)$,floating:1"
#"nofocus,class:^(jetbrains-.*)$,title:^(splash)$,floating:1" #"nofocus,match:class ^(jetbrains-.*)$,title:^(splash)$,floating:1"
#"noborder,class:^(jetbrains-.*)$,title:^(splash)$,floating:1" #"noborder,match:class ^(jetbrains-.*)$,title:^(splash)$,floating:1"
##! Center popups/find windows ##! Center popups/find windows
#"center,class:^(jetbrains-.*)$,title:^( )$,floating:1" #"center,match:class ^(jetbrains-.*)$,title:^( )$,floating:1"
#"stayfocused,class:^(jetbrains-.*)$,title:^( )$,floating:1" #"stayfocused,match:class ^(jetbrains-.*)$,title:^( )$,floating:1"
#"noborder,class:^(jetbrains-.*)$,title:^( )$,floating:1" #"noborder,match:class ^(jetbrains-.*)$,title:^( )$,floating:1"
##! Disable window flicker when autocomplete or tooltips appear ##! Disable window flicker when autocomplete or tooltips appear
#"nofocus,class:^(jetbrains-.*)$,title:^(win.*)$,floating:1" #"nofocus,match:class ^(jetbrains-.*)$,title:^(win.*)$,floating:1"
##"immediate, class:^(Risk.*)$" ##"immediate, match:class ^(Risk.*)$"
"stayfocused,class:(steam_app_107410)" "stay_focused on, match:class (steam_app_107410)"
"immediate, class:^tetrio-desktop$" "immediate on, match:class ^tetrio-desktop$"
"opacity 0.9, class:thunar" "opacity 0.9, match:class thunar"
"opacity 0.9, class:discord, fullscreen:0" "opacity 0.9, match:class discord, match:fullscreen 0"
"opacity 0.1, title:cava" "opacity 0.1, match:title cava"
"float, title:Picture-in-Picture" "float on, match:title Picture-in-Picture"
"suppressevent maximize, title:Picture-in-Picture" "suppress_event maximize, match:title Picture-in-Picture"
]; ];
exec-once = [ exec-once = [

View File

@@ -42,7 +42,6 @@ in
logseq # notes logseq # notes
ani-cli ani-cli
brave brave
wayvnc
]; ];
}; };
} }

View File

@@ -22,7 +22,7 @@ in
with pkgs; with pkgs;
[ [
man-pages man-pages
stable.jetbrains.idea-ultimate jetbrains.idea
typescript typescript
bruno bruno
nodejs_22 # needed for tabby extension nodejs_22 # needed for tabby extension

View File

@@ -36,4 +36,8 @@
./niri.nix ./niri.nix
./wayvnc.nix ./wayvnc.nix
]; ];
options.custom.graphical.firefox-custom = {
enable = lib.mkEnableOption "Enables custom firefox";
};
} }

View File

@@ -22,7 +22,7 @@ in
xkb.variant = config.mainUser.variant; xkb.variant = config.mainUser.variant;
enable = true; enable = true;
}; };
services.displayManager.sddm.enable = !config.services.xserver.displayManager.gdm.enable; #services.displayManager.sddm.enable = !config.services.xserver.displayManager.gdm.enable;
#nix.settings = { #nix.settings = {
# substituters = [ "https://hyprland.cachix.org" ]; # substituters = [ "https://hyprland.cachix.org" ];
@@ -71,6 +71,7 @@ in
wl-clipboard wl-clipboard
cava cava
dex # starts applications according to .desktop files dex # starts applications according to .desktop files
ydotool # simulates keyboard and mouse input on wayland
#hyprshade #hyprshade
#waybar #waybar
#qt5.qtwayland #qt5.qtwayland

View File

@@ -91,6 +91,7 @@ in
feh # sets the wallpaper feh # sets the wallpaper
networkmanagerapplet networkmanagerapplet
caffeine-ng # prevent the system from going to sleep caffeine-ng # prevent the system from going to sleep
xdotool
]; ];
}; };
} }

View File

@@ -12,7 +12,7 @@ in
enable = mkEnableOption "Enables stylix"; enable = mkEnableOption "Enables stylix";
image = mkOption { image = mkOption {
type = types.path; type = types.path;
default = ../../tsukasa.jpg; default = ../../wallpaper/tsukasa.jpg;
description = '' description = ''
The wallpaper to use. The wallpaper to use.
''; '';
@@ -65,6 +65,10 @@ in
polarity = "dark"; polarity = "dark";
image = lib.mkForce cfg.image; image = lib.mkForce cfg.image;
base16Scheme = lib.mkIf (cfg.base16Scheme != null) cfg.base16Scheme; base16Scheme = lib.mkIf (cfg.base16Scheme != null) cfg.base16Scheme;
colorGeneration = {
polarity = "dark";
scheme = "fruit-salad";
};
override = cfg.override; override = cfg.override;
#base16Scheme = ../../home-manager/themes/yorha/scheme.yml; #base16Scheme = ../../home-manager/themes/yorha/scheme.yml;
#base16Scheme = #base16Scheme =

View File

@@ -91,7 +91,8 @@ in
# accessible via `nvidia-settings`. # accessible via `nvidia-settings`.
nvidiaSettings = true; nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU. # Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.beta; #package = config.boot.kernelPackages.nvidiaPackages.beta;
package = config.boot.kernelPackages.nvidiaPackages.stable;
#package = config.boot.kernelPackages.nvidiaPackages.mkDriver { #package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
# version = "570.124.04"; # version = "570.124.04";
# sha256_64bit = "sha256-G3hqS3Ei18QhbFiuQAdoik93jBlsFI2RkWOBXuENU8Q="; # sha256_64bit = "sha256-G3hqS3Ei18QhbFiuQAdoik93jBlsFI2RkWOBXuENU8Q=";
@@ -103,7 +104,7 @@ in
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vaapiVdpau libva-vdpau-driver
libvdpau-va-gl libvdpau-va-gl
libva libva
libva-utils libva-utils

View File

@@ -90,7 +90,7 @@ in
if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
set -a; source ${config.age.secrets.restic-internxt.path}; set +a set -a; source ${config.age.secrets.restic-internxt.path}; set +a
fi fi
${cli} login --non-interactive -e "$USERNAME" -p "$PASSWORD" ${cli} login-legacy --non-interactive -e "$USERNAME" -p "$PASSWORD"
LOGGED_IN=$(${cli} whoami | grep "You are logged in") LOGGED_IN=$(${cli} whoami | grep "You are logged in")
if [ -z "$LOGGED_IN" ]; then if [ -z "$LOGGED_IN" ]; then
echo "Internxt CLI login failed. Aborting backup." echo "Internxt CLI login failed. Aborting backup."

View File

@@ -12,7 +12,7 @@
services.NetworkManager-wait-online.wantedBy = lib.mkForce [ ]; # Normally ["network-online.target"] services.NetworkManager-wait-online.wantedBy = lib.mkForce [ ]; # Normally ["network-online.target"]
}; };
# mash spacebar to still be able to select a different boot option # mash spacebar to still be able to select a different boot option
boot.loader.timeout = 1; boot.loader.timeout = lib.mkDefault 1;
virtualisation.docker.enableOnBoot = false; virtualisation.docker.enableOnBoot = false;
} }

View File

@@ -25,7 +25,7 @@ in
nix = { nix = {
optimise.automatic = cfg.optimise; optimise.automatic = cfg.optimise;
settings.allowed-users = [ "root" "@wheel" ]; settings.allowed-users = [ "root" "@wheel" "anon" "minecraftserver" ];
settings.experimental-features = [ settings.experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"

View File

@@ -1,4 +1,4 @@
{ pkgs }: { pkgs, ... }:
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
perf perf

View File

@@ -0,0 +1,21 @@
{
"base00" = "041011";
"base01" = "152222";
"base02" = "2a3737";
"base03" = "7b9696";
"base04" = "b0cccc";
"base05" = "d7e5e5";
"base06" = "b9f0b8";
"base07" = "89d88f";
"base08" = "ed8796";
"base09" = "f5a97f";
"base0A" = "eed49f";
"base0B" = "a6da95";
"base0C" = "8bd5ca";
"base0D" = "8aadf4";
"base0E" = "c6a0f6";
"base0F" = "f0c6c6";
"author" = "untitled";
"scheme" = "untitled";
"slug" = "untitled";
}

View File

@@ -39,6 +39,15 @@ in
# You can change versions, add patches, set compilation flags, anything really. # You can change versions, add patches, set compilation flags, anything really.
# https://nixos.wiki/wiki/Overlays # https://nixos.wiki/wiki/Overlays
modifications = final: prev: { modifications = final: prev: {
vencord = prev.vencord.overrideAttrs {
version = "1.14.1";
src = prev.fetchFromGitHub {
owner = "Vendicated";
repo = "Vencord";
tag = "v1.14.1";
hash = "sha256-g+zyq4KvLhn1aeziTwh3xSYvzzB8FwoxxR13mbivyh4=";
};
};
discord-canary = prev.discord-canary.override { withVencord = true; }; discord-canary = prev.discord-canary.override { withVencord = true; };
discord = prev.discord.override { withVencord = true; }; discord = prev.discord.override { withVencord = true; };
#tetrio-desktop = prev.tetrio-desktop.override { withTetrioPlus = true; }; #tetrio-desktop = prev.tetrio-desktop.override { withTetrioPlus = true; };
@@ -71,6 +80,26 @@ in
hash = "sha256-NnKhIgDAOKOdEqgHzgLq1MSHG3FDT2AVXJZ53Ozzioc="; hash = "sha256-NnKhIgDAOKOdEqgHzgLq1MSHG3FDT2AVXJZ53Ozzioc=";
}; };
}; };
yt-dlp = prev.yt-dlp.overrideAttrs {
version = "2026.02.04";
src = prev.fetchFromGitHub {
owner = "yt-dlp";
repo = "yt-dlp";
tag = "2026.02.04";
hash = "sha256-KXnz/ocHBftenDUkCiFoBRBxi6yWt0fNuRX+vKFWDQw=";
};
postPatch = ''
substituteInPlace yt_dlp/version.py \
--replace-fail "UPDATE_HINT = None" 'UPDATE_HINT = "Nixpkgs/NixOS likely already contain an updated version.\n To get it run nix-channel --update or nix flake update in your config directory."'
${prev.lib.optionalString true ''
# deno is required for full YouTube support (since 2025.11.12).
# This makes yt-dlp find deno even if it is used as a python dependency, i.e. in kodiPackages.sendtokodi.
# Crafted so people can replace deno with one of the other JS runtimes.
substituteInPlace yt_dlp/utils/_jsruntime.py \
--replace-fail "path = _determine_runtime_path(self._path, '${prev.deno.meta.mainProgram}')" "path = '${prev.lib.getExe prev.deno}'"
''}
'';
};
monado = prev.monado.overrideAttrs (old: { monado = prev.monado.overrideAttrs (old: {
cmakeFlags = old.cmakeFlags ++ [ cmakeFlags = old.cmakeFlags ++ [
"-DBUILD_WITH_OPENCV=OFF" "-DBUILD_WITH_OPENCV=OFF"

View File

@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "internex-cli"; pname = "internex-cli";
version = "1.5.7"; version = "1.6.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "internxt"; owner = "internxt";
repo = "cli"; repo = "cli";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-fkn16ielYg4mMwWdqKLFYyIl0JDrktsq0PADOM8gi7g="; hash = "sha256-52mriM6rHpGX5yTAUnRW5n8dTEz62s3zneZyJco66lA=";
}; };
# Tip: use diff <filea> <fileb> -ur to create patches # Tip: use diff <filea> <fileb> -ur to create patches
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
yarnOfflineCache = fetchYarnDeps { yarnOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock"; yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-cgIvT/OSlj3MCCMO1MKGECH6R0y+Zp2qhoe3lzWXG2c="; hash = "sha256-YeQ2vmPL8YfrZKDynIlpI5kb1Srpy13JFc+29Vc//EY=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = { meta = {
description = "Internxt CLI - Manage your Internxt account from the command line"; description = "Internxt CLI - Manage your Internxt account from the command line";
homepage = "https://internxt.com/"; homepage = "https://internxt.com/";
license = lib.licenses.unfree; license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ]; maintainers = with lib.maintainers; [ ];
platforms = lib.platforms.all; platforms = lib.platforms.all;
}; };

View File

@@ -49,11 +49,6 @@
interface = "eth0"; interface = "eth0";
dns = "127.0.0.1"; dns = "127.0.0.1";
}; };
user = {
name = "anon";
layout = "de";
variant = "us";
};
hardware = { hardware = {
ssd.enable = true; ssd.enable = true;
}; };

View File

@@ -147,6 +147,11 @@ in
abuse@${email-domain} lukas@${email-domain} abuse@${email-domain} lukas@${email-domain}
dmarcreports@${email-domain} lukas@${email-domain} dmarcreports@${email-domain} lukas@${email-domain}
rat@${email-domain} spam@${email-domain} rat@${email-domain} spam@${email-domain}
acc1@${email-domain} spam@${email-domain}
acc2@${email-domain} spam@${email-domain}
acc3@${email-domain} spam@${email-domain}
acc4@${email-domain} spam@${email-domain}
acc5@${email-domain} spam@${email-domain}
''; '';
mapFiles = { mapFiles = {
"virtual-map" = pkgs.writeText "postfix-virtual" '' "virtual-map" = pkgs.writeText "postfix-virtual" ''

View File

@@ -45,11 +45,6 @@
mainUser.layout = "de"; mainUser.layout = "de";
mainUser.variant = "us"; mainUser.variant = "us";
custom = { custom = {
user = {
name = "anon";
layout = "de";
variant = "us";
};
hardware = { hardware = {
firmware.enable = true; firmware.enable = true;
ssd.enable = true; ssd.enable = true;

View File

@@ -54,6 +54,7 @@
#sddm.enable = true; #sddm.enable = true;
#nightlight.enable = true; #nightlight.enable = true;
#i3.enable = true; #i3.enable = true;
firefox-custom.enable = true;
xfce.enable = true; xfce.enable = true;
#plasma.enable = true; #plasma.enable = true;
#lxqt.enable = true; #lxqt.enable = true;

View File

@@ -95,6 +95,7 @@ in
enable = true; enable = true;
#android.enable = true; #android.enable = true;
}; };
firefox-custom.enable = true;
#emulators.enable = true; #emulators.enable = true;
hyprland.enable = true; hyprland.enable = true;
games.enable = true; games.enable = true;

View File

@@ -25,6 +25,7 @@
../../modules/misc/faster-boot-time.nix ../../modules/misc/faster-boot-time.nix
../../modules/misc/zram.nix ../../modules/misc/zram.nix
#../../modules/hardware/ryzenmonitor.nix #../../modules/hardware/ryzenmonitor.nix
../../modules/package-collections/perf.nix
../../modules/networkmanager.nix ../../modules/networkmanager.nix
#./tailscale-client.nix #./tailscale-client.nix
]; ];
@@ -101,6 +102,7 @@
niri.enable = false; niri.enable = false;
#openrgb.enable = true; #openrgb.enable = true;
sddm.enable = true; sddm.enable = true;
firefox-custom.enable = true;
#plasma.enable = true; #plasma.enable = true;
#i3.enable = true; #i3.enable = true;
#sway.enable = true; #sway.enable = true;
@@ -111,13 +113,19 @@
basics.enable = true; basics.enable = true;
stylix = { stylix = {
enable = true; enable = true;
base16Scheme = import ../../modules/themes/ina.nix; base16Scheme = import ../../modules/themes/ina-matugen.nix;
image = ../../wallpaper/ina.jpg; image = ../../wallpaper/ina.jpg;
}; };
wayvnc.enable = true; wayvnc.enable = true;
}; };
}; };
services.earlyoom = {
enable = true;
freeMemThreshold = 2;
freeSwapThreshold = 2;
};
services.logind.settings.Login = { services.logind.settings.Login = {
HandlePowerKey = "suspend"; HandlePowerKey = "suspend";
}; };

View File

@@ -0,0 +1,146 @@
{
config,
pkgs,
lib,
inputs,
...
}:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/misc/kernel.nix
../../modules/misc/faster-boot-time.nix
../../modules/misc/zram.nix
../../modules/networkmanager.nix
../../modules/services/ssh.nix
];
custom = {
tmpfs.enable = true;
nftables.enable = true;
cli-tools.enable = true;
nix = {
useLatest = true;
#index.enable = true;
#ld.enable = true;
settings.enable = true;
};
static-ip = {
enable = false;
interface = "enp42s0";
ip = "192.168.0.13";
dns = "192.168.0.10";
};
hardware = {
nvidia = {
enable = true;
};
ssd.enable = true;
};
graphical = {
audio.enable = true;
games = {
enable = true;
};
#sddm.enable = true;
hyprland.enable = true;
shared.enable = true;
i3.enable = true;
stylix = {
enable = true;
base16Scheme = import ../../modules/themes/ina-matugen.nix;
image = ../../wallpaper/ina.jpg;
};
wayvnc.enable = true;
};
};
programs.firefox.enable = true;
services.xserver.displayManager.lightdm.enable = true;
services.xserver.windowManager.openbox.enable = true;
# == start section sunshine ==
services.sunshine = {
enable = true;
autoStart = true;
capSysAdmin = true;
openFirewall = true;
package = (pkgs.sunshine.override { cudaSupport = true; });
};
services.avahi.publish.enable = true;
services.avahi.publish.userServices = true;
services.displayManager.autoLogin = {
enable = true;
user = "kopatz";
};
# == end section sunshine ==
#services.logind.settings.Login = {
# HandlePowerKey = "suspend";
#};
nix.gc.automatic = lib.mkForce false;
environment.systemPackages = with pkgs; [
#inputs.quickshell.packages.x86_64-linux.default
#kdePackages.qtdeclarative
#libimobiledevice
#ifuse # optional, to mount using 'ifuse'
(wl-clicker.overrideAttrs (old: {
# wayland autoclicker
src = pkgs.fetchFromGitHub {
owner = "phonetic112";
repo = "wl-clicker";
rev = "f0241c374241d6cf74ba3abffb74a3fdcefa6f88";
hash = "sha256-QwFT9e2FuczC+ew/lDrDnYYccrrfVJi3Rlrurhwk8ZU=";
};
}))
];
mainUser.layout = "de";
mainUser.variant = "us";
# Bootloader.
boot.loader = {
efi = {
canTouchEfiVariables = true;
};
systemd-boot.enable = true;
};
networking.hostName = "test-pc"; # Define your hostname.
# Configure console keymap
console.keyMap = "de";
# Enable automatic login for the user.
#services.xserver.displayManager.autoLogin.enable = true;
#services.xserver.displayManager.autoLogin.user = "kopatz";
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
security.pki.certificates = [
''
-----BEGIN CERTIFICATE-----
MIIBjTCCATKgAwIBAgIRAMVH2+JHZ3wm2fLUlKjTYDswCgYIKoZIzj0EAwIwJDEM
MAoGA1UEChMDS29wMRQwEgYDVQQDEwtLb3AgUm9vdCBDQTAeFw0yMzEyMDgxNDUx
MTZaFw0zMzEyMDUxNDUxMTZaMCQxDDAKBgNVBAoTA0tvcDEUMBIGA1UEAxMLS29w
IFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATdZBOkNynShXipzhuX
f6dUByD3chNupNWsagYC5AlPRJT9fAeHEIK/bxWkFwRtLBDopWvBu9lHahBgpHc7
y7rTo0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBATAdBgNV
HQ4EFgQU9AVtwipW5HDBLfZRH1KZCnIKCfowCgYIKoZIzj0EAwIDSQAwRgIhAMHj
AipNdhQKIYPvMt/h1uW4xP3NTkitnmshM09+rIasAiEAlSalGddXDkqJBHhPD+Fr
gpuVkfVkA8gQCXNs5F9TnxA=
-----END CERTIFICATE-----
''
];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.11"; # Did you read the comment?
}

View File

@@ -0,0 +1,64 @@
# 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.
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"ehci_pci"
"nvme"
"usbhid"
"usb_storage"
"sd_mod"
"sd_mod"
"rtsx_pci_sdmmc"
"uas"
"usbcore"
"ehci_hcd"
"uhci_hcd"
"ohci_hcd"
"scsi_mod"
];
boot.initrd.kernelModules = [ ];
boot.extraModulePackages = [ ];
boot.kernelModules = [ "kvm-intel" ];
fileSystems."/" = {
device = "/dev/disk/by-label/nixos-ssd";
fsType = "ext4";
options = [
"defaults"
"noatime"
];
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/nixssd-boot";
fsType = "vfat";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp42s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
#hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -11,17 +11,13 @@
./vm-common.nix ./vm-common.nix
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
(modulesPath + "/virtualisation/qemu-vm.nix")
#(modulesPath + "/profiles/minimal.nix") #(modulesPath + "/profiles/minimal.nix")
]; ];
age.identityPaths = [ /home/kopatz/.ssh/id_rsa ]; age.identityPaths = [ /home/kopatz/.ssh/id_rsa ];
mainUser.layout = "de"; mainUser.layout = "de";
mainUser.variant = "us"; mainUser.variant = "us";
custom = { custom = {
user = {
name = "vm";
layout = "de";
variant = "us";
};
nix = { nix = {
settings.enable = true; settings.enable = true;
settings.optimise = false; settings.optimise = false;
@@ -31,7 +27,7 @@
#hyprland.enable = true; #hyprland.enable = true;
#lightdm.enable = true; #lightdm.enable = true;
#sddm.enable = true; #sddm.enable = true;
plasma.enable = true; #plasma.enable = true;
#cosmic.enable = true; #cosmic.enable = true;
}; };
}; };
@@ -44,6 +40,15 @@
# displayManager.defaultSession = "xfce"; # displayManager.defaultSession = "xfce";
#}; #};
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
programs.sway.enable = true;
virtualisation.qemu.options = [
"-device virtio-vga"
];
programs.firefox.enable = true; programs.firefox.enable = true;
virtualisation.vmVariant = { virtualisation.vmVariant = {