Compare commits

..

10 Commits

6 changed files with 220 additions and 70 deletions

236
flake.lock generated
View File

@@ -20,11 +20,11 @@
]
},
"locked": {
"lastModified": 1764714051,
"narHash": "sha256-AjcMlM3UoavFoLzr0YrcvsIxALShjyvwe+o7ikibpCM=",
"lastModified": 1770411700,
"narHash": "sha256-VpeOlyospHF+vxE+xEGEy0utMN0d/FUDvD2dOg9ZiIo=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "a43bedcceced5c21ad36578ed823e6099af78214",
"rev": "b91f570bb7885df9e4a512d6e95a13960a5bdca0",
"type": "github"
},
"original": {
@@ -35,17 +35,18 @@
},
"audio": {
"inputs": {
"mucap": "mucap",
"nix-buildproxy": "nix-buildproxy",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1765024299,
"narHash": "sha256-dJ+1W6BRggJfizB+eWcA6rlQ5nOfASG0PJ0k/KDqWdE=",
"lastModified": 1769805770,
"narHash": "sha256-gTSS83rAxZU2VYjgmxrbWEnFxk7OMEQFf38omYi2wQw=",
"owner": "polygon",
"repo": "audio.nix",
"rev": "b95f93d7f6c7a147c7161c894d0286fb6c3bdef4",
"rev": "3b0ad654379d080f7ddc98e9de6ff9eedaa20d2d",
"type": "github"
},
"original": {
@@ -74,6 +75,30 @@
"type": "github"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
"audio",
"mucap",
"naersk",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1752475459,
"narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=",
"owner": "nix-community",
"repo": "fenix",
"rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"firefox-addons": {
"inputs": {
"nixpkgs": [
@@ -82,11 +107,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1765489453,
"narHash": "sha256-wLSrwiYr7ck5jN56lJp8YzWuLk5dpRd1v+8Ta7ru608=",
"lastModified": 1770609827,
"narHash": "sha256-5J3I/ERia1xhWkPwugnpbucAE8lI5ip2ohTZ3xK2HrY=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "c3e6306094f23d57c40f7fba007303fba4db0ba9",
"rev": "60b2a2d7633b61981a694ad30bc1b19b64a949f1",
"type": "gitlab"
},
"original": {
@@ -99,15 +124,15 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "edolstra",
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
@@ -157,11 +182,11 @@
]
},
"locked": {
"lastModified": 1765384171,
"narHash": "sha256-FuFtkJrW1Z7u+3lhzPRau69E0CNjADku1mLQQflUORo=",
"lastModified": 1770260404,
"narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "44777152652bc9eacf8876976fa72cc77ca8b9d8",
"rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b",
"type": "github"
},
"original": {
@@ -216,11 +241,11 @@
]
},
"locked": {
"lastModified": 1763733840,
"narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=",
"lastModified": 1770511807,
"narHash": "sha256-suKmSbSk34uPOJDTg/GbPrKEJutzK08vj0VoTvAFBCA=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a",
"rev": "7c75487edd43a71b61adb01cae8326d277aab683",
"type": "github"
},
"original": {
@@ -248,11 +273,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1765543676,
"narHash": "sha256-2qaLZ7kqerWXIZpICR/6lkR0J/EEwiS/uYkdhUXv8Sw=",
"lastModified": 1770641595,
"narHash": "sha256-eeu1HrA9dW1DHxPuIZcZ8giUi1BcrvjGkVV1Bx3vEzk=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "69db0bcae640410b6c587cb0ffd0c89bc8166ff0",
"rev": "f16ebef00366d2f85499196b9c7fb702b9f1c547",
"type": "github"
},
"original": {
@@ -294,11 +319,11 @@
]
},
"locked": {
"lastModified": 1764812575,
"narHash": "sha256-1bK1yGgaR82vajUrt6z+BSljQvFn91D74WJ/vJsydtE=",
"lastModified": 1767023960,
"narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=",
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"rev": "fd321368a40c782cfa299991e5584ca338e36ebe",
"rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660",
"type": "github"
},
"original": {
@@ -324,11 +349,11 @@
]
},
"locked": {
"lastModified": 1765207366,
"narHash": "sha256-s0jO2kEj5cLLTgTblKnAKjqt3MjYFnmyrQT3SxiUugM=",
"lastModified": 1769285097,
"narHash": "sha256-eVD4U3Oqzz0VU9ylJ5wo76xDcYKv2CpiiRXq4Is4QdA=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "e058ea23b80775cf20c675d064678416df2d9d04",
"rev": "06c0749a0dac978d89b1a76ae6adc76a3c15dbfa",
"type": "github"
},
"original": {
@@ -349,11 +374,11 @@
]
},
"locked": {
"lastModified": 1759610243,
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
"lastModified": 1765214753,
"narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
"rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
"type": "github"
},
"original": {
@@ -378,11 +403,11 @@
]
},
"locked": {
"lastModified": 1764612430,
"narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=",
"lastModified": 1767983607,
"narHash": "sha256-8C2co8NYfR4oMOUEsPROOJ9JHrv9/ktbJJ6X1WsTbXc=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "0d00dc118981531aa731150b6ea551ef037acddd",
"rev": "d4037379e6057246b408bbcf796cf3e9838af5b2",
"type": "github"
},
"original": {
@@ -455,11 +480,11 @@
]
},
"locked": {
"lastModified": 1764962281,
"narHash": "sha256-rGbEMhTTyTzw4iyz45lch5kXseqnqcEpmrHdy+zHsfo=",
"lastModified": 1770139857,
"narHash": "sha256-bCqxcXjavgz5KBJ/1CBLqnagMMf9JvU1m9HmYVASKoc=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "fe686486ac867a1a24f99c753bb40ffed338e4b0",
"rev": "9038eec033843c289b06b83557a381a2648d8fa5",
"type": "github"
},
"original": {
@@ -480,11 +505,11 @@
]
},
"locked": {
"lastModified": 1763640274,
"narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=",
"lastModified": 1770501770,
"narHash": "sha256-NWRM6+YxTRv+bT9yvlhhJ2iLae1B1pNH3mAL5wi2rlQ=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671",
"rev": "0bd8b6cde9ec27d48aad9e5b4deefb3746909d40",
"type": "github"
},
"original": {
@@ -509,11 +534,11 @@
]
},
"locked": {
"lastModified": 1764872015,
"narHash": "sha256-INI9AVrQG5nJZFvGPSiUZ9FEUZJLfGdsqjF1QSak7Gc=",
"lastModified": 1770203293,
"narHash": "sha256-PR/KER+yiHabFC/h1Wjb+9fR2Uy0lWM3Qld7jPVaWkk=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "7997451dcaab7b9d9d442f18985d514ec5891608",
"rev": "37bc90eed02b0c8b5a77a0b00867baf3005cfb98",
"type": "github"
},
"original": {
@@ -522,6 +547,52 @@
"type": "github"
}
},
"mucap": {
"inputs": {
"naersk": "naersk",
"nixpkgs": [
"audio",
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1765670987,
"narHash": "sha256-LqcywUPXsQMrcl4zakVYHotLGfq2rzASMYuHrQp3KaY=",
"owner": "polygon",
"repo": "mucap",
"rev": "f798f8c4757e0dc80de5c1ddcb8be14aac916b99",
"type": "github"
},
"original": {
"owner": "polygon",
"repo": "mucap",
"type": "github"
}
},
"naersk": {
"inputs": {
"fenix": "fenix",
"nixpkgs": [
"audio",
"mucap",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763384566,
"narHash": "sha256-r+wgI+WvNaSdxQmqaM58lVNvJYJ16zoq+tKN20cLst4=",
"owner": "nix-community",
"repo": "naersk",
"rev": "d4155d6ebb70fbe2314959842f744aa7cabbbf6a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "naersk",
"type": "github"
}
},
"nix-buildproxy": {
"inputs": {
"nixpkgs": [
@@ -551,7 +622,7 @@
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable",
"rust-overlay": "rust-overlay"
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1751591814,
@@ -569,11 +640,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1764440730,
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
"lastModified": 1770631810,
"narHash": "sha256-b7iK/x+zOXbjhRqa+XBlYla4zFvPZyU5Ln2HJkiSnzc=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
"rev": "2889685785848de940375bf7fea5e7c5a3c8d502",
"type": "github"
},
"original": {
@@ -585,11 +656,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1765311797,
"narHash": "sha256-mSD5Ob7a+T2RNjvPvOA1dkJHGVrNVl8ZOrAwBjKBDQo=",
"lastModified": 1770464364,
"narHash": "sha256-z5NJPSBwsLf/OfD8WTmh79tlSU8XgIbwmk6qB1/TFzY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "09eb77e94fa25202af8f3e81ddc7353d9970ac1b",
"rev": "23d72dabcb3b12469f57b37170fcbc1789bd7457",
"type": "github"
},
"original": {
@@ -617,11 +688,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1765186076,
"narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=",
"lastModified": 1770562336,
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8",
"rev": "d6c71932130818840fc8fe9509cf50be8c64634f",
"type": "github"
},
"original": {
@@ -641,11 +712,11 @@
]
},
"locked": {
"lastModified": 1763909441,
"narHash": "sha256-56LwV51TX/FhgX+5LCG6akQ5KrOWuKgcJa+eUsRMxsc=",
"lastModified": 1769956244,
"narHash": "sha256-12RCFLyAedyMOdenUi7cN3ioJPEGjA/ZG1BLjugfUVs=",
"owner": "pjones",
"repo": "plasma-manager",
"rev": "b24ed4b272256dfc1cc2291f89a9821d5f9e14b4",
"rev": "fe54ea85c6e4413fba03b84d50f2b431d2f7c831",
"type": "github"
},
"original": {
@@ -664,11 +735,11 @@
]
},
"locked": {
"lastModified": 1765016596,
"narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=",
"lastModified": 1769939035,
"narHash": "sha256-Fok2AmefgVA0+eprw2NDwqKkPGEI5wvR+twiZagBvrg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c",
"rev": "a8ca480175326551d6c4121498316261cbb5b260",
"type": "github"
},
"original": {
@@ -693,7 +764,46 @@
"sops-nix": "sops-nix"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1752428706,
"narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "591e3b7624be97e4443ea7b5542c191311aa141d",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"audio",
"mucap",
"nixpkgs"
]
},
"locked": {
"lastModified": 1762655942,
"narHash": "sha256-hOM12KcQNQALrhB9w6KJmV5hPpm3GA763HRe9o7JUiI=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "6ac961b02d4235572692241e333d0470637f5492",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": {
"nixpkgs": [
"nixos-cosmic",
@@ -721,11 +831,11 @@
]
},
"locked": {
"lastModified": 1765553226,
"narHash": "sha256-Ii16Nq5jL2wURXpV3D3tOM3vPpbKh18roHLkyZCHK4Q=",
"lastModified": 1770526836,
"narHash": "sha256-xbvX5Ik+0inJcLJtJ/AajAt7xCk6FOCrm5ogpwwvVDg=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "496a6f625f63b780ce849891868f2fad22fd49c6",
"rev": "d6e0e666048a5395d6ea4283143b7c9ac704720d",
"type": "github"
},
"original": {

View File

@@ -79,6 +79,10 @@
video-editing-heavy = true;
daws = true;
};
hive.programs.utils = {
enable = true;
camera = true;
};
hive.programs.spotify-shortcuts = {
enable = true;
clientIdSopsKey = config.sops.secrets.spotifyShortcutsClientId.name;

View File

@@ -26,6 +26,7 @@
./programs/creative.nix
./programs/games.nix
./programs/spotify-shortcuts.nix
./programs/utils.nix
./services/borg-server.nix
./services/gitea-instance.nix
./services/gotify-instance.nix

View File

@@ -66,11 +66,11 @@ in {
lib.optionals cfg.image-editing [gimp krita drawio]
++ lib.optional cfg.image-management digikam
++ lib.optionals cfg.image-raw-processing [
darktable
rawtherapee
enblend-enfuse
hdrmerge
hugin
rawtherapee
unstable.darktable
]
++ lib.optionals cfg.video-editing-light [
ffmpeg

View File

@@ -0,0 +1,26 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.hive.programs.utils;
in {
options.hive.programs.utils = {
enable = lib.mkEnableOption "Enable utilities";
camera = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Camera utilities
'';
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = lib.optionals cfg.camera [
pkgs.cheese
pkgs.obs-studio
];
};
}

View File

@@ -2,16 +2,25 @@
declare -rA presets=(
[davinci-resolve]="-c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le"
[instagram]="-vf scale='if(gte(iw/ih,1),1920,-1)':'if(gte(iw/ih,1),-1,1920)' -pix_fmt yuv420p -c:v h264_nvenc -preset medium -crf 18 -profile:v high -level 4.2 -r 30 -b:a 192k -c:a aac -movflags +faststart"
[web-generic]="-vf scale='if(gte(iw/ih,1),1920,-1)':'if(gte(iw/ih,1),-1,1920)' -pix_fmt yuv420p -c:v h264_nvenc -crf 23 -preset medium -c:a aac -b:a 128k -movflags +faststart"
[storage]="-c:v hevc_nvenc -preset p7 -b:v 0 -spatial-aq 1 -rc vbr_hq -c:a copy"
[instagram]="-vf scale='if(gte(iw/ih,1),1920,-1)':'if(gte(iw/ih,1),-1,1920)':flags=lanczos -r 30 -c:v libx264 -profile:v high -level 4.1 -pix_fmt yuv420p -preset slow -crf 18 -bf 2 -g 15 -keyint_min 15 -x264-params \"open-gop=0:cabac=1:b-pyramid=none\" -movflags +faststart -c:a aac -b:a 96k"
[storage-hevc]="-c:v libx265 -preset slower -crf 18 -pix_fmt yuv420p10le -x265-params aq-mode=3:aq-strength=1.0:psy-rd=1.8:psy-rdoq=1.0 -c:a copy"
[storage-av1]="-c:v libsvtav1 -preset 6 -crf 28 -pix_fmt yuv420p -g 240 -svtav1-params tune=0:aq-mode=2 -c:a copy"
[storage-av1-1080p]="-vf scale='if(gte(iw/ih,1),1920,-1)':'if(gte(iw/ih,1),-1,1920)' -c:v libsvtav1 -preset 6 -crf 28 -pix_fmt yuv420p -g 240 -svtav1-params tune=0:aq-mode=2 -c:a copy"
[storage-av1-nvenc]="-c:v av1_nvenc -cq 28 -preset slow -pix_fmt yuv420p10le -c:a copy"
[network]="-c:v libx264 -preset slow -crf 22 -pix_fmt yuv420p -c:a aac -b:a 128k"
[network-1080p]="-vf scale='if(gte(iw/ih,1),1920,-1)':'if(gte(iw/ih,1),-1,1920)' -c:v libx264 -preset slow -crf 22 -pix_fmt yuv420p -c:a aac -b:a 128k"
[whatsapp]="-vf scale='if(gte(iw/ih,1),1920,-1)':'if(gte(iw/ih,1),-1,1920)' -c:v libx264 -preset slow -crf 30 -profile:v baseline -level 3.0 -pix_fmt yuv420p -r 25 -g 50 -c:a aac -b:a 160k -r:a 44100"
)
declare -rA containers=(
[davinci-resolve]="mov"
[instagram]="mp4"
[web-generic]="mp4"
[storage]="mp4"
[storage-hevc]="mkv"
[storage-av1]="mkv"
[storage-av1-1080p]="mkv"
[storage-av1-nvenc]="mkv"
[network]="mp4"
[network-1080p]="mp4"
[whatsapp]="mp4"
)