aboutsummaryrefslogtreecommitdiffstats
path: root/home-manager
diff options
context:
space:
mode:
authorene <ene@sils.li>2023-03-11 11:43:50 +0100
committerene <ene@sils.li>2023-03-11 11:46:16 +0100
commitebd1a1aabba6fee235034ef7668c24a32525c51c (patch)
tree63335cb0c78911f291e54a5c16c955833c179190 /home-manager
parentFeat(hm/conf/firefox): Turn many bookmarks in search engines (diff)
downloadnixos-config-ebd1a1aabba6fee235034ef7668c24a32525c51c.zip
Fix(hm/conf/firefox): Move bookmarks to the toolbar
Diffstat (limited to 'home-manager')
-rw-r--r--home-manager/config/firefox/default.nix73
1 files changed, 62 insertions, 11 deletions
diff --git a/home-manager/config/firefox/default.nix b/home-manager/config/firefox/default.nix
index d07895a6..a5201388 100644
--- a/home-manager/config/firefox/default.nix
+++ b/home-manager/config/firefox/default.nix
@@ -9,6 +9,63 @@
system,
...
}: let
+ bookmarks = [
+ {
+ name = "Feed - Piped";
+ url = "https://piped.video/feed";
+ }
+
+ {
+ name = "DeepL Translate";
+ url = "https://www.deepl.com/translator#en/de/test";
+ }
+ ];
+ firefoxBookmarksFile = bookmarks: let
+ indent = level:
+ lib.concatStringsSep "" (map (lib.const " ") (lib.range 1 level));
+
+ bookmarkToHTML = indentLevel: bookmark: ''
+ ${indent indentLevel}<DT><A HREF="${
+ lib.escapeXML bookmark.url
+ }" ADD_DATE="0" LAST_MODIFIED="0">${lib.escapeXML bookmark.name}</A>'';
+
+ directoryToHTML = indentLevel: directory: ''
+ ${indent indentLevel}<DT>${
+ if directory.toolbar
+ then ''<H3 PERSONAL_TOOLBAR_FOLDER="true">Bookmarks Toolbar''
+ else "<H3>${lib.escapeXML directory.name}"
+ }</H3>
+ ${indent indentLevel}<DL><p>
+ ${allItemsToHTML (indentLevel + 1) directory.bookmarks}
+ ${indent indentLevel}</p></DL>'';
+
+ itemToHTMLOrRecurse = indentLevel: item:
+ if item ? "url"
+ then bookmarkToHTML indentLevel item
+ else directoryToHTML indentLevel item;
+
+ allItemsToHTML = indentLevel: bookmarks:
+ lib.concatStringsSep "\n"
+ (map (itemToHTMLOrRecurse indentLevel) bookmarks);
+
+ bookmarkEntries = allItemsToHTML 1 bookmarks;
+ in
+ pkgs.writeText "firefox-bookmarks.html" ''
+ <!DOCTYPE NETSCAPE-Bookmark-file-1>
+ <!-- This is an automatically generated file.
+ It will be read and overwritten.
+ DO NOT EDIT! -->
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
+ <TITLE>Bookmarks</TITLE>
+ <H1>Bookmarks Menu</H1>
+
+ <DL><p>
+ <DT><H3 ADD_DATE="0" LAST_MODIFIED="0" PERSONAL_TOOLBAR_FOLDER="true">Bookmarks Toolbar</H3>
+ <DL><p>
+ ${bookmarkEntries}
+ </DL><p>
+ </p></DL>
+ '';
userChrome = builtins.readFile ./chrome/userChrome.css;
user_js_override = pkgs.writeText "user.override.js" (builtins.readFile ./settings/override.js);
@@ -18,6 +75,10 @@
cat "${user_js_override}" >> $out/user.js;
cat << EOF >> $out/user.js;
+ // My bookmarks
+ user_pref("browser.bookmarks.file", "${toString (firefoxBookmarksFile bookmarks)}");
+ user_pref("browser.places.importBookmarksHTML", true);
+
// Allow my custom css
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
@@ -208,17 +269,7 @@ in {
};
};
- bookmarks = [
- {
- name = "Feed - Piped";
- url = "https://piped.video/feed";
- }
-
- {
- name = "DeepL Translate";
- url = "https://www.deepl.com/translator#en/de/test";
- }
- ];
+ bookmarks = [];
inherit settings;
extraConfig = builtins.readFile "${user_js_nix}/user.js";
};