Merge branch 'main' of github.com:jroeger23/.hive

This commit is contained in:
Jonas Röger 2025-06-30 23:07:58 +02:00
commit c7eea4f591
Signed by: jonas
GPG Key ID: 4000EB35E1AE0F07
13 changed files with 211 additions and 87 deletions

120
flake.lock generated
View File

@ -20,11 +20,11 @@
]
},
"locked": {
"lastModified": 1749155310,
"narHash": "sha256-t0HfHg/1+TbSra5s6nNM0o4tnb3uqWedShSpZXsUMYY=",
"lastModified": 1750372185,
"narHash": "sha256-lVBKxd9dsZOH1fA6kSE5WNnt8e+09fN+NL/Q3BjTWHY=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "94981cf75a9f11da0b6dd6a1abbd7c50a36ab2d3",
"rev": "7cef49d261cbbe537e8cb662485e76d29ac4cbca",
"type": "github"
},
"original": {
@ -40,11 +40,11 @@
]
},
"locked": {
"lastModified": 1749005807,
"narHash": "sha256-PQMJtU43C3HqgQa4iO/AzFOr3j8bbrkKh5og/A8bVLQ=",
"lastModified": 1749410315,
"narHash": "sha256-5H8MuMMSq1WnQcvb1FiDNkKP+uyeZ8HX5GRTMfEOyLI=",
"owner": "lelgenio",
"repo": "dzgui-nix",
"rev": "aa9eb93058ed0290d4244b5f63a9f28a42551293",
"rev": "49adbb1edfb3c25b0cd8256d35673394386065e7",
"type": "github"
},
"original": {
@ -61,11 +61,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1749143092,
"narHash": "sha256-IrVT37SUU8/B3X53rwEzDrx3djGLIfa8tmsyqVJxpR4=",
"lastModified": 1750737804,
"narHash": "sha256-wClGd2PhxdjjphR6wIgoiDcR+Gfg4/+FyseSOjIIzVU=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "d62d10f250ca6a37cbbe05a35a0e1e7ae3b4b5c2",
"rev": "aaaf4fec792bad465ea4a35c0be5bc2a54f33095",
"type": "gitlab"
},
"original": {
@ -136,11 +136,11 @@
]
},
"locked": {
"lastModified": 1749154018,
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
"lastModified": 1750783375,
"narHash": "sha256-oKccVOF1igIwTncVTHZ9RHgjOQEMbg8NK5am2IjOCCI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
"rev": "d457fa3c764e53e7bdd7354467c605766407620d",
"type": "github"
},
"original": {
@ -195,11 +195,11 @@
]
},
"locked": {
"lastModified": 1749145600,
"narHash": "sha256-v2kY5RDk9oyo1x9m8u83GdklC96xlJ7ka1rrvZoYL78=",
"lastModified": 1750371717,
"narHash": "sha256-cNP+bVq8m5x2Rl6MTjwfQLCdwbVmKvTH7yqVc1SpiJM=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "80b754e38e836777ad3a9d5d1ffc3491b0332471",
"rev": "15c6f8f3a567fec9a0f732cd310a7ff456deef88",
"type": "github"
},
"original": {
@ -226,11 +226,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1749193279,
"narHash": "sha256-3bldatPCkZRKb8idCnua/8MiDqYidjxLkmXMvkpM1HE=",
"lastModified": 1750771433,
"narHash": "sha256-AG2TRRcc84066tAOdJ1hdy1ZbpR53UbqGxmaL3VecRc=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "c35c2fea409a845b1023151a2b642f4aa077dacc",
"rev": "aea81320015130bf850242d5a8695fcdcbf4f0c1",
"type": "github"
},
"original": {
@ -256,11 +256,11 @@
]
},
"locked": {
"lastModified": 1748526041,
"narHash": "sha256-QyUACXhQJ2+K0YxwEuAfpyCXqbdCCHj1jNAWJy+vUxw=",
"lastModified": 1750778528,
"narHash": "sha256-X0QpVEhpkhf0RvU0n5+qsBH3JIXY2uZ8m56HhP7FzU8=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "2eee96fe52fa0923c0aae647eb7901b5b51df3db",
"rev": "aa23323de3325e3026fc26f9c23205954be4d337",
"type": "github"
},
"original": {
@ -349,11 +349,11 @@
]
},
"locked": {
"lastModified": 1749155776,
"narHash": "sha256-t1PM0wxQLQwv2F2AW23uA7pm5giwmcgYEWbNIRct9r4=",
"lastModified": 1750371812,
"narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"rev": "396e8aa1c06274835b69da7f9a015fff9a9b7522",
"rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
"type": "github"
},
"original": {
@ -378,11 +378,11 @@
]
},
"locked": {
"lastModified": 1749145882,
"narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=",
"lastModified": 1750371198,
"narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676",
"rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
"type": "github"
},
"original": {
@ -403,11 +403,11 @@
]
},
"locked": {
"lastModified": 1749135356,
"narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=",
"lastModified": 1750371096,
"narHash": "sha256-JB1IeJ41y7kWc/dPGV6RMcCUM0Xj2NEK26A2Ap7EM9c=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb",
"rev": "38f3a211657ce82a1123bf19402199b67a410f08",
"type": "github"
},
"original": {
@ -428,11 +428,11 @@
]
},
"locked": {
"lastModified": 1749145760,
"narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=",
"lastModified": 1750371869,
"narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6",
"rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd",
"type": "github"
},
"original": {
@ -451,11 +451,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1749121763,
"narHash": "sha256-TVFiyMBs+3KEzZVwf/n1zedUWzPrMPzud/2Jiho8dcE=",
"lastModified": 1750763263,
"narHash": "sha256-3JW7xEfobw0qXZsOZ0BwGV5+JMzOE+fZ3+v0ypOwKt0=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "c89df80b72b4e1802fd91a35f4857868c953c1c0",
"rev": "dabf86334f0eab8ced9a5e7219d34a28b055bb2a",
"type": "github"
},
"original": {
@ -466,11 +466,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1749195551,
"narHash": "sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM=",
"lastModified": 1750431636,
"narHash": "sha256-vnzzBDbCGvInmfn2ijC4HsIY/3W1CWbwS/YQoFgdgPg=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "4602f7e1d3f197b3cb540d5accf5669121629628",
"rev": "1552a9f4513f3f0ceedcf90320e48d3d47165712",
"type": "github"
},
"original": {
@ -482,11 +482,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1749086602,
"narHash": "sha256-DJcgJMekoxVesl9kKjfLPix2Nbr42i7cpEHJiTnBUwU=",
"lastModified": 1750622754,
"narHash": "sha256-kMhs+YzV4vPGfuTpD3mwzibWUE6jotw5Al2wczI0Pv8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4792576cb003c994bd7cc1edada3129def20b27d",
"rev": "c7ab75210cb8cb16ddd8f290755d9558edde7ee1",
"type": "github"
},
"original": {
@ -498,11 +498,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1748995628,
"narHash": "sha256-bFufQGSAEYQgjtc4wMrobS5HWN0hDP+ZX+zthYcml9U=",
"lastModified": 1750646418,
"narHash": "sha256-4UAN+W0Lp4xnUiHYXUXAPX18t+bn6c4Btry2RqM9JHY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8eb3b6a2366a7095939cd22f0dc0e9991313294b",
"rev": "1f426f65ac4e6bf808923eb6f8b8c2bfba3d18c5",
"type": "github"
},
"original": {
@ -514,11 +514,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1748929857,
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
"lastModified": 1750506804,
"narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
"rev": "4206c4cb56751df534751b058295ea61357bbbaa",
"type": "github"
},
"original": {
@ -561,11 +561,11 @@
]
},
"locked": {
"lastModified": 1747372754,
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
"lastModified": 1749636823,
"narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
"rev": "623c56286de5a3193aa38891a6991b28f9bab056",
"type": "github"
},
"original": {
@ -597,11 +597,11 @@
]
},
"locked": {
"lastModified": 1749091064,
"narHash": "sha256-TGtYjzRX0sueFhwYsnNNFF5TTKnpnloznpIghLzxeXo=",
"lastModified": 1750732748,
"narHash": "sha256-HR2b3RHsPeJm+Fb+1ui8nXibgniVj7hBNvUbXEyz0DU=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "12419593ce78f2e8e1e89a373c6515885e218acb",
"rev": "4b4494b2ba7e8a8041b2e28320b2ee02c115c75f",
"type": "github"
},
"original": {
@ -617,11 +617,11 @@
]
},
"locked": {
"lastModified": 1747603214,
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
"lastModified": 1750119275,
"narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
"rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2",
"type": "github"
},
"original": {
@ -673,11 +673,11 @@
]
},
"locked": {
"lastModified": 1749155346,
"narHash": "sha256-KIkJu3zF8MF3DuGwzAmo3Ww9wsWXolwV30SjJRTAxYE=",
"lastModified": 1750372504,
"narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "44bf29f1df45786098920c655af523535a9191ae",
"rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92",
"type": "github"
},
"original": {

View File

@ -40,6 +40,12 @@
hive.doom.enableCopilot = true;
hive.doom.withNixPkgs = true;
hive.doom.withShellPkgs = true;
hive.programs.creative = {
enable = true;
image-management = true;
image-raw-processing = true;
video-editing-light = true;
};
# Make session variables available in systemd units
# SEE: https://github.com/nix-community/home-manager/pull/5543

View File

@ -15,12 +15,12 @@
hive.doom.withShellPkgs = true;
hive.firefox = {
enable = true;
plasmaIntegration = true;
plasmaIntegration = false;
passFF = true;
};
hive.kdeconnect.enable = true;
hive.kdeconnect.indicatorOnly = true;
hive.nextcloud.enable = true;
hive.kdeconnect.enable = false;
hive.kdeconnect.indicatorOnly = false;
hive.nextcloud.enable = false; # kwallet bug
hive.nix-scripts.enable = true;
hive.ranger.enable = true;
hive.themes.layan.enable = true;

View File

@ -16,6 +16,10 @@
hive.doom.withNixPkgs = true;
hive.doom.withShellPkgs = true;
hive.doom.withCXXPkgs = true;
hive.programs.creative = {
enable = true;
video-editing-light = true;
};
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release

View File

@ -51,15 +51,25 @@
hive.virt-manager.forUsers = ["jonas"];
hive.bluetooth.enable = true;
hive.sound.enable = true;
hive.sound.noisetorch = true;
hive.yubikey.enable = true;
hive.services.kdeconnect.enable = true;
hive.wg.client.enable = true;
hive.wg.client.privateKeyFile = config.sops.secrets.wg-priv.path;
hive.wg.client.peer = "monolith";
hive.programs.games.enable = true;
hive.programs.games.dayz = true;
hive.programs.games.lutris = true;
hive.programs.games.steam = true;
hive.programs.games.wine = true;
hive.programs.creative = {
enable = true;
image-management = true;
image-editing = true;
image-raw-processing = true;
video-editing-light = true;
video-editing-heavy = true;
};
# system packages
environment.systemPackages = with pkgs; [
@ -69,34 +79,23 @@
borgbackup
borgmatic
chromium
davinci-resolve
digikam
discord
docker
docker-compose
drawio
feh
ffmpeg
firefox
gimp
git
hive.crossover
hive.transcode-davinci-resolve
inputs.dzgui-nix.packages.${pkgs.stdenv.system}.default
insomnia
kdePackages.kdenlive
krita
libreoffice
losslesscut-bin
mosquitto
mpv
mupdf
nextcloud-client
nh
nix-index
nix-output-monitor
obsidian
openhantek6022
proton-caller
qalculate-qt
qtpass
ranger

View File

@ -22,6 +22,7 @@
./hardware/sound.nix
./hardware/yubikey.nix
./networking/wireguard
./programs/creative.nix
./programs/games.nix
./services/borg-server.nix
./services/kdeconnect.nix

View File

@ -11,9 +11,5 @@ in {
enable = true;
wayland.enable = true;
};
environment.systemPackages = with pkgs; [
kdePackages.kwallet
kdePackages.kwalletmanager
];
};
}

