Personal-use NixOS configuration
1{
2 flakeRoot,
3 pkgs,
4 pkgs-unstable,
5 pkgs-flake,
6 ...
7}:
8
9let
10 mkConvertFunction = outputName: ''
11 set downloadUrl $argv[1]
12 set fileName download.tmp
13
14 xh --download $downloadUrl --output $fileName
15
16 set isOpaque (magick identify -format '%[opaque]' $fileName)
17 set aspectRatio (magick $fileName -format "%[fx:w/h]" info:)
18
19 set -l arguments;
20
21 if test $isOpaque = "False"
22 echo "Will replace transparency with solid color!"
23
24 set -a arguments -background white -alpha remove -alpha off
25 end
26
27 if test $aspectRatio != "1"
28 echo "Will adjust the image's cropping!"
29
30 set -a arguments -gravity center -crop 1:1
31 end
32
33 magick $fileName $arguments -quality 100% -verbose ${outputName}
34
35 rm -f $fileName
36 '';
37in
38{
39 imports = [
40 (flakeRoot + /homes/encode42/common)
41
42 (flakeRoot + /homes/encode42/common/direnv.nix)
43 (flakeRoot + /homes/encode42/common/github.nix)
44 (flakeRoot + /homes/encode42/common/ssh.nix)
45
46 (flakeRoot + /homes/encode42/desktop/environments/gnome.nix)
47
48 (flakeRoot + /homes/encode42/desktop/jetbrains/rider.nix)
49 (flakeRoot + /homes/encode42/desktop/jetbrains/intellij.nix)
50 (flakeRoot + /homes/encode42/desktop/bitwarden.nix)
51 (flakeRoot + /homes/encode42/desktop/discord.nix)
52 (flakeRoot + /homes/encode42/desktop/firefox.nix)
53 (flakeRoot + /homes/encode42/desktop/zed.nix)
54
55 (flakeRoot + /homes/shared/desktop/prismlauncher.nix)
56 ];
57
58 programs.fish.functions = {
59 download_cover = mkConvertFunction "cover.jpg";
60 download_artist = mkConvertFunction "artist.jpg";
61 };
62
63 home.packages = with pkgs; [
64 audacity
65 puddletag
66 pkgs-flake.mediaelch
67
68 # Unstable for Feishin 1.X, roll back to stable once backported
69 pkgs-unstable.feishin
70
71 blockbench
72
73 clonehero
74 openrct2
75 r2modman
76 olympus
77 pkgs-flake.iso2god-rs
78 beammp-launcher
79 ];
80}