diff --git a/home/packages/gui/default.nix b/home/packages/gui/default.nix index 5aa96be..73bb692 100644 --- a/home/packages/gui/default.nix +++ b/home/packages/gui/default.nix @@ -6,5 +6,6 @@ _: { ./qbittorrent.nix ./mpv.nix ./obs.nix + ./qimgv.nix ]; } diff --git a/home/packages/gui/nomacs.nix b/home/packages/gui/nomacs.nix index 143387b..c37bac0 100644 --- a/home/packages/gui/nomacs.nix +++ b/home/packages/gui/nomacs.nix @@ -29,6 +29,7 @@ in { hideAllPanels=true showMenuBar=false showRecentFiles=false + useLogFile=true [Crop] AspectRatioHorizontal=0 @@ -62,7 +63,7 @@ in { overwriteDialog-answer=16384 saveEditDialog=false saveEditDialog-answer=16384 - saveTabsDialog=true + saveTabsDialog=false saveTabsDialog-answer=16384 [DkExplorer] diff --git a/home/packages/gui/qimgv.nix b/home/packages/gui/qimgv.nix new file mode 100644 index 0000000..cc9afc3 --- /dev/null +++ b/home/packages/gui/qimgv.nix @@ -0,0 +1,99 @@ +{ + lib, + pkgs, + osConfig, + ... +}: let + inherit (lib) mkIf; + + cfg = osConfig.myOptions.home-manager.programs.applications.qimgv; +in { + config = mkIf cfg.enable { + home.packages = with pkgs; [ + qimgv + ]; + + xdg.configFile = { + "qimgv/qimgv.conf".text = '' + [General] + JPEGSaveQuality=95 + absoluteZoomStep=false + autoResizeLimit=90 + autoResizeWindow=false + backgroundOpacity=1 + blurBackground=false + confirmDelete=true + confirmTrash=false + cursorAutohiding=true + defaultCropAction=0 + defaultFitMode=0 + defaultViewMode=0 + drawTransparencyGrid=false + enableSmoothScroll=true + expandImage=false + expandLimit=2 + firstRun=false + focusPointIn1to1Mode=1 + folderEndAction=0 + imageScrolling=1 + infoBarFullscreen=true + infoBarWindowed=false + jxlAnimation=false + keepFitMode=false + lastVerMajor=1 + lastVerMicro=2 + lastVerMinor=0 + loopSlideshow=false + mpvBinary=/nix/store/sz3h6s8p2r22v76m0yr6fn3m663sms7r-mpv-with-scripts-0.37.0/bin/mpv + openInFullscreen=false + panelEnabled=true + panelFullscreenOnly=true + panelPosition=top + panelPreviewsSize=140 + playVideoSounds=false + scalingFilter=1 + showSaveOverlay=true + slideshowInterval=3000 + smoothAnimatedImages=true + smoothUpscaling=true + sortingMode=0 + squareThumbnails=false + thumbPanelStyle=1 + thumbnailCache=true + thumbnailerThreads=4 + unloadThumbs=true + useOpenGL=false + usePreloader=true + useSystemColorScheme=false + videoPlayback=true + windowTitleExtendedInfo=true + zoomIndicatorMode=0 + zoomStep=0.20000000298023224 + + [Controls] + shortcuts="zoomIn=+", "frameStepBack=,", "zoomOut=-", "frameStep=.", "fitWindow=1", "fitWidth=2", "fitNormal=3", "exit=Alt+X", "folderView=Backspace", "crop=C", "copyFileClipboard=Ctrl+C", "showInDirectory=Ctrl+D", "zoomOut=Ctrl+Down", "rotateLeft=Ctrl+L", "seekVideoBackward=Ctrl+Left", "open=Ctrl+O", "print=Ctrl+P", "exit=Ctrl+Q", "rotateRight=Ctrl+R", "seekVideoForward=Ctrl+Right", "save=Ctrl+S", "copyPathClipboard=Ctrl+Shift+C", "saveAs=Ctrl+Shift+S", "zoomIn=Ctrl+Up", "pasteFile=Ctrl+V", "zoomOutCursor=Ctrl+WheelDown", "zoomInCursor=Ctrl+WheelUp", "discardEdits=Ctrl+Z", "toggleShuffle=Ctrl+`", "s:trash with trash-cli=Del", "scrollDown=Down", "jumpToLast=End", "folderView=Enter", "closeFullScreenOrExit=Esc", "toggleFullscreen=F", "toggleFullscreen=F11", "renameFile=F2", "reloadImage=F5", "flipH=H", "jumpToFirst=Home", "toggleImageInfo=I", "toggleFullscreen=LMB_DoubleClick", "prevImage=Left", "moveFile=M", "contextMenu=Menu", "openSettings=P", "resize=R", "contextMenu=RMB", "nextImage=Right", "removeFile=Shift+Del", "toggleFullscreenInfoBar=Shift+F", "prevDirectory=Shift+Left", "nextDirectory=Shift+Right", "toggleFitMode=Space", "scrollUp=Up", "flipV=V", "nextImage=WheelDown", "prevImage=WheelUp", "prevImage=XButton1", "nextImage=XButton2", "toggleSlideshow=`" + + [Scripts] + script\1\name=trash with trash-cli + script\1\value=@Variant(\0\0\0\x7f\0\0\0\aScript\0\0\0\0 \0t\0r\0\x61\0s\0h\0-\0p\0u\0t\0 \0%\0\x66\0i\0l\0\x65\0%\x1) + script\size=1 + ''; + + "qimgv/theme.conf".text = '' + [Colors] + accent=#8c9b81 + background=#1a1a1a + background_fullscreen=#1a1a1a + folderview=#242424 + folderview_topbar=#383838 + icons=#a4a4a4 + overlay=#1a1a1a + overlay_text=#d2d2d2 + scrollbar=#5a5a5a + text=#b6b6b6 + widget=#252525 + widget_border=#2c2c2c + ''; + }; + }; +} diff --git a/home/programs/xdg/mime-apps.nix b/home/programs/xdg/mime-apps.nix index 2587809..7d1b79a 100644 --- a/home/programs/xdg/mime-apps.nix +++ b/home/programs/xdg/mime-apps.nix @@ -1,5 +1,10 @@ # Manage $XDG_CONFIG_HOME/mimeapps.list { + osConfig, + ... +}: let + cfg = osConfig.myOptions.home-manager.programs; +in { xdg.mimeApps = let browser = "firefox.desktop"; textEditor = browser; # nvim doesn't work properly with xdg-open, just use the browser @@ -7,7 +12,12 @@ pdfViewer = browser; # TODO: consider zathura (org.pwmt.zathura.desktop.desktop) fileManager = "pcmanfm-qt.desktop"; # TODO: change archiveManager = "org.kde.ark.desktop"; - imageViewer = "org.nomacs.ImageLounge.desktop"; + imageViewer = + if cfg.applications.qimgv.enable + then "qimgv.desktop" + else if cfg.applications.nomacs.enable + then "org.nomacs.ImageLounge.desktop" + else browser; videoPlayer = "mpv.desktop"; audioPlayer = "mpv.desktop"; diff --git a/hosts/voyager/default.nix b/hosts/voyager/default.nix index 07b6738..125eb7b 100644 --- a/hosts/voyager/default.nix +++ b/hosts/voyager/default.nix @@ -174,7 +174,8 @@ autoStart = true; }; mpv.enable = true; - nomacs.enable = true; + nomacs.enable = true; # TODO: probably disable + qimgv.enable = true; qbittorrent.enable = true; obs.enable = true; }; diff --git a/options/home/programs/default.nix b/options/home/programs/default.nix index b397554..bd5593d 100644 --- a/options/home/programs/default.nix +++ b/options/home/programs/default.nix @@ -34,6 +34,7 @@ in autoStart = mkEnableOption "Auto-Start for Vesktop"; }; nomacs.enable = mkEnableOption "Nomacs (Qt-based image viewer)"; + qimgv.enable = mkEnableOption "QImgV (Qt-based image viewer with video support)"; qbittorrent.enable = mkEnableOption "Qbittorrent (Free software BitTorrent client)"; obs.enable = mkEnableOption "OBS (Free and oepn source software for video recording and live streaming)"; mpv.enable = mkEnableOption "MPV (General-purpose media player)";