summaryrefslogtreecommitdiff
path: root/hosts/iroha/gentoo
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-10-17 12:22:00 -0400
committerAndrew Opalach <andrew@akon.city> 2025-10-17 12:32:42 -0400
commit544da1ba50d9cbf51a18ca0abf1db66b3baa7460 (patch)
tree1caa87664ea4937c5f4e6e8dc83c49b3132ddd70 /hosts/iroha/gentoo
parent85a47287e56ba9100420246531ebea5996cc0486 (diff)
downloaddotfiles-544da1ba50d9cbf51a18ca0abf1db66b3baa7460.tar.gz
dotfiles-544da1ba50d9cbf51a18ca0abf1db66b3baa7460.tar.bz2
dotfiles-544da1ba50d9cbf51a18ca0abf1db66b3baa7460.zip
Gentoo desktop
Diffstat (limited to 'hosts/iroha/gentoo')
-rw-r--r--hosts/iroha/gentoo/env/eix-extra-econf.conf3
-rw-r--r--hosts/iroha/gentoo/env/gcc.conf3
-rw-r--r--hosts/iroha/gentoo/env/nolto.conf6
-rw-r--r--hosts/iroha/gentoo/make.conf29
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/bpftool1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/cachyos-sources1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/cowsql1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/foot-terminfo1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/gamescope1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/gcc1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/gentoo-sources1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/gentoolkit1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/git-sources1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/igt-gpu-tools1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/incus1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/libbpf1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/libhugetlbfs1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/libvirt2
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/lutris3
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/mangohud3
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/megatools1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/mesa1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/nix-guix4
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/obs-studio1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/openrgb1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/osu-lazer1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/qemu1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/qpwgraph1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/raft1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/rpcs31
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/ryujinx1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/samba1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/screen1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/scx1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/seabios-bin1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/shotcut1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/steam3
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/sway1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/talloc1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/tdb1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/tevent1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/ufetch1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/umu-launcher1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/vim2
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/virtiofsd1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/vkroots1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/waydroid5
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/wf-recorder1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/wlrobs1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/wlsunset1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/wolfssl1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/xboxdrv1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/xpad-noone1
-rw-r--r--hosts/iroha/gentoo/package.env/eix1
-rw-r--r--hosts/iroha/gentoo/package.env/gcc1
-rw-r--r--hosts/iroha/gentoo/package.env/libvirt-python1
-rw-r--r--hosts/iroha/gentoo/package.env/mlt1
-rw-r--r--hosts/iroha/gentoo/package.env/rust1
-rw-r--r--hosts/iroha/gentoo/package.license/7zip1
-rw-r--r--hosts/iroha/gentoo/package.license/kernel1
-rw-r--r--hosts/iroha/gentoo/package.license/osu-lazer1
-rw-r--r--hosts/iroha/gentoo/package.license/steam1
-rw-r--r--hosts/iroha/gentoo/package.license/unrar1
-rw-r--r--hosts/iroha/gentoo/package.license/xone1
-rw-r--r--hosts/iroha/gentoo/package.mask/chromium1
-rw-r--r--hosts/iroha/gentoo/package.mask/gcc1
-rw-r--r--hosts/iroha/gentoo/package.mask/python2
-rw-r--r--hosts/iroha/gentoo/package.mask/xone1
-rw-r--r--hosts/iroha/gentoo/package.unmask/mesa1
-rw-r--r--hosts/iroha/gentoo/package.unmask/screen1
-rw-r--r--hosts/iroha/gentoo/package.use/00cpu-flags2
-rw-r--r--hosts/iroha/gentoo/package.use/00video-cards1
-rw-r--r--hosts/iroha/gentoo/package.use/7zip1
-rw-r--r--hosts/iroha/gentoo/package.use/Alien-Build1
-rw-r--r--hosts/iroha/gentoo/package.use/Path-Tiny1
-rw-r--r--hosts/iroha/gentoo/package.use/XML-LibXML1
-rw-r--r--hosts/iroha/gentoo/package.use/ardour1
-rw-r--r--hosts/iroha/gentoo/package.use/audacity5
-rw-r--r--hosts/iroha/gentoo/package.use/bemenu1
-rw-r--r--hosts/iroha/gentoo/package.use/binutils1
-rw-r--r--hosts/iroha/gentoo/package.use/binutils-libs1
-rw-r--r--hosts/iroha/gentoo/package.use/blender3
-rw-r--r--hosts/iroha/gentoo/package.use/cachyos-sources2
-rw-r--r--hosts/iroha/gentoo/package.use/chromium6
-rw-r--r--hosts/iroha/gentoo/package.use/chrony1
-rw-r--r--hosts/iroha/gentoo/package.use/clang1
-rw-r--r--hosts/iroha/gentoo/package.use/compiler-rt-sanitizers2
-rw-r--r--hosts/iroha/gentoo/package.use/cups1
-rw-r--r--hosts/iroha/gentoo/package.use/dbus2
-rw-r--r--hosts/iroha/gentoo/package.use/doas1
-rw-r--r--hosts/iroha/gentoo/package.use/elfutils1
-rw-r--r--hosts/iroha/gentoo/package.use/elogind1
-rw-r--r--hosts/iroha/gentoo/package.use/ffmpeg1
-rw-r--r--hosts/iroha/gentoo/package.use/fftw1
-rw-r--r--hosts/iroha/gentoo/package.use/firefox3
-rw-r--r--hosts/iroha/gentoo/package.use/flac1
-rw-r--r--hosts/iroha/gentoo/package.use/freetype2
-rw-r--r--hosts/iroha/gentoo/package.use/frei0r-plugins1
-rw-r--r--hosts/iroha/gentoo/package.use/fwupd5
-rw-r--r--hosts/iroha/gentoo/package.use/gamemode1
-rw-r--r--hosts/iroha/gentoo/package.use/gamescope2
-rw-r--r--hosts/iroha/gentoo/package.use/gcc2
-rw-r--r--hosts/iroha/gentoo/package.use/gimp6
-rw-r--r--hosts/iroha/gentoo/package.use/git1
-rw-r--r--hosts/iroha/gentoo/package.use/glib-networking2
-rw-r--r--hosts/iroha/gentoo/package.use/glibc2
-rw-r--r--hosts/iroha/gentoo/package.use/glog1
-rw-r--r--hosts/iroha/gentoo/package.use/gmp2
-rw-r--r--hosts/iroha/gentoo/package.use/gnupg1
-rw-r--r--hosts/iroha/gentoo/package.use/gst-plugins-base1
-rw-r--r--hosts/iroha/gentoo/package.use/gtk2
-rw-r--r--hosts/iroha/gentoo/package.use/harfbuzz2
-rw-r--r--hosts/iroha/gentoo/package.use/htop2
-rw-r--r--hosts/iroha/gentoo/package.use/imv1
-rw-r--r--hosts/iroha/gentoo/package.use/installkernel1
-rw-r--r--hosts/iroha/gentoo/package.use/iputils1
-rw-r--r--hosts/iroha/gentoo/package.use/jack21
-rw-r--r--hosts/iroha/gentoo/package.use/kde3
-rw-r--r--hosts/iroha/gentoo/package.use/kdenlive6
-rw-r--r--hosts/iroha/gentoo/package.use/kitty1
-rw-r--r--hosts/iroha/gentoo/package.use/lame1
-rw-r--r--hosts/iroha/gentoo/package.use/libaom1
-rw-r--r--hosts/iroha/gentoo/package.use/libb21
-rw-r--r--hosts/iroha/gentoo/package.use/libdecor1
-rw-r--r--hosts/iroha/gentoo/package.use/libdeflate1
-rw-r--r--hosts/iroha/gentoo/package.use/libdrm1
-rw-r--r--hosts/iroha/gentoo/package.use/libheif1
-rw-r--r--hosts/iroha/gentoo/package.use/libnl1
-rw-r--r--hosts/iroha/gentoo/package.use/libosinfo1
-rw-r--r--hosts/iroha/gentoo/package.use/libpulse1
-rw-r--r--hosts/iroha/gentoo/package.use/libsoup1
-rw-r--r--hosts/iroha/gentoo/package.use/libvirt2
-rw-r--r--hosts/iroha/gentoo/package.use/libwebp1
-rw-r--r--hosts/iroha/gentoo/package.use/linux-firmware1
-rw-r--r--hosts/iroha/gentoo/package.use/lua1
-rw-r--r--hosts/iroha/gentoo/package.use/lxc2
-rw-r--r--hosts/iroha/gentoo/package.use/lynx1
-rw-r--r--hosts/iroha/gentoo/package.use/mangohud2
-rw-r--r--hosts/iroha/gentoo/package.use/mesa2
-rw-r--r--hosts/iroha/gentoo/package.use/mesa-progs2
-rw-r--r--hosts/iroha/gentoo/package.use/miscfiles1
-rw-r--r--hosts/iroha/gentoo/package.use/mpg123-base1
-rw-r--r--hosts/iroha/gentoo/package.use/mutt1
-rw-r--r--hosts/iroha/gentoo/package.use/ncurses2
-rw-r--r--hosts/iroha/gentoo/package.use/nfs-utils2
-rw-r--r--hosts/iroha/gentoo/package.use/nix4
-rw-r--r--hosts/iroha/gentoo/package.use/nodejs1
-rw-r--r--hosts/iroha/gentoo/package.use/noto1
-rw-r--r--hosts/iroha/gentoo/package.use/numpy1
-rw-r--r--hosts/iroha/gentoo/package.use/obs-studio5
-rw-r--r--hosts/iroha/gentoo/package.use/openimageio1
-rw-r--r--hosts/iroha/gentoo/package.use/pass2
-rw-r--r--hosts/iroha/gentoo/package.use/pinentry2
-rw-r--r--hosts/iroha/gentoo/package.use/pipewire4
-rw-r--r--hosts/iroha/gentoo/package.use/poppler1
-rw-r--r--hosts/iroha/gentoo/package.use/portage-utils1
-rw-r--r--hosts/iroha/gentoo/package.use/prismlauncher1
-rw-r--r--hosts/iroha/gentoo/package.use/pulseaudio1
-rw-r--r--hosts/iroha/gentoo/package.use/python6
-rw-r--r--hosts/iroha/gentoo/package.use/qemu2
-rw-r--r--hosts/iroha/gentoo/package.use/qt8
-rw-r--r--hosts/iroha/gentoo/package.use/qtgui1
-rw-r--r--hosts/iroha/gentoo/package.use/qtwidgets1
-rw-r--r--hosts/iroha/gentoo/package.use/rubberband1
-rw-r--r--hosts/iroha/gentoo/package.use/serd1
-rw-r--r--hosts/iroha/gentoo/package.use/spice2
-rw-r--r--hosts/iroha/gentoo/package.use/spice-gtk1
-rw-r--r--hosts/iroha/gentoo/package.use/steam78
-rw-r--r--hosts/iroha/gentoo/package.use/sway3
-rw-r--r--hosts/iroha/gentoo/package.use/sysklogd1
-rw-r--r--hosts/iroha/gentoo/package.use/ufw1
-rw-r--r--hosts/iroha/gentoo/package.use/vim2
-rw-r--r--hosts/iroha/gentoo/package.use/vim-core1
-rw-r--r--hosts/iroha/gentoo/package.use/virglrenderer1
-rw-r--r--hosts/iroha/gentoo/package.use/virt-manager12
-rw-r--r--hosts/iroha/gentoo/package.use/vulkan-layers1
-rw-r--r--hosts/iroha/gentoo/package.use/vulkan-loader1
-rw-r--r--hosts/iroha/gentoo/package.use/waydroid2
-rw-r--r--hosts/iroha/gentoo/package.use/wf-recorder1
-rw-r--r--hosts/iroha/gentoo/package.use/wine1
-rw-r--r--hosts/iroha/gentoo/package.use/wlroots1
-rw-r--r--hosts/iroha/gentoo/package.use/xdg-utils1
-rw-r--r--hosts/iroha/gentoo/package.use/zz-autounmask38
-rw-r--r--hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_hostcolor.diff24
-rw-r--r--hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_kitty_font.diff17
-rw-r--r--hosts/iroha/gentoo/patches/app-misc/ufetch/ufetch_hostcolor.diff27
-rw-r--r--hosts/iroha/gentoo/patches/games-util/xone/3bc363c48ec38c4a08c4294ca111ed9f75e3e026.diff26
-rw-r--r--hosts/iroha/gentoo/patches/games-util/xone/53.diff75
-rw-r--r--hosts/iroha/gentoo/patches/games-util/xone/b18d6d5b51c308bca665e6dfe63f31aecb98cce5.diff37
-rw-r--r--hosts/iroha/gentoo/patches/gui-wm/gamescope/1826.diff84
-rw-r--r--hosts/iroha/gentoo/patches/gui-wm/gamescope/740_rebase.diff693
-rw-r--r--hosts/iroha/gentoo/profile/package.use.force/force.conf5
-rw-r--r--hosts/iroha/gentoo/profile/use.mask3
-rw-r--r--hosts/iroha/gentoo/repos.conf/eselect-repo.conf19
l---------hosts/iroha/gentoo/repos.conf/gentoo.conf1
-rw-r--r--hosts/iroha/gentoo/repos.conf/localrepo.conf2
-rw-r--r--hosts/iroha/gentoo/repos.conf/nix-guix.conf4
197 files changed, 1184 insertions, 273 deletions
diff --git a/hosts/iroha/gentoo/env/eix-extra-econf.conf b/hosts/iroha/gentoo/env/eix-extra-econf.conf
deleted file mode 100644
index ffd867b..0000000
--- a/hosts/iroha/gentoo/env/eix-extra-econf.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-EXTRA_ECONF="--enable-security
---enable-new-dialect
---enable-strong-optimization"
diff --git a/hosts/iroha/gentoo/env/gcc.conf b/hosts/iroha/gentoo/env/gcc.conf
deleted file mode 100644
index 1c90660..0000000
--- a/hosts/iroha/gentoo/env/gcc.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-COMMON_FLAGS="-march=native -mtune=native -O2 -fomit-frame-pointer -flto=auto -pipe"
-CFLAGS="${COMMON_FLAGS}"
-CXXFLAGS="${COMMON_FLAGS}"
diff --git a/hosts/iroha/gentoo/env/nolto.conf b/hosts/iroha/gentoo/env/nolto.conf
new file mode 100644
index 0000000..75ce5d4
--- /dev/null
+++ b/hosts/iroha/gentoo/env/nolto.conf
@@ -0,0 +1,6 @@
+DISABLE_LTO="-Wno-error=odr -Wno-error=lto-type-mismatch -Wno-error=strict-aliasing -fno-lto"
+CFLAGS="${CFLAGS} ${DISABLE_LTO}"
+CXXFLAGS="${CXXFLAGS} ${DISABLE_LTO}"
+FCFLAGS="${FCFLAGS} ${DISABLE_LTO}"
+FFLAGS="${FFLAGS} ${DISABLE_LTO}"
+LDFLAGS="${LDFLAGS} ${DISABLE_LTO}"
diff --git a/hosts/iroha/gentoo/make.conf b/hosts/iroha/gentoo/make.conf
index f83b6b4..0fa679c 100644
--- a/hosts/iroha/gentoo/make.conf
+++ b/hosts/iroha/gentoo/make.conf
@@ -1,39 +1,44 @@
WARNING_FLAGS="-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
-COMMON_FLAGS="-O2 -pipe -march=znver2 -mtune=znver2 -fno-semantic-interposition -flto ${WARNING_FLAGS}"
+COMMON_FLAGS="-O2 -pipe -march=znver2 -mtune=znver2 -fno-semantic-interposition -fomit-frame-pointer -fno-stack-protector -flto ${WARNING_FLAGS}"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
+# https://wiki.gentoo.org/wiki/LTO
+LDFLAGS="${COMMON_FLAGS} ${LDFLAGS} ${WARNING_FLAGS}"
CGO_CFLAGS="${COMMON_FLAGS}"
CGO_CXXFLAGS="${COMMON_FLAGS}"
CGO_FFLAGS="${COMMON_FLAGS}"
CGO_LDFLAGS="${LDFLAGS}"
-RUSTFLAGS="-C opt-level=2 -C target-cpu=znver2"
+RUSTFLAGS="${RUSTFLAGS} -C target-cpu=znver2"
-MAKEOPTS="-j18"
+MAKEOPTS="-j20 -l24"
EMERGE_DEFAULT_OPTS="--jobs 3"
-RUBY_TARGETS="ruby32"
+RUBY_TARGETS="ruby33"
PERL_FEATURES=""
LUA_SINGLE_TARGET="lua5-4"
LUA_TARGETS="lua5-4"
-KERNEL="linux"
-
ACCEPT_KEYWORDS="amd64"
-ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE MS-TOU"
+ACCEPT_LICENSE="-* @FREE"
-USE="lto pgo orc native-extensions dbus udev policykit acl -systemd -consolekit -X -wayland -gtk -gnome -kde -qt5 -qt6 -alsa -jack -pulseaudio -bluetooth -introspection -nls -numa -selinux -caps -filecaps -sysprof -pie -pic -unwind -ssp -hardened -sanitize -debug -cpudetection"
+USE="modules-compress lto pgo policykit elogind man -X \
+ -numa -selinux -sysprof -pie -pic -unwind -ssp -cet -hardened -sanitize -debug \
+ -consolekit -systemd -introspection -vala -handbook -kerberos"
GRUB_PLATFORMS="efi-64"
-VIDEO_CARDS="radeonsi amdgpu intel virgl"
-INPUT_DEVICES="keyboard"
+INPUT_DEVICES="keyboard mouse"
+
+L10N="en en-US"
+LC_MESSAGES="C.utf8"
-L10N="en"
-LC_MESSAGES=C.utf8
+GENTOO_MIRRORS="rsync://rsync.gtlib.gatech.edu/gentoo \
+ rsync://mirrors.mit.edu/gentoo-distfiles/ \
+ https://gentoo.osuosl.org/"
diff --git a/hosts/iroha/gentoo/package.accept_keywords/bpftool b/hosts/iroha/gentoo/package.accept_keywords/bpftool
deleted file mode 100644
index 57c1aa6..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/bpftool
+++ /dev/null
@@ -1 +0,0 @@
-dev-util/bpftool ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/cachyos-sources b/hosts/iroha/gentoo/package.accept_keywords/cachyos-sources
deleted file mode 100644
index 8bab576..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/cachyos-sources
+++ /dev/null
@@ -1 +0,0 @@
-sys-kernel/cachyos-sources **
diff --git a/hosts/iroha/gentoo/package.accept_keywords/cowsql b/hosts/iroha/gentoo/package.accept_keywords/cowsql
deleted file mode 100644
index 744c16e..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/cowsql
+++ /dev/null
@@ -1 +0,0 @@
-dev-libs/cowsql ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/foot-terminfo b/hosts/iroha/gentoo/package.accept_keywords/foot-terminfo
deleted file mode 100644
index c42d2a9..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/foot-terminfo
+++ /dev/null
@@ -1 +0,0 @@
-gui-apps/foot-terminfo ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/gamescope b/hosts/iroha/gentoo/package.accept_keywords/gamescope
new file mode 100644
index 0000000..f47c27a
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/gamescope
@@ -0,0 +1 @@
+gui-wm/gamescope ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/gcc b/hosts/iroha/gentoo/package.accept_keywords/gcc
deleted file mode 100644
index 87f3409..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/gcc
+++ /dev/null
@@ -1 +0,0 @@
-sys-devel/gcc ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/gentoo-sources b/hosts/iroha/gentoo/package.accept_keywords/gentoo-sources
deleted file mode 100644
index 9932ebe..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/gentoo-sources
+++ /dev/null
@@ -1 +0,0 @@
-sys-kernel/gentoo-sources ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/gentoolkit b/hosts/iroha/gentoo/package.accept_keywords/gentoolkit
deleted file mode 100644
index 57341a6..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/gentoolkit
+++ /dev/null
@@ -1 +0,0 @@
-app-portage/gentoolkit python_targets_python3_12
diff --git a/hosts/iroha/gentoo/package.accept_keywords/git-sources b/hosts/iroha/gentoo/package.accept_keywords/git-sources
deleted file mode 100644
index 91ebb1b..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/git-sources
+++ /dev/null
@@ -1 +0,0 @@
-sys-kernel/git-sources ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/igt-gpu-tools b/hosts/iroha/gentoo/package.accept_keywords/igt-gpu-tools
deleted file mode 100644
index 1cf79a0..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/igt-gpu-tools
+++ /dev/null
@@ -1 +0,0 @@
-x11-apps/igt-gpu-tools ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/incus b/hosts/iroha/gentoo/package.accept_keywords/incus
deleted file mode 100644
index 5fae8e1..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/incus
+++ /dev/null
@@ -1 +0,0 @@
-app-containers/incus ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/libbpf b/hosts/iroha/gentoo/package.accept_keywords/libbpf
deleted file mode 100644
index ceebff3..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/libbpf
+++ /dev/null
@@ -1 +0,0 @@
-dev-libs/libbpf ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/libhugetlbfs b/hosts/iroha/gentoo/package.accept_keywords/libhugetlbfs
deleted file mode 100644
index 479c176..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/libhugetlbfs
+++ /dev/null
@@ -1 +0,0 @@
-sys-libs/libhugetlbfs ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/libvirt b/hosts/iroha/gentoo/package.accept_keywords/libvirt
deleted file mode 100644
index 72756ed..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/libvirt
+++ /dev/null
@@ -1,2 +0,0 @@
-app-emulation/libvirt ~amd64
-dev-python/libvirt-python ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/lutris b/hosts/iroha/gentoo/package.accept_keywords/lutris
new file mode 100644
index 0000000..e1a74f0
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/lutris
@@ -0,0 +1,3 @@
+games-util/lutris ~amd64
+dev-python/pypresence ~amd64
+dev-python/moddb ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/mangohud b/hosts/iroha/gentoo/package.accept_keywords/mangohud
new file mode 100644
index 0000000..be7927c
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/mangohud
@@ -0,0 +1,3 @@
+games-util/mangohud ~amd64
+media-libs/imgui ~amd64
+media-libs/implot ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/megatools b/hosts/iroha/gentoo/package.accept_keywords/megatools
new file mode 100644
index 0000000..9b81e46
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/megatools
@@ -0,0 +1 @@
+net-misc/megatools ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/mesa b/hosts/iroha/gentoo/package.accept_keywords/mesa
new file mode 100644
index 0000000..400baaf
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/mesa
@@ -0,0 +1 @@
+media-libs/mesa ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/nix-guix b/hosts/iroha/gentoo/package.accept_keywords/nix-guix
new file mode 100644
index 0000000..64685ad
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/nix-guix
@@ -0,0 +1,4 @@
+*/*::nix-guix
+dev-libs/editline ~amd64
+dev-libs/libcpuid ~amd64
+dev-cpp/toml11 ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/obs-studio b/hosts/iroha/gentoo/package.accept_keywords/obs-studio
new file mode 100644
index 0000000..1d64898
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/obs-studio
@@ -0,0 +1 @@
+media-video/obs-studio ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/openrgb b/hosts/iroha/gentoo/package.accept_keywords/openrgb
deleted file mode 100644
index 78978ff..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/openrgb
+++ /dev/null
@@ -1 +0,0 @@
-app-misc/openrgb ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/osu-lazer b/hosts/iroha/gentoo/package.accept_keywords/osu-lazer
new file mode 100644
index 0000000..ba18a23
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/osu-lazer
@@ -0,0 +1 @@
+games-arcade/osu-lazer ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/qemu b/hosts/iroha/gentoo/package.accept_keywords/qemu
deleted file mode 100644
index 0d5a3eb..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/qemu
+++ /dev/null
@@ -1 +0,0 @@
-app-emulation/qemu ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/qpwgraph b/hosts/iroha/gentoo/package.accept_keywords/qpwgraph
new file mode 100644
index 0000000..f7a171f
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/qpwgraph
@@ -0,0 +1 @@
+media-sound/qpwgraph ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/raft b/hosts/iroha/gentoo/package.accept_keywords/raft
deleted file mode 100644
index 88ddd9c..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/raft
+++ /dev/null
@@ -1 +0,0 @@
-dev-libs/raft ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/rpcs3 b/hosts/iroha/gentoo/package.accept_keywords/rpcs3
new file mode 100644
index 0000000..c35c56c
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/rpcs3
@@ -0,0 +1 @@
+games-emulation/rpcs3 ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/ryujinx b/hosts/iroha/gentoo/package.accept_keywords/ryujinx
new file mode 100644
index 0000000..4121201
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/ryujinx
@@ -0,0 +1 @@
+games-emulation/ryujinx ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/samba b/hosts/iroha/gentoo/package.accept_keywords/samba
deleted file mode 100644
index 90d7b6d..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/samba
+++ /dev/null
@@ -1 +0,0 @@
-net-fs/samba ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/screen b/hosts/iroha/gentoo/package.accept_keywords/screen
new file mode 100644
index 0000000..9801170
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/screen
@@ -0,0 +1 @@
+app-misc/screen ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/scx b/hosts/iroha/gentoo/package.accept_keywords/scx
deleted file mode 100644
index 39c9bc4..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/scx
+++ /dev/null
@@ -1 +0,0 @@
-sys-kernel/scx ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/seabios-bin b/hosts/iroha/gentoo/package.accept_keywords/seabios-bin
deleted file mode 100644
index 02519e6..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/seabios-bin
+++ /dev/null
@@ -1 +0,0 @@
-sys-firmware/seabios-bin ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/shotcut b/hosts/iroha/gentoo/package.accept_keywords/shotcut
new file mode 100644
index 0000000..e383b00
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/shotcut
@@ -0,0 +1 @@
+media-video/shotcut ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/steam b/hosts/iroha/gentoo/package.accept_keywords/steam
new file mode 100644
index 0000000..6f77faa
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/steam
@@ -0,0 +1,3 @@
+*/*::steam-overlay
+games-util/game-device-udev-rules
+sys-libs/libudev-compat
diff --git a/hosts/iroha/gentoo/package.accept_keywords/sway b/hosts/iroha/gentoo/package.accept_keywords/sway
new file mode 100644
index 0000000..75868de
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/sway
@@ -0,0 +1 @@
+gui-wm/sway ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/talloc b/hosts/iroha/gentoo/package.accept_keywords/talloc
deleted file mode 100644
index f08e38b..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/talloc
+++ /dev/null
@@ -1 +0,0 @@
-sys-libs/talloc ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/tdb b/hosts/iroha/gentoo/package.accept_keywords/tdb
deleted file mode 100644
index 4b53952..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/tdb
+++ /dev/null
@@ -1 +0,0 @@
-sys-libs/tdb ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/tevent b/hosts/iroha/gentoo/package.accept_keywords/tevent
deleted file mode 100644
index 924bdcc..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/tevent
+++ /dev/null
@@ -1 +0,0 @@
-sys-libs/tevent ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/ufetch b/hosts/iroha/gentoo/package.accept_keywords/ufetch
new file mode 100644
index 0000000..1bcb76d
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/ufetch
@@ -0,0 +1 @@
+app-misc/ufetch ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/umu-launcher b/hosts/iroha/gentoo/package.accept_keywords/umu-launcher
new file mode 100644
index 0000000..15c7631
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/umu-launcher
@@ -0,0 +1 @@
+games-util/umu-launcher ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/vim b/hosts/iroha/gentoo/package.accept_keywords/vim
new file mode 100644
index 0000000..ee0bab1
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/vim
@@ -0,0 +1,2 @@
+app-editors/vim ** ~amd64
+app-editors/vim-core ** ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/virtiofsd b/hosts/iroha/gentoo/package.accept_keywords/virtiofsd
deleted file mode 100644
index f7504db..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/virtiofsd
+++ /dev/null
@@ -1 +0,0 @@
-app-emulation/virtiofsd ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/vkroots b/hosts/iroha/gentoo/package.accept_keywords/vkroots
new file mode 100644
index 0000000..f7194bc
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/vkroots
@@ -0,0 +1 @@
+media-libs/vkroots ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/waydroid b/hosts/iroha/gentoo/package.accept_keywords/waydroid
new file mode 100644
index 0000000..9a51183
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/waydroid
@@ -0,0 +1,5 @@
+app-containers/waydroid ~amd64
+dev-python/pyclip ~amd64
+dev-python/gbinder ~amd64
+dev-libs/libglibutil ~amd64
+dev-libs/gbinder ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/wf-recorder b/hosts/iroha/gentoo/package.accept_keywords/wf-recorder
new file mode 100644
index 0000000..31a9a54
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/wf-recorder
@@ -0,0 +1 @@
+gui-apps/wf-recorder ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/wlrobs b/hosts/iroha/gentoo/package.accept_keywords/wlrobs
new file mode 100644
index 0000000..872bbc3
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/wlrobs
@@ -0,0 +1 @@
+media-video/wlrobs ** ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/wlsunset b/hosts/iroha/gentoo/package.accept_keywords/wlsunset
new file mode 100644
index 0000000..88bbc99
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/wlsunset
@@ -0,0 +1 @@
+gui-apps/wlsunset ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/wolfssl b/hosts/iroha/gentoo/package.accept_keywords/wolfssl
new file mode 100644
index 0000000..d3ea8d3
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/wolfssl
@@ -0,0 +1 @@
+dev-libs/wolfssl ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/xboxdrv b/hosts/iroha/gentoo/package.accept_keywords/xboxdrv
deleted file mode 100644
index b33641f..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/xboxdrv
+++ /dev/null
@@ -1 +0,0 @@
-games-util/xboxdrv ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/xpad-noone b/hosts/iroha/gentoo/package.accept_keywords/xpad-noone
deleted file mode 100644
index 72b7893..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/xpad-noone
+++ /dev/null
@@ -1 +0,0 @@
-games-util/xpad-noone ~amd64
diff --git a/hosts/iroha/gentoo/package.env/eix b/hosts/iroha/gentoo/package.env/eix
deleted file mode 100644
index 6b1be34..0000000
--- a/hosts/iroha/gentoo/package.env/eix
+++ /dev/null
@@ -1 +0,0 @@
-app-portage/eix eix-extra-econf.conf
diff --git a/hosts/iroha/gentoo/package.env/gcc b/hosts/iroha/gentoo/package.env/gcc
deleted file mode 100644
index 06fdded..0000000
--- a/hosts/iroha/gentoo/package.env/gcc
+++ /dev/null
@@ -1 +0,0 @@
-sys-devel/gcc gcc.conf
diff --git a/hosts/iroha/gentoo/package.env/libvirt-python b/hosts/iroha/gentoo/package.env/libvirt-python
deleted file mode 100644
index 967a860..0000000
--- a/hosts/iroha/gentoo/package.env/libvirt-python
+++ /dev/null
@@ -1 +0,0 @@
-dev-python/libvirt-python single-thread.conf
diff --git a/hosts/iroha/gentoo/package.env/mlt b/hosts/iroha/gentoo/package.env/mlt
new file mode 100644
index 0000000..cbba588
--- /dev/null
+++ b/hosts/iroha/gentoo/package.env/mlt
@@ -0,0 +1 @@
+media-libs/mlt nolto.conf
diff --git a/hosts/iroha/gentoo/package.env/rust b/hosts/iroha/gentoo/package.env/rust
deleted file mode 100644
index 018d177..0000000
--- a/hosts/iroha/gentoo/package.env/rust
+++ /dev/null
@@ -1 +0,0 @@
-dev-lang/rust notmpfs.conf
diff --git a/hosts/iroha/gentoo/package.license/7zip b/hosts/iroha/gentoo/package.license/7zip
new file mode 100644
index 0000000..7e770e1
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/7zip
@@ -0,0 +1 @@
+app-arch/7zip unRAR
diff --git a/hosts/iroha/gentoo/package.license/kernel b/hosts/iroha/gentoo/package.license/kernel
new file mode 100644
index 0000000..348558e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/kernel
@@ -0,0 +1 @@
+sys-kernel/linux-firmware linux-fw-redistributable
diff --git a/hosts/iroha/gentoo/package.license/osu-lazer b/hosts/iroha/gentoo/package.license/osu-lazer
new file mode 100644
index 0000000..351d203
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/osu-lazer
@@ -0,0 +1 @@
+games-arcade/osu-lazer all-rights-reserved
diff --git a/hosts/iroha/gentoo/package.license/steam b/hosts/iroha/gentoo/package.license/steam
new file mode 100644
index 0000000..1e1fb7e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/steam
@@ -0,0 +1 @@
+games-util/steam-launcher ValveSteamLicense
diff --git a/hosts/iroha/gentoo/package.license/unrar b/hosts/iroha/gentoo/package.license/unrar
new file mode 100644
index 0000000..11808d6
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/unrar
@@ -0,0 +1 @@
+app-arch/unrar unRAR
diff --git a/hosts/iroha/gentoo/package.license/xone b/hosts/iroha/gentoo/package.license/xone
new file mode 100644
index 0000000..73ce083
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/xone
@@ -0,0 +1 @@
+games-util/xone MS-TOU
diff --git a/hosts/iroha/gentoo/package.mask/chromium b/hosts/iroha/gentoo/package.mask/chromium
new file mode 100644
index 0000000..e282af3
--- /dev/null
+++ b/hosts/iroha/gentoo/package.mask/chromium
@@ -0,0 +1 @@
+>www-client/chromium-140.0.7339.207
diff --git a/hosts/iroha/gentoo/package.mask/gcc b/hosts/iroha/gentoo/package.mask/gcc
deleted file mode 100644
index 9246290..0000000
--- a/hosts/iroha/gentoo/package.mask/gcc
+++ /dev/null
@@ -1 +0,0 @@
-=sys-devel/gcc-14.1.1_p20240720
diff --git a/hosts/iroha/gentoo/package.mask/python b/hosts/iroha/gentoo/package.mask/python
index 20d7841..af9ebaf 100644
--- a/hosts/iroha/gentoo/package.mask/python
+++ b/hosts/iroha/gentoo/package.mask/python
@@ -1 +1 @@
->=dev-lang/python-3.13
+>=dev-lang/python-3.14.0
diff --git a/hosts/iroha/gentoo/package.mask/xone b/hosts/iroha/gentoo/package.mask/xone
deleted file mode 100644
index 783daaa..0000000
--- a/hosts/iroha/gentoo/package.mask/xone
+++ /dev/null
@@ -1 +0,0 @@
-=games-util/xone-0.3_p20240425
diff --git a/hosts/iroha/gentoo/package.unmask/mesa b/hosts/iroha/gentoo/package.unmask/mesa
new file mode 100644
index 0000000..3a9fb3f
--- /dev/null
+++ b/hosts/iroha/gentoo/package.unmask/mesa
@@ -0,0 +1 @@
+=media-libs/mesa-25.2.5
diff --git a/hosts/iroha/gentoo/package.unmask/screen b/hosts/iroha/gentoo/package.unmask/screen
new file mode 100644
index 0000000..0501830
--- /dev/null
+++ b/hosts/iroha/gentoo/package.unmask/screen
@@ -0,0 +1 @@
+=app-misc/screen-5.0.1
diff --git a/hosts/iroha/gentoo/package.use/00cpu-flags b/hosts/iroha/gentoo/package.use/00cpu-flags
index 102a85d..ea302d2 100644
--- a/hosts/iroha/gentoo/package.use/00cpu-flags
+++ b/hosts/iroha/gentoo/package.use/00cpu-flags
@@ -1 +1 @@
-*/* CPU_FLAGS_X86: aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3
+*/* CPU_FLAGS_X86: aes avx avx2 bmi1 bmi2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3
diff --git a/hosts/iroha/gentoo/package.use/00video-cards b/hosts/iroha/gentoo/package.use/00video-cards
new file mode 100644
index 0000000..320548a
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/00video-cards
@@ -0,0 +1 @@
+*/* VIDEO_CARDS: -* amdgpu radeonsi radeon
diff --git a/hosts/iroha/gentoo/package.use/7zip b/hosts/iroha/gentoo/package.use/7zip
new file mode 100644
index 0000000..8bda43d
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/7zip
@@ -0,0 +1 @@
+app-arch/7zip rar
diff --git a/hosts/iroha/gentoo/package.use/Alien-Build b/hosts/iroha/gentoo/package.use/Alien-Build
new file mode 100644
index 0000000..5f4675c
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/Alien-Build
@@ -0,0 +1 @@
+dev-perl/Alien-Build minimal
diff --git a/hosts/iroha/gentoo/package.use/Path-Tiny b/hosts/iroha/gentoo/package.use/Path-Tiny
new file mode 100644
index 0000000..3901a7b
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/Path-Tiny
@@ -0,0 +1 @@
+dev-perl/Path-Tiny minimal
diff --git a/hosts/iroha/gentoo/package.use/XML-LibXML b/hosts/iroha/gentoo/package.use/XML-LibXML
new file mode 100644
index 0000000..cf021e1
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/XML-LibXML
@@ -0,0 +1 @@
+dev-perl/XML-LibXML minimal
diff --git a/hosts/iroha/gentoo/package.use/ardour b/hosts/iroha/gentoo/package.use/ardour
new file mode 100644
index 0000000..8a493a4
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/ardour
@@ -0,0 +1 @@
+media-sound/ardour jack
diff --git a/hosts/iroha/gentoo/package.use/audacity b/hosts/iroha/gentoo/package.use/audacity
new file mode 100644
index 0000000..3a01bf6
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/audacity
@@ -0,0 +1,5 @@
+media-sound/audacity alsa
+media-libs/portaudio alsa
+media-libs/flac cxx
+x11-libs/wxGTK X
+x11-libs/gtk+ X
diff --git a/hosts/iroha/gentoo/package.use/bemenu b/hosts/iroha/gentoo/package.use/bemenu
new file mode 100644
index 0000000..dc6da75
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/bemenu
@@ -0,0 +1 @@
+dev-libs/bemenu wayland -ncurses
diff --git a/hosts/iroha/gentoo/package.use/binutils b/hosts/iroha/gentoo/package.use/binutils
deleted file mode 100644
index 3dbc67d..0000000
--- a/hosts/iroha/gentoo/package.use/binutils
+++ /dev/null
@@ -1 +0,0 @@
-sys-devel/binutils pgo -cet
diff --git a/hosts/iroha/gentoo/package.use/binutils-libs b/hosts/iroha/gentoo/package.use/binutils-libs
deleted file mode 100644
index d2d9d0d..0000000
--- a/hosts/iroha/gentoo/package.use/binutils-libs
+++ /dev/null
@@ -1 +0,0 @@
-sys-libs/binutils-libs -cet
diff --git a/hosts/iroha/gentoo/package.use/blender b/hosts/iroha/gentoo/package.use/blender
new file mode 100644
index 0000000..f42e33c
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/blender
@@ -0,0 +1,3 @@
+media-gfx/blender wayland -bullet -color-management -cycles -cycles-bin-kernels -embree -ffmpeg -fftw -fluid -gmp -nanovdb -oidn -openpgl -opensubdiv -openvdb -pdf -potrace -pugixml -sndfile -tiff -truetype -webp
+media-libs/freetype brotli
+app-arch/brotli abi_x86_32
diff --git a/hosts/iroha/gentoo/package.use/cachyos-sources b/hosts/iroha/gentoo/package.use/cachyos-sources
index df4a6a9..090a73b 100644
--- a/hosts/iroha/gentoo/package.use/cachyos-sources
+++ b/hosts/iroha/gentoo/package.use/cachyos-sources
@@ -1 +1 @@
-sys-kernel/cachyos-sources -auto-cpu-optimization mnative_amd experimental
+sys-kernel/cachyos-sources mnative_amd experimental -auto-cpu-optimization
diff --git a/hosts/iroha/gentoo/package.use/chromium b/hosts/iroha/gentoo/package.use/chromium
new file mode 100644
index 0000000..c950c10
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/chromium
@@ -0,0 +1,6 @@
+www-client/chromium pulseaudio -hangouts -official -proprietary-codecs -rar -widevine -system-png
+dev-libs/libxml2 icu
+media-libs/harfbuzz icu
+media-libs/libva wayland
+net-libs/nodejs inspector
+dev-libs/icu abi_x86_32
diff --git a/hosts/iroha/gentoo/package.use/chrony b/hosts/iroha/gentoo/package.use/chrony
new file mode 100644
index 0000000..826c085
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/chrony
@@ -0,0 +1 @@
+net-misc/chrony samba
diff --git a/hosts/iroha/gentoo/package.use/clang b/hosts/iroha/gentoo/package.use/clang
new file mode 100644
index 0000000..10ffc6e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/clang
@@ -0,0 +1 @@
+llvm-core/clang -extra -static-analyzer
diff --git a/hosts/iroha/gentoo/package.use/compiler-rt-sanitizers b/hosts/iroha/gentoo/package.use/compiler-rt-sanitizers
index 537ebf4..7a0b680 100644
--- a/hosts/iroha/gentoo/package.use/compiler-rt-sanitizers
+++ b/hosts/iroha/gentoo/package.use/compiler-rt-sanitizers
@@ -1 +1 @@
-sys-libs/compiler-rt-sanitizers -asan -cfi -dfsan -gwp-asan -hwasan -libfuzzer -lsan -memprof -msan -orc -safestack -scudo -tsan -ubsan -xray
+llvm-runtimes/compiler-rt-sanitizers -asan -cfi -dfsan -gwp-asan -hwasan -libfuzzer -lsan -memprof -msan -nsan -orc -safestack -rtsan -scudo -tsan -ubsan -xray
diff --git a/hosts/iroha/gentoo/package.use/cups b/hosts/iroha/gentoo/package.use/cups
new file mode 100644
index 0000000..8471987
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/cups
@@ -0,0 +1 @@
+net-print/cups -acl -pam
diff --git a/hosts/iroha/gentoo/package.use/dbus b/hosts/iroha/gentoo/package.use/dbus
index 8d9a77c..4e2bab7 100644
--- a/hosts/iroha/gentoo/package.use/dbus
+++ b/hosts/iroha/gentoo/package.use/dbus
@@ -1 +1 @@
-sys-apps/dbus user-session
+sys-apps/dbus X user-session
diff --git a/hosts/iroha/gentoo/package.use/doas b/hosts/iroha/gentoo/package.use/doas
new file mode 100644
index 0000000..2d1cc48
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/doas
@@ -0,0 +1 @@
+app-admin/doas persist
diff --git a/hosts/iroha/gentoo/package.use/elfutils b/hosts/iroha/gentoo/package.use/elfutils
new file mode 100644
index 0000000..1c494f6
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/elfutils
@@ -0,0 +1 @@
+dev-libs/elfutils zstd
diff --git a/hosts/iroha/gentoo/package.use/elogind b/hosts/iroha/gentoo/package.use/elogind
deleted file mode 100644
index fe13a8b..0000000
--- a/hosts/iroha/gentoo/package.use/elogind
+++ /dev/null
@@ -1 +0,0 @@
-sys-auth/elogind cgroup-hybrid
diff --git a/hosts/iroha/gentoo/package.use/ffmpeg b/hosts/iroha/gentoo/package.use/ffmpeg
new file mode 100644
index 0000000..7719922
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/ffmpeg
@@ -0,0 +1 @@
+media-video/ffmpeg openh264 vaapi vulkan x265 -fontconfig -gnutls -libass -truetype -xml
diff --git a/hosts/iroha/gentoo/package.use/fftw b/hosts/iroha/gentoo/package.use/fftw
new file mode 100644
index 0000000..0079b61
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/fftw
@@ -0,0 +1 @@
+sci-libs/fftw threads
diff --git a/hosts/iroha/gentoo/package.use/firefox b/hosts/iroha/gentoo/package.use/firefox
new file mode 100644
index 0000000..7b24bc7
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/firefox
@@ -0,0 +1,3 @@
+www-client/firefox wayland dbus pulseaudio hwaccel eme-free openh264 system-pipewire system-png -X -gmp-autoupdate -telemetry
+media-libs/libvpx postproc
+media-libs/libpng apng
diff --git a/hosts/iroha/gentoo/package.use/flac b/hosts/iroha/gentoo/package.use/flac
new file mode 100644
index 0000000..a2cd03c
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/flac
@@ -0,0 +1 @@
+#media-libs/flac -cxx
diff --git a/hosts/iroha/gentoo/package.use/freetype b/hosts/iroha/gentoo/package.use/freetype
index 513c56b..1558dfc 100644
--- a/hosts/iroha/gentoo/package.use/freetype
+++ b/hosts/iroha/gentoo/package.use/freetype
@@ -1 +1 @@
-media-libs/freetype -adobe-cff -bzip2 -cleartype-hinting png
+media-libs/freetype png harfbuzz
diff --git a/hosts/iroha/gentoo/package.use/frei0r-plugins b/hosts/iroha/gentoo/package.use/frei0r-plugins
new file mode 100644
index 0000000..5c9981d
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/frei0r-plugins
@@ -0,0 +1 @@
+media-plugins/frei0r-plugins -facedetect -scale0tilt
diff --git a/hosts/iroha/gentoo/package.use/fwupd b/hosts/iroha/gentoo/package.use/fwupd
index 7c024df..11ecb01 100644
--- a/hosts/iroha/gentoo/package.use/fwupd
+++ b/hosts/iroha/gentoo/package.use/fwupd
@@ -1 +1,4 @@
-sys-apps/fwupd minimal
+sys-apps/fwupd nvme amdgpu
+x11-libs/pango introspection
+dev-libs/glib introspection
+media-libs/harfbuzz introspection
diff --git a/hosts/iroha/gentoo/package.use/gamemode b/hosts/iroha/gentoo/package.use/gamemode
deleted file mode 100644
index e9d4d2b..0000000
--- a/hosts/iroha/gentoo/package.use/gamemode
+++ /dev/null
@@ -1 +0,0 @@
-games-util/gamemode elogind
diff --git a/hosts/iroha/gentoo/package.use/gamescope b/hosts/iroha/gentoo/package.use/gamescope
new file mode 100644
index 0000000..52b33cf
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gamescope
@@ -0,0 +1,2 @@
+gui-wm/gamescope libei
+media-libs/libsdl2 vulkan
diff --git a/hosts/iroha/gentoo/package.use/gcc b/hosts/iroha/gentoo/package.use/gcc
index f301a50..4a5f9cd 100644
--- a/hosts/iroha/gentoo/package.use/gcc
+++ b/hosts/iroha/gentoo/package.use/gcc
@@ -1 +1 @@
-sys-devel/gcc pgo jit graphite -fortran -ssp -default-stack-clash-protection -default-znow -cet
+sys-devel/gcc jit graphite -fortran -default-stack-clash-protection -default-znow
diff --git a/hosts/iroha/gentoo/package.use/gimp b/hosts/iroha/gentoo/package.use/gimp
new file mode 100644
index 0000000..014a44a
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gimp
@@ -0,0 +1,6 @@
+media-gfx/gimp webp
+x11-libs/cairo X
+dev-cpp/cairomm X
+app-text/poppler cairo
+media-libs/gegl cairo
+media-libs/gexiv2 -vala
diff --git a/hosts/iroha/gentoo/package.use/git b/hosts/iroha/gentoo/package.use/git
new file mode 100644
index 0000000..553f74b
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/git
@@ -0,0 +1 @@
+dev-vcs/git -webdav -perl
diff --git a/hosts/iroha/gentoo/package.use/glib-networking b/hosts/iroha/gentoo/package.use/glib-networking
index 77e8850..cb94f6f 100644
--- a/hosts/iroha/gentoo/package.use/glib-networking
+++ b/hosts/iroha/gentoo/package.use/glib-networking
@@ -1 +1 @@
-net-libs/glib-networking -libproxy
+net-libs/glib-networking -libproxy -gnome
diff --git a/hosts/iroha/gentoo/package.use/glibc b/hosts/iroha/gentoo/package.use/glibc
index c64f8b7..330344b 100644
--- a/hosts/iroha/gentoo/package.use/glibc
+++ b/hosts/iroha/gentoo/package.use/glibc
@@ -1 +1 @@
-sys-libs/glibc -multiarch -ssp -profile -cet
+sys-libs/glibc hash-sysv-compat -multiarch -profile
diff --git a/hosts/iroha/gentoo/package.use/glog b/hosts/iroha/gentoo/package.use/glog
new file mode 100644
index 0000000..c19269e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/glog
@@ -0,0 +1 @@
+dev-cpp/glog -libunwind
diff --git a/hosts/iroha/gentoo/package.use/gmp b/hosts/iroha/gentoo/package.use/gmp
index a5b882c..480ec45 100644
--- a/hosts/iroha/gentoo/package.use/gmp
+++ b/hosts/iroha/gentoo/package.use/gmp
@@ -1 +1 @@
-dev-libs/gmp cxx
+dev-libs/gmp -cxx
diff --git a/hosts/iroha/gentoo/package.use/gnupg b/hosts/iroha/gentoo/package.use/gnupg
new file mode 100644
index 0000000..59b068e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gnupg
@@ -0,0 +1 @@
+app-crypt/gnupg user-socket -smartcard -tofu
diff --git a/hosts/iroha/gentoo/package.use/gst-plugins-base b/hosts/iroha/gentoo/package.use/gst-plugins-base
new file mode 100644
index 0000000..b67c340
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gst-plugins-base
@@ -0,0 +1 @@
+media-libs/gst-plugins-base -egl -gles2 -pango
diff --git a/hosts/iroha/gentoo/package.use/gtk b/hosts/iroha/gentoo/package.use/gtk
new file mode 100644
index 0000000..3974801
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gtk
@@ -0,0 +1,2 @@
+gui-libs/gtk wayland
+x11-libs/gtk+:3 wayland
diff --git a/hosts/iroha/gentoo/package.use/harfbuzz b/hosts/iroha/gentoo/package.use/harfbuzz
index 5df986b..64f70fa 100644
--- a/hosts/iroha/gentoo/package.use/harfbuzz
+++ b/hosts/iroha/gentoo/package.use/harfbuzz
@@ -1 +1 @@
-media-libs/harfbuzz -cairo -glib -graphite -introspection -truetype
+media-libs/harfbuzz -cairo -graphite
diff --git a/hosts/iroha/gentoo/package.use/htop b/hosts/iroha/gentoo/package.use/htop
index 926bf14..b7af6cf 100644
--- a/hosts/iroha/gentoo/package.use/htop
+++ b/hosts/iroha/gentoo/package.use/htop
@@ -1 +1 @@
-sys-process/htop lm-sensors
+sys-process/htop lm-sensors caps
diff --git a/hosts/iroha/gentoo/package.use/imv b/hosts/iroha/gentoo/package.use/imv
new file mode 100644
index 0000000..81cca53
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/imv
@@ -0,0 +1 @@
+media-gfx/imv wayland png
diff --git a/hosts/iroha/gentoo/package.use/installkernel b/hosts/iroha/gentoo/package.use/installkernel
new file mode 100644
index 0000000..6622e7a
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/installkernel
@@ -0,0 +1 @@
+sys-kernel/installkernel dracut grub
diff --git a/hosts/iroha/gentoo/package.use/iputils b/hosts/iroha/gentoo/package.use/iputils
deleted file mode 100644
index 4239492..0000000
--- a/hosts/iroha/gentoo/package.use/iputils
+++ /dev/null
@@ -1 +0,0 @@
-net-misc/iputils
diff --git a/hosts/iroha/gentoo/package.use/jack2 b/hosts/iroha/gentoo/package.use/jack2
new file mode 100644
index 0000000..64853f5
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/jack2
@@ -0,0 +1 @@
+media-sound/jack2 -tools
diff --git a/hosts/iroha/gentoo/package.use/kde b/hosts/iroha/gentoo/package.use/kde
new file mode 100644
index 0000000..6727d0d
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/kde
@@ -0,0 +1,3 @@
+kde-frameworks/kconfig dbus qml
+kde-frameworks/kio -kwallet
+kde-frameworks/kwindowsystem X wayland
diff --git a/hosts/iroha/gentoo/package.use/kdenlive b/hosts/iroha/gentoo/package.use/kdenlive
new file mode 100644
index 0000000..3f3e29e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/kdenlive
@@ -0,0 +1,6 @@
+media-libs/mlt qt6 ffmpeg frei0r jack opengl sdl xml
+media-video/ffmpeg X sdl libass
+media-libs/libva X
+media-libs/libsdl2 X jack opengl pulseaudio
+dev-qt/qtbase libproxy
+dev-qt/qt5compat qml
diff --git a/hosts/iroha/gentoo/package.use/kitty b/hosts/iroha/gentoo/package.use/kitty
new file mode 100644
index 0000000..7b5046b
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/kitty
@@ -0,0 +1 @@
+x11-terms/kitty wayland
diff --git a/hosts/iroha/gentoo/package.use/lame b/hosts/iroha/gentoo/package.use/lame
new file mode 100644
index 0000000..904d15a
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/lame
@@ -0,0 +1 @@
+media-sound/lame -frontend
diff --git a/hosts/iroha/gentoo/package.use/libaom b/hosts/iroha/gentoo/package.use/libaom
new file mode 100644
index 0000000..3c852ac
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/libaom
@@ -0,0 +1 @@
+media-libs/libaom -examples
diff --git a/hosts/iroha/gentoo/package.use/libb2 b/hosts/iroha/gentoo/package.use/libb2
new file mode 100644
index 0000000..c55aa22
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/libb2
@@ -0,0 +1 @@
+app-crypt/libb2 native-cflags
diff --git a/hosts/iroha/gentoo/package.use/libdecor b/hosts/iroha/gentoo/package.use/libdecor
new file mode 100644
index 0000000..c33bf19
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/libdecor
@@ -0,0 +1 @@
+gui-libs/libdecor -gtk
diff --git a/hosts/iroha/gentoo/package.use/libdeflate b/hosts/iroha/gentoo/package.use/libdeflate
new file mode 100644
index 0000000..127058a
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/libdeflate
@@ -0,0 +1 @@
+app-arch/libdeflate -utils
diff --git a/hosts/iroha/gentoo/package.use/libdrm b/hosts/iroha/gentoo/package.use/libdrm
deleted file mode 100644
index dcc7d0c..0000000
--- a/hosts/iroha/gentoo/package.use/libdrm
+++ /dev/null
@@ -1 +0,0 @@
-x11-libs/libdrm video_cards_radeon
diff --git a/hosts/iroha/gentoo/package.use/libheif b/hosts/iroha/gentoo/package.use/libheif
new file mode 100644
index 0000000..1ebeb07
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/libheif
@@ -0,0 +1 @@
+media-libs/libheif -aom -webp
diff --git a/hosts/iroha/gentoo/package.use/libnl b/hosts/iroha/gentoo/package.use/libnl
deleted file mode 100644
index 7970840..0000000
--- a/hosts/iroha/gentoo/package.use/libnl
+++ /dev/null
@@ -1 +0,0 @@
-dev-libs/libnl -debug
diff --git a/hosts/iroha/gentoo/package.use/libosinfo b/hosts/iroha/gentoo/package.use/libosinfo
deleted file mode 100644
index ae046f0..0000000
--- a/hosts/iroha/gentoo/package.use/libosinfo
+++ /dev/null
@@ -1 +0,0 @@
-sys-libs/libosinfo -vala
diff --git a/hosts/iroha/gentoo/package.use/libpulse b/hosts/iroha/gentoo/package.use/libpulse
new file mode 100644
index 0000000..b550da9
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/libpulse
@@ -0,0 +1 @@
+media-libs/libpulse -asyncns
diff --git a/hosts/iroha/gentoo/package.use/libsoup b/hosts/iroha/gentoo/package.use/libsoup
deleted file mode 100644
index 3928d12..0000000
--- a/hosts/iroha/gentoo/package.use/libsoup
+++ /dev/null
@@ -1 +0,0 @@
-net-libs/libsoup -vala
diff --git a/hosts/iroha/gentoo/package.use/libvirt b/hosts/iroha/gentoo/package.use/libvirt
index 8a00dab..68912ba 100644
--- a/hosts/iroha/gentoo/package.use/libvirt
+++ b/hosts/iroha/gentoo/package.use/libvirt
@@ -1 +1 @@
-app-emulation/libvirt pcap parted lvm policykit iscsi iscsi-direct virtiofsd
+app-emulation/libvirt pcap parted bash-completion
diff --git a/hosts/iroha/gentoo/package.use/libwebp b/hosts/iroha/gentoo/package.use/libwebp
new file mode 100644
index 0000000..b55f7f9
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/libwebp
@@ -0,0 +1 @@
+media-libs/libwebp -png -jpeg
diff --git a/hosts/iroha/gentoo/package.use/linux-firmware b/hosts/iroha/gentoo/package.use/linux-firmware
new file mode 100644
index 0000000..5d0b8c9
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/linux-firmware
@@ -0,0 +1 @@
+sys-kernel/linux-firmware compress-zstd
diff --git a/hosts/iroha/gentoo/package.use/lua b/hosts/iroha/gentoo/package.use/lua
new file mode 100644
index 0000000..e82452f
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/lua
@@ -0,0 +1 @@
+dev-lang/lua -deprecated
diff --git a/hosts/iroha/gentoo/package.use/lxc b/hosts/iroha/gentoo/package.use/lxc
index 56754cb..0b6d483 100644
--- a/hosts/iroha/gentoo/package.use/lxc
+++ b/hosts/iroha/gentoo/package.use/lxc
@@ -1 +1 @@
-app-containers/lxc caps io-uring -apparmor
+app-containers/lxc io-uring -apparmor
diff --git a/hosts/iroha/gentoo/package.use/lynx b/hosts/iroha/gentoo/package.use/lynx
new file mode 100644
index 0000000..a86dac8
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/lynx
@@ -0,0 +1 @@
+www-client/lynx brotli cjk idn
diff --git a/hosts/iroha/gentoo/package.use/mangohud b/hosts/iroha/gentoo/package.use/mangohud
new file mode 100644
index 0000000..4fad800
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/mangohud
@@ -0,0 +1,2 @@
+games-util/mangohud X wayland
+media-libs/imgui opengl vulkan
diff --git a/hosts/iroha/gentoo/package.use/mesa b/hosts/iroha/gentoo/package.use/mesa
index b05c86a..dab1b17 100644
--- a/hosts/iroha/gentoo/package.use/mesa
+++ b/hosts/iroha/gentoo/package.use/mesa
@@ -1 +1 @@
-media-libs/mesa X llvm osmesa vulkan wayland -lm-sensors -proprietary-codecs -zstd
+media-libs/mesa X wayland llvm vulkan vaapi proprietary-codecs -lm-sensors -osmesa
diff --git a/hosts/iroha/gentoo/package.use/mesa-progs b/hosts/iroha/gentoo/package.use/mesa-progs
index af5654e..ce960fa 100644
--- a/hosts/iroha/gentoo/package.use/mesa-progs
+++ b/hosts/iroha/gentoo/package.use/mesa-progs
@@ -1 +1 @@
-x11-apps/mesa-progs gles2
+x11-apps/mesa-progs wayland gles2 vulkan
diff --git a/hosts/iroha/gentoo/package.use/miscfiles b/hosts/iroha/gentoo/package.use/miscfiles
new file mode 100644
index 0000000..0d07a72
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/miscfiles
@@ -0,0 +1 @@
+sys-apps/miscfiles minimal
diff --git a/hosts/iroha/gentoo/package.use/mpg123-base b/hosts/iroha/gentoo/package.use/mpg123-base
new file mode 100644
index 0000000..34f06f3
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/mpg123-base
@@ -0,0 +1 @@
+media-sound/mpg123-base -ipv6
diff --git a/hosts/iroha/gentoo/package.use/mutt b/hosts/iroha/gentoo/package.use/mutt
new file mode 100644
index 0000000..12f69e6
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/mutt
@@ -0,0 +1 @@
+mail-client/mutt idn
diff --git a/hosts/iroha/gentoo/package.use/ncurses b/hosts/iroha/gentoo/package.use/ncurses
index 3158904..838288c 100644
--- a/hosts/iroha/gentoo/package.use/ncurses
+++ b/hosts/iroha/gentoo/package.use/ncurses
@@ -1 +1 @@
-sys-libs/ncurses -cxx minimal
+sys-libs/ncurses minimal -cxx
diff --git a/hosts/iroha/gentoo/package.use/nfs-utils b/hosts/iroha/gentoo/package.use/nfs-utils
index bfc2b34..2fd1871 100644
--- a/hosts/iroha/gentoo/package.use/nfs-utils
+++ b/hosts/iroha/gentoo/package.use/nfs-utils
@@ -1 +1 @@
-net-fs/nfs-utils -nfsv3 nfsv4
+net-fs/nfs-utils nfsv4 -nfsv3
diff --git a/hosts/iroha/gentoo/package.use/nix b/hosts/iroha/gentoo/package.use/nix
new file mode 100644
index 0000000..e69a887
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/nix
@@ -0,0 +1,4 @@
+sys-apps/nix doc
+dev-libs/boehm-gc cxx
+virtual/libcrypt static-libs
+sys-libs/libxcrypt static-libs
diff --git a/hosts/iroha/gentoo/package.use/nodejs b/hosts/iroha/gentoo/package.use/nodejs
new file mode 100644
index 0000000..a2876f4
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/nodejs
@@ -0,0 +1 @@
+net-libs/nodejs -snapshot
diff --git a/hosts/iroha/gentoo/package.use/noto b/hosts/iroha/gentoo/package.use/noto
new file mode 100644
index 0000000..8564b5e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/noto
@@ -0,0 +1 @@
+media-fonts/noto -extra
diff --git a/hosts/iroha/gentoo/package.use/numpy b/hosts/iroha/gentoo/package.use/numpy
new file mode 100644
index 0000000..a8f01c0
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/numpy
@@ -0,0 +1 @@
+dev-python/numpy -lapack
diff --git a/hosts/iroha/gentoo/package.use/obs-studio b/hosts/iroha/gentoo/package.use/obs-studio
new file mode 100644
index 0000000..b1f6ce1
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/obs-studio
@@ -0,0 +1,5 @@
+media-video/obs-studio pipewire truetype wayland v4l
+media-video/ffmpeg opus x264
+# usage of QX11Application not covered by gentoo deps.
+dev-qt/qtbase X
+x11-libs/libxkbcommon X
diff --git a/hosts/iroha/gentoo/package.use/openimageio b/hosts/iroha/gentoo/package.use/openimageio
new file mode 100644
index 0000000..77a8f15
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/openimageio
@@ -0,0 +1 @@
+media-libs/openimageio -tools -truetype
diff --git a/hosts/iroha/gentoo/package.use/pass b/hosts/iroha/gentoo/package.use/pass
new file mode 100644
index 0000000..58f958b
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/pass
@@ -0,0 +1,2 @@
+app-admin/pass -git -wayland
+media-gfx/qrencode png
diff --git a/hosts/iroha/gentoo/package.use/pinentry b/hosts/iroha/gentoo/package.use/pinentry
new file mode 100644
index 0000000..5df447a
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/pinentry
@@ -0,0 +1,2 @@
+app-crypt/pinentry X gtk wayland
+app-crypt/gcr gtk
diff --git a/hosts/iroha/gentoo/package.use/pipewire b/hosts/iroha/gentoo/package.use/pipewire
index 90c2128..d96c9bd 100644
--- a/hosts/iroha/gentoo/package.use/pipewire
+++ b/hosts/iroha/gentoo/package.use/pipewire
@@ -1 +1,3 @@
-media-video/pipewire pipewire-alsa sound-server
+# gstreamer for virt-viewer.
+media-video/pipewire dbus extra fftw gstreamer pipewire-alsa sound-server jack-client -ssl
+media-sound/jack2 dbus -tools
diff --git a/hosts/iroha/gentoo/package.use/poppler b/hosts/iroha/gentoo/package.use/poppler
new file mode 100644
index 0000000..457e12d
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/poppler
@@ -0,0 +1 @@
+app-text/poppler -cxx -jpeg -jpeg2k -lcms -utils
diff --git a/hosts/iroha/gentoo/package.use/portage-utils b/hosts/iroha/gentoo/package.use/portage-utils
new file mode 100644
index 0000000..75a2d70
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/portage-utils
@@ -0,0 +1 @@
+app-portage/portage-utils -qmanifest
diff --git a/hosts/iroha/gentoo/package.use/prismlauncher b/hosts/iroha/gentoo/package.use/prismlauncher
new file mode 100644
index 0000000..3d61cdd
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/prismlauncher
@@ -0,0 +1 @@
+dev-libs/quazip qt6
diff --git a/hosts/iroha/gentoo/package.use/pulseaudio b/hosts/iroha/gentoo/package.use/pulseaudio
new file mode 100644
index 0000000..4c0008f
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/pulseaudio
@@ -0,0 +1 @@
+media-sound/pulseaudio -daemon
diff --git a/hosts/iroha/gentoo/package.use/python b/hosts/iroha/gentoo/package.use/python
index 10a653e..2ed6d28 100644
--- a/hosts/iroha/gentoo/package.use/python
+++ b/hosts/iroha/gentoo/package.use/python
@@ -1,3 +1,3 @@
-dev-lang/python sqlite pgo -bluetooth
-*/* PYTHON_TARGETS: -* python3_12
-*/* PYTHON_SINGLE_TARGET: -* python3_12
+dev-lang/python sqlite -bluetooth
+*/* PYTHON_TARGETS: -* python3_13
+*/* PYTHON_SINGLE_TARGET: -* python3_13
diff --git a/hosts/iroha/gentoo/package.use/qemu b/hosts/iroha/gentoo/package.use/qemu
index ea27a26..d608fa7 100644
--- a/hosts/iroha/gentoo/package.use/qemu
+++ b/hosts/iroha/gentoo/package.use/qemu
@@ -1 +1 @@
-app-emulation/qemu -doc pin-upstream-blobs -gnutls -sdl -gtk io-uring jemalloc iscsi opengl spice usb usbredir virgl virtfs vnc gnutls -ncurses -oss -png QEMU_SOFTMMU_TARGETS: aarch64 x86_64 m68k i386
+app-emulation/qemu io-uring opengl pulseaudio spice usb usbredir virgl -doc -gnutls -jpeg -ncurses -oss -png -vnc -xattr QEMU_SOFTMMU_TARGETS: aarch64 x86_64 m68k i386
diff --git a/hosts/iroha/gentoo/package.use/qt b/hosts/iroha/gentoo/package.use/qt
new file mode 100644
index 0000000..26292f1
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/qt
@@ -0,0 +1,8 @@
+dev-qt/qtbase wayland icu opengl network sql sqlite ssl vulkan
+dev-qt/qtgui wayland egl libinput udev vulkan -eglfs -gles2-only -png -dbus
+dev-qt/qttools -assistant -linguist -opengl -qdbus -widgets
+dev-qt/qtwidgets -dbus -png
+dev-qt/qt5compat icu
+dev-qt/qtdeclarative opengl vulkan -sql
+dev-qt/qtwayland vulkan
+dev-qt/qtmultimedia X opengl vulkan wayland
diff --git a/hosts/iroha/gentoo/package.use/qtgui b/hosts/iroha/gentoo/package.use/qtgui
deleted file mode 100644
index ecf6b50..0000000
--- a/hosts/iroha/gentoo/package.use/qtgui
+++ /dev/null
@@ -1 +0,0 @@
-dev-qt/qtgui linuxfb -egl -eglfs -gles2-only -png -dbus -libinput -udev
diff --git a/hosts/iroha/gentoo/package.use/qtwidgets b/hosts/iroha/gentoo/package.use/qtwidgets
deleted file mode 100644
index 5b50f8a..0000000
--- a/hosts/iroha/gentoo/package.use/qtwidgets
+++ /dev/null
@@ -1 +0,0 @@
-dev-qt/qtwidgets -dbus -png
diff --git a/hosts/iroha/gentoo/package.use/rubberband b/hosts/iroha/gentoo/package.use/rubberband
new file mode 100644
index 0000000..7244d9c
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/rubberband
@@ -0,0 +1 @@
+media-libs/rubberband -programs
diff --git a/hosts/iroha/gentoo/package.use/serd b/hosts/iroha/gentoo/package.use/serd
new file mode 100644
index 0000000..a2d6678
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/serd
@@ -0,0 +1 @@
+dev-libs/serd -tools
diff --git a/hosts/iroha/gentoo/package.use/spice b/hosts/iroha/gentoo/package.use/spice
index c185229..9d8beff 100644
--- a/hosts/iroha/gentoo/package.use/spice
+++ b/hosts/iroha/gentoo/package.use/spice
@@ -1 +1 @@
-app-emulation/spice lz4
+app-emulation/spice lz4 gstreamer
diff --git a/hosts/iroha/gentoo/package.use/spice-gtk b/hosts/iroha/gentoo/package.use/spice-gtk
new file mode 100644
index 0000000..49f15c2
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/spice-gtk
@@ -0,0 +1 @@
+net-misc/spice-gtk lz4 wayland mjpeg
diff --git a/hosts/iroha/gentoo/package.use/steam b/hosts/iroha/gentoo/package.use/steam
new file mode 100644
index 0000000..6870d10
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/steam
@@ -0,0 +1,78 @@
+games-util/steam-launcher -wayland
+media-libs/vulkan-loader X
+games-util/gamemode abi_x86_32
+games-util/mangohud abi_x86_32
+# for gamemode and mangohud, sort'd
+dev-libs/libfmt abi_x86_32
+dev-libs/libxml2 abi_x86_32
+dev-libs/spdlog abi_x86_32
+dev-util/glslang abi_x86_32
+dev-util/vulkan-utility-libraries abi_x86_32
+media-libs/glew abi_x86_32
+media-libs/glu abi_x86_32
+media-libs/imgui abi_x86_32
+media-libs/implot abi_x86_32
+media-libs/vulkan-layers abi_x86_32
+media-libs/vulkan-loader abi_x86_32
+sys-apps/dbus abi_x86_32
+virtual/glu abi_x86_32
+x11-libs/libICE abi_x86_32
+x11-libs/libSM abi_x86_32
+x11-libs/libXi abi_x86_32
+x11-libs/libXmu abi_x86_32
+x11-libs/libXt abi_x86_32
+x11-libs/libxkbcommon abi_x86_32
+x11-libs/libxkbcommon0 abi_x86_32
+# sort'd
+app-arch/bzip2 abi_x86_32
+app-arch/xz-utils abi_x86_32
+app-arch/zstd abi_x86_32
+dev-libs/elfutils abi_x86_32
+dev-libs/expat abi_x86_32
+dev-libs/glib abi_x86_32
+dev-libs/libffi abi_x86_32
+dev-libs/libpcre2 abi_x86_32
+dev-libs/wayland abi_x86_32
+dev-util/spirv-tools abi_x86_32
+llvm-core/llvm abi_x86_32
+media-libs/flac abi_x86_32
+media-libs/fontconfig abi_x86_32
+media-libs/freetype abi_x86_32
+media-libs/harfbuzz abi_x86_32
+media-libs/libglvnd abi_x86_32
+media-libs/libogg abi_x86_32
+media-libs/libpng abi_x86_32
+media-libs/libpulse abi_x86_32
+media-libs/libsndfile abi_x86_32
+media-libs/libva abi_x86_32
+media-libs/libvorbis abi_x86_32
+media-libs/mesa abi_x86_32
+media-libs/opus abi_x86_32
+media-sound/lame abi_x86_32
+media-sound/mpg123-base abi_x86_32
+sys-apps/systemd-utils abi_x86_32
+sys-apps/util-linux abi_x86_32
+sys-libs/gdbm abi_x86_32
+sys-libs/libcap abi_x86_32
+sys-libs/libudev-compat abi_x86_32
+sys-libs/ncurses abi_x86_32
+sys-libs/pam abi_x86_32
+sys-libs/readline abi_x86_32
+sys-libs/zlib abi_x86_32
+virtual/libelf abi_x86_32
+virtual/libiconv abi_x86_32
+virtual/libintl abi_x86_32
+virtual/libudev abi_x86_32
+virtual/opengl abi_x86_32
+x11-libs/libX11 abi_x86_32
+x11-libs/libXau abi_x86_32
+x11-libs/libXdmcp abi_x86_32
+x11-libs/libXext abi_x86_32
+x11-libs/libXfixes abi_x86_32
+x11-libs/libXrandr abi_x86_32
+x11-libs/libXrender abi_x86_32
+x11-libs/libXxf86vm abi_x86_32
+x11-libs/libdrm abi_x86_32
+x11-libs/libxcb abi_x86_32
+x11-libs/libxshmfence abi_x86_32
+x11-libs/xcb-util-keysyms abi_x86_32
diff --git a/hosts/iroha/gentoo/package.use/sway b/hosts/iroha/gentoo/package.use/sway
new file mode 100644
index 0000000..2652b16
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/sway
@@ -0,0 +1,3 @@
+gui-wm/sway X -swaybar
+media-libs/libepoxy X
+media-libs/mesa X
diff --git a/hosts/iroha/gentoo/package.use/sysklogd b/hosts/iroha/gentoo/package.use/sysklogd
new file mode 100644
index 0000000..4d866b0
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/sysklogd
@@ -0,0 +1 @@
+app-admin/sysklogd logrotate
diff --git a/hosts/iroha/gentoo/package.use/ufw b/hosts/iroha/gentoo/package.use/ufw
deleted file mode 100644
index e892b19..0000000
--- a/hosts/iroha/gentoo/package.use/ufw
+++ /dev/null
@@ -1 +0,0 @@
-net-firewall/ufw
diff --git a/hosts/iroha/gentoo/package.use/vim b/hosts/iroha/gentoo/package.use/vim
index 247b1f2..d361594 100644
--- a/hosts/iroha/gentoo/package.use/vim
+++ b/hosts/iroha/gentoo/package.use/vim
@@ -1 +1 @@
-app-editors/vim minimal -crypt
+app-editors/vim -minimal
diff --git a/hosts/iroha/gentoo/package.use/vim-core b/hosts/iroha/gentoo/package.use/vim-core
deleted file mode 100644
index 2ac6f19..0000000
--- a/hosts/iroha/gentoo/package.use/vim-core
+++ /dev/null
@@ -1 +0,0 @@
-app-editors/vim-core minimal
diff --git a/hosts/iroha/gentoo/package.use/virglrenderer b/hosts/iroha/gentoo/package.use/virglrenderer
new file mode 100644
index 0000000..a22f73d
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/virglrenderer
@@ -0,0 +1 @@
+media-libs/virglrenderer vaapi
diff --git a/hosts/iroha/gentoo/package.use/virt-manager b/hosts/iroha/gentoo/package.use/virt-manager
new file mode 100644
index 0000000..2788806
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/virt-manager
@@ -0,0 +1,12 @@
+app-emulation/virt-manager gui
+app-emulation/libvirt-glib introspection
+sys-libs/libosinfo introspection
+net-libs/gtk-vnc introspection
+net-misc/spice-gtk usbredir introspection
+x11-libs/gtk+:3 introspection
+x11-libs/vte introspection
+sys-auth/polkit introspection
+app-accessibility/at-spi2-core introspection
+x11-libs/gdk-pixbuf introspection
+media-libs/gstreamer introspection
+x11-libs/gtksourceview introspection
diff --git a/hosts/iroha/gentoo/package.use/vulkan-layers b/hosts/iroha/gentoo/package.use/vulkan-layers
new file mode 100644
index 0000000..ad74e5a
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/vulkan-layers
@@ -0,0 +1 @@
+media-libs/vulkan-layers X wayland
diff --git a/hosts/iroha/gentoo/package.use/vulkan-loader b/hosts/iroha/gentoo/package.use/vulkan-loader
new file mode 100644
index 0000000..67fe675
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/vulkan-loader
@@ -0,0 +1 @@
+media-libs/vulkan-loader wayland layers
diff --git a/hosts/iroha/gentoo/package.use/waydroid b/hosts/iroha/gentoo/package.use/waydroid
new file mode 100644
index 0000000..0ac3720
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/waydroid
@@ -0,0 +1,2 @@
+dev-python/pyclip wayland
+sys-libs/libcap static-libs
diff --git a/hosts/iroha/gentoo/package.use/wf-recorder b/hosts/iroha/gentoo/package.use/wf-recorder
new file mode 100644
index 0000000..a3b0f91
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/wf-recorder
@@ -0,0 +1 @@
+gui-apps/wf-recorder pipewire
diff --git a/hosts/iroha/gentoo/package.use/wine b/hosts/iroha/gentoo/package.use/wine
new file mode 100644
index 0000000..1ec80be
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/wine
@@ -0,0 +1 @@
+app-emulation/wine-vanilla pulseaudio udev wayland wow64 -gecko -gstreamer -mingw -xcomposite -abi_x86_32
diff --git a/hosts/iroha/gentoo/package.use/wlroots b/hosts/iroha/gentoo/package.use/wlroots
new file mode 100644
index 0000000..e1a6a62
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/wlroots
@@ -0,0 +1 @@
+gui-libs/wlroots X vulkan lcms liftoff
diff --git a/hosts/iroha/gentoo/package.use/xdg-utils b/hosts/iroha/gentoo/package.use/xdg-utils
new file mode 100644
index 0000000..d2deeb3
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/xdg-utils
@@ -0,0 +1 @@
+app-text/xmlto text
diff --git a/hosts/iroha/gentoo/package.use/zz-autounmask b/hosts/iroha/gentoo/package.use/zz-autounmask
deleted file mode 100644
index d49b2bb..0000000
--- a/hosts/iroha/gentoo/package.use/zz-autounmask
+++ /dev/null
@@ -1,38 +0,0 @@
-# required by app-containers/incus-0.7::gentoo
-# required by incus (argument)
->=dev-libs/raft-0.22.0 lz4
-# required by app-containers/lxc-5.0.3::gentoo[tools,-caps]
-# required by app-containers/incus-0.7::gentoo
-# required by incus (argument)
->=sys-libs/libcap-2.69-r1 static-libs
-# required by sys-boot/woeusb-5.2.4::gentoo
-# required by woeusb (argument)
->=sys-boot/grub-2.12-r4 grub_platforms_pc
-# required by app-containers/incus-6.1::gentoo
-# required by @selected
-# required by @world (argument)
->=dev-util/xdelta-3.0.11-r1 lzma
-# required by app-containers/incus-6.1::gentoo
-# required by @selected
-# required by @world (argument)
->=sys-fs/squashfs-tools-4.6.1 lzma
-# required by net-dns/bind-tools-9.18.0::gentoo
-# required by @selected
-# required by @world (argument)
->=net-dns/bind-9.18.29-r2 idn
-# required by x11-drivers/nvidia-drivers-550.142::gentoo[tools]
-# required by nvidia-drivers (argument)
->=x11-libs/gtk+-3.24.42-r1 X
-# required by x11-libs/pango-1.52.2::gentoo
-# required by x11-libs/gtk+-3.24.42-r1::gentoo
-# required by x11-drivers/nvidia-drivers-550.142::gentoo[tools]
-# required by nvidia-drivers (argument)
->=media-libs/harfbuzz-10.1.0 truetype glib
-# required by x11-libs/gtk+-3.24.42-r1::gentoo
-# required by x11-drivers/nvidia-drivers-550.142::gentoo[tools]
-# required by nvidia-drivers (argument)
->=media-libs/libepoxy-1.5.10-r3 X
-# required by x11-libs/gtk+-3.24.42-r1::gentoo
-# required by x11-drivers/nvidia-drivers-550.142::gentoo[tools]
-# required by nvidia-drivers (argument)
->=x11-libs/cairo-1.18.2-r1 X
diff --git a/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_hostcolor.diff b/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_hostcolor.diff
new file mode 100644
index 0000000..cb4bdb5
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_hostcolor.diff
@@ -0,0 +1,24 @@
+--- a/neofetch 2025-07-24 14:35:25.646237301 -0400
++++ b/neofetch 2025-07-24 14:34:57.393924725 -0400
+@@ -1386,8 +1386,8 @@
+ on) hostname=$(hostname -f) ;;
+ *) hostname=${HOSTNAME:-$(hostname)} ;;
+ esac
+-
+- title=${title_color}${bold}${user}${at_color}@${title_color}${bold}${hostname}
++ host_color=${HOSTCOLOR:-${title_color}}
++ title=${title_color}${bold}${user}${at_color}@${host_color}${bold}${hostname}
+ length=$((${#user} + ${#hostname} + 1))
+ }
+
+@@ -4604,8 +4604,8 @@
+ fi
+
+ string="$(trim "${string//$'\e[0m'}")"
+- length="$(strip_sequences "$string")"
+- length="${#length}"
++ #length="$(strip_sequences "$string")"
++ #length="${#length}"
+
+ # Format the output.
+ string="${string/:/${reset}${colon_color}${separator:=:}${info_color}}"
diff --git a/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_kitty_font.diff b/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_kitty_font.diff
new file mode 100644
index 0000000..5021746
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_kitty_font.diff
@@ -0,0 +1,17 @@
+--- a/neofetch 2025-07-24 14:38:08.897043445 -0400
++++ b/neofetch 2025-07-30 08:35:41.870152352 -0400
+@@ -3301,11 +3301,9 @@
+ ;;
+
+ "kitty"*)
+- kitty_config="$(kitty --debug-config)"
+- [[ "$kitty_config" != *font_family* ]] && return
+-
+- term_font="$(awk '/^font_family|^font_size/ {$1="";gsub("^ *","",$0);print $0}' \
+- <<< "$kitty_config")"
++ term_font="from kitty.cli import *; o = create_default_opts(); \
++ print(f'{o.font_family} {o.font_size}')"
++ term_font="$(kitty +runpy ''"$term_font"'')"
+ ;;
+
+ "konsole" | "yakuake")
diff --git a/hosts/iroha/gentoo/patches/app-misc/ufetch/ufetch_hostcolor.diff b/hosts/iroha/gentoo/patches/app-misc/ufetch/ufetch_hostcolor.diff
new file mode 100644
index 0000000..efccd68
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/app-misc/ufetch/ufetch_hostcolor.diff
@@ -0,0 +1,27 @@
+--- a/ufetch-gentoo 2025-07-28 12:44:02.768490943 -0400
++++ b/ufetch-gentoo 2025-07-28 12:45:58.575888260 -0400
+@@ -64,7 +64,8 @@
+
+ # you can change these
+ lc="${reset}${bold}${magenta}" # labels
+-nc="${reset}${bold}${magenta}" # user and hostname
++nc="${reset}${bold}${magenta}" # user
++hc="${reset}${bold}${cyan}" # hostname
+ ic="${reset}" # info
+ c0="${reset}${bold}${magenta}" # first color
+ c1="${reset}${magenta}" # second color
+@@ -72,13 +73,11 @@
+ ## OUTPUT
+
+ cat <<EOF
+-
+-${c0} .-----. ${nc}${USER}${ic}@${nc}${host}${reset}
++${c0} .-----. ${nc}${USER}${ic}@${hc}${host}${reset}
+ ${c0} .\` _ \`. ${lc}OS: ${ic}${os}${reset}
+ ${c0} \`. (${c1}_) ${c0}\`. ${lc}KERNEL: ${ic}${kernel}${reset}
+ ${c0} \`${c1}. / ${lc}UPTIME: ${ic}${uptime}${reset}
+ ${c1} .\` .\` ${lc}PACKAGES: ${ic}${packages}${reset}
+ ${c1} / .\` ${lc}SHELL: ${ic}${shell}${reset}
+ ${c1} \____.-\` ${lc}${uitype}: ${ic}${ui}${reset}
+-
+ EOF
diff --git a/hosts/iroha/gentoo/patches/games-util/xone/3bc363c48ec38c4a08c4294ca111ed9f75e3e026.diff b/hosts/iroha/gentoo/patches/games-util/xone/3bc363c48ec38c4a08c4294ca111ed9f75e3e026.diff
deleted file mode 100644
index f133faf..0000000
--- a/hosts/iroha/gentoo/patches/games-util/xone/3bc363c48ec38c4a08c4294ca111ed9f75e3e026.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/driver/headset.c b/driver/headset.c
-index 5eada22..4c6e73e 100644
---- a/driver/headset.c
-+++ b/driver/headset.c
-@@ -6,6 +6,7 @@
- #include <linux/module.h>
- #include <linux/hrtimer.h>
- #include <linux/vmalloc.h>
-+#include <linux/version.h>
- #include <sound/core.h>
- #include <sound/initval.h>
- #include <sound/pcm.h>
-@@ -499,8 +500,13 @@ static int gip_headset_probe(struct gip_client *client)
- INIT_DELAYED_WORK(&headset->work_power_on, gip_headset_power_on);
- INIT_WORK(&headset->work_register, gip_headset_register);
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,15,0)
-+ hrtimer_setup(&headset->timer, gip_headset_send_samples,
-+ CLOCK_MONOTONIC, HRTIMER_MODE_REL);
-+#else
- hrtimer_init(&headset->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
- headset->timer.function = gip_headset_send_samples;
-+#endif
-
- err = gip_enable_audio(client);
- if (err)
diff --git a/hosts/iroha/gentoo/patches/games-util/xone/53.diff b/hosts/iroha/gentoo/patches/games-util/xone/53.diff
deleted file mode 100644
index 455452a..0000000
--- a/hosts/iroha/gentoo/patches/games-util/xone/53.diff
+++ /dev/null
@@ -1,75 +0,0 @@
-diff --git a/bus/bus.c b/bus/bus.c
-index 4a6c64f..8dc9bbb 100644
---- a/bus/bus.c
-+++ b/bus/bus.c
-@@ -56,7 +56,11 @@ static struct device_type gip_client_type = {
- .release = gip_client_release,
- };
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0)
- static int gip_bus_match(struct device *dev, struct device_driver *driver)
-+#else
-+static int gip_bus_match(struct device *dev, const struct device_driver *driver)
-+#endif
- {
- struct gip_client *client;
- struct gip_driver *drv;
-diff --git a/driver/headset.c b/driver/headset.c
-index ebee92d..c736351 100644
---- a/driver/headset.c
-+++ b/driver/headset.c
-@@ -5,6 +5,7 @@
-
- #include <linux/module.h>
- #include <linux/hrtimer.h>
-+#include <linux/vmalloc.h>
- #include <sound/core.h>
- #include <sound/initval.h>
- #include <sound/pcm.h>
-@@ -90,13 +91,34 @@ static int gip_headset_pcm_close(struct snd_pcm_substream *sub)
- static int gip_headset_pcm_hw_params(struct snd_pcm_substream *sub,
- struct snd_pcm_hw_params *params)
- {
-- return snd_pcm_lib_alloc_vmalloc_buffer(sub,
-- params_buffer_bytes(params));
-+ struct snd_pcm_runtime *runtime = sub->runtime;
-+ size_t size = params_buffer_bytes(params);
-+
-+ if (runtime->dma_area) {
-+ if (runtime->dma_bytes >= size)
-+ return 0; /* Already large enough */
-+ vfree(runtime->dma_area);
-+ }
-+ runtime->dma_area = vzalloc(size);
-+ if (!runtime->dma_area)
-+ return -ENOMEM;
-+ runtime->dma_bytes = size;
-+ return 1;
- }
-
- static int gip_headset_pcm_hw_free(struct snd_pcm_substream *sub)
- {
-- return snd_pcm_lib_free_vmalloc_buffer(sub);
-+ struct snd_pcm_runtime *runtime = sub->runtime;
-+
-+ vfree(runtime->dma_area);
-+ runtime->dma_area = NULL;
-+ return 0;
-+}
-+
-+static struct page *gip_headset_pcm_get_page(struct snd_pcm_substream *sub,
-+ unsigned long offset)
-+{
-+ return vmalloc_to_page(sub->runtime->dma_area + offset);
- }
-
- static int gip_headset_pcm_prepare(struct snd_pcm_substream *sub)
-@@ -157,7 +179,7 @@ static const struct snd_pcm_ops gip_headset_pcm_ops = {
- .prepare = gip_headset_pcm_prepare,
- .trigger = gip_headset_pcm_trigger,
- .pointer = gip_headset_pcm_pointer,
-- .page = snd_pcm_lib_get_vmalloc_page,
-+ .page = gip_headset_pcm_get_page,
- };
-
- static bool gip_headset_advance_pointer(struct gip_headset_stream *stream,
diff --git a/hosts/iroha/gentoo/patches/games-util/xone/b18d6d5b51c308bca665e6dfe63f31aecb98cce5.diff b/hosts/iroha/gentoo/patches/games-util/xone/b18d6d5b51c308bca665e6dfe63f31aecb98cce5.diff
deleted file mode 100644
index 7b23358..0000000
--- a/hosts/iroha/gentoo/patches/games-util/xone/b18d6d5b51c308bca665e6dfe63f31aecb98cce5.diff
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/driver/gamepad.c b/driver/gamepad.c
-index eec2aeaa..d424774b 100644
---- a/driver/gamepad.c
-+++ b/driver/gamepad.c
-@@ -6,6 +6,7 @@
- #include <linux/module.h>
- #include <linux/uuid.h>
- #include <linux/timer.h>
-+#include <linux/version.h>
-
- #include "common.h"
- #include "../auth/auth.h"
-@@ -207,8 +208,11 @@ static int gip_gamepad_init_input(struct gip_gamepad *gamepad)
- return 0;
-
- err_delete_timer:
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,15,0)
-+ timer_delete_sync(&gamepad->rumble.timer);
-+#else
- del_timer_sync(&gamepad->rumble.timer);
--
-+#endif
- return err;
- }
-
-@@ -335,7 +339,11 @@ static void gip_gamepad_remove(struct gip_client *client)
- {
- struct gip_gamepad *gamepad = dev_get_drvdata(&client->dev);
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,15,0)
-+ timer_delete_sync(&gamepad->rumble.timer);
-+#else
- del_timer_sync(&gamepad->rumble.timer);
-+#endif
- }
-
- static struct gip_driver gip_gamepad_driver = {
diff --git a/hosts/iroha/gentoo/patches/gui-wm/gamescope/1826.diff b/hosts/iroha/gentoo/patches/gui-wm/gamescope/1826.diff
new file mode 100644
index 0000000..69c85e8
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/gui-wm/gamescope/1826.diff
@@ -0,0 +1,84 @@
+diff --git a/src/Backends/WaylandBackend.cpp b/src/Backends/WaylandBackend.cpp
+index 7e68a44fb..65e35f525 100644
+--- a/src/Backends/WaylandBackend.cpp
++++ b/src/Backends/WaylandBackend.cpp
+@@ -2002,24 +2002,32 @@ namespace gamescope
+ // Prefer opaque for composition on the Wayland backend.
+
+ uint32_t u8BitFormat = DRM_FORMAT_INVALID;
+- if ( SupportsFormat( DRM_FORMAT_XRGB8888 ) )
+- u8BitFormat = DRM_FORMAT_XRGB8888;
+- else if ( SupportsFormat( DRM_FORMAT_XBGR8888 ) )
+- u8BitFormat = DRM_FORMAT_XBGR8888;
+- else if ( SupportsFormat( DRM_FORMAT_ARGB8888 ) )
+- u8BitFormat = DRM_FORMAT_ARGB8888;
+- else if ( SupportsFormat( DRM_FORMAT_ABGR8888 ) )
+- u8BitFormat = DRM_FORMAT_ABGR8888;
++ for (int i = 0; i < 2 && u8BitFormat == DRM_FORMAT_INVALID; i++)
++ {
++ bool invalidOnly = i == 0;
++ if ( SupportsFormat( DRM_FORMAT_XRGB8888, invalidOnly ) )
++ u8BitFormat = DRM_FORMAT_XRGB8888;
++ else if ( SupportsFormat( DRM_FORMAT_XBGR8888, invalidOnly ) )
++ u8BitFormat = DRM_FORMAT_XBGR8888;
++ else if ( SupportsFormat( DRM_FORMAT_ARGB8888, invalidOnly ) )
++ u8BitFormat = DRM_FORMAT_ARGB8888;
++ else if ( SupportsFormat( DRM_FORMAT_ABGR8888, invalidOnly ) )
++ u8BitFormat = DRM_FORMAT_ABGR8888;
++ }
+
+ uint32_t u10BitFormat = DRM_FORMAT_INVALID;
+- if ( SupportsFormat( DRM_FORMAT_XBGR2101010 ) )
+- u10BitFormat = DRM_FORMAT_XBGR2101010;
+- else if ( SupportsFormat( DRM_FORMAT_XRGB2101010 ) )
+- u10BitFormat = DRM_FORMAT_XRGB2101010;
+- else if ( SupportsFormat( DRM_FORMAT_ABGR2101010 ) )
+- u10BitFormat = DRM_FORMAT_ABGR2101010;
+- else if ( SupportsFormat( DRM_FORMAT_ARGB2101010 ) )
+- u10BitFormat = DRM_FORMAT_ARGB2101010;
++ for (int i = 0; i < 2 && u10BitFormat == DRM_FORMAT_INVALID; i++)
++ {
++ bool invalidOnly = i == 0;
++ if ( SupportsFormat( DRM_FORMAT_XBGR2101010, invalidOnly ) )
++ u10BitFormat = DRM_FORMAT_XBGR2101010;
++ else if ( SupportsFormat( DRM_FORMAT_XRGB2101010, invalidOnly ) )
++ u10BitFormat = DRM_FORMAT_XRGB2101010;
++ else if ( SupportsFormat( DRM_FORMAT_ABGR2101010, invalidOnly ) )
++ u10BitFormat = DRM_FORMAT_ABGR2101010;
++ else if ( SupportsFormat( DRM_FORMAT_ARGB2101010, invalidOnly ) )
++ u10BitFormat = DRM_FORMAT_ARGB2101010;
++ }
+
+ assert( u8BitFormat != DRM_FORMAT_INVALID );
+
+diff --git a/src/backend.h b/src/backend.h
+index 29219dbc8..2767546cd 100644
+--- a/src/backend.h
++++ b/src/backend.h
+@@ -309,9 +309,11 @@ namespace gamescope
+
+ virtual bool UsesModifiers() const = 0;
+ virtual std::span<const uint64_t> GetSupportedModifiers( uint32_t uDrmFormat ) const = 0;
+- inline bool SupportsFormat( uint32_t uDrmFormat ) const
++ inline bool SupportsFormat( uint32_t uDrmFormat, bool invalidOnly ) const
+ {
+- return Algorithm::Contains( this->GetSupportedModifiers( uDrmFormat ), DRM_FORMAT_MOD_INVALID );
++ if ( invalidOnly )
++ return Algorithm::Contains( this->GetSupportedModifiers( uDrmFormat ), DRM_FORMAT_MOD_INVALID );
++ return !this->GetSupportedModifiers( uDrmFormat ).empty();
+ }
+
+ virtual IBackendConnector *GetCurrentConnector() = 0;
+diff --git a/src/rendervulkan.cpp b/src/rendervulkan.cpp
+index b8412b8fd..f41ef4c9b 100644
+--- a/src/rendervulkan.cpp
++++ b/src/rendervulkan.cpp
+@@ -2814,7 +2814,7 @@ bool vulkan_init_format(VkFormat format, uint32_t drmFormat)
+ }
+ else
+ {
+- if ( GetBackend()->UsesModifiers() && !GetBackend()->SupportsFormat( drmFormat ) )
++ if ( GetBackend()->UsesModifiers() && !GetBackend()->SupportsFormat( drmFormat, true ) )
+ return false;
+
+ wlr_drm_format_set_add( &sampledDRMFormats, drmFormat, DRM_FORMAT_MOD_INVALID );
diff --git a/hosts/iroha/gentoo/patches/gui-wm/gamescope/740_rebase.diff b/hosts/iroha/gentoo/patches/gui-wm/gamescope/740_rebase.diff
new file mode 100644
index 0000000..79a87eb
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/gui-wm/gamescope/740_rebase.diff
@@ -0,0 +1,693 @@
+diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp
+index 1ec2699..26c0afc 100644
+--- a/src/Backends/DRMBackend.cpp
++++ b/src/Backends/DRMBackend.cpp
+@@ -3424,6 +3424,7 @@ namespace gamescope
+ bNeedsFullComposite |= bWasFirstFrame;
+ bNeedsFullComposite |= pFrameInfo->useFSRLayer0;
+ bNeedsFullComposite |= pFrameInfo->useNISLayer0;
++ bNeedsFullComposite |= pFrameInfo->useBICUBICLayer0;
+ bNeedsFullComposite |= pFrameInfo->blurLayer0;
+ bNeedsFullComposite |= bNeedsCompositeFromFilter;
+ bNeedsFullComposite |= !k_bUseCursorPlane && bDrewCursor;
+diff --git a/src/Backends/OpenVRBackend.cpp b/src/Backends/OpenVRBackend.cpp
+index 1f0e822..6756835 100644
+--- a/src/Backends/OpenVRBackend.cpp
++++ b/src/Backends/OpenVRBackend.cpp
+@@ -1431,6 +1431,7 @@ namespace gamescope
+ bNeedsFullComposite |= cv_composite_force;
+ bNeedsFullComposite |= pFrameInfo->useFSRLayer0;
+ bNeedsFullComposite |= pFrameInfo->useNISLayer0;
++ bNeedsFullComposite |= pFrameInfo->useBICUBICLayer0;
+ bNeedsFullComposite |= pFrameInfo->blurLayer0;
+ bNeedsFullComposite |= bNeedsCompositeFromFilter;
+ bNeedsFullComposite |= g_bColorSliderInUse;
+diff --git a/src/Backends/SDLBackend.cpp b/src/Backends/SDLBackend.cpp
+index 2bb8fb0..87b1bed 100644
+--- a/src/Backends/SDLBackend.cpp
++++ b/src/Backends/SDLBackend.cpp
+@@ -736,7 +736,7 @@ namespace gamescope
+ if ( event.key.keysym.mod & KMOD_LGUI )
+ {
+ uint32_t key = SDLScancodeToLinuxKey( event.key.keysym.scancode );
+- const uint32_t shortcutKeys[] = {KEY_F, KEY_N, KEY_B, KEY_U, KEY_Y, KEY_I, KEY_O, KEY_S, KEY_G};
++ const uint32_t shortcutKeys[] = {KEY_F, KEY_N, KEY_B, KEY_K, KEY_U, KEY_Y, KEY_I, KEY_O, KEY_S, KEY_G};
+ const bool isShortcutKey = std::find(std::begin(shortcutKeys), std::end(shortcutKeys), key) != std::end(shortcutKeys);
+ if ( isShortcutKey )
+ {
+@@ -764,6 +764,10 @@ namespace gamescope
+ case KEY_B:
+ g_wantedUpscaleFilter = GamescopeUpscaleFilter::LINEAR;
+ break;
++ case KEY_K:
++ g_wantedDownscaleFilter = (g_wantedDownscaleFilter == GamescopeDownscaleFilter::BICUBIC) ?
++ GamescopeDownscaleFilter::LINEAR : GamescopeDownscaleFilter::BICUBIC;
++ break;
+ case KEY_U:
+ g_wantedUpscaleFilter = (g_wantedUpscaleFilter == GamescopeUpscaleFilter::FSR) ?
+ GamescopeUpscaleFilter::LINEAR : GamescopeUpscaleFilter::FSR;
+diff --git a/src/Backends/WaylandBackend.cpp b/src/Backends/WaylandBackend.cpp
+index 664ed0e..d942cd6 100644
+--- a/src/Backends/WaylandBackend.cpp
++++ b/src/Backends/WaylandBackend.cpp
+@@ -1022,6 +1022,7 @@ namespace gamescope
+ bNeedsFullComposite |= cv_composite_force;
+ bNeedsFullComposite |= pFrameInfo->useFSRLayer0;
+ bNeedsFullComposite |= pFrameInfo->useNISLayer0;
++ bNeedsFullComposite |= pFrameInfo->useBICUBICLayer0;
+ bNeedsFullComposite |= pFrameInfo->blurLayer0;
+ bNeedsFullComposite |= bNeedsCompositeFromFilter;
+ bNeedsFullComposite |= g_bColorSliderInUse;
+@@ -2877,6 +2878,16 @@ namespace gamescope
+ return;
+ }
+
++ case KEY_K:
++ {
++ if ( !bPressed )
++ {
++ g_wantedDownscaleFilter = (g_wantedDownscaleFilter == GamescopeDownscaleFilter::BICUBIC) ?
++ GamescopeDownscaleFilter::LINEAR : GamescopeDownscaleFilter::BICUBIC;
++ }
++ return;
++ }
++
+ case KEY_Y:
+ {
+ if ( !bPressed )
+diff --git a/src/main.cpp b/src/main.cpp
+index cdb35c3..78e072b 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -7,6 +7,7 @@
+ #include <mutex>
+ #include <vector>
+ #include <cstring>
++#include <sstream>
+ #include <string>
+ #if defined(__linux__)
+ #include <sys/capability.h>
+@@ -297,11 +298,14 @@ bool g_bGrabbed = false;
+ float g_mouseSensitivity = 1.0;
+
+ GamescopeUpscaleFilter g_upscaleFilter = GamescopeUpscaleFilter::LINEAR;
++GamescopeDownscaleFilter g_downscaleFilter = GamescopeDownscaleFilter::LINEAR;
+ GamescopeUpscaleScaler g_upscaleScaler = GamescopeUpscaleScaler::AUTO;
+
+ GamescopeUpscaleFilter g_wantedUpscaleFilter = GamescopeUpscaleFilter::LINEAR;
++GamescopeDownscaleFilter g_wantedDownscaleFilter = GamescopeDownscaleFilter::LINEAR;
+ GamescopeUpscaleScaler g_wantedUpscaleScaler = GamescopeUpscaleScaler::AUTO;
+ int g_upscaleFilterSharpness = 2;
++GamescopeBicubicParams g_bicubicParams;
+
+ gamescope::GamescopeModeGeneration g_eGamescopeModeGeneration = gamescope::GAMESCOPE_MODE_GENERATE_CVT;
+
+@@ -406,6 +410,54 @@ static enum GamescopeUpscaleFilter parse_upscaler_filter(const char *str)
+ }
+ }
+
++static enum GamescopeDownscaleFilter parse_downscaler_filter(const char *str)
++{
++ std::string_view arg{str};
++
++ // If the string is just 'bicubic' use default values
++ if ( arg == "bicubic" ) {
++ return GamescopeDownscaleFilter::BICUBIC;
++ }
++
++ // Arguments start after ':'
++ if ( auto search = arg.find(':'); search == std::string::npos ) {
++ fprintf( stderr, "gamescope: invalid argument for --filter=bicubic:float,float\n" );
++ exit(1);
++ } else {
++ arg = std::string_view(arg.data() + search + 1);
++ }
++
++ // Push arguments to stream
++ std::stringstream ss;
++ ss << arg;
++
++ // Validate arguments from stream
++ double b, c;
++ char comma;
++ if ((ss >> b >> comma >> c) && (comma == ',')) {
++ // clamp values
++ b = std::clamp(b, 0.0, 1.0);
++ c = std::clamp(c, 0.0, 1.0);
++ // Ovewrite default global parameters
++ g_bicubicParams.b = b;
++ g_bicubicParams.c = c;
++ // Set downscaler filters
++ return GamescopeDownscaleFilter::BICUBIC;
++ }
++
++ fprintf( stderr, "gamescope: invalid value for --filter\n" );
++ exit(1);
++}
++
++static void parse_filter(const char *str)
++{
++ if (std::string_view{str}.starts_with("bicubic")) {
++ g_wantedDownscaleFilter = parse_downscaler_filter(str);
++ } else {
++ g_wantedUpscaleFilter = parse_upscaler_filter(str);
++ }
++}
++
+ static enum gamescope::GamescopeBackend parse_backend_name(const char *str)
+ {
+ if (strcmp(str, "auto") == 0) {
+@@ -736,7 +788,7 @@ int main(int argc, char **argv)
+ g_wantedUpscaleScaler = parse_upscaler_scaler(optarg);
+ break;
+ case 'F':
+- g_wantedUpscaleFilter = parse_upscaler_filter(optarg);
++ parse_filter(optarg);
+ break;
+ case 'b':
+ g_bBorderlessOutputWindow = true;
+diff --git a/src/main.hpp b/src/main.hpp
+index 2e6fb83..f8cc030 100644
+--- a/src/main.hpp
++++ b/src/main.hpp
+@@ -40,6 +40,18 @@ enum class GamescopeUpscaleFilter : uint32_t
+ FROM_VIEW = 0xF, // internal
+ };
+
++enum class GamescopeDownscaleFilter : uint32_t
++{
++ LINEAR = 0,
++ BICUBIC,
++};
++
++struct GamescopeBicubicParams
++{
++ float b = 0.3f;
++ float c = 0.3f;
++};
++
+ static constexpr bool DoesHardwareSupportUpscaleFilter( GamescopeUpscaleFilter eFilter )
+ {
+ // Could do nearest someday... AMDGPU DC supports custom tap placement to an extent.
+@@ -57,10 +69,13 @@ enum class GamescopeUpscaleScaler : uint32_t
+ };
+
+ extern GamescopeUpscaleFilter g_upscaleFilter;
++extern GamescopeDownscaleFilter g_downscaleFilter;
+ extern GamescopeUpscaleScaler g_upscaleScaler;
+ extern GamescopeUpscaleFilter g_wantedUpscaleFilter;
++extern GamescopeDownscaleFilter g_wantedDownscaleFilter;
+ extern GamescopeUpscaleScaler g_wantedUpscaleScaler;
+ extern int g_upscaleFilterSharpness;
++extern GamescopeBicubicParams g_bicubicParams;
+
+ extern bool g_bBorderlessOutputWindow;
+
+diff --git a/src/meson.build b/src/meson.build
+index a3dfdab..5d3019f 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -66,6 +66,7 @@ shader_src = [
+ 'shaders/cs_composite_rcas.comp',
+ 'shaders/cs_easu.comp',
+ 'shaders/cs_easu_fp16.comp',
++ 'shaders/cs_bicubic.comp',
+ 'shaders/cs_gaussian_blur_horizontal.comp',
+ 'shaders/cs_nis.comp',
+ 'shaders/cs_nis_fp16.comp',
+diff --git a/src/rendervulkan.cpp b/src/rendervulkan.cpp
+index f79d26e..cc7edbb 100644
+--- a/src/rendervulkan.cpp
++++ b/src/rendervulkan.cpp
+@@ -44,6 +44,7 @@
+ #include "cs_composite_rcas.h"
+ #include "cs_easu.h"
+ #include "cs_easu_fp16.h"
++#include "cs_bicubic.h"
+ #include "cs_gaussian_blur_horizontal.h"
+ #include "cs_nis.h"
+ #include "cs_nis_fp16.h"
+@@ -52,6 +53,7 @@
+ #define A_CPU
+ #include "shaders/ffx_a.h"
+ #include "shaders/ffx_fsr1.h"
++#include "shaders/bicubic.h"
+
+ #include "reshade_effect_manager.hpp"
+
+@@ -912,6 +914,7 @@ bool CVulkanDevice::createShaders()
+ SHADER(BLUR_COND, cs_composite_blur_cond);
+ SHADER(BLUR_FIRST_PASS, cs_gaussian_blur_horizontal);
+ SHADER(RCAS, cs_composite_rcas);
++ SHADER(BICUBIC, cs_bicubic);
+ if (m_bSupportsFp16)
+ {
+ SHADER(EASU, cs_easu_fp16);
+@@ -1151,6 +1154,7 @@ void CVulkanDevice::compileAllPipelines()
+ SHADER(BLUR_FIRST_PASS, 1, 2, 1);
+ SHADER(RCAS, k_nMaxLayers, k_nMaxYcbcrMask_ToPreCompile, 1);
+ SHADER(EASU, 1, 1, 1);
++ SHADER(BICUBIC, 1, 1, 1);
+ SHADER(NIS, 1, 1, 1);
+ SHADER(RGB_TO_NV12, 1, 1, 1);
+ #undef SHADER
+@@ -3732,6 +3736,17 @@ struct EasuPushData_t
+ }
+ };
+
++struct BicubicPushData_t
++{
++ uvec4_t Const0;
++ uvec4_t Const1;
++
++ BicubicPushData_t(float B, float C, uint32_t inputX, uint32_t inputY, uint32_t tempX, uint32_t tempY, uint32_t winX, uint32_t winY)
++ {
++ BicubicCon(&Const0.x, &Const1.x, B*10, C*10, inputX, inputY, tempX, tempY, winX, winY);
++ }
++};
++
+ struct RcasPushData_t
+ {
+ uvec2_t u_layer0Offset;
+@@ -3950,7 +3965,51 @@ std::optional<uint64_t> vulkan_composite( struct FrameInfo_t *frameInfo, gamesco
+ for (uint32_t i = 0; i < EOTF_Count; i++)
+ cmdBuffer->bindColorMgmtLuts(i, frameInfo->shaperLut[i], frameInfo->lut3D[i]);
+
+- if ( frameInfo->useFSRLayer0 )
++ if ( frameInfo->useBICUBICLayer0 )
++ {
++ uint32_t inputX = frameInfo->layers[0].tex->width();
++ uint32_t inputY = frameInfo->layers[0].tex->height();
++
++ uint32_t tempX = frameInfo->layers[0].integerWidth();
++ uint32_t tempY = frameInfo->layers[0].integerHeight();
++
++ update_tmp_images(tempX, tempY);
++
++ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BICUBIC, frameInfo->layerCount, frameInfo->ycbcrMask()));
++ cmdBuffer->bindTarget(g_output.tmpOutput);
++ cmdBuffer->bindTexture(0, frameInfo->layers[0].tex);
++ cmdBuffer->setTextureSrgb(0, true);
++ cmdBuffer->setSamplerUnnormalized(0, false);
++ cmdBuffer->setSamplerNearest(0, false);
++ cmdBuffer->uploadConstants<BicubicPushData_t>(g_bicubicParams.b
++ , g_bicubicParams.c
++ , inputX
++ , inputY
++ , tempX
++ , tempY
++ , currentOutputWidth
++ , currentOutputHeight
++ );
++
++ int pixelsPerGroup = 16;
++
++ cmdBuffer->dispatch(div_roundup(tempX, pixelsPerGroup), div_roundup(tempY, pixelsPerGroup));
++
++ struct FrameInfo_t bicFrameInfo = *frameInfo;
++ bicFrameInfo.layers[0].tex = g_output.tmpOutput;
++ bicFrameInfo.layers[0].scale.x = 1.0f;
++ bicFrameInfo.layers[0].scale.y = 1.0f;
++
++ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, bicFrameInfo.layerCount, bicFrameInfo.ycbcrMask()));
++ bind_all_layers(cmdBuffer.get(), &bicFrameInfo);
++ cmdBuffer->bindTarget(compositeImage);
++ cmdBuffer->uploadConstants<BlitPushData_t>(&bicFrameInfo);
++
++ pixelsPerGroup = 8;
++
++ cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup));
++ }
++ else if ( frameInfo->useFSRLayer0 )
+ {
+ uint32_t inputX = frameInfo->layers[0].tex->width();
+ uint32_t inputY = frameInfo->layers[0].tex->height();
+diff --git a/src/rendervulkan.hpp b/src/rendervulkan.hpp
+index 63cc602..4092e82 100644
+--- a/src/rendervulkan.hpp
++++ b/src/rendervulkan.hpp
+@@ -281,6 +281,7 @@ struct FrameInfo_t
+ {
+ bool useFSRLayer0;
+ bool useNISLayer0;
++ bool useBICUBICLayer0;
+ bool bFadingOut;
+ BlurMode blurLayer0;
+ int blurRadius;
+@@ -556,6 +557,7 @@ enum ShaderType {
+ SHADER_TYPE_EASU,
+ SHADER_TYPE_RCAS,
+ SHADER_TYPE_NIS,
++ SHADER_TYPE_BICUBIC,
+ SHADER_TYPE_RGB_TO_NV12,
+
+ SHADER_TYPE_COUNT
+diff --git a/src/shaders/bicubic.h b/src/shaders/bicubic.h
+new file mode 100644
+index 0000000..8117e87
+--- /dev/null
++++ b/src/shaders/bicubic.h
+@@ -0,0 +1,44 @@
++//_____________________________________________________________/\_______________________________________________________________
++//==============================================================================================================================
++//
++//
++// BICUBIC IMAGE SCALING
++//
++//
++//------------------------------------------------------------------------------------------------------------------------------
++////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
++////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
++////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
++//_____________________________________________________________/\_______________________________________________________________
++//==============================================================================================================================
++// CONSTANT SETUP
++//==============================================================================================================================
++// Call to setup required constant values (works on CPU or GPU).
++A_STATIC void BicubicCon(
++outAU4 con0,
++outAU4 con1,
++// Configurable parameters
++AU1 B,
++AU1 C,
++// This the rendered image resolution
++AF1 inputRenderedSizeX,
++AF1 inputRenderedSizeY,
++// This is the resolution of the resource containing the input image (useful for dynamic resolution)
++AF1 inputCurrentSizeX,
++AF1 inputCurrentSizeY,
++// This is the window width / height
++AF1 outputTargetSizeX,
++AF1 outputTargetSizeY)
++{
++ // Input/Output size information
++ con0[0]=AU1_AF1(inputRenderedSizeX);
++ con0[1]=AU1_AF1(inputRenderedSizeY);
++ con0[2]=AU1_AF1(inputCurrentSizeX);
++ con0[3]=AU1_AF1(inputCurrentSizeY);
++
++ // Viewport pixel position to normalized image space.
++ con1[0]=AU1_AF1(outputTargetSizeX);
++ con1[1]=AU1_AF1(outputTargetSizeY);
++ con1[2]=B;
++ con1[3]=C;
++}
+diff --git a/src/shaders/cs_bicubic.comp b/src/shaders/cs_bicubic.comp
+new file mode 100644
+index 0000000..2b6dfb8
+--- /dev/null
++++ b/src/shaders/cs_bicubic.comp
+@@ -0,0 +1,177 @@
++// References
++// https://www.codeproject.com/Articles/236394/Bi-Cubic-and-Bi-Linear-Interpolation-with-GLSL
++// https://stackoverflow.com/questions/13501081/efficient-bicubic-filtering-code-in-glsl
++// https://web.archive.org/web/20180927181721/http://www.java-gaming.org/index.php?topic=35123.0
++// https://gist.github.com/TheRealMJP/c83b8c0f46b63f3a88a5986f4fa982b1
++
++#version 460
++
++#extension GL_GOOGLE_include_directive : require
++#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require
++#extension GL_EXT_scalar_block_layout : require
++
++#include "descriptor_set.h"
++
++layout(
++ local_size_x = 64,
++ local_size_y = 1,
++ local_size_z = 1) in;
++
++// Push constant is a mechanism in modern OpenGL that allows passing small amounts of frequently
++// updated data to the shader without needing to bind a buffer
++layout(binding = 0, scalar)
++uniform layers_t {
++ uvec4 c0, c1;
++};
++
++#define A_GPU 1
++#define A_GLSL 1
++#define A_HALF 1
++#include "ffx_a.h"
++#include "bicubic.h"
++
++// The Mitchell–Netravali filters or BC-splines
++// https://en.wikipedia.org/wiki/Mitchell%E2%80%93Netravali_filters
++// Conditionals are slow in GPU code, so to represent 0 <= f < 1 and 1 <= f < 2
++// the P(d) form shown in the wikipedia page is used
++vec4 mitchellNetravaliWeights(float f, float B, float C)
++{
++ float w0 = ((12.0 - 9.0 * B - 6.0 * C) * pow(f, 3.0)) +
++ ((-18.0 + 12.0 * B + 6.0 * C) * pow(f, 2.0)) +
++ (6.0 - 2.0 * B);
++
++ float w1 = ((-B - 6.0 * C) * pow(f - 1.0, 3.0)) +
++ ((6.0 * B + 30.0 * C) * pow(f - 1.0, 2.0)) +
++ ((-12.0 * B - 48.0 * C) * (f - 1.0)) +
++ (8.0 * B + 24.0 * C);
++
++ float w2 = ((12.0 - 9.0 * B - 6.0 * C) * pow(1.0 - f, 3.0)) +
++ ((-18.0 + 12.0 * B + 6.0 * C) * pow(1.0 - f, 2.0)) +
++ (6.0 - 2.0 * B);
++
++ float w3 = ((-B - 6.0 * C) * pow(2.0 - f, 3.0)) +
++ ((6.0 * B + 30.0 * C) * pow(2.0 - f, 2.0)) +
++ ((-12.0 * B - 48.0 * C) * (2.0 - f)) +
++ (8.0 * B + 24.0 * C);
++
++ return vec4(w0, w1, w2, w3);
++}
++
++// https://stackoverflow.com/questions/13501081/efficient-bicubic-filtering-code-in-glsl
++// https://web.archive.org/web/20180927181721/http://www.java-gaming.org/index.php?topic=35123.0
++// This is an efficient method to implement bicubic filtering, it takes
++// advantage of the fact that the bilinear approach gives the weighted average
++// of a 2x2 area.
++vec4 textureBicubic(sampler2D splr, vec2 texCoords)
++{
++ vec2 texSize = textureSize(splr, 0);
++ vec2 invTexSize = 1.0 / texSize;
++
++ // Converts normalized coordinates into pixel-space coordinate
++ // Example: If texCoords is (0.5, 0.5), and the texture size is (1920, 1080), the result will be
++ // (960, 540)—the center of the texture in pixel space.
++ // Subtracting 0.5 ensures that you're sampling from the center of the texel rather than its corner
++ // Example: Assume we have a 3x3 texture and texCoords = (0.5, 0.5):
++ // [0,0][1,0][2,0]
++ // [0,1][1,1][2,1]
++ // [0,2][1,2][2,2]
++ // texCoords * texSize - 0.5 maps to (1.5, 1.5), which is between (1,1) and (2,2), then
++ // subtracts 0.5 to move it to (1.0, 1.0)—the center of the texel
++ texCoords = texCoords * texSize - 0.5;
++
++ // Get B and C that were pushed from the user input (or default values)
++ float B = c1[2] / 10.0f;
++ float C = c1[3] / 10.0f;
++
++ // Get the fractional part of the coordinates
++ // They are used in Mitchell Netravali's strategy to calculate the interpolation weights,
++ // i.e., how much influence the neighboring vertices have on the final pixel value
++ vec2 fxy = fract(texCoords);
++ texCoords -= fxy;
++
++ // Calculate bicubic weights
++ // These weights represent how much influence each neighboring texel in the 4x4 grid will have
++ // on the final interpolated pixel value
++ vec4 xweights = mitchellNetravaliWeights(fxy.x, B, C);
++ vec4 yweights = mitchellNetravaliWeights(fxy.y, B, C);
++
++ // Modify the current texture coordinates to have an offset in texels for each coordinate
++ // E.g. texCoords + vec(-1.0, 0.0) is a texel to the left
++ // texCoords + vec(1.0, 0.0) is a texel to the right
++ // texCoords + vec(0.0, 1.0) is a texel downwards
++ // texCoords + vec(0.0, -1.0) is a texel upwards
++ vec4 offsetTexels = texCoords.xxyy;
++ offsetTexels += vec2 (-1.0, +1.0).xyxy;
++ // Normalize weights to range between (0,1)
++ // vec4 sumWeights = vec4(xweights.xz + xweights.yw, yweights.xz + yweights.yw);
++ // vec4 normalizedWeights = vec4 (xweights.yw, yweights.yw) / sumWeights;
++ vec4 sumWeights = vec4(xweights.x + xweights.y, xweights.z + xweights.w, yweights.x + yweights.y, yweights.z + yweights.w);
++ vec4 normalizedWeights = vec4 (xweights.y, xweights.w, yweights.y, yweights.w) / sumWeights;
++ // Use the weights to influence the sampling position inside each texel
++ // Each texel has a size from (0,1)
++ vec4 offsetSampler = offsetTexels + normalizedWeights;
++ // Go back to normalized space
++ offsetSampler *= invTexSize.xxyy;
++ // Perform the sampling
++ vec4 sample0 = texture(splr, offsetSampler.xz);
++ vec4 sample1 = texture(splr, offsetSampler.yz);
++ vec4 sample2 = texture(splr, offsetSampler.xw);
++ vec4 sample3 = texture(splr, offsetSampler.yw);
++
++ // Now we perform linear interpolation in the selected points
++ // The mix(a, b, t) function in GLSL performs linear interpolation between a and b based on the
++ // parameter t, t is between 0 and 1
++ // https://registry.khronos.org/OpenGL-Refpages/gl4/html/mix.xhtml
++
++ // Here we want to normalize sx and sy to between 0 and 1 (t value)
++ float sx = sumWeights.x / (sumWeights.x + sumWeights.y);
++ float sy = sumWeights.z / (sumWeights.z + sumWeights.w);
++
++ return mix(
++ mix(sample3, sample2, sx), mix(sample1, sample0, sx)
++ , sy);
++}
++
++void bicPass(uvec2 pos)
++{
++ // Retrieve pushed values
++ AF2 inputRenderedSize = AF2_AU2(c0.xy);
++ AF2 inputCurrentSize = AF2_AU2(c0.zw);
++ AF2 outputTargetSize = AF2_AU2(c1.xy);
++
++ // ARcpF1(x) == 1.0 / x
++ // scaleFactor is the division between the rendered image and the size it should have at the end
++ // E.g.: Rendered 1920x1080, window size is 960x540, then scaleFactor is 2x2
++ AF2 scaleFactor = inputRenderedSize * vec2(ARcpF1(inputCurrentSize.x), ARcpF1(inputCurrentSize.y));
++
++ // The parameter pos of this function is used to iterate over the output image (e.g. 960x540)
++ // The position of the processed pixel should be taken from the rendered image (e.g. 1920x1080)
++ // 10x10 in the output, corresponds to 20x20 in the original image
++ AF2 positionPixel=AF2(pos)*scaleFactor;
++
++ // Normalize the image space to be between [0,1]
++ positionPixel=positionPixel*vec2(ARcpF1(inputRenderedSize.x),ARcpF1(inputRenderedSize.y));
++
++ // Apply the bicubic algorithm in the normalized pixel position
++ vec4 bicPass = textureBicubic(s_samplers[0], positionPixel);
++
++ imageStore(dst, ivec2(pos), bicPass);
++}
++
++
++void main()
++{
++ // AMD recommends to use this swizzle and to process 4 pixel per invocation
++ // for better cache utilisation
++ uvec2 pos = ARmp8x8(gl_LocalInvocationID.x) + uvec2(gl_WorkGroupID.x << 4u, gl_WorkGroupID.y << 4u);
++
++ bicPass(pos);
++ pos.x += 8u;
++ bicPass(pos);
++ pos.y += 8u;
++ bicPass(pos);
++ pos.x -= 8u;
++ bicPass(pos);
++}
++
++/* vim: set expandtab ft=cpp fdm=marker ts=4 sw=4 tw=100 et :*/
+diff --git a/src/shaders/descriptor_set.h b/src/shaders/descriptor_set.h
+index f2b8527..64cc1c9 100644
+--- a/src/shaders/descriptor_set.h
++++ b/src/shaders/descriptor_set.h
+@@ -21,6 +21,7 @@ const int filter_nearest = 1;
+ const int filter_fsr = 2;
+ const int filter_nis = 3;
+ const int filter_pixel = 4;
++const int filter_bicubic = 5;
+ const int filter_from_view = 255;
+
+ const int EOTF_Gamma22 = 0;
+diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp
+index c1d49fd..44cb223 100644
+--- a/src/steamcompmgr.cpp
++++ b/src/steamcompmgr.cpp
+@@ -1015,6 +1015,7 @@ gamescope::ConCommand cc_debug_set_fps_limit( "debug_set_fps_limit", "Set refres
+ static int g_nRuntimeInfoFd = -1;
+
+ bool g_bFSRActive = false;
++bool g_bBicubicActive = false;
+
+ BlurMode g_BlurMode = BLUR_MODE_OFF;
+ BlurMode g_BlurModeOld = BLUR_MODE_OFF;
+@@ -2555,6 +2556,8 @@ paint_all( global_focus_t *pFocus, bool async )
+ paint_window(w, w, &frameInfo, pFocus->cursor, PaintWindowFlag::BasePlane | PaintWindowFlag::DrawBorders, 1.0f, override);
+
+ bool needsScaling = frameInfo.layers[0].scale.x < 0.999f && frameInfo.layers[0].scale.y < 0.999f;
++ bool needsDownScaling = true;
++ frameInfo.useBICUBICLayer0 = g_downscaleFilter == GamescopeDownscaleFilter::BICUBIC && needsDownScaling;
+ frameInfo.useFSRLayer0 = g_upscaleFilter == GamescopeUpscaleFilter::FSR && needsScaling;
+ frameInfo.useNISLayer0 = g_upscaleFilter == GamescopeUpscaleFilter::NIS && needsScaling;
+ }
+@@ -2696,6 +2699,7 @@ paint_all( global_focus_t *pFocus, bool async )
+ }
+
+ frameInfo.useFSRLayer0 = false;
++ frameInfo.useBICUBICLayer0 = false;
+ frameInfo.useNISLayer0 = false;
+ }
+
+@@ -5761,6 +5765,9 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev)
+ g_wantedUpscaleScaler = GamescopeUpscaleScaler::AUTO;
+ g_wantedUpscaleFilter = GamescopeUpscaleFilter::NIS;
+ break;
++ case 5:
++ g_wantedDownscaleFilter = GamescopeDownscaleFilter::BICUBIC;
++ break;
+ }
+ hasRepaint = true;
+ }
+@@ -7391,6 +7398,7 @@ void init_xwayland_ctx(uint32_t serverId, gamescope_xwayland_server_t *xwayland_
+ ctx->atoms.gamescopeLowLatency = XInternAtom( ctx->dpy, "GAMESCOPE_LOW_LATENCY", false );
+
+ ctx->atoms.gamescopeFSRFeedback = XInternAtom( ctx->dpy, "GAMESCOPE_FSR_FEEDBACK", false );
++ ctx->atoms.gamescopeBicubicFeedback = XInternAtom( ctx->dpy, "GAMESCOPE_BICUBIC_FEEDBACK", false );
+
+ ctx->atoms.gamescopeBlurMode = XInternAtom( ctx->dpy, "GAMESCOPE_BLUR_MODE", false );
+ ctx->atoms.gamescopeBlurRadius = XInternAtom( ctx->dpy, "GAMESCOPE_BLUR_RADIUS", false );
+@@ -7645,6 +7653,7 @@ extern int g_nPreferredOutputWidth;
+ extern int g_nPreferredOutputHeight;
+
+ static bool g_bWasFSRActive = false;
++static bool g_bWasBicubicActive = false;
+
+ bool g_bAppWantsHDRCached = false;
+
+@@ -8091,6 +8100,16 @@ steamcompmgr_main(int argc, char **argv)
+ flush_root = true;
+ }
+
++ if ( g_bBicubicActive != g_bWasBicubicActive )
++ {
++ uint32_t active = g_bBicubicActive ? 1 : 0;
++ XChangeProperty( root_ctx->dpy, root_ctx->root, root_ctx->atoms.gamescopeBicubicFeedback, XA_CARDINAL, 32, PropModeReplace,
++ (unsigned char *)&active, 1 );
++
++ g_bWasBicubicActive = g_bBicubicActive;
++ flush_root = true;
++ }
++
+ static gamescope::VirtualConnectorStrategy s_eLastVirtualConnectorStrategy = gamescope::cv_backend_virtual_connector_strategy;
+ gamescope::VirtualConnectorStrategy eVirtualConnectorStrategy = gamescope::cv_backend_virtual_connector_strategy;
+
+@@ -8439,6 +8458,7 @@ steamcompmgr_main(int argc, char **argv)
+ g_bSteamIsActiveWindow = false;
+ g_upscaleScaler = g_wantedUpscaleScaler;
+ g_upscaleFilter = g_wantedUpscaleFilter;
++ g_downscaleFilter = g_wantedDownscaleFilter;
+ }
+
+ // If we're in the middle of a fade, then keep us
+diff --git a/src/steamcompmgr.hpp b/src/steamcompmgr.hpp
+index 98e9272..ea7de13 100644
+--- a/src/steamcompmgr.hpp
++++ b/src/steamcompmgr.hpp
+@@ -129,6 +129,7 @@ extern float focusedWindowOffsetX;
+ extern float focusedWindowOffsetY;
+
+ extern bool g_bFSRActive;
++extern bool g_bBicubicActive;
+
+ extern uint32_t inputCounter;
+ extern uint64_t g_lastWinSeq;
+diff --git a/src/xwayland_ctx.hpp b/src/xwayland_ctx.hpp
+index df2af70..e212a11 100644
+--- a/src/xwayland_ctx.hpp
++++ b/src/xwayland_ctx.hpp
+@@ -164,6 +164,7 @@ struct xwayland_ctx_t final : public gamescope::IWaitable
+ Atom gamescopeLowLatency;
+
+ Atom gamescopeFSRFeedback;
++ Atom gamescopeBicubicFeedback;
+
+ Atom gamescopeBlurMode;
+ Atom gamescopeBlurRadius;
diff --git a/hosts/iroha/gentoo/profile/package.use.force/force.conf b/hosts/iroha/gentoo/profile/package.use.force/force.conf
index 13ec281..d146a47 100644
--- a/hosts/iroha/gentoo/profile/package.use.force/force.conf
+++ b/hosts/iroha/gentoo/profile/package.use.force/force.conf
@@ -1,2 +1,3 @@
-*/* -pie
-sys-devel/gcc -default-stack-clash-protection -default-znow
+sys-devel/gcc -pie -default-stack-clash-protection -default-znow
+llvm-core/clang -pie
+sys-devel/binutils -cet
diff --git a/hosts/iroha/gentoo/profile/use.mask b/hosts/iroha/gentoo/profile/use.mask
deleted file mode 100644
index 30afb9c..0000000
--- a/hosts/iroha/gentoo/profile/use.mask
+++ /dev/null
@@ -1,3 +0,0 @@
--custom-cflags
--pie
--lto
diff --git a/hosts/iroha/gentoo/repos.conf/eselect-repo.conf b/hosts/iroha/gentoo/repos.conf/eselect-repo.conf
index e601b11..bcfb263 100644
--- a/hosts/iroha/gentoo/repos.conf/eselect-repo.conf
+++ b/hosts/iroha/gentoo/repos.conf/eselect-repo.conf
@@ -1,7 +1,20 @@
# created by eselect-repo
-[src_prepare-overlay]
-location = /var/db/repos/src_prepare-overlay
+[steam-overlay]
+location = /var/db/repos/steam-overlay
sync-type = git
-sync-uri = https://github.com/gentoo-mirror/src_prepare-overlay.git
+sync-uri = https://github.com/anyc/steam-overlay.git
+[guru]
+location = /var/db/repos/guru
+sync-type = git
+sync-uri = https://github.com/gentoo-mirror/guru.git
+#priority = 1
+
+[localrepo]
+location = /var/db/repos/localrepo
+
+[tatsh-overlay]
+location = /var/db/repos/tatsh-overlay
+sync-type = git
+sync-uri = https://github.com/Tatsh/tatsh-overlay.git
diff --git a/hosts/iroha/gentoo/repos.conf/gentoo.conf b/hosts/iroha/gentoo/repos.conf/gentoo.conf
new file mode 120000
index 0000000..c5fa1f0
--- /dev/null
+++ b/hosts/iroha/gentoo/repos.conf/gentoo.conf
@@ -0,0 +1 @@
+/usr/share/portage/config/repos.conf \ No newline at end of file
diff --git a/hosts/iroha/gentoo/repos.conf/localrepo.conf b/hosts/iroha/gentoo/repos.conf/localrepo.conf
new file mode 100644
index 0000000..4de0869
--- /dev/null
+++ b/hosts/iroha/gentoo/repos.conf/localrepo.conf
@@ -0,0 +1,2 @@
+[localrepo]
+location = /var/db/repos/localrepo
diff --git a/hosts/iroha/gentoo/repos.conf/nix-guix.conf b/hosts/iroha/gentoo/repos.conf/nix-guix.conf
new file mode 100644
index 0000000..0574edd
--- /dev/null
+++ b/hosts/iroha/gentoo/repos.conf/nix-guix.conf
@@ -0,0 +1,4 @@
+[nix-guix]
+location = /var/db/repos/nix-guix
+sync-type = git
+sync-uri = https://github.com/trofi/nix-guix-gentoo.git