summaryrefslogtreecommitdiff
path: root/modules/home-manager/personal/programs
diff options
context:
space:
mode:
authoraristote <quentin.aristote@irif.fr>2025-07-29 15:25:11 +0200
committeraristote <quentin.aristote@irif.fr>2025-07-29 15:25:11 +0200
commitfc019d789523ce5f89436b8dbc458cf3b79abf43 (patch)
treeec56fd1b1ed9fc75096c0b09db48a152975e4d53 /modules/home-manager/personal/programs
parenta3d19bc509d9f39fb41256cd55d2bd7706de202f (diff)
reformat everything with nixfmt
Diffstat (limited to 'modules/home-manager/personal/programs')
-rw-r--r--modules/home-manager/personal/programs/alacritty.nix21
-rw-r--r--modules/home-manager/personal/programs/devenv.nix8
-rw-r--r--modules/home-manager/personal/programs/direnv.nix20
-rw-r--r--modules/home-manager/personal/programs/emacs.nix75
-rw-r--r--modules/home-manager/personal/programs/firefox/default.nix305
-rw-r--r--modules/home-manager/personal/programs/firefox/engines.nix87
-rw-r--r--modules/home-manager/personal/programs/firefox/userjs.nix15
-rw-r--r--modules/home-manager/personal/programs/git.nix81
-rw-r--r--modules/home-manager/personal/programs/rofi.nix22
-rw-r--r--modules/home-manager/personal/programs/thunderbird.nix10
10 files changed, 388 insertions, 256 deletions
diff --git a/modules/home-manager/personal/programs/alacritty.nix b/modules/home-manager/personal/programs/alacritty.nix
index 94193e8..201fe29 100644
--- a/modules/home-manager/personal/programs/alacritty.nix
+++ b/modules/home-manager/personal/programs/alacritty.nix
@@ -2,20 +2,19 @@
{
programs.alacritty.settings = {
- window = {
- padding = {
- x = 10;
- y = 10;
- };
- dimensions = {
- lines = 75;
- columns = 100;
- };
+ window = {
+ padding = {
+ x = 10;
+ y = 10;
};
+ dimensions = {
+ lines = 75;
+ columns = 100;
+ };
+ };
- font = lib.mkForce { size = 8.0; };
+ font = lib.mkForce { size = 8.0; };
};
xsession.windowManager.i3.config.terminal = lib.mkIf config.programs.alacritty.enable "alacritty";
}
-
diff --git a/modules/home-manager/personal/programs/devenv.nix b/modules/home-manager/personal/programs/devenv.nix
index b41d0cb..dbe5aab 100644
--- a/modules/home-manager/personal/programs/devenv.nix
+++ b/modules/home-manager/personal/programs/devenv.nix
@@ -3,10 +3,12 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.personal.programs.devenv;
- importedDevenv = pkgs ? devenv; #
-in {
+ importedDevenv = pkgs ? devenv;
+in
+{
options.personal.programs.devenv.enable = lib.mkEnableOption "devenv";
config = lib.mkIf cfg.enable {
diff --git a/modules/home-manager/personal/programs/direnv.nix b/modules/home-manager/personal/programs/direnv.nix
index fe1662d..1cb4ea9 100644
--- a/modules/home-manager/personal/programs/direnv.nix
+++ b/modules/home-manager/personal/programs/direnv.nix
@@ -3,17 +3,18 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.programs.direnv;
-in {
+in
+{
programs.direnv.nix-direnv.enable = true;
- systemd.user =
- lib.mkIf cfg.enable
- (pkgs.personal.lib.homeManager.serviceWithTimer "direnv-clean-update" {
+ systemd.user = lib.mkIf cfg.enable (
+ pkgs.personal.lib.homeManager.serviceWithTimer "direnv-clean-update" {
Unit = {
Description = "Remove old virtual environments and update the current ones";
- After = ["network-online.target"];
+ After = [ "network-online.target" ];
};
Service = {
Type = "oneshot";
@@ -30,6 +31,9 @@ in {
Persistent = true;
OnCalendar = "daily";
};
- Install = {WantedBy = ["default.target "];};
- });
+ Install = {
+ WantedBy = [ "default.target " ];
+ };
+ }
+ );
}
diff --git a/modules/home-manager/personal/programs/emacs.nix b/modules/home-manager/personal/programs/emacs.nix
index da0c07f..da30cd2 100644
--- a/modules/home-manager/personal/programs/emacs.nix
+++ b/modules/home-manager/personal/programs/emacs.nix
@@ -1,12 +1,21 @@
-{ config, lib, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
let
cfg = config.programs.emacs;
- spacemacs-update-script = pkgs.callPackage ({ emacs, git }:
+ spacemacs-update-script = pkgs.callPackage (
+ { emacs, git }:
pkgs.writeShellApplication {
name = "spacemacs-update";
- runtimeInputs = [ emacs git ];
+ runtimeInputs = [
+ emacs
+ git
+ ];
text = ''
git checkout develop
@@ -18,40 +27,57 @@ let
(configuration-layer/update-packages "no-confirmation")
(spacemacs/kill-emacs))'
'';
- }) { emacs = cfg.package; };
-in {
+ }
+ ) { emacs = cfg.package; };
+in
+{
config = lib.mkIf cfg.enable {
services.emacs = {
enable = lib.mkDefault true;
client.enable = lib.mkDefault true;
startWithUserSession = lib.mkDefault true;
- package = let emacs = config.programs.emacs.finalPackage; in
- pkgs.runCommand "emacsWrapped" {
- nativeBuildInputs = with pkgs; [ makeWrapper ];
- } ''
- mkdir "$out"
- ln -s ${emacs}/share "$out"
- for binary in ${emacs}/bin/*
- do
- makeWrapper "$binary" "$out"/bin/$(basename "$binary")\
- --prefix PATH : ${lib.makeBinPath (with pkgs; [ gnutar gcc ])}
- done
+ package =
+ let
+ emacs = config.programs.emacs.finalPackage;
+ in
+ pkgs.runCommand "emacsWrapped"
+ {
+ nativeBuildInputs = with pkgs; [ makeWrapper ];
+ }
+ ''
+ mkdir "$out"
+ ln -s ${emacs}/share "$out"
+ for binary in ${emacs}/bin/*
+ do
+ makeWrapper "$binary" "$out"/bin/$(basename "$binary")\
+ --prefix PATH : ${
+ lib.makeBinPath (
+ with pkgs;
+ [
+ gnutar
+ gcc
+ ]
+ )
+ }
+ done
'';
};
home.sessionVariables.EDITOR = "emacsclient --tty";
home.shellAliases.editor = "emacsclient --create-frame";
# spacemacs dotfile
- home.file.".spacemacs.d/init.el".source =
- lib.mkDefault config.personal.home.dotfiles.spacemacs;
+ home.file.".spacemacs.d/init.el".source = lib.mkDefault config.personal.home.dotfiles.spacemacs;
# service to update spacemacs
- systemd.user =
- (pkgs.personal.lib.homeManager.serviceWithTimer "spacemacs-update" {
+ systemd.user = (
+ pkgs.personal.lib.homeManager.serviceWithTimer "spacemacs-update" {
Unit = {
Description = "Update Spacemacs by pulling the develop branch";
- After = [ "network-online.target" "emacs.service" ];
+ After = [
+ "network-online.target"
+ "emacs.service"
+ ];
};
Service = {
Type = "oneshot";
@@ -62,7 +88,10 @@ in {
Persistent = true;
OnCalendar = "daily";
};
- Install = { WantedBy = [ "default.target" ]; };
- });
+ Install = {
+ WantedBy = [ "default.target" ];
+ };
+ }
+ );
};
}
diff --git a/modules/home-manager/personal/programs/firefox/default.nix b/modules/home-manager/personal/programs/firefox/default.nix
index d103c3d..3f1963d 100644
--- a/modules/home-manager/personal/programs/firefox/default.nix
+++ b/modules/home-manager/personal/programs/firefox/default.nix
@@ -4,178 +4,221 @@
pkgs,
...
}:
-with lib; let
+with lib;
+let
cfg = config.personal.firefox;
userjs = pkgs.callPackage ./userjs.nix {
inherit (pkgs.personal.static.userjs) arkenfox;
inherit (pkgs.lib.personal) toUserJS;
};
- engines = import ./engines.nix {inherit lib pkgs;};
+ engines = import ./engines.nix { inherit lib pkgs; };
webappsWithIds =
- (builtins.foldl' ({
- counter,
- value,
- }: {name, ...} @ next: {
- counter = counter + 1;
- value =
- value
- ++ [
- (next
+ (builtins.foldl'
+ (
+ {
+ counter,
+ value,
+ }:
+ { name, ... }@next:
+ {
+ counter = counter + 1;
+ value = value ++ [
+ (
+ next
// {
id = counter;
profileName = lib.toLower name;
- })
+ }
+ )
];
- }) {
+ }
+ )
+ {
counter = 0;
- value = [];
+ value = [ ];
}
- cfg.webapps)
- .value;
-in {
+ cfg.webapps
+ ).value;
+in
+{
options.personal.firefox = {
webapps = lib.mkOption {
- type = with lib.types;
+ type =
+ with lib.types;
listOf (submodule {
- options = let
- mkTypedOption = type: lib.mkOption {inherit type;};
- in {
- name = mkTypedOption str;
- genericName = mkTypedOption str // {default = "";};
- url = mkTypedOption str;
- comment = mkTypedOption str // {default = "";};
- extraUserJS = mkTypedOption lines // {default = "";};
- categories = mkTypedOption (listOf str) // {default = [];};
- icon = mkTypedOption path;
- };
+ options =
+ let
+ mkTypedOption = type: lib.mkOption { inherit type; };
+ in
+ {
+ name = mkTypedOption str;
+ genericName = mkTypedOption str // {
+ default = "";
+ };
+ url = mkTypedOption str;
+ comment = mkTypedOption str // {
+ default = "";
+ };
+ extraUserJS = mkTypedOption lines // {
+ default = "";
+ };
+ categories = mkTypedOption (listOf str) // {
+ default = [ ];
+ };
+ icon = mkTypedOption path;
+ };
});
- default = [];
+ default = [ ];
};
};
config = lib.mkMerge [
{
programs.firefox.profiles =
- builtins.foldl' (prev: {
- id,
- profileName,
- extraUserJS,
- ...
- }:
- prev
- // {
- "${profileName}" = {
- id = id + 2;
+ builtins.foldl'
+ (
+ prev:
+ {
+ id,
+ profileName,
+ extraUserJS,
+ ...
+ }:
+ prev
+ // {
+ "${profileName}" = {
+ id = id + 2;
+ extensions.packages = with pkgs.personal.firefoxAddons; [
+ clearurls
+ neat-url
+ redirector
+ smart-referer
+ ublock-origin
+ unpaywall
+ url-in-title
+ ];
+ search = {
+ force = true;
+ engines = with engines; disableDefault // { inherit Searx; };
+ default = "Searx";
+ privateDefault = "Searx";
+ };
+ extraConfig = userjs.streaming + extraUserJS;
+ };
+ }
+ )
+ {
+ default = {
+ id = 0; # isDefault = true
+
extensions.packages = with pkgs.personal.firefoxAddons; [
+ canvasblocker
clearurls
+ darkreader
neat-url
redirector
smart-referer
+ temporary-containers
+ tree-style-tab
ublock-origin
unpaywall
url-in-title
];
search = {
- force = true;
- engines = with engines; disableDefault // {inherit Searx;};
+ force = lib.mkDefault true;
+ engines =
+ with engines;
+ disableDefault
+ // {
+ inherit Searx;
+ }
+ // lib.optionalAttrs config.personal.identities.personal personal
+ // lib.optionalAttrs config.personal.identities.work work
+ // lib.optionalAttrs config.personal.profiles.dev dev;
default = "Searx";
- privateDefault = "Searx";
+ order = [
+ "Searx"
+ "Wikipedia"
+ ];
};
- extraConfig = userjs.streaming + extraUserJS;
+ extraConfig = userjs.default;
+ userChrome = ./userchrome/treestyletabs-outer.css;
};
- }) {
- default = {
- id = 0; # isDefault = true
- extensions.packages = with pkgs.personal.firefoxAddons; [
- canvasblocker
- clearurls
- darkreader
- neat-url
- redirector
- smart-referer
- temporary-containers
- tree-style-tab
- ublock-origin
- unpaywall
- url-in-title
- ];
- search = {
- force = lib.mkDefault true;
- engines = with engines;
- disableDefault
- // {
- inherit Searx;
- }
- // lib.optionalAttrs config.personal.identities.personal
- personal
- // lib.optionalAttrs config.personal.identities.work work
- // lib.optionalAttrs config.personal.profiles.dev dev;
- default = "Searx";
- order = ["Searx" "Wikipedia"];
- };
- extraConfig = userjs.default;
- userChrome = ./userchrome/treestyletabs-outer.css;
- };
-
- videoconferencing = {
- id = 1;
- extensions.packages = with pkgs.personal.firefoxAddons; [
- clearurls
- darkreader
- neat-url
- redirector
- smart-referer
- multi-account-containers
- tree-style-tab
- ublock-origin
- unpaywall
- url-in-title
- ];
- search = {
- force = true;
- engines = with engines; disableDefault // {inherit Searx;};
- default = "Searx";
+ videoconferencing = {
+ id = 1;
+ extensions.packages = with pkgs.personal.firefoxAddons; [
+ clearurls
+ darkreader
+ neat-url
+ redirector
+ smart-referer
+ multi-account-containers
+ tree-style-tab
+ ublock-origin
+ unpaywall
+ url-in-title
+ ];
+ search = {
+ force = true;
+ engines = with engines; disableDefault // { inherit Searx; };
+ default = "Searx";
+ };
+ extraConfig = userjs.videoconferencing;
+ userChrome = ./userchrome/treestyletabs-outer.css;
};
- extraConfig = userjs.videoconferencing;
- userChrome = ./userchrome/treestyletabs-outer.css;
- };
- }
- webappsWithIds;
+ }
+ webappsWithIds;
}
(lib.mkIf config.programs.firefox.enable {
- xdg.desktopEntries = let
- firefoxProfilesDir = "${config.home.homeDirectory}/.mozilla/firefox";
- firefoxInProfile = profile: ''
- ${config.programs.firefox.package}/bin/firefox --profile "${firefoxProfilesDir}/${profile}"'';
- in
- builtins.foldl' (prev: {
- name,
- profileName,
- url,
- genericName,
- icon,
- comment,
- categories,
- ...
- }:
- prev
- // {
- "${profileName}" = {
- inherit name genericName icon comment categories;
- exec = "${firefoxInProfile profileName} ${url}";
+ xdg.desktopEntries =
+ let
+ firefoxProfilesDir = "${config.home.homeDirectory}/.mozilla/firefox";
+ firefoxInProfile =
+ profile:
+ ''${config.programs.firefox.package}/bin/firefox --profile "${firefoxProfilesDir}/${profile}"'';
+ in
+ builtins.foldl'
+ (
+ prev:
+ {
+ name,
+ profileName,
+ url,
+ genericName,
+ icon,
+ comment,
+ categories,
+ ...
+ }:
+ prev
+ // {
+ "${profileName}" = {
+ inherit
+ name
+ genericName
+ icon
+ comment
+ categories
+ ;
+ exec = "${firefoxInProfile profileName} ${url}";
+ };
+ }
+ )
+ {
+ videoconferences = {
+ name = "Video Conferences";
+ genericName = "Video conference";
+ comment = "Use video conferencing software in a browser.";
+ exec = "${firefoxInProfile "videoconferencing"}";
+ categories = [
+ "Network"
+ "VideoConference"
+ ];
};
- }) {
- videoconferences = {
- name = "Video Conferences";
- genericName = "Video conference";
- comment = "Use video conferencing software in a browser.";
- exec = "${firefoxInProfile "videoconferencing"}";
- categories = ["Network" "VideoConference"];
- };
- }
- webappsWithIds;
+ }
+ webappsWithIds;
home.shellAliases.fftmp = "firefox --profile $(mktemp -d)";
home.sessionVariables.BROWSER = "firefox";
diff --git a/modules/home-manager/personal/programs/firefox/engines.nix b/modules/home-manager/personal/programs/firefox/engines.nix
index cc6a318..ddd5f3b 100644
--- a/modules/home-manager/personal/programs/firefox/engines.nix
+++ b/modules/home-manager/personal/programs/firefox/engines.nix
@@ -1,44 +1,67 @@
{
lib,
pkgs,
-}: let
+}:
+let
everyday = 24 * 60 * 60 * 1000;
searchTerms = "{searchTerms}";
nixosIcon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
self = {
- disable = engines: lib.genAttrs engines (_: {metaData.hidden = true;});
- disableDefault = self.disable ["google" "Amazon.fr" "bing"];
+ disable =
+ engines:
+ lib.genAttrs engines (_: {
+ metaData.hidden = true;
+ });
+ disableDefault = self.disable [
+ "google"
+ "Amazon.fr"
+ "bing"
+ ];
nix = {
- inherit (self) "Home Manager Options" "NixOS Options" "NixOS Wiki" "Nix Packages";
+ inherit (self)
+ "Home Manager Options"
+ "NixOS Options"
+ "NixOS Wiki"
+ "Nix Packages"
+ ;
};
- dev = self.nix // {inherit (self) AlternativeTo Phind;};
- personal = {inherit (self) Emojipedia;};
- work = {inherit (self) nLab;};
- all = self.dev // self.personal // self.work // {inherit (self) Searx;};
+ dev = self.nix // {
+ inherit (self) AlternativeTo Phind;
+ };
+ personal = { inherit (self) Emojipedia; };
+ work = { inherit (self) nLab; };
+ all = self.dev // self.personal // self.work // { inherit (self) Searx; };
Emojipedia = {
urls = [
{
template = "https://emojipedia.org/search/";
- params = [(lib.nameValuePair "q" searchTerms)];
+ params = [ (lib.nameValuePair "q" searchTerms) ];
}
];
icon = "https://emojipedia.org/static/img/favicons/favicon-16x16.png";
updateInterval = everyday;
- definedAliases = ["@emojipedia" "@emoji" "@em"];
+ definedAliases = [
+ "@emojipedia"
+ "@emoji"
+ "@em"
+ ];
};
AlternativeTo = {
urls = [
{
template = "https://alternativeto.net/browse/search/";
- params = [(lib.nameValuePair "q" searchTerms)];
+ params = [ (lib.nameValuePair "q" searchTerms) ];
}
];
icon = "https://alternativeto.net/static/icons/a2/favicon-16x16.png";
updateInterval = everyday;
- definedAliases = ["@alternativeto" "@a2"];
+ definedAliases = [
+ "@alternativeto"
+ "@a2"
+ ];
};
"Home Manager Options" = {
@@ -48,7 +71,10 @@
}
];
icon = nixosIcon;
- definedAliases = ["@homemanager" "@hm"];
+ definedAliases = [
+ "@homemanager"
+ "@hm"
+ ];
};
"NixOS Options" = {
@@ -62,18 +88,24 @@
}
];
icon = nixosIcon;
- definedAliases = ["@nixos" "@no"];
+ definedAliases = [
+ "@nixos"
+ "@no"
+ ];
};
"NixOS Wiki" = {
urls = [
{
template = "https://wiki.nixos.org/w/index.php";
- params = [(lib.nameValuePair "search" searchTerms)];
+ params = [ (lib.nameValuePair "search" searchTerms) ];
}
];
icon = nixosIcon;
- definedAliases = ["@nixoswiki" "@nw"];
+ definedAliases = [
+ "@nixoswiki"
+ "@nw"
+ ];
};
"Nix Packages" = {
@@ -87,26 +119,32 @@
}
];
icon = nixosIcon;
- definedAliases = ["@nixpkgs" "@np"];
+ definedAliases = [
+ "@nixpkgs"
+ "@np"
+ ];
};
nLab = {
urls = [
{
template = "https://ncatlab.org/nlab/search";
- params = [(lib.nameValuePair "query" searchTerms)];
+ params = [ (lib.nameValuePair "query" searchTerms) ];
}
];
icon = "https://ncatlab.org/favicon.ico";
updateInterval = everyday;
- definedAliases = ["@ncatlab" "@nlab"];
+ definedAliases = [
+ "@ncatlab"
+ "@nlab"
+ ];
};
Searx = {
urls = [
{
template = "https://searx.aristote.fr/search";
- params = [(lib.nameValuePair "q" searchTerms)];
+ params = [ (lib.nameValuePair "q" searchTerms) ];
}
];
icon = "https://searx.aristote.fr/static/themes/simple/img/favicon.svg";
@@ -117,13 +155,16 @@
urls = [
{
template = "https://phind.com/search";
- params = [(lib.nameValuePair "q" searchTerms)];
+ params = [ (lib.nameValuePair "q" searchTerms) ];
}
];
icon = "https://www.phind.com/images/favicon.png";
updateInterval = everyday;
- definedAliases = ["@phind" "@ph"];
+ definedAliases = [
+ "@phind"
+ "@ph"
+ ];
};
};
in
- self
+self
diff --git a/modules/home-manager/personal/programs/firefox/userjs.nix b/modules/home-manager/personal/programs/firefox/userjs.nix
index 8c17fa6..3f2b6bd 100644
--- a/modules/home-manager/personal/programs/firefox/userjs.nix
+++ b/modules/home-manager/personal/programs/firefox/userjs.nix
@@ -1,7 +1,8 @@
{
arkenfox,
toUserJS,
-}: let
+}:
+let
self = {
arkenfox = builtins.readFile "${arkenfox}";
default =
@@ -14,8 +15,8 @@
"dom.allow_cut_copy" = true; # 2404
"dom.battery.enabled" = false; # 2502
"permissions.default.xr" = 2; # 2521
- "browser.search.separatePrivateDefault" = false; #0830
- "browser.search.separatePrivateDefault.ui.enabled" = false; #0830
+ "browser.search.separatePrivateDefault" = false; # 0830
+ "browser.search.separatePrivateDefault.ui.enabled" = false; # 0830
# Personal
## Warnings
@@ -57,12 +58,10 @@
"media.peerconnection.enabled" = true;
"media.peerconnection.ice.no_host" = false; # may or may not be required
"webgl.min_capability_mode" = true;
- "media.autoplay.blocking_policy" =
- 0; # optional (otherwise add site exceptions)
- "javascript.options.wasm" =
- true; # optional (some platforms may require this)
+ "media.autoplay.blocking_policy" = 0; # optional (otherwise add site exceptions)
+ "javascript.options.wasm" = true; # optional (some platforms may require this)
"dom.webaudio.enabled" = true;
};
};
in
- self
+self
diff --git a/modules/home-manager/personal/programs/git.nix b/modules/home-manager/personal/programs/git.nix
index 56078a8..488295e 100644
--- a/modules/home-manager/personal/programs/git.nix
+++ b/modules/home-manager/personal/programs/git.nix
@@ -3,19 +3,23 @@
lib,
pkgs,
...
-} @ extraArgs: let
- primaryEmail = let
- primaryEmailList =
- builtins.filter (account: account.primary)
- (lib.attrValues config.accounts.email.accounts);
- in
- if primaryEmailList == []
- then {
- userName = lib.mkDefault "Quentin Aristote";
- address = lib.mkDefault "quentin@aristote.fr";
- }
- else builtins.head primaryEmailList;
-in {
+}@extraArgs:
+let
+ primaryEmail =
+ let
+ primaryEmailList = builtins.filter (account: account.primary) (
+ lib.attrValues config.accounts.email.accounts
+ );
+ in
+ if primaryEmailList == [ ] then
+ {
+ userName = lib.mkDefault "Quentin Aristote";
+ address = lib.mkDefault "quentin@aristote.fr";
+ }
+ else
+ builtins.head primaryEmailList;
+in
+{
programs.git = {
userName = primaryEmail.userName;
userEmail = primaryEmail.address;
@@ -23,30 +27,35 @@ in {
inherit (primaryEmail.gpg) key signByDefault;
};
- ignores =
- [
- (builtins.readFile
- (pkgs.personal.static.gitignore.override {templates = ["Emacs" "Linux"];}))
- ]
- ++ [
- # Personal rules
- ''
- # direnv
- .direnv
- .envrc
+ ignores = [
+ (builtins.readFile (
+ pkgs.personal.static.gitignore.override {
+ templates = [
+ "Emacs"
+ "Linux"
+ ];
+ }
+ ))
+ ]
+ ++ [
+ # Personal rules
+ ''
+ # direnv
+ .direnv
+ .envrc
- # devenv
- .devenv.flake.nix
- .devenv/
- devenv.local.nix
+ # devenv
+ .devenv.flake.nix
+ .devenv/
+ devenv.local.nix
- # Nix
- shell.nix
- .nix-gc-roots
- .tmp
- result
- ''
- ];
+ # Nix
+ shell.nix
+ .nix-gc-roots
+ .tmp
+ result
+ ''
+ ];
extraConfig = {
safe.directory = lib.mkIf (extraArgs ? osConfig) (
@@ -55,7 +64,7 @@ in {
flakeIsValid = flake != null && lib.hasPrefix "git+file://" flake;
flakePath = lib.removePrefix "git+file://" flake;
in
- lib.optional flakeIsValid flakePath
+ lib.optional flakeIsValid flakePath
);
init.defaultBranch = "master";
pull.rebase = true;
diff --git a/modules/home-manager/personal/programs/rofi.nix b/modules/home-manager/personal/programs/rofi.nix
index a3fdad3..10c284c 100644
--- a/modules/home-manager/personal/programs/rofi.nix
+++ b/modules/home-manager/personal/programs/rofi.nix
@@ -3,19 +3,23 @@
lib,
pkgs,
...
-}: {
+}:
+{
programs.rofi = {
cycle = lib.mkDefault true;
- theme =
- lib.mkIf (config.lib ? stylix)
- (
- lib.mkForce
- (config.lib.stylix.colors {
+ theme = lib.mkIf (config.lib ? stylix) (
+ lib.mkForce (
+ config.lib.stylix.colors {
template = builtins.readFile config.personal.home.dotfiles.rofi;
extension = ".rasi";
- })
- );
- plugins = with pkgs; [rofi-top rofi-calc rofi-emoji];
+ }
+ )
+ );
+ plugins = with pkgs; [
+ rofi-top
+ rofi-calc
+ rofi-emoji
+ ];
};
xdg.dataFile."rofi/themes/custom.rasi" = lib.mkForce {
source = config.programs.rofi.theme;
diff --git a/modules/home-manager/personal/programs/thunderbird.nix b/modules/home-manager/personal/programs/thunderbird.nix
index c904dd5..d68a5df 100644
--- a/modules/home-manager/personal/programs/thunderbird.nix
+++ b/modules/home-manager/personal/programs/thunderbird.nix
@@ -3,7 +3,8 @@
lib,
pkgs,
...
-}: let
+}:
+let
configDefault =
builtins.readFile "${pkgs.personal.static.userjs.thunderbird}"
+ pkgs.lib.personal.toUserJS {
@@ -37,7 +38,8 @@
## Spam
"mail.spam.manualMark" = true; # move manually marked-as-junk to junk folder
};
-in {
+in
+{
config = lib.mkMerge [
{
programs.thunderbird = {
@@ -50,8 +52,8 @@ in {
(lib.mkIf config.programs.thunderbird.enable {
home.file.".thunderbird/default/user.js".text = configDefault;
xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/mailto" = ["thunderbird.desktop"];
- "application/x-xpinstall" = ["thunderbird.desktop"];
+ "x-scheme-handler/mailto" = [ "thunderbird.desktop" ];
+ "application/x-xpinstall" = [ "thunderbird.desktop" ];
};
})
];