From 32bebe0adc2da4447b030dd2ac58713538380290 Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Mon, 24 Jun 2024 20:35:36 +0200 Subject: [PATCH] Add pcmanfm-qt --- home/programs/graphical/default.nix | 1 + .../graphical/file-managers/default.nix | 5 + .../file-managers/pcmanfm-qt/default.nix | 145 ++++++++++++++++++ home/programs/xdg/mime-apps.nix | 3 +- hosts/voyager/default.nix | 5 + options/home/programs/default.nix | 22 +++ 6 files changed, 180 insertions(+), 1 deletion(-) create mode 100644 home/programs/graphical/file-managers/default.nix create mode 100644 home/programs/graphical/file-managers/pcmanfm-qt/default.nix diff --git a/home/programs/graphical/default.nix b/home/programs/graphical/default.nix index 68f78e7..5eac6e1 100644 --- a/home/programs/graphical/default.nix +++ b/home/programs/graphical/default.nix @@ -5,5 +5,6 @@ _: { ./apps ./bars ./browsers + ./file-managers ]; } diff --git a/home/programs/graphical/file-managers/default.nix b/home/programs/graphical/file-managers/default.nix new file mode 100644 index 0000000..cfff4fb --- /dev/null +++ b/home/programs/graphical/file-managers/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./pcmanfm-qt + ]; +} diff --git a/home/programs/graphical/file-managers/pcmanfm-qt/default.nix b/home/programs/graphical/file-managers/pcmanfm-qt/default.nix new file mode 100644 index 0000000..aee0d63 --- /dev/null +++ b/home/programs/graphical/file-managers/pcmanfm-qt/default.nix @@ -0,0 +1,145 @@ +{ + lib, + pkgs, + osConfig, + ... +}: let + inherit (lib) mkIf; + + cfg = osConfig.myOptions.home-manager.programs.file-managers.pcmanfm-qt; +in { + config = mkIf cfg.enable { + home.packages = with pkgs; [ lxqt.pcmanfm-qt ]; + + xdg.configFile."pcmanfm-qt/default/settings.conf".text = lib.generators.toINI {} { + Behavior = { + AutoSelectionDelay = 600; + BookmarkOpenMethod = "current_tab"; + ConfirmDelete = true; + ConfirmTrash = false; + CtrlRightClick = false; + NoUsbTrash = false; + QuickExec = false; + RecentFilesNumber = 0; + SelectNewFiles = false; + SingleClick = false; + SingleWindowMode = false; + UseTrash = true; + }; + + Desktop = { + AllSticky = false; + BgColor = "#000000"; + DesktopCellMargins = "@Size(3 1)"; + DesktopIconSize = 48; + DesktopShortcuts = "@Invalid()"; + FgColor = "#ffffff"; + Font = "Noto Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"; + HideItems = false; + # LastSlide= + OpenWithDefaultFileManager = false; + PerScreenWallpaper = false; + ShadowColor = "#000000"; + ShowHidden = false; + SlideShowInterval = 0; + SortColumn = "name"; + SortFolderFirst = true; + SortHiddenLast = false; + SortOrder = "ascending"; + TransformWallpaper = false; + #Wallpaper= + WallpaperDialogSize = "@Size(700 500)"; + WallpaperDialogSplitterPos = 200; + # WallpaperDirectory= + WallpaperMode = "none"; + WallpaperRandomize = false; + WorkAreaMargins = "12, 12, 12, 12"; + }; + + FolderView = { + BackupAsHidden = false; + BigIconSize = 48; + CustomColumnWidths = "@Invalid()"; + FolderViewCellMargins = "@Size(3 3)"; + HiddenColumns = "@Invalid()"; + Mode = "icon"; + NoItemTooltip = false; + ScrollPerPixel = true; + ShadowHidden = true; + ShowFilter = false; + ShowFullNames = true; + ShowHidden = false; + SidePaneIconSize = 24; + SmallIconSize = 24; + SortCaseSensitive = false; + SortColumn = "name"; + SortFolderFirst = true; + SortHiddenLast = false; + SortOrder = "ascending"; + ThumbnailIconSize = 128; + }; + + Places = { + HiddenPlaces = "@Invalid()"; + }; + + Search = { + ContentPatterns = "@Invalid()"; + MaxSearchHistory = 0; + NamePatterns = "@Invalid()"; + searchContentCaseInsensitive = false; + searchContentRegexp = true; + searchNameCaseInsensitive = false; + searchNameRegexp = true; + searchRecursive = false; + searchhHidden = false; + }; + + System = { + Archiver = cfg.archiverCmd; + FallbackIconThemeName = "oxygen"; + OnlyUserTemplates = false; + SIUnit = false; + SuCommand = "${pkgs.lxqt.lxqt-sudo}/bin/lxqt-sudo %s"; + TemplateRunApp = false; + TemplateTypeOnce = false; + Terminal = cfg.terminalCmd; + }; + + Thumbnail = { + MaxExternalThumbnailFileSize = -1; + MaxThumbnailFileSize = 40960; # 40 MB + ShowThumbnails = true; + ThumbnailLocalFilesOnly = true; + }; + + Volume = { + AutoRun = true; + CloseOnUnmount = true; + MountOnStartup = false; + MountRemovable = false; + }; + + Window = { + AlwaysShowTabs = true; + FixedHeight = 480; + FixedWidth = 640; + LastWindowHeight = 1168; + LastWindowMaximized = true; + LastWindowWidth = 960; + PathBarButtons = true; + RememberWindowSize = true; + ReopenLastTabs = false; + ShowMenuBar = true; + ShowTabClose = true; + SidePaneMode = "places"; + SidePaneVisible = true; + SplitView = false; + SplitViewTabsNum = 0; + SplitterPos = 150; + SwitchToNewTab = false; + TabPaths = "@Invalid()"; + }; + }; + }; +} diff --git a/home/programs/xdg/mime-apps.nix b/home/programs/xdg/mime-apps.nix index 2edeb70..fc43221 100644 --- a/home/programs/xdg/mime-apps.nix +++ b/home/programs/xdg/mime-apps.nix @@ -6,11 +6,12 @@ cfg = osConfig.myOptions.home-manager.programs; in { xdg.mimeApps = let + # TODO: Make options for these browser = "firefox.desktop"; textEditor = browser; # nvim doesn't work properly with xdg-open, just use the browser emailClient = browser; documentViewer = browser; # TODO: consider zathura (org.pwmt.zathura.desktop.desktop) - fileManager = "pcmanfm-qt.desktop"; # TODO: change + fileManager = "pcmanfm-qt.desktop"; archiveManager = "org.kde.ark.desktop"; imageViewer = if cfg.applications.qimgv.enable diff --git a/hosts/voyager/default.nix b/hosts/voyager/default.nix index f7ee539..4735960 100644 --- a/hosts/voyager/default.nix +++ b/hosts/voyager/default.nix @@ -88,9 +88,11 @@ ".local/share/go" ]; extraFiles = [ + ".config/gtk-3.0/bookmarks" ".config/git/git-credentials" ".cache/walker/history.gob" ".local/share/zsh/zsh_history" + ".config/pcmanfm-qt/default/recent-files.conf" ]; }; @@ -194,6 +196,9 @@ }; }; }; + file-managers = { + pcmanfm-qt.enable = true; + }; }; services = { diff --git a/options/home/programs/default.nix b/options/home/programs/default.nix index 639dcc4..7c8dc78 100644 --- a/options/home/programs/default.nix +++ b/options/home/programs/default.nix @@ -48,6 +48,28 @@ in mpv.enable = mkEnableOption "MPV (General-purpose media player)"; }; + file-managers = { + pcmanfm-qt = { + enable = mkEnableOption "Pcmanfm-qt (extremely fast and lightweight file manager and the standard file manager of LXDE)"; + + terminalCmd = mkOption { + type = types.str; + default = "kitty"; + description = '' + Command used to open the terminal emulator. + ''; + }; + + archiverCmd = mkOption { + type = types.str; + default = "ark"; + description = '' + Command used to open the archiver (zip/tar explorer). + ''; + }; + }; + }; + tools = { fastfetch.enable = mkEnableOption "FastFetch (fast neofetch)"; hyfetch.enable = mkEnableOption "Neofetch with pride flags";