From aa2d8ac9870732bcf675893af9b5eda146bf05f1 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Thu, 5 Nov 2020 14:39:02 +0800 Subject: [PATCH] More tweaks, more fun! --- hosts/zilch/default.nix | 5 +++++ modules/desktop/audio.nix | 3 ++- modules/desktop/browsers.nix | 3 ++- modules/desktop/cad.nix | 8 ++++++-- modules/desktop/files.nix | 3 ++- modules/desktop/fonts.nix | 8 ++++++-- modules/desktop/graphics.nix | 6 ++++-- modules/desktop/multimedia.nix | 8 ++++++-- modules/desktop/research.nix | 8 ++++++-- modules/dev/android.nix | 11 +++++++++-- modules/dev/base.nix | 8 ++++++-- modules/dev/cc.nix | 8 ++++++-- modules/dev/data.nix | 1 + modules/dev/documentation.nix | 3 ++- modules/dev/gamedev.nix | 3 ++- modules/dev/go.nix | 3 ++- modules/dev/java.nix | 3 ++- modules/dev/lisp.nix | 3 ++- modules/dev/math.nix | 3 ++- modules/dev/perl.nix | 13 +++++++++++-- modules/dev/python.nix | 3 ++- modules/dev/rust.nix | 3 ++- modules/dev/vcs.nix | 3 ++- modules/dev/web.nix | 4 +++- modules/shell/base.nix | 8 ++++++-- modules/shell/lf.nix | 8 ++++++-- modules/shell/zsh.nix | 8 ++++++-- 27 files changed, 111 insertions(+), 37 deletions(-) diff --git a/hosts/zilch/default.nix b/hosts/zilch/default.nix index b04731de..1637499a 100755 --- a/hosts/zilch/default.nix +++ b/hosts/zilch/default.nix @@ -90,6 +90,7 @@ fonts.enable = true; files.enable = true; graphics = { + enable = true; raster.enable = true; vector.enable = true; _3d.enable = true; @@ -123,6 +124,10 @@ }; math.enable = true; perl.enable = true; + perl = { + enable = true; + raku.enable = true; + }; python = { enable = true; math.enable = true; diff --git a/modules/desktop/audio.nix b/modules/desktop/audio.nix index 64b64554..35c29281 100755 --- a/modules/desktop/audio.nix +++ b/modules/desktop/audio.nix @@ -5,7 +5,8 @@ with lib; -let cfg = config.modules.desktop.audio; +let + cfg = config.modules.desktop.audio; in { options.modules.desktop.audio = let mkBoolDefault = bool: diff --git a/modules/desktop/browsers.nix b/modules/desktop/browsers.nix index d6022dd2..f8c6a12d 100755 --- a/modules/desktop/browsers.nix +++ b/modules/desktop/browsers.nix @@ -3,7 +3,8 @@ with lib; -let cfg = config.modules.desktop.browsers; +let + cfg = config.modules.desktop.browsers; in { options.modules.desktop.browsers = let mkBoolDefault = bool: diff --git a/modules/desktop/cad.nix b/modules/desktop/cad.nix index 5d3b8865..363a0e55 100755 --- a/modules/desktop/cad.nix +++ b/modules/desktop/cad.nix @@ -1,7 +1,11 @@ # Even if my designs are computer-aided, it's still horrible. :( { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.desktop.cad; +in { options.modules.desktop.cad = { enable = mkOption { type = types.bool; @@ -9,7 +13,7 @@ with lib; { }; }; - config = mkIf config.modules.desktop.cad.enable { + config = mkIf cfg.enable { my.packages = with pkgs; [ freecad # FREE AS A BIRD, FREE AS A ALL-YOU-CAN-EAT BUFFER! #kicad # The CAD for ki which is a form of energy found everywhere. diff --git a/modules/desktop/files.nix b/modules/desktop/files.nix index 1e693d62..bae64d22 100755 --- a/modules/desktop/files.nix +++ b/modules/desktop/files.nix @@ -3,7 +3,8 @@ with lib; -let cfg = config.modules.desktop.files; +let + cfg = config.modules.desktop.files; in { options.modules.desktop.files = { enable = mkOption { diff --git a/modules/desktop/fonts.nix b/modules/desktop/fonts.nix index 0d3a5cbf..7a9269bd 100755 --- a/modules/desktop/fonts.nix +++ b/modules/desktop/fonts.nix @@ -1,7 +1,11 @@ # My selection of fonts for this setup. { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.desktop.fonts; +in { options.modules.desktop.fonts = { enable = mkOption { type = types.bool; @@ -9,7 +13,7 @@ with lib; { }; }; - config = mkIf config.modules.desktop.fonts.enable { + config = mkIf cfg.enable { # Enable fontconfig to easily discover fonts installed from home-manager. fonts = { fontDir.enable = true; diff --git a/modules/desktop/graphics.nix b/modules/desktop/graphics.nix index 817c53c1..a47d85db 100755 --- a/modules/desktop/graphics.nix +++ b/modules/desktop/graphics.nix @@ -4,7 +4,8 @@ with lib; -let cfg = config.modules.desktop.graphics; +let + cfg = config.modules.desktop.graphics; in { options.modules.desktop.graphics = let mkBoolDefault = bool: @@ -13,13 +14,14 @@ in { default = bool; }; in { + enable = mkBoolDefault false; programmable.enable = mkBoolDefault false; raster.enable = mkBoolDefault false; vector.enable = mkBoolDefault false; _3d.enable = mkBoolDefault false; }; - config = { + config = mkIf cfg.enable { my.packages = with pkgs; [ font-manager # Self-explanatory name is self-explanatory. diff --git a/modules/desktop/multimedia.nix b/modules/desktop/multimedia.nix index 592934d1..07b07e96 100755 --- a/modules/desktop/multimedia.nix +++ b/modules/desktop/multimedia.nix @@ -1,7 +1,11 @@ # Muh consumer applications... { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.desktop.multimedia; +in { options.modules.desktop.multimedia = { enable = mkOption { type = types.bool; @@ -9,7 +13,7 @@ with lib; { }; }; - config = mkIf config.modules.desktop.multimedia.enable { + config = mkIf cfg.enable { my.packages = with pkgs; [ ffmpeg # The ultimate multimedia toolkit for everybody! hexchat # The ultimate IRC client for neckbeards. diff --git a/modules/desktop/research.nix b/modules/desktop/research.nix index 6f5e24ac..b41f4e35 100755 --- a/modules/desktop/research.nix +++ b/modules/desktop/research.nix @@ -1,7 +1,11 @@ # I'm not in academia but I like managing my library resources. { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.desktop.research; +in { options.modules.desktop.research = { enable = mkOption { type = types.bool; @@ -9,7 +13,7 @@ with lib; { }; }; - config = mkIf config.modules.desktop.research.enable { + config = mkIf cfg.enable { my.packages = with pkgs; [ exiftool # A file metadata reader/writer/helicopter. zotero # An academic's best friend. diff --git a/modules/dev/android.nix b/modules/dev/android.nix index 9f376519..3513c038 100755 --- a/modules/dev/android.nix +++ b/modules/dev/android.nix @@ -1,7 +1,11 @@ # Android is the mobile version of Linux. { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.dev.android; +in { options.modules.dev.android = { enable = mkOption { type = types.bool; @@ -9,7 +13,7 @@ with lib; { }; }; - config = mkIf config.modules.dev.android.enable { + config = mkIf cfg.enable { my.packages = with pkgs; [ android-studio # The apartment for Android development. dart # It's JavaScript except saner and slimmer. @@ -21,6 +25,9 @@ with lib; { # Enable Android Debug Bridge for some device debugging. programs.adb.enable = true; + # Install Anbox emulation. + virtualisation.anbox.enable = true; + my.user.extraGroups = [ "adbusers" ]; }; } diff --git a/modules/dev/base.nix b/modules/dev/base.nix index 95ac859a..1bd330f4 100755 --- a/modules/dev/base.nix +++ b/modules/dev/base.nix @@ -1,7 +1,11 @@ # The utmost requirements for a development workflow. { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.dev.base; +in { options.modules.dev.base = { enable = mkOption { type = types.bool; @@ -9,7 +13,7 @@ with lib; { }; }; - config = mkIf config.modules.dev.base.enable { + config = mkIf cfg.enable { my.packages = with pkgs; [ caddy # THE ULTIMATE HTTPS/2 SERVER FOR 'YER GOLFIN' SESSIONS!!! cmake # Yo, I heard you like Makefiles. diff --git a/modules/dev/cc.nix b/modules/dev/cc.nix index b73d5396..3860bffd 100755 --- a/modules/dev/cc.nix +++ b/modules/dev/cc.nix @@ -1,7 +1,11 @@ # My stuff for C and C++. { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.dev.cc; +in { options.modules.dev.cc = { enable = mkOption { type = types.bool; @@ -9,7 +13,7 @@ with lib; { }; }; - config = mkIf config.modules.dev.cc.enable { + config = mkIf cfg.enable { my.packages = with pkgs; [ cmake # Yo dawg, I heard you like Make. # clang # A C compiler frontend for LLVM. diff --git a/modules/dev/data.nix b/modules/dev/data.nix index 3a164c61..62b6d79a 100755 --- a/modules/dev/data.nix +++ b/modules/dev/data.nix @@ -2,6 +2,7 @@ { config, options, lib, pkgs, ... }: with lib; + let cfg = config.modules.dev.data; in { diff --git a/modules/dev/documentation.nix b/modules/dev/documentation.nix index 22452a97..eb68e21c 100755 --- a/modules/dev/documentation.nix +++ b/modules/dev/documentation.nix @@ -5,7 +5,8 @@ with lib; -let cfg = config.modules.dev.documentation; +let + cfg = config.modules.dev.documentation; in { options.modules.dev.documentation = let mkBoolOption = bool: diff --git a/modules/dev/gamedev.nix b/modules/dev/gamedev.nix index 423d63f9..fe0f646f 100755 --- a/modules/dev/gamedev.nix +++ b/modules/dev/gamedev.nix @@ -4,7 +4,8 @@ with lib; -let cfg = config.modules.dev.game-dev; +let + cfg = config.modules.dev.game-dev; in { options.modules.dev.game-dev = let mkBoolOption = bool: diff --git a/modules/dev/go.nix b/modules/dev/go.nix index e2e81b1e..29ec15d7 100755 --- a/modules/dev/go.nix +++ b/modules/dev/go.nix @@ -3,7 +3,8 @@ with lib; -let cfg = config.modules.dev.go; +let + cfg = config.modules.dev.go; in { options.modules.dev.go = { enable = mkOption { diff --git a/modules/dev/java.nix b/modules/dev/java.nix index a654a731..bfce3796 100755 --- a/modules/dev/java.nix +++ b/modules/dev/java.nix @@ -4,7 +4,8 @@ with lib; -let cfg = config.modules.dev.java; +let + cfg = config.modules.dev.java; in { options.modules.dev.java = { enable = mkOption { diff --git a/modules/dev/lisp.nix b/modules/dev/lisp.nix index 773222cc..64ceca60 100755 --- a/modules/dev/lisp.nix +++ b/modules/dev/lisp.nix @@ -5,7 +5,8 @@ with lib; -let cfg = config.modules.dev.lisp; +let + cfg = config.modules.dev.lisp; in { options.modules.dev.lisp = let mkBoolDefault = bool: diff --git a/modules/dev/math.nix b/modules/dev/math.nix index 21c130c2..63af244c 100755 --- a/modules/dev/math.nix +++ b/modules/dev/math.nix @@ -3,7 +3,8 @@ with lib; -let cfg = config.modules.dev.math; +let + cfg = config.modules.dev.math; in { options.modules.dev.math = let mkEnableOption = mkOption { diff --git a/modules/dev/perl.nix b/modules/dev/perl.nix index d7ff6647..55904fdd 100755 --- a/modules/dev/perl.nix +++ b/modules/dev/perl.nix @@ -3,6 +3,7 @@ with lib; let + cfg = config.modules.dev.perl; perlWithPackages = pkgs.perl.withPackages (p: with pkgs.perlPackages; [ ModuleBuild @@ -16,8 +17,16 @@ in { type = types.bool; default = false; }; + + raku.enable = mkOption { + type = types.bool; + default = false; + }; }; - config = - mkIf config.modules.dev.perl.enable { my.packages = [ perlWithPackages ]; }; + config = mkIf cfg.enable { + my.packages = [ perlWithPackages ] + ++ (if cfg.raku.enable then [ + rakudo + ] else []); }; } diff --git a/modules/dev/python.nix b/modules/dev/python.nix index 187fd574..b277b0f6 100755 --- a/modules/dev/python.nix +++ b/modules/dev/python.nix @@ -5,7 +5,8 @@ with lib; -let cfg = config.modules.dev.python; +let + cfg = config.modules.dev.python; in { options.modules.dev.python = let mkBoolOption = bool: diff --git a/modules/dev/rust.nix b/modules/dev/rust.nix index f8884caa..3c36b69d 100755 --- a/modules/dev/rust.nix +++ b/modules/dev/rust.nix @@ -4,7 +4,8 @@ with lib; -let cfg = config.modules.dev.rust; +let + cfg = config.modules.dev.rust; in { options.modules.dev.rust = { enable = mkOption { diff --git a/modules/dev/vcs.nix b/modules/dev/vcs.nix index 4dfed03d..f00d911e 100755 --- a/modules/dev/vcs.nix +++ b/modules/dev/vcs.nix @@ -3,7 +3,8 @@ with lib; -let cfg = config.modules.dev.vcs; +let + cfg = config.modules.dev.vcs; in { options.modules.dev.vcs = { enable = mkOption { diff --git a/modules/dev/web.nix b/modules/dev/web.nix index 9e02fbe7..a5b26556 100755 --- a/modules/dev/web.nix +++ b/modules/dev/web.nix @@ -5,7 +5,9 @@ { config, options, lib, pkgs, ... }: with lib; -let cfg = config.modules.dev.web; + +let + cfg = config.modules.dev.web; in { options.modules.dev.web = let mkBoolOption = bool: diff --git a/modules/shell/base.nix b/modules/shell/base.nix index 24584f3f..1dbc6750 100755 --- a/modules/shell/base.nix +++ b/modules/shell/base.nix @@ -1,7 +1,11 @@ # Here are the base packages for my shell workflow. { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.shell.base; +in { options.modules.shell.base = { enable = mkOption { type = types.bool; @@ -9,7 +13,7 @@ with lib; { }; }; - config = mkIf config.modules.shell.base.enable { + config = mkIf cfg.enable { my.packages = with pkgs; [ aria2 # The sequel to aria(1). aspell # Hunt down a spelling bee champion to come to your shell. diff --git a/modules/shell/lf.nix b/modules/shell/lf.nix index b21293de..fd45cdc5 100755 --- a/modules/shell/lf.nix +++ b/modules/shell/lf.nix @@ -1,7 +1,11 @@ # A file manager for hipsters. { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.shell.lf; +in { options.modules.shell.lf = { enable = mkOption { type = types.bool; @@ -9,7 +13,7 @@ with lib; { }; }; - config = mkIf config.modules.shell.lf.enable { + config = mkIf cfg.enable { my.packages = with pkgs; [ lf ]; my.home.xdg.configFile."lf" = { diff --git a/modules/shell/zsh.nix b/modules/shell/zsh.nix index b0018589..12a74801 100755 --- a/modules/shell/zsh.nix +++ b/modules/shell/zsh.nix @@ -1,7 +1,11 @@ # The Zoomer shell is cool for them prompts. { config, options, lib, pkgs, ... }: -with lib; { +with lib; + +let + cfg = config.modules.shell.zsh; +in { options.modules.shell.zsh = { enable = mkOption { type = types.bool; @@ -10,7 +14,7 @@ with lib; { }; # Going to use the home-manager module for zsh since it is cool. - config = mkIf config.modules.shell.zsh.enable { + config = mkIf cfg.enable { programs.zsh = { enable = true; enableCompletion = true;