Update config and add a Nix module for CADs

This commit is contained in:
Gabriel Arazas 2020-08-30 23:27:12 +08:00
parent 6ef087a067
commit 31b1a6b63b
6 changed files with 38 additions and 5 deletions

View File

@ -50,6 +50,11 @@ If we're to install this setup at separate times, the full list of installed pac
* It may use third-party channels for certain versions of the packages, hammering the first precaution even further regarding reproducibility.
* The main user configuration is tightly integrated with the system configuration.
In other words, all upgrades would have to affect the entire system.
If you want separate user profiles (just like how Nix intended to be) with each user having its own pace of upgrading their local system, you're missing out with this config setup.
That said, it is still possible to create user profiles by just declaring the user in `./hosts/$HOST/default.nix` (e.g., `users.users.$USERNAME`), leaving it blank, and configure it at your own pace in `$HOME`.

View File

@ -157,6 +157,7 @@
maim
(tesseract.override { enableLanguages = [ "eng" ]; })
slop
xclip
xdg-user-dirs
zbar
];
@ -183,7 +184,12 @@
};
# Install a proprietary Nvidia graphics driver.
services.xserver.videoDrivers = [ "nvidiaLegacy390" ];
services.xserver = {
libinput = {
middleEmulation = true;
};
videoDrivers = [ "nvidiaLegacy390" ];
};
# Enable sound.
sound.enable = true;

21
modules/desktop/cad.nix Executable file
View File

@ -0,0 +1,21 @@
# Even if my designs are computer-aided, it's still horrible.
{ config, options, lib, pkgs, ... }:
with lib;
let
cfg = config.modules.desktop.music;
in {
options.modules.desktop.music = {
enable = mkOption {
type = types.bool;
default = false;
};
};
config = {
my.packages = with pkgs; [
freecad # FREE AS A BIRD, FREE AS A ALL-YOU-CAN-EAT BUFFER!
leocad # A CAD for leos, a well-known brand of toys.
};
}

View File

@ -4,6 +4,7 @@
{
imports = [
./browsers.nix
./cad.nix
./files.nix
./fonts.nix
./graphics.nix

View File

@ -19,13 +19,13 @@ in {
my.packages = with pkgs;
(if cfg.composition.enable then [
lilypond # Prevent your compositions to be forever lost when you're in grave by engraving them now (or whenever you feel like it).
musescore # A music composer for creating musical cheatsheets.
unstable.musescore # A music composer for creating musical cheatsheets.
soundfont-fluid # A soundfont for it or something.
supercollider # Programming platform for synthesizing them 'zics.
unstable.supercollider # Programming platform for synthesizing them 'zics.
] else []) ++
(if cfg.production.enable then [
ardour # A DAW focuses on hardware recording but it can be used for something else.
unstable.ardour # A DAW focuses on hardware recording but it can be used for something else.
audacity # Belongs in the great city of "Simple tools for short audio samples".
carla # A plugin host useful for a consistent hub for them soundfonts and SFZs.
fluidsynth # Synth for fluid sounds.

View File

@ -15,7 +15,7 @@ with lib;
# Just make sure the unstable version of Emacs is available as a package by creating an overlay.
pkg = mkOption {
type = types.package;
default = pkgs.emacs;
default = pkgs.unstable.emacs;
};
};