From fbec1a6ade10cd161d291e7bd4e8533522ccaa02 Mon Sep 17 00:00:00 2001 From: Nino Date: Mon, 30 Mar 2026 14:53:09 -0600 Subject: [PATCH] first commit --- aplicaciones.txt | 30 +++ aplicaciones.txt.bk | 30 +++ backup_shutdow.sh | 27 +++ c-scripts/a.out | Bin 0 -> 15880 bytes c-scripts/image_list.txt | 36 +++ c-scripts/list_images.c | 44 ++++ cache_generator.sh | 18 ++ constantlib.sh | 8 + constantlib.sh.catpu | 8 + constantlib.sh.gruvbox | 8 + constantlib.sh.nord | 8 + dmenu_run_script.sh | 25 +++ dmenu_set_image.sh | 59 +++++ dmenu_set_wallpaper.sh | 111 +++++++++ document_finder.sh | 51 +++++ fan_scripts/fan_auto.sh | 7 + fan_scripts/fan_silent.sh | 7 + fan_scripts/fan_turbo.sh | 7 + fzfz.sh | 28 +++ get_flag.sh | 9 + get_raspi_info.sh | 17 ++ hypr-sleep.sh | 8 + hypr-wakeup.sh | 4 + launcher_apps.sh | 18 ++ mount.sh | 2 + mountDo.sh | 2 + mountMusic.sh | 0 mountPx.sh | 1 + moutOT.sh | 1 + move_all_wkspce.sh | 11 + off-all-screens.sh | 6 + on-all-screens.sh | 6 + pngegg.png | Bin 0 -> 200669 bytes pulseaudio.sh | 40 ++++ pyprojs/xbox-buttons-test.py | 18 ++ pyprojs/xbox_control.py | 75 +++++++ pyprojs/xbox_py_screen.py | 347 +++++++++++++++++++++++++++++ pyprojs/xbox_py_screen.py.bk1 | 284 +++++++++++++++++++++++ rofi_run_script.sh | 26 +++ set-wallpaperengine.sh | 16 ++ showfps.sh | 7 + sv-vpn-call.sh | 12 + sv-vpn.sh | 19 ++ temp.sh | 2 + timer.sh | 38 ++++ timer_module.sh | 22 ++ toggle-theme-v2.sh | 106 +++++++++ toggle-theme.sh | 57 +++++ user.js | 6 + userChrome.css | 24 ++ wallpapers_list.txt | 105 +++++++++ wallpapers_list.txt.b1 | 87 ++++++++ waybar/buscar_archivos.sh | 12 + waybar/config.jsonc | 21 ++ waybar/config.jsonc.bk2 | 22 ++ waybar/config.jsonc.catpu | 27 +++ waybar/config.jsonc.gruvbox | 34 +++ waybar/config.jsonc.nord | 29 +++ waybar/modules.jsonc | 147 ++++++++++++ waybar/modules.jsonc.bk2 | 147 ++++++++++++ waybar/modules.jsonc.catpu | 79 +++++++ waybar/modules.jsonc.gruvbox | 105 +++++++++ waybar/modules.jsonc.nord | 165 ++++++++++++++ waybar/power_menu.xml | 28 +++ waybar/scripts/app-icons.sh | 29 +++ waybar/scripts/cpu_info.sh | 21 ++ waybar/scripts/get_flag.py | 4 + waybar/scripts/gpu_temp.sh | 12 + waybar/scripts/hdd_info.sh | 28 +++ waybar/scripts/status_bar.sh | 34 +++ waybar/scripts/uptime.sh | 5 + waybar/scripts/weather.sh | 15 ++ waybar/scripts/workspaces_icons.py | 47 ++++ waybar/scripts/xpu_info.sh | 30 +++ waybar/style.css | 259 +++++++++++++++++++++ waybar/style.css.bk2 | 261 ++++++++++++++++++++++ waybar/style.css.catpu | 214 ++++++++++++++++++ waybar/style.css.gruvbox | 266 ++++++++++++++++++++++ waybar/style.css.gruvbox.bk1 | 229 +++++++++++++++++++ waybar/style.css.nord | 318 ++++++++++++++++++++++++++ window_options | 3 + 81 files changed, 4479 insertions(+) create mode 100755 aplicaciones.txt create mode 100755 aplicaciones.txt.bk create mode 100755 backup_shutdow.sh create mode 100755 c-scripts/a.out create mode 100755 c-scripts/image_list.txt create mode 100755 c-scripts/list_images.c create mode 100755 cache_generator.sh create mode 100755 constantlib.sh create mode 100755 constantlib.sh.catpu create mode 100755 constantlib.sh.gruvbox create mode 100755 constantlib.sh.nord create mode 100755 dmenu_run_script.sh create mode 100755 dmenu_set_image.sh create mode 100755 dmenu_set_wallpaper.sh create mode 100755 document_finder.sh create mode 100755 fan_scripts/fan_auto.sh create mode 100755 fan_scripts/fan_silent.sh create mode 100755 fan_scripts/fan_turbo.sh create mode 100755 fzfz.sh create mode 100755 get_flag.sh create mode 100755 get_raspi_info.sh create mode 100755 hypr-sleep.sh create mode 100755 hypr-wakeup.sh create mode 100755 launcher_apps.sh create mode 100755 mount.sh create mode 100755 mountDo.sh create mode 100755 mountMusic.sh create mode 100755 mountPx.sh create mode 100755 moutOT.sh create mode 100755 move_all_wkspce.sh create mode 100755 off-all-screens.sh create mode 100755 on-all-screens.sh create mode 100755 pngegg.png create mode 100755 pulseaudio.sh create mode 100755 pyprojs/xbox-buttons-test.py create mode 100755 pyprojs/xbox_control.py create mode 100755 pyprojs/xbox_py_screen.py create mode 100755 pyprojs/xbox_py_screen.py.bk1 create mode 100755 rofi_run_script.sh create mode 100755 set-wallpaperengine.sh create mode 100755 showfps.sh create mode 100755 sv-vpn-call.sh create mode 100755 sv-vpn.sh create mode 100755 temp.sh create mode 100755 timer.sh create mode 100755 timer_module.sh create mode 100755 toggle-theme-v2.sh create mode 100755 toggle-theme.sh create mode 100755 user.js create mode 100755 userChrome.css create mode 100755 wallpapers_list.txt create mode 100755 wallpapers_list.txt.b1 create mode 100755 waybar/buscar_archivos.sh create mode 100755 waybar/config.jsonc create mode 100755 waybar/config.jsonc.bk2 create mode 100755 waybar/config.jsonc.catpu create mode 100755 waybar/config.jsonc.gruvbox create mode 100755 waybar/config.jsonc.nord create mode 100755 waybar/modules.jsonc create mode 100755 waybar/modules.jsonc.bk2 create mode 100755 waybar/modules.jsonc.catpu create mode 100755 waybar/modules.jsonc.gruvbox create mode 100755 waybar/modules.jsonc.nord create mode 100755 waybar/power_menu.xml create mode 100755 waybar/scripts/app-icons.sh create mode 100755 waybar/scripts/cpu_info.sh create mode 100755 waybar/scripts/get_flag.py create mode 100755 waybar/scripts/gpu_temp.sh create mode 100755 waybar/scripts/hdd_info.sh create mode 100755 waybar/scripts/status_bar.sh create mode 100755 waybar/scripts/uptime.sh create mode 100755 waybar/scripts/weather.sh create mode 100755 waybar/scripts/workspaces_icons.py create mode 100755 waybar/scripts/xpu_info.sh create mode 100755 waybar/style.css create mode 100755 waybar/style.css.bk2 create mode 100755 waybar/style.css.catpu create mode 100755 waybar/style.css.gruvbox create mode 100755 waybar/style.css.gruvbox.bk1 create mode 100755 waybar/style.css.nord create mode 100755 window_options 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 0000000000000000000000000000000000000000..ad14a8309a3a224bb1ad8e5be9ade3cafc6ddf22 GIT binary patch literal 15880 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 g4ppa|+^(vxb4S$T5@C&9-2M +#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..9c5c4af --- /dev/null +++ b/cache_generator.sh @@ -0,0 +1,18 @@ +#!/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 0000000000000000000000000000000000000000..c45c7117171a63d3b17c4f4002c61049a1027835 GIT binary patch literal 200669 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

#Mz(S*tHh)*uYss>y%upj$M@~s> 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�pRUn~jxe1;0%Huvoho?J>q1js>!M@lXuPTpaF5 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 literal 0 HcmV?d00001 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 + +