From 1a34db6f229ce1322b25477ae3225f424c79e309 Mon Sep 17 00:00:00 2001 From: OlivierChiasson Date: Sat, 20 Jun 2026 21:18:03 -0300 Subject: [PATCH] Replace Dolphin with Nemo as the default file manager across various configurations. Enable GVFS for better file management support in GTK applications. Remove Dolphin configuration files and introduce Nemo configuration files to streamline the desktop experience. --- modules/desktop/gui.nix | 4 ++ modules/desktop/hyprland/default.nix | 2 +- modules/desktop/niri/default.nix | 2 +- modules/hosts/desktop-home-base.nix | 2 +- modules/wisdom/filebrowsers/dolphin.nix | 76 ------------------------- modules/wisdom/filebrowsers/nemo.nix | 24 ++++++++ 6 files changed, 31 insertions(+), 79 deletions(-) delete mode 100644 modules/wisdom/filebrowsers/dolphin.nix create mode 100644 modules/wisdom/filebrowsers/nemo.nix diff --git a/modules/desktop/gui.nix b/modules/desktop/gui.nix index 7ceb866..2e4cb48 100644 --- a/modules/desktop/gui.nix +++ b/modules/desktop/gui.nix @@ -49,6 +49,10 @@ (lib.mkIf guiEnabled { services.xserver.enable = true; + # Trash, MTP, network mounts, etc. for GTK file managers (Nemo). Without gvfs the Delete + # key silently fails (move-to-trash) while Shift+Delete still works (permanent delete). + services.gvfs.enable = lib.mkDefault true; + # Chromium/Electron (Edge, Vesktop, etc.) only add native Wayland + IME flags when this is # set; nixpkgs wrappers gate on NIXOS_OZONE_WL and WAYLAND_DISPLAY. Helps PipeWire/desktop # portal screen capture on wlroots-like sessions. Harmless on X11 (flags stay off). diff --git a/modules/desktop/hyprland/default.nix b/modules/desktop/hyprland/default.nix index 874bfa2..aca2e9a 100644 --- a/modules/desktop/hyprland/default.nix +++ b/modules/desktop/hyprland/default.nix @@ -103,7 +103,7 @@ "ControlSuper,T,exec,konsole" "SUPER,D,exec,rofi -show drun" "ControlSuper,D,exec,rofi -show window" - "SUPER,E,exec,dolphin" + "SUPER,E,exec,nemo" "Super, Q, killactive" "ControlSuper, Q, exec, hyprctl kill" "Super, F, fullscreen, 0" diff --git a/modules/desktop/niri/default.nix b/modules/desktop/niri/default.nix index 4642812..cc174be 100644 --- a/modules/desktop/niri/default.nix +++ b/modules/desktop/niri/default.nix @@ -56,7 +56,7 @@ let "Mod+Control+T"."spawn-sh" = "konsole"; #TODO[epic=Binds] This should only be set if having konsole "Mod+D"."spawn-sh" = "rofi -show drun"; #TODO[epic=Binds] This should only be set if having rofi "Mod+Space"."spawn-sh" = "dms ipc call spotlight toggle"; #TODO[epic=Binds] This should only be set if having dms - "Mod+E"."spawn-sh" = "dolphin"; #TODO[epic=Binds] This should only be set if having dolphin + "Mod+E"."spawn-sh" = "nemo"; #TODO[epic=Binds] This should only be set if having nemo "Mod+Control+O"."spawn-sh" = "rofi -show window"; #TODO[epic=Binds] This should only be set if having rofi "Mod+V"."spawn-sh" = "dms ipc call clipboard toggle"; #TODO[epic=Binds] This should only be set if having dms "Mod+N"."spawn-sh" = "dms ipc call notepad toggle"; #TODO[epic=Binds] This should only be set if having dms diff --git a/modules/hosts/desktop-home-base.nix b/modules/hosts/desktop-home-base.nix index d577743..13bc1ac 100644 --- a/modules/hosts/desktop-home-base.nix +++ b/modules/hosts/desktop-home-base.nix @@ -37,7 +37,7 @@ terminals.kitty.enable = lib.mkDefault true; - filebrowsers.dolphin.enable = lib.mkDefault true; + filebrowsers.nemo.enable = lib.mkDefault true; browsers = { chrome.enable = lib.mkDefault false; diff --git a/modules/wisdom/filebrowsers/dolphin.nix b/modules/wisdom/filebrowsers/dolphin.nix deleted file mode 100644 index cdba40a..0000000 --- a/modules/wisdom/filebrowsers/dolphin.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ ... }: { - flake.homeManagerModules.wisdomFilebrowsersDolphin = - { config, lib, pkgs, ... }: - let - root = config.chiasson.home; - cfg = root.filebrowsers.dolphin; - in - { - options.chiasson.home.filebrowsers.dolphin.enable = lib.mkEnableOption "Dolphin + declarative dolphinrc."; - - config = lib.mkIf (root.enable && cfg.enable) { - home.packages = [ pkgs.kdePackages.dolphin ]; - - xdg.configFile."dolphinrc".text = '' - [ContentDisplay] - UsePermissionsFormat=CombinedFormat - - [General] - StartupPath=~ - DoubleClickViewAction=show_hidden_files - ShowFullPath=true - ShowFullPathInTitlebar=true - ShowStatusBar=FullWidth - UseTabForSwitchingSplitView=true - Version=202 - ViewPropsTimestamp=2025,11,17,23,21,57.762 - - [KFileDialog Settings] - Places Icons Auto-resize=false - Places Icons Static Size=22 - - [MainWindow] - MenuBar=Disabled - ToolBarsMovable=Disabled - - [PreviewSettings] - Plugins=appimagethumbnail,audiothumbnail,blenderthumbnail,comicbookthumbnail,cursorthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,fontthumbnail,imagethumbnail,jpegthumbnail,kraorathumbnail,windowsexethumbnail,windowsimagethumbnail,mobithumbnail,opendocumentthumbnail,gsthumbnail,rawthumbnail,svgthumbnail,ffmpegthumbs - - [IconsMode] - IconSize=48 - PreviewSize=48 - TextLines=2 - UseThumbnails=true - - [DetailsMode] - FontWeight=50 - HighlightEntireRow=true - - [ViewProperties] - Mode=1 - ColumnWidths=50,50,50,50,50,50,50,50,50,50 - SortColumn=0 - SortOrder=0 - SortFoldersFirst=true - SortHiddenLast=false - SortCaseSensitively=false - ShowPreviews=true - ShowInGroups=false - ShowFoldersFirst=true - ShowHiddenFilesLast=false - NaturalSorting=true - - [ContextMenu] - ShowCopyToMenu=true - ShowMoveToMenu=true - - [Search] - Location=Everywhere - - [SettingsWindow] - SidebarWidth=180 - SplitterState=AAAA/wAAAAD9AAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAQAAAAEAAAAA= - ''; - }; - }; -} diff --git a/modules/wisdom/filebrowsers/nemo.nix b/modules/wisdom/filebrowsers/nemo.nix new file mode 100644 index 0000000..8c032c8 --- /dev/null +++ b/modules/wisdom/filebrowsers/nemo.nix @@ -0,0 +1,24 @@ +{ ... }: { + flake.homeManagerModules.wisdomFilebrowsersNemo = + { config, lib, pkgs, ... }: + let + root = config.chiasson.home; + cfg = root.filebrowsers.nemo; + in + { + options.chiasson.home.filebrowsers.nemo.enable = lib.mkEnableOption '' + Nemo file manager (GTK). Colors come from DMS matugen via GTK settings — no KDE/Qt bridge needed. + ''; + + config = lib.mkIf (root.enable && cfg.enable) { + home.packages = [pkgs.nemo]; + + xdg.mimeApps = { + enable = lib.mkDefault true; + defaultApplications = { + "inode/directory" = lib.mkDefault "nemo.desktop"; + }; + }; + }; + }; +}