From 38cd1a71697b21060ee8b425099533d31a69460c Mon Sep 17 00:00:00 2001 From: clsty Date: Tue, 4 Nov 2025 20:47:35 +0800 Subject: [PATCH] Update dist-nix --- sdata/dist-nix/home-manager/home.nix | 10 ++++++---- sdata/lib/package-installers.sh | 6 +++++- sdata/subcmd-install/3.files-legacy.sh | 10 +++++++--- sdata/uv/shell.nix | 12 ++++++++++++ 4 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 sdata/uv/shell.nix diff --git a/sdata/dist-nix/home-manager/home.nix b/sdata/dist-nix/home-manager/home.nix index 7ffb973e5..8636a8489 100644 --- a/sdata/dist-nix/home-manager/home.nix +++ b/sdata/dist-nix/home-manager/home.nix @@ -30,10 +30,12 @@ ## inetutils: provides hostname, ifconfig, ping, etc. ## libnotify: provides notify-send inetutils libnotify - foot # Used in Quickshell and Hyprland config; its config is also included - ##### Other basic things ##### - dbus xorg.xlsclients + ##### Other MISC ##### + dbus xorg.xlsclients # some basic things + foot # Used in Quickshell and Hyprland config; its config is also included + kdePackages.kconfig # provide kwriteconfig6, used in install script + ##### Not work, to be solved ##### # hyprlock pamtester @@ -133,7 +135,7 @@ ### illogical-impulse-python - pkg-config clang #clang (Some python package may need this to be built, e.g. #1235; Also pkg-config is needed for Nix when running uv install) + #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) diff --git a/sdata/lib/package-installers.sh b/sdata/lib/package-installers.sh index 24f3bf3ce..5f71cd7c1 100644 --- a/sdata/lib/package-installers.sh +++ b/sdata/lib/package-installers.sh @@ -88,6 +88,10 @@ install-python-packages(){ # we need python 3.12 https://github.com/python-pillow/Pillow/issues/8089 x uv venv --prompt .venv $(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV) -p 3.12 x source $(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate - x uv pip install -r sdata/uv/requirements.txt + if [[ "$INSTALL_VIA_NIX" = true ]]; then + x nix-shell ${REPO_ROOT}/sdata/uv/shell.nix --run "uv pip install -r ${REPO_ROOT}/sdata/uv/requirements.txt" + else + x uv pip install -r ${REPO_ROOT}/sdata/uv/requirements.txt + fi x deactivate } diff --git a/sdata/subcmd-install/3.files-legacy.sh b/sdata/subcmd-install/3.files-legacy.sh index 88337a1db..858fd351d 100644 --- a/sdata/subcmd-install/3.files-legacy.sh +++ b/sdata/subcmd-install/3.files-legacy.sh @@ -3,7 +3,6 @@ # shellcheck shell=bash -# TODO: When --via-nix is specified, use dots-extra/vianix/hypridle.conf instead # In case some dirs does not exists v mkdir -p $XDG_BIN_HOME $XDG_CACHE_HOME $XDG_CONFIG_HOME $XDG_DATA_HOME/icons @@ -80,13 +79,18 @@ case $SKIP_HYPRLAND in v cp dots/.config/hypr/hyprland.conf $t fi t="$XDG_CONFIG_HOME/hypr/hypridle.conf" + if [[ "$INSTALL_VIA_NIX" = true ]]; then + s=dots/.config/hypr/hypridle.conf + else + s=dots-extra/vianix/hypridle.conf + fi if [ -f $t ];then echo -e "${STY_BLUE}[$0]: \"$t\" already exists.${STY_RST}" - v cp -f dots/.config/hypr/hypridle.conf $t.new + v cp -f $s $t.new existed_hypridle_conf=y else echo -e "${STY_YELLOW}[$0]: \"$t\" does not exist yet.${STY_RST}" - v cp dots/.config/hypr/hypridle.conf $t + v cp $s $t existed_hypridle_conf=n fi t="$XDG_CONFIG_HOME/hypr/hyprlock.conf" diff --git a/sdata/uv/shell.nix b/sdata/uv/shell.nix new file mode 100644 index 000000000..46f9f8f65 --- /dev/null +++ b/sdata/uv/shell.nix @@ -0,0 +1,12 @@ +{ pkgs ? import {} }: +pkgs.mkShell { + buildInputs = with pkgs; [ + pkg-config + meson + ninja + cairo + dbus + dbus-glib + glib + ]; +}