From febe3d53e3de64bc89b3e8005953e799a8b7be21 Mon Sep 17 00:00:00 2001 From: clsty Date: Tue, 11 Nov 2025 10:36:03 +0800 Subject: [PATCH] Update deps-info.md (close #2102) --- sdata/deps-info.md | 309 +++++++++++++++------ sdata/dist-nix/home-manager/home.nix | 145 +++++----- sdata/dist-nix/home-manager/quickshell.nix | 4 +- 3 files changed, 300 insertions(+), 158 deletions(-) diff --git a/sdata/deps-info.md b/sdata/deps-info.md index 6151d6f05..68de38c5e 100644 --- a/sdata/deps-info.md +++ b/sdata/deps-info.md @@ -1,86 +1,231 @@ -## Status: WIP -This file was generated by AI (see [#2102](https://github.com/end-4/dots-hyprland/issues/2102)). -It still needs manual correction. +This file contains information about the dependencies, currently it describes about `sdata/dist-arch/`. -## Information -Meta-packages (from sdata/dist-arch/install-deps.sh) -- illogical-impulse-basic - - Purpose: Core shell tooling used by scripts (general CLI utilities, build helpers, JSON processing, etc.). -- illogical-impulse-audio - - Purpose: Audio stack (e.g., PipeWire/WirePlumber, mixers, control UIs) used by widgets and desktop integrations. -- illogical-impulse-backlight - - Purpose: Screen brightness control utilities (e.g., brightnessctl). -- illogical-impulse-fonts-themes - - Purpose: Fonts and themes used across the shell/widgets (Noto, emoji fonts, icon themes, GTK/Qt themes). -- illogical-impulse-kde - - Purpose: KDE integration bits (dialogs, theming helpers, optional browser integration). -- illogical-impulse-portal - - Purpose: Desktop portals (e.g., xdg-desktop-portal and Wayland compositor-specific portals). -- illogical-impulse-python - - Purpose: Python 3 and libs for repo Python scripts and virtualenv activation. -- illogical-impulse-screencapture - - Purpose: Screenshot/recording tools on Wayland (e.g., grim, slurp, wf-recorder or similar). -- illogical-impulse-toolkit - - Purpose: General utilities used by scripts (jq, imagemagick, bc, etc.). -- illogical-impulse-widgets - - Purpose: Runtime deps for Quickshell widgets and supporting tools used in the UI modules. -- illogical-impulse-hyprland - - Purpose: Hyprland compositor and related tools (hyprland, hyprctl, hypridle, hyprlock, hyprcursor, portals). -- illogical-impulse-microtex-git - - Purpose: MicroTeX-related setup used by this config (custom packaging). -- illogical-impulse-bibata-modern-classic-bin (optional) - - Purpose: Bibata Modern Classic mouse cursor theme (installed only if not present). +# Meta packages +## illogical-impulse-audio +- `cava` + - Used in Quickshell config. +- `pavucontrol-qt` + - Used in Hyprland and Quickshell config. +- `wireplumber` + - Not explicitly used. +- `pipewire-pulse` + - not explicitly used. +- `libdbusmenu-gtk3` + - not explicitly used. +- `playerctl` + - Used in Hyprland and Quickshell config. -Concrete dependencies inferred from repository scripts -- hyprland (provides hyprctl) - - Purpose: Compositor -- jq - - Used by: switchwall.sh (JSON parsing), multiple scripts reading config.json, hyprctl -j output. - - Purpose: JSON parsing and transformation. -- matugen (AUR) - - Used by: switchwall.sh to generate Material You colors from image or color input. - - Purpose: Color extraction and scheme generation. -- python (python3) + virtualenv (python-virtualenv) - - Used by: switchwall.sh activates $ILLOGICAL_IMPULSE_VIRTUAL_ENV and runs generate_colors_material.py. - - Purpose: Color processing -- imagemagick (identify) - - Used by: switchwall.sh to probe image width/height to suggest upscaling. - - Purpose: Image metadata inspection. -- bc - - Used by: switchwall.sh for simple arithmetic on cursor coordinates. - - Purpose: Shell-friendly math. -- xdg-user-dirs (xdg-user-dir) - - Used by: switchwall.sh to locate Pictures folder. - - Purpose: XDG directories resolution. -- libnotify (notify-send) - - Used by: switchwall.sh to interactively prompt actions (install/open apps) via notifications. - - Purpose: Desktop notifications with actions. -- hyprpicker (AUR) - - Used by: switchwall.sh for picking colors from screen when --color is passed without hex. - - Purpose: On-screen color picker (Wayland). -- mpvpaper (AUR) - - Used by: switchwall.sh to set video wallpapers per monitor. - - Purpose: Video wallpaper playback under Wayland. -- ffmpeg - - Used by: switchwall.sh to extract a frame from videos to derive colors and thumbnails. - - Purpose: Video frame extraction and media handling. -- kitty - - Used by: switchwall.sh to run interactive installs or external tools in a terminal (kitty -1 ...). - - Purpose: Terminal emulator integration. -- kdialog (KDE) - - Used by: switchwall.sh to open a file picker for choosing wallpapers. - - Purpose: GUI file selection dialog. -- glib2 (gsettings) + dconf - - Used by: switchwall.sh to set GNOME interface color-scheme and GTK theme. - - Purpose: System settings manipulation. -- yay (or yay-bin from AUR) - - Used by: sdata/dist-arch/install-deps.sh to build/install local PKGBUILDs and dependencies. - - Purpose: AUR helper used by installer. -- base-devel, git, makepkg (core Arch tooling) - - Used by: sdata/dist-arch/install-deps.sh and update.sh for building AUR/PKGBUILD packages and repository management. - - Purpose: Build toolchain and VCS for packaging. +## illogical-impulse-backlight +- `geoclue` + - Which demo agent used in Quickshell config. +- `brightnessctl` + - Used in Hyprland and Quickshell config. +- `ddcutil` + - Used in Quickshell config. + +## illogical-impulse-basic +- `bc` + - Used in `quickshell/ii/scripts/colors/switchwall.sh` for example. +- `coreutils` + - Too many executables involved, not sure where been used. +- `cliphist` + - Used in Hyprland and Quickshell config. +- `cmake` + - Used in building quickshell and MicroTeX. +- `curl` + - Used in Quickshell config. +- `wget` + - Used in Quickshell config. +- `ripgrep` + - Not sure where been used. +- `jq` + - Widely used. +- `xdg-user-dirs` + - Used in Hyprland and Quickshell config. +- `rsync` + - Used in install script. +- `go-yq` + - Used in install script. + +## illogical-impulse-fonts-themes +- `adw-gtk-theme-git` + - [source](https://github.com/lassekongo83/adw-gtk3) + - Used in Quickshell config. +- `breeze` + - Used in kdeglobals config. +- `breeze-plus` + - [source](https://github.com/mjkim0727/breeze-plus) + - Used in kde-material-you-colors config. +- `darkly-bin` + - `darkly` is supposed to be set as the theme for Qt apps, just have not figured out how to properly set it yet. +- `eza` + - Used in Fish config: `alias ls 'eza --icons'` +- `fish` + - Widely used. +- `fontconfig` + - Basic component which is nearly a must. +- `kitty` + - Used in fuzzel, Hyprland, kdeglobals and Quickshell config; kitty config is also included as dots. +- `matugen-bin` + - Used in Quickshell. +- `otf-space-grotesk` + - [source](https://events.ccc.de/congress/2024/infos/styleguide.html) + - Used in Quickshell and matugen config. +- `starship` + - Used in Fish config. +- `ttf-gabarito-git` + - Font name: `Gabarito` + - Used in fuzzel and Quickshell config. +- `ttf-jetbrains-mono-nerd` + - Font name: `JetBrains Mono NF`, `JetBrainsMono Nerd Font`. + - Used in foot, kdeglobals, kitty, qt5ct, qt6ct and Quickshell config. +- `ttf-material-symbols-variable-git` + - Font name: `Material Symbols Rounded`, `Material Symbols Outlined` + - Used in Hyprland, matugen, Quickshell and wlogout config. +- `ttf-readex-pro` + - Font name: `Readex Pro` + - Used in Quickshell config. +- `ttf-roboto-flex` + - Font name: `Roboto Flex` + - Used in Hyprland, matugen and Quickshell config. +- `ttf-rubik-vf` + - Font name: `Rubik`, `Rubik Light` + - Used in Hyprland, kdeglobals, matugen, qt5ct, qt6ct and Quickshell config. +- `ttf-twemoji` + - Not explicitly used, but it may help as fallback for displaying emoji charaters. + +## illogical-impulse-hyprland +- `hypridle` + - Used for loginctl to lock session. +- `hyprland` + - Surely needed. +- `hyprlock` + - Installed as fallback; its config is also included. +- `hyprpicker` + - Used in Hyprland and Quickshell config. +- `hyprsunset` + - Used in Quickshell config. +- `xdg-desktop-portal-hyprland` + - DUPLICATE +- `wl-clipboard` + - Surely needed. + +## illogical-impulse-kde +- `bluedevil` + - Seems not being used anywhere, maybe a part of KDE settings panel. +- `gnome-keyring` + - Provide executable `gnome-keyring-daemon`, used in Hyprland and Quickshell config. +- `networkmanager` + - Basic component. +- `plasma-nm` + - Seems not being used anywhere, maybe a part of KDE settings panel. +- `polkit-kde-agent` + - Basic component. +- `dolphin` + - Used in Hyprland and Quickshell config. +- `systemsettings` + - Used in Hyprland `keybinds.conf`. -Notes -- Some Hyprland-adjacent packages appear in a legacy removal list as -git variants (e.g., hypridle, hyprlock, xdg-desktop-portal-hyprland). This suggests the meta-packages likely standardized on stable repo versions now. -- Exact package lists per meta-package should be verified against the PKGBUILD files in sdata/dist-arch/*; the above is aligned with how the code uses these tools. +## illogical-impulse-portal +- `xdg-desktop-portal` + - Basic component. +- `xdg-desktop-portal-kde` + - Basic component. +- `xdg-desktop-portal-gtk` + - Basic component. +- `xdg-desktop-portal-hyprland` + - Basic component. + +## illogical-impulse-python +- `clang` + - Some python package may need this to be built, e.g. #1235. This may varies on different distros though. +- `uv` + - Used for python venv. +- `gtk4` + - Not explicitly used. +- `libadwaita` + - Not explicitly used. +- `libsoup3` + - Not explicitly used. +- `libportal-gtk4` + - Not explicitly used. +- `gobject-introspection` + - Not explicitly used. + +## illogical-impulse-screencapture +- `hyprshot` + - Used in Hyprland `keybinds.conf` as fallback. +- `slurp` + - Used in Hyprland and Quickshell config. +- `swappy` + - Used in Quickshell config. +- `tesseract` + - Used in Quickshell and Hyprland config. +- `tesseract-data-eng` + - Used as data for tesseract. +- `wf-recorder` + - Used in Quickshell config. + + +## illogical-impulse-toolkit +- `upower` + - Used in Quickshell config. +- `wtype` + - Used in Hyprland `scripts/fuzzel-emoji.sh` +- `ydotool` + - Used in Quickshell config. + +## illogical-impulse-widgets +- `fuzzel` + - Used in Hyprland and Quickshell config; its config is also included. +- `glib2` + - Provides executable `gsettings` + - Used in install script, also in matugen and quickshell config. +- `imagemagick` + - Provides executable: `magick` + - Used in Quickshell config. +- `hypridle` (DUPLICATE) +- `hyprutils` (DUPLICATE) +- `hyprlock` (DUPLICATE) +- `hyprpicker` (DUPLICATE) +- `songrec` + - Used in Quickshell config. +- `translate-shell` + - Used in Quickshell config. +- `wlogout` + - Used in Hyprland config. + + +# Actual packages +## illogical-impulse-quickshell-git +- Pinned commit. +- Also with extra dependencies (mainly Qt things) needed by the illogical-impulse Quickshell config. + +Extra dependencies. +- `qt6-base` +- `qt6-declarative` +- `qt6-5compat` +- `qt6-avif-image-plugin` +- `qt6-imageformats` +- `qt6-multimedia` +- `qt6-positioning` +- `qt6-quicktimeline` +- `qt6-sensors` +- `qt6-svg` +- `qt6-tools` +- `qt6-translations` +- `qt6-virtualkeyboard` +- `qt6-wayland` +- `kdialog` +- `syntax-highlighting` + +## illogical-impulse-bibata-modern-classic-bin +- [source](https://github.com/ful1e5/Bibata_Cursor) +- Used in Hyprland config, not necessary. +## illogical-impulse-microtex-git +- [source](https://github.com/NanoMichael/MicroTeX) +- This package will be installed as `/opt/MicroTeX`. +## illogical-impulse-oneui4-icons-git +- [source](https://github.com/end-4/OneUI4-Icons) +- Customed version of normal oneui4-icons. diff --git a/sdata/dist-nix/home-manager/home.nix b/sdata/dist-nix/home-manager/home.nix index b6ab39cbe..ac0fb5791 100644 --- a/sdata/dist-nix/home-manager/home.nix +++ b/sdata/dist-nix/home-manager/home.nix @@ -48,90 +48,87 @@ # hyprlock pamtester - # NOTE: below are migrated from dist-arch. For each package, must know why it's needed and how it's used specifically, cuz things may be need tweak to properly use the package installed by Nix, for example those have hardcoded path /usr/* . + # NOTE: below are migrated from dist-arch. For each package, must know why it's needed and how it's used specifically, cuz things may be need tweak to properly use the package installed by Nix, for example those have hardcoded path /usr/* . See sdata/deps-info.md ### illogical-impulse-audio - libcava #cava (Used in Quickshell config) - lxqt.pavucontrol-qt #pavucontrol-qt (Used in Hyprland and Quickshell config) - wireplumber #wireplumber (not explicitly used) - pipewire #pipewire-pulse (not explicitly used) - libdbusmenu-gtk3 #libdbusmenu-gtk3 (not explicitly used) - playerctl #playerctl (Used in Hyprland and Quickshell config) + libcava #cava + lxqt.pavucontrol-qt #pavucontrol-qt + wireplumber #wireplumber + pipewire #pipewire-pulse + libdbusmenu-gtk3 #libdbusmenu-gtk3 + playerctl #playerctl ### illogical-impulse-backlight - (geoclue2.override { withDemoAgent = true; }) #geoclue (which demo agent used in Quickshell config) - brightnessctl #brightnessctl (Used in Hyprland and Quickshell config) - ddcutil #ddcutil (Used in Quickshell config) + (geoclue2.override { withDemoAgent = true; }) #geoclue + brightnessctl #brightnessctl + ddcutil #ddcutil ### illogical-impulse-basic - bc #bc (Used in quickshell/ii/scripts/colors/switchwall.sh for example) - uutils-coreutils-noprefix #coreutils (Too many executables involved, not sure where been used) - cliphist #cliphist (Used in Hyprland and Quickshell config) - cmake #cmake (Used in building quickshell and MicroTeX) - curlFull #curl (Used in Quickshell config) - wget #wget (Used in Quickshell config) - ripgrep #ripgrep (Not sure where been used) - jq #jq (Widely used) - xdg-user-dirs #xdg-user-dirs (Used in Hyprland and Quickshell config) - rsync #rsync (Used in install script) - yq-go #go-yq (Used in install script) + bc #bc + uutils-coreutils-noprefix #coreutils + cliphist #cliphist + cmake #cmake + curlFull #curl + wget #wget + ripgrep #ripgrep + jq #jq + xdg-user-dirs #xdg-user-dirs + rsync #rsync + yq-go #go-yq ### illogical-impulse-bibata-modern-classic-bin - bibata-cursors #https://github.com/ful1e5/Bibata_Cursor (Used in Hyprland config, not necessary) + bibata-cursors ### illogical-impulse-fonts-themes - adw-gtk3 #adw-gtk-theme-git (https://github.com/lassekongo83/adw-gtk3) (Used in Quickshell config) - kdePackages.breeze kdePackages.breeze-icons #breeze (Used in kdeglobals config) - #breeze-plus (https://github.com/mjkim0727/breeze-plus) (TODO: Not available as nixpkg) (Used in kde-material-you-colors config) - darkly darkly-qt5 #darkly-bin (darkly is supposed to be set as the theme for Qt apps, just have not figured out how to properly set it yet.) - eza #eza (Used in Fish config: `alias ls 'eza --icons'`) - #fish (Install via system PM instead; TODO: should install via nix in future when authentication problem fixed) - fontconfig #fontconfig (Basic thing) + adw-gtk3 #adw-gtk-theme-git + kdePackages.breeze kdePackages.breeze-icons #breeze + #breeze-plus (TODO: Not available as nixpkg) + darkly darkly-qt5 #darkly-bin + eza #eza + #fish (Currently install via system PM; TODO: should install via nix in future when authentication problem fixed) + fontconfig #fontconfig kitty #kitty (Used in fuzzel, Hyprland, kdeglobals and Quickshell config; kitty config is also included as dots) matugen #matugen-bin (Used in Quickshell) - #otf-space-grotesk (https://events.ccc.de/congress/2024/infos/styleguide.html) (TODO: Not available as Nixpkg) (Used in Quickshell and matugen config) - starship #starship (Used in Fish config) - #ttf-gabarito-git (Font name: Gabarito) (Used in fuzzel and Quickshell config) (TODO: Not available as Nixpkg) - nerd-fonts.jetbrains-mono #ttf-jetbrains-mono-nerd (Font name: JetBrains Mono NF, JetBrainsMono Nerd Font) (Used in foot, kdeglobals, kitty, qt5ct, qt6ct and Quickshell config) - material-symbols #ttf-material-symbols-variable-git (Font name: Material Symbols Rounded, Material Symbols Outlined) (Used in Hyprland, matugen, Quickshell and wlogout config) - #ttf-readex-pro (Font name: Readex Pro) (Used in Quickshell config) (TODO: seems not available as nixpkg) - roboto-flex #ttf-roboto-flex (Font name: Roboto Flex) (Used in Hyprland, matugen and Quickshell config) - rubik #ttf-rubik-vf (Font name: Rubik, Rubik Light) (Used in Hyprland, kdeglobals, matugen, qt5ct, qt6ct and Quickshell config) - twemoji-color-font #ttf-twemoji (Not explicitly used, but it may help as fallback for displaying emoji charaters) + #otf-space-grotesk (TODO: Not available as Nixpkg) + starship #starship + #ttf-gabarito-git (TODO: Not available as Nixpkg) + nerd-fonts.jetbrains-mono #ttf-jetbrains-mono-nerd + material-symbols #ttf-material-symbols-variable-git + #ttf-readex-pro (TODO: seems not available as nixpkg) + roboto-flex #ttf-roboto-flex + rubik #ttf-rubik-vf + twemoji-color-font #ttf-twemoji ### illogical-impulse-hyprland - hypridle #hypridle (Used for loginctl to lock session) - #hyprland (Need NixGL, included elsewhere) + hypridle #hypridle + #hyprland #hyprlock (Should not be installed via Nix; TODO: should install via nix in future when authentication problem fixed) - hyprpicker #hyprpicker (Used in Hyprland and Quickshell config) - hyprsunset #hyprsunset (Used in Quickshell config) + hyprpicker #hyprpicker + hyprsunset #hyprsunset #xdg-desktop-portal-hyprland (DUPLICATE) - wl-clipboard #wl-clipboard (Surely needed) + wl-clipboard #wl-clipboard ### illogical-impulse-kde - kdePackages.bluedevil #bluedevil (Seems not being used anywhere, maybe a part of KDE settings panel) - #gnome-keyring #gnome-keyring (TODO: Install via system PM instead; should install via nix in future when authentication problem fixed) (Provide executable gnome-keyring-daemon, used in Hyprland and Quickshell config) + kdePackages.bluedevil #bluedevil + #gnome-keyring #gnome-keyring (TODO: Install via system PM instead; should install via nix in future when authentication problem fixed) networkmanager #networkmanager - kdePackages.plasma-nm #plasma-nm (Seems not being used anywhere, maybe a part of KDE settings panel) + kdePackages.plasma-nm #plasma-nm #polkit-kde-agent (TODO: Install via system PM instead; should install via nix in future when authentication problem fixed) - kdePackages.dolphin #dolphin (Used in Hyprland and Quickshell config) - kdePackages.systemsettings #systemsettings (Used in Hyprland keybinds.conf) + kdePackages.dolphin #dolphin + kdePackages.systemsettings #systemsettings ### illogical-impulse-microtex-git - # This package will be installed as /opt/MicroTeX - #MicroTeX#https://github.com/NanoMichael/MicroTeX # TODO: Not available as nixpkg ### illogical-impulse-oneui4-icons-git - #OneUI4-Icons#https://github.com/end-4/OneUI4-Icons - # TODO: Custom repo, need to make a package + # TODO: Customed version of normal oneui4-icons, need to make a package ### illogical-impulse-portal @@ -142,41 +139,41 @@ ### illogical-impulse-python - #clang (Some python package may need this to be built, e.g. #1235; However when cmake is installed by Nix, then pkg-config, cairo etc will be used but they can only be accessible in Nix development environment for example nix-shell, nix develop, etc. See `sdata/uv/shell.nix`. ) - uv #uv (Used for python venv) - gtk4 #gtk4 (Not explicitly used) - libadwaita #libadwaita (Not explicitly used) - libsoup_3 #libsoup3 (Not explicitly used) - libportal-gtk4 #libportal-gtk4 (Not explicitly used) - gobject-introspection #gobject-introspection (Not explicitly used) + #clang (Not needed for Nix. However, when cmake is installed by Nix, then pkg-config, cairo etc will be used but they can only be accessible in Nix development environment for example nix-shell, nix develop, etc. See `sdata/uv/shell.nix`. ) + uv #uv + gtk4 #gtk4 + libadwaita #libadwaita + libsoup_3 #libsoup3 + libportal-gtk4 #libportal-gtk4 + gobject-introspection #gobject-introspection ### illogical-impulse-screencapture - hyprshot #hyprshot (Used in Hyprland keybinds.conf as fallback) - slurp #slurp (Used in Hyprland and Quickshell config) - swappy #swappy (Used in Quickshell config) - tesseract #tesseract (Used in Quickshell and Hyprland config) - #tesseract-data-eng (Used as data for tesseract) (TODO: Seems not available as nixpkg) - wf-recorder #wf-recorder (Used in Quickshell config) + hyprshot #hyprshot + slurp #slurp + swappy #swappy + tesseract #tesseract + #tesseract-data-eng (TODO: Seems not available as nixpkg) + wf-recorder #wf-recorder ### illogical-impulse-toolkit - upower #upower (Used in Quickshell config) - wtype #wtype (Used in Hyprland scripts/fuzzel-emoji.sh) - ydotool #ydotool (Used in Quickshell config) + upower #upower + wtype #wtype + ydotool #ydotool ### illogical-impulse-widgets - fuzzel #fuzzel (Used in Hyprland and Quickshell config; its config is also included) - glib #glib2 (Provide executable gsettings) (Used in install script, also in matugen and quickshell config) - imagemagick #imagemagick (Provide executable: magick) (Used in Quickshell config) + fuzzel #fuzzel + glib #glib2 + imagemagick #imagemagick #hypridle (DUPLICATE) #hyprutils (DUPLICATE) #hyprlock (DUPLICATE) #hyprpicker (DUPLICATE) - songrec #songrec (Used in Quickshell config) - translate-shell #translate-shell (Used in Quickshell config) - wlogout #wlogout (Used in Hyprland config) + songrec #songrec + translate-shell #translate-shell + wlogout #wlogout ] ++ [ diff --git a/sdata/dist-nix/home-manager/quickshell.nix b/sdata/dist-nix/home-manager/quickshell.nix index 83601718d..823797082 100644 --- a/sdata/dist-nix/home-manager/quickshell.nix +++ b/sdata/dist-nix/home-manager/quickshell.nix @@ -40,8 +40,8 @@ in pkgs.stdenv.mkDerivation { qt6.qttranslations #qt6-translations qt6.qtvirtualkeyboard #qt6-virtualkeyboard qt6.qtwayland #qt6-wayland - kdePackages.kdialog #kdialog (Used in Quickshell config) - kdePackages.syntax-highlighting #syntax-highlighting (Used in Quickshell config) + kdePackages.kdialog #kdialog + kdePackages.syntax-highlighting #syntax-highlighting ]; installPhase = ''