View File

@ -1,15 +1,28 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.hive.sound;
in {
options = {
hive.sound.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable sound with pipewire.";
hive.sound = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable sound with pipewire.";
};
noisetorch = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable Noisetorch for noise cancellation.";
};
noisetorch-threshold = lib.mkOption {
type = lib.types.int;
default = -1;
description = "Set the noise cancellation threshold for Noisetorch.";
};
};
};
config = lib.mkIf cfg.enable {
@ -28,5 +41,35 @@ in {
# no need to redefine it in your config for now)
#media-session.enable = true;
};
programs.noisetorch.enable = cfg.noisetorch;
systemd.user.services.noisetorch-autoload = lib.mkIf cfg.noisetorch {
description = "Automatically load Noisetorch on user login";
after = ["pipewire.service"];
requires = ["pipewire.service"];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.writeShellScript "load-noisetorch" ''
set -euo pipefail
NOISETORCH="${pkgs.noisetorch}/bin/noisetorch"
WPCTL="${pkgs.wireplumber}/bin/wpctl"
GREP="${pkgs.gnugrep}/bin/grep"
AWK="${pkgs.gawk}/bin/awk"
HEAD="${pkgs.coreutils}/bin/head"
sleep 2
$NOISETORCH -i -t ${toString cfg.noisetorch-threshold};
sleep 2
FILTER_ID=$($WPCTL status | $GREP NoiseTorch | $AWK 'match($0, /[0-9]+(\.[0-9]+)?/) { print substr($0, RSTART, RLENGTH) }' | head -n1)
if [ -n "$FILTER_ID" ]; then
$WPCTL set-default $FILTER_ID
else
echo "Noisetorch filter not found, skipping setting default source."
fi
''}";
ExecStop = "${pkgs.noisetorch}/bin/noisetorch -u";
RemainAfterExit = true;
};
wantedBy = ["default.target"];
};
};
}

