From 3d8e8e15346c5c54a1aaa918846a32e27d03ff08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Dom=C3=ADnguez?= Date: Thu, 8 May 2025 20:38:29 -0400 Subject: [PATCH] drastic rework of my environment, and include some new tools --- .config/hypr/hyprland.conf | 4 +- .config/waybar/config | 91 ++++++++++++++++++++++++++----------- .config/waybar/style.css | 92 ++++++++------------------------------ .zshrc | 27 ++++++----- 4 files changed, 100 insertions(+), 114 deletions(-) diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index c4bd702..7a3fb36 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -68,7 +68,7 @@ exec-once = [workspace 2 silent] kitty --session ~/.config/kitty/session --liste exec-once = [workspace 2 silent] sleep 1; kitty newsboat exec-once = [workspace 6 silent] kitty btop exec-once = [workspace 6 silent] sleep 1; kitty -exec-once = [workspace 6 silent] sleep 2;kitty zsh -c "source ~/.zshrc;nnn -deUxH" +exec-once = [workspace 6 silent] sleep 2;kitty yazi exec-once = steam -silent exec-once = sleep 1; heroic --ozone-platform=wayland exec-once = [workspace special:password silent] keepassxc @@ -78,7 +78,7 @@ exec-once = killall nextcloud exec-once = gammastep -m wayland -O 6500K -g 1.1.0 exec-once = [workspace special:email silent] sleep 1; tutanota-desktop --ozone-platform-hint=auto exec-once = discord --enable-features=UseOzonePlatform --ozone-platform=wayland --start-minimized -exec-once = jellyfin-mpv-shim +exec = jellyfin-mpv-shim # Variables diff --git a/.config/waybar/config b/.config/waybar/config index 6eb8f23..762cc7a 100644 --- a/.config/waybar/config +++ b/.config/waybar/config @@ -14,7 +14,7 @@ "output": "DP-2", "layer": "top", "modules-left": ["hyprland/workspaces", "hyprland/mode"], - "modules-center": ["custom/gpu-usage", "cpu", "memory", "group/disks", "temperature", "clock", "custom/weather", "idle_inhibitor", "custom/pacman", "group/networks", "bluetooth", "group/audio-player"], + "modules-center": ["group/statistics", "group/status", "group/networks", "group/audio-player"], /* "modules-right": ["tray", "custom/scratchpad-indicator", "pulseaudio",], */ "modules-right": ["group/taskbar", "group/group-power"], @@ -44,13 +44,25 @@ "group/audio-player": { "orientation": "inherit", "modules": [ - "mpris", + "group/playing", "cava" ] }, + "group/playing": { + "orientation": "inherit", + "drawer": { + "transition-duration": 500, + "children-class": "not-power", + "transition-left-to-right": true, + }, + "modules": [ + "mpris", + "mpris#2" + ] + }, "mpris": { - "format": "{player_icon} Playing ", - "format-paused": "{status_icon} Paused ", + "format": "{player_icon} Playing ", + "format-paused": "{status_icon} Paused ", "tooltip-format": "󰠃 {artist}:  {title} (󰀥 {album})", "interval": 1, "album-len": 0, @@ -66,7 +78,16 @@ }, // "ignored-players": ["firefox"] }, - +"mpris#2": { + "format": "{title} 󰠃 {artist} ({position}/{length}) ", + "format-paused": "{title} 󰠃 {artist} ({position}/{length}) ", + "tooltip-format": "󰠃 {artist}:  {title} (󰀥 {album})", + "interval": 1, + "album-len": 0, + "on-click": "exec ~/.bin/sh/dunstaudio.sh play_pause", + "on-click-right": "exec ~/.bin/sh/dunstaudio.sh next_track", + "on-click-middle": "exec ~/.bin/sh/dunstaudio.sh prev_track", + }, "cava": { "cava_config": "/home/peter/.config/cava/config", "framerate": 240, @@ -88,8 +109,18 @@ "on-click-right": "mode" } }, + "group/statistics": { + "orientation": "inherit", + "modules": [ + "custom/gpu-usage", + "cpu", + "memory", + "group/disks", + "temperature" + ] + }, "custom/pacman": { - "format": "{}", + "format": "{} ", "tooltip": true, "tooltip-format": "Available updates", "interval": 60, @@ -128,8 +159,10 @@ "group/networks": { "orientation": "inherit", "modules": [ + "custom/pacman", "network", "custom/vpn", + "bluetooth" ] }, "network": { @@ -137,8 +170,8 @@ "format": "{ifname}", "interval": 1, "format-wifi": "{essid} ({signalStrength}%) ", - "format-ethernet": "{ifname}", - "format-disconnected": "{ifname}", + "format-ethernet": "{ifname}", + "format-disconnected": "󱄁 {ifname}", "max-length": 50, "tooltip-format": "speed:  {bandwidthDownBytes} /  {bandwidthUpBytes}", "on-click": "kitty --class nmnet --single-instance -e nmtui", @@ -164,8 +197,16 @@ "icon-size": 20, "spacing": 6 }, + "group/status": { + "orientation": "inherit", + "modules": [ + "clock", + "custom/weather", + "idle_inhibitor" + ] + }, "clock": { - "format": "󱑏 {:%I:%M:%OS}", + "format": "󱑏 {:%I:%M:%OS} ", "interval": 1, "tooltip-format": " {:%d/%m/%y}", // "format-alt": "{:%Y-%m-%d}" @@ -173,19 +214,19 @@ }, "cpu": { "interval": 10, - "format": "{icon} {usage}%", + "format": "{icon} {usage}% ", "format-icons": [""] }, "memory": { - "format": "{icon} {percentage}%", + "format": "{icon} {percentage}% ", "format-icons": [""] }, "temperature": { // "thermal-zone": 2, "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", "critical-threshold": 80, - "format-critical": " {temperatureC}°C", - "format": " {temperatureC}°C", + "format-critical": " {temperatureC}°C", + "format": " {temperatureC}°C", "tooltip": false, }, "group/disks": { @@ -205,27 +246,27 @@ }, "disk": { "interval": 30, - "format": "󰋊 /: {percentage_used}%", + "format": " 󰋊 /: {percentage_used}% ", "path": "/" }, "disk#disk2": { "interval": 30, - "format": "󰋊 M2: {percentage_used}%", + "format": " 󰋊 M2: {percentage_used}% ", "path": "/mnt/M2" }, "disk#disk3": { "interval": 30, - "format": "󰋊 SSD: {percentage_used}%", + "format": " 󰋊 SSD: {percentage_used}% ", "path": "/mnt/SSD" }, "disk#disk4": { "interval": 30, - "format": "󰋊 Games: {percentage_used}%", + "format": " 󰋊 Games: {percentage_used}% ", "path": "/media/Games" }, "disk#disk5": { "interval": 30, - "format": "󰋊 Backups: {percentage_used}%", + "format": " 󰋊 Backups: {percentage_used}% ", "path": "/mnt/Backups" },"pulseaudio": { "format": "{volume}% {icon}", @@ -250,9 +291,9 @@ "on-scroll-down": "exec ~/.bin/sh/dunstaudio.sh volume_down" }, "bluetooth": { - "format": " {status}", - "format-connected": " on", - "format-connected-battery": " on", + "format": " {status}", + "format-connected": " on", + "format-connected-battery": " on", "on-click": "blueman-manager", // "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected", @@ -261,9 +302,9 @@ "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%" }, "custom/vpn": { - "format": "", + "format": "", "tooltip": true, - "tooltip-format": "Connected", + "tooltip-format": "Connected to VPN", "exec": "echo '{\"class\": \"connected\"}'", "exec-if": "test -d /proc/sys/net/ipv4/conf/tun0", "return-type": "json", @@ -273,14 +314,14 @@ "custom/weather": { "exec": "python ~/.config/waybar/scripts/weather.py", "restart-interval": 300, - "format": "{}", + "format": "{} ", "return-type": "json", "on-click": "xdg-open https://weather.com/en-IN/weather/today/l/e42bb25a58c2e689ec85e632d82e69d7e46c82defb9ad7a5551b6c3a70fbc282" // "format-alt": "{alt}", }, "custom/gpu-usage": { "exec": "cat /sys/class/hwmon/hwmon1/device/gpu_busy_percent", - "format": "󰍹 {}%", + "format": "󰍹 {}% ", "return-type": "", "interval": 1, "tooltip": false diff --git a/.config/waybar/style.css b/.config/waybar/style.css index 702d439..92888aa 100644 --- a/.config/waybar/style.css +++ b/.config/waybar/style.css @@ -69,15 +69,7 @@ window#waybar.hidden { } #bluetooth { - margin-top: 6px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - margin-bottom: 0px; - border-radius: 10px; - transition: none; color: #f8f8f2; - background: #282a36; } #battery { @@ -125,40 +117,40 @@ window#waybar.hidden { color: #f8f8f2; background: #282a36; } -#clock { +#status { margin-top: 6px; - margin-left: 6px; - padding-left: 8px; - padding-right: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + padding-bottom: 2px; margin-bottom: 0px; border-radius: 10px; transition: none; color: #f8f8f2; background: transparent; - /*background: #1A1826;*/ } - -#memory { +#clock { + color: #f8f8f2; +} +#statistics { margin-top: 6px; margin-left: 8px; padding-left: 10px; - margin-bottom: 0px; padding-right: 10px; + padding-top: 2px; + padding-bottom: 2px; + margin-bottom: 0px; border-radius: 10px; transition: none; color: #f8f8f2; background: #282a36; } +#memory { + color: #f8f8f2; +} #cpu { - margin-top: 6px; - margin-left: 8px; - padding-left: 10px; - margin-bottom: 0px; - padding-right: 10px; - border-radius: 10px; - transition: none; color: #f8f8f2; - background: #282a36; } #taskbar { @@ -170,44 +162,23 @@ window#waybar.hidden { border-radius: 10px; transition: none; color: #f8f8f2; - background: #5d4185; + background: #282a36; } #disk { - margin-top: 6px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - margin-bottom: 0px; - border-radius: 10px; - transition: none; color: #f8f8f2; - background: #282a36; } #temperature { - margin-top: 6px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - margin-bottom: 0px; - border-radius: 10px; - transition: none; color: #f8f8f2; - background: #282a36; } #idle_inhibitor { - margin-top: 6px; - margin-left: 1px; - padding-left: 1px; - padding-right: 6px; - margin-bottom: 0px; - border-radius: 10px; + color: #f8f8f2; } #idle_inhibitor.activated { - color: #50fa7b; + color: #50fa7b; } #custom-vpn { @@ -215,15 +186,7 @@ window#waybar.hidden { } #custom-weather { - margin-top: 6px; - margin-left: 3px; - padding-left: 3px; - padding-right: 6px; - margin-bottom: 0px; - border-radius: 10px; - transition: none; color: #f8f8f2; - background: transparent; } #custom-weather.severe { @@ -268,15 +231,7 @@ window#waybar.hidden { } #custom-gpu-usage { - margin-top: 6px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - margin-bottom: 0px; - border-radius: 10px; - transition: none; color: #f8f8f2; - background: #282a36; } #audio-player { margin-top: 6px; @@ -324,15 +279,6 @@ window#waybar.hidden { background: #8BE9FD; } #custom-pacman { - margin-top: 6px; - margin-left: 2px; - padding-left: 5px; - padding-right: 5px; - margin-right: 2px; - margin-bottom: 0px; - border-radius: 10px; - transition: none; color: #f8f2f2; - background: transparent; } diff --git a/.zshrc b/.zshrc index 84d89f1..1de3c22 100644 --- a/.zshrc +++ b/.zshrc @@ -19,6 +19,7 @@ autoload -Uz compinit history-substring-search-up history-substring-search-down zstyle ':completion:*' menu select # Auto completion zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' zle -N bracketed-paste bracketed-paste-url-magic # autoquote urls +export EDITOR=nvim # 2. Auto correction @@ -47,24 +48,22 @@ alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/.git/ --work-tree=$HOME' eval "$(starship init zsh)" -# 7. nnn variables +# 7. yazi wrapper + +function y() { + local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd + yazi "$@" --cwd-file="$tmp" + if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then + builtin cd -- "$cwd" + fi + rm -f -- "$tmp" +} -BLK="04" CHR="04" DIR="04" EXE="00" REG="00" HARDLINK="00" SYMLINK="06" MISSING="00" ORPHAN="01" FIFO="0F" SOCK="0F" OTHER="02" -export NNN_FCOLORS="$BLK$CHR$DIR$EXE$REG$HARDLINK$SYMLINK$MISSING$ORPHAN$FIFO$SOCK$OTHER" NNN_COLORS="2345" -export NNN_TRASH=1 -export NNN_ARCHIVE="\\.(7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)$" -export NNN_PLUG='p:preview-tui;c:x2sel' -export SPLIT='h' -export NNN_FIFO='/tmp/nnn.fifo' -export NNN_BMS='d:/mnt/M2/Downloads/;u:~/;b:/mnt/Backups;g:/media/Games;s:/mnt/SSD;m:/mnt/M2;n:/mnt/M2/Nextcloud;w:/mnt/M2/Nextcloud/Notes;c:~/.config;r:/run/media;a:/mnt/M2/Downloads/AUR;!:~/.bin/sh;t:~/.local/share/Trash/files;y:/home/peter/Sync' -export VISUAL='vim' -# If not running interactively, don't do anything -[[ $- != *i* ]] && return # 8. Aliases # 8.1 zsh aliases -alias ls='nnn -deUxH' +alias ls='yazi' alias aurdir='cd /mnt/M2/Downloads/AUR' alias gitdir='cd /mnt/M2/Downloads/git' alias notesdir='cd /mnt/M2/Nextcloud/Notes' @@ -73,7 +72,7 @@ alias cp='cp -i' alias rm='rm -i' alias ..='cd ..' alias ...='cd ../..' -alias visudo='sudo EDITOR=vim visudo' +alias visudo='sudo EDITOR=nvim visudo' # 8.2 Hyprland aliases