From 65fb953361a8cc736386b611439c5ddde2a14442 Mon Sep 17 00:00:00 2001 From: ooks-io Date: Sun, 23 Jun 2024 23:18:20 +1200 Subject: [PATCH] feat(home:file-manager): add nemo initial configuration --- home/modules/desktop/default.nix | 11 ++++---- home/modules/desktop/file-manager/default.nix | 5 ++++ home/modules/desktop/file-manager/nemo.nix | 26 +++++++++++++++++++ home/options/desktop/default.nix | 1 + home/options/desktop/fileManager.nix | 11 ++++++++ home/roles/ooks-desktop-workstation.nix | 1 + home/roles/ooks-laptop-workstation.nix | 1 + 7 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 home/modules/desktop/file-manager/default.nix create mode 100644 home/modules/desktop/file-manager/nemo.nix create mode 100644 home/options/desktop/fileManager.nix diff --git a/home/modules/desktop/default.nix b/home/modules/desktop/default.nix index 0603193..46aba0c 100644 --- a/home/modules/desktop/default.nix +++ b/home/modules/desktop/default.nix @@ -1,14 +1,15 @@ { imports = [ - ./browser # done -- firefox still need: chrome, brave + ./browser ./creative - ./communication # only discord implemented - ./media # done -- spotify gui still needs to be implemented - ./terminal # done -- wezterm still needs to be implemented - ./wayland # -- almost done, need to implement eww + ./communication + ./media + ./terminal + ./wayland ./productivity ./gaming ./security ./tools + ./file-manager ]; } diff --git a/home/modules/desktop/file-manager/default.nix b/home/modules/desktop/file-manager/default.nix new file mode 100644 index 0000000..1aa9301 --- /dev/null +++ b/home/modules/desktop/file-manager/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./nemo.nix + ]; +} diff --git a/home/modules/desktop/file-manager/nemo.nix b/home/modules/desktop/file-manager/nemo.nix new file mode 100644 index 0000000..07febbd --- /dev/null +++ b/home/modules/desktop/file-manager/nemo.nix @@ -0,0 +1,26 @@ +{ lib, config, pkgs, ... }: + +let + inherit (lib) mkIf mkMerge; + cfg = config.ooknet.fileManager.nemo; + fileManager = config.ooknet.desktop.fileManager; + nemoMime = { + "inode/directory" = ["nemo.desktop"]; + }; +in + +{ + config = mkMerge [ + (mkIf (cfg.enable || fileManager == "nemo") { + home.packages = [ pkgs.cinnamon.nemo-with-extensions ]; + }) + + (mkIf (fileManager == "nemo") { + ooknet.binds.fileManager = "nemo"; + xdg.mimeApps = { + association.added = nemoMime; + defaultApplication = nemoMime; + }; + }) + ]; +} diff --git a/home/options/desktop/default.nix b/home/options/desktop/default.nix index ce40f0b..dcd7d05 100644 --- a/home/options/desktop/default.nix +++ b/home/options/desktop/default.nix @@ -11,5 +11,6 @@ ./terminal.nix ./tools.nix ./wayland.nix + ./fileManager.nix ]; } diff --git a/home/options/desktop/fileManager.nix b/home/options/desktop/fileManager.nix new file mode 100644 index 0000000..58a03b9 --- /dev/null +++ b/home/options/desktop/fileManager.nix @@ -0,0 +1,11 @@ +{ lib, ... }: + +let + inherit (lib) mkEnableOption; +in + +{ + options.ooknet.fileManager = { + nemo.enable = mkEnableOption ""; + }; +} diff --git a/home/roles/ooks-desktop-workstation.nix b/home/roles/ooks-desktop-workstation.nix index 8e87608..27df69c 100644 --- a/home/roles/ooks-desktop-workstation.nix +++ b/home/roles/ooks-desktop-workstation.nix @@ -16,6 +16,7 @@ in notes = "obsidian"; pdf = "zathura"; discord = "vesktop"; + fileManager = "nemo"; }; console = { editor = "helix"; diff --git a/home/roles/ooks-laptop-workstation.nix b/home/roles/ooks-laptop-workstation.nix index 76c9898..69b03f8 100644 --- a/home/roles/ooks-laptop-workstation.nix +++ b/home/roles/ooks-laptop-workstation.nix @@ -16,6 +16,7 @@ in notes = "obsidian"; pdf = "zathura"; discord = "vesktop"; + fileManager = "nemo"; }; console = { editor = "helix";