View File

@ -1,6 +1,7 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.hive.nextcloud;
@ -12,6 +13,7 @@ in {
services.nextcloud-client = {
enable = true;
startInBackground = true;
package = pkgs.nextcloud-client;
};
};
}

View File

@ -20,7 +20,7 @@ in {
pkgs.tela-circle-icon-theme
];
qt.enable = true;
qt.enable = false;
qt.style.name = "kvantum";
qt.style.package = pkgs.kdePackages.qtstyleplugin-kvantum;
qt.platformTheme.name = "gtk";

View File

@ -61,8 +61,8 @@ in {
git
htop
killall
neofetch
nh
nix-output-monitor
nix-search-cli
nix-tree
nixpkgs-fmt

View File

@ -0,0 +1,60 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.hive.programs.creative;
in {
options.hive.programs.creative = {
enable = lib.mkEnableOption "Enable creative programs (video/image editing, etc.)";
image-management = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Enable image management tools.
'';
};
image-editing = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable image editing tools.
'';
};
image-raw-processing = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable Darktable for raw processing.
'';
};
video-editing-light = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable light video editing tools.
'';
};
video-editing-heavy = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable heavy video editing tools.
'';
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs;
lib.optionals cfg.image-editing [gimp krita drawio]
++ lib.optional cfg.image-management digikam
++ lib.optionals cfg.image-raw-processing [darktable hdrmerge]
++ lib.optionals cfg.video-editing-light [ffmpeg losslesscut-bin]
++ lib.optionals cfg.video-editing-heavy [
davinci-resolve
hive.transcode-davinci-resolve
kdePackages.kdenlive
];
};
}

View File

@ -1,5 +1,6 @@
{
config,
inputs,
lib,
pkgs,
...
@ -15,6 +16,13 @@ in {
Enable Steam support.
'';
};
dayz = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable DayZ tools.
'';
};
lutris = lib.mkOption {
type = lib.types.bool;
default = false;
@ -48,10 +56,15 @@ in {
];
})
++ lib.optional cfg.r2modman pkgs.r2modman
++ lib.optionals cfg.dayz [
pkgs.hive.crossover
inputs.dzgui-nix.packages.${pkgs.stdenv.system}.default
]
++ lib.optionals cfg.wine [
pkgs.wine
pkgs.winetricks
];
]
++ lib.optional (cfg.steam && cfg.wine) pkgs.proton-caller;
programs.steam = lib.mkIf cfg.steam {
enable = true;