diff --git a/aplicaciones.txt b/aplicaciones.txt new file mode 100755 index 0000000..5c26d42 --- /dev/null +++ b/aplicaciones.txt @@ -0,0 +1,30 @@ +| Notion firefox -P no-tabs-profile --new-window https://www.notion.so/Journal-2025-5d0ec750856e45b3af1364c0088acdc0 +| Apple-Music firefox -P no-tabs-profile --new-window https://music.apple.com/sv/new +| YouTube firefox -P no-tabs-profile --new-window https://www.youtube.com/ +| REDDIT firefox -P no-tabs-profile --new-window https://www.reddit.com/ +| Facebook firefox -P no-tabs-profile --new-window https://www.facebook.com/ +| Konachan firefox -P no-tabs-profile --new-window https://konachan.com/post +|󰎁 CrunchyRoll firefox -P no-tabs-profile --new-window https://www.crunchyroll.com/es +|󰎁 AnimeFLV firefox -P no-tabs-profile --new-window https://www3.animeflv.net/ +|󰸉 WallHaven firefox -P no-tabs-profile --new-window https://wallhaven.cc/toplist?page=2 +|󰸉 CHAT.GPT firefox -P no-tabs-profile --new-window https://chatgpt.com/ +|󰸉 CODELLAMA firefox -P no-tabs-profile --new-window http://localhost:8080/ +| Discord discord & +| EMAIL thunderbird & +| Bashtop kitty bashtop +| HTOP kitty htop +| Waybar waybar & +| NVtop kitty nvtop +|󰇥 HomePage firefox -P no-tabs-profile --new-window http://192.168.1.131:3000 +|󰇥 Deluged firefox -P no-tabs-profile --new-window http://192.168.1.131:8112 +| Ranger kitty ranger /home/arthur/ +| WaybarConfig kitty nvim -c "NERDTree" /home/arthur/.config/waybar/ +| RangerConfig kitty --directory /home/arthur/.config/ranger nvim /home/arthur/.config/ranger/rc.conf -c "NERDTree" +| EWWConfig kitty --directory /home/arthur/.config/eww nvim /home/arthur/.config/eww/eww.yuck -c "NERDTree" +| HYPRConfig kitty --directory /home/arthur/.config/hypr/ nvim /home/arthur/.config/hypr/hyprland.conf -c "NERDTree" +| WallpaperDB kitty nvim /home/arthur/scripts/wallpapers_list.txt +| AppsDB kitty nvim /home/arthur/scripts/aplicaciones.txt +| Ranger_colorscheme ranger /home/arthur/.cache/wal/schemes/ +| Scripts kitty nvim -c "NERDTree" +| Scripts kitty --directory /home/arthur/scripts/ nvim /home/arthur/scripts/ -c "NERDTree" +|_ ______________________________________ ________________________________________________________ diff --git a/aplicaciones.txt.bk b/aplicaciones.txt.bk new file mode 100755 index 0000000..5c26d42 --- /dev/null +++ b/aplicaciones.txt.bk @@ -0,0 +1,30 @@ +| Notion firefox -P no-tabs-profile --new-window https://www.notion.so/Journal-2025-5d0ec750856e45b3af1364c0088acdc0 +| Apple-Music firefox -P no-tabs-profile --new-window https://music.apple.com/sv/new +| YouTube firefox -P no-tabs-profile --new-window https://www.youtube.com/ +| REDDIT firefox -P no-tabs-profile --new-window https://www.reddit.com/ +| Facebook firefox -P no-tabs-profile --new-window https://www.facebook.com/ +| Konachan firefox -P no-tabs-profile --new-window https://konachan.com/post +|󰎁 CrunchyRoll firefox -P no-tabs-profile --new-window https://www.crunchyroll.com/es +|󰎁 AnimeFLV firefox -P no-tabs-profile --new-window https://www3.animeflv.net/ +|󰸉 WallHaven firefox -P no-tabs-profile --new-window https://wallhaven.cc/toplist?page=2 +|󰸉 CHAT.GPT firefox -P no-tabs-profile --new-window https://chatgpt.com/ +|󰸉 CODELLAMA firefox -P no-tabs-profile --new-window http://localhost:8080/ +| Discord discord & +| EMAIL thunderbird & +| Bashtop kitty bashtop +| HTOP kitty htop +| Waybar waybar & +| NVtop kitty nvtop +|󰇥 HomePage firefox -P no-tabs-profile --new-window http://192.168.1.131:3000 +|󰇥 Deluged firefox -P no-tabs-profile --new-window http://192.168.1.131:8112 +| Ranger kitty ranger /home/arthur/ +| WaybarConfig kitty nvim -c "NERDTree" /home/arthur/.config/waybar/ +| RangerConfig kitty --directory /home/arthur/.config/ranger nvim /home/arthur/.config/ranger/rc.conf -c "NERDTree" +| EWWConfig kitty --directory /home/arthur/.config/eww nvim /home/arthur/.config/eww/eww.yuck -c "NERDTree" +| HYPRConfig kitty --directory /home/arthur/.config/hypr/ nvim /home/arthur/.config/hypr/hyprland.conf -c "NERDTree" +| WallpaperDB kitty nvim /home/arthur/scripts/wallpapers_list.txt +| AppsDB kitty nvim /home/arthur/scripts/aplicaciones.txt +| Ranger_colorscheme ranger /home/arthur/.cache/wal/schemes/ +| Scripts kitty nvim -c "NERDTree" +| Scripts kitty --directory /home/arthur/scripts/ nvim /home/arthur/scripts/ -c "NERDTree" +|_ ______________________________________ ________________________________________________________ diff --git a/backup_shutdow.sh b/backup_shutdow.sh new file mode 100755 index 0000000..d9fe7b3 --- /dev/null +++ b/backup_shutdow.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Ruta al repositorio Borg +REPO="/mnt/UNO/borg-repo" +# Nombre del nuevo backup +ARCHIVE="arch-backup-$(date +%Y-%m-%d_%H-%M)" +echo ">>> Apagando MOUNT CIFS" + +mount | grep cifs | awk '{print $3}' | xargs -n1 sudo umount +echo ">>> Iniciando backup a las $(date)" +sudo borg create --verbose --filter AME --list --stats \ + --exclude /proc --exclude /dev --exclude /sys --exclude /tmp \ + --exclude /run --exclude /mnt --exclude /media --exclude /lost+found \ + --exclude '**/.cache' \ + --compression zstd,10 \ + "$REPO::$ARCHIVE" / + +# Limpieza: conserva últimos 7 diarios, 4 semanales y 6 mensuales +echo ">>> Limpiando backups antiguos" +borg prune -v --list "$REPO" \ + --keep-daily=7 --keep-weekly=4 --keep-monthly=6 + +echo ">>> Montando nuevamente" +sudo mount -a + +echo ">>> Backup completado." + diff --git a/c-scripts/a.out b/c-scripts/a.out new file mode 100755 index 0000000..ad14a83 Binary files /dev/null and b/c-scripts/a.out differ diff --git a/c-scripts/image_list.txt b/c-scripts/image_list.txt new file mode 100755 index 0000000..6805da3 --- /dev/null +++ b/c-scripts/image_list.txt @@ -0,0 +1,36 @@ +2025-05-01-181919_hyprshot.png +7731792.jpg +wallhaven-5ydwp7.jpg +wallhaven-2yp7kx.jpg +wallhaven-ly93ry.png +hm2.jpg +wallhaven-vpx9d8.jpg +2025-05-01-181934_hyprshot.png +wallhaven-3qo72y.jpg +wallhaven-w58xxr.jpg +wallhaven-d8xrxj.png +wallhaven-p2zoqp.jpg +wallhaven-oxolyp.png +tetris.png +wallhaven-2k1wlg.jpg +wallhaven-9ox888.png +wallhaven-zpg2jo.jpg +wallhaven-5g2gp1.png +2025-05-01-181246_hyprshot.png +2025-05-01-180922_hyprshot.png +2025-05-17-122055_hyprshot.png +wallhaven-9oxg98.jpg +2025-05-28-112241_hyprshot.png +wallhaven-3qkggv.jpg +wallhaven-w5ojd6.jpg +w2.jpg +wallhaven-6ozg3x.jpg +KOHAKUNUSHI_katana_pistol_teeth_Nord_Theme_gun_anime_anime_girls-2228190-1141462850.png +wallhaven-p9zjrj.png +w8.jpg +arch-rainbow-1920x1080.png +5748270.png +wallhaven-e8o9zk.jpg +2025-06-26-153933_hyprshot.png +2025-05-01-182047_.png +wallhaven-9o5xr1.jpg diff --git a/c-scripts/list_images.c b/c-scripts/list_images.c new file mode 100755 index 0000000..94561d9 --- /dev/null +++ b/c-scripts/list_images.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include + +int main() { + DIR *dir; + struct dirent *entry; + char filepath[1024]; + FILE *fp; + + // Open the directory + dir = opendir("/home/arthur/Pictures"); + if (dir == NULL) { + perror("opendir"); + return 1; + } + + // Create a new text file to save the list of images + fp = fopen("image_list.txt", "w"); + if (fp == NULL) { + perror("fopen"); + return 1; + } + + while ((entry = readdir(dir)) != NULL) { + // Check if the entry is a file and ends with ".jpg" or ".jpeg" + if (entry->d_type == DT_REG && strstr(entry->d_name, ".jpg") != NULL) { + printf("Found image: %s\n", entry->d_name); + fprintf(fp, "%s\n", entry->d_name); + } + if (entry->d_type == DT_REG && strstr(entry->d_name, ".png") != NULL) { + printf("Found image: %s\n", entry->d_name); + fprintf(fp, "%s\n", entry->d_name); + } + } + + // Close the directory and text file + closedir(dir); + fclose(fp); + + return 0; +} diff --git a/cache_generator.sh b/cache_generator.sh new file mode 100755 index 0000000..8d3bf80 --- /dev/null +++ b/cache_generator.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +DOC_DIR="$HOME/Documents" +CACHE="$DOC_DIR/Docs/rofi_documentos.txt" + +mkdir -p "$(dirname "$CACHE")" + + +# Buscar archivos relevantes y escribirlos en el caché +find "$DOC_DIR" -type f \( -iname '*.pdf' \) > "$CACHE" + #-iname '*.txt' -o \ + #-iname '*.docx' -o \ + #-iname '*.doc' -o \ + #-iname '*.xls' -o \ + #-iname '*.xlsx' -o \ + #-iname '*.ppt' -o \ + #-iname '*.pptx' -o \ + #-iname '*.md' \ + diff --git a/constantlib.sh b/constantlib.sh new file mode 100755 index 0000000..bf2f529 --- /dev/null +++ b/constantlib.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +nb_color="#1D2021" +nf_color="#f9f5d7" +sb_color="#9c563c" +sf_color="#1e1d2e" +fn_text="FiraCode Nerd Font:size=12" + diff --git a/constantlib.sh.catpu b/constantlib.sh.catpu new file mode 100755 index 0000000..8cc445d --- /dev/null +++ b/constantlib.sh.catpu @@ -0,0 +1,8 @@ +#!/bin/bash + +nb_color="#414559" +nf_color="#c6d0f5" +sb_color="#ca9ee6" +sf_color="#232634" +fn_text="FiraCode Nerd Font:size=12" + diff --git a/constantlib.sh.gruvbox b/constantlib.sh.gruvbox new file mode 100755 index 0000000..bf2f529 --- /dev/null +++ b/constantlib.sh.gruvbox @@ -0,0 +1,8 @@ +#!/bin/bash + +nb_color="#1D2021" +nf_color="#f9f5d7" +sb_color="#9c563c" +sf_color="#1e1d2e" +fn_text="FiraCode Nerd Font:size=12" + diff --git a/constantlib.sh.nord b/constantlib.sh.nord new file mode 100755 index 0000000..bf2f529 --- /dev/null +++ b/constantlib.sh.nord @@ -0,0 +1,8 @@ +#!/bin/bash + +nb_color="#1D2021" +nf_color="#f9f5d7" +sb_color="#9c563c" +sf_color="#1e1d2e" +fn_text="FiraCode Nerd Font:size=12" + diff --git a/dmenu_run_script.sh b/dmenu_run_script.sh new file mode 100755 index 0000000..bbbad20 --- /dev/null +++ b/dmenu_run_script.sh @@ -0,0 +1,25 @@ +#!/bin/bash +source ~/scripts/constantlib.sh + +scripts=$(ls ~/scripts/*.sh) +label="󰆍 Ejecutar comando:" +lines=$( ls ~/scripts/*.sh 2>/dev/null | wc -l ) + +echo "LINEAS:"$lines + +script=$(echo -e "$scripts" | dmenu -l $(( lines )) -p "$label" -nb "$nb_color" -nf "$nf_color" -sb "$sb_color" -sf "$sf_color" -fn "$fn_text") + + +if grep -q "sudo" "$script"; then + password=$( echo -e "contraseña de sudo" | dmenu -l 1 -p "󰟵 Contraseña sudo:" -nb "$nb_color" -nf "$nf_color" -sb "$sb_color" -sf "$sf_color" -fn "$fn_text" ) + + if [[ -z "$password" ]]; then + notify-send "Cancelado" "No se ejecutó el script" + exit 1 + fi + + # Ejecutar el script con la contraseña usando sudo -S + echo "$password" | sudo -S sh "$script" +else + sh "$script" +fi diff --git a/dmenu_set_image.sh b/dmenu_set_image.sh new file mode 100755 index 0000000..ab0d4c0 --- /dev/null +++ b/dmenu_set_image.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +dir="$HOME/.config/rofi/launchers/type-7" +theme='style-9w' +wengine_setter='/home/arthur/.config/themes/wallpaper-engine.sh' +wengine_setter_tema='/home/arthur/.config/themes/wallpaper-engine.sh' +setwallpaper='/home/arthur/scripts/set-wallpaperengine.sh' +hyprpaper="$HOME/.config/hypr/hyprpaper.conf" +wallpaper_dir="$HOME/Pictures/wallpapers/" + +opciones_wallpapers="" +while IFS= read -r line +do + img=$wallpaper_dir$line + + if [ -e "$img" ]; then + opciones_wallpapers=$opciones_wallpapers$line" ~ "$wallpaper_dir$line"\0icon\x1f$img\n" + fi +done <<< $( ls -1 $wallpaper_dir ) + +wallpaper=$(echo -e "$opciones_wallpapers" | rofi -dmenu -p "$label_w" -theme ${dir}/${theme}.rasi ) + if [ -z "$wallpaper" ]; then + echo -e "No hubo seleccion" + exit 1 + fi + +IFS='~' read -r -a partes <<< "$wallpaper" +wallpaper=${partes[1]} +wallpaper=$(echo "$wallpaper" | sed 's/^[ \t]*//;s/[ \t]*$//') +echo -e $wallpaper + + killall linux-wallpaperengine + sed -i "/^sh /c\sh ${setwallpaper} > /dev/null \&" "$wengine_setter" + sed -i "/^sh /c\sh ${setwallpaper} > /dev/null \&" "$wengine_setter_tema" + +temp_mon=$( hyprctl monitors -j | jq -r '.[].name' ) + + while IFS= read -r line + do + ruta=$(grep "wallpaper = $line," $hyprpaper | cut -d',' -f2) + opciones_monitors="$opciones_monitors$line""\0icon\x1f$ruta\n" + done <<< "$temp_mon" + + monitor=$( echo -e "$opciones_monitors" |rofi -dmenu -p "$label" -theme ${dir}/${theme}.rasi ) + + IFS='\0icon' read -r -a partes <<< "$monitor" + + monitor=${partes[0]} + echo "MONITORES: "$monitor + + if [ -z "$monitor" ]; then + exit 1 + fi + echo "HACIENDO SED DE :>>>>>>>"$monitor + sed -i "/#${monitor} preload/{n;s|^sh .*|sh ${setwallpaper} ${wallpaper} ${monitor} ${scaling} > /dev/null \& |}" "$wengine_setter" + + sh $HOME/.config/ranger/set_wallpaper.sh $wallpaper $monitor + + diff --git a/dmenu_set_wallpaper.sh b/dmenu_set_wallpaper.sh new file mode 100755 index 0000000..e45f042 --- /dev/null +++ b/dmenu_set_wallpaper.sh @@ -0,0 +1,111 @@ +#!/bin/bash/ + +#SE ENCARGA DE DESPLEGAR EN UN DMENU CON LA LISTA DE WALLPAPERS QUE HAY EN /scripts/wallpapers_list.txt +#Y AL SELECCIONAR UNO MODIFICA EL ARCHIVO + +source ~/scripts/constantlib.sh +#modifica el wallpaper recibe 3 parametros el link de steam, el monitor y el ajuste de pantalla +setwallpaper='/home/arthur/scripts/set-wallpaperengine.sh' +wengine_setter='/home/arthur/.config/themes/wallpaper-engine.sh' +wengine_setter_tema='/home/arthur/.config/themes/wallpaper-engine.sh.' +not_found="$HOME/Pictures/.cache_wgengine/not_found.jpg" +hyprpaper="$HOME/.config/hypr/hyprpaper.conf" +dir="$HOME/.config/rofi/launchers/type-7" +theme='style-9' + +wallpapers_dir="$HOME/Pictures/wallpapers" + +opciones_monitors="" +opciones_wallpapers="" +lineas_wallpapers=0 + +label="󰍹_Monitor: " +label_w="_Wallpaper: " + +linea4=$( sed -n '4p' ~/.bashrc ) +valor_tem=$(echo $linea4 | cut -d '=' -f2) +wengine_setter_tema=$wengine_setter_tema$valor_tem + +opciones_wallpapers=$opciones_wallpapers"kill ~ none\n" +while read -r nombre url scaling; do + ID=$(cut -c 56-$lenght <<< $url) + img="$HOME/Pictures/.cache_wgengine/$ID.png" + nombre=$(printf '%-35s' "$nombre") + if [ -e "$img" ]; then + opciones_wallpapers=$opciones_wallpapers$nombre" ~ "$url" ~ "$scaling"\0icon\x1f$img\n" + else + opciones_wallpapers=$opciones_wallpapers$nombre" ~ "$url" ~ "$scaling"\0icon\x1f$not_found\n" + fi +done < ~/scripts/wallpapers_list.txt + + +wallpaper=$(echo -e "$opciones_wallpapers" | rofi -dmenu -p "$label_w" -theme ${dir}/${theme}.rasi ) + if [ -z "$wallpaper" ]; then + exit 1 + fi + +IFS='~' read -r -a partes <<< "$wallpaper" + +wallpaper=${partes[1]} +opc=${partes[0]} +scaling=${partes[2]} + + +wallpaper=$(echo "$wallpaper" | sed 's/^[ \t]*//;s/[ \t]*$//') +opc=$(echo "$opc" | sed 's/^[ \t]*//;s/[ \t]*$//') + +#poner wallpaper al inicio del archivo de wallpapers +#primero eliminar fila + sed -i "/^$opc[[:space:]]/d" ~/scripts/wallpapers_list.txt + sed -i "1i$opc $wallpaper $scaling" ~/scripts/wallpapers_list.txt + + +if [ $opc == 'kill' ]; then + killall linux-wallpaperengine + sed -i "/^sh /c\sh ${setwallpaper} > /dev/null \&" "$wengine_setter" + sed -i "/^sh /c\sh ${setwallpaper} > /dev/null \&" "$wengine_setter_tema" +else + + temp_mon=$( hyprctl monitors -j | jq -r '.[].name' ) + + while IFS= read -r line + do + ruta=$(grep "wallpaper = $line," $hyprpaper | cut -d',' -f2) + opciones_monitors="$opciones_monitors$line""\0icon\x1f$ruta\n" + done <<< "$temp_mon" + + + monitor=$( echo -e "$opciones_monitors" |rofi -dmenu -p "$label" -theme ${dir}/${theme}.rasi ) + + IFS='\0icon' read -r -a partes <<< "$monitor" + + monitor=${partes[0]} + echo "MONITORES: "$monitor + + if [ -z "$monitor" ]; then + exit 1 + fi + + echo "HACIENDO SED DE :>>>>>>>"$monitor + sed -i "/#${monitor} preload/{n;s|^sh .*|sh ${setwallpaper} ${wallpaper} ${monitor} ${scaling} > /dev/null \& |}" "$wengine_setter" + #sed -i "/#${monitor} preload/{n;s|^sh .*|sh ${setwallpaper} ${wallpaper} ${monitor} ${scaling} |}" "$wengine_setter_tema" + + #PYWAL GENERATE + lenght=$(echo $wallpaper| wc -c) + workspace_ID=$(cut -c 56-$lenght <<< $wallpaper) + IMG_PATH=$HOME'/Pictures/.cache_wgengine/'$workspace_ID'.png' + + if [ -e "$IMG_PATH" ]; then + echo "El archivo existe" + else + linux-wallpaperengine --bg $workspace_ID --screenshot $IMG_PATH > /dev/null & + sleep 3 + echo "El archivo no existe" + echo "archivo creado>>>"$IMG_PATH + fi + + sh $HOME/.config/ranger/set_wallpaper.sh $IMG_PATH $monitor +fi + +killall linux-wallpaperengine +sh $wengine_setter diff --git a/document_finder.sh b/document_finder.sh new file mode 100755 index 0000000..20344a0 --- /dev/null +++ b/document_finder.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# Ruta a tu carpeta de documentos +DOC_DIR="$HOME/Documents" +CACHE="$DOC_DIR/Docs/rofi_documentos.txt" + +# Mapeo de íconos Nerd Fonts por extensión +get_icon() { + case "${1##*.}" in + pdf) echo "" ;; # ícono de PDF (nf-mdi-file_pdf_box) + txt|md|log) echo "" ;; # ícono de texto + doc|docx) echo "" ;; # ícono de Word + xls|xlsx) echo "" ;; # Excel + ppt|pptx) echo "" ;; # PowerPoint + *) echo "" ;; # genérico + esac +} + +# Si el caché no existe o tiene más de 60 segundos, actualízalo +if [[ ! -f "$CACHE" ]]; then + find "$DOC_DIR" -type f \( -iname '*.pdf' \) > "$CACHE" +fi + + +# Crear lista formateada con íconos +list="" +while IFS= read -r file; do + icon=$(get_icon "$file") + base=$(basename "$file") + list+="$icon $base ::$file\n" +done < "$CACHE" + + +# Mostrar menú con rofi +seleccion=$(echo -e "$list" | rofi -dmenu -markup-rows -p " Documentos") + +# Extraer solo el nombre del archivo +archivo=$(echo "$seleccion" | cut -d' ' -f2-) + +echo "SELECCION :>>>"$seleccion +echo "ARCHIVO :>>>"$archivo + +# Abrir si se seleccionó algo +[[ -z "$archivo" ]] && exit + +# Buscar la ruta completa del archivo +#ruta=$(find "$DOC_DIR" -type f -name "$archivo" | head -n 1) +ruta="${seleccion##*::}" + +firefox -P default-release "$ruta" & + diff --git a/fan_scripts/fan_auto.sh b/fan_scripts/fan_auto.sh new file mode 100755 index 0000000..5c1dc32 --- /dev/null +++ b/fan_scripts/fan_auto.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# Establecer configuración automática (como la que configuraste inicialmente) +sudo sed -i 's/MINTEMP=45/MINTEMP=36/' /etc/fancontrol +sudo sed -i 's/MAXTEMP=50/MAXTEMP=82/' /etc/fancontrol +sudo systemctl restart fancontrol + diff --git a/fan_scripts/fan_silent.sh b/fan_scripts/fan_silent.sh new file mode 100755 index 0000000..2d48c62 --- /dev/null +++ b/fan_scripts/fan_silent.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# Establecer configuración silenciosa +sudo sed -i 's/MINTEMP=36/MINTEMP=45/' /etc/fancontrol +sudo sed -i 's/MAXTEMP=82/MAXTEMP=50/' /etc/fancontrol +sudo systemctl restart fancontrol + diff --git a/fan_scripts/fan_turbo.sh b/fan_scripts/fan_turbo.sh new file mode 100755 index 0000000..a737a5d --- /dev/null +++ b/fan_scripts/fan_turbo.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# Establecer configuración turbo +sudo sed -i 's/MINTEMP=36/MINTEMP=30/' /etc/fancontrol +sudo sed -i 's/MAXTEMP=82/MAXTEMP=90/' /etc/fancontrol +sudo systemctl restart fancontrol + diff --git a/fzfz.sh b/fzfz.sh new file mode 100755 index 0000000..09f0d5c --- /dev/null +++ b/fzfz.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Cambia esto por el directorio que quieras explorar +SEARCH_DIR="$HOME" + +# Buscar archivos y pasarlos a fzf +file=$(find "$SEARCH_DIR" -type f | fzf --height=40% --reverse --prompt="Abrir archivo: ") + +# Si no se seleccionó nada, salir +[[ -z "$file" ]] && exit + +# Obtener extensión +ext="${file##*.}" + +# Abrir según extensión +case "$ext" in + jpg|jpeg|png|gif) + imv "$file" & ;; + pdf) + firefox -P default-release "$file" & ;; + mp4|mkv) + mpv "$file" & ;; + txt|md|log|sh) + alacritty -e nvim "$file" & ;; + *) + xdg-open "$file" & ;; +esac + diff --git a/get_flag.sh b/get_flag.sh new file mode 100755 index 0000000..c18d3a7 --- /dev/null +++ b/get_flag.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +country_code=$(curl -s http://ip-api.com/json/ | jq -r '.countryCode') + +#python3 -c "code='$country_code'; print(''.join([chr(127397 + ord(c)) for c in code]))" + +echo $country_code + + diff --git a/get_raspi_info.sh b/get_raspi_info.sh new file mode 100755 index 0000000..260c37f --- /dev/null +++ b/get_raspi_info.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +temp_hdd=$(ssh arthur@192.168.1.131 "sudo smartctl -A /dev/sdb | grep -i temperature") +temp_cpu=$(ssh arthur@192.168.1.131 "vcgencmd measure_temp") +used_mem=$(ssh arthur@192.168.1.131 "free -gth| grep Mem") +used_disk=$(ssh arthur@192.168.1.131 "df -h| grep /dev/sdb2") + +temp_hdd_f=$(cut -c 85-90 <<< $temp_hdd) +temp_cpu_f=$(cut -c 6-11 <<< $temp_cpu) +total_mem_f=$(cut -c 16-19 <<< $used_mem) +used_mem_f=$(cut -c 28-31 <<< $used_mem) +used_disk_f1=$(cut -c 29-37 <<< $used_disk) + +output="HDD:"$temp_hdd_f"'C "$used_disk_f1"\n""CPU: "$temp_cpu_f"\n""MEM: "$used_mem_f/""$total_mem_f"\n" +echo $output + +notify-send -t 15000 -i /home/arthur/scripts/pngegg.png "Raspberry pi" "$output" diff --git a/hypr-sleep.sh b/hypr-sleep.sh new file mode 100755 index 0000000..33b3416 --- /dev/null +++ b/hypr-sleep.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# Bloquear pantalla (opcional) +# hyprlock & sleep 1 +openrgb -p /home/arthur/.config/OpenRGB/alloff.orp +hyprctl dispatch exit +# Suspend +systemctl suspend diff --git a/hypr-wakeup.sh b/hypr-wakeup.sh new file mode 100755 index 0000000..651d208 --- /dev/null +++ b/hypr-wakeup.sh @@ -0,0 +1,4 @@ +#!/bin/bash +hyprland +echo "Se reanudó del suspend" >> /tmp/resume.log +sleep 3 diff --git a/launcher_apps.sh b/launcher_apps.sh new file mode 100755 index 0000000..59d06a0 --- /dev/null +++ b/launcher_apps.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +apps="" +opciones_apps="" +while read -r icono nombre comando ; do + nombre=$( printf '%-40s' "$nombre" ) + opciones_apps=$opciones_apps$icono" |"$nombre"|"$comando"\n" +done < ~/scripts/aplicaciones.txt + + +dir="$HOME/.config/rofi/launchers/type-7" +theme='style-2' + +app=$( echo -e "$opciones_apps" | rofi -show -dmenu -p "Ejecutar aplicacion" ) + +IFS='|' read -r -a partes <<< "$app" +command=${partes[3]} +$command & diff --git a/mount.sh b/mount.sh new file mode 100755 index 0000000..686bd71 --- /dev/null +++ b/mount.sh @@ -0,0 +1,2 @@ +#!/bin/bash +echo bryan2423 | sudo mount -t cifs //192.168.1.131/ROOMS /home/arthur/rooms -o username=arthur,password=bryan2423,uid=1000,gid=1000,vers=3.0 diff --git a/mountDo.sh b/mountDo.sh new file mode 100755 index 0000000..2e9245b --- /dev/null +++ b/mountDo.sh @@ -0,0 +1,2 @@ +sudo mount -t cifs //192.168.1.131/Music /home/arthur/Music -o username=arthur,password=bryan2423,uid=1000,gid=1000,vers=3.0 +ers=3.0 diff --git a/mountMusic.sh b/mountMusic.sh new file mode 100755 index 0000000..e69de29 diff --git a/mountPx.sh b/mountPx.sh new file mode 100755 index 0000000..0c69fab --- /dev/null +++ b/mountPx.sh @@ -0,0 +1 @@ +sudo mount -t cifs //192.168.1.131/Pictures /home/arthur/Px -o username=arthur,password=bryan2423,uid=1000,gid=1000,vers=3.0 diff --git a/moutOT.sh b/moutOT.sh new file mode 100755 index 0000000..aa6dcf2 --- /dev/null +++ b/moutOT.sh @@ -0,0 +1 @@ +sudo mount -t cifs //192.168.1.131/OT /home/arthur/PROJ -o username=arthur,password=bryan2423,uid=1000,gid=1000,vers=3.0 diff --git a/move_all_wkspce.sh b/move_all_wkspce.sh new file mode 100755 index 0000000..1e2484e --- /dev/null +++ b/move_all_wkspce.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +for ws in 1 2; do + hyprctl dispatch workspace "$ws" + sleep 0.1 # espera breve para el cambio de workspace + + while hyprctl activewindow | grep -q 'class'; do + hyprctl dispatch killactive + sleep 0.1 + done +done diff --git a/off-all-screens.sh b/off-all-screens.sh new file mode 100755 index 0000000..ed133c6 --- /dev/null +++ b/off-all-screens.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +hyprctl dispatch dpms off DP-3 +hyprctl dispatch dpms off DP-2 +hyprctl dispatch dpms on HDMI-A-1 + diff --git a/on-all-screens.sh b/on-all-screens.sh new file mode 100755 index 0000000..e63d7b7 --- /dev/null +++ b/on-all-screens.sh @@ -0,0 +1,6 @@ +#!/bin/bash + + hyprctl dispatch dpms on DP-3 + hyprctl dispatch dpms on DP-2 + hyprctl dispatch dpms on HDMI-A-1 + diff --git a/pngegg.png b/pngegg.png new file mode 100755 index 0000000..c45c711 Binary files /dev/null and b/pngegg.png differ diff --git a/pulseaudio.sh b/pulseaudio.sh new file mode 100755 index 0000000..7dc8ea8 --- /dev/null +++ b/pulseaudio.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# Obtener el índice del sink actual +CURRENT_SINK=$(pactl info | grep 'Default Sink' | awk '{print $3}') + +# Obtener la lista de sinks disponibles +SINKS=($(pactl list short sinks | awk '{print $2}')) + +# Buscar el índice actual en la lista +for i in "${!SINKS[@]}"; do + if [[ "${SINKS[$i]}" = "$CURRENT_SINK" ]]; then + CURRENT_INDEX=$i + break + fi +done + +# Calcular el siguiente sink +NEXT_INDEX=$(( (CURRENT_INDEX + 1) % ${#SINKS[@]} )) +NEXT_SINK=${SINKS[$NEXT_INDEX]} + +# Cambiar el sink por defecto +pactl set-default-sink "$NEXT_SINK" + +# Mover todas las entradas de audio al nuevo sink +for INPUT in $(pactl list short sink-inputs | awk '{print $1}'); do + pactl move-sink-input "$INPUT" "$NEXT_SINK" +done + +# Obtener el nombre legible del nuevo sink +SINK_DESCRIPTION=$(pactl list sinks | awk -v sink="$NEXT_SINK" ' + $0 ~ "Name: "sink { + found=1 + } + found && $0 ~ /Description:/ { + print substr($0, index($0,$2)) + exit + }') + +# Enviar notificación con swaync +notify-send -a "Audio Switcher" -i audio-speakers "Salida de audio cambiada" "$SINK_DESCRIPTION" diff --git a/pyprojs/xbox-buttons-test.py b/pyprojs/xbox-buttons-test.py new file mode 100755 index 0000000..d824fe4 --- /dev/null +++ b/pyprojs/xbox-buttons-test.py @@ -0,0 +1,18 @@ +import pygame + +pygame.init() +pygame.joystick.init() + +joystick = pygame.joystick.Joystick(0) +joystick.init() + +print(f"Control detectado: {joystick.get_name()}") +print("Presiona botones, Ctrl+C para salir.") + +while True: + pygame.event.pump() + for i in range(joystick.get_numbuttons()): + if joystick.get_button(i): + print(f"Botón {i} presionado") + pygame.time.wait(100) + diff --git a/pyprojs/xbox_control.py b/pyprojs/xbox_control.py new file mode 100755 index 0000000..a18b04b --- /dev/null +++ b/pyprojs/xbox_control.py @@ -0,0 +1,75 @@ +import pyudev +import subprocess + +def procesar_dispositivo_conectado(device, inicial=False): + vendor_id = device.get('ID_VENDOR_ID', '') + model_id = device.get('ID_MODEL_ID', '') + name = device.get('NAME', '') + device_str = f"{vendor_id}:{model_id} - {name}" + + + if "Xbox" in name: + print(f"{'🔍' if inicial else '🎮'} Xbox detectado: {device_str}") + if not inicial: + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "DP-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "DP-2"]) + + elif vendor_id.lower() == '2dc8': + print(f"{'🔍' if inicial else '🎮'} 8BitDo detectado: {device_str}") + if not inicial: + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-2"]) + if not vendor_id: + return # Ignorar dispositivos sin vendor_id + +def evento_callback(device): + if device.subsystem != 'input': + return + if device.action == 'add': + procesar_dispositivo_conectado(device) + elif device.action == 'remove': + print(f"❌ Dispositivo desconectado: {device.device_path}") + +# -------------------------- +# 🔍 Detectar dispositivos ya conectados +# -------------------------- +context = pyudev.Context() +print(context.list_devices) +print("🔍 Buscando controles ya conectados...") + +subprocess.run(["hyprctl", "dispatch", "dpms", "off", "HDMI-A-1"]) +subprocess.run(["hyprctl", "dispatch", "dpms", "on", "DP-1"]) +subprocess.run(["hyprctl", "dispatch", "dpms", "on", "DP-2"]) +for device in context.list_devices(subsystem='input'): + + vendor_id = device.get('ID_VENDOR_ID', '') + model_id = device.get('ID_MODEL_ID', '') + name = device.get('NAME', '') + device_str = f"{vendor_id}:{model_id} - {name}" + print(device_str) + if "8Bit" in name: + print("LOGRE DETECTAR EL CONTROL DE 8BIT") + positivo_conectado(device, inicial = False) + + + if "Xbox" in name: + print("LOGRE DETECTAR EL CONTROL DE XBOX") + procesar_dispositivo_conectado(device, inicial=True) + + + + +# -------------------------- +# 👂 Escuchar nuevos eventos +# -------------------------- +monitor = pyudev.Monitor.from_netlink(context) +monitor.filter_by(subsystem='input') +observer = pyudev.MonitorObserver(monitor, callback=evento_callback) +observer.start() + +print("👀 Escuchando eventos de controles...") +import signal +signal.pause() + diff --git a/pyprojs/xbox_py_screen.py b/pyprojs/xbox_py_screen.py new file mode 100755 index 0000000..f3450ca --- /dev/null +++ b/pyprojs/xbox_py_screen.py @@ -0,0 +1,347 @@ +import pygame +import os +import pyautogui +import time +import subprocess +import math +import time + +class Timer: + def __init__(self): + self.last_time = time.time() + + def elapsed_time(self): + current_time = time.time() + elapsed = current_time - self.last_time + self.last_time = current_time + return elapsed + + +# Inicializa pygame +#variable que indica si ya se conecto el mando y ya se cambio de pantalla +pantalla_pp = False +pygame.init() +pygame.joystick.init() + +hay_mando = False +# Inicializa el mando de Xbox + + +# Define los códigos de los botones que deseas detectar +BOTON_A = 0 +BOTON_B = 1 +BOTON_X = 3 +BOTON_Y = 4 +BOTON_START = 11 +BOTON_SELECT = 10 +BOTON_L1 = 6 +BOTON_R1 = 7 +BOTON_L3 = 13 +BOTON_R3 = 14 +HOME = 12 + +flag_display = True + +#CEMU PATHS +path_8bitdo_CEMU = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/8bit.xml" +path_Sunshine_CEMU = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/sunshine.xml" +path_switch_CEMU = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/switch.xml" +path_xbox_CEMU = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/xbox.xml" +path_ps4_CEMU = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/ps4.xml" +path_controller0 = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/controller0.xml" +path_controller1 = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/controller1.xml" +path_controller2 = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/controller2.xml" +path_controller3 = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/controller3.xml" + + +#RIUJINX PATHS +path_xbox_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/xbox.json" +path_8bitdo_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/8bit.json" +path_sunshine_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/sunshine.json" +path_ps4_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/ps4.json" +path_switch_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/switch.json" +path_config_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/Config.json" + +# Función para cambiar al modo de pantalla principal +def salida(): + return + +def cambiar_ventana(): + pyautogui.hotkey("alt", "tab") + +def cambiar_ventana2(): + pyautogui.keyDown("alt") + pyautogui.hotkey("tab", "tab","Enter") + pyautogui.keyUp("alt") + +def ctrl_alt_sprm(): + pyautogui.hotkey("ctrl","alt","del") + +def f11(): + pyautogui.hotkey("F11") + +def WinLeft(): + pyautogui.hotkey("win","shift","left") + +def WinRight(): + pyautogui.hotkey("win","shift","right") + +def Up(): + pyautogui.hotkey("up", "up") + +def Down(): + pyautogui.hotkey("down","down") + + +def Enter(): + pyautogui.hotkey("enter") + +def TAB(): + pyautogui.hotkey("tab") + +def Space(): + pyautogui.hotkey("space") + +def Kill(): + pyautogui.hotkey("alt","F4") + +def Esc(): + #pyautogui.hotkey("win","shift","1") + subprocess.run(["xdotool", "key", "Super_L+Shift+1"]) + +def Insert(): + pyautogui.hotkey("insert") + +def NextDevice(): + pyautogui.hotkey('ctrl','o') + +def PrevDevice(): + pyautogui.hotkey('ctrl','p') + +def Click(): + pyautogui.click() + +def Minimize(): + pyautogui.hotkey("win","m") + + +def SwitchScreens1(): + print("switchScreen1") + #TurnScreen('Disable',1) + #T#urnScreen('Disable',2) + #TurnScreen('Enable',3) + +def SwitchScreens2(): + print("switchScreen2") + #TurnScreen('Enable',1) + #TurnScreen('Enable',2) + #TurnScreen('Disable',3) + + +def TurnScreen(mode,display): + print("TurnScreen") + #os.system(f'powershell {mode}-Display {display}') + + +def main(): + timer = Timer() + + # Función para detectar la conexión del mando de Xbox + while not hay_mando: + pygame.event.get() + pygame.time.delay(935) + num_joysticks = pygame.joystick.get_count() + num_joysticks_b = num_joysticks + + if num_joysticks >= 1: + name_control = "-" + print(name_control) + + try: + joystick = pygame.joystick.Joystick(0) + joystick.init() + name_control = joystick.get_name() + print("Mando detectado:", name_control) + except pygame.error as e: + print("Error al inicializar el joystick:", e) + joystick = None + + indexi = name_control.find("8BitDo") + if indexi != -1: + print("FLUJO 8BITDO ***") + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "DP-2"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "DP-3"]) + subprocess.run(["cp", path_8bitdo_CEMU, path_controller0]) + subprocess.run(["cp", path_xbox_CEMU, path_controller1]) + subprocess.run(["cp", path_ps4_CEMU, path_controller2]) + subprocess.run(["cp", path_8bitdo_RYUJINX, path_config_RYUJINX]) + + # Define los códigos de los botones que deseas detectar + BOTON_A = 0 + BOTON_B = 1 + BOTON_X = 2 + BOTON_Y = 3 + BOTON_START = 7 + BOTON_SELECT = 6 + BOTON_L1 = 4 + BOTON_R1 = 5 + BOTON_L3 = 9 + BOTON_R3 = 10 + HOME = 8 + + indexi = name_control.find("One") + if indexi != -1: + print("FLUJO SUNSHINE ***") + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-2"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-3"]) + subprocess.run(["cp", path_Sunshine_CEMU, path_controller0]) + subprocess.run(["cp", path_sunshine_RYUJINX, path_config_RYUJINX]) + + # Define los códigos de los botones que deseas detectar + BOTON_A = 0 + BOTON_B = 1 + BOTON_X = 2 + BOTON_Y = 3 + BOTON_START = 7 + BOTON_SELECT = 6 + BOTON_L1 = 4 + BOTON_R1 = 5 + BOTON_L3 = 9 + BOTON_R3 = 10 + HOME = 8 + + indexi = name_control.find("Nintendo") + if indexi != -1: + print("FLUJO SUNSHINE N.SWITCH ***") + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-2"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-3"]) + subprocess.run(["cp", path_switch_CEMU, path_controller0]) + subprocess.run(["cp", path_switch_RYUJINX, path_config_RYUJINX]) + + # Define los códigos de los botones que deseas detectar + BOTON_A = 0 + BOTON_B = 1 + BOTON_X = 2 + BOTON_Y = 3 + BOTON_START = 10 + BOTON_SELECT = 9 + BOTON_L1 = 5 + BOTON_R1 = 6 + BOTON_L3 = 12 + BOTON_R3 = 13 + HOME = 11 + + + + indexi = name_control.find("Series") + if indexi != -1: + print("FLUJO XBOX ***" ) + print(name_control) + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-2"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-3"]) + subprocess.run(["cp", path_8bitdo_CEMU, path_controller1]) + subprocess.run(["cp", path_xbox_CEMU, path_controller0]) + subprocess.run(["cp", path_ps4_CEMU, path_controller2]) + subprocess.run(["cp", path_xbox_RYUJINX, path_config_RYUJINX]) + + BOTON_A = 0 + BOTON_B = 1 + BOTON_X = 3 + BOTON_Y = 4 + BOTON_START = 11 + BOTON_SELECT = 10 + BOTON_L1 = 6 + BOTON_R1 = 7 + BOTON_L3 = 13 + BOTON_R3 = 14 + HOME = 12 + + indexi = name_control.find("PS4") + if indexi != -1: + print("FLUJO PS4 ***" ) + print(name_control) + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-2"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-3"]) + subprocess.run(["cp", path_8bitdo_CEMU, path_controller2]) + subprocess.run(["cp", path_xbox_CEMU, path_controller1]) + subprocess.run(["cp", path_ps4_CEMU, path_controller0]) + subprocess.run(["cp", path_ps4_RYUJINX, path_config_RYUJINX]) + + + BOTON_A = 0 + BOTON_B = 1 + BOTON_X = 2 + BOTON_Y = 3 + BOTON_START = 6 + BOTON_SELECT = 4 + BOTON_L1 = 9 + BOTON_R1 = 10 + BOTON_L3 = 7 + BOTON_R3 = 8 + HOME = 5 + + + sensitivity = 10 + elapsed_time = 0.0 + elapsed_time_past = 0.0 + while True: + #for event in pygame.event.get(): + event = pygame.event.wait() + ############ START BOTON ################ + + #PREVIOS VOLUME DEVICE + if (joystick.get_button(BOTON_START) and + joystick.get_button(BOTON_A)): + subprocess.run(["hyprctl", "dispatch", "movetoworkspace", "8"]) + + if (joystick.get_button(BOTON_START) and + joystick.get_button(BOTON_L1)): + subprocess.run(["killall", "pcsx2-qt"]) + subprocess.run(["hyprctl", "dispatch", "killactive"]) + + if (joystick.get_button(BOTON_START) and + joystick.get_button(BOTON_R1)): + subprocess.run(["hyprctl", "dispatch", "togglefloating"]) + + if (joystick.get_button(BOTON_START) and + joystick.get_button(BOTON_X)): + subprocess.run(["hyprctl", "dispatch", "workspace", "8"]) + + if (joystick.get_button(BOTON_START) and + joystick.get_button(BOTON_B)): + subprocess.run(["sh", "/home/arthur/scripts/pulseaudio.sh"]) + + + ############ SELECT BOTON ################ + if (joystick.get_button(BOTON_SELECT) and + joystick.get_button(BOTON_L1)): + subprocess.run(["hyprctl", "dispatch","fullscreen"]) + + if (joystick.get_button(BOTON_SELECT) and + joystick.get_button(BOTON_Y)): + subprocess.run(["wofi", "--show","drun"]) + + + if (joystick.get_button(BOTON_SELECT) and + joystick.get_button(BOTON_X)): + subprocess.run(["hyprctl","dispatch","exec", "firefox","default-release", "http://192.168.1.131:3000", "&"]) + + + + num_joysticks = pygame.joystick.get_count() + + if num_joysticks <=0: + print("discornected") + break + +def is_joystick_disconnected(joystick): + # Verificar si el joystick está inicializado + return not joystick.get_init() + +if __name__ == "__main__": + main() diff --git a/pyprojs/xbox_py_screen.py.bk1 b/pyprojs/xbox_py_screen.py.bk1 new file mode 100755 index 0000000..e7fa939 --- /dev/null +++ b/pyprojs/xbox_py_screen.py.bk1 @@ -0,0 +1,284 @@ +import pygame +import os +import pyautogui +import time +import subprocess +import math +import time + +class Timer: + def __init__(self): + self.last_time = time.time() + + def elapsed_time(self): + current_time = time.time() + elapsed = current_time - self.last_time + self.last_time = current_time + return elapsed + + +# Inicializa pygame +#variable que indica si ya se conecto el mando y ya se cambio de pantalla +pantalla_pp = False +pygame.init() +pygame.joystick.init() + +hay_mando = False +# Inicializa el mando de Xbox + + +# Define los códigos de los botones que deseas detectar +BOTON_A = 0 +BOTON_B = 1 +BOTON_X = 3 +BOTON_Y = 4 +BOTON_START = 11 +BOTON_SELECT = 10 +BOTON_L1 = 6 +BOTON_R1 = 7 +BOTON_L3 = 13 +BOTON_R3 = 14 +HOME = 12 + +flag_display = True + +#CEMU PATHS +path_8bitdo_CEMU = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/8bit.xml" +path_Sunshine_CEMU = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/sunshine.xml" +path_xbox_CEMU = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/xbox.xml" +path_controller0 = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/controller0.xml" +path_controller1 = "/home/arthur/.var/app/info.cemu.Cemu/config/Cemu/controllerProfiles/controller1.xml" + + +#RIUJINX PATHS +path_xbox_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/xbox.json" +path_8bitdo_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/8bit.json" +path_sunshine_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/sunshine.json" +path_config_RYUJINX = "/home/arthur/.var/app/io.github.ryubing.Ryujinx/config/Ryujinx/Config.json" + + +# Función para cambiar al modo de pantalla principal +def salida(): + return + +def cambiar_ventana(): + pyautogui.hotkey("alt", "tab") + +def cambiar_ventana2(): + pyautogui.keyDown("alt") + pyautogui.hotkey("tab", "tab","Enter") + pyautogui.keyUp("alt") + +def ctrl_alt_sprm(): + pyautogui.hotkey("ctrl","alt","del") + +def f11(): + pyautogui.hotkey("F11") + +def WinLeft(): + pyautogui.hotkey("win","shift","left") + +def WinRight(): + pyautogui.hotkey("win","shift","right") + +def Up(): + pyautogui.hotkey("up", "up") + +def Down(): + pyautogui.hotkey("down","down") + + +def Enter(): + pyautogui.hotkey("enter") + +def TAB(): + pyautogui.hotkey("tab") + +def Space(): + pyautogui.hotkey("space") + +def Kill(): + pyautogui.hotkey("alt","F4") + +def Esc(): + #pyautogui.hotkey("win","shift","1") + subprocess.run(["xdotool", "key", "Super_L+Shift+1"]) + +def Insert(): + pyautogui.hotkey("insert") + +def NextDevice(): + pyautogui.hotkey('ctrl','o') + +def PrevDevice(): + pyautogui.hotkey('ctrl','p') + +def Click(): + pyautogui.click() + +def Minimize(): + pyautogui.hotkey("win","m") + + +def SwitchScreens1(): + print("switchScreen1") + #TurnScreen('Disable',1) + #T#urnScreen('Disable',2) + #TurnScreen('Enable',3) + +def SwitchScreens2(): + print("switchScreen2") + #TurnScreen('Enable',1) + #TurnScreen('Enable',2) + #TurnScreen('Disable',3) + + +def TurnScreen(mode,display): + print("TurnScreen") + #os.system(f'powershell {mode}-Display {display}') + + +def main(): + timer = Timer() + + # Función para detectar la conexión del mando de Xbox + while not hay_mando: + pygame.event.get() + pygame.time.delay(535) + num_joysticks = pygame.joystick.get_count() + num_joysticks_b = num_joysticks + + if num_joysticks >= 1: + name_control = "-" + print(name_control) + + try: + joystick = pygame.joystick.Joystick(0) + joystick.init() + name_control = joystick.get_name() + print("Mando detectado:", name_control) + except pygame.error as e: + print("Error al inicializar el joystick:", e) + joystick = None + + indexi = name_control.find("8BitDo") + if indexi != -1: + print("FLUJO 8BITDO ***") + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "DP-2"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "DP-3"]) + subprocess.run(["cp", path_8bitdo_CEMU, path_controller0]) + subprocess.run(["cp", path_xbox_CEMU, path_controller1]) + subprocess.run(["cp", path_8bitdo_RYUJINX, path_config_RYUJINX]) + + # Define los códigos de los botones que deseas detectar + BOTON_A = 0 + BOTON_B = 1 + BOTON_X = 2 + BOTON_Y = 3 + BOTON_START = 7 + BOTON_SELECT = 6 + BOTON_L1 = 4 + BOTON_R1 = 5 + BOTON_L3 = 9 + BOTON_R3 = 10 + HOME = 8 + else: + indexi = name_control.find("One") + if indexi != -1: + print("FLUJO SUNSHINE ***") + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-2"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-3"]) + subprocess.run(["cp", path_Sunshine_CEMU, path_controller0]) + subprocess.run(["cp", path_sunshine_RYUJINX, path_config_RYUJINX]) + + # Define los códigos de los botones que deseas detectar + BOTON_A = 0 + BOTON_B = 1 + BOTON_X = 2 + BOTON_Y = 3 + BOTON_START = 7 + BOTON_SELECT = 6 + BOTON_L1 = 4 + BOTON_R1 = 5 + BOTON_L3 = 9 + BOTON_R3 = 10 + HOME = 8 + + else: + print("FLUJO XBOX ELSE ***" ) + print(name_control) + subprocess.run(["hyprctl", "dispatch", "dpms", "on", "HDMI-A-1"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-2"]) + subprocess.run(["hyprctl", "dispatch", "dpms", "off", "DP-3"]) + subprocess.run(["cp", path_8bitdo_CEMU, path_controller1]) + subprocess.run(["cp", path_xbox_CEMU, path_controller0]) + subprocess.run(["cp", path_xbox_RYUJINX, path_config_RYUJINX]) + + + BOTON_A = 0 + BOTON_B = 1 + BOTON_X = 3 + BOTON_Y = 4 + BOTON_START = 11 + BOTON_SELECT = 10 + BOTON_L1 = 6 + BOTON_R1 = 7 + BOTON_L3 = 13 + BOTON_R3 = 14 + HOME = 12 + + + + sensitivity = 10 + elapsed_time = 0.0 + elapsed_time_past = 0.0 + while True: + #for event in pygame.event.get(): + event = pygame.event.wait() + ############ START BOTON ################ + + #PREVIOS VOLUME DEVICE + if (joystick.get_button(BOTON_START) and + joystick.get_button(BOTON_A)): + subprocess.run(["hyprctl", "dispatch", "movetoworkspace", "8"]) + + if (joystick.get_button(BOTON_START) and + joystick.get_button(BOTON_L1)): + subprocess.run(["hyprctl", "dispatch", "killactive"]) + subprocess.run(["killall", "Ryujinx"]) + subprocess.run(["killall", "pcsx2-qt"]) + + if (joystick.get_button(BOTON_START) and + joystick.get_button(BOTON_R1)): + subprocess.run(["hyprctl", "dispatch", "togglefloating"]) + + if (joystick.get_button(BOTON_START) and + joystick.get_button(BOTON_X)): + subprocess.run(["hyprctl", "dispatch", "workspace", "8"]) + + #if (joystick.get_button(BOTON_START) and + # joystick.get_button(BOTON_B)): + #subprocess.run(["sh", "/home/arthur/scripts/pulseaudio.sh"]) + + + ############ SELECT BOTON ################ + if (joystick.get_button(BOTON_SELECT) and + joystick.get_button(BOTON_L1)): + subprocess.run(["hyprctl", "dispatch","fullscreen"]) + + + + num_joysticks = pygame.joystick.get_count() + + if num_joysticks <=0: + print("discornected") + break + +def is_joystick_disconnected(joystick): + # Verificar si el joystick está inicializado + return not joystick.get_init() + +if __name__ == "__main__": + main() diff --git a/rofi_run_script.sh b/rofi_run_script.sh new file mode 100755 index 0000000..90f3a3d --- /dev/null +++ b/rofi_run_script.sh @@ -0,0 +1,26 @@ +#!/bin/bash +source ~/scripts/constantlib.sh + +scripts=$(ls ~/scripts/*.sh) +label="Ejecutar_comando_󰆍" +lines=$( ls ~/scripts/*.sh 2>/dev/null | wc -l ) + +echo "LINEAS:"$lines + +#script=$(echo -e "$scripts" | dmenu -l $(( lines )) -p "$label" -nb "$nb_color" -nf "$nf_color" -sb "$sb_color" -sf "$sf_color" -fn "$fn_text") +script=$(echo -e "$scripts" | rofi -dmenu -p $label) + + +if grep -q "sudo" "$script"; then + password=$( echo -e "contraseña de sudo" |rofi -dmenu -l 1 -p "󰟵 Contraseña sudo:" ) + + if [[ -z "$password" ]]; then + notify-send "Cancelado" "No se ejecutó el script" + exit 1 + fi + + # Ejecutar el script con la contraseña usando sudo -S + echo "$password" | sudo -S sh "$script" +else + sh "$script" +fi diff --git a/set-wallpaperengine.sh b/set-wallpaperengine.sh new file mode 100755 index 0000000..dc8d3bc --- /dev/null +++ b/set-wallpaperengine.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +workspace_URL=$1 +monitor=$2 +scaling=$3 +lenght=$(echo $workspace_URL| wc -c) +workspace_ID=$(cut -c 56-$lenght <<< $workspace_URL) +echo "ID: "$workspace_ID +echo "URL: "$workspace_URL +echo "MONITOR: "$monitor + +if [ "$scaling" == '' ]; then + scaling='default' +fi + +linux-wallpaperengine --fps 30 --scaling $scaling -s --disable-parallax --screen-root $monitor --bg $workspace_ID diff --git a/showfps.sh b/showfps.sh new file mode 100755 index 0000000..c5a1f1c --- /dev/null +++ b/showfps.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +while true; do + FPS=$(hyprctl -j activeworkspace | jq '.monitorID' | xargs -I {} hyprctl -j monitors | jq ".[] | select(.id=={}) | .lastFrameTime" | awk '{ printf "%.0f", 1000 / $1 }') + echo "{\"text\":\"🎮 ${FPS} FPS\"}" + sleep 1 +done diff --git a/sv-vpn-call.sh b/sv-vpn-call.sh new file mode 100755 index 0000000..0091ca1 --- /dev/null +++ b/sv-vpn-call.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +INTERFAZ=$1 +output=$(sudo /home/arthur/scripts/sv-vpn.sh $INTERFAZ) +echo $output +if [ "$output" = 'Activando' ]; then + FLAG=$(sh /home/arthur/scripts/get_flag.sh) + notify-send "VPN Activada $FLAG" "Interfaz $INTERFAZ activada " +else + FLAG=$(sh /home/arthur/scripts/get_flag.sh) + notify-send "VPN Desactivada $FLAG" "Interfaz $INTERFAZ Desactivada " +fi diff --git a/sv-vpn.sh b/sv-vpn.sh new file mode 100755 index 0000000..5b7e71c --- /dev/null +++ b/sv-vpn.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Verificar si se pasó un parámetro +if [ -z "$1" ]; then + echo "Uso: $0 " + exit 1 +fi + +INTERFAZ="$1" + +# Verificar si la interfaz está activa +if sudo wg show $INTERFAZ > /dev/null 2>&1; then + echo "Desactivando" + sudo wg-quick down "$INTERFAZ" +else + echo "Activando" + sudo wg-quick up "$INTERFAZ" +fi + diff --git a/temp.sh b/temp.sh new file mode 100755 index 0000000..82322a1 --- /dev/null +++ b/temp.sh @@ -0,0 +1,2 @@ +sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ + https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' diff --git a/timer.sh b/timer.sh new file mode 100755 index 0000000..8ef7e24 --- /dev/null +++ b/timer.sh @@ -0,0 +1,38 @@ +#!/bin/bash +source ~/scripts/constantlib.sh + +# Archivo donde se guarda el estado del timer +STATE_FILE="/tmp/waybar_timer" +OPCIONES="1\n5\n10\n20\n30\n60" +LABEL="⏲️ Timer (min):" + +# Pedimos minutos con dmenu +minutes=$(echo -e $OPCIONES | rofi -dmenu -p "$LABEL" ) + +# Validamos si es un número +if ! [[ "$minutes" =~ ^[0-9]+$ ]]; then + exit 1 +fi + +# Convertimos a segundos +total_seconds=$((minutes * 60)) +end_time=$(( $(date +%s) + total_seconds )) + +# Guardamos el tiempo de finalización +echo "$end_time" > "$STATE_FILE" + +# Ejecutamos el timer en segundo plano +( + while [ $(date +%s) -lt "$end_time" ]; do + sleep 1 + done + notify-send -t 2000 -i /home/arthur/scripts/pngegg.png " Timer terminado" "se acabo' el tiempo" + notify-send -t 2000 -i /home/arthur/scripts/pngegg.png " Timer terminado" "se acabo' el tiempo" + paplay /usr/share/sounds/freedesktop/stereo/complete.oga + paplay /usr/share/sounds/freedesktop/stereo/complete.oga + paplay /usr/share/sounds/freedesktop/stereo/complete.oga + paplay /usr/share/sounds/freedesktop/stereo/complete.oga + paplay /usr/share/sounds/freedesktop/stereo/complete.oga + rm -f "$STATE_FILE" +) & + diff --git a/timer_module.sh b/timer_module.sh new file mode 100755 index 0000000..1654e2f --- /dev/null +++ b/timer_module.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +STATE_FILE="/tmp/waybar_timer" + +if [ ! -f "$STATE_FILE" ]; then + exit 0 +fi + +end_time=$(cat "$STATE_FILE") +now=$(date +%s) +remaining=$((end_time - now)) + +if [ "$remaining" -le 0 ]; then + exit 0 +fi + +# Formateamos tiempo como MM:SS +minutes=$((remaining / 60)) +seconds=$((remaining % 60)) + +printf '{"text": "⏳ %02d:%02d", "tooltip": "Timer"}\n' "$minutes" "$seconds" + diff --git a/toggle-theme-v2.sh b/toggle-theme-v2.sh new file mode 100755 index 0000000..fe7742c --- /dev/null +++ b/toggle-theme-v2.sh @@ -0,0 +1,106 @@ +#!/bin/bash +scope=$1 +themes=(gruvbox catpu nord) +kitty_config_path='/home/arthur/.config/kitty/' +dmenu_config_path='/home/arthur/scripts/constantlib.sh' +waybar_config_path='/home/arthur/.config/waybar/' +nvim_config_path='/home/arthur/.vimrc' +wofi_config_path='/home/arthur/.config/wofi/' +hyprpaper_config_path='/home/arthur/.config/hypr/' +starship_config_path='/home/arthur/.config/' +wengine_setter='/home/arthur/.config/themes/wallpaper-engine.sh' +setwallpaper_path='/home/arthur/.config/themes/wallpaper-engine.sh' +firefox_prefs='/home/arthur/.mozilla/firefox/8gto1yy4.default-release/user.js' +nwg_look_path='/home/arthur/.local/share/nwg-look/gsettings' +bashtop_path='/home/arthur/.config/bashtop/themes/theme.theme' +bashrc='/home/arthur/.bashrc' +rofi_path='/home/arthur/.config/rofi/config.rasi' + +catpu_wengine_dp3='https://steamcommunity.com/sharedfiles/filedetails/?id=3371368351' +gruvbox_wengine_dp2='https://steamcommunity.com/sharedfiles/filedetails/?id=3318790923' + +for tem in ${themes[@]} + do + if [ "$scope" = $tem ]; then + #variable de entorno + sed -i "/^export TEM/c\export TEM=$tem" "$bashrc" + export TEM=$tem + + #bashtop + cp $bashtop_path"."$tem $bashtop_path + + #ROFI + cp $rofi_path"."$tem $rofi_path + + #firefox + cp $firefox_prefs"."$tem $firefox_prefs + + #GTK-CONFIG + cp $nwg_look_path"."$tem $nwg_look_path + nwg-look -a + + #MODIFICAR KITTY + cp $kitty_config_path"kitty.conf."$tem $kitty_config_path"kitty.conf" + + #MODIFICAR DMENU + cp $dmenu_config_path"."$tem $dmenu_config_path + + #MODIFICAR WAYBAR + cp $waybar_config_path"style.css."$tem $waybar_config_path"style.css" + cp $waybar_config_path"config.jsonc."$tem $waybar_config_path"config.jsonc" + cp $waybar_config_path"modules.jsonc."$tem $waybar_config_path"modules.jsonc" + killall waybar + + #MODIFICAR WOFI + cp $wofi_config_path"style.css."$tem $wofi_config_path"style.css" + + #MODIFICAR STARSHIP + cp $starship_config_path"starship.toml."$tem $starship_config_path"starship.toml" + + + #MODIFICAR HYPRPAPER + cp $hyprpaper_config_path"hyprpaper.conf."$tem $hyprpaper_config_path"hyprpaper.conf" + killall hyprpaper + hyprpaper & + + + #MODIFICAR HYPRLAND + + if [ "$tem" = 'catpu' ]; then + #modificar nvim + sed -i "/^colorscheme /c\colorscheme catppuccin" "$nvim_config_path" + #modificar hyprland + sed -i "/^ col.active_border =/c\ col.active_border = rgb(98c379) rgb(61afef) 90deg" "$hyprpaper_config_path""hyprland.conf" + sed -i "/^ col.inactive_border =/c\ col.inactive_border = rgb(edbbb2) rgb(665c54) 90deg" "$hyprpaper_config_path""hyprland.conf" + fi + + if [ "$tem" = 'gruvbox' ]; then + #modificar neovim + sed -i "/^colorscheme /c\colorscheme melange" "$nvim_config_path" + #modificar hyprland + sed -i "/^ col.active_border =/c\ col.active_border = rgb(fbf1c7) rgb(fbf1c7) 270deg" "$hyprpaper_config_path""hyprland.conf" + sed -i "/^ col.inactive_border =/c\ col.inactive_border = rgb(282828) rgb(282828) 270deg" "$hyprpaper_config_path""hyprland.conf" + fi + + if [ "$tem" = 'nord' ]; then + #modificar nvim + sed -i "/^colorscheme /c\colorscheme $tem" "$nvim_config_path" + #modificar hyprland + sed -i "/^ col.active_border =/c\ col.active_border = rgb(a3be8c) rgb(88c0d0) 90deg" "$hyprpaper_config_path""hyprland.conf" + sed -i "/^ col.inactive_border =/c\ col.inactive_border = rgb(d8dee9) rgb(3b4252) 90deg" "$hyprpaper_config_path""hyprland.conf" + fi + #persistir al reinicio el openrgb + sed -i "/^exec-once = openrgb/c\exec-once = openrgb -p /home/arthur/.config/OpenRGB/$tem.orp" "$hyprpaper_config_path""hyprland.conf" + + #wallpaperengine + killall linux-wallpaperengine + cp $setwallpaper_path"."$tem $setwallpaper_path + hyprctl dispatch exec sh ${setwallpaper_path} + + + waybar & /usr/bin/kitty @ load-config + openrgb -p /home/arthur/.config/OpenRGB/$tem.orp + notify-send -t 12000 -i /home/arthur/scripts/pngegg.png " Tema $tem aplicado" "todas las tareas han sido completadas > v O" + paplay /usr/share/sounds/freedesktop/stereo/complete.oga + fi +done diff --git a/toggle-theme.sh b/toggle-theme.sh new file mode 100755 index 0000000..ba006fb --- /dev/null +++ b/toggle-theme.sh @@ -0,0 +1,57 @@ +#!/bin/bash +scope=$1 +themes=(gruvbox catpu) +kitty_config_path='/home/arthur/.config/kitty/' +waybar_config_path='/home/arthur/.config/waybar/' +nvim_config_path='/home/arthur/.vimrc' +wofi_config_path='/home/arthur/.config/wofi/' +hyprpaper_config_path='/home/arthur/.config/hypr/' + +for tem in ${themes[@]} + do + if [ "$scope" = $tem ]; then + + #MODIFICAR KITTY + cp $kitty_config_path"kitty.conf."$tem $kitty_config_path"kitty.conf" + kitty @ load-config + + #MODIFICAR NVIM + if [ "$tem" = 'catpu' ]; then + echo "cambiando a catpuchin" + sed -i "/^colorscheme /c\colorscheme catppuccin" "$nvim_config_path" + else + echo "cambiando a $tem" + sed -i "/^colorscheme /c\colorscheme $tem" "$nvim_config_path" + fi + + #MODIFICAR WAYBAR + cp $waybar_config_path"style.css."$tem $waybar_config_path"style.css" + killall waybar + waybar & + + #MODIFICAR WOFI + cp $wofi_config_path"style.css."$tem $wofi_config_path"style.css" + + #MODIFICAR HYPRPAPER + cp $hyprpaper_config_path"hyprpaper.conf."$tem $hyprpaper_config_path"hyprpaper.conf" + killall hyprpaper + hyprpaper & + + #MODIFICAR HYPRLAND + + if [ "$tem" = 'catpu' ]; then + sed -i "/^ col.active_border =/c\col.active_border = rgb(98c379) rgb(61afef) 90deg" "$hyprpaper_config_path""hyprland.conf" + sed -i "/^ col.inactive_border =/c\col.inactive_border = rgb(d19a66) rgb(c678dd) 90deg" "$hyprpaper_config_path""hyprland.conf" + fi + + if [ "$tem" = 'gruvbox' ]; then + sed -i "/^ col.active_border =/c\col.active_border = rgb(458588) rgb(d65d0e) 90deg" "$hyprpaper_config_path""hyprland.conf" + sed -i "/^ col.inactive_border =/c\col.inactive_border = rgb(fadb2f) rgb(458588) 90deg" "$hyprpaper_config_path""hyprland.conf" + fi + + + + + fi + +done diff --git a/user.js b/user.js new file mode 100755 index 0000000..7f38519 --- /dev/null +++ b/user.js @@ -0,0 +1,6 @@ + +user_pref("browser.anchor_color", "#bec1cb"); +user_pref("browser.display.background_color", "#0a0b13"); +user_pref("browser.display.foreground_color", "#bec1cb"); +user_pref("browser.visited_color", "#5A6E86"); +user_pref("extensions.activeThemeID", "{eb8c4a94-e603-49ef-8e81-73d3c4cc04ff}"); diff --git a/userChrome.css b/userChrome.css new file mode 100755 index 0000000..9cb487a --- /dev/null +++ b/userChrome.css @@ -0,0 +1,24 @@ + +#statuspanel {display:none!important;} +#urlpanel {display:none!important;} + +#TabsToolbar { + visibility: collapse !important; +} + + +#nav-bar { + background-color: rgba(0, 0, 0, 0.3) !important; + backdrop-filter: blur(6px); + -moz-backdrop-filter: blur(6px); +} +#navigator-toolbox:not(:hover) #nav-bar { + visibility: collapse !important; +} +/* Hide that 1px border to make the background + * between tab and a normal web page looks "seamless" + */ + +#navigator-toolbox:not(:hover) { + border-bottom: none !important; +} diff --git a/wallpapers_list.txt b/wallpapers_list.txt new file mode 100755 index 0000000..80dc4ea --- /dev/null +++ b/wallpapers_list.txt @@ -0,0 +1,105 @@ +pokemon_waterfall https://steamcommunity.com/sharedfiles/filedetails/?id=3371368351 +dragon_black_white https://steamcommunity.com/sharedfiles/filedetails/?id=3028090166 +miku_chinesse_drees https://steamcommunity.com/sharedfiles/filedetails/?id=2835142671 +hu-tao https://steamcommunity.com/sharedfiles/filedetails/?id=2928144981 +feet_girl_blue https://steamcommunity.com/sharedfiles/filedetails/?id=3439275639 +kill none +akane https://steamcommunity.com/sharedfiles/filedetails/?id=2874332345 +xxx_schoolgirl_phose https://steamcommunity.com/sharedfiles/filedetails/?id=2606383837 +demon-bikini https://steamcommunity.com/sharedfiles/filedetails/?id=2951453609 +dxd1 https://steamcommunity.com/sharedfiles/filedetails/?id=1396406451 +grass https://steamcommunity.com/sharedfiles/filedetails/?id=3109356538 +ellen_joe https://steamcommunity.com/sharedfiles/filedetails/?id=3352163652 +neru https://steamcommunity.com/sharedfiles/filedetails/?id=2653162798 +keqing_pantyhose_busty https://steamcommunity.com/sharedfiles/filedetails/?id=3025295290 +catpu_waterfall https://steamcommunity.com/sharedfiles/filedetails/?id=1569030610 +vert_kiriko https://steamcommunity.com/sharedfiles/filedetails/?id=2272455283 +karutamo https://steamcommunity.com/sharedfiles/filedetails/?id=2881801000 +vert_sakurajima https://steamcommunity.com/sharedfiles/filedetails/?id=2865223250 +vert_purple_bunny https://steamcommunity.com/sharedfiles/filedetails/?id=2279267541 +vert_white_bunny https://steamcommunity.com/sharedfiles/filedetails/?id=1865025974 +liqueaur https://steamcommunity.com/sharedfiles/filedetails/?id=2189051803 +asuna https://steamcommunity.com/sharedfiles/filedetails/?id=2838761906 +astolfo https://steamcommunity.com/sharedfiles/filedetails/?id=3373907816 +sakurajima_2 https://steamcommunity.com/sharedfiles/filedetails/?id=2278970534 +sakurajima https://steamcommunity.com/sharedfiles/filedetails/?id=2073629157 +vert_bunny_girl https://steamcommunity.com/sharedfiles/filedetails/?id=2407093443 +bunny_girl2 https://steamcommunity.com/sharedfiles/filedetails/?id=2862334119 +futari https://steamcommunity.com/sharedfiles/filedetails/?id=1143394477 +yun-jin https://steamcommunity.com/sharedfiles/filedetails/?id=2948485996 +nino_bakery https://steamcommunity.com/sharedfiles/filedetails/?id=3351383784 +fett_makima https://steamcommunity.com/sharedfiles/filedetails/?id=3006015715 +cofee_girl_momoka https://steamcommunity.com/sharedfiles/filedetails/?id=3376556685 +yor_pinksc https://steamcommunity.com/sharedfiles/filedetails/?id=3338492499 +yor_minimal https://steamcommunity.com/sharedfiles/filedetails/?id=2836852625 +rin_tohsaka_city_gruv https://steamcommunity.com/sharedfiles/filedetails/?id=2996110961 +vert_frieren_xray https://steamcommunity.com/sharedfiles/filedetails/?id=3157130809 +ninja_pixel_white https://steamcommunity.com/sharedfiles/filedetails/?id=2471631797 +samurai_girl https://steamcommunity.com/sharedfiles/filedetails/?id=3026085319 +frieren_blue_flowers https://steamcommunity.com/sharedfiles/filedetails/?id=3119426941 +fern_flowers_garden https://steamcommunity.com/sharedfiles/filedetails/?id=3149410070 +frieren_vs_frieren https://steamcommunity.com/sharedfiles/filedetails/?id=3325729912 +frieren_blue_flowers_2 https://steamcommunity.com/sharedfiles/filedetails/?id=3385278535 +bunny_girl https://steamcommunity.com/sharedfiles/filedetails/?id=3143573951 +licorys_recoil https://steamcommunity.com/sharedfiles/filedetails/?id=3360200028 +lumin https://steamcommunity.com/sharedfiles/filedetails/?id=2919394683 +lumin https://steamcommunity.com/sharedfiles/filedetails/?id=2851454062 +pikachu_hub https://steamcommunity.com/sharedfiles/filedetails/?id=3335196205 +feet_witch_purple https://steamcommunity.com/sharedfiles/filedetails/?id=3412195474 +feet_white_pantyhose_blonde https://steamcommunity.com/sharedfiles/filedetails/?id=3412207033 +girl_effeil_tower https://steamcommunity.com/sharedfiles/filedetails/?id=3314492008 +ryza_bedroom https://steamcommunity.com/sharedfiles/filedetails/?id=2964778792 fill +office_lady https://steamcommunity.com/sharedfiles/filedetails/?id=3331519329 +komi_san_manga https://steamcommunity.com/sharedfiles/filedetails/?id=3137201684 +komi_san_simpl https://steamcommunity.com/sharedfiles/filedetails/?id=2531447527 +keqing https://steamcommunity.com/sharedfiles/filedetails/?id=2818870173 +miku_face https://steamcommunity.com/sharedfiles/filedetails/?id=3415297400 fill +Ender_Acher https://steamcommunity.com/sharedfiles/filedetails/?id=3397136701 fill +fern https://steamcommunity.com/sharedfiles/filedetails/?id=3396444455 +grace https://steamcommunity.com/sharedfiles/filedetails/?id=3302288165 +Genshin_nord https://steamcommunity.com/sharedfiles/filedetails/?id=3280845181 fill +2B_black_white https://steamcommunity.com/sharedfiles/filedetails/?id=3259946859 fill +ak74_black_blonde https://steamcommunity.com/sharedfiles/filedetails/?id=2893507114 +pink_girl_face https://steamcommunity.com/sharedfiles/filedetails/?id=2872896078 +miyabi https://steamcommunity.com/sharedfiles/filedetails/?id=2873424178 +feet_pixel_kisaki https://steamcommunity.com/sharedfiles/filedetails/?id=2961703542 +keqing_black_bra https://steamcommunity.com/sharedfiles/filedetails/?id=3390200344 +water_girl https://steamcommunity.com/sharedfiles/filedetails/?id=3269856466 +blue_hat_girl_nord https://steamcommunity.com/sharedfiles/filedetails/?id=3305687727 +pixel_drunk_catgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2459477453 +nino_clouds https://steamcommunity.com/sharedfiles/filedetails/?id=3289999095 +miku_nakano_sit_hose https://steamcommunity.com/sharedfiles/filedetails/?id=1697933312 +raiden_sakura https://steamcommunity.com/sharedfiles/filedetails/?id=3468454547 fill +yor_red_rose https://steamcommunity.com/sharedfiles/filedetails/?id=2813843465 +yor_green https://steamcommunity.com/sharedfiles/filedetails/?id=2798970877 +rin_tohsaka_sky https://steamcommunity.com/sharedfiles/filedetails/?id=3142540852 +rin_tohsaka_library_feet https://steamcommunity.com/sharedfiles/filedetails/?id=2618728721 +rin_tohsaka_saver_feet_lick https://steamcommunity.com/sharedfiles/filedetails/?id=3083068851 +rin_tohsaka_pillow_shy https://steamcommunity.com/sharedfiles/filedetails/?id=3311776339 +rin_tohsaka_saver_maid_costume https://steamcommunity.com/sharedfiles/filedetails/?id=1982667491 +vert_blonde_white_pantyhose https://steamcommunity.com/sharedfiles/filedetails/?id=2383822928 +vert_stray_cat https://steamcommunity.com/sharedfiles/filedetails/?id=3142174104 +vert_fern_pantyhose_leg https://steamcommunity.com/sharedfiles/filedetails/?id=3502467779 +vert_keqing_pantyhose_white https://steamcommunity.com/sharedfiles/filedetails/?id=2279557494 +vert_keqing_catpu https://steamcommunity.com/sharedfiles/filedetails/?id=2371633093 +vert_keqing_dress https://steamcommunity.com/sharedfiles/filedetails/?id=2847154152 +vert_keqing_nuding_pantyhose https://steamcommunity.com/sharedfiles/filedetails/?id=2896686391 fill +vert_keqing_ready_bra https://steamcommunity.com/sharedfiles/filedetails/?id=2953381732 fill +vert_keqing_upskirt_p https://steamcommunity.com/sharedfiles/filedetails/?id=2279558280 fill +coffee_road https://steamcommunity.com/sharedfiles/filedetails/?id=1415834125 +dark_tanjiro_red https://steamcommunity.com/sharedfiles/filedetails/?id=2911147551 +k-on_azu https://steamcommunity.com/sharedfiles/filedetails/?id=2588159369 +k-on https://steamcommunity.com/sharedfiles/filedetails/?id=1715706779 +k-on https://steamcommunity.com/sharedfiles/filedetails/?id=2974907283 +k-on_mio https://steamcommunity.com/sharedfiles/filedetails/?id=2251566714 +pantyhose_schoolgirl_sit https://steamcommunity.com/sharedfiles/filedetails/?id=2141107185 +xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2487471092 +xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=3248307947 +xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2279002243 +xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2354665505 +pantyhose_schoolgirl_cables https://steamcommunity.com/sharedfiles/filedetails/?id=3008912809 +vert_xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2279010298 fill +vert_nagatoro https://steamcommunity.com/sharedfiles/filedetails/?id=2746883764 +bikini_nino https://steamcommunity.com/sharedfiles/filedetails/?id=2570243780 +miku_bed https://steamcommunity.com/sharedfiles/filedetails/?id=1643534614 +vert_miku https://steamcommunity.com/sharedfiles/filedetails/?id=2953551734 diff --git a/wallpapers_list.txt.b1 b/wallpapers_list.txt.b1 new file mode 100755 index 0000000..d58bf1e --- /dev/null +++ b/wallpapers_list.txt.b1 @@ -0,0 +1,87 @@ +frieren_blue_flowers https://steamcommunity.com/sharedfiles/filedetails/?id=3119426941 +fern_flowers_garden https://steamcommunity.com/sharedfiles/filedetails/?id=3149410070 +frieren_vs_frieren https://steamcommunity.com/sharedfiles/filedetails/?id=3325729912 +frieren_blue_flowers_2 https://steamcommunity.com/sharedfiles/filedetails/?id=3385278535 +vert_frieren_xray https://steamcommunity.com/sharedfiles/filedetails/?id=3157130809 +bunny_girl https://steamcommunity.com/sharedfiles/filedetails/?id=3143573951 +licorys_recoil https://steamcommunity.com/sharedfiles/filedetails/?id=3360200028 +samurai_girl https://steamcommunity.com/sharedfiles/filedetails/?id=3026085319 +hu-tao https://steamcommunity.com/sharedfiles/filedetails/?id=2955731510 +hu-tao https://steamcommunity.com/sharedfiles/filedetails/?id=2928144981 +yun-jin https://steamcommunity.com/sharedfiles/filedetails/?id=2948485996 +lumin https://steamcommunity.com/sharedfiles/filedetails/?id=2919394683 +lumin https://steamcommunity.com/sharedfiles/filedetails/?id=2851454062 +demon-bikini https://steamcommunity.com/sharedfiles/filedetails/?id=2951453609 +pikachu_hub https://steamcommunity.com/sharedfiles/filedetails/?id=3335196205 +feet_witch_purple https://steamcommunity.com/sharedfiles/filedetails/?id=3412195474 +feet_girl_blue https://steamcommunity.com/sharedfiles/filedetails/?id=3439275639 +feet_white_pantyhose_blonde https://steamcommunity.com/sharedfiles/filedetails/?id=3412207033 +cofee_girl_momoka https://steamcommunity.com/sharedfiles/filedetails/?id=3376556685 +girl_effeil_tower https://steamcommunity.com/sharedfiles/filedetails/?id=3314492008 +ryza_bedroom https://steamcommunity.com/sharedfiles/filedetails/?id=2964778792 fill +pokemon_waterfall https://steamcommunity.com/sharedfiles/filedetails/?id=3371368351 +office_lady https://steamcommunity.com/sharedfiles/filedetails/?id=3331519329 +komi_san_manga https://steamcommunity.com/sharedfiles/filedetails/?id=3137201684 +komi_san_simpl https://steamcommunity.com/sharedfiles/filedetails/?id=2531447527 +keqing https://steamcommunity.com/sharedfiles/filedetails/?id=2818870173 +grass https://steamcommunity.com/sharedfiles/filedetails/?id=3109356538 +miku_face https://steamcommunity.com/sharedfiles/filedetails/?id=3415297400 fill +Ender_Acher https://steamcommunity.com/sharedfiles/filedetails/?id=3397136701 fill +fern https://steamcommunity.com/sharedfiles/filedetails/?id=3396444455 +grace https://steamcommunity.com/sharedfiles/filedetails/?id=3302288165 +Genshin_nord https://steamcommunity.com/sharedfiles/filedetails/?id=3280845181 fill +dragon_black_white https://steamcommunity.com/sharedfiles/filedetails/?id=3028090166 +2B_black_white https://steamcommunity.com/sharedfiles/filedetails/?id=3259946859 fill +ak74_black_blonde https://steamcommunity.com/sharedfiles/filedetails/?id=2893507114 +ninja_pixel_white https://steamcommunity.com/sharedfiles/filedetails/?id=2471631797 +pink_girl_face https://steamcommunity.com/sharedfiles/filedetails/?id=2872896078 +miyabi https://steamcommunity.com/sharedfiles/filedetails/?id=2873424178 +feet_pixel_kisaki https://steamcommunity.com/sharedfiles/filedetails/?id=2961703542 +fett_makima https://steamcommunity.com/sharedfiles/filedetails/?id=3006015715 +keqing_black_bra https://steamcommunity.com/sharedfiles/filedetails/?id=3390200344 +water_girl https://steamcommunity.com/sharedfiles/filedetails/?id=3269856466 +blue_hat_girl_nord https://steamcommunity.com/sharedfiles/filedetails/?id=3305687727 +catpu_waterfall https://steamcommunity.com/sharedfiles/filedetails/?id=1569030610 +miku_chinesse_drees https://steamcommunity.com/sharedfiles/filedetails/?id=2835142671 +pixel_drunk_catgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2459477453 +keqing_pantyhose_busty https://steamcommunity.com/sharedfiles/filedetails/?id=3025295290 +nino_clouds https://steamcommunity.com/sharedfiles/filedetails/?id=3289999095 +miku_nakano_sit_hose https://steamcommunity.com/sharedfiles/filedetails/?id=1697933312 +raiden_sakura https://steamcommunity.com/sharedfiles/filedetails/?id=3468454547 fill +yor_pinksc https://steamcommunity.com/sharedfiles/filedetails/?id=3338492499 +yor_red_rose https://steamcommunity.com/sharedfiles/filedetails/?id=2813843465 +yor_minimal https://steamcommunity.com/sharedfiles/filedetails/?id=2836852625 +yor_green https://steamcommunity.com/sharedfiles/filedetails/?id=2798970877 +rin_tohsaka_sky https://steamcommunity.com/sharedfiles/filedetails/?id=3142540852 +rin_tohsaka_library_feet https://steamcommunity.com/sharedfiles/filedetails/?id=2618728721 +rin_tohsaka_saver_feet_lick https://steamcommunity.com/sharedfiles/filedetails/?id=3083068851 +rin_tohsaka_pillow_shy https://steamcommunity.com/sharedfiles/filedetails/?id=3311776339 +rin_tohsaka_city_gruv https://steamcommunity.com/sharedfiles/filedetails/?id=2996110961 +rin_tohsaka_saver_maid_costume https://steamcommunity.com/sharedfiles/filedetails/?id=1982667491 +vert_blonde_white_pantyhose https://steamcommunity.com/sharedfiles/filedetails/?id=2383822928 +vert_nagatoro https://steamcommunity.com/sharedfiles/filedetails/?id=2746883764 +vert_stray_cat https://steamcommunity.com/sharedfiles/filedetails/?id=3142174104 +vert_fern_pantyhose_leg https://steamcommunity.com/sharedfiles/filedetails/?id=3502467779 +vert_keqing_pantyhose_white https://steamcommunity.com/sharedfiles/filedetails/?id=2279557494 +vert_keqing_catpu https://steamcommunity.com/sharedfiles/filedetails/?id=2371633093 +vert_keqing_dress https://steamcommunity.com/sharedfiles/filedetails/?id=2847154152 +vert_keqing_nuding_pantyhose https://steamcommunity.com/sharedfiles/filedetails/?id=2896686391 fill +vert_keqing_ready_bra https://steamcommunity.com/sharedfiles/filedetails/?id=2953381732 fill +vert_keqing_upskirt_p https://steamcommunity.com/sharedfiles/filedetails/?id=2279558280 fill +coffee_road https://steamcommunity.com/sharedfiles/filedetails/?id=1415834125 +dark_tanjiro_red https://steamcommunity.com/sharedfiles/filedetails/?id=2911147551 +k-on_azu https://steamcommunity.com/sharedfiles/filedetails/?id=2588159369 +k-on https://steamcommunity.com/sharedfiles/filedetails/?id=1715706779 +k-on https://steamcommunity.com/sharedfiles/filedetails/?id=2974907283 +k-on_mio https://steamcommunity.com/sharedfiles/filedetails/?id=2251566714 +ellen_joe https://steamcommunity.com/sharedfiles/filedetails/?id=3352163652 +pantyhose_schoolgirl_sit https://steamcommunity.com/sharedfiles/filedetails/?id=2141107185 +xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2487471092 +xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=3248307947 +xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2279002243 +xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2354665505 +xxx_schoolgirl_phose https://steamcommunity.com/sharedfiles/filedetails/?id=2606383837 +pantyhose_schoolgirl_cables https://steamcommunity.com/sharedfiles/filedetails/?id=3008912809 +vert_xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2278981539 +vert_xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2279010298 +vert_xxx_schoolgirl https://steamcommunity.com/sharedfiles/filedetails/?id=2570306292 diff --git a/waybar/buscar_archivos.sh b/waybar/buscar_archivos.sh new file mode 100755 index 0000000..4c28af6 --- /dev/null +++ b/waybar/buscar_archivos.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Puedes usar locate, find o fd aquí +file=$(fd . ~/Documentos ~/Descargas ~/Proyectos \ + --type f --hidden --exclude .git 2>/dev/null | \ + wofi --dmenu --prompt "Buscar archivo") + +# Si se seleccionó algo, ábrelo +if [[ -n "$file" ]]; then + xdg-open "$file" & +fi + diff --git a/waybar/config.jsonc b/waybar/config.jsonc new file mode 100755 index 0000000..edd699b --- /dev/null +++ b/waybar/config.jsonc @@ -0,0 +1,21 @@ +[ + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-3", + "position": "top", + "modules-center": ["clock"], + "modules-left": ["hyprland/workspaces", "hyprland/window"] + }, + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-2", + "margin-top":5, + "margin-left":15, + "margin-right":15, + "name":"dp2_top", + "position": "top", + "modules-left": ["hyprland/workspaces", "hyprland/window"], + "modules-right": [ "clock","custom/weather", "custom/cpuinfo", "custom/gpu", "network", "custom/flagvpn","battery", "bluetooth", "pulseaudio", "custom/notification"] + } +] + diff --git a/waybar/config.jsonc.bk2 b/waybar/config.jsonc.bk2 new file mode 100755 index 0000000..1a17582 --- /dev/null +++ b/waybar/config.jsonc.bk2 @@ -0,0 +1,22 @@ +[ + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-3", + "position": "top", + "modules-center": ["clock"], + "modules-left": ["hyprland/workspaces", "hyprland/window"] + }, + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-2", + "margin-top":5, + "margin-left":15, + "margin-right":15, + "name":"dp2_top", + "position": "top", + "modules-left": ["hyprland/workspaces", "hyprland/window"], + "modules-center": ["clock"], + "modules-right": [ "custom/weather", "custom/cpuinfo", "custom/gpu", "network", "custom/flagvpn","battery", "bluetooth", "pulseaudio", "custom/notification"] + } +] + diff --git a/waybar/config.jsonc.catpu b/waybar/config.jsonc.catpu new file mode 100755 index 0000000..ddbf0a3 --- /dev/null +++ b/waybar/config.jsonc.catpu @@ -0,0 +1,27 @@ +[ + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-3", + "position": "top", + "modules-center": ["clock"], + "modules-left": ["custom/uptime"], + "modules-right": ["custom/timer", "custom/cpuinfo", "custom/gpu", "network"] + }, + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-2", + "position": "top", + "modules-left": ["hyprland/workspaces", "hyprland/window"], + "modules-center": ["clock"], + "modules-right": ["custom/weather", "custom/cpuinfo", "custom/gpu", "network", "custom/flagvpn","pulseaudio","battery"] + }, + { + "include":"~/.config/waybar/modules.jsonc", + "output": "HDMI-A-1", + "position": "top", + "modules-left": ["hyprland/workspaces", "hyprland/window"], + "modules-center": ["clock"], + "modules-right": ["mpris", "custom/weather", "custom/cpuinfo", "custom/gpu", "network", "pulseaudio", "battery"] + } +] + diff --git a/waybar/config.jsonc.gruvbox b/waybar/config.jsonc.gruvbox new file mode 100755 index 0000000..44cae30 --- /dev/null +++ b/waybar/config.jsonc.gruvbox @@ -0,0 +1,34 @@ +[ + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-3", + "position": "top", + "modules-center": ["clock"], + "modules-left": ["hyprland/workspaces", "hyprland/window"] + }, + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-3", + "position": "bottom", + "modules-left": [ "custom/uptime"], + "modules-right": [ "custom/weather","custom/timer", "custom/cpuinfo", "custom/gpu", "network"] + }, + + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-2", + "position": "top", + "modules-left": ["hyprland/workspaces", "hyprland/window", "custom/menu1"], + "modules-center": ["clock"], + "modules-right": [ "custom/weather", "custom/cpuinfo", "custom/gpu", "network", "custom/flagvpn","pulseaudio","battery"] + }, + { + "include":"~/.config/waybar/modules.jsonc", + "output": "HDMI-A-1", + "position": "top", + "modules-left": ["hyprland/workspaces", "hyprland/window"], + "modules-center": ["clock"], + "modules-right": [ "custom/weather", "custom/cpuinfo", "custom/gpu", "network", "custom/flagvpn","pulseaudio","battery"] + } +] + diff --git a/waybar/config.jsonc.nord b/waybar/config.jsonc.nord new file mode 100755 index 0000000..b92bd12 --- /dev/null +++ b/waybar/config.jsonc.nord @@ -0,0 +1,29 @@ +[ + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-3", + "position": "top", + "modules-left": [ "clock", "hyprland/workspaces","hyprland/window" ], + "modules-right": [ "custom/timer", "temperature","cpu", "custom/gpu", "pulseaudio", "bluetooth", "custom/flagvpn", "network"] + + }, + { + "include":"~/.config/waybar/modules.jsonc", + "output": "DP-2", + "position": "top", + + "modules-left": [ "clock", "hyprland/workspaces","hyprland/window" ], + "modules-right": [ "temperature","cpu", "custom/gpu", "pulseaudio", "bluetooth", "custom/flagvpn", "network"] + + }, + { + "include":"~/.config/waybar/modules.jsonc", + "output": "HDMI-A-1", + "position": "top", + + "modules-left": [ "clock", "hyprland/workspaces","hyprland/window" ], + "modules-right": [ "temperature","cpu", "custom/gpu", "pulseaudio", "bluetooth", "custom/flagvpn", "network"] + } +] + + diff --git a/waybar/modules.jsonc b/waybar/modules.jsonc new file mode 100755 index 0000000..6ffff83 --- /dev/null +++ b/waybar/modules.jsonc @@ -0,0 +1,147 @@ +{ + "hyprland/workspaces": { + "active-only": false, + "format": "{icon}", + "disable-scroll": true, + "on-click": "activate" + }, + + "clock": { + "format": "  {:%a %d/%m  %H:%M} ", + "tooltip-format": "{:%Y %B}\n {calendar} " + }, + "network": { + "interface": "enp111s0", + "format": "↗{bandwidthUpBytes} ↘ {bandwidthDownBytes} |" + }, + "pulseaudio": { + "format": " {icon} {volume}% ", + "format-muted": "", + "format-icons": { + "default": ["", "", " "] + }, + "on-click": "pavucontrol" + }, + "custom/cpuinfo": { + "exec": "~/.config/waybar/scripts/cpu_info.sh", + "interval": 12, + "format": "{}" + }, + "custom/gpu": { + "exec": "~/.config/waybar/scripts/gpu_temp.sh", + "interval": 12, + "format": "{}" + }, + "custom/xpuinfo": { + "exec": "~/.config/waybar/scripts/xpu_info.sh", + "interval": 15, + "format": "{}" + }, + "mpris": { + "format": "{player_icon} [{title} - {artist}]", + "format-paused": " [ {title} - {artist}] ", + "player-icons": { + "default": " ", + "firefox": " " + }, + "max-length": 70, + "scroll": true + }, + "custom/weather": { + "exec": "~/.config/waybar/scripts/weather.sh", + "interval": 600, + "return-type": "text" + }, + + "custom/uptime": { + "exec": "~/.config/waybar/scripts/uptime.sh", + "interval": 300, + "format": "時間 {}" +}, + "custom/flagvpn": { + "exec": "~/scripts/get_flag.sh", + "interval": 60, + "format":"{}", + "tooltip" : true, + "tooltip-format": "{}" +}, + +"custom/steamhdd": { + "exec": "~/.config/waybar/scripts/hdd_info.sh", + "interval": 3600, + "format":"{}", + "tooltip" : true, + "tooltip-format": "{}" +}, + + +"custom/timer": { + "exec": "/home/arthur/scripts/timer_module.sh", + "interval": 1, + "format":"{}", + "return-type": "json" +}, + + "custom/appicons": { + "format": "{}", + "exec": "~/.config/waybar/scripts/app-icons.sh", + "interval": 5, + "tooltip":"false" + }, + + "custom/workspaces-icons": { + "exec": "python ~/.config/waybar/scripts/workspaces_icons.py", + "interval": 5, + "format": "{}" + }, + + "custom/menu1": { + "format" : "⏻ ", + "tooltip": false, + "menu": "on-click", + "menu-actions": { + "shutdown": "shutdown", + "reboot": "reboot", + "suspend": "systemctl suspend", + "hibernate": "systemctl hibernate" + } + } + + ,"bluetooth": { + "interval": 30, + "format": "BT {icon} ", + "format-icons": { + "enabled": "", + "disabled": "" + }, + "on-click": "blueberry" + }, + "custom/notification": { + "tooltip": false, + "format": "| {icon} ~", + "format-icons": { + "notification": "", + "none": "", + "dnd-notification": "", + "dnd-none": "", + "inhibited-notification": "", + "inhibited-none": "", + "dnd-inhibited-notification": "", + "dnd-inhibited-none": "" + }, + "return-type": "json", + "exec-if": "which swaync-client", + "exec": "swaync-client -swb", + "on-click": "swaync-client -t -sw", + "on-click-right": "swaync-client -d -sw", + "escape": true + }, + "tray": { + "icon-size": 21, + "spacing": 10 + } + + + +} + diff --git a/waybar/modules.jsonc.bk2 b/waybar/modules.jsonc.bk2 new file mode 100755 index 0000000..b82aba8 --- /dev/null +++ b/waybar/modules.jsonc.bk2 @@ -0,0 +1,147 @@ +{ + "hyprland/workspaces": { + "active-only": false, + "format": "{icon}", + "disable-scroll": true, + "on-click": "activate" + }, + + "clock": { + "format": "~  {:%a [%d/%m]  [%H:%M]} ~", + "tooltip-format": "{:%Y %B}\n {calendar} " + }, + "network": { + "interface": "enp111s0", + "format": "↗{bandwidthUpBytes} ↘ {bandwidthDownBytes} |" + }, + "pulseaudio": { + "format": " {icon} {volume}% ", + "format-muted": "", + "format-icons": { + "default": ["", "", " "] + }, + "on-click": "pavucontrol" + }, + "custom/cpuinfo": { + "exec": "~/.config/waybar/scripts/cpu_info.sh", + "interval": 12, + "format": "{}" + }, + "custom/gpu": { + "exec": "~/.config/waybar/scripts/gpu_temp.sh", + "interval": 12, + "format": "{}" + }, + "custom/xpuinfo": { + "exec": "~/.config/waybar/scripts/xpu_info.sh", + "interval": 15, + "format": "{}" + }, + "mpris": { + "format": "{player_icon} [{title} - {artist}]", + "format-paused": " [ {title} - {artist}] ", + "player-icons": { + "default": " ", + "firefox": " " + }, + "max-length": 70, + "scroll": true + }, + "custom/weather": { + "exec": "~/.config/waybar/scripts/weather.sh", + "interval": 600, + "return-type": "text" + }, + + "custom/uptime": { + "exec": "~/.config/waybar/scripts/uptime.sh", + "interval": 300, + "format": "時間 {}" +}, + "custom/flagvpn": { + "exec": "~/scripts/get_flag.sh", + "interval": 60, + "format":"{}", + "tooltip" : true, + "tooltip-format": "{}" +}, + +"custom/steamhdd": { + "exec": "~/.config/waybar/scripts/hdd_info.sh", + "interval": 3600, + "format":"{}", + "tooltip" : true, + "tooltip-format": "{}" +}, + + +"custom/timer": { + "exec": "/home/arthur/scripts/timer_module.sh", + "interval": 1, + "format":"{}", + "return-type": "json" +}, + + "custom/appicons": { + "format": "{}", + "exec": "~/.config/waybar/scripts/app-icons.sh", + "interval": 5, + "tooltip":"false" + }, + + "custom/workspaces-icons": { + "exec": "python ~/.config/waybar/scripts/workspaces_icons.py", + "interval": 5, + "format": "{}" + }, + + "custom/menu1": { + "format" : "⏻ ", + "tooltip": false, + "menu": "on-click", + "menu-actions": { + "shutdown": "shutdown", + "reboot": "reboot", + "suspend": "systemctl suspend", + "hibernate": "systemctl hibernate" + } + } + + ,"bluetooth": { + "interval": 30, + "format": "BT {icon} ", + "format-icons": { + "enabled": "", + "disabled": "" + }, + "on-click": "blueberry" + }, + "custom/notification": { + "tooltip": false, + "format": "| {icon} ~", + "format-icons": { + "notification": "", + "none": "", + "dnd-notification": "", + "dnd-none": "", + "inhibited-notification": "", + "inhibited-none": "", + "dnd-inhibited-notification": "", + "dnd-inhibited-none": "" + }, + "return-type": "json", + "exec-if": "which swaync-client", + "exec": "swaync-client -swb", + "on-click": "swaync-client -t -sw", + "on-click-right": "swaync-client -d -sw", + "escape": true + }, + "tray": { + "icon-size": 21, + "spacing": 10 + } + + + +} + diff --git a/waybar/modules.jsonc.catpu b/waybar/modules.jsonc.catpu new file mode 100755 index 0000000..fe2d786 --- /dev/null +++ b/waybar/modules.jsonc.catpu @@ -0,0 +1,79 @@ +{ + "hyprland/workspaces": { + "active-only": false, + "all-outputs": false, + "format": "{icon}", + "persistent_workspaces": { + "2": [], + "3": [], + "4": [], + "5": [] + }, + "disable-scroll": true, + "on-click": "activate" + }, + "clock": { + "format": "{:%a [%d/%m] ~ [%H:%M]} ~", + "tooltip-format": "{:%Y %B}\n {calendar} " + }, + "network": { + "interface": "enp111s0", + "format": "↗{bandwidthUpBytes} ↘ {bandwidthDownBytes}" + }, + "pulseaudio": { + "format": " {icon} {volume}% ", + "format-muted": "", + "format-icons": { + "default": ["", "", " "] + }, + "on-click": "pavucontrol" + }, + "custom/cpuinfo": { + "exec": "~/.config/waybar/scripts/cpu_info.sh", + "interval": 2, + "format": "{}" + }, + "custom/gpu": { + "exec": "~/.config/waybar/scripts/gpu_temp.sh", + "interval": 2, + "format": "{}" + }, + "mpris": { + "format": "{player_icon} [{title} - {artist}]", + "format-paused": " [ {title} - {artist}] ", + "player-icons": { + "default": " ", + "firefox": " " + }, + "max-length": 70, + "scroll": true + }, + "custom/weather": { + "exec": "~/.config/waybar/scripts/weather.sh", + "interval": 600, + "return-type": "text" + }, + + "custom/uptime": { + "exec": "~/.config/waybar/scripts/uptime.sh", + "interval": 60, + "format": "時間 {}" +}, + "custom/flagvpn": { + "exec": "~/scripts/get_flag.sh", + "interval": 60, + "format": "{}" +}, + +"custom/timer": { + "exec": "/home/arthur/scripts/timer_module.sh", + "interval": 1, + "format":"{}", + "return-type": "json" +} + + + + +} + diff --git a/waybar/modules.jsonc.gruvbox b/waybar/modules.jsonc.gruvbox new file mode 100755 index 0000000..eed4ec4 --- /dev/null +++ b/waybar/modules.jsonc.gruvbox @@ -0,0 +1,105 @@ +{ + "hyprland/workspaces": { + "active-only": false, + "all-outputs": false, + "format": "{icon}", + "persistent_workspaces": { + "2": [], + "3": [], + "4": [], + "5": [] + }, + "disable-scroll": true, + "on-click": "activate" + }, + "clock": { + "format": "{:%a [%d/%m] ~ [%H:%M]} ~", + "tooltip-format": "{:%Y %B}\n {calendar} " + }, + "network": { + "interface": "enp111s0", + "format": "↗{bandwidthUpBytes} ↘ {bandwidthDownBytes} |" + }, + "pulseaudio": { + "format": " {icon} {volume}% ", + "format-muted": "", + "format-icons": { + "default": ["", "", " "] + }, + "on-click": "pavucontrol" + }, + "custom/cpuinfo": { + "exec": "~/.config/waybar/scripts/cpu_info.sh", + "interval": 2, + "format": "{}" + }, + "custom/gpu": { + "exec": "~/.config/waybar/scripts/gpu_temp.sh", + "interval": 2, + "format": "{}" + }, + "mpris": { + "format": "{player_icon} [{title} - {artist}]", + "format-paused": " [ {title} - {artist}] ", + "player-icons": { + "default": " ", + "firefox": " " + }, + "max-length": 70, + "scroll": true + }, + "custom/weather": { + "exec": "~/.config/waybar/scripts/weather.sh", + "interval": 600, + "return-type": "text" + }, + + "custom/uptime": { + "exec": "~/.config/waybar/scripts/uptime.sh", + "interval": 60, + "format": "時間 {}" +}, + "custom/flagvpn": { + "exec": "~/scripts/get_flag.sh", + "interval": 60, + "format":"{}", + "tooltip" : true, + "tooltip-format": "{}" +}, + + +"custom/timer": { + "exec": "/home/arthur/scripts/timer_module.sh", + "interval": 1, + "format":"{}", + "return-type": "json" +}, + + "custom/appicons": { + "format": "{}", + "exec": "~/.config/waybar/scripts/app-icons.sh", + "interval": 5, + "tooltip":"false" + }, + + "custom/workspaces-icons": { + "exec": "python ~/.config/waybar/scripts/workspaces_icons.py", + "interval": 5, + "format": "{}" + }, + + "custom/menu1": { + "format" : "⏻ ", + "tooltip": false, + "menu": "on-click", + "menu-file": "~/.config/waybar/power_menu.xml", + "menu-actions": { + "shutdown": "shutdown", + "reboot": "reboot", + "suspend": "systemctl suspend", + "hibernate": "systemctl hibernate" + } + } + +} + diff --git a/waybar/modules.jsonc.nord b/waybar/modules.jsonc.nord new file mode 100755 index 0000000..c9fa308 --- /dev/null +++ b/waybar/modules.jsonc.nord @@ -0,0 +1,165 @@ +{ + + // Modules configuration + "hyprland/workspaces": { + "active-only": false, + "all-outputs": false, + "format": "{icon}", + "persistent_workspaces": { + "2": [], + "3": [], + "4": [], + "5": [] + }, + "disable-scroll": true, + "on-click": "activate" + }, + + "hyprland/window": { + "format": "{}", + "max-length": 50, + "tooltip": false + }, + "bluetooth": { + "interval": 30, + "format": "{icon}", + "format-icons": { + "enabled": "", + "disabled": "" + }, + "on-click": "blueberry" + }, + "hyprland/language": { + "format": " {}", + "max-length": 5, + "min-length": 5 + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + }, + "tooltip": "true" + }, + "tray": { + //"icon-size": 11, + "spacing": 5 + }, + "clock": { + "format": " {:%H:%M  %e %b}", + "tooltip-format": "{:%Y %B}\n{calendar}", + "today-format": "{}", + "on-click": "gnome-calendar" + }, + "cpu": { + "interval": "1", + "format": " {max_frequency}GHz | {usage}%", + "max-length": 13, + "min-length": 13, + "on-click": "kitty -e htop --sort-key PERCENT_CPU", + "tooltip": false + }, + "temperature": { + //"thermal-zone": 1, + "interval": "4", + "hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input", + "critical-threshold": 74, + "format-critical": " {temperatureC}°C", + "format": "{icon} {temperatureC}°C", + "format-icons": ["", "", ""], + "max-length": 7, + "min-length": 7 + }, + "network": { + "interface": "enp111s0", + "format": "↗{bandwidthUpBytes} ↘ {bandwidthDownBytes}" + }, + + + "pulseaudio": { + "scroll-step": 3, // %, can be a float + "format": "{icon} {volume}% {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol", + "on-click-right": "pactl set-source-mute @DEFAULT_SOURCE@ toggle" + }, + "custom/pacman": { + "format": "􏆲 {}", + "interval": 3600, // every hour + "exec": "checkupdates | wc -l", // # of updates + "exec-if": "exit 0", // always run; consider advanced run conditions + "on-click": "kitty -e 'yay'; pkill -SIGRTMIN+8 waybar", // update system + "signal": 8, + "max-length": 5, + "min-length": 3 + }, + + "custom/weather": { + "exec": "~/.config/waybar/scripts/weather.sh", + "interval": 3600, + "return-type": "text" + }, + + "custom/gpu": { + "exec": "$HOME/.config/waybar/scripts/gpu_temp.sh", + "format": " {}", + "interval": 2, + "tooltip": "{tooltip}", + "max-length": 19, + "min-length": 19, + "on-click": "powerupp" + + }, + "custom/cpugovernor": { + "format": "{icon}", + "interval": "30", + "exec": "$HOME/.config/waybar/scripts/cpu_info.sh", + "min-length": 2, + "max-length": 2, + "format-icons": { + "perf": "", + "sched": "" + } + }, + + "mpris": { + "format": "{player_icon} [{title} - {artist}]", + "format-paused": " [ {title} - {artist}] ", + "player-icons": { + "default": " ", + "firefox": " " + }, + "max-length": 70, + "scroll": true + }, + "custom/flagvpn": { + "exec": "~/scripts/get_flag.sh", + "interval": 60, + "format": "{}" + }, + +"custom/timer": { + "exec": "/home/arthur/scripts/timer_module.sh", + "interval": 1, + "format":"{}", + "return-type": "json" +} + + + +} + diff --git a/waybar/power_menu.xml b/waybar/power_menu.xml new file mode 100755 index 0000000..ba1e431 --- /dev/null +++ b/waybar/power_menu.xml @@ -0,0 +1,28 @@ + + + + + + Suspend + + + + + Hibernate + + + + + Shutdown + + + + + + + + Reboot + + + + diff --git a/waybar/scripts/app-icons.sh b/waybar/scripts/app-icons.sh new file mode 100755 index 0000000..ab9358c --- /dev/null +++ b/waybar/scripts/app-icons.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Define tus apps favoritas y su ícono Unicode (usa Font Awesome u otra) +declare -A apps=( + ["zen"]="" + ["kitty"]="" + ["nvim"]="" + ["ranger"]="" + ["steam"]="" +) + +# Colores (puedes personalizarlos desde CSS también) +active_color="#b8bb26" +inactive_color="#bdae93" + +output="" + +for app in "${!apps[@]}"; do + icon="${apps[$app]}" + # Detectar si el proceso está corriendo + if pgrep -x "$app" > /dev/null; then + output+="$icon " + else + output+="$icon " + fi +done + +echo -e "$output" + diff --git a/waybar/scripts/cpu_info.sh b/waybar/scripts/cpu_info.sh new file mode 100755 index 0000000..face510 --- /dev/null +++ b/waybar/scripts/cpu_info.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# Obtener temperatura desde sysfs +temp_raw=$(cat /sys/class/hwmon/hwmon2/temp1_input) +temp_c=$((temp_raw / 1000)) + +# Obtener uso de CPU +usage=$(grep 'cpu ' /proc/stat | awk '{u=$2+$4; t=$2+$4+$5; print u, t}') +sleep 0.5 +usage2=$(grep 'cpu ' /proc/stat | awk '{u=$2+$4; t=$2+$4+$5; print u, t}') +u1=$(echo $usage | awk '{print $1}') +t1=$(echo $usage | awk '{print $2}') +u2=$(echo $usage2 | awk '{print $1}') +t2=$(echo $usage2 | awk '{print $2}') +cpu_usage=$((100 * (u2 - u1) / (t2 - t1))) +cpu_usage_formated=$(printf "%02d\n" $cpu_usage) +temp_c_formated=$(printf "%02d\n" $temp_c) +progress=$(sh ~/.config/waybar/scripts/status_bar.sh $cpu_usage) + +# Imprimir formato +echo " CPU ${temp_c}°C / ${cpu_usage_formated}% ${progress}" diff --git a/waybar/scripts/get_flag.py b/waybar/scripts/get_flag.py new file mode 100755 index 0000000..34c2633 --- /dev/null +++ b/waybar/scripts/get_flag.py @@ -0,0 +1,4 @@ +#!/bin/bash +flag=$(sh ~/scripts/get_flag.sh) + +echo " ${flag}" diff --git a/waybar/scripts/gpu_temp.sh b/waybar/scripts/gpu_temp.sh new file mode 100755 index 0000000..d6258d3 --- /dev/null +++ b/waybar/scripts/gpu_temp.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Obtener uso de la GPU con nvidia-smi +usage=$(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits | head -n 1) +temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits | head -n 1) + +temp_formated=$(printf "%02d\n" $temp) +usage_formated=$(printf "%02d\n" $usage) + +progress=$(sh ~/.config/waybar/scripts/status_bar.sh $usage) +echo " GPU ${temp_formated}°C / ${usage_formated}% $progress" + diff --git a/waybar/scripts/hdd_info.sh b/waybar/scripts/hdd_info.sh new file mode 100755 index 0000000..f72a2dc --- /dev/null +++ b/waybar/scripts/hdd_info.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +local_hdd=$( df -h | grep /mnt/STEAM ) +IFS=' ' read -r -a partes <<< "$local_hdd" +local_hdd=$( cut -c 1-2 <<< ${partes[4]} ) +local_hdd="[steam_"$local_hdd"%]"$( sh /home/arthur/.config/waybar/scripts/status_bar.sh $((local_hdd))) + +system_hdd=$( df -h | grep nvme1n1p2) + +if [ -z $system_hdd ]; then + system_hdd=$( df -h | grep nvme0n1p2) +fi + +IFS=' ' read -r -a partes <<< "$system_hdd" +system_hdd=$( cut -c 1-2 <<< ${partes[4]} ) +system_hdd="[sys_____"$system_hdd"%]"$( sh /home/arthur/.config/waybar/scripts/status_bar.sh $((system_hdd))) + +#raspberry info +hdd2=$( ssh arthur@192.168.1.131 "df -h" | grep /media/HDD2 ) + +if [ -z "$hdd2" ]; then + echo "|.:" $local_hdd ":.| |.:" $system_hdd ":.|" +else + IFS=' ' read -r -a partes <<< "$hdd2" + hdd2=$( cut -c 1-2 <<< ${partes[4]}) + hdd2="[hdd2___"$hdd2"%]"$( sh /home/arthur/.config/waybar/scripts/status_bar.sh $((hdd2))) + echo "|.:" $local_hdd ":.| |.:" $system_hdd ":.| |.: "$hdd2" :.|" +fi diff --git a/waybar/scripts/status_bar.sh b/waybar/scripts/status_bar.sh new file mode 100755 index 0000000..55e5fe4 --- /dev/null +++ b/waybar/scripts/status_bar.sh @@ -0,0 +1,34 @@ +totalval=$1 + +usage_10=$((totalval/10)) +progress="" +max=8 + +for (( i=1; (( i <= max )); i++ )); do + if (( i == 1 )); then + if (( usage_10 >= i )); then + progress="" + else + progress="" + break; + fi + fi + + if (( usage_10 <= i )); then + progress=$progress"" + else + progress=$progress"" + fi + + if (( i==max )); then + if (( usage_10 >= max+2 )); then + progress=$progress"" + break; + else + progress=$progress"" + break; + fi + fi +done + +echo $progress diff --git a/waybar/scripts/uptime.sh b/waybar/scripts/uptime.sh new file mode 100755 index 0000000..31b2041 --- /dev/null +++ b/waybar/scripts/uptime.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# Devuelve el tiempo encendido del sistema en formato legible +uptime -p | sed 's/up //' + diff --git a/waybar/scripts/weather.sh b/waybar/scripts/weather.sh new file mode 100755 index 0000000..c0c709a --- /dev/null +++ b/waybar/scripts/weather.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +API_KEY="bc07f366f9c10599a7700f80cc66e0d6" +CITY_ID="3583361" # Puedes encontrarlo en https://openweathermap.org/find?q=San+Salvador +UNITS="metric" # o "imperial" para Fahrenheit + +WEATHER=$(curl -sf "https://api.openweathermap.org/data/2.5/weather?id=${CITY_ID}&appid=${API_KEY}&units=${UNITS}") + +if [ "$WEATHER" != "" ]; then + TEMP=$(echo "$WEATHER" | jq '.main.temp' | cut -d "." -f 1) + ICON=$(echo "$WEATHER" | jq -r '.weather[0].icon') + echo ".:  ${TEMP}󰔄 :." +else + echo ".: Weather unavailable :." +fi diff --git a/waybar/scripts/workspaces_icons.py b/waybar/scripts/workspaces_icons.py new file mode 100755 index 0000000..9c13342 --- /dev/null +++ b/waybar/scripts/workspaces_icons.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +import json +import subprocess + +icons = { + "firefox": "", + "kitty": "", + "code": "", + "nemo": "", + "discord": "", + "spotify": "", +} + +def get_windows(): + result = subprocess.run(["hyprctl", "clients", "-j"], stdout=subprocess.PIPE) + return json.loads(result.stdout) + +def get_workspaces(): + result = subprocess.run(["hyprctl", "workspaces", "-j"], stdout=subprocess.PIPE) + return json.loads(result.stdout) + +def main(): + windows = get_windows() + workspaces = get_workspaces() + + ws_icons = {} + + for ws in workspaces: + ws_id = ws["id"] + ws_icons[ws_id] = [] + + for win in windows: + app = win["class"].lower() + ws_id = win["workspace"]["id"] + icon = icons.get(app, "?") + if icon not in ws_icons[ws_id]: + ws_icons[ws_id].append(icon) + + output = " ".join( + f"{ws}:{''.join(ws_icons[ws])}" for ws in sorted(ws_icons.keys()) + ) + + print(output) + +if __name__ == "__main__": + main() + diff --git a/waybar/scripts/xpu_info.sh b/waybar/scripts/xpu_info.sh new file mode 100755 index 0000000..435ace9 --- /dev/null +++ b/waybar/scripts/xpu_info.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Obtener uso de la GPU con nvidia-smi +usage=$(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits | head -n 1) +temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits | head -n 1) + +temp_formated=$(printf "%02d\n" $temp) +usage_formated=$(printf "%02d\n" $usage) + +progress_gpu=$(sh ~/.config/waybar/scripts/status_bar.sh $usage) + +# Obtener temperatura desde sysfs +temp_raw=$(cat /sys/class/hwmon/hwmon2/temp1_input) +temp_c=$((temp_raw / 1000)) + +# Obtener uso de CPU +usage=$(grep 'cpu ' /proc/stat | awk '{u=$2+$4; t=$2+$4+$5; print u, t}') +sleep 0.5 +usage2=$(grep 'cpu ' /proc/stat | awk '{u=$2+$4; t=$2+$4+$5; print u, t}') +u1=$(echo $usage | awk '{print $1}') +t1=$(echo $usage | awk '{print $2}') +u2=$(echo $usage2 | awk '{print $1}') +t2=$(echo $usage2 | awk '{print $2}') +cpu_usage=$((100 * (u2 - u1) / (t2 - t1))) +cpu_usage_formated=$(printf "%02d\n" $cpu_usage) +temp_c_formated=$(printf "%02d\n" $temp_c) +progress=$(sh ~/.config/waybar/scripts/status_bar.sh $cpu_usage) + +# Imprimir formato +echo "  CPU ${temp_c}°C / ${cpu_usage_formated}% ${progress} ""  GPU ${temp_formated}°C / ${usage_formated}% $progress_gpu" diff --git a/waybar/style.css b/waybar/style.css new file mode 100755 index 0000000..6a3111a --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,259 @@ +@define-color fondo_color rgba(10, 11, 19, 0.6); +@define-color fore_color #bec1cb; +@define-color borde_color #bec1cb; + +* { + font-family: "Mononoki Nerd Font Bold"; + font-size: 13px; + min-height: 0; + font-weight: bold; + /*color: @fore_color;*/ /* Cambiar color de texto a blanco */ +} + +window#waybar { + background: transparent; + background-color: @fondo_color; + border-radius : 15px; + color: @fore_color; + transition-property: background-color; + transition-duration: 0.1s; + border: 2px solid @borde_color; /* Borde de color blanco semi-transparente */ + +} + +#window { + border-radius: 5px; + margin: 8px; + padding-left: 8px; + padding-right: 8px; + background-color: transparent; +} + +button { + box-shadow: inset 0 -3px transparent; + border: none; + border-radius: 5px; /* Borde redondeado */ + padding: 6px 12px; /* Ajusta el padding para que se vea más ovalado */ + background-color: @fondo_color; + color: @fore_color; /* Color de texto blanco */ + transition: background-color 0.3s, color 0.3s; + border: 2px solid @borde_color; /* Borde de color blanco semi-transparente */ +} + +button:hover { + background: inherit; + color: #32302f; + border-top: 2px solid @fondo_color; +} + +#workspaces button { + border-radius: 5px; /* Borde redondeado */ + padding: 0 4px; + border-radius: 20px; /* Borde redondeado */ + color: @fore_color; /* Color de texto blanco */ + border: 2px solid @borde_color /* Borde de color blanco semi-transparente */ +} +# +#workspaces button.focused { + /*border-radius: 5px;*/ /* Borde redondeado */ + background-color: rgba(0, 0, 0, 0.3); + color: @rosewater; + /* border: 2px solid @rosewater; *//* Borde color rosa */ +} + +#workspaces button.active { + /*border-radius: 5px; *//* Borde redondeado */ + background-color: @fore_color; + color: @fondo_color; + border: 2px solid @borde_color;/* Borde color rosa */ +} + +#workspaces button.urgent { + border-radius: 5px; /* Borde redondeado */ + background-color: #eb4d4b; + color: @fore_color; + border: 2px solid #eb4d4b; /* Borde rojo */ +} + +/* Estilos generales para otros módulos */ +#puleaudio, +#custom-gpu +#custom-cpuinfo +#clock, +#battery, +cpu, +#memory, +#disk, +temperature, +#backlight, +#wireplumber, +#tray, +#network, +#mode, +#scratchpad { + margin-top: 2px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 4px; + padding-left: 1px; + padding-right: 1px; + /*border-radius: 5px; *//* Borde redondeado */ + /*background-color: rgba(0, 0, 0, 0.3);*/ /* Fondo ligeramente oscuro */ + color: @fore_color; + /*border: 2px solid #32302f; *//* Borde de color blanco */ +} + +#network { + margin-right: 8px; + /* border:2px solid #d8a657 ; */ +} + +#pulseaudio { + /*border:2px solid #ea6962 */; + /* border-radius: 5px; *//* Borde redondeado */ +} + +#clock{ +/* border:2px solid #7daea3; */ + /* border-radius: 5px;*/ /* Borde redondeado */ +} + + +#temperature.cpu, +#temperature.gpu { + padding: 0 8px; + border: 2px solid @green; + border-radius: 5px; + color: white; + background-color: rgba(0, 0, 0, 0.3); +} + +#temperature.cpu.critical, +#temperature.gpu.critical { + border-color: @red; + color: @red; +} + +#custom-gpu { + margin-right: 8px; + padding: 0 1px; + /*border: 2px solid #458588; */ + /*border-radius: 5px; */ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-gpu.critical { + border-color: red; + color: red; +} + +#custom-cpuinfo { + padding: 8px; + margin-right: 8px; + /*border: 2px solid #a9b665; */ + /*border-radius: 5px; */ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-cpuinfo.critical { + border-color: red; + color: red; +} + + +#mpris { + margin-right: 8px; + padding: 20px; + border: 2px solid #d65d0e; + border-radius: 5px; + color: @fore_color; + background-color: rgba(0, 0, 0, 0.3); +} + +#mpris.paused { + border-color: #a89984; + color: @borde_color; +} + +#custom-weather { + margin-right: 2px; + padding: 0 2px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-uptime { + padding: 0 8px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + } + + +#custom-flagvpn { + margin-right: 8px; + padding: 0 8px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-timer { + margin-right: 8px; + padding: 0 8px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + + + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left>widget:first-child>#workspaces { + border-radius: 5px; + margin-left: 1; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right>widget:last-child>#workspaces { + border-radius: 5px; + margin-right: 0; +} + +#custom-vpn { + margin-right: 8px; + color: @lavender; + border-radius: 15px; + padding-left: 6px; + padding-right: 6px; +} + +#custom-appicons { + font-size: 30px; + margin-right: 8px; + color: @lavender; + border-radius: 15px; + padding-left: 6px; + padding-right: 6px; +} + +menu { + background: transparent; + background-color: @fondo_color; + border-radius: 15px; + color: @fore_color; + border: 1px solid @borde_color; /* Borde de color blanco semi-transparente */ + } + menuitem { + border-radius: 15px; + background: transparent; + background-color: @fondo_color; + color: @fore_color; + border: 1px solid @borde_color; /* Borde de color blanco semi-transparente */ + } diff --git a/waybar/style.css.bk2 b/waybar/style.css.bk2 new file mode 100755 index 0000000..45ec1cd --- /dev/null +++ b/waybar/style.css.bk2 @@ -0,0 +1,261 @@ +@define-color fondo_color rgba(12, 8, 10, 0.6); +@define-color fore_color #ded4d8; +@define-color borde_color #ded4d8; + +* { + font-family: "Mononoki Nerd Font Bold"; + font-size: 13px; + min-height: 0; + font-weight: bold; + /*color: @fore_color;*/ /* Cambiar color de texto a blanco */ +} + +window#waybar { + background: transparent; + background-color: @fondo_color; + border-radius : 15px; + color: @fore_color; + transition-property: background-color; + transition-duration: 0.1s; + border: 2px solid @borde_color; /* Borde de color blanco semi-transparente */ + +} + +#window { + border-radius: 5px; + margin: 8px; + padding-left: 8px; + padding-right: 8px; + background-color: transparent; + + +} + +button { + box-shadow: inset 0 -3px transparent; + border: none; + border-radius: 5px; /* Borde redondeado */ + padding: 6px 12px; /* Ajusta el padding para que se vea más ovalado */ + background-color: @fondo_color; + color: @fore_color; /* Color de texto blanco */ + transition: background-color 0.3s, color 0.3s; + border: 2px solid @borde_color; /* Borde de color blanco semi-transparente */ +} + +button:hover { + background: inherit; + color: #32302f; + border-top: 2px solid @fondo_color; +} + +#workspaces button { + border-radius: 5px; /* Borde redondeado */ + padding: 0 4px; + border-radius: 20px; /* Borde redondeado */ + color: @fore_color; /* Color de texto blanco */ + border: 2px solid @borde_color /* Borde de color blanco semi-transparente */ +} +# +#workspaces button.focused { + /*border-radius: 5px;*/ /* Borde redondeado */ + background-color: rgba(0, 0, 0, 0.3); + color: @rosewater; + /* border: 2px solid @rosewater; *//* Borde color rosa */ +} + +#workspaces button.active { + /*border-radius: 5px; *//* Borde redondeado */ + background-color: @fore_color; + color: @fondo_color; + border: 2px solid @borde_color;/* Borde color rosa */ +} + +#workspaces button.urgent { + border-radius: 5px; /* Borde redondeado */ + background-color: #eb4d4b; + color: @fore_color; + border: 2px solid #eb4d4b; /* Borde rojo */ +} + +/* Estilos generales para otros módulos */ +#puleaudio, +#custom-gpu +#custom-cpuinfo +#clock, +#battery, +cpu, +#memory, +#disk, +temperature, +#backlight, +#wireplumber, +#tray, +#network, +#mode, +#scratchpad { + margin-top: 2px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 4px; + padding-left: 1px; + padding-right: 1px; + /*border-radius: 5px; *//* Borde redondeado */ + /*background-color: rgba(0, 0, 0, 0.3);*/ /* Fondo ligeramente oscuro */ + color: @fore_color; + /*border: 2px solid #32302f; *//* Borde de color blanco */ +} + +#network { + margin-right: 8px; + /* border:2px solid #d8a657 ; */ +} + +#pulseaudio { + /*border:2px solid #ea6962 */; + /* border-radius: 5px; *//* Borde redondeado */ +} + +#clock{ +/* border:2px solid #7daea3; */ + /* border-radius: 5px;*/ /* Borde redondeado */ +} + + +#temperature.cpu, +#temperature.gpu { + padding: 0 8px; + border: 2px solid @green; + border-radius: 5px; + color: white; + background-color: rgba(0, 0, 0, 0.3); +} + +#temperature.cpu.critical, +#temperature.gpu.critical { + border-color: @red; + color: @red; +} + +#custom-gpu { + margin-right: 8px; + padding: 0 1px; + /*border: 2px solid #458588; */ + /*border-radius: 5px; */ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-gpu.critical { + border-color: red; + color: red; +} + +#custom-cpuinfo { + padding: 8px; + margin-right: 8px; + /*border: 2px solid #a9b665; */ + /*border-radius: 5px; */ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-cpuinfo.critical { + border-color: red; + color: red; +} + + +#mpris { + margin-right: 8px; + padding: 20px; + border: 2px solid #d65d0e; + border-radius: 5px; + color: @fore_color; + background-color: rgba(0, 0, 0, 0.3); +} + +#mpris.paused { + border-color: #a89984; + color: @borde_color; +} + +#custom-weather { + margin-right: 2px; + padding: 0 2px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-uptime { + padding: 0 8px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + } + + +#custom-flagvpn { + margin-right: 8px; + padding: 0 8px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-timer { + margin-right: 8px; + padding: 0 8px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + + + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left>widget:first-child>#workspaces { + border-radius: 5px; + margin-left: 1; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right>widget:last-child>#workspaces { + border-radius: 5px; + margin-right: 0; +} + +#custom-vpn { + margin-right: 8px; + color: @lavender; + border-radius: 15px; + padding-left: 6px; + padding-right: 6px; +} + +#custom-appicons { + font-size: 30px; + margin-right: 8px; + color: @lavender; + border-radius: 15px; + padding-left: 6px; + padding-right: 6px; +} + +menu { + background: transparent; + background-color: @fondo_color; + border-radius: 15px; + color: @fore_color; + border: 1px solid @borde_color; /* Borde de color blanco semi-transparente */ + } + menuitem { + border-radius: 15px; + background: transparent; + background-color: @fondo_color; + color: @fore_color; + border: 1px solid @borde_color; /* Borde de color blanco semi-transparente */ + } diff --git a/waybar/style.css.catpu b/waybar/style.css.catpu new file mode 100755 index 0000000..e9965ea --- /dev/null +++ b/waybar/style.css.catpu @@ -0,0 +1,214 @@ +@import "mocha.css"; + +* { + font-family: "MesloLGS Nerd Font Mono Bold"; + font-size: 13px; + min-height: 0; + font-weight: bold; + color: white; /* Cambiar color de texto a blanco */ +} + +window#waybar { + background: transparent; + background-color: rgba(30, 30, 46, 0.6);; + color: @overlay0; + transition-property: background-color; + transition-duration: 0.1s; + border: 1px solid @rosewater; + border-radius: 15px; + padding-left: 8px; +} + +tooltip { + background: transparent; + background-color: rgba(30, 30, 46, 0.6);; + color: @overlay0; + transition-property: background-color; + transition-duration: 0.1s; + border: 1px solid @rosewater; + border-radius: 35px; + padding-left: 8px; +} + + + +#window { + margin: 8px; + padding-left: 8px; + padding-right: 8px; + background-color: transparent; +} + +button { + box-shadow: inset 0 -3px transparent; + border: none; + padding: 6px 12px; /* Ajusta el padding para que se vea más ovalado */ + color: white; /* Color de texto blanco */ + transition: background-color 0.3s, color 0.3s; +} + +button:hover { + background: inherit; + color: @mauve; + border-top: 2px solid @mauve; +} + +#workspaces button { + padding: 0 4px; + color: white; /* Color de texto blanco */ +} + +#workspaces button.focused { + color: @rosewater; +} + +#workspaces button.active { + color: @mauve; + border: 1px solid @mauve; +} + +#workspaces button.urgent { + color: white; +} + +/* Estilos generales para otros módulos */ +#pulseaudio, +#clock, +#battery, +cpu, +#memory, +#disk, +temperature, +#backlight, +#wireplumber, +#tray, +#network, +#mode, +#scratchpad { + margin-top: 2px; + margin-bottom: 2px; + margin-left: 4px; + margin-right: 4px; + padding-left: 4px; + padding-right: 4px; + /*color: white; Texto blanco */ +} + +#network { + color: @rosewater; + +} + +#pulseaudio { + color: @mauve; +} +#clock{ + color: @yellow; +} + +#temperature.cpu, +#temperature.gpu { + padding: 0 8px; + border: 2px solid @green; + border-radius: 15px; + color: white; + background-color: rgba(0, 0, 0, 0.3); +} + +#temperature.cpu.critical, +#temperature.gpu.critical { + border-color: @red; + color: @red; +} + +#custom-gpu { + padding: 0 8px; + color: @blue; +} + +#custom-gpu.critical { + border-color: red; + color: red; +} + +#custom-cpuinfo { + padding: 0 8px; + color: @green; +} + +#custom-cpuinfo.critical { + border-color: red; + color: red; +} + + +#mpris { + padding: 1 20px; + border: 2px solid @mauve; + border-radius: 15px; + color: white; + background-color: rgba(0, 0, 0, 0.3); +} + +#mpris.paused { + border-color: @gray; + color: @gray; +} + +#custom-gpu { + margin-right: 8px; + color: @blue; +} + +#custom-gpu.critical { + border-color: red; + color: red; +} + +#custom-weather { + margin-right: 8px; + padding: 0 8px; + color: @sky; +} + +#custom-uptime { + color: #d3869b; + } + + +#custom-flagvpn { + color: #d3869b; +} + + + +/* 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; +} + +#custom-vpn { + color: @lavender; + border-radius: 15px; + padding-left: 6px; + padding-right: 6px; +} + +#custom-timer { + margin-right: 8px; + padding: 0 8px; + border: 2px solid @lavender; + border-radius: 15px; + color: #f9f5d7; + background-color: rgba(0, 0, 0, 0.3); +} + + + + + diff --git a/waybar/style.css.gruvbox b/waybar/style.css.gruvbox new file mode 100755 index 0000000..2e14519 --- /dev/null +++ b/waybar/style.css.gruvbox @@ -0,0 +1,266 @@ +@define-color fondo_color rgba(40, 33, 31, 0.6); +@define-color fore_color #ede9e3; +@define-color borde_color #ede9e3; + +* { + font-family: "Mononoki Nerd Font Bold"; + font-size: 13px; + min-height: 0; + font-weight: bold; + /*color: @fore_color;*/ /* Cambiar color de texto a blanco */ +} + +window#waybar { + background: transparent; + background-color: @fondo_color; + border-radius : 15px; + color: @fore_color; + transition-property: background-color; + transition-duration: 0.1s; + border: 1px solid @borde_color; /* Borde de color blanco semi-transparente */ + padding-left: 8; + padding-right: 8; + padding-top: 8; + padding-bottom: 8; +} + +#window { + border-radius: 5px; + margin: 8px; + padding-left: 8; + padding-right: 8; + background-color: transparent; +} + +button { + box-shadow: inset 0 -3px transparent; + border: none; + border-radius: 5px; /* Borde redondeado */ + padding: 6px 12px; /* Ajusta el padding para que se vea más ovalado */ + background-color: @fondo_color; + color: @fore_color; /* Color de texto blanco */ + transition: background-color 0.3s, color 0.3s; + border: 2px solid @borde_color; /* Borde de color blanco semi-transparente */ +} + +button:hover { + background: inherit; + color: #32302f; + border-top: 2px solid @fondo_color; +} + +#workspaces button { + border-radius: 5px; /* Borde redondeado */ + padding: 0 4px; + border-radius: 20px; /* Borde redondeado */ + color: @fore_color; /* Color de texto blanco */ + border: 2px solid @borde_color /* Borde de color blanco semi-transparente */ +} +# +#workspaces button.focused { + /*border-radius: 5px;*/ /* Borde redondeado */ + background-color: rgba(0, 0, 0, 0.3); + color: @rosewater; + /* border: 2px solid @rosewater; *//* Borde color rosa */ +} + +#workspaces button.active { + /*border-radius: 5px; *//* Borde redondeado */ + background-color: @fore_color; + color: @fondo_color; + border: 2px solid @borde_color;/* Borde color rosa */ +} + +#workspaces button.urgent { + border-radius: 5px; /* Borde redondeado */ + background-color: #eb4d4b; + color: @fore_color; + border: 2px solid #eb4d4b; /* Borde rojo */ +} + +/* Estilos generales para otros módulos */ +#puleaudio, +#custom-gpu +#custom-cpuinfo +#clock, +#battery, +cpu, +#memory, +#disk, +temperature, +#backlight, +#wireplumber, +#tray, +#network, +#mode, +#scratchpad { + margin-top: 2px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 4px; + padding-left: 1px; + padding-right: 1px; + /*border-radius: 5px; *//* Borde redondeado */ + /*background-color: rgba(0, 0, 0, 0.3);*/ /* Fondo ligeramente oscuro */ + color: @fore_color; + /*border: 2px solid #32302f; *//* Borde de color blanco */ +} + +#network { + margin-right: 8px; + /* border:2px solid #d8a657 ; */ +} + +#pulseaudio { + /*border:2px solid #ea6962 */; + /* border-radius: 5px; *//* Borde redondeado */ +} + +#clock{ +/* border:2px solid #7daea3; */ + /* border-radius: 5px;*/ /* Borde redondeado */ +} + + +#temperature.cpu, +#temperature.gpu { + padding: 0 8px; + border: 2px solid @green; + border-radius: 5px; + color: white; + background-color: rgba(0, 0, 0, 0.3); +} + +#temperature.cpu.critical, +#temperature.gpu.critical { + border-color: @red; + color: @red; +} + +#custom-gpu { + margin-right: 8px; + padding: 0 1px; + /*border: 2px solid #458588; */ + /*border-radius: 5px; */ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-gpu.critical { + border-color: red; + color: red; +} + +#custom-cpuinfo { + padding: 1 8px; + margin-right: 8px; + /*border: 2px solid #a9b665; */ + /*border-radius: 5px; */ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-cpuinfo.critical { + border-color: red; + color: red; +} + + +#mpris { + margin-right: 8px; + padding: 1 20px; + border: 2px solid #d65d0e; + border-radius: 5px; + color: @fore_color; + background-color: rgba(0, 0, 0, 0.3); +} + +#mpris.paused { + border-color: #a89984; + color: @borde_color; +} + +#custom-weather { + margin-right: 2px; + padding: 0 2px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-uptime { + padding: 0 8px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + } + + +#custom-flagvpn { + margin-right: 8px; + padding: 0 8px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + +#custom-timer { + margin-right: 8px; + padding: 0 8px; + /*border: 2px solid #d3869b;*/ + /*border-radius: 5px;*/ + color: @fore_color; + /*background-color: rgba(0, 0, 0, 0.3);*/ +} + + + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left>widget:first-child>#workspaces { + border-radius: 5px; + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right>widget:last-child>#workspaces { + border-radius: 5px; + margin-right: 0; +} + +#custom-vpn { + margin-right: 8px; + color: @lavender; + border-radius: 15px; + padding-left: 6px; + padding-right: 6px; +} + +#custom-appicons { + font-size: 30px; + margin-right: 8px; + color: @lavender; + border-radius: 15px; + padding-left: 6px; + padding-right: 6px; +} + +menu { + background: transparent; + background-color: @fondo_color; + border-radius: 15px; + color: @fore_color; + border: 1px solid @borde_color; /* Borde de color blanco semi-transparente */ + } + menuitem { + border-radius: 15px; + background: transparent; + background-color: @fondo_color; + color: @fore_color; + border: 1px solid @borde_color; /* Borde de color blanco semi-transparente */ + } + + + + diff --git a/waybar/style.css.gruvbox.bk1 b/waybar/style.css.gruvbox.bk1 new file mode 100755 index 0000000..f735b87 --- /dev/null +++ b/waybar/style.css.gruvbox.bk1 @@ -0,0 +1,229 @@ +@import "mocha.css"; + +* { + font-family: "Mononoki Nerd Font Bold"; + font-size: 9px; + min-height: 0; + font-weight: bold; + color: #f9f5d7; /* Cambiar color de texto a blanco */ +} + +window#waybar { + background: transparent; + background-color: rgba(29, 32, 33, 0.6);; + color: @overlay0; + transition-property: background-color; + transition-duration: 0.1s; +} + +#window { + border-radius: 5px; + margin: 8px; + padding-left: 8; + padding-right: 8; + background-color: transparent; +} + +button { + box-shadow: inset 0 -3px transparent; + border: none; + border-radius: 5px; /* Borde redondeado */ + padding: 6px 12px; /* Ajusta el padding para que se vea más ovalado */ + background-color: #32302f; + color: #f9f5d7; /* Color de texto blanco */ + transition: background-color 0.3s, color 0.3s; + border: 2px solid #46413e; /* Borde de color blanco semi-transparente */ +} + +button:hover { + background: inherit; + color: #32302f; + border-top: 2px solid #46413e; +} + +#workspaces button { + border-radius: 5px; /* Borde redondeado */ + padding: 0 4px; + border-radius: 20px; /* Borde redondeado */ + color: #f9f5d7; /* Color de texto blanco */ + border: 2px solid rgba(255, 255, 255, 0.6); /* Borde de color blanco semi-transparente */ +} +# +#workspaces button.focused { + border-radius: 5px; /* Borde redondeado */ + background-color: rgba(0, 0, 0, 0.3); + color: @rosewater; + border: 2px solid @rosewater; /* Borde color rosa */ +} + +#workspaces button.active { + border-radius: 5px; /* Borde redondeado */ + background-color: rgba(0, 0, 0, 0.3); + color: @mauve; + border: 2px solid #8ec07c; /* Borde color mauve */ +} + +#workspaces button.urgent { + border-radius: 5px; /* Borde redondeado */ + background-color: #eb4d4b; + color: #f9f5d7; + border: 2px solid #eb4d4b; /* Borde rojo */ +} + +/* Estilos generales para otros módulos */ +#puleaudio, +#custom-gpu +#custom-cpuinfo +#clock, +#battery, +cpu, +#memory, +#disk, +temperature, +#backlight, +#wireplumber, +#tray, +#network, +#mode, +#scratchpad { + margin-top: 2px; + margin-bottom: 2px; + margin-left: 4px; + margin-right: 4px; + padding-left: 4px; + padding-right: 4px; + border-radius: 5px; /* Borde redondeado */ + background-color: rgba(0, 0, 0, 0.3); /* Fondo ligeramente oscuro */ + /*color: white; Texto blanco */ + /* border: 2px solid #32302f; /* Borde de color blanco */ */ +} + +#network { + margin-right: 8px; + border:2px solid #d8a657 ; +} + +#pulseaudio { + border:2px solid #ea6962 ; + border-radius: 5px; /* Borde redondeado */ +} +#clock{ +/* border:2px solid #7daea3; */ +/* border-radius: 5px; */ /* Borde redondeado */ +} + +#temperature.cpu, +#temperature.gpu { + padding: 0 8px; + border: 2px solid @green; + border-radius: 5px; + color: white; + background-color: rgba(0, 0, 0, 0.3); +} + +#temperature.cpu.critical, +#temperature.gpu.critical { + border-color: @red; + color: @red; +} + +#custom-gpu { + margin-right: 8px; + padding: 0 8px; + border: 2px solid #458588; + border-radius: 5px; + color: #f9f5d7; + background-color: rgba(0, 0, 0, 0.3); +} + +#custom-gpu.critical { + border-color: red; + color: red; +} + +#custom-cpuinfo { + padding: 1 8px; + margin-right: 8px; + border: 2px solid #a9b665; + border-radius: 5px; + color: #f9f5d7; + background-color: rgba(0, 0, 0, 0.3); +} + +#custom-cpuinfo.critical { + border-color: red; + color: red; +} + + +#mpris { + margin-right: 8px; + padding: 1 20px; + border: 2px solid #d65d0e; + border-radius: 5px; + color: #f9f5d7; + background-color: rgba(0, 0, 0, 0.3); +} + +#mpris.paused { + border-color: #a89984; + color: #fbf1c7; +} + +#custom-weather { + margin-right: 8px; + padding: 0 8px; + border: 2px solid #d3869b; + border-radius: 5px; + color: #f9f5d7; + background-color: rgba(0, 0, 0, 0.3); +} + +#custom-uptime { + padding: 0 8px; + border: 2px solid #d3869b; + border-radius: 5px; + color: #f9f5d7; + } + + +#custom-flagvpn { + margin-right: 8px; + padding: 0 8px; + border: 2px solid #d3869b; + border-radius: 5px; + color: #f9f5d7; + background-color: rgba(0, 0, 0, 0.3); +} + +#custom-timer { + margin-right: 8px; + padding: 0 8px; + border: 2px solid #d3869b; + border-radius: 5px; + color: #f9f5d7; + background-color: rgba(0, 0, 0, 0.3); +} + + + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left>widget:first-child>#workspaces { + border-radius: 5px; + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right>widget:last-child>#workspaces { + border-radius: 5px; + margin-right: 0; +} + +#custom-vpn { + margin-right: 8px; + color: @lavender; + border-radius: 15px; + padding-left: 6px; + padding-right: 6px; +} + diff --git a/waybar/style.css.nord b/waybar/style.css.nord new file mode 100755 index 0000000..98625ca --- /dev/null +++ b/waybar/style.css.nord @@ -0,0 +1,318 @@ + +@keyframes blink-warning { + 70% { + color: @light; + } + + to { + color: @light; + background-color: @warning; + } +} + +@keyframes blink-critical { + 70% { + color: @light; + } + + to { + color: @light; + background-color: @critical; + } +} + + +/* ----------------------------------------------------------------------------- + * Styles + * -------------------------------------------------------------------------- */ + +/* COLORS */ + +/* Nord */ +@define-color bg #2E3440; +/*@define-color bg #353C4A;*/ +@define-color light #D8DEE9; +/*@define-color dark @nord_dark_font;*/ +@define-color warning #ebcb8b; +@define-color critical #BF616A; +@define-color mode #434C5E; +/*@define-color workspaces @bg;*/ +/*@define-color workspaces @nord_dark_font;*/ +/*@define-color workspacesfocused #434C5E;*/ +@define-color workspacesfocused #4C566A; +@define-color tray @workspacesfocused; +@define-color sound #EBCB8B; +@define-color network #5D7096; +@define-color memory #546484; +@define-color cpu #596A8D; +@define-color temp #4D5C78; +@define-color layout #5e81ac; +@define-color battery #88c0d0; +@define-color date #434C5E; +@define-color time #434C5E; +@define-color backlight #434C5E; +@define-color nord_bg #434C5E; +@define-color nord_bg_blue #546484; +@define-color nord_light #D8DEE9; +@define-color nord_light_font #D8DEE9; +@define-color nord_dark_font #434C5E; +@define-color nord_bg_blue_obscure #4c566a; + +/* Reset all styles */ +* { + border: none; + border-radius: 3px; + min-height: 0; + margin: 0.2em 0.3em 0.2em 0.3em; +} + +/* The whole bar */ +#waybar { + + background: transparent; + background-color: rgba(29, 32, 33, 0.6); + color: @light; + font-family: "Cantarell", "Font Awesome 5 Pro"; + font-size: 12px; + transition-property: background-color; + font-weight: bold; +} + +/* Each module */ +#battery, +#clock, +#cpu, +#custom-layout, +#memory, +#mode, +#network, +#pulseaudio, +#temperature, +#custom-alsa, +#custom-pacman, +#custom-weather, +#custom-gpu, +#custom-timer +#tray, +#backlight, +#language, +#custom-cpugovernor { + padding-left: 0.6em; + padding-right: 0.6em; +} + +/* Each module that should blink */ +#mode, +#memory, +#temperature, +#battery { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +/* Each critical module */ +#memory.critical, +#cpu.critical, +#temperature.critical, +#battery.critical { + color: @critical; +} + +/* Each critical that should blink */ +#mode, +#memory.critical, +#temperature.critical, +#battery.critical.discharging { + animation-name: blink-critical; + animation-duration: 2s; +} + +/* Each warning */ +#network.disconnected, +#memory.warning, +#cpu.warning, +#temperature.warning, +#battery.warning { + background: @warning; + color: @nord_dark_font; +} + +/* Each warning that should blink */ +#battery.warning.discharging { + animation-name: blink-warning; + animation-duration: 3s; +} + +/* And now modules themselves in their respective order */ + +#mode { /* Shown current Sway mode (resize etc.) */ + color: @light; + background: @mode; +} + +/* Workspaces stuff */ +/*new*/ + +#workspaces button { + + padding : 0 4px; + border-radius: 0px; /* Borde redondeado */ + color: white; /* Color de texto blanco */ + border: 2px solid rgba(255, 255, 255, 0.6); /* Borde de color blanco semi-transparente */ +} + +#workspaces button.focused { + color: white; + border: 2px solid red; /* Borde color rosa */ +} + +#workspaces button.active { + background-color: @nord_bg_blue; + color: white; + border: 2px solid @light; /* Borde color mauve */ +} + +#workspaces button.urgent { + background-color: #eb4d4b; + color: white; + border: 2px solid #eb4d4b; /* Borde rojo */ +} + + + + +#window { + margin-right: 40px; + margin-left: 40px; + font-weight: normal; +} +#bluetooth { + background: @nord_bg_blue; + font-size: 1.2em; + font-weight: bold; + padding: 0 0.6em; +} + +#custom-flagvpn { + background: @nord_bg_blue; + font-size: 1.2em; + font-weight: bold; + padding: 0 0.6em; +} + +#custom-gpu { + background: @nord_bg_blue_obscure; + font-weight: bold; + padding: 0 0.6em; +} + +#custom-timer { + background: @nord_bg_blue_obscure; + font-weight: bold; + padding: 0 0.6em; +} + +#custom-weather { + background: @mode; + font-weight: bold; + padding: 0 0.6em; +} +#custom-pacman { + background: @nord_light; + color: @nord_dark_font; + font-weight: bold; + padding: 0 0.6em; +} +#custom-scratchpad-indicator { + background: @nord_light; + color: @nord_dark_font; + font-weight: bold; + padding: 0 0.6em; +} +#idle_inhibitor { + background: @mode; + /*font-size: 1.6em;*/ + font-weight: bold; + padding: 0 0.6em; +} +#custom-alsa { + background: @sound; +} + +#network { + background: @nord_bg_blue; +} + +#memory { + background: @memory; +} + +#cpu { + background: @nord_bg; + color: #D8DEE9; +} +#cpu.critical { + color: @nord_dark_font; +} +#language { + background: @nord_bg_blue; + color: #D8DEE9; + padding: 0 0.4em; +} +#custom-cpugovernor { + background-color: @nord_light; + color: @nord_dark_font; +} +#custom-cpugovernor.perf { + +} +#temperature { + background-color: @nord_bg; + color: #D8DEE9; +} +#temperature.critical { + background: @critical; +} +#custom-layout { + background: @layout; +} + +#battery { + background: @battery; +} + +#backlight { + background: @backlight; +} + +#clock { + background: @nord_bg_blue; + color: #D8DEE9; +} +#clock.date { + background: @date; +} + +#clock.time { + background: @mode; +} + +#pulseaudio { /* Unsused but kept for those who needs it */ + background: @nord_bg_blue; + color: #D8DEE9; +} + +#pulseaudio.muted { + background: #BF616A; + color: #BF616A; + /* No styles */ +} +#pulseaudio.source-muted { + background: #D08770; + color: #D8DEE9; + /* No styles */ +} +#tray { + background: #434C5E; +} diff --git a/window_options b/window_options new file mode 100755 index 0000000..7a693aa --- /dev/null +++ b/window_options @@ -0,0 +1,3 @@ +#!/bin/bash + +