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 {}; monolisa = pkgs.callPackage ./monolisa {};
msty = pkgs.callPackage ./msty {}; msty = pkgs.callPackage ./msty {};
unityhub = pkgs.callPackage ./unityhub {};
tidal-dl-ng = pkgs.callPackage ./tidal-dl-ng {}; tidal-dl-ng = pkgs.callPackage ./tidal-dl-ng {};
} }

View File

@ -1,4 +1,3 @@
# Taken from pull/422785
{ {
lib, lib,
stdenv, stdenv,
@ -47,7 +46,15 @@ stdenv.mkDerivation rec {
++ extraPkgs pkgs; ++ extraPkgs pkgs;
multiPkgs = 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 # Unity Hub ldd dependencies
cups cups
@ -94,7 +101,7 @@ stdenv.mkDerivation rec {
xorg.libXcursor xorg.libXcursor
glib glib
gdk-pixbuf gdk-pixbuf
libxml2 libxml2-legacy
zlib zlib
clang clang
git # for git-based packages in unity package manager git # for git-based packages in unity package manager

43
flake.lock generated
View File

@ -627,7 +627,7 @@
}, },
"naersk": { "naersk": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1733346208, "lastModified": 1733346208,
@ -647,9 +647,7 @@
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixpkgs": [ "nixpkgs": "nixpkgs_2"
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1752566074, "lastModified": 1752566074,
@ -718,7 +716,39 @@
"type": "github" "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": { "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": { "locked": {
"lastModified": 1752950548, "lastModified": 1752950548,
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=", "narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=",
@ -734,7 +764,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1734323986, "lastModified": 1734323986,
"narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=", "narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=",
@ -888,7 +918,8 @@
"impermanence": "impermanence", "impermanence": "impermanence",
"nix-alien": "nix-alien", "nix-alien": "nix-alien",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_3",
"nixpkgs-stable": "nixpkgs-stable",
"nixvim": "nixvim", "nixvim": "nixvim",
"nps": "nps", "nps": "nps",
"nur": "nur", "nur": "nur",

View File

@ -12,6 +12,9 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
hardware.url = "github:nixos/nixos-hardware"; 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
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
@ -38,7 +41,9 @@
# Run unpatched binaries on NixOS # Run unpatched binaries on NixOS
nix-alien.url = "github:thiagokokada/nix-alien"; 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 (use flake so plugins are not built from source)
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
@ -52,7 +57,7 @@
hypr-dynamic-cursors.inputs.nixpkgs.follows = "nixpkgs"; hypr-dynamic-cursors.inputs.nixpkgs.follows = "nixpkgs";
hypr-dynamic-cursors.inputs.hyprland.follows = "hyprland"; hypr-dynamic-cursors.inputs.hyprland.follows = "hyprland";
hyprspace.url = "github:KZDKM/Hyprspace"; hyprspace.url = "github:KZDKM/Hyprspace";
hyprspace.inputs.nixpkgs.follows = "nixpkgs"; # hyprspace.inputs.nixpkgs.follows = "nixpkgs";
hyprspace.inputs.hyprland.follows = "hyprland"; hyprspace.inputs.hyprland.follows = "hyprland";
# NeoVim <3 # NeoVim <3
@ -74,10 +79,6 @@
# Realtime audio # Realtime audio
# musnix.url = "github:musnix/musnix"; # musnix.url = "github:musnix/musnix";
# musnix.inputs.nixpkgs.follows = "nixpkgs"; # 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. # Outputs is a function that takes the inputs as arguments.
@ -111,41 +112,24 @@
# firefox = prev.firefox.override { ... }; # firefox = prev.firefox.override { ... };
# myBrowser = final.firefox; # 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.devshell.overlays.default
inputs.nur.overlays.default inputs.nur.overlays.default
# inputs.emacs-overlay.overlay # inputs.emacs-overlay.overlay
# Overriding specific packages from a different nixpkgs (e.g. a pull request) # All my own overlays (derivations + modifications)
# can be done like this. Note that this creates an additional nixpkgs instance. (import ./overlays {inherit inputs nixpkgs pkgs-stable;})
# 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;})
]; ];
}; };

View File

@ -41,8 +41,7 @@
}; };
modules = { modules = {
# TODO: Reenable after build-failure on 2025-07-18 beets.enable = !headless;
beets.enable = false; # !headless;
btop.enable = true; btop.enable = true;
@ -82,7 +81,7 @@
signCommits = true; signCommits = true;
}; };
hyprland = import ./hyprland.nix {inherit config headless;}; hyprland = import ./hyprland.nix {inherit pkgs config headless;};
hyprpanel.enable = !headless; hyprpanel.enable = !headless;
kitty.enable = !headless; kitty.enable = !headless;
lazygit.enable = true; lazygit.enable = true;
@ -460,7 +459,155 @@
enableFishIntegration = config.modules.fish.enable; 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; fd.enable = true;
fzf = { fzf = {

View File

@ -1,11 +1,12 @@
{ {
pkgs,
config, config,
headless, headless,
}: { }: {
enable = !headless; enable = !headless;
dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel
bars.enable = false; bars.enable = false;
dynamicCursor.enable = true; dynamicCursor.enable = false;
trails.enable = true; trails.enable = true;
hyprspace.enable = true; hyprspace.enable = true;
@ -37,6 +38,25 @@
"$mainMod, XF86MonBrightnessDown" = ["exec, hyprctl hyprsunset temperature 5750"]; "$mainMod, XF86MonBrightnessDown" = ["exec, hyprctl hyprsunset temperature 5750"];
"$mainMod, XF86MonBrightnessUp" = ["exec, hyprctl hyprsunset identity"]; "$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'"]; # "CTRL ALT, t" = ["exec, bash -c 'systemctl --user restart hyprpanel.service'"];
}; };
@ -64,7 +84,7 @@
autostart = { autostart = {
immediate = [ immediate = [
"kitty" "kitty --hold fastfetch"
"zeal" "zeal"
"nextcloud --background" "nextcloud --background"
"protonvpn-app" "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 = { workspacerules = {
"1" = []; "1" = [];
"2" = ["Zotero" "neovide" "code-url-handler"]; "2" = ["Zotero" "neovide" "code-url-handler"];
"3" = ["obsidian" "unityhub" "Unity"]; "3" = ["obsidian"];
"4" = ["firefox" "Google-chrome" "chromium-browser" "org.qutebrowser.qutebrowser"]; "4" = ["firefox" "Google-chrome" "chromium-browser" "org.qutebrowser.qutebrowser"];
"5" = ["steam"]; "5" = ["steam"];
"6" = ["steam_app_(.+)"]; "6" = ["steam_app_(.+)"];
@ -106,6 +130,7 @@
title = "File Operation Progress"; title = "File Operation Progress";
} }
{class = "ffplay";} {class = "ffplay";}
{class = "Unity";}
]; ];
transparent-opacity = "0.75"; transparent-opacity = "0.75";

View File

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

View File

@ -34,10 +34,10 @@ in {
theme[hi_fg]=${color.hexS.accent} theme[hi_fg]=${color.hexS.accent}
# Background color of selected item in processes box # 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 # 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 # Color of inactive/disabled text
theme[inactive_fg]=${color.hexS.overlay0} theme[inactive_fg]=${color.hexS.overlay0}

View File

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

View File

@ -28,12 +28,13 @@ in {
"bar.autoHide" = "never"; "bar.autoHide" = "never";
# https://github.com/Jas-SinghFSU/HyprPanel/blob/master/src/configuration/modules/config/bar/layouts/index.ts # 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 # TODO: This should contain battery etc. for laptop
"bar.layouts" = { "bar.layouts" = {
"HDMI-A-1" = { "HDMI-A-1" = {
"left" = ["workspaces" "windowtitle"]; "left" = ["workspaces" "windowtitle"];
"middle" = ["media"]; # "cava" "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" = { "DP-1" = {
"left" = ["workspaces" "windowtitle"]; "left" = ["workspaces" "windowtitle"];
@ -282,7 +283,12 @@ in {
"theme.bar.buttons.clock.spacing" = "6px"; "theme.bar.buttons.clock.spacing" = "6px";
"theme.bar.buttons.clock.text" = "#${color.hex.accentText}"; "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 # 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 # https://github.com/Jas-SinghFSU/HyprPanel/blob/master/src/configuration/modules/theme/bar/buttons/systray.ts
"theme.bar.buttons.systray.background" = "#${color.hex.blue}"; "theme.bar.buttons.systray.background" = "#${color.hex.blue}";

View File

@ -62,21 +62,7 @@ in {
background-color = mkLiteral trans; background-color = mkLiteral trans;
}; };
"message" = { # TOP INPUT BAR START
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;
};
"inputbar" = { "inputbar" = {
children = builtins.map mkLiteral ["prompt" "entry"]; children = builtins.map mkLiteral ["prompt" "entry"];
@ -101,6 +87,26 @@ in {
border-color = mkLiteral color.hexS.accentHl; 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" = { "listview" = {
# border = mkLiteral "0px 0px 0px"; # border = mkLiteral "0px 0px 0px";
padding = 0; padding = 0;
@ -109,7 +115,7 @@ in {
background-color = mkLiteral trans; background-color = mkLiteral trans;
border = mkLiteral "2 solid 2 solid 2 solid 2 solid"; border = mkLiteral "2 solid 2 solid 2 solid 2 solid";
border-radius = 3; border-radius = 3;
border-color = mkLiteral color.hexS.accentHl; border-color = mkLiteral color.hexS.accentDim;
}; };
"element" = { "element" = {
@ -125,7 +131,7 @@ in {
}; };
"element selected" = { "element selected" = {
background-color = mkLiteral color.hexS.accentHl; background-color = mkLiteral color.hexS.accentDim;
text-color = mkLiteral color.hexS.accentText; text-color = mkLiteral color.hexS.accentText;
}; };
}; };

View File

@ -1,6 +1,7 @@
{ {
inputs, inputs,
nixpkgs, nixpkgs,
pkgs-stable,
... ...
}: let }: let
# Taken from https://github.com/Misterio77/nix-config/blob/main/overlay/default.nix # Taken from https://github.com/Misterio77/nix-config/blob/main/overlay/default.nix
@ -11,14 +12,39 @@
pkgs = final; pkgs = final;
}; };
modifications = final: prev: rec { modifications = final: prev: {
# Only kept as an example, has nothing to do with current dconf-editor-wrapped derivation # 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; }; # dconf-editor-wrapped = import ./dconf-editor.nix { inherit final prev; };
# Use dconf-editor.nix: { final, prev }: final.<package>.overrideAttrs (oldAttrs: { ... }) or sth similar # 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 in
# TODO: I have absolutely no clue what happens here lol # Composes a list of overlays and returns a single overlay function that combines them.
# 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
nixpkgs.lib.composeManyExtensions [additions modifications] nixpkgs.lib.composeManyExtensions [additions modifications]

View File

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

View File

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

View File

@ -61,8 +61,8 @@
}; };
allowedTCPPorts = [ allowedTCPPorts = [
# 7777 # AvaTalk 7777 # AvaTalk
# 12777 # AvaTalk 12777 # AvaTalk
# 31431 # Parsec # 31431 # Parsec
5173 # SvelteKit 5173 # SvelteKit
8090 # PocketBase 8090 # PocketBase
@ -70,8 +70,8 @@
]; ];
allowedUDPPorts = [ allowedUDPPorts = [
# 7777 # AvaTalk 7777 # AvaTalk
# 12777 # AvaTalk 12777 # AvaTalk
# 31431 # Parsec # 31431 # Parsec
5173 # SvelteKit 5173 # SvelteKit
8090 # PocketBase 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" = { sops.templates."makemkv-settings.conf" = {
owner = config.users.users.${username}.name; owner = config.users.users.${username}.name;
content = '' content = ''

View File

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

View File

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

View File

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