summaryrefslogtreecommitdiff
path: root/modules/home-manager
diff options
context:
space:
mode:
Diffstat (limited to 'modules/home-manager')
-rw-r--r--modules/home-manager/personal/default.nix9
-rw-r--r--modules/home-manager/personal/gui/x/i3/default.nix4
-rw-r--r--modules/home-manager/personal/gui/x/i3/startup.nix15
-rw-r--r--modules/home-manager/personal/identities.nix96
-rw-r--r--modules/home-manager/personal/profiles.nix94
-rw-r--r--modules/home-manager/personal/programs/git.nix23
6 files changed, 130 insertions, 111 deletions
diff --git a/modules/home-manager/personal/default.nix b/modules/home-manager/personal/default.nix
index dcd7500..3199c7f 100644
--- a/modules/home-manager/personal/default.nix
+++ b/modules/home-manager/personal/default.nix
@@ -1,7 +1,14 @@
{ ... }:
{
- imports = [ ./dotfiles ./environment.nix ./gui ./profiles.nix ./programs ];
+ imports = [
+ ./dotfiles
+ ./environment.nix
+ ./gui
+ ./identities.nix
+ ./profiles.nix
+ ./programs
+ ];
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
diff --git a/modules/home-manager/personal/gui/x/i3/default.nix b/modules/home-manager/personal/gui/x/i3/default.nix
index b802f25..d7ec295 100644
--- a/modules/home-manager/personal/gui/x/i3/default.nix
+++ b/modules/home-manager/personal/gui/x/i3/default.nix
@@ -25,10 +25,10 @@ in {
{ class = "MUBI"; }
{ class = "Deezer"; }
];
- } // lib.optionalAttrs config.personal.profiles.social.enable {
+ } // lib.optionalAttrs config.personal.profiles.social {
"9: social" = [ { class = "^Mail$"; } { class = "^thunderbird$"; } ]
++ lib.optional
- config.personal.profiles.social.identities.personal {
+ config.personal.identities.personal {
class = "^signal-desktop$";
};
} // {
diff --git a/modules/home-manager/personal/gui/x/i3/startup.nix b/modules/home-manager/personal/gui/x/i3/startup.nix
index f3b54a2..521b666 100644
--- a/modules/home-manager/personal/gui/x/i3/startup.nix
+++ b/modules/home-manager/personal/gui/x/i3/startup.nix
@@ -11,15 +11,8 @@
(autostart { command = "keepassxc"; })
]
++ autostartIf config.programs.thunderbird.enable { command = "thunderbird"; }
- ++ autostartIf (config.personal.profiles.social.enable
- && config.personal.profiles.social.identities.personal) {
- command = "signal-desktop";
- }
- # ++ autostartIf config.services.redshift.enable {
- # command = "systemctl --user start redshift";
- # }
- # ++ autostartIf config.services.xidlehook.enable {
- # command = "systemctl --user start xidlehook.service";
- # }
- ;
+ ++ autostartIf
+ (config.personal.profiles.social && config.personal.identities.personal) {
+ command = "signal-desktop";
+ };
}
diff --git a/modules/home-manager/personal/identities.nix b/modules/home-manager/personal/identities.nix
new file mode 100644
index 0000000..eb70e2b
--- /dev/null
+++ b/modules/home-manager/personal/identities.nix
@@ -0,0 +1,96 @@
+{ config, lib, pkgs, ... }:
+
+let
+ cfg = config.personal.identities;
+ mkEnableIdentityOption = name: lib.mkEnableOption "${name} identity";
+in {
+ options.personal.identities = {
+ personal = mkEnableIdentityOption "personal";
+ work = mkEnableIdentityOption "work";
+ };
+
+ config = {
+ accounts.email.accounts = let
+ gpg = {
+ key = "DFC1660846EEA97C059F18534EF515441E635D36";
+ signByDefault = true;
+ };
+ thunderbirdSettings = id: {
+ "mail.identity.id_${id}.fcc_folder_picker_mode" = 0;
+ };
+ in {
+ personal = lib.mkIf config.personal.identities.personal {
+ inherit gpg;
+ address = "quentin@aristote.fr";
+ userName = "quentin@aristote.fr";
+ realName = "Quentin Aristote";
+ folders = {
+ drafts = "INBOX/Brouillons";
+ inbox = "INBOX";
+ sent = "INBOX/Envoyés";
+ trash = "INBOX/Corbeille";
+ };
+ imap = {
+ host = "ssl0.ovh.net";
+ port = 993;
+ };
+ smtp = {
+ host = "ssl0.ovh.net";
+ port = 465;
+ };
+ thunderbird = {
+ enable = true;
+ profiles = [ "default" ];
+ settings = id:
+ thunderbirdSettings id // {
+ "mail.identity.id_${id}.draft_folder" =
+ "imap://quentin%40aristote.fr@ssl0.ovh.net/INBOX/Brouillons";
+ "mail.identity.id_${id}.fcc_folder" =
+ "imap://quentin%40aristote.fr@ssl0.ovh.net/INBOX/Envoy&AOk-s";
+ "mail.identity.id_${id}.archive_folder" =
+ "imap://quentin%40aristote.fr@ssl0.ovh.net/INBOX/Archive";
+ "mail.server.server_${id}.trash_folder_name" = "INBOX/Corbeille";
+ };
+ };
+ };
+ work = lib.mkIf config.personal.identities.work {
+ inherit gpg;
+ address = "quentin.aristote@ens.fr";
+ userName = "qaristote";
+ realName = "Quentin Aristote";
+ aliases = [
+ "quentin.aristote@ens.psl.eu"
+ "qaristote@clipper.ens.fr"
+ "qaristote@clipper.ens.psl.eu"
+ ];
+ folders = {
+ drafts = "Drafts";
+ inbox = "Inbox";
+ sent = "Sent";
+ trash = "Trash";
+ };
+ imap = {
+ host = "clipper.ens.fr";
+ port = 993;
+ };
+ smtp = {
+ host = "clipper.ens.fr";
+ port = 465;
+ };
+ thunderbird = {
+ enable = true;
+ profiles = [ "default" ];
+ settings = id:
+ thunderbirdSettings id // {
+ "mail.identity.id_${id}.archive_folder" =
+ "imap://qaristote@clipper.ens.fr/Archive";
+ "mail.server.server_${id}.trash_folder_name" = "Trash";
+ };
+ };
+ };
+ };
+
+ home.packages = lib.optionals cfg.personal (with pkgs; [ ])
+ ++ lib.optionals cfg.work (with pkgs; [ zotero ]);
+ };
+}
diff --git a/modules/home-manager/personal/profiles.nix b/modules/home-manager/personal/profiles.nix
index 0f66566..ffb3e3c 100644
--- a/modules/home-manager/personal/profiles.nix
+++ b/modules/home-manager/personal/profiles.nix
@@ -3,17 +3,10 @@
let
cfg = config.personal.profiles;
mkEnableProfileOption = name: lib.mkEnableOption "${name} profile";
- mkEnableIdentityOption = name: lib.mkEnableOption "${name} identity";
in {
options.personal.profiles = {
dev = mkEnableProfileOption "development";
- social = {
- enable = mkEnableProfileOption "social";
- identities = {
- personal = mkEnableIdentityOption "personal";
- work = mkEnableIdentityOption "work";
- };
- };
+ social = mkEnableProfileOption "social";
syncing = mkEnableProfileOption "syncing";
multimedia = mkEnableProfileOption "video";
};
@@ -80,95 +73,14 @@ in {
};
})
- (lib.mkIf cfg.social.enable {
+ (lib.mkIf cfg.social {
home.packages = with pkgs;
lib.optionals
- (config.personal.gui.enable && cfg.social.identities.personal)
+ (config.personal.gui.enable && config.personal.identities.personal)
[ signal-desktop ];
programs.thunderbird.enable = lib.mkDefault config.personal.gui.enable;
programs.gpg.enable = true;
services.gpg-agent.enable = true;
-
- accounts.email.accounts = let
- gpg = {
- key = "DFC1660846EEA97C059F18534EF515441E635D36";
- signByDefault = true;
- };
- thunderbirdSettings = id: {
- "mail.identity.id_${id}.fcc_folder_picker_mode" = 0;
- };
- in {
- personal = lib.mkIf cfg.social.identities.personal {
- inherit gpg;
- address = "quentin@aristote.fr";
- userName = "quentin@aristote.fr";
- realName = "Quentin Aristote";
- folders = {
- drafts = "INBOX/Brouillons";
- inbox = "INBOX";
- sent = "INBOX/Envoyés";
- trash = "INBOX/Corbeille";
- };
- imap = {
- host = "ssl0.ovh.net";
- port = 993;
- };
- smtp = {
- host = "ssl0.ovh.net";
- port = 465;
- };
- thunderbird = {
- enable = true;
- profiles = [ "default" ];
- settings = id:
- thunderbirdSettings id // {
- "mail.identity.id_${id}.draft_folder" =
- "imap://quentin%40aristote.fr@ssl0.ovh.net/INBOX/Brouillons";
- "mail.identity.id_${id}.fcc_folder" =
- "imap://quentin%40aristote.fr@ssl0.ovh.net/INBOX/Envoy&AOk-s";
- "mail.identity.id_${id}.archive_folder" =
- "imap://quentin%40aristote.fr@ssl0.ovh.net/INBOX/Archive";
- "mail.server.server_${id}.trash_folder_name" =
- "INBOX/Corbeille";
- };
- };
- };
- work = lib.mkIf cfg.social.identities.work {
- inherit gpg;
- address = "quentin.aristote@ens.fr";
- userName = "qaristote";
- realName = "Quentin Aristote";
- aliases = [
- "quentin.aristote@ens.psl.eu"
- "qaristote@clipper.ens.fr"
- "qaristote@clipper.ens.psl.eu"
- ];
- folders = {
- drafts = "Drafts";
- inbox = "Inbox";
- sent = "Sent";
- trash = "Trash";
- };
- imap = {
- host = "clipper.ens.fr";
- port = 993;
- };
- smtp = {
- host = "clipper.ens.fr";
- port = 465;
- };
- thunderbird = {
- enable = true;
- profiles = [ "default" ];
- settings = id:
- thunderbirdSettings id // {
- "mail.identity.id_${id}.archive_folder" =
- "imap://qaristote@clipper.ens.fr/Archive";
- "mail.server.server_${id}.trash_folder_name" = "Trash";
- };
- };
- };
- };
})
(lib.mkIf cfg.syncing {
diff --git a/modules/home-manager/personal/programs/git.nix b/modules/home-manager/personal/programs/git.nix
index 578f6a7..85ce0e4 100644
--- a/modules/home-manager/personal/programs/git.nix
+++ b/modules/home-manager/personal/programs/git.nix
@@ -1,13 +1,24 @@
-{ lib, pkgs, ... }:
+{ config, lib, pkgs, ... }:
-{
- programs.git = {
+let
+ primaryEmail = let
+ primaryEmailList = builtins.filter (account: account.primary)
+ (lib.attrValues config.accounts.email.accounts);
+ in if primaryEmailList == [ ] then {
userName = lib.mkDefault "Quentin Aristote";
- userEmail = lib.mkDefault "quentin@aristote.fr";
+ address = lib.mkDefault "quentin@aristote.fr";
+ } else
+ builtins.head primaryEmailList;
+in {
+ programs.git = {
+ userName = primaryEmail.userName;
+ userEmail = primaryEmail.address;
+ signing = lib.mkIf (primaryEmail ? "gpg") {
+ inherit (primaryEmail.gpg) key signByDefault;
+ };
ignores = builtins.map builtins.readFile
- (with pkgs.personal.static.gitignore; [ direnv emacs linux ])
- ++ [
+ (with pkgs.personal.static.gitignore; [ direnv emacs linux ]) ++ [
# Personal rules
''
# Nix