1

Compare commits

..

18 Commits

Author SHA1 Message Date
815387a87e Modules/Hyprpanel: Disable bluetooth module 2025-07-30 14:07:08 +02:00
3c93a7e549 System/Servenix+Thinknix: Fix sops key issue, they key location assumed an impermanent setup
Changed the default location to /home/${username}/.secrets/age/age.key,
impermanent systems have to override this.
2025-07-25 23:33:48 +02:00
e677a74c41 Services/Immich+Jellyfin: Make containers privileged 2025-07-25 23:17:59 +02:00
a0d6bb0ab7 Services/Immich: Update to v1.136.0 2025-07-25 22:40:08 +02:00
03cf08f0d4 Home: Fix jetbrains ide tooltip focus flicker 2025-07-24 14:06:14 +02:00
c977589fde Modules/Impermanence: Persist blender, unity and obs-studio state 2025-07-24 14:00:50 +02:00
7af7980e07 Modules/Hyprpanel: Hide fcitx tray icon 2025-07-24 14:00:25 +02:00
c47ca40705 Home: Disable hyprland dynamicCursor and add keybinding to toggle mouse focus 2025-07-24 14:00:04 +02:00
ebd19812a2 Home/Nixinator: Enable cudaSupport for blender and obs-studio 2025-07-24 13:59:34 +02:00
844561a87c Modules/Impermanence: Persist unityhub 2025-07-23 11:53:04 +02:00
206d34adb2 System/Nixinator: Open local ports for Unity development 2025-07-23 00:32:20 +02:00
fa0a8f6901 Home/Nixinator: Add steam-run and fix nix-alien flake input 2025-07-22 21:49:48 +02:00
6db7efe71b Derivations/Unityhub: Add custom unityhub 3.13 derivation with fixed libxml and removed Gconf
nixpkgs issues/419634#issuecomment-3052547176
2025-07-22 19:29:13 +02:00
1418e62598 Flake: Add nixpkgs-stable input, put the overlays in the correct place and add jetbrains.rider overlay
Jetbrains apps are currently broken on unstable because of a
jetbrains.jdk buildfailure
2025-07-22 18:59:16 +02:00
59075d1619 Modules/Btop+Rofi: Make selected element coloring slightly more consistent 2025-07-22 17:35:57 +02:00
db8ada4360 Home: Start initial kitty terminal with fastfetch 2025-07-22 16:48:25 +02:00
6951525a3b Readme: Update screenshots 2025-07-22 16:40:03 +02:00
295651262a Home: Configure fastfetch 2025-07-22 16:39:57 +02:00
23 changed files with 383 additions and 122 deletions

BIN
Btop.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
Rmpc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

@ -7,5 +7,6 @@
monolisa = pkgs.callPackage ./monolisa {};
msty = pkgs.callPackage ./msty {};
unityhub = pkgs.callPackage ./unityhub {};
tidal-dl-ng = pkgs.callPackage ./tidal-dl-ng {};
}

View File

