diff --git a/dotfiles/hypr_2_0/conf/animation.conf b/dotfiles/hypr_2_0/conf/animation.conf new file mode 100644 index 0000000..bd7546f --- /dev/null +++ b/dotfiles/hypr_2_0/conf/animation.conf @@ -0,0 +1,30 @@ +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + #enabled = yes, please :) + enabled = yes + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 1.21, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade +} diff --git a/dotfiles/hypr_2_0/conf/autoStart.conf b/dotfiles/hypr_2_0/conf/autoStart.conf new file mode 100644 index 0000000..68477a3 --- /dev/null +++ b/dotfiles/hypr_2_0/conf/autoStart.conf @@ -0,0 +1,27 @@ +################# +### AUTOSTART ### +################# +# Autostart necessary processes (like notifications daemons, status bars, etc.) + +#Required for hyrpland +exec-once = $networkManager +exec-once = $notificationDaemon +exec-once = $mainBar +exec-once = $wallpaperDaemon +exec-once = $HYPRSCRIPTS/wallpaper_get_new.sh + +# System Utilities +exec-once = [workspace 1 silent] $terminal + +# Applications - Utilities +exec-once = $cloudDaemon +exec-once = [workspace 3 silent] $mailClient +#exec-once = [workspace special:magic silent] $notes + +# Applications - Standart +exec-once = [workspace 6 silent] $musicPLayer +exec-once = [workspace 2 silent] $webBrowser + +# User Defined +#exec-once = $cloud +#exec-once = $teams diff --git a/dotfiles/hypr_2_0/conf/keybindings.conf b/dotfiles/hypr_2_0/conf/keybindings.conf new file mode 100644 index 0000000..98ea11b --- /dev/null +++ b/dotfiles/hypr_2_0/conf/keybindings.conf @@ -0,0 +1,87 @@ + +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +bind = $mainMod SHIFT, A, exec, $HYPRSCRIPTS/toggle-animation.sh +bind = $mainMod SHIFT, I, exec, $HYPRSCRIPTS/getWindowInfo.sh + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Return, exec, $terminal +bind = $mainMod SHIFT, Return, exec, $menu +bind = $mainMod SHIFT, Q, exit, +bind = $mainMod, I, exec, $webBrowser +bind = $mainMod, C, killactive, +bind = $mainMod, E, exec, $fileManager + +bind = $mainMod SHIFT, K, exec, $cloud +bind = $mainMod SHIFT, T, exec, $teams +bind = $mainMod SHIFT, D, exec, $nextCloudDeck +bind = $mainMod SHIFT, N, exec, $notesMagic +bind = $mainMod SHIFT, M, exec, [workspace special:magic silent] $webBrowser + +# Wallpaper +bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/wallpaper_get_new.sh +bind = $mainMod ALT, N, exec, $HYPRSCRIPTS/wallpaper_switch.sh +bind = $mainMod ALT, D, exec, $HYPRSCRIPTS/wallpaper_delete.sh + +bind = $mainMod, V, togglefloating, +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, O, togglesplit, # dwindle +bind = ALT, Tab, cyclenext, +bind = ALT, Tab, bringactivetotop, + +# Move focus with mainMod + arrow keys +bind = $mainMod, H, movefocus, l +bind = $mainMod, L, movefocus, r +bind = $mainMod, K, movefocus, u +bind = $mainMod, J, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous diff --git a/dotfiles/hypr_2_0/conf/programs.conf b/dotfiles/hypr_2_0/conf/programs.conf new file mode 100644 index 0000000..557cfb7 --- /dev/null +++ b/dotfiles/hypr_2_0/conf/programs.conf @@ -0,0 +1,33 @@ +################### +### MY PROGRAMS ### +################### +# See https://wiki.hyprland.org/Configuring/Keywords/ +# Set programs that you use + +#Required for hyprland +$networkManager = nm-applet +$notificationDaemon = swaync +$mainBar = waybar +$wallpaperDaemon = hyprpaper + +# System Utilities +$terminal = alacritty -e fish +$fileManager = pcmanfm-qt +$menu = wofi --show drun + +# Applications - Standart +$webBrowser = firefox +$webBrowserNewWindow = $webBrowser --new-window +$game = steam +$musicPLayer = spotify-launcher + +# Applications - Utilities +$notes = $webBrowserNewWindow https://wiki.kynsight.com +$notesMagic = [workspace special silent] $notes +$mailClient = thunderbird +$cloudDaemon = nextcloud + +# User Defined +$cloud = $webBrowserNewWindow https://cloud.keydev.me +$teams = $webBrowserNewWindow https://teams.live.com/v2/ +$nextCloudDeck = $webBrowserNewWindow https://cloud.keydev.me/apps/deck diff --git a/dotfiles/hypr_2_0/files/wallpapers/4lv2my.jpg b/dotfiles/hypr_2_0/files/wallpapers/4lv2my.jpg new file mode 100644 index 0000000..15b6af6 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/4lv2my.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/73l6k3.jpg b/dotfiles/hypr_2_0/files/wallpapers/73l6k3.jpg new file mode 100644 index 0000000..05b08c8 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/73l6k3.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/9d9m2x.jpg b/dotfiles/hypr_2_0/files/wallpapers/9d9m2x.jpg new file mode 100644 index 0000000..c36ac6b Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/9d9m2x.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/kxvmym.jpg b/dotfiles/hypr_2_0/files/wallpapers/kxvmym.jpg new file mode 100644 index 0000000..0905fa6 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/kxvmym.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/neek1w.jpg b/dotfiles/hypr_2_0/files/wallpapers/neek1w.jpg new file mode 100644 index 0000000..0fe49cf Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/neek1w.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/nk6676.jpg b/dotfiles/hypr_2_0/files/wallpapers/nk6676.jpg new file mode 100644 index 0000000..f902341 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/nk6676.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/nmgvx8.jpg b/dotfiles/hypr_2_0/files/wallpapers/nmgvx8.jpg new file mode 100644 index 0000000..2425679 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/nmgvx8.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/oxp365.jpg b/dotfiles/hypr_2_0/files/wallpapers/oxp365.jpg new file mode 100644 index 0000000..61f12c4 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/oxp365.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/vmgdm3.jpg b/dotfiles/hypr_2_0/files/wallpapers/vmgdm3.jpg new file mode 100644 index 0000000..1bcb3f7 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/vmgdm3.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/x8dw6z.jpg b/dotfiles/hypr_2_0/files/wallpapers/x8dw6z.jpg new file mode 100644 index 0000000..db6f449 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/x8dw6z.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/xljdyv.jpg b/dotfiles/hypr_2_0/files/wallpapers/xljdyv.jpg new file mode 100644 index 0000000..add5412 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/xljdyv.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/yxj58l.jpg b/dotfiles/hypr_2_0/files/wallpapers/yxj58l.jpg new file mode 100644 index 0000000..5d90073 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/yxj58l.jpg differ diff --git a/dotfiles/hypr_2_0/files/wallpapers/zy85ww.jpg b/dotfiles/hypr_2_0/files/wallpapers/zy85ww.jpg new file mode 100644 index 0000000..07cc690 Binary files /dev/null and b/dotfiles/hypr_2_0/files/wallpapers/zy85ww.jpg differ diff --git a/dotfiles/hypr_2_0/hyprland.conf b/dotfiles/hypr_2_0/hyprland.conf new file mode 100644 index 0000000..0156800 --- /dev/null +++ b/dotfiles/hypr_2_0/hyprland.conf @@ -0,0 +1,187 @@ + +# ####################################################################################### +# Config based on the auto generated file, but being modified as needed by KeY +# https://wiki.hyprland.org/Configuring/ +# ####################################################################################### + + +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=,preferred,auto,auto + + +################### +### MY SCRIPTS ### +################### +$HYPRSCRIPTS = ~/.config/hypr/scripts + +################### +### MY PROGRAMS ### +################### +source = ~/.config/hypr/conf/programs.conf + + +################# +### AUTOSTART ### +################# +source = ~/.config/hypr/conf/autoStart.conf + + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 20 + + border_size = 2 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 10 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 0.9 + + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 1 + + vibrancy = 0.1696 + } +} + +source = ~/.config/hypr/conf/animation.conf + + +# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ +# "Smart gaps" / "No gaps when only" +# uncomment all if you wish to use that. +# workspace = w[t1], gapsout:0, gapsin:0 +# workspace = w[tg1], gapsout:0, gapsin:0 +# workspace = f[1], gapsout:0, gapsin:0 +# windowrulev2 = bordersize 0, floating:0, onworkspace:w[t1] +# windowrulev2 = rounding 0, floating:0, onworkspace:w[t1] +# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tg1] +# windowrulev2 = rounding 0, floating:0, onworkspace:w[tg1] +# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] +# windowrulev2 = rounding 0, floating:0, onworkspace:f[1] + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( +} + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = ch + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = false + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#gestures +gestures { + workspace_swipe = false +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + + +################### +### KEYBINDINGS ### +################### +source = ~/.config/hypr/conf/keybindings.conf + + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +# Ignore maximize requests from apps. You'll probably like this. +windowrulev2 = suppressevent maximize, class:.* +windowrulev2 = workspace 3 silent,class:^($mailClient)$ +windowrulev2 = workspace special:magic silent,class:^($notes)$ + +# Fix some dragging issues with XWayland +windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 diff --git a/dotfiles/hypr_2_0/hyprpaper.conf b/dotfiles/hypr_2_0/hyprpaper.conf new file mode 100644 index 0000000..3baface --- /dev/null +++ b/dotfiles/hypr_2_0/hyprpaper.conf @@ -0,0 +1,11 @@ +# Preload Wallpapers +#preload = ~/Pictures/wallpapers/amongus.png + +#preload = ~/Pictures/wallpapers/wallpaper.* + +# Set the wallpaper on every display +#wallpaper = , /home/me/amongus.png +#wallpaper = , ~/Pictures/wallpapers/wallpaper.* + +# Disable Splash +splash = false diff --git a/dotfiles/hypr_2_0/scripts/config.sh b/dotfiles/hypr_2_0/scripts/config.sh new file mode 100755 index 0000000..d322745 --- /dev/null +++ b/dotfiles/hypr_2_0/scripts/config.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +SCRIPTS_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +MESSAGE="Hello KYNSIGHT" +WALLPAPER_DIR="$SCRIPTS_DIR/../files/wallpapers" + diff --git a/dotfiles/hypr_2_0/scripts/getWindowInfo.sh b/dotfiles/hypr_2_0/scripts/getWindowInfo.sh new file mode 100755 index 0000000..a93966b --- /dev/null +++ b/dotfiles/hypr_2_0/scripts/getWindowInfo.sh @@ -0,0 +1,5 @@ +#!/bin/bash +source config.sh + +info=`hyprctl activewindow` +notify-send "$info" "Window Information" --icon=dialog-information -t 3000 diff --git a/dotfiles/hypr_2_0/scripts/toggle-animation.sh b/dotfiles/hypr_2_0/scripts/toggle-animation.sh new file mode 100755 index 0000000..4ee8478 --- /dev/null +++ b/dotfiles/hypr_2_0/scripts/toggle-animation.sh @@ -0,0 +1,15 @@ +#!/bin/bash +cache_file="$HOME/.cache/toggle_animation" +if [[ $(cat $HOME/.config/hypr/conf/animation.conf) == *"disabled"* ]]; then + echo ":: Toggle blocked by disabled.conf variation." +else + if [ -f $cache_file ] ;then + hyprctl keyword animations:enabled true + notify-send 'Animations Turned On' 'This is an example notification.' --icon=dialog-information -t 1000 + rm $cache_file + else + hyprctl keyword animations:enabled false + notify-send 'Animations Turned Off' 'This is an example notification.' --icon=dialog-information -t 1000 + touch $cache_file + fi +fi diff --git a/dotfiles/hypr_2_0/scripts/wallpaper_delete.sh b/dotfiles/hypr_2_0/scripts/wallpaper_delete.sh new file mode 100755 index 0000000..036675d --- /dev/null +++ b/dotfiles/hypr_2_0/scripts/wallpaper_delete.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +SCRIPTS_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +to_delete=$(hyprctl hyprpaper listloaded) +rm $to_delete +notify-send "Wallpaper Delete : " "Deleted : $to_delete" --icon=dialog-information -t 3000 + +$SCRIPTS_DIR/wallpaper_switch.sh + diff --git a/dotfiles/hypr_2_0/scripts/wallpaper_download.sh b/dotfiles/hypr_2_0/scripts/wallpaper_download.sh new file mode 100755 index 0000000..06234f6 --- /dev/null +++ b/dotfiles/hypr_2_0/scripts/wallpaper_download.sh @@ -0,0 +1,157 @@ +#!/bin/bash + +SCRIPTS_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +source $SCRIPTS_DIR/config.sh + +##################################### +### Needed for NSFW/Favorites ### +##################################### +# Enter your API key +# you can get it here: https://wallhaven.cc/settings/account +APIKEY="" +##################################### +### End needed for NSFW/Favorites ### +##################################### + +##################################### +### Configuration Options ### +##################################### +# Where should the Wallpapers be stored? + + +LOCATION=$WALLPAPER_DIR + +SEARCH="" +# What page to start downloading at, default and minimum of 1. +STARTPAGE=1 +# Type standard (newest, oldest, random, hits, mostfav), search, collections +# (for now only the default collection), useruploads (if selected, only +# FILTER variable will change the outcome) +TYPE=single +# From which Categories should Wallpapers be downloaded, first number is +# for General, second for Anime, third for People, 1 to enable category, +# 0 to disable it +CATEGORIES=100 +# filter wallpapers before downloading, first number is for sfw content, +# second for sketchy content, third for nsfw content, 1 to enable, +# 0 to disable +FILTER=100 +# Which Resolutions should be downloaded, leave empty for all (most common +# resolutions possible, for details see wallhaven site), separate multiple +# resolutions with , eg. 1920x1080,1920x1200 +RESOLUTION= +# alternatively specify a minimum resolution, please note that specifying +# both resolutions and a minimum resolution will result in the desired +# resolutions being ignored, to avoid unwanted behavior only set one of the +# two options and leave the other blank +ATLEAST=2560x1440 +# Which aspectratios should be downloaded, leave empty for all (possible +# values: 4x3, 5x4, 16x9, 16x10, 21x9, 32x9, 48x9, 9x16, 10x16), separate mutliple ratios +# with , eg. 4x3,16x9 +ASPECTRATIO=16x9,16x10 +# Which Type should be displayed (relevance, random, date_added, views, +# favorites, toplist, toplist-beta) +MODE=random +# if MODE is set to toplist show the toplist for the given timeframe +# possible values: 1d (last day), 3d (last 3 days), 1w (last week), +# 1M (last month), 3M (last 3 months), 6M (last 6 months), 1y (last year) +TOPRANGE=1M +# How should the wallpapers be ordered (desc, asc) +ORDER=desc +# Collections, only used if TYPE = collections +# specify the name of the collection you want to download +# Default is the default collection name on wallhaven +# If you want to download your own Collections make sure USR is set to your username +# If you want to download someone elses public collection enter the name here +# and the username under USR +# Please note that the only filter option applied to Collections is the Number +# of Wallpapers to download, there is no filter for resolution, purity, ... +COLLECTION="Default" +# Searchterm, only used if TYPE = search +# you can also search by tags, use id:TAGID +# to get the tag id take a look at: https://wallhaven.cc/tags/ +# for example: to search for nature related wallpapers via the nature tag +# instead of the keyword use QUERY="id:37" +QUERY="nature" +# Search images containing color +# values are RGB (000000 = black, ffffff = white, ff0000 = red, ...) +COLOR="" +# Should the search results be saved to a separate subfolder? +# 0 for no separate folder, 1 for separate subfolder +SUBFOLDER=0 +# User from which wallpapers should be downloaded +# used for TYPE=useruploads and TYPE=collections +# If you want to download your own Collection this has to be set to your username +USR= +# use gnu parallel to speed up the download (0, 1), if set to 1 make sure +# you have gnuparallel installed, see normal.vs.parallel.txt for +# speed improvements +# using this option can lead to cloudflare blocking some of the downloads +PARALLEL=0 +# custom thumbnails per page +# changeable here: https://wallhaven.cc/settings/browsing +# valid values: 24, 32, 64 +# if set to 32 or 64 you need to provide an api key +THUMBS=24 +##################################### +### End Configuration Options ### +##################################### +# downloads Page with Thumbnails + + +s1="search?q=$SEARCH&categories=$CATEGORIES&purity=$FILTER&" +s1+="atleast=$ATLEAST&resolutions=$RESOLUTION&ratios=$ASPECTRATIO" +s1+="&sorting=$MODE&order=$ORDER&topRange=$TOPRANGE&colors=$COLOR" + +# API URL for searching wallpapers +API_URL="https://wallhaven.cc/api/v1/$s1" + +# Fetch the JSON response +response=$(curl -s "$API_URL") + +# Extract the first wallpaper ID from the JSON response +wallpaper_id=$(echo "$response" | jq -r '.data[0].id') + +# Check if an ID was found +if [ -z "$wallpaper_id" ]; then + echo "No wallpaper ID found." + exit 1 +fi + +# Construct the wallpaper API URL +WALLPAPER_URL="https://wallhaven.cc/api/v1/w/$wallpaper_id" + +#printf "Download Page %s\\n" "$WALLPAPER_URL" + +# Fetch wallpaper details +wallpaper_details=$(curl -s "$WALLPAPER_URL") + +# Extract the image URL +image_url=$(echo "$wallpaper_details" | jq -r '.data.path') +image_type=$(echo "$wallpaper_details" | jq -r '.data.type') +#echo "$wallpaper_details" + +# Check if an image URL was found +if [ -z "$image_url" ]; then + echo "No image URL found." + exit 1 +fi + +# Get the file extension from the URL +file_extension="${image_url##*.}" + +#echo "File Type is $file_extension" + +# Ensure extension is valid +if [[ ! "$file_extension" =~ ^(jpg|jpeg|png|webp)$ ]]; then + echo "Unknown or unsupported file extension: $file_extension" + exit 1 +fi + +# Download the wallpaper +#echo "Downloading wallpaper: $image_url" + +wget -q "$image_url" -O "$LOCATION/$wallpaper_id.$file_extension" +notify-send "Wallpaper Download :" "Downloaded from : $image_url \n to : $WALLPAPER_DIR" --icon=dialog-information -t 3000 + +echo "${wallpaper_id}" diff --git a/dotfiles/hypr_2_0/scripts/wallpaper_get_new.sh b/dotfiles/hypr_2_0/scripts/wallpaper_get_new.sh new file mode 100755 index 0000000..6c6194c --- /dev/null +++ b/dotfiles/hypr_2_0/scripts/wallpaper_get_new.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +SCRIPTS_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +id=$($SCRIPTS_DIR/wallpaper_download.sh) + +$SCRIPTS_DIR/wallpaper_switch_to.sh $id + +exit diff --git a/dotfiles/hypr_2_0/scripts/wallpaper_switch.sh b/dotfiles/hypr_2_0/scripts/wallpaper_switch.sh new file mode 100755 index 0000000..9d65b23 --- /dev/null +++ b/dotfiles/hypr_2_0/scripts/wallpaper_switch.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +SCRIPTS_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +source $SCRIPTS_DIR/config.sh + +directory=$WALLPAPER_DIR +monitor=`hyprctl monitors | grep Monitor | awk '{print $2}'` + +if [ -d "$directory" ]; then + random_background=$(ls $directory/* | shuf -n 1) + file_extension="${random_background##*.}" + echo "File extension: $file_extension" + notify-send "Wallpaper Switched to :" "$random_background" --icon=dialog-information -t 3000 + hyprctl hyprpaper unload all + hyprctl hyprpaper preload $random_background + hyprctl hyprpaper wallpaper "$monitor, $random_background" +else + notify-send "Wallpaper Switch : Directory Not Found" "$WALLPAPER_DIR" --icon=dialog-information -t 3000 +fi diff --git a/dotfiles/hypr_2_0/scripts/wallpaper_switch_to.sh b/dotfiles/hypr_2_0/scripts/wallpaper_switch_to.sh new file mode 100755 index 0000000..3573928 --- /dev/null +++ b/dotfiles/hypr_2_0/scripts/wallpaper_switch_to.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +SCRIPTS_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +source $SCRIPTS_DIR/config.sh + +directory=$WALLPAPER_DIR +monitor=`hyprctl monitors | grep Monitor | awk '{print $2}'` + +if [ -d "$directory" ]; then + background=$(ls $directory/$1*) + hyprctl hyprpaper unload all + hyprctl hyprpaper preload $background + hyprctl hyprpaper wallpaper "$monitor, $background" +fi + +exit diff --git a/dotfiles/waybar_2_0/config.jsonc b/dotfiles/waybar_2_0/config.jsonc new file mode 100644 index 0000000..bc5afce --- /dev/null +++ b/dotfiles/waybar_2_0/config.jsonc @@ -0,0 +1,250 @@ +// -*- mode: jsonc -*- +{ + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 30, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + "spacing": 4, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": [ + "hyprland/workspaces", + "hyprland/mode", + "sway/scratchpad", + "custom/media" + ], + "modules-center": [ + "hyprland/window" + ], + "modules-right": [ + "mpd", + "idle_inhibitor", + "pulseaudio", + "network", + "power-profiles-daemon", + "cpu", + "memory", + "temperature", + "backlight", + "keyboard-state", + "sway/language", + "battery", + "battery#bat2", + "clock", + "tray", + "custom/power", + "custom/notification" + ], + // Modules configuration + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "warp-on-scroll": false, + "format": "{name}: {icon}", + "format-icons": { + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", + "urgent": "", + "focused": "", + "default": "" + }, + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [], + "9": [] + } + + }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "sway/mode": { + "format": "{}" + }, + "sway/scratchpad": { + "format": "{icon} {count}", + "show-empty": false, + "format-icons": ["", ""], + "tooltip": true, + "tooltip-format": "{app}: {title}" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 5, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-full": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "battery#bat2": { + "bat": "BAT2" + }, + "power-profiles-daemon": { + "format": "{icon}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, + "format-icons": { + "default": "", + "performance": "", + "balanced": "", + "power-saver": "" + } + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ipaddr}/{cidr} ", + "tooltip-format": "{ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + }, + "custom/power": { + "format" : "⏻ ", + "tooltip": false, + "menu": "on-click", + "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder + "menu-actions": { + "shutdown": "shutdown -h now", + "reboot": "reboot", + "suspend": "systemctl suspend", + "hibernate": "systemctl hibernate", + "logout": "hyprctl dispatch exit" + } + }, + "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 + } +} diff --git a/dotfiles/waybar_2_0/power_menu.xml b/dotfiles/waybar_2_0/power_menu.xml new file mode 100644 index 0000000..cc27da6 --- /dev/null +++ b/dotfiles/waybar_2_0/power_menu.xml @@ -0,0 +1,36 @@ + + + + + + Suspend + + + + + Hibernate + + + + + Shutdown + + + + + + + + Reboot + + + + + + + + Log-out + + + + diff --git a/hyprland.sh b/hyprland.sh new file mode 100644 index 0000000..317385a --- /dev/null +++ b/hyprland.sh @@ -0,0 +1,3 @@ +#!bin/bash/ + +sudo pacman -S hyprland xdg-desktop-portal-hyprland waybar wofi hyprpaper hyprcursor hyprutils hyprwayland-scanner grim slurp hyprpicker xdg-desktop-portal-wlr power-profiles-daemon swaync