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