Rearrange for tidier structure (#2212)

This commit is contained in:
clsty
2025-10-16 07:19:55 +08:00
parent 13065d7e5a
commit 8b493e091d
529 changed files with 165 additions and 138 deletions
+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 `/sdist/arch/` but under Gentoo.
- **When `/sdist/arch/` is newer than this folder, an update on this folder is very likely needed.**
- Useful link: [Commit history on sdist/arch/](https://github.com/end-4/dots-hyprland/commits/main/sdist/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 sdist/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,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,22 @@
# 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
gui-apps/quickshell
app-i18n/translate-shell
gui-apps/wlogout
media-gfx/imagemagick
"
@@ -0,0 +1,84 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="Toolkit for building desktop widgets using QtQuick"
HOMEPAGE="https://quickshell.org/"
if [[ "${PV}" = *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/quickshell-mirror/${PN^}.git"
else
SRC_URI="https://github.com/quickshell-mirror/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
# 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-build/cmake
dev-build/ninja
virtual/pkgconfig
dev-cpp/cli11
dev-util/spirv-tools
dev-qt/qtshadertools:6
breakpad? ( dev-util/breakpad )
wayland? (
dev-util/wayland-scanner
dev-libs/wayland-protocols
)
"
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
}
+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_RESET}"
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_RESET}"
pause
printf "${STY_YELLOW}"
printf "https://github.com/end-4/dots-hyprland/blob/main/sdist/gentoo/README.md"
printf "Checkout the above README for potential bug fixes or additional information"
printf "${STY_RESET}"
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,screencapture,toolkit,widgets})
ebuild_dir="/var/db/repos/localrepo"
# Unmasks
x sudo cp ./sdist/gentoo/keywords ./sdist/gentoo/keywords-user
x sed -i "s/$/ ~${arch}/" ./sdist/gentoo/keywords-user
v sudo cp ./sdist/gentoo/keywords-user /etc/portage/package.accept_keywords/illogical-impulse
# Use Flags
v sudo cp ./sdist/gentoo/useflags /etc/portage/package.use/illogical-impulse
v sudo sh -c 'cat ./sdist/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 ./sdist/gentoo/${HYPR_DIR}/hyprgraphics*.ebuild ${ebuild_dir}/dev-libs/hyprgraphics
v sudo cp ./sdist/gentoo/${HYPR_DIR}/hyprland-qt-support*.ebuild ${ebuild_dir}/gui-libs/hyprland-qt-support
v sudo cp ./sdist/gentoo/${HYPR_DIR}/hyprland-qtutils*.ebuild ${ebuild_dir}/gui-libs/hyprland-qtutils
v sudo cp ./sdist/gentoo/${HYPR_DIR}/hyprlang*.ebuild ${ebuild_dir}/dev-libs/hyprlang
v sudo cp ./sdist/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 ./sdist/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_RESET}"
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
+41
View File
@@ -0,0 +1,41 @@
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-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
+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