From 32c61ec63a0c09407f2d1c07cb9e3a6f496b9403 Mon Sep 17 00:00:00 2001 From: "Lucas F." Date: Tue, 24 Jun 2025 15:45:51 -0300 Subject: [PATCH] initial --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ install.sh | 16 ++++++++++++++++ wallp.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ wallpaper.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 152 insertions(+) create mode 100644 README.md create mode 100644 install.sh create mode 100755 wallp.sh create mode 100755 wallpaper.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..3211c08 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +## Script para mudar o wallpaper no [Hyprland](https://github.com/hyprwm/Hyprland) com o comando `wallpaper` + + +### Pré-requisitos + +* [FuzzyFinder](https://github.com/junegunn/fzf) +* [Hyprland](https://github.com/hyprwm/Hyprland) +* [Hyprpaper](https://github.com/hyprwm/hyprpaper) +* [Mpvpaper](https://github.com/GhostNaN/mpvpaper) + + +### Instalação + +Para instalar o script, execute o seguinte comando: + +```bash +sh <(curl -s https://git.lucasf.xyz/public/wallpaper/raw/branch/master/install.sh) +``` + +A instalação irá clonar o repositório na pasta `~/.local/share/wallpaper` e criar links simbolicos na pasta `~/.local/bin`. + + +### Uso + +Adicione a seguinte linha no arquivo de configuração do Hyprland `~/.config/hypr/hypr.conf`: + +```bash +exec-once = bash ~/.local/bin/wallp +``` + + +### Escolhendo um wallpaper + +Para escolher um wallpaper, execute o comando `wallpaper` e escolha o wallpaper desejado. +Serão exibidos os wallpapers disponíveis na pasta `~/.local/share/wallpaper`. + +```bash +wallpaper +``` + + +### Desinstalação + +Para desinstalar o script, execute os seguintes comandos: + +```bash +rm -rf ~/.local/share/wallpaper ~/.local/bin/wallp ~/.local/bin/wallpaper +if [ -f ~/.config/hypr/hyprland.conf ]; then + sed -i '/\/bin\/wallp/d' ~/.config/hypr/hyprland.conf +fi +``` diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..27bdbcc --- /dev/null +++ b/install.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +main() { + local INSTALLDIR="$HOME/.local/share/wallpaper" + local EXECDIR="$HOME/.local/bin" + + git clone https://git.lucasf.xyz/public/wallpaper "$INSTALLDIR" > /dev/null 2>&1 + + ln -s "$INSTALLDIR/wallpaper.sh" "$EXECDIR/wallpaper" + ln -s "$INSTALLDIR/wallp.sh" "$EXECDIR/wallp" +} + +main +if [[ $? -eq 0 ]];then echo "Wallpaper installed!!"; fi + +# vim: ft=bash:ts=4:sts=4:sw=4 diff --git a/wallp.sh b/wallp.sh new file mode 100755 index 0000000..0b2f9d4 --- /dev/null +++ b/wallp.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +WALL_TEMP_CONF_PATH="$HOME/.config/hypr/hyprp.conf" +MONITOR=$(hyprctl monitors | awk '/^Monitor/ {print $2}') + +if ! command -v fzf &> /dev/null; then + echo "fzf not found, please install it to proceed" + exit 1 +fi + +if ! command -v hyprpaper &> /dev/null; then + echo "hyprpaper not found, please install it to proceed" + exit 1 +fi + +if ! command -v mpvpaper &> /dev/null; then + echo "mpvpaper not found, please install it to proceed" + exit 1 +fi + +if pgrep -f hyprpaper > /dev/null; then + killall hyprpaper +fi + +if pgrep -f mpvpaper > /dev/null; then + killall mpvpaper +fi + +if [[ -f "$WALL_TEMP_CONF_PATH" ]]; then + source "$WALL_TEMP_CONF_PATH" + if [[ -n "$preload" ]]; then + if [[ $preload == *mp4 ]]; then + mpvpaper -o "--loop" $MONITOR $preload &> /dev/null & + else + hyprpaper --config $WALL_TEMP_CONF_PATH &> /dev/null & + fi + fi + disown +else + hyprpaper +fi + +# vim: ft=bash:ts=4:sts=4:sw=4 diff --git a/wallpaper.sh b/wallpaper.sh new file mode 100755 index 0000000..75f0006 --- /dev/null +++ b/wallpaper.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +WALL_PATH="$HOME/.local/share/backgrounds/" +WALL_TEMP_CONF="$HOME/.config/hypr/hyprp.conf" +MONITOR=$(hyprctl monitors | awk '/^Monitor/ {print $2}') + +function wallpaper(){ + if ! command -v fzf &> /dev/null; then + echo "fzf not found, please install it to proceed" + exit 1 + fi + if ! command -v hyprpaper &> /dev/null; then + echo "hyprpaper not found, please install it to proceed" + exit 1 + fi + if ! command -v mpvpaper &> /dev/null; then + echo "mpvpaper not found, please install it to proceed" + exit 1 + fi + SELECTED=$(find "$WALL_PATH" -maxdepth 1 -type f -printf '%f\n' | fzf) + if [[ ! -n "$SELECTED" ]]; then + echo "No wallpaper selected" + exit 1 + fi + echo -e > $WALL_TEMP_CONF "preload=$WALL_PATH$SELECTED\nwallpaper=$MONITOR,$WALL_PATH$SELECTED\nsplash=false\nipc=off" + if pgrep -f hyprpaper > /dev/null; then + killall hyprpaper + fi + if pgrep -f mpvpaper > /dev/null; then + killall mpvpaper + fi + if [[ $SELECTED == *mp4 ]]; then + mpvpaper -o "--loop" $MONITOR "$WALL_PATH$SELECTED" &> /dev/null & + else + hyprpaper --config "$WALL_TEMP_CONF" &> /dev/null & + fi + disown +} + +wallpaper + +# vim: ft=bash:ts=4:sts=4:sw=4