From e13ebf6b7a090732470dbc963ac08bacd305a5f7 Mon Sep 17 00:00:00 2001 From: seraphim <18ycm9tx@anonaddy.me> Date: Mon, 17 Aug 2026 18:52:02 +0700 Subject: . --- niri/.config/niri/config.kdl | 2 ++ niri/.config/niri/theme-switcher.sh | 7 ++++- nvim/.config/nvim/.gitignore | 8 +++++ nvim/.config/nvim/lazy-lock.json | 34 --------------------- portage/etc/portage/make.conf | 59 ++++++++++++++++++++++++++++++++----- portage/var/lib/portage/world | 3 ++ rmpc/.config/rmpc/config.ron | 2 +- waybar/.config/waybar/config.jsonc | 7 +++++ waybar/.config/waybar/kbd-layout.sh | 42 ++++++++++++++++++++++++++ waybar/.config/waybar/style.css | 1 + zshrc/.zshrc | 3 ++ 11 files changed, 125 insertions(+), 43 deletions(-) create mode 100644 nvim/.config/nvim/.gitignore delete mode 100644 nvim/.config/nvim/lazy-lock.json create mode 100755 waybar/.config/waybar/kbd-layout.sh diff --git a/niri/.config/niri/config.kdl b/niri/.config/niri/config.kdl index ee872de..6f573ca 100644 --- a/niri/.config/niri/config.kdl +++ b/niri/.config/niri/config.kdl @@ -8,6 +8,8 @@ spawn-at-startup "/usr/libexec/hyprpolkitagent" spawn-at-startup "dbus-update-activation-environment" "WAYLAND_DISPLAY" "DISPLAY" "XDG_CURRENT_DESKTOP" spawn-at-startup "/home/seraphim/dotfiles-gentoo/niri/.config/niri/theme-switcher.sh" spawn-at-startup "sh" "-c" "NO_AT_BRIDGE=1 waybar" +spawn-at-startup "/usr/bin/Throne" +spawn-at-startup "mpd" prefer-no-csd screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" diff --git a/niri/.config/niri/theme-switcher.sh b/niri/.config/niri/theme-switcher.sh index 6a22b0a..0ab25af 100755 --- a/niri/.config/niri/theme-switcher.sh +++ b/niri/.config/niri/theme-switcher.sh @@ -27,14 +27,19 @@ while true; do wal -n -l -i "$LIGHT_WALLPAPER" awww img "$LIGHT_WALLPAPER" awww -n backdrop img "$LIGHT_BLUR_WALLPAPER" + + # Сообщаем системе, что включилась светлая тема + darkman set light else wal -n -i "$DARK_WALLPAPER" awww img "$DARK_WALLPAPER" awww -n backdrop img "$DARK_BLUR_WALLPAPER" + + # Сообщаем системе, что включилась тёмная тема + darkman set dark fi killall -SIGUSR2 waybar - killall -USR1 foot echo "$TARGET_STATE" >"$STATE_FILE" diff --git a/nvim/.config/nvim/.gitignore b/nvim/.config/nvim/.gitignore new file mode 100644 index 0000000..cc5457a --- /dev/null +++ b/nvim/.config/nvim/.gitignore @@ -0,0 +1,8 @@ +tt.* +.tests +doc/tags +debug +.repro +foo.* +*.log +data diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json deleted file mode 100644 index 4bb05d4..0000000 --- a/nvim/.config/nvim/lazy-lock.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "LazyVim": { "branch": "main", "commit": "459a4c3b1059671e766a46c7cc223827dc67e3d0" }, - "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, - "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "catppuccin": { "branch": "main", "commit": "edefef779ab08ce1a4a404713e3012b0d202bd35" }, - "conform.nvim": { "branch": "master", "commit": "016802de402556da54c36bd7359b441266b01cdd" }, - "flash.nvim": { "branch": "main", "commit": "b6346946d10d07998efee029fb0f7a593806d0cd" }, - "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, - "gitsigns.nvim": { "branch": "main", "commit": "5be654f2232c10ddcad19c1607a67b6b4b78fc29" }, - "grug-far.nvim": { "branch": "main", "commit": "11595bf747edc270bce2069d1020502ad4ae56cf" }, - "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, - "lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" }, - "lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "67029ccdac1ef8941e13b826417bc0ffac24cc86" }, - "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" }, - "mini.ai": { "branch": "main", "commit": "25248c6aa002391936a6200f12d1466015987133" }, - "mini.icons": { "branch": "main", "commit": "98faae31e9be1cc054ae63485e58ceb185efcad0" }, - "mini.pairs": { "branch": "main", "commit": "b1c5a726921b7a8c9321e9a7a208aa0571de5810" }, - "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, - "nui.nvim": { "branch": "main", "commit": "5959922693a785a0e1624b45c968c844822f1ca1" }, - "nvim-lint": { "branch": "master", "commit": "9b99aad869102ac01775187abd8d49017b148612" }, - "nvim-lspconfig": { "branch": "master", "commit": "51dbf5359da86721662c87ca10eb73add973737b" }, - "nvim-treesitter": { "branch": "main", "commit": "7caec274fd19c12b55902a5b795100d21531391f" }, - "nvim-treesitter-textobjects": { "branch": "main", "commit": "898ee307df58f854d11cd7edd06472574d48014e" }, - "nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" }, - "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, - "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, - "snacks.nvim": { "branch": "main", "commit": "882c996cf28183f4d63640de0b4c02ec886d01f2" }, - "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, - "tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" }, - "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, - "ts-comments.nvim": { "branch": "main", "commit": "a59d6092213447450191122c9346f309161504cb" }, - "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } -} diff --git a/portage/etc/portage/make.conf b/portage/etc/portage/make.conf index 91453ba..33359cb 100644 --- a/portage/etc/portage/make.conf +++ b/portage/etc/portage/make.conf @@ -1,20 +1,65 @@ +# ========================================================================= +# COMPILER FLAGS +# ========================================================================= +# Optimization flags for AMD Ryzen 5 5600X (Zen 3 architecture) COMMON_FLAGS="-O2 -pipe -march=znver3" -MAKEOPTS="-j12" -ACCEPT_LICENSE="*" -VIDE_CARDS="nvidia" CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}" FCFLAGS="${COMMON_FLAGS}" FFLAGS="${COMMON_FLAGS}" -GENTOO_MIRRORS="https://gentoo-mirror.alexxy.name/" +# Linker flags to optimize binaries and drop unused dependencies +LDFLAGS="-Wl,-O1 -Wl,--as-needed" + +# ========================================================================= +# HARDWARE & MULTITHREADING +# ========================================================================= +# Set to 12 threads for AMD Ryzen 5 5600X and limit system load average +MAKEOPTS="-j12 -l12" + +# CPU instruction sets tailored for Zen 3 +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" + +# Graphics card drivers (NVIDIA GTX 1650) +VIDEO_CARDS="nvidia" + +# ========================================================================= +# GLOBAL USE FLAGS +# ========================================================================= +# Hardware/Graphics: wayland, X, opengl, egl, vulkan +# System: dbus, udev, polkit, elogind, btrfs, zstd, lz4 +# Audio: alsa, pipewire, pulseaudio, sound-server +# Toolkits & Misc: screencast, gtk, qt5, qt6 +# Disabled (-): systemd, kde, gnome, xfce, test, telemetry +USE="wayland X opengl egl vulkan dbus udev alsa pipewire pulseaudio sound-server btrfs zstd lz4 polkit elogind -systemd -kde -gnome -xfce -test -telemetry screencast gtk qt5 qt6" + +# Accept all software licenses +ACCEPT_LICENSE="*" -# NOTE: This stage was built with the bindist USE flag enabled +# ========================================================================= +# PORTAGE CONFIGURATION +# ========================================================================= +# Default emerge options: ask for confirmation, verbose output, show tree +EMERGE_DEFAULT_OPTS="--ask --verbose --tree" + +# Enable parallel fetching of source code and parallel installation +FEATURES="parallel-fetch parallel-install" + +# Gentoo source mirrors +GENTOO_MIRRORS="https://gentoo-mirror.alexxy.name/" # This sets the language of build output to English. # Please keep this setting intact when reporting bugs. LC_MESSAGES=C.UTF-8 -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" -GRUB_PLATFORMS="efi-64" + +# ========================================================================= +# SYSTEM & MISCELLANEOUS +# ========================================================================= +# Support for 64-bit and 32-bit applications (needed for Steam, Wine, etc.) ABI_X86="64 32" + +# Target platform for GRUB bootloader +GRUB_PLATFORMS="efi-64" + +# Specific Nerd Fonts to install NERDFONTS="jetbrainsmono" diff --git a/portage/var/lib/portage/world b/portage/var/lib/portage/world index cfcc6ae..f2a1564 100644 --- a/portage/var/lib/portage/world +++ b/portage/var/lib/portage/world @@ -24,6 +24,7 @@ dev-vcs/git games-util/steam-launcher gnome-extra/polkit-gnome gui-apps/awww +gui-apps/darkman gui-apps/foot gui-apps/swaybg gui-apps/tuigreet @@ -45,6 +46,8 @@ media-fonts/noto-emoji media-fonts/unifont media-gfx/imagemagick media-libs/mesa +media-sound/mpc +media-sound/mpd media-sound/pavucontrol media-sound/playerctl media-sound/rmpc diff --git a/rmpc/.config/rmpc/config.ron b/rmpc/.config/rmpc/config.ron index bf8bf65..765d13b 100644 --- a/rmpc/.config/rmpc/config.ron +++ b/rmpc/.config/rmpc/config.ron @@ -7,7 +7,7 @@ max_fps: 180, music_dir: "/mnt/giga/music", - lyrics_dir: "/mnt/giga/music", // + lyrics_dir: "/mnt/giga/music", theme: "~/.config/rmpc/theme.ron", album_art: ( diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc index 8fe5464..bba0757 100644 --- a/waybar/.config/waybar/config.jsonc +++ b/waybar/.config/waybar/config.jsonc @@ -19,6 +19,8 @@ "modules-right": [ "custom/separator", "custom/separator3", + "custom/kbd", + "custom/separator3", "pulseaudio", "custom/separator3", "memory", @@ -62,6 +64,11 @@ "critical": 80 } }, + "custom/kbd": { + "exec": "/home/seraphim/dotfiles-gentoo/waybar/.config/waybar/kbd-layout.sh", + "restart-interval": 5, + "tooltip": false + }, "custom/clock": { "exec": "date +'%H:%M %p - %A, %b %d' | tr '[:upper:]' '[:lower:]'", "interval": 60, diff --git a/waybar/.config/waybar/kbd-layout.sh b/waybar/.config/waybar/kbd-layout.sh new file mode 100755 index 0000000..e81462a --- /dev/null +++ b/waybar/.config/waybar/kbd-layout.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +# Kill any leftover instances so reloads don't pile up. +for p in $(pgrep -f "kbd-layout.sh"); do + [ "$p" != "$$" ] && kill "$p" 2>/dev/null +done + +STATE="${XDG_RUNTIME_DIR:-/tmp}/waybar-kbd.state" +rm -f "$STATE" + +# Index of the Russian layout (from configured layouts), so we don't hardcode order. +RUS_IDX=$(niri msg keyboard-layouts 2>/dev/null | grep -i russian | grep -oE '^[ *]*[0-9]+' | tr -d ' *' | head -1) + +kbd_query() { + niri msg keyboard-layouts 2>/dev/null | grep -Fm1 '*' | grep -qi russian && echo Ru || echo En +} + +# Parse a "Keyboard layout switched: N" or "...current_idx: N" event line. +kbd_event() { + idx=$(printf '%s' "$1" | grep -oE '[0-9]+' | tail -1) + [ "$idx" = "$RUS_IDX" ] && echo Ru || echo En +} + +emit() { + v="$1"; src="$2" + echo "$v" + echo "$v" > "$STATE" +} + +# Instant path: react to niri's layout-change events. +niri msg event-stream 2>/dev/null | { + while true; do + if IFS= read -r -t 0.2 line; then + case "$line" in + *"Keyboard layout switched"*|*"Keyboard layouts changed"*) emit "$(kbd_event "$line")" event ;; + esac + else + v=$(kbd_query) + [ "$(cat "$STATE" 2>/dev/null)" != "$v" ] && emit "$v" poll + fi + done +} diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css index 17fc256..196a1f7 100644 --- a/waybar/.config/waybar/style.css +++ b/waybar/.config/waybar/style.css @@ -81,6 +81,7 @@ window#waybar { #memory, #custom-media, +#custom-kbd, #tray, #cpu, #custom-clock, diff --git a/zshrc/.zshrc b/zshrc/.zshrc index 0782e72..be47620 100644 --- a/zshrc/.zshrc +++ b/zshrc/.zshrc @@ -114,3 +114,6 @@ alias la="eza -lha --icons" alias tree="eza --tree --icons" eval "$(starship init zsh)" + +# Swing Music installation +export PATH="/home/seraphim/.local/bin:$PATH" -- cgit v1.2.3