diff --git a/.config/QtProject.conf b/.config/QtProject.conf deleted file mode 100644 index 589dbc1..0000000 --- a/.config/QtProject.conf +++ /dev/null @@ -1,8 +0,0 @@ -[FileDialog] -history=file:///home/unconfer/dwnlds, file:///home/unconfer/adrenaline/chem, file:///home/unconfer/vids -lastVisited=file:///home/unconfer/vids -qtVersion=6.9.2 -shortcuts=file:, file:///home/unconfer, file:///home/unconfer/Desktop, file:///home/unconfer/Downloads, file:///home/unconfer/Music, file:///home/unconfer/Documents/lmms -sidebarWidth=111 -treeViewHeader=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1\xb5\0\0\0\x4\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x4\0\0\0\xe1\0\0\0\x1\0\0\0\0\0\0\0\x39\0\0\0\x1\0\0\0\0\0\0\0\x39\0\0\0\x1\0\0\0\0\0\0\0\x62\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1) -viewMode=Detail diff --git a/.config/apps-list.md b/.config/apps-list.md deleted file mode 100644 index a9ccdb0..0000000 --- a/.config/apps-list.md +++ /dev/null @@ -1,1190 +0,0 @@ -7zip 25.01-1 -a52dec 0.8.0-2 -aalib 1.4rc5-19 -abseil-cpp 20250814.1-1 -acl 2.3.2-1 -acpica 20250404-1 -ada 3.2.7-1 -adwaita-cursors 49.0-1 -adwaita-fonts 49.0-2 -adwaita-icon-theme 49.0-1 -adwaita-icon-theme-legacy 46.2-3 -alsa-card-profiles 1:1.4.8-2 -alsa-lib 1.2.14-1 -alsa-plugins 1:1.2.12-5 -alsa-topology-conf 1.2.5.1-4 -alsa-ucm-conf 1.2.14-2 -android-tools 35.0.2-21 -android-udev 20250525-1 -aom 3.13.1-1 -appstream 1.1.1-1 -appstream-glib 0.8.3-2 -archlinux-keyring 20250929-1 -argon2 20190702-6 -at-spi2-core 2.58.0-1 -atkmm 2.28.4-1 -attr 2.5.2-1 -audit 4.0.5-1 -augeas 1.14.1-4 -autoconf 2.72-1 -automake 1.18.1-1 -avahi 1:0.9rc2-1 -babl 0.1.116-1 -base 3-2 -base-devel 1-2 -bash 5.3.3-2 -binutils 2.45+r29+g2b2e51a31ec7-1 -bison 3.8.2-8 -blas 3.12.1-2 -blueprint-compiler 0.18.0-1 -bluetui 0.6-1 -bluez 5.84-1 -bluez-libs 5.84-1 -bluez-utils 5.84-1 -boost-libs 1.88.0-3 -brltty 6.7-5 -brotli 1.1.0-3 -btop 1.4.5-1 -btrfs-progs 6.17-1 -bubblewrap 0.11.0-1 -bzip2 1.0.8-6 -c-ares 1.34.5-1 -ca-certificates 20240618-1 -ca-certificates-mozilla 3.117-1 -ca-certificates-utils 20240618-1 -cabextract 1.11-2 -cairo 1.18.4-1 -cairomm 1.14.5-1 -cairomm-1.16 1.18.0-1 -calcurse 4.8.2-1 -cantarell-fonts 1:0.303.1-2 -capstone 5.0.6-1 -cava 0.10.6-1 -cbindgen 0.29.0-1 -cdparanoia 10.2-9 -cdrtools 3.02a09-6 -chromaprint 1.6.0-2 -chrpath 0.17-1 -clang 20.1.8-2 -clipse 1.1.0-1 -clock-tui 0.6.1-1 -clucene 2.3.3.4-16 -cmake 4.1.2-1 -cmus 2.12.0-4 -compiler-rt 20.1.8-1 -containerd 2.1.4-1 -coreutils 9.8-2 -cowsay 3.8.4-1 -cpio 2.15-3 -cppdap 1.58.0-2 -cryptsetup 2.8.1-1 -cuda 13.0.1-1 -curl 8.16.0-1 -cython 3.1.4-1 -dav1d 1.5.1-1 -db5.3 5.3.28-5 -dbus 1.16.2-1 -dbus-broker 37-2 -dbus-broker-units 37-2 -dbus-glib 0.114-1 -dbus-units 37-2 -dconf 0.49.0-1 -debugedit 5.2-1 -default-cursors 3-1 -desktop-file-utils 0.28-1 -device-mapper 2.03.35-1 -dhcpcd 10.2.4-1 -diffstat 1.68-1 -diffutils 3.12-2 -djvulibre 3.5.29-1 -dnsmasq 2.91-1 -docker 1:28.5.1-1 -docker-compose 2.40.0-1 -dosfstools 4.2-5 -double-conversion 3.3.1-1 -dtc 1.7.2-4 -duktape 2.7.0-7 -e2fsprogs 1.47.3-1 -edk2-aarch64 202508-1 -edk2-arm 202508-1 -edk2-ovmf 202508-1 -efibootmgr 18-3 -efivar 39-1 -egl-gbm 1.1.2.1-1 -egl-wayland 4:1.1.20-1 -egl-x11 1.0.3-1 -eglexternalplatform 1.2.1-1 -electron37 37.5.1-1 -enchant 2.8.12-1 -exempi 2.6.6-2 -exfatprogs 1.2.9-1 -exiv2 0.28.7-1 -expat 2.7.3-1 -eza 0.23.4-1 -f2fs-tools 1.16.0-3 -faac 1.31.1-1 -faad2 2.11.2-1 -fakeroot 1.37.1.2-1 -fastfetch 2.53.0-1 -fcft 3.3.2-1 -ffmpeg 2:8.0-2 -ffmpeg4.4 4.4.6-3 -fftw 3.3.10-7 -file 5.46-5 -filesystem 2025.05.03-1 -findutils 4.10.0-3 -firefox 143.0.4-1 -fish 4.1.2-1 -flac 1.5.0-1 -flex 2.6.4-5 -fluidsynth 2.4.8-1 -fmt 12.0.0-1 -fnott 1.8.0-1 -fontconfig 2:2.17.1-1 -freeglut 3.6.0-2 -freetype2 2.14.1-1 -fribidi 1.0.16-2 -fuse-common 3.17.1-1 -fuse2 2.9.9-5 -fuse3 3.17.1-1 -fuzzel 1.13.1-1 -fzf 0.65.2-1 -gawk 5.3.2-1 -gc 8.2.8-2 -gcc 15.2.1+r22+gc4e96a094636-1 -gcc-libs 15.2.1+r22+gc4e96a094636-1 -gcr-4 4.4.0.1-1 -gdbm 1.26-1 -gdk-pixbuf2 2.44.3-1 -gegl 0.4.64-1 -gendesk 1.0.10-1 -gettext 0.26-1 -gfxstream 0.1.2-2 -ghostscript 10.06.0-1 -ghostty 1.2.0-1 -ghostty-shell-integration 1.2.0-1 -ghostty-terminfo 1.2.0-1 -giflib 5.2.2-2 -gimp 3.0.6-2 -girara 0.4.5-1 -git 2.51.0-1 -glib-networking 1:2.80.1-1 -glib2 2.86.0-2 -glib2-devel 2.86.0-2 -glibc 2.42+r17+gd7274d718e6f-1 -glibmm 2.66.8-1 -glibmm-2.68 2.86.0-1 -glm 1.0.1-1 -glslang 1:1.4.321.0-1 -glu 9.0.3-2 -glusterfs 1:11.1-5 -glycin 2.0.2-2 -gmp 6.3.0-2 -gnome-autoar 0.4.5-1 -gnome-desktop 1:44.4-1 -gnome-desktop-4 1:44.4-1 -gnome-desktop-common 1:44.4-1 -gnome-themes-extra 3.28+r6+g45b1d457-2 -gnome-tweaks 49.0-1 -gnu-free-fonts 20120503-8 -gnulib-l10n 20241231-1 -gnupg 2.4.8-1 -gnutls 3.8.10-1 -go 2:1.25.2-1 -gobject-introspection 1.86.0-1 -gobject-introspection-runtime 1.86.0-1 -gperftools 2.17.2-1 -gpgme 2.0.1-1 -gpgmepp 2.0.0-2 -gpm 1.20.7.r38.ge82d1a6-6 -gpsd 3.26.1-2 -gptfdisk 1.0.10-1 -graphene 1.10.8-2 -graphite 1:1.3.14-5 -grep 3.12-2 -groff 1.23.0-7 -grub 2:2.12.r359.g19c698d12-1 -gsettings-desktop-schemas 49.0-1 -gsettings-system-schemas 49.0-1 -gsm 1.0.22-2 -gssdp 1.6.4-1 -gst-libav 1.26.6-3 -gst-plugins-bad 1.26.6-3 -gst-plugins-bad-libs 1.26.6-3 -gst-plugins-base 1.26.6-3 -gst-plugins-base-libs 1.26.6-3 -gst-plugins-good 1.26.6-3 -gst-plugins-ugly 1.26.6-3 -gstreamer 1.26.6-3 -gtest 1.17.0-1 -gtk-layer-shell 0.9.2-1 -gtk-session-lock 0.2.0-2 -gtk-theme-bubble-darker-git r208.5eb332a-1 -gtk-theme-elementary 8.2.1-1 -gtk-theme-material-black 2.9.9_04-1 -gtk-update-icon-cache 1:4.20.2-3 -gtk3 1:3.24.51-1 -gtk4 1:4.20.2-3 -gtk4-layer-shell 1.2.0-1 -gtklock 4.0.0-1 -gtkmm-4.0 4.20.0-1 -gtkmm3 3.24.10-1 -guile 3.0.10-1 -gumbo-parser 0.13.2-1 -gupnp 1:1.6.9-1 -gupnp-dlna 0.12.0-4 -gupnp-igd 1.6.0-2 -gvfs 1.58.0-2 -gzip 1.14-2 -harfbuzz 12.1.0-1 -harfbuzz-icu 12.1.0-1 -hicolor-icon-theme 0.18-1 -hidapi 0.15.0-1 -highway 1.3.0-1 -hivex 1.3.24-4 -hunspell 1.7.2-2 -hwdata 0.400-1 -hyphen 2.8.8-6 -hyprpicker 0.4.5-7 -hyprutils 0.10.0-1 -hyprwayland-scanner 0.4.5-1 -iana-etc 20250612-1 -icu 76.1-1 -ijs 0.35-6 -imagemagick 7.1.2.5-1 -imake 1.0.10-2 -imath 3.2.2-1 -img2pdf 0.6.1-1 -imlib2 1.12.5-1 -imv 4.5.0-6 -iniparser 4.2.6-2 -iproute2 6.17.0-1 -iptables 1:1.8.11-2 -iputils 20250605-1 -iso-codes 4.18.0-1 -jansson 2.14.1-1 -jasper 4.2.8-1 -jbig2dec 0.20-1 -jbigkit 2.1-8 -jemalloc 1:5.3.0-5 -jfsutils 1.1.15-9 -json-c 0.18-2 -json-glib 1.10.8-1 -jsoncpp 1.9.6-3 -kbd 2.9.0-1 -kcoreaddons 6.18.0-1 -kernel-headers-musl 4.19.88-3 -keyutils 1.6.3-3 -kitty 0.43.1-1 -kitty-shell-integration 0.43.1-1 -kitty-terminfo 0.43.1-1 -kmod 34.2-1 -krb5 1.21.3-2 -l-smash 2.14.5-4 -lame 3.100-6 -lapack 3.12.1-2 -lcms2 2.17-1 -leancrypto 1.5.1-1 -lensfun 1:0.3.4-5 -leptonica 1.86.0-1 -less 1:679-1 -lib32-alsa-lib 1.2.14-1 -lib32-alsa-plugins 1.2.12-1 -lib32-audit 4.0.5-1 -lib32-brotli 1.1.0-1 -lib32-bzip2 1.0.8-4 -lib32-curl 8.16.0-1 -lib32-dbus 1.16.2-1 -lib32-e2fsprogs 1.47.3-1 -lib32-expat 2.7.3-1 -lib32-fontconfig 2:2.17.1-1 -lib32-freetype2 2.14.1-1 -lib32-gcc-libs 15.2.1+r22+gc4e96a094636-1 -lib32-glib2 2.86.0-2 -lib32-glibc 2.42+r17+gd7274d718e6f-1 -lib32-icu 76.1-1 -lib32-json-c 0.18-2 -lib32-keyutils 1.6.3-2 -lib32-krb5 1.21.3-1 -lib32-libcap 2.76-1 -lib32-libdrm 2.4.125-1 -lib32-libelf 0.193-4 -lib32-libffi 3.5.2-1 -lib32-libgcrypt 1.11.2-1 -lib32-libglvnd 1.7.0-1 -lib32-libgpg-error 1.55-1 -lib32-libidn2 2.3.7-1 -lib32-libldap 2.6.10-1 -lib32-libnghttp2 1.67.1-1 -lib32-libnghttp3 1.12.0-1 -lib32-libnm 1.54.1-1 -lib32-libnsl 2.0.1-1 -lib32-libpciaccess 0.18.1-1 -lib32-libpipewire 1:1.4.8-2 -lib32-libpng 1.6.50-1 -lib32-libpsl 0.21.5-1 -lib32-libssh2 1.11.1-1 -lib32-libtasn1 4.20.0-1 -lib32-libtirpc 1.3.7-1 -lib32-libunistring 1.3-1 -lib32-libva 2.22.0-1 -lib32-libx11 1.8.12-2 -lib32-libxau 1.0.11-2 -lib32-libxcb 1.17.0-1 -lib32-libxcrypt 4.4.38-1 -lib32-libxcrypt-compat 4.4.38-1 -lib32-libxdmcp 1.1.5-1 -lib32-libxext 1.3.6-1 -lib32-libxfixes 6.0.1-2 -lib32-libxinerama 1.1.5-2 -lib32-libxml2 2.15.0-1 -lib32-libxshmfence 1.3.3-1 -lib32-libxss 1.2.4-2 -lib32-libxxf86vm 1.1.5-2 -lib32-llvm-libs 1:20.1.8-1 -lib32-lm_sensors 1:3.6.2-2 -lib32-mesa 1:25.2.4-1 -lib32-ncurses 6.5-2 -lib32-nspr 4.37-1 -lib32-nss 3.117-1 -lib32-nvidia-utils 580.95.05-1 -lib32-openssl 1:3.6.0-1 -lib32-p11-kit 0.25.10-2 -lib32-pam 1.7.1-1 -lib32-pcre2 10.46-1 -lib32-pipewire 1:1.4.8-2 -lib32-spirv-tools 1:1.4.321.0-1 -lib32-sqlite 3.50.4-1 -lib32-systemd 258-1 -lib32-util-linux 2.41.2-1 -lib32-vulkan-icd-loader 1.4.321.0-1 -lib32-wayland 1.24.0-1 -lib32-xz 5.8.1-1 -lib32-zlib 1.3.1-2 -lib32-zstd 1.5.7-2 -libabw 0.1.3-5 -libadwaita 1:1.8.0-1 -libaemu 0.1.2-5 -libaio 0.3.113-3 -libao 1.2.2-7 -libarchive 3.8.1-1 -libass 0.17.4-1 -libassuan 3.0.0-1 -libasyncns 1:0.8+r3+g68cd5af-3 -libatasmart 0.19-7 -libatomic_ops 7.8.2-1 -libavc1394 0.5.4-7 -libavif 1.3.0-2 -libavtp 0.2.0-3 -libb2 0.98.1-3 -libblockdev 3.3.1-1 -libblockdev-crypto 3.3.1-1 -libblockdev-fs 3.3.1-1 -libblockdev-loop 3.3.1-1 -libblockdev-mdraid 3.3.1-1 -libblockdev-nvme 3.3.1-1 -libblockdev-part 3.3.1-1 -libblockdev-swap 3.3.1-1 -libbluray 1.4.0-2 -libbpf 1.5.1-1 -libbs2b 3.1.0-9 -libbsd 0.12.2-2 -libbytesize 2.11-1 -libcaca 0.99.beta20-5 -libcacard 2.8.1-1 -libcanberra 1:0.30+r2+gc0620e4-4 -libcap 2.76-1 -libcap-ng 0.8.5-3 -libcbor 0.12.0-1 -libcdio 2.2.0-1 -libcdio-paranoia 10.2+2.0.2-1 -libcdr 0.1.8-2 -libcloudproviders 0.3.6-2 -libcmis 0.6.2-5 -libcolord 1.4.8-1 -libconfig 1.8.1-1 -libcue 2.3.0-1 -libcups 2:2.4.14-1 -libdaemon 0.14-6 -libdatachannel 0.23.2-2 -libdatrie 0.2.13-4 -libdbusmenu-glib 16.04.0.r498-2 -libdbusmenu-gtk3 16.04.0.r498-2 -libdc1394 2.2.7-1 -libdca 0.0.7-2 -libde265 1.0.16-2 -libdecor 0.2.3-1 -libdeflate 1.24-1 -libdiscid 0.6.5-2 -libdispatch 6.1-1 -libdisplay-info 0.3.0-1 -libdovi 3.3.2-1 -libdrm 2.4.126-1 -libdv 1.0.0-11 -libdvdnav 6.1.1-2 -libdvdread 6.1.3-2 -libe-book 0.1.3-18 -libebur128 1.2.6-2 -libedit 20250104_3.1-1 -libei 1.5.0-1 -libelf 0.193-5 -libepoxy 1.5.10-3 -libepubgen 0.1.1-5 -libetonyek 0.1.13-1 -libev 4.33-4 -libevdev 1.13.4-1 -libevent 2.1.12-4 -libewf 20140816-1 -libexif 0.6.25-1 -libexttextcat 3.4.7-1 -libfdk-aac 2.0.3-1 -libffi 3.5.2-1 -libfontenc 1.1.8-1 -libfreeaptx 0.2.2-1 -libfreehand 0.1.2-5 -libfyaml 0.9-1 -libgbinder 1.1.42-2 -libgcrypt 1.11.2-1 -libgexiv2 0.14.6-1 -libgirepository 1.86.0-1 -libgit2 1:1.9.1-1 -libglibutil 1.0.80-1 -libglvnd 1.7.0-3 -libgme 0.6.4-1 -libgpg-error 1.56-1 -libgsf 1.14.53-2 -libgudev 238-3 -libguestfs 1.56.2-1 -libgxps 0.3.2-5 -libheif 1.20.2-2 -libice 1.1.2-1 -libid3tag 0.16.3-2 -libidn 1.43-1 -libidn2 2.3.7-1 -libiec61883 1.2.0-9 -libimagequant 4.4.0-1 -libimobiledevice 1.3.0-17 -libimobiledevice-glue 1.3.2-1 -libinih 61-1 -libinput 1.29.1-1 -libinstpatch 1.1.7-2 -libiptcdata 1.0.5-4 -libiscsi 1.20.0-2 -libisl 0.27-1 -libixion 0.20.0-2 -libjpeg-turbo 3.1.2-1 -libjuice 1.6.2-1 -libjxl 0.11.1-4 -libksba 1.6.7-2 -liblangtag 0.6.8-1 -liblc3 1.1.3-1 -libldac 2.0.2.3-2 -libldap 2.6.10-2 -libldm 0.2.5-3 -liblouis 3.35.0-1 -liblqr 0.4.3-1 -liblrdf 0.6.1-5 -libltc 1.3.2-2 -libluv 1.48.0_2-1 -libmad 0.15.1b-10 -libmanette 0.2.12-1 -libmd 1.1.0-2 -libmfx 23.2.2-5 -libmicrodns 0.2.0-2 -libmikmod 3.3.13-1 -libmm-glib 1.24.2-1 -libmms 0.6.4-5 -libmng 2.0.3-4 -libmnl 1.0.5-2 -libmodplug 0.8.9.0-6 -libmpc 1.3.1-2 -libmpcdec 1:0.1+r475-6 -libmpdclient 2.23-1 -libmpeg2 0.5.1-11 -libmspub 0.1.4-17 -libmtp 1.1.22-1 -libmupdf 1.26.8-1 -libmwaw 0.3.22-3 -libmypaint 1.6.1-2 -libmysofa 1.3.3-1 -libnautilus-extension 49.0-1 -libnbd 1.22.4-1 -libndp 1.9-1 -libnetfilter_conntrack 1.0.9-2 -libnewt 0.52.25-1 -libnfnetlink 1.0.2-2 -libnfs 6.0.2-5 -libnftnl 1.3.0-1 -libnghttp2 1.67.1-1 -libnghttp3 1.12.0-1 -libngtcp2 1.16.0-1 -libnice 0.1.22-2 -libnl 3.11.0-1 -libnm 1.54.1-1 -libnotify 0.8.7-1 -libnsl 2.0.1-1 -libnumbertext 1.0.11-2 -libnvme 1.15-1 -libodfgen 0.1.8-5 -libogg 1.3.6-1 -libopenmpt 0.8.3-1 -liborcus 0.21.0-1 -libosinfo 1.12.0-2 -libp11-kit 0.25.10-2 -libpagemaker 0.0.4-4 -libpaper 2.2.6-1 -libpcap 1.10.5-3 -libpciaccess 0.18.1-2 -libpgm 5.3.128-3 -libpipeline 1.5.8-1 -libpipewire 1:1.4.8-2 -libplacebo 7.351.0-2 -libplist 2.7.0-1 -libpng 1.6.50-1 -libportal 0.9.1-2 -libportal-gtk4 0.9.1-2 -libproxy 0.5.11-1 -libpsl 0.21.5-2 -libpulse 17.0+r43+g3e2bb8a1e-1 -libqxp 0.0.2-13 -libraqm 0.10.3-1 -libraw 0.21.4-1 -libraw1394 2.1.2-4 -libreoffice-fresh 25.8.1-3 -libreoffice-fresh-ru 25.8.1-1 -librevenge 0.0.5-3 -librewolf-bin 1:143.0.4_1-2 -librsvg 2:2.61.1-1 -librsync 1:2.3.4-2 -libsamplerate 0.2.2-3 -libsasl 2.1.28-5 -libsass 3.6.6-1 -libseccomp 2.5.6-1 -libsecret 0.21.7-1 -libshout 1:2.4.6-5 -libsidplayfp 2.15.1-1 -libsigc++ 2.12.1-1 -libsigc++-3.0 3.6.0-1 -libsixel 1.10.5-1 -libslirp 4.9.1-1 -libsm 1.2.6-1 -libsndfile 1.2.2-3 -libsodium 1.0.20-1 -libsoup 2.74.3-4 -libsoup3 3.6.5-1 -libsoxr 0.1.3-4 -libspeechd 0.12.1-2 -libspiro 1:20240903-1 -libsrtp 1:2.7.0-1 -libssh 0.11.3-1 -libssh2 1.11.1-1 -libstaroffice 0.0.7-4 -libstemmer 3.0.1-1 -libsynctex 2025.2-2 -libsysprof-capture 49.0-1 -libtasn1 4.20.0-1 -libteam 1.32-2 -libthai 0.1.29-3 -libtheora 1.2.0-1 -libtiff 4.7.1-1 -libtirpc 1.3.7-1 -libtommath 1.3.0-1 -libtool 2.6.0-1 -libtorrent-rasterbar 1:2.0.11-4 -libtraceevent 1:1.8.4-1 -libtracefs 1.8.2-2 -libunibreak 6.1-1 -libunistring 1.3-1 -libunwind 1.8.2-1 -libupnp 1.14.25-1 -liburcu 0.15.3-1 -liburing 2.12-1 -libusb 1.0.29-1 -libusbmuxd 2.1.1-1 -libutf8proc 2.10.0-2 -libuv 1.51.0-1 -libva 2.22.0-1 -libvdpau 1.5-3 -libverto 0.3.2-5 -libvirt 1:11.7.0-1 -libvisio 0.1.10-1 -libvorbis 1.3.7-4 -libvpl 2.15.0-1 -libvpx 1.15.2-2 -libvterm 0.3.3-2 -libwacom 2.16.1-1 -libwebp 1.6.0-2 -libwireplumber 0.5.11-1 -libwmf 0.2.13-4 -libwpd 0.10.3-5 -libwps 0.4.14-3 -libx11 1.8.12-1 -libxau 1.0.12-1 -libxcb 1.17.0-1 -libxcomposite 0.4.6-2 -libxcrypt 4.4.38-1 -libxcrypt-compat 4.4.38-1 -libxcursor 1.2.3-1 -libxcvt 0.1.3-1 -libxdamage 1.1.6-2 -libxdmcp 1.1.5-1 -libxdp 1.5.6-1 -libxext 1.3.6-1 -libxfixes 6.0.2-1 -libxfont2 2.0.7-1 -libxft 2.3.9-1 -libxi 1.8.2-1 -libxinerama 1.1.5-2 -libxkbcommon 1.11.0-1 -libxkbcommon-x11 1.11.0-1 -libxkbfile 1.1.3-1 -libxml2 2.15.0-1 -libxmlb 0.3.24-1 -libxmu 1.2.1-1 -libxpm 3.5.17-2 -libxpresent 1.0.2-1 -libxrandr 1.5.4-1 -libxrender 0.9.12-1 -libxres 1.2.3-1 -libxshmfence 1.3.3-1 -libxslt 1.1.43-2 -libxss 1.2.5-1 -libxt 1.3.1-1 -libxtst 1.2.5-1 -libxv 1.0.13-1 -libxxf86vm 1.1.6-1 -libyaml 0.2.5-3 -libyuv r2426+464c51a03-1 -libzmf 0.0.2-18 -licenses 20240728-1 -lilv 0.24.26-1 -linux 6.17.1.arch1-1 -linux-api-headers 6.16-2 -linux-firmware 20250917-1 -linux-firmware-amdgpu 20250917-1 -linux-firmware-atheros 20250917-1 -linux-firmware-broadcom 20250917-1 -linux-firmware-cirrus 20250917-1 -linux-firmware-intel 20250917-1 -linux-firmware-mediatek 20250917-1 -linux-firmware-nvidia 20250917-1 -linux-firmware-other 20250917-1 -linux-firmware-radeon 20250917-1 -linux-firmware-realtek 20250917-1 -linux-firmware-whence 20250917-1 -lld 20.1.8-1 -llhttp 9.2.1-2 -llvm 20.1.8-1 -llvm-libs 20.1.8-1 -lm_sensors 1:3.6.2-1 -lmdb 0.9.33-1 -localsearch 3.10.0-2 -lpsolve 5.5.2.11-3 -lrzip 0.651-3 -lsb-release 2.0.r55.a25a4fc-1 -lsof 4.99.5-2 -lsscsi 0.32-2 -lua 5.4.8-2 -lua51-lpeg 1.1.0-4 -luajit 2.1.1753364724-1 -lutris 0.5.19-6 -lv2 1.18.10-1 -lvm2 2.03.35-1 -lxc 1:6.0.5-1 -ly 1.1.2-1 -lz4 1:1.10.0-2 -lzo 2.10-5 -lzop 1.04-4 -m4 1.4.20-1 -mailcap 2.1.54-2 -make 4.4.1-2 -man-db 2.13.1-1 -mbedtls 3.6.4-1 -md4c 0.5.2-1 -mdadm 4.4-2 -mesa 1:25.2.4-1 -mesa-utils 9.0.0-7 -meson 1.9.1-1 -minizip 1:1.3.1-2 -mjpegtools 2.2.1-3 -mkinitcpio 39.2-5 -mkinitcpio-busybox 1.36.1-1 -mobile-broadband-provider-info 20250613-1 -mpd 0.24.5-3 -mpdecimal 4.0.1-1 -mpfr 4.2.2-1 -mpg123 1.33.2-1 -mpv 1:0.40.0-7 -msgpack-c 6.1.0-2 -mtdev 1.1.7-1 -mtools 1:4.0.49-1 -mujs 1.3.7-1 -multipath-tools 0.12.0-1 -musl 1.2.5-6 -mypaint-brushes1 1.3.1-2 -nasm 2.16.03-2 -nautilus 49.0-1 -ncurses 6.5-4 -ndctl 79-1 -neon 0.35.0-1 -neovim 0.11.4-1 -nettle 3.10.2-1 -networkmanager 1.54.1-1 -nftables 1:1.1.5-1 -nicotine+ 3.3.10-1 -nilfs-utils 2.2.11-1 -ninja 1.12.1-2 -niri 25.08-2 -node-gyp 11.4.2-1 -nodejs 24.9.0-1 -nodejs-nopt 7.2.1-1 -noto-fonts-cjk 20240730-1 -noto-fonts-emoji 1:2.051-1 -npm 11.6.2-1 -npth 1.8-1 -nspr 4.37-1 -nss 3.117-1 -ntfs-3g 2022.10.3-2 -numactl 2.0.19-1 -nvidia 580.95.05-2 -nvidia-utils 580.95.05-1 -nwg-look 1.0.6-1 -obs-studio 32.0.1-2 -obsidian 1.9.14-1 -ocl-icd 2.3.3-1 -ocrmypdf 16.11.0-1 -ollama 0.12.3-1 -ollama-cuda 0.12.3-1 -oniguruma 6.9.10-1 -openal 1.24.3-2 -opencl-nvidia 580.95.05-1 -opencore-amr 0.1.6-2 -openexr 3.4.1-1 -openh264 2.6.0-1 -openjpeg2 2.5.4-1 -openssh 10.0p1-6 -openssl 3.6.0-1 -opus 1.5.2-1 -orc 0.4.41-1 -osinfo-db 20250606-1 -overskride 0.6.2-1 -p11-kit 0.25.10-2 -pacman 7.0.0.r6.gc685ae6-6 -pacman-contrib 1.13.0-1 -pacman-mirrorlist 20251003-1 -pam 1.7.1-1 -pambase 20250719-1 -pango 1:1.57.0-2 -pangomm 2.46.4-1 -pangomm-2.48 2.56.1-1 -parted 3.6-2 -paru 2.1.0-1 -paru-debug 2.1.0-1 -patch 2.8-1 -pavucontrol 1:6.2-1 -pciutils 3.14.0-1 -pcre 8.45-4 -pcre2 10.46-1 -pcsclite 2.3.3-1 -perl 5.42.0-1 -perl-error 0.17030-2 -perl-libintl-perl 1.35-2 -perl-mailtools 2.22-2 -perl-timedate 2.33-8 -pinentry 1.3.2-2 -pipewire 1:1.4.8-2 -pipewire-alsa 1:1.4.8-2 -pipewire-audio 1:1.4.8-2 -pipewire-jack 1:1.4.8-2 -pipewire-pulse 1:1.4.8-2 -pipewire-session-manager 1:1.4.8-2 -pixman 0.46.4-1 -pkgconf 2.5.1-1 -playerctl 2.4.1-4 -pngquant 3.0.3-2 -pnpm 10.18.1-1 -polkit 126-2 -polkit-gnome 0.105-11 -poppler 25.09.1-1 -poppler-data 0.4.12-2 -poppler-glib 25.09.1-1 -popt 1.19-2 -portaudio 1:19.7.0-3 -pps-tools 1.0.3-2 -procps-ng 4.0.5-3 -protobuf 32.1-1 -psmisc 23.7-1 -pugixml 1.15-2 -python 3.13.7-1 -python-attrs 25.4.0-1 -python-autocommand 2.2.2-7 -python-beautifulsoup4 4.14.2-1 -python-build 1.3.0-1 -python-cairo 1.28.0-1 -python-certifi 2025.10.05-1 -python-cffi 1.17.1-2 -python-chardet 5.2.0-6 -python-charset-normalizer 3.4.3-1 -python-cryptography 46.0.2-1 -python-dbus 1.4.0-1 -python-deprecated 1.2.18-1 -python-deprecation 2.1.0-10 -python-distro 1.9.0-3 -python-docopt 0.6.2-14 -python-editables 0.5-5 -python-evdev 1.9.2-1 -python-gbinder 1.1.2-3 -python-gevent 25.9.1-1 -python-gobject 3.54.3-1 -python-greenlet 3.2.4-1 -python-hatch-vcs 0.5.0-1 -python-hatchling 1.27.0-1 -python-idna 3.10-2 -python-importlib_resources 6.5.2-1 -python-installer 0.7.0-10 -python-jaraco.collections 5.1.0-1 -python-jaraco.context 6.0.1-1 -python-jaraco.functools 4.1.0-1 -python-jaraco.text 4.0.0-2 -python-lxml 6.0.2-1 -python-mako 1.3.10-1 -python-markdown 3.9.0-1 -python-markdown-it-py 4.0.0-1 -python-markupsafe 3.0.2-1 -python-mdurl 0.1.2-8 -python-moddb 0.14.0-1 -python-more-itertools 10.8.0-1 -python-packaging 25.0-1 -python-pathspec 0.12.1-3 -python-pdfminer 20250506-1 -python-pikepdf 9.11.0-1 -python-pillow 11.3.0-4 -python-platformdirs 4.4.0-1 -python-pluggy 1.6.0-1 -python-pycparser 2.23-1 -python-pygments 2.19.2-1 -python-pyproject-hooks 1.2.0-3 -python-reportlab 4.2.2-5 -python-requests 2.32.5-1 -python-rich 14.1.0-1 -python-setuptools 1:80.9.0-2 -python-setuptools-scm 9.2.0-2 -python-soupsieve 2.8-1 -python-tqdm 4.67.1-2 -python-trove-classifiers 2025.9.11.17-1 -python-typing_extensions 4.15.0-1 -python-urllib3 2.5.0-1 -python-wheel 0.45.1-1 -python-wrapt 1.17.3-1 -python-yaml 6.0.3-1 -python-zipp 3.21.0-2 -python-zope-event 6.0-1 -python-zope-interface 8.0.1-1 -qbittorrent 5.1.2-1 -qemu-audio-alsa 10.1.0-1 -qemu-audio-dbus 10.1.0-1 -qemu-audio-jack 10.1.0-1 -qemu-audio-oss 10.1.0-1 -qemu-audio-pa 10.1.0-1 -qemu-audio-pipewire 10.1.0-1 -qemu-audio-sdl 10.1.0-1 -qemu-audio-spice 10.1.0-1 -qemu-base 10.1.0-1 -qemu-block-curl 10.1.0-1 -qemu-block-dmg 10.1.0-1 -qemu-block-gluster 10.1.0-1 -qemu-block-iscsi 10.1.0-1 -qemu-block-nfs 10.1.0-1 -qemu-block-ssh 10.1.0-1 -qemu-chardev-baum 10.1.0-1 -qemu-chardev-spice 10.1.0-1 -qemu-common 10.1.0-1 -qemu-desktop 10.1.0-1 -qemu-docs 10.1.0-1 -qemu-emulators-full 10.1.0-1 -qemu-full 10.1.0-1 -qemu-hw-display-qxl 10.1.0-1 -qemu-hw-display-virtio-gpu 10.1.0-1 -qemu-hw-display-virtio-gpu-gl 10.1.0-1 -qemu-hw-display-virtio-gpu-pci 10.1.0-1 -qemu-hw-display-virtio-gpu-pci-gl 10.1.0-1 -qemu-hw-display-virtio-gpu-pci-rutabaga 10.1.0-1 -qemu-hw-display-virtio-gpu-rutabaga 10.1.0-1 -qemu-hw-display-virtio-vga 10.1.0-1 -qemu-hw-display-virtio-vga-gl 10.1.0-1 -qemu-hw-display-virtio-vga-rutabaga 10.1.0-1 -qemu-hw-s390x-virtio-gpu-ccw 10.1.0-1 -qemu-hw-uefi-vars 10.1.0-1 -qemu-hw-usb-host 10.1.0-1 -qemu-hw-usb-redirect 10.1.0-1 -qemu-hw-usb-smartcard 10.1.0-1 -qemu-img 10.1.0-1 -qemu-pr-helper 10.1.0-1 -qemu-system-aarch64 10.1.0-1 -qemu-system-alpha 10.1.0-1 -qemu-system-alpha-firmware 10.1.0-1 -qemu-system-arm 10.1.0-1 -qemu-system-arm-firmware 10.1.0-1 -qemu-system-avr 10.1.0-1 -qemu-system-hppa 10.1.0-1 -qemu-system-hppa-firmware 10.1.0-1 -qemu-system-loongarch64 10.1.0-1 -qemu-system-m68k 10.1.0-1 -qemu-system-microblaze 10.1.0-1 -qemu-system-microblaze-firmware 10.1.0-1 -qemu-system-mips 10.1.0-1 -qemu-system-or1k 10.1.0-1 -qemu-system-ppc 10.1.0-1 -qemu-system-ppc-firmware 10.1.0-1 -qemu-system-riscv 10.1.0-1 -qemu-system-riscv-firmware 10.1.0-1 -qemu-system-rx 10.1.0-1 -qemu-system-s390x 10.1.0-1 -qemu-system-s390x-firmware 10.1.0-1 -qemu-system-sh4 10.1.0-1 -qemu-system-sparc 10.1.0-1 -qemu-system-sparc-firmware 10.1.0-1 -qemu-system-tricore 10.1.0-1 -qemu-system-x86 10.1.0-1 -qemu-system-x86-firmware 10.1.0-1 -qemu-system-xtensa 10.1.0-1 -qemu-tests 10.1.0-1 -qemu-tools 10.1.0-1 -qemu-ui-curses 10.1.0-1 -qemu-ui-dbus 10.1.0-1 -qemu-ui-egl-headless 10.1.0-1 -qemu-ui-gtk 10.1.0-1 -qemu-ui-opengl 10.1.0-1 -qemu-ui-sdl 10.1.0-1 -qemu-ui-spice-app 10.1.0-1 -qemu-ui-spice-core 10.1.0-1 -qemu-user 10.1.0-1 -qemu-vhost-user-gpu 10.1.0-1 -qemu-vmsr-helper 10.1.0-1 -qpdf 12.2.0-1 -qrcodegencpp-cmake 1.8.0-4 -qrencode 4.1.1-4 -qt5-3d 5.15.17-2 -qt5-base 5.15.17+kde+r123-2 -qt5-declarative 5.15.17+kde+r21-1 -qt5-translations 5.15.17-1 -qt6-base 6.9.2-1 -qt6-declarative 6.9.2-1 -qt6-imageformats 6.9.2-1 -qt6-svg 6.9.2-2 -qt6-tools 6.9.2-1 -qt6-translations 6.9.2-1 -qt6-wayland 6.9.2-1 -quilt 0.69-1 -raptor 2.0.16-8 -rasqal 1:0.9.33-7 -rav1e 0.8.1-2 -rdma-core 59.0-1 -readline 8.3.001-1 -redland 1:1.0.17-9 -rhash 1.4.4-1 -rnnoise 1:0.2-1 -rpcbind 1.2.8-1 -rsync 3.4.1-2 -rtkit 0.13-3 -rtmpdump 1:2.4.r105.6f6bb13-1 -rubberband 4.0.0-1 -runc 1.3.2-1 -rust 1:1.90.0-3 -rutabaga-ffi 0.1.71-2 -sakura 3.8.9-1 -sassc 3.6.2-5 -sbc 2.1-1 -scrcpy 3.3.3-4 -sdl2-compat 2.32.56-2 -sdl2_image 2.8.8-1 -sdl3 3.2.24-1 -seabios 1.17.0-1 -searxng-git r8770.36538e6-1 -seatd 0.9.1-1 -sed 4.9-3 -semver 7.7.3-1 -serd 0.32.4-1 -shaderc 2025.3-1 -shadow 4.18.0-1 -shared-mime-info 2.4-2 -simde 0.8.2-1 -simdjson 1:4.0.7-1 -sing-box 1.12.9-1 -sioyek 2.0.0-7 -slang 2.3.3-4 -sleuthkit 4.14.0-1 -snappy 1.2.2-2 -sndio 1.10.0-1 -sord 0.16.18-1 -sound-theme-freedesktop 0.8-6 -soundtouch 2.4.0-1 -spandsp 0.0.6-6 -spdlog 1.15.3-3 -speex 1.2.1-2 -speexdsp 1.2.1-2 -spice 0.16.0-2 -spice-protocol 0.14.5-1 -spirv-tools 1:1.4.321.0-1 -sqlite 3.50.4-2 -squashfs-tools 4.7.2-1 -sratom 0.6.18-1 -srt 1.5.4-1 -startup-notification 0.12-9 -steam 1.0.0.85-1 -strace 6.17-1 -sudo 1.9.17.p1-1 -suitesparse 7.11.0-1 -supermin 5.3.5-1 -svt-av1 3.1.2-1 -svt-hevc 1.5.1-3 -swww 0.11.2-1 -sysfsutils 2.1.1-2 -syslinux 6.04.pre3.r3.g05ac953c-4 -systemd 258-4 -systemd-libs 258-4 -systemd-sysvcompat 258-4 -taglib 2.1.1-1 -tar 1.35-2 -tdb 1.4.14-1 -telegram-desktop 6.1.4-1 -termusic 0.11.0-3 -tesseract 5.5.1-1 -tesseract-data-eng 2:4.1.0-4 -tesseract-data-osd 2:4.1.0-4 -tesseract-data-rus 2:4.1.0-4 -texinfo 7.2-1 -thin-provisioning-tools 1.2.2-1 -throne 1.0.6-1 -timr 1.5.0-1 -tinysparql 3.10.0-1 -totem-pl-parser 3.26.6+r30+g51b8439-2 -tpm2-tss 4.1.3-1 -tree-sitter 0.25.10-1 -tree-sitter-c 0.24.1-1 -tree-sitter-lua 0.4.0-1 -tree-sitter-markdown 0.5.1-1 -tree-sitter-query 0.7.0-1 -tree-sitter-vim 0.7.0-1 -tree-sitter-vimdoc 4.0.0-1 -tslib 1.23-1 -ttf-dejavu 2.37+18+g9b5d1b2f-7 -ttf-iosevka-nerd 3.4.0-1 -ttf-iosevkaterm-nerd 3.4.0-1 -ttf-nerd-fonts-symbols 3.4.0-1 -ttf-nerd-fonts-symbols-common 3.4.0-1 -twolame 0.4.0-4 -typst 1:0.13.1-1 -tzdata 2025b-1 -uchardet 0.0.8-3 -udisks2 2.10.2-1 -ueberzug 18.3.1-4 -ufw 0.36.2-5 -unibilium 2.1.2-1 -unpaper 7.0.0-5 -unzip 6.0-23 -upower 1.90.10-1 -usbredir 0.15.0-1 -usbutils 018-1 -uthash 2.3.0-2 -util-linux 2.41.2-1 -util-linux-libs 2.41.2-1 -uwsgi 2.0.30-2 -uwsgi-plugin-python 2.0.30-2 -v4l-utils 1.30.1-1 -valkey 8.1.4-1 -vapoursynth 72-1 -vde2 2.3.3-8 -ventoy 1.1.07-1 -vesktop-bin 1.5.8-1 -vi 1:070224-6 -vid.stab 1.1.1-2 -vim 9.1.1734-1 -vim-runtime 9.1.1734-1 -virglrenderer 1.1.1-1 -virtiofsd 1.13.2-1 -vmaf 3.0.0-1 -volume_key 0.3.12-11 -vte-common 0.82.0-2 -vte3 0.82.0-2 -vulkan-headers 1:1.4.321.0-1 -vulkan-icd-loader 1.4.321.0-1 -wasi-compiler-rt 20.1.6-1 -wasi-libc 1:0+440+3f7eb4c7-1 -wasi-libc++ 20.1.6-2 -wasi-libc++abi 20.1.6-2 -wavpack 5.8.1-1 -waybar 0.14.0-2 -waydroid 1.5.4-1 -wayland 1.24.0-1 -wayland-protocols 1.45-1 -webkit2gtk 2.50.0-2 -webkit2gtk-4.1 2.50.0-2 -webrtc-audio-processing-1 1.3-5 -wget 1.25.0-2 -which 2.23-1 -wildmidi 0.4.6-1 -wine-staging 10.16-1 -winetricks 20250102-1 -wireplumber 0.5.11-1 -wl-clipboard 1:2.2.1-3 -woff2 1.0.2-6 -wolfssl 5.8.2-1 -wpa_supplicant 2:2.11-3 -x264 3:0.165.r3222.b35605a-2 -x265 4.1-1 -xcb-proto 1.17.0-3 -xcb-util 0.4.1-2 -xcb-util-cursor 0.1.6-1 -xcb-util-image 0.4.1-3 -xcb-util-keysyms 0.4.1-5 -xcb-util-renderutil 0.3.10-2 -xcb-util-wm 0.4.2-2 -xcur2png 0.7.1-8 -xdg-dbus-proxy 0.1.6-1 -xdg-desktop-portal 1.20.3-2 -xdg-desktop-portal-gnome 49.0-1 -xdg-desktop-portal-gtk 1.15.3-1 -xdg-user-dirs 0.19-2 -xdg-user-dirs-gtk 0.14-1 -xdg-utils 1.2.1-1 -xfsprogs 6.16.0-3 -xkeyboard-config 2.46-1 -xmlsec 1.3.7-2 -xorg-fonts-encodings 1.1.0-1 -xorg-server-common 21.1.18-2 -xorg-server-xvfb 21.1.18-2 -xorg-setxkbmap 1.3.4-2 -xorg-xauth 1.1.4-1 -xorg-xkbcomp 1.4.7-1 -xorg-xprop 1.2.8-1 -xorg-xrandr 1.5.3-1 -xorg-xset 1.2.5-2 -xorg-xwayland 24.1.8-1 -xorgproto 2024.1-2 -xvidcore 1.3.7-3 -xwayland-satellite 0.7-1 -xxhash 0.8.3-1 -xz 5.8.1-1 -yara 4.5.4-1 -yarn 1.22.22-2 -yasm 1.3.0-8 -yazi 25.5.31-2 -yt-dlp 2025.09.26-1 -yyjson 0.12.0-1 -zathura 0.5.13-1 -zathura-djvu 0.2.10-6 -zathura-pdf-mupdf 0.4.4-24 -zbar 0.23.93-4 -zen-browser-bin 1.16.4b-1 -zenity 4.2.0-1 -zeromq 4.3.5-2 -zimg 3.0.5-1 -zip 3.0-11 -zix 0.6.2-1 -zlib 1:1.3.1-2 -zlib-ng 2.2.5-1 -zstd 1.5.7-2 -zvbi 0.2.44-1 -zxing-cpp 2.3.0-5 -zziplib 0.13.80-1 diff --git a/.config/clipse/config.json b/.config/clipse/config.json deleted file mode 100644 index cc662c7..0000000 --- a/.config/clipse/config.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "allowDuplicates": false, - "historyFile": "clipboard_history.json", - "maxHistory": 10000, - "logFile": "clipse.log", - "themeFile": "custom_theme.json", - "tempDir": "tmp_files", - "keyBindings": { - "choose": "enter", - "clearSelected": "S", - "down": "down", - "end": "end", - "filter": "/", - "home": "home", - "more": "?", - "nextPage": "right", - "prevPage": "left", - "preview": " ", - "quit": "q", - "remove": "x", - "selectDown": "ctrl+down", - "selectSingle": "s", - "selectUp": "ctrl+up", - "togglePin": "p", - "togglePinned": "tab", - "up": "up", - "yankFilter": "ctrl+s" - }, - "imageDisplay": { - "type": "kitty", - "scaleX": 9, - "scaleY": 9, - "heightCut": 2 - } -} diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables deleted file mode 100644 index 3945cf3..0000000 --- a/.config/fish/fish_variables +++ /dev/null @@ -1,32 +0,0 @@ -# This file contains fish universal variable definitions. -# VERSION: 3.0 -SETUVAR __fish_initialized:3800 -SETUVAR fish_color_autosuggestion:brblack -SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:normal -SETUVAR fish_color_comment:red -SETUVAR fish_color_cwd:green -SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:green -SETUVAR fish_color_error:brred -SETUVAR fish_color_escape:brcyan -SETUVAR fish_color_history_current:\x2d\x2dbold -SETUVAR fish_color_host:normal -SETUVAR fish_color_host_remote:yellow -SETUVAR fish_color_normal:normal -SETUVAR fish_color_operator:brcyan -SETUVAR fish_color_param:cyan -SETUVAR fish_color_quote:yellow -SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold -SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_status:red -SETUVAR fish_color_user:brgreen -SETUVAR fish_color_valid_path:\x2d\x2dunderline -SETUVAR fish_greeting:\x1d -SETUVAR fish_key_bindings:fish_default_key_bindings -SETUVAR fish_pager_color_completion:normal -SETUVAR fish_pager_color_description:yellow\x1e\x2di -SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline -SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan -SETUVAR fish_pager_color_selected_background:\x2dr diff --git a/.config/fnott/fnott.ini b/.config/fnott/fnott.ini deleted file mode 100644 index 4bea059..0000000 --- a/.config/fnott/fnott.ini +++ /dev/null @@ -1,75 +0,0 @@ -# -*- conf -*- - -# For documentation on these options, see `man fnott.ini` - -# Global values -# output=# -# min-width=0 -# max-width=0 -# max-height=0 -# stacking-order=bottom-up -anchor=top-right -edge-margin-vertical=8 - edge-margin-horizontal=8 - selection-helper=fuzzel - selection-helper-uses-null-separator=no - default-timeout=10 -# notification-margin=10 - icon-theme= - max-icon-size=32 -# selection-helper=dmenu -# selection-helper-uses-null-separator=no -# play-sound=aplay ${filename} - -# Default values, may be overridden in 'urgency' specific sections -# layer=top -background=07090Bff - -border-color=C1D6D6ff - -border-radius=5 -border-size=4 - -# padding-vertical=20 -# padding-horizontal=20 - - dpi-aware=no - -title-font=IosevkaTerm NFP:size=17:weight=bold - -# title-color=ffffffff - title-format=%a%A - -summary-font=IosevkaTerm NFP:size=13:weight=bold:slant=italic - title-color=c1d6d6ff - -summary-color=c1d6d6ff -summary-format=%s\n - - body-font=IosevkaTerm NFP:size=12:weight=bold - - body-color=C1D6D6ff - body-format=%b - -# progress-bar-height=20 - progress-color=c1d6d6ff -# progress-style=bar - -# sound-file= -#icon= - -# Timeout values are in seconds. 0 to disable -# max-timeout=0 -# default-timeout=0 -# idle-timeout=0 - -# [low] -# background=2b2b2bff -# title-color=888888ff -# summary-color=888888ff -# body-color=888888ff - -# [normal] - -# [critical] -# background=6c3333ff diff --git a/.config/mimeapps.list b/.config/mimeapps.list deleted file mode 100644 index 7d18982..0000000 --- a/.config/mimeapps.list +++ /dev/null @@ -1,32 +0,0 @@ -[Default Applications] -x-scheme-handler/http=zen.desktop -x-scheme-handler/https=zen.desktop -x-scheme-handler/chrome=zen.desktop -text/html=zen.desktop -application/x-extension-htm=zen.desktop -application/x-extension-html=zen.desktop -application/x-extension-shtml=zen.desktop -application/xhtml+xml=zen.desktop -application/x-extension-xhtml=zen.desktop -application/x-extension-xht=zen.desktop -application/pdf=org.pwmt.zathura.desktop -image/vnd.djvu=org.pwmt.zathura.desktop -image/gif=imv.desktop -image/png=imv.desktop -x-scheme-handler/discord=vesktop.desktop -x-scheme-handler/tg=org.telegram.desktop.desktop -x-scheme-handler/tonsite=org.telegram.desktop.desktop - -[Added Associations] -x-scheme-handler/http=zen.desktop;firefox.desktop; -x-scheme-handler/https=zen.desktop;firefox.desktop; -x-scheme-handler/chrome=zen.desktop;firefox.desktop; -text/html=firefox.desktop; -application/x-extension-htm=firefox.desktop; -application/x-extension-html=firefox.desktop; -application/x-extension-shtml=firefox.desktop; -application/xhtml+xml=firefox.desktop; -application/x-extension-xhtml=firefox.desktop; -application/x-extension-xht=firefox.desktop; -x-scheme-handler/tg=org.telegram.desktop.desktop; -x-scheme-handler/tonsite=org.telegram.desktop.desktop; diff --git a/.config/niri/config-01.kdl b/.config/niri/config-01.kdl deleted file mode 100644 index 3eeab5f..0000000 --- a/.config/niri/config-01.kdl +++ /dev/null @@ -1,708 +0,0 @@ -// This config is in the KDL format: https://kdl.dev -// "/-" comments out the following node. -// Check the wiki for a full description of the configuration: -// https://yalter.github.io/niri/Configuration:-Introduction - -// Input device configuration. -// Find the full list of options on the wiki: -// https://yalter.github.io/niri/Configuration:-Input -input { - keyboard { - xkb { - // You can set rules, model, layout, variant and options. - // For more information, see xkeyboard-config(7). - - // For example: - layout "us,ru" - options "grp:caps_toggle" - - // If this section is empty, niri will fetch xkb settings - // from org.freedesktop.locale1. You can control these using - // localectl set-x11-keymap. - } - repeat-delay 250 - repeat-rate 25 - // track-layout "global" - - // Enable numlock on startup, omitting this setting disables it. - numlock - } - - // Next sections include libinput settings. - // Omitting settings disables them, or leaves them at their default values. - // All commented-out settings here are examples, not defaults. - touchpad { - // off - tap - // dwt - // dwtp - // drag false - // drag-lock - natural-scroll - // accel-speed 0.2 - // accel-profile "flat" - // scroll-method "two-finger" - // disabled-on-external-mouse - } - - mouse { - // off - // natural-scroll - // accel-speed 0.2 - accel-profile "adaptive" - scroll-button 274 - - scroll-method "on-button-down" - } - warp-mouse-to-focus - focus-follows-mouse max-scroll-amount="50%" - - trackpoint { - // off - // natural-scroll - // accel-speed 0.2 - // accel-profile "flat" - // scroll-method "on-button-down" - // scroll-button 273 - // scroll-button-lock - // middle-emulation - } - - // Uncomment this to make the mouse warp to the center of newly focused windows. - // warp-mouse-to-focus - - // Focus windows and outputs automatically when moving the mouse into them. - // Setting max-scroll-amount="0%" makes it work only on windows already fully on screen. - // focus-follows-mouse max-scroll-amount="0%" -} - -// You can configure outputs by their name, which you can find -// by running `niri msg outputs` while inside a niri instance. -// The built-in laptop monitor is usually called "eDP-1". -// Find more information on the wiki: -// https://yalter.github.io/niri/Configuration:-Outputs -// Remember to uncomment the node by removing "/-"! -/-output "DP-1" { - // Uncomment this line to disable this output. - // off - - // Resolution and, optionally, refresh rate of the output. - // The format is "x" or "x@". - // If the refresh rate is omitted, niri will pick the highest refresh rate - // for the resolution. - // If the mode is omitted altogether or is invalid, niri will pick one automatically. - // Run `niri msg outputs` while inside a niri instance to list all outputs and their modes. - mode "1920x1080@165.000" - - // You can use integer or fractional scale, for example use 1.5 for 150% scale. - scale 1.0 - - // Transform allows to rotate the output counter-clockwise, valid values are: - // normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270. - transform "normal" - - // Position of the output in the global coordinate space. - // This affects directional monitor actions like "focus-monitor-left", and cursor movement. - // The cursor can only move between directly adjacent outputs. - // Output scale and rotation has to be taken into account for positioning: - // outputs are sized in logical, or scaled, pixels. - // For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080, - // so to put another output directly adjacent to it on the right, set its x to 1920. - // If the position is unset or results in an overlap, the output is instead placed - // automatically. - position x=1280 y=0 - variable-refresh-rate on-demand=true - -} - -// Settings that influence how windows are positioned and sized. -// Find more information on the wiki: -// https://yalter.github.io/niri/Configuration:-Layout -layout { - // Set gaps around windows in logical pixels. - gaps 10 - - // When to center a column when changing focus, options are: - // - "never", default behavior, focusing an off-screen column will keep at the left - // or right edge of the screen. - // - "always", the focused column will always be centered. - // - "on-overflow", focusing a column will center it if it doesn't fit - // together with the previously focused column. - center-focused-column "never" - - default-column-display "normal" - // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. - preset-column-widths { - // Proportion sets the width as a fraction of the output width, taking gaps into account. - // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. - // The default preset widths are 1/3, 1/2 and 2/3 of the output. - proportion 0.33333 - proportion 0.5 - proportion 0.66667 - - // Fixed sets the width in logical pixels exactly. - // fixed 1920 - } - - // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between. - // preset-window-heights { } - - // You can change the default width of the new windows. - default-column-width { proportion 0.5; } - // If you leave the brackets empty, the windows themselves will decide their initial width. - // default-column-width {} - - // By default focus ring and border are rendered as a solid background rectangle - // behind windows. That is, they will show up through semitransparent windows. - // This is because windows using client-side decorations can have an arbitrary shape. - // - // If you don't like that, you should uncomment `prefer-no-csd` below. - // Niri will draw focus ring and border *around* windows that agree to omit their - // client-side decorations. - // - // Alternatively, you can override it with a window rule called - // `draw-border-with-background`. - - // You can change how the focus ring looks. - focus-ring { - // Uncomment this line to disable the focus ring. - // off - - // How many logical pixels the ring extends out from the windows. - width 4 - - // Colors can be set in a variety of ways: - // - CSS named colors: "red" - // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" - // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. - - // Color of the ring on the active monitor. - active-color "#C1D6D6" -// foreground #C1D6D6 - //background #07090B - // Color of the ring on inactive monitors. - // - // The focus ring only draws around the active window, so the only place - // where you can see its inactive-color is on other monitors. - inactive-color "#000000" - - // You can also use gradients. They take precedence over solid colors. - // Gradients are rendered the same as CSS linear-gradient(angle, from, to). - // The angle is the same as in linear-gradient, and is optional, - // defaulting to 180 (top-to-bottom gradient). - // You can use any CSS linear-gradient tool on the web to set these up. - // Changing the color space is also supported, check the wiki for more info. - // - // active-gradient from="#80c8ff" to="#c7ff7f" angle=45 - - // You can also color the gradient relative to the entire view - // of the workspace, rather than relative to just the window itself. - // To do that, set relative-to="workspace-view". - // - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" - } - - // You can also add a border. It's similar to the focus ring, but always visible. - border { - // The settings are the same as for the focus ring. - // If you enable the border, you probably want to disable the focus ring. - off - - width 2 - active-color "#ffc87f" - inactive-color "#505050" - - // Color of the border around windows that request your attention. - urgent-color "#9b0000" - - // Gradients can use a few different interpolation color spaces. - // For example, this is a pastel rainbow gradient via in="oklch longer hue". - // - // active-gradient from="#e5989b" to="#ffb4a2" angle=45 relative-to="workspace-view" in="oklch longer hue" - - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" - } - - // You can enable drop shadows for windows. - shadow { - // Uncomment the next line to enable shadows. - // on - - // By default, the shadow draws only around its window, and not behind it. - // Uncomment this setting to make the shadow draw behind its window. - // - // Note that niri has no way of knowing about the CSD window corner - // radius. It has to assume that windows have square corners, leading to - // shadow artifacts inside the CSD rounded corners. This setting fixes - // those artifacts. - // - // However, instead you may want to set prefer-no-csd and/or - // geometry-corner-radius. Then, niri will know the corner radius and - // draw the shadow correctly, without having to draw it behind the - // window. These will also remove client-side shadows if the window - // draws any. - // - // draw-behind-window true - - // You can change how shadows look. The values below are in logical - // pixels and match the CSS box-shadow properties. - - // Softness controls the shadow blur radius. - softness 30 - - // Spread expands the shadow. - spread 5 - - // Offset moves the shadow relative to the window. - offset x=0 y=5 - - // You can also change the shadow color and opacity. - color "#0007" - } - - // Struts shrink the area occupied by windows, similarly to layer-shell panels. - // You can think of them as a kind of outer gaps. They are set in logical pixels. - // Left and right struts will cause the next window to the side to always be visible. - // Top and bottom struts will simply add outer gaps in addition to the area occupied by - // layer-shell panels and regular gaps. - struts { - // left 64 - // right 64 - // top 64 - // bottom 64 - } - tab-indicator{ - // off - } - insert-hint { - off - color "#ffc87f80" - gradient from="#ffbb6680" to="#ffc88080" angle=45 relative-to="workspace-view" - } - - background-color "#07090B" - - - -} -overview { - zoom 0.45 - backdrop-color "#07090b" - - workspace-shadow { - off - softness 40 - spread 10 - offset x=0 y=10 - color "#00000050" - } -} -clipboard { - disable-primary -} -cursor { - //xcursor-theme "Dot-Dark" - xcursor-size 12 - - hide-when-typing - hide-after-inactive-ms 1000 -} - -// Add lines like this to spawn processes at startup. -// Note that running niri as a session supports xdg-desktop-autostart, -// which may be more convenient to use. -// See the binds section below for more spawn examples. - -// This line starts waybar, a commonly used bar for Wayland compositors. -spawn-at-startup "waybar" - -spawn-at-startup "fnott" -spawn-at-startup "clipse -listen" - -// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup: -// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell" - -hotkey-overlay { - // Uncomment this line to disable the "Important Hotkeys" pop-up at startup. - skip-at-startup -} - -// Uncomment this line to ask the clients to omit their client-side decorations if possible. -// If the client will specifically ask for CSD, the request will be honored. -// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. -// This option will also fix border/focus ring drawing behind some semitransparent windows. -// After enabling or disabling this, you need to restart the apps for this to take effect. -prefer-no-csd - -// You can change the path where screenshots are saved. -// A ~ at the front will be expanded to the home directory. -// The path is formatted with strftime(3) to give you the screenshot date and time. -screenshot-path "~/imgs/screenshots/screenshot from %Y-%m-%d %H-%M-%S.png" -spawn-at-startup "throne" - -// You can also set this to null to disable saving screenshots to disk. -// screenshot-path null - -// Animation settings. -// The wiki explains how to configure individual animations: -// https://yalter.github.io/niri/Configuration:-Animations -animations { - // Uncomment to turn off all animations. - // off - - // Slow down all animations by this factor. Values below 1 speed them up instead. - // slowdown 3.0 -} - -// Window rules let you adjust behavior for individual windows. -// Find more information on the wiki: -// https://yalter.github.io/niri/Configuration:-Window-Rules - -// Work around WezTerm's initial configure bug -// by setting an empty default-column-width. -window-rule { - // This regular expression is intentionally made as specific as possible, - // since this is the default config, and we want no false positives. - // You can get away with just app-id="wezterm" if you want. - match app-id=r#"^org\.wezfurlong\.wezterm$"# - default-column-width {} -} - -window-rule { - match app-id="clipse" -// match is-floating=true - open-maximized true -// open-floating true - tiled-state false -} -window-rule { - open-maximized false - geometry-corner-radius 5 - tiled-state true - clip-to-geometry true - - } - -// Open the Firefox picture-in-picture player as floating by default. -window-rule { - // This app-id regular expression will work for both: - // - host Firefox (app-id is "firefox") - // - Flatpak Firefox (app-id is "org.mozilla.firefox") - match app-id=r#"firefox$"# title="^Picture-in-Picture$" - open-floating true -} - -// Example: block out two password managers from screen capture. -// (This example rule is commented out with a "/-" in front.) -/-window-rule { - match app-id=r#"^org\.keepassxc\.KeePassXC$"# - match app-id=r#"^org\.gnome\.World\.Secrets$"# - - block-out-from "screen-capture" - - // Use this instead if you want them visible on third-party screenshot tools. - // block-out-from "screencast" -} - -// Example: enable rounded corners for all windows. -// (This example rule is commented out with a "/-" in front.) -/-window-rule { - geometry-corner-radius 12 - clip-to-geometry true -} -layer-rule { - //clip-to-geometry true - match namespace="fnott" - baba-is-float true - geometry-corner-radius 5 - - -} -environment{ - - -} -xwayland-satellite { - // off - path "xwayland-satellite" -} - -binds { - // Keys consist of modifiers separated by + signs, followed by an XKB key name - // in the end. To find an XKB name for a particular key, you may use a program - // like wev. - // - // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt - // when running as a winit window. - // - // Most actions that you can bind here can also be invoked programmatically with - // `niri msg action do-something`. - - // Mod-Shift-/, which is usually the same as Mod-?, - // shows a list of important hotkeys. - Mod+Shift+Slash { show-hotkey-overlay; } - Super+F{ toggle-window-floating;} - // Mod+Shift+L{spawn "gtklock";} - - // Suggested binds for running programs: terminal, app launcher, screen locker. - Mod+Q hotkey-overlay-title="Open a Terminal: alacritty" { spawn "kitty"; } - Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; } - Super+W { spawn "kitty" "--class" "clipse" "-e" "clipse"; } - Mod+Alt+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn "gtklock"; } - - // Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc. - // Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`. - // For example, this is a standard bind to toggle the screen reader (orca). - Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } - - // Example volume keys mappings for PipeWire & WirePlumber. - // The allow-when-locked=true property makes them work even when the session is locked. - // Using spawn-sh allows to pass multiple arguments together with the command. - XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; } - XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } - XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } - XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } - - // Example brightness key mappings for brightnessctl. - // You can use regular spawn with multiple arguments too (to avoid going through "sh"), - // but you need to manually put each argument in separate "" quotes. - XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } - XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } - - // Open/close the Overview: a zoomed-out view of workspaces and windows. - // You can also move the mouse into the top-left hot corner, - // or do a four-finger swipe up on a touchpad. - Mod+O repeat=false { toggle-overview; } - - Mod+C repeat=false { close-window; } - - Mod+Left { focus-column-left; } - Mod+Down { focus-window-down; } - Mod+Up { focus-window-up; } - Mod+Right { focus-column-right; } - Mod+H { focus-column-left; } - Mod+J { focus-window-down; } - Mod+K { focus-window-up; } - Mod+L { focus-column-right; } - - Mod+Ctrl+Left { move-column-left; } - Mod+Ctrl+Down { move-window-down; } - Mod+Ctrl+Up { move-window-up; } - Mod+Ctrl+Right { move-column-right; } - Mod+Ctrl+H { move-column-left; } - Mod+Ctrl+J { move-window-down; } - Mod+Ctrl+K { move-window-up; } - Mod+Ctrl+L { move-column-right; } - - // Alternative commands that move across workspaces when reaching - // the first or last window in a column. - // Mod+J { focus-window-or-workspace-down; } - // Mod+K { focus-window-or-workspace-up; } - // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } - // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } - - Mod+Home { focus-column-first; } - Mod+End { focus-column-last; } - Mod+Ctrl+Home { move-column-to-first; } - Mod+Ctrl+End { move-column-to-last; } - - Mod+Shift+Left { focus-monitor-left; } - Mod+Shift+Down { focus-monitor-down; } - Mod+Shift+Up { focus-monitor-up; } - Mod+Shift+Right { focus-monitor-right; } - Mod+Shift+H { focus-monitor-left; } - Mod+Shift+J { focus-monitor-down; } - Mod+Shift+K { focus-monitor-up; } - // Mod+Shift+L { focus-monitor-right; } - - Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } - Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } - Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } - Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } - Mod+Shift+Ctrl+H { move-column-to-monitor-left; } - Mod+Shift+Ctrl+J { move-column-to-monitor-down; } - Mod+Shift+Ctrl+K { move-column-to-monitor-up; } - Mod+Shift+Ctrl+L { move-column-to-monitor-right; } - - // Alternatively, there are commands to move just a single window: - // Mod+Shift+Ctrl+Left { move-window-to-monitor-left; } - // ... - - // And you can also move a whole workspace to another monitor: - // Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; } - // ... - - Mod+Page_Down { focus-workspace-down; } - Mod+Page_Up { focus-workspace-up; } - Mod+U { focus-workspace-down; } - Mod+I { focus-workspace-up; } - Mod+Ctrl+Page_Down { move-column-to-workspace-down; } - Mod+Ctrl+Page_Up { move-column-to-workspace-up; } - Mod+Ctrl+U { move-column-to-workspace-down; } - Mod+Ctrl+I { move-column-to-workspace-up; } - - // Alternatively, there are commands to move just a single window: - // Mod+Ctrl+Page_Down { move-window-to-workspace-down; } - // ... - - Mod+Shift+Page_Down { move-workspace-down; } - Mod+Shift+Page_Up { move-workspace-up; } - Mod+Shift+U { move-workspace-down; } - Mod+Shift+I { move-workspace-up; } - - - - - Mod+Shift+MouseForward { focus-workspace-down; } - Mod+Shift+MouseBack { focus-workspace-up; } - - Mod+MouseForward { focus-column-right; } - Mod+MouseBack { focus-column-left; } - // You can bind mouse wheel scroll ticks using the following syntax. - // These binds will change direction based on the natural-scroll setting. - // - // To avoid scrolling through workspaces really fast, you can use - // the cooldown-ms property. The bind will be rate-limited to this value. - // You can set a cooldown on any bind, but it's most useful for the wheel. - Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } - Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } - Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } - Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } - - Mod+WheelScrollRight { focus-column-right; } - Mod+WheelScrollLeft { focus-column-left; } - Mod+Ctrl+WheelScrollRight { move-column-right; } - Mod+Ctrl+WheelScrollLeft { move-column-left; } - - // Usually scrolling up and down with Shift in applications results in - // horizontal scrolling; these binds replicate that. - Mod+Shift+WheelScrollDown { focus-column-right; } - Mod+Shift+WheelScrollUp { focus-column-left; } - Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } - Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } - - // Similarly, you can bind touchpad scroll "ticks". - // Touchpad scrolling is continuous, so for these binds it is split into - // discrete intervals. - // These binds are also affected by touchpad's natural-scroll, so these - // example binds are "inverted", since we have natural-scroll enabled for - // touchpads by default. - // Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; } - // Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; } - - // You can refer to workspaces by index. However, keep in mind that - // niri is a dynamic workspace system, so these commands are kind of - // "best effort". Trying to refer to a workspace index bigger than - // the current workspace count will instead refer to the bottommost - // (empty) workspace. - // - // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on - // will all refer to the 3rd workspace. - Mod+1 { focus-workspace 1; } - Mod+2 { focus-workspace 2; } - Mod+3 { focus-workspace 3; } - Mod+4 { focus-workspace 4; } - Mod+5 { focus-workspace 5; } - Mod+6 { focus-workspace 6; } - Mod+7 { focus-workspace 7; } - Mod+8 { focus-workspace 8; } - Mod+9 { focus-workspace 9; } - Mod+Ctrl+1 { move-column-to-workspace 1; } - Mod+Ctrl+2 { move-column-to-workspace 2; } - Mod+Ctrl+3 { move-column-to-workspace 3; } - Mod+Ctrl+4 { move-column-to-workspace 4; } - Mod+Ctrl+5 { move-column-to-workspace 5; } - Mod+Ctrl+6 { move-column-to-workspace 6; } - Mod+Ctrl+7 { move-column-to-workspace 7; } - Mod+Ctrl+8 { move-column-to-workspace 8; } - Mod+Ctrl+9 { move-column-to-workspace 9; } - - // Alternatively, there are commands to move just a single window: - // Mod+Ctrl+1 { move-window-to-workspace 1; } - - // Switches focus between the current and the previous workspace. - Mod+Tab { focus-workspace-previous; } - - // The following binds move the focused window in and out of a column. - // If the window is alone, they will consume it into the nearby column to the side. - // If the window is already in a column, they will expel it out. - Mod+BracketLeft { consume-or-expel-window-left; } - Mod+BracketRight { consume-or-expel-window-right; } - - // Consume one window from the right to the bottom of the focused column. - Mod+Comma { consume-window-into-column; } - // Expel the bottom window from the focused column to the right. - Mod+Period { expel-window-from-column; } - - Mod+R { switch-preset-column-width; } - Mod+Shift+W { toggle-column-tabbed-display; } - // Cycling through the presets in reverse order is also possible. - // Mod+R { switch-preset-column-width-back; } - Mod+Shift+R { switch-preset-window-height; } - Mod+Ctrl+R { reset-window-height; } - Mod+A { maximize-column; } - Mod+Shift+A { fullscreen-window; } - - // Expand the focused column to space not taken up by other fully visible columns. - // Makes the column "fill the rest of the space". - Mod+Ctrl+F { expand-column-to-available-width; } - - Mod+M { center-column; } - - // Center all fully visible columns on screen. - Mod+Ctrl+C { center-visible-columns; } - - // Finer width adjustments. - // This command can also: - // * set width in pixels: "1000" - // * adjust width in pixels: "-5" or "+5" - // * set width as a percentage of screen width: "25%" - // * adjust width as a percentage of screen width: "-10%" or "+10%" - // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, - // set-column-width "100" will make the column occupy 200 physical screen pixels. - Mod+Minus { set-column-width "-10%"; } - Mod+Equal { set-column-width "+10%"; } - - // Finer height adjustments when in column with other windows. - Mod+Shift+Minus { set-window-height "-10%"; } - Mod+Shift+Equal { set-window-height "+10%"; } - - // Move the focused window between the floating and the tiling layout. - Mod+V { toggle-window-floating; } - Mod+Shift+V { switch-focus-between-floating-and-tiling; } - - // Toggle tabbed column display mode. - // Windows in this column will appear as vertical tabs, - // rather than stacked on top of each other. - //Mod+W { toggle-column-tabbed-display; } - - // Actions to switch layouts. - // Note: if you uncomment these, make sure you do NOT have - // a matching layout switch hotkey configured in xkb options above. - // Having both at once on the same hotkey will break the switching, - // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). - // Mod+Space { switch-layout "next"; } - // Mod+Shift+Space { switch-layout "prev"; } - - Mod+Shift+S { screenshot; } - Ctrl+Print { screenshot-screen; } - Alt+Print { screenshot-window; } - - // Applications such as remote-desktop clients and software KVM switches may - // request that niri stops processing the keyboard shortcuts defined here - // so they may, for example, forward the key presses as-is to a remote machine. - // It's a good idea to bind an escape hatch to toggle the inhibitor, - // so a buggy application can't hold your session hostage. - // - // The allow-inhibiting=false property can be applied to other binds as well, - // which ensures niri always processes them, even when an inhibitor is active. - Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } - - // The quit action will show a confirmation dialog to avoid accidental exits. - Mod+Shift+E { quit; } - Ctrl+Alt+Delete { quit; } - - // Powers off the monitors. To turn them back on, do any input like - // moving the mouse or pressing any other key. - Mod+Shift+P { power-off-monitors; } -} diff --git a/.config/niri/config.kdl b/.config/niri/config.kdl deleted file mode 100644 index 49034d6..0000000 --- a/.config/niri/config.kdl +++ /dev/null @@ -1,563 +0,0 @@ -input { - keyboard { - xkb { - layout "us,ru" - options "grp:caps_toggle" - } - repeat-delay 250 - repeat-rate 25 - // track-layout "global" - numlock - } - touchpad { - // off - tap - // dwt - // dwtp - // drag false - // drag-lock - natural-scroll - // accel-speed 0.2 - // accel-profile "flat" - // scroll-method "two-finger" - // disabled-on-external-mouse - } - - mouse { - // off - // natural-scroll - // accel-speed 0.2 - accel-profile "adaptive" - scroll-button 274 - - scroll-method "on-button-down" - } - warp-mouse-to-focus - focus-follows-mouse max-scroll-amount="50%" - - trackpoint { - // off - // natural-scroll - // accel-speed 0.2 - // accel-profile "flat" - // scroll-method "on-button-down" - // scroll-button 273 - // scroll-button-lock - // middle-emulation - } - -} -/-output "DP-1" { - // off - mode "1920x1080@165.000" - scale 1.0 - transform "normal" - position x=1280 y=0 - variable-refresh-rate on-demand=true - -} - -layout { - gaps 5 - - center-focused-column "never" - default-column-display "normal" - preset-column-widths { - proportion 0.5 - proportion 1.0 - } - - preset-window-heights { - proportion 0.5 - proportion 1.0 - } - - default-column-width { proportion 0.5; } - - // By default focus ring and border are rendered as a solid background rectangle - // behind windows. That is, they will show up through semitransparent windows. - // This is because windows using client-side decorations can have an arbitrary shape. - // - // If you don't like that, you should uncomment `prefer-no-csd` below. - // Niri will draw focus ring and border *around* windows that agree to omit their - // client-side decorations. - // - // Alternatively, you can override it with a window rule called - // `draw-border-with-background`. - - // You can change how the focus ring looks. - focus-ring { - // off - - width 2 - // - CSS named colors: "red" - // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" - // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. - // active-color "#EEF7FD" - active-color "#C1D6D6" -// foreground #C1D6D6 - //background #07090B - inactive-color "#000000" - // Changing the color space is also supported, check the wiki for more info. - // - // active-gradient from="#80c8ff" to="#c7ff7f" angle=45 - - // You can also color the gradient relative to the entire view - // of the workspace, rather than relative to just the window itself. - // To do that, set relative-to="workspace-view". - // - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" - } - - // You can also add a border. It's similar to the focus ring, but always visible. - border { - off - urgent-color "#9b0000" - } - - shadow { - color "#0007" - } - - // Struts shrink the area occupied by windows, similarly to layer-shell panels. - // You can think of them as a kind of outer gaps. They are set in logical pixels. - // Left and right struts will cause the next window to the side to always be visible. - // Top and bottom struts will simply add outer gaps in addition to the area occupied by - // layer-shell panels and regular gaps. - struts { - // left 64 - // right 64 - // top 64 - // bottom 64 - } - tab-indicator{ - // off - } - insert-hint { - off - color "#ffc87f80" - gradient from="#ffbb6680" to="#ffc88080" angle=45 relative-to="workspace-view" - } - - background-color "#07090B" - - - -} -overview { - zoom 0.45 - backdrop-color "#07090b" - - workspace-shadow { - off - } -} -clipboard { - disable-primary -} -cursor { - //xcursor-theme "Dot-Dark" - xcursor-size 12 - hide-when-typing - hide-after-inactive-ms 1000 -} - -spawn-at-startup "waybar" - -spawn-at-startup "fnott" -spawn-at-startup "clipse" "-listen" - -// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup: -// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell" - -hotkey-overlay { - // Uncomment this line to disable the "Important Hotkeys" pop-up at startup. - skip-at-startup -} - -// Uncomment this line to ask the clients to omit their client-side decorations if possible. -// If the client will specifically ask for CSD, the request will be honored. -// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. -// This option will also fix border/focus ring drawing behind some semitransparent windows. -// After enabling or disabling this, you need to restart the apps for this to take effect. -prefer-no-csd - -// You can change the path where screenshots are saved. -// A ~ at the front will be expanded to the home directory. -// The path is formatted with strftime(3) to give you the screenshot date and time. -screenshot-path "~/imgs/screenshots/screenshot from %Y-%m-%d %H-%M-%S.png" -spawn-at-startup "throne" - -// You can also set this to null to disable saving screenshots to disk. -// screenshot-path null - -// Animation settings. -// The wiki explains how to configure individual animations: -// https://yalter.github.io/niri/Configuration:-Animations -animations { - // Uncomment to turn off all animations. - // off - - // Slow down all animations by this factor. Values below 1 speed them up instead. - slowdown 1.0 -} - -// Window rules let you adjust behavior for individual windows. -// Find more information on the wiki: -// https://yalter.github.io/niri/Configuration:-Window-Rules - -// Work around WezTerm's initial configure bug -// by setting an empty default-column-width. -window-rule { - // This regular expression is intentionally made as specific as possible, - // since this is the default config, and we want no false positives. - // You can get away with just app-id="wezterm" if you want. - match app-id=r#"^org\.wezfurlong\.wezterm$"# - default-column-width { - proportion 0.5 - } -} - -window-rule { - match app-id="clipse" -// match is-floating=true - open-maximized true -// open-floating true - tiled-state false -} -window-rule { - open-maximized false - geometry-corner-radius 5 - tiled-state true - clip-to-geometry true - - } - -// Open the Firefox picture-in-picture player as floating by default. -window-rule { - // This app-id regular expression will work for both: - // - host Firefox (app-id is "firefox") - // - Flatpak Firefox (app-id is "org.mozilla.firefox") - match app-id=r#"firefox$"# title="^Picture-in-Picture$" - open-floating true -} - -// Example: block out two password managers from screen capture. -// (This example rule is commented out with a "/-" in front.) -/-window-rule { - match app-id=r#"^org\.keepassxc\.KeePassXC$"# - match app-id=r#"^org\.gnome\.World\.Secrets$"# - - block-out-from "screen-capture" - - // Use this instead if you want them visible on third-party screenshot tools. - // block-out-from "screencast" -} - -// Example: enable rounded corners for all windows. -// (This example rule is commented out with a "/-" in front.) -/-window-rule { - geometry-corner-radius 12 - clip-to-geometry true -} -layer-rule { - //clip-to-geometry true - match namespace="fnott" - geometry-corner-radius 5 - - -} -environment{ - - -} -xwayland-satellite { - // off - path "xwayland-satellite" -} - -binds { - // Keys consist of modifiers separated by + signs, followed by an XKB key name - // in the end. To find an XKB name for a particular key, you may use a program - // like wev. - // - // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt - // when running as a winit window. - // - // Most actions that you can bind here can also be invoked programmatically with - // `niri msg action do-something`. - - // Mod-Shift-/, which is usually the same as Mod-?, - // shows a list of important hotkeys. - Mod+Shift+Slash { show-hotkey-overlay; } - Super+F{ toggle-window-floating;} - - // Suggested binds for running programs: terminal, app launcher, screen locker. - Mod+Q { spawn "kitty"; } - Mod+D { spawn "fuzzel"; } - Super+W { spawn "kitty" "--class" "clipse" "-e" "clipse"; } - Mod+Alt+L { spawn "gtklock"; } - Mod+Shift+P{spawn "shutdown" "now";} - Mod+Shift+Alt+P{spawn "shutdown" "-" "c";} - Alt+C{spawn "hyprpicker" "-a";} - - // Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc. - // Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`. - // For example, this is a standard bind to toggle the screen reader (orca). - Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } - - // Example volume keys mappings for PipeWire & WirePlumber. - // The allow-when-locked=true property makes them work even when the session is locked. - // Using spawn-sh allows to pass multiple arguments together with the command. - XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; } - XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } - XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } - XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } - - // Example brightness key mappings for brightnessctl. - // You can use regular spawn with multiple arguments too (to avoid going through "sh"), - // but you need to manually put each argument in separate "" quotes. - XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } - XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } - - // Open/close the Overview: a zoomed-out view of workspaces and windows. - // You can also move the mouse into the top-left hot corner, - // or do a four-finger swipe up on a touchpad. - Mod+O repeat=false { toggle-overview; } - - Mod+C repeat=false { close-window; } - - Mod+Left { focus-column-left; } - Mod+Down { focus-window-down; } - Mod+Up { focus-window-up; } - Mod+Right { focus-column-right; } - Mod+H { focus-column-left; } - Mod+J { focus-window-down; } - Mod+K { focus-window-up; } - Mod+L { focus-column-right; } - - Mod+Ctrl+Left { move-column-left; } - Mod+Ctrl+Down { move-window-down; } - Mod+Ctrl+Up { move-window-up; } - Mod+Ctrl+Right { move-column-right; } - Mod+Ctrl+H { move-column-left; } - Mod+Ctrl+J { move-window-down; } - Mod+Ctrl+K { move-window-up; } - Mod+Ctrl+L { move-column-right; } - - // Alternative commands that move across workspaces when reaching - // the first or last window in a column. - // Mod+J { focus-window-or-workspace-down; } - // Mod+K { focus-window-or-workspace-up; } - // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } - // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } - - Mod+Home { focus-column-first; } - Mod+End { focus-column-last; } - Mod+Ctrl+Home { move-column-to-first; } - Mod+Ctrl+End { move-column-to-last; } - - Mod+Shift+Left { focus-monitor-left; } - Mod+Shift+Down { focus-monitor-down; } - Mod+Shift+Up { focus-monitor-up; } - Mod+Shift+Right { focus-monitor-right; } - Mod+Shift+H { focus-monitor-left; } - Mod+Shift+J { focus-monitor-down; } - Mod+Shift+K { focus-monitor-up; } - // Mod+Shift+L { focus-monitor-right; } - - Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } - Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } - Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } - Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } - Mod+Shift+Ctrl+H { move-column-to-monitor-left; } - Mod+Shift+Ctrl+J { move-column-to-monitor-down; } - Mod+Shift+Ctrl+K { move-column-to-monitor-up; } - Mod+Shift+Ctrl+L { move-column-to-monitor-right; } - - // Alternatively, there are commands to move just a single window: - // Mod+Shift+Ctrl+Left { move-window-to-monitor-left; } - // ... - - // And you can also move a whole workspace to another monitor: - // Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; } - // ... - - Mod+Page_Down { focus-workspace-down; } - Mod+Page_Up { focus-workspace-up; } - Mod+U { focus-workspace-down; } - Mod+I { focus-workspace-up; } - Mod+Ctrl+Page_Down { move-column-to-workspace-down; } - Mod+Ctrl+Page_Up { move-column-to-workspace-up; } - Mod+Ctrl+U { move-column-to-workspace-down; } - Mod+Ctrl+I { move-column-to-workspace-up; } - - // Alternatively, there are commands to move just a single window: - // Mod+Ctrl+Page_Down { move-window-to-workspace-down; } - // ... - - Mod+Shift+Page_Down { move-workspace-down; } - Mod+Shift+Page_Up { move-workspace-up; } - Mod+Shift+U { move-workspace-down; } - Mod+Shift+I { move-workspace-up; } - - - - - Mod+Shift+MouseForward { focus-workspace-down; } - Mod+Shift+MouseBack { focus-workspace-up; } - - Mod+MouseForward { focus-column-right; } - Mod+MouseBack { focus-column-left; } - // You can bind mouse wheel scroll ticks using the following syntax. - // These binds will change direction based on the natural-scroll setting. - // - // To avoid scrolling through workspaces really fast, you can use - // the cooldown-ms property. The bind will be rate-limited to this value. - // You can set a cooldown on any bind, but it's most useful for the wheel. - Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } - Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } - - //Mod+Shift+WheelScrollDown cooldown-ms=150 { focus-column-left; } - //Mod+Shift+WheelScrollUp cooldown-ms=150 { focus-column-right; } - - Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } - Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } - - Mod+WheelScrollRight { focus-column-right; } - Mod+WheelScrollLeft { focus-column-left; } - Mod+Ctrl+WheelScrollRight { move-column-right; } - Mod+Ctrl+WheelScrollLeft { move-column-left; } - - // Usually scrolling up and down with Shift in applications results in - // horizontal scrolling; these binds replicate that. - Mod+Shift+WheelScrollDown { focus-column-right; } - Mod+Shift+WheelScrollUp { focus-column-left; } - Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } - Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } - - // Similarly, you can bind touchpad scroll "ticks". - // Touchpad scrolling is continuous, so for these binds it is split into - // discrete intervals. - // These binds are also affected by touchpad's natural-scroll, so these - // example binds are "inverted", since we have natural-scroll enabled for - // touchpads by default. - // Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; } - // Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; } - - // You can refer to workspaces by index. However, keep in mind that - // niri is a dynamic workspace system, so these commands are kind of - // "best effort". Trying to refer to a workspace index bigger than - // the current workspace count will instead refer to the bottommost - // (empty) workspace. - // - // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on - // will all refer to the 3rd workspace. - Mod+1 { focus-workspace 1; } - Mod+2 { focus-workspace 2; } - Mod+3 { focus-workspace 3; } - Mod+4 { focus-workspace 4; } - Mod+5 { focus-workspace 5; } - Mod+6 { focus-workspace 6; } - Mod+7 { focus-workspace 7; } - Mod+8 { focus-workspace 8; } - Mod+9 { focus-workspace 9; } - Mod+Ctrl+1 { move-column-to-workspace 1; } - Mod+Ctrl+2 { move-column-to-workspace 2; } - Mod+Ctrl+3 { move-column-to-workspace 3; } - Mod+Ctrl+4 { move-column-to-workspace 4; } - Mod+Ctrl+5 { move-column-to-workspace 5; } - Mod+Ctrl+6 { move-column-to-workspace 6; } - Mod+Ctrl+7 { move-column-to-workspace 7; } - Mod+Ctrl+8 { move-column-to-workspace 8; } - Mod+Ctrl+9 { move-column-to-workspace 9; } - - // Alternatively, there are commands to move just a single window: - // Mod+Ctrl+1 { move-window-to-workspace 1; } - - // Switches focus between the current and the previous workspace. - Mod+Tab { focus-workspace-previous; } - - // The following binds move the focused window in and out of a column. - // If the window is alone, they will consume it into the nearby column to the side. - // If the window is already in a column, they will expel it out. - Mod+BracketLeft { consume-or-expel-window-left; } - Mod+BracketRight { consume-or-expel-window-right; } - - // Consume one window from the right to the bottom of the focused column. - Mod+Comma { consume-window-into-column; } - // Expel the bottom window from the focused column to the right. - Mod+Period { expel-window-from-column; } - - Mod+R repeat=false { switch-preset-column-width; } - Mod+Shift+W { toggle-column-tabbed-display; } - // Cycling through the presets in reverse order is also possible. - // Mod+R { switch-preset-column-width-back; } - Mod+Shift+R repeat=false { switch-preset-window-height; } - Mod+Ctrl+R { reset-window-height; } - Mod+A repeat=false { maximize-column; } - Mod+Shift+A repeat=false { fullscreen-window; } - - // Expand the focused column to space not taken up by other fully visible columns. - // Makes the column "fill the rest of the space". - Mod+Ctrl+F { expand-column-to-available-width; } - - Mod+M { center-column; } - - // Center all fully visible columns on screen. - Mod+Ctrl+C { center-visible-columns; } - - // Finer width adjustments. - // This command can also: - // * set width in pixels: "1000" - // * adjust width in pixels: "-5" or "+5" - // * set width as a percentage of screen width: "25%" - // * adjust width as a percentage of screen width: "-10%" or "+10%" - // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, - // set-column-width "100" will make the column occupy 200 physical screen pixels. - Mod+Minus { set-column-width "-10%"; } - Mod+Equal { set-column-width "+10%"; } - - // Finer height adjustments when in column with other windows. - Mod+Shift+Minus { set-window-height "-10%"; } - Mod+Shift+Equal { set-window-height "+10%"; } - - // Move the focused window between the floating and the tiling layout. - Mod+V { toggle-window-floating; } - Mod+Shift+V { switch-focus-between-floating-and-tiling; } - - // Toggle tabbed column display mode. - // Windows in this column will appear as vertical tabs, - // rather than stacked on top of each other. - Mod+N { toggle-column-tabbed-display; } - - // Actions to switch layouts. - // Note: if you uncomment these, make sure you do NOT have - // a matching layout switch hotkey configured in xkb options above. - // Having both at once on the same hotkey will break the switching, - // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). - // Mod+Space { switch-layout "next"; } - // Mod+Shift+Space { switch-layout "prev"; } - - Mod+S { screenshot; } - Super+Shift+S { screenshot-screen; } - Alt+Print { screenshot-window; } - - // Applications such as remote-desktop clients and software KVM switches may - // request that niri stops processing the keyboard shortcuts defined here - // so they may, for example, forward the key presses as-is to a remote machine. - // It's a good idea to bind an escape hatch to toggle the inhibitor, - // so a buggy application can't hold your session hostage. - // - // The allow-inhibiting=false property can be applied to other binds as well, - // which ensures niri always processes them, even when an inhibitor is active. - //Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } - - // The quit action will show a confirmation dialog to avoid accidental exits. - Mod+Shift+Escape { quit; } - Ctrl+Alt+Delete { quit; } - - // Powers off the monitors. To turn them back on, do any input like - // moving the mouse or pressing any other key. - //Mod+Shift+P { power-off-monitors; } -} diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json deleted file mode 100644 index 224d9ac..0000000 --- a/.config/nvim/lazy-lock.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "LazyVim": { "branch": "main", "commit": "060e6dfaf7d4157b1a144df7d83179640dc52400" }, - "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, - "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "catppuccin": { "branch": "main", "commit": "5af9374957a65be8770696da295dc9016b96f241" }, - "conform.nvim": { "branch": "master", "commit": "016bc8174a675e1dbf884b06a165cd0c6c03f9af" }, - "flash.nvim": { "branch": "main", "commit": "b68bda044d68e4026c4e1ec6df3c5afd7eb8e341" }, - "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "23ae90a2a52fdc9b8c50dc61d6c30ebb18521343" }, - "grug-far.nvim": { "branch": "main", "commit": "48f9afb684de1c191af7bed96bc1db85ba33f6a4" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lazydev.nvim": { "branch": "main", "commit": "258d2a5ef4a3e3d6d9ba9da72c9725c53e9afcbd" }, - "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "f760507df8c49a4bf46a4d12e1fc616797508979" }, - "mason.nvim": { "branch": "main", "commit": "b3689a41dd77e5294498dba9757fb22cc80cbebd" }, - "mini.ai": { "branch": "main", "commit": "e0d00c227112e942ed2789dd4c21d651002831c0" }, - "mini.icons": { "branch": "main", "commit": "e8fae66cb400744daeedf6e387347df50271c252" }, - "mini.pairs": { "branch": "main", "commit": "bada72fe4ec607f882a098d15aa4a3279bc6883d" }, - "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, - "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "335a6044be16d7701001059cba9baa36fbeef422" }, - "nvim-lspconfig": { "branch": "master", "commit": "0867a61e745920dd754c660a504fed4afb44bd0f" }, - "nvim-treesitter": { "branch": "main", "commit": "77362027f7aa850c87419fd571151e76b0b342a6" }, - "nvim-treesitter-textobjects": { "branch": "main", "commit": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931" }, - "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, - "persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" }, - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, - "snacks.nvim": { "branch": "main", "commit": "5d9dacd09876eed33bde204d224fa7596ac850e8" }, - "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, - "tokyonight.nvim": { "branch": "main", "commit": "4d159616aee17796c2c94d2f5f87d2ee1a3f67c7" }, - "trouble.nvim": { "branch": "main", "commit": "f176232e7759c4f8abd923c21e3e5a5c76cd6837" }, - "ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" }, - "which-key.nvim": { "branch": "main", "commit": "904308e6885bbb7b60714c80ab3daf0c071c1492" }, - "xkbswitch.nvim": { "branch": "master", "commit": "aae56d49db9baf0d9b9675a77da35173d8d87a30" } -} diff --git a/.config/nwg-look/config b/.config/nwg-look/config deleted file mode 100644 index 3f49ae5..0000000 --- a/.config/nwg-look/config +++ /dev/null @@ -1,7 +0,0 @@ -{ - "export-settings-ini": true, - "export-gtkrc-20": true, - "export-index-theme": true, - "export-xsettingsd": true, - "export-gtk4-symlinks": true -} \ No newline at end of file diff --git a/.config/pavucontrol.ini b/.config/pavucontrol.ini deleted file mode 100644 index a142c97..0000000 --- a/.config/pavucontrol.ini +++ /dev/null @@ -1,9 +0,0 @@ -[window] -width=500 -height=400 -sinkInputType=0 -sourceOutputType=0 -sinkType=0 -sourceType=0 -showVolumeMeters=1 -hideUnavailableCardProfiles=0 diff --git a/.config/user-dirs.locale b/.config/user-dirs.locale deleted file mode 100644 index 3e0b419..0000000 --- a/.config/user-dirs.locale +++ /dev/null @@ -1 +0,0 @@ -en_US \ No newline at end of file diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc deleted file mode 100644 index ea10740..0000000 --- a/.config/zathura/zathurarc +++ /dev/null @@ -1 +0,0 @@ -set selection-clipboard clipboard diff --git a/README.md b/README.md index fe3aad1..a888611 100644 --- a/README.md +++ b/README.md @@ -1 +1,32 @@ -my .conf files for arch + +# This is my configuration files for: +- niri +- kitty +- btop +- clipse +- fastfetch +- hypr (outdated) +- fuzzel +- hyprwave +- neovim +- termusic +- yazi +- waybar (outdated) +- fish + +also here is the list of arch packages that i use + +if you want to use the niri config without editing, you should install the dependencies: +``` +paru -Syu niri-screen-time swayosd walker swaync clipse swaybg xwayland-satellite hyprwave hyprlock hyprpicker +``` + +if u wanna install **all** packages that i use do next: +copy that repository +``` +cd arch-conf +xargs -a apps-list.md paru -Syu + +``` +(not recommended) + diff --git a/apps-list.md b/apps-list.md index 956f9d2..65ce33c 100644 --- a/apps-list.md +++ b/apps-list.md @@ -1,1303 +1,459 @@ -7zip 25.01-1 -a52dec 0.8.0-2 -aalib 1.4rc5-19 -abseil-cpp 20250814.1-1 -acl 2.3.2-1 -acpica 20250404-1 -ada 3.2.7-1 -adwaita-cursors 49.0-1 -adwaita-fonts 49.0-2 -adwaita-icon-theme 49.0-1 -adwaita-icon-theme-legacy 46.2-3 -alsa-card-profiles 1:1.4.9-1 -alsa-lib 1.2.14-2 -alsa-plugins 1:1.2.12-5 -alsa-topology-conf 1.2.5.1-4 -alsa-ucm-conf 1.2.14-2 -android-tools 35.0.2-21 -android-udev 20250525-1 -aom 3.13.1-1 -appstream 1.1.1-1 -appstream-glib 0.8.3-2 -archlinux-keyring 20251012-1 -argon2 20190702-6 -aribb24 1.0.3-4 -at-spi2-core 2.58.1-1 -atkmm 2.28.4-1 -attr 2.5.2-1 -audit 4.0.5-1 -augeas 1.14.1-4 -autoconf 2.72-1 -autoconf-archive 1:2024.10.16-3 -automake 1.18.1-1 -avahi 1:0.9rc2-1 -babl 0.1.116-1 -base 3-2 -base-devel 1-2 -bash 5.3.3-2 -binutils 2.45+r29+g2b2e51a31ec7-1 -bison 3.8.2-8 -blas 3.12.1-2 -blueprint-compiler 0.18.0-1 -bluetui 0.7-1 -bluez 5.84-1 -bluez-libs 5.84-1 -bluez-utils 5.84-1 -boost-libs 1.89.0-2 -brltty 6.8-2 -brotli 1.1.0-3 -btop 1.4.5-1 -btrfs-progs 6.17-1 -bubblewrap 0.11.0-1 -bzip2 1.0.8-6 -c-ares 1.34.5-1 -ca-certificates 20240618-1 -ca-certificates-mozilla 3.117-1 -ca-certificates-utils 20240618-1 -cabextract 1.11-2 -cairo 1.18.4-1 -cairomm 1.14.5-1 -cairomm-1.16 1.18.0-2 -calcurse 4.8.2-1 -cantarell-fonts 1:0.303.1-2 -capstone 5.0.6-1 -cava 0.10.6-1 -cbindgen 0.29.2-1 -cdparanoia 10.2-9 -cdrtools 3.02a09-6 -chromaprint 1.6.0-2 -chrpath 0.17-1 -cjson 1.7.19-1 -clang 21.1.4-2 -clipse 1.1.0-1 -clock-tui 0.6.1-1 -clucene 2.3.3.4-16 -cmake 4.1.2-1 -cmark 0.31.1-1 -cmus 2.12.0-4 -compiler-rt 21.1.4-2 -confuse 3.3-4 -containerd 2.1.4-1 -coreutils 9.8-2 -cowsay 3.8.4-1 -cpio 2.15-3 -cppdap 1.58.0-2 -cryptsetup 2.8.1-1 -cuda 13.0.2-1 -curl 8.16.0-1 -cxxopts 3.3.1-1 -cython 3.1.5-1 -dav1d 1.5.1-1 -db5.3 5.3.28-5 -dbus 1.16.2-1 -dbus-broker 37-2 -dbus-broker-units 37-2 -dbus-glib 0.114-1 -dbus-units 37-2 -dconf 0.49.0-1 -debugedit 5.2-1 -default-cursors 3-1 -desktop-file-utils 0.28-1 -device-mapper 2.03.35-1 -dhcpcd 10.2.4-2 -diffstat 1.68-1 -diffutils 3.12-2 -djvulibre 3.5.29-1 -dkms 3.2.2-1 -dmenu 5.4-1 -dnsmasq 2.91-1 -docker 1:28.5.1-1 -docker-compose 2.40.2-1 -dosfstools 4.2-5 -double-conversion 3.3.1-1 -dtc 1.7.2-4 -duktape 2.7.0-7 -e2fsprogs 1.47.3-1 -edk2-aarch64 202508-1 -edk2-arm 202508-1 -edk2-ovmf 202508-1 -efibootmgr 18-3 -efivar 39-1 -egl-gbm 1.1.2.1-1 -egl-wayland 4:1.1.20-1 -egl-x11 1.0.3-1 -eglexternalplatform 1.2.1-1 -electron37 37.5.1-1 -elyprismlauncher-bin 9.5-1 -enchant 2.8.12-1 -eog 47.0-3 -exempi 2.6.6-2 -exfatprogs 1.3.0-1 -exiv2 0.28.7-1 -expat 2.7.3-1 -eza 0.23.4-1 -f2fs-tools 1.16.0-3 -faac 1.31.1-1 -faad2 2.11.2-1 -fakeroot 1.37.1.2-1 -farstream 0.2.9-3 -fastfetch 2.54.0-1 -fcft 3.3.2-1 -ffmpeg 2:8.0-3 -ffmpeg4.4 4.4.6-3 -fftw 3.3.10-7 -file 5.46-5 -filesystem 2025.10.12-1 -findutils 4.10.0-3 -firefox 144.0-1 -fish 4.1.2-1 -flac 1.5.0-1 -flex 2.6.4-5 -fluidsynth 2.5.0-2 -fmt 12.0.0-1 -fnott 1.8.0-1 -fontconfig 2:2.17.1-1 -freeglut 3.6.0-2 -freetype2 2.14.1-1 -fribidi 1.0.16-2 -fuse-common 3.17.1-1 -fuse2 2.9.9-5 -fuse3 3.17.1-1 -fuzzel 1.13.1-1 -fzf 0.66.0-1 -gawk 5.3.2-1 -gc 8.2.10-2 -gcc 15.2.1+r22+gc4e96a094636-1 -gcc-libs 15.2.1+r22+gc4e96a094636-1 -gcr-4 4.4.0.1-1 -gdbm 1.26-1 -gdk-pixbuf2 2.44.4-1 -gegl 0.4.64-1 -gendesk 1.0.10-1 -gettext 0.26-1 -gexiv2 0.16.0-1 -gfxstream 0.1.2-2 -ghostscript 10.06.0-1 -ghostty 1.2.2-1 -ghostty-shell-integration 1.2.2-1 -ghostty-terminfo 1.2.2-1 -giflib 5.2.2-2 -gimp 3.0.6-2 -girara 0.4.5-1 -git 2.51.1-2 -glib-networking 1:2.80.1-1 -glib2 2.86.0-2 -glib2-devel 2.86.0-2 -glibc 2.42+r17+gd7274d718e6f-1 -glibmm 2.66.8-1 -glibmm-2.68 2.86.0-1 -glm 1.0.2-1 -glslang 1:1.4.328.1-1 -glu 9.0.3-2 -glusterfs 1:11.1-5 -glycin 2.0.4-1 -gmp 6.3.0-2 -gnome-autoar 0.4.5-1 -gnome-desktop 1:44.4-1 -gnome-desktop-4 1:44.4-1 -gnome-desktop-common 1:44.4-1 -gnome-themes-extra 3.28+r6+g45b1d457-2 -gnome-tweaks 49.0-1 -gnu-free-fonts 20120503-8 -gnulib-l10n 20241231-1 -gnupg 2.4.8-1 -gnutls 3.8.10-1 -go 2:1.25.3-1 -gobject-introspection 1.86.0-1 -gobject-introspection-runtime 1.86.0-1 -godotpcktool-bin 2.2-1 -google-chrome 141.0.7390.122-1 -gperftools 2.17.2-1 -gpgme 2.0.1-1 -gpgmepp 2.0.0-2 -gpm 1.20.7.r38.ge82d1a6-6 -gpsd 3.26.1-2 -gptfdisk 1.0.10-1 -graphene 1.10.8-2 -graphite 1:1.3.14-5 -grep 3.12-2 -groff 1.23.0-7 -grub 2:2.12.r418.g6b5c671d-1 -gsettings-desktop-schemas 49.1-1 -gsettings-system-schemas 49.1-1 -gsm 1.0.22-2 -gspell 1.14.1-1 -gssdp 1.6.4-1 -gst-libav 1.26.7-1 -gst-plugin-gtk4 0.14.2-1 -gst-plugins-bad 1.26.7-1 -gst-plugins-bad-libs 1.26.7-1 -gst-plugins-base 1.26.7-1 -gst-plugins-base-libs 1.26.7-1 -gst-plugins-good 1.26.7-1 -gst-plugins-ugly 1.26.7-1 -gstreamer 1.26.7-1 -gtest 1.17.0-1 -gtk-layer-shell 0.9.2-1 -gtk-session-lock 0.2.0-2 -gtk-theme-bubble-darker-git r209.0300785-1 -gtk-theme-elementary 8.2.1-1 -gtk-theme-material-black 2.9.9_04-1 -gtk-update-icon-cache 1:4.20.2-3 -gtk2 2.24.33-5 -gtk3 1:3.24.51-1 -gtk4 1:4.20.2-3 -gtk4-layer-shell 1.2.0-1 -gtklock 4.0.0-1 -gtkmm-4.0 4.20.0-1 -gtkmm3 3.24.10-1 -gtksourceview3 1:3.24.11+r30+gd880929f-1 -gtkspell 2.0.16-9 -guile 3.0.10-1 -gumbo-parser 0.13.2-1 -gupnp 1:1.6.9-1 -gupnp-dlna 0.12.0-4 -gupnp-igd 1.6.0-2 -gvfs 1.58.0-2 -gzip 1.14-2 -harfbuzz 12.1.0-1 -harfbuzz-icu 12.1.0-1 -hicolor-icon-theme 0.18-1 -hidapi 0.15.0-1 -highway 1.3.0-1 -hivex 1.3.24-4 -hunspell 1.7.2-2 -hwdata 0.400-1 -hyphen 2.8.8-6 -hyprpicker 0.4.5-7 -hyprutils 0.10.0-1 -hyprwayland-scanner 0.4.5-1 -i2pd 2.58.0-2 -i3-wm 4.24-1 -i3blocks 1.5-4 -i3lock 2.15-3 -i3status 2.15-1 -iana-etc 20250612-1 -icu 76.1-1 -ijs 0.35-6 -imagemagick 7.1.2.7-1 -imake 1.0.10-2 -imath 3.2.2-2 -img2pdf 0.6.1-1 -imlib2 1.12.5-1 -imv 4.5.0-6 -iniparser 4.2.6-2 -iproute2 6.17.0-1 -iptables 1:1.8.11-2 -iputils 20250605-1 -iso-codes 4.18.0-1 -jansson 2.14.1-1 -jasper 4.2.8-1 -java-environment-common 3-6 -java-runtime-common 3-6 -jbig2dec 0.20-1 -jbigkit 2.1-8 -jdk-openjdk 25.0.1.u8-1 -jdk17-openjdk 17.0.17.u10-1 -jemalloc 1:5.3.0-5 -jfsutils 1.1.15-9 -json-c 0.18-2 -json-glib 1.10.8-1 -jsoncpp 1.9.6-3 -kbd 2.9.0-1 -kcoreaddons 6.19.0-1 -kernel-headers-musl 4.19.88-3 -keyutils 1.6.3-3 -kitty 0.43.1-1 -kitty-shell-integration 0.43.1-1 -kitty-terminfo 0.43.1-1 -kmod 34.2-1 -krb5 1.21.3-2 -l-smash 2.14.5-4 -lame 3.100-6 -lapack 3.12.1-2 -lcms2 2.17-1 -leancrypto 1.5.1-1 -lensfun 1:0.3.4-5 -leptonica 1.86.0-1 -less 1:685-1 -lib32-alsa-lib 1.2.14-2 -lib32-alsa-plugins 1.2.12-1 -lib32-audit 4.0.5-1 -lib32-brotli 1.1.0-1 -lib32-bzip2 1.0.8-4 -lib32-curl 8.16.0-1 -lib32-dbus 1.16.2-1 -lib32-e2fsprogs 1.47.3-1 -lib32-expat 2.7.3-1 -lib32-fontconfig 2:2.17.1-1 -lib32-freetype2 2.14.1-1 -lib32-gcc-libs 15.2.1+r22+gc4e96a094636-1 -lib32-glib2 2.86.0-2 -lib32-glibc 2.42+r17+gd7274d718e6f-1 -lib32-gmp 6.3.0-2 -lib32-gnutls 3.8.10-1 -lib32-icu 76.1-1 -lib32-json-c 0.18-2 -lib32-keyutils 1.6.3-2 -lib32-krb5 1.21.3-1 -lib32-libcap 2.76-1 -lib32-libdrm 2.4.126-1 -lib32-libelf 0.193-4 -lib32-libffi 3.5.2-1 -lib32-libgcrypt 1.11.2-1 -lib32-libglvnd 1.7.0-1 -lib32-libgpg-error 1.55-1 -lib32-libidn2 2.3.7-1 -lib32-libldap 2.6.10-1 -lib32-libnghttp2 1.67.1-1 -lib32-libnghttp3 1.12.0-1 -lib32-libnm 1.54.1-1 -lib32-libnsl 2.0.1-1 -lib32-libpciaccess 0.18.1-1 -lib32-libpipewire 1:1.4.9-1 -lib32-libpng 1.6.50-1 -lib32-libpsl 0.21.5-1 -lib32-libssh2 1.11.1-1 -lib32-libtasn1 4.20.0-1 -lib32-libtirpc 1.3.7-1 -lib32-libunistring 1.3-1 -lib32-libva 2.22.0-1 -lib32-libx11 1.8.12-2 -lib32-libxau 1.0.11-2 -lib32-libxcb 1.17.0-1 -lib32-libxcrypt 4.4.38-1 -lib32-libxcrypt-compat 4.4.38-1 -lib32-libxdmcp 1.1.5-1 -lib32-libxext 1.3.6-1 -lib32-libxfixes 6.0.1-2 -lib32-libxinerama 1.1.5-2 -lib32-libxml2 2.15.1-1 -lib32-libxshmfence 1.3.3-1 -lib32-libxss 1.2.4-2 -lib32-libxxf86vm 1.1.5-2 -lib32-llvm-libs 1:21.1.4-1 -lib32-lm_sensors 1:3.6.2-2 -lib32-mesa 1:25.2.5-1 -lib32-ncurses 6.5-2 -lib32-nettle 3.10.2-1 -lib32-nspr 4.37-1 -lib32-nss 3.117-1 -lib32-nvidia-utils 580.95.05-1 -lib32-openssl 1:3.6.0-1 -lib32-p11-kit 0.25.10-2 -lib32-pam 1.7.1-1 -lib32-pcre2 10.46-1 -lib32-pipewire 1:1.4.9-1 -lib32-spirv-tools 1:1.4.328.1-1 -lib32-sqlite 3.50.4-1 -lib32-systemd 258.1-1 -lib32-util-linux 2.41.2-1 -lib32-vulkan-icd-loader 1.4.328.1-1 -lib32-wayland 1.24.0-1 -lib32-xz 5.8.1-1 -lib32-zlib 1.3.1-2 -lib32-zstd 1.5.7-2 -libabw 0.1.3-5 -libadwaita 1:1.8.1-1 -libaemu 0.1.2-5 -libaio 0.3.113-3 -libao 1.2.2-7 -libarchive 3.8.2-1 -libass 0.17.4-1 -libassuan 3.0.0-1 -libasyncns 1:0.8+r3+g68cd5af-3 -libatasmart 0.19-7 -libatomic_ops 7.8.2-1 -libavc1394 0.5.4-7 -libavif 1.3.0-3 -libavtp 0.2.0-3 -libb2 0.98.1-3 -libblockdev 3.4.0-1 -libblockdev-crypto 3.4.0-1 -libblockdev-fs 3.4.0-1 -libblockdev-loop 3.4.0-1 -libblockdev-mdraid 3.4.0-1 -libblockdev-nvme 3.4.0-1 -libblockdev-part 3.4.0-1 -libblockdev-swap 3.4.0-1 -libbluray 1.4.0-2 -libbpf 1.5.1-1 -libbs2b 3.1.0-9 -libbsd 0.12.2-2 -libbytesize 2.11-1 -libcaca 0.99.beta20-5 -libcacard 2.8.1-1 -libcanberra 1:0.30+r2+gc0620e4-4 -libcap 2.76-1 -libcap-ng 0.8.5-3 -libcbor 0.12.0-1 -libcdio 2.2.0-1 -libcdio-paranoia 10.2+2.0.2-1 -libcdr 0.1.8-2 -libcloudproviders 0.3.6-2 -libcmis 0.6.2-6 -libcolord 1.4.8-1 -libconfig 1.8.1-1 -libcue 2.3.0-1 -libcups 2:2.4.14-1 -libdaemon 0.14-6 -libdatachannel 0.23.2-2 -libdatrie 0.2.13-4 -libdbusmenu-glib 16.04.0.r498-2 -libdbusmenu-gtk3 16.04.0.r498-2 -libdc1394 2.2.7-1 -libdca 0.0.7-2 -libde265 1.0.16-2 -libdecor 0.2.3-1 -libdeflate 1.24-1 -libdiscid 0.6.5-2 -libdispatch 6.1-1 -libdisplay-info 0.3.0-1 -libdovi 3.3.2-1 -libdrm 2.4.126-1 -libdv 1.0.0-11 -libdvdnav 7.0.0-1 -libdvdread 7.0.0-1 -libe-book 0.1.3-18 -libebur128 1.2.6-2 -libedit 20250104_3.1-1 -libei 1.5.0-1 -libelf 0.193-5 -libepoxy 1.5.10-3 -libepubgen 0.1.1-5 -libetonyek 0.1.13-1 -libev 4.33-4 -libevdev 1.13.4-1 -libevent 2.1.12-4 -libewf 20140816-1 -libexif 0.6.25-1 -libexttextcat 3.4.7-1 -libfdk-aac 2.0.3-1 -libffi 3.5.2-1 -libfontenc 1.1.8-1 -libfreeaptx 0.2.2-1 -libfreehand 0.1.2-5 -libfyaml 0.9-1 -libgadu 1.12.2-14 -libgbinder 1.1.42-2 -libgcrypt 1.11.2-1 -libgexiv2 0.14.6-1 -libgig 4.4.1-1 -libgirepository 1.86.0-1 -libgit2 1:1.9.1-1 -libglibutil 1.0.80-1 -libglvnd 1.7.0-3 -libgme 0.6.4-1 -libgpg-error 1.56-1 -libgsf 1.14.53-2 -libgudev 238-3 -libguestfs 1.56.2-1 -libgxps 0.3.2-5 -libhandy 1.8.3-2 -libheif 1.20.2-3 -libice 1.1.2-1 -libid3tag 0.16.3-2 -libidn 1.43-1 -libidn2 2.3.7-1 -libiec61883 1.2.0-9 -libimagequant 4.4.0-1 -libimobiledevice 1.4.0-1 -libimobiledevice-glue 1.3.2-1 -libinih 61-1 -libinput 1.29.1-1 -libinstpatch 1.1.7-2 -libiptcdata 1.0.5-4 -libiscsi 1.20.0-2 -libisl 0.27-1 -libixion 0.20.0-3 -libjpeg-turbo 3.1.2-1 -libjuice 1.6.2-1 -libjxl 0.11.1-5 -libksba 1.6.7-2 -liblangtag 0.6.8-1 -liblc3 1.1.3-1 -libldac 2.0.2.3-2 -libldap 2.6.10-2 -libldm 0.2.5-3 -liblouis 3.35.0-1 -liblqr 0.4.3-1 -liblrdf 0.6.1-5 -libltc 1.3.2-2 -libluv 1.48.0_2-1 -libmad 0.15.1b-10 -libmanette 0.2.13-1 -libmd 1.1.0-2 -libmfx 23.2.2-5 -libmicrodns 0.2.0-2 -libmikmod 3.3.13-1 -libmm-glib 1.24.2-1 -libmms 0.6.4-5 -libmng 2.0.3-4 -libmnl 1.0.5-2 -libmodplug 0.8.9.0-6 -libmpc 1.3.1-2 -libmpcdec 1:0.1+r475-6 -libmpdclient 2.23-1 -libmpeg2 0.5.1-11 -libmspub 0.1.4-17 -libmtp 1.1.22-1 -libmupdf 1.26.10-1 -libmwaw 0.3.22-3 -libmypaint 1.6.1-2 -libmysofa 1.3.3-1 -libnautilus-extension 49.1-1 -libnbd 1.22.4-1 -libndp 1.9-1 -libnet 2:1.3-1 -libnetfilter_conntrack 1.0.9-2 -libnewt 0.52.25-1 -libnfnetlink 1.0.2-2 -libnfs 6.0.2-5 -libnftnl 1.3.0-1 -libnghttp2 1.67.1-1 -libnghttp3 1.12.0-1 -libngtcp2 1.16.0-1 -libnice 0.1.22-2 -libnl 3.11.0-1 -libnm 1.54.1-1 -libnotify 0.8.7-1 -libnsl 2.0.1-1 -libnumbertext 1.0.11-2 -libnvme 1.15-1 -libodfgen 0.1.8-5 -libogg 1.3.6-1 -libopenmpt 0.8.3-1 -liborcus 0.21.0-2 -libosinfo 1.12.0-2 -libp11-kit 0.25.10-2 -libpagemaker 0.0.4-4 -libpaper 2.2.6-1 -libpcap 1.10.5-3 -libpciaccess 0.18.1-2 -libpeas 1.36.0-7 -libpgm 5.3.128-3 -libpipeline 1.5.8-1 -libpipewire 1:1.4.9-1 -libplacebo 7.351.0-3 -libplist 2.7.0-1 -libpng 1.6.50-1 -libportal 0.9.1-2 -libportal-gtk4 0.9.1-2 -libproxy 0.5.11-1 -libpsl 0.21.5-2 -libpulse 17.0+r88+geee0e8f22-1 -libpurple 2.14.14-3 -libqxp 0.0.2-13 -libraqm 0.10.3-1 -libraw 0.21.4-1 -libraw1394 2.1.2-4 -libreoffice-fresh 25.8.2-4 -libreoffice-fresh-ru 25.8.2-1 -librevenge 0.0.5-3 -librewolf-bin 1:144.0.0_1-1 -librsvg 2:2.61.1-1 -librsync 1:2.3.4-2 -libsamplerate 0.2.2-3 -libsasl 2.1.28-5 -libsass 3.6.6-1 -libseccomp 2.5.6-1 -libsecret 0.21.7-1 -libshout 1:2.4.6-5 -libsidplayfp 2.15.1-1 -libsigc++ 2.12.1-1 -libsigc++-3.0 3.6.0-1 -libsixel 1.10.5-1 -libslirp 4.9.1-1 -libsm 1.2.6-1 -libsndfile 1.2.2-4 -libsodium 1.0.20-1 -libsoup 2.74.3-4 -libsoup3 3.6.5-1 -libsoxr 0.1.3-4 -libspeechd 0.12.1-2 -libspiro 1:20240903-1 -libsrtp 1:2.7.0-1 -libssh 0.11.3-1 -libssh2 1.11.1-1 -libstaroffice 0.0.7-4 -libstemmer 3.0.1-1 -libsynctex 2025.2-2 -libsysprof-capture 49.0-1 -libtasn1 4.20.0-1 -libtatsu 1.0.5-1 -libteam 1.32-2 -libthai 0.1.29-3 -libtheora 1.2.0-1 -libtiff 4.7.1-1 -libtirpc 1.3.7-1 -libtommath 1.3.0-1 -libtool 2.6.0-1 -libtorrent-rasterbar 1:2.0.11-5 -libtraceevent 1:1.8.4-1 -libtracefs 1.8.2-2 -libunibreak 6.1-1 -libunistring 1.3-1 -libunwind 1.8.2-1 -libupnp 1.14.25-1 -liburcu 0.15.3-1 -liburing 2.12-1 -libusb 1.0.29-1 -libusbmuxd 2.1.1-1 -libutf8proc 2.10.0-2 -libuv 1.51.0-1 -libva 2.22.0-1 -libvdpau 1.5-3 -libverto 0.3.2-5 -libvirt 1:11.8.0-1 -libvisio 0.1.10-1 -libvorbis 1.3.7-4 -libvpl 2.15.0-1 -libvpx 1.15.2-2 -libvterm 0.3.3-2 -libwacom 2.16.1-1 -libwebp 1.6.0-2 -libwireplumber 0.5.12-1 -libwmf 0.2.13-4 -libwpd 0.10.3-5 -libwps 0.4.14-3 -libx11 1.8.12-1 -libxau 1.0.12-1 -libxaw 1.0.16-1 -libxcb 1.17.0-1 -libxcomposite 0.4.6-2 -libxcrypt 4.4.38-1 -libxcrypt-compat 4.4.38-1 -libxcursor 1.2.3-1 -libxcvt 0.1.3-1 -libxdamage 1.1.6-2 -libxdmcp 1.1.5-1 -libxdp 1.5.7-1 -libxext 1.3.6-1 -libxfixes 6.0.2-1 -libxfont2 2.0.7-1 -libxft 2.3.9-1 -libxi 1.8.2-1 -libxinerama 1.1.5-2 -libxkbcommon 1.12.2-1 -libxkbcommon-x11 1.12.2-1 -libxkbfile 1.1.3-1 -libxml2 2.15.1-1 -libxmlb 0.3.24-1 -libxmu 1.2.1-1 -libxpm 3.5.17-2 -libxpresent 1.0.2-1 -libxrandr 1.5.4-1 -libxrender 0.9.12-1 -libxres 1.2.3-1 -libxshmfence 1.3.3-1 -libxslt 1.1.43-2 -libxss 1.2.5-1 -libxt 1.3.1-1 -libxtst 1.2.5-1 -libxv 1.0.13-1 -libxxf86vm 1.1.6-1 -libyaml 0.2.5-3 -libyuv r2426+464c51a03-1 -libzmf 0.0.2-18 -licenses 20240728-1 -lilv 0.24.26-1 -links 2.30-1 -linux 6.17.4.arch2-1 -linux-api-headers 6.16-2 -linux-firmware 20251011-1 -linux-firmware-amdgpu 20251011-1 -linux-firmware-atheros 20251011-1 -linux-firmware-broadcom 20251011-1 -linux-firmware-cirrus 20251011-1 -linux-firmware-intel 20251011-1 -linux-firmware-mediatek 20251011-1 -linux-firmware-nvidia 20251011-1 -linux-firmware-other 20251011-1 -linux-firmware-radeon 20251011-1 -linux-firmware-realtek 20251011-1 -linux-firmware-whence 20251011-1 -lld 21.1.4-1 -llhttp 9.2.1-2 -llvm 21.1.4-1 -llvm-libs 21.1.4-1 -lm_sensors 1:3.6.2-1 -lmdb 0.9.33-1 -lmms 1.2.2-25 -localsearch 3.10.1-1 -lpsolve 5.5.2.11-3 -lrzip 0.651-3 -lsb-release 2.0.r55.a25a4fc-1 -lsof 4.99.5-2 -lsscsi 0.32-2 -lua 5.4.8-2 -lua51-lpeg 1.1.0-4 -luajit 2.1.1753364724-1 -lutris 0.5.19-6 -lv2 1.18.10-1 -lvm2 2.03.35-1 -lxc 1:6.0.5-1 -ly 1.1.2-1 -lz4 1:1.10.0-2 -lzo 2.10-5 -lzop 1.04-4 -m4 1.4.20-1 -mailcap 2.1.54-2 -make 4.4.1-2 -man-db 2.13.1-1 -materialgram-bin 6.2.3.1-1 -mbedtls 3.6.4-1 -md4c 0.5.2-1 -mdadm 4.4-2 -mesa 1:25.2.5-1 -mesa-utils 9.0.0-7 -meson 1.9.1-1 -microsocks 1.0.4-1 -miniupnpc 2.3.3-1 -minizip 1:1.3.1-2 -mjpegtools 2.2.1-3 -mkinitcpio 39.2-5 -mkinitcpio-busybox 1.36.1-1 -mobile-broadband-provider-info 20250613-1 -mpd 0.24.6-1 -mpdecimal 4.0.1-1 -mpfr 4.2.2-1 -mpg123 1.33.2-1 -mpv 1:0.40.0-7 -msgpack-c 6.1.0-2 -mtdev 1.1.7-1 -mtools 1:4.0.49-1 -mujs 1.3.7-1 -multipath-tools 0.12.0-1 -musl 1.2.5-6 -mypaint-brushes1 1.3.1-2 -nasm 3.01-1 -nautilus 49.1-1 -ncurses 6.5-4 -ndctl 79-1 -neon 0.35.0-1 -neovide 0.15.2-1 -neovim 0.11.4-1 -nettle 3.10.2-1 -networkmanager 1.54.1-1 -nftables 1:1.1.5-1 -nicotine+ 3.3.10-1 -nilfs-utils 2.2.12-1 -ninja 1.13.1-2 -niri 25.08-2 -nlohmann-json 3.12.0-2 -node-gyp 11.5.0-1 -nodejs 24.9.0-1 -nodejs-nopt 7.2.1-1 -noto-fonts-cjk 20240730-1 -noto-fonts-emoji 1:2.051-1 -npm 11.6.2-1 -npth 1.8-1 -nspr 4.37-1 -nss 3.117-1 -ntfs-3g 2022.10.3-2 -numactl 2.0.19-1 -nvidia 580.95.05-6 -nvidia-utils 580.95.05-1 -nwg-look 1.0.6-1 -obs-studio 32.0.1-2 -obsidian 1.9.14-1 -ocl-icd 2.3.3-1 -ocrmypdf 16.11.1-1 -ollama 0.12.6-1 -ollama-cuda 0.12.6-1 -oniguruma 6.9.10-1 -openal 1.24.3-2 -opencl-nvidia 580.95.05-1 -opencore-amr 0.1.6-2 -openexr 3.4.2-1 -openh264 2.6.0-1 -openjpeg2 2.5.4-1 -openssh 10.2p1-1 -openssl 3.6.0-1 -opus 1.5.2-1 -orc 0.4.41-1 -osinfo-db 20250606-1 -overskride 0.6.2-1 -p11-kit 0.25.10-2 -pacman 7.0.0.r6.gc685ae6-6 -pacman-contrib 1.13.0-1 -pacman-mirrorlist 20251021-1 -pam 1.7.1-1 -pambase 20250719-1 -pango 1:1.57.0-2 -pangomm 2.46.4-1 -pangomm-2.48 2.56.1-1 -parted 3.6-2 -paru 2.1.0-1 -paru-debug 2.1.0-1 -patch 2.8-1 -pavucontrol 1:6.2-1 -pciutils 3.14.0-1 -pcre 8.45-4 -pcre2 10.46-1 -pcsclite 2.4.0-3 -perl 5.42.0-1 -perl-error 0.17030-2 -perl-libintl-perl 1.35-2 -perl-mailtools 2.22-2 -perl-timedate 2.33-8 -pidgin 2.14.14-3 -pinentry 1.3.2-2 -pipewire 1:1.4.9-1 -pipewire-alsa 1:1.4.9-1 -pipewire-audio 1:1.4.9-1 -pipewire-jack 1:1.4.9-1 -pipewire-pulse 1:1.4.9-1 -pipewire-session-manager 1:1.4.9-1 -pixman 0.46.4-1 -pkgconf 2.5.1-1 -playerctl 2.4.1-4 -pngquant 3.0.3-2 -pnpm 10.18.3-1 -polkit 126-2 -polkit-gnome 0.105-11 -poppler 25.10.0-1 -poppler-data 0.4.12-2 -poppler-glib 25.10.0-1 -popt 1.19-2 -portaudio 1:19.7.0-3 -pps-tools 1.0.3-2 -procps-ng 4.0.5-3 -protobuf 32.1-1 -protobuf-c 1.5.2-6 -psmisc 23.7-1 -pugixml 1.15-2 -python 3.13.7-1 -python-attrs 25.4.0-1 -python-autocommand 2.2.2-7 -python-babel 2.17.0-1 -python-beautifulsoup4 4.14.2-1 -python-build 1.3.0-1 -python-cairo 1.28.0-1 -python-certifi 2025.10.05-1 -python-cffi 2.0.0-1 -python-chardet 5.2.0-6 -python-charset-normalizer 3.4.4-1 -python-cryptography 46.0.3-1 -python-dbus 1.4.0-1 -python-deprecated 1.2.18-1 -python-deprecation 2.1.0-10 -python-distro 1.9.0-3 -python-docopt 0.6.2-14 -python-editables 0.5-5 -python-evdev 1.9.2-1 -python-filelock 3.20.0-1 -python-gbinder 1.1.2-3 -python-gevent 25.9.1-1 -python-gobject 3.54.5-1 -python-greenlet 3.2.4-1 -python-hatch-vcs 0.5.0-1 -python-hatchling 1.27.0-1 -python-idna 3.11-1 -python-importlib_resources 6.5.2-1 -python-installer 0.7.0-10 -python-jaraco.collections 5.1.0-1 -python-jaraco.context 6.0.1-1 -python-jaraco.functools 4.1.0-1 -python-jaraco.text 4.0.0-2 -python-lxml 6.0.2-1 -python-mako 1.3.10-1 -python-markdown 3.9.0-1 -python-markdown-it-py 4.0.0-1 -python-markupsafe 3.0.2-1 -python-mdurl 0.1.2-8 -python-moddb 0.14.0-1 -python-more-itertools 10.8.0-1 -python-packaging 25.0-1 -python-pathspec 0.12.1-3 -python-pdfminer 20250506-1 -python-pikepdf 9.11.0-1 -python-pillow 12.0.0-1 -python-pip 25.2-1 -python-platformdirs 4.5.0-1 -python-pluggy 1.6.0-1 -python-pycparser 2.23-1 -python-pygments 2.19.2-1 -python-pyproject-hooks 1.2.0-3 -python-pytz 2025.2-1 -python-reportlab 4.2.2-5 -python-requests 2.32.5-1 -python-rich 14.2.0-1 -python-setuptools 1:80.9.0-2 -python-setuptools-scm 9.2.2-1 -python-soupsieve 2.8-1 -python-tqdm 4.67.1-2 -python-trove-classifiers 2025.9.11.17-1 -python-typing_extensions 4.15.0-1 -python-urllib3 2.5.0-2 -python-wheel 0.45.1-1 -python-wrapt 1.17.3-1 -python-yaml 6.0.3-1 -python-zipp 3.21.0-2 -python-zope-event 6.0-1 -python-zope-interface 8.0.1-1 -qbittorrent 5.1.2-2 -qemu-audio-alsa 10.1.1-1 -qemu-audio-dbus 10.1.1-1 -qemu-audio-jack 10.1.1-1 -qemu-audio-oss 10.1.1-1 -qemu-audio-pa 10.1.1-1 -qemu-audio-pipewire 10.1.1-1 -qemu-audio-sdl 10.1.1-1 -qemu-audio-spice 10.1.1-1 -qemu-base 10.1.1-1 -qemu-block-curl 10.1.1-1 -qemu-block-dmg 10.1.1-1 -qemu-block-gluster 10.1.1-1 -qemu-block-iscsi 10.1.1-1 -qemu-block-nfs 10.1.1-1 -qemu-block-ssh 10.1.1-1 -qemu-chardev-baum 10.1.1-1 -qemu-chardev-spice 10.1.1-1 -qemu-common 10.1.1-1 -qemu-desktop 10.1.1-1 -qemu-docs 10.1.1-1 -qemu-emulators-full 10.1.1-1 -qemu-full 10.1.1-1 -qemu-hw-display-qxl 10.1.1-1 -qemu-hw-display-virtio-gpu 10.1.1-1 -qemu-hw-display-virtio-gpu-gl 10.1.1-1 -qemu-hw-display-virtio-gpu-pci 10.1.1-1 -qemu-hw-display-virtio-gpu-pci-gl 10.1.1-1 -qemu-hw-display-virtio-gpu-pci-rutabaga 10.1.1-1 -qemu-hw-display-virtio-gpu-rutabaga 10.1.1-1 -qemu-hw-display-virtio-vga 10.1.1-1 -qemu-hw-display-virtio-vga-gl 10.1.1-1 -qemu-hw-display-virtio-vga-rutabaga 10.1.1-1 -qemu-hw-s390x-virtio-gpu-ccw 10.1.1-1 -qemu-hw-uefi-vars 10.1.1-1 -qemu-hw-usb-host 10.1.1-1 -qemu-hw-usb-redirect 10.1.1-1 -qemu-hw-usb-smartcard 10.1.1-1 -qemu-img 10.1.1-1 -qemu-pr-helper 10.1.1-1 -qemu-system-aarch64 10.1.1-1 -qemu-system-alpha 10.1.1-1 -qemu-system-alpha-firmware 10.1.1-1 -qemu-system-arm 10.1.1-1 -qemu-system-arm-firmware 10.1.1-1 -qemu-system-avr 10.1.1-1 -qemu-system-hppa 10.1.1-1 -qemu-system-hppa-firmware 10.1.1-1 -qemu-system-loongarch64 10.1.1-1 -qemu-system-m68k 10.1.1-1 -qemu-system-microblaze 10.1.1-1 -qemu-system-microblaze-firmware 10.1.1-1 -qemu-system-mips 10.1.1-1 -qemu-system-or1k 10.1.1-1 -qemu-system-ppc 10.1.1-1 -qemu-system-ppc-firmware 10.1.1-1 -qemu-system-riscv 10.1.1-1 -qemu-system-riscv-firmware 10.1.1-1 -qemu-system-rx 10.1.1-1 -qemu-system-s390x 10.1.1-1 -qemu-system-s390x-firmware 10.1.1-1 -qemu-system-sh4 10.1.1-1 -qemu-system-sparc 10.1.1-1 -qemu-system-sparc-firmware 10.1.1-1 -qemu-system-tricore 10.1.1-1 -qemu-system-x86 10.1.1-1 -qemu-system-x86-firmware 10.1.1-1 -qemu-system-xtensa 10.1.1-1 -qemu-tests 10.1.1-1 -qemu-tools 10.1.1-1 -qemu-ui-curses 10.1.1-1 -qemu-ui-dbus 10.1.1-1 -qemu-ui-egl-headless 10.1.1-1 -qemu-ui-gtk 10.1.1-1 -qemu-ui-opengl 10.1.1-1 -qemu-ui-sdl 10.1.1-1 -qemu-ui-spice-app 10.1.1-1 -qemu-ui-spice-core 10.1.1-1 -qemu-user 10.1.1-1 -qemu-vhost-user-gpu 10.1.1-1 -qemu-vmsr-helper 10.1.1-1 -qpdf 12.2.0-1 -qrcodegencpp-cmake 1.8.0-4 -qrencode 4.1.1-4 -qt5-3d 5.15.17-2 -qt5-base 5.15.17+kde+r123-2 -qt5-declarative 5.15.17+kde+r21-1 -qt5-translations 5.15.17-1 -qt5-x11extras 5.15.17-1 -qt6-5compat 6.10.0-1 -qt6-base 6.10.0-1 -qt6-declarative 6.10.0-2 -qt6-imageformats 6.10.0-1 -qt6-networkauth 6.10.0-1 -qt6-shadertools 6.10.0-1 -qt6-svg 6.10.0-1 -qt6-tools 6.10.0-2 -qt6-translations 6.10.0-1 -qt6-wayland 6.10.0-1 -quazip-qt6 1.5-1 -quilt 0.69-1 -raptor 2.0.16-8 -rasqal 1:0.9.33-7 -rav1e 0.8.1-2 -rdma-core 59.0-1 -readline 8.3.001-1 -reaper 7.48-1 -redland 1:1.0.17-9 -rhash 1.4.6-1 -rnnoise 1:0.2-1 -rpcbind 1.2.8-1 -rsync 3.4.1-2 -rtkit 0.13-3 -rtmpdump 1:2.4.r105.6f6bb13-1 -rubberband 4.0.0-1 -runc 1.3.2-1 -rust 1:1.90.0-4 -rutabaga-ffi 0.1.71-2 -sakura 3.8.9-1 -sassc 3.6.2-5 -sbc 2.1-1 -scrcpy 3.3.3-4 -sdl12-compat 1.2.68-2 -sdl2-compat 2.32.56-2 -sdl2_image 2.8.8-1 -sdl3 3.2.24-1 -seabios 1.17.0-2 -seatd 0.9.1-1 -sed 4.9-3 -semver 7.7.3-1 -serd 0.32.4-1 -shaderc 2025.4-2 -shadow 4.18.0-1 -shared-mime-info 2.4-2 -showtime 49.0-1 -simde 0.8.2-1 -simdjson 1:4.0.7-1 -sing-box 1.12.10-1 -sioyek 2.0.0-7 -slang 2.3.3-4 -sleuthkit 4.14.0-1 -snappy 1.2.2-2 -sndio 1.10.0-1 -sord 0.16.18-1 -sound-theme-freedesktop 0.8-6 -soundtouch 2.4.0-1 -spandsp 0.0.6-6 -spdlog 1.16.0-1 -speex 1.2.1-2 -speexdsp 1.2.1-2 -spice 0.16.0-2 -spice-protocol 0.14.5-1 -spirv-tools 1:1.4.328.1-1 -sqlite 3.50.4-2 -squashfs-tools 4.7.2-1 -squid 7.2-1 -sratom 0.6.18-1 -srt 1.5.4-1 -startup-notification 0.12-9 -startwine 411-1 -steam 1.0.0.85-1 -stk 5.0.1-3 -strace 6.17-1 -sudo 1.9.17.p2-1 -suitesparse 7.11.0-1 -supermin 5.3.5-1 -svt-av1 3.1.2-1 -svt-hevc 1.5.1-3 -swww 0.11.2-1 -sysfsutils 2.1.1-2 -syslinux 6.04.pre3.r3.g05ac953c-4 -systemctl-tui 0.4.0-1 -systemd 258.1-1 -systemd-libs 258.1-1 -systemd-sysvcompat 258.1-1 -taglib 2.1.1-1 -tar 1.35-2 -tdb 1.4.14-1 -termusic 0.12.0-1 -tesseract 5.5.1-1 -tesseract-data-eng 2:4.1.0-4 -tesseract-data-osd 2:4.1.0-4 -tesseract-data-rus 2:4.1.0-4 -texinfo 7.2-1 -thin-provisioning-tools 1.2.2-1 -throne 1.0.7-1 -timr 1.6.0-1 -tinysparql 3.10.1-1 -tomlplusplus 3.4.0-1 -totem-pl-parser 3.26.6+r30+g51b8439-2 -tpm2-tss 4.1.3-1 -tree-sitter 0.25.10-1 -tree-sitter-c 0.24.1-1 -tree-sitter-lua 0.4.0-1 -tree-sitter-markdown 0.5.1-1 -tree-sitter-query 0.7.0-1 -tree-sitter-vim 0.7.0-1 -tree-sitter-vimdoc 4.0.0-1 -tslib 1.23-1 -ttf-dejavu 2.37+18+g9b5d1b2f-7 -ttf-iosevka-nerd 3.4.0-1 -ttf-iosevkaterm-nerd 3.4.0-1 -ttf-liberation 2.1.5-2 -ttf-nerd-fonts-symbols 3.4.0-1 -ttf-nerd-fonts-symbols-common 3.4.0-1 -twolame 0.4.0-4 -typst 1:0.13.1-1 -tzdata 2025b-1 -uchardet 0.0.8-3 -udisks2 2.10.2-1 -ueberzug 18.3.1-4 -ufw 0.36.2-5 -unibilium 2.1.2-1 -unpaper 7.0.0-5 -unzip 6.0-23 -upower 1.90.10-1 -usbredir 0.15.0-1 -usbutils 018-1 -uthash 2.3.0-2 -util-linux 2.41.2-1 -util-linux-libs 2.41.2-1 -uwsgi 2.0.31-1 -uwsgi-plugin-python 2.0.31-1 -v4l-utils 1.32.0-1 -v4l2loopback-dkms 0.15.2-1 -vapoursynth 72-1 -vde2 2.3.3-8 -ventoy 1.1.07-1 -vesktop-bin 1.6.0-1 -vi 1:070224-6 -vid.stab 1.1.1-2 -vim 9.1.1841-1 -vim-runtime 9.1.1841-1 -virglrenderer 1.2.0-1 -virtiofsd 1.13.2-1 -vmaf 3.0.0-1 -volume_key 0.3.12-11 -vte-common 0.82.1-1 -vte3 0.82.1-1 -vulkan-headers 1:1.4.328.1-1 -vulkan-icd-loader 1.4.328.1-1 -vulkan-tools 1.4.328.1-1 -wasi-compiler-rt 21.1.4-1 -wasi-libc 1:0+440+3f7eb4c7-1 -wasi-libc++ 21.1.4-1 -wasi-libc++abi 21.1.4-1 -wavpack 5.8.1-1 -waybar 0.14.0-3 -waydroid 1.5.4-1 -wayland 1.24.0-1 -wayland-protocols 1.45-1 -webkit2gtk 2.50.1-1 -webkit2gtk-4.1 2.50.1-1 -webp-pixbuf-loader 0.2.7-1 -webrtc-audio-processing-1 1.3-5 -weechat 4.7.1-1 -wget 1.25.0-2 -which 2.23-1 -wildmidi 0.4.6-1 -wine-staging 10.17-1 -winetricks 20250102-1 -wireplumber 0.5.12-1 -wl-clipboard 1:2.2.1-3 -woff2 1.0.2-6 -wolfssl 5.8.2-1 -wpa_supplicant 2:2.11-3 -x264 3:0.165.r3222.b35605a-2 -x265 4.1-1 -xa 2.4.1-2 -xcb-proto 1.17.0-3 -xcb-util 0.4.1-2 -xcb-util-cursor 0.1.6-1 -xcb-util-image 0.4.1-3 -xcb-util-keysyms 0.4.1-5 -xcb-util-renderutil 0.3.10-2 -xcb-util-wm 0.4.2-2 -xcb-util-xrm 1.3-4 -xcur2png 0.7.1-8 -xdg-dbus-proxy 0.1.6-1 -xdg-desktop-portal 1.20.3-2 -xdg-desktop-portal-gnome 49.0-1 -xdg-desktop-portal-gtk 1.15.3-1 -xdg-user-dirs 0.19-2 -xdg-user-dirs-gtk 0.14-1 -xdg-utils 1.2.1-1 -xf86-input-libinput 1.5.0-1 -xf86-video-vesa 2.6.0-2 -xfsprogs 6.16.0-3 -xkeyboard-config 2.46-1 -xmlsec 1.3.7-2 -xorg-bdftopcf 1.1.2-1 -xorg-docs 1.7.3-2 -xorg-font-util 1.4.1-2 -xorg-fonts-100dpi 1.0.4-3 -xorg-fonts-75dpi 1.0.4-2 -xorg-fonts-alias-100dpi 1.0.5-1 -xorg-fonts-alias-75dpi 1.0.5-1 -xorg-fonts-encodings 1.1.0-1 -xorg-iceauth 1.0.10-1 -xorg-mkfontscale 1.2.3-1 -xorg-server 21.1.18-2 -xorg-server-common 21.1.18-2 -xorg-server-devel 21.1.18-2 -xorg-server-xephyr 21.1.18-2 -xorg-server-xnest 21.1.18-2 -xorg-server-xvfb 21.1.18-2 -xorg-sessreg 1.1.4-1 -xorg-setxkbmap 1.3.4-2 -xorg-smproxy 1.0.8-1 -xorg-util-macros 1.20.2-1 -xorg-x11perf 1.7.0-1 -xorg-xauth 1.1.4-1 -xorg-xbacklight 1.2.4-1 -xorg-xcmsdb 1.0.7-1 -xorg-xcursorgen 1.0.9-1 -xorg-xdpyinfo 1.4.0-1 -xorg-xdriinfo 1.0.8-1 -xorg-xev 1.2.6-1 -xorg-xgamma 1.0.8-1 -xorg-xhost 1.0.10-1 -xorg-xinput 1.6.4-2 -xorg-xkbcomp 1.4.7-1 -xorg-xkbevd 1.1.6-1 -xorg-xkbutils 1.0.6-1 -xorg-xkill 1.0.6-2 -xorg-xlsatoms 1.1.4-2 -xorg-xlsclients 1.1.5-2 -xorg-xmodmap 1.0.11-2 -xorg-xpr 1.2.0-1 -xorg-xprop 1.2.8-1 -xorg-xrandr 1.5.3-1 -xorg-xrdb 1.2.2-2 -xorg-xrefresh 1.1.0-1 -xorg-xset 1.2.5-2 -xorg-xsetroot 1.1.3-2 -xorg-xvinfo 1.1.5-2 -xorg-xwayland 24.1.8-1 -xorg-xwd 1.0.9-2 -xorg-xwininfo 1.1.6-2 -xorg-xwud 1.0.7-1 -xorgproto 2024.1-2 -xvidcore 1.3.7-3 -xwayland-satellite 0.7-1 -xxhash 0.8.3-1 -xz 5.8.1-1 -yad 14.1-2 -yajl 2.1.0-6 -yara 4.5.4-1 -yarn 1.22.22-2 -yasm 1.3.0-8 -yazi 25.5.31-2 -yt-dlp 2025.10.22-1 -yyjson 0.12.0-1 -zathura 0.5.13-1 -zathura-djvu 0.2.10-6 -zathura-pdf-mupdf 0.4.4-25 -zbar 0.23.93-4 -zen-browser-bin 1.17b-1 -zenity 4.2.0-1 -zeromq 4.3.5-2 -zimg 3.0.5-1 -zip 3.0-11 -zix 0.6.2-1 -zlib 1:1.3.1-2 -zlib-ng 2.2.5-1 -zstd 1.5.7-2 -zvbi 0.2.44-1 -zxing-cpp 2.3.0-5 -zziplib 0.13.80-1 +adw-gtk-theme +aether +an-anime-game-launcher-bin +android-emulator +android-sdk-platform-tools +android-studio +angband +arc-solid-gtk-theme +aurorae +awesome-terminal-fonts +awww +baobab +base +base-devel +bat +bibata-cursor-theme-bin +bind +blackarch-mirrorlist +blender +bluedevil +bluetui +bluez-utils +breeze +breeze-cursors +breeze-gtk +breeze-plymouth +brightnessctl +browsh +btop +buho +cable +caja +calcurse +cava +clipse +clock-tui +cloudflared +cmatrix +cmus +commet-bin +cool-retro-term +cowsay +cull-bin +dconf-editor +decibels +dialog +discover +dmenu +dnsmasq +docker +docker-compose +drkonqi +dxvk-bin +eblanfetch +efibootmgr +electron24-bin +element-desktop +elephant-all +elyprismlauncher-bin +emptty +eog +epiphany +espeak-ng +evercal +eww +ex-vi-compat +expac +eza +fagram-bin +fastfetch +fd +filezilla +firefox +firefox-tridactyl +fish +flatpak-kcm +floorp-bin +fluffychat-bin +foliate +foot +fractal +freerdp +fsel-git +fuzzel +fzf +galculator +gamescope +gdm +geoip +geoip-database +ghostty +gimp +git +gnome-backgrounds +gnome-calculator +gnome-calendar +gnome-characters +gnome-clocks +gnome-color-manager +gnome-connections +gnome-console +gnome-contacts +gnome-control-center +gnome-disk-utility +gnome-font-viewer +gnome-keyring +gnome-logs +gnome-maps +gnome-menus +gnome-music +gnome-panel +gnome-photos +gnome-remote-desktop +gnome-session +gnome-settings-daemon +gnome-shell +gnome-software +gnome-sound-recorder +gnome-system-monitor +gnome-text-editor +gnome-themes-extra +gnome-tour +gnome-tweaks +gnome-user-docs +gnome-user-share +gnome-weather +godotpcktool-bin +google-chrome +greetd-tuigreet +grilo-plugins +grub +gsh +gthumb +gtk-theme-bubble-darker-git +gtk-theme-elementary +gtk-theme-material-black +gtk3 +gtklock +gum +gvfs-afc +gvfs-dnssd +gvfs-goa +gvfs-google +gvfs-gphoto2 +gvfs-mtp +gvfs-nfs +gvfs-onedrive +gvfs-smb +gvfs-wsdd +hdparm +helix +helm-bin +helvum +hostapd +hylauncher-bin +hyprland +hyprlock +hyprpicker +hyprpwcenter +hyprshot +hyprwave +hyprwhspr +hytale-f2p-git +i2pd +i3-wm +i3blocks +i3lock +i3status +imv +inkscape +ithil-bin +iw +iwd +jdk-openjdk +kactivitymanagerd +kalidoface-bin +kde-cli-tools +kde-gtk-config +kdecoration +kdenlive +kdeplasma-addons +kgamma +kglobalacceld +kinfocenter +kitty +kmenuedit +knighttime +kpipewire +krdp +krita +kscreen +kscreenlocker +ksshaskpass +ksystemstats +ktailctl +kubo +kwallet-pam +kwayland +kwin +kwin-x11 +kwrited +labwc +layer-shell-qt +lib32-gamemode +lib32-gnutls +libkscreen +libksysguard +libplasma +libreoffice-fresh-ru +librewolf-bin +links +linux +linux-firmware +linux-headers +linux-wifi-hotspot +lla +lmms +lolcat +loupe +lsd +lshw +lutris +ly +mailsend-go +malcontent +mandoc +marco +marktext-tkaixiang-bin +marp-cli +mate-backgrounds +mate-control-center +mate-desktop +mate-icon-theme +mate-menus +mate-notification-daemon +mate-panel +mate-polkit +mate-session-manager +mate-settings-daemon +mate-themes +mate-user-guide +mcomix +mesa-demos +microsocks +mihomo +milou +mpd +mpdris2 +mplayer +mpv +neovide +neovim +nerd-fonts-noto-sans-mono +netstat-nat +networkmanager +nheko +nicotine+ +niri +niri-screen-time-git +nirius +nomacs +noto-fonts-cjk +noto-fonts-emoji +nuls +nvidia-open-dkms +nvidia-settings +nvtop +nwg-look +obs-studio +obsidian +ocean-sound-theme +ocrmypdf +ollama-cuda +openbsd-netcat +openrazer-daemon +oxygen +oxygen-cursors +oxygen-sounds +pandoc-cli +papers +papirus-icon-theme +paru +paru-debug +pastel +pavucontrol +pidgin +pipewire-alsa +pipewire-pulse +plasma-activities +plasma-activities-stats +plasma-browser-integration +plasma-desktop +plasma-disks +plasma-firewall +plasma-integration +plasma-keyboard +plasma-login-manager +plasma-nm +plasma-pa +plasma-sdk +plasma-systemmonitor +plasma-thunderbolt +plasma-vault +plasma-welcome +plasma-workspace +plasma-workspace-wallpapers +plasma5support +plymouth-kcm +polkit-gnome +polkit-kde-agent +pomo-bin +ponysay +portproton +postgresql +power-profiles-daemon +powerdevil +print-manager +pwvucontrol +python-babel +python-i3ipc +python-mutagen +python-openrazer +python-pip +python-pipx +python-pyyaml-env-tag +python-watchdog +qbittorrent +qpwgraph +qqc2-breeze-style +qwen-code +reaper +relay-scanner +rmpc +rygel +sakura +scrcpy +scrntime-git +sddm-kcm +showmethekey +showtime +sillytavern-git +simple-scan +simplex-chat-bin +sing-box +sioyek +snapshot +snekstudio-bin +spectacle +speedcrunch +squid +startwine +steam +sudo +sushi +swaybg +swaync +swayosd +syncthing +systemctl-tui +systemsettings +tailscale +tangent-bin +tcsh +tecla +telegram-cli-git +telegram-desktop +tesseract-data-eng +throne-bin +timr +tmux +tofi +tor +torbrowser-launcher +traceroute +ttf-iosevka-nerd +ttf-iosevkaterm-nerd +ttf-quicksand-variable +tuios-bin +tuxsay +typst +udiskie +ufw +unrar +uwsgi +uwsgi-plugin-python +v4l2loopback-dkms +v4l2loopback-utils +vesktop-bin +vkd3d +vulkan-tools +vulkan-validation-layers +wacomtablet +walker +waybar +wayland-utils +wayvnc +weechat +wego +wf-recorder +whosthere-bin +wine-staging +winetricks +wireshark-cli +wl-clipboard +xdotool +xf86-video-vesa +xorg-bdftopcf +xorg-docs +xorg-font-util +xorg-fonts-100dpi +xorg-fonts-75dpi +xorg-iceauth +xorg-mkfontscale +xorg-server +xorg-server-devel +xorg-server-src +xorg-server-xephyr +xorg-server-xnest +xorg-sessreg +xorg-smproxy +xorg-x11perf +xorg-xbacklight +xorg-xcmsdb +xorg-xcursorgen +xorg-xdpyinfo +xorg-xdriinfo +xorg-xev +xorg-xgamma +xorg-xhost +xorg-xinit +xorg-xinput +xorg-xkbevd +xorg-xkbutils +xorg-xkill +xorg-xlsatoms +xorg-xlsclients +xorg-xmodmap +xorg-xpr +xorg-xrdb +xorg-xrefresh +xorg-xsetroot +xorg-xvinfo +xorg-xwd +xorg-xwininfo +xorg-xwud +xprintidle +xray-bin +xwayland-satellite +yazi +yelp +yggdrasil +yt-dlp +zathura +zathura-djvu +zathura-pdf-mupdf +zellij +zen-browser-bin +zsh +zsh-completions diff --git a/.config/btop/btop.conf b/config/btop/btop.conf similarity index 83% rename from .config/btop/btop.conf rename to config/btop/btop.conf index aba6f82..ffe643c 100644 --- a/.config/btop/btop.conf +++ b/config/btop/btop.conf @@ -1,18 +1,18 @@ -#? Config file for btop v. 1.4.5 +#? Config file for btop v.1.4.6 #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" color_theme = "TTY" #* If the theme set background should be shown, set to False if you want terminal background transparency. -theme_background = False +theme_background = true #* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. -truecolor = True +truecolor = true #* Set to true to force tty mode regardless if a real tty has been detected or not. #* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. -force_tty = False +force_tty = false #* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. #* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. @@ -22,10 +22,13 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul #* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. #* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. -vim_keys = False +vim_keys = false #* Rounded corners on boxes, is ignored if TTY mode is ON. -rounded_corners = True +rounded_corners = false + +#* Use terminal synchronized output sequences to reduce flickering on supported terminals. +terminal_sync = true #* Default symbols to use for graph creation, "braille", "block" or "tty". #* "braille" offers the highest resolution but might not be included in all fonts. @@ -60,37 +63,40 @@ update_ms = 2000 proc_sorting = "memory" #* Reverse sorting order, True or False. -proc_reversed = False +proc_reversed = false #* Show processes as a tree. -proc_tree = True +proc_tree = true #* Use the cpu graph colors in the process list. -proc_colors = True +proc_colors = true #* Use a darkening gradient in the process list. -proc_gradient = True +proc_gradient = true #* If process cpu usage should be of the core it's running on or usage of the total available cpu power. -proc_per_core = True +proc_per_core = false #* Show process memory as bytes instead of percent. -proc_mem_bytes = True +proc_mem_bytes = true #* Show cpu graph for each process. -proc_cpu_graphs = True +proc_cpu_graphs = true #* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) -proc_info_smaps = False +proc_info_smaps = false #* Show proc box on left side of screen instead of right. -proc_left = False +proc_left = false #* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). -proc_filter_kernel = False +proc_filter_kernel = false #* In tree-view, always accumulate child process resources in the parent process. -proc_aggregate = False +proc_aggregate = false + +#* Should cpu and memory usage display be preserved for dead processes when paused. +keep_dead_proc_usage = false #* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. #* Select from a list of detected attributes from the options menu. @@ -101,31 +107,31 @@ cpu_graph_upper = "Auto" cpu_graph_lower = "Auto" #* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". -show_gpu_info = "Auto" +show_gpu_info = "On" #* Toggles if the lower CPU graph should be inverted. -cpu_invert_lower = True +cpu_invert_lower = true #* Set to True to completely disable the lower CPU graph. -cpu_single_graph = False +cpu_single_graph = false #* Show cpu box at bottom of screen instead of top. -cpu_bottom = False +cpu_bottom = false #* Shows the system uptime in the CPU box. -show_uptime = True +show_uptime = true #* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo. -show_cpu_watts = True +show_cpu_watts = true #* Show cpu temperature. -check_temp = True +check_temp = true #* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. cpu_sensor = "Auto" #* Show temperatures for cpu cores also if check_temp is True and sensors has been found. -show_coretemp = True +show_coretemp = true #* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. #* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. @@ -137,17 +143,20 @@ cpu_core_map = "" temp_scale = "celsius" #* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. -base_10_sizes = False +base_10_sizes = true #* Show CPU frequency. -show_cpu_freq = True +show_cpu_freq = true + +#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average". +freq_mode = "first" #* Draw a clock at top of screen, formatting according to strftime, empty string to disable. #* Special formatting: /host = hostname | /user = username | /uptime = system uptime clock_format = "%X" #* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. -background_update = True +background_update = true #* Custom cpu model name, empty string to disable. custom_cpu_name = "" @@ -157,43 +166,43 @@ custom_cpu_name = "" disks_filter = "" #* Show graphs instead of meters for memory values. -mem_graphs = True +mem_graphs = true #* Show mem box below net box instead of above. -mem_below_net = False +mem_below_net = false #* Count ZFS ARC in cached and available memory. -zfs_arc_cached = True +zfs_arc_cached = true #* If swap memory should be shown in memory box. -show_swap = True +show_swap = true #* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. -swap_disk = True +swap_disk = true #* If mem box should be split to also show disks info. -show_disks = True +show_disks = true #* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. -only_physical = True +only_physical = true #* Read disks list from /etc/fstab. This also disables only_physical. -use_fstab = True +use_fstab = true #* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) -zfs_hide_datasets = False +zfs_hide_datasets = false #* Set to true to show available disk space for privileged users. -disk_free_priv = False +disk_free_priv = false #* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. -show_io_stat = True +show_io_stat = true #* Toggles io mode for disks, showing big graphs for disk read/write speeds. -io_mode = False +io_mode = false #* Set to True to show combined read/write io graphs in io mode. -io_graph_combined = False +io_graph_combined = false #* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". #* Example: "/mnt/media:100 /:20 /boot:1". @@ -205,10 +214,10 @@ net_download = 100 net_upload = 100 #* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. -net_auto = True +net_auto = true #* Sync the auto scaling for download and upload to whichever currently has the highest scale. -net_sync = False +net_sync = true #* Starts with the Network Interface specified here. net_iface = "" @@ -217,26 +226,32 @@ net_iface = "" base_10_bitrate = "Auto" #* Show battery stats in top right if battery is present. -show_battery = True +show_battery = true #* Which battery to use if multiple are present. "Auto" for auto detection. selected_battery = "Auto" #* Show power stats of battery next to charge indicator. -show_battery_watts = True +show_battery_watts = true -#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. -log_level = "WARNING" +log_level = "DEBUG" + +#* Automatically save current settings to config file on exit. +save_config_on_exit = true #* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. -nvml_measure_pcie_speeds = True +nvml_measure_pcie_speeds = true #* Measure PCIe throughput on AMD cards, may impact performance on certain cards. -rsmi_measure_pcie_speeds = True +rsmi_measure_pcie_speeds = true #* Horizontally mirror the GPU graph. -gpu_mirror_graph = True +gpu_mirror_graph = true + +#* Set which GPU vendors to show. Available values are "nvidia amd intel" +shown_gpus = "nvidia amd intel" #* Custom gpu0 model name, empty string to disable. custom_gpu_name0 = "" diff --git a/config/clipse/config.json b/config/clipse/config.json new file mode 100644 index 0000000..32acd6f --- /dev/null +++ b/config/clipse/config.json @@ -0,0 +1,55 @@ +{ + "allowDuplicates": false, + "historyFile": "clipboard_history.json", + "maxHistory": 1000000, + "deleteAfter": 0, + "logFile": "clipse.log", + "pollInterval": 50, + "maxEntryLength": 65, + "themeFile": "custom_theme.json", + "tempDir": "tmp_files", + "keyBindings": { + "choose": "enter", + "clearSelected": "S", + "down": "down", + "end": "end", + "filter": "/", + "forceQuit": "Q", + "home": "home", + "more": "?", + "nextPage": "right", + "prevPage": "left", + "preview": " ", + "quit": "esc", + "remove": "backspace", + "selectDown": "shift+down", + "selectSingle": "s", + "selectUp": "shift+up", + "togglePin": "p", + "togglePinned": "tab", + "up": "up", + "yankFilter": "ctrl+s" + }, + "imageDisplay": { + "type": "kitty", + "scaleX": 18, + "scaleY": 20, + "heightCut": 20 + }, + "excludedApps": [ + "1Password", + "Bitwarden", + "KeePassXC", + "LastPass", + "Dashlane", + "Password Safe", + "Keychain Access" + ], + "autoPaste": { + "enabled": false, + "keybind": "ctrl+v", + "buffer": 10 + }, + "enableMouse": true, + "enableDescription": true +} diff --git a/.config/clipse/custom_theme.json b/config/clipse/custom_theme.json similarity index 96% rename from .config/clipse/custom_theme.json rename to config/clipse/custom_theme.json index 61d3e42..41a2db0 100644 --- a/.config/clipse/custom_theme.json +++ b/config/clipse/custom_theme.json @@ -1,5 +1,5 @@ { - "useCustomTheme": true, + "UseCustom": true, "TitleFore": "#07090B", "TitleBack": "#A1F7C6", "TitleInfo": "#25C39F", diff --git a/.config/fastfetch/1.jsonc b/config/fastfetch/1.jsonc similarity index 100% rename from .config/fastfetch/1.jsonc rename to config/fastfetch/1.jsonc diff --git a/.config/fastfetch/19.jsonc b/config/fastfetch/19.jsonc similarity index 100% rename from .config/fastfetch/19.jsonc rename to config/fastfetch/19.jsonc diff --git a/.config/fastfetch/20.jsonc b/config/fastfetch/20.jsonc similarity index 100% rename from .config/fastfetch/20.jsonc rename to config/fastfetch/20.jsonc diff --git a/.config/fastfetch/config.jsonc b/config/fastfetch/config.jsonc similarity index 69% rename from .config/fastfetch/config.jsonc rename to config/fastfetch/config.jsonc index c545d3c..71574da 100644 --- a/.config/fastfetch/config.jsonc +++ b/config/fastfetch/config.jsonc @@ -5,11 +5,17 @@ "display": { "pipe": true, "key": { - "width": 16 + "width": 16, }, "separator": "│ ", "percent": { - "type": ["bar", "hide-others"] + "type": 9, + "color": { + "green": "green", + "yellow": "light_yellow", + "red": "light_red" + } + }, "bar": { "border": null, @@ -45,6 +51,24 @@ "type": "custom", "format": "├────────────┬──────────────────────────────────────────┤" }, + { + "type": "datetime", + "key": "│ TIME │{$1}", + "format": "{hour-pretty}:{minute-pretty}", + }, + + { + "type": "datetime", + "key": "│ DATE │{$1}", + "format": "{day-pretty}.{month}.{year-short}, {weekday}", + }, +{ + "type": "custom", + "format": "├────────────┼──────────────────────────────────────────┤" + }, + + + { "type": "os", "key": "│ OS │{$1}" @@ -54,18 +78,8 @@ "key": "│ KERNEL │{$1}" }, -{ - "type": "title", - "key": "│ HOSTNAME │{$1}", - "format": "{host-name}" - }, + - - { - "type": "host", - "key": "│ MACHINE │{$1}", - "format": "{name}{?vendor}({vendor}){?}" - }, // { // "type":"display", // "key":"│ MONITOR │{$1}" @@ -94,35 +108,22 @@ // }, - { - "type": "packages", - "key": "│ PACKAGES │{$1}" - - }, - + { "type": "custom", "format": "├────────────┼──────────────────────────────────────────┤" }, { "type": "cpu", - "key": "│ PROCESSOR │{$1}", - "format": "{name}" - }, - { - "type": "cpu", - "key": "│ CORES │{$1}", - "format": "{cores-physical} PHYSICAL CORES / {cores-logical} THREADS", - "showPeCoreCount": false - }, - { - "type": "cpu", - "key": "│ CPU FREQ │{$1}", - "format": "{freq-max}{/freq-max}{freq-base}{/}" + "key": "│ CPU │{$1}", + "temp": true, + "format": "{name}, {freq-max}{/freq-max}{freq-base}{/} - {temperature}" }, { "type": "gpu", - "key": "│ GPU │{$1}" + "key": "│ GPU │{$1}", + "temp": true, + "format": "{name} - {temperature} {frequency}" }, { @@ -142,76 +143,26 @@ // } // }, - { - "type": "custom", - "format": "├────────────┼──────────────────────────────────────────┤" - }, + { "type": "disk", - "key": "│ DISK USAGE │{$1}", + "key": "│ DISK │{$1}", "format": "{size-used} / {size-total} [{size-percentage}]", "folders": "/", "percent": { "type": ["num"] } }, - { - "type": "disk", - "key": "│ DISK USAGE │{$1}", - "format": "", - "percent": { - "type": ["bar", "hide-others"] - } - }, - { + { "type": "custom", "format": "├────────────┼──────────────────────────────────────────┤" }, - { - "type": "wm", - "key": "│ WM │{$1}", - "keyColor": "blue" - }, - { - "type": "LM", - "key": "│ LM │{$1}" - - }, - { - "type":"Shell", - "key":"│ SHELL │{$1}" - }, - { - "type": "terminal", - "key":"│ TERMINAL │{$1}" - }, - { - "type": "weather", - "key":"│ WEATHER │{$1}", - "timeout": 1000 - }, - - - { - "type": "custom", - "format": "├────────────┼──────────────────────────────────────────┤" - }, - { - "type": "users", - "key": "│ LAST LOGIN │{$1}", - "format": "{login-time}{?client-ip} ({client-ip})", - "myselfOnly": true - }, - { + + { "type": "uptime", "key": "│ UPTIME │{$1}" }, - { - "type": "title", - "key": "│ USER │{$1}", - "format": "{user-name}" - }, - + { "type": "disk", "format": "{create-time}", diff --git a/config/fish/completions/fisher.fish b/config/fish/completions/fisher.fish new file mode 100644 index 0000000..6d23ce4 --- /dev/null +++ b/config/fish/completions/fisher.fish @@ -0,0 +1,7 @@ +complete --command fisher --exclusive --long help --description "Print help" +complete --command fisher --exclusive --long version --description "Print version" +complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins" +complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins" +complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins" +complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex" +complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)" diff --git a/config/fish/completions/fzf_configure_bindings.fish b/config/fish/completions/fzf_configure_bindings.fish new file mode 100644 index 0000000..b38ef92 --- /dev/null +++ b/config/fish/completions/fzf_configure_bindings.fish @@ -0,0 +1,8 @@ +complete fzf_configure_bindings --no-files +complete fzf_configure_bindings --long help --short h --description "Print help" --condition "not __fish_seen_argument --help -h" +complete fzf_configure_bindings --long directory --description "Change the key binding for Search Directory" --condition "not __fish_seen_argument --directory" +complete fzf_configure_bindings --long git_log --description "Change the key binding for Search Git Log" --condition "not __fish_seen_argument --git_log" +complete fzf_configure_bindings --long git_status --description "Change the key binding for Search Git Status" --condition "not __fish_seen_argument --git_status" +complete fzf_configure_bindings --long history --description "Change the key binding for Search History" --condition "not __fish_seen_argument --history" +complete fzf_configure_bindings --long processes --description "Change the key binding for Search Processes" --condition "not __fish_seen_argument --processes" +complete fzf_configure_bindings --long variables --description "Change the key binding for Search Variables" --condition "not __fish_seen_argument --variables" diff --git a/config/fish/conf.d/fish_frozen_key_bindings.fish b/config/fish/conf.d/fish_frozen_key_bindings.fish new file mode 100644 index 0000000..495aee9 --- /dev/null +++ b/config/fish/conf.d/fish_frozen_key_bindings.fish @@ -0,0 +1,14 @@ +# This file was created by fish when upgrading to version 4.3, to migrate +# the 'fish_key_bindings' variable from its old default scope (universal) +# to its new default scope (global). We recommend you delete this file +# and configure key bindings in ~/.config/fish/config.fish if needed. + +# set --global fish_key_bindings fish_default_key_bindings + +# Prior to version 4.3, fish shipped an event handler that runs +# `set --universal fish_key_bindings fish_default_key_bindings` +# whenever the fish_key_bindings variable is erased. +# This means that as long as any fish < 4.3 is still running on this system, +# we cannot complete the migration. +# As a workaround, erase the universal variable at every shell startup. +set --erase --universal fish_key_bindings diff --git a/config/fish/conf.d/fish_frozen_theme.fish b/config/fish/conf.d/fish_frozen_theme.fish new file mode 100644 index 0000000..5c7cef9 --- /dev/null +++ b/config/fish/conf.d/fish_frozen_theme.fish @@ -0,0 +1,37 @@ +# This file was created by fish when upgrading to version 4.3, to migrate +# theme variables from universal to global scope. +# Don't edit this file, as it will be written by the web-config tool (`fish_config`). +# To customize your theme, delete this file and see +# help interactive#syntax-highlighting +# or +# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING +# for appropriate commands to add to ~/.config/fish/config.fish instead. +# See also the release notes for fish 4.3.0 (run `help relnotes`). + +set --global fish_color_autosuggestion brblack +set --global fish_color_cancel -r +set --global fish_color_command normal +set --global fish_color_comment red +set --global fish_color_cwd green +set --global fish_color_cwd_root red +set --global fish_color_end green +set --global fish_color_error brred +set --global fish_color_escape brcyan +set --global fish_color_history_current --bold +set --global fish_color_host normal +set --global fish_color_host_remote yellow +set --global fish_color_normal normal +set --global fish_color_operator brcyan +set --global fish_color_param cyan +set --global fish_color_quote yellow +set --global fish_color_redirection cyan --bold +set --global fish_color_search_match white --background=brblack +set --global fish_color_selection white --bold --background=brblack +set --global fish_color_status red +set --global fish_color_user brgreen +set --global fish_color_valid_path --underline +set --global fish_pager_color_completion normal +set --global fish_pager_color_description yellow -i +set --global fish_pager_color_prefix normal --bold --underline +set --global fish_pager_color_progress brwhite --background=cyan +set --global fish_pager_color_selected_background -r diff --git a/config/fish/conf.d/fzf.fish b/config/fish/conf.d/fzf.fish new file mode 100644 index 0000000..446dd3c --- /dev/null +++ b/config/fish/conf.d/fzf.fish @@ -0,0 +1,27 @@ +# fzf.fish is only meant to be used in interactive mode. If not in interactive mode and not in CI, skip the config to speed up shell startup +if not status is-interactive && test "$CI" != true + exit +end + +# Because of scoping rules, to capture the shell variables exactly as they are, we must read +# them before even executing _fzf_search_variables. We use psub to store the +# variables' info in temporary files and pass in the filenames as arguments. +# This variable is global so that it can be referenced by fzf_configure_bindings and in tests +set --global _fzf_search_vars_command '_fzf_search_variables (set --show | psub) (set --names | psub)' + +# Install the default bindings, which are mnemonic and minimally conflict with fish's preset bindings +fzf_configure_bindings + +# Doesn't erase autoloaded _fzf_* functions because they are not easily accessible once key bindings are erased +function _fzf_uninstall --on-event fzf_uninstall + _fzf_uninstall_bindings + + set --erase _fzf_search_vars_command + functions --erase _fzf_uninstall _fzf_migration_message _fzf_uninstall_bindings fzf_configure_bindings + complete --erase fzf_configure_bindings + + set_color cyan + echo "fzf.fish uninstalled." + echo "You may need to manually remove fzf_configure_bindings from your config.fish if you were using custom key bindings." + set_color normal +end diff --git a/config/fish/conf.d/nix.fish b/config/fish/conf.d/nix.fish new file mode 100644 index 0000000..8c3e6fa --- /dev/null +++ b/config/fish/conf.d/nix.fish @@ -0,0 +1,2 @@ + +if test -e /home/unconfer/.nix-profile/etc/profile.d/nix.fish; . /home/unconfer/.nix-profile/etc/profile.d/nix.fish; end # added by Nix installer diff --git a/.config/fish/config.fish b/config/fish/config.fish similarity index 65% rename from .config/fish/config.fish rename to config/fish/config.fish index d714361..e426ed9 100644 --- a/.config/fish/config.fish +++ b/config/fish/config.fish @@ -1,3 +1,4 @@ if status is-interactive + set -U fish_cursor_replace_one underscore # Commands to run in interactive sessions can go here end diff --git a/config/fish/fish_plugins b/config/fish/fish_plugins new file mode 100644 index 0000000..4bbe5f2 --- /dev/null +++ b/config/fish/fish_plugins @@ -0,0 +1,2 @@ +jorgebucaran/fisher +patrickf1/fzf.fish diff --git a/config/fish/fish_variables b/config/fish/fish_variables new file mode 100644 index 0000000..0745b63 --- /dev/null +++ b/config/fish/fish_variables @@ -0,0 +1,11 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR --export EDITOR:nvim +SETUVAR __fish_initialized:4300 +SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish +SETUVAR _fisher_patrickf1_2F_fzf_2E_fish_files:\x7e/\x2econfig/fish/functions/_fzf_configure_bindings_help\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_extract_var_info\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_changed_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_diff_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_file_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_log\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_history\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_processes\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_wrapper\x2efish\x1e\x7e/\x2econfig/fish/functions/fzf_configure_bindings\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fzf\x2efish\x1e\x7e/\x2econfig/fish/completions/fzf_configure_bindings\x2efish +SETUVAR _fisher_plugins:jorgebucaran/fisher\x1epatrickf1/fzf\x2efish +SETUVAR _fisher_upgraded_to_4_4:\x1d +SETUVAR fish_cursor_default:block +SETUVAR fish_cursor_replace_one:underscore +SETUVAR fish_greeting:\x1d diff --git a/.config/fish/functions/:q.fish b/config/fish/functions/:q.fish similarity index 100% rename from .config/fish/functions/:q.fish rename to config/fish/functions/:q.fish diff --git a/config/fish/functions/_fzf_configure_bindings_help.fish b/config/fish/functions/_fzf_configure_bindings_help.fish new file mode 100644 index 0000000..c4df8cd --- /dev/null +++ b/config/fish/functions/_fzf_configure_bindings_help.fish @@ -0,0 +1,44 @@ +function _fzf_configure_bindings_help --description "Prints the help message for fzf_configure_bindings." + echo "\ +USAGE: + fzf_configure_bindings [--COMMAND=[KEY_SEQUENCE]...] + +DESCRIPTION + fzf_configure_bindings installs key bindings for fzf.fish's commands and erases any bindings it + previously installed. It installs bindings for both default and insert modes. fzf.fish executes + it without options on fish startup to install the out-of-the-box key bindings. + + By default, commands are bound to a mnemonic key sequence, shown below. Each command's binding + can be configured using a namesake corresponding option: + COMMAND | DEFAULT KEY SEQUENCE | CORRESPONDING OPTION + Search Directory | Ctrl+Alt+F (F for file) | --directory + Search Git Log | Ctrl+Alt+L (L for log) | --git_log + Search Git Status | Ctrl+Alt+S (S for status) | --git_status + Search History | Ctrl+R (R for reverse) | --history + Search Processes | Ctrl+Alt+P (P for process) | --processes + Search Variables | Ctrl+V (V for variable) | --variables + Override a command's binding by specifying its corresponding option with the desired key + sequence using fish's key name syntax (e.g. ctrl-f, ctrl-alt-v). Disable a command's binding + by specifying its corresponding option with no value. + + Because fzf_configure_bindings erases bindings it previously installed, it can be cleanly + executed multiple times. Once the desired fzf_configure_bindings command has been found, add it + to your config.fish in order to persist the customized bindings. + + In terms of validation, fzf_configure_bindings fails if passed unknown options. It expects an + equals sign between an option's name and value. However, it does not validate key sequences. + + Pass -h or --help to print this help message and exit. + +EXAMPLES + Default bindings but bind Search Directory to Ctrl+F and Search Variables to Ctrl+Alt+V + \$ fzf_configure_bindings --directory=ctrl-f --variables=ctrl-alt-v + Default bindings but disable Search History + \$ fzf_configure_bindings --history= + An agglomeration of different options + \$ fzf_configure_bindings --git_status=ctrl-g --history=ctrl-h --variables= --processes= + +SEE Also + To learn more about fish key bindings, see bind(1) and fish_key_reader(1). +" +end diff --git a/config/fish/functions/_fzf_extract_var_info.fish b/config/fish/functions/_fzf_extract_var_info.fish new file mode 100644 index 0000000..34a4b44 --- /dev/null +++ b/config/fish/functions/_fzf_extract_var_info.fish @@ -0,0 +1,13 @@ +# helper function for _fzf_search_variables +function _fzf_extract_var_info --argument-names variable_name set_show_output --description "Extract and reformat lines pertaining to \$variable_name from \$set_show_output." + # Extract only the lines about the variable, all of which begin with either + # $variable_name: ...or... $variable_name[ + string match --regex "^\\\$$variable_name(?::|\[).*" <$set_show_output | + # Strip the variable name prefix, including ": " for scope info lines + string replace --regex "^\\\$$variable_name(?:: )?" '' | + # Distill the lines of values, replacing... + # [1]: |value| + # ...with... + # [1] value + string replace --regex ": \|(.*)\|" ' $1' +end diff --git a/config/fish/functions/_fzf_preview_changed_file.fish b/config/fish/functions/_fzf_preview_changed_file.fish new file mode 100644 index 0000000..78dd561 --- /dev/null +++ b/config/fish/functions/_fzf_preview_changed_file.fish @@ -0,0 +1,49 @@ +# helper for _fzf_search_git_status +# arg should be a line from git status --short, e.g. +# MM functions/_fzf_preview_changed_file.fish +# D README.md +# R LICENSE -> "New License" +function _fzf_preview_changed_file --argument-names path_status --description "Show the git diff of the given file." + # remove quotes because they'll be interpreted literally by git diff + # no need to requote when referencing $path because fish does not perform word splitting + # https://fishshell.com/docs/current/fish_for_bash_users.html + set -f path (string unescape (string sub --start 4 $path_status)) + # first letter of short format shows index, second letter shows working tree + # https://git-scm.com/docs/git-status/2.35.0#_short_format + set -f index_status (string sub --length 1 $path_status) + set -f working_tree_status (string sub --start 2 --length 1 $path_status) + + set -f diff_opts --color=always + + if test $index_status = '?' + _fzf_report_diff_type Untracked + _fzf_preview_file $path + else if contains {$index_status}$working_tree_status DD AU UD UA DU AA UU + # Unmerged statuses taken directly from git status help's short format table + # Unmerged statuses are mutually exclusive with other statuses, so if we see + # these, then safe to assume the path is unmerged + _fzf_report_diff_type Unmerged + git diff $diff_opts -- $path + else + if test $index_status != ' ' + _fzf_report_diff_type Staged + + # renames are only detected in the index, never working tree, so only need to test for it here + # https://stackoverflow.com/questions/73954214 + if test $index_status = R + # diff the post-rename path with the original path, otherwise the diff will show the entire file as being added + set -f orig_and_new_path (string split --max 1 -- ' -> ' $path) + git diff --staged $diff_opts -- $orig_and_new_path[1] $orig_and_new_path[2] + # path currently has the form of "original -> current", so we need to correct it before it's used below + set path $orig_and_new_path[2] + else + git diff --staged $diff_opts -- $path + end + end + + if test $working_tree_status != ' ' + _fzf_report_diff_type Unstaged + git diff $diff_opts -- $path + end + end +end diff --git a/config/fish/functions/_fzf_preview_file.fish b/config/fish/functions/_fzf_preview_file.fish new file mode 100644 index 0000000..c926475 --- /dev/null +++ b/config/fish/functions/_fzf_preview_file.fish @@ -0,0 +1,43 @@ +# helper function for _fzf_search_directory and _fzf_search_git_status +function _fzf_preview_file --description "Print a preview for the given file based on its file type." + # because there's no way to guarantee that _fzf_search_directory passes the path to _fzf_preview_file + # as one argument, we collect all the arguments into one single variable and treat that as the path + set -f file_path $argv + + if test -L "$file_path" # symlink + # notify user and recurse on the target of the symlink, which can be any of these file types + set -l target_path (realpath "$file_path") + + set_color yellow + echo "'$file_path' is a symlink to '$target_path'." + set_color normal + + _fzf_preview_file "$target_path" + else if test -f "$file_path" # regular file + if set --query fzf_preview_file_cmd + # need to escape quotes to make sure eval receives file_path as a single arg + eval "$fzf_preview_file_cmd '$file_path'" + else + bat --style=numbers --color=always "$file_path" + end + else if test -d "$file_path" # directory + if set --query fzf_preview_dir_cmd + # see above + eval "$fzf_preview_dir_cmd '$file_path'" + else + # -A list hidden files as well, except for . and .. + # -F helps classify files by appending symbols after the file name + command ls -A -F "$file_path" + end + else if test -c "$file_path" + _fzf_report_file_type "$file_path" "character device file" + else if test -b "$file_path" + _fzf_report_file_type "$file_path" "block device file" + else if test -S "$file_path" + _fzf_report_file_type "$file_path" socket + else if test -p "$file_path" + _fzf_report_file_type "$file_path" "named pipe" + else + echo "$file_path doesn't exist." >&2 + end +end diff --git a/config/fish/functions/_fzf_report_diff_type.fish b/config/fish/functions/_fzf_report_diff_type.fish new file mode 100644 index 0000000..cc26fb3 --- /dev/null +++ b/config/fish/functions/_fzf_report_diff_type.fish @@ -0,0 +1,18 @@ +# helper for _fzf_preview_changed_file +# prints out something like +# ╭────────╮ +# │ Staged │ +# ╰────────╯ +function _fzf_report_diff_type --argument-names diff_type --description "Print a distinct colored header meant to preface a git patch." + # number of "-" to draw is the length of the string to box + 2 for padding + set -f repeat_count (math 2 + (string length $diff_type)) + set -f line (string repeat --count $repeat_count ─) + set -f top_border ╭$line╮ + set -f btm_border ╰$line╯ + + set_color yellow + echo $top_border + echo "│ $diff_type │" + echo $btm_border + set_color normal +end diff --git a/config/fish/functions/_fzf_report_file_type.fish b/config/fish/functions/_fzf_report_file_type.fish new file mode 100644 index 0000000..49e02e1 --- /dev/null +++ b/config/fish/functions/_fzf_report_file_type.fish @@ -0,0 +1,6 @@ +# helper function for _fzf_preview_file +function _fzf_report_file_type --argument-names file_path file_type --description "Explain the file type for a file." + set_color red + echo "Cannot preview '$file_path': it is a $file_type." + set_color normal +end diff --git a/config/fish/functions/_fzf_search_directory.fish b/config/fish/functions/_fzf_search_directory.fish new file mode 100644 index 0000000..b00c34a --- /dev/null +++ b/config/fish/functions/_fzf_search_directory.fish @@ -0,0 +1,32 @@ +function _fzf_search_directory --description "Search the current directory. Replace the current token with the selected file paths." + # Directly use fd binary to avoid output buffering delay caused by a fd alias, if any. + # Debian-based distros install fd as fdfind and the fd package is something else, so + # check for fdfind first. Fall back to "fd" for a clear error message. + set -f fd_cmd (command -v fdfind || command -v fd || echo "fd") + set -f --append fd_cmd --color=always $fzf_fd_opts + + set -f fzf_arguments --multi --ansi $fzf_directory_opts + set -f token (commandline --current-token) + # expand any variables or leading tilde (~) in the token + set -f expanded_token (eval echo -- $token) + # unescape token because it's already quoted so backslashes will mess up the path + set -f unescaped_exp_token (string unescape -- $expanded_token) + + # If the current token is a directory and has a trailing slash, + # then use it as fd's base directory. + if string match --quiet -- "*/" $unescaped_exp_token && test -d "$unescaped_exp_token" + set --append fd_cmd --base-directory=$unescaped_exp_token + # use the directory name as fzf's prompt to indicate the search is limited to that directory + set --prepend fzf_arguments --prompt="Directory $unescaped_exp_token> " --preview="_fzf_preview_file $expanded_token{}" + set -f file_paths_selected $unescaped_exp_token($fd_cmd 2>/dev/null | _fzf_wrapper $fzf_arguments) + else + set --prepend fzf_arguments --prompt="Directory> " --query="$unescaped_exp_token" --preview='_fzf_preview_file {}' + set -f file_paths_selected ($fd_cmd 2>/dev/null | _fzf_wrapper $fzf_arguments) + end + + if test $status -eq 0 + commandline --current-token --replace -- (string escape -- $file_paths_selected | string join ' ') + end + + commandline --function repaint +end diff --git a/config/fish/functions/_fzf_search_git_log.fish b/config/fish/functions/_fzf_search_git_log.fish new file mode 100644 index 0000000..aa54724 --- /dev/null +++ b/config/fish/functions/_fzf_search_git_log.fish @@ -0,0 +1,36 @@ +function _fzf_search_git_log --description "Search the output of git log and preview commits. Replace the current token with the selected commit hash." + if not git rev-parse --git-dir >/dev/null 2>&1 + echo '_fzf_search_git_log: Not in a git repository.' >&2 + else + if not set --query fzf_git_log_format + # %h gives you the abbreviated commit hash, which is useful for saving screen space, but we will have to expand it later below + set -f fzf_git_log_format '%C(bold blue)%h%C(reset) - %C(cyan)%ad%C(reset) %C(yellow)%d%C(reset) %C(normal)%s%C(reset) %C(dim normal)[%an]%C(reset)' + end + + set -f preview_cmd 'git show --color=always --stat --patch {1}' + if set --query fzf_diff_highlighter + set preview_cmd "$preview_cmd | $fzf_diff_highlighter" + end + + set -f selected_log_lines ( + git log --no-show-signature --color=always --format=format:$fzf_git_log_format --date=short | \ + _fzf_wrapper --ansi \ + --multi \ + --scheme=history \ + --prompt="Git Log> " \ + --preview=$preview_cmd \ + --query=(commandline --current-token) \ + $fzf_git_log_opts + ) + if test $status -eq 0 + for line in $selected_log_lines + set -f abbreviated_commit_hash (string split --field 1 " " $line) + set -f full_commit_hash (git rev-parse $abbreviated_commit_hash) + set -f --append commit_hashes $full_commit_hash + end + commandline --current-token --replace (string join ' ' $commit_hashes) + end + end + + commandline --function repaint +end diff --git a/config/fish/functions/_fzf_search_git_status.fish b/config/fish/functions/_fzf_search_git_status.fish new file mode 100644 index 0000000..358f88c --- /dev/null +++ b/config/fish/functions/_fzf_search_git_status.fish @@ -0,0 +1,41 @@ +function _fzf_search_git_status --description "Search the output of git status. Replace the current token with the selected file paths." + if not git rev-parse --git-dir >/dev/null 2>&1 + echo '_fzf_search_git_status: Not in a git repository.' >&2 + else + set -f preview_cmd '_fzf_preview_changed_file {}' + if set --query fzf_diff_highlighter + set preview_cmd "$preview_cmd | $fzf_diff_highlighter" + end + + set -f selected_paths ( + # Pass configuration color.status=always to force status to use colors even though output is sent to a pipe + git -c color.status=always status --short | + _fzf_wrapper --ansi \ + --multi \ + --prompt="Git Status> " \ + --query=(commandline --current-token) \ + --preview=$preview_cmd \ + --nth="2.." \ + $fzf_git_status_opts + ) + if test $status -eq 0 + # git status --short automatically escapes the paths of most files for us so not going to bother trying to handle + # the few edges cases of weird file names that should be extremely rare (e.g. "this;needs;escaping") + set -f cleaned_paths + + for path in $selected_paths + if test (string sub --length 1 $path) = R + # path has been renamed and looks like "R LICENSE -> LICENSE.md" + # extract the path to use from after the arrow + set --append cleaned_paths (string split -- "-> " $path)[-1] + else + set --append cleaned_paths (string sub --start=4 $path) + end + end + + commandline --current-token --replace -- (string join ' ' $cleaned_paths) + end + end + + commandline --function repaint +end diff --git a/config/fish/functions/_fzf_search_history.fish b/config/fish/functions/_fzf_search_history.fish new file mode 100644 index 0000000..cafbce9 --- /dev/null +++ b/config/fish/functions/_fzf_search_history.fish @@ -0,0 +1,39 @@ +function _fzf_search_history --description "Search command history. Replace the command line with the selected command." + # history merge incorporates history changes from other fish sessions + # it errors out if called in private mode + if test -z "$fish_private_mode" + builtin history merge + end + + if not set --query fzf_history_time_format + # Reference https://devhints.io/strftime to understand strftime format symbols + set -f fzf_history_time_format "%m-%d %H:%M:%S" + end + + # Delinate time from command in history entries using the vertical box drawing char (U+2502). + # Then, to get raw command from history entries, delete everything up to it. The ? on regex is + # necessary to make regex non-greedy so it won't match into commands containing the char. + set -f time_prefix_regex '^.*? │ ' + # Delinate commands throughout pipeline using null rather than newlines because commands can be multi-line + set -f commands_selected ( + builtin history --null --show-time="$fzf_history_time_format │ " | + _fzf_wrapper --read0 \ + --print0 \ + --multi \ + --scheme=history \ + --prompt="History> " \ + --query=(commandline) \ + --preview="string replace --regex '$time_prefix_regex' '' -- {} | fish_indent --ansi" \ + --preview-window="bottom:3:wrap" \ + $fzf_history_opts | + string split0 | + # remove timestamps from commands selected + string replace --regex $time_prefix_regex '' + ) + + if test $status -eq 0 + commandline --replace -- $commands_selected + end + + commandline --function repaint +end diff --git a/config/fish/functions/_fzf_search_processes.fish b/config/fish/functions/_fzf_search_processes.fish new file mode 100644 index 0000000..133a880 --- /dev/null +++ b/config/fish/functions/_fzf_search_processes.fish @@ -0,0 +1,32 @@ +function _fzf_search_processes --description "Search all running processes. Replace the current token with the pid of the selected process." + # Directly use ps command because it is often aliased to a different command entirely + # or with options that dirty the search results and preview output + set -f ps_cmd (command -v ps || echo "ps") + # use all caps to be consistent with ps default format + # snake_case because ps doesn't seem to allow spaces in the field names + set -f ps_preview_fmt (string join ',' 'pid' 'ppid=PARENT' 'user' '%cpu' 'rss=RSS_IN_KB' 'start=START_TIME' 'command') + set -f processes_selected ( + $ps_cmd -A -opid,command | \ + _fzf_wrapper --multi \ + --prompt="Processes> " \ + --query (commandline --current-token) \ + --ansi \ + # first line outputted by ps is a header, so we need to mark it as so + --header-lines=1 \ + # ps uses exit code 1 if the process was not found, in which case show an message explaining so + --preview="$ps_cmd -o '$ps_preview_fmt' -p {1} || echo 'Cannot preview {1} because it exited.'" \ + --preview-window="bottom:4:wrap" \ + $fzf_processes_opts + ) + + if test $status -eq 0 + for process in $processes_selected + set -f --append pids_selected (string split --no-empty --field=1 -- " " $process) + end + + # string join to replace the newlines outputted by string split with spaces + commandline --current-token --replace -- (string join ' ' $pids_selected) + end + + commandline --function repaint +end diff --git a/config/fish/functions/_fzf_search_variables.fish b/config/fish/functions/_fzf_search_variables.fish new file mode 100644 index 0000000..52a7c70 --- /dev/null +++ b/config/fish/functions/_fzf_search_variables.fish @@ -0,0 +1,47 @@ +# This function expects the following two arguments: +# argument 1 = output of (set --show | psub), i.e. a file with the scope info and values of all variables +# argument 2 = output of (set --names | psub), i.e. a file with all variable names +function _fzf_search_variables --argument-names set_show_output set_names_output --description "Search and preview shell variables. Replace the current token with the selected variable." + if test -z "$set_names_output" + printf '%s\n' '_fzf_search_variables requires 2 arguments.' >&2 + + commandline --function repaint + return 22 # 22 means invalid argument in POSIX + end + + # Exclude the history variable from being piped into fzf because + # 1. it's not included in $set_names_output + # 2. it tends to be a very large value => increases computation time + # 3._fzf_search_history is a much better way to examine history anyway + set -f all_variable_names (string match --invert history <$set_names_output) + + set -f current_token (commandline --current-token) + # Use the current token to pre-populate fzf's query. If the current token begins + # with a $, remove it from the query so that it will better match the variable names + set -f cleaned_curr_token (string replace -- '$' '' $current_token) + + set -f variable_names_selected ( + printf '%s\n' $all_variable_names | + _fzf_wrapper --preview "_fzf_extract_var_info {} $set_show_output" \ + --prompt="Variables> " \ + --preview-window="wrap" \ + --multi \ + --query=$cleaned_curr_token \ + $fzf_variables_opts + ) + + if test $status -eq 0 + # If the current token begins with a $, do not overwrite the $ when + # replacing the current token with the selected variable. + # Uses brace expansion to prepend $ to each variable name. + commandline --current-token --replace ( + if string match --quiet -- '$*' $current_token + string join " " \${$variable_names_selected} + else + string join " " $variable_names_selected + end + ) + end + + commandline --function repaint +end diff --git a/config/fish/functions/_fzf_wrapper.fish b/config/fish/functions/_fzf_wrapper.fish new file mode 100644 index 0000000..486e36c --- /dev/null +++ b/config/fish/functions/_fzf_wrapper.fish @@ -0,0 +1,21 @@ +function _fzf_wrapper --description "Prepares some environment variables before executing fzf." + # Make sure fzf uses fish to execute preview commands, some of which + # are autoloaded fish functions so don't exist in other shells. + # Use --function so that it doesn't clobber SHELL outside this function. + set -f --export SHELL (command --search fish) + + # If neither FZF_DEFAULT_OPTS nor FZF_DEFAULT_OPTS_FILE are set, then set some sane defaults. + # See https://github.com/junegunn/fzf#environment-variables + set --query FZF_DEFAULT_OPTS FZF_DEFAULT_OPTS_FILE + if test $status -eq 2 + # cycle allows jumping between the first and last results, making scrolling faster + # layout=reverse lists results top to bottom, mimicking the familiar layouts of git log, history, and env + # border shows where the fzf window begins and ends + # height=90% leaves space to see the current command and some scrollback, maintaining context of work + # preview-window=wrap wraps long lines in the preview window, making reading easier + # marker=* makes the multi-select marker more distinguishable from the pointer (since both default to >) + set --export FZF_DEFAULT_OPTS '--cycle --layout=reverse --border --height=90% --preview-window=wrap --marker="*"' + end + + fzf $argv +end diff --git a/config/fish/functions/ff.fish b/config/fish/functions/ff.fish new file mode 100644 index 0000000..7d6be14 --- /dev/null +++ b/config/fish/functions/ff.fish @@ -0,0 +1,3 @@ +function ff --wraps=fastfetch --description 'alias ff=fastfetch' + fastfetch $argv +end diff --git a/.config/fish/functions/fish_prompt.fish b/config/fish/functions/fish_prompt.fish similarity index 100% rename from .config/fish/functions/fish_prompt.fish rename to config/fish/functions/fish_prompt.fish diff --git a/.config/fish/functions/fish_prompt.fish.bak b/config/fish/functions/fish_prompt.fish.bak similarity index 100% rename from .config/fish/functions/fish_prompt.fish.bak rename to config/fish/functions/fish_prompt.fish.bak diff --git a/config/fish/functions/fisher.fish b/config/fish/functions/fisher.fish new file mode 100644 index 0000000..4f5be4f --- /dev/null +++ b/config/fish/functions/fisher.fish @@ -0,0 +1,251 @@ +function fisher --argument-names cmd --description "A plugin manager for Fish" + set --query fisher_path || set --local fisher_path $__fish_config_dir + set --local fisher_version 4.4.8 + set --local fish_plugins $__fish_config_dir/fish_plugins + + switch "$cmd" + case -v --version + echo "fisher, version $fisher_version" + case "" -h --help + echo "Usage: fisher install Install plugins" + echo " fisher remove Remove installed plugins" + echo " fisher uninstall Remove installed plugins (alias)" + echo " fisher update Update installed plugins" + echo " fisher update Update all installed plugins" + echo " fisher list [] List installed plugins matching regex" + echo "Options:" + echo " -v, --version Print version" + echo " -h, --help Print this help message" + echo "Variables:" + echo " \$fisher_path Plugin installation path. Default: $__fish_config_dir" | string replace --regex -- $HOME \~ + case ls list + string match --entire --regex -- "$argv[2]" $_fisher_plugins + case install update remove uninstall + isatty || read --local --null --array stdin && set --append argv $stdin + + test "$cmd" = uninstall && set cmd remove + + set --local install_plugins + set --local update_plugins + set --local remove_plugins + set --local arg_plugins $argv[2..-1] + set --local old_plugins $_fisher_plugins + set --local new_plugins + + test -e $fish_plugins && set --local file_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins | string replace -- \~ ~) + + if ! set --query argv[2] + if test "$cmd" != update + echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1 + else if ! set --query file_plugins + echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1 + end + set arg_plugins $file_plugins + else if test "$cmd" = install && ! set --query old_plugins[1] + set --append arg_plugins $file_plugins + end + + for plugin in $arg_plugins + set plugin (test -e "$plugin" && realpath $plugin || string lower -- $plugin) + contains -- "$plugin" $new_plugins || set --append new_plugins $plugin + end + + if set --query argv[2] + for plugin in $new_plugins + if contains -- "$plugin" $old_plugins + test "$cmd" = remove && + set --append remove_plugins $plugin || + set --append update_plugins $plugin + else if test "$cmd" = install + set --append install_plugins $plugin + else + echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1 + end + end + else + for plugin in $new_plugins + contains -- "$plugin" $old_plugins && + set --append update_plugins $plugin || + set --append install_plugins $plugin + end + + for plugin in $old_plugins + contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin + end + end + + set --local pid_list + set --local source_plugins + set --local fetch_plugins $update_plugins $install_plugins + set --local fish_path (status fish-path) + + echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal) + + for plugin in $fetch_plugins + set --local source (command mktemp -d) + set --append source_plugins $source + + command mkdir -p $source/{completions,conf.d,themes,functions} + + $fish_path --command " + if test -e $plugin + command cp -Rf $plugin/* $source + else + set resp (command mktemp) + set temp (command mktemp -d) + set repo (string split -- \@ $plugin) || set repo[2] HEAD + + if set path (string replace --regex -- '^(https://)?gitlab.com/' '' \$repo[1]) + set name (string split -- / \$path)[-1] + set url https://gitlab.com/\$path/-/archive/\$repo[2]/\$name-\$repo[2].tar.gz + else + set url https://api.github.com/repos/\$repo[1]/tarball/\$repo[2] + end + + echo Fetching (set_color --underline)\$url(set_color normal) + + set http (command curl -q --silent -L -o \$resp -w %{http_code} \$url) + + if test \"\$http\" = 200 && command tar -xzC \$temp -f \$resp 2>/dev/null + command cp -Rf \$temp/*/* $source + else if test \"\$http\" = 403 + echo fisher: GitHub API rate limit exceeded \(HTTP 403\) >&2 + command rm -rf $source + else + echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2 + command rm -rf $source + end + + command rm -rf \$temp + end + + set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files + " & + + set --append pid_list (jobs --last --pid) + end + + wait $pid_list 2>/dev/null + + for plugin in $fetch_plugins + if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source + if set --local index (contains --index -- "$plugin" $install_plugins) + set --erase install_plugins[$index] + else + set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)] + end + end + end + + for plugin in $update_plugins $remove_plugins + if set --local index (contains --index -- "$plugin" $_fisher_plugins) + set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files + + if contains -- "$plugin" $remove_plugins + for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var) + emit {$name}_uninstall + end + printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~ + set --erase _fisher_plugins[$index] + end + + command rm -rf (string replace -- \~ ~ $$plugin_files_var) + + functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var) + + for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var) + complete --erase --command $name + end + + set --erase $plugin_files_var + end + end + + if set --query update_plugins[1] || set --query install_plugins[1] + command mkdir -p $fisher_path/{functions,themes,conf.d,completions} + end + + for plugin in $update_plugins $install_plugins + set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] + set --local files $source/{functions,themes,conf.d,completions}/* + + if set --local index (contains --index -- $plugin $install_plugins) + set --local user_files $fisher_path/{functions,themes,conf.d,completions}/* + set --local conflict_files + + for file in (string replace -- $source/ $fisher_path/ $files) + contains -- $file $user_files && set --append conflict_files $file + end + + if set --query conflict_files[1] && set --erase install_plugins[$index] + echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2 + continue + end + end + + for file in (string replace -- $source/ "" $files) + command cp -RLf $source/$file $fisher_path/$file + end + + set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files + + set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files | string replace -- ~ \~) + + contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin + contains -- $plugin $install_plugins && set --local event install || set --local event update + + printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~ + + for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var | string replace -- \~ ~) + source $file + if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file) + emit {$name}_$event + end + end + end + + command rm -rf $source_plugins + + if set --query _fisher_plugins[1] + set --local commit_plugins + + for plugin in $file_plugins + contains -- (string lower -- $plugin) (string lower -- $_fisher_plugins) && set --append commit_plugins $plugin + end + + for plugin in $_fisher_plugins + contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin + end + + string replace --regex -- $HOME \~ $commit_plugins >$fish_plugins + else + set --erase _fisher_plugins + command rm -f $fish_plugins + end + + set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins) + + test "$total" != "0 0 0" && echo (string join ", " ( + test $total[1] = 0 || echo "Installed $total[1]") ( + test $total[2] = 0 || echo "Updated $total[2]") ( + test $total[3] = 0 || echo "Removed $total[3]") + ) plugin/s + case \* + echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1 + end +end + +if ! set --query _fisher_upgraded_to_4_4 + set --universal _fisher_upgraded_to_4_4 + if functions --query _fisher_list + set --query XDG_DATA_HOME[1] || set --local XDG_DATA_HOME ~/.local/share + command rm -rf $XDG_DATA_HOME/fisher + functions --erase _fisher_{list,plugin_parse} + fisher update >/dev/null 2>/dev/null + else + for var in (set --names | string match --entire --regex '^_fisher_.+_files$') + set $var (string replace -- ~ \~ $$var) + end + functions --erase _fisher_fish_postexec + end +end diff --git a/config/fish/functions/fzf_configure_bindings.fish b/config/fish/functions/fzf_configure_bindings.fish new file mode 100644 index 0000000..fa7a6b5 --- /dev/null +++ b/config/fish/functions/fzf_configure_bindings.fish @@ -0,0 +1,46 @@ +# Always installs bindings for insert and default mode for simplicity and b/c it has almost no side-effect +# https://gitter.im/fish-shell/fish-shell?at=60a55915ee77a74d685fa6b1 +function fzf_configure_bindings --description "Installs the default key bindings for fzf.fish with user overrides passed as options." + # no need to install bindings if not in interactive mode or running tests + status is-interactive || test "$CI" = true; or return + + set -f options_spec h/help 'directory=?' 'git_log=?' 'git_status=?' 'history=?' 'processes=?' 'variables=?' + argparse --max-args=0 --ignore-unknown $options_spec -- $argv 2>/dev/null + if test $status -ne 0 + echo "Invalid option or a positional argument was provided." >&2 + _fzf_configure_bindings_help + return 22 + else if set --query _flag_help + _fzf_configure_bindings_help + return + else + # Initialize with default key sequences and then override or disable them based on flags + # index 1 = directory, 2 = git_log, 3 = git_status, 4 = history, 5 = processes, 6 = variables + set -f key_sequences ctrl-alt-f ctrl-alt-l ctrl-alt-s ctrl-r ctrl-alt-p ctrl-v + set --query _flag_directory && set key_sequences[1] "$_flag_directory" + set --query _flag_git_log && set key_sequences[2] "$_flag_git_log" + set --query _flag_git_status && set key_sequences[3] "$_flag_git_status" + set --query _flag_history && set key_sequences[4] "$_flag_history" + set --query _flag_processes && set key_sequences[5] "$_flag_processes" + set --query _flag_variables && set key_sequences[6] "$_flag_variables" + + # If fzf bindings already exists, uninstall it first for a clean slate + if functions --query _fzf_uninstall_bindings + _fzf_uninstall_bindings + end + + for mode in default insert + test -n $key_sequences[1] && bind --mode $mode $key_sequences[1] _fzf_search_directory + test -n $key_sequences[2] && bind --mode $mode $key_sequences[2] _fzf_search_git_log + test -n $key_sequences[3] && bind --mode $mode $key_sequences[3] _fzf_search_git_status + test -n $key_sequences[4] && bind --mode $mode $key_sequences[4] _fzf_search_history + test -n $key_sequences[5] && bind --mode $mode $key_sequences[5] _fzf_search_processes + test -n $key_sequences[6] && bind --mode $mode $key_sequences[6] "$_fzf_search_vars_command" + end + + function _fzf_uninstall_bindings --inherit-variable key_sequences + bind --erase -- $key_sequences + bind --erase --mode insert -- $key_sequences + end + end +end diff --git a/.config/fish/functions/ls.fish b/config/fish/functions/ls.fish similarity index 63% rename from .config/fish/functions/ls.fish rename to config/fish/functions/ls.fish index 632a18c..4dd75c3 100644 --- a/.config/fish/functions/ls.fish +++ b/config/fish/functions/ls.fish @@ -1,3 +1,3 @@ function ls --wraps='eza --color' --description 'alias ls=eza --color' - eza --color $argv + eza --icons always --color always $argv end diff --git a/config/fish/functions/n.fish b/config/fish/functions/n.fish new file mode 100644 index 0000000..9824948 --- /dev/null +++ b/config/fish/functions/n.fish @@ -0,0 +1,3 @@ +function n --wraps=nvim --description 'alias n=nvim' + nvim $argv +end diff --git a/.config/fish/functions/nv.fish b/config/fish/functions/nv.fish similarity index 100% rename from .config/fish/functions/nv.fish rename to config/fish/functions/nv.fish diff --git a/config/fish/functions/p.fish b/config/fish/functions/p.fish new file mode 100644 index 0000000..8dbe5a1 --- /dev/null +++ b/config/fish/functions/p.fish @@ -0,0 +1,3 @@ +function p --wraps='paru -Syu' --description 'alias p=paru -Syu' + paru -Syu $argv +end diff --git a/config/fish/functions/sshp.fish b/config/fish/functions/sshp.fish new file mode 100644 index 0000000..d8300e0 --- /dev/null +++ b/config/fish/functions/sshp.fish @@ -0,0 +1,3 @@ +function sshp --wraps='ssh -P 49111' --description 'alias sshp=ssh -P 49111' + ssh -P 49111 $argv +end diff --git a/config/fish/functions/vpn.fish b/config/fish/functions/vpn.fish new file mode 100644 index 0000000..822acdd --- /dev/null +++ b/config/fish/functions/vpn.fish @@ -0,0 +1,3 @@ +function vpn --wraps='sudo ~/./sing-box-sh' --description 'alias vpn=sudo ~/./sing-box-sh' + sudo ~/./sing-box-sh $argv +end diff --git a/config/fish/functions/webka.fish b/config/fish/functions/webka.fish new file mode 100644 index 0000000..1234737 --- /dev/null +++ b/config/fish/functions/webka.fish @@ -0,0 +1,3 @@ +function webka --wraps='scrcpy --v4l2-sink=/dev/video0 --camera-size=1920x1080 --video-source=camera --video-codec=h265 --video-encoder=c2.qti.hevc.encoder --video-buffer=100' --description 'alias webka=scrcpy --v4l2-sink=/dev/video0 --camera-size=1920x1080 --video-source=camera --video-codec=h265 --video-encoder=c2.qti.hevc.encoder --video-buffer=100' + scrcpy --v4l2-sink=/dev/video0 --camera-size=1920x1080 --video-source=camera --video-codec=h265 --video-encoder=c2.qti.hevc.encoder --video-buffer=100 $argv +end diff --git a/config/fish/functions/y.fish b/config/fish/functions/y.fish new file mode 100644 index 0000000..a846c63 --- /dev/null +++ b/config/fish/functions/y.fish @@ -0,0 +1,8 @@ +function y + set tmp (mktemp -t "yazi-cwd.XXXXXX") + yazi $argv --cwd-file="$tmp" + if read -z cwd <"$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ] + builtin cd -- "$cwd" + end + rm -f -- "$tmp" +end diff --git a/config/fish/functions/yz.fish b/config/fish/functions/yz.fish new file mode 100644 index 0000000..ff0af66 --- /dev/null +++ b/config/fish/functions/yz.fish @@ -0,0 +1,3 @@ +function yz --wraps=yazi --description 'alias yz=yazi' + yazi $argv +end diff --git a/config/fish/functions/ня.fish b/config/fish/functions/ня.fish new file mode 100644 index 0000000..1662407 --- /dev/null +++ b/config/fish/functions/ня.fish @@ -0,0 +1,3 @@ +function ня --wraps=yazi --description 'alias ня=yazi' + yazi $argv +end diff --git a/.config/fuzzel/fuzzel.ini b/config/fuzzel/fuzzel.ini similarity index 100% rename from .config/fuzzel/fuzzel.ini rename to config/fuzzel/fuzzel.ini diff --git a/.config/hypr/hyprland.conf b/config/hypr/hyprland.conf similarity index 92% rename from .config/hypr/hyprland.conf rename to config/hypr/hyprland.conf index ad7cbb5..b348435 100644 --- a/.config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -187,8 +187,6 @@ misc { animate_manual_resizes = false animate_mouse_windowdragging = true focus_on_activate = false - new_window_takes_over_fullscreen = 2 - middle_click_paste = false } @@ -334,21 +332,3 @@ bindl = , XF86AudioPrev, exec, playerctl previous # windowrule = float,class:^(kitty)$,title:^(kitty)$ # Ignore maximize requests from apps. You'll probably like this. -windowrule = suppressevent maximize, class:.* - -# Fix some dragging issues with XWayland -windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 -windowrule = float, class:(clipse) -windowrule = fullscreenstate 1, class:(clipse) -#windowrule = size 622 652, class:(clipse) -windowrule = stayfocused, class:(clipse) -windowrule = opacity 1.0 override 1.0 override,title:(.*)(- YouTube — Zen Browser) -windowrule = float, title:(Picture-in-Picture) - -windowrule = float, title:(Media viewer) - -windowrule = float, title:(Save Image) - -windowrule = float, title:(Save File) -windowrule = float, title:(Save Video) -windowrule = fullscreenstate 1, title:(Media viewer) diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf new file mode 100644 index 0000000..d29d40b --- /dev/null +++ b/config/hypr/hyprlock.conf @@ -0,0 +1,110 @@ +# sample hyprlock.conf +# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock +# +# rendered text in all widgets supports pango markup (e.g. or tags) +# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks +# +# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace +# +# you can get started by copying this config to ~/.config/hypr/hyprlock.conf +# + +$font = IosevkaTerm NFM ExtraBold + +general { + hide_cursor = true +} + +# uncomment to enable fingerprint authentication +# auth { +# fingerprint { +# enabled = true +# ready_message = Scan fingerprint to unlock +# present_message = Scanning... +# retry_delay = 250 # in milliseconds +# } +# } + +animations { + enabled = false + bezier = linear, 1, 1, 0, 0 + animation = fadeIn, 1, 5, linear + animation = fadeOut, 1, 5, linear + animation = inputFieldDots, 1, 2, linear +} + +background { + monitor = + path = screenshot + blur_passes = 4 +} + +input-field { + monitor = + size = 20%, 5% + outline_thickness = 3 + inner_color = rgba(0, 0, 0, 0.0) # no fill + + #outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg + #check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg + #fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg + + outer_color = rgba(EEF7FDee) + check_color = rgba(FFDE00ee) + fail_color = rgba(FF0100ee) + + font_color = rgb(143, 143, 143) + fade_on_empty = false + rounding = 3 + + font_family = $font + placeholder_text = Password here: + fail_text = $PAMFAIL + + # uncomment to use a letter instead of a dot to indicate the typed password + # dots_text_format = * + # dots_size = 0.4 + dots_spacing = 0.3 + + # uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator) + # hide_input = true + + position = 0, -200 + halign = center + valign = center +} + +# TIME +label { + monitor = + text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution + font_size = 90 + font_family = $font + + position = 0, -40 + halign = center + valign = top +} + +# DATE +label { + monitor = + text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds + font_size = 25 + font_family = $font + + position = 0, -200 + halign = center + valign = top +} + +label { + monitor = + text = $LAYOUT[en,ru] + font_size = 24 + onclick = hyprctl switchxkblayout all next + + position = 250, -200 + halign = center + valign = center +} diff --git a/config/hyprwave/config.conf b/config/hyprwave/config.conf new file mode 100644 index 0000000..d1fcd60 --- /dev/null +++ b/config/hyprwave/config.conf @@ -0,0 +1,37 @@ +# HyprWave Configuration File + +[General] +# Edge to anchor HyprWave to +# Options: right, left, top, bottom +edge = top + + +# Margin from the screen edge (in pixels) +margin = 20 + +# Layer to render on +# Options: background, bottom, top, overlay +layer = overlay + +idle_timeout= 1 +# Exclusive zone: 0 = respect other surfaces, -1 = overlap everything +exclusive_zone = -1 + +[Notifications] +enabled = true +now_playing = true + +[Visualizer] +# Enable/disable visualizer (horizontal layout only) +enabled = false + +# Idle timeout in seconds before visualizer appears +# Set to 0 to disable auto-activation +idle_timeout = 1 + +[VerticalDisplay] +enabled=true +idle_timeout=1 + +[MusicPlayer] +preference = mpd diff --git a/config/hyprwave/style.css b/config/hyprwave/style.css new file mode 100644 index 0000000..42d7017 --- /dev/null +++ b/config/hyprwave/style.css @@ -0,0 +1,585 @@ +/* ======================================== + HyprWave - Mystic Portal Theme + Inspired by purple/pink portal with blue depths + ======================================== */ + +:root { + /* Background Colors - Deep Void */ + --bg-primary: rgba(15, 12, 30, 1.0); + --bg-secondary: rgba(20, 18, 40, 0.75); + --bg-album-cover: rgba(25, 22, 48, 0.85); + --bg-album-secondary: rgba(30, 28, 55, 0.85); + + /* Button Colors - Default (Prev/Next) - Mystic Purple */ + --btn-default: rgba(140, 100, 180, 0.85); + --btn-default-secondary: rgba(130, 90, 170, 0.85); + --btn-default-hover: rgba(160, 120, 200, 0.92); + --btn-default-hover-secondary: rgba(150, 110, 190, 0.92); + + /* Button Colors - Play/Pause - Bright Pink Portal */ + --btn-play: rgba(255, 100, 200, 0.95); + --btn-play-secondary: rgba(240, 80, 180, 0.95); + --btn-play-hover: rgba(255, 120, 215, 0.98); + --btn-play-hover-secondary: rgba(255, 110, 205, 0.98); + --btn-play-active: rgba(230, 70, 170, 0.95); + --btn-play-active-secondary: rgba(220, 60, 160, 0.95); + + /* Button Colors - Expand - Deep Violet */ + --btn-expand: rgba(120, 60, 200, 0.95); + --btn-expand-secondary: rgba(110, 50, 190, 0.95); + --btn-expand-hover: rgba(140, 80, 220, 0.98); + --btn-expand-hover-secondary: rgba(130, 70, 210, 0.98); + --btn-expand-active: rgba(100, 40, 180, 0.95); + --btn-expand-active-secondary: rgba(90, 35, 170, 0.95); + + /* Progress Bar Colors */ + --progress-bg: rgba(40, 30, 60, 0.25); + --progress-fill-start: rgba(255, 100, 200, 0.95); + --progress-fill-end: rgba(120, 60, 200, 0.95); + + /* Slider Handle Colors */ + --handle-color: rgba(255, 100, 200, 0.98); + --handle-hover: rgba(255, 120, 215, 1.0); + --handle-border: rgba(230, 70, 170, 0.5); + --handle-shadow: rgba(255, 100, 200, 0.6); + + /* Text Colors - Soft pink/purple on dark */ + --text-primary: rgba(255, 220, 245, 0.95); + --text-secondary: rgba(230, 190, 220, 0.85); + --text-tertiary: rgba(200, 160, 195, 0.75); + --text-muted: rgba(160, 120, 165, 0.65); + + /* Border Colors */ + /*--border-primary: rgba(100, 70, 140, 0.35);*/ + --border-button: rgba(120, 85, 160, 0.3); + --border-button-hover: rgba(140, 100, 180, 0.45); + --border-play: rgba(255, 100, 200, 0.4); + --border-play-hover: rgba(255, 120, 215, 0.55); + --border-expand: rgba(120, 60, 200, 0.4); + --border-expand-hover: rgba(140, 80, 220, 0.55); + + /* Shadow Colors */ + --shadow-default: rgba(0, 0, 0, 0.6); + --shadow-button: rgba(0, 0, 0, 0.5); + --shadow-play: rgba(255, 100, 200, 0.5); + --shadow-play-hover: rgba(255, 120, 215, 0.7); + --shadow-expand: rgba(120, 60, 200, 0.5); + --shadow-expand-hover: rgba(140, 80, 220, 0.7); + --shadow-focus: rgba(255, 100, 200, 0.7); + + /* Spacing & Sizes */ + --border-radius-container: 100px; + --border-radius-section: 20px; + --border-radius-album: 16px; + --border-radius-button: 50%; + --border-radius-progress: 2px; + + --padding-container: 12px; + --padding-section: 16px; +} + +/* Visualizer bars - mystic portal glow */ +.visualizer-bar { + background: linear-gradient(180deg, + rgba(255, 120, 215, 0.98), + rgba(180, 100, 220, 0.98), + rgba(140, 80, 220, 0.98)); + border-radius: 0px; + transition: all 0.05s ease-out; + margin: 0px; + min-width: 1px; + min-height: 3px; + box-shadow: 0 0 16px rgba(255, 100, 200, 0.8), + 0 0 10px rgba(140, 80, 220, 0.6); +} + +.vertical-display-label { + font-family: 'VT323', monospace; + font-size: 28px; + font-weight: bold; + color: rgba(255, 120, 215, 0.98); + letter-spacing: 0px; + line-height: 1.2; +} + +/* CRITICAL: Disable CSS transitions during JavaScript animations */ +.no-transition, +.no-transition * { + transition: none !important; + animation: none !important; +} + +/* ======================================== + Base Styles + ======================================== */ + +/* GTK4 transparent window - CRITICAL for compositor transparency */ +window, +window.background, +.hyprwave-window { + background-color: transparent; + background-image: none; +} + +/* Ensure ALL window-level elements are transparent */ +window>* { + background: transparent; +} + +/* Main container - transparent */ +.main-container { + background: transparent; +} + +/* ======================================== + Control Container (Vertical Bar) + ======================================== */ + +.control-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-container); + border: 4px solid rgb(255, 1, 0, 1.0); + + padding: var(--padding-container); + margin: 0; +} + +/* ======================================== + Control Container (Horizontal Bar) + For Top/Bottom Layouts + ======================================== */ + +.control-container-horizontal { + /* Match the vertical style exactly for consistency */ + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-container); + /* Keeps the pill shape */ + border: 4px solid var(--border-primary); + + /* Horizontal padding is critical here to prevent buttons + from touching the rounded edges */ + padding: 8px 24px; + margin: 0; +} + +/* ======================================== + Expanded Section (Album Details Card) + ======================================== */ + +.expanded-section { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + padding: var(--padding-section); + margin: 0; + margin-top: 4px; + /* Reduced spacing from control bar */ + + +} + +/* ======================================== + Expanded Section (Horizontal Layout) + For Top/Bottom Layouts + ======================================== */ + +.expanded-section-horizontal { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 1px solid var(--border-primary); + + + /* Slightly different padding/margin to look good below/above the bar */ + padding: var(--padding-section); + margin-top: 2px; + /* Adds gap between control bar and this panel */ + margin-bottom: 2px; + + /* Ensure it doesn't get too squeezed */ + min-width: 300px; +} + +/* Album cover */ +.album-cover { + background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary)); + border-radius: var(--border-radius-album); + border: 1px solid var(--border-button); + box-shadow: 0 4px 16px var(--shadow-button); +} + +/* ======================================== + Text Styles + ======================================== */ + +/* Source label (e.g., "Spotify") */ +.source-label { + color: var(--text-muted); + font-size: 11px; + font-weight: 500; + margin-top: 8px; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +/* Track title */ +.track-title { + color: var(--text-primary); + font-size: 14px; + font-weight: 600; + margin-top: 4px; +} + +/* Artist label */ +.artist-label { + color: var(--text-secondary); + font-size: 12px; + font-weight: 500; + margin-top: 2px; +} + +/* Time remaining */ +.time-remaining { + color: var(--text-tertiary); + font-size: 12px; + font-weight: 500; + margin-top: 2px; +} + +/* ======================================== + Progress Bar - FIXED FOR GTK4 + ======================================== */ + +.track-progress { + min-height: 4px; + margin-top: 8px; + margin-bottom: 4px; +} + +/* The background track */ +.track-progress trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* The filled progress portion - GTK4 specific */ +.track-progress progress { + background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end)); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* GTK4 also needs this for the fill bar to show */ +progressbar trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +progressbar progress { + background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end)); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* ======================================== + Control Buttons - FIXED ROUNDED SHAPE + ======================================== */ + +/* All control buttons - base styles */ +.control-button { + padding: 0; + + /* Add margin to compensate for removed border */ + margin: 1.5px; + /* Same as the old border width */ + + min-width: 44px; + min-height: 44px; + + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + + border: none; + box-shadow: + inset 0 0 0 1.5px var(--border-button), + 0 4px 16px var(--shadow-button), + inset 0 1px 1px rgba(255, 255, 255, 0.2); + + border-radius: 50%; +} + +.control-button:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); + border-color: var(--border-button-hover); + box-shadow: + 0 6px 20px var(--shadow-button), + inset 0 1px 1px rgba(255, 255, 255, 0.25); + transform: translateY(-1px); +} + +.control-button:active { + transform: scale(0.96); + box-shadow: + 0 2px 8px var(--shadow-button), + inset 0 2px 4px rgba(0, 0, 0, 0.2); +} + +/* ======================================== + Play/Pause Button (Blue) + ======================================== */ + +.play-button { + background: linear-gradient(135deg, var(--btn-play), var(--btn-play-secondary)); + border-color: var(--border-play); + box-shadow: + 0 4px 16px var(--shadow-play), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +.play-button:hover { + background: linear-gradient(135deg, var(--btn-play-hover), var(--btn-play-hover-secondary)); + border-color: var(--border-play-hover); + box-shadow: + 0 6px 20px var(--shadow-play-hover), + inset 0 1px 1px rgba(255, 255, 255, 0.4); +} + +.play-button:active { + background: linear-gradient(135deg, var(--btn-play-active), var(--btn-play-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-play), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + +/* ======================================== + Expand Button (Purple) + ======================================== */ + +.expand-button { + background: linear-gradient(135deg, var(--btn-expand), var(--btn-expand-secondary)); + border-color: var(--border-expand); + box-shadow: + 0 4px 16px var(--shadow-expand), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +.expand-button:hover { + background: linear-gradient(135deg, var(--btn-expand-hover), var(--btn-expand-hover-secondary)); + border-color: var(--border-expand-hover); + box-shadow: + 0 6px 20px var(--shadow-expand-hover), + inset 0 1px 1px rgba(255, 255, 255, 0.4); +} + +.expand-button:active { + background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-expand), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + +/* ======================================== + Previous/Next Buttons + ======================================== */ + +.prev-button, +.next-button { + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); +} + +.prev-button:hover, +.next-button:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); +} + +/* ======================================== + Focus & Accessibility + ======================================== */ + +button { + outline: none; +} + +button:focus { + outline: none; + box-shadow: + 0 0 0 3px var(--shadow-focus), + 0 4px 16px var(--shadow-play), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +/* ======================================== + Notification Styles + ======================================== */ + +.notification-window { + background: transparent; +} + +.notification-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 1px solid var(--border-primary); + padding: 10px 12px; + /* Reduced from 12px to 10px vertical padding */ + min-width: 280px; + /* Reduced from 320px */ + max-width: 300px; + /* Added max-width */ +} + +.notification-album { + background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary)); + border-radius: var(--border-radius-album); + border: 1px solid var(--border-button); +} + +.notification-header { + color: var(--text-muted); + font-size: 10px; + /* Reduced from 11px */ + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 6px; + /* Reduced from 8px */ +} + +.notification-song { + color: var(--text-primary); + font-size: 13px; + /* Reduced from 14px */ + font-weight: 600; + line-height: 1.2; + /* Added for tighter spacing */ +} + +.notification-artist { + color: var(--text-secondary); + font-size: 11px; + /* Reduced from 12px */ + font-weight: 500; + line-height: 1.2; + /* Added for tighter spacing */ +} + +/* ======================================== + Volume Control Styles + ======================================== */ + +.volume-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 1px solid var(--border-primary); + padding: 12px; + margin: 0px; +} + +.volume-icon { + min-width: 20px; + min-height: 20px; +} + +.volume-percentage { + color: var(--text-primary); + font-size: 13px; + font-weight: 600; + min-width: 40px; +} + +/* Volume slider - similar to progress bar but with different colors */ +.volume-slider { + min-height: 24px; + min-width: 24px; +} + +/* The background track */ +.volume-slider trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 6px; + min-width: 6px; +} + +/* The filled portion */ +.volume-slider progress { + background: linear-gradient(90deg, var(--btn-default), var(--btn-default-secondary)); + border-radius: var(--border-radius-progress); + min-height: 6px; + min-width: 6px; +} + +/* The slider handle */ +.volume-slider slider { + min-height: 16px; + min-width: 16px; + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + border: 2px solid var(--border-button); + border-radius: 50%; + +} + +.volume-slider slider:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); + border-color: var(--border-button-hover); + transform: scale(1.1); +} + +.volume-slider slider:active { + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + transform: scale(0.95); +} + +/* GTK4 specific for vertical sliders */ +.volume-slider.vertical trough { + min-width: 6px; +} + +.volume-slider.vertical progress { + min-width: 6px; +} + + +/* ======================================== + Visualizer Bars - Idle Mode Animation + ======================================== */ + +/* Container padding to keep bars inside control bar edges */ +.visualizer-container { + padding: 0px; + /* 5px padding on left/right keeps bars inside */ + padding-bottom: 1px; + /* Small bottom padding to align with control bar bottom */ + border-radius: 0 0 12px 12px; +} + +Smooth control bar height transitions for idle mode */ .control-container-horizontal { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Smooth button fade transitions */ +.control-button { + transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1), + opacity 0.3s ease-in-out; +} + +/* Ensure overlay respects size changes */ +overlay { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Vertical Display (for vertical layouts) */ +.vertical-display-container { + background: transparent; + padding: 8px 4px; +} + +.vertical-display-label { + font-family: 'VT323', monospace; + font-size: 28px; + font-weight: bold; + color: white; + /* Match visualizer bar color */ + letter-spacing: 0px; + line-height: 1.2; +} diff --git a/config/kitty/current-theme.conf b/config/kitty/current-theme.conf new file mode 100644 index 0000000..51b9f7c --- /dev/null +++ b/config/kitty/current-theme.conf @@ -0,0 +1,50 @@ +# vim:ft=kitty + +## name: Tokyo Night +## license: popachcka-rulet +## author: an idiot +## upstream: /////////gol + + +background #07090B +foreground #EEF7FD +selection_background #C1D6D6 +selection_foreground #07090B +url_color #73daca +cursor #c0caf5 +cursor_text_color #1a1b26 + +# Tabs +active_tab_background #C1D6D6 +active_tab_foreground #25C39F +inactive_tab_background #5C6871 +inactive_tab_foreground #07090B +#tab_bar_background #15161e + +# Windows +active_border_color #25C39F +inactive_border_color #C0CAF5 + +# normal +color0 #07090B +color1 #FF0100 +color2 #25C39F +color3 #FFDE00 +color4 #109FFF +color5 #FE31FF +color6 #00FED4 +color7 #EEF7FD + +# bright + color8 #5C6871 + color9 #E46468 + color10 #82D1B9 + color11 #F6DB8B + color12 #8FD2F7 + color13 #F79DE7 + color14 #7EFEDE + color15 #C1D6D6 + +# extended colors +color16 #ff9e64 +color17 #db4b4b diff --git a/.config/kitty/kitty.conf b/config/kitty/kitty.conf similarity index 99% rename from .config/kitty/kitty.conf rename to config/kitty/kitty.conf index 4248dd5..49cf003 100644 --- a/.config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -267,7 +267,7 @@ #: Text cursor customization {{{ -# cursor #cccccc + cursor #eef7fd #: Default text cursor color. If set to the special value none the #: cursor will be rendered with a "reverse video" effect. Its color @@ -279,7 +279,7 @@ #: some themes set this value, so if you want to override it, place #: your value after the lines where the theme file is included. -# cursor_text_color #111111 + cursor_text_color background #: The color of text under the cursor. If you want it rendered with #: the background color of the cell underneath instead, use the @@ -288,7 +288,7 @@ #: so if you want to override it, place your value after the lines #: where the theme file is included. -# cursor_shape block + cursor_shape underline #: The cursor shape can be one of block, beam, underline. Note that #: when reloading the config this will be changed only if the cursor @@ -299,7 +299,7 @@ #: the cursor shape to beam at shell prompts. You can avoid this by #: setting shell_integration to no-cursor. -# cursor_shape_unfocused hollow +cursor_shape_unfocused beam #: Defines the text cursor shape when the OS window is not focused. #: The unfocused cursor shape can be one of block, beam, underline, @@ -1001,7 +1001,7 @@ #: set the vertical and horizontal sides. Three values set top, #: horizontal and bottom. Four values set top, right, bottom and left. -# window_padding_width 0 + window_padding_width 5 #: The window padding (in pts) (blank area between the text and the #: window border). A single value sets all four sides. Two values set @@ -1314,9 +1314,8 @@ #: }}} #: Color scheme {{{ - - foreground #C1D6D6 - background #07090B +#foreground #C1D6D6 +# background #07090B #: The foreground and background colors. @@ -1442,9 +1441,9 @@ #: How much to dim text that has the DIM/FAINT attribute set. One #: means no dimming and zero means fully dimmed (i.e. invisible). +# selection_foreground #07090B +# selection_background #ffffff -selection_foreground #07090B -selection_background #E2F9F9 #: The foreground and background colors for text selected with the #: mouse. Setting both of these to none will cause a "reverse video" @@ -1459,44 +1458,83 @@ selection_background #E2F9F9 #: The 256 terminal colors. There are 8 basic colors, each color has a #: dull and bright version, for the first 16 colors. You can set the #: remaining 240 colors as color16 to color255. - -color0 #07090B -color8 #718091 +#color0 #07090B + #color8 #5C6871 +#596269 good +#464646 +#7E7E7F +#545256 +#B2B2B2 +#BCBEBF +#B2B2B2 +#9F9F9F +#181818 #: black - -color1 #FE3F48 -color9 #F87173 + #color1 #FF0100 + #color9 #E46468 +#F87173 #: red - -color2 #25C39F -color10 #A1F7C6 +# color2 #25C39F +# color10 #82D1B9 +#92ED47 from zzz +#A1F7C6 #: green - -color3 #EFFF2B -color11 #ECE782 +# color3 #FFDE00 +#FEDE00 +#F4DA00 +#F4DA00 +#EFFF2B +##BAF000 +# color11 #F6DB8B +#FFC777 +#F6DB8B +#FDC849 +#FFEC38 +#ECE782 #: yellow - -color4 #3783FF -color12 #96E1FF +# color4 #109FFF +#1C55E3 +#00A9FF +# color12 #8FD2F7 +#1BB7F9 +#2EB6FF +#8077EA +#606ECF +#072857 --best +#0F474B +#13545E +#2CDCE1 +#96E1FF #: blue - -color5 #FE31FF -color13 #F586FF +# color5 #FE31FF +# color13 #F79DE7 +#EF61D6 +#FFA4A5 +#FF498C +#F978F2 +#F586FF #: magenta - -color6 #22BEE8 -color14 #DFFBE8 +# color6 #00FED4 +#00FFD3 +#22BEE8 +# color14 #7EFEDE +#7EFEDE +#65E09F good green +#4EC2D9 +#4CBBC1 --best +#1CE0EF +#6BE6E4 +#DFFBE8 #: cyan - -color7 #C1D6D6 -color15 #E2F9F9 + #color7 #EEF7FD + #color15 #C1D6D6 #: white @@ -2794,3 +2832,9 @@ bold_font auto italic_font auto bold_italic_font auto # END_KITTY_FONTS + + +# BEGIN_KITTY_THEME +#Tokyo Night +include current-theme.conf +# END_KITTY_THEME diff --git a/.config/kitty/kitty.conf.bak b/config/kitty/kitty.conf.bak similarity index 99% rename from .config/kitty/kitty.conf.bak rename to config/kitty/kitty.conf.bak index 161a348..8cad09d 100644 --- a/.config/kitty/kitty.conf.bak +++ b/config/kitty/kitty.conf.bak @@ -288,7 +288,7 @@ #: so if you want to override it, place your value after the lines #: where the theme file is included. -# cursor_shape block + cursor_shape underline #: The cursor shape can be one of block, beam, underline. Note that #: when reloading the config this will be changed only if the cursor @@ -1315,7 +1315,7 @@ #: Color scheme {{{ - foreground #E2F9F9 + foreground #C1D6D6 background #07090B #: The foreground and background colors. @@ -1443,8 +1443,9 @@ #: How much to dim text that has the DIM/FAINT attribute set. One #: means no dimming and zero means fully dimmed (i.e. invisible). -# selection_foreground #000000 -# selection_background #fffacd +selection_foreground #07090B +selection_background #ffffff + #: The foreground and background colors for text selected with the #: mouse. Setting both of these to none will cause a "reverse video" @@ -1461,42 +1462,90 @@ #: remaining 240 colors as color16 to color255. color0 #07090B -color8 #6D8199 +color8 #5C6871 +#596269 good +#464646 +#7E7E7F +#545256 +#B2B2B2 +#BCBEBF +#B2B2B2 +#9F9F9F +#181818 #: black -# color1 #FA444E -# color9 #FB8087 +color1 #FF0100 +color9 #E46468 +#F87173 #: red -# color2 #2DEAC4 -# color10 #BEF9F9 +color2 #25C39F + +color10 #82D1B9 +#92ED47 from zzz +#A1F7C6 #: green -# color3 #FBFB43 -# color11 #FBFBB4 +color3 #FFDE00 +#FEDE00 +#F4DA00 +#F4DA00 +#EFFF2B +##BAF000 +color11 #F6DB8B +#FFC777 +#F6DB8B +#FDC849 +#FFEC38 +#ECE782 #: yellow -# color4 #409FFC -# color12 #A9FAFA +color4 #109FFF +#1C55E3 +#00A9FF +color12 #8FD2F7 +#1BB7F9 +#2EB6FF +#8077EA +#606ECF +#072857 --best +#0F474B +#13545E +#2CDCE1 +#96E1FF #: blue -# color5 #F932F9 -# color13 #F99FFA +color5 #FE31FF +color13 #F79DE7 +#EF61D6 +#FFA4A5 +#FF498C +#F978F2 +#F586FF #: magenta -# color6 #2EECF9 -# color14 #FDFDFD +color6 #00FED4 +#00FFD3 +#22BEE8 +color14 #7EFEDE +#7EFEDE +#65E09F good green +#4EC2D9 +#4CBBC1 --best +#1CE0EF +#6BE6E4 +#DFFBE8 #: cyan -# color7 #F2F9F9 -# color15 #F7F7F7 +color7 #EEF7FD +color15 #C1D6D6 #: white @@ -2789,7 +2838,7 @@ color8 #6D8199 # BEGIN_KITTY_FONTS -font_family family='Terminess Nerd Font Mono' postscript_name=TerminessNFM +font_family family="IosevkaTerm Nerd Font" bold_font auto italic_font auto bold_italic_font auto diff --git a/config/mimeapps.list b/config/mimeapps.list new file mode 100644 index 0000000..b1ecd67 --- /dev/null +++ b/config/mimeapps.list @@ -0,0 +1,75 @@ +[Added Associations] +application/json=neovide.desktop; +application/octet-stream=mpv.desktop; +application/x-extension-htm=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; +application/x-extension-html=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; +application/x-extension-shtml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; +application/x-extension-xht=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; +application/x-extension-xhtml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; +application/x-msdownload=ru.launcher.StartWine.desktop; +application/x-php=mpv.desktop; +application/xhtml+xml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; +application/zip=org.gnome.Nautilus.desktop; +audio/flac=mpv.desktop; +audio/mp4=mpv.desktop; +audio/ogg=mpv.desktop; +audio/vorbis=mpv.desktop; +audio/x-oggflac=mpv.desktop; +audio/x-vorbis=mpv.desktop; +audio/x-vorbis+ogg=mpv.desktop; +image/jpeg=gimp.desktop;org.gnome.gThumb.desktop;org.gnome.eog.desktop; +image/png=gimp.desktop;org.gnome.eog.desktop; +image/webp=org.gnome.eog.desktop; +text/html=zen.desktop;userapp-Zen-PIXJK3.desktop; +text/plain=neovide.desktop; +video/mp4=mpv.desktop; +video/webm=mpv.desktop; +x-scheme-handler/chrome=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop; +x-scheme-handler/http=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop; +x-scheme-handler/https=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop; +x-scheme-handler/mailto=zen.desktop; +x-scheme-handler/tg=org.telegram.desktop.desktop;userapp-AyuGram Desktop-YAGQF3.desktop;userapp-AyuGram Desktop-352WJ3.desktop;org.fagram.desktop; +x-scheme-handler/tonsite=org.telegram.desktop.desktop;userapp-AyuGram Desktop-UNJQF3.desktop;userapp-AyuGram Desktop-31ZUJ3.desktop;org.fagram.desktop; + +[Default Applications] +application/fb2=org.pwmt.zathura.desktop +application/json=neovide.desktop +application/octet-stream=mpv.desktop +application/pdf=org.pwmt.zathura.desktop +application/x-extension-htm=zen.desktop +application/x-extension-html=zen.desktop +application/x-extension-shtml=zen.desktop +application/x-extension-xht=zen.desktop +application/x-extension-xhtml=zen.desktop +application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program;text/win-bat;=PortProton.desktop +application/x-msdownload=ru.launcher.StartWine.desktop +application/x-php=mpv.desktop +application/x-zip-compressed-fb2=org.pwmt.zathura.desktop +application/xhtml+xml=zen.desktop +application/zip=org.gnome.Nautilus.desktop +audio/flac=mpv.desktop +audio/mp4=mpv.desktop +audio/ogg=mpv.desktop; +audio/vorbis=mpv.desktop; +audio/x-oggflac=mpv.desktop; +audio/x-vorbis=mpv.desktop; +audio/x-vorbis+ogg=mpv.desktop; +image/gif=imv.desktop +image/jpeg=org.gnome.eog.desktop +image/png=org.gnome.eog.desktop +image/vnd.djvu=org.pwmt.zathura.desktop +image/webp=org.gnome.eog.desktop +text/fb2+xml=org.pwmt.zathura.desktop +text/html=zen.desktop +text/plain=neovide.desktop +text/xml=com.github.johnfactotum.Foliate.desktop +video/mp4=mpv.desktop +video/webm=mpv.desktop +x-scheme-handler/anytype=anytype.desktop +x-scheme-handler/chrome=zen.desktop +x-scheme-handler/discord=vesktop.desktop +x-scheme-handler/http=zen.desktop +x-scheme-handler/https=zen.desktop +x-scheme-handler/mailto=zen.desktop; +x-scheme-handler/tg=org.fagram.desktop +x-scheme-handler/tonsite=org.fagram.desktop diff --git a/config/mpDris2/mpDris2.conf b/config/mpDris2/mpDris2.conf new file mode 100644 index 0000000..bd43e87 --- /dev/null +++ b/config/mpDris2/mpDris2.conf @@ -0,0 +1,36 @@ +# Copy this to /etc/mpDris2.conf or ~/.config/mpDris2/mpDris2.conf +# Default values are shown here, commented out. + +[Connection] +# You can also export $MPD_HOST and/or $MPD_PORT to change the server. +host = /run/user/1000/mpd/socket +#port = 6600 +#password = + +[Library] +music_dir = ~/mus/ +cover_regex = ^(album|cover|\.?folder|front).*\.(gif|jpeg|jpg|png)$ + +[Bling] +#mmkeys = True +notify = False +# Send notifications while paused? +#notify_paused = True +# CD-like previous command: if playback is past 3 seconds, seek to the beginning +#cdprev = True + +#[Notify] +# Urgency of the notification: 0 for low, 1 for medium and 2 for high. +#urgency = 0 +# Timeout of the notification in milliseconds. -1 uses the notification's default +# and 0 sets the notification to never timeout. +#timeout = -1 +# Format the notification's summary and body in either playing or paused state. +# Leave blank to use mpDris2's internal defaults. +# Possible values: +# %album%, %title%, %id%, %time%, %timeposition%, %date%, %track%, +# %disc%, %artist%, %albumartist%, %composer%, %genre%, %file% +#summary = +#body = +#paused_summary = +#paused_body = diff --git a/config/mpd/mpd.conf b/config/mpd/mpd.conf new file mode 100644 index 0000000..6c3a202 --- /dev/null +++ b/config/mpd/mpd.conf @@ -0,0 +1,403 @@ +# An example configuration file for MPD. +# Read the user manual for documentation: http://www.mausicpd.org/doc/user/ + + +# Files and directories ####################################################### +# +# This setting controls the top directory which MPD will search to discover the +# available audio files and add them to the daemon's online database. This +# setting defaults to the XDG directory, otherwise the music directory will be +# be disabled and audio files will only be accepted over ipc socket (using +# file:// protocol) or streaming files over an accepted protocol. +# +music_directory "/home/unconfer/mus" +#music_directory "~/music" +playlist_plugin { + name "save" + enabled "yes" +} + +# +# This setting sets the MPD internal playlist directory. The purpose of this +# directory is storage for playlists created by MPD. The server will use +# playlist files not created by the server but only if they are in the MPD +# format. This setting defaults to playlist saving being disabled. +# +#playlist_directory "$XDG_CONFIG_HOME/mpd/playlists" +playlist_directory "$XDG_MUSIC_DIR/playlists" +# +# This setting sets the location of the MPD database. This file is used to +# load the database at server start up and store the database while the +# server is not up. This setting defaults to disabled which will allow +# MPD to accept files over ipc socket (using file:// protocol) or streaming +# files over an accepted protocol. +# +#db_file "$XDG_CACHE_HOME/mpd/database" +db_file "~/.mpd/database" + +# These settings are the locations for the daemon log files for the daemon. +# +# The special value "syslog" makes MPD use the local syslog daemon. This +# setting defaults to logging to syslog. +# +# If you use systemd, do not configure a log_file. With systemd, MPD +# defaults to the systemd journal, which is fine. +# +#log_file "$XDG_CACHE_HOME/mpd/log" +#log_file "~/.mpd/log" + +# This setting sets the location of the file which stores the process ID +# for use of mpd --kill and some init scripts. This setting is disabled by +# default and the pid file will not be stored. +# +# If you use systemd, do not configure a pid_file. +# +pid_file "$XDG_RUNTIME_DIR/mpd/mpd.pid" +#pid_file "~/.mpd/pid" + +# This setting sets the location of the file which contains information about +# most variables to get MPD back into the same general shape it was in before +# it was brought down. This setting is disabled by default and the server +# state will be reset on server start up. +# +state_file "$XDG_RUNTIME_DIR/mpd/state" +#state_file "~/.mpd/state" +# +# The location of the sticker database. This is a database which +# manages dynamic information attached to songs. +# +#sticker_file "$XDG_CACHE_HOME/sticker.sql" +#sticker_file "~/.mpd/sticker.sql" +# +############################################################################### + + +# General music daemon options ################################################ +# +# This setting specifies the user that MPD will run as. MPD should never run as +# root and you may use this setting to make MPD change its user ID after +# initialization. This setting is disabled by default and MPD is run as the +# current user. +# +#user "nobody" +# +# This setting sets the address for the daemon to listen on. Careful attention +# should be paid if this is assigned to anything other than the default, any. +# This setting can deny access to control of the daemon. Not effective if +# systemd socket activation is in use. +# +# For network +#bind_to_address "any" +# +# And for Unix Socket +#bind_to_address "$XDG_RUNTIME_DIR/mpd/socket" +bind_to_address "/tmp/mpd_socket" +# +# This setting is the TCP port that is desired for the daemon to get assigned +# to. +#port "6601" +# +# Suppress all messages below the given threshold. Use "verbose" for +# troubleshooting. Available setting arguments are "notice", "info", "verbose", +# "warning" and "error". +# +#log_level "notice" +# +# Setting "restore_paused" to "yes" puts MPD into pause mode instead +# of starting playback after startup. +# +#restore_paused "no" +# +# This setting enables MPD to create playlists in a format usable by other +# music players. +# +#save_absolute_paths_in_playlists "no" +# +# This setting defines a list of tag types that will be extracted during the +# audio file discovery process. The complete list of possible values can be +# found in the user manual. +#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" +# +# This example just enables the "comment" tag without disabling all +# the other supported tags: +#metadata_to_use "+comment" +# +# This setting enables automatic update of MPD's database when files in +# music_directory are changed. (Linux only) +# +auto_update "yes" +# +# Limit the depth of the directories being watched, 0 means only watch +# the music directory itself. There is no limit by default. +# +#auto_update_depth "3" +# +############################################################################### + + +# Symbolic link behavior ###################################################### +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links outside of the configured music_directory. +# +#follow_outside_symlinks "yes" +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links inside of the configured music_directory. +# +#follow_inside_symlinks "yes" +# +############################################################################### + + +# Zeroconf / Avahi Service Discovery ########################################## +# +# If this setting is set to "yes", service information will be published with +# Zeroconf / Avahi. +# +#zeroconf_enabled "yes" +# +# The argument to this setting will be the Zeroconf / Avahi unique name for +# this MPD server on the network. %h will be replaced with the hostname. +# +#zeroconf_name "Music Player @ %h" +# +############################################################################### + + +# Permissions ################################################################# +# +# If this setting is set, MPD will require password authorization. The password +# setting can be specified multiple times for different password profiles. +# +#password "password@read,add,control,admin" +# +# This setting specifies the permissions a user has who has not yet logged in. +# +#default_permissions "read,add,control,admin" +# +############################################################################### + + +# Database ####################################################################### +# +# An example of a database section instead of the old 'db_file' setting. +# It enables mounting other storages into the music directory. +# +#database { +# plugin "simple" +# path "~/.local/share/mpd/db" +# cache_directory "~/.local/share/mpd/cache" +#} +# +# An example of database config for a satellite setup +# +#music_directory "nfs://fileserver.local/srv/mp3" +#database { +# plugin "proxy" +# host "other.mpd.host" +# port "6600" +#} + +# Input ####################################################################### +# +input { + plugin "curl" +# proxy "proxy.isp.com:8080" +# proxy_user "user" +# proxy_password "password" +} + +# +############################################################################### + +# Audio Output ################################################################ +# +# MPD supports various audio output types, as well as playing through multiple +# audio outputs at the same time, through multiple audio_output settings +# blocks. Setting this block is optional, though the server will only attempt +# autodetection for one sound card. +# +# An example of an ALSA output: +# +#audio_output { +# type "alsa" +# name "My ALSA Device" +## device "hw:0,0" # optional +## mixer_type "hardware" # optional +## mixer_device "default" # optional +## mixer_control "PCM" # optional +## mixer_index "0" # optional +#} +audio_output { + type "pipewire" + name "PipeWire Sound Server" +} +# +# An example of an OSS output: +# +#audio_output { +# type "oss" +# name "My OSS Device" +## device "/dev/dsp" # optional +## mixer_type "hardware" # optional +## mixer_device "/dev/mixer" # optional +## mixer_control "PCM" # optional +#} +# +# An example of a shout output (for streaming to Icecast): +# +#audio_output { +# type "shout" +# encoder "vorbis" # optional +# name "My Shout Stream" +# host "localhost" +# port "8000" +# mount "/mpd.ogg" +# password "hackme" +# quality "5.0" +# bitrate "128" +# format "44100:16:1" +## protocol "icecast2" # optional +## user "source" # optional +## description "My Stream Description" # optional +## url "http://example.com" # optional +## genre "jazz" # optional +## public "no" # optional +## timeout "2" # optional +## mixer_type "software" # optional +#} +# +# An example of a recorder output: +# +#audio_output { +# type "recorder" +# name "My recorder" +# encoder "vorbis" # optional, vorbis or lame +# path "/var/lib/mpd/recorder/mpd.ogg" +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +#} +# +# An example of a httpd output (built-in HTTP streaming server): +# +#audio_output { +# type "httpd" +# name "My HTTP Stream" +# encoder "vorbis" # optional, vorbis or lame +# port "8000" +# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +# max_clients "0" # optional 0=no limit +#} +# +# An example of a pulseaudio output (streaming to a remote pulseaudio server) +# +#audio_output { +# type "pulse" +# name "My Pulse Output" +## server "remote_server" # optional +## sink "remote_server_sink" # optional +## media_role "media_role" #optional +#} +# +# An example of a winmm output (Windows multimedia API). +# +#audio_output { +# type "winmm" +# name "My WinMM output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +# or +## device "0" # optional +## mixer_type "hardware" # optional +#} +# +# An example of a wasapi output (Windows multimedia API). +# +#audio_output { +# type "wasapi" +# name "My WASAPI output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +# or +## device "0" # optional +## mixer_type "hardware" # optional +## Exclusive mode blocks all other audio source, and get best audio quality without resampling. +## exclusive "no" # optional +## Enumerate all devices in log. +## enumerate "no" # optional +#} +# +# An example of an openal output. +# +#audio_output { +# type "openal" +# name "My OpenAL output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +#} +# +# An example of an sndio output. +# +#audio_output { +# type "sndio" +# name "sndio output" +# mixer_type "hardware" +#} +# +# An example of an OS X output: +# +#audio_output { +# type "osx" +# name "My OS X Device" +## device "Built-in Output" # optional +## channel_map "-1,-1,0,1" # optional +#} +# +## Example "pipe" output: +# +#audio_output { +# type "pipe" +# name "my pipe" +# command "aplay -f cd 2>/dev/null" +## Or if you're want to use AudioCompress +# command "AudioCompress -m | aplay -f cd 2>/dev/null" +## Or to send raw PCM stream through PCM: +# command "nc example.org 8765" +# format "44100:16:2" +#} +# +## An example of a null output (for no audio output): +# +#audio_output { +# type "null" +# name "My Null Output" +# mixer_type "none" # optional +#} +# +############################################################################### + + +# Normalization automatic volume adjustments ################################## +# +# This setting specifies the type of ReplayGain to use. This setting can have +# the argument "off", "album", "track" or "auto". "auto" is a special mode that +# chooses between "track" and "album" depending on the current state of +# random playback. If random playback is enabled then "track" mode is used. +# See for +# more details about ReplayGain. +# This setting is off by default. +# +#replaygain "album" +# +############################################################################### + +# Character Encoding ########################################################## +# +# If file or directory names do not display correctly for your locale then you +# may need to modify this setting. +# +#filesystem_charset "UTF-8" +# +############################################################################### diff --git a/.config/config.kdl b/config/niri/config.kdl similarity index 69% rename from .config/config.kdl rename to config/niri/config.kdl index 21bb306..17e7215 100644 --- a/.config/config.kdl +++ b/config/niri/config.kdl @@ -4,7 +4,7 @@ input { layout "us,ru" options "grp:caps_toggle" } - repeat-delay 250 + repeat-delay 225 repeat-rate 25 // track-layout "global" numlock @@ -33,7 +33,7 @@ input { scroll-method "on-button-down" } warp-mouse-to-focus - focus-follows-mouse max-scroll-amount="50%" + focus-follows-mouse max-scroll-amount="0%" trackpoint { // off @@ -47,7 +47,7 @@ input { } } -/-output "DP-1" { +output "DP-1" { // off mode "1920x1080@165.000" scale 1.0 @@ -58,13 +58,14 @@ input { } layout { - gaps 5 - + gaps 10 + background-color "transparent" center-focused-column "never" default-column-display "normal" preset-column-widths { + proportion 0.33333 proportion 0.5 - proportion 1.0 + proportion 0.66666 } preset-window-heights { @@ -72,7 +73,7 @@ layout { proportion 1.0 } - default-column-width { proportion 0.5; } + default-column-width { proportion 1.0; } // By default focus ring and border are rendered as a solid background rectangle // behind windows. That is, they will show up through semitransparent windows. @@ -87,17 +88,17 @@ layout { // You can change how the focus ring looks. focus-ring { - // off + off width 2 // - CSS named colors: "red" // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. // active-color "#EEF7FD" - active-color "#C1D6D6" + //active-color "#EEF7FD" // foreground #C1D6D6 //background #07090B - inactive-color "#000000" + // inactive-color "#5C6871" // Changing the color space is also supported, check the wiki for more info. // // active-gradient from="#80c8ff" to="#c7ff7f" angle=45 @@ -111,11 +112,14 @@ layout { // You can also add a border. It's similar to the focus ring, but always visible. border { - off - urgent-color "#9b0000" + //off + width 4 + active-color "#25c39f" + inactive-color "#eef7fd" } shadow { + off color "#0007" } @@ -125,27 +129,29 @@ layout { // Top and bottom struts will simply add outer gaps in addition to the area occupied by // layer-shell panels and regular gaps. struts { - // left 64 - // right 64 - // top 64 - // bottom 64 - } - tab-indicator{ - // off + left 0 + right 0 + top 0 + bottom 0 } + tab-indicator { + //off + active-color "#f6db8b" + inactive-color "#8fd2f7" + urgent-color "#eef7fd" + width 5 + } insert-hint { - off - color "#ffc87f80" - gradient from="#ffbb6680" to="#ffc88080" angle=45 relative-to="workspace-view" + //off + color "#EEF7FD" } - background-color "#07090B" } overview { - zoom 0.45 + zoom 0.4 backdrop-color "#07090b" workspace-shadow { @@ -156,16 +162,22 @@ clipboard { disable-primary } cursor { - //xcursor-theme "Dot-Dark" - xcursor-size 12 + xcursor-theme "BreezeX-Black" + xcursor-size 26 hide-when-typing hide-after-inactive-ms 1000 } -spawn-at-startup "waybar" +spawn-at-startup "niri-screen-time" "-daemon" -spawn-at-startup "fnott" +spawn-at-startup "mpDris2" +spawn-at-startup "swayosd-server" +spawn-at-startup "walker" "--gapplication-service" + +spawn-at-startup "hyprwave" +spawn-at-startup "swaync" spawn-at-startup "clipse" "-listen" +spawn-at-startup "swaybg" "-i" "imgs/bafkreiax76e2p3xqoikrkbppjl4mipnaamqrgxkcfgwqtrsa3glksq644m" // To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup: // spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell" @@ -185,9 +197,9 @@ prefer-no-csd // You can change the path where screenshots are saved. // A ~ at the front will be expanded to the home directory. // The path is formatted with strftime(3) to give you the screenshot date and time. -screenshot-path "~/imgs/screenshots/screenshot from %Y-%m-%d %H-%M-%S.png" +screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d %H-%M-%S.png" //spawn-at-startup "throne" -spawn-at-startup "kitty" "sudo" "sing-box" "run" "-c" "/home/unconfer/.sing-box/sing-box-03.json" +//spawn-at-startup "kitty" "sudo" "sing-box" "run" "-c" "/home/unconfer/.sing-box/sing-box-03.json" // You can also set this to null to disable saving screenshots to disk. // screenshot-path null @@ -201,6 +213,59 @@ animations { // Slow down all animations by this factor. Values below 1 speed them up instead. slowdown 1.0 + workspace-switch { + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + } + window-open { + // duration-ms 200 + // curve "ease-out-quad" + // + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + + + } + window-close { + //duration-ms 200 + + //curve "ease-out-quad" + // + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + } + horizontal-view-movement { + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + } + + window-movement { + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + } + + window-resize { + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + } + + config-notification-open-close { + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + } + + exit-confirmation-open-close { + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + } + + screenshot-ui-open { + // duration-ms 200 + //curve "ease-out-quad" + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + } + + overview-open-close { + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + } + + recent-windows-close { + spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 + + } + } // Window rules let you adjust behavior for individual windows. @@ -223,17 +288,30 @@ window-rule { match app-id="clipse" // match is-floating=true open-maximized true -// open-floating true - tiled-state false + open-floating true + tiled-state true } window-rule { - open-maximized false - geometry-corner-radius 5 + // open-maximized false + geometry-corner-radius 10 tiled-state true clip-to-geometry true } + window-rule { + match app-id="one.alynx.showmethekey" + open-floating true + open-focused false + default-floating-position x=990 y=28 relative-to="top-left" + min-width 900 + min-height 170 + + border { + off + } +} + // Open the Firefox picture-in-picture player as floating by default. window-rule { // This app-id regular expression will work for both: @@ -254,20 +332,56 @@ window-rule { // Use this instead if you want them visible on third-party screenshot tools. // block-out-from "screencast" } +window-rule { + match title="Media viewer" + default-column-width { + proportion 0.5 + } + +} +window-rule { + match title="sudo" + + border { + active-color "#ff0100" + } +} // Example: enable rounded corners for all windows. // (This example rule is commented out with a "/-" in front.) -/-window-rule { - geometry-corner-radius 12 +window-rule { + geometry-corner-radius 10 clip-to-geometry true } layer-rule { - //clip-to-geometry true - match namespace="fnott" - geometry-corner-radius 5 + match namespace="waybar" + match at-startup=true + // Properties that apply continuously. + opacity 1.0 + // block-out-from "screen-capture" + shadow { + + off + softness 40 + spread 5 + offset x=0 y=5 + draw-behind-window true + // inactive-color "#00000064" + } + + geometry-corner-radius 20 + place-within-backdrop true } +// Put swaybg inside the overview backdrop. +layer-rule { + match namespace="^wallpaper$" + + place-within-backdrop true +} + + environment{ @@ -278,6 +392,30 @@ xwayland-satellite { } binds { + + // MOD+SHIFT+M { spawn "hyprwave-toggle visibility"; } + // MOD+M { spawn-sh "hyprwave-toggle expand"; } + + //Mod+M { spawn "hyprwave-toggle" "visibility"; } + // Media Controls + Mod+P { spawn-sh "playerctl -p mpd play-pause"; } + Mod+Period { spawn-sh "playerctl -p mpd next"; } + Mod+Comma { spawn-sh "playerctl -p mpd previous"; } + + // Theme Switching (v1.0) + // MOD+SHIFT+T { spawn-sh "hyprwave-toggle set-theme zzz"; } + + // Position Switching (v1.0) + // MOD+SHIFT+LEFT { spawn-sh "hyprwave-toggle set-position left"; } + //MOD+SHIFT+RIGHT { spawn-sh "hyprwave-toggle set-position right"; } + //MOD+SHIFT+UP { spawn-sh "hyprwave-toggle set-position top"; } + //MOD+SHIFT+DOWN { spawn-sh "hyprwave-toggle set-position bottom"; } + + + + + //ВНИМАНИЕ СЕКЦИЯ НЕЙРОСЛОПА + // Keys consist of modifiers separated by + signs, followed by an XKB key name // in the end. To find an XKB name for a particular key, you may use a program // like wev. @@ -291,29 +429,50 @@ binds { // Mod-Shift-/, which is usually the same as Mod-?, // shows a list of important hotkeys. Mod+Shift+Slash { show-hotkey-overlay; } - Super+F{ toggle-window-floating;} + Super+F{ maximize-column;} + Mod+M { spawn "hyprwave-toggle" "visibility"; } // Suggested binds for running programs: terminal, app launcher, screen locker. Mod+Q { spawn "kitty"; } - Mod+D { spawn "fuzzel"; } + //Mod+D { spawn "fuzzel"; } + + Mod+D { spawn "walker"; } + Mod+Grave repeat=false { toggle-overview; } + Mod+Shift+Grave repeat=false { spawn "kitty" "--class" "-e" "btop" ; } Super+W { spawn "kitty" "--class" "clipse" "-e" "clipse"; } - Mod+Alt+L { spawn "gtklock"; } - Mod+Shift+P{spawn "shutdown" "now";} - Mod+Shift+Alt+P{spawn "shutdown" "-" "c";} - Alt+C{spawn "hyprpicker" "-a";} + Mod+Escape { spawn "hyprlock"; } + Mod+Shift+Return { spawn "shutdown" "now"; } + Mod+Ctrl+S { screenshot-window write-to-disk=false; } + Mod+T repeat=false { spawn "swaync-client" "--toggle-panel";} + + + Mod+Ctrl+Return { spawn "reboot"; } + Mod+Shift+P{spawn "shutdown" "-c";} + Alt+I repeat=false {spawn "hyprpicker" "-a";} + // Mod+Alt+C {;} // Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc. // Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`. // For example, this is a standard bind to toggle the screen reader (orca). - Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } + // Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } // Example volume keys mappings for PipeWire & WirePlumber. + // // The allow-when-locked=true property makes them work even when the session is locked. // Using spawn-sh allows to pass multiple arguments together with the command. - XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; } - XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } - XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } - XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } +// XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; } +// XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } + // XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } + //XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + + // XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + + XF86AudioRaiseVolume { spawn "swayosd-client" "--output-volume" "5" "--max-volume" "200";} + + XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; } + + XF86AudioLowerVolume { spawn "swayosd-client" "--output-volume" "-5" "--max-volume" "200";} + Mod+Y allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } // Example brightness key mappings for brightnessctl. // You can use regular spawn with multiple arguments too (to avoid going through "sh"), @@ -326,7 +485,9 @@ binds { // or do a four-finger swipe up on a touchpad. Mod+O repeat=false { toggle-overview; } - Mod+C repeat=false { close-window; } + //Mod+Escape repeat=false { toggle-overview; } + + Mod+Shift+C repeat=false { close-window; } Mod+Left { focus-column-left; } Mod+Down { focus-window-down; } @@ -336,6 +497,10 @@ binds { Mod+J { focus-window-down; } Mod+K { focus-window-up; } Mod+L { focus-column-right; } + + + Mod+Shift+Z { focus-column-left; } + Mod+Shift+X { focus-column-right; } Mod+Ctrl+Left { move-column-left; } Mod+Ctrl+Down { move-window-down; } @@ -346,6 +511,9 @@ binds { Mod+Ctrl+K { move-window-up; } Mod+Ctrl+L { move-column-right; } + Mod+Ctrl+MouseForward { move-column-right; } + Mod+Ctrl+MouseBack { move-column-left; } + // Alternative commands that move across workspaces when reaching // the first or last window in a column. // Mod+J { focus-window-or-workspace-down; } @@ -388,6 +556,17 @@ binds { Mod+Page_Up { focus-workspace-up; } Mod+U { focus-workspace-down; } Mod+I { focus-workspace-up; } + + Mod+2 { focus-workspace-down; } + Mod+1 { focus-workspace-up; } + + Mod+Ctrl+2 { move-column-to-workspace-down; } + Mod+Ctrl+1 { move-column-to-workspace-up; } + + + Mod+Shift+1 {focus-column-left;} + Mod+Shift+2 {focus-column-right;} + Mod+Ctrl+Page_Down { move-column-to-workspace-down; } Mod+Ctrl+Page_Up { move-column-to-workspace-up; } Mod+Ctrl+U { move-column-to-workspace-down; } @@ -454,24 +633,24 @@ binds { // // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on // will all refer to the 3rd workspace. - Mod+1 { focus-workspace 1; } - Mod+2 { focus-workspace 2; } - Mod+3 { focus-workspace 3; } - Mod+4 { focus-workspace 4; } - Mod+5 { focus-workspace 5; } - Mod+6 { focus-workspace 6; } - Mod+7 { focus-workspace 7; } - Mod+8 { focus-workspace 8; } - Mod+9 { focus-workspace 9; } - Mod+Ctrl+1 { move-column-to-workspace 1; } - Mod+Ctrl+2 { move-column-to-workspace 2; } + // Mod+1 { focus-workspace 1; } + //Mod+2 { focus-workspace 2; } + //Mod+3 repeat=false { toggle-overview; } + // Mod+4 { focus-workspace 4; } + //Mod+5 { focus-workspace 5; } + //Mod+6 { focus-workspace 6; } + //Mod+7 { focus-workspace 7; } + //Mod+8 { focus-workspace 8; } + //Mod+9 { focus-workspace 9; } + //Mod+Ctrl+1 { move-column-to-workspace 1; } + //Mod+Ctrl+2 { move-column-to-workspace 2; } Mod+Ctrl+3 { move-column-to-workspace 3; } - Mod+Ctrl+4 { move-column-to-workspace 4; } - Mod+Ctrl+5 { move-column-to-workspace 5; } - Mod+Ctrl+6 { move-column-to-workspace 6; } - Mod+Ctrl+7 { move-column-to-workspace 7; } - Mod+Ctrl+8 { move-column-to-workspace 8; } - Mod+Ctrl+9 { move-column-to-workspace 9; } + //Mod+Ctrl+4 { move-column-to-workspace 4; } + //Mod+Ctrl+5 { move-column-to-workspace 5; } + //Mod+Ctrl+6 { move-column-to-workspace 6; } + //Mod+Ctrl+7 { move-column-to-workspace 7; } + //Mod+Ctrl+8 { move-column-to-workspace 8; } + //Mod+Ctrl+9 { move-column-to-workspace 9; } // Alternatively, there are commands to move just a single window: // Mod+Ctrl+1 { move-window-to-workspace 1; } @@ -486,27 +665,26 @@ binds { Mod+BracketRight { consume-or-expel-window-right; } // Consume one window from the right to the bottom of the focused column. - Mod+Comma { consume-window-into-column; } + Mod+3 { consume-window-into-column; } // Expel the bottom window from the focused column to the right. - Mod+Period { expel-window-from-column; } + Mod+4 { expel-window-from-column; } - Mod+R repeat=false { switch-preset-column-width; } + Mod+A repeat=false { switch-preset-column-width; } Mod+Shift+W { toggle-column-tabbed-display; } // Cycling through the presets in reverse order is also possible. // Mod+R { switch-preset-column-width-back; } Mod+Shift+R repeat=false { switch-preset-window-height; } Mod+Ctrl+R { reset-window-height; } - Mod+A repeat=false { maximize-column; } - Mod+Shift+A repeat=false { fullscreen-window; } + Mod+Shift+F repeat=false { fullscreen-window; } // Expand the focused column to space not taken up by other fully visible columns. // Makes the column "fill the rest of the space". Mod+Ctrl+F { expand-column-to-available-width; } - Mod+M { center-column; } + //Mod+M { center-column; } // Center all fully visible columns on screen. - Mod+Ctrl+C { center-visible-columns; } + Mod+C { center-column; } // Finer width adjustments. // This command can also: @@ -516,15 +694,16 @@ binds { // * adjust width as a percentage of screen width: "-10%" or "+10%" // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, // set-column-width "100" will make the column occupy 200 physical screen pixels. - Mod+Minus { set-column-width "-10%"; } - Mod+Equal { set-column-width "+10%"; } + Mod+Minus { set-column-width "-5%"; } + Mod+Equal { set-column-width "+5%"; } // Finer height adjustments when in column with other windows. - Mod+Shift+Minus { set-window-height "-10%"; } - Mod+Shift+Equal { set-window-height "+10%"; } + Mod+Shift+Minus { set-window-height "-5%"; } + Mod+Shift+Equal { set-window-height "+5%"; } + Mod+V { toggle-window-floating; } // Move the focused window between the floating and the tiling layout. - Mod+V { toggle-window-floating; } + //Mod+V {spawn "pavucontrol"; } Mod+Shift+V { switch-focus-between-floating-and-tiling; } // Toggle tabbed column display mode. @@ -542,7 +721,6 @@ binds { Mod+S { screenshot; } Super+Shift+S { screenshot-screen; } - Alt+Print { screenshot-window; } // Applications such as remote-desktop clients and software KVM switches may // request that niri stops processing the keyboard shortcuts defined here diff --git a/.config/nvim/.gitignore b/config/nvim/.gitignore similarity index 100% rename from .config/nvim/.gitignore rename to config/nvim/.gitignore diff --git a/.config/nvim/.neoconf.json b/config/nvim/.neoconf.json similarity index 100% rename from .config/nvim/.neoconf.json rename to config/nvim/.neoconf.json diff --git a/.config/nvim/LICENSE b/config/nvim/LICENSE similarity index 100% rename from .config/nvim/LICENSE rename to config/nvim/LICENSE diff --git a/.config/nvim/README.md b/config/nvim/README.md similarity index 100% rename from .config/nvim/README.md rename to config/nvim/README.md diff --git a/.config/nvim/init.lua b/config/nvim/init.lua similarity index 100% rename from .config/nvim/init.lua rename to config/nvim/init.lua diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json new file mode 100644 index 0000000..6ca91cc --- /dev/null +++ b/config/nvim/lazy-lock.json @@ -0,0 +1,41 @@ +{ + "LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" }, + "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" }, + "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, + "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, + "catppuccin": { "branch": "main", "commit": "234fc048de931a0e42ebcad675bf6559d75e23df" }, + "conform.nvim": { "branch": "master", "commit": "cde4da5c1083d3527776fee69536107d98dae6c9" }, + "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" }, + "grug-far.nvim": { "branch": "main", "commit": "3e72397465f774b01aa38e4fe8e6eecf23d766d9" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, + "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, + "lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" }, + "markview.nvim": { "branch": "main", "commit": "d72e1bd8634f7abad68a77ad3c6f97342c09ae0a" }, + "marp-nvim": { "branch": "main", "commit": "4f38e6ffe2f5ea260f35f7ff3e4e424b9f8bea29" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "d7b5feb6e769e995f7fcf44d92f49f811c51d10c" }, + "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, + "mini.ai": { "branch": "main", "commit": "0d3c9cf22e37b86b7a0dfbe7ef129ee7a5f4f93c" }, + "mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" }, + "mini.nvim": { "branch": "main", "commit": "68d4478920c7afdfa21c13706464e275d9ce3255" }, + "mini.pairs": { "branch": "main", "commit": "b316e68f2d242d5bd010deaab645daa27ed86297" }, + "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-lint": { "branch": "master", "commit": "8b349e822a36e9480aed96c6dd2f757f80524a35" }, + "nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" }, + "nvim-snippy": { "branch": "master", "commit": "504ab14eeb14301d9b2a858a2a6cf99ccc8d60d0" }, + "nvim-treesitter": { "branch": "main", "commit": "d97d226cfd4c00af000b3b8529261352677fc6a8" }, + "nvim-treesitter-textobjects": { "branch": "main", "commit": "7024f8687b060dd9a425bde1fa8621c896a38138" }, + "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, + "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "render-markdown.nvim": { "branch": "main", "commit": "060c911c62f995a9db4467dde6fafd699cf94d55" }, + "snacks.nvim": { "branch": "main", "commit": "eee204d690f8d8e755229ff20f63d23d48565d7c" }, + "todo-comments.nvim": { "branch": "main", "commit": "411503d3bedeff88484de572f2509c248e499b38" }, + "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, + "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, + "ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" }, + "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }, + "xkbswitch.nvim": { "branch": "master", "commit": "aae56d49db9baf0d9b9675a77da35173d8d87a30" } +} diff --git a/.config/nvim/lazyvim.json b/config/nvim/lazyvim.json similarity index 100% rename from .config/nvim/lazyvim.json rename to config/nvim/lazyvim.json diff --git a/.config/nvim/lua/config/autocmds.lua b/config/nvim/lua/config/autocmds.lua similarity index 100% rename from .config/nvim/lua/config/autocmds.lua rename to config/nvim/lua/config/autocmds.lua diff --git a/.config/nvim/lua/config/keymaps.lua b/config/nvim/lua/config/keymaps.lua similarity index 100% rename from .config/nvim/lua/config/keymaps.lua rename to config/nvim/lua/config/keymaps.lua diff --git a/.config/nvim/lua/config/lazy.lua b/config/nvim/lua/config/lazy.lua similarity index 100% rename from .config/nvim/lua/config/lazy.lua rename to config/nvim/lua/config/lazy.lua diff --git a/.config/nvim/lua/config/options.lua b/config/nvim/lua/config/options.lua similarity index 100% rename from .config/nvim/lua/config/options.lua rename to config/nvim/lua/config/options.lua diff --git a/.config/nvim/lua/plugins/example.lua b/config/nvim/lua/plugins/example.lua similarity index 100% rename from .config/nvim/lua/plugins/example.lua rename to config/nvim/lua/plugins/example.lua diff --git a/config/nvim/lua/plugins/luasnip.lua b/config/nvim/lua/plugins/luasnip.lua new file mode 100644 index 0000000..3d8d7b4 --- /dev/null +++ b/config/nvim/lua/plugins/luasnip.lua @@ -0,0 +1,7 @@ +return { + "L3MON4D3/LuaSnip", + -- follow latest release. + version = "v2.*", -- Replace by the latest released major (first number of latest release) + -- install jsregexp (optional!). + build = "make install_jsregexp", +} diff --git a/config/nvim/lua/plugins/markview.lua b/config/nvim/lua/plugins/markview.lua new file mode 100644 index 0000000..3b5b94c --- /dev/null +++ b/config/nvim/lua/plugins/markview.lua @@ -0,0 +1,4 @@ +return { + "OXY2DEV/markview.nvim", + lazy = false, +} diff --git a/config/nvim/lua/plugins/marp-nvim.lua b/config/nvim/lua/plugins/marp-nvim.lua new file mode 100644 index 0000000..c026380 --- /dev/null +++ b/config/nvim/lua/plugins/marp-nvim.lua @@ -0,0 +1,10 @@ +return { + "mpas/marp-nvim", + config = function() + require("marp").setup({ + port = 44666, + wait_for_response_timeout = 30, + wait_for_response_delay = 1, + }) + end, +} diff --git a/config/nvim/lua/plugins/nvim-snippy.lua b/config/nvim/lua/plugins/nvim-snippy.lua new file mode 100644 index 0000000..6fc2484 --- /dev/null +++ b/config/nvim/lua/plugins/nvim-snippy.lua @@ -0,0 +1,3 @@ +return { + "dcampos/nvim-snippy", +} diff --git a/config/nvim/lua/plugins/render-markdown.lua b/config/nvim/lua/plugins/render-markdown.lua new file mode 100644 index 0000000..e6100a7 --- /dev/null +++ b/config/nvim/lua/plugins/render-markdown.lua @@ -0,0 +1,9 @@ +return { + "MeanderingProgrammer/render-markdown.nvim", + dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-mini/mini.nvim" }, -- if you use the mini.nvim suite + -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.icons' }, -- if you use standalone mini plugins + -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons + ---@module 'render-markdown' + ---@type render.md.UserConfig + opts = {}, +} diff --git a/.config/nvim/lua/plugins/xkbswitch.lua b/config/nvim/lua/plugins/xkbswitch.lua similarity index 100% rename from .config/nvim/lua/plugins/xkbswitch.lua rename to config/nvim/lua/plugins/xkbswitch.lua diff --git a/.config/nvim/stylua.toml b/config/nvim/stylua.toml similarity index 100% rename from .config/nvim/stylua.toml rename to config/nvim/stylua.toml diff --git a/config/rmpc/config.ron b/config/rmpc/config.ron new file mode 100644 index 0000000..33a38f9 --- /dev/null +++ b/config/rmpc/config.ron @@ -0,0 +1,281 @@ +#![enable(implicit_some)] +#![enable(unwrap_newtypes)] +#![enable(unwrap_variant_newtypes)] +( + address: "/run/user/1000/mpd/socket", + password: None, + theme: None, + cache_dir: None, + on_song_change: None, + volume_step: 5, + max_fps: 165, + scrolloff: 0, + wrap_navigation: false, + enable_mouse: true, + scroll_amount: 1, + enable_config_hot_reload: true, + enable_lyrics_hot_reload: false, + status_update_interval_ms: 1000, + rewind_to_start_sec: None, + keep_state_on_song_change: true, + reflect_changes_to_playlist: false, + select_current_song_on_change: false, + ignore_leading_the: false, + browser_song_sort: [Disc, Track, Artist, Title], + directories_sort: SortFormat(group_by_type: true, reverse: false), + auto_open_downloads: true, + album_art: ( + method: Auto, + max_size_px: (width: 1200, height: 1200), + disabled_protocols: ["http://", "https://"], + vertical_align: Center, + horizontal_align: Center, + ), + keybinds: ( + global: { + "q": Quit, + "?": ShowHelp, + ":": CommandMode, + "oI": ShowCurrentSongInfo, + "oo": ShowOutputs, + "op": ShowDecoders, + "od": ShowDownloads, + "oP": Partition(), + "z": ToggleRepeat, + "x": ToggleRandom, + "c": ToggleConsume, + "v": ToggleSingle, + "p": TogglePause, + "s": Stop, + ">": NextTrack, + "<": PreviousTrack, + "f": SeekForward, + "b": SeekBack, + ".": VolumeUp, + ",": VolumeDown, + "": NextTab, + "gt": NextTab, + "": PreviousTab, + "gT": PreviousTab, + "1": SwitchToTab("Queue"), + "2": SwitchToTab("Directories"), + "3": SwitchToTab("Artists"), + "4": SwitchToTab("Album Artists"), + "5": SwitchToTab("Albums"), + "6": SwitchToTab("Playlists"), + "7": SwitchToTab("Search"), + "": Update, + "": Rescan, + "R": AddRandom, + }, + navigation: { + "": Close, + "": Close, + "": Confirm, + "k": Up, + "": Up, + "j": Down, + "": Down, + "h": Left, + "": Left, + "l": Right, + "": Right, + "k": PaneUp, + "": PaneUp, + "j": PaneDown, + "": PaneDown, + "h": PaneLeft, + "": PaneLeft, + "l": PaneRight, + "": PaneRight, + "K": MoveUp, + "J": MoveDown, + "": UpHalf, + "": DownHalf, + "": PageUp, + "": PageUp, + "": PageDown, + "": PageDown, + "gg": Top, + "G": Bottom, + "": Select, + "": InvertSelection, + "/": EnterSearch, + "n": NextResult, + "N": PreviousResult, + "a": Add, + "A": AddAll, + "D": Delete, + "": Rename, + "i": FocusInput, + "oi": ShowInfo, + "": ContextMenu(), + "s": Save(kind: Modal(all: false, duplicates_strategy: Ask)), + "a": Save(kind: Modal(all: true, duplicates_strategy: Ask)), + "r": Rate(), + }, + queue: { + "d": Delete, + "D": DeleteAll, + "": Play, + "C": JumpToCurrent, + "X": Shuffle, + }, + ), + search: ( + case_sensitive: false, + ignore_diacritics: false, + search_button: false, + mode: Contains, + tags: [ + (value: "any", label: "Any Tag"), + (value: "artist", label: "Artist"), + (value: "album", label: "Album"), + (value: "albumartist", label: "Album Artist"), + (value: "title", label: "Title"), + (value: "filename", label: "Filename"), + (value: "genre", label: "Genre"), + ], + ), + artists: ( + album_display_mode: SplitByDate, + album_sort_by: Date, + album_date_tags: [Date], + ), + tabs: [ + ( + name: "Queue", + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "35%", + pane: Split( + direction: Vertical, + panes: [ + ( + size: "100%", + borders: "LEFT | RIGHT | TOP", + border_symbols: Rounded, + pane: Pane(AlbumArt) + ), + ( + size: "7", + borders: "ALL", + border_symbols: Inherited(parent: Rounded, top_left: "├", top_right: "┤",), + border_title: [(kind: Text(" Lyrics "))], + border_title_alignment: Right, + pane: Pane(Lyrics) + ), + ], + ), + ), + ( + size: "65%", + pane: Split( + direction: Vertical, + panes: [ + ( + size: "3", + borders: "ALL", + border_symbols: Inherited(parent: Rounded, bottom_left: "├", bottom_right: "┤",), + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "1", + pane: Pane(Empty()) + ), + ( + size: "100%", + pane: Pane(QueueHeader()) + ), + ] + ) + ), + ( + size: "100%", + borders: "LEFT | RIGHT | BOTTOM", + border_symbols: Rounded, + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "1", + pane: Pane(Empty()) + ), + ( + size: "100%", + pane: Pane(Queue) + ), + ] + ) + ), + ], + ) + ), + ], + ), + ), + ( + name: "Directories", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Directories), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Artists", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Artists), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Album Artists", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(AlbumArtists), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Albums", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Albums), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Playlists", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Playlists), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Search", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Search), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ], +) diff --git a/config/rmpc/themes/zzz.ron b/config/rmpc/themes/zzz.ron new file mode 100644 index 0000000..696c77e --- /dev/null +++ b/config/rmpc/themes/zzz.ron @@ -0,0 +1,307 @@ +#![enable(implicit_some)] +#![enable(unwrap_newtypes)] +#![enable(unwrap_variant_newtypes)] +( + default_album_art_path: None, + format_tag_separator: " | ", + browser_column_widths: [20, 38, 42], + background_color: None, + text_color: None, + header_background_color: None, + modal_background_color: None, + modal_backdrop: false, + preview_label_style: (fg: "yellow"), + preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"), + highlighted_item_style: (fg: "blue", modifiers: "Bold"), + current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"), + borders_style: (fg: "blue"), + highlight_border_style: (fg: "blue"), + symbols: ( + song: "S", + dir: "D", + playlist: "P", + marker: "M", + ellipsis: "...", + song_style: None, + dir_style: None, + playlist_style: None, + ), + level_styles: ( + info: (fg: "green", bg: "black"), + warn: (fg: "yellow", bg: "black"), + error: (fg: "red", bg: "black"), + debug: (fg: "light_green", bg: "black"), + trace: (fg: "magenta", bg: "black"), + ), + progress_bar: ( + symbols: ["█", "█", "█", " ", "█"], + track_style: None, + elapsed_style: (fg: "green"), + thumb_style: (fg: "blue"), + use_track_when_empty: true, + ), + scrollbar: ( + symbols: ["│", "█", "▲", "▼"], + track_style: (), + ends_style: (), + thumb_style: (fg: "blue"), + ), + tab_bar: ( + active_style: (fg: "black", bg: "blue", modifiers: "Bold"), + inactive_style: (), + ), + lyrics: ( + timestamp: false + ), + browser_song_format: [ + ( + kind: Group([ + (kind: Property(Track)), + (kind: Text(" ")), + ]) + ), + ( + kind: Group([ + (kind: Property(Artist)), + (kind: Text(" - ")), + (kind: Property(Title)), + ]), + default: (kind: Property(Filename)) + ), + ], + song_table_format: [ + ( + prop: (kind: Property(Artist), + default: (kind: Text("Unknown")) + ), + label_prop: (kind: Text("Artist")), + width: "20%", + ), + ( + prop: (kind: Property(Title), + default: (kind: Text("Unknown")) + ), + label_prop: (kind: Text("Title")), + width: "35%", + ), + ( + prop: (kind: Property(Album), style: (fg: "white"), + default: (kind: Text("Unknown Album"), style: (fg: "white")) + ), + label_prop: (kind: Text("Album")), + width: "30%", + ), + ( + prop: (kind: Property(Duration), + default: (kind: Text("-")) + ), + label_prop: (kind: Text("Duration")), + width: "15%", + alignment: Right, + ), + ], + layout: Split( + direction: Vertical, + panes: [ + ( + size: "4", + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "35", + borders: "LEFT | TOP | BOTTOM", + border_symbols: Inherited(parent: Rounded, bottom_left: "├"), + pane: Component("header_left") + ), + ( + size: "100%", + borders: "ALL", + border_symbols: Inherited(parent: Rounded, top_left: "┬", top_right: "┬", bottom_left: "┴", bottom_right: "┴"), + pane: Component("header_center") + ), + ( + size: "35", + borders: "RIGHT | TOP | BOTTOM", + border_symbols: Inherited(parent: Rounded, bottom_right: "┤"), + pane: Component("header_right") + ), + ] + ) + ), + ( + pane: Pane(Tabs), + borders: "RIGHT | LEFT | BOTTOM", + border_symbols: Rounded, + size: "2", + ), + ( + pane: Pane(TabContent), + size: "100%", + ), + ( + size: "3", + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "12", + borders: "ALL", + border_symbols: Inherited(parent: Rounded, top_right: "┬", bottom_right: "┴"), + pane: Component("input_mode") + ), + ( + size: "100%", + borders: "TOP | BOTTOM | RIGHT", + border_symbols: Rounded, + border_title: [(kind: Text(" ")), (kind: Property(Status(QueueLength()))), (kind: Text(" songs / ")), (kind: Property(Status(QueueTimeTotal()))), (kind: Text(" total time "))], + border_title_alignment: Right, + pane: Component("progress_bar"), + ), + ] + ), + ), + ], + ), + components: { + "state": Pane(Property( + content: [ + (kind: Text("["), style: (fg: "yellow", modifiers: "Bold")), + (kind: Property(Status(StateV2( ))), style: (fg: "yellow", modifiers: "Bold")), + (kind: Text("]"), style: (fg: "yellow", modifiers: "Bold")), + ], align: Left, + )), + "title": Pane(Property( + content: [ + (kind: Property(Song(Title)), style: (modifiers: "Bold"), + default: (kind: Text("No Song"), style: (modifiers: "Bold"))), + ], align: Center, scroll_speed: 1 + )), + "volume": Split( + direction: Horizontal, + panes: [ + (size: "1", pane: Pane(Property(content: [(kind: Text(""))]))), + (size: "100%", pane: Pane(Volume(kind: Slider(symbols: (filled: "─", thumb: "●", track: "─"))))), + (size: "3", pane: Pane(Property(content: [(kind: Property(Status(Volume)), style: (fg: "blue"))], align: Right))), + (size: "2", pane: Pane(Property(content: [(kind: Text("%"), style: (fg: "blue"))]))), + ] + ), + "elapsed_and_bitrate": Pane(Property( + content: [ + (kind: Property(Status(Elapsed))), + (kind: Text(" / ")), + (kind: Property(Status(Duration))), + (kind: Group([ + (kind: Text(" (")), + (kind: Property(Status(Bitrate))), + (kind: Text(" kbps)")), + ])), + ], + align: Left, + )), + "artist_and_album": Pane(Property( + content: [ + (kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"), + default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))), + (kind: Text(" - ")), + (kind: Property(Song(Album)), default: (kind: Text("Unknown Album"))), + ], align: Center, scroll_speed: 1 + )), + "states": Split( + direction: Horizontal, + panes: [ + ( + size: "1", + pane: Pane(Empty()) + ), + ( + size: "100%", + pane: Pane(Property(content: [(kind: Property(Status(InputBuffer())), style: (fg: "blue"), align: Left)])) + ), + ( + size: "6", + pane: Pane(Property(content: [ + (kind: Text("["), style: (fg: "blue", modifiers: "Bold")), + (kind: Property(Status(RepeatV2( + on_label: "z", + off_label: "z", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + )))), + (kind: Property(Status(RandomV2( + on_label: "x", + off_label: "x", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + )))), + (kind: Property(Status(ConsumeV2( + on_label: "c", + off_label: "c", + oneshot_label: "c", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + oneshot_style: (fg: "red", modifiers: "Dim"), + )))), + (kind: Property(Status(SingleV2( + on_label: "v", + off_label: "v", + oneshot_label: "v", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + oneshot_style: (fg: "red", modifiers: "Bold"), + )))), + (kind: Text("]"), style: (fg: "blue", modifiers: "Bold")), + ], + align: Right + )) + ), + ] + ), + "input_mode": Pane(Property( + content: [ + (kind: Transform(Replace(content: (kind: Property(Status(InputMode()))), replacements: [ + (match: "Normal", replace: (kind: Text(" NORMAL "), style: (fg: "black", bg: "blue"))), + (match: "Insert", replace: (kind: Text(" INSERT "), style: (fg: "black", bg: "green"))), + ]))) + ], align: Center + )), + "header_left": Split( + direction: Vertical, + panes: [ + (size: "1", pane: Component("state")), + (size: "1", pane: Component("elapsed_and_bitrate")), + ] + ), + "header_center": Split( + direction: Vertical, + panes: [ + (size: "1", pane: Component("title")), + (size: "1", pane: Component("artist_and_album")), + ] + ), + "header_right": Split( + direction: Vertical, + panes: [ + (size: "1", pane: Component("volume")), + (size: "1", pane: Component("states")), + ] + ), + "progress_bar": Split( + direction: Horizontal, + panes: [ + ( + size: "1", + pane: Pane(Empty()) + ), + ( + size: "100%", + pane: Pane(ProgressBar) + ), + ( + size: "1", + pane: Pane(Empty()) + ), + ] + ) + }, +) diff --git a/config/swaync/config.json b/config/swaync/config.json new file mode 100644 index 0000000..565fea5 --- /dev/null +++ b/config/swaync/config.json @@ -0,0 +1,99 @@ +{ + "$schema": "/etc/xdg/swaync/configSchema.json", + "ignore-gtk-theme": true, + "positionX": "right", + "positionY": "top", + "layer": "overlay", + "control-center-layer": "top", + "layer-shell": true, + "layer-shell-cover-screen": true, + "cssPriority": "user", + "control-center-margin-top": 0, + "control-center-margin-bottom": 0, + "control-center-margin-right":0, + "control-center-margin-left": 0, + "notification-2fa-action": true, + "notification-inline-replies": false, + "notification-body-image-height": 100, + "notification-body-image-width": 200, + "timeout": 10, + "timeout-low": 5, + "timeout-critical": 0, + "fit-to-screen": true, + "relative-timestamps": true, + "control-center-width": 500, + "control-center-height": 600, + "notification-window-width": 500, + "keyboard-shortcuts": true, + "notification-grouping": true, + "image-visibility": "when-available", + "transition-time": 200, + "hide-on-clear": false, + "hide-on-action": true, + "text-empty": "No Notifications", + "script-fail-notify": true, + "scripts": { + "example-script": { + "exec": "echo 'Do something...'", + "urgency": "Normal" + }, + "example-action-script": { + "exec": "echo 'Do something actionable!'", + "urgency": "Normal", + "run-on": "action" + } + }, + "notification-visibility": { + "example-name": { + "state": "muted", + "urgency": "Low", + "app-name": "Spotify" + } + }, + "widgets": [ + "inhibitors", + "title", + "dnd", + "notifications" + ], + "widget-config": { + "notifications": { + "vexpand": true + }, + "inhibitors": { + "text": "Inhibitors", + "button-text": "Clear All", + "clear-all-button": true + }, + "title": { + "text": "Notifications", + "clear-all-button": true, + "button-text": "Clear All" + }, + "dnd": { + "text": "Do Not Disturb" + }, + "label": { + "max-lines": 5, + "text": "Label Text" + }, + "mpris": { + "blacklist": [], + "autohide": false, + "show-album-art": "always", + "loop-carousel": false + }, + "buttons-grid": { + "buttons-per-row": 7, + "actions": [ + { + "label": "直", + "type": "toggle", + "active": true, + "command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'", + "update-command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'" + } + ] + } + } +} diff --git a/config/swaync/style.css b/config/swaync/style.css new file mode 100644 index 0000000..e82145b --- /dev/null +++ b/config/swaync/style.css @@ -0,0 +1,569 @@ +:root { + --cc-bg: #07090b; + --noti-border-color: #eef7fd; + --noti-bg: #07090b; + --noti-bg-alpha: 0.0; + --noti-bg-darker: #07090b; + --noti-bg-hover: #07090b; + --noti-bg-focus: #07090b; + --noti-close-bg: #1f2830; + --noti-close-bg-hover: #444446; + --text-color: #eef7fd; + --text-color-disabled: rgb(150, 150, 150); + --bg-selected: #1f2830; + --notification-icon-size: 64px; + --notification-app-icon-size: calc(var(--notification-icon-size) / 3); + --notification-group-icon-size: 32px; + --border: 4px solid var(--noti-border-color); + --border-radius: 10px; + --notification-shadow: 0 rgba(0, 0, 0, 0); + --font-size-body: 15px; + --font-size-summary: 16px; + /* Deprecated variables (because of their typos). Keeeping them around for backwards compatibility. */ + --hover-tranistion: background 0.15s ease-out-quad; + --group-collapse-tranistion: opacity 100ms ease-out-quad; + --hover-transition: var(--hover-tranistion); + --group-collapse-transition: var(--group-collapse-tranistion); +} + +/* Fallback for older CSS themes */ +/* Fallback for older CSS themes +@define-color cc-bg #07090b; +@define-color noti-border-color #eef7fd; +@define-color noti-bg rgba(48, 48, 48, 0.8); +@define-color noti-bg-opaque rgb(48, 48, 48); +@define-color noti-bg-darker rgb(38, 38, 38); +@define-color noti-bg-hover rgb(56, 56, 56); +@define-color noti-bg-hover-opaque rgb(56, 56, 56); +@define-color noti-bg-focus rgba(68, 68, 68, 0.6); +@define-color noti-close-bg rgba(255, 255, 255, 0.1); +@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15); +@define-color text-color rgb(255, 255, 255); +@define-color text-color-disabled rgb(150, 150, 150); +@define-color bg-selected rgb(0, 128, 255); +*/ +notificationwindow, +blankwindow, +blankwindow { + background: #07090b; +} + +.close-button { + /* The notification Close Button */ + background: var(--noti-close-bg); + color: var(--text-color); + text-shadow: none; + padding: 0; + border-radius: 20%; + margin-top: 8px; + margin-right: 8px; + box-shadow: none; + border: none; + min-width: 24px; + min-height: 24px; +} + +.close-button:hover { + box-shadow: none; + background: var(--noti-close-bg-hover); + transition: var(--hover-tranistion); + border: none; +} + +.notification-row { + background: none; + outline: none; +} + +.notification-row:focus { + background: var(--noti-bg-focus); +} + +.notification-row .notification-background { + padding: 6px 12px; +} + +.notification-row .notification-background .notification { + /* The actual notification */ + border-radius: var(--border-radius); + border: var(--border); + padding: 0; + transition: var(--hover-tranistion); + background: rgba(var(--noti-bg), var(--noti-bg-alpha)); +} + +.notification-row .notification-background .notification.low { + /* Low Priority Notification */ +} + +.notification-row .notification-background .notification.normal { + /* Normal Priority Notification */ +} + +.notification-row .notification-background .notification.critical { + /* Critical Priority Notification */ +} + +.notification-row .notification-background .notification .notification-default-action { + /* The large action that also displays the notification summary and body */ + padding: 10px; + margin: 0; + box-shadow: none; + background: #07090b; + border: none; + color: var(--text-color); + transition: var(--hover-tranistion); + border-radius: var(--border-radius); +} + +.notification-row .notification-background .notification .notification-default-action:hover { + -gtk-icon-filter: none; + background: var(--noti-bg-hover); +} + +.notification-row .notification-background .notification .notification-default-action:not(:only-child) { + /* When alternative actions are visible */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content { + background: #07090b; + border-radius: var(--border-radius); + padding: 0; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .image { + /* Notification Primary Image */ + -gtk-icon-filter: none; + -gtk-icon-size: var(--notification-icon-size); + border-radius: 20px; + /* Size in px */ + margin: 10px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .app-icon { + /* Notification app icon (only visible when the primary image is set) */ + -gtk-icon-filter: none; + -gtk-icon-size: var(--notification-app-icon-size); + -gtk-icon-shadow: 0 1px 4px black; + margin: 5px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box label { + /* Fixes base GTK 4 CSS setting a filter of opacity 50% for some odd reason */ + filter: none; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .summary { + /* Notification summary/title */ + font-size: var(--font-size-summary); + font-weight: bold; + background: #07090b; + color: var(--text-color); + text-shadow: none; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .time { + /* Notification time-ago */ + font-size: var(--font-size-summary); + font-weight: bold; + background: #07090b; + color: var(--text-color); + text-shadow: none; + margin-right: 30px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body { + /* Notification body */ + font-size: var(--font-size-body); + font-weight: normal; + background: #07090b; + color: var(--text-color); + text-shadow: none; + margin: 10px; + padding: 10px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content progressbar { + /* The optional notification progress bar */ + margin-top: 20px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .body-image { + /* The "extra" optional bottom notification image */ + margin-top: 4px; + background-color: white; + -gtk-icon-filter: none; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply { + /* The inline reply section */ + margin-top: 4px; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-entry { + background: var(--noti-bg-darker); + color: var(--text-color); + caret-color: var(--text-color); + border: var(--border); + border-radius: var(--border-radius); +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button { + margin-left: 4px; + background: rgba(var(--noti-bg), var(--noti-bg-alpha)); + border: var(--border); + border-radius: var(--border-radius); + color: var(--text-color); +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:disabled { + background: initial; + color: var(--text-color-disabled); + border: var(--border); + border-color: #07090b; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:hover { + background: var(--noti-bg-hover); +} + +.notification-row .notification-background .notification .notification-alt-actions { + background: none; + border-bottom-left-radius: var(--border-radius); + border-bottom-right-radius: var(--border-radius); + padding: 4px; +} + +.notification-row .notification-background .notification .notification-action { + /* The alternative actions below the default action */ + margin: 4px; + padding: 0; +} + +.notification-row .notification-background .notification .notification-action>button { + border-radius: var(--border-radius); + color: var(--text-color); +} + +.notification-group { + /* Styling only for Grouped Notifications */ + transition: opacity 200ms ease-in-out; + /* The groups close button */ +} + +.notification-group:focus { + background: var(--noti-bg-focus); +} + +.notification-group.low { + /* Low Priority Group */ +} + +.notification-group.normal { + /* Low Priority Group */ +} + +.notification-group.critical { + /* Low Priority Group */ +} + +.notification-group .notification-group-close-button .close-button { + margin: 20px 20px; +} + +.notification-group .notification-group-buttons, +.notification-group .notification-group-headers { + margin: 0 16px; + color: var(--text-color); +} + +.notification-group .notification-group-headers { + /* Notification Group Headers */ +} + +.notification-group .notification-group-headers .notification-group-icon { + color: var(--text-color); + -gtk-icon-size: var(--notification-group-icon-size); +} + +.notification-group .notification-group-headers .notification-group-header { + color: var(--text-color); +} + +.notification-group .notification-group-buttons { + /* Notification Group Buttons */ +} + +.notification-group.collapsed { + /* When another group is expanded, lower the opacity of the collapsed ones */ +} + +.notification-group.collapsed.not-expanded { + opacity: 1.0; +} + +.notification-group.collapsed .notification-row .notification { + background-color: rgba(var(--noti-bg), 1); +} + +.notification-group.collapsed .notification-row:not(:last-child) { + /* Top notification in stack */ + /* Set lower stacked notifications opacity to 0 */ +} + +.notification-group.collapsed .notification-row:not(:last-child) .notification-action, +.notification-group.collapsed .notification-row:not(:last-child) .notification-default-action { + opacity: 0; +} + +.notification-group.collapsed:hover .notification-row:not(:only-child) .notification { + background-color: var(--noti-bg-hover); +} + +.control-center { + /* The Control Center which contains the old notifications + widgets */ + background: var(--cc-bg); + color: var(--text-color); + border-radius: var(--border-radius); + padding: 10px; + margin: 10px; + border: 4px solid var(--noti-border-color); +} + +.control-center .control-center-list-placeholder { + /* The placeholder when there are no notifications */ + opacity: 1.0; +} + +.control-center .control-center-list { + /* List of notifications */ + background: #07090b; +} + +.control-center .control-center-list .notification { + box-shadow: var(--notification-shadow); +} + +.control-center .control-center-list .notification .notification-default-action, +.control-center .control-center-list .notification .notification-action { + transition: var(--group-collapse-tranistion), var(--hover-tranistion); +} + +.control-center .control-center-list .notification .notification-default-action:hover, +.control-center .control-center-list .notification .notification-action:hover { + background-color: var(--noti-bg-hover); +} + +.blank-window { + /* Window behind control center and on all other monitors */ + background: transparent; +} + +.floating-notifications { + background: transparent; +} + +.floating-notifications .notification { + box-shadow: none; +} + +/*** Widgets ***/ +.widget { + margin: 8px; + padding: 8px; + border-radius: var(--border-radius); +} + +/* Title widget */ +.widget-title>label { + margin-right: 8px; + font-size: 1.5rem; +} + +.widget-title>button { + margin-left: 8px; + border-radius: var(--border-radius); +} + +/* DND widget */ +.widget-dnd label { + color: var(--text-color); + margin-right: 8px; + font-size: 1.1rem; +} + +.widget-dnd switch { + border-radius: var(--border-radius); + margin-left: 8px; +} + +.widget-dnd switch slider { + border-radius: var(--border-radius); +} + +/* Label widget */ +.widget-label>label { + font-size: 1.1rem; +} + +/* Mpris widget */ +:root { + --mpris-album-art-overlay: rgba(0, 0, 0, 0.55); + --mpris-button-hover: rgba(0, 0, 0, 0.5); + --mpris-album-art-icon-size: 96px; + --mpris-album-art-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75); +} + +.widget-mpris { + padding: 0; + /* The parent to all players */ +} + +.widget-mpris .widget-mpris-player { + margin: 16px 20px; + border-radius: var(--border-radius); + box-shadow: var(--mpris-album-art-shadow); +} + +.widget-mpris .widget-mpris-player .mpris-background { + filter: blur(10px); +} + +.widget-mpris .widget-mpris-player .mpris-overlay { + padding: 16px; + background-color: var(--mpris-album-art-overlay); +} + +.widget-mpris .widget-mpris-player .mpris-overlay button:hover { + /* The media player buttons (play, pause, next, etc...) */ + background: var(--noti-bg-hover); +} + +.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-album-art { + border-radius: var(--border-radius); + box-shadow: var(--mpris-album-art-shadow); + -gtk-icon-size: var(--mpris-album-art-icon-size); +} + +.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-title { + font-weight: bold; + font-size: 1.25rem; +} + +.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-subtitle { + font-size: 1.1rem; +} + +.widget-mpris .widget-mpris-player .mpris-overlay>box>button { + /* Change player control buttons */ +} + +.widget-mpris .widget-mpris-player .mpris-overlay>box>button:hover { + background-color: var(--mpris-button-hover); +} + +.widget-mpris>box>button { + /* Change player side buttons */ +} + +.widget-mpris>box>button:disabled { + /* Change player side buttons insensitive */ +} + +/* Buttons widget */ +.widget-buttons-grid flowboxchild>button { + border-radius: var(--border-radius); +} + +.widget-buttons-grid flowboxchild>button.toggle:checked { + /* style given to the active toggle button */ +} + +/* Menubar widget */ +.widget-menubar { + /* The revealer buttons */ + /* .AnyName { Name defined in config after # + background-color: rgba(var(--noti-bg), 1.0); + padding: 8px; + margin: 8px; + border-radius: 12px; + } + + .AnyName>button { + background: transparent; + border: none; + } + + .AnyName>button:hover { + background-color: var(--noti-bg-hover); + } */ +} + +.widget-menubar>.menu-button-bar { + /* The left button container */ + /* The right button container */ + /* The left and right button container */ +} + +.widget-menubar>.menu-button-bar>.start { + margin-left: 8px; +} + +.widget-menubar>.menu-button-bar>.end { + margin-right: 8px; +} + +.widget-menubar>.menu-button-bar>.widget-menubar-container button { + border-radius: var(--border-radius); + margin: 0 4px; +} + +.widget-menubar>revealer * { + margin-top: 8px; +} + +.widget-menubar>revealer * button { + border-radius: var(--border-radius); + margin: 8px; + margin-top: 0; +} + +.widget-menubar>revealer * button:last-child { + margin-bottom: 0; +} + +/* Volume widget */ +:root { + --widget-volume-row-icon-size: 24px; +} + +/* Each row app icon */ +.widget-volume row image { + -gtk-icon-size: var(--widget-volume-row-icon-size); +} + +.per-app-volume { + background-color: var(--noti-bg-alt); + margin: 8px; + margin-bottom: 0; + border-radius: var(--border-radius); +} + +/* Slider widget */ +.widget-slider label { + font-size: inherit; +} + +/* Backlight widget */ +/* Inhibitors widget */ +.widget-inhibitors>label { + margin-right: 8px; + font-size: 1.5rem; +} + +.widget-inhibitors>button { + margin-left: 8px; + border-radius: var(--border-radius); +} diff --git a/config/swayosd/style.css b/config/swayosd/style.css new file mode 100644 index 0000000..2461c74 --- /dev/null +++ b/config/swayosd/style.css @@ -0,0 +1,51 @@ +window#osd { + border-radius: 20px; + border: 4px solid #eef7fd; + background: #07090b; + + #container { + margin: 16px; + } + + image, + label { + color: #eef7fd; + } + + progressbar:disabled, + image:disabled { + opacity: 1.0; + } + + progressbar, + segmentedprogress { + min-height: 6px; + border-radius: 999px; + background: #d2dee7; + border: none; + } + + trough, + segment { + min-height: inherit; + border-radius: inherit; + border: none; + background: #07090b; + } + + progress, + segment.active { + min-height: inherit; + border-radius: inherit; + border: none; + background: #eef7fd; + } + + segment { + margin-left: 8px; + + &:first-child { + margin-left: 0; + } + } +} diff --git a/config/termusic/tui.toml b/config/termusic/tui.toml new file mode 100644 index 0000000..d89a490 --- /dev/null +++ b/config/termusic/tui.toml @@ -0,0 +1,172 @@ +version = "2" +com = "same" + +[behavior] +quit_server_on_exit = false +confirm_quit = false + +[coverart] +align = "bottom right" +size_scale = 0 +hidden = false + +[style.library] +foreground_color = "Foreground" +background_color = "Background" +border_color = "Green" +highlight_color = "LightWhite" +highlight_symbol = ">" + +[style.playlist] +foreground_color = "Foreground" +background_color = "Background" +border_color = "Green" +highlight_color = "LightWhite" +highlight_symbol = "!" +current_track_symbol = "!" +use_loop_mode_symbol = true + +[style.lyric] +foreground_color = "Foreground" +background_color = "Background" +border_color = "Green" + +[style.progress] +foreground_color = "LightBlack" +background_color = "Background" +border_color = "Green" + +[style.important_popup] +foreground_color = "Yellow" +background_color = "Reset" +border_color = "Yellow" + +[style.fallback] +foreground_color = "Foreground" +background_color = "Reset" +border_color = "Blue" +highlight_color = "LightYellow" + +[theme] +name = "Native" +author = "Termusic Developers" + +[theme.primary] +background = "native" +foreground = "native" + +[theme.cursor] +text = "native" +cursor = "native" + +[theme.normal] +black = "native" +red = "native" +green = "native" +yellow = "native" +blue = "native" +magenta = "native" +cyan = "native" +white = "native" + +[theme.bright] +black = "native" +red = "native" +green = "native" +yellow = "native" +blue = "native" +magenta = "native" +cyan = "native" +white = "native" + +[keys] +escape = "escape" +quit = "q" + +[keys.view] +view_library = "1" +view_database = "2" +view_podcasts = "3" +open_config = "shift+C" +open_help = "control+h" + +[keys.navigation] +up = "k" +down = "j" +left = "h" +right = "l" +goto_top = "g" +goto_bottom = "shift+G" + +[keys.global_player] +toggle_pause = "space" +next_track = "n" +previous_track = "shift+N" +volume_up = "+" +volume_down = "-" +seek_forward = "f" +seek_backward = "b" +speed_up = "control+f" +speed_down = "control+b" +toggle_prefetch = "control+g" +save_playlist = "control+s" + +[keys.global_lyric] +adjust_offset_forwards = "shift+F" +adjust_offset_backwards = "shift+B" +cycle_frames = "shift+T" + +[keys.library] +load_track = "l" +load_dir = "shift+L" +delete = "d" +yank = "y" +paste = "p" +cycle_root = "o" +add_root = "a" +remove_root = "shift+A" +search = "/" +youtube_search = "s" +open_tag_editor = "t" + +[keys.playlist] +delete = "d" +delete_all = "shift+D" +shuffle = "r" +cycle_loop_mode = "m" +play_selected = "l" +search = "/" +swap_up = "shift+K" +swap_down = "shift+J" +add_random_songs = "s" +add_random_album = "shift+S" + +[keys.database] +add_selected = "l" +add_all = "shift+L" + +[keys.podcast] +search = "s" +mark_played = "m" +mark_all_played = "shift+M" +refresh_feed = "r" +refresh_all_feeds = "shift+R" +download_episode = "d" +delete_local_episode = "shift+D" +delete_feed = "x" +delete_all_feeds = "shift+X" + +[keys.adjust_cover_art] +move_left = "control+shift+arrowleft" +move_right = "control+shift+arrowright" +move_up = "control+shift+arrowup" +move_down = "control+shift+arrowdown" +increase_size = "control+shift+pageup" +decrease_size = "control+shift+pagedown" +toggle_hide = "control+shift+end" + +[keys.config] +save = "control+s" + +[ytdlp] +extra_args = "" diff --git a/.config/waybar/config.jsonc b/config/waybar/config.jsonc similarity index 100% rename from .config/waybar/config.jsonc rename to config/waybar/config.jsonc diff --git a/.config/waybar/config01.jsonc b/config/waybar/config01.jsonc similarity index 100% rename from .config/waybar/config01.jsonc rename to config/waybar/config01.jsonc diff --git a/.config/waybar/style.css b/config/waybar/style.css similarity index 100% rename from .config/waybar/style.css rename to config/waybar/style.css diff --git a/.config/waybar/style01.css b/config/waybar/style01.css similarity index 100% rename from .config/waybar/style01.css rename to config/waybar/style01.css diff --git a/config/yazi/yazi.toml b/config/yazi/yazi.toml new file mode 100644 index 0000000..0af17bc --- /dev/null +++ b/config/yazi/yazi.toml @@ -0,0 +1,7 @@ +[mgr] +linemode = "size" +mouse_events = ["click", "scroll", "touch", "move", "drag"] +[opener] +edit = [ + { run = "neovide %s", block = true, for = "unix" }, +] diff --git a/local/share/hyprwave/style.css b/local/share/hyprwave/style.css new file mode 100644 index 0000000..1da6755 --- /dev/null +++ b/local/share/hyprwave/style.css @@ -0,0 +1,1055 @@ +/* ======================================== + HyprWave - OCTANE Theme + Pure black and white with bright white accents + ======================================== */ + +:root { + /* Background Colors - Deep Black */ + --bg-primary: #07090b; + --bg-secondary: #07090b; + --bg-album-cover: #07090b; + --bg-album-secondary: #07090b; + + /* Button Colors - Default (Prev/Next) - Soft White */ + --btn-default: #eef7fd; + --btn-default-secondary: #eef7fd; + + --btn-default-active: #82d1b9; + --btn-default-hover: #d2dee7; + --btn-default-hover-secondary: #d2dee7; + + /* Button Colors - Play/Pause - Bright White */ + --btn-play: #eef7fd; + --btn-play-secondary: #eef7fd; + --btn-play-hover: #d2dee7; + --btn-play-hover-secondary: #d2dee7; + --btn-play-active: #82d1b9; + --btn-play-active-secondary: #82d1b9; + + /* Button Colors - Expand - Cool White */ + --btn-expand: #eef7fd; + --btn-expand-secondary: #eef7fd; + --btn-expand-hover: #d2dee7; + --btn-expand-hover-secondary: #d2dee7; + --btn-expand-active: #82d1b9; + --btn-expand-active-secondary: #82d1b9; + + /* Progress Bar Colors */ + --progress-bg: #1f2830; + --progress-fill-start: #ff0100; + --progress-fill-end: #eef7fd; + + /* Slider Handle Colors */ + --handle-color: #eef7fd; + --handle-hover: #eef7fd; + --handle-border: #8fd2f7; + --handle-shadow: #8fd2f7; + + /* Text Colors - Bright white on pure black */ + --text-primary: #eef7fd; + --text-secondary: #d2dee7; + --text-tertiary: #d2dee7; + --text-muted: #33424f; + + /* Border Colors */ + --border-primary: #eef7fd; + --border-button: rgba(100, 100, 100, 0); + --border-button-hover: rgba(120, 120, 120, 0); + --border-play: rgba(255, 255, 255, 0); + --border-play-hover: rgba(255, 255, 255, 0); + --border-expand: rgba(235, 235, 240, 0); + --border-expand-hover: rgba(245, 245, 250, 0); + + /* Shadow Colors */ + --shadow-default: rgba(0, 0, 0, 0); + --shadow-button: rgba(0, 0, 0, 0); + --shadow-play: rgba(255, 255, 255, 0); + --shadow-play-hover: rgba(255, 255, 255, 0); + --shadow-expand: rgba(235, 235, 240, 0); + --shadow-expand-hover: rgba(245, 245, 250, 0); + --shadow-focus: rgba(255, 255, 255, 0); + + /* Spacing & Sizes */ + --border-radius-container: 20px; + --border-radius-section: 20px; + --border-radius-album: 4px; + --border-radius-button: 50%; + --border-radius-progress: 4px; + + --padding-container: 20px; + --padding-section: 20px; +} + +/* Visualizer bars - pure white with strong glow */ + +/* ======================================== + Base Styles + ======================================== */ + +/* GTK4 transparent window - CRITICAL for compositor transparency */ +window { + background-color: transparent; +} + +/* Ensure ALL window-level elements are transparent */ + + +/* Main container - transparent */ +.main-container { + background: transparent; +} + +/* ======================================== + Control Container (Vertical Bar) + ======================================== */ + +.control-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-container); + border: 10px solid var(--border-primary); + ; + + padding: var(--padding-container); + margin: 0; +} + +/* ======================================== + Control Container (Horizontal Bar) + For Top/Bottom Layouts + ======================================== */ + +.control-container-horizontal { + /* Match the vertical style exactly for consistency */ + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-container); + /* Keeps the pill shape */ + border: 4px solid var(--border-primary); + + /* Horizontal padding is critical here to prevent buttons + from touching the rounded edges */ + padding: 8px 24px; + margin: 0; +} + +/* ======================================== + Expanded Section (Album Details Card) + ======================================== */ + +.expanded-section { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + padding: var(--padding-section); + margin: 0; + margin-top: 4px; + /* Reduced spacing from control bar */ + + +} + +/* ======================================== + Expanded Section (Horizontal Layout) + For Top/Bottom Layouts + ======================================== */ + +.expanded-section-horizontal { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + + + /* Slightly different padding/margin to look good below/above the bar */ + padding: var(--padding-section); + margin-top: 2px; + /* Adds gap between control bar and this panel */ + margin-bottom: 2px; + + /* Ensure it doesn't get too squeezed */ + min-width: 300px; +} + +/* Album cover */ +.album-cover { + background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary)); + border-radius: var(--border-radius-album); + border: 4px solid var(--border-button); + box-shadow: 0 4px 16px var(--shadow-button); +} + +/* ======================================== + Text Styles + ======================================== */ + +/* Source label (e.g., "Spotify") */ +.source-label { + color: var(--text-muted); + font-size: 11px; + font-weight: 500; + margin-top: 8px; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +/* Track title */ +.track-title { + color: var(--text-primary); + font-size: 14px; + font-weight: 600; + margin-top: 4px; +} + +/* Artist label */ +.artist-label { + color: var(--text-secondary); + font-size: 12px; + font-weight: 500; + margin-top: 2px; +} + +/* Time remaining */ +.time-remaining { + color: var(--text-tertiary); + font-size: 12px; + font-weight: 500; + margin-top: 2px; +} + +/* ======================================== + Progress Bar - FIXED FOR GTK4 + ======================================== */ + +.track-progress { + min-height: 4px; + margin-top: 8px; + margin-bottom: 4px; +} + +/* The background track */ +.track-progress trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* The filled progress portion - GTK4 specific */ +.track-progress progress { + background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end)); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* GTK4 also needs this for the fill bar to show */ +progressbar trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +progressbar progress { + background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end)); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* ======================================== + Control Buttons - FIXED ROUNDED SHAPE + ======================================== */ + +/* All control buttons - base styles */ +.control-button { + padding: 0; + + /* Add margin to compensate for removed border */ + margin: 1.5px; + /* Same as the old border width */ + + min-width: 44px; + min-height: 44px; + + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + + border: none; + box-shadow: + inset 0 0 0 1.5px var(--border-button), + 0 4px 16px var(--shadow-button), + inset 0 1px 1px rgba(255, 255, 255, 0.2); + + border-radius: 50%; +} + +.control-button:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); + border-color: var(--border-button-hover); + box-shadow: + 0 6px 20px var(--shadow-button), + inset 0 1px 1px rgba(255, 255, 255, 0.25); + transform: translateY(-1px); +} + +.control-button:active { + transform: scale(0.96); + box-shadow: + 0 2px 8px var(--shadow-button), + inset 0 2px 4px rgba(0, 0, 0, 0.2); +} + +/* ======================================== + Play/Pause Button (Blue) + ======================================== */ + +.play-button { + background: linear-gradient(135deg, var(--btn-play), var(--btn-play-secondary)); + border-color: var(--border-play); + box-shadow: + 0 4px 16px var(--shadow-play), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +.play-button:hover { + background: linear-gradient(135deg, var(--btn-play-hover), var(--btn-play-hover-secondary)); + border-color: var(--border-play-hover); + box-shadow: + 0 6px 20px var(--shadow-play-hover), + inset 0 1px 1px rgba(255, 255, 255, 0.4); +} + +.play-button:active { + background: linear-gradient(135deg, var(--btn-play-active), var(--btn-play-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-play), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + +/* ======================================== + Expand Button (Purple) + ======================================== */ + +.expand-button { + background: linear-gradient(135deg, var(--btn-expand), var(--btn-expand-secondary)); + border-color: var(--border-expand); + box-shadow: + 0 4px 16px var(--shadow-expand), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +.expand-button:hover { + background: linear-gradient(135deg, var(--btn-expand-hover), var(--btn-expand-hover-secondary)); + border-color: var(--border-expand-hover); + box-shadow: + 0 6px 20px var(--shadow-expand-hover), + inset 0 1px 1px rgba(255, 255, 255, 0.4); +} + +.expand-button:active { + background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-expand), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + +/* ======================================== + Previous/Next Buttons + ======================================== */ + +.prev-button, +.next-button { + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); +} + +.prev-button:hover, +.next-button:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); +} + +/* ======================================== + Focus & Accessibility + ======================================== */ + +button { + outline: none; +} + +button:focus { + outline: none; + box-shadow: + 0 0 0 3px var(--shadow-focus), + 0 4px 16px var(--shadow-play), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +/* ======================================== + Notification Styles + ======================================== */ + +.notification-window { + background: transparent; +} + +.notification-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + padding: 10px 12px; + /* Reduced from 12px to 10px vertical padding */ + min-width: 280px; + /* Reduced from 320px */ + max-width: 300px; + /* Added max-width */ +} + +.notification-album { + background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary)); + border-radius: var(--border-radius-album); + border: 1px solid var(--border-button); + margin: 5px; +} + +.notification-header { + color: var(--text-muted); + font-size: 10px; + /* Reduced from 11px */ + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 6px; + /* Reduced from 8px */ +} + +.notification-song { + color: var(--text-primary); + font-size: 13px; + /* Reduced from 14px */ + font-weight: 600; + line-height: 1.2; + /* Added for tighter spacing */ +} + +.notification-artist { + color: var(--text-secondary); + font-size: 11px; + /* Reduced from 12px */ + font-weight: 500; + line-height: 1.2; + /* Added for tighter spacing */ +} + +/* ======================================== + Volume Control Styles + ======================================== */ + +.volume-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + padding: 12px; + margin: 0px; +} + +.volume-icon { + min-width: 20px; + min-height: 20px; +} + +.volume-percentage { + color: var(--text-primary); + font-size: 13px; + font-weight: 600; + min-width: 40px; +} + +/* Volume slider - similar to progress bar but with different colors */ +.volume-slider { + min-height: 24px; + min-width: 24px; +} + +/* The background track */ +.volume-slider trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 6px; + min-width: 6px; +} + +/* The filled portion */ +.volume-slider progress { + background: linear-gradient(90deg, var(--btn-default), var(--btn-default-secondary)); + border-radius: var(--border-radius-progress); + min-height: 6px; + min-width: 6px; +} + +/* The slider handle */ +.volume-slider slider { + min-height: 16px; + min-width: 16px; + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + border: 2px solid var(--border-button); + border-radius: 50%; + +} + +.volume-slider slider:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); + border-color: var(--border-button-hover); + transform: scale(1.1); +} + +.volume-slider slider:active { + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + transform: scale(0.95); +} + +/* GTK4 specific for vertical sliders */ +.volume-slider.vertical trough { + min-width: 6px; +} + +.volume-slider.vertical progress { + min-width: 6px; +} + + +/* ======================================== + Visualizer Bars - Idle Mode Animation + ======================================== */ + +/* Container padding to keep bars inside control bar edges */ +.visualizer-container { + padding: 0px; + /* 5px padding on left/right keeps bars inside */ + padding-bottom: 1px; + /* Small bottom padding to align with control bar bottom */ + border-radius: 0 0 12px 12px; +} + +Smooth control bar height transitions for idle mode */ .control-container-horizontal { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Smooth button fade transitions */ +.control-button { + transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1), + opacity 0.3s ease-in-out; +} + +/* Ensure overlay respects size changes */ +overlay { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Vertical Display (for vertical layouts) */ +.vertical-display-container { + background: transparent; + padding: 8px 4px; +} + +.vertical-display-label { + font-family: 'IosevkaTerm Nerd Font', monospace; + font-size: 28px; + font-weight: bold; + color: white; + /* Match visualizer bar color */ + letter-spacing: 0px; + line-height: 1.2; +} +/* CRITICAL: Disable CSS transitions during JavaScript animations */ +.no-transition, +.no-transition * { + transition: none !important; + animation: none !important; +} + +/* ======================================== + Base Styles + ======================================== */ + +/* GTK4 transparent window - CRITICAL for compositor transparency */ +window, +window.background, +.hyprwave-window { + background-color: transparent; + background-image: none; +} + +/* Ensure ALL window-level elements are transparent */ +window>* { + background: transparent; +} + +/* Main container - transparent */ +.main-container { + background: transparent; + +} + +/* ======================================== + Control Container (Vertical Bar) + ======================================== */ + +.control-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-container); + border: 4px solid var(--border-primary); + + padding: var(--padding-container); + margin: 0; +} + +/* ======================================== + Control Container (Horizontal Bar) + For Top/Bottom Layouts + ======================================== */ + +.control-container-horizontal { + /* Match the vertical style exactly for consistency */ + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-container); + /* Keeps the pill shape */ + border: 4px solid var(--border-primary); + + /* Horizontal padding is critical here to prevent buttons + from touching the rounded edges */ + padding: 8px 24px; + margin: 0; + width: 150%; + height: auto; +} + +/* ======================================== + Expanded Section (Album Details Card) + ======================================== */ + +.expanded-section { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + padding: var(--padding-section); + margin: 20px 50px 20px 50px; + margin-top: 4px; + /* Reduced spacing from control bar */ + + +} + +/* ======================================== + Expanded Section (Horizontal Layout) + For Top/Bottom Layouts + ======================================== */ + +.expanded-section-horizontal { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + + + /* Slightly different padding/margin to look good below/above the bar */ + padding: var(--padding-section); + margin-top: 2px; + /* Adds gap between control bar and this panel */ + margin-bottom: 2px; + + /* Ensure it doesn't get too squeezed */ + min-width: 300px; +} + +/* Album cover */ +.album-cover { + background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary)); + border-radius: var(--border-radius-album); + border: 1px solid var(--border-button); + box-shadow: 0 4px 16px var(--shadow-button); +} + +/* ======================================== + Text Styles + ======================================== */ + +/* Source label (e.g., "Spotify") */ +.source-label { + color: var(--text-muted); + font-size: 11px; + font-weight: 500; + margin-top: 8px; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +/* Track title */ +.track-title { + color: var(--text-primary); + font-size: 14px; + font-weight: 600; + margin-top: 4px; +} + +/* Artist label */ +.artist-label { + color: var(--text-secondary); + font-size: 12px; + font-weight: 500; + margin-top: 2px; +} + +/* Time remaining */ +.time-remaining { + color: var(--text-tertiary); + font-size: 12px; + font-weight: 500; + margin-top: 2px; +} + +/* ======================================== + Progress Bar - FIXED FOR GTK4 + ======================================== */ + +.track-progress { + min-height: 4px; + margin-top: 8px; + margin-bottom: 4px; +} + +/* The background track */ +.track-progress trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* The filled progress portion - GTK4 specific */ +.track-progress progress { + background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end)); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* GTK4 also needs this for the fill bar to show */ +progressbar trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +progressbar progress { + background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end)); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* ======================================== + Control Buttons - FIXED ROUNDED SHAPE + ======================================== */ + +/* All control buttons - base styles */ +.control-button { + padding: 0; + + /* Add margin to compensate for removed border */ + margin: 1.5px; + /* Same as the old border width */ + + min-width: 44px; + min-height: 44px; + + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + + border: none; + box-shadow: + inset 0 0 0 1.5px var(--border-button), + 0 4px 16px var(--shadow-button), + inset 0 1px 1px rgba(255, 255, 255, 0.2); + + border-radius: 50%; +} + +.control-button:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); + border-color: var(--border-button-hover); + box-shadow: + 0 6px 20px var(--shadow-button), + inset 0 1px 1px rgba(255, 255, 255, 0.25); + transform: translateY(-1px); +} + +.control-button:active { + transform: scale(0.96); + box-shadow: + 0 2px 8px var(--shadow-button), + inset 0 2px 4px rgba(0, 0, 0, 0.2); +} + +/* ======================================== + Play/Pause Button (Blue) + ======================================== */ + +.play-button { + background: linear-gradient(135deg, var(--btn-play), var(--btn-play-secondary)); + border-color: var(--border-play); + box-shadow: + 0 4px 16px var(--shadow-play), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +.play-button:hover { + background: linear-gradient(135deg, var(--btn-play-hover), var(--btn-play-hover-secondary)); + border-color: var(--border-play-hover); + box-shadow: + 0 6px 20px var(--shadow-play-hover), + inset 0 1px 1px rgba(255, 255, 255, 0.4); +} + +.play-button:active { + background: linear-gradient(135deg, var(--btn-play-active), var(--btn-play-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-play), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + +/* ======================================== + Expand Button (Purple) + ======================================== */ + +.expand-button { + background: linear-gradient(135deg, var(--btn-expand), var(--btn-expand-secondary)); + border-color: var(--border-expand); + box-shadow: + 0 4px 16px var(--shadow-expand), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +.expand-button:hover { + background: linear-gradient(135deg, var(--btn-expand-hover), var(--btn-expand-hover-secondary)); + border-color: var(--border-expand-hover); + box-shadow: + 0 6px 20px var(--shadow-expand-hover), + inset 0 1px 1px rgba(255, 255, 255, 0.4); +} + +.expand-button:active { + background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-expand), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + +/* ======================================== + Previous/Next Buttons + ======================================== */ + +.prev-button, +.next-button { + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); +} + +.prev-button:hover, +.next-button:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); +} + +.prev-button:active { + background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-expand), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + +.next-button:active { + background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-expand), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + + + +/* ======================================== + Focus & Accessibility + ======================================== */ + +button { + outline: none; +} + +button:focus { + outline: none; + box-shadow: + 0 0 0 3px var(--shadow-focus), + 0 4px 16px var(--shadow-play), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +/* ======================================== + Notification Styles + ======================================== */ + +.notification-window { + background: transparent; +} + +.notification-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + padding: 10px 12px; + /* Reduced from 12px to 10px vertical padding */ + min-width: 280px; + /* Reduced from 320px */ + max-width: 300px; + /* Added max-width */ +} + +.notification-album { + background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary)); + border-radius: var(--border-radius-album); + border: 1px solid var(--border-button); +} + +.notification-header { + color: var(--text-muted); + font-size: 10px; + /* Reduced from 11px */ + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 6px; + /* Reduced from 8px */ +} + +.notification-song { + color: var(--text-primary); + font-size: 13px; + /* Reduced from 14px */ + font-weight: 600; + line-height: 1.2; + /* Added for tighter spacing */ +} + +.notification-artist { + color: var(--text-secondary); + font-size: 11px; + /* Reduced from 12px */ + font-weight: 500; + line-height: 1.2; + /* Added for tighter spacing */ +} + +/* ======================================== + Volume Control Styles + ======================================== */ + +.volume-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 1px solid var(--border-primary); + padding: 12px; + margin: 0px; +} + +.volume-icon { + min-width: 20px; + min-height: 20px; +} + +.volume-percentage { + color: var(--text-primary); + font-size: 13px; + font-weight: 600; + min-width: 40px; +} + +/* Volume slider - similar to progress bar but with different colors */ +.volume-slider { + min-height: 24px; + min-width: 24px; +} + +/* The background track */ +.volume-slider trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 6px; + min-width: 6px; +} + +/* The filled portion */ +.volume-slider progress { + background: linear-gradient(90deg, var(--btn-default), var(--btn-default-secondary)); + border-radius: var(--border-radius-progress); + min-height: 6px; + min-width: 6px; +} + +/* The slider handle */ +.volume-slider slider { + min-height: 16px; + min-width: 16px; + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + border: 2px solid var(--border-button); + border-radius: 50%; + +} + +.volume-slider slider:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); + border-color: var(--border-button-hover); + transform: scale(1.1); +} + +.volume-slider slider:active { + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + transform: scale(0.95); +} + +/* GTK4 specific for vertical sliders */ +.volume-slider.vertical trough { + min-width: 6px; +} + +.volume-slider.vertical progress { + min-width: 6px; +} + + +/* ======================================== + Visualizer Bars - Idle Mode Animation + ======================================== */ + +/* Container padding to keep bars inside control bar edges */ +.visualizer-container { + padding: 0px; + /* 5px padding on left/right keeps bars inside */ + padding-bottom: 1px; + /* Small bottom padding to align with control bar bottom */ + border-radius: 0 0 12px 12px; +} + +Smooth control bar height transitions for idle mode */ .control-container-horizontal { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Smooth button fade transitions */ +.control-button { + transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1), + opacity 0.3s ease-in-out; +} + +/* Ensure overlay respects size changes */ +overlay { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Vertical Display (for vertical layouts) */ +.vertical-display-container { + background: transparent; + padding: 8px 4px; +} + +.vertical-display-label { + font-family: 'VT323', monospace; + font-size: 28px; + font-weight: bold; + color: white; + /* Match visualizer bar color */ + letter-spacing: 0px; + line-height: 1.2; +} diff --git a/local/share/hyprwave/themes/zzz.css b/local/share/hyprwave/themes/zzz.css new file mode 100644 index 0000000..ce49fab --- /dev/null +++ b/local/share/hyprwave/themes/zzz.css @@ -0,0 +1,555 @@ +/* ======================================== + HyprWave - OCTANE Theme + Pure black and white with bright white accents + ======================================== */ + +:root { + /* Background Colors - Deep Black */ + --bg-primary: #07090b; + --bg-secondary: #07090b; + --bg-album-cover: #07090b; + --bg-album-secondary: #07090b; + + /* Button Colors - Default (Prev/Next) - Soft White */ + --btn-default: #eef7fd; + --btn-default-secondary: #eef7fd; + + --btn-default-active: #82d1b9; + --btn-default-hover: #d2dee7; + --btn-default-hover-secondary: #d2dee7; + + /* Button Colors - Play/Pause - Bright White */ + --btn-play: #eef7fd; + --btn-play-secondary: #eef7fd; + --btn-play-hover: #d2dee7; + --btn-play-hover-secondary: #d2dee7; + --btn-play-active: #82d1b9; + --btn-play-active-secondary: #82d1b9; + + /* Button Colors - Expand - Cool White */ + --btn-expand: #eef7fd; + --btn-expand-secondary: #eef7fd; + --btn-expand-hover: #d2dee7; + --btn-expand-hover-secondary: #d2dee7; + --btn-expand-active: #82d1b9; + --btn-expand-active-secondary: #82d1b9; + + /* Progress Bar Colors */ + --progress-bg: #1f2830; + --progress-fill-start: #ff0100; + --progress-fill-end: #eef7fd; + + /* Slider Handle Colors */ + --handle-color: #eef7fd; + --handle-hover: #eef7fd; + --handle-border: #8fd2f7; + --handle-shadow: #8fd2f7; + + /* Text Colors - Bright white on pure black */ + --text-primary: #eef7fd; + --text-secondary: #d2dee7; + --text-tertiary: #d2dee7; + --text-muted: #33424f; + + /* Border Colors */ + --border-primary: #eef7fd; + --border-button: rgba(100, 100, 100, 0); + --border-button-hover: rgba(120, 120, 120, 0); + --border-play: rgba(255, 255, 255, 0); + --border-play-hover: rgba(255, 255, 255, 0); + --border-expand: rgba(235, 235, 240, 0); + --border-expand-hover: rgba(245, 245, 250, 0); + + /* Shadow Colors */ + --shadow-default: rgba(0, 0, 0, 0); + --shadow-button: rgba(0, 0, 0, 0); + --shadow-play: rgba(255, 255, 255, 0); + --shadow-play-hover: rgba(255, 255, 255, 0); + --shadow-expand: rgba(235, 235, 240, 0); + --shadow-expand-hover: rgba(245, 245, 250, 0); + --shadow-focus: rgba(255, 255, 255, 0); + + /* Spacing & Sizes */ + --border-radius-container: 20px; + --border-radius-section: 20px; + --border-radius-album: 4px; + --border-radius-button: 50%; + --border-radius-progress: 4px; + + --padding-container: 20px; + --padding-section: 20px; +} + +/* Visualizer bars - pure white with strong glow */ + +/* ======================================== + Base Styles + ======================================== */ + +/* GTK4 transparent window - CRITICAL for compositor transparency */ +window { + background-color: transparent; +} + +/* Ensure ALL window-level elements are transparent */ + + +/* Main container - transparent */ +.main-container { + background: transparent; +} + +/* ======================================== + Control Container (Vertical Bar) + ======================================== */ + +.control-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-container); + border: 10px solid var(--border-primary); + ; + + padding: var(--padding-container); + margin: 0; +} + +/* ======================================== + Control Container (Horizontal Bar) + For Top/Bottom Layouts + ======================================== */ + +.control-container-horizontal { + /* Match the vertical style exactly for consistency */ + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-container); + /* Keeps the pill shape */ + border: 4px solid var(--border-primary); + + /* Horizontal padding is critical here to prevent buttons + from touching the rounded edges */ + padding: 8px 24px; + margin: 0; +} + +/* ======================================== + Expanded Section (Album Details Card) + ======================================== */ + +.expanded-section { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + padding: var(--padding-section); + margin: 0; + margin-top: 4px; + /* Reduced spacing from control bar */ + + +} + +/* ======================================== + Expanded Section (Horizontal Layout) + For Top/Bottom Layouts + ======================================== */ + +.expanded-section-horizontal { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + + + /* Slightly different padding/margin to look good below/above the bar */ + padding: var(--padding-section); + margin-top: 2px; + /* Adds gap between control bar and this panel */ + margin-bottom: 2px; + + /* Ensure it doesn't get too squeezed */ + min-width: 300px; +} + +/* Album cover */ +.album-cover { + background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary)); + border-radius: var(--border-radius-album); + border: 4px solid var(--border-button); + box-shadow: 0 4px 16px var(--shadow-button); +} + +/* ======================================== + Text Styles + ======================================== */ + +/* Source label (e.g., "Spotify") */ +.source-label { + color: var(--text-muted); + font-size: 11px; + font-weight: 500; + margin-top: 8px; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +/* Track title */ +.track-title { + color: var(--text-primary); + font-size: 14px; + font-weight: 600; + margin-top: 4px; +} + +/* Artist label */ +.artist-label { + color: var(--text-secondary); + font-size: 12px; + font-weight: 500; + margin-top: 2px; +} + +/* Time remaining */ +.time-remaining { + color: var(--text-tertiary); + font-size: 12px; + font-weight: 500; + margin-top: 2px; +} + +/* ======================================== + Progress Bar - FIXED FOR GTK4 + ======================================== */ + +.track-progress { + min-height: 4px; + margin-top: 8px; + margin-bottom: 4px; +} + +/* The background track */ +.track-progress trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* The filled progress portion - GTK4 specific */ +.track-progress progress { + background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end)); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* GTK4 also needs this for the fill bar to show */ +progressbar trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +progressbar progress { + background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end)); + border-radius: var(--border-radius-progress); + min-height: 4px; +} + +/* ======================================== + Control Buttons - FIXED ROUNDED SHAPE + ======================================== */ + +/* All control buttons - base styles */ +.control-button { + padding: 0; + + /* Add margin to compensate for removed border */ + margin: 1.5px; + /* Same as the old border width */ + + min-width: 44px; + min-height: 44px; + + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + + border: none; + box-shadow: + inset 0 0 0 1.5px var(--border-button), + 0 4px 16px var(--shadow-button), + inset 0 1px 1px rgba(255, 255, 255, 0.2); + + border-radius: 50%; +} + +.control-button:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); + border-color: var(--border-button-hover); + box-shadow: + 0 6px 20px var(--shadow-button), + inset 0 1px 1px rgba(255, 255, 255, 0.25); + transform: translateY(-1px); +} + +.control-button:active { + transform: scale(0.96); + box-shadow: + 0 2px 8px var(--shadow-button), + inset 0 2px 4px rgba(0, 0, 0, 0.2); +} + +/* ======================================== + Play/Pause Button (Blue) + ======================================== */ + +.play-button { + background: linear-gradient(135deg, var(--btn-play), var(--btn-play-secondary)); + border-color: var(--border-play); + box-shadow: + 0 4px 16px var(--shadow-play), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +.play-button:hover { + background: linear-gradient(135deg, var(--btn-play-hover), var(--btn-play-hover-secondary)); + border-color: var(--border-play-hover); + box-shadow: + 0 6px 20px var(--shadow-play-hover), + inset 0 1px 1px rgba(255, 255, 255, 0.4); +} + +.play-button:active { + background: linear-gradient(135deg, var(--btn-play-active), var(--btn-play-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-play), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + +/* ======================================== + Expand Button (Purple) + ======================================== */ + +.expand-button { + background: linear-gradient(135deg, var(--btn-expand), var(--btn-expand-secondary)); + border-color: var(--border-expand); + box-shadow: + 0 4px 16px var(--shadow-expand), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +.expand-button:hover { + background: linear-gradient(135deg, var(--btn-expand-hover), var(--btn-expand-hover-secondary)); + border-color: var(--border-expand-hover); + box-shadow: + 0 6px 20px var(--shadow-expand-hover), + inset 0 1px 1px rgba(255, 255, 255, 0.4); +} + +.expand-button:active { + background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary)); + box-shadow: + 0 2px 10px var(--shadow-expand), + inset 0 2px 4px rgba(0, 0, 0, 0.15); +} + +/* ======================================== + Previous/Next Buttons + ======================================== */ + +.prev-button, +.next-button { + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); +} + +.prev-button:hover, +.next-button:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); +} + +/* ======================================== + Focus & Accessibility + ======================================== */ + +button { + outline: none; +} + +button:focus { + outline: none; + box-shadow: + 0 0 0 3px var(--shadow-focus), + 0 4px 16px var(--shadow-play), + inset 0 1px 1px rgba(255, 255, 255, 0.3); +} + +/* ======================================== + Notification Styles + ======================================== */ + +.notification-window { + background: transparent; +} + +.notification-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + padding: 10px 12px; + /* Reduced from 12px to 10px vertical padding */ + min-width: 280px; + /* Reduced from 320px */ + max-width: 300px; + /* Added max-width */ +} + +.notification-album { + background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary)); + border-radius: var(--border-radius-album); + border: 1px solid var(--border-button); + margin: 5px; +} + +.notification-header { + color: var(--text-muted); + font-size: 10px; + /* Reduced from 11px */ + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 6px; + /* Reduced from 8px */ +} + +.notification-song { + color: var(--text-primary); + font-size: 13px; + /* Reduced from 14px */ + font-weight: 600; + line-height: 1.2; + /* Added for tighter spacing */ +} + +.notification-artist { + color: var(--text-secondary); + font-size: 11px; + /* Reduced from 12px */ + font-weight: 500; + line-height: 1.2; + /* Added for tighter spacing */ +} + +/* ======================================== + Volume Control Styles + ======================================== */ + +.volume-container { + background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary)); + border-radius: var(--border-radius-section); + border: 4px solid var(--border-primary); + padding: 12px; + margin: 0px; +} + +.volume-icon { + min-width: 20px; + min-height: 20px; +} + +.volume-percentage { + color: var(--text-primary); + font-size: 13px; + font-weight: 600; + min-width: 40px; +} + +/* Volume slider - similar to progress bar but with different colors */ +.volume-slider { + min-height: 24px; + min-width: 24px; +} + +/* The background track */ +.volume-slider trough { + background: var(--progress-bg); + border-radius: var(--border-radius-progress); + min-height: 6px; + min-width: 6px; +} + +/* The filled portion */ +.volume-slider progress { + background: linear-gradient(90deg, var(--btn-default), var(--btn-default-secondary)); + border-radius: var(--border-radius-progress); + min-height: 6px; + min-width: 6px; +} + +/* The slider handle */ +.volume-slider slider { + min-height: 16px; + min-width: 16px; + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + border: 2px solid var(--border-button); + border-radius: 50%; + +} + +.volume-slider slider:hover { + background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary)); + border-color: var(--border-button-hover); + transform: scale(1.1); +} + +.volume-slider slider:active { + background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary)); + transform: scale(0.95); +} + +/* GTK4 specific for vertical sliders */ +.volume-slider.vertical trough { + min-width: 6px; +} + +.volume-slider.vertical progress { + min-width: 6px; +} + + +/* ======================================== + Visualizer Bars - Idle Mode Animation + ======================================== */ + +/* Container padding to keep bars inside control bar edges */ +.visualizer-container { + padding: 0px; + /* 5px padding on left/right keeps bars inside */ + padding-bottom: 1px; + /* Small bottom padding to align with control bar bottom */ + border-radius: 0 0 12px 12px; +} + +Smooth control bar height transitions for idle mode */ .control-container-horizontal { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Smooth button fade transitions */ +.control-button { + transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1), + opacity 0.3s ease-in-out; +} + +/* Ensure overlay respects size changes */ +overlay { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Vertical Display (for vertical layouts) */ +.vertical-display-container { + background: transparent; + padding: 8px 4px; +} + +.vertical-display-label { + font-family: 'IosevkaTerm Nerd Font', monospace; + font-size: 28px; + font-weight: bold; + color: white; + /* Match visualizer bar color */ + letter-spacing: 0px; + line-height: 1.2; +} diff --git a/resolved.conf b/resolved.conf deleted file mode 100644 index 7883697..0000000 --- a/resolved.conf +++ /dev/null @@ -1,45 +0,0 @@ -# This file is part of systemd. -# -# systemd is free software; you can redistribute it and/or modify it under the -# terms of the GNU Lesser General Public License as published by the Free -# Software Foundation; either version 2.1 of the License, or (at your option) -# any later version. -# -# Entries in this file show the compile time defaults. Local configuration -# should be created by either modifying this file (or a copy of it placed in -# /etc/ if the original file is shipped in /usr/), or by creating "drop-ins" in -# the /etc/systemd/resolved.conf.d/ directory. The latter is generally -# recommended. Defaults can be restored by simply deleting the main -# configuration file and all drop-ins located in /etc/. -# -# Use 'systemd-analyze cat-config systemd/resolved.conf' to display the full config. -# -# See resolved.conf(5) for details. - -[Resolve] -# Some examples of DNS servers which may be used for DNS= and FallbackDNS=: -# Cloudflare: 1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com 2606:4700:4700::1001#cloudflare-dns.com - Google: 8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google -Quad9: 9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.quad9.net 2620:fe::9#dns.quad9.net -# DNS0: 193.110.81.0#dns0.eu 185.253.5.0#dns0.eu 2a0f:fc80::#dns0.eu 2a0f:fc81::#dns0.eu -# -# Using DNS= configures global DNS servers and does not suppress link-specific -# configuration. Parallel requests will be sent to per-link DNS servers -# configured automatically by systemd-networkd.service(8), NetworkManager(8), or -# similar management services, or configured manually via resolvectl(1). See -# resolved.conf(5) and systemd-resolved(8) for more details. -DNS=8.8.8.8 -#FallbackDNS=9.9.9.9#dns.quad9.net 2620:fe::9#dns.quad9.net 1.1.1.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com 8.8.8.8#dns.google 2001:4860:4860::8888#dns.google -Domains=~. -DNSSEC=no -#DNSOverTLS=no -#MulticastDNS=yes -LLMNR=no -#Cache=yes -#CacheFromLocalhost=no -#DNSStubListener=yes -#DNSStubListenerExtra= -#ReadEtcHosts=yes -#ResolveUnicastSingleLabel=no -#StaleRetentionSec=0 -#RefuseRecordTypes= diff --git a/.config/user-dirs.dirs b/user-dirs.dirs similarity index 80% rename from .config/user-dirs.dirs rename to user-dirs.dirs index 4e057e9..c4d1132 100644 --- a/.config/user-dirs.dirs +++ b/user-dirs.dirs @@ -4,12 +4,12 @@ # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an # absolute path. No other format is supported. -# -XDG_DESKTOP_DIR="$HOME/" +# +XDG_DESKTOP_DIR="$HOME/desk" XDG_DOWNLOAD_DIR="$HOME/dwnlds" -XDG_TEMPLATES_DIR="$HOME/" +XDG_TEMPLATES_DIR="$HOME/templ" XDG_PUBLICSHARE_DIR="$HOME/" XDG_DOCUMENTS_DIR="$HOME/docs" -XDG_MUSIC_DIR="$HOME/" -XDG_PICTURES_DIR="$HOME/pics" +XDG_MUSIC_DIR="$HOME/mus" +XDG_PICTURES_DIR="$HOME/imgs" XDG_VIDEOS_DIR="$HOME/vids" diff --git a/zen-mods-export.json b/zen-mods-export.json deleted file mode 100644 index 5026117..0000000 --- a/zen-mods-export.json +++ /dev/null @@ -1,345 +0,0 @@ -{ - "f7c71d9a-bce2-420f-ae44-a64bd92975ab": { - "id": "f7c71d9a-bce2-420f-ae44-a64bd92975ab", - "name": "Better Unloaded Tabs", - "description": "Makes unloaded tabs easier to notice by making them greyscale and transparent.", - "homepage": "https://github.com/Felkazz/zen-browser-better-unloaded-tabs", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/f7c71d9a-bce2-420f-ae44-a64bd92975ab/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/f7c71d9a-bce2-420f-ae44-a64bd92975ab/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/f7c71d9a-bce2-420f-ae44-a64bd92975ab/image.png", - "author": "Felkazz", - "version": "1.0.1", - "tags": [], - "createdAt": "2024-10-12", - "updatedAt": "2025-01-26", - "enabled": true - }, - "d8b79d4a-6cba-4495-9ff6-d6d30b0e94fe": { - "id": "d8b79d4a-6cba-4495-9ff6-d6d30b0e94fe", - "name": "Better Active Tab", - "description": "Adds a bright line next to the active tab to better highlight it.", - "homepage": "https://github.com/HliasOuzounis/zen-browser-better-active-tab-indicator", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/d8b79d4a-6cba-4495-9ff6-d6d30b0e94fe/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/d8b79d4a-6cba-4495-9ff6-d6d30b0e94fe/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/d8b79d4a-6cba-4495-9ff6-d6d30b0e94fe/image.png", - "author": "HliasOuzounis", - "version": "1.0.3", - "tags": [ - "tabs" - ], - "createdAt": "2024-09-07", - "updatedAt": "2025-01-26", - "enabled": true - }, - "0c3d77bf-44fc-47a6-a183-39205dfa5f7e": { - "id": "0c3d77bf-44fc-47a6-a183-39205dfa5f7e", - "name": "Hidden Reset Button", - "description": "Hide the reset button behind the tab icon unless hovered.", - "homepage": "", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/0c3d77bf-44fc-47a6-a183-39205dfa5f7e/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/0c3d77bf-44fc-47a6-a183-39205dfa5f7e/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/0c3d77bf-44fc-47a6-a183-39205dfa5f7e/image.png", - "author": "AlexCookieDev", - "version": "1.0.0", - "tags": [], - "createdAt": "2024-12-20", - "updatedAt": "2025-01-26", - "enabled": true - }, - "4ab93b88-151c-451b-a1b7-a1e0e28fa7f8": { - "id": "4ab93b88-151c-451b-a1b7-a1e0e28fa7f8", - "name": "No Sidebar Scrollbar", - "description": "This theme removes the Sidebar Scrollbar while retaining the scroll functionality.", - "homepage": "https://github.com/mally8/zen-browser-no-sidebar-scrollbar", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/4ab93b88-151c-451b-a1b7-a1e0e28fa7f8/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/4ab93b88-151c-451b-a1b7-a1e0e28fa7f8/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/4ab93b88-151c-451b-a1b7-a1e0e28fa7f8/image.png", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/4ab93b88-151c-451b-a1b7-a1e0e28fa7f8/preferences.json", - "author": "mally8", - "version": "1.0.8", - "tags": [ - "sidebar", - "scrollbar" - ], - "createdAt": "2024-09-01", - "updatedAt": "2025-05-22", - "enabled": true - }, - "72f8f48d-86b9-4487-acea-eb4977b18f21": { - "id": "72f8f48d-86b9-4487-acea-eb4977b18f21", - "name": "Better CtrlTab Panel", - "description": "Re-style and add customization options for the CtrlTab panel.", - "homepage": "https://github.com/psu/zen-mods", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/72f8f48d-86b9-4487-acea-eb4977b18f21/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/72f8f48d-86b9-4487-acea-eb4977b18f21/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/72f8f48d-86b9-4487-acea-eb4977b18f21/image.png", - "author": "psu", - "version": "1.0.1", - "tags": [], - "createdAt": "2025-03-28", - "updatedAt": "2025-05-22", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/72f8f48d-86b9-4487-acea-eb4977b18f21/preferences.json", - "enabled": true - }, - "906c6915-5677-48ff-9bfc-096a02a72379": { - "id": "906c6915-5677-48ff-9bfc-096a02a72379", - "name": "Floating Status Bar", - "description": "Mod for Zen Browser that detaches the status bar from the bottom left corner of the browser window.", - "homepage": "https://github.com/AmirhBeigi/zen-floating-statusbar/", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/906c6915-5677-48ff-9bfc-096a02a72379/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/906c6915-5677-48ff-9bfc-096a02a72379/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/906c6915-5677-48ff-9bfc-096a02a72379/image.png", - "author": "AmirhBeigi", - "version": "1.0.0", - "tags": [], - "createdAt": "2024-10-06", - "updatedAt": "2025-01-26", - "enabled": true - }, - "4a222d82-2803-4ed2-a390-90abfce4f195": { - "id": "4a222d82-2803-4ed2-a390-90abfce4f195", - "name": "Back Fwd Always Hidden", - "description": "Back and forward buttons will always be hidden. Useful if your mouse has the relevant buttons", - "homepage": "", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/4a222d82-2803-4ed2-a390-90abfce4f195/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/4a222d82-2803-4ed2-a390-90abfce4f195/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/4a222d82-2803-4ed2-a390-90abfce4f195/image.png", - "author": "jean06560", - "version": "1.0.0", - "tags": [], - "createdAt": "2025-03-06", - "updatedAt": "2025-03-07", - "enabled": true - }, - "c45c4894-d6bd-47fc-997a-0c4d015334f1": { - "id": "c45c4894-d6bd-47fc-997a-0c4d015334f1", - "name": "No pinned tab reset btn", - "description": "Hides the reset button that appears when hovering over pinned tabs.", - "homepage": "https://github.com/spicybackend/zen-browser-no-pinned-url-reset", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/c45c4894-d6bd-47fc-997a-0c4d015334f1/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/c45c4894-d6bd-47fc-997a-0c4d015334f1/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/c45c4894-d6bd-47fc-997a-0c4d015334f1/image.png", - "author": "spicybackend", - "version": "1.0.0", - "tags": [], - "createdAt": "2024-12-12", - "updatedAt": "2025-01-26", - "enabled": true - }, - "03a8e7ef-cf00-4f41-bf24-a90deeafc9db": { - "id": "03a8e7ef-cf00-4f41-bf24-a90deeafc9db", - "name": "Zen Colored Picker", - "description": "Adds the rainbow color pad to the theme picker", - "homepage": "https://github.com/Nimit1705/zen-colored-picker", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/03a8e7ef-cf00-4f41-bf24-a90deeafc9db/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/03a8e7ef-cf00-4f41-bf24-a90deeafc9db/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/03a8e7ef-cf00-4f41-bf24-a90deeafc9db/image.png", - "author": "Nimit1705", - "version": "2.0.1", - "tags": [], - "createdAt": "2025-02-23", - "updatedAt": "2025-07-15", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/03a8e7ef-cf00-4f41-bf24-a90deeafc9db/preferences.json", - "enabled": true - }, - "c8d9e6e6-e702-4e15-8972-3596e57cf398": { - "id": "c8d9e6e6-e702-4e15-8972-3596e57cf398", - "name": "Zen Back Forward", - "description": "Hide Back and Forward button when you don't need them", - "homepage": "", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/c8d9e6e6-e702-4e15-8972-3596e57cf398/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/c8d9e6e6-e702-4e15-8972-3596e57cf398/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/c8d9e6e6-e702-4e15-8972-3596e57cf398/image.png", - "author": "KiKaraage", - "version": "1.0.0", - "tags": [], - "createdAt": "2024-09-03", - "updatedAt": "2025-01-26", - "enabled": true - }, - "b0f635d7-c3bf-4709-af68-4712f0e5b2e5": { - "id": "b0f635d7-c3bf-4709-af68-4712f0e5b2e5", - "name": "Cleaner Bookmark Menu", - "description": "Remove unnecessary buttons from the toolbar bookmarks button.", - "homepage": "https://github.com/Pkcarreno/cleaner-bookmark-menu", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/b0f635d7-c3bf-4709-af68-4712f0e5b2e5/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/b0f635d7-c3bf-4709-af68-4712f0e5b2e5/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/b0f635d7-c3bf-4709-af68-4712f0e5b2e5/image.png", - "author": "Pkcarreno", - "version": "1.0.0", - "tags": [], - "createdAt": "2025-02-17", - "updatedAt": "2025-02-23", - "enabled": true - }, - "a6335949-4465-4b71-926c-4a52d34bc9c0": { - "id": "a6335949-4465-4b71-926c-4a52d34bc9c0", - "name": "Better Find Bar", - "description": "Improves the find bar, making it floating with theme match and customization.", - "homepage": "https://github.com/RobotoSkunk/zen-better-findbar", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/a6335949-4465-4b71-926c-4a52d34bc9c0/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/a6335949-4465-4b71-926c-4a52d34bc9c0/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/a6335949-4465-4b71-926c-4a52d34bc9c0/image.png", - "author": "RobotoSkunk", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/a6335949-4465-4b71-926c-4a52d34bc9c0/preferences.json", - "version": "1.3.5", - "tags": [ - "find", - "bar", - "search", - "searchbar", - "find-bar", - "search-bar" - ], - "createdAt": "2024-11-24", - "updatedAt": "2025-09-18", - "enabled": true - }, - "ad97bb70-0066-4e42-9b5f-173a5e42c6fc": { - "id": "ad97bb70-0066-4e42-9b5f-173a5e42c6fc", - "name": "SuperPins", - "description": "This Zen Mod enhances pinned tabs/Essentials, by making some UI/UX changes.", - "homepage": "https://github.com/CosmoCreeper/Zen-Themes/tree/main/SuperPins", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/ad97bb70-0066-4e42-9b5f-173a5e42c6fc/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/ad97bb70-0066-4e42-9b5f-173a5e42c6fc/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/ad97bb70-0066-4e42-9b5f-173a5e42c6fc/image.png", - "author": "CosmoCreeper", - "version": "1.5.7", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/ad97bb70-0066-4e42-9b5f-173a5e42c6fc/preferences.json", - "tags": [ - "tabs" - ], - "createdAt": "2024-08-28", - "updatedAt": "2025-07-22", - "enabled": true - }, - "79dde383-4fe7-404a-a8e6-9be440022542": { - "id": "79dde383-4fe7-404a-a8e6-9be440022542", - "name": "Tidy Popup", - "description": "Modifies popup panels, changing divider lines with empty spacer, and makes the button more compact.", - "homepage": "https://github.com/Dinno-DEV/zen-tidy-popup", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/79dde383-4fe7-404a-a8e6-9be440022542/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/79dde383-4fe7-404a-a8e6-9be440022542/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/79dde383-4fe7-404a-a8e6-9be440022542/image.png", - "author": "Dinno-DEV", - "version": "1.0.0", - "tags": [], - "createdAt": "2025-02-26", - "updatedAt": "2025-03-31", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/79dde383-4fe7-404a-a8e6-9be440022542/preferences.json", - "enabled": true - }, - "378ba8b9-cd36-45f5-88df-595df5288795": { - "id": "378ba8b9-cd36-45f5-88df-595df5288795", - "name": "Add new tab urlbar icon", - "description": "Adds an icon and the text open in new tab to the urlbar if opened by pressing New Tab or Ctrl+T", - "homepage": "https://github.com/Evthestrike/zen-browser-add-new-tab-icon-to-urlbar", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/378ba8b9-cd36-45f5-88df-595df5288795/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/378ba8b9-cd36-45f5-88df-595df5288795/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/378ba8b9-cd36-45f5-88df-595df5288795/image.png", - "author": "Evthestrike", - "version": "1.0.0", - "tags": [], - "createdAt": "2025-02-20", - "updatedAt": "2025-09-25", - "enabled": true - }, - "1e86cf37-a127-4f24-b919-d265b5ce29a0": { - "id": "1e86cf37-a127-4f24-b919-d265b5ce29a0", - "name": "Lean", - "description": "Extensions. Spaces. Toolbars. Clean them up, give extra room for your stuff", - "homepage": "", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/1e86cf37-a127-4f24-b919-d265b5ce29a0/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/1e86cf37-a127-4f24-b919-d265b5ce29a0/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/1e86cf37-a127-4f24-b919-d265b5ce29a0/image.png", - "author": "KiKaraage", - "version": "3.1", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/1e86cf37-a127-4f24-b919-d265b5ce29a0/preferences.json", - "tags": [], - "createdAt": "2024-09-03", - "updatedAt": "2025-10-10", - "enabled": true - }, - "81fcd6b3-f014-4796-988f-6c3cb3874db8": { - "id": "81fcd6b3-f014-4796-988f-6c3cb3874db8", - "name": "Zen Context Menu", - "description": "Declutter your right click menu, hide options you don't need", - "homepage": "https://github.com/KiKaraage/ZenMods/", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/81fcd6b3-f014-4796-988f-6c3cb3874db8/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/81fcd6b3-f014-4796-988f-6c3cb3874db8/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/81fcd6b3-f014-4796-988f-6c3cb3874db8/image.png", - "author": "KiKaraage", - "version": "3.1", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/81fcd6b3-f014-4796-988f-6c3cb3874db8/preferences.json", - "tags": [ - "context menu" - ], - "createdAt": "2024-10-06", - "updatedAt": "2025-08-26", - "enabled": true - }, - "20e8cc78-3dac-4db0-81a4-814672fb50af": { - "id": "20e8cc78-3dac-4db0-81a4-814672fb50af", - "name": "Right Side Glance Buttons", - "description": "Move the at a glance buttons to the right side of the window.", - "homepage": "https://github.com/psu/zen-mods", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/20e8cc78-3dac-4db0-81a4-814672fb50af/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/20e8cc78-3dac-4db0-81a4-814672fb50af/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/20e8cc78-3dac-4db0-81a4-814672fb50af/image.png", - "author": "psu", - "version": "1.0.2", - "tags": [], - "createdAt": "2025-03-28", - "updatedAt": "2025-03-31", - "enabled": true - }, - "a5f6a231-e3c8-4ce8-8a8e-3e93efd6adec": { - "id": "a5f6a231-e3c8-4ce8-8a8e-3e93efd6adec", - "name": "Cleaned URL bar", - "description": "Cleans up zen's URL bar.", - "homepage": "https://github.com/Dinno-DEV/zen-cleaned-url-bar", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/a5f6a231-e3c8-4ce8-8a8e-3e93efd6adec/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/a5f6a231-e3c8-4ce8-8a8e-3e93efd6adec/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/a5f6a231-e3c8-4ce8-8a8e-3e93efd6adec/image.png", - "author": "Dinno-DEV", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/a5f6a231-e3c8-4ce8-8a8e-3e93efd6adec/preferences.json", - "version": "1.0.4", - "tags": [], - "createdAt": "2024-11-01", - "updatedAt": "2025-03-09", - "enabled": true - }, - "253a3a74-0cc4-47b7-8b82-996a64f030d5": { - "id": "253a3a74-0cc4-47b7-8b82-996a64f030d5", - "name": "Floating History", - "description": "Improves the history tab by matching the browser theme, make it floating, more responsive, and allow placing it on either side.", - "homepage": "https://github.com/ahmaadaziz/zen-floating-history", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/253a3a74-0cc4-47b7-8b82-996a64f030d5/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/253a3a74-0cc4-47b7-8b82-996a64f030d5/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/253a3a74-0cc4-47b7-8b82-996a64f030d5/image.png", - "preferences": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/253a3a74-0cc4-47b7-8b82-996a64f030d5/preferences.json", - "author": "ahmaadaziz", - "createdAt": "2024-10-12", - "updatedAt": "2025-07-15", - "version": "2.2.0", - "tags": [ - "history" - ], - "enabled": true - }, - "ae7868dc-1fa1-469e-8b89-a5edf7ab1f24": { - "id": "ae7868dc-1fa1-469e-8b89-a5edf7ab1f24", - "name": "Load Bar", - "description": "Creates a sleek loading bar and mute status for single toolbar mode.", - "homepage": "https://github.com/Tanay-Kar/Zen-Themes/tree/main/LoadBar", - "style": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/ae7868dc-1fa1-469e-8b89-a5edf7ab1f24/chrome.css", - "readme": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/ae7868dc-1fa1-469e-8b89-a5edf7ab1f24/readme.md", - "image": "https://raw.githubusercontent.com/zen-browser/theme-store/main/themes/ae7868dc-1fa1-469e-8b89-a5edf7ab1f24/image.png", - "author": "Tanay-Kar", - "version": "1.0.0", - "tags": [], - "createdAt": "2024-12-21", - "updatedAt": "2025-05-10", - "enabled": true - } -} \ No newline at end of file