diff --git a/sdata/dist-arch/illogical-impulse-audio/PKGBUILD b/sdata/dist-arch/illogical-impulse-audio/PKGBUILD index 6cab7de53..4a9294122 100644 --- a/sdata/dist-arch/illogical-impulse-audio/PKGBUILD +++ b/sdata/dist-arch/illogical-impulse-audio/PKGBUILD @@ -1,6 +1,6 @@ pkgname=illogical-impulse-audio pkgver=1.0 -pkgrel=1 +pkgrel=2 pkgdesc='Illogical Impulse Audio Dependencies' arch=(any) license=(None) @@ -8,6 +8,7 @@ depends=( cava pavucontrol-qt wireplumber + pipewire-pulse libdbusmenu-gtk3 playerctl ) diff --git a/sdata/dist-nix/README.md b/sdata/dist-nix/README.md index 458556d72..20f80025d 100644 --- a/sdata/dist-nix/README.md +++ b/sdata/dist-nix/README.md @@ -6,24 +6,10 @@ **NOTE: The sdata/dist-nix is not for NixOS but every distro, using Nix and home-manager.** ## plan -TODO: -Write a proper `flake.nix` and optionally `home.nix` and other files under `./sdata/dist-nix/iiqs-hm/` to install all dependencies that `./sdata/dist-arch/install-deps.sh` does. (**excluding** the screenlock) - -TODO: -In this script, implement the process below: -1. Warning user about "this script is only experimental and must only use it at your own risks.", and prompt `y/N` (default N) before proceeding. -2. If nix not installed: - 1. install nix via [NixOS/experimental-nix-installer](https://github.com/NixOS/experimental-nix-installer) - 2. Enable nix for shell - - Update: Skip this step cuz the nix-installer will handle it automatically e.g. in `/etc/zsh/zshrc`. - 3. Ensure the experimental feature, Nix Flake, is enabled. -3. cd to `iiqs-hm` and use something like `home-manager switch --flake .#iiqs` to install the dependencies. -4. Install screen lock using system package manager of the current distro. - Note that this script must be idempotent. TODO: -Write guide for people already use nix, so they can manually grab things from this repo to their own Nix/home-manager configurations to install the dependencies. +- [ ] Write a proper `flake.nix` and `home.nix` and other files under `dist-nix/home-manager/` to install all dependencies that `dist-arch/` does. (**excluding** the screenlock) ## Attentions ### PAM @@ -37,61 +23,4 @@ The problem could be solved by using the system-provided libpam instead. See also https://github.com/caelestia-dots/shell/issues/668 ### NixGL -On non-NixOS distros, packages installed via home-manager have problem accessing GPU, especially Hyprland because it requires GPU acceleration to launch. `nixGL` should be used to address the problem. Example code in `home.nix`: -``` -{ config, lib, pkgs, nixgl, ... }: -{ - nixGL.packages = nixgl.packages; - nixGL.defaultWrapper = "mesa"; - - # other lines not showed here ... - - home = { - packages = with pkgs; [ - cowsay # normal packages that does not need nixGL - lolcat - # other lines not showed here ... - ] - ++ [ - (config.lib.nixGL.wrap pkgs.firefox-bin) - (config.lib.nixGL.wrap pkgs.hyprland) - # other lines not showed here ... - ]; - # other lines not showed here ... - }; -} -``` - -And in `flake.nix`: -```nix -{ - inputs = { - nixpkgs.url = "nixpkgs/nixos-25.05"; - home-manager = { - url = "github:nix-community/home-manager/release-25.05"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - hyprland = { - url = "github:hyprwm/Hyprland"; - }; - nixgl.url = "github:nix-community/nixGL"; - }; - outputs = { nixpkgs, home-manager, nixgl, ... }: - let - lib = nixpkgs.lib; - system = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - overlays = [ nixgl.overlay ]; - }; - in { - homeConfigurations = { - mydot = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - extraSpecialArgs = { inherit nixgl; }; - modules = [ ./home.nix ]; - }; - }; - }; -} -``` +On non-NixOS distros, packages installed via home-manager have problem accessing GPU, especially Hyprland because it requires GPU acceleration to launch. `nixGL` should be used to address the problem. diff --git a/sdata/dist-nix/home-manager/flake.lock b/sdata/dist-nix/home-manager/flake.lock new file mode 100644 index 000000000..3c2f0f3f0 --- /dev/null +++ b/sdata/dist-nix/home-manager/flake.lock @@ -0,0 +1,542 @@ +{ + "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1760101617, + "narHash": "sha256-8jf/3ZCi+B7zYpIyV04+3wm72BD7Z801IlOzsOACR7I=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "1826a9923881320306231b1c2090379ebf9fa4f8", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-25.05", + "repo": "home-manager", + "type": "github" + } + }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753964049, + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1760445448, + "narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "50fb9f069219f338a11cf0bcccb9e58357d67757", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1761780088, + "narHash": "sha256-ylKrWQeIAGyysfHbgZpcWUs9UsbiOBIVXTPqaiV3lf0=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "6ade4d58cab67e18aa758ef664e36421cab4d8b2", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1759610243, + "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1749154592, + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1759080228, + "narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1758927902, + "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1759619523, + "narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1755184602, + "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "nixgl": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1752054764, + "narHash": "sha256-Ob/HuUhANoDs+nvYqyTKrkcPXf4ZgXoqMTQoCK0RFgQ=", + "owner": "nix-community", + "repo": "nixGL", + "rev": "a8e1ce7d49a149ed70df676785b07f63288f53c5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixGL", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1761114652, + "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1746378225, + "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "93e8cdce7afc64297cfec447c311470788131cd9", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1761597516, + "narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "daf6dc47aa4b44791372d6139ab7b25269184d55", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-25.05", + "type": "indirect" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1760663237, + "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "hyprland": "hyprland", + "nixgl": "nixgl", + "nixpkgs": "nixpkgs_3" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1760713634, + "narHash": "sha256-5HXelmz2x/uO26lvW7MudnadbAfoBnve4tRBiDVLtOM=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "753bbbdf6a052994da94062e5b753288cef28dfb", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/sdata/dist-nix/home-manager/flake.nix b/sdata/dist-nix/home-manager/flake.nix new file mode 100644 index 000000000..3422f5c4b --- /dev/null +++ b/sdata/dist-nix/home-manager/flake.nix @@ -0,0 +1,41 @@ +# flake.nix +{ + description = "illogical-impulse"; + + inputs = { + nixpkgs.url = "nixpkgs/nixos-25.05"; + + home-manager = { + url = "github:nix-community/home-manager/release-25.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + hyprland = { + url = "github:hyprwm/Hyprland"; + }; + nixgl.url = "github:nix-community/nixGL"; + }; + + outputs = { nixpkgs, home-manager, nixgl, ... }: + let + home_attrs = rec { + username = import ./username.nix; + homeDirectory = "/home/${username}"; + stateVersion = "25.05"; + }; + system = "x86_64-linux"; + lib = nixpkgs.lib; + pkgs = import nixpkgs { + inherit system; + }; + in { + homeConfigurations = { + illogical_impulse = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { inherit nixgl home_attrs; }; + modules = [ + ./home.nix + ]; + }; + }; + }; +} diff --git a/sdata/dist-nix/home-manager/home.nix b/sdata/dist-nix/home-manager/home.nix new file mode 100644 index 000000000..6f17bd4f0 --- /dev/null +++ b/sdata/dist-nix/home-manager/home.nix @@ -0,0 +1,57 @@ +{ config, lib, pkgs, nixgl, home_attrs, ... }: +{ + programs.home-manager.enable = true; + nixGL.packages = nixgl.packages; + nixGL.defaultWrapper = "mesa"; + + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-gnome + xdg-desktop-portal-gtk + xdg-desktop-portal-wlr + ]; + config.hyprland = { + default = [ "hyprland" "gtk" ]; + "org.freedesktop.impl.portal.ScreenCast" = [ + "gnome" + ]; + }; + }; + ## Allow fontconfig to discover fonts in home.packages + fonts.fontconfig.enable = true; + + # home.sessionVariables.NIXOS_OZONE_WL = "1"; + wayland.windowManager.hyprland = { + ## Make sure home-manager not generate ~/.config/hypr/hyprland.conf + systemd.enable = false; plugins = []; settings = {}; extraConfig = ""; + enable = true; + ## Use NixGL + package = config.lib.nixGL.wrap pkgs.hyprland; + }; + + home = { + packages = with pkgs; [ + ##### Sure ##### + ## Basic cli tool + ## inetutils: provides hostname, ifconfig, ping, etc. + ## libnotify: provides notify-send + jq rsync inetutils libnotify + ## Media related + brightnessctl playerctl pavucontrol + ## Clipboard/Emoji + wl-clipboard cliphist + ## Terminal and shell + foot cowsay lolcat + + ##### Fonts/Icons/Cursors/Decoration ##### + fontconfig + + ##### Other basic things ##### + dbus xorg.xlsclients networkmanager + + ##### Not work, to be solved ##### + # swaylock pamtester + ]; + }//home_attrs; +} diff --git a/sdata/dist-nix/install-deps.sh b/sdata/dist-nix/install-deps.sh index 59ffec887..726a51259 100644 --- a/sdata/dist-nix/install-deps.sh +++ b/sdata/dist-nix/install-deps.sh @@ -1,8 +1,6 @@ # This script is meant to be sourced. # It's not for directly running. -# This file is currently WIP. - function install_home-manager(){ # https://nix-community.github.io/home-manager/index.xhtml#sec-install-standalone local cmd=home-manager @@ -96,7 +94,7 @@ function hm_deps(){ --extra-experimental-features nix-command \ --extra-experimental-features flakes cd $REPO_ROOT - x git reset "${SETUP_USERNAME_NIXFILE}" + x git rm -f "${SETUP_USERNAME_NIXFILE}" } ################################################## @@ -128,4 +126,4 @@ if ! command -v home-manager >/dev/null 2>&1;then fi showfun hm_deps -v hm_deps \ No newline at end of file +v hm_deps diff --git a/sdata/subcmd-install/3.files-exp.sh b/sdata/subcmd-install/3.files-exp.sh index f35229535..778fd3ba7 100644 --- a/sdata/subcmd-install/3.files-exp.sh +++ b/sdata/subcmd-install/3.files-exp.sh @@ -83,10 +83,10 @@ for pattern in "${patterns[@]}"; do condition=$(echo "$pattern" | yq '.condition // "true"') # Handle fontconfig fontset override - # If II_FONTSET_NAME is set and this is the fontconfig pattern, use the fontset instead - if [[ "$from" == "dots/.config/fontconfig" ]] && [[ -n "${II_FONTSET_NAME:-}" ]]; then - from="dots-extra/fontsets/${II_FONTSET_NAME}" - echo "Using fontset \"${II_FONTSET_NAME}\" for fontconfig" + # If FONTSET_DIR_NAME is set and this is the fontconfig pattern, use the fontset instead + if [[ "$from" == "dots/.config/fontconfig" ]] && [[ -n "${FONTSET_DIR_NAME:-}" ]]; then + from="dots-extra/fontsets/${FONTSET_DIR_NAME}" + echo "Using fontset \"${FONTSET_DIR_NAME}\" for fontconfig" fi # Check if pattern should be processed diff --git a/sdata/subcmd-install/3.files.sh b/sdata/subcmd-install/3.files.sh index ead48593f..8e92fed2c 100644 --- a/sdata/subcmd-install/3.files.sh +++ b/sdata/subcmd-install/3.files.sh @@ -103,9 +103,9 @@ esac case $SKIP_FONTCONFIG in true) sleep 0;; *) - case "$II_FONTSET_NAME" in + case "$FONTSET_DIR_NAME" in "") warning_rsync_delete; v rsync -av --delete dots/.config/fontconfig/ "$XDG_CONFIG_HOME"/fontconfig/ ;; - *) warning_rsync_delete; v rsync -av --delete dots-extra/fontsets/$II_FONTSET_NAME/ "$XDG_CONFIG_HOME"/fontconfig/ ;; + *) warning_rsync_delete; v rsync -av --delete dots-extra/fontsets/$FONTSET_DIR_NAME/ "$XDG_CONFIG_HOME"/fontconfig/ ;; esac;; esac diff --git a/sdata/subcmd-install/3.files.yaml b/sdata/subcmd-install/3.files.yaml index a9f2985f2..59ed69ebc 100644 --- a/sdata/subcmd-install/3.files.yaml +++ b/sdata/subcmd-install/3.files.yaml @@ -57,7 +57,7 @@ patterns: - from: "dots/.local/share/konsole" to: "$XDG_DATA_HOME/konsole" mode: "soft" - # Fontconfig (default - fontsets handled separately if II_FONTSET_NAME is set) + # Fontconfig (default - fontsets handled separately if FONTSET_DIR_NAME is set) - from: "dots/.config/fontconfig" to: "$XDG_CONFIG_HOME/fontconfig" mode: "sync" diff --git a/sdata/subcmd-install/options.sh b/sdata/subcmd-install/options.sh index dba8a4430..d60705354 100644 --- a/sdata/subcmd-install/options.sh +++ b/sdata/subcmd-install/options.sh @@ -1,7 +1,7 @@ # Handle args for subcmd: install # shellcheck shell=bash showhelp(){ -echo -e "Syntax: $0 install [OPTIONS]... +printf "Syntax: $0 install [OPTIONS]... Idempotent installation for dotfiles. @@ -23,11 +23,17 @@ Options for install: --skip-miscconf Skip copying the dirs and files to \".configs\" except for Quickshell, Fish and Hyprland --core Alias of --skip-{plasmaintg,fish,miscconf,fontconfig} - --exp-files Use experimental script for the third step copying files --fontset Use a set of pre-defined font and config (currently only fontconfig). Possible values of : $(ls -A ${REPO_ROOT}/dots-extra/fontsets) - --via-nix (Unavailable yet) Use Nix to install dependencies -" +${STY_CYAN} +New features (experimental): + --exp-files Use yaml-based config for the third step copying files. + This feature is ${STY_YELLOW}still on early stage${STY_CYAN}, feedback and contribution welcomed, + see https://github.com/end-4/dots-hyprland/issues/2137 for details. + --via-nix Use Nix and Home-manager to install dependencies. + This feature is ${STY_RED}working in progress${STY_CYAN}. Contribution is welcomed, + see https://github.com/end-4/dots-hyprland/issues/1061 for details. +${STY_RST}" } cleancache(){ @@ -81,7 +87,7 @@ while true ; do ## Ones with parameter --fontset) if [[ -d "${REPO_ROOT}/dots-extra/fontsets/$2" ]]; - then echo "Using fontset \"$2\".";II_FONTSET_NAME="$2";shift 2 + then echo "Using fontset \"$2\".";FONTSET_DIR_NAME="$2";shift 2 else echo "Wrong argument for $1.";exit 1 fi;;