Compare commits
3 commits
Author | SHA1 | Date | |
---|---|---|---|
8b3e0e296e | |||
9c8de12ad3 | |||
348fa835b8 |
32 changed files with 89 additions and 746 deletions
|
@ -17,6 +17,7 @@ in {
|
||||||
# See https://search.nixos.org/packages for all options
|
# See https://search.nixos.org/packages for all options
|
||||||
home.packages = lib.lists.optionals userConfig.isDesktopUser (
|
home.packages = lib.lists.optionals userConfig.isDesktopUser (
|
||||||
with pkgs; [
|
with pkgs; [
|
||||||
|
ungoogled-chromium
|
||||||
gnomeExtensions.dash-to-panel
|
gnomeExtensions.dash-to-panel
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
@ -60,7 +61,6 @@ in {
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
piper.enable = hardware.piperMouse.enable;
|
piper.enable = hardware.piperMouse.enable;
|
||||||
krita.enable = true;
|
krita.enable = true;
|
||||||
ungoogled-chromium.enable = true;
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
@ -37,12 +37,6 @@ in {
|
||||||
dbeaver-bin.enable = true;
|
dbeaver-bin.enable = true;
|
||||||
bruno.enable = true;
|
bruno.enable = true;
|
||||||
piper.enable = hardware.piperMouse.enable;
|
piper.enable = hardware.piperMouse.enable;
|
||||||
proxmark3.enable = true;
|
|
||||||
openrgb.enable = hardware.openRGB.enable;
|
|
||||||
via.enable = hardware.viaKeyboard.enable;
|
|
||||||
claude-code.enable = osConfig.host.ai.enable;
|
|
||||||
davinci-resolve.enable = hardware.graphicsAcceleration.enable;
|
|
||||||
mfoc.enable = true;
|
|
||||||
})
|
})
|
||||||
(lib.mkIf (hardware.directAccess.enable && config.user.isDesktopUser) {
|
(lib.mkIf (hardware.directAccess.enable && config.user.isDesktopUser) {
|
||||||
anki.enable = true;
|
anki.enable = true;
|
||||||
|
@ -56,20 +50,6 @@ in {
|
||||||
firefox.enable = true;
|
firefox.enable = true;
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
krita.enable = true;
|
krita.enable = true;
|
||||||
ungoogled-chromium.enable = true;
|
|
||||||
libreoffice.enable = true;
|
|
||||||
mapillary-uploader.enable = true;
|
|
||||||
inkscape.enable = true;
|
|
||||||
gimp.enable = true;
|
|
||||||
freecad.enable = true;
|
|
||||||
onionshare.enable = true;
|
|
||||||
pdfarranger.enable = true;
|
|
||||||
picard.enable = true;
|
|
||||||
qflipper.enable = true;
|
|
||||||
openvpn.enable = true;
|
|
||||||
noisetorch.enable = true;
|
|
||||||
tor-browser.enable = true;
|
|
||||||
gdx-liftoff.enable = true;
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -86,6 +66,53 @@ in {
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.packages = (
|
||||||
|
(with pkgs; [
|
||||||
|
proxmark3
|
||||||
|
])
|
||||||
|
++ (
|
||||||
|
lib.lists.optionals hardware.directAccess.enable (with pkgs; [
|
||||||
|
#foss platforms
|
||||||
|
ungoogled-chromium
|
||||||
|
libreoffice
|
||||||
|
inkscape
|
||||||
|
gimp
|
||||||
|
freecad
|
||||||
|
# cura
|
||||||
|
# kicad-small
|
||||||
|
onionshare
|
||||||
|
# rhythmbox
|
||||||
|
|
||||||
|
# wireshark
|
||||||
|
# rpi-imager
|
||||||
|
# fritzing
|
||||||
|
mfoc
|
||||||
|
tor-browser
|
||||||
|
pdfarranger
|
||||||
|
picard
|
||||||
|
|
||||||
|
gdx-liftoff
|
||||||
|
|
||||||
|
# proprietary platforms
|
||||||
|
(lib.mkIf hardware.graphicsAcceleration.enable davinci-resolve)
|
||||||
|
|
||||||
|
# development tools
|
||||||
|
# androidStudioPackages.canary
|
||||||
|
qFlipper
|
||||||
|
|
||||||
|
# system tools
|
||||||
|
openvpn
|
||||||
|
noisetorch
|
||||||
|
|
||||||
|
# hardware management tools
|
||||||
|
(lib.mkIf hardware.openRGB.enable openrgb)
|
||||||
|
(lib.mkIf hardware.viaKeyboard.enable via)
|
||||||
|
|
||||||
|
(lib.mkIf osConfig.host.ai.enable claude-code)
|
||||||
|
])
|
||||||
|
)
|
||||||
|
);
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,34 +72,12 @@ in {
|
||||||
enable = true;
|
enable = true;
|
||||||
mcp = {
|
mcp = {
|
||||||
nixos.enable = true;
|
nixos.enable = true;
|
||||||
eslint = {
|
eslint.enable = true;
|
||||||
enable = true;
|
|
||||||
autoApprove = {
|
|
||||||
lint-files = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
vitest = {
|
|
||||||
enable = true;
|
|
||||||
autoApprove = {
|
|
||||||
list_tests = true;
|
|
||||||
run_tests = true;
|
|
||||||
analyze_coverage = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
sleep = {
|
|
||||||
enable = true;
|
|
||||||
timeout = 18000; # 5 hours to match claude codes timeout
|
|
||||||
autoApprove = {
|
|
||||||
sleep = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# misc extensions
|
# misc extensions
|
||||||
evenBetterToml.enable = true;
|
evenBetterToml.enable = true;
|
||||||
direnv.enable = config.programs.direnv.enable;
|
|
||||||
conventionalCommits.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extensions = let
|
extensions = let
|
||||||
|
|
|
@ -67,6 +67,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.tailscale.enable = true;
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
# services.xserver.xkb.layout = "us";
|
# services.xserver.xkb.layout = "us";
|
||||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||||
|
|
42
flake.lock
generated
42
flake.lock
generated
|
@ -25,11 +25,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757255839,
|
"lastModified": 1756733629,
|
||||||
"narHash": "sha256-XH33B1X888Xc/xEXhF1RPq/kzKElM0D5C9N6YdvOvIc=",
|
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "c8a0e78d86b12ea67be6ed0f7cae7f9bfabae75a",
|
"rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -46,11 +46,11 @@
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1757304222,
|
"lastModified": 1756699417,
|
||||||
"narHash": "sha256-s070stByAXxeCLgftTXxFxZ2ynJhghne4Y6cTuqGAaw=",
|
"narHash": "sha256-rpRy5ae5ijEGaK+Cr66NqCQJ6ZeUE5Zi8gUWgKhesto=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "fa312c0175ffb82bc67da095439b9cb683ac52bd",
|
"rev": "007b803d1eff595d25e7886e83054dbd038bf029",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -118,11 +118,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757256385,
|
"lastModified": 1756734952,
|
||||||
"narHash": "sha256-WK7tOhWwr15mipcckhDg2no/eSpM1nIh4C9le8HgHhk=",
|
"narHash": "sha256-H6jmduj4QIncLPAPODPSG/8ry9lpr1kRq6fYytU52qU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f35703b412c67b48e97beb6e27a6ab96a084cd37",
|
"rev": "29ab63bbb3d9eee4a491f7ce701b189becd34068",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -175,11 +175,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757130842,
|
"lastModified": 1755825449,
|
||||||
"narHash": "sha256-4i7KKuXesSZGUv0cLPLfxbmF1S72Gf/3aSypgvVkwuA=",
|
"narHash": "sha256-XkiN4NM9Xdy59h69Pc+Vg4PxkSm9EWl6u7k6D5FZ5cM=",
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "15f067638e2887c58c4b6ba1bdb65a0b61dc58c5",
|
"rev": "8df64f819698c1fee0c2969696f54a843b2231e8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -217,11 +217,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757296711,
|
"lastModified": 1756692643,
|
||||||
"narHash": "sha256-7u9/tXUdmTj8x7ofet8aELLBlCHSoA+QOhYKheRdacM=",
|
"narHash": "sha256-SVos3AYuLvF6bD8Y0b6EiLABoEaiAOa4M/fTCBe0FV8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-vscode-extensions",
|
"repo": "nix-vscode-extensions",
|
||||||
"rev": "ab9374ac8c162dacffcd4400e668fd7f9b6f173a",
|
"rev": "2f1d16db96f1ce8ee3c893ea9dc49c0035846988",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -232,11 +232,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757103352,
|
"lastModified": 1756245047,
|
||||||
"narHash": "sha256-PtT7ix43ss8PONJ1VJw3f6t2yAoGH+q462Sn8lrmWmk=",
|
"narHash": "sha256-9bHzrVbjAudbO8q4vYFBWlEkDam31fsz0J7GB8k4AsI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "11b2a10c7be726321bb854403fdeec391e798bf0",
|
"rev": "a65b650d6981e23edd1afa1f01eb942f19cdcbb7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -264,11 +264,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757068644,
|
"lastModified": 1756542300,
|
||||||
"narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=",
|
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9",
|
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -22,8 +22,5 @@
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
codium-extensions = pkgs.callPackage ./codium-extensions {};
|
codium-extensions = pkgs.callPackage ./codium-extensions {};
|
||||||
})
|
})
|
||||||
(final: prev: {
|
|
||||||
mapillary-uploader = pkgs.callPackage ./mapillary-uploader.nix {};
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
fetchurl,
|
|
||||||
appimageTools,
|
|
||||||
}: let
|
|
||||||
pname = "mapillary-uploader";
|
|
||||||
version = "4.7.2"; # Based on the application output
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://tools.mapillary.com/uploader/download/linux";
|
|
||||||
name = "mapillary-uploader.AppImage";
|
|
||||||
sha256 = "sha256-Oyx7AIdA/2mwBaq7UzXOoyq/z2SU2sViMN40sY2RCQw=";
|
|
||||||
};
|
|
||||||
|
|
||||||
appimageContents = appimageTools.extractType2 {
|
|
||||||
inherit pname version src;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
appimageTools.wrapType2 {
|
|
||||||
inherit pname version src;
|
|
||||||
|
|
||||||
extraInstallCommands = ''
|
|
||||||
# Install desktop file
|
|
||||||
install -Dm644 ${appimageContents}/mapillary-desktop-uploader.desktop $out/share/applications/mapillary-uploader.desktop
|
|
||||||
|
|
||||||
# Install icon
|
|
||||||
install -Dm644 ${appimageContents}/usr/share/icons/hicolor/0x0/apps/mapillary-desktop-uploader.png $out/share/pixmaps/mapillary-uploader.png
|
|
||||||
|
|
||||||
# Fix desktop file paths
|
|
||||||
substituteInPlace $out/share/applications/mapillary-uploader.desktop \
|
|
||||||
--replace 'Exec=AppRun' 'Exec=${pname}'
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Mapillary Desktop Uploader - Upload street-level imagery to Mapillary";
|
|
||||||
homepage = "https://www.mapillary.com/";
|
|
||||||
license = licenses.unfree; # Mapillary's license terms
|
|
||||||
maintainers = [];
|
|
||||||
platforms = ["x86_64-linux"];
|
|
||||||
sourceProvenance = with sourceTypes; [binaryNativeCode];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.davinci-resolve = {
|
|
||||||
enable = lib.mkEnableOption "enable davinci-resolve";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.davinci-resolve.enable (lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
davinci-resolve
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.mkIf osConfig.host.impermanence.enable {
|
|
||||||
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
||||||
directories = [
|
|
||||||
"${config.xdg.dataHome}/DaVinciResolve"
|
|
||||||
"${config.xdg.configHome}/blackmagic"
|
|
||||||
];
|
|
||||||
allowOther = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -19,24 +19,5 @@
|
||||||
./dbeaver.nix
|
./dbeaver.nix
|
||||||
./steam.nix
|
./steam.nix
|
||||||
./vscode
|
./vscode
|
||||||
./ungoogled-chromium.nix
|
|
||||||
./libreoffice.nix
|
|
||||||
./mapillary-uploader.nix
|
|
||||||
./inkscape.nix
|
|
||||||
./gimp.nix
|
|
||||||
./proxmark3.nix
|
|
||||||
./freecad.nix
|
|
||||||
./onionshare.nix
|
|
||||||
./mfoc.nix
|
|
||||||
./pdfarranger.nix
|
|
||||||
./picard.nix
|
|
||||||
./qflipper.nix
|
|
||||||
./openvpn.nix
|
|
||||||
./noisetorch.nix
|
|
||||||
./openrgb.nix
|
|
||||||
./via.nix
|
|
||||||
./davinci-resolve.nix
|
|
||||||
./gdx-liftoff.nix
|
|
||||||
./tor-browser.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.freecad = {
|
|
||||||
enable = lib.mkEnableOption "enable freecad";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.freecad.enable (lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
freecad
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.mkIf osConfig.host.impermanence.enable {
|
|
||||||
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
||||||
directories = [
|
|
||||||
"${config.xdg.configHome}/FreeCAD"
|
|
||||||
];
|
|
||||||
allowOther = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.gdx-liftoff = {
|
|
||||||
enable = lib.mkEnableOption "enable gdx-liftoff";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.gdx-liftoff.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
gdx-liftoff
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.gimp = {
|
|
||||||
enable = lib.mkEnableOption "enable gimp";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.gimp.enable (lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
gimp
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.mkIf osConfig.host.impermanence.enable {
|
|
||||||
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
||||||
directories = [
|
|
||||||
"${config.xdg.configHome}/GIMP"
|
|
||||||
];
|
|
||||||
allowOther = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.inkscape = {
|
|
||||||
enable = lib.mkEnableOption "enable inkscape";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.inkscape.enable (lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
inkscape
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.mkIf osConfig.host.impermanence.enable {
|
|
||||||
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
||||||
directories = [
|
|
||||||
"${config.xdg.configHome}/inkscape"
|
|
||||||
];
|
|
||||||
allowOther = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.libreoffice = {
|
|
||||||
enable = lib.mkEnableOption "enable libreoffice";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.libreoffice.enable (lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
libreoffice
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.mkIf osConfig.host.impermanence.enable {
|
|
||||||
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
||||||
directories = [
|
|
||||||
"${config.xdg.configHome}/libreoffice"
|
|
||||||
];
|
|
||||||
allowOther = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.programs.mapillary-uploader;
|
|
||||||
in {
|
|
||||||
options.programs.mapillary-uploader = {
|
|
||||||
enable = mkEnableOption "Mapillary Desktop Uploader";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home.packages = [pkgs.mapillary-uploader];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.mfoc = {
|
|
||||||
enable = lib.mkEnableOption "enable mfoc";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.mfoc.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
mfoc
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.noisetorch = {
|
|
||||||
enable = lib.mkEnableOption "enable noisetorch";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.noisetorch.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
noisetorch
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.onionshare = {
|
|
||||||
enable = lib.mkEnableOption "enable onionshare";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.onionshare.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
onionshare
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.openrgb = {
|
|
||||||
enable = lib.mkEnableOption "enable openrgb";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.openrgb.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
openrgb
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.openvpn = {
|
|
||||||
enable = lib.mkEnableOption "enable openvpn";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.openvpn.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
openvpn
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.pdfarranger = {
|
|
||||||
enable = lib.mkEnableOption "enable pdfarranger";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.pdfarranger.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
pdfarranger
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.picard = {
|
|
||||||
enable = lib.mkEnableOption "enable picard";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.picard.enable (lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
picard
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.mkIf osConfig.host.impermanence.enable {
|
|
||||||
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
||||||
directories = [
|
|
||||||
"${config.xdg.configHome}/MusicBrainz"
|
|
||||||
];
|
|
||||||
allowOther = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.proxmark3 = {
|
|
||||||
enable = lib.mkEnableOption "enable proxmark3";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.proxmark3.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
proxmark3
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.qflipper = {
|
|
||||||
enable = lib.mkEnableOption "enable qflipper";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.qflipper.enable (lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
qFlipper
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.mkIf osConfig.host.impermanence.enable {
|
|
||||||
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
||||||
directories = [
|
|
||||||
"${config.xdg.configHome}/qFlipper"
|
|
||||||
];
|
|
||||||
allowOther = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.tor-browser = {
|
|
||||||
enable = lib.mkEnableOption "enable tor-browser";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.tor-browser.enable (lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
tor-browser
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.mkIf osConfig.host.impermanence.enable {
|
|
||||||
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
||||||
directories = [
|
|
||||||
"${config.xdg.dataHome}/torbrowser"
|
|
||||||
];
|
|
||||||
allowOther = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.ungoogled-chromium = {
|
|
||||||
enable = lib.mkEnableOption "enable ungoogled-chromium";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.ungoogled-chromium.enable (lib.mkMerge [
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
ungoogled-chromium
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(
|
|
||||||
lib.mkIf osConfig.host.impermanence.enable {
|
|
||||||
home.persistence."/persist${config.home.homeDirectory}" = {
|
|
||||||
directories = [
|
|
||||||
"${config.xdg.configHome}/chromium"
|
|
||||||
];
|
|
||||||
allowOther = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.programs.via = {
|
|
||||||
enable = lib.mkEnableOption "enable via";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.programs.via.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
via
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
mcp-nixos = inputs.mcp-nixos.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
mcp-nixos = inputs.mcp-nixos.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||||
|
|
||||||
|
mcp-eslint = pkgs.writeShellScriptBin "mcp-eslint" ''
|
||||||
|
${pkgs.nodejs}/bin/npx --yes @modelcontextprotocol/server-eslint "$@"
|
||||||
|
'';
|
||||||
|
|
||||||
anyProfileHasMcpNixos = lib.any (
|
anyProfileHasMcpNixos = lib.any (
|
||||||
profile:
|
profile:
|
||||||
profile.extraExtensions.claudeDev.enable
|
profile.extraExtensions.claudeDev.enable
|
||||||
|
@ -21,44 +25,6 @@
|
||||||
profile.extraExtensions.claudeDev.enable
|
profile.extraExtensions.claudeDev.enable
|
||||||
&& profile.extraExtensions.claudeDev.mcp.eslint.enable
|
&& profile.extraExtensions.claudeDev.mcp.eslint.enable
|
||||||
) (lib.attrValues config.programs.vscode.profiles);
|
) (lib.attrValues config.programs.vscode.profiles);
|
||||||
|
|
||||||
anyProfileHasMcpVitest = lib.any (
|
|
||||||
profile:
|
|
||||||
profile.extraExtensions.claudeDev.enable
|
|
||||||
&& profile.extraExtensions.claudeDev.mcp.vitest.enable
|
|
||||||
) (lib.attrValues config.programs.vscode.profiles);
|
|
||||||
|
|
||||||
anyProfileHasMcpSleep = lib.any (
|
|
||||||
profile:
|
|
||||||
profile.extraExtensions.claudeDev.enable
|
|
||||||
&& profile.extraExtensions.claudeDev.mcp.sleep.enable
|
|
||||||
) (lib.attrValues config.programs.vscode.profiles);
|
|
||||||
|
|
||||||
anyProfileHasMcp = anyProfileHasMcpNixos || anyProfileHasMcpEslint || anyProfileHasMcpVitest || anyProfileHasMcpSleep;
|
|
||||||
|
|
||||||
getMcpTimeout = serverName:
|
|
||||||
lib.findFirst (timeout: timeout != null) null (map (
|
|
||||||
profile:
|
|
||||||
if profile.extraExtensions.claudeDev.enable && profile.extraExtensions.claudeDev.mcp.${serverName}.enable
|
|
||||||
then profile.extraExtensions.claudeDev.mcp.${serverName}.timeout
|
|
||||||
else null
|
|
||||||
) (lib.attrValues config.programs.vscode.profiles));
|
|
||||||
|
|
||||||
getMcpAutoApprove = serverName:
|
|
||||||
lib.foldl' (
|
|
||||||
acc: profile:
|
|
||||||
if profile.extraExtensions.claudeDev.enable && profile.extraExtensions.claudeDev.mcp.${serverName}.enable
|
|
||||||
then acc // profile.extraExtensions.claudeDev.mcp.${serverName}.autoApprove
|
|
||||||
else acc
|
|
||||||
) {} (lib.attrValues config.programs.vscode.profiles);
|
|
||||||
|
|
||||||
getMcpPackage = serverName:
|
|
||||||
lib.findFirst (package: package != null) null (map (
|
|
||||||
profile:
|
|
||||||
if profile.extraExtensions.claudeDev.enable && profile.extraExtensions.claudeDev.mcp.${serverName}.enable
|
|
||||||
then profile.extraExtensions.claudeDev.mcp.${serverName}.package
|
|
||||||
else null
|
|
||||||
) (lib.attrValues config.programs.vscode.profiles));
|
|
||||||
in {
|
in {
|
||||||
options.programs.vscode.profiles = lib.mkOption {
|
options.programs.vscode.profiles = lib.mkOption {
|
||||||
type = lib.types.attrsOf (lib.types.submodule ({config, ...}: {
|
type = lib.types.attrsOf (lib.types.submodule ({config, ...}: {
|
||||||
|
@ -75,53 +41,6 @@ in {
|
||||||
};
|
};
|
||||||
eslint = {
|
eslint = {
|
||||||
enable = lib.mkEnableOption "enable ESLint MCP server for Claude Dev";
|
enable = lib.mkEnableOption "enable ESLint MCP server for Claude Dev";
|
||||||
package = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "@eslint/mcp@latest";
|
|
||||||
description = "NPM package to use for ESLint MCP server";
|
|
||||||
};
|
|
||||||
timeout = lib.mkOption {
|
|
||||||
type = lib.types.nullOr lib.types.int;
|
|
||||||
default = null;
|
|
||||||
description = "Timeout in seconds for ESLint MCP server operations";
|
|
||||||
};
|
|
||||||
autoApprove = {
|
|
||||||
lint-files = lib.mkEnableOption "Should the lint-files tool be auto approved for ESLint MCP server";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
vitest = {
|
|
||||||
enable = lib.mkEnableOption "enable Vitest MCP server for Claude Dev";
|
|
||||||
package = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "@djankies/vitest-mcp";
|
|
||||||
description = "NPM package to use for Vitest MCP server";
|
|
||||||
};
|
|
||||||
timeout = lib.mkOption {
|
|
||||||
type = lib.types.nullOr lib.types.int;
|
|
||||||
default = null;
|
|
||||||
description = "Timeout in seconds for Vitest MCP server operations";
|
|
||||||
};
|
|
||||||
autoApprove = {
|
|
||||||
list_tests = lib.mkEnableOption "Should the list_tests tool be auto approved for Vitest MCP server";
|
|
||||||
run_tests = lib.mkEnableOption "Should the run_tests tool be auto approved for Vitest MCP server";
|
|
||||||
analyze_coverage = lib.mkEnableOption "Should the analyze_coverage tool be auto approved for Vitest MCP server";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
sleep = {
|
|
||||||
enable = lib.mkEnableOption "enable Sleep MCP server for Claude Dev";
|
|
||||||
package = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "sleep-mcp";
|
|
||||||
description = "NPM package to use for Sleep MCP server";
|
|
||||||
};
|
|
||||||
timeout = lib.mkOption {
|
|
||||||
type = lib.types.nullOr lib.types.int;
|
|
||||||
default = null;
|
|
||||||
description = "Timeout in seconds for Sleep MCP server operations";
|
|
||||||
};
|
|
||||||
autoApprove = {
|
|
||||||
sleep = lib.mkEnableOption "Should the sleep tool be auto approved for Sleep MCP server";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -141,7 +60,14 @@ in {
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf anyProfileHasMcp {
|
(lib.mkIf anyProfileHasMcpEslint {
|
||||||
|
home.packages = [
|
||||||
|
mcp-eslint
|
||||||
|
pkgs.eslint
|
||||||
|
];
|
||||||
|
})
|
||||||
|
|
||||||
|
(lib.mkIf (anyProfileHasMcpNixos || anyProfileHasMcpEslint) {
|
||||||
home.file."${config.xdg.configHome}/VSCodium/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json" = {
|
home.file."${config.xdg.configHome}/VSCodium/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json" = {
|
||||||
text = builtins.toJSON {
|
text = builtins.toJSON {
|
||||||
mcpServers =
|
mcpServers =
|
||||||
|
@ -151,43 +77,9 @@ in {
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
// (lib.optionalAttrs anyProfileHasMcpEslint {
|
// (lib.optionalAttrs anyProfileHasMcpEslint {
|
||||||
eslint =
|
eslint = {
|
||||||
{
|
command = "${mcp-eslint}/bin/mcp-eslint";
|
||||||
command = "${pkgs.nodejs}/bin/npx";
|
};
|
||||||
args = ["-y" (getMcpPackage "eslint")];
|
|
||||||
}
|
|
||||||
// (lib.optionalAttrs ((getMcpTimeout "eslint") != null) {
|
|
||||||
timeout = getMcpTimeout "eslint";
|
|
||||||
})
|
|
||||||
// (lib.optionalAttrs ((getMcpAutoApprove "eslint") != {}) {
|
|
||||||
autoApprove = builtins.attrNames (lib.filterAttrs (_: v: v) (getMcpAutoApprove "eslint"));
|
|
||||||
});
|
|
||||||
})
|
|
||||||
// (lib.optionalAttrs anyProfileHasMcpVitest {
|
|
||||||
vitest =
|
|
||||||
{
|
|
||||||
command = "${pkgs.nodejs}/bin/npx";
|
|
||||||
args = ["-y" (getMcpPackage "vitest")];
|
|
||||||
}
|
|
||||||
// (lib.optionalAttrs ((getMcpTimeout "vitest") != null) {
|
|
||||||
timeout = getMcpTimeout "vitest";
|
|
||||||
})
|
|
||||||
// (lib.optionalAttrs ((getMcpAutoApprove "vitest") != {}) {
|
|
||||||
autoApprove = builtins.attrNames (lib.filterAttrs (_: v: v) (getMcpAutoApprove "vitest"));
|
|
||||||
});
|
|
||||||
})
|
|
||||||
// (lib.optionalAttrs anyProfileHasMcpSleep {
|
|
||||||
sleep-mcp =
|
|
||||||
{
|
|
||||||
command = "${pkgs.nodejs}/bin/npx";
|
|
||||||
args = ["-y" (getMcpPackage "sleep")];
|
|
||||||
}
|
|
||||||
// (lib.optionalAttrs ((getMcpTimeout "sleep") != null) {
|
|
||||||
timeout = getMcpTimeout "sleep";
|
|
||||||
})
|
|
||||||
// (lib.optionalAttrs ((getMcpAutoApprove "sleep") != {}) {
|
|
||||||
autoApprove = builtins.attrNames (lib.filterAttrs (_: v: v) (getMcpAutoApprove "sleep"));
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
force = true;
|
force = true;
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
pkgsRepositories = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version;
|
|
||||||
pkgsRepository = pkgsRepositories.vscode-marketplace;
|
|
||||||
in {
|
|
||||||
options.programs.vscode.profiles = lib.mkOption {
|
|
||||||
type = lib.types.attrsOf (lib.types.submodule ({config, ...}: {
|
|
||||||
options = {
|
|
||||||
extraExtensions.conventionalCommits = {
|
|
||||||
enable = lib.mkEnableOption "Enable VSCode Conventional Commits extension";
|
|
||||||
extension = lib.mkPackageOption pkgsRepository "conventional-commits" {
|
|
||||||
default = ["vivaxy" "vscode-conventional-commits"];
|
|
||||||
};
|
|
||||||
|
|
||||||
gitmoji = lib.mkEnableOption "should emoji be prompted for as a part of the commit message./";
|
|
||||||
|
|
||||||
promptScopes = lib.mkEnableOption "prompting for scopes in conventional commits";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = lib.mkIf config.extraExtensions.conventionalCommits.enable {
|
|
||||||
extensions = [config.extraExtensions.conventionalCommits.extension];
|
|
||||||
|
|
||||||
userSettings = {
|
|
||||||
"conventionalCommits.gitmoji" = config.extraExtensions.conventionalCommits.gitmoji;
|
|
||||||
"conventionalCommits.promptScopes" = config.extraExtensions.conventionalCommits.promptScopes;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -21,7 +21,5 @@
|
||||||
./claudeDev.nix
|
./claudeDev.nix
|
||||||
./nearley.nix
|
./nearley.nix
|
||||||
./vitest.nix
|
./vitest.nix
|
||||||
./direnv.nix
|
|
||||||
./conventionalCommits.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
pkgsRepositories = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version;
|
|
||||||
pkgsRepository = pkgsRepositories.vscode-marketplace;
|
|
||||||
in {
|
|
||||||
options.programs.vscode.profiles = lib.mkOption {
|
|
||||||
type = lib.types.attrsOf (lib.types.submodule ({config, ...}: {
|
|
||||||
options = {
|
|
||||||
extraExtensions.direnv = {
|
|
||||||
enable = lib.mkEnableOption "Enable direnv extension";
|
|
||||||
extension = lib.mkPackageOption pkgsRepository "direnv" {
|
|
||||||
default = ["mkhl" "direnv"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = lib.mkIf config.extraExtensions.direnv.enable {
|
|
||||||
extensions = [config.extraExtensions.direnv.extension];
|
|
||||||
};
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -51,9 +51,10 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.paperless = {
|
services.paperless = {
|
||||||
domain = "${config.services.paperless.subdomain}.${config.host.reverse_proxy.hostname}";
|
|
||||||
configureTika = true;
|
configureTika = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
PAPERLESS_URL = "https://${config.services.paperless.subdomain}.${config.host.reverse_proxy.hostname}";
|
||||||
|
|
||||||
PAPERLESS_DBENGINE = "postgresql";
|
PAPERLESS_DBENGINE = "postgresql";
|
||||||
PAPERLESS_DBHOST = "/run/postgresql";
|
PAPERLESS_DBHOST = "/run/postgresql";
|
||||||
PAPERLESS_DBNAME = config.services.paperless.database.user;
|
PAPERLESS_DBNAME = config.services.paperless.database.user;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue