Personal-use NixOS configuration

Create development shells

+111 -5
+12 -1
homes/encode42/common/fish.nix
··· 1 - { pkgs, ... }: 1 + { 2 + flakeRoot, 3 + pkgs, 4 + lib, 5 + ... 6 + }: 2 7 3 8 { 4 9 programs.fish = { ··· 14 19 interactiveShellInit = '' 15 20 set fish_greeting # Disable greeting 16 21 ''; 22 + 23 + functions = { 24 + develop = '' 25 + nix develop ${flakeRoot}#$argv[1] --command ${lib.getExe pkgs.fish} 26 + ''; 27 + }; 17 28 }; 18 29 }
+2 -2
homes/encode42/common/imagemagik.nix shells/magick.nix
··· 1 1 { pkgs, ... }: 2 2 3 - { 4 - home.packages = with pkgs; [ 3 + pkgs.mkShell { 4 + packages = with pkgs; [ 5 5 (imagemagick.override { 6 6 libpngSupport = true; 7 7 libjpegSupport = true;
-2
hosts/encryption/homes/encode42.nix
··· 42 42 (flakeRoot + /homes/encode42/common/github.nix) 43 43 (flakeRoot + /homes/encode42/common/ssh.nix) 44 44 45 - (flakeRoot + /homes/encode42/common/imagemagik.nix) 46 - 47 45 (flakeRoot + /homes/encode42/desktop/environments/gnome.nix) 48 46 49 47 (flakeRoot + /homes/encode42/desktop/jetbrains/rider.nix)
+2
outputs.nix
··· 33 33 34 34 checks = overlayAllSystems ./tests; 35 35 36 + devShells = overlayAllSystems ./shells; 37 + 36 38 nixosConfigurations = { 37 39 encryption = mkSystem { 38 40 hostName = "encryption";
+27
shells/default.nix
··· 1 + { flake, pkgs }: 2 + 3 + let 4 + mkAliases = 5 + aliases: 6 + pkgs.lib.mapAttrsToList ( 7 + name: cmd: 8 + pkgs.writeShellScriptBin name '' 9 + set -euo pipefail 10 + 11 + ${cmd} 12 + '' 13 + ) aliases; 14 + 15 + mkShell = 16 + path: 17 + import path { 18 + inherit flake pkgs mkAliases; 19 + 20 + lib = pkgs.lib; 21 + }; 22 + in 23 + { 24 + ffmpeg = mkShell ./ffmpeg.nix; 25 + magick = mkShell ./magick.nix; 26 + packwiz = mkShell ./packwiz.nix; 27 + }
+45
shells/ffmpeg.nix
··· 1 + { 2 + pkgs, 3 + lib, 4 + mkAliases, 5 + ... 6 + }: 7 + 8 + let 9 + ffmpegExe = lib.getExe pkgs.ffmpeg; 10 + 11 + aliases = { 12 + opus = '' 13 + INPUT_FILE_NAME="$1" 14 + TEMPORARY_FILE_NAME="/tmp/''${1%.*}.opus" 15 + TARGET_FILE_NAME="''${1%.*}.m4a" 16 + 17 + BITRATE="''${2:-128k}" 18 + 19 + ${ffmpegExe} -i $INPUT_FILE_NAME \ 20 + -map_metadata -1 \ 21 + -fflags +bitexact \ 22 + -flags:v +bitexact \ 23 + -flags:a +bitexact \ 24 + -b:a $BITRATE \ 25 + -c:a libopus \ 26 + $TEMPORARY_FILE_NAME 27 + 28 + ${ffmpegExe} -i $TEMPORARY_FILE_NAME \ 29 + -c:a copy \ 30 + -f mp4 \ 31 + $TARGET_FILE_NAME 32 + 33 + rm $TEMPORARY_FILE_NAME 34 + ''; 35 + }; 36 + in 37 + pkgs.mkShell { 38 + packages = 39 + with pkgs; 40 + [ 41 + ffmpeg 42 + rsgain 43 + ] 44 + ++ (mkAliases aliases); 45 + }
+23
shells/packwiz.nix
··· 1 + { 2 + pkgs, 3 + lib, 4 + mkAliases, 5 + ... 6 + }: 7 + 8 + let 9 + packwizExe = lib.getExe pkgs.packwiz; 10 + 11 + aliases = { 12 + ma = "${packwizExe} modrinth add"; 13 + ca = "${packwizExe} curseforge add"; 14 + }; 15 + in 16 + pkgs.mkShell { 17 + packages = 18 + with pkgs; 19 + [ 20 + packwiz 21 + ] 22 + ++ (mkAliases aliases); 23 + }