forked from Shinonome/dots-hyprland
Move sdist/ID to sdata/dist-ID
This commit is contained in:
+4
-4
@@ -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.
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
/*/*.tar.*
|
||||
/*/pkg/
|
||||
/*/src/
|
||||
@@ -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
|
||||
)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
WIP
|
||||
@@ -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
|
||||
@@ -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
|
||||
"
|
||||
+19
@@ -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
|
||||
"
|
||||
+24
@@ -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}"
|
||||
}
|
||||
+91
@@ -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
|
||||
"
|
||||
+56
@@ -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
|
||||
}
|
||||
|
||||
+26
@@ -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
|
||||
"
|
||||
+86
@@ -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
|
||||
}
|
||||
+21
@@ -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
|
||||
"
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
AUTO
|
||||
@@ -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
|
||||
@@ -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 ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,4 @@
|
||||
# This script is meant to be sourced.
|
||||
# It's not for directly running.
|
||||
|
||||
# This file is currently WIP.
|
||||
@@ -0,0 +1 @@
|
||||
WIP
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user