nixos-config/modules/desktop/graphics.nix
Gabriel Arazas 49592d7f01 Use the unstable version for the nth time
I also fixed the long-time occuring error when using the newest version
of the channel (or the unstable one). It turns out to be a simple type
error with the `my.user' attribute. (To be honest the error messages are
quite horrible.)

On another note, I also accidentally bricked my NixOS setup after a
garbage collection and a horrible update. The breakage includes not
being able to use any of the builtin tools of Nix (e.g., nix, nix-env,
nixos-rebuild) due to a shared library error that has been garbage
collected. Which means I have to reinstall it.
(I seem to have a talent for breaking things, if only I'm paid for it.)
2020-10-05 09:38:58 +08:00

49 lines
1.5 KiB
Nix
Executable File

# Being a hack fraud in "jack of all trades, master of none" thing, I also create "graphics".
# This includes tools for raster, vector, and 3D modelling.
{ config, options, lib, pkgs, ... }:
with lib;
let
cfg = config.modules.desktop.graphics;
in {
options.modules.desktop.graphics =
let mkBoolDefault = bool: mkOption {
type = types.bool;
default = bool;
}; in {
programmable.enable = mkBoolDefault false;
raster.enable = mkBoolDefault false;
vector.enable = mkBoolDefault false;
_3d.enable = mkBoolDefault false;
};
config = {
my.packages = with pkgs;
[
font-manager # Self-explanatory name is self-explanatory.
imagemagick7 # A command-line tool for manipulating images.
graphviz # The biz central for graphical flowcharts.
] ++
(if cfg.programmable.enable then [
processing # A visually-oriented language with an energertic train conductor as the mascot.
] else []) ++
(if cfg.raster.enable then [
gimp # Adobe Photoshop replacement.
krita # A good painting program useful for "pure" digital arts.
aseprite-unfree # A pixel art editor.
] else []) ++
(if cfg.vector.enable then [
inkscape # Adobe Illustrator (or Affinity Designer) replacement.
] else []) ++
(if cfg._3d.enable then [
blender # It's a great 3D model editor.
goxel # It's a great voxel editor.
] else []);
};
}