diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index 8301164..58d1195 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -13,6 +13,7 @@ monitor=,preferred,auto,auto $terminal = kitty $fileManager = nautilus $menu = wofi --show drun +$wallpaper-changer = $HOME/.config/hypr/scripts/wallpaper-changer2.sh ################# @@ -163,6 +164,7 @@ bind = $mainMod SHIFT, S, exec, grim -g "$(slurp -d)" - | wl-copy bind = $mainMod, L, exec, hyprlock bind = $mainMod, D, exec, discord-canary bind = $mainMod, F, exec, zen-browser +bind = $mainMod, W, exec, $HOME/.config/hypr/scripts/wallpaper-switcher2.sh # move focus bind = $mainMod, left, movefocus, l diff --git a/.config/hypr/scripts/wallpaper-switcher2.sh b/.config/hypr/scripts/wallpaper-switcher2.sh new file mode 100755 index 0000000..886079a --- /dev/null +++ b/.config/hypr/scripts/wallpaper-switcher2.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +# borrowed from https://github.com/JaKooLit/wallpaper-switcher/ + +# WALLPAPERS PATH +DIR=$HOME/.config/hypr/wallpapers + +# Transition config (type swww img --help for more settings +FPS=30 +TYPE="outer" +DURATION=3 + +# wofi window config (in %) +WIDTH=20 +HEIGHT=30 + +SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION" + + +PICS=($(ls ${DIR} | grep -e ".jpg$" -e ".jpeg$" -e ".png$" -e ".gif$")) + +RANDOM_PIC=${PICS[ $RANDOM % ${#PICS[@]} ]} +RANDOM_PIC_NAME="${#PICS[@]}. random" + + +# WOFI STYLES +CONFIG=$HOME/.config/hypr/wofi-wallpapers/config +STYLE=$HOME/.config/hypr/wofi-wallpapers/style.css +COLORS=$HOME/.config/hypr/wofi-wallpapers/colors + +# to check if swaybg is running + +if [[ $(pidof swaybg) ]]; then + pkill swaybg +fi + +## Wofi Command +wofi_command="wofi --show dmenu \ + --prompt choose... + --conf $CONFIG --style $STYLE --color $COLORS \ + --width=$WIDTH% --height=$HEIGHT% \ + --cache-file=/dev/null \ + --hide-scroll --no-actions \ + --matching=fuzzy" + +menu(){ + # Here we are looping in the PICS array that is composed of all images in the $DIR + # folder + for i in ${!PICS[@]}; do + # keeping the .gif to make sue you know it is animated + if [[ -z $(echo ${PICS[$i]} | grep .gif$) ]]; then + printf "$i. $(echo ${PICS[$i]} | cut -d. -f1)\n" # n°. + else + printf "$i. ${PICS[$i]}\n" + fi + done + + printf "$RANDOM_PIC_NAME" +} + +swww query || swww-daemon + +main() { + choice=$(menu | ${wofi_command}) + + # no choice case + if [[ -z $choice ]]; then return; fi + + # random choice case + if [ "$choice" = "$RANDOM_PIC_NAME" ]; then + swww img ${DIR}/${RANDOM_PIC} $SWWW_PARAMS + return + fi + + pic_index=$(echo $choice | cut -d. -f1) + swww img ${DIR}/${PICS[$pic_index]} $SWWW_PARAMS +} + +# Check if wofi is already running +if pidof wofi >/dev/null; then + killall wofi + exit 0 +else + main +fi + +# Uncomment to launch something if a choice was made +# if [[ -n "$choice" ]]; then + # Restart Waybar +# fi diff --git a/.config/hypr/wallpapers/megumin1.jpeg b/.config/hypr/wallpapers/megumin1.jpeg new file mode 100644 index 0000000..94e3211 Binary files /dev/null and b/.config/hypr/wallpapers/megumin1.jpeg differ diff --git a/.config/hypr/wallpapers/megumin2.png b/.config/hypr/wallpapers/megumin2.png new file mode 100644 index 0000000..5722ca2 Binary files /dev/null and b/.config/hypr/wallpapers/megumin2.png differ diff --git a/.config/hypr/wallpapers/power2.cctgDbFY.png.part b/.config/hypr/wallpapers/power2.cctgDbFY.png.part new file mode 100644 index 0000000..971857a Binary files /dev/null and b/.config/hypr/wallpapers/power2.cctgDbFY.png.part differ diff --git a/.config/hypr/wofi-wallpapers/colors b/.config/hypr/wofi-wallpapers/colors new file mode 100644 index 0000000..3315baa --- /dev/null +++ b/.config/hypr/wofi-wallpapers/colors @@ -0,0 +1,6 @@ +#2F3741 +#2F3741 +#d9e0ee +#4B87CD +#f38ba8 +#cba6f7 diff --git a/.config/hypr/wofi-wallpapers/config b/.config/hypr/wofi-wallpapers/config new file mode 100644 index 0000000..34109ee --- /dev/null +++ b/.config/hypr/wofi-wallpapers/config @@ -0,0 +1,40 @@ +## Wofi Config + +## General +show=drun +prompt=Apps +normal_window=true +layer=overlay +term=foot +columns=2 + +## Geometry +width=30% +height=30% +location=top_left +orientation=vertical +halign=fill +line_wrap=off +dynamic_lines=false + +## Images +allow_markup=true +allow_images=true +image_size=24 + +## Search +exec_search=false +hide_search=false +parse_search=false +insensitive=false + +## Other +hide_scroll=true +no_actions=true +sort_order=default +gtk_dark=true +filter_rate=100 + +## Keys +key_expand=Tab +key_exit=Escape diff --git a/.config/hypr/wofi-wallpapers/style.css b/.config/hypr/wofi-wallpapers/style.css new file mode 100644 index 0000000..d8fc571 --- /dev/null +++ b/.config/hypr/wofi-wallpapers/style.css @@ -0,0 +1,62 @@ +{ + font-family: "Fantasque Sans Mono"; + font-size: 18px; +} + +#window { + /*background-color: --wofi-color0;*/ + background-color: rgba(50, 50, 50, 0.8); + color: --wofi-color2; + border: 2px solid --wofi-color1; + border-radius: 0px; +} + +#outer-box { + padding: 20px; +} + +#input { + background-color: --wofi-color1; + border: 1px solid --wofi-color3; + padding: 8px 12px; +} + +#scroll { + margin-top: 20px; + margin-bottom: 20px; +} + +#inner-box { +} + +#img { + padding-right: 10px; +} + +#text { + color: --wofi-color2; +} + +#text:selected { + color: --wofi-color0; +} + +#entry { + padding: 6px; +} + +#entry:selected { + background-color: --wofi-color3; + background: linear-gradient(90deg, #bbccdd, #cca5dd); + color: --wofi-color0; +} + +#unselected { +} + +#selected { +} + +#input, #entry:selected { + border-radius: 4px; +}