diff --git a/user/config/kde/default.nix b/user/config/kde/default.nix
index 4d16623..d090b6c 100644
--- a/user/config/kde/default.nix
+++ b/user/config/kde/default.nix
@@ -1,4 +1,5 @@
{...}: {
+ imports = [./user-places.nix];
xdg.configFile.arkrc.source = ./arkrc;
xdg.configFile.kdeglobals.source = ./kdeglobals;
xdg.configFile.kiorc.source = ./kiorc;
diff --git a/user/config/kde/user-places.nix b/user/config/kde/user-places.nix
new file mode 100644
index 0000000..9a84399
--- /dev/null
+++ b/user/config/kde/user-places.nix
@@ -0,0 +1,84 @@
+{
+ config,
+ lib,
+ ...
+}: {
+ u.bookmarks = let
+ home = config.home.homeDirectory;
+ in
+ lib.mkDefault [
+ {
+ href = "file://${home}";
+ name = "Home";
+ icon = "user-home";
+ }
+ {
+ href = "file://${home}/Desktop";
+ name = "Desktop";
+ icon = "user-desktop";
+ }
+ {
+ href = "file://${home}/Downloads";
+ name = "Downloads";
+ icon = "folder-downloads";
+ }
+ {
+ href = "file:///tmp";
+ name = "tmp";
+ icon = "folder-temp";
+ }
+ {
+ href = "trash:/";
+ name = "Trash";
+ icon = "user-trash";
+ }
+ {
+ href = "remote:/";
+ name = "Network";
+ icon = "folder-network";
+ }
+ ];
+ # dolphin complains if user-places.xbel is read-only
+ home.activation.user-places = let
+ path = "${config.xdg.dataHome}/user-places.xbel";
+ bookmarks =
+ lib.strings.concatMapStrings ({
+ href,
+ name,
+ icon,
+ }: ''
+
+ ${name}
+
+
+
+
+ '')
+ config.u.bookmarks;
+ file-content = ''
+
+
+
+
+
+ 4
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+
+
+ ${bookmarks}
+
+ '';
+ in
+ lib.hm.dag.entryAfter ["writeBoundary"] ''
+ [ ! -e "${path}" ] && cat > "${path}" <