- Nix 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| .gitignore | ||
| alejandra.toml | ||
| flake.lock | ||
| flake.nix | ||
| module.nix | ||
| package.nix | ||
| README.md | ||
photogimp
A Nix flake for PhotoGIMP, the GIMP profile that rearranges the interface and keybindings to match Adobe Photoshop. All credit for PhotoGIMP itself goes to its authors; this repo is packaging only.
Usage
{
inputs.photogimp.url = "git+https://git.cumsek.com/flakes/photogimp";
}
Import the home-manager module and turn it on:
{
imports = [inputs.photogimp.homeModules.default];
programs.photogimp.enable = true;
}
That installs GIMP and seeds its profile. Nothing else to wire up.
Options
| Option | Default | Description |
|---|---|---|
programs.photogimp.enable |
false |
Install GIMP and seed the PhotoGIMP profile. |
programs.photogimp.package |
pkgs.gimp |
The GIMP to install. Set it to pin a different version — the profile directory follows whatever this resolves to. |
Why a module and not a package
There is no packages output, on purpose. PhotoGIMP is not a program, it is a
tree of config files, and GIMP only reads them from a writable
$XDG_CONFIG_HOME/GIMP/<major.minor>. A package in home.packages would land
in the profile under share/photogimp, where GIMP would never look at it.
Symlinking the tree in with xdg.configFile does not work either: GIMP rewrites
gimprc, sessionrc, contextrc, toolrc and tool-options/* every time it
exits, and those symlinks point into the read-only store. Pointing
GIMP3_DIRECTORY at the store path fails for the same reason.
So the profile has to be copied into a directory GIMP owns, and copied only
once — re-copying on every rebuild would silently throw away every preference
and window layout change made since the last one. The module's activation
script does that, guarded by a marker file. The marker names the PhotoGIMP
version and sits in the GIMP series directory, so either bump re-seeds; delete
~/.config/GIMP/3.2/.photogimp-3.1 to force a reset.
Updating
Bump version in package.nix to the new upstream tag, blank the hash, and
let the build report the correct one.
Checks
nix flake check -L
Evaluates the module in a throwaway home-manager configuration, builds the
profile and runs alejandra, deadnix and statix. CI runs the same command
and nothing else.
Licence
The packaging is trivial; PhotoGIMP itself is GPL-3.0-or-later, as recorded in
meta.license.