aboutsummaryrefslogtreecommitdiffstats
path: root/hm/soispha/conf
diff options
context:
space:
mode:
Diffstat (limited to 'hm/soispha/conf')
-rw-r--r--hm/soispha/conf/firefox/default.nix59
-rw-r--r--hm/soispha/conf/taskwarrior/firefox/default.nix54
-rw-r--r--hm/soispha/conf/taskwarrior/firefox/lib.nix30
3 files changed, 119 insertions, 24 deletions
diff --git a/hm/soispha/conf/firefox/default.nix b/hm/soispha/conf/firefox/default.nix
index 90347de9..567c0676 100644
--- a/hm/soispha/conf/firefox/default.nix
+++ b/hm/soispha/conf/firefox/default.nix
@@ -21,6 +21,27 @@
buildFirefoxXpiAddon = (import ./functions/extensions) {inherit pkgs;};
video-pauser = (import ./functions/extensions/video-pauser.nix) {inherit pkgs video_pause;};
+
+ taskwarriorProfiles = import ../taskwarrior/firefox {
+ inherit
+ extensions
+ userChrome
+ extraConfig
+ bookmarks
+ search
+ lib
+ ;
+ };
+
+ search = {
+ default = "Brave Search";
+ force = true;
+
+ inherit engines;
+ };
+
+ bookmarks = [];
+ extraConfig = builtins.readFile "${user_js_nix}/user.js";
in {
home.packages = [
pkgs.tridactyl-native
@@ -49,30 +70,20 @@ in {
enableTridactylNative = true;
};
};
- profiles = {
- "default" = {
- inherit extensions;
- isDefault = true;
- id = 0;
- name = "default";
-
- inherit userChrome;
-
- search = {
- default = "Brave Search";
- force = true;
-
- inherit engines;
+ profiles =
+ {
+ "default" = {
+ inherit extensions search extraConfig bookmarks userChrome;
+ isDefault = true;
+ id = 0;
+ name = "default";
};
-
- bookmarks = [];
- extraConfig = builtins.readFile "${user_js_nix}/user.js";
- };
- "clean" = {
- isDefault = false;
- id = 1;
- name = "clean";
- };
- };
+ "clean" = {
+ isDefault = false;
+ id = 1;
+ name = "clean";
+ };
+ }
+ // taskwarriorProfiles;
};
}
diff --git a/hm/soispha/conf/taskwarrior/firefox/default.nix b/hm/soispha/conf/taskwarrior/firefox/default.nix
new file mode 100644
index 00000000..5c6dd314
--- /dev/null
+++ b/hm/soispha/conf/taskwarrior/firefox/default.nix
@@ -0,0 +1,54 @@
+{
+ extensions,
+ userChrome,
+ extraConfig,
+ bookmarks,
+ search,
+ lib,
+ ...
+}: let
+ hexLib = import ./lib.nix {inherit lib;};
+ mkProject = project: subproject:
+ if builtins.isString subproject
+ then {
+ name = "${project.name}.${subproject}";
+ prefix = null;
+ }
+ else let
+ name = builtins.elemAt (builtins.attrNames subproject) 0;
+ in {
+ name = "${project.name}.${name}";
+ subprojects = builtins.elemAt (builtins.attrValues subproject) 0;
+ prefix = null;
+ };
+
+ mkProjectName = project:
+ if builtins.hasAttr "subprojects" project
+ then
+ lib.lists.flatten ([project.name]
+ ++ (builtins.map mkProjectName
+ (builtins.map (mkProject project) project.subprojects)))
+ else [project.name];
+ projects = lib.lists.flatten (builtins.map mkProjectName (import ../projects {}));
+
+ mkFirefoxProfile = {
+ name,
+ id,
+ }: {
+ inherit name;
+ value = {
+ isDefault = false;
+ inherit name id extensions userChrome search bookmarks extraConfig;
+ };
+ };
+ projects_id =
+ builtins.map (project: {
+ name = project;
+ id =
+ hexLib.fromHexString
+ (builtins.hashString "sha256" project);
+ })
+ projects;
+ firefoxProfiles = builtins.listToAttrs (builtins.map mkFirefoxProfile projects_id);
+in
+ firefoxProfiles
diff --git a/hm/soispha/conf/taskwarrior/firefox/lib.nix b/hm/soispha/conf/taskwarrior/firefox/lib.nix
new file mode 100644
index 00000000..467b9a73
--- /dev/null
+++ b/hm/soispha/conf/taskwarrior/firefox/lib.nix
@@ -0,0 +1,30 @@
+{lib, ...}: {
+ fromHexString = hexString: let
+ fromHexChar = index: char:
+ {
+ "0" = 0;
+ "1" = 1;
+ "2" = 2;
+ "3" = 3;
+ "4" = 4;
+ "5" = 5;
+ "6" = 6;
+ "7" = 7;
+ "8" = 8;
+ "9" = 9;
+ "A" = 10;
+ "B" = 11;
+ "C" = 12;
+ "D" = 13;
+ "E" = 14;
+ "F" = 15;
+ }
+ .${lib.strings.toUpper char}
+ * (
+ if index == 0
+ then 1
+ else index * 16
+ );
+ in
+ lib.lists.foldr (a: b: a + b) 0 (lib.lists.imap0 fromHexChar (lib.lists.reverseList (lib.strings.stringToCharacters hexString)));
+}