summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorquentin@aristote.fr <quentin@aristote.fr>2023-12-03 23:15:00 +0100
committerquentin@aristote.fr <quentin@aristote.fr>2023-12-04 22:20:21 +0100
commitc62c1c07b9acaebc4d51d8464d35fd0c3b0dfc20 (patch)
tree28989a521936fbcba4ab5b6eb1b1bd837f6e8e22 /modules
parentca9db4b2c2d72e57e8ddbf586606ca4ad646831e (diff)
home: dev: add devenv package
Diffstat (limited to 'modules')
-rw-r--r--modules/home-manager/personal/profiles.nix22
-rw-r--r--modules/home-manager/personal/programs/default.nix1
-rw-r--r--modules/home-manager/personal/programs/devenv.nix21
-rw-r--r--modules/nixos/personal/user.nix4
4 files changed, 38 insertions, 10 deletions
diff --git a/modules/home-manager/personal/profiles.nix b/modules/home-manager/personal/profiles.nix
index ffb3e3c..39d3ec2 100644
--- a/modules/home-manager/personal/profiles.nix
+++ b/modules/home-manager/personal/profiles.nix
@@ -1,6 +1,9 @@
-{ config, lib, pkgs, ... }:
-
-let
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
cfg = config.personal.profiles;
mkEnableProfileOption = name: lib.mkEnableOption "${name} profile";
in {
@@ -13,13 +16,14 @@ in {
config = lib.mkMerge [
(lib.mkIf cfg.dev {
- home.packages = with pkgs; [ python3 ];
+ home.packages = with pkgs; [python3];
programs = {
alacritty.enable = lib.mkDefault config.personal.gui.enable;
direnv.enable = lib.mkDefault true;
emacs.enable = lib.mkDefault true;
git.enable = lib.mkDefault true;
};
+ personal.programs.devenv.enable = true;
home.shellAliases = {
mkenv = ''
@@ -41,7 +45,7 @@ in {
})
(lib.mkIf cfg.multimedia {
- home.packages = with pkgs; [ pavucontrol transmission-gtk vlc ];
+ home.packages = with pkgs; [pavucontrol transmission-gtk vlc];
personal = {
gui.enable = lib.mkForce true;
firefox.webapps = [
@@ -51,7 +55,7 @@ in {
icon = "${pkgs.personal.static.icons.netflix}";
comment = "Unlimited movies, TV shows, and more.";
url = "https://www.netflix.com/fr-en/login";
- categories = [ "AudioVideo" "Video" "Player" ];
+ categories = ["AudioVideo" "Video" "Player"];
}
{
name = "MUBI";
@@ -59,7 +63,7 @@ in {
icon = "${pkgs.personal.static.icons.mubi}";
comment = "Watch hand-picked cinema.";
url = "https://mubi.com";
- categories = [ "AudioVideo" "Video" "Player" ];
+ categories = ["AudioVideo" "Video" "Player"];
}
{
name = "Deezer";
@@ -67,7 +71,7 @@ in {
icon = "${pkgs.personal.static.icons.deezer}";
comment = "Listen to music online";
url = "https://deezer.com/login";
- categories = [ "AudioVideo" "Audio" "Player" "Music" ];
+ categories = ["AudioVideo" "Audio" "Player" "Music"];
}
];
};
@@ -77,7 +81,7 @@ in {
home.packages = with pkgs;
lib.optionals
(config.personal.gui.enable && config.personal.identities.personal)
- [ signal-desktop ];
+ [signal-desktop];
programs.thunderbird.enable = lib.mkDefault config.personal.gui.enable;
programs.gpg.enable = true;
services.gpg-agent.enable = true;
diff --git a/modules/home-manager/personal/programs/default.nix b/modules/home-manager/personal/programs/default.nix
index 8b3ba16..5050749 100644
--- a/modules/home-manager/personal/programs/default.nix
+++ b/modules/home-manager/personal/programs/default.nix
@@ -3,6 +3,7 @@
{
imports = [
./alacritty.nix
+ ./devenv.nix
./direnv.nix
./emacs.nix
./firefox
diff --git a/modules/home-manager/personal/programs/devenv.nix b/modules/home-manager/personal/programs/devenv.nix
new file mode 100644
index 0000000..0a93276
--- /dev/null
+++ b/modules/home-manager/personal/programs/devenv.nix
@@ -0,0 +1,21 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+} @ extraArgs: let
+ cfg = config.personal.programs.devenv;
+ importedDevenv = extraArgs ? devenv;
+in {
+ options.personal.programs.devenv.enable = lib.mkEnableOption "devenv";
+
+ config = lib.mkIf cfg.enable {
+ assertions = [
+ {
+ assertion = importedDevenv;
+ message = "attribute devenv missing: add it in home-manager's special args, or set config.personal.devenv.enable to false";
+ }
+ ];
+ home.packages = lib.optional importedDevenv extraArgs.devenv.packages.${pkgs.system}.devenv;
+ };
+}
diff --git a/modules/nixos/personal/user.nix b/modules/nixos/personal/user.nix
index 0cb308a..78c6765 100644
--- a/modules/nixos/personal/user.nix
+++ b/modules/nixos/personal/user.nix
@@ -43,7 +43,9 @@ in {
useGlobalPkgs = lib.mkDefault true;
useUserPackages = lib.mkDefault true;
# TODO fix this: only config.personal options seem to be passed (or not ?)
- extraSpecialArgs.osConfig = lib.mkDefault config;
+ extraSpecialArgs = (extraArgs.homeSpecialArgs or {}) // {
+ osConfig = lib.mkDefault config;
+ };
};
});
}