Move sdist/ID to sdata/dist-ID

This commit is contained in:
clsty
2025-10-26 21:27:41 +08:00
parent c13ba5f25e
commit 5a846cdec5
66 changed files with 73 additions and 74 deletions
+4 -4
View File
@@ -3,7 +3,7 @@ This file was generated by AI (see [#2102](https://github.com/end-4/dots-hyprlan
It still needs manual correction.
## Information
Meta-packages (from sdist/arch/install-deps.sh)
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
@@ -74,13 +74,13 @@ Concrete dependencies inferred from repository scripts
- 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: sdist/arch/install-deps.sh to build/install local PKGBUILDs and dependencies.
- 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: sdist/arch/install-deps.sh and update.sh for building AUR/PKGBUILD packages and repository management.
- 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.
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 sdist/arch/*; the above is aligned with how the code uses these tools.
- 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.
+3
View File
@@ -0,0 +1,3 @@
/*/*.tar.*
/*/pkg/
/*/src/
+20
View File
@@ -0,0 +1,20 @@
# Install scripts for Arch Linux
- See also [Install scripts | illogical-impulse](https://ii.clsty.link/en/dev/inst-script/)
## Old Dependency Installation Method
The old deps install method mainly involved `./sdata/dependencies.conf` (which has been removed now).
## Current Dependency Installation
Local PKGBUILDs under `./sdata/dist-arch/` are used to install dependencies.
The mechanism is introduced by [Makrennel](https://github.com/Makrennel) in [PR#570](https://github.com/end-4/dots-hyprland/pull/570).
Why is this awesome?
- It makes it possible to control version since some packages may involve breaking changes from time to time.
- It makes the dependency trackable for package manager, so that you always know why you have installed some package.
- As a result, it enables a workable `uninstall.sh` script.
The PKGBUILDs contains two forms of dependencies:
- Package name written in dependencies, like a "meta" package.
- Normal PKGBUILD content to build dependencies, e.g. AGS, which is often for version controlling.
@@ -0,0 +1,14 @@
pkgname=illogical-impulse-audio
pkgver=1.0
pkgrel=1
pkgdesc='Illogical Impulse Audio Dependencies'
arch=(any)
license=(None)
depends=(
cava
pavucontrol-qt
wireplumber
libdbusmenu-gtk3
playerctl
)
@@ -0,0 +1,12 @@
pkgname=illogical-impulse-backlight
pkgver=1.0
pkgrel=1
pkgdesc='Illogical Impulse Backlight Dependencies'
arch=(any)
license=(None)
depends=(
geoclue
brightnessctl
ddcutil
)
@@ -0,0 +1,20 @@
pkgname=illogical-impulse-basic
pkgver=1.0
pkgrel=1
pkgdesc='Illogical Impulse Basic Dependencies'
arch=(any)
license=(None)
depends=(
axel
bc
coreutils
cliphist
cmake
curl
rsync
wget
ripgrep
jq
meson
xdg-user-dirs
)
@@ -0,0 +1,17 @@
pkgname=illogical-impulse-bibata-modern-classic-bin
pkgver=2.0.6
pkgrel=1
pkgdesc="Material Based Cursor Theme, installed for illogical-impulse dotfiles"
arch=('any')
url="https://github.com/ful1e5/Bibata_Cursor"
license=('GPL-3.0-or-later')
conflicts=("bibata-cursor-theme" "bibata-cursor-theme-bin")
options=('!strip')
_variant=Bibata-Modern-Classic
source=("${pkgname%-bin}-$pkgver.tar.xz::$url/releases/download/v$pkgver/$_variant.tar.xz")
sha256sums=('SKIP')
package() {
install -dm755 "$pkgdir/usr/share/icons"
cp -dr --no-preserve=mode $_variant "$pkgdir/usr/share/icons"
}
@@ -0,0 +1,25 @@
pkgname=illogical-impulse-fonts-themes
pkgver=1.0
pkgrel=2
pkgdesc='Illogical Impulse Fonts and Theming Dependencies'
arch=(any)
license=(None)
depends=(
adw-gtk-theme-git
breeze
breeze-plus
darkly-bin
eza
fish
fontconfig
kitty
matugen-bin
otf-space-grotesk
starship
ttf-gabarito-git
ttf-jetbrains-mono-nerd
ttf-material-symbols-variable-git
ttf-readex-pro
ttf-rubik-vf
ttf-twemoji
)
@@ -0,0 +1,21 @@
pkgname=illogical-impulse-hyprland
pkgver=1.0
pkgrel=1
pkgdesc='Illogical Impulse Hyprland relatated packages'
arch=(any)
license=(None)
depends=(
hypridle
hyprcursor
hyprland
hyprland-qtutils
hyprland-qt-support
hyprlang
hyprlock
hyprpicker
hyprsunset
hyprutils
hyprwayland-scanner
xdg-desktop-portal-hyprland
wl-clipboard
)
@@ -0,0 +1,15 @@
pkgname=illogical-impulse-kde
pkgver=1.0
pkgrel=2
pkgdesc='Illogical Impulse KDE Dependencies'
arch=(any)
license=(None)
depends=(
bluedevil
gnome-keyring
networkmanager
plasma-nm
polkit-kde-agent
dolphin
systemsettings
)
@@ -0,0 +1 @@
/MicroTeX/
@@ -0,0 +1,42 @@
pkgname=illogical-impulse-microtex-git
_pkgname=MicroTeX
pkgver=r494.0e3707f
pkgrel=2
pkgdesc='MicroTeX for illogical-impulse dotfiles.'
#pkgdesc="A dynamic, cross-platform, and embeddable LaTeX rendering library"
arch=("x86_64")
url="https://github.com/NanoMichael/${_pkgname}"
license=('MIT')
depends=(
tinyxml2
gtkmm3
gtksourceviewmm
cairomm
)
makedepends=("git" "cmake")
source=("git+${url}.git")
sha256sums=("SKIP")
pkgver() {
cd $_pkgname
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
prepare() {
cd $_pkgname
sed -i 's/gtksourceviewmm-3.0/gtksourceviewmm-4.0/' CMakeLists.txt
sed -i 's/tinyxml2.so.10/tinyxml2.so.11/' CMakeLists.txt
}
build() {
cd $_pkgname
cmake -B build -S . -DCMAKE_BUILD_TYPE=None
cmake --build build
}
package() {
cd $_pkgname
install -Dm0755 -t "$pkgdir/opt/$_pkgname/" build/LaTeX
cp -r build/res "$pkgdir/opt/$_pkgname/"
install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
}
@@ -0,0 +1 @@
/OneUI4-Icons/
@@ -0,0 +1,24 @@
pkgname=illogical-impulse-oneui4-icons-git
_pkgname=OneUI4-Icons
pkgver=r70.55eada4
pkgrel=1
pkgdesc="A fork of mjkim0727/OneUI4-Icons for illogical-impulse dotfiles."
arch=('x86_64')
url="https://github.com/end-4/OneUI4-Icons"
license=('GPL3')
source=("git+${url}.git")
sha256sums=('SKIP')
options=('!strip')
pkgver(){
cd $srcdir/$_pkgname
printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
package() {
cd $srcdir/$_pkgname
install -dm755 "$pkgdir/usr/share/icons"
for _i in OneUI{,-dark,-light}; do
cp -dr --no-preserve=mode "$_i" "$pkgdir/usr/share/icons/$_i"
done
}
@@ -0,0 +1,13 @@
pkgname=illogical-impulse-portal
pkgver=1.0
pkgrel=2
pkgdesc='Illogical Impulse XDG Desktop Portals'
arch=(any)
license=(None)
depends=(
xdg-desktop-portal
xdg-desktop-portal-kde
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
)
@@ -0,0 +1,16 @@
pkgname=illogical-impulse-python
pkgver=1.1
pkgrel=4
pkgdesc='Illogical Impulse Python Dependencies'
arch=(any)
license=(None)
depends=(
clang
uv
gtk4
libadwaita
libsoup3
libportal-gtk4
gobject-introspection
sassc
)
@@ -0,0 +1,73 @@
_commit='3e2ce40b18af943f9ba370ed73565e9f487663ef'
# Useful links:
# https://git.outfoxxed.me/quickshell/quickshell/commits/branch/master
# https://aur.archlinux.org/packages/quickshell-git
_prefix='illogical-impulse'
conflicts=("quickshell-git")
_pkgname=quickshell
pkgname="$_prefix-$_pkgname-git"
pkgver=0.1.0.r1
pkgrel=2
pkgdesc="$_pkgname-git which version pinned for $_prefix"
arch=(x86_64 aarch64)
url='https://git.outfoxxed.me/quickshell/quickshell'
options=(!strip)
license=('LGPL-3.0-only')
depends=(
'qt6-declarative'
'qt6-base'
'jemalloc'
'qt6-svg'
'libpipewire'
'libxcb'
'wayland'
'libdrm'
'mesa'
'google-breakpad'
)
makedepends=(
'spirv-tools'
'qt6-shadertools'
'wayland'
'wayland-protocols'
'cli11'
'ninja'
'cmake'
'git'
)
provides=("$_pkgname")
conflicts=("$_pkgname")
_pkgsrc="$_pkgname"
source=("$_pkgsrc::git+$url.git#commit=$_commit"
quickshell-check.hook)
sha256sums=('SKIP'
'8543e21aeaaa5441b73a679160e7601a957f16c433e8d6bd9257e80bd0e94083')
pkgver() {
cd "$_pkgsrc"
git describe --long --tags --abbrev=7 --exclude='*[a-zA-Z][a-zA-Z]*' \
| sed -E 's/^[^0-9]*//;s/([^-]*-g)/r\1/;s/-/./g'
}
build() {
cd "$_pkgname"
cmake -GNinja -B build \
-DCMAKE_BUILD_TYPE="RelWithDebInfo" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DDISTRIBUTOR="AUR (package: quickshell-git)" \
-DDISTRIBUTOR_DEBUGINFO_AVAILABLE=NO \
-DINSTALL_QML_PREFIX=lib/qt6/qml
cmake --build build
}
package() {
install -Dm644 "quickshell-check.hook" -t "$pkgdir/usr/share/libalpm/hooks"
cd "$_pkgname"
DESTDIR="$pkgdir" cmake --install build
install -Dm644 "LICENSE" -t "$pkgdir/usr/share/licenses/$_pkgname"
}
@@ -0,0 +1,10 @@
[Trigger]
Operation = Upgrade
Operation = Install
Type = Package
Target = qt6-base
Target = qt6-wayland
[Action]
Description = Querying Quickshell compatibility after Qt6 update...
When = PostTransaction
Exec = /usr/bin/quickshell --private-check-compat
@@ -0,0 +1,14 @@
pkgname=illogical-impulse-screencapture
pkgver=1.0
pkgrel=1
pkgdesc='Illogical Impulse Screenshot and Recording Dependencies'
arch=(any)
license=(None)
depends=(
hyprshot
slurp
swappy
tesseract
tesseract-data-eng
wf-recorder
)
@@ -0,0 +1,27 @@
pkgname=illogical-impulse-toolkit
pkgver=1.0
pkgrel=1
pkgdesc='Illogical Impulse GTK/Qt Dependencies'
arch=(any)
license=(None)
depends=(
kdialog
qt6-5compat
qt6-avif-image-plugin
qt6-base
qt6-declarative
qt6-imageformats
qt6-multimedia
qt6-positioning
qt6-quicktimeline
qt6-sensors
qt6-svg
qt6-tools
qt6-translations
qt6-virtualkeyboard
qt6-wayland
syntax-highlighting
upower
wtype
ydotool
)
@@ -0,0 +1,18 @@
pkgname=illogical-impulse-widgets
pkgver=1.0
pkgrel=4
pkgdesc='Illogical Impulse Widget Dependencies'
arch=(any)
license=(None)
depends=(
fuzzel
glib2 # for `gsettings` it seems?
imagemagick
hypridle
hyprutils
hyprlock
hyprpicker
nm-connection-editor
translate-shell
wlogout
)
+110
View File
@@ -0,0 +1,110 @@
# This script is meant to be sourced.
# It's not for directly running.
install-yay(){
x sudo pacman -S --needed --noconfirm base-devel
x git clone https://aur.archlinux.org/yay-bin.git /tmp/buildyay
x cd /tmp/buildyay
x makepkg -o
x makepkg -se
x makepkg -i --noconfirm
x cd ${REPO_ROOT}
rm -rf /tmp/buildyay
}
# NOTE: `handle-deprecated-dependencies` was for the old days when we just switch from dependencies.conf to local PKGBUILDs.
# However, let's just keep it as references for other distros writing their `sdata/dist-<DISTRO_ID>/install-deps.sh`, if they need it.
handle-deprecated-dependencies(){
printf "${STY_CYAN}[$0]: Removing deprecated dependencies:${STY_RST}\n"
for i in illogical-impulse-{microtex,pymyc-aur} {quickshell,hyprutils,hyprpicker,hyprlang,hypridle,hyprland-qt-support,hyprland-qtutils,hyprlock,xdg-desktop-portal-hyprland,hyprcursor,hyprwayland-scanner,hyprland}-git;do try sudo pacman --noconfirm -Rdd $i;done
# Convert old dependencies to non explicit dependencies so that they can be orphaned if not in meta packages
remove_bashcomments_emptylines ./sdata/dist-arch/previous_dependencies.conf ./cache/old_deps_stripped.conf
readarray -t old_deps_list < ./cache/old_deps_stripped.conf
pacman -Qeq > ./cache/pacman_explicit_packages
readarray -t explicitly_installed < ./cache/pacman_explicit_packages
echo "Attempting to set previously explicitly installed deps as implicit..."
for i in "${explicitly_installed[@]}"; do for j in "${old_deps_list[@]}"; do
[ "$i" = "$j" ] && yay -D --asdeps "$i"
done; done
return 0
}
#####################################################################################
if ! command -v pacman >/dev/null 2>&1; then
printf "${STY_RED}[$0]: pacman not found, it seems that the system is not ArchLinux or Arch-based distros. Aborting...${STY_RST}\n"
exit 1
fi
# Issue #363
case $SKIP_SYSUPDATE in
true) sleep 0;;
*) v sudo pacman -Syu;;
esac
# Use yay. Because paru does not support cleanbuild.
# Also see https://wiki.hyprland.org/FAQ/#how-do-i-update
if ! command -v yay >/dev/null 2>&1;then
echo -e "${STY_YELLOW}[$0]: \"yay\" not found.${STY_RST}"
showfun install-yay
v install-yay
fi
showfun handle-deprecated-dependencies
v handle-deprecated-dependencies
# https://github.com/end-4/dots-hyprland/issues/581
# yay -Bi is kinda hit or miss, instead cd into the relevant directory and manually source and install deps
install-local-pkgbuild() {
local location=$1
local installflags=$2
x pushd $location
source ./PKGBUILD
x yay -S --sudoloop $installflags --asdeps "${depends[@]}"
# man makepkg:
# -A, --ignorearch: Ignore a missing or incomplete arch field in the build script.
# -s, --syncdeps: Install missing dependencies using pacman. When build-time or run-time dependencies are not found, pacman will try to resolve them.
# -f, --force: build a package even if it already exists in the PKGDEST
# -i, --install: Install or upgrade the package after a successful build using pacman(8).
# In https://github.com/end-4/dots-hyprland/issues/823#issuecomment-3394774645 it's suggested to use `sudo pacman -U --noconfirm *.pkg.tar.zst` instead of `makepkg -i`, however it's possible that multiple *.pkg.tar.zst exist, which makes this command not reliable.
x makepkg -Afsi --noconfirm
x popd
}
# Install core dependencies from the meta-packages
metapkgs=(./sdata/dist-arch/illogical-impulse-{audio,backlight,basic,fonts-themes,kde,portal,python,screencapture,toolkit,widgets})
metapkgs+=(./sdata/dist-arch/illogical-impulse-hyprland)
metapkgs+=(./sdata/dist-arch/illogical-impulse-microtex-git)
metapkgs+=(./sdata/dist-arch/illogical-impulse-quickshell-git)
# metapkgs+=(./sdata/dist-arch/packages/illogical-impulse-oneui4-icons-git)
[[ -f /usr/share/icons/Bibata-Modern-Classic/index.theme ]] || \
metapkgs+=(./sdata/dist-arch/illogical-impulse-bibata-modern-classic-bin)
for i in "${metapkgs[@]}"; do
metainstallflags="--needed"
$ask && showfun install-local-pkgbuild || metainstallflags="$metainstallflags --noconfirm"
v install-local-pkgbuild "$i" "$metainstallflags"
done
## Optional dependencies
if pacman -Qs ^plasma-browser-integration$ ;then SKIP_PLASMAINTG=true;fi
case $SKIP_PLASMAINTG in
true) sleep 0;;
*)
if $ask;then
echo -e "${STY_YELLOW}[$0]: NOTE: The size of \"plasma-browser-integration\" is about 600 MiB.${STY_RST}"
echo -e "${STY_YELLOW}It is needed if you want playtime of media in Firefox to be shown on the music controls widget.${STY_RST}"
echo -e "${STY_YELLOW}Install it? [y/N]${STY_RST}"
read -p "====> " p
else
p=y
fi
case $p in
y) x sudo pacman -S --needed --noconfirm plasma-browser-integration ;;
*) echo "Ok, won't install"
esac
;;
esac
+15
View File
@@ -0,0 +1,15 @@
# This script is meant to be sourced.
# It's not for directly running.
#####################################################################################
# These python packages are installed using uv into the venv (virtual environment). Once the folder of the venv gets deleted, they are all gone cleanly. So it's considered as setups, not dependencies.
showfun install-python-packages
v install-python-packages
v sudo usermod -aG video,i2c,input "$(whoami)"
v bash -c "echo i2c-dev | sudo tee /etc/modules-load.d/i2c-dev.conf"
v systemctl --user enable ydotool --now
v sudo systemctl enable bluetooth --now
v gsettings set org.gnome.desktop.interface font-name 'Rubik 11'
v gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
v kwriteconfig6 --file kdeglobals --group KDE --key widgetStyle Darkly
+1
View File
@@ -0,0 +1 @@
AUTO
@@ -0,0 +1,79 @@
### This file contains a list of dependencies which were previously explicitly installed that are now installed using meta packages
### Must be one package per line as it needs to be compared against the explicitly installed list from pacman
illogical-impulse-ags
archlinux-xdg-menu
axel
bc
coreutils
cliphist
cmake
curl
fuzzel
rsync
wget
ripgrep
gojq
npm
meson
typescript
gjs
xdg-user-dirs
tinyxml2
gtkmm3
gtksourceviewmm
cairomm
python-build
python-pillow
python-pywal
python-setuptools-scm
python-wheel
xdg-desktop-portal
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland-git
pavucontrol
wireplumber
libdbusmenu-gtk3
playerctl
swww
webp-pixbuf-loader
gtk-layer-shell
gtk3
gtksourceview3
gobject-introspection
upower
yad
ydotool
xdg-user-dirs-gtk
polkit-gnome
gnome-keyring
gnome-control-center
blueberry
gammastep
gnome-bluetooth-3.0
brightnessctl
ddcutil
dart-sass
python-pywayland
python-psutil
hypridle-git
hyprlock-git
wlogout
wl-clipboard
hyprpicker-git
adw-gtk3-git
qt5ct
qt5-wayland
fontconfig
ttf-readex-pro
ttf-jetbrains-mono-nerd
ttf-material-symbols-variable-git
ttf-space-mono-nerd
fish
foot
starship
swappy
wf-recorder
grim
tesseract
tesseract-data-eng
slurp
+11
View File
@@ -0,0 +1,11 @@
# This script is meant to be sourced.
# It's not for directly running.
# This file is currently WIP.
v install-Rubik
v install-Gabarito
v install-OneUI
v install-bibata
v install-MicroTeX
v install-uv
+15
View File
@@ -0,0 +1,15 @@
# This script is meant to be sourced.
# It's not for directly running.
#####################################################################################
# These python packages are installed using uv into the venv (virtual environment). Once the folder of the venv gets deleted, they are all gone cleanly. So it's considered as setups, not dependencies.
showfun install-python-packages
v install-python-packages
v sudo usermod -aG video,i2c,input "$(whoami)"
v bash -c "echo i2c-dev | sudo tee /etc/modules-load.d/i2c-dev.conf"
v systemctl --user enable ydotool --now
v sudo systemctl enable bluetooth --now
v gsettings set org.gnome.desktop.interface font-name 'Rubik 11'
v gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
v kwriteconfig6 --file kdeglobals --group KDE --key widgetStyle Darkly
+1
View File
@@ -0,0 +1 @@
WIP
+61
View File
@@ -0,0 +1,61 @@
# Install scripts for Gentoo
Note:
- The scripts here are **not** meant to be executed directly.
- This folder should reflect the equivalents of `/sdata/dist-arch/` but under Gentoo.
- **When `/sdata/dist-arch/` is newer than this folder, an update on this folder is very likely needed.**
- Useful link: [Commit history on sdata/dist-arch/](https://github.com/end-4/dots-hyprland/commits/main/sdata/dist-arch)
- See also [Install scripts | illogical-impulse](https://ii.clsty.link/en/dev/inst-script/)
## Contributors
- Author: [jwihardi](https://github.com/jwihardi)
## install-deps.sh
1. Enables localrepo and guru overlays if not already enabled.
2. Copies _keywords_ to _keywords-user_ and appends the correct unmask keywords for the user's architecture (adm64, arm64, and x86 are supported).
3. _keywords-user_ and _useflags_ are copies over into the proper portage directories. Quickshell also uses a live ebuild.
4. Syncs, updates, and depcleans @world.
5. Copies over the custom live ebuilds (hyprgraphics, hyprland-qt-support, hyprland-qtutils, hyprlang, hyprwayland-scanner) into localrepo and digests them.
6. Loops through all illogical-impulse ebuilds to digest and emerge them.
## install-setup.sh
1. Creates the _i2c_ group since Gentoo doesn't have this by default, then adds the user to it.
2. Enables _bluetooth_ and _ydotool_ services (systemd or openrc)
3. _icons_, _konsole_, _hypr_, and _quickshell_ are are chowned to user since they're emerge in as root by default.
4. gsettings and kwriteconfig6 are set (same as sdata/dist-arch).
## Recommended use flags (useflags)
- **The recommended useflags are not required, this is a more out of the box experience with these**
- Pipewire is used, alsa and pulseaudio are disabled (enabling them won't hurt).
- Init system is not assumed or considered so disabling systemd should be done in make.conf, same with session managers (elogind is recommended).
## Making the dot-files work
- elogind is expected to be installed and run as a service on OpenRC to set ```XDG_RUNTIME_DIR```
- NOT recommended: seatd will require more manual setup
- pipewire, pipewire-pulse, and wireplumber must be started after a dbus-session is created and before Hyprland is launched.
If you want to start after logging into tty1 you can do something like this.
```fish
if status --is-interactive; and [ (tty) = "/dev/tty1" ]
# Start DBus session if not running
if not set -q DBUS_SESSION_BUS_ADDRESS
dbus-launch --sh-syntax | sed 's/^/set -gx /; s/=/ /' | source
end
# Start PipeWire if not running
pgrep -x pipewire >/dev/null; or pipewire &
pgrep -x pipewire-pulse >/dev/null; or pipewire-pulse &
pgrep -x wireplumber >/dev/null; or wireplumber &
# Launch Hyprland with DBus session
exec Hyprland
end
```
## Known Issues
- If Hyprland is just blank, rebuild Quickshell (emerge -q gui-apps/quickshell)
- ```Hyprland: error while loading shared libraries: libhyprgraphics.so.0: cannot open shared object file: No such file or directory```
- The Hyprland live ebuild sometimes has linkage issues, deleting _Hyprland_ and _hyprland_ from ```/usr/bin/``` and then re-emerging usually fixes this.
- When emerging Hyprland if you get an issue relating to```undefined reference to `Hyprutils::Math::Vector2D::˜Vector2D()` ```
- Clear the cache folder (```rm -fr /var/tmp/portage/gui-wm/hyprland*```) then try again
+29
View File
@@ -0,0 +1,29 @@
############ Additional needed useflags
x11-libs/cairo X
dev-cpp/cairomm X
dev-python/pycairo X
media-libs/libglvnd X
x11-libs/libxkbcommon X
media-libs/libpulse X
media-plugins/alsa-plugins pulseaudio
kde-frameworks/kcoreaddons dbus
kde-frameworks/prison qml
kde-frameworks/kguiaddons X dbus wayland
kde-frameworks/kidletime X wayland
kde-frameworks/kwindowsystem X wayland
kde-frameworks/kconfig dbus qml
kde-frameworks/sonnet qml
x11-base/xwayland libei
sys-apps/dbus X
sys-libs/zlib minizip
dev-qt/qtquick3d opengl
media-video/ffmpeg X bzip2 dav1d drm fontconfig gnutls gpl libass opencl opengl openh264 opus postproc svg truetype vaapi vpx vulkan x264 x265 xml zlib
media-libs/leptonica jpeg png zlib tiff webp
media-libs/libva X wayland
app-text/xmlto text
app-crypt/gcr gtk
media-video/vlc wayland ogg dbus mp3
dev-libs/qcoro dbus qml
media-libs/freetype harfbuzz
media-libs/mesa wayland
x11-libs/gtk+ wayland
@@ -0,0 +1,21 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogical Impulse Audio Dependencies"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
media-sound/cava
media-sound/pavucontrol-qt
media-video/wireplumber
dev-libs/libdbusmenu[gtk3]
media-sound/playerctl
"
@@ -0,0 +1,19 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogical Impulse Backlight Dependencies"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
app-misc/geoclue
app-misc/brightnessctl
app-misc/ddcutil
"
@@ -0,0 +1,28 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogical Impulse Basic Dependencies"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
net-misc/axel
sys-devel/bc
sys-apps/coreutils
app-misc/cliphist
dev-build/cmake
net-misc/curl
net-misc/rsync
net-misc/wget
sys-apps/ripgrep
dev-python/jq
dev-build/meson
x11-misc/xdg-user-dirs
"
@@ -0,0 +1,24 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
Bibata_VER=2.0.6
DESCRIPTION="Material Based Cursor Theme, installed for illogical-impulse dotfiles"
HOMEPAGE=""
SRC_URI="https://github.com/ful1e5/Bibata_Cursor/releases/download/v${Bibata_VER}/Bibata-Modern-Classic.tar.xz -> bibata-modern-classic.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND=""
S="${WORKDIR}/Bibata-Modern-Classic"
src_install() {
insinto /usr/share/icons
doins -r "${S}"
}
@@ -0,0 +1,91 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DART_SASS_VER=1.78.0
SPACE_GROTESK_VER=1.1.4
DESCRIPTION="Illogical Impulse Fonts and Theming Dependencies"
HOMEPAGE=""
SRC_URI="
https://github.com/Bali10050/Darkly/archive/refs/heads/main.tar.gz -> ${P}-darkly.tar.gz
https://github.com/naipefoundry/gabarito/archive/refs/heads/main.tar.gz -> ${P}-gabarito.tar.gz
https://github.com/googlefonts/rubik/archive/refs/heads/main.tar.gz -> ${P}-rubik.tar.gz
https://github.com/ThomasJockin/readexpro/archive/refs/heads/master.tar.gz -> ${P}-readexpro.tar.gz
https://github.com/mjkim0727/breeze-plus/archive/refs/heads/main.tar.gz -> ${P}-breeze-plus.tar.gz
https://github.com/lassekongo83/adw-gtk3/archive/refs/heads/main.tar.gz -> ${P}-adw-gtk3.tar.gz
https://github.com/google/material-design-icons/raw/refs/heads/master/variablefont/MaterialSymbolsOutlined%5BFILL,GRAD,opsz,wght%5D.ttf -> MaterialSymbolsOutlined.ttf
https://github.com/google/material-design-icons/raw/refs/heads/master/variablefont/MaterialSymbolsRounded%5BFILL,GRAD,opsz,wght%5D.ttf -> MaterialSymbolsRounded.ttf
https://github.com/google/material-design-icons/raw/refs/heads/master/variablefont/MaterialSymbolsSharp%5BFILL,GRAD,opsz,wght%5D.ttf -> MaterialSymbolsSharp.ttf
https://github.com/floriankarsten/space-grotesk/archive/refs/tags/${SPACE_GROTESK_VER}.tar.gz -> ${P}-space-grotesk-${SPACE_GROTESK_VER}.tar.gz
"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
kde-plasma/breeze
sys-apps/eza
app-shells/fish
media-libs/fontconfig
x11-terms/kitty
x11-misc/matugen
app-shells/starship
media-fonts/jetbrains-mono
media-fonts/twemoji
"
# Source directories
S="${WORKDIR}"
S_DARKLY="${S}/Darkly-main"
S_GABARITO="${S}/gabarito-main"
S_RUBIK="${S}/rubik-main"
S_READEXPRO="${S}/readexpro-master"
S_ADW_GTK3="${S}/adw-gtk3-main"
S_BREEZE_PLUS="${S}/breeze-plus-main"
S_SPACE_GROTESK="${S}/space-grotesk-${SPACE_GROTESK_VER}"
src_unpack() {
default
mv "${WORKDIR}/dart-sass-${DART_SASS_VER}-linux-x64" "${S_DART_SASS}"
}
src_compile() {
cd "${S_DARKLY}"
mkdir -p build
cd build
cmake .. -DBUILD_QT5=OFF -DBUILD_QT6=ON
cmake --build . --parallel=$(nproc)
cd "${S_ADW_GTK3}"
meson setup build
meson compile -C build
}
src_install() {
cd "${S_DARKLY}/build"
cmake --install . --destdir="${D}"
insinto /usr/share/fonts/ttf-gabarito
doins "${S_GABARITO}"/fonts/ttf/*.ttf
insinto /usr/share/fonts/ttf-readex-pro
doins "${S_READEXPRO}"/fonts/ttf/*.ttf
insinto /usr/share/fonts/material-symbols
doins "${DISTDIR}"/MaterialSymbols*.ttf
insinto /usr/share/fonts/OTF
doins "${S_SPACE_GROTESK}"/fonts/otf/*.otf
insinto /usr/share/themes
doins -r "${S_BREEZE_PLUS}"/src/breeze-plus*
cd "${S_ADW_GTK3}"
meson install -C build --destdir="${D}"
fc-cache -f
}
@@ -0,0 +1,28 @@
# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake git-r3
DESCRIPTION="Hyprland graphics / resource utilities (live/HEAD)"
HOMEPAGE="https://github.com/hyprwm/hyprgraphics"
# For live ebuilds, Portage clones the git repo
EGIT_REPO_URI="https://github.com/hyprwm/hyprgraphics.git"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
>=gui-libs/hyprutils-0.1.1:=
media-libs/libjpeg-turbo:=
media-libs/libjxl:=
media-libs/libspng
media-libs/libwebp:=
sys-apps/file
x11-libs/cairo
"
DEPEND="${RDEPEND}"
@@ -0,0 +1,35 @@
# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake git-r3
DESCRIPTION="QML style provider for hypr* Qt apps"
HOMEPAGE="https://github.com/hyprwm/hyprland-qt-support"
EGIT_REPO_URI="https://github.com/hyprwm/hyprland-qt-support.git"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64"
RDEPEND="
dev-qt/qtbase:6
dev-qt/qtdeclarative:6
>=dev-libs/hyprlang-0.6.0
"
DEPEND="${RDEPEND}"
BDEPEND="
virtual/pkgconfig
"
src_configure() {
local mycmakeargs=(
-DINSTALL_QML_PREFIX="${EPFREIX}/$(get_libdir)/qt6/qml"
)
cmake_src_configure
}
@@ -0,0 +1,26 @@
# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake git-r3
DESCRIPTION="Hyprland QT/qml utility apps"
HOMEPAGE="https://github.com/hyprwm/hyprland-qtutils"
EGIT_REPO_URI="https://github.com/hyprwm/hyprland-qtutils.git"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RDEPEND="
dev-qt/qtbase:6
dev-qt/qtdeclarative:6
dev-qt/qtwayland:6
gui-libs/hyprutils:=
gui-libs/hyprland-qt-support
kde-frameworks/qqc2-desktop-style:6
"
DEPEND="${RDEPEND}"
@@ -0,0 +1,25 @@
# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake toolchain-funcs git-r3
DESCRIPTION="Official implementation library for the hypr config language"
HOMEPAGE="https://github.com/hyprwm/hyprlang"
EGIT_REPO_URI="https://github.com/hyprwm/hyprlang.git"
LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND=">=gui-libs/hyprutils-0.7.1:="
DEPEND="${RDEPEND}"
BDEPEND="|| ( >=sys-devel/gcc-14:* >=llvm-core/clang-18:* )"
pkg_setup() {
[[ ${MERGE_TYPE} == binary ]] && return
tc-check-min_ver gcc 14
tc-check-min_ver clang 18
}
@@ -0,0 +1,37 @@
# Copyright 2024-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake toolchain-funcs
DESCRIPTION="A Hyprland implementation of wayland-scanner, in and for C++"
HOMEPAGE="https://github.com/hyprwm/hyprwayland-scanner/"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/hyprwm/hyprwayland-scanner.git"
inherit git-r3
else
SRC_URI="https://github.com/hyprwm/hyprwayland-scanner/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
fi
LICENSE="BSD"
KEYWORDS="amd64 arm64 x86"
SLOT="0"
RDEPEND=">=dev-libs/pugixml-1.14"
DEPEND="${RDEPEND}"
pkg_setup() {
[[ ${MERGE_TYPE} == binary ]] && return
if tc-is-gcc && ver_test $(gcc-version) -lt 13 ; then
eerror "Hyprland requires >=sys-devel/gcc-13 to build"
eerror "Please upgrade GCC: emerge -v1 sys-devel/gcc"
die "GCC version is too old to compile Hyprland!"
elif tc-is-clang && ver_test $(clang-version) -lt 16 ; then
eerror "Hyprland requires >=llvm-core/clang-16 to build"
eerror "Please upgrade Clang: emerge -v1 llvm-core/clang"
die "Clang version is too old to compile Hyprland!"
fi
}
@@ -0,0 +1,32 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogical Impulse Hyprland related packages"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 arm64 x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
gui-apps/hypridle
gui-libs/hyprcursor
gui-libs/hyprland-qtutils
gui-libs/hyprland-qt-support
dev-libs/hyprlang
gui-apps/hyprlock
gui-apps/hyprpicker
gui-apps/hyprsunset
gui-libs/hyprutils
dev-libs/hyprland-protocols
dev-libs/hyprgraphics
gui-libs/aquamarine
gui-wm/hyprland
dev-util/hyprwayland-scanner
gui-libs/xdg-desktop-portal-hyprland
gui-apps/wl-clipboard
"
@@ -0,0 +1,23 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogical Impulse KDE Dependencies"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
kde-plasma/bluedevil
gnome-base/gnome-keyring
net-misc/networkmanager
kde-plasma/plasma-nm
kde-plasma/polkit-kde-agent
kde-apps/dolphin
kde-plasma/systemsettings
"
@@ -0,0 +1,56 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MICROTEX_VER="0e3707f"
DESCRIPTION="MicroTeX for illogical-impulse dotfiles"
HOMEPAGE="https://github.com/NanoMichael/MicroTeX"
SRC_URI="https://github.com/NanoMichael/MicroTeX/archive/${MICROTEX_VER}.tar.gz -> MicroTeX-${MICROTEX_VER}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
dev-libs/tinyxml2
dev-cpp/gtkmm
dev-cpp/gtksourceviewmm
dev-cpp/cairomm
"
# Use WORKDIR directly after stripping top-level folder
S="${WORKDIR}"
src_unpack() {
# If I don't strip it it has an insane hash
tar xvf "${DISTDIR}/MicroTeX-${MICROTEX_VER}.tar.gz" --strip-components=1 -C "${WORKDIR}"
}
src_prepare() {
default
cd "${S}" || die
# Gentoo doesn't have gtksourceviewmm4 even on testing so I just left it on 3
# sed -i 's/gtksourceviewmm-3.0/gtksourceviewmm-4.0/' CMakeLists.txt
sed -i 's/tinyxml2.so.10/tinyxml2.so.11/' CMakeLists.txt
}
src_compile() {
cd "${S}" || die
mkdir -p build
cmake -B build -S . -DCMAKE_BUILD_TYPE=None
cmake --build build
}
src_install() {
cd "${S}" || die
insinto /opt/illogical-impulse-microtex-git
doins -r build/LaTeX
doins -r build/res
insinto /usr/share/licenses/illogical-impulse-microtex-git
doins LICENSE
}
@@ -0,0 +1,26 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="A fork of mjkim0727/OneUI4-Icons for illogical-impulse dotfiles"
HOMEPAGE=""
SRC_URI="https://github.com/end-4/OneUI4-Icons/archive/main.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="strip"
DEPEND=""
RDEPEND=""
S="${WORKDIR}/OneUI4-Icons-main"
src_install() {
insinto /usr/share/icons
for theme in "OneUI" "OneUI-dark" "OneUI-light"; do
doins -r ${S}/${theme}
done
}
@@ -0,0 +1,20 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogical Impulse XDG Desktop Portals"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
sys-apps/xdg-desktop-portal
kde-plasma/xdg-desktop-portal-kde
sys-apps/xdg-desktop-portal-gtk
gui-libs/xdg-desktop-portal-hyprland
"
@@ -0,0 +1,24 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogical Impulse Python Dependencies"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
# SASSC is not needed here, pkgbuild is capping
DEPEND=""
RDEPEND="
dev-python/clang
dev-python/uv
gui-libs/gtk
gui-libs/libadwaita
net-libs/libsoup
dev-libs/libportal
dev-libs/gobject-introspection
"
@@ -0,0 +1,86 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake git-r3
DESCRIPTION="Toolkit for building desktop widgets using QtQuick"
HOMEPAGE="https://quickshell.org/"
EGIT_REPO_URI="https://github.com/quickshell-mirror/quickshell.git"
EGIT_COMMIT="3e2ce40b18af943f9ba370ed73565e9f487663ef"
KEYWORDS="~amd64 ~arm64 ~x86"
LICENSE="LGPL-3"
SLOT="0"
# Upstream recommends leaving all build options enabled by default
IUSE="+breakpad +jemalloc +sockets +wayland +layer-shell +session-lock +toplevel-management +screencopy +X +pipewire +tray +mpris +pam +hyprland +hyprland-global-shortcuts +hyprland-focus-grab +i3 +i3-ipc +bluetooth"
RDEPEND="
dev-qt/qtbase:6
dev-qt/qtsvg:6
jemalloc? ( dev-libs/jemalloc )
wayland? (
dev-libs/wayland
dev-qt/qtwayland:6
)
screencopy? (
x11-libs/libdrm
media-libs/mesa
)
X? ( x11-libs/libxcb )
pipewire? ( media-video/pipewire )
mpris? ( dev-qt/qtdbus )
pam? ( sys-libs/pam )
bluetooth? ( net-wireless/bluez )
"
DEPEND="${RDEPEND}"
BDEPEND="
|| ( >=sys-devel/gcc-14:* >=llvm-core/clang-17:* )
dev-util/spirv-tools
dev-qt/qtshadertools:6
wayland? (
dev-util/wayland-scanner
dev-libs/wayland-protocols
)
dev-cpp/cli11
dev-build/ninja
dev-build/cmake
dev-vcs/git
virtual/pkgconfig
breakpad? ( dev-util/breakpad )
"
src_configure(){
mycmakeargs=(
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DDISTRIBUTOR="Gentoo GURU"
-DINSTALL_QML_PREFIX="lib64/qt6/qml"
-DCRASH_REPORTER=$(usex breakpad ON OFF)
-DUSE_JEMALLOC=$(usex jemalloc ON OFF)
-DSOCKETS=$(usex sockets ON OFF)
-DWAYLAND=$(usex wayland ON OFF)
-DWAYLAND_WLR_LAYERSHELL=$(usex layer-shell ON OFF)
-DWAYLAND_SESSION_LOCK=$(usex session-lock ON OFF)
-DWAYLAND_TOPLEVEL_MANAGEMENT=$(usex toplevel-management ON OFF)
-DSCREENCOPY=$(usex screencopy ON OFF)
-DX11=$(usex X ON OFF)
-DSERVICE_PIPEWIRE=$(usex pipewire ON OFF)
-DSERVICE_STATUS_NOTIFIER=$(usex tray ON OFF)
-DSERVICE_MPRIS=$(usex mpris ON OFF)
-DSERVICE_PAM=$(usex pam ON OFF)
-DHYPRLAND=$(usex hyprland ON OFF)
-DHYPRLAND_GLOBAL_SHORTCUTS=$(usex hyprland-global-shortcuts)
-DHYPRLAND_FOCUS_GRAB=$(usex hyprland-focus-grab)
-DI3=$(usex i3 ON OFF)
-DI3_IPC=$(usex i3-ipc ON OFF)
-DBLUETOOTH=$(usex bluetooth ON OFF)
)
cmake_src_configure
}
@@ -0,0 +1,21 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogical Impulse Screenshot and Recording Dependencies"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
gui-apps/hyprshot
gui-apps/slurp
gui-apps/swappy
app-text/tesseract
gui-apps/wf-recorder
"
@@ -0,0 +1,34 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogical Impulse GTK/Qt Dependencies"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
kde-apps/kdialog
dev-qt/qt5compat
dev-qt/qtbase
dev-qt/qtdeclarative
dev-qt/qtimageformats
dev-qt/qtmultimedia
dev-qt/qtpositioning
dev-qt/qtquicktimeline
dev-qt/qtsensors
dev-qt/qtsvg
dev-qt/qttools
dev-qt/qttranslations
dev-qt/qtvirtualkeyboard
dev-qt/qtwayland
kde-frameworks/syntax-highlighting
sys-power/upower
gui-apps/wtype
x11-misc/ydotool
"
@@ -0,0 +1,25 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Illogicall Impulse Widget Dependencies"
HOMEPAGE=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RESTRICT="strip"
DEPEND=""
RDEPEND="
gui-apps/fuzzel
dev-libs/glib
media-gfx/imagemagick
gui-apps/hypridle
gui-libs/hyprutils
gui-apps/hyprlock
gui-apps/hyprpicker
app-i18n/translate-shell
gui-apps/wlogout
"
+93
View File
@@ -0,0 +1,93 @@
printf "${STY_YELLOW}"
printf "============WARNING/NOTE (1)============\n"
printf "GCC in use: $(which gcc)\n"
printf "GCC version info: $(gcc --version | grep gcc)\n"
printf "GCC version number: $(gcc --version | grep gcc | awk '{print $3}')\n"
printf "GCC-15>= is required for Hyprland\n"
printf "If you have GCC-15>= and it's currently set then you can safely ignore this\n"
printf "If not, you must ensure you are using the correct GCC version and set it (gcc-config <number>)\n"
printf "It is heavily recommended to re-emerge @world with an empty tree after changing GCC version (emerge -e @world)\n\n"
printf "${STY_RST}"
pause
printf "${STY_YELLOW}"
printf "============WARNING/NOTE (2)============\n"
printf "Ensure you have a global use flag for elogind or systemd in your make.conf for simplicity\n"
printf "Or you can manually add the use flags for each package that requires it\n"
printf "${STY_RST}"
pause
printf "${STY_YELLOW}"
printf "https://github.com/end-4/dots-hyprland/blob/main/sdata/dist-gentoo/README.md"
printf "Checkout the above README for potential bug fixes or additional information"
printf "${STY_RST}"
pause
x sudo emerge --noreplace --quiet app-eselect/eselect-repository
if [[ -z $(eselect repository list | grep localrepo) ]]; then
v sudo eselect repository create localrepo
v sudo eselect repository enable localrepo
fi
if [[ -z $(eselect repository list | grep -E ".*guru \*.*") ]]; then
v sudo eselect repository enable guru
fi
arch=$(portageq envvar ACCEPT_KEYWORDS)
# Exclude hyprland, will deal with that separately
metapkgs=(illogical-impulse-{audio,backlight,basic,bibata-modern-classic-bin,fonts-themes,hyprland,kde,microtex-git,oneui4-icons-git,portal,python,quickshell-git,screencapture,toolkit,widgets})
ebuild_dir="/var/db/repos/localrepo"
# Unmasks
x sudo cp ./sdata/dist-gentoo/keywords ./sdata/dist-gentoo/keywords-user
x sed -i "s/$/ ~${arch}/" ./sdata/dist-gentoo/keywords-user
v sudo cp ./sdata/dist-gentoo/keywords-user /etc/portage/package.accept_keywords/illogical-impulse
# Use Flags
v sudo cp ./sdata/dist-gentoo/useflags /etc/portage/package.use/illogical-impulse
v sudo sh -c 'cat ./sdata/dist-gentoo/additional-useflags >> /etc/portage/package.use/illogical-impulse'
# Update system
v sudo emerge --sync
v sudo emerge --quiet --newuse --update --deep @world
v sudo emerge --depclean
# Remove old ebuilds (if this isn't done the wildcard will fuck upon a version change)
x sudo rm -fr ${ebuild_dir}/app-misc/illogical-impulse-*
###### LIVE EBUILDS START
HYPR_DIR="illogical-impulse-hyprland"
x sudo mkdir -p ${ebuild_dir}/dev-libs/hyprgraphics/
x sudo mkdir -p ${ebuild_dir}/gui-libs/hyprland-qt-support
x sudo mkdir -p ${ebuild_dir}/gui-libs/hyprland-qtutils
x sudo mkdir -p ${ebuild_dir}/dev-libs/hyprlang
x sudo mkdir -p ${ebuild_dir}/dev-libs/hyprlang
x sudo mkdir -p ${ebuild_dir}/dev-util/hyprwayland-scanner
v sudo cp ./sdata/dist-gentoo/${HYPR_DIR}/hyprgraphics*.ebuild ${ebuild_dir}/dev-libs/hyprgraphics
v sudo cp ./sdata/dist-gentoo/${HYPR_DIR}/hyprland-qt-support*.ebuild ${ebuild_dir}/gui-libs/hyprland-qt-support
v sudo cp ./sdata/dist-gentoo/${HYPR_DIR}/hyprland-qtutils*.ebuild ${ebuild_dir}/gui-libs/hyprland-qtutils
v sudo cp ./sdata/dist-gentoo/${HYPR_DIR}/hyprlang*.ebuild ${ebuild_dir}/dev-libs/hyprlang
v sudo cp ./sdata/dist-gentoo/${HYPR_DIR}/hyprwayland-scanner*.ebuild ${ebuild_dir}/dev-util/hyprwayland-scanner
v sudo ebuild ${ebuild_dir}/dev-libs/hyprgraphics/hyprgraphics*9999.ebuild digest
v sudo ebuild ${ebuild_dir}/gui-libs/hyprland-qt-support/hyprland-qt-support*9999.ebuild digest
v sudo ebuild ${ebuild_dir}/gui-libs/hyprland-qtutils/hyprland-qtutils*9999.ebuild digest
v sudo ebuild ${ebuild_dir}/dev-libs/hyprlang/hyprlang*9999.ebuild digest
v sudo ebuild ${ebuild_dir}/dev-util/hyprwayland-scanner/hyprwayland-scanner*9999.ebuild digest
###### LIVE EBUILDS END
# Install dependencies
for i in "${metapkgs[@]}"; do
x sudo mkdir -p ${ebuild_dir}/app-misc/${i}
v sudo cp ./sdata/dist-gentoo/${i}/${i}*.ebuild ${ebuild_dir}/app-misc/${i}/
v sudo ebuild ${ebuild_dir}/app-misc/${i}/*.ebuild digest
v sudo emerge --quiet app-misc/${i}
done
# Currently using 3.12 python, this doesn't need to be default though
v sudo emerge --noreplace --quiet dev-lang/python:3.12
+39
View File
@@ -0,0 +1,39 @@
# This script is meant to be sourced.
# It's not for directly running.
#####################################################################################
# These python packages are installed using uv into the venv (virtual environment). Once the folder of the venv gets deleted, they are all gone cleanly. So it's considered as setups, not dependencies.
showfun install-python-packages
v install-python-packages
if [[ -z $(getent group i2c) ]]; then
v sudo groupadd i2c
fi
v sudo usermod -aG video,i2c,input "$(whoami)"
if [[ ! -z $(systemctl --version) ]]; then
v bash -c "echo i2c-dev | sudo tee /etc/modules-load.d/i2c-dev.conf"
v systemctl --user enable ydotool --now
v sudo systemctl enable bluetooth --now
elif [[ ! -z $(openrc --version) ]]; then
v bash -c "echo 'modules=i2c-dev' | sudo tee -a /etc/conf.d/modules"
v sudo rc-update add modules boot
v sudo rc-update add ydotool default
v sudo rc-update add bluetooth default
x sudo rc-service ydotool start
x sudo rc-service bluetooth start
else
printf "${STY_RED}"
printf "====================INIT SYSTEM NOT FOUND====================\n"
printf "${STY_RST}"
pause
fi
v sudo chown -R $(whoami):$(whoami) ~/.config/hypr/
v sudo chown -R $(whoami):$(whoami) ~/.config/quickshell/
v gsettings set org.gnome.desktop.interface font-name 'Rubik 11'
v gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
v kwriteconfig6 --file kdeglobals --group KDE --key widgetStyle Darkly
+45
View File
@@ -0,0 +1,45 @@
app-misc/illogical-impulse-audio
app-misc/illogical-impulse-backlight
app-misc/illogical-impulse-basic
app-misc/illogical-impulse-bibata-modern-classic-bin
app-misc/illogical-impulse-fonts-themes
app-misc/illogical-impulse-hyprland
app-misc/illogical-impulse-kde
app-misc/illogical-impulse-microtex-git
app-misc/illogical-impulse-oneui4-icons-git
app-misc/illogical-impulse-portal
app-misc/illogical-impulse-python
app-misc/illogical-impulse-quickshell-git
app-misc/illogical-impulse-screencapture
app-misc/illogical-impulse-toolkit
app-misc/illogical-impulse-widgets
x11-misc/matugen
media-fonts/twemoji
app-misc/brightnessctl
app-misc/cliphist
gui-apps/hypridle
gui-apps/hyprlock
gui-apps/hyprpicker
gui-apps/hyprsunset
gui-libs/xdg-desktop-portal-hyprland
gui-apps/hyprshot
gui-apps/wf-recorder
gui-apps/wtype
gui-apps/fuzzel
gui-apps/quickshell **
gui-apps/wlogout
dev-cpp/sdbus-c++
dev-libs/hyprland-protocols **
gui-libs/aquamarine **
gui-libs/hyprutils **
dev-util/hyprwayland-scanner **
dev-libs/hyprlang **
dev-libs/hyprgraphics **
gui-libs/hyprcursor **
gui-libs/hyprland-qt-support **
gui-libs/hyprland-qtutils **
gui-wm/hyprland **
x11-libs/libxkbcommon
dev-util/breakpad
dev-libs/linux-syscall-support
dev-embedded/libdisasm
+1
View File
@@ -0,0 +1 @@
AUTO
+117
View File
@@ -0,0 +1,117 @@
################### AUDIO ###################
media-sound/cava pipewire -pulseaudio
#media-sound/pavucontrol-qt (no use flags)
#media-video/wireplumber (no use flags)
dev-libs/libdbusmenu gtk3 introspection
media-sound/playerctl introspection
################### BACKLIGHT ###################
app-misc/geoclue introspection
#app-misc/brightnessctl
app-misc/ddcutil X
################### BASIC ###################
net-misc/axel nls ssl
sys-devel/bc readline
sys-apps/coreutils acl nls openssl xattr gmp
#app-misc/cliphist (no use flags)
dev-build/cmake ncurses
net-misc/curl adns alt-svvc ftp hsts http2 http3 httpsrr imap openssl pop3 psl quic smtp ssl lftp websockets idn brotli zstd
net-misc/rsync acl iconv ssl xattr
net-misc/wget nls pore ssl zlib idn
sys-apps/ripgrep pcre
#dev-python/jq (nothing needed)
#dev-build/meson (nothing needed)
#x11-misc/xdg-user-dirs (nothing needed)
################### FONTS & THEMES ###################
#kde-plasma/breeze (nothing needed)
sys-apps/eza git
app-shell/fish nls
media-libs/fontconfig nls
x11-terms/kitty X wayland
#x11-misc/matugen
#app-shell/starship (nothing needed)
media-fonts/jetbrains-mono X
media-fonts/twemoji X
# The rest are handled in the ebuild
################### HYPRLAND ###################
#gui-apps/hypridle (no use flags)
#gui-libs/hyprcursor (no use flags)
gui-wm/hyprland X qtutils
#gui-libs/hyprland-qtutils (no use flags)
#gui-libs/hyprland-qt-support (no use flags)
#dev-libs/hyprlang (no use flags)
#gui-apps/hyprlock (no use flags)
#gui-apps/hyprpicker (no use flags)
#gui-apps/hyprsunset (no use flags)
#gui-libs/hyprutils (no use flags)
#dev-util/hyprwayland-scanner (no use flags)
#gui-apps/wl-clipboard (no use fags)
################### KDE ###################
kde-plasma/bluedevil -handbook
gnome-base/gnome-keyring pam ssh-agent
net-misc/networkmanager concheck introspection nss ppp tools wifi -wext -modemmanager
#kde-plasma/plasma-nm (nothing needed)
#kde-plasma/polkit-kde-agent (nothing needed)
kde-apps/dolphin -handbook
kde-plasma/systemsettings -handbook
################### MICROTEX-GIT ###################
dev-cpp/gtkmm X wayland
################### PORTAL ###################
sys-apps/xdg-desktop-portal seccomp
#sys-plasma/xdg-desktop-portal-kde (nothing needed)
sys-apps/xdg-desktop-portal-gtk X wayland
#gui-libs/xdg-desktop-portal-hyprland (elogiind maybe)
################### PYTHON ###################
#dev-python/clang (nothing needed)
#dev-python/uv (nothing needed)
gui-libs/gtk X introspection wayland
gui-libs/libadwaita introspection
net-libs/libsoup brotli introspection ssl
#dev-libs/gobject-introspection (nothing needed)
# dart-sassc handled in the ebuild
################### SCREENCAPTURE ###################
#gui-apps/hyprshot (no use flags)
gui-apps/slurp -man
#gui-apps/swappy (no use flags)
app-text/tesseract jpeg openmp png webp
gui-apps/wf-recorder pipewire
################### TOOLKIT ###################
kde-apps/kdialog X
dev-qt/qt5compat gui icu qml
dev-qt/qtbase X concurrent cups dbus gui icu libinput libproxy network nls opengl sql sqlite ssl udev wayland widgets xml zstd
dev-qt/qtdeclarative jit network opengl sql ssl svg widgets
#dev-qt/qtimageformats (nothing needed)
dev-qt/qtmultimedia X dbus ffmpeg opengl pipewire qml wayland v4l
dev-qt/qtpositioning qml geoclue
#dev-qt/qtquicktimeline (nothing needed)
#dev-qt/qtsensors (nothing needed)
#dev-qt/qtsvg (nothing needed)
dev-qt/qttools assistant linguist opengl qdbus widgets zstd
#dev-qt/qttranslations (no use flags)
dev-qt/qtvirtualkeyboard sound spell
#dev-qt/qtwayland (nothing needed)
#kde-framework/syntax-highlighting (nothing needed)
sys-power/upower introspection
#gui-apps/wtype (no use flags)
#x11-misc/ydotool (no use flags)
################### WIDGETS ###################
gui-apps/fuzzel png svg
dev-libs/glib dbus elf introspection mime xattr
# ngl idk about nm-connection-editor. Works fine without
gui-apps/quickshell -X -i3 -i3-ipc breakpad bluetooth hyprland hyprland-focus-grab hyprland-global-shortcuts jemalloc layer-shell mpris pam pipewire screencopy session-lock sockets toplevel-management tray wayland
#app-i18n/translate-shell (nothing needed)
#gui-apps/wlogout (no use flags)
media-gfx/imagemagick xml
+97
View File
@@ -0,0 +1,97 @@
# Install scripts using Nix to achieve cross-distros
- This directory is currently WIP.
- See also [Install scripts | illogical-impulse](https://ii.clsty.link/en/dev/inst-script/)
- See also [#1061](https://github.com/end-4/dots-hyprland/issues/1061)
**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.
## Attentions
### PAM
On non-NixOS distros, programs using PAM (typically screen locker) will not work if installed via Nix, so user has to use their own distro's package for the screen lock.
- One problem is that Debian(-based) distros use modified version of PAM which supports `@include` directive in `/etc/pam.d` config files but the PAM from Nix does not support it, see [this comment](https://github.com/NixOS/nixpkgs/issues/128523#issuecomment-1086106614).
- Another problem is the location of a suid helper binary that is necessary, see [this comment](https://github.com/end-4/dots-hyprland/issues/1061#issuecomment-3403195230).
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 ];
};
};
};
}
```
+4
View File
@@ -0,0 +1,4 @@
# This script is meant to be sourced.
# It's not for directly running.
# This file is currently WIP.
+1
View File
@@ -0,0 +1 @@
WIP
+18 -18
View File
@@ -76,13 +76,13 @@ if [[ "$INSTALL_VIA_NIX" == "true" ]]; then
TARGET_ID=nix
printf "${STY_YELLOW}"
printf "===WARNING===\n"
printf "./sdist/${TARGET_ID}/install-deps.sh will be used.\n"
printf "./sdata/dist-${TARGET_ID}/install-deps.sh will be used.\n"
printf "The process is still WIP.\n"
printf "Proceed only at your own risk.\n"
printf "\n"
printf "${STY_RST}"
pause
source ./sdist/${TARGET_ID}/install-deps.sh
source ./sdata/dist-${TARGET_ID}/install-deps.sh
elif [[ "$OS_DISTRO_ID" =~ ^(arch|endeavouros)$ ]]; then
@@ -90,23 +90,23 @@ elif [[ "$OS_DISTRO_ID" =~ ^(arch|endeavouros)$ ]]; then
printf "${STY_GREEN}"
printf "===INFO===\n"
printf "Detected distro ID: ${OS_DISTRO_ID}\n"
printf "./sdist/${TARGET_ID}/install-deps.sh will be used.\n"
printf "./sdata/dist-${TARGET_ID}/install-deps.sh will be used.\n"
printf "\n"
printf "${STY_RST}"
pause
source ./sdist/${TARGET_ID}/install-deps.sh
source ./sdata/dist-${TARGET_ID}/install-deps.sh
elif [[ -f "./sdist/${OS_DISTRO_ID}/install-deps.sh" ]]; then
elif [[ -f "./sdata/dist-${OS_DISTRO_ID}/install-deps.sh" ]]; then
TARGET_ID=${OS_DISTRO_ID}
printf "${STY_PURPLE}"
printf "===NOTICE===\n"
printf "Detected distro ID: ${OS_DISTRO_ID}\n"
printf "./sdist/${TARGET_ID}/install-deps.sh will be used.\n"
printf "./sdata/dist-${TARGET_ID}/install-deps.sh will be used.\n"
printf "This file is provided by the community.\n"
printf "It is not officially supported by github:end-4/dots-hyprland .\n"
test -f "./sdist/${TARGET_ID}/README.md" && \
printf "Read ${STY_INVERT} ./sdist/${TARGET_ID}/README.md ${STY_RST}${STY_PURPLE} for more information.\n"
test -f "./sdata/dist-${TARGET_ID}/README.md" && \
printf "Read ${STY_INVERT} ./sdata/dist-${TARGET_ID}/README.md ${STY_RST}${STY_PURPLE} for more information.\n"
printf "${STY_BOLD}"
printf "If you find out any problems about it, PR is welcomed if you are able to address it. Or, create a discussion about it, but please do not submit issue, because the developers do not use this distro, therefore they cannot help.${STY_RST}\n"
printf "${STY_PURPLE}"
@@ -114,13 +114,13 @@ elif [[ -f "./sdist/${OS_DISTRO_ID}/install-deps.sh" ]]; then
printf "\n"
printf "${STY_RST}"
pause
tmp_update_status="$(outdate_detect sdist/arch sdist/${TARGET_ID})"
tmp_update_status="$(outdate_detect sdata/dist-arch sdata/dist-${TARGET_ID})"
if [[ "${tmp_update_status}" =~ ^(OUTDATED|EMPTY_TARGET|EMPTY_SOURCE|FORCE_OUTDATED|WIP)$ ]]; then
printf "${STY_RED}${STY_BOLD}===URGENT===${STY_RST}\n"
printf "${STY_RED}"
printf "The community provided ./sdist/${TARGET_ID}/ is not updated (update status: ${tmp_update_status}),\n"
printf "which means it does not fully reflect the latest changes of ./sdist/arch/ .\n"
printf "You are highly recommended to abort this script, until someone (maybe you?) has updated the ./sdist/${TARGET_ID}/ to fully reflect the latest changes in ./sdist/arch/ .\n"
printf "The community provided ./sdata/dist-${TARGET_ID}/ is not updated (update status: ${tmp_update_status}),\n"
printf "which means it does not fully reflect the latest changes of ./sdata/dist-arch/ .\n"
printf "You are highly recommended to abort this script, until someone (maybe you?) has updated the ./sdata/dist-${TARGET_ID}/ to fully reflect the latest changes in ./sdata/dist-arch/ .\n"
printf "PR is welcomed. Please see discussion#2140 for details.\n"
printf "${STY_UNDERLINE}https://github.com/end-4/dots-hyprland/discussions/2140${STY_RST}\n"
printf "${STY_RED}${STY_INVERT}If you are proceeding anyway, illogical-impulse will very likely not work as expected.${STY_RST}\n"
@@ -134,7 +134,7 @@ elif [[ -f "./sdist/${OS_DISTRO_ID}/install-deps.sh" ]]; then
*)echo "Aborting...";exit 1;;
esac
fi
source ./sdist/${TARGET_ID}/install-deps.sh
source ./sdata/dist-${TARGET_ID}/install-deps.sh
elif [[ "$OS_DISTRO_ID_LIKE" == "arch" || "$OS_DISTRO_ID" == "cachyos" ]]; then
@@ -143,14 +143,14 @@ elif [[ "$OS_DISTRO_ID_LIKE" == "arch" || "$OS_DISTRO_ID" == "cachyos" ]]; then
printf "===WARNING===\n"
printf "Detected distro ID: ${OS_DISTRO_ID}\n"
printf "Detected distro ID_LIKE: ${OS_DISTRO_ID_LIKE}\n"
printf "./sdist/${TARGET_ID}/install-deps.sh will be used.\n"
printf "./sdata/dist-${TARGET_ID}/install-deps.sh will be used.\n"
printf "Ideally, it should also work for your distro.\n"
printf "Still, there is a chance that it not works as expected or even fails.\n"
printf "Proceed only at your own risk.\n"
printf "\n"
printf "${STY_RST}"
pause
source ./sdist/${TARGET_ID}/install-deps.sh
source ./sdata/dist-${TARGET_ID}/install-deps.sh
else
@@ -159,13 +159,13 @@ else
printf "${STY_RED}"
printf "Detected distro ID: ${OS_DISTRO_ID}\n"
printf "Detected distro ID_LIKE: ${OS_DISTRO_ID_LIKE}\n"
printf "./sdist/${OS_DISTRO_ID}/install-deps.sh not found.\n"
printf "./sdist/${TARGET_ID}/install-deps.sh will be used.\n"
printf "./sdata/dist-${OS_DISTRO_ID}/install-deps.sh not found.\n"
printf "./sdata/dist-${TARGET_ID}/install-deps.sh will be used.\n"
printf "1. It may disrupt your system and will likely fail without your manual intervention.\n"
printf "2. It's WIP and only contains small number of dependencies far from enough.\n"
printf "Proceed only at your own risk.\n"
printf "${STY_RST}"
pause
source ./sdist/${TARGET_ID}/install-deps.sh
source ./sdata/dist-${TARGET_ID}/install-deps.sh
fi
+12 -12
View File
@@ -21,13 +21,13 @@ if [[ "$INSTALL_VIA_NIX" == "true" ]]; then
TARGET_ID=fallback
printf "${STY_YELLOW}"
printf "===WARNING===\n"
printf "./sdist/${TARGET_ID}/install-setups.sh will be used.\n"
printf "./sdata/dist-${TARGET_ID}/install-setups.sh will be used.\n"
printf "The process is still WIP.\n"
printf "Proceed only at your own risk.\n"
printf "\n"
printf "${STY_RST}"
pause
source ./sdist/${TARGET_ID}/install-setups.sh
source ./sdata/dist-${TARGET_ID}/install-setups.sh
elif [[ "$OS_DISTRO_ID" == "arch" ]]; then
@@ -35,19 +35,19 @@ elif [[ "$OS_DISTRO_ID" == "arch" ]]; then
printf "${STY_GREEN}"
printf "===INFO===\n"
printf "Detected distro ID: ${OS_DISTRO_ID}\n"
printf "./sdist/${TARGET_ID}/install-setups.sh will be used.\n"
printf "./sdata/dist-${TARGET_ID}/install-setups.sh will be used.\n"
printf "\n"
printf "${STY_RST}"
pause
source ./sdist/${TARGET_ID}/install-setups.sh
source ./sdata/dist-${TARGET_ID}/install-setups.sh
elif [[ -f "./sdist/${OS_DISTRO_ID}/install-setups.sh" ]]; then
elif [[ -f "./sdata/dist-${OS_DISTRO_ID}/install-setups.sh" ]]; then
TARGET_ID=${OS_DISTRO_ID}
printf "${STY_PURPLE}"
printf "===NOTICE===\n"
printf "Detected distro ID: ${OS_DISTRO_ID}\n"
printf "./sdist/${TARGET_ID}/install-setups.sh will be used.\n"
printf "./sdata/dist-${TARGET_ID}/install-setups.sh will be used.\n"
printf "This file is provided by the community.\n"
printf "It is not officially supported by github:end-4/dots-hyprland .\n"
printf "${STY_INVERT}"
@@ -57,7 +57,7 @@ elif [[ -f "./sdist/${OS_DISTRO_ID}/install-setups.sh" ]]; then
printf "\n"
printf "${STY_RST}"
pause
source ./sdist/${TARGET_ID}/install-setups.sh
source ./sdata/dist-${TARGET_ID}/install-setups.sh
elif [[ "$OS_DISTRO_ID_LIKE" == "arch" || "$OS_DISTRO_ID" == "cachyos" ]]; then
@@ -66,14 +66,14 @@ elif [[ "$OS_DISTRO_ID_LIKE" == "arch" || "$OS_DISTRO_ID" == "cachyos" ]]; then
printf "===WARNING===\n"
printf "Detected distro ID: ${OS_DISTRO_ID}\n"
printf "Detected distro ID_LIKE: ${OS_DISTRO_ID_LIKE}\n"
printf "./sdist/${TARGET_ID}/install-setups.sh will be used.\n"
printf "./sdata/dist-${TARGET_ID}/install-setups.sh will be used.\n"
printf "Ideally, it should also work for your distro.\n"
printf "Still, there is a chance that it not works as expected or even fails.\n"
printf "Proceed only at your own risk.\n"
printf "\n"
printf "${STY_RST}"
pause
source ./sdist/${TARGET_ID}/install-setups.sh
source ./sdata/dist-${TARGET_ID}/install-setups.sh
else
@@ -82,13 +82,13 @@ else
printf "===WARNING===\n"
printf "Detected distro ID: ${OS_DISTRO_ID}\n"
printf "Detected distro ID_LIKE: ${OS_DISTRO_ID_LIKE}\n"
printf "./sdist/${OS_DISTRO_ID}/install-setups.sh not found.\n"
printf "./sdist/${TARGET_ID}/install-setups.sh will be used.\n"
printf "./sdata/dist-${OS_DISTRO_ID}/install-setups.sh not found.\n"
printf "./sdata/dist-${TARGET_ID}/install-setups.sh will be used.\n"
printf "It might fail or disrupt your system.\n"
printf "Proceed only at your own risk.\n"
printf "\n"
printf "${STY_RST}"
pause
source ./sdist/${TARGET_ID}/install-setups.sh
source ./sdata/dist-${TARGET_ID}/install-setups.sh
fi
+4 -4
View File
@@ -17,7 +17,7 @@ set -uo pipefail
# === Configuration ===
DOTS_ROOT="${REPO_ROOT}/dots"
ARCH_PACKAGES_DIR="${REPO_ROOT}/sdist/arch"
ARCH_PACKAGES_DIR="${REPO_ROOT}/sdata/dist-arch"
UPDATE_IGNORE_FILE="${REPO_ROOT}/.updateignore"
HOME_UPDATE_IGNORE_FILE="${HOME}/.updateignore"
@@ -303,7 +303,7 @@ list_packages() {
local changed_packages=()
if [[ ! -d "$ARCH_PACKAGES_DIR" ]]; then
log_warning "No sdist/arch directory found"
log_warning "No sdata/dist-arch directory found"
return 1
fi
@@ -319,7 +319,7 @@ list_packages() {
done
if [[ ${#available_packages[@]} -eq 0 ]]; then
log_info "No packages found in sdist/arch directory"
log_info "No packages found in sdata/dist-arch directory"
return 1
fi
@@ -557,7 +557,7 @@ if [[ "$CHECK_PACKAGES" == true ]]; then
log_header "Package Management"
if [[ ! -d "$ARCH_PACKAGES_DIR" ]]; then
log_warning "No sdist/arch directory found. Skipping package management."
log_warning "No sdata/dist-arch directory found. Skipping package management."
else
# Check if any PKGBUILDs have changed
changed_pkgbuilds=()
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
# exp-update-tester.sh - Test suite for update.sh (sourced subcommand)
# exp-update-tester.sh - Test suite for exp-update.sh
#
set -euo pipefail
+3 -3
View File
@@ -30,8 +30,8 @@ if which pacman &>/dev/null; then
ARCH_PACKAGES_DIR="${REPO_ROOT}/dist-arch"
elif [[ -d "${REPO_ROOT}/arch-packages" ]]; then
ARCH_PACKAGES_DIR="${REPO_ROOT}/arch-packages"
elif [[ -d "${REPO_ROOT}/sdist/arch" ]]; then
ARCH_PACKAGES_DIR="${REPO_ROOT}/sdist/arch"
elif [[ -d "${REPO_ROOT}/sdata/dist-arch" ]]; then
ARCH_PACKAGES_DIR="${REPO_ROOT}/sdata/dist-arch"
else
ARCH_PACKAGES_DIR="${REPO_ROOT}/dist-arch" # Default fallback
fi
@@ -868,7 +868,7 @@ if [[ "$CHECK_PACKAGES" == true ]]; then
if [[ "$PKG_TOOLS_AVAILABLE" == true ]]; then
if [[ ! -d "$ARCH_PACKAGES_DIR" ]]; then
log_warning "No packages directory found (tried: dist-arch, arch-packages, sdist/arch). Skipping package management."
log_warning "No packages directory found (tried: dist-arch, arch-packages, sdata/dist-arch). Skipping package management."
else
changed_pkgbuilds=()
for pkg_dir in "$ARCH_PACKAGES_DIR"/*/; do