{ config, pkgs, lib, ... }: { options = { nautilus = { enable = lib.mkEnableOption { description = "Enable Nautilus file manager."; default = false; }; }; }; # Install Nautilus file manager config = lib.mkIf (config.gui.enable && config.nautilus.enable) { # Quick preview with spacebar services.gnome.sushi.enable = true; environment.systemPackages = [ pkgs.nautilus ]; home-manager.users.${config.user} = { # Quick button for launching nautilus xsession.windowManager.i3.config.keybindings = { "${ config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier }+n" = "exec --no-startup-id ${pkgs.nautilus}/bin/nautilus"; }; # Generates a QR code and previews it with sushi programs.fish.functions = { qr = { body = "${pkgs.qrencode}/bin/qrencode $argv[1] -o /tmp/qr.png | ${pkgs.sushi}/bin/sushi /tmp/qr.png"; }; }; # Set Nautilus as default for opening directories xdg.mimeApps = { associations.added."inode/directory" = [ "org.gnome.Nautilus.desktop" ]; defaultApplications."inode/directory" = lib.mkBefore [ "org.gnome.Nautilus.desktop" ]; }; }; # Delete Trash files older than 1 week systemd.user.services.empty-trash = { description = "Empty Trash on a regular basis"; wantedBy = [ "default.target" ]; script = "${pkgs.trash-cli}/bin/trash-empty 7"; }; }; }