Gentoo Install (#2116)

This commit is contained in:
Celestial.y
2025-10-06 07:26:25 +08:00
committed by GitHub
27 changed files with 993 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
# End-4 dot-files for Gentoo by [@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 dist-arch).
## Recommended use flags (useflags)
- 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
- 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
```
@@ -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,94 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DART_SASS_VER=1.78.0
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/luisbocanegra/kde-material-you-colors/archive/refs/heads/main.tar.gz -> ${P}-kde-material-you-colors.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/google/material-design-icons/archive/refs/heads/main.tar.gz -> ${P}-material-design-icons.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
"
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_KDE_MATERIAL_YOU_COLORS="${S}/kde-material-you-colors-main"
S_RUBIK="${S}/rubik-main"
S_READEXPRO="${S}/readexpro-master"
S_MATERIAL_DESIGN_ICONS="${S}/material-design-icons-main"
S_ADW_GTK3="${S}/adw-gtk3-main"
S_BREEZE_PLUS="${S}/breeze-plus-main"
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
cd "${S_KDE_MATERIAL_YOU_COLORS}"
mkdir -p build
cd build
cmake ..
cmake --build . --parallel=$(nproc)
cmake --install . --destdir="${D}"
insinto /usr/share/fonts/ttf-readex-pro
doins "${S_READEXPRO}"/fonts/ttf/*.ttf
insinto /usr/share/fonts/ttf-material-design-icons
doins "${S_MATERIAL_DESIGN_ICONS}"/font/*.ttf
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,9 @@
hyprland
hyprgraphics
hyprutils
hyprlang
hyprwayland-scanner
hyprcursor
hypr-qt-support
hypr-qt-utils
@@ -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,25 @@
# 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
media-libs/opencv
"
@@ -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,21 @@
# 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
"
@@ -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
}
+73
View File
@@ -0,0 +1,73 @@
printf "${STY_YELLOW}"
printf "============WARNING/NOTE============\n"
printf "Your GCC version is: $(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>), then emerge re-emerge @world with an empty tree (emerge -e @world)\n"
printf "${STY_RESET}"
pause
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 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 cp ./dist-gentoo/keywords ./dist-gentoo/keywords-user
x sed -i "s/$/ ~${arch}/" ./dist-gentoo/keywords-user
v sudo cp ./dist-gentoo/keywords-user /etc/portage/package.accept_keywords/end4
# Use Flags
v sudo cp ./dist-gentoo/useflags /etc/portage/package.use/end4
# Update system
v sudo emerge --sync
v sudo emerge --ask --verbose --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 ./dist-gentoo/${HYPR_DIR}/hyprgraphics*.ebuild ${ebuild_dir}/dev-libs/hyprgraphics
v sudo cp ./dist-gentoo/${HYPR_DIR}/hyprland-qt-support*.ebuild ${ebuild_dir}/gui-libs/hyprland-qt-support
v sudo cp ./dist-gentoo/${HYPR_DIR}/hyprland-qtutils*.ebuild ${ebuild_dir}/gui-libs/hyprland-qtutils
v sudo cp ./dist-gentoo/${HYPR_DIR}/hyprlang*.ebuild ${ebuild_dir}/dev-libs/hyprlang
v sudo cp ./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 ./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
+38
View File
@@ -0,0 +1,38 @@
# 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 getent group i2c || sudo groupadd i2c
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) ~/.local/share/icons/
v sudo chown -R $(whoami):$(whoami) ~/.local/share/konsole/
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
+38
View File
@@ -0,0 +1,38 @@
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
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/hyprgraphicss **
gui-libs/hyprcursor **
gui-libs/hyprland-qt-support **
gui-libs/hyprland-qtutils **
gui-wm/hyprland **
+1
View File
@@ -0,0 +1 @@
AUTO
+114
View File
@@ -0,0 +1,114 @@
################### 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
################### 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
media-libs/opencv eigen ffmpeg jpeg opencl opengl python wayland gtk3 webp
################### 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)