@ -1,4 +1,3 @@
# Taken from pull/422785
{
lib,
stdenv,
@ -47,7 +46,15 @@ stdenv.mkDerivation rec {
++ extraPkgs pkgs;
multiPkgs = pkgs:
with pkgs;
with pkgs; let
libxml2-legacy = libxml2.overrideAttrs (previousAttrs: rec {
version = "2.13.8";
src = fetchurl {
url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz";
hash = "sha256-J3KUyzMRmrcbK8gfL0Rem8lDW4k60VuyzSsOhZoO6Eo=";
};
});
in
[
# Unity Hub ldd dependencies
cups
@ -94,7 +101,7 @@ stdenv.mkDerivation rec {
xorg.libXcursor
glib
gdk-pixbuf
libxml2
libxml2-legacy
zlib
clang
git # for git-based packages in unity package manager

43
flake.lock generated
View File

@ -627,7 +627,7 @@
},
"naersk": {
"inputs": {
"nixpkgs": "nixpkgs_3"
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1733346208,
@ -647,9 +647,7 @@
"inputs": {
"flake-compat": "flake-compat_2",
"nix-index-database": "nix-index-database",
"nixpkgs": [
"nixpkgs"
]
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1752566074,
@ -718,7 +716,39 @@
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1753115646,
"narHash": "sha256-yLuz5cz5Z+sn8DRAfNkrd2Z1cV6DaYO9JMrEz4KZo/c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "92c2e04a475523e723c67ef872d8037379073681",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1752950548,
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c87b95e25065c028d31a94f06a62927d18763fdf",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1752950548,
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=",
@ -734,7 +764,7 @@
"type": "github"
}
},
"nixpkgs_3": {
"nixpkgs_4": {
"locked": {
"lastModified": 1734323986,
"narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=",
@ -888,7 +918,8 @@
"impermanence": "impermanence",
"nix-alien": "nix-alien",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs_3",
"nixpkgs-stable": "nixpkgs-stable",
"nixvim": "nixvim",
"nps": "nps",
"nur": "nur",

View File

@ -12,6 +12,9 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
hardware.url = "github:nixos/nixos-hardware";
# NOTE: Update this after May and November
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
# Home Manager
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
@ -38,7 +41,9 @@
# Run unpatched binaries on NixOS
nix-alien.url = "github:thiagokokada/nix-alien";
nix-alien.inputs.nixpkgs.follows = "nixpkgs";
# Don't follow nixpkgs:
# https://github.com/thiagokokada/nix-alien#user-content-nixos-installation-with-flakes
# nix-alien.inputs.nixpkgs.follows = "nixpkgs";
# Hyprland (use flake so plugins are not built from source)
hyprland.url = "github:hyprwm/Hyprland";
@ -52,7 +57,7 @@
hypr-dynamic-cursors.inputs.nixpkgs.follows = "nixpkgs";
hypr-dynamic-cursors.inputs.hyprland.follows = "hyprland";
hyprspace.url = "github:KZDKM/Hyprspace";
hyprspace.inputs.nixpkgs.follows = "nixpkgs";
# hyprspace.inputs.nixpkgs.follows = "nixpkgs";
hyprspace.inputs.hyprland.follows = "hyprland";
# NeoVim <3
@ -74,10 +79,6 @@
# Realtime audio
# musnix.url = "github:musnix/musnix";
# musnix.inputs.nixpkgs.follows = "nixpkgs";
# Pinned versions
# v4l2loopback-pinned.url = "github:nixos/nixpkgs/4684fd6b0c01e4b7d99027a34c93c2e09ecafee2";
# unityhub-pinned.url = "github:huantianad/nixpkgs/9542b0bc7701e173a10e6977e57bbba68bb3051f";
};
# Outputs is a function that takes the inputs as arguments.
@ -111,41 +112,24 @@
# firefox = prev.firefox.override { ... };
# myBrowser = final.firefox;
# }
overlays = [
overlays = let
# Maintain additional stable pkgs.
# This is supposed to provide a backup for packages in case they
# stop building on the unstable branch.
# It should otherwise not be mixed with this configuration,
# so don't even pass it to the modules.
pkgs-stable = import inputs.nixpkgs-stable {
inherit system;
config.allowUnfree = true;
config.allowUnfreePredicate = pkg: true;
};
in [
inputs.devshell.overlays.default
inputs.nur.overlays.default
# inputs.emacs-overlay.overlay
# Overriding specific packages from a different nixpkgs (e.g. a pull request)
# can be done like this. Note that this creates an additional nixpkgs instance.
# https://github.com/NixOS/nixpkgs/issues/418451
# (final: prev: {
# unityhub_pinned_3_13 = import inputs.unityhub-pinned {
# config.allowUnfree = true;
# localSystem = {inherit (prev) system;};
# };
# })
# TODO: Remove this after 0.15.1 hit nixpkgs
(final: prev: {
neovide = prev.neovide.overrideAttrs (finalAttrs: prevAttrs: {
version = "0.15.1";
src = prev.fetchFromGitHub {
owner = "neovide";
repo = "neovide";
tag = finalAttrs.version;
hash = "sha256-2iV3g6tcCkMF7sFG/GZDz3czPZNIDi6YLfrVzYO9jYI=";
};
cargoHash = "sha256-YlHAcUCRk6ROg5yXIumHfsiR/2TrsSzbuXz/IQK7sEo=";
cargoDeps = prev.rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname src version;
hash = finalAttrs.cargoHash;
};
});
})
# All my own overlays
(import ./overlays {inherit nixpkgs inputs;})
# All my own overlays (derivations + modifications)
(import ./overlays {inherit inputs nixpkgs pkgs-stable;})
];
};

View File

@ -41,8 +41,7 @@
};
modules = {
# TODO: Reenable after build-failure on 2025-07-18
beets.enable = false; # !headless;
beets.enable = !headless;
btop.enable = true;
@ -82,7 +81,7 @@
signCommits = true;
};
hyprland = import ./hyprland.nix {inherit config headless;};
hyprland = import ./hyprland.nix {inherit pkgs config headless;};
hyprpanel.enable = !headless;
kitty.enable = !headless;
lazygit.enable = true;
@ -460,7 +459,155 @@
enableFishIntegration = config.modules.fish.enable;
};
fastfetch.enable = true;
fastfetch = {
enable = true;
settings = {
logo = {
padding = {
top = 3;
left = 1;
right = 2;
};
};
display = {
separator = "";
key.width = 17;
};
# Box Drawing: ╭ ─ ╮ ╰ ╯ │
modules = [
# Title
{
type = "title";
format = "{#1} {#}{user-name-colored}";
}
# System Information
{
type = "custom";
format = "{#1} {#}System Information";
}
{
type = "os";
key = "{#separator} {#keys}󰍹 OS";
}
{
type = "kernel";
key = "{#separator} {#keys}󰒋 Kernel";
}
{
type = "bootmgr";
key = "{#separator} {#keys}󰒋 BootMGR";
}
{
type = "uptime";
key = "{#separator} {#keys}󰅐 Uptime";
}
{
type = "packages";
key = "{#separator} {#keys}󰏖 Packages";
# format = "{all}";
}
{
type = "custom";
format = "{#1}";
}
# Desktop Environment
{
type = "custom";
format = "{#1} {#}Desktop Environment";
}
{
type = "de";
key = "{#separator} {#keys}󰧨 DE";
}
{
type = "wm";
key = "{#separator} {#keys}󱂬 WM";
}
{
type = "wmtheme";
key = "{#separator} {#keys}󰉼 Theme";
}
{
type = "display";
key = "{#separator} {#keys}󰹑 Resolution";
}
{
type = "shell";
key = "{#separator} {#keys}󰞷 Shell";
}
{
type = "terminalfont";
key = "{#separator} {#keys}󰛖 Font";
}
{
type = "icons";
key = "{#separator} {#keys} Icons";
}
{
type = "cursor";
key = "{#separator} {#keys}󰆽 Cursor";
}
{
type = "custom";
format = "{#1}";
}
# Hardware Information
{
type = "custom";
format = "{#1} {#}Hardware Information";
}
{
type = "board";
key = "{#separator} {#keys} Board";
}
{
type = "cpu";
key = "{#separator} {#keys}󰻠 CPU";
}
{
type = "gpu";
key = "{#separator} {#keys}󰢮 GPU";
}
{
type = "memory";
key = "{#separator} {#keys}󰍛 Memory";
}
# {
# type = "disk";
# key = "{#separator}│ {#keys}󰋊 Disk (/)";
# folders = "/";
# }
# {
# type = "disk";
# key = "{#separator}│ {#keys}󰋊 Disk (~/Games)";
# folders = "/home/christoph/Games";
# }
{
type = "btrfs";
key = "{#separator} {#keys}󰋊 BTRFS";
}
{
type = "custom";
format = "{#1}";
}
# Colors Footer
{
type = "colors";
key = "{#separator} {#1}";
keyWidth = 6;
symbol = "circle";
}
];
};
};
fd.enable = true;
fzf = {

View File

@ -1,11 +1,12 @@
{
pkgs,
config,
headless,
}: {
enable = !headless;
dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel
bars.enable = false;
dynamicCursor.enable = true;
dynamicCursor.enable = false;
trails.enable = true;
hyprspace.enable = true;
@ -37,6 +38,25 @@
"$mainMod, XF86MonBrightnessDown" = ["exec, hyprctl hyprsunset temperature 5750"];
"$mainMod, XF86MonBrightnessUp" = ["exec, hyprctl hyprsunset identity"];
"CTRL ALT, f" = let
hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl";
grep = "${pkgs.gnugrep}/bin/grep";
awk = "${pkgs.gawk}/bin/gawk";
notify = "${pkgs.libnotify}/bin/notify-send";
toggleMouseFocus = pkgs.writeScriptBin "hypr-toggle-mouse-focus" ''
CURRENT=$(${hyprctl} getoption input:follow_mouse | ${grep} int | ${awk} -F' ' '{print $2}')
if [[ "$CURRENT" == "1" ]]; then
${hyprctl} keyword input:follow_mouse 0
${notify} "Disabled Mouse Focus!"
else
${hyprctl} keyword input:follow_mouse 1
${notify} "Enabled Mouse Focus!"
fi
'';
in ["exec, ${toggleMouseFocus}/bin/hypr-toggle-mouse-focus"];
# "CTRL ALT, t" = ["exec, bash -c 'systemctl --user restart hyprpanel.service'"];
};
@ -64,7 +84,7 @@
autostart = {
immediate = [
"kitty"
"kitty --hold fastfetch"
"zeal"
"nextcloud --background"
"protonvpn-app"
@ -84,12 +104,16 @@
};
};
windowrules = [];
windowrules = [
# Fix jetbrains tooltip flicker
"float,class:^(jetbrains-.*)$,title:^(win[0-9]+)$"
"nofocus,class:^(jetbrains-.*)$,title:^(win[0-9]+)$"
];
workspacerules = {
"1" = [];
"2" = ["Zotero" "neovide" "code-url-handler"];
"3" = ["obsidian" "unityhub" "Unity"];
"3" = ["obsidian"];
"4" = ["firefox" "Google-chrome" "chromium-browser" "org.qutebrowser.qutebrowser"];
"5" = ["steam"];
"6" = ["steam_app_(.+)"];
@ -106,6 +130,7 @@
title = "File Operation Progress";
}
{class = "ffplay";}
{class = "Unity";}
];
transparent-opacity = "0.75";

View File

@ -91,8 +91,7 @@
# Add any extra libraries you want accessible to Rider here
];
# TODO: Broken, jetbrains.jdk doesn't build (see nixpkgs #425328)
unity-rider = pkgs.jetbrains.rider.overrideAttrs (attrs: {
rider-unity = pkgs.jetbrains.rider.overrideAttrs (attrs: {
postInstall =
''
# Wrap rider with extra tools and libraries
@ -115,25 +114,27 @@
});
in {
packages = with pkgs; [
# quartus-prime-lite # Intel FPGA design software
# Intel FPGA design software
# quartus-prime-lite
# Don't want heavy IDE's on the laptop
# jetbrains.clion
# jetbrains.rust-rover
# jetbrains.pycharm-professional
# jetbrains.idea-ultimate
# jetbrains.webstorm
# jetbrains.rider
# Unity Stuff
# TODO: Unity module
# unityhub # TODO: Wait for https://nixpk.gs/pr-tracker.html?pr=422785
# unity-rider
# dotnetCore
# mono
unityhub
rider-unity
dotnetCore
mono
steam-run-free # nix-alien doesn't seem to run unity apps, this does...
blender
(blender.override {cudaSupport = true;})
godot_4
obs-studio
(obs-studio.override {cudaSupport = true;})
kdePackages.kdenlive
krita
makemkv
@ -144,19 +145,20 @@
file = lib.mkMerge [
{
# ".local/share/applications/jetbrains-rider.desktop".source = let
# desktopFile = pkgs.makeDesktopItem {
# name = "jetbrains-rider";
# desktopName = "Rider";
# exec = "\"${unity-rider}/bin/rider\"";
# icon = "rider";
# type = "Application";
# # Don't show desktop icon in search or run launcher
# extraConfig.NoDisplay = "true";
# };
# in "${desktopFile}/share/applications/jetbrains-rider.desktop";
".local/share/applications/jetbrains-rider.desktop".source = let
desktopFile = pkgs.makeDesktopItem {
name = "jetbrains-rider";
desktopName = "Rider";
exec = "\"${rider-unity}/bin/rider\"";
icon = "rider";
type = "Application";
# Don't show desktop icon in search or run launcher
extraConfig.NoDisplay = "true";
};
in "${desktopFile}/share/applications/jetbrains-rider.desktop";
".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source = ../../../config/mangohud/MangoHud.conf;
".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source =
../../../config/mangohud/MangoHud.conf;
}
(lib.optionalAttrs (mylib.modules.contains config.home.packages pkgs.makemkv) {
".MakeMKV/settings.conf".source =
@ -213,7 +215,7 @@
"com.usebottles.bottles"
"io.github.lawstorant.boxflat"
"com.unity.UnityHub"
# "com.unity.UnityHub"
];
overrides = {

View File

@ -34,10 +34,10 @@ in {
theme[hi_fg]=${color.hexS.accent}
# Background color of selected item in processes box
theme[selected_bg]=${color.hexS.surface1}
theme[selected_bg]=${color.hexS.accentDim}
# Foreground color of selected item in processes box
theme[selected_fg]=${color.hexS.accent}
theme[selected_fg]=${color.hexS.accentText}
# Color of inactive/disabled text
theme[inactive_fg]=${color.hexS.overlay0}

View File

@ -248,7 +248,7 @@
# rotate - rotate the cursor based on movement direction
# stretch - stretch the cursor shape based on direction and velocity
# none - do not change the cursors behaviour
mode = "tilt";
mode = "rotate";
# minimum angle difference in degrees after which the shape is changed
# smaller values are smoother, but more expensive for hw cursors

View File

@ -28,12 +28,13 @@ in {
"bar.autoHide" = "never";
# https://github.com/Jas-SinghFSU/HyprPanel/blob/master/src/configuration/modules/config/bar/layouts/index.ts
# TODO: To module option
# TODO: This should contain battery etc. for laptop
"bar.layouts" = {
"HDMI-A-1" = {
"left" = ["workspaces" "windowtitle"];
"middle" = ["media"]; # "cava"
"right" = ["volume" "network" "bluetooth" "cpu" "ram" "storage" "clock" "systray" "notifications"];
"right" = ["volume" "network" "cpu" "ram" "storage" "clock" "systray" "notifications"]; # "bluetooth"
};
"DP-1" = {
"left" = ["workspaces" "windowtitle"];
@ -282,7 +283,12 @@ in {
"theme.bar.buttons.clock.spacing" = "6px";
"theme.bar.buttons.clock.text" = "#${color.hex.accentText}";
# TODO: To module option
# https://github.com/Jas-SinghFSU/HyprPanel/blob/master/src/configuration/modules/config/bar/systray/index.ts
"bar.systray.ignore" = [
"Fcitx" # Keyboard indicator
]; # Middle click the tray icon to show a notification with the app name :)
"bar.systray.customIcons" = {};
# https://github.com/Jas-SinghFSU/HyprPanel/blob/master/src/configuration/modules/theme/bar/buttons/systray.ts
"theme.bar.buttons.systray.background" = "#${color.hex.blue}";

View File

@ -62,21 +62,7 @@ in {
background-color = mkLiteral trans;
};
"message" = {
background-color = mkLiteral trans;
};
"error-message" = {
background-color = mkLiteral trans;
margin = mkLiteral "0px 0px 10px 0px";
};
"textbox" = {
background-color = mkLiteral trans;
padding = 6;
margin = mkLiteral "10px 10px 0px 10px";
border-radius = 3;
};
# TOP INPUT BAR START
"inputbar" = {
children = builtins.map mkLiteral ["prompt" "entry"];
@ -101,6 +87,26 @@ in {
border-color = mkLiteral color.hexS.accentHl;
};
# MESSAGEBOX (usually not visible)
"message" = {
background-color = mkLiteral trans;
};
"error-message" = {
background-color = mkLiteral trans;
margin = mkLiteral "0px 0px 10px 0px";
};
"textbox" = {
background-color = mkLiteral trans;
padding = 6;
margin = mkLiteral "10px 10px 0px 10px";
border-radius = 3;
};
# LISTVIEW
"listview" = {
# border = mkLiteral "0px 0px 0px";
padding = 0;
@ -109,7 +115,7 @@ in {
background-color = mkLiteral trans;
border = mkLiteral "2 solid 2 solid 2 solid 2 solid";
border-radius = 3;
border-color = mkLiteral color.hexS.accentHl;
border-color = mkLiteral color.hexS.accentDim;
};
"element" = {
@ -125,7 +131,7 @@ in {
};
"element selected" = {
background-color = mkLiteral color.hexS.accentHl;
background-color = mkLiteral color.hexS.accentDim;
text-color = mkLiteral color.hexS.accentText;
};
};

View File

@ -1,6 +1,7 @@
{
inputs,
nixpkgs,
pkgs-stable,
...
}: let
# Taken from https://github.com/Misterio77/nix-config/blob/main/overlay/default.nix
@ -11,14 +12,39 @@
pkgs = final;
};
modifications = final: prev: rec {
modifications = final: prev: {
# Only kept as an example, has nothing to do with current dconf-editor-wrapped derivation
# dconf-editor-wrapped = import ./dconf-editor.nix { inherit final prev; };
# Use dconf-editor.nix: { final, prev }: final.<package>.overrideAttrs (oldAttrs: { ... }) or sth similar
# Overriding specific packages from a different nixpkgs (e.g. a pull request)
# can be done like this. Note that this creates an additional nixpkgs instance.
# https://github.com/NixOS/nixpkgs/issues/418451
# unityhub_3_13 =
# (import inputs.unityhub-pinned {
# config.allowUnfree = true;
# localSystem = {inherit (prev) system;};
# }).unityhub;
# TODO: Remove this after 0.15.1 hits nixpkgs
neovide = prev.neovide.overrideAttrs (finalAttrs: prevAttrs: {
version = "0.15.1";
src = prev.fetchFromGitHub {
owner = "neovide";
repo = "neovide";
tag = finalAttrs.version;
hash = "sha256-2iV3g6tcCkMF7sFG/GZDz3czPZNIDi6YLfrVzYO9jYI=";
};
cargoHash = "sha256-YlHAcUCRk6ROg5yXIumHfsiR/2TrsSzbuXz/IQK7sEo=";
cargoDeps = prev.rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname src version;
hash = finalAttrs.cargoHash;
};
});
# TODO: Remove this after jetbrains.jdk builds again (nixpkgs issue 425328)
jetbrains.rider = pkgs-stable.jetbrains.rider;
};
in
# TODO: I have absolutely no clue what happens here lol
# Basically we need some sort of list of all overlays that can be imported from the flake
# in the overlays = [ ... ] section of the pkgs = import nixpkgs { ... } configuration
# Somehow this library function turns additions/modifications into that
# Composes a list of overlays and returns a single overlay function that combines them.
nixpkgs.lib.composeManyExtensions [additions modifications]

View File

@ -43,6 +43,12 @@ in {
mkRFile = mkFile "root";
mkUDir = mkDir "${username}";
mkUFile = mkFile "${username}";
# TODO: sth. like this, make options for configdirs/sharedirs/statedirs/homedirs
# populate options from respective modules, not here...
# mkConfigDirs = dirs:
# dirs
# |> builtins.map (dir: ".config/${dir}")
# |> builtins.map mkUDir # NOTE: mkUDir has wrong arg order
in
lib.mkIf impermanence.enable {
# TODO: Create options to allow host-specific impermanence setup
@ -80,13 +86,13 @@ in {
files = [
# NOTE: Don't put files generated/linked by HM here (they're already managed)
# TODO: These files are not mounted?
(mkUFile ".config/.tidal-dl.json" m755)
(mkUFile ".config/.tidal-dl.token.json" m755)
(mkUFile ".config/QtProject.conf" m755) # KeePassXC
# TODO: Specifying files here (e.g. .config/QtProject.conf) doesn't seem to work
# They won't get mounted, also they can't be unmounted (because they're not mounted),
# which leads to /home not being unmounted correctly during shutdown...
];
directories = [
# Home directory
(mkUDir "Downloads" m755)
(mkUDir "Documents" m755)
(mkUDir "GitRepos" m755)
@ -98,26 +104,35 @@ in {
(mkUDir "Unity" m755)
(mkUDir "Videos" m755)
# Secrets
(mkUDir ".gnupg" m755) # m600
(mkUDir ".secrets" m755) # m644
(mkUDir ".ssh" m755) # m644
# The shit some applications add to ~/ without asking
(mkUDir ".android" m755) # Unity
(mkUDir ".gradle" m755) # Unity
(mkUDir ".java" m755) # Unity/Rider
(mkUDir ".mozilla/firefox" m755) # TODO: Remove this someday
(mkUDir ".mozilla/native-messaging-hosts" m755)
(mkUDir ".nix-package-search" m755)
(mkUDir ".nv" m755) # Unity
(mkUDir ".ollama" m755)
(mkUDir ".plastic4" m755) # Unity
(mkUDir ".var/app" m755)
(mkUDir ".vim/undo" m755)
(mkUDir ".zotero" m755)
# Cache that's actually useful
(mkUDir ".cache/fish/generated_completions" m755)
(mkUDir ".cache/nix-index" m755)
(mkUDir ".cache/nix-search-tv" m755)
(mkUDir ".cache/nvim" m755)
# Config
(mkUDir ".config/.android" m755) # Unity
(mkUDir ".config/beets" m755)
(mkUDir ".config/blender" m755)
(mkUDir ".config/chromium" m755) # TODO: Remove this someday
(mkUDir ".config/Ferdium" m755)
(mkUDir ".config/fish/completions" m755)
@ -128,18 +143,22 @@ in {
(mkUDir ".config/Msty" m755)
(mkUDir ".config/Nextcloud" m755)
(mkUDir ".config/obsidian" m755)
(mkUDir ".config/obs-studio" m755)
(mkUDir ".config/Signal" m755)
(mkUDir ".config/singularitygroup-hotreload" m755) # Unity
(mkUDir ".config/tidal-hifi" m755)
(mkUDir ".config/tidal_dl_ng" m755)
(mkUDir ".config/unity3d" m755) # Unity
(mkUDir ".config/unityhub" m755) # Unity
(mkUDir ".config/vlc" m755)
(mkUDir ".config/Zeal" m755)
# Share
(mkUDir ".local/share/direnv" m755)
(mkUDir ".local/share/docker" m755)
(mkUDir ".local/share/fish" m755)
(mkUDir ".local/share/flatpak" m755)
(mkUDir ".local/share/JetBrains" m755) # Unity/Rider
(mkUDir ".local/share/JetBrains" m755) # Unity
(mkUDir ".local/share/hyprland" m755)
(mkUDir ".local/share/keyrings" m755) # m700
(mkUDir ".local/share/mime" m755)
@ -147,9 +166,12 @@ in {
(mkUDir ".local/share/nvim" m755)
(mkUDir ".local/share/qutebrowser" m755)
(mkUDir ".local/share/systemd" m755)
(mkUDir ".local/share/unity3d" m755) # Unity
(mkUDir ".local/share/zoxide" m755)
# State
(mkUDir ".local/state/astal/notifd" m755)
(mkUDir ".local/state/home-manager/gc-roots" m755) # nix-flatpak stores its state there
(mkUDir ".local/state/lazygit" m755)
(mkUDir ".local/state/nix" m755)
(mkUDir ".local/state/nvim" m755)

View File

@ -26,9 +26,7 @@ in {
defaultSopsFile = ./secrets.yaml;
age = {
# NOTE: Sops needs the keys before impermanence kicks in
# so we have to link to /persist directly...
keyFile = "/persist/home/${username}/.secrets/age/age.key";
keyFile = lib.mkDefault "/home/${username}/.secrets/age/age.key";
generateKey = false;
sshKeyPaths = [];
};

View File

@ -61,8 +61,8 @@
};
allowedTCPPorts = [
# 7777 # AvaTalk
# 12777 # AvaTalk
7777 # AvaTalk
12777 # AvaTalk
# 31431 # Parsec
5173 # SvelteKit
8090 # PocketBase
@ -70,8 +70,8 @@
];
allowedUDPPorts = [
# 7777 # AvaTalk
# 12777 # AvaTalk
7777 # AvaTalk
12777 # AvaTalk
# 31431 # Parsec
5173 # SvelteKit
8090 # PocketBase
@ -85,6 +85,10 @@
];
};
# NOTE: Sops needs the keys before impermanence kicks in
# so we have to link to /persist directly...
sops.age.keyFile = "/persist/home/${username}/.secrets/age/age.key";
sops.templates."makemkv-settings.conf" = {
owner = config.users.users.${username}.name;
content = ''

View File

@ -43,9 +43,11 @@
blacklistedKernelModules = ["k10temp"]; # Disable in favor of zenpower
kernelParams = [
# Enable AMD pstate
# https://github.com/NixOS/nixos-hardware/blob/master/common/cpu/amd/pstate.nix
kernelParams = ["amd_pstate=active"];
"amd_pstate=active"
];
# extraModprobeConfig = ''
# options iwlwifi 11n_disable=1 wd_disable=0
@ -117,9 +119,9 @@
package = config.boot.kernelPackages.nvidiaPackages.stable;
# package = config.boot.kernelPackages.nvidiaPackages.beta;
modesetting.enable = true; # Not officially supported by NVidia but needed for wayland
open = true;
nvidiaSettings = false; # Those are for x-server
modesetting.enable = true; # Required for wayland
};
# video.hidpi.enable = lib.mkDefault true; # No longer has any effect

View File

@ -6,7 +6,7 @@
}: let
vectorchordVersion = "0.4.2";
pgvectorsVersion = "0.2.0";
immichVersion = "1.135.3";
immichVersion = "1.136.0";
in {
virtualisation.oci-containers.containers = {
immich-database = {
@ -103,7 +103,7 @@ in {
};
extraOptions = [
# "--privileged"
"--privileged"
"--device=nvidia.com/gpu=all"
"--net=behind-nginx"
];

View File

@ -43,7 +43,7 @@ in {
};
extraOptions = [
# "--privileged"
"--privileged"
"--device=nvidia.com/gpu=all"
"--net=behind-nginx"
];