summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.txt2
-rw-r--r--files/email/extract_urlview3
-rw-r--r--files/email/muttrc2
-rw-r--r--files/firefox/user-overrides.js3
-rw-r--r--files/foot/foot.ini2
-rw-r--r--files/gaming/MangoHud.conf2
-rw-r--r--files/gtk/adw-gtk3.txt3
-rw-r--r--files/gtk/gtk3_config.ini1
-rw-r--r--files/gtk/gtkrc-2.03
-rw-r--r--files/gtk/mocu-xcursor.txt3
-rw-r--r--files/shell/bashrc6
-rw-r--r--files/shell/profile2
-rw-r--r--files/sway/monitors2
-rw-r--r--files/vim/after/syntax/c.vim5
-rw-r--r--files/vim/colors/lil_pablo.vim2
-rw-r--r--files/vim/patches/Colorizer_termguicolors.diff18
-rw-r--r--files/vim/vimrc8
-rw-r--r--hosts/iroha/gentoo/make.conf8
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/OpenTabletDriver1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/clinfo1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/firefox4
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/foot1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/gamescope1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/gentoo-sources1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/gimp1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/go1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/kitty3
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/krita1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/lact1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/libdisplay-info1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/libva-intel-media-driver1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/linux-firmware1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/lutris3
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/makemkv1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/mesa3
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/moonlight1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/nvidia-drivers1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/osu-lazer1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/pipewire2
-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/scx2
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/sdl-jstest2
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/sdl2-gamepad-mapper1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/shotcut1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/showmethekey1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/sunshine1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/sway3
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/vim5
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/vkroots1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/wine1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/winetricks1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/wlrobs2
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/wlroots1
-rw-r--r--hosts/iroha/gentoo/package.accept_keywords/wolfssl1
-rw-r--r--hosts/iroha/gentoo/package.env/libsdl21
-rw-r--r--hosts/iroha/gentoo/package.env/mesa2
-rw-r--r--hosts/iroha/gentoo/package.env/rpcs31
-rw-r--r--hosts/iroha/gentoo/package.env/sunshine1
-rw-r--r--hosts/iroha/gentoo/package.license/chromium1
-rw-r--r--hosts/iroha/gentoo/package.license/libva-intel-media-driver1
-rw-r--r--hosts/iroha/gentoo/package.license/makemkv1
-rw-r--r--hosts/iroha/gentoo/package.license/nvidia-drivers1
-rw-r--r--hosts/iroha/gentoo/package.mask/chromium1
-rw-r--r--hosts/iroha/gentoo/package.mask/ffmpeg1
-rw-r--r--hosts/iroha/gentoo/package.mask/nvidia-drivers1
-rw-r--r--hosts/iroha/gentoo/package.unmask/mesa1
-rw-r--r--hosts/iroha/gentoo/package.use/00cpu-flags2
-rw-r--r--hosts/iroha/gentoo/package.use/00video-cards2
-rw-r--r--hosts/iroha/gentoo/package.use/Alien-Build1
-rw-r--r--hosts/iroha/gentoo/package.use/HTTP-CookieJar1
-rw-r--r--hosts/iroha/gentoo/package.use/Net-HTTP1
-rw-r--r--hosts/iroha/gentoo/package.use/Net-SSLeay1
-rw-r--r--hosts/iroha/gentoo/package.use/Path-Tiny1
-rw-r--r--hosts/iroha/gentoo/package.use/Try-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/binutils1
-rw-r--r--hosts/iroha/gentoo/package.use/blender3
-rw-r--r--hosts/iroha/gentoo/package.use/chromium6
-rw-r--r--hosts/iroha/gentoo/package.use/compiler-rt-sanitizers2
-rw-r--r--hosts/iroha/gentoo/package.use/discord1
-rw-r--r--hosts/iroha/gentoo/package.use/elfutils2
-rw-r--r--hosts/iroha/gentoo/package.use/ffmpeg2
-rw-r--r--hosts/iroha/gentoo/package.use/flac1
-rw-r--r--hosts/iroha/gentoo/package.use/gdb1
-rw-r--r--hosts/iroha/gentoo/package.use/gdk-pixbuf1
-rw-r--r--hosts/iroha/gentoo/package.use/gftp1
-rw-r--r--hosts/iroha/gentoo/package.use/gimp7
-rw-r--r--hosts/iroha/gentoo/package.use/gnome-keyring1
-rw-r--r--hosts/iroha/gentoo/package.use/gst-plugins-bad1
-rw-r--r--hosts/iroha/gentoo/package.use/gst-plugins-base2
-rw-r--r--hosts/iroha/gentoo/package.use/gst-plugins-meta1
-rw-r--r--hosts/iroha/gentoo/package.use/harfbuzz2
-rw-r--r--hosts/iroha/gentoo/package.use/kbd1
-rw-r--r--hosts/iroha/gentoo/package.use/kde2
-rw-r--r--hosts/iroha/gentoo/package.use/krita1
-rw-r--r--hosts/iroha/gentoo/package.use/lact3
-rw-r--r--hosts/iroha/gentoo/package.use/librsvg1
-rw-r--r--hosts/iroha/gentoo/package.use/libxml22
-rw-r--r--hosts/iroha/gentoo/package.use/looking-glass1
-rw-r--r--hosts/iroha/gentoo/package.use/moonlight3
-rw-r--r--hosts/iroha/gentoo/package.use/ncurses2
-rw-r--r--hosts/iroha/gentoo/package.use/ngtcp21
-rw-r--r--hosts/iroha/gentoo/package.use/nodejs2
-rw-r--r--hosts/iroha/gentoo/package.use/noto2
-rw-r--r--hosts/iroha/gentoo/package.use/nvidia-drivers6
-rw-r--r--hosts/iroha/gentoo/package.use/obs-studio2
-rw-r--r--hosts/iroha/gentoo/package.use/opencv1
-rw-r--r--hosts/iroha/gentoo/package.use/perl10
-rw-r--r--hosts/iroha/gentoo/package.use/pipewire2
-rw-r--r--hosts/iroha/gentoo/package.use/protobuf1
-rw-r--r--hosts/iroha/gentoo/package.use/protontricks1
-rw-r--r--hosts/iroha/gentoo/package.use/qemu6
-rw-r--r--hosts/iroha/gentoo/package.use/qt4
-rw-r--r--hosts/iroha/gentoo/package.use/rpcs31
-rw-r--r--hosts/iroha/gentoo/package.use/rtmidi1
-rw-r--r--hosts/iroha/gentoo/package.use/rust1
-rw-r--r--hosts/iroha/gentoo/package.use/sdl2-gamepad-mapper1
-rw-r--r--hosts/iroha/gentoo/package.use/steam7
-rw-r--r--hosts/iroha/gentoo/package.use/sunshine2
-rw-r--r--hosts/iroha/gentoo/package.use/talloc1
-rw-r--r--hosts/iroha/gentoo/package.use/vim3
-rw-r--r--hosts/iroha/gentoo/package.use/vulkan-tools1
-rw-r--r--hosts/iroha/gentoo/package.use/wine3
-rw-r--r--hosts/iroha/gentoo/package.use/winetricks1
-rw-r--r--hosts/iroha/gentoo/package.use/wlroots2
-rw-r--r--hosts/iroha/gentoo/package.use/xdg-desktop-portal-gtk1
-rw-r--r--hosts/iroha/gentoo/package.use/xemu1
-rw-r--r--hosts/iroha/gentoo/package.use/yt-dlp1
-rw-r--r--hosts/iroha/gentoo/patches/app-emulation/winetricks/dotnet8_0-update.diff56
-rw-r--r--hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_foot_font.diff14
-rw-r--r--hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_sway_version.diff20
-rw-r--r--hosts/iroha/gentoo/patches/games-util/mangohud/jc42_ram_temp.diff14
-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/patches/media-gfx/gimp/accumulate_scroll_zoom.diff154
-rw-r--r--hosts/iroha/gentoo/profile/package.use.force/force.conf1
-rw-r--r--hosts/iroha/modprobe.d/kvm_amd.conf2
-rw-r--r--hosts/iroha/modules-load.d/kvm_amd.conf1
-rw-r--r--hosts/iroha/modules-load.d/lm_sensors.conf2
-rw-r--r--hosts/iroha/polkit-1/rules.d/20-scx_loader.rules5
-rwxr-xr-xhosts/iroha/scripts/run-sway14
-rw-r--r--hosts/iroha/stow.txt3
l---------hosts/iroha/stow/.extract_urlview1
l---------hosts/iroha/stow/.vim/after1
-rw-r--r--hosts/iroha/sway_input_output8
-rw-r--r--hosts/iroha/sysctl.d/cachyos.conf5
-rw-r--r--nix_archive/flake.lock24
-rw-r--r--nix_archive/hosts/palm/configuration.nix6
-rw-r--r--nix_archive/hosts/palm/programs.nix1
-rw-r--r--nix_archive/nix/programs/foot.nix4
-rw-r--r--nix_archive/nix/programs/nvim.nix4
-rw-r--r--nix_archive/nix/programs/sway.nix11
-rw-r--r--nix_archive/nix/user.nix3
-rwxr-xr-xscripts/desktop/proton-env7
-rwxr-xr-xscripts/desktop/proton-env326
-rw-r--r--themes/iroha/colors.txt39
-rw-r--r--themes/iroha/konsole/iroha.colorscheme109
-rw-r--r--themes/iroha/konsole/iroha.profile8
-rw-r--r--themes/iroha/sway/theme10
-rw-r--r--themes/iroha/wallpaper/41555043_p0.pngbin0 -> 705049 bytes
-rw-r--r--themes/iroha/wallpaper/links.txt2
-rw-r--r--themes/iroha/wallpaper/wallpaper_vert.pngbin0 -> 791386 bytes
-rw-r--r--themes/iroha/wallpaper/wallpaper_vert.xcfbin0 -> 1333682 bytes
165 files changed, 687 insertions, 897 deletions
diff --git a/README.txt b/README.txt
index 3ada7f8..4b239a1 100644
--- a/README.txt
+++ b/README.txt
@@ -1,3 +1,3 @@
-= my dotfiles
+== My dotfiles
// vim: set syntax=asciidoc:
diff --git a/files/email/extract_urlview b/files/email/extract_urlview
new file mode 100644
index 0000000..2856da1
--- /dev/null
+++ b/files/email/extract_urlview
@@ -0,0 +1,3 @@
+HTML_TAGS a,applet,area,blockquote,embed,form,frame,iframe,input,ins,isindex,head,layer,link,object,q,script,xmp
+COMMAND python3 -c "import urllib.parse, sys; print(urllib.parse.unquote(sys.argv[1]))" %s | xargs firefox --new-tab
+NOREVIEW
diff --git a/files/email/muttrc b/files/email/muttrc
index 02bbe61..2423a2d 100644
--- a/files/email/muttrc
+++ b/files/email/muttrc
@@ -56,7 +56,7 @@ mailboxes =INBOX/Junk
mailboxes =INBOX/Archive
set smtp_pass = "`pass andrew@akon.city`"
-set smtp_url = smtp://andrew@akon.city@mail.akon.city/
+set smtp_url = smtps://andrew@akon.city@mail.akon.city/
set header_cache = /var/tmp/mutt
diff --git a/files/firefox/user-overrides.js b/files/firefox/user-overrides.js
index 2f7b701..81e98ff 100644
--- a/files/firefox/user-overrides.js
+++ b/files/firefox/user-overrides.js
@@ -123,3 +123,6 @@ user_pref("browser.tabs.firefox-view-next", false);
// Disable tab preview.
user_pref("browser.tabs.hoverPreview.enabled", false);
user_pref("browser.tabs.hoverPreview.showThumbnails", false);
+
+// Disable AI sidebar..
+user_pref("sidebar.revamp", false);
diff --git a/files/foot/foot.ini b/files/foot/foot.ini
index abfa9aa..a986133 100644
--- a/files/foot/foot.ini
+++ b/files/foot/foot.ini
@@ -10,7 +10,7 @@ lines=8192
delayed-render-lower=11111111
delayed-render-upper=16666666
-[colors]
+[colors-dark]
cursor=000000 eeeeee
foreground=eeeeee
background=000000
diff --git a/files/gaming/MangoHud.conf b/files/gaming/MangoHud.conf
index 03b2396..d054aa4 100644
--- a/files/gaming/MangoHud.conf
+++ b/files/gaming/MangoHud.conf
@@ -1,6 +1,8 @@
#legacy_layout=0
cpu_temp
cpu_mhz
+ram
+ram_temp
vulkan_driver
gpu_name
gpu_power
diff --git a/files/gtk/adw-gtk3.txt b/files/gtk/adw-gtk3.txt
new file mode 100644
index 0000000..15ee079
--- /dev/null
+++ b/files/gtk/adw-gtk3.txt
@@ -0,0 +1,3 @@
+a81780fadfc432be0fc3d89c4ebb41aa28e4f032d42c36f9789c57dd10cfa41c adw-gtk3v6.5.tar.xz
+https://github.com/lassekongo83/adw-gtk3
+https://github.com/lassekongo83/adw-gtk3/releases/tag/v6.5
diff --git a/files/gtk/gtk3_config.ini b/files/gtk/gtk3_config.ini
index f88b4f0..46b45e7 100644
--- a/files/gtk/gtk3_config.ini
+++ b/files/gtk/gtk3_config.ini
@@ -1,4 +1,5 @@
[Settings]
gtk-theme-name = adw-gtk3-dark
gtk-application-prefer-dark-theme = true
+gtk-icon-theme-name = Adwaita
gtk-cursor-theme-name = Mocu-White-Right
diff --git a/files/gtk/gtkrc-2.0 b/files/gtk/gtkrc-2.0
index 9d216a0..ecfed4e 100644
--- a/files/gtk/gtkrc-2.0
+++ b/files/gtk/gtkrc-2.0
@@ -1,2 +1,3 @@
gtk-theme-name = "adw-gtk3-dark"
-gtk-icon-theme-name = "Mocu-White-Right"
+gtk-icon-theme-name = "Adwaita"
+gtk-cursor-theme-name = "Mocu-White-Right"
diff --git a/files/gtk/mocu-xcursor.txt b/files/gtk/mocu-xcursor.txt
new file mode 100644
index 0000000..5f99c51
--- /dev/null
+++ b/files/gtk/mocu-xcursor.txt
@@ -0,0 +1,3 @@
+12a94bc9b7e7c7b1725e30eef80304c3579437c5e4d509b265c71b6d0df9e14f mocu-xcursor-1.1.zip
+https://github.com/sevmeyer/mocu-xcursor
+https://github.com/sevmeyer/mocu-xcursor/releases/tag/1.1
diff --git a/files/shell/bashrc b/files/shell/bashrc
index df595d0..a5a4000 100644
--- a/files/shell/bashrc
+++ b/files/shell/bashrc
@@ -2,11 +2,7 @@ source ~/.profile
gpgconf --launch gpg-agent
-if [ -v $NIX_SHELL ]; then
- complete -cf doas
-else
- complete -F _root_command doas
-fi
+complete -F _root_command doas
export HISTCONTROL=erasedups
export HISTFILE=$HOME/.bash_history
diff --git a/files/shell/profile b/files/shell/profile
index 66b20a7..f4cd2f2 100644
--- a/files/shell/profile
+++ b/files/shell/profile
@@ -4,10 +4,10 @@ unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
+export PYTHON_HISTORY=/tmp/python_history
# Why aren't these set? elogind?
# https://wiki.gentoo.org/wiki/Configuring_a_system_without_elogind
export XDG_CACHE_HOME="/mnt/ssd/cache"
#export XDG_CONFIG_HOME="${HOME}/.config"
#export XDG_DATA_HOME="${HOME}/.local/share"
#export XDG_STATE_HOME="${HOME}/.local/state"
-#export MAIN_MONITOR=DP-2
diff --git a/files/sway/monitors b/files/sway/monitors
index b6fa237..94f0ddf 100644
--- a/files/sway/monitors
+++ b/files/sway/monitors
@@ -1,3 +1,3 @@
set $monitor1 DP-1
set $monitor2 HDMI-A-1
-set $monitor3 DP-2
+set $monitor3 HDMI-A-2
diff --git a/files/vim/after/syntax/c.vim b/files/vim/after/syntax/c.vim
new file mode 100644
index 0000000..318123b
--- /dev/null
+++ b/files/vim/after/syntax/c.vim
@@ -0,0 +1,5 @@
+syn keyword cType u8 u16 u32 u64
+syn keyword cType s8 s16 s32 s64
+syn keyword cType f32 f64
+syn keyword cType ulong uchar
+syn keyword cType array str
diff --git a/files/vim/colors/lil_pablo.vim b/files/vim/colors/lil_pablo.vim
index 4bc3f61..fcf2d93 100644
--- a/files/vim/colors/lil_pablo.vim
+++ b/files/vim/colors/lil_pablo.vim
@@ -10,7 +10,7 @@ set background=dark
hi clear
let g:colors_name = 'lil_pablo'
-" @TODO: 'fg' is not valid for ctermfg/bg, it's 7.
+" @TODO: 'fg' is not valid for ctermfg/bg, it's NONE or 7.
" :%s/gui\(bg\|fg\)=\(#[0-9a-f]*\|NONE\) //g
" :%s/cterm\(bg\|fg\)=\([0-9]*\|NONE\|fg\)\ /cterm\1=\2\ gui\1=##\2##\ /g
" :%s/##NONE##/NONE/g
diff --git a/files/vim/patches/Colorizer_termguicolors.diff b/files/vim/patches/Colorizer_termguicolors.diff
new file mode 100644
index 0000000..b1c2844
--- /dev/null
+++ b/files/vim/patches/Colorizer_termguicolors.diff
@@ -0,0 +1,18 @@
+diff --git a/autoload/Colorizer.vim b/autoload/Colorizer.vim
+index cd3de83..f8de05c 100644
+--- a/autoload/Colorizer.vim
++++ b/autoload/Colorizer.vim
+@@ -2399,9 +2399,13 @@ endfu
+
+ function! Colorizer#ColorToggle() "{{{1
+ if !exists("w:match_list") || empty(w:match_list)
++ echo "Colorizer enabled"
+ call Colorizer#DoColor(0, 1, line('$'))
++ let &termguicolors=1
+ else
+ call Colorizer#ColorOff()
++ let &termguicolors=0
++ redraw | echo "Colorizer disabled"
+ endif
+ endfu
+
diff --git a/files/vim/vimrc b/files/vim/vimrc
index dcf832b..90d3646 100644
--- a/files/vim/vimrc
+++ b/files/vim/vimrc
@@ -1,4 +1,6 @@
-" @TODO: CullSubprojects from sessions command.
+" @TODO:
+" - CullSubprojects from sessions command.
+" - vim82 compat.
" Basic settings.
set nocompatible
@@ -10,6 +12,8 @@ set noshowmode
set updatetime=250
set scrolloff=5
"set lazyredraw
+" Remove possible ESC delay.
+set timeoutlen=1000 ttimeoutlen=0
" Don't ask to save changes when switching buffers.
set hidden
" Use the last buffer instead of the right-most when opening from quickfix.
@@ -21,9 +25,7 @@ set splitright
set splitbelow
" Stop buffers from jumping when opening buffer selection.
set splitkeep=screen
-"set guicursor=n-v-c:block-Cursor,o:hor50,i-ci:hor15,r-cr:hor30,sm:block-Cursor
-set termguicolors
colo lil_pablo
" Syntax and indent from filetype.
diff --git a/hosts/iroha/gentoo/make.conf b/hosts/iroha/gentoo/make.conf
index 0fa679c..69995a2 100644
--- a/hosts/iroha/gentoo/make.conf
+++ b/hosts/iroha/gentoo/make.conf
@@ -1,5 +1,5 @@
WARNING_FLAGS="-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
-COMMON_FLAGS="-O2 -pipe -march=znver2 -mtune=znver2 -fno-semantic-interposition -fomit-frame-pointer -fno-stack-protector -flto ${WARNING_FLAGS}"
+COMMON_FLAGS="-O2 -pipe -march=znver3 -mtune=znver3 -fno-semantic-interposition -fomit-frame-pointer -fno-stack-protector -flto ${WARNING_FLAGS}"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
@@ -13,10 +13,10 @@ CGO_CXXFLAGS="${COMMON_FLAGS}"
CGO_FFLAGS="${COMMON_FLAGS}"
CGO_LDFLAGS="${LDFLAGS}"
-RUSTFLAGS="${RUSTFLAGS} -C target-cpu=znver2"
+RUSTFLAGS="${RUSTFLAGS} -C target-cpu=znver3"
-MAKEOPTS="-j20 -l24"
-EMERGE_DEFAULT_OPTS="--jobs 3"
+MAKEOPTS="-j28 -l30"
+EMERGE_DEFAULT_OPTS="--jobs 2"
RUBY_TARGETS="ruby33"
diff --git a/hosts/iroha/gentoo/package.accept_keywords/OpenTabletDriver b/hosts/iroha/gentoo/package.accept_keywords/OpenTabletDriver
new file mode 100644
index 0000000..40c4399
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/OpenTabletDriver
@@ -0,0 +1 @@
+x11-drivers/OpenTabletDriver ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/clinfo b/hosts/iroha/gentoo/package.accept_keywords/clinfo
new file mode 100644
index 0000000..e5a3361
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/clinfo
@@ -0,0 +1 @@
+dev-util/clinfo ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/firefox b/hosts/iroha/gentoo/package.accept_keywords/firefox
new file mode 100644
index 0000000..2325f6e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/firefox
@@ -0,0 +1,4 @@
+www-client/firefox ~amd64
+www-client/firefox-l10n ~amd64
+dev-libs/nss ~amd64
+dev-libs/nspr ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/foot b/hosts/iroha/gentoo/package.accept_keywords/foot
new file mode 100644
index 0000000..6318e2d
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/foot
@@ -0,0 +1 @@
+gui-apps/foot ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/gamescope b/hosts/iroha/gentoo/package.accept_keywords/gamescope
index f47c27a..c96e904 100644
--- a/hosts/iroha/gentoo/package.accept_keywords/gamescope
+++ b/hosts/iroha/gentoo/package.accept_keywords/gamescope
@@ -1 +1,2 @@
gui-wm/gamescope ~amd64
+media-libs/vkroots ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/gentoo-sources b/hosts/iroha/gentoo/package.accept_keywords/gentoo-sources
new file mode 100644
index 0000000..9932ebe
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/gentoo-sources
@@ -0,0 +1 @@
+sys-kernel/gentoo-sources ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/gimp b/hosts/iroha/gentoo/package.accept_keywords/gimp
new file mode 100644
index 0000000..b6ce579
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/gimp
@@ -0,0 +1 @@
+media-gfx/gimp ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/go b/hosts/iroha/gentoo/package.accept_keywords/go
new file mode 100644
index 0000000..3060f0b
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/go
@@ -0,0 +1 @@
+dev-lang/go ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/kitty b/hosts/iroha/gentoo/package.accept_keywords/kitty
new file mode 100644
index 0000000..4db695a
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/kitty
@@ -0,0 +1,3 @@
+x11-terms/kitty ~amd64
+x11-terms/kitty-shell-integration ~amd64
+x11-terms/kitty-terminfo ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/krita b/hosts/iroha/gentoo/package.accept_keywords/krita
new file mode 100644
index 0000000..72b4bb4
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/krita
@@ -0,0 +1 @@
+media-gfx/krita ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/lact b/hosts/iroha/gentoo/package.accept_keywords/lact
new file mode 100644
index 0000000..433f03f
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/lact
@@ -0,0 +1 @@
+sys-apps/lact ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/libdisplay-info b/hosts/iroha/gentoo/package.accept_keywords/libdisplay-info
new file mode 100644
index 0000000..ebdea52
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/libdisplay-info
@@ -0,0 +1 @@
+media-libs/libdisplay-info ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/libva-intel-media-driver b/hosts/iroha/gentoo/package.accept_keywords/libva-intel-media-driver
new file mode 100644
index 0000000..9207c04
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/libva-intel-media-driver
@@ -0,0 +1 @@
+media-libs/libva-intel-media-driver ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/linux-firmware b/hosts/iroha/gentoo/package.accept_keywords/linux-firmware
new file mode 100644
index 0000000..afa65b3
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/linux-firmware
@@ -0,0 +1 @@
+sys-kernel/linux-firmware ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/lutris b/hosts/iroha/gentoo/package.accept_keywords/lutris
deleted file mode 100644
index e1a74f0..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/lutris
+++ /dev/null
@@ -1,3 +0,0 @@
-games-util/lutris ~amd64
-dev-python/pypresence ~amd64
-dev-python/moddb ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/makemkv b/hosts/iroha/gentoo/package.accept_keywords/makemkv
new file mode 100644
index 0000000..08c2506
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/makemkv
@@ -0,0 +1 @@
+media-video/makemkv ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/mesa b/hosts/iroha/gentoo/package.accept_keywords/mesa
index 400baaf..2391f03 100644
--- a/hosts/iroha/gentoo/package.accept_keywords/mesa
+++ b/hosts/iroha/gentoo/package.accept_keywords/mesa
@@ -1 +1,2 @@
-media-libs/mesa ~amd64
+media-libs/mesa **
+dev-util/mesa_clc **
diff --git a/hosts/iroha/gentoo/package.accept_keywords/moonlight b/hosts/iroha/gentoo/package.accept_keywords/moonlight
new file mode 100644
index 0000000..eb79435
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/moonlight
@@ -0,0 +1 @@
+net-misc/moonlight ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/nvidia-drivers b/hosts/iroha/gentoo/package.accept_keywords/nvidia-drivers
new file mode 100644
index 0000000..42addc2
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/nvidia-drivers
@@ -0,0 +1 @@
+x11-drivers/nvidia-drivers ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/osu-lazer b/hosts/iroha/gentoo/package.accept_keywords/osu-lazer
deleted file mode 100644
index ba18a23..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/osu-lazer
+++ /dev/null
@@ -1 +0,0 @@
-games-arcade/osu-lazer ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/pipewire b/hosts/iroha/gentoo/package.accept_keywords/pipewire
new file mode 100644
index 0000000..21fe09b
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/pipewire
@@ -0,0 +1,2 @@
+media-video/pipewire ~amd64
+media-video/wireplumber ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/rpcs3 b/hosts/iroha/gentoo/package.accept_keywords/rpcs3
deleted file mode 100644
index c35c56c..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/rpcs3
+++ /dev/null
@@ -1 +0,0 @@
-games-emulation/rpcs3 ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/ryujinx b/hosts/iroha/gentoo/package.accept_keywords/ryujinx
deleted file mode 100644
index 4121201..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/ryujinx
+++ /dev/null
@@ -1 +0,0 @@
-games-emulation/ryujinx ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/scx b/hosts/iroha/gentoo/package.accept_keywords/scx
new file mode 100644
index 0000000..2ad83d4
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/scx
@@ -0,0 +1,2 @@
+sys-kernel/scx ~amd64
+sys-kernel/scx-loader ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/sdl-jstest b/hosts/iroha/gentoo/package.accept_keywords/sdl-jstest
new file mode 100644
index 0000000..429b34c
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/sdl-jstest
@@ -0,0 +1,2 @@
+dev-util/sdl-jstest ~amd64
+dev-build/tinycmmc ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/sdl2-gamepad-mapper b/hosts/iroha/gentoo/package.accept_keywords/sdl2-gamepad-mapper
new file mode 100644
index 0000000..b589178
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/sdl2-gamepad-mapper
@@ -0,0 +1 @@
+games-util/sdl2-gamepad-mapper ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/shotcut b/hosts/iroha/gentoo/package.accept_keywords/shotcut
deleted file mode 100644
index e383b00..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/shotcut
+++ /dev/null
@@ -1 +0,0 @@
-media-video/shotcut ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/showmethekey b/hosts/iroha/gentoo/package.accept_keywords/showmethekey
new file mode 100644
index 0000000..3152543
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/showmethekey
@@ -0,0 +1 @@
+gui-apps/showmethekey ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/sunshine b/hosts/iroha/gentoo/package.accept_keywords/sunshine
new file mode 100644
index 0000000..908e3d4
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/sunshine
@@ -0,0 +1 @@
+net-misc/sunshine ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/sway b/hosts/iroha/gentoo/package.accept_keywords/sway
index 75868de..db1d2f6 100644
--- a/hosts/iroha/gentoo/package.accept_keywords/sway
+++ b/hosts/iroha/gentoo/package.accept_keywords/sway
@@ -1 +1,2 @@
-gui-wm/sway ~amd64
+gui-wm/sway **
+app-text/scdoc **
diff --git a/hosts/iroha/gentoo/package.accept_keywords/vim b/hosts/iroha/gentoo/package.accept_keywords/vim
index ee0bab1..e20e551 100644
--- a/hosts/iroha/gentoo/package.accept_keywords/vim
+++ b/hosts/iroha/gentoo/package.accept_keywords/vim
@@ -1,2 +1,3 @@
-app-editors/vim ** ~amd64
-app-editors/vim-core ** ~amd64
+app-editors/vim ~amd64
+app-editors/vim-core ~amd64
+dev-util/xxd ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/vkroots b/hosts/iroha/gentoo/package.accept_keywords/vkroots
deleted file mode 100644
index f7194bc..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/vkroots
+++ /dev/null
@@ -1 +0,0 @@
-media-libs/vkroots ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/wine b/hosts/iroha/gentoo/package.accept_keywords/wine
new file mode 100644
index 0000000..6e8ac75
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/wine
@@ -0,0 +1 @@
+app-emulation/wine-staging ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/winetricks b/hosts/iroha/gentoo/package.accept_keywords/winetricks
new file mode 100644
index 0000000..5eb04cd
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/winetricks
@@ -0,0 +1 @@
+app-emulation/winetricks ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/wlrobs b/hosts/iroha/gentoo/package.accept_keywords/wlrobs
index 872bbc3..ca31a51 100644
--- a/hosts/iroha/gentoo/package.accept_keywords/wlrobs
+++ b/hosts/iroha/gentoo/package.accept_keywords/wlrobs
@@ -1 +1 @@
-media-video/wlrobs ** ~amd64
+media-video/wlrobs ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/wlroots b/hosts/iroha/gentoo/package.accept_keywords/wlroots
new file mode 100644
index 0000000..5d7457d
--- /dev/null
+++ b/hosts/iroha/gentoo/package.accept_keywords/wlroots
@@ -0,0 +1 @@
+gui-libs/wlroots ~amd64
diff --git a/hosts/iroha/gentoo/package.accept_keywords/wolfssl b/hosts/iroha/gentoo/package.accept_keywords/wolfssl
deleted file mode 100644
index d3ea8d3..0000000
--- a/hosts/iroha/gentoo/package.accept_keywords/wolfssl
+++ /dev/null
@@ -1 +0,0 @@
-dev-libs/wolfssl ~amd64
diff --git a/hosts/iroha/gentoo/package.env/libsdl2 b/hosts/iroha/gentoo/package.env/libsdl2
new file mode 100644
index 0000000..331064f
--- /dev/null
+++ b/hosts/iroha/gentoo/package.env/libsdl2
@@ -0,0 +1 @@
+media-libs/libsdl2 nolto.conf
diff --git a/hosts/iroha/gentoo/package.env/mesa b/hosts/iroha/gentoo/package.env/mesa
new file mode 100644
index 0000000..14e44de
--- /dev/null
+++ b/hosts/iroha/gentoo/package.env/mesa
@@ -0,0 +1,2 @@
+media-libs/mesa nolto.conf
+dev-util/mesa_clc nolto.conf
diff --git a/hosts/iroha/gentoo/package.env/rpcs3 b/hosts/iroha/gentoo/package.env/rpcs3
new file mode 100644
index 0000000..e75cdc7
--- /dev/null
+++ b/hosts/iroha/gentoo/package.env/rpcs3
@@ -0,0 +1 @@
+games-emulation/rpcs3 nolto.conf
diff --git a/hosts/iroha/gentoo/package.env/sunshine b/hosts/iroha/gentoo/package.env/sunshine
new file mode 100644
index 0000000..03eeb71
--- /dev/null
+++ b/hosts/iroha/gentoo/package.env/sunshine
@@ -0,0 +1 @@
+net-misc/sunshine nolto.conf
diff --git a/hosts/iroha/gentoo/package.license/chromium b/hosts/iroha/gentoo/package.license/chromium
new file mode 100644
index 0000000..16c0c01
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/chromium
@@ -0,0 +1 @@
+www-client/chromium unRAR
diff --git a/hosts/iroha/gentoo/package.license/libva-intel-media-driver b/hosts/iroha/gentoo/package.license/libva-intel-media-driver
new file mode 100644
index 0000000..46b3a91
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/libva-intel-media-driver
@@ -0,0 +1 @@
+media-libs/libva-intel-media-driver no-source-code
diff --git a/hosts/iroha/gentoo/package.license/makemkv b/hosts/iroha/gentoo/package.license/makemkv
new file mode 100644
index 0000000..b2d7f79
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/makemkv
@@ -0,0 +1 @@
+media-video/makemkv MakeMKV-EULA
diff --git a/hosts/iroha/gentoo/package.license/nvidia-drivers b/hosts/iroha/gentoo/package.license/nvidia-drivers
new file mode 100644
index 0000000..b76d8a2
--- /dev/null
+++ b/hosts/iroha/gentoo/package.license/nvidia-drivers
@@ -0,0 +1 @@
+x11-drivers/nvidia-drivers NVIDIA-2025
diff --git a/hosts/iroha/gentoo/package.mask/chromium b/hosts/iroha/gentoo/package.mask/chromium
deleted file mode 100644
index e282af3..0000000
--- a/hosts/iroha/gentoo/package.mask/chromium
+++ /dev/null
@@ -1 +0,0 @@
->www-client/chromium-140.0.7339.207
diff --git a/hosts/iroha/gentoo/package.mask/ffmpeg b/hosts/iroha/gentoo/package.mask/ffmpeg
new file mode 100644
index 0000000..0da2507
--- /dev/null
+++ b/hosts/iroha/gentoo/package.mask/ffmpeg
@@ -0,0 +1 @@
+>=media-video/ffmpeg-8.0.0
diff --git a/hosts/iroha/gentoo/package.mask/nvidia-drivers b/hosts/iroha/gentoo/package.mask/nvidia-drivers
new file mode 100644
index 0000000..673c6ac
--- /dev/null
+++ b/hosts/iroha/gentoo/package.mask/nvidia-drivers
@@ -0,0 +1 @@
+>=x11-drivers/nvidia-drivers-590
diff --git a/hosts/iroha/gentoo/package.unmask/mesa b/hosts/iroha/gentoo/package.unmask/mesa
deleted file mode 100644
index 3a9fb3f..0000000
--- a/hosts/iroha/gentoo/package.unmask/mesa
+++ /dev/null
@@ -1 +0,0 @@
-=media-libs/mesa-25.2.5
diff --git a/hosts/iroha/gentoo/package.use/00cpu-flags b/hosts/iroha/gentoo/package.use/00cpu-flags
index ea302d2..709cc7f 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 bmi1 bmi2 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 vpclmulqdq
diff --git a/hosts/iroha/gentoo/package.use/00video-cards b/hosts/iroha/gentoo/package.use/00video-cards
index 320548a..7bcbcfd 100644
--- a/hosts/iroha/gentoo/package.use/00video-cards
+++ b/hosts/iroha/gentoo/package.use/00video-cards
@@ -1 +1 @@
-*/* VIDEO_CARDS: -* amdgpu radeonsi radeon
+*/* VIDEO_CARDS: -* amdgpu radeonsi radeon i915 intel
diff --git a/hosts/iroha/gentoo/package.use/Alien-Build b/hosts/iroha/gentoo/package.use/Alien-Build
deleted file mode 100644
index 5f4675c..0000000
--- a/hosts/iroha/gentoo/package.use/Alien-Build
+++ /dev/null
@@ -1 +0,0 @@
-dev-perl/Alien-Build minimal
diff --git a/hosts/iroha/gentoo/package.use/HTTP-CookieJar b/hosts/iroha/gentoo/package.use/HTTP-CookieJar
deleted file mode 100644
index 534881d..0000000
--- a/hosts/iroha/gentoo/package.use/HTTP-CookieJar
+++ /dev/null
@@ -1 +0,0 @@
-dev-perl/HTTP-CookieJar minimal
diff --git a/hosts/iroha/gentoo/package.use/Net-HTTP b/hosts/iroha/gentoo/package.use/Net-HTTP
deleted file mode 100644
index d2a50dc..0000000
--- a/hosts/iroha/gentoo/package.use/Net-HTTP
+++ /dev/null
@@ -1 +0,0 @@
-dev-perl/Net-HTTP minimal
diff --git a/hosts/iroha/gentoo/package.use/Net-SSLeay b/hosts/iroha/gentoo/package.use/Net-SSLeay
deleted file mode 100644
index 4f5f12b..0000000
--- a/hosts/iroha/gentoo/package.use/Net-SSLeay
+++ /dev/null
@@ -1 +0,0 @@
-dev-perl/Net-SSLeay minimal
diff --git a/hosts/iroha/gentoo/package.use/Path-Tiny b/hosts/iroha/gentoo/package.use/Path-Tiny
deleted file mode 100644
index 3901a7b..0000000
--- a/hosts/iroha/gentoo/package.use/Path-Tiny
+++ /dev/null
@@ -1 +0,0 @@
-dev-perl/Path-Tiny minimal
diff --git a/hosts/iroha/gentoo/package.use/Try-Tiny b/hosts/iroha/gentoo/package.use/Try-Tiny
deleted file mode 100644
index 95e2e1a..0000000
--- a/hosts/iroha/gentoo/package.use/Try-Tiny
+++ /dev/null
@@ -1 +0,0 @@
-dev-perl/Try-Tiny minimal
diff --git a/hosts/iroha/gentoo/package.use/XML-LibXML b/hosts/iroha/gentoo/package.use/XML-LibXML
deleted file mode 100644
index cf021e1..0000000
--- a/hosts/iroha/gentoo/package.use/XML-LibXML
+++ /dev/null
@@ -1 +0,0 @@
-dev-perl/XML-LibXML minimal
diff --git a/hosts/iroha/gentoo/package.use/ardour b/hosts/iroha/gentoo/package.use/ardour
deleted file mode 100644
index 8a493a4..0000000
--- a/hosts/iroha/gentoo/package.use/ardour
+++ /dev/null
@@ -1 +0,0 @@
-media-sound/ardour jack
diff --git a/hosts/iroha/gentoo/package.use/binutils b/hosts/iroha/gentoo/package.use/binutils
new file mode 100644
index 0000000..cfb09df
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/binutils
@@ -0,0 +1 @@
+sys-devel/binutils -debuginfod
diff --git a/hosts/iroha/gentoo/package.use/blender b/hosts/iroha/gentoo/package.use/blender
deleted file mode 100644
index f42e33c..0000000
--- a/hosts/iroha/gentoo/package.use/blender
+++ /dev/null
@@ -1,3 +0,0 @@
-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/chromium b/hosts/iroha/gentoo/package.use/chromium
deleted file mode 100644
index c950c10..0000000
--- a/hosts/iroha/gentoo/package.use/chromium
+++ /dev/null
@@ -1,6 +0,0 @@
-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/compiler-rt-sanitizers b/hosts/iroha/gentoo/package.use/compiler-rt-sanitizers
index 7a0b680..ecbee96 100644
--- a/hosts/iroha/gentoo/package.use/compiler-rt-sanitizers
+++ b/hosts/iroha/gentoo/package.use/compiler-rt-sanitizers
@@ -1 +1 @@
-llvm-runtimes/compiler-rt-sanitizers -asan -cfi -dfsan -gwp-asan -hwasan -libfuzzer -lsan -memprof -msan -nsan -orc -safestack -rtsan -scudo -tsan -ubsan -xray
+llvm-runtimes/compiler-rt-sanitizers cfi -asan -dfsan -gwp-asan -hwasan -libfuzzer -lsan -memprof -msan -nsan -orc -safestack -rtsan -scudo -tsan -ubsan -xray
diff --git a/hosts/iroha/gentoo/package.use/discord b/hosts/iroha/gentoo/package.use/discord
new file mode 100644
index 0000000..ecd4f5b
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/discord
@@ -0,0 +1 @@
+net-im/discord wayland
diff --git a/hosts/iroha/gentoo/package.use/elfutils b/hosts/iroha/gentoo/package.use/elfutils
index 1c494f6..8ddc184 100644
--- a/hosts/iroha/gentoo/package.use/elfutils
+++ b/hosts/iroha/gentoo/package.use/elfutils
@@ -1 +1 @@
-dev-libs/elfutils zstd
+dev-libs/elfutils zstd -debuginfod
diff --git a/hosts/iroha/gentoo/package.use/ffmpeg b/hosts/iroha/gentoo/package.use/ffmpeg
index 7719922..cacc7f7 100644
--- a/hosts/iroha/gentoo/package.use/ffmpeg
+++ b/hosts/iroha/gentoo/package.use/ffmpeg
@@ -1 +1 @@
-media-video/ffmpeg openh264 vaapi vulkan x265 -fontconfig -gnutls -libass -truetype -xml
+media-video/ffmpeg openh264 vaapi vorbis vpx vulkan webp x265 -fontconfig -gnutls -libass -truetype -xml
diff --git a/hosts/iroha/gentoo/package.use/flac b/hosts/iroha/gentoo/package.use/flac
deleted file mode 100644
index a2cd03c..0000000
--- a/hosts/iroha/gentoo/package.use/flac
+++ /dev/null
@@ -1 +0,0 @@
-#media-libs/flac -cxx
diff --git a/hosts/iroha/gentoo/package.use/gdb b/hosts/iroha/gentoo/package.use/gdb
new file mode 100644
index 0000000..18c9346
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gdb
@@ -0,0 +1 @@
+dev-debug/gdb -debuginfod -python
diff --git a/hosts/iroha/gentoo/package.use/gdk-pixbuf b/hosts/iroha/gentoo/package.use/gdk-pixbuf
new file mode 100644
index 0000000..b78adc1
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gdk-pixbuf
@@ -0,0 +1 @@
+x11-libs/gdk-pixbuf gif jpeg
diff --git a/hosts/iroha/gentoo/package.use/gftp b/hosts/iroha/gentoo/package.use/gftp
new file mode 100644
index 0000000..290f9b3
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gftp
@@ -0,0 +1 @@
+net-ftp/gftp gtk
diff --git a/hosts/iroha/gentoo/package.use/gimp b/hosts/iroha/gentoo/package.use/gimp
index 014a44a..1d0de52 100644
--- a/hosts/iroha/gentoo/package.use/gimp
+++ b/hosts/iroha/gentoo/package.use/gimp
@@ -1,6 +1,7 @@
-media-gfx/gimp webp
+media-gfx/gimp wayland webp
x11-libs/cairo X
dev-cpp/cairomm X
app-text/poppler cairo
-media-libs/gegl cairo
-media-libs/gexiv2 -vala
+media-libs/babl lcms introspection
+media-libs/gegl cairo lcms introspection
+media-libs/gexiv2 introspection
diff --git a/hosts/iroha/gentoo/package.use/gnome-keyring b/hosts/iroha/gentoo/package.use/gnome-keyring
new file mode 100644
index 0000000..d55050f
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gnome-keyring
@@ -0,0 +1 @@
+gnome-base/gnome-keyring -ssh-agent
diff --git a/hosts/iroha/gentoo/package.use/gst-plugins-bad b/hosts/iroha/gentoo/package.use/gst-plugins-bad
new file mode 100644
index 0000000..4869122
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gst-plugins-bad
@@ -0,0 +1 @@
+media-libs/gst-plugins-bad wayland
diff --git a/hosts/iroha/gentoo/package.use/gst-plugins-base b/hosts/iroha/gentoo/package.use/gst-plugins-base
index b67c340..eec2226 100644
--- a/hosts/iroha/gentoo/package.use/gst-plugins-base
+++ b/hosts/iroha/gentoo/package.use/gst-plugins-base
@@ -1 +1 @@
-media-libs/gst-plugins-base -egl -gles2 -pango
+media-libs/gst-plugins-base wayland opengl egl -gles2 -pango
diff --git a/hosts/iroha/gentoo/package.use/gst-plugins-meta b/hosts/iroha/gentoo/package.use/gst-plugins-meta
new file mode 100644
index 0000000..81bf899
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/gst-plugins-meta
@@ -0,0 +1 @@
+media-plugins/gst-plugins-meta ogg opus vpx
diff --git a/hosts/iroha/gentoo/package.use/harfbuzz b/hosts/iroha/gentoo/package.use/harfbuzz
index 64f70fa..7d5d646 100644
--- a/hosts/iroha/gentoo/package.use/harfbuzz
+++ b/hosts/iroha/gentoo/package.use/harfbuzz
@@ -1 +1 @@
-media-libs/harfbuzz -cairo -graphite
+media-libs/harfbuzz icu -cairo -graphite
diff --git a/hosts/iroha/gentoo/package.use/kbd b/hosts/iroha/gentoo/package.use/kbd
new file mode 100644
index 0000000..781738c
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/kbd
@@ -0,0 +1 @@
+sys-apps/kbd zstd -bzip2 -zlib
diff --git a/hosts/iroha/gentoo/package.use/kde b/hosts/iroha/gentoo/package.use/kde
index 6727d0d..6be7195 100644
--- a/hosts/iroha/gentoo/package.use/kde
+++ b/hosts/iroha/gentoo/package.use/kde
@@ -1,3 +1,5 @@
kde-frameworks/kconfig dbus qml
kde-frameworks/kio -kwallet
kde-frameworks/kwindowsystem X wayland
+kde-frameworks/sonnet qml
+kde-frameworks/prison qml
diff --git a/hosts/iroha/gentoo/package.use/krita b/hosts/iroha/gentoo/package.use/krita
new file mode 100644
index 0000000..6b02c03
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/krita
@@ -0,0 +1 @@
+media-gfx/krita wayland color-management gif webp
diff --git a/hosts/iroha/gentoo/package.use/lact b/hosts/iroha/gentoo/package.use/lact
new file mode 100644
index 0000000..6839b6f
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/lact
@@ -0,0 +1,3 @@
+sys-apps/lact gui
+gui-libs/gtk:4 introspection
+media-libs/graphene introspection
diff --git a/hosts/iroha/gentoo/package.use/librsvg b/hosts/iroha/gentoo/package.use/librsvg
deleted file mode 100644
index 415215d..0000000
--- a/hosts/iroha/gentoo/package.use/librsvg
+++ /dev/null
@@ -1 +0,0 @@
-gnome-base/librsvg -vala
diff --git a/hosts/iroha/gentoo/package.use/libxml2 b/hosts/iroha/gentoo/package.use/libxml2
index 55f17fd..f7d2cd0 100644
--- a/hosts/iroha/gentoo/package.use/libxml2
+++ b/hosts/iroha/gentoo/package.use/libxml2
@@ -1 +1 @@
-dev-libs/libxml2 -ftp
+dev-libs/libxml2 icu python -ftp
diff --git a/hosts/iroha/gentoo/package.use/looking-glass b/hosts/iroha/gentoo/package.use/looking-glass
new file mode 100644
index 0000000..77de3f2
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/looking-glass
@@ -0,0 +1 @@
+app-emulation/looking-glass wayland pipewire
diff --git a/hosts/iroha/gentoo/package.use/moonlight b/hosts/iroha/gentoo/package.use/moonlight
new file mode 100644
index 0000000..9a48a7f
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/moonlight
@@ -0,0 +1,3 @@
+net-misc/moonlight wayland vulkan -drm -libdrm
+dev-qt/qtdeclarative svg
+media-libs/libsdl2 gles2 kms wayland
diff --git a/hosts/iroha/gentoo/package.use/ncurses b/hosts/iroha/gentoo/package.use/ncurses
index 838288c..18670d4 100644
--- a/hosts/iroha/gentoo/package.use/ncurses
+++ b/hosts/iroha/gentoo/package.use/ncurses
@@ -1 +1 @@
-sys-libs/ncurses minimal -cxx
+sys-libs/ncurses -minimal -cxx
diff --git a/hosts/iroha/gentoo/package.use/ngtcp2 b/hosts/iroha/gentoo/package.use/ngtcp2
new file mode 100644
index 0000000..b965780
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/ngtcp2
@@ -0,0 +1 @@
+net-libs/ngtcp2 gnutls
diff --git a/hosts/iroha/gentoo/package.use/nodejs b/hosts/iroha/gentoo/package.use/nodejs
index a2876f4..77b1b25 100644
--- a/hosts/iroha/gentoo/package.use/nodejs
+++ b/hosts/iroha/gentoo/package.use/nodejs
@@ -1 +1 @@
-net-libs/nodejs -snapshot
+net-libs/nodejs npm -snapshot
diff --git a/hosts/iroha/gentoo/package.use/noto b/hosts/iroha/gentoo/package.use/noto
index 8564b5e..962462b 100644
--- a/hosts/iroha/gentoo/package.use/noto
+++ b/hosts/iroha/gentoo/package.use/noto
@@ -1 +1 @@
-media-fonts/noto -extra
+media-fonts/noto extra
diff --git a/hosts/iroha/gentoo/package.use/nvidia-drivers b/hosts/iroha/gentoo/package.use/nvidia-drivers
index 254f65f..9a227c1 100644
--- a/hosts/iroha/gentoo/package.use/nvidia-drivers
+++ b/hosts/iroha/gentoo/package.use/nvidia-drivers
@@ -1 +1,5 @@
-x11-drivers/nvidia-drivers tools powerd -X -wayland -multilib -gtk3 -compat -abi_x86_32
+x11-drivers/nvidia-drivers tools powerd X wayland abi_x86_32 -kernel-open -multilib -gtk3 -compat
+gui-libs/egl-gbm abi_x86_32
+gui-libs/egl-wayland abi_x86_32
+gui-libs/egl-wayland2 abi_x86_32
+gui-libs/egl-x11 abi_x86_32
diff --git a/hosts/iroha/gentoo/package.use/obs-studio b/hosts/iroha/gentoo/package.use/obs-studio
index b1f6ce1..81d8a4e 100644
--- a/hosts/iroha/gentoo/package.use/obs-studio
+++ b/hosts/iroha/gentoo/package.use/obs-studio
@@ -1,4 +1,4 @@
-media-video/obs-studio pipewire truetype wayland v4l
+media-video/obs-studio wayland pipewire pulseaudio truetype v4l
media-video/ffmpeg opus x264
# usage of QX11Application not covered by gentoo deps.
dev-qt/qtbase X
diff --git a/hosts/iroha/gentoo/package.use/opencv b/hosts/iroha/gentoo/package.use/opencv
new file mode 100644
index 0000000..b929913
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/opencv
@@ -0,0 +1 @@
+media-libs/opencv -eigen -ffmpeg -openmp
diff --git a/hosts/iroha/gentoo/package.use/perl b/hosts/iroha/gentoo/package.use/perl
index 4cf9387..cb35e11 100644
--- a/hosts/iroha/gentoo/package.use/perl
+++ b/hosts/iroha/gentoo/package.use/perl
@@ -1 +1,11 @@
dev-lang/perl minimal
+dev-perl/Alien-Build minimal
+dev-perl/File-ShareDir minimal
+dev-perl/HTTP-CookieJar minimal
+dev-perl/JSON -xs
+dev-perl/Net-HTTP minimal
+dev-perl/Net-SSLeay minimal
+dev-perl/Path-Tiny minimal
+dev-perl/Try-Tiny minimal
+dev-perl/XML-LibXML minimal
+dev-perl/YAML-Tiny minimal
diff --git a/hosts/iroha/gentoo/package.use/pipewire b/hosts/iroha/gentoo/package.use/pipewire
index d96c9bd..c89f500 100644
--- a/hosts/iroha/gentoo/package.use/pipewire
+++ b/hosts/iroha/gentoo/package.use/pipewire
@@ -1,3 +1,3 @@
# gstreamer for virt-viewer.
-media-video/pipewire dbus extra fftw gstreamer pipewire-alsa sound-server jack-client -ssl
+media-video/pipewire X dbus extra ffmpeg fftw gsettings gstreamer pipewire-alsa sound-server jack-client v4l -ssl
media-sound/jack2 dbus -tools
diff --git a/hosts/iroha/gentoo/package.use/protobuf b/hosts/iroha/gentoo/package.use/protobuf
new file mode 100644
index 0000000..595259d
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/protobuf
@@ -0,0 +1 @@
+dev-libs/protobuf -libprotoc
diff --git a/hosts/iroha/gentoo/package.use/protontricks b/hosts/iroha/gentoo/package.use/protontricks
new file mode 100644
index 0000000..28e919e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/protontricks
@@ -0,0 +1 @@
+app-emulation/winetricks gui
diff --git a/hosts/iroha/gentoo/package.use/qemu b/hosts/iroha/gentoo/package.use/qemu
index d608fa7..f8d47b6 100644
--- a/hosts/iroha/gentoo/package.use/qemu
+++ b/hosts/iroha/gentoo/package.use/qemu
@@ -1 +1,5 @@
-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
+app-emulation/qemu io-uring opengl pulseaudio spice static-user usb usbredir virgl -doc -gnutls -jpeg -ncurses -oss -png -vnc -xattr QEMU_SOFTMMU_TARGETS: aarch64 x86_64 m68k i386 QEMU_USER_TARGETS: aarch64 arm
+dev-libs/glib static-libs
+dev-libs/libpcre2 static-libs
+virtual/zlib static-libs
+sys-libs/zlib static-libs
diff --git a/hosts/iroha/gentoo/package.use/qt b/hosts/iroha/gentoo/package.use/qt
index 26292f1..72005fb 100644
--- a/hosts/iroha/gentoo/package.use/qt
+++ b/hosts/iroha/gentoo/package.use/qt
@@ -5,4 +5,6 @@ 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
+dev-qt/qtmultimedia X opengl vulkan wayland qml
+dev-qt/qtquick3d opengl vulkan
+dev-python/pyqt6 qml network -printsupport
diff --git a/hosts/iroha/gentoo/package.use/rpcs3 b/hosts/iroha/gentoo/package.use/rpcs3
new file mode 100644
index 0000000..cbf62b9
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/rpcs3
@@ -0,0 +1 @@
+games-emulation/rpcs3 wayland joystick system-ffmpeg vulkan
diff --git a/hosts/iroha/gentoo/package.use/rtmidi b/hosts/iroha/gentoo/package.use/rtmidi
new file mode 100644
index 0000000..cd77e57
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/rtmidi
@@ -0,0 +1 @@
+media-libs/rtmidi -alsa
diff --git a/hosts/iroha/gentoo/package.use/rust b/hosts/iroha/gentoo/package.use/rust
new file mode 100644
index 0000000..33ae790
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/rust
@@ -0,0 +1 @@
+dev-lang/rust rustfmt
diff --git a/hosts/iroha/gentoo/package.use/sdl2-gamepad-mapper b/hosts/iroha/gentoo/package.use/sdl2-gamepad-mapper
new file mode 100644
index 0000000..34f5475
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/sdl2-gamepad-mapper
@@ -0,0 +1 @@
+dev-qt/qttools linguist
diff --git a/hosts/iroha/gentoo/package.use/steam b/hosts/iroha/gentoo/package.use/steam
index 6870d10..3aa6bc8 100644
--- a/hosts/iroha/gentoo/package.use/steam
+++ b/hosts/iroha/gentoo/package.use/steam
@@ -1,5 +1,6 @@
-games-util/steam-launcher -wayland
+games-util/steam-launcher wayland
media-libs/vulkan-loader X
+x11-base/xwayland libei
games-util/gamemode abi_x86_32
games-util/mangohud abi_x86_32
# for gamemode and mangohud, sort'd
@@ -30,6 +31,7 @@ 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/icu abi_x86_32
dev-libs/libffi abi_x86_32
dev-libs/libpcre2 abi_x86_32
dev-libs/wayland abi_x86_32
@@ -39,6 +41,7 @@ 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/libdisplay-info abi_x86_32
media-libs/libglvnd abi_x86_32
media-libs/libogg abi_x86_32
media-libs/libpng abi_x86_32
@@ -59,6 +62,7 @@ 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/zlib abi_x86_32
virtual/libelf abi_x86_32
virtual/libiconv abi_x86_32
virtual/libintl abi_x86_32
@@ -73,6 +77,7 @@ 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/libpciaccess 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/sunshine b/hosts/iroha/gentoo/package.use/sunshine
new file mode 100644
index 0000000..e077f45
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/sunshine
@@ -0,0 +1,2 @@
+net-misc/sunshine X wayland vaapi x264 x265 svt-av1
+media-libs/libva wayland
diff --git a/hosts/iroha/gentoo/package.use/talloc b/hosts/iroha/gentoo/package.use/talloc
new file mode 100644
index 0000000..04e8a13
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/talloc
@@ -0,0 +1 @@
+sys-libs/talloc -python
diff --git a/hosts/iroha/gentoo/package.use/vim b/hosts/iroha/gentoo/package.use/vim
index d361594..2d29cd8 100644
--- a/hosts/iroha/gentoo/package.use/vim
+++ b/hosts/iroha/gentoo/package.use/vim
@@ -1 +1,2 @@
-app-editors/vim -minimal
+app-editors/vim wayland -minimal
+app-editors/vim-core -minimal
diff --git a/hosts/iroha/gentoo/package.use/vulkan-tools b/hosts/iroha/gentoo/package.use/vulkan-tools
new file mode 100644
index 0000000..c6e55f8
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/vulkan-tools
@@ -0,0 +1 @@
+dev-util/vulkan-tools wayland cube
diff --git a/hosts/iroha/gentoo/package.use/wine b/hosts/iroha/gentoo/package.use/wine
index 1ec80be..c6ec61e 100644
--- a/hosts/iroha/gentoo/package.use/wine
+++ b/hosts/iroha/gentoo/package.use/wine
@@ -1 +1,2 @@
-app-emulation/wine-vanilla pulseaudio udev wayland wow64 -gecko -gstreamer -mingw -xcomposite -abi_x86_32
+app-emulation/wine-vanilla X wayland gecko pulseaudio udev wow64 -gstreamer -mingw -xcomposite -abi_x86_32
+app-emulation/wine-staging X wayland gecko pulseaudio udev wow64 -gstreamer -mingw -xcomposite -abi_x86_32
diff --git a/hosts/iroha/gentoo/package.use/winetricks b/hosts/iroha/gentoo/package.use/winetricks
new file mode 100644
index 0000000..e69a507
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/winetricks
@@ -0,0 +1 @@
+app-emulation/winetricks rar
diff --git a/hosts/iroha/gentoo/package.use/wlroots b/hosts/iroha/gentoo/package.use/wlroots
index e1a6a62..8848d15 100644
--- a/hosts/iroha/gentoo/package.use/wlroots
+++ b/hosts/iroha/gentoo/package.use/wlroots
@@ -1 +1 @@
-gui-libs/wlroots X vulkan lcms liftoff
+gui-libs/wlroots X vulkan lcms liftoff xcb-errors
diff --git a/hosts/iroha/gentoo/package.use/xdg-desktop-portal-gtk b/hosts/iroha/gentoo/package.use/xdg-desktop-portal-gtk
new file mode 100644
index 0000000..dcdd2b6
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/xdg-desktop-portal-gtk
@@ -0,0 +1 @@
+sys-apps/xdg-desktop-portal-gtk wayland
diff --git a/hosts/iroha/gentoo/package.use/xemu b/hosts/iroha/gentoo/package.use/xemu
new file mode 100644
index 0000000..46e3d36
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/xemu
@@ -0,0 +1 @@
+games-emulation/xemu io-uring pulseaudio membarrier
diff --git a/hosts/iroha/gentoo/package.use/yt-dlp b/hosts/iroha/gentoo/package.use/yt-dlp
new file mode 100644
index 0000000..181e01e
--- /dev/null
+++ b/hosts/iroha/gentoo/package.use/yt-dlp
@@ -0,0 +1 @@
+net-misc/yt-dlp -deno
diff --git a/hosts/iroha/gentoo/patches/app-emulation/winetricks/dotnet8_0-update.diff b/hosts/iroha/gentoo/patches/app-emulation/winetricks/dotnet8_0-update.diff
new file mode 100644
index 0000000..b2186ec
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/app-emulation/winetricks/dotnet8_0-update.diff
@@ -0,0 +1,56 @@
+diff --git a/src/winetricks b/src/winetricks
+index 3e74f0b..044f0c2 100755
+--- a/src/winetricks
++++ b/src/winetricks
+@@ -9804,21 +9804,21 @@ w_metadata dotnet8 dlls \
+ publisher="Microsoft" \
+ year="2024" \
+ media="download" \
+- file1="dotnet-runtime-8.0.12-win-x86.exe" \
++ file1="dotnet-runtime-8.0.25-win-x86.exe" \
+ installed_file1="${W_PROGRAMS_WIN}/dotnet/dotnet.exe"
+
+ load_dotnet8()
+ {
+ # Official version, see https://dotnet.microsoft.com/en-us/download/dotnet/8.0
+- w_download https://download.visualstudio.microsoft.com/download/pr/3210417e-ab32-4d14-a152-1ad9a2fcfdd2/da097cee5aa85bd79b6d593e3866fb7f/dotnet-runtime-8.0.12-win-x86.exe eb0d8f39fa2dbb4ff3ff72ad325b6030773df875ab509824ea18c87a368985fa
++ w_download https://builds.dotnet.microsoft.com/dotnet/Runtime/8.0.25/dotnet-runtime-8.0.25-win-x86.exe 34499f91e956eb1cee82fa28633bd69f17062ede8088d14fa163ac9e70df6404
+
+ w_try_cd "${W_CACHE}"/"${W_PACKAGE}"
+ w_try "${WINE}" "${file1}" ${W_OPT_UNATTENDED:+/quiet}
+
+ if [ "${W_ARCH}" = "win64" ]; then
+ # Also install the 64-bit version
+- w_download https://download.visualstudio.microsoft.com/download/pr/136f4593-e3cd-4d52-bc25-579cdf46e80c/8b98c1347293b48c56c3a68d72f586a1/dotnet-runtime-8.0.12-win-x64.exe a7c394e6ee4e8104d7a01f78103700052cc504370941b7f620e3aa5afbbc61df
+- w_try "${WINE}" "dotnet-runtime-8.0.12-win-x64.exe" ${W_OPT_UNATTENDED:+/quiet}
++ w_download https://builds.dotnet.microsoft.com/dotnet/Runtime/8.0.25/dotnet-runtime-8.0.25-win-x64.exe 8e05c7f0cc3cdc3495265c6d5079c786f039b5688341e385a27a0100945e70d2
++ w_try "${WINE}" "dotnet-runtime-8.0.25-win-x64.exe" ${W_OPT_UNATTENDED:+/quiet}
+ fi
+ }
+
+@@ -9829,21 +9829,21 @@ w_metadata dotnetdesktop8 dlls \
+ publisher="Microsoft" \
+ year="2024" \
+ media="download" \
+- file1="windowsdesktop-runtime-8.0.12-win-x86.exe" \
++ file1="windowsdesktop-runtime-8.0.25-win-x86.exe" \
+ installed_file1="${W_PROGRAMS_WIN}/dotnet/dotnet.exe"
+
+ load_dotnetdesktop8()
+ {
+ # Official version, see https://dotnet.microsoft.com/en-us/download/dotnet/8.0
+- w_download https://download.visualstudio.microsoft.com/download/pr/acf6e5d3-1e2f-4072-833c-fa84a10841c5/acd48342207247f404a5aaa58d1a1ea1/windowsdesktop-runtime-8.0.12-win-x86.exe 340e30c8611af3800b74f0560f0b6f3feab82ee5cfa3fc0d115b84b08bd5456d
++ w_download https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/8.0.25/windowsdesktop-runtime-8.0.25-win-x86.exe f486ecd1e9a57c438b5c7524e870c11a5affd7d224c3ed1b15179be250ea0022
+
+ w_try_cd "${W_CACHE}"/"${W_PACKAGE}"
+ w_try "${WINE}" "${file1}" ${W_OPT_UNATTENDED:+/quiet}
+
+ if [ "${W_ARCH}" = "win64" ]; then
+ # Also install the 64-bit version
+- w_download https://download.visualstudio.microsoft.com/download/pr/f1e7ffc8-c278-4339-b460-517420724524/f36bb75b2e86a52338c4d3a90f8dac9b/windowsdesktop-runtime-8.0.12-win-x64.exe cb51b559f343cb56e23cad2e5af8c4d1701e221a0a2a4116193a2a9375568814
+- w_try "${WINE}" "windowsdesktop-runtime-8.0.12-win-x64.exe" ${W_OPT_UNATTENDED:+/quiet}
++ w_download https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/8.0.25/windowsdesktop-runtime-8.0.25-win-x64.exe 2b118648b91d43a773fce18a7e934e80f9aff590ee6500c221693074310a6cfe
++ w_try "${WINE}" "windowsdesktop-runtime-8.0.25-win-x64.exe" ${W_OPT_UNATTENDED:+/quiet}
+ fi
+ }
+
diff --git a/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_foot_font.diff b/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_foot_font.diff
new file mode 100644
index 0000000..9ad4bf3
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_foot_font.diff
@@ -0,0 +1,14 @@
+--- a/neofetch 2026-04-19 16:47:39.498756455 -0400
++++ b/neofetch 2026-04-21 10:36:27.841486287 -0400
+@@ -3306,6 +3306,11 @@
+ term_font="$(kitty +runpy ''"$term_font"'')"
+ ;;
+
++ "foot"*)
++ term_font="$(awk -F ':' '/^font=/ {print substr($1, 6, length($1)) " " substr($2, 6, length($2))}' \
++ $HOME/.config/foot/foot.ini)"
++ ;;
++
+ "konsole" | "yakuake")
+ # Get Process ID of current konsole window / tab
+ child="$(get_ppid "$$")"
diff --git a/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_sway_version.diff b/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_sway_version.diff
new file mode 100644
index 0000000..9d414b5
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/app-misc/neofetch/neofetch_sway_version.diff
@@ -0,0 +1,20 @@
+--- a/neofetch 2026-04-21 10:38:18.495596158 -0400
++++ b/neofetch 2026-04-25 10:42:58.968282990 -0400
+@@ -1751,6 +1751,7 @@
+ *mate*) de=MATE ;;
+ *GNOME*) de=GNOME ;;
+ *MUFFIN*) de=Cinnamon ;;
++ *sway*) unset de ;;
+ esac
+
+ ((${KDE_SESSION_VERSION:-0} >= 4)) && de=${de/KDE/Plasma}
+@@ -1822,6 +1823,9 @@
+ -e westeros \
+ -e westford \
+ -e weston)
++ case $wm in
++ *sway*) wm="Sway $(sway --version | awk -F ' ' '{ print $3 }')" ;;
++ esac
+
+ elif [[ $DISPLAY && $os != "Mac OS X" && $os != "macOS" && $os != FreeMiNT ]]; then
+ type -p xprop &>/dev/null && {
diff --git a/hosts/iroha/gentoo/patches/games-util/mangohud/jc42_ram_temp.diff b/hosts/iroha/gentoo/patches/games-util/mangohud/jc42_ram_temp.diff
new file mode 100644
index 0000000..4301053
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/games-util/mangohud/jc42_ram_temp.diff
@@ -0,0 +1,14 @@
+diff --git a/src/memory.cpp b/src/memory.cpp
+index fc117f5..2c01c51 100644
+--- a/src/memory.cpp
++++ b/src/memory.cpp
+@@ -43,7 +43,8 @@ void update_mem_temp() {
+ std::string path = "/sys/class/hwmon/";
+ auto dirs = ls(path.c_str(), "hwmon", LS_DIRS);
+ for (auto &dir : dirs) {
+- if (read_line(path + dir + "/name") == "spd5118")
++ const auto name = read_line(path + dir + "/name");
++ if (name == "spd5118" || name == "jc42")
+ mem_temp_files.emplace_back(path + dir + "/temp1_input");
+ }
+ if (mem_temp_files.empty())
diff --git a/hosts/iroha/gentoo/patches/gui-wm/gamescope/1826.diff b/hosts/iroha/gentoo/patches/gui-wm/gamescope/1826.diff
deleted file mode 100644
index 69c85e8..0000000
--- a/hosts/iroha/gentoo/patches/gui-wm/gamescope/1826.diff
+++ /dev/null
@@ -1,84 +0,0 @@
-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
deleted file mode 100644
index 79a87eb..0000000
--- a/hosts/iroha/gentoo/patches/gui-wm/gamescope/740_rebase.diff
+++ /dev/null
@@ -1,693 +0,0 @@
-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/patches/media-gfx/gimp/accumulate_scroll_zoom.diff b/hosts/iroha/gentoo/patches/media-gfx/gimp/accumulate_scroll_zoom.diff
new file mode 100644
index 0000000..6667cb9
--- /dev/null
+++ b/hosts/iroha/gentoo/patches/media-gfx/gimp/accumulate_scroll_zoom.diff
@@ -0,0 +1,154 @@
+diff --git a/app/display/gimpdisplayshell-scale.c b/app/display/gimpdisplayshell-scale.c
+index 6327b7f1ec..a22aa0f4ca 100644
+--- a/app/display/gimpdisplayshell-scale.c
++++ b/app/display/gimpdisplayshell-scale.c
+@@ -48,6 +48,8 @@
+ #define SCALE_EPSILON 0.0001
+ #define ALMOST_CENTERED_THRESHOLD 2
+
++#define SCALE_UPDATE_INTERVAL (1000 / 90)
++
+ #define SCALE_EQUALS(a,b) (fabs ((a) - (b)) < SCALE_EPSILON)
+
+
+@@ -494,43 +496,20 @@ gimp_display_shell_scale_update (GimpDisplayShell *shell)
+ }
+ }
+
+-/**
+- * gimp_display_shell_scale:
+- * @shell: the #GimpDisplayShell
+- * @zoom_type: whether to zoom in, out or to a specific scale
+- * @scale: ignored unless @zoom_type == %GIMP_ZOOM_TO
+- *
+- * This function figures out the context of the zoom and behaves
+- * appropriately thereafter.
+- *
+- **/
+-void
+-gimp_display_shell_scale (GimpDisplayShell *shell,
+- GimpZoomType zoom_type,
+- gdouble new_scale,
+- GimpZoomFocus zoom_focus)
++static gboolean
++gimp_display_shell_delayed_scale (GimpDisplayShell *shell)
+ {
+ GimpDisplayConfig *config;
+ gdouble current_scale;
+- gdouble delta = 0.0;
++ gdouble new_scale;
+ gboolean resize_window;
++ GimpZoomFocus zoom_focus = shell->scale_pending_zoom_focus;
+
+- g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
+- g_return_if_fail (shell->canvas != NULL);
++ shell->scale_delay_timer = 0;
+
+ current_scale = gimp_zoom_model_get_factor (shell->zoom);
+-
+- if (zoom_type == GIMP_ZOOM_SMOOTH)
+- delta = -new_scale;
+-
+- if (zoom_type == GIMP_ZOOM_PINCH)
+- delta = new_scale;
+-
+- if (zoom_type != GIMP_ZOOM_TO)
+- new_scale = gimp_zoom_model_zoom_step (zoom_type, current_scale, delta);
+-
+- if (SCALE_EQUALS (new_scale, current_scale))
+- return;
++ new_scale = shell->scale_pending;
++ shell->scale_pending = 0.0;
+
+ config = shell->display->config;
+
+@@ -609,6 +588,61 @@ gimp_display_shell_scale (GimpDisplayShell *shell,
+ image_center_almost_centered_vert));
+ }
+ }
++
++ return G_SOURCE_REMOVE;
++}
++
++/**
++ * gimp_display_shell_scale:
++ * @shell: the #GimpDisplayShell
++ * @zoom_type: whether to zoom in, out or to a specific scale
++ * @scale: ignored unless @zoom_type == %GIMP_ZOOM_TO
++ *
++ * This function figures out the context of the zoom and behaves
++ * appropriately thereafter.
++ *
++ **/
++void
++gimp_display_shell_scale (GimpDisplayShell *shell,
++ GimpZoomType zoom_type,
++ gdouble new_scale,
++ GimpZoomFocus zoom_focus)
++{
++ gdouble current_scale;
++ gdouble delta = 0.0;
++
++ g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
++ g_return_if_fail (shell->canvas != NULL);
++
++ if (shell->scale_delay_timer)
++ {
++ current_scale = shell->scale_pending;
++ }
++ else
++ {
++ current_scale = gimp_zoom_model_get_factor (shell->zoom);
++ }
++
++ if (zoom_type == GIMP_ZOOM_SMOOTH)
++ delta = -new_scale;
++
++ if (zoom_type == GIMP_ZOOM_PINCH)
++ delta = new_scale;
++
++ if (zoom_type != GIMP_ZOOM_TO)
++ new_scale = gimp_zoom_model_zoom_step (zoom_type, current_scale, delta);
++
++ if (SCALE_EQUALS (new_scale, current_scale))
++ return;
++
++ shell->scale_pending = new_scale;
++ shell->scale_pending_zoom_focus = zoom_focus;
++
++ if (!shell->scale_delay_timer)
++ {
++ shell->scale_delay_timer =
++ g_timeout_add(SCALE_UPDATE_INTERVAL, (GSourceFunc) gimp_display_shell_delayed_scale, shell);
++ }
+ }
+
+ /**
+diff --git a/app/display/gimpdisplayshell.c b/app/display/gimpdisplayshell.c
+index 358ef3dbfe..7e8ca0ffdf 100644
+--- a/app/display/gimpdisplayshell.c
++++ b/app/display/gimpdisplayshell.c
+@@ -388,6 +388,8 @@ gimp_display_shell_init (GimpDisplayShell *shell)
+ shell->near_layer_vertical2 = NULL;
+ shell->drawn = FALSE;
+
++ shell->scale_delay_timer = 0;
++
+ env = g_getenv ("GIMP_DISPLAY_RENDER_BUF_SIZE");
+
+ if (env)
+diff --git a/app/display/gimpdisplayshell.h b/app/display/gimpdisplayshell.h
+index c5b345e485..aa1b26dfef 100644
+--- a/app/display/gimpdisplayshell.h
++++ b/app/display/gimpdisplayshell.h
+@@ -226,6 +226,10 @@ struct _GimpDisplayShell
+ gpointer scroll_info;
+ GimpLayer *picked_layer;
+
++ gint scale_delay_timer;
++ gdouble scale_pending;
++ GimpZoomFocus scale_pending_zoom_focus;
++
+ GeglBuffer *mask;
+ gint mask_offset_x;
+ gint mask_offset_y;
diff --git a/hosts/iroha/gentoo/profile/package.use.force/force.conf b/hosts/iroha/gentoo/profile/package.use.force/force.conf
index d146a47..e97a235 100644
--- a/hosts/iroha/gentoo/profile/package.use.force/force.conf
+++ b/hosts/iroha/gentoo/profile/package.use.force/force.conf
@@ -1,3 +1,4 @@
sys-devel/gcc -pie -default-stack-clash-protection -default-znow
llvm-core/clang -pie
sys-devel/binutils -cet
+media-libs/mesa abi_x86_32
diff --git a/hosts/iroha/modprobe.d/kvm_amd.conf b/hosts/iroha/modprobe.d/kvm_amd.conf
index ab80c86..acb2b90 100644
--- a/hosts/iroha/modprobe.d/kvm_amd.conf
+++ b/hosts/iroha/modprobe.d/kvm_amd.conf
@@ -1,2 +1,2 @@
options kvm_amd nested=1
-options kvm ignore_msrs=1 report_ignored_msrs=0
+#options kvm ignore_msrs=1 report_ignored_msrs=0
diff --git a/hosts/iroha/modules-load.d/kvm_amd.conf b/hosts/iroha/modules-load.d/kvm_amd.conf
deleted file mode 100644
index 52f7224..0000000
--- a/hosts/iroha/modules-load.d/kvm_amd.conf
+++ /dev/null
@@ -1 +0,0 @@
-kvm-amd
diff --git a/hosts/iroha/modules-load.d/lm_sensors.conf b/hosts/iroha/modules-load.d/lm_sensors.conf
new file mode 100644
index 0000000..c07978c
--- /dev/null
+++ b/hosts/iroha/modules-load.d/lm_sensors.conf
@@ -0,0 +1,2 @@
+nct6775
+jc42
diff --git a/hosts/iroha/polkit-1/rules.d/20-scx_loader.rules b/hosts/iroha/polkit-1/rules.d/20-scx_loader.rules
new file mode 100644
index 0000000..90fb12e
--- /dev/null
+++ b/hosts/iroha/polkit-1/rules.d/20-scx_loader.rules
@@ -0,0 +1,5 @@
+polkit.addRule(function(action, subject) {
+ if (action.id == "org.scx.loader.manage-schedulers") {
+ return polkit.Result.YES;
+ }
+});
diff --git a/hosts/iroha/scripts/run-sway b/hosts/iroha/scripts/run-sway
index 8c0ba13..63b6bd9 100755
--- a/hosts/iroha/scripts/run-sway
+++ b/hosts/iroha/scripts/run-sway
@@ -1,4 +1,12 @@
#! /usr/bin/env sh
-export MAIN_MONITOR=DP-1
-#dbus-run-session env WLR_RENDERER=gles2 sway
-dbus-run-session env WLR_RENDERER=vulkan sway
+export MAIN_MONITOR=$(awk -F ' ' 'NR==1{print $3}' $HOME/.config/sway/monitors)
+export XDG_CURRENT_DESKTOP=sway
+#export WLR_RENDERER=gles2
+export WLR_RENDERER=vulkan
+#export SWAY_UNSUPPORTED_GPU=1
+export SDL_VIDEODRIVER=wayland
+export GDK_BACKEND=wayland,x11
+export QT_QPA_PLATFORM=wayland;xcb
+export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
+export _JAVA_AWT_WM_NONREPARENTING=1
+dbus-run-session sway
diff --git a/hosts/iroha/stow.txt b/hosts/iroha/stow.txt
index c571e88..511588a 100644
--- a/hosts/iroha/stow.txt
+++ b/hosts/iroha/stow.txt
@@ -45,6 +45,7 @@ UNLINK: .local/bin/xbox360-ffmpeg-enc
UNLINK: .mailcap
UNLINK: .muttrc
UNLINK: .profile
+UNLINK: .vim/after
UNLINK: .vim/autoload
UNLINK: .vim/colors
UNLINK: .vim/pack/downloads/create_opt.sh
@@ -72,6 +73,7 @@ LINK: .config/mako => ../c/dotfiles/hosts/iroha/stow/.config/mako (reverts previ
LINK: .config/pipewire => ../c/dotfiles/hosts/iroha/stow/.config/pipewire (reverts previous action)
LINK: .config/sway => ../c/dotfiles/hosts/iroha/stow/.config/sway (reverts previous action)
LINK: .config/user-dirs.dirs => ../c/dotfiles/hosts/iroha/stow/.config/user-dirs.dirs (reverts previous action)
+LINK: .extract_urlview => c/dotfiles/hosts/iroha/stow/.extract_urlview
LINK: .gitconfig => c/dotfiles/hosts/iroha/stow/.gitconfig (reverts previous action)
LINK: .gtkrc-2.0 => c/dotfiles/hosts/iroha/stow/.gtkrc-2.0 (reverts previous action)
LINK: .local/bin/7z-password => ../../c/dotfiles/hosts/iroha/stow/.local/bin/7z-password (reverts previous action)
@@ -103,6 +105,7 @@ LINK: .local/bin/xbox360-ffmpeg-enc => ../../c/dotfiles/hosts/iroha/stow/.local/
LINK: .mailcap => c/dotfiles/hosts/iroha/stow/.mailcap (reverts previous action)
LINK: .muttrc => c/dotfiles/hosts/iroha/stow/.muttrc (reverts previous action)
LINK: .profile => c/dotfiles/hosts/iroha/stow/.profile (reverts previous action)
+LINK: .vim/after => ../c/dotfiles/hosts/iroha/stow/.vim/after (reverts previous action)
LINK: .vim/autoload => ../c/dotfiles/hosts/iroha/stow/.vim/autoload (reverts previous action)
LINK: .vim/colors => ../c/dotfiles/hosts/iroha/stow/.vim/colors (reverts previous action)
LINK: .vim/pack/downloads/create_opt.sh => ../../../c/dotfiles/hosts/iroha/stow/.vim/pack/downloads/create_opt.sh (reverts previous action)
diff --git a/hosts/iroha/stow/.extract_urlview b/hosts/iroha/stow/.extract_urlview
new file mode 120000
index 0000000..0afc1d0
--- /dev/null
+++ b/hosts/iroha/stow/.extract_urlview
@@ -0,0 +1 @@
+../../../files/email/extract_urlview \ No newline at end of file
diff --git a/hosts/iroha/stow/.vim/after b/hosts/iroha/stow/.vim/after
new file mode 120000
index 0000000..4379a37
--- /dev/null
+++ b/hosts/iroha/stow/.vim/after
@@ -0,0 +1 @@
+../../../../files/vim/after \ No newline at end of file
diff --git a/hosts/iroha/sway_input_output b/hosts/iroha/sway_input_output
index b881ab9..f17c1fb 100644
--- a/hosts/iroha/sway_input_output
+++ b/hosts/iroha/sway_input_output
@@ -42,19 +42,18 @@ include ../monitors
output $monitor1 {
mode 2560x1440@120.000Hz
- #position 3000 200
+ subpixel rgb
position 1080 200
- #position 1920 200
allow_tearing yes
max_render_time off
- adaptive_sync off
+ adaptive_sync on
#render_bit_depth 10
}
output $monitor2 {
mode 1920x1080@60.000Hz
+ subpixel vrgb
transform 270
- #position 1920 0
position 0 0
allow_tearing yes
max_render_time off
@@ -63,6 +62,7 @@ output $monitor2 {
#output $monitor3 {
# mode 1920x1080@60.000Hz
+# subpixel rgb
# position 0 1000
# allow_tearing yes
# max_render_time off
diff --git a/hosts/iroha/sysctl.d/cachyos.conf b/hosts/iroha/sysctl.d/cachyos.conf
index eeec6e9..ef686ab 100644
--- a/hosts/iroha/sysctl.d/cachyos.conf
+++ b/hosts/iroha/sysctl.d/cachyos.conf
@@ -1,4 +1,4 @@
-# https://github.com/CachyOS/CachyOS-Settings/blob/master/usr/lib/sysctl.d/99-cachyos-settings.conf
+# https://github.com/CachyOS/CachyOS-Settings/blob/master/usr/lib/sysctl.d/70-cachyos-settings.conf
vm.swappiness = 40
vm.vfs_cache_pressure = 50
vm.dirty_bytes = 268435456
@@ -9,6 +9,7 @@ kernel.nmi_watchdog = 0
net.core.netdev_max_backlog = 4096
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
+fs.file-max = 2097152
# https://wiki.gentoo.org/wiki/User:AbhinavPraveen/Optimizing_Wine_and_Proton_on_Gentoo
-kernel.sched_rt_runtime_us = 980000
+kernel.sched_rt_runtime_us = 990000
diff --git a/nix_archive/flake.lock b/nix_archive/flake.lock
index fe48dda..e6f1be2 100644
--- a/nix_archive/flake.lock
+++ b/nix_archive/flake.lock
@@ -90,11 +90,11 @@
]
},
"locked": {
- "lastModified": 1772218752,
- "narHash": "sha256-G8nArvOTZXU8DRvrzAdz3Elcj6kA/vMtvY9mrGLATtA=",
+ "lastModified": 1775900011,
+ "narHash": "sha256-QUGu6CJYFQ5AWVV0n3/FsJyV+1/gj7HSDx68/SX9pwM=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "f3a30376bb9eb2f6f61816be7d6ed954b6d2a3b9",
+ "rev": "b0569dc6ec1e6e7fefd8f6897184e4c191cd768e",
"type": "github"
},
"original": {
@@ -144,11 +144,11 @@
},
"nixos-hardware": {
"locked": {
- "lastModified": 1771969195,
- "narHash": "sha256-qwcDBtrRvJbrrnv1lf/pREQi8t2hWZxVAyeMo7/E9sw=",
+ "lastModified": 1775490113,
+ "narHash": "sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM=",
"owner": "NixOS",
"repo": "nixos-hardware",
- "rev": "41c6b421bdc301b2624486e11905c9af7b8ec68e",
+ "rev": "c775c2772ba56e906cbeb4e0b2db19079ef11ff7",
"type": "github"
},
"original": {
@@ -211,11 +211,11 @@
},
"nixpkgs_3": {
"locked": {
- "lastModified": 1771848320,
- "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
+ "lastModified": 1775710090,
+ "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "2fc6539b481e1d2569f25f8799236694180c0993",
+ "rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"type": "github"
},
"original": {
@@ -233,11 +233,11 @@
]
},
"locked": {
- "lastModified": 1772294246,
- "narHash": "sha256-Y6khA3BzerdT3mBN/s/Tt246CJTo1OTMMBUW1POAAms=",
+ "lastModified": 1775915587,
+ "narHash": "sha256-PqdaOIG8DuUoIp/pp0nPf60IEsaQE62DLCuxYtOHaSQ=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "3b952378a6cdbc6fe8840ff87ce7c10066b59b08",
+ "rev": "78a0c668489f23b75253fdef25d844533ac0ef8b",
"type": "github"
},
"original": {
diff --git a/nix_archive/hosts/palm/configuration.nix b/nix_archive/hosts/palm/configuration.nix
index c91ef72..9fd4ebc 100644
--- a/nix_archive/hosts/palm/configuration.nix
+++ b/nix_archive/hosts/palm/configuration.nix
@@ -18,7 +18,7 @@ in {
../../nix/programs/bash.nix
../../nix/programs/nvim.nix
../../nix/programs/sway.nix
- ../../nix/programs/kitty.nix
+ ../../nix/programs/foot.nix
../../nix/programs/firefox.nix
../../nix/programs/obs.nix
../../nix/programs/waydroid.nix
@@ -112,7 +112,6 @@ in {
STOP_CHARGE_THRESH_BAT0 = 85;
};
};
- programs.light.enable = true;
networking = {
hostName = "palm";
@@ -154,8 +153,9 @@ in {
};
environment.systemPackages = with pkgs; [
- linuxPackages_latest.perf
+ perf
linuxPackages_latest.cpupower
+ brightnessctl
(pkgs.writeShellScriptBin "run-sway" ''
export WLR_RENDERER=vulkan
export WLR_DRM_DEVICES=/dev/dri/card1
diff --git a/nix_archive/hosts/palm/programs.nix b/nix_archive/hosts/palm/programs.nix
index 40c3af1..c3161b3 100644
--- a/nix_archive/hosts/palm/programs.nix
+++ b/nix_archive/hosts/palm/programs.nix
@@ -7,6 +7,7 @@
(asNeeded "imv" ["imv"])
(asNeeded "mpv" ["mpv"])
(asNeeded "steam-run" ["steam-run"])
+ (asNeeded "moonlight-qt" ["moonlight-qt"])
# camu
# camu-devshell
# mauri
diff --git a/nix_archive/nix/programs/foot.nix b/nix_archive/nix/programs/foot.nix
index 5c85ce7..5a322eb 100644
--- a/nix_archive/nix/programs/foot.nix
+++ b/nix_archive/nix/programs/foot.nix
@@ -12,9 +12,9 @@ in {
server.enable = true;
settings = {
main = {
- font = "${s.font.name}:size=${toString s.font.size}";
+ font = "${loc.font.name}:size=${toString loc.font.size}";
};
- colors = {
+ colors-dark = {
foreground = "${colo.foreground}";
background = "${colo.background}";
regular0 = "${colo.color0}";
diff --git a/nix_archive/nix/programs/nvim.nix b/nix_archive/nix/programs/nvim.nix
index 3cdf12e..2d36e64 100644
--- a/nix_archive/nix/programs/nvim.nix
+++ b/nix_archive/nix/programs/nvim.nix
@@ -215,11 +215,13 @@ in {
# };
# meta.homepage = "";
#})
+ withRuby = false;
+ withPython = false;
plugins = with pkgs.vimPlugins; [
local-nvim
wal
undotree
- fzfWrapper
+ fzf-wrapper
fzf-vim
vim-gitbranch
vim-signify
diff --git a/nix_archive/nix/programs/sway.nix b/nix_archive/nix/programs/sway.nix
index b5dcb5f..1fa762a 100644
--- a/nix_archive/nix/programs/sway.nix
+++ b/nix_archive/nix/programs/sway.nix
@@ -18,10 +18,10 @@ in {
grim
wf-recorder
wlsunset
- xorg.xprop
- xorg.xset
- xorg.xrdb
- xorg.xrandr
+ xprop
+ xset
+ xrdb
+ xrandr
];
};
local.scripts.imports = [
@@ -141,12 +141,13 @@ in {
'';
extraCss4 = ''
'';
- in {
+ in rec {
enable = true;
theme = {
name = "adw-gtk3" + (if colo.lightness == "light" then "" else "-dark");
package = pkgs.adw-gtk3;
};
+ gtk4.theme = theme;
cursorTheme = {
name = "WhiteSur-cursors";
};
diff --git a/nix_archive/nix/user.nix b/nix_archive/nix/user.nix
index 360f53d..7dd53cc 100644
--- a/nix_archive/nix/user.nix
+++ b/nix_archive/nix/user.nix
@@ -67,7 +67,6 @@ in {
rsync
(python3.withPackages (python-pkgs: [ python-pkgs.requests python-pkgs.beautifulsoup4 ]))
htop
- neofetch
ufetch
(asNeeded "cmatrix" ["cmatrix"])
hdparm
@@ -154,6 +153,7 @@ in {
home.username = "andrew";
xdg.userDirs = {
enable = true;
+ setSessionVariables = true;
desktop = "${homeDir}/tmp";
documents = "${homeDir}/docs";
download = "${homeDir}/dl";
@@ -179,6 +179,7 @@ in {
signing = {
key = "99659CB58598BDDB"; # The last digits of the key.
signByDefault = true;
+ format = "openpgp";
};
};
home.file.".config/gdb/gdbinit".source = ../../files/gdbinit;
diff --git a/scripts/desktop/proton-env b/scripts/desktop/proton-env
index 3aa66e1..4c87487 100755
--- a/scripts/desktop/proton-env
+++ b/scripts/desktop/proton-env
@@ -6,6 +6,7 @@ export STEAM_COMPAT_LAUNCHER_SERVICE=proton
export PROTON_USE_NTSYNC=1
export PROTON_ENABLE_WAYLAND=1
+export PROTON_WAYLAND_MONITOR=$MAIN_MONITOR
export DXVK_HUD=compiler
export DXVK_LOG_LEVEL=none
@@ -26,11 +27,9 @@ xrandr --output $MAIN_MONITOR --primary
scxctl start --sched lavd --mode gaming
if [[ $MANGOHUD == 1 || -z $MANGOHUD ]]; then
- # If the old LD_PRELOAD isn't included steam overlay will be disabled. Lag bomb still an issue?
- #env LD_PRELOAD="$LD_PRELOAD:/usr/lib64/libgamemodeauto.so" mangohud "$@"
- env LD_PRELOAD="/usr/lib64/libgamemodeauto.so" mangohud "$@"
+ env LD_PRELOAD="$LD_PRELOAD:/usr/lib64/libgamemodeauto.so" mangohud "$@"
else
- env LD_PRELOAD="/usr/lib64/libgamemodeauto.so" "$@"
+ env LD_PRELOAD="$LD_PRELOAD:/usr/lib64/libgamemodeauto.so" "$@"
fi
scxctl stop
diff --git a/scripts/desktop/proton-env32 b/scripts/desktop/proton-env32
index b6d2ebc..6b69976 100755
--- a/scripts/desktop/proton-env32
+++ b/scripts/desktop/proton-env32
@@ -4,6 +4,7 @@ export STEAM_COMPAT_LAUNCHER_SERVICE=proton
export PROTON_USE_NTSYNC=1
export PROTON_ENABLE_WAYLAND=1
+export PROTON_WAYLAND_MONITOR=$MAIN_MONITOR
export DXVK_HUD=compiler
export DXVK_LOG_LEVEL=none
@@ -20,10 +21,9 @@ xrandr --output $MAIN_MONITOR --primary
scxctl start --sched lavd --mode gaming
if [[ $MANGOHUD == 1 || -z $MANGOHUD ]]; then
- #env LD_PRELOAD="$LD_PRELOAD:/usr/lib/libgamemodeauto.so" mangohud "$@"
- env LD_PRELOAD="/usr/lib/libgamemodeauto.so:/usr/lib/libMangoHud.so:/usr/lib/libMangoHud_opengl.so" mangohud "$@"
+ env LD_PRELOAD="$LD_PRELOAD:/usr/lib/libgamemodeauto.so:/usr/lib/libMangoHud.so:/usr/lib/libMangoHud_opengl.so" mangohud "$@"
else
- env LD_PRELOAD="/usr/lib/libgamemodeauto.so" "$@"
+ env LD_PRELOAD="$LD_PRELOAD:/usr/lib/libgamemodeauto.so" "$@"
fi
scxctl stop
diff --git a/themes/iroha/colors.txt b/themes/iroha/colors.txt
new file mode 100644
index 0000000..a898266
--- /dev/null
+++ b/themes/iroha/colors.txt
@@ -0,0 +1,39 @@
+0, 0, 0
+215, 95, 0
+175, 95, 0
+255, 215, 95
+0, 95, 95
+255, 95, 135
+255, 175, 0
+238, 238, 238
+128, 128, 128 // 8
+215, 135, 0
+175, 135, 0
+255, 255, 95
+0, 135, 95
+255, 135, 135
+255, 215, 0
+255, 255, 255
+
+def vec4_to_hex(colors):
+ for c in colors:
+ print('#%08x' % (
+ (round(c[0] * 255) << 24) & 0xFF000000|
+ (round(c[1] * 255) << 16) & 0x00FF0000|
+ (round(c[2] * 255) << 8 ) & 0x0000FF00|
+ (round(c[3] * 255 ) & 0x000000FF)))
+
+def hex_to_vec4(colors):
+ for c in colors:
+ print('%d,%d,%d,%d' % (
+ (c >> 24 & 0xFF),
+ (c >> 16 & 0xFF),
+ (c >> 8 & 0xFF),
+ (c & 0xFF)))
+
+def hex_to_vec3(colors):
+ for c in colors:
+ print('%d,%d,%d' % (
+ (c >> 16 & 0xFF),
+ (c >> 8 & 0xFF),
+ (c & 0xFF)))
diff --git a/themes/iroha/konsole/iroha.colorscheme b/themes/iroha/konsole/iroha.colorscheme
new file mode 100644
index 0000000..61124b1
--- /dev/null
+++ b/themes/iroha/konsole/iroha.colorscheme
@@ -0,0 +1,109 @@
+[Background]
+Color=0,0,0
+
+[BackgroundFaint]
+Color=0,0,0
+
+[BackgroundIntense]
+Color=0,0,0
+
+[Color0]
+Color=0,0,0
+
+[Color0Faint]
+Color=0,0,0
+
+[Color0Intense]
+Color=128,128,128
+
+[Color1]
+Color=215,95,0
+
+[Color1Faint]
+Color=215,95,0
+
+[Color1Intense]
+Color=215,135,0
+
+[Color2]
+Color=175,95,0
+
+[Color2Faint]
+Color=175,95,0
+
+[Color2Intense]
+Color=175,135,0
+
+[Color3]
+Color=255,215,95
+
+[Color3Faint]
+Color=255,215,95
+
+[Color3Intense]
+Color=255,255,95
+
+[Color4]
+Color=0,95,95
+
+[Color4Faint]
+Color=0,95,95
+
+[Color4Intense]
+Color=0,135,95
+
+[Color5]
+Color=255,95,135
+
+[Color5Faint]
+Color=255,95,135
+
+[Color5Intense]
+Color=255,135,135
+
+[Color6]
+Color=255,175,0
+
+[Color6Faint]
+Color=255,175,0
+
+[Color6Intense]
+Color=255,215,0
+
+[Color7]
+Color=238,238,238
+
+[Color7Faint]
+Color=238,238,238
+
+[Color7Intense]
+Color=255,255,255
+
+[Color8]
+Color=128,128,128
+
+[Color8Faint]
+Color=128,128,128
+
+[Color8Intense]
+Color=128,128,128
+
+[Foreground]
+Color=238,238,238
+
+[ForegroundFaint]
+Color=238,238,238
+
+[ForegroundIntense]
+Color=255,255,255
+
+[General]
+Anchor=0.5,0.5
+Blur=false
+ColorRandomization=false
+Description=iroha
+FillStyle=Tile
+Opacity=1
+Wallpaper=
+WallpaperFlipType=NoFlip
+WallpaperOpacity=1
diff --git a/themes/iroha/konsole/iroha.profile b/themes/iroha/konsole/iroha.profile
new file mode 100644
index 0000000..eeb0814
--- /dev/null
+++ b/themes/iroha/konsole/iroha.profile
@@ -0,0 +1,8 @@
+[Appearance]
+BoldIntense=false
+ColorScheme=iroha
+Font=Liberation Mono,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
+
+[General]
+Name=iroha
+Parent=FALLBACK/
diff --git a/themes/iroha/sway/theme b/themes/iroha/sway/theme
index 00edac1..6b9e661 100644
--- a/themes/iroha/sway/theme
+++ b/themes/iroha/sway/theme
@@ -9,12 +9,20 @@ set $urgent #d75f00
set $wallpaper1 "~/c/dotfiles/themes/iroha/wallpaper/wallpaper.png"
set $wallpaper2 "~/c/dotfiles/themes/iroha/wallpaper/wallpaper2.png"
+set $wallpaperV "~/c/dotfiles/themes/iroha/wallpaper/wallpaper_vert.png"
include ../monitors
output $monitor1 {
- bg $wallpaper1 fill
+#bg $wallpaper1 fill
+ bg $c1 solid_color
+}
+
+output $monitor2 {
+#bg $wallpaperV fill
+ bg $c1 solid_color
}
bindsym --no-repeat $mod4+F1 output $monitor1 bg $wallpaper1 fill
bindsym --no-repeat $mod4+F2 output $monitor1 bg $wallpaper2 fill
+bindsym --no-repeat $mod4+F3 output $monitor1 bg $c1 solid_color
diff --git a/themes/iroha/wallpaper/41555043_p0.png b/themes/iroha/wallpaper/41555043_p0.png
new file mode 100644
index 0000000..e920b3b
--- /dev/null
+++ b/themes/iroha/wallpaper/41555043_p0.png
Binary files differ
diff --git a/themes/iroha/wallpaper/links.txt b/themes/iroha/wallpaper/links.txt
index a244254..2075e06 100644
--- a/themes/iroha/wallpaper/links.txt
+++ b/themes/iroha/wallpaper/links.txt
@@ -3,3 +3,5 @@ https://web.archive.org/web/20160805050254/http://www.konami.jp/bemani/bm2dx/bm2
https://web.archive.org/web/20160805033011/http://www.konami.jp/bemani/bm2dx/bm2dx18/image/18tp_bn_mini_2.png
https://web.archive.org/web/20160805153756/http://www.konami.jp/bemani/bm2dx/bm2dx18/image/18tp_bn_mini_1.png
https://web.archive.org/web/20160805164320/http://www.konami.jp/bemani/bm2dx/bm2dx18/image/18tp_bn_mini_0.png
+https://www.pixiv.net/en/artworks/72357187
+https://www.pixiv.net/en/artworks/61635856
diff --git a/themes/iroha/wallpaper/wallpaper_vert.png b/themes/iroha/wallpaper/wallpaper_vert.png
new file mode 100644
index 0000000..df8b103
--- /dev/null
+++ b/themes/iroha/wallpaper/wallpaper_vert.png
Binary files differ
diff --git a/themes/iroha/wallpaper/wallpaper_vert.xcf b/themes/iroha/wallpaper/wallpaper_vert.xcf
new file mode 100644
index 0000000..1c43f74
--- /dev/null
+++ b/themes/iroha/wallpaper/wallpaper_vert.xcf
Binary files differ