diff --git a/modules/programs/firefox/profiles/bookmark-types.nix b/modules/programs/firefox/profiles/bookmark-types.nix
index 43eca5661..a5a583596 100644
--- a/modules/programs/firefox/profiles/bookmark-types.nix
+++ b/modules/programs/firefox/profiles/bookmark-types.nix
@@ -50,6 +50,8 @@ rec {
bookmarkType = types.addCheck bookmarkSubmodule (x: x ? "url");
+ separatorType = types.enum [ "separator" ];
+
directoryType =
types.submodule (
{ name, ... }:
@@ -83,5 +85,9 @@ rec {
description = "directory submodule";
};
- nodeType = types.either bookmarkType directoryType;
+ nodeType = types.oneOf [
+ bookmarkType
+ directoryType
+ separatorType
+ ];
}
diff --git a/modules/programs/firefox/profiles/bookmarks.nix b/modules/programs/firefox/profiles/bookmarks.nix
index a0cfafa72..4b94cba87 100644
--- a/modules/programs/firefox/profiles/bookmarks.nix
+++ b/modules/programs/firefox/profiles/bookmarks.nix
@@ -45,9 +45,16 @@ let
${allItemsToHTML (indentLevel + 1) directory.bookmarks}
${indent indentLevel}
'';
+ separatorToHTML = indentLevel: "${indent indentLevel}
";
+
itemToHTMLOrRecurse =
indentLevel: item:
- if item ? "url" then bookmarkToHTML indentLevel item else directoryToHTML indentLevel item;
+ if item ? "url" then
+ bookmarkToHTML indentLevel item
+ else if item == "separator" then
+ separatorToHTML indentLevel
+ else
+ directoryToHTML indentLevel item;
allItemsToHTML =
indentLevel: bookmarks: lib.concatStringsSep "\n" (map (itemToHTMLOrRecurse indentLevel) bookmarks);
@@ -106,6 +113,7 @@ in
name = "kernel.org";
url = "https://www.kernel.org";
}
+ "separator"
{
name = "Nix sites";
toolbar = true;
diff --git a/tests/modules/programs/firefox/profiles/bookmarks/default.nix b/tests/modules/programs/firefox/profiles/bookmarks/default.nix
index 9f48a58d2..19655368f 100644
--- a/tests/modules/programs/firefox/profiles/bookmarks/default.nix
+++ b/tests/modules/programs/firefox/profiles/bookmarks/default.nix
@@ -38,6 +38,7 @@ in
name = "kernel.org";
url = "https://www.kernel.org";
}
+ "separator"
{
name = "Nix sites";
bookmarks = [
diff --git a/tests/modules/programs/firefox/profiles/bookmarks/expected-bookmarks.html b/tests/modules/programs/firefox/profiles/bookmarks/expected-bookmarks.html
index 4f22e86cc..0c64bf67f 100644
--- a/tests/modules/programs/firefox/profiles/bookmarks/expected-bookmarks.html
+++ b/tests/modules/programs/firefox/profiles/bookmarks/expected-bookmarks.html
@@ -11,6 +11,7 @@
Home Manager
kernel.org
+
Nix sites
- homepage