From dc6c3cda993f004d0d1b349c3567c9323fb09369 Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Mon, 6 Oct 2025 20:02:46 -0400 Subject: [PATCH 01/12] Improve swap_mode command --- bin/emojis | 2 +- bin/swap_mode.sh | 31 +++++++++++++++++++++++++++++++ config/ghostty/config | 2 +- home/.profile | 5 ++++- home/.xprofile | 2 +- home/.zshrc | 9 +++++++-- 6 files changed, 45 insertions(+), 6 deletions(-) diff --git a/bin/emojis b/bin/emojis index c0d58b7..008a130 100755 --- a/bin/emojis +++ b/bin/emojis @@ -7,7 +7,7 @@ set -e -dmenu="dmenu -theme-str 'window {width: 25%;}' -i -p Emoji" +dmenu="dmenu -theme-str 'window {width: 50%;}' -i -p Emoji" case "$1" in "list") data=$(sed '0,/^__DATA__$/d' "$0") diff --git a/bin/swap_mode.sh b/bin/swap_mode.sh index 9e23766..2debbd4 100755 --- a/bin/swap_mode.sh +++ b/bin/swap_mode.sh @@ -2,9 +2,11 @@ NVIM_CONF="${HOME}/.config/nvim/init.lua" GHOSTTY_CONF="${HOME}/.config/ghostty/config" +DUNST_CONF="${HOME}/.config/dunst/dunstrc" [ -f "$NVIM_CONF" ] || { echo "Missing $NVIM_CONF"; exit 1; } [ -f "$GHOSTTY_CONF" ] || { echo "Missing $GHOSTTY_CONF"; exit 1; } +[ -f "$DUNST_CONF" ] || { echo "Missing $DUNST_CONF"; exit 1; } set_light_mode() { sed -E -i 's/^([[:space:]]*theme[[:space:]]*=[[:space:]]*)zenwritten-dark/\1zenwritten-light/' "$GHOSTTY_CONF" @@ -64,18 +66,47 @@ if [ "$(uname)" != "Darwin" ]; then # GTK Theme gsettings set org.gnome.desktop.interface gtk-theme '' gsettings set org.gnome.desktop.interface gtk-theme 'WhiteSur-Dark' + gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + sed -i -e 's@Net/ThemeName.*@Net/ThemeName "WhiteSur-Dark"@' ~/.xsettingsd + # Rofi theme sed -i -e "s/light.rasi/dark.rasi/" $HOME/.config/rofi/config.rasi + # Swap dunst urgency_low background and foreground + sed -E -i '/^\[urgency_low\]/,/^\[.*\]/ { + s/^([[:space:]]*background[[:space:]]*=[[:space:]]*).*/\1"#3d3839"/ + s/^([[:space:]]*foreground[[:space:]]*=[[:space:]]*).*/\1"#8e8e8e"/ + }' "$DUNST_CONF" + + # Swap dunst urgency_normal background and foreground + sed -E -i '/^\[urgency_normal\]/,/^\[.*\]/ { + s/^([[:space:]]*background[[:space:]]*=[[:space:]]*).*/\1"#3d3839"/ + s/^([[:space:]]*foreground[[:space:]]*=[[:space:]]*).*/\1"#BBBBBB"/ + }' "$DUNST_CONF" else echo "Swapping to light mode" # GTK Theme gsettings set org.gnome.desktop.interface gtk-theme '' gsettings set org.gnome.desktop.interface gtk-theme 'WhiteSur-Light' + gsettings set org.gnome.desktop.interface color-scheme 'default' + sed -i -e 's@Net/ThemeName.*@Net/ThemeName "WhiteSur-Light"@' ~/.xsettingsd + # Swap dunst urgency_low background and foreground + sed -E -i '/^\[urgency_low\]/,/^\[.*\]/ { + s/^([[:space:]]*background[[:space:]]*=[[:space:]]*).*/\1"#8e8e8e"/ + s/^([[:space:]]*foreground[[:space:]]*=[[:space:]]*).*/\1"#3d3839"/ + }' "$DUNST_CONF" + + # Swap dunst urgency_normal background and foreground + sed -E -i '/^\[urgency_normal\]/,/^\[.*\]/ { + s/^([[:space:]]*background[[:space:]]*=[[:space:]]*).*/\1"#BBBBBB"/ + s/^([[:space:]]*foreground[[:space:]]*=[[:space:]]*).*/\1"#191919"/ + }' "$DUNST_CONF" + # Rofi theme sed -i -e "s/dark.rasi/light.rasi/" $HOME/.config/rofi/config.rasi fi + killall dunst killall -HUP xsettingsd fi diff --git a/config/ghostty/config b/config/ghostty/config index 7815010..7384a2b 100644 --- a/config/ghostty/config +++ b/config/ghostty/config @@ -1,7 +1,7 @@ # --- Basics font-family = "IosevkaTermSlab Nerd Font Propo" font-style = "Regular" -font-size = 12 +font-size = 11 background-opacity = 1.0 window-decoration = none confirm-close-surface = false diff --git a/home/.profile b/home/.profile index f0b0284..37c2c11 100644 --- a/home/.profile +++ b/home/.profile @@ -2,5 +2,8 @@ [ -f "/home/aselimov/.ghcup/env" ] && . "/home/aselimov/.ghcup/env" # ghcup-env -export PATH="$PATH:/usr/local/cuda-12.8/bin:$HOME/bin" +export PATH="$PATH:/usr/local/cuda-12.8/bin:$HOME/bin:$HOME/.local/bin" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.8/lib64" + +export ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic +export ANTHROPIC_AUTH_TOKEN="$(pass list zai_token)" diff --git a/home/.xprofile b/home/.xprofile index f0b0284..54c686a 100755 --- a/home/.xprofile +++ b/home/.xprofile @@ -2,5 +2,5 @@ [ -f "/home/aselimov/.ghcup/env" ] && . "/home/aselimov/.ghcup/env" # ghcup-env -export PATH="$PATH:/usr/local/cuda-12.8/bin:$HOME/bin" +export PATH="$PATH:/usr/local/cuda-12.8/bin:$HOME/bin:$HOME/.local/bin" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.8/lib64" diff --git a/home/.zshrc b/home/.zshrc index 7552697..941c636 100644 --- a/home/.zshrc +++ b/home/.zshrc @@ -16,6 +16,8 @@ setopt HIST_IGNORE_SPACE # Don't save commands starting with space # Environment Variables #============================================================================== +source ~/.profile + export OMPI_MCA_rmaps_base_oversubscribe=1 export CLICOLOR=1 export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd @@ -106,10 +108,13 @@ gemini() { unset -f nvm node npm gemini load_nvm gemini "$@" - - } +claude() { + unset -f claude + npm 2>&1 1>/dev/null + claude "$@" +} # ghcup [ -f "/home/aselimov/.ghcup/env" ] && . "/home/aselimov/.ghcup/env" # ghcup-env From 0f0bb6cfea68dc55b0ca3857fce32d8142deaeed Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Fri, 10 Oct 2025 13:58:21 -0400 Subject: [PATCH 02/12] Update volume.sh to work with pipewire on hyprland --- bin/volume.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/volume.sh b/bin/volume.sh index 84eef4b..d64fc6a 100755 --- a/bin/volume.sh +++ b/bin/volume.sh @@ -10,7 +10,7 @@ function get_volume { } function is_mute { - [ $(pamixer --get-mute) = 'true'] + [ $(pamixer --get-mute) = 'true' ] } function send_notification { @@ -59,7 +59,7 @@ case $1 in ;; mute) # Toggle mute - #amixer -D pulse set Master 1+ toggle > /dev/null + wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle if is_mute; then DIR=$(dirname "$0") $DIR/notify-send.sh -i "/usr/share/icons/Papirus/48x48/status/notification-audio-volume-muted.svg" --replace=555 -u normal "Mute" -t 2000 From 1cd266c799a5eff78c5f7587df6d58af9d7e4efd Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Fri, 10 Oct 2025 14:43:34 -0400 Subject: [PATCH 03/12] Add hyprland configs --- config/hypr/hyprland.conf | 279 +++++++++++++++++++++++++++++++++++++ config/hypr/hyprpaper.conf | 2 + 2 files changed, 281 insertions(+) create mode 100644 config/hypr/hyprland.conf create mode 100644 config/hypr/hyprpaper.conf diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf new file mode 100644 index 0000000..f188f59 --- /dev/null +++ b/config/hypr/hyprland.conf @@ -0,0 +1,279 @@ +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/ + +# Please note not all available settings / options are set here. +# For a full list, see the wiki + +# You can split this configuration into multiple files +# Create your files separately and then link them to this file like this: +# source = ~/.config/hypr/myColors.conf + + +################ +### MONITORS ### +################ + + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = ghostty +$fileManager = dolphin +$menu = rofi -show drun + + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + +exec-once = waybar +exec-once = hyprpaper +exec = /home/aselimov/bin/monitor_daemon.sh +# exec-once = nm-applet & +# exec-once = waybar & hyprpaper & firefox + + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + + +################### +### PERMISSIONS ### +################### + +# See https://wiki.hyprland.org/Configuring/Permissions/ +# Please note permission changes here require a Hyprland restart and are not applied on-the-fly +# for security reasons + +# ecosystem { +# enforce_permissions = 1 +# } + +# permission = /usr/(bin|local/bin)/grim, screencopy, allow +# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow +# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow + + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 20 + + border_size = 1 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(BBBBBBee) + col.inactive_border = rgba(8e8e8eaa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 5 + rounding_power = 2 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = false + size = 3 + passes = 1 + + vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = yes, please :) + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, slide + animation = workspacesIn, 1, 1.21, almostLinear, slide + animation = workspacesOut, 1, 1.94, almostLinear, slide +} + +# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ +# "Smart gaps" / "No gaps when only" +# uncomment all if you wish to use that. +workspace = w[tv1], gapsout:0, gapsin:0 +workspace = f[1], gapsout:0, gapsin:0 +windowrule = bordersize 0, floating:0, onworkspace:w[tv1] +windowrule = rounding 0, floating:0, onworkspace:w[tv1] +windowrule = bordersize 0, floating:0, onworkspace:f[1] +windowrule = rounding 0, floating:0, onworkspace:f[1] + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = true# If true disables the random hyprland logo / anime girl background. :( + vfr = true +} + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = caps:escape + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = false + } + +} + +$mainMod = ALT +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod SHIFT, Return, exec, $terminal +bind = $mainMod SHIFT, C, killactive, +bind = $mainMod SHIFT, Q, exit, +bind = $mainMod, Space, togglefloating, +bind = $mainMod, p, exec, $menu + +# Move focus with mainMod + arrow keys +bind = $mainMod, l, workspace, e+1 +bind = $mainMod, h, workspace, e-1 +bind = $mainMod, j, layoutmsg, cyclenext +bind = $mainMod, k, layoutmsg, cycleprev +bind = $mainMod SHIFT, L, layoutmsg, mfact +0.05 +bind = $mainMod SHIFT, H, layoutmsg, mfact -0.05 +bind = $mainMod SHIFT, J, layoutmsg, swapnext +bind = $mainMod SHIFT, K, layoutmsg, swapprev +bind = $mainMod, Return, layoutmsg, swapwithmaster +bind = $mainMod, m, fullscreen, 1 + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 + +# Example special workspace (scratchpad) +#bind = $mainMod, S, togglespecialworkspace, magic +#bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +bind = ALT_SUPER, l, exec, /usr/bin/passmenu --type + + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, /home/aselimov/bin/volume.sh up +bindel = ,XF86AudioLowerVolume, exec, /home/aselimov/bin/volume.sh down +bindel = ,XF86AudioMute, exec, /home/aselimov/bin/volume.sh mute +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + + + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule +# 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 = nofochttps://wiki.hyprland.org/Configuring/Master-Layout/us,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf new file mode 100644 index 0000000..7ee630c --- /dev/null +++ b/config/hypr/hyprpaper.conf @@ -0,0 +1,2 @@ +preload = /home/aselimov/media/wallpapers/current_rotation/fuji.jpg +wallpaper = eDP-1, /home/aselimov/media/wallpapers/current_rotation/fuji.jpg From e9d872968bb87bbc0bc1c5253cc3b416c85fcbc7 Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Fri, 10 Oct 2025 14:50:09 -0400 Subject: [PATCH 04/12] Add installed packages for version tracking --- packages | 564 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 564 insertions(+) create mode 100644 packages diff --git a/packages b/packages new file mode 100644 index 0000000..3ebdb58 --- /dev/null +++ b/packages @@ -0,0 +1,564 @@ +abseil-cpp 20250814.1-1 +acl 2.3.2-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-topology-conf 1.2.5.1-4 +alsa-ucm-conf 1.2.14-2 +anytype-alpha-bin 0.50.5-1 +aom 3.13.1-1 +appstream 1.1.1-1 +aquamarine 0.9.5-4 +archlinux-keyring 20250929-1 +at-spi2-core 2.58.0-1 +atkmm 2.28.4-1 +attr 2.5.2-1 +audit 4.0.5-1 +autoconf 2.72-1 +automake 1.18.1-1 +avahi 1:0.9rc2-1 +base 3-2 +base-devel 1-2 +bash 5.3.3-2 +binutils 2.45+r29+g2b2e51a31ec7-1 +bison 3.8.2-8 +bluez 5.84-1 +bluez-libs 5.84-1 +botan2 2.19.5-2 +brightnessctl 0.5.1-3 +brotli 1.1.0-3 +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 +cairo 1.18.4-1 +cairomm 1.14.5-1 +chromium 141.0.7390.54-1 +cmake 4.1.2-1 +connman 1.45-2 +coreutils 9.8-2 +cppdap 1.58.0-2 +cryptsetup 2.8.1-1 +curl 8.16.0-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 +diffutils 3.12-2 +double-conversion 3.3.1-1 +duktape 2.7.0-7 +dunst 1.13.0-1 +e2fsprogs 1.47.3-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 +electron38 38.1.2-1 +element-desktop 1.12.0-1 +element-web 1.12.0-1 +expat 2.7.3-1 +fakeroot 1.37.1.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 +flac 1.5.0-1 +flex 2.6.4-5 +fmt 12.0.0-1 +fontconfig 2:2.17.1-1 +freetype2 2.14.1-1 +fribidi 1.0.16-2 +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 3.41.2-2 +gcr-4 4.4.0.1-1 +gdbm 1.26-1 +gdk-pixbuf2 2.44.3-1 +gettext 0.26-1 +ghostty 1.2.0-1 +ghostty-shell-integration 1.2.0-1 +ghostty-terminfo 1.2.0-1 +giflib 5.2.2-2 +git 2.51.0-1 +glaze 5.7.2-1 +glib-networking 1:2.80.1-1 +glib2 2.86.0-2 +glibc 2.42+r17+gd7274d718e6f-1 +glibmm 2.66.8-1 +glslang 1:1.4.321.0-1 +glycin 2.0.2-2 +gmp 6.3.0-2 +gnome-keyring 1:48.0-1 +gnulib-l10n 20241231-1 +gnupg 2.4.8-1 +gnutls 3.8.10-1 +go 2:1.25.2-1 +gperftools 2.17.2-1 +gpgme 2.0.1-1 +gpsd 3.26.1-2 +graphene 1.10.8-2 +graphite 1:1.3.14-5 +greetd 0.10.3-1 +greetd-agreety 0.10.3-1 +greetd-tuigreet 0.9.1-1 +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-plugins-bad-libs 1.26.6-3 +gst-plugins-base-libs 1.26.6-3 +gstreamer 1.26.6-3 +gtest 1.17.0-1 +gtk-layer-shell 0.9.2-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 +gtkmm3 3.24.10-1 +guile 3.0.10-1 +gupnp 1:1.6.9-1 +gupnp-igd 1.6.0-2 +gyosu-git r98.84ce814-1 +gzip 1.14-2 +harfbuzz 12.1.0-1 +hicolor-icon-theme 0.18-1 +hidapi 0.15.0-1 +highway 1.3.0-1 +htop 3.4.1-1 +hunspell 1.7.2-2 +hwdata 0.400-1 +hyprcursor-git 0.1.13.r0.g44e91d4-1 +hyprgraphics-git 0.2.0.r0.g9431db6-1 +hyprland 0.51.1-4 +hyprland-protocols-git 0.7.0.r0.gbd153e7-1 +hyprland-qt-support-git 0.1.0.r10.g9ef7f69-1 +hyprland-qtutils-git 0.1.5.r2.g629b15c-1 +hyprlang-git 0.6.4.r3.g4dafa28-1 +hyprpaper 0.7.5-5 +hyprutils-git 0.10.0.r0.g3df7bde-1 +hyprwayland-scanner-git 0.4.5.r1.gb3b0f1f-1 +iana-etc 20250612-1 +icu 76.1-1 +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 +jbigkit 2.1-8 +json-c 0.18-2 +json-glib 1.10.8-1 +jsoncpp 1.9.6-3 +kbd 2.9.0-1 +keyutils 1.6.3-3 +kmod 34.2-1 +krb5 1.21.3-2 +l-smash 2.14.5-4 +lame 3.100-6 +lcms2 2.17-1 +leancrypto 1.5.1-1 +less 1:679-1 +libadwaita 1:1.8.0-1 +libaio 0.3.113-3 +libarchive 3.8.1-1 +libass 0.17.4-1 +libassuan 3.0.0-1 +libasyncns 1:0.8+r3+g68cd5af-3 +libavc1394 0.5.4-7 +libb2 0.98.1-3 +libbluray 1.4.0-2 +libbpf 1.5.1-1 +libbs2b 3.1.0-9 +libbsd 0.12.2-2 +libcanberra 1:0.30+r2+gc0620e4-4 +libcap 2.76-1 +libcap-ng 0.8.5-3 +libcloudproviders 0.3.6-2 +libcolord 1.4.8-1 +libcups 2:2.4.14-1 +libdaemon 0.14-6 +libdatrie 0.2.13-4 +libdbusmenu-glib 16.04.0.r498-2 +libdbusmenu-gtk3 16.04.0.r498-2 +libdecor 0.2.3-1 +libdeflate 1.24-1 +libdisplay-info 0.3.0-1 +libdovi 3.3.2-1 +libdrm 2.4.126-1 +libdvdnav 6.1.1-2 +libdvdread 6.1.3-2 +libebur128 1.2.6-2 +libedit 20250104_3.1-1 +libei 1.5.0-1 +libelf 0.193-5 +libepoxy 1.5.10-3 +libevdev 1.13.4-1 +libevent 2.1.12-4 +libfdk-aac 2.0.3-1 +libffi 3.5.2-1 +libfontenc 1.1.8-1 +libfreeaptx 0.2.2-1 +libfyaml 0.9-1 +libgcrypt 1.11.2-1 +libglvnd 1.7.0-3 +libgpg-error 1.56-1 +libgudev 238-3 +libice 1.1.2-1 +libidn2 2.3.7-1 +libiec61883 1.2.0-9 +libimobiledevice 1.3.0-17 +libimobiledevice-glue 1.3.2-1 +libinih 61-1 +libinput 1.29.1-1 +libisl 0.27-1 +libjpeg-turbo 3.1.2-1 +libjxl 0.11.1-4 +libksba 1.6.7-2 +liblc3 1.1.3-1 +libldac 2.0.2.3-2 +libldap 2.6.10-2 +libliftoff 0.5.0-1 +libluv 1.48.0_2-1 +libmd 1.1.0-2 +libmfx 23.2.2-5 +libmnl 1.0.5-2 +libmodplug 0.8.9.0-6 +libmpc 1.3.1-2 +libmpdclient 2.23-1 +libmysofa 1.3.3-1 +libnetfilter_conntrack 1.0.9-2 +libnfnetlink 1.0.2-2 +libnftnl 1.3.0-1 +libnghttp2 1.67.1-1 +libnghttp3 1.12.0-1 +libnice 0.1.22-2 +libnl 3.11.0-1 +libnotify 0.8.7-1 +libnsl 2.0.1-1 +libnvme 1.15-1 +libogg 1.3.6-1 +libopenmpt 0.8.3-1 +libp11-kit 0.25.10-2 +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 +libproxy 0.5.11-1 +libpsl 0.21.5-2 +libpulse 17.0+r43+g3e2bb8a1e-1 +libraw1394 2.1.2-4 +librsvg 2:2.61.1-1 +libsamplerate 0.2.2-3 +libsasl 2.1.28-5 +libseccomp 2.5.6-1 +libsecret 0.21.7-1 +libsigc++ 2.12.1-1 +libsm 1.2.6-1 +libsndfile 1.2.2-3 +libsodium 1.0.20-1 +libsoup3 3.6.5-1 +libsoxr 0.1.3-4 +libssh 0.11.3-1 +libssh2 1.11.1-1 +libstemmer 3.0.1-1 +libsysprof-capture 49.0-1 +libtasn1 4.20.0-1 +libthai 0.1.29-3 +libtheora 1.2.0-1 +libtiff 4.7.1-1 +libtirpc 1.3.7-1 +libtool 2.6.0-1 +libunibreak 6.1-1 +libunistring 1.3-1 +libunwind 1.8.2-1 +liburcu 0.15.3-1 +liburing 2.12-1 +libusb 1.0.29-1 +libusbmuxd 2.1.1-1 +libutempter 1.2.3-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 +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 +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 +libxcursor 1.2.3-1 +libxcvt 0.1.3-1 +libxdamage 1.1.6-2 +libxdmcp 1.1.5-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 +libxrandr 1.5.4-1 +libxrender 0.9.12-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 +libzip 1.11.4-1 +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 +llvm-libs 20.1.8-1 +lm_sensors 1:3.6.2-1 +lmdb 0.9.33-1 +lua 5.4.8-2 +lua51-lpeg 1.1.0-4 +luajit 2.1.1753364724-1 +lv2 1.18.10-1 +lvm2 2.03.35-1 +lz4 1:1.10.0-2 +lzo 2.10-5 +m4 1.4.20-1 +mailcap 2.1.54-2 +make 4.4.1-2 +man-db 2.13.1-1 +md4c 0.5.2-1 +mesa 1:25.2.4-1 +meson 1.9.1-1 +minizip 1:1.3.1-2 +mkinitcpio 39.2-5 +mkinitcpio-busybox 1.36.1-1 +mpdecimal 4.0.1-1 +mpfr 4.2.2-1 +mpg123 1.33.2-1 +msgpack-c 6.1.0-2 +mtdev 1.1.7-1 +ncurses 6.5-4 +neovim 0.11.4-1 +nettle 3.10.2-1 +ninja 1.12.1-2 +npth 1.8-1 +nspr 4.37-1 +nss 3.117-1 +nvidia 580.95.05-2 +nvidia-utils 580.95.05-1 +nvtop 3.2.0-1 +ocl-icd 2.3.3-1 +oniguruma 6.9.10-1 +opencore-amr 0.1.6-2 +opendoas 6.8.2-3 +openjpeg2 2.5.4-1 +openssh 10.0p1-6 +openssl 3.6.0-1 +opus 1.5.2-1 +orc 0.4.41-1 +p11-kit 0.25.10-2 +pacman 7.0.0.r6.gc685ae6-6 +pacman-mirrorlist 20251003-1 +pam 1.7.1-1 +pambase 20250719-1 +pamixer 1.6-3 +pango 1:1.57.0-2 +pangomm 2.46.4-1 +papirus-icon-theme 20250501-1 +paru 2.1.0-1 +paru-debug 2.1.0-1 +pass 1.7.4-7 +patch 2.8-1 +pciutils 3.14.0-1 +pcre2 10.46-1 +pcsclite 2.3.3-1 +perl 5.42.0-1 +perl-error 0.17030-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 +polkit 126-2 +popt 1.19-2 +portaudio 1:19.7.0-3 +pps-tools 1.0.3-2 +procps-ng 4.0.5-3 +psmisc 23.7-1 +pugixml 1.15-2 +python 3.13.7-1 +python-greenlet 3.2.4-1 +python-msgpack 1.0.5-3 +python-pynvim 0.6.0-1 +python-tqdm 4.67.1-2 +qt6-base 6.9.2-1 +qt6-declarative 6.9.2-1 +qt6-svg 6.9.2-2 +qt6-translations 6.9.2-1 +qt6-wayland 6.9.2-1 +rav1e 0.8.1-2 +re2 1:20240702-7 +readline 8.3.001-1 +rhash 1.4.4-1 +rofi 2.0.0-1 +rubberband 4.0.0-1 +rustup 1.28.2-3 +sbc 2.1-1 +scdoc 1.11.3-1 +sdl2-compat 2.32.56-2 +sdl3 3.2.24-1 +seatd 0.9.1-1 +sed 4.9-3 +serd 0.32.4-1 +shaderc 2025.3-1 +shadow 4.18.0-1 +shared-mime-info 2.4-2 +snappy 1.2.2-2 +sndio 1.10.0-1 +sord 0.16.18-1 +sound-theme-freedesktop 0.8-6 +spdlog 1.15.3-3 +speex 1.2.1-2 +speexdsp 1.2.1-2 +spirv-tools 1:1.4.321.0-1 +sqlite 3.50.4-2 +sratom 0.6.18-1 +srt 1.5.4-1 +starship 1.23.0-1 +startup-notification 0.12-9 +sudo 1.9.17.p1-1 +svt-av1 3.1.2-1 +systemd 258-4 +systemd-libs 258-4 +systemd-sysvcompat 258-4 +tar 1.35-2 +tdb 1.4.14-1 +texinfo 7.2-1 +thin-provisioning-tools 1.2.2-1 +thunderbird 143.0.1-2 +tinysparql 3.10.0-1 +tmux 3.5_a-1 +tomlplusplus 3.4.0-1 +tpm2-tss 4.1.3-1 +tree 2.2.1-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-iosevka-nerd 3.4.0-1 +ttf-iosevkaterm-nerd 3.4.0-1 +ttf-liberation 2.1.5-2 +tzdata 2025b-1 +unibilium 2.1.2-1 +upower 1.90.10-1 +util-linux 2.41.2-1 +util-linux-libs 2.41.2-1 +v4l-utils 1.30.1-1 +vapoursynth 72-1 +vid.stab 1.1.1-2 +vmaf 3.0.0-1 +vulkan-headers 1:1.4.321.0-1 +vulkan-icd-loader 1.4.321.0-1 +waybar 0.14.0-2 +wayland 1.24.0-1 +wayland-protocols 1.45-1 +webrtc-audio-processing-1 1.3-5 +which 2.23-1 +wireplumber 0.5.11-1 +wl-clipboard 1:2.2.1-3 +wlroots0.19 0.19.1-2 +wpa_supplicant 2:2.11-3 +x264 3:0.165.r3222.b35605a-2 +x265 4.1-1 +xcb-imdkit 1.0.9-1 +xcb-proto 1.17.0-3 +xcb-util 0.4.1-2 +xcb-util-cursor 0.1.6-1 +xcb-util-errors 1.0.1-2 +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 +xclip 0.13-6 +xdg-utils 1.2.1-1 +xfsprogs 6.16.0-3 +xkeyboard-config 2.46-1 +xorg-fonts-encodings 1.1.0-1 +xorg-server-common 21.1.18-2 +xorg-setxkbmap 1.3.4-2 +xorg-xkbcomp 1.4.7-1 +xorg-xprop 1.2.8-1 +xorg-xset 1.2.5-2 +xorg-xwayland 24.1.8-1 +xorgproto 2024.1-2 +xvidcore 1.3.7-3 +xxhash 0.8.3-1 +xz 5.8.1-1 +ydotool 1.0.4-2 +zen-browser-bin 1.16.4b-1 +zeromq 4.3.5-2 +zimg 3.0.5-1 +zix 0.6.2-1 +zlib 1:1.3.1-2 +zlib-ng 2.2.5-1 +zsh 5.9-5 +zstd 1.5.7-2 From 710caefead86c2a519e546e26c51dbf9dd6c0a1b Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Fri, 10 Oct 2025 16:04:15 -0400 Subject: [PATCH 05/12] Add initial minimalist waybar config --- config/waybar/config | 121 +++++++++++++++++++++++ config/waybar/style.css | 213 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 334 insertions(+) create mode 100644 config/waybar/config create mode 100644 config/waybar/style.css diff --git a/config/waybar/config b/config/waybar/config new file mode 100644 index 0000000..34bc04a --- /dev/null +++ b/config/waybar/config @@ -0,0 +1,121 @@ +{ + "position": "top", // Waybar position (top|bottom|left|right) + "height": 5, // Waybar height (to be removed for auto height) + "modules-left": [], + "modules-center": ["clock"], + "modules-right": ["pulseaudio", "network", "cpu","memory","battery", "tray"], + "sway/mode": { + "format": "{}" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + "spacing": 10 + }, + "clock": { + "format": "{:%A, %b %d | %I:%M %p}", + "format-alt": "{:%Y-%m-%d}" + + }, + "cpu": { + "states": { + "critical": 90, + "warning": 75, + "good": 0, + }, + "format": "", + "format-alt": "{usage}% ", + }, + + "memory": { + "states": { + "critical": 80, + "warning": 50, + "good": 0, + }, + "format": "", + }, + "temperature": { + "critical-threshold": 80, + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + "format": "{icon}", + "format-icons": ["", ""] + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{icon}", + "format-icons": ["", "", "", "", ""], + "format-charging": "{capacity}%", + "format-plugged": "{capacity}%", + "format-alt": "{capacity}% | {time}" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interfac + "format-wifi": "", + "tooltip-format-wifi": "{essid} {signalStrength}%", + "format-ethernet": "", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "󰖪", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format-icons": ["", "", ""], + "format": "{icon}", + "format-bluetooth": "{{icon} {format_source}", + "format-bluetooth-muted": "󰝟 {format_source}", + "format-muted": "󰝟 ", + "on-click": "pavucontrol" + }, + "custom/media": { + "format": " {}", + "return-type": "json", + "max-length": 40, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + }, + "hyprland/workspaces": { + "format": "{icon}", + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1" +} +} diff --git a/config/waybar/style.css b/config/waybar/style.css new file mode 100644 index 0000000..231fbe9 --- /dev/null +++ b/config/waybar/style.css @@ -0,0 +1,213 @@ +* { + border: none; + border-radius: 4px; + /* `ttf-font-awesome` is required to be installed for icons */ + font-family: "IosevkaTermSlab Nerd Font Propo"; + + /* adjust font-size value to your liking: */ + font-size: 14px; + + min-height: 0; +} + +window#waybar { + background-color: #191919; + color: #ffffff; +} + +#workspaces button { + color: #ffffff; + box-shadow: inset 0 -3px transparent; +} + +#workspaces button:hover { + background: rgba(0, 0, 0, 0.9); + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button.focused { + background-color: #64727d; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727d; +} + +#clock, +#battery, +#cpu, +#memory, +#temperature, +#backlight, +#network, +#pulseaudio, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#mpd { + padding: 0 10px; + margin: 6px 3px; + color: #191919; +} + +#window, +#workspaces { + margin: 0 4px; +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +#clock { + background-color: #191919; + color: white; +} + +#battery { + background-color: #191919; + color: white; +} + +#battery.charging { + color: #8BAE68; + background-color: #191919; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #191919; + } +} + +#battery.critical:not(.charging) { + color: #DE6E7C; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #191919; +} + +#cpu { + background-color: #191919; + color: #ffffff; +} + +#cpu.warning{ + color: #D68C67; +} +#cpu.critical{ + color: #DE6E7C; +} + +#memory { + background-color: #191919; + color: #ffffff; +} + +#memory.warning{ + color: #D68C67; +} +#memory.critical{ + color: #DE6E7C; +} +#backlight { + background-color: #191919; + color: white; +} + +#network { + background-color: #191919; + color: white; +} + +#network.disconnected { + background-color: #DE6E7c; +} + +#pulseaudio { + background-color: #191919; + color: #ffffff; +} + +#pulseaudio.muted { + background-color: #191919; + color: #DE6E7c; +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + background-color: #f0932b; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#tray { + background-color: #2980b9; +} + +#idle_inhibitor { + background-color: #2d3436; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} + +#language { + background: #bbccdd; + color: #333333; + padding: 0 5px; + margin: 6px 3px; + min-width: 16px; +} From 5d65e9de4f00ce396265c72091f93ebf8c108cf1 Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Fri, 10 Oct 2025 21:19:25 -0400 Subject: [PATCH 06/12] Update hyprland and waybar configs --- bin/emojis | 2 +- config/dunst/dunstrc | 11 +++++------ config/ghostty/config | 2 +- config/hypr/hyprland.conf | 9 +++++++++ config/rofi/aditya_style.rasi | 2 +- config/waybar/config | 30 +++++++++++++++++------------- config/waybar/style.css | 21 +++++++++++++++------ home/.xinitrc | 3 ++- 8 files changed, 51 insertions(+), 29 deletions(-) diff --git a/bin/emojis b/bin/emojis index 008a130..c95be22 100755 --- a/bin/emojis +++ b/bin/emojis @@ -17,7 +17,7 @@ case "$1" in input=$(tee) if [ ! -z "$input" ]; then emoji=${input: -1} - xdotool type "$emoji" + ydotool type "$emoji" fi ;; "") diff --git a/config/dunst/dunstrc b/config/dunst/dunstrc index 93ac8ef..ec03975 100644 --- a/config/dunst/dunstrc +++ b/config/dunst/dunstrc @@ -2,8 +2,7 @@ frame_width = 0 frame_color = "#000000" - font = FiraCode Nerd Font 12 - #font = Iosevka Nerd Font 13 + font = IosevkaTerm Nerd Font 13 # Allow a small subset of html markup: # bold @@ -187,13 +186,13 @@ [urgency_low] # IMPORTANT: colors have to be defined in quotation marks. # Otherwise the "#" and following would be interpreted as a comment. - background = "#8e8e8e" - foreground = "#3d3839" + background = "#3d3839" + foreground = "#8e8e8e" timeout = 5 [urgency_normal] - background = "#BBBBBB" - foreground = "#191919" + background = "#3d3839" + foreground = "#BBBBBB" timeout = 5 [urgency_critical] diff --git a/config/ghostty/config b/config/ghostty/config index 7384a2b..18755a9 100644 --- a/config/ghostty/config +++ b/config/ghostty/config @@ -1,5 +1,5 @@ # --- Basics -font-family = "IosevkaTermSlab Nerd Font Propo" +font-family = "IosevkaTerm Nerd Font Propo" font-style = "Regular" font-size = 11 background-opacity = 1.0 diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index f188f59..72ed7e1 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -27,6 +27,15 @@ $fileManager = dolphin $menu = rofi -show drun +########################### +### Program windowrules ### +########################### + +windowrule = workspace 1, class:Element +windowrule = workspace 2, class:anytype +windowrule = workspace 3, class:thunderbird + + ################# ### AUTOSTART ### ################# diff --git a/config/rofi/aditya_style.rasi b/config/rofi/aditya_style.rasi index 4fea8ce..413c928 100644 --- a/config/rofi/aditya_style.rasi +++ b/config/rofi/aditya_style.rasi @@ -12,7 +12,7 @@ configuration { modi: "drun"; show-icons: true; icon-theme: "Papirus"; - font: "IosevkaTermSlab Nerd Font Propo 14"; + font: "IosevkaTerm Nerd Font Propo 14"; display-drun: ""; //display-run: ""; //display-filebrowser: ""; diff --git a/config/waybar/config b/config/waybar/config index 34bc04a..d2b0dde 100644 --- a/config/waybar/config +++ b/config/waybar/config @@ -1,16 +1,16 @@ { "position": "top", // Waybar position (top|bottom|left|right) "height": 5, // Waybar height (to be removed for auto height) - "modules-left": [], + "modules-left": ["hyprland/workspaces"], "modules-center": ["clock"], - "modules-right": ["pulseaudio", "network", "cpu","memory","battery", "tray"], + "modules-right": ["custom/packages", "pulseaudio", "network", "cpu","memory","battery"], "sway/mode": { "format": "{}" }, "mpd": { - "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ ", - "format-disconnected": "Disconnected ", - "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "format": " {title} | {artist} ({elapsedTime:%M:%S}/{totalTime:%M:%S})", + "format-disconnected": "", + "format-stopped": "", "unknown-tag": "N/A", "interval": 2, "consume-icons": { @@ -83,8 +83,8 @@ }, "format": "{icon}", "format-icons": ["", "", "", "", ""], - "format-charging": "{capacity}%", - "format-plugged": "{capacity}%", + "format-charging": "{icon}", + "format-plugged": "{icon}", "format-alt": "{capacity}% | {time}" }, "network": { @@ -105,16 +105,20 @@ "format-muted": "󰝟 ", "on-click": "pavucontrol" }, - "custom/media": { + "custom/packages": { "format": " {}", - "return-type": "json", - "max-length": 40, - "escape": true, - "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder - // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + "exec": "/home/aselimov/bin/outdated_packages.sh" }, "hyprland/workspaces": { "format": "{icon}", + "format-icons":{ + "1": "", + "2": "󰠮", + "3": "", + "4": "", + "5": "" + }, + "active-only": true, "on-scroll-up": "hyprctl dispatch workspace e+1", "on-scroll-down": "hyprctl dispatch workspace e-1" } diff --git a/config/waybar/style.css b/config/waybar/style.css index 231fbe9..b108d70 100644 --- a/config/waybar/style.css +++ b/config/waybar/style.css @@ -175,7 +175,7 @@ label:focus { } #tray { - background-color: #2980b9; + background-color: #191919; } #idle_inhibitor { @@ -188,20 +188,20 @@ label:focus { } #mpd { - background-color: #66cc99; - color: #2a5c45; + background-color: #191919; + color: #BBBBBB; } #mpd.disconnected { - background-color: #f53c3c; + background-color: #191919; } #mpd.stopped { - background-color: #90b1b1; + background-color: #191919; } #mpd.paused { - background-color: #51a37a; + background-color: #191919; } #language { @@ -211,3 +211,12 @@ label:focus { margin: 6px 3px; min-width: 16px; } + +#workspaces{ + background: #191919; + +} + +#custom-packages{ + color: #DE6E7c; +} diff --git a/home/.xinitrc b/home/.xinitrc index f1d9d5e..bcc8ffc 100755 --- a/home/.xinitrc +++ b/home/.xinitrc @@ -53,12 +53,13 @@ xinput --set-prop "TPPS/2 IBM TrackPoint" "libinput Accel Profile Enabled" 0 1 exec bato & exec sync_mail.sh & -exec xsettingsd & exec sxhkd & exec mpd & exec picom -b & exec wallpaper_randomizer.sh & exec dwmblocks & wmname LG3D & +exec xsettingsd & +exec swap_monitor.sh & exec dbus-launch --sh-syntax --exit-with-session "dwm" From d91099eae537ae7903f18729afd8f025513c82e8 Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Fri, 10 Oct 2025 22:52:05 -0400 Subject: [PATCH 07/12] Final hyprland update and add hyprlock --- config/hypr/hyprland.conf | 10 +++- config/hypr/hyprlock.conf | 106 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 config/hypr/hyprlock.conf diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index 72ed7e1..2af09c4 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -34,6 +34,8 @@ $menu = rofi -show drun windowrule = workspace 1, class:Element windowrule = workspace 2, class:anytype windowrule = workspace 3, class:thunderbird +windowrule = workspace 4, class:com.mitchellh.ghostty +windowrule = workspace 5, class:zen ################# @@ -46,6 +48,12 @@ windowrule = workspace 3, class:thunderbird exec-once = waybar exec-once = hyprpaper exec = /home/aselimov/bin/monitor_daemon.sh +exec-once = element-desktop +exec-once = /opt/Anytype/anytype +exec-once = thunderbird +exec-once = ghostty +exec-once = zen-browser + # exec-once = nm-applet & # exec-once = waybar & hyprpaper & firefox @@ -208,7 +216,7 @@ $mainMod = ALT # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod SHIFT, Return, exec, $terminal bind = $mainMod SHIFT, C, killactive, -bind = $mainMod SHIFT, Q, exit, +bind = $mainMod SHIFT, Q, exec, hyprlock bind = $mainMod, Space, togglefloating, bind = $mainMod, p, exec, $menu diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf new file mode 100644 index 0000000..32942f1 --- /dev/null +++ b/config/hypr/hyprlock.conf @@ -0,0 +1,106 @@ +# 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 = Monospace + +general { + hide_cursor = false +} + +# 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 = true + 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 = 3 +} + +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 + + font_color = rgb(143, 143, 143) + fade_on_empty = false + rounding = 15 + + font_family = $font + placeholder_text = Input password... + 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, -20 + 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 = -30, 0 + halign = right + 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 = -30, -150 + halign = right + valign = top +} + +label { + monitor = + text = + font_size = 24 + onclick = hyprctl switchxkblayout all next + + position = 250, -20 + halign = center + valign = center +} From 40b9e351e6a965342dff7e73cef5f21dd0b9982d Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Tue, 11 Nov 2025 21:23:30 -0500 Subject: [PATCH 08/12] Update colorscheme swap configuration and other small changes --- bin/swap_mode.sh | 27 ++++++++++++++++++++++++--- config/ghostty/config | 2 +- home/.zshrc | 15 +++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/bin/swap_mode.sh b/bin/swap_mode.sh index 2debbd4..521e853 100755 --- a/bin/swap_mode.sh +++ b/bin/swap_mode.sh @@ -66,7 +66,7 @@ if [ "$(uname)" != "Darwin" ]; then # GTK Theme gsettings set org.gnome.desktop.interface gtk-theme '' gsettings set org.gnome.desktop.interface gtk-theme 'WhiteSur-Dark' - gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' sed -i -e 's@Net/ThemeName.*@Net/ThemeName "WhiteSur-Dark"@' ~/.xsettingsd # Rofi theme @@ -83,12 +83,23 @@ if [ "$(uname)" != "Darwin" ]; then s/^([[:space:]]*foreground[[:space:]]*=[[:space:]]*).*/\1"#BBBBBB"/ }' "$DUNST_CONF" + # Plasma theme + if [[ "$XDG_CURRENT_DESKTOP" == "KDE" ]]; then + plasma-apply-lookandfeel -a com.github.vinceliuice.WhiteSur-dark + plasma-apply-cursortheme phinger-cursors-dark + kwriteconfig6 --file kdeglobals --group Icons --key Theme Papirus-Dark + kwriteconfig6 --file ksplashrc --group KSplash --key Theme Breeze + kquitapp6 plasmashell + sleep 0.3 + kstart5 plasmashell + fi + else echo "Swapping to light mode" # GTK Theme gsettings set org.gnome.desktop.interface gtk-theme '' gsettings set org.gnome.desktop.interface gtk-theme 'WhiteSur-Light' - gsettings set org.gnome.desktop.interface color-scheme 'default' + gsettings set org.gnome.desktop.interface color-scheme 'default' sed -i -e 's@Net/ThemeName.*@Net/ThemeName "WhiteSur-Light"@' ~/.xsettingsd # Swap dunst urgency_low background and foreground sed -E -i '/^\[urgency_low\]/,/^\[.*\]/ { @@ -104,7 +115,17 @@ if [ "$(uname)" != "Darwin" ]; then # Rofi theme sed -i -e "s/dark.rasi/light.rasi/" $HOME/.config/rofi/config.rasi - + # + # Plasma theme + if [[ "$XDG_CURRENT_DESKTOP" == "KDE" ]]; then + plasma-apply-lookandfeel -a com.github.vinceliuice.WhiteSur-alt + plasma-apply-cursortheme phinger-cursors-dark + kwriteconfig6 --file kdeglobals --group Icons --key Theme Papirus + kwriteconfig6 --file ksplashrc --group KSplash --key Theme Breeze + kquitapp6 plasmashell + sleep 0.3 + kstart6 plasmashell + fi fi killall dunst diff --git a/config/ghostty/config b/config/ghostty/config index 18755a9..db4b4ad 100644 --- a/config/ghostty/config +++ b/config/ghostty/config @@ -3,7 +3,7 @@ font-family = "IosevkaTerm Nerd Font Propo" font-style = "Regular" font-size = 11 background-opacity = 1.0 -window-decoration = none +window-decoration = auto confirm-close-surface = false # Auto light/dark theme pair that matches your two palettes below diff --git a/home/.zshrc b/home/.zshrc index a136b9e..98ba654 100644 --- a/home/.zshrc +++ b/home/.zshrc @@ -34,6 +34,7 @@ source ~/.profile #============================================================================== alias clip2png="xclip -selection clipboard -target image/png -out" +alias k="kubectl" @@ -103,6 +104,12 @@ claude() { npm 2>&1 1>/dev/null claude "$@" } + +codex() { + unset -f codex + npm 2>&1 1>/dev/null + codex "$@" +} # ghcup [ -f "/home/aselimov/.ghcup/env" ] && . "/home/aselimov/.ghcup/env" # ghcup-env @@ -159,3 +166,11 @@ fi if [[ -z "$TMUX" ]] && [[ -n "$PS1" ]]; then tmux attach -t dev || tmux new -s dev fi + +# pnpm +export PNPM_HOME="/home/aselimov/.local/share/pnpm" +case ":$PATH:" in + *":$PNPM_HOME:"*) ;; + *) export PATH="$PNPM_HOME:$PATH" ;; +esac +# pnpm end From da4475fb721ecde984b02ceebc7e4d3b7d06ff7e Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Tue, 11 Nov 2025 21:24:05 -0500 Subject: [PATCH 09/12] Remove unneeded configurations --- config/hypr/hyprland.conf | 296 ------------------------------------- config/hypr/hyprlock.conf | 106 ------------- config/hypr/hyprpaper.conf | 2 - config/waybar/config | 125 ---------------- config/waybar/style.css | 222 ---------------------------- 5 files changed, 751 deletions(-) delete mode 100644 config/hypr/hyprland.conf delete mode 100644 config/hypr/hyprlock.conf delete mode 100644 config/hypr/hyprpaper.conf delete mode 100644 config/waybar/config delete mode 100644 config/waybar/style.css diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf deleted file mode 100644 index 2af09c4..0000000 --- a/config/hypr/hyprland.conf +++ /dev/null @@ -1,296 +0,0 @@ -# This is an example Hyprland config file. -# Refer to the wiki for more information. -# https://wiki.hyprland.org/Configuring/ - -# Please note not all available settings / options are set here. -# For a full list, see the wiki - -# You can split this configuration into multiple files -# Create your files separately and then link them to this file like this: -# source = ~/.config/hypr/myColors.conf - - -################ -### MONITORS ### -################ - - -################### -### MY PROGRAMS ### -################### - -# See https://wiki.hyprland.org/Configuring/Keywords/ - -# Set programs that you use -$terminal = ghostty -$fileManager = dolphin -$menu = rofi -show drun - - -########################### -### Program windowrules ### -########################### - -windowrule = workspace 1, class:Element -windowrule = workspace 2, class:anytype -windowrule = workspace 3, class:thunderbird -windowrule = workspace 4, class:com.mitchellh.ghostty -windowrule = workspace 5, class:zen - - -################# -### AUTOSTART ### -################# - -# Autostart necessary processes (like notifications daemons, status bars, etc.) -# Or execute your favorite apps at launch like this: - -exec-once = waybar -exec-once = hyprpaper -exec = /home/aselimov/bin/monitor_daemon.sh -exec-once = element-desktop -exec-once = /opt/Anytype/anytype -exec-once = thunderbird -exec-once = ghostty -exec-once = zen-browser - -# exec-once = nm-applet & -# exec-once = waybar & hyprpaper & firefox - - -############################# -### ENVIRONMENT VARIABLES ### -############################# - -# See https://wiki.hyprland.org/Configuring/Environment-variables/ - -env = XCURSOR_SIZE,24 -env = HYPRCURSOR_SIZE,24 - - -################### -### PERMISSIONS ### -################### - -# See https://wiki.hyprland.org/Configuring/Permissions/ -# Please note permission changes here require a Hyprland restart and are not applied on-the-fly -# for security reasons - -# ecosystem { -# enforce_permissions = 1 -# } - -# permission = /usr/(bin|local/bin)/grim, screencopy, allow -# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow -# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow - - -##################### -### LOOK AND FEEL ### -##################### - -# Refer to https://wiki.hyprland.org/Configuring/Variables/ - -# https://wiki.hyprland.org/Configuring/Variables/#general -general { - gaps_in = 5 - gaps_out = 20 - - border_size = 1 - - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors - col.active_border = rgba(BBBBBBee) - col.inactive_border = rgba(8e8e8eaa) - - # Set to true enable resizing windows by clicking and dragging on borders and gaps - resize_on_border = false - - # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on - allow_tearing = false - - layout = master -} - -# https://wiki.hyprland.org/Configuring/Variables/#decoration -decoration { - rounding = 5 - rounding_power = 2 - - # Change transparency of focused and unfocused windows - active_opacity = 1.0 - inactive_opacity = 1.0 - - shadow { - enabled = true - range = 4 - render_power = 3 - color = rgba(1a1a1aee) - } - - # https://wiki.hyprland.org/Configuring/Variables/#blur - blur { - enabled = false - size = 3 - passes = 1 - - vibrancy = 0.1696 - } -} - -# https://wiki.hyprland.org/Configuring/Variables/#animations -animations { - enabled = yes, please :) - - # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - - bezier = easeOutQuint,0.23,1,0.32,1 - bezier = easeInOutCubic,0.65,0.05,0.36,1 - bezier = linear,0,0,1,1 - bezier = almostLinear,0.5,0.5,0.75,1.0 - bezier = quick,0.15,0,0.1,1 - - animation = global, 1, 10, default - animation = border, 1, 5.39, easeOutQuint - animation = windows, 1, 4.79, easeOutQuint - animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% - animation = windowsOut, 1, 1.49, linear, popin 87% - animation = fadeIn, 1, 1.73, almostLinear - animation = fadeOut, 1, 1.46, almostLinear - animation = fade, 1, 3.03, quick - animation = layers, 1, 3.81, easeOutQuint - animation = layersIn, 1, 4, easeOutQuint, fade - animation = layersOut, 1, 1.5, linear, fade - animation = fadeLayersIn, 1, 1.79, almostLinear - animation = fadeLayersOut, 1, 1.39, almostLinear - animation = workspaces, 1, 1.94, almostLinear, slide - animation = workspacesIn, 1, 1.21, almostLinear, slide - animation = workspacesOut, 1, 1.94, almostLinear, slide -} - -# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ -# "Smart gaps" / "No gaps when only" -# uncomment all if you wish to use that. -workspace = w[tv1], gapsout:0, gapsin:0 -workspace = f[1], gapsout:0, gapsin:0 -windowrule = bordersize 0, floating:0, onworkspace:w[tv1] -windowrule = rounding 0, floating:0, onworkspace:w[tv1] -windowrule = bordersize 0, floating:0, onworkspace:f[1] -windowrule = rounding 0, floating:0, onworkspace:f[1] - -# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more -master { - new_status = master -} - -# https://wiki.hyprland.org/Configuring/Variables/#misc -misc { - force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers - disable_hyprland_logo = true# If true disables the random hyprland logo / anime girl background. :( - vfr = true -} - - -############# -### INPUT ### -############# - -# https://wiki.hyprland.org/Configuring/Variables/#input -input { - kb_layout = us - kb_variant = - kb_model = - kb_options = caps:escape - kb_rules = - - follow_mouse = 1 - - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. - - touchpad { - natural_scroll = false - } - -} - -$mainMod = ALT -# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more -bind = $mainMod SHIFT, Return, exec, $terminal -bind = $mainMod SHIFT, C, killactive, -bind = $mainMod SHIFT, Q, exec, hyprlock -bind = $mainMod, Space, togglefloating, -bind = $mainMod, p, exec, $menu - -# Move focus with mainMod + arrow keys -bind = $mainMod, l, workspace, e+1 -bind = $mainMod, h, workspace, e-1 -bind = $mainMod, j, layoutmsg, cyclenext -bind = $mainMod, k, layoutmsg, cycleprev -bind = $mainMod SHIFT, L, layoutmsg, mfact +0.05 -bind = $mainMod SHIFT, H, layoutmsg, mfact -0.05 -bind = $mainMod SHIFT, J, layoutmsg, swapnext -bind = $mainMod SHIFT, K, layoutmsg, swapprev -bind = $mainMod, Return, layoutmsg, swapwithmaster -bind = $mainMod, m, fullscreen, 1 - -# Switch workspaces with mainMod + [0-9] -bind = $mainMod, 1, workspace, 1 -bind = $mainMod, 2, workspace, 2 -bind = $mainMod, 3, workspace, 3 -bind = $mainMod, 4, workspace, 4 -bind = $mainMod, 5, workspace, 5 -bind = $mainMod, 6, workspace, 6 - -# Move active window to a workspace with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, 1, movetoworkspace, 1 -bind = $mainMod SHIFT, 2, movetoworkspace, 2 -bind = $mainMod SHIFT, 3, movetoworkspace, 3 -bind = $mainMod SHIFT, 4, movetoworkspace, 4 -bind = $mainMod SHIFT, 5, movetoworkspace, 5 -bind = $mainMod SHIFT, 6, movetoworkspace, 6 - -# Example special workspace (scratchpad) -#bind = $mainMod, S, togglespecialworkspace, magic -#bind = $mainMod SHIFT, S, movetoworkspace, special:magic - -bind = ALT_SUPER, l, exec, /usr/bin/passmenu --type - - -# Scroll through existing workspaces with mainMod + scroll -bind = $mainMod, mouse_down, workspace, e+1 -bind = $mainMod, mouse_up, workspace, e-1 - -# Move/resize windows with mainMod + LMB/RMB and dragging -bindm = $mainMod, mouse:272, movewindow -bindm = $mainMod, mouse:273, resizewindow - -# Laptop multimedia keys for volume and LCD brightness -bindel = ,XF86AudioRaiseVolume, exec, /home/aselimov/bin/volume.sh up -bindel = ,XF86AudioLowerVolume, exec, /home/aselimov/bin/volume.sh down -bindel = ,XF86AudioMute, exec, /home/aselimov/bin/volume.sh mute -bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle -bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ -bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- - -# Requires playerctl -bindl = , XF86AudioNext, exec, playerctl next -bindl = , XF86AudioPause, exec, playerctl play-pause -bindl = , XF86AudioPlay, exec, playerctl play-pause -bindl = , XF86AudioPrev, exec, playerctl previous - - - -############################## -### WINDOWS AND WORKSPACES ### -############################## - -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules - -# Example windowrule -# 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 = nofochttps://wiki.hyprland.org/Configuring/Master-Layout/us,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf deleted file mode 100644 index 32942f1..0000000 --- a/config/hypr/hyprlock.conf +++ /dev/null @@ -1,106 +0,0 @@ -# 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 = Monospace - -general { - hide_cursor = false -} - -# 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 = true - 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 = 3 -} - -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 - - font_color = rgb(143, 143, 143) - fade_on_empty = false - rounding = 15 - - font_family = $font - placeholder_text = Input password... - 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, -20 - 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 = -30, 0 - halign = right - 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 = -30, -150 - halign = right - valign = top -} - -label { - monitor = - text = - font_size = 24 - onclick = hyprctl switchxkblayout all next - - position = 250, -20 - halign = center - valign = center -} diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf deleted file mode 100644 index 7ee630c..0000000 --- a/config/hypr/hyprpaper.conf +++ /dev/null @@ -1,2 +0,0 @@ -preload = /home/aselimov/media/wallpapers/current_rotation/fuji.jpg -wallpaper = eDP-1, /home/aselimov/media/wallpapers/current_rotation/fuji.jpg diff --git a/config/waybar/config b/config/waybar/config deleted file mode 100644 index d2b0dde..0000000 --- a/config/waybar/config +++ /dev/null @@ -1,125 +0,0 @@ -{ - "position": "top", // Waybar position (top|bottom|left|right) - "height": 5, // Waybar height (to be removed for auto height) - "modules-left": ["hyprland/workspaces"], - "modules-center": ["clock"], - "modules-right": ["custom/packages", "pulseaudio", "network", "cpu","memory","battery"], - "sway/mode": { - "format": "{}" - }, - "mpd": { - "format": " {title} | {artist} ({elapsedTime:%M:%S}/{totalTime:%M:%S})", - "format-disconnected": "", - "format-stopped": "", - "unknown-tag": "N/A", - "interval": 2, - "consume-icons": { - "on": " " - }, - "random-icons": { - "off": " ", - "on": " " - }, - "repeat-icons": { - "on": " " - }, - "single-icons": { - "on": "1 " - }, - "state-icons": { - "paused": "", - "playing": "" - }, - "tooltip-format": "MPD (connected)", - "tooltip-format-disconnected": "MPD (disconnected)" - }, - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "", - "deactivated": "" - } - }, - "tray": { - "spacing": 10 - }, - "clock": { - "format": "{:%A, %b %d | %I:%M %p}", - "format-alt": "{:%Y-%m-%d}" - - }, - "cpu": { - "states": { - "critical": 90, - "warning": 75, - "good": 0, - }, - "format": "", - "format-alt": "{usage}% ", - }, - - "memory": { - "states": { - "critical": 80, - "warning": 50, - "good": 0, - }, - "format": "", - }, - "temperature": { - "critical-threshold": 80, - "format": "{temperatureC}°C {icon}", - "format-icons": ["", "", ""] - }, - "backlight": { - "format": "{icon}", - "format-icons": ["", ""] - }, - "battery": { - "states": { - "good": 95, - "warning": 30, - "critical": 15 - }, - "format": "{icon}", - "format-icons": ["", "", "", "", ""], - "format-charging": "{icon}", - "format-plugged": "{icon}", - "format-alt": "{capacity}% | {time}" - }, - "network": { - // "interface": "wlp2*", // (Optional) To force the use of this interfac - "format-wifi": "", - "tooltip-format-wifi": "{essid} {signalStrength}%", - "format-ethernet": "", - "format-linked": "{ifname} (No IP) ", - "format-disconnected": "󰖪", - "format-alt": "{ifname}: {ipaddr}/{cidr}" - }, - "pulseaudio": { - // "scroll-step": 1, // %, can be a float - "format-icons": ["", "", ""], - "format": "{icon}", - "format-bluetooth": "{{icon} {format_source}", - "format-bluetooth-muted": "󰝟 {format_source}", - "format-muted": "󰝟 ", - "on-click": "pavucontrol" - }, - "custom/packages": { - "format": " {}", - "exec": "/home/aselimov/bin/outdated_packages.sh" - }, - "hyprland/workspaces": { - "format": "{icon}", - "format-icons":{ - "1": "", - "2": "󰠮", - "3": "", - "4": "", - "5": "" - }, - "active-only": true, - "on-scroll-up": "hyprctl dispatch workspace e+1", - "on-scroll-down": "hyprctl dispatch workspace e-1" -} -} diff --git a/config/waybar/style.css b/config/waybar/style.css deleted file mode 100644 index b108d70..0000000 --- a/config/waybar/style.css +++ /dev/null @@ -1,222 +0,0 @@ -* { - border: none; - border-radius: 4px; - /* `ttf-font-awesome` is required to be installed for icons */ - font-family: "IosevkaTermSlab Nerd Font Propo"; - - /* adjust font-size value to your liking: */ - font-size: 14px; - - min-height: 0; -} - -window#waybar { - background-color: #191919; - color: #ffffff; -} - -#workspaces button { - color: #ffffff; - box-shadow: inset 0 -3px transparent; -} - -#workspaces button:hover { - background: rgba(0, 0, 0, 0.9); - box-shadow: inset 0 -3px #ffffff; -} - -#workspaces button.focused { - background-color: #64727d; -} - -#workspaces button.urgent { - background-color: #eb4d4b; -} - -#mode { - background-color: #64727d; -} - -#clock, -#battery, -#cpu, -#memory, -#temperature, -#backlight, -#network, -#pulseaudio, -#custom-media, -#tray, -#mode, -#idle_inhibitor, -#mpd { - padding: 0 10px; - margin: 6px 3px; - color: #191919; -} - -#window, -#workspaces { - margin: 0 4px; -} - -/* If workspaces is the leftmost module, omit left margin */ -.modules-left > widget:first-child > #workspaces { - margin-left: 0; -} - -/* If workspaces is the rightmost module, omit right margin */ -.modules-right > widget:last-child > #workspaces { - margin-right: 0; -} - -#clock { - background-color: #191919; - color: white; -} - -#battery { - background-color: #191919; - color: white; -} - -#battery.charging { - color: #8BAE68; - background-color: #191919; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: #191919; - } -} - -#battery.critical:not(.charging) { - color: #DE6E7C; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -label:focus { - background-color: #191919; -} - -#cpu { - background-color: #191919; - color: #ffffff; -} - -#cpu.warning{ - color: #D68C67; -} -#cpu.critical{ - color: #DE6E7C; -} - -#memory { - background-color: #191919; - color: #ffffff; -} - -#memory.warning{ - color: #D68C67; -} -#memory.critical{ - color: #DE6E7C; -} -#backlight { - background-color: #191919; - color: white; -} - -#network { - background-color: #191919; - color: white; -} - -#network.disconnected { - background-color: #DE6E7c; -} - -#pulseaudio { - background-color: #191919; - color: #ffffff; -} - -#pulseaudio.muted { - background-color: #191919; - color: #DE6E7c; -} - -#custom-media { - background-color: #66cc99; - color: #2a5c45; - min-width: 100px; -} - -#custom-media.custom-spotify { - background-color: #66cc99; -} - -#custom-media.custom-vlc { - background-color: #ffa000; -} - -#temperature { - background-color: #f0932b; -} - -#temperature.critical { - background-color: #eb4d4b; -} - -#tray { - background-color: #191919; -} - -#idle_inhibitor { - background-color: #2d3436; -} - -#idle_inhibitor.activated { - background-color: #ecf0f1; - color: #2d3436; -} - -#mpd { - background-color: #191919; - color: #BBBBBB; -} - -#mpd.disconnected { - background-color: #191919; -} - -#mpd.stopped { - background-color: #191919; -} - -#mpd.paused { - background-color: #191919; -} - -#language { - background: #bbccdd; - color: #333333; - padding: 0 5px; - margin: 6px 3px; - min-width: 16px; -} - -#workspaces{ - background: #191919; - -} - -#custom-packages{ - color: #DE6E7c; -} From 9eefd32bbac035245a0837db6490098baf440e9c Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Sat, 15 Nov 2025 02:15:56 +0000 Subject: [PATCH 10/12] Add SSH indicator --- home/.tmux.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/.tmux.conf b/home/.tmux.conf index ac74259..73de293 100644 --- a/home/.tmux.conf +++ b/home/.tmux.conf @@ -53,7 +53,7 @@ set -g status-position bottom set -g status-justify left set -g status-style 'fg=black bold' -set -g status-left '' +set -g status-left '#( [ -n "$SSH_CONNECTION" ] && printf " #[fg=red,bold][SSH]" ) ' set -g status-left-length 10 set -g status-right-style 'fg=white bold bg=black' From cc70db25c60fa1b74b683ee38ab965b3a3131207 Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Sun, 16 Nov 2025 20:54:22 -0500 Subject: [PATCH 11/12] Update profile and zsh to remove pass from .profile --- home/.profile | 3 --- home/.zshrc | 10 ++++++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/home/.profile b/home/.profile index 37c2c11..54c686a 100644 --- a/home/.profile +++ b/home/.profile @@ -4,6 +4,3 @@ export PATH="$PATH:/usr/local/cuda-12.8/bin:$HOME/bin:$HOME/.local/bin" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.8/lib64" - -export ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic -export ANTHROPIC_AUTH_TOKEN="$(pass list zai_token)" diff --git a/home/.zshrc b/home/.zshrc index 98ba654..6ad2844 100644 --- a/home/.zshrc +++ b/home/.zshrc @@ -25,6 +25,8 @@ export LS_COLORS='di=1;37:ln=35:so=32:pi=33:ex=1;32:bd=34;46:cd=34;43:su=30;41:s export XKB_DEFAULT_OPTIONS="caps:escape" export PASSWORD_STORE_CHARACTER_SET='a-zA-Z0-9+\-$!*_=' export XDEB_PKGROOT=${HOME}/.config/xdeb +export EDITOR=nvim +export TERMINAL=ghostty # Custom path additions source ~/.profile @@ -36,7 +38,9 @@ source ~/.profile alias clip2png="xclip -selection clipboard -target image/png -out" alias k="kubectl" - +ssh() { + NO_TMUX=1 nohup ghostty --command="ssh $*" >/dev/null 2>&1 & +} #============================================================================== # Functions @@ -101,6 +105,8 @@ gemini() { claude() { unset -f claude + export ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic + export ANTHROPIC_AUTH_TOKEN="$(pass list zai_token)" npm 2>&1 1>/dev/null claude "$@" } @@ -163,7 +169,7 @@ else alias ls="ls --classify --group-directories-first --color" fi -if [[ -z "$TMUX" ]] && [[ -n "$PS1" ]]; then +if [[ -z "$TMUX" ]] && [[ -n "$PS1" ]] && [[ -z "$NO_TMUX" ]]; then tmux attach -t dev || tmux new -s dev fi From 1fffc14cf75aff3ce4bfe9ff5bedf73f18dadf3e Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Thu, 15 Jan 2026 22:29:22 -0500 Subject: [PATCH 12/12] Setup script to listen for theme changes and call swap mode as needed --- bin/listen_theme_changes.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100755 bin/listen_theme_changes.sh diff --git a/bin/listen_theme_changes.sh b/bin/listen_theme_changes.sh new file mode 100755 index 0000000..b5952d9 --- /dev/null +++ b/bin/listen_theme_changes.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Directory where the script is located +SCRIPT_DIR="$(dirname "$(realpath "$0")")" +SWAP_MODE_SCRIPT="$SCRIPT_DIR/swap_mode.sh" + +# Listen for changes in the color-scheme setting +gsettings monitor org.gnome.desktop.interface color-scheme | while read -r line; do + # 'default' usually corresponds to light mode in GNOME + if [[ "$line" == *"default"* ]]; then + echo "Detected light mode change..." + "$SWAP_MODE_SCRIPT" light + + # 'prefer-dark' corresponds to dark mode + elif [[ "$line" == *"prefer-dark"* ]]; then + echo "Detected dark mode change..." + "$SWAP_MODE_SCRIPT" dark + fi +done