├── .gitignore ├── hypr-configs └── dotfiles │ ├── gtk-3.0 │ ├── gtk.css │ ├── bookmarks │ └── settings.ini │ ├── waybar │ ├── style │ │ ├── modules │ │ │ ├── backlight.css │ │ │ ├── network.css │ │ │ ├── battery.css │ │ │ └── taskbar.css │ │ └── main.css │ ├── river │ │ └── style.css │ ├── mini-river │ │ └── style.css │ ├── gandalf │ │ └── style.css │ └── scripts │ │ └── gpu-usage.sh │ ├── niri │ └── autostart.kdl │ ├── hypr-theme │ ├── rofi │ │ ├── global.rasi │ │ └── colors │ │ │ ├── arc.rasi │ │ │ ├── black.rasi │ │ │ ├── navy.rasi │ │ │ ├── nord.rasi │ │ │ ├── adapta.rasi │ │ │ ├── cyberpunk.rasi │ │ │ ├── dracula.rasi │ │ │ ├── gruvbox.rasi │ │ │ ├── lovelace.rasi │ │ │ ├── onedark.rasi │ │ │ ├── paper.rasi │ │ │ ├── solarized.rasi │ │ │ ├── yousai.rasi │ │ │ ├── catppuccin.rasi │ │ │ ├── everforest.rasi │ │ │ └── tokyonight.rasi │ └── waybar │ │ └── global.css │ ├── rofi │ ├── applets │ │ ├── shared │ │ │ ├── colors.rasi │ │ │ ├── theme.bash │ │ │ └── fonts.rasi │ │ └── bin │ │ │ ├── appasroot.sh │ │ │ ├── quicklinks.sh │ │ │ ├── brightness.sh │ │ │ ├── apps.sh │ │ │ ├── screenshot.sh │ │ │ ├── volume.sh │ │ │ ├── mpd.sh │ │ │ ├── battery.sh │ │ │ └── powermenu.sh │ ├── clipboard │ │ ├── type-1 │ │ │ ├── shared │ │ │ │ ├── colors.rasi │ │ │ │ └── fonts.rasi │ │ │ └── clipboard.sh │ │ ├── type-2 │ │ │ ├── shared │ │ │ │ ├── colors.rasi │ │ │ │ └── fonts.rasi │ │ │ └── clipboard.sh │ │ └── type-3 │ │ │ ├── shared │ │ │ ├── colors.rasi │ │ │ └── fonts.rasi │ │ │ └── clipboard.sh │ ├── launchers │ │ ├── type-1 │ │ │ ├── shared │ │ │ │ ├── colors.rasi │ │ │ │ └── fonts.rasi │ │ │ └── launcher.sh │ │ ├── type-2 │ │ │ ├── shared │ │ │ │ ├── colors.rasi │ │ │ │ └── fonts.rasi │ │ │ └── launcher.sh │ │ └── type-3 │ │ │ ├── shared │ │ │ ├── colors.rasi │ │ │ └── fonts.rasi │ │ │ └── launcher.sh │ ├── powermenu │ │ ├── type-1 │ │ │ ├── shared │ │ │ │ ├── colors.rasi │ │ │ │ └── fonts.rasi │ │ │ └── powermenu.sh │ │ └── type-2 │ │ │ ├── shared │ │ │ ├── colors.rasi │ │ │ └── fonts.rasi │ │ │ └── powermenu.sh │ └── wallpaper │ │ └── type-1 │ │ ├── shared │ │ ├── colors.rasi │ │ └── fonts.rasi │ │ └── wallpaper.sh │ ├── hypr │ ├── configs │ │ ├── layout │ │ │ ├── export.conf │ │ │ └── variants │ │ │ │ ├── desktop.conf │ │ │ │ └── laptop.conf │ │ ├── monitor │ │ │ ├── export.conf │ │ │ └── variants │ │ │ │ ├── 1366x768.conf │ │ │ │ ├── 1440x1080.conf │ │ │ │ ├── 1600x900.conf │ │ │ │ ├── 1920x1080.conf │ │ │ │ ├── 1920x1200.conf │ │ │ │ ├── 2560x1440.conf │ │ │ │ ├── 3440x1440.conf │ │ │ │ ├── desktop@75.conf │ │ │ │ ├── desktop@83.conf │ │ │ │ ├── 2560x1440@120.conf │ │ │ │ ├── default.conf │ │ │ │ └── laptop.conf │ │ ├── animation │ │ │ ├── export.conf │ │ │ └── variants │ │ │ │ ├── animations-disable.conf │ │ │ │ ├── animations-river.conf │ │ │ │ ├── default.conf │ │ │ │ ├── animations-moving.conf │ │ │ │ ├── animations-dynamic.conf │ │ │ │ ├── animations-high.conf │ │ │ │ ├── animations-fast.conf │ │ │ │ └── animations-classic.conf │ │ ├── decoration │ │ │ ├── export.conf │ │ │ └── variants │ │ │ │ ├── performance.conf │ │ │ │ ├── default.conf │ │ │ │ └── rounding-all-blur-v47.conf │ │ ├── rules.conf │ │ ├── mouse.conf │ │ ├── input.conf │ │ ├── arch-autostart.conf │ │ ├── autostart.conf │ │ ├── rules │ │ │ └── workspaces.conf │ │ ├── startup.conf │ │ ├── settings.conf │ │ └── plugins.conf │ ├── plugins │ │ ├── hyprexpo.so │ │ └── hyprfocus.so │ ├── wallpapers │ │ ├── harmony.png │ │ ├── windows.jpg │ │ └── windows-11.jpg │ ├── scripts │ │ ├── wpa-launch.sh │ │ ├── startup │ │ │ ├── keyring.sh │ │ │ ├── swayosd.sh │ │ │ ├── pipewire.sh │ │ │ └── dunst.sh │ │ ├── pavucontrol-launch.sh │ │ ├── waybar │ │ │ ├── start.sh │ │ │ ├── toggle.sh │ │ │ ├── waybar_cava.sh │ │ │ └── waybar_selector.sh │ │ ├── wallpaper │ │ │ ├── kill-daemon.sh │ │ │ ├── swaybg-random.sh │ │ │ ├── swww-random.sh │ │ │ ├── mpvpaper-random.sh │ │ │ └── wallpaper-daemon.sh │ │ ├── nekoray-launch.sh │ │ ├── nmtui-launch.sh │ │ ├── rofi-launch.sh │ │ └── wallpaper_selector.sh │ ├── xdph.conf │ ├── hyprpaper.conf │ ├── hypridle.conf │ ├── hyprland.conf │ ├── hyprlock.conf │ └── env.conf │ ├── eww │ ├── scripts │ │ ├── trashput.sh │ │ ├── eww │ │ │ ├── start.sh │ │ │ └── toggle-panel.sh │ │ ├── pollcover.sh │ │ ├── brightness │ │ │ ├── set-external-brightness │ │ │ └── get-external-brightness │ │ ├── touchkey.sh │ │ ├── cava_config │ │ ├── cava_pipe.sh │ │ ├── kb-layout │ │ │ ├── set-active │ │ │ └── get-active │ │ ├── workspace │ │ │ ├── get-active │ │ │ ├── set-active │ │ │ └── get-workspaces │ │ ├── python │ │ │ ├── quote.py │ │ │ ├── iconfetch.py │ │ │ └── timer.py │ │ ├── sys-info │ │ │ └── get-gpu │ │ ├── wifi │ │ ├── notification │ │ │ └── manage │ │ ├── wallhaven.py │ │ ├── music_info │ │ ├── sys_info │ │ └── tasklist.py │ ├── assets │ │ ├── image │ │ │ ├── emptympd.png │ │ │ ├── fieshidle.gif │ │ │ ├── loading.gif │ │ │ ├── roundpfp.png │ │ │ ├── eyedropper.png │ │ │ ├── screenshot.png │ │ │ ├── desktop │ │ │ │ ├── amogus.png │ │ │ │ ├── cirno.png │ │ │ │ ├── koishi.png │ │ │ │ ├── marisa.png │ │ │ │ └── reisen.png │ │ │ ├── weather │ │ │ │ ├── clear-n.svg │ │ │ │ ├── clouds.svg │ │ │ │ ├── storm.svg │ │ │ │ ├── clear.svg │ │ │ │ ├── few-clouds-n.svg │ │ │ │ ├── few-clouds.svg │ │ │ │ ├── rain.svg │ │ │ │ ├── rain-light.svg │ │ │ │ ├── snow.svg │ │ │ │ ├── idk.svg │ │ │ │ └── fog.svg │ │ │ └── idk.svg │ │ └── scss │ │ │ ├── windows │ │ │ ├── _dashboard.scss │ │ │ ├── _osd.scss │ │ │ ├── _notifications.scss │ │ │ ├── _vertical-bar.scss │ │ │ └── _control-panel.scss │ │ │ ├── themes │ │ │ ├── camellia.scss │ │ │ ├── ocean.scss │ │ │ ├── sunburst.scss │ │ │ ├── fullerene.scss │ │ │ ├── feverblush.scss │ │ │ └── everblush.scss │ │ │ ├── _global.scss │ │ │ ├── _tokens.scss │ │ │ ├── _native.scss │ │ │ ├── _components.scss │ │ │ └── _modules.scss │ ├── src │ │ ├── dock │ │ │ ├── styles.scss │ │ │ └── main.yuck │ │ ├── -modules │ │ │ ├── _language.yuck │ │ │ ├── _logo.yuck │ │ │ ├── _system-tray.yuck │ │ │ ├── _timer.yuck │ │ │ ├── _time.yuck │ │ │ └── _workspaces.yuck │ │ ├── -components │ │ │ ├── _separator.yuck │ │ │ ├── _stats.yuck │ │ │ ├── _sliders.yuck │ │ │ └── _helpers.yuck │ │ ├── windows │ │ │ ├── _osd.yuck │ │ │ ├── _vertical-bar.yuck │ │ │ └── _notifications.yuck │ │ └── wallpapers │ │ │ └── main.yuck │ ├── eww.scss │ ├── format.sh │ ├── eww.yuck │ └── _setups.yuck │ ├── pipewire │ ├── pipewire.conf.d │ │ ├── 10-wireplumber.conf │ │ ├── 20-pipewire-pulse.conf │ │ ├── 1-pipewire.conf │ │ ├── 98-echo-canceling.conf │ │ ├── 99-input-denoising.conf │ │ └── 100-deepfilter-stereo.conf │ └── pipewire-pulse.conf.d │ │ └── audiorelay.conf │ ├── wireplumber │ └── wireplumber.conf.d │ │ └── 51-fix-crackle.conf │ ├── avizo │ └── config.ini │ ├── swayosd │ └── style.css │ ├── scripts │ ├── env.sh │ └── utils │ │ └── watcher │ │ └── main.sh │ ├── swaylock │ └── config │ ├── dunst │ └── dunstrc.nk │ └── mimeapps.list ├── .gitconfig ├── .vscode └── settings.json ├── host ├── ui │ ├── themes │ │ ├── Colloid.tar.xz │ │ └── Orchis.tar.xz │ ├── fonts │ │ └── TTF │ │ │ ├── Icomoon-Feather.ttf │ │ │ ├── GrapeNuts-Regular.ttf │ │ │ ├── Iosevka-Nerd-Font-Complete.ttf │ │ │ └── JetBrains-Mono-Nerd-Font-Complete.ttf │ ├── icons │ │ └── McMojave-circle.tar.xz │ └── cursors │ │ └── Bibata-Modern-Ice.tar.xz └── shortcuts │ ├── heroic.desktop │ ├── pcsx2.desktop │ ├── rpcs3.desktop │ ├── spotify.desktop │ └── webstorm.desktop ├── .github └── assets │ ├── hyprland-v1.png │ └── hyprland-v2.png ├── .gitmodules └── .scripts └── _helper.sh /.gitignore: -------------------------------------------------------------------------------- 1 | hyprland_setup_log 2 | 3 | **/__pycache__/ 4 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/gtk-3.0/gtk.css: -------------------------------------------------------------------------------- 1 | @import 'colors.css'; -------------------------------------------------------------------------------- /hypr-configs/dotfiles/waybar/style/modules/backlight.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitconfig: -------------------------------------------------------------------------------- 1 | [submodule] 2 | recurse = true 3 | branch = main 4 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/niri/autostart.kdl: -------------------------------------------------------------------------------- 1 | spawn-at-startup "waybar" 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | // "*.yuck": "clojure" 4 | }, 5 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/global.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/colors/black.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/layout/export.conf: -------------------------------------------------------------------------------- 1 | source = ~/.config/hypr/configs/layout/variants/desktop.conf 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/clipboard/type-1/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/clipboard/type-2/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/clipboard/type-3/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/launchers/type-1/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/launchers/type-2/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/launchers/type-3/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/powermenu/type-1/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/powermenu/type-2/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/wallpaper/type-1/shared/colors.rasi: -------------------------------------------------------------------------------- 1 | @import "~/.config/hypr-theme/rofi/global.rasi" 2 | -------------------------------------------------------------------------------- /host/ui/themes/Colloid.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/host/ui/themes/Colloid.tar.xz -------------------------------------------------------------------------------- /host/ui/themes/Orchis.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/host/ui/themes/Orchis.tar.xz -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/export.conf: -------------------------------------------------------------------------------- 1 | source = ~/.config/hypr/configs/monitor/variants/default.conf 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/shared/theme.bash: -------------------------------------------------------------------------------- 1 | type="$HOME/.config/rofi/applets/type-2" 2 | style='style-2.rasi' 3 | -------------------------------------------------------------------------------- /.github/assets/hyprland-v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/.github/assets/hyprland-v1.png -------------------------------------------------------------------------------- /.github/assets/hyprland-v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/.github/assets/hyprland-v2.png -------------------------------------------------------------------------------- /host/ui/fonts/TTF/Icomoon-Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/host/ui/fonts/TTF/Icomoon-Feather.ttf -------------------------------------------------------------------------------- /host/ui/icons/McMojave-circle.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/host/ui/icons/McMojave-circle.tar.xz -------------------------------------------------------------------------------- /hypr-configs/dotfiles/gtk-3.0/bookmarks: -------------------------------------------------------------------------------- 1 | file:///home/hesam/Documents 2 | file:///home/hesam/Music 3 | file:///home/hesam/Downloads 4 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/animation/export.conf: -------------------------------------------------------------------------------- 1 | source = ~/.config/hypr/configs/animation/variants/animations-classic.conf 2 | -------------------------------------------------------------------------------- /host/ui/fonts/TTF/GrapeNuts-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/host/ui/fonts/TTF/GrapeNuts-Regular.ttf -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/trashput.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | file=$(echo $1 | cut -c 7-) 4 | 5 | mv $file ~/.local/share/Trash/files 6 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/decoration/export.conf: -------------------------------------------------------------------------------- 1 | source = ~/.config/hypr/configs/decoration/variants/rounding-all-blur-v47.conf 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "linux-configs"] 2 | path = linux-configs 3 | url = https://github.com/Void-Land/void-dots.git 4 | branch = main 5 | -------------------------------------------------------------------------------- /host/ui/cursors/Bibata-Modern-Ice.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/host/ui/cursors/Bibata-Modern-Ice.tar.xz -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/eww/start.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | eww daemon 4 | sleep 1 5 | eww open bar 6 | 7 | # eww open notifications 8 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/rules.conf: -------------------------------------------------------------------------------- 1 | source = ~/.config/hypr/configs/rules/windows.conf 2 | source = ~/.config/hypr/configs/rules/workspaces.conf 3 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/plugins/hyprexpo.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/hypr/plugins/hyprexpo.so -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/plugins/hyprfocus.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/hypr/plugins/hyprfocus.so -------------------------------------------------------------------------------- /host/ui/fonts/TTF/Iosevka-Nerd-Font-Complete.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/host/ui/fonts/TTF/Iosevka-Nerd-Font-Complete.ttf -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/wallpapers/harmony.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/hypr/wallpapers/harmony.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/wallpapers/windows.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/hypr/wallpapers/windows.jpg -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/emptympd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/emptympd.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/fieshidle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/fieshidle.gif -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/loading.gif -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/roundpfp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/roundpfp.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/wpa-launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [[ $(pidof wpa-cute) ]]; then 4 | pkill wpa-cute 5 | fi 6 | 7 | exec wpa-cute 8 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/wallpapers/windows-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/hypr/wallpapers/windows-11.jpg -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/eyedropper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/eyedropper.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/screenshot.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/pollcover.sh: -------------------------------------------------------------------------------- 1 | playerctl metadata --format '{{ mpris:artUrl }}' -F | while read location; do 2 | echo $location | cut -c 8- 3 | done 4 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/dock/styles.scss: -------------------------------------------------------------------------------- 1 | 2 | .dockindicate { 3 | transition: 500ms ease; 4 | background-color: $white0; 5 | border-radius: 5px; 6 | } 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/startup/keyring.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | gnome-keyring-daemon -sd & 4 | 5 | /usr/libexec/polkit-gnome-authentication-agent-1 6 | -------------------------------------------------------------------------------- /host/ui/fonts/TTF/JetBrains-Mono-Nerd-Font-Complete.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/host/ui/fonts/TTF/JetBrains-Mono-Nerd-Font-Complete.ttf -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/desktop/amogus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/desktop/amogus.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/desktop/cirno.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/desktop/cirno.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/desktop/koishi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/desktop/koishi.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/desktop/marisa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/desktop/marisa.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/desktop/reisen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/void-land/hyprland-void-dots/HEAD/hypr-configs/dotfiles/eww/assets/image/desktop/reisen.png -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/pavucontrol-launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [[ $(pidof pavucontrol) ]]; then 4 | pkill pavucontrol 5 | fi 6 | 7 | pavucontrol 8 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/brightness/set-external-brightness: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | bright=$(printf '%.0f' $1) 4 | 5 | ddcutil --bus 3 setvcp 10 $bright | cat >/tmp/brihtness.txt 6 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/touchkey.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | PID=$(pidof wvkbd-mobintl) 4 | 5 | if [ -z $PID ]; then 6 | wvkbd-mobintl & 7 | else 8 | kill $PID 9 | fi 10 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/startup/swayosd.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source ~/.config/scripts/env.sh 4 | 5 | $WATCHER -a "$SWAYOSD_DAEMON" -d "$SWAYOSD_DIR" -p "swayosd-server" 6 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/waybar/start.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source ~/.config/scripts/env.sh 4 | 5 | exec $WATCHER -a "$WAYBAR_LAUNCHER" -d "$WAYBAR_WATCH_DIR" -p "waybar" 6 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/wallpaper/kill-daemon.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | pkill -f swww-daemon 4 | pkill -f swaybg 5 | pkill -f mpvpaper 6 | 7 | dunstify "Wallpaper daemons killed !" 8 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/brightness/get-external-brightness: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ddcutil --bus 3 --skip-ddc-checks --enable-dynamic-sleep getvcp 10 | grep -oP 'current value =\s*\K\d+' 4 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-modules/_language.yuck: -------------------------------------------------------------------------------- 1 | (defwidget Language [] 2 | (eventbox :cursor "pointer" :onclick "./scripts/kb-layout/set-active" 3 | (box :class "language" (label :text {kbLayout})))) 4 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/launchers/type-2/launcher.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dir="$HOME/.config/rofi/launchers/type-2" 4 | theme='style-6' 5 | 6 | rofi \ 7 | -show drun \ 8 | -theme ${dir}/${theme}.rasi 9 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/launchers/type-3/launcher.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dir="$HOME/.config/rofi/launchers/type-3" 4 | theme='style' 5 | 6 | rofi \ 7 | -show drun \ 8 | -theme ${dir}/${theme}.rasi 9 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/waybar/style/modules/network.css: -------------------------------------------------------------------------------- 1 | #network { 2 | min-width: 140px; 3 | } 4 | 5 | #network.network-2 { 6 | min-width: 170px; 7 | } 8 | 9 | #network.disconnected { 10 | color: red; 11 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/nekoray-launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [[ $(pidof nekoray) ]]; then 4 | pkill nekoray 5 | pkill nekobox_core 6 | fi 7 | 8 | # exec /opt/nekoray/nekoray 9 | exec nekoray 10 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/nmtui-launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | window_class="floating" 4 | 5 | if [[ $(pidof nmtui) ]]; then 6 | pkill nmtui 7 | fi 8 | 9 | exec alacritty --class $window_class -e nmtui 10 | -------------------------------------------------------------------------------- /host/shortcuts/heroic.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Heroic 3 | Comment=Heroic GameLauncher. 4 | GenericName=Heroic 5 | Exec=/home/hesam/Games/Heroic/Heroic-2.13.0.AppImage 6 | Type=Application 7 | Categories=Game 8 | Keywords=game,library -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/clipboard/type-2/clipboard.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dir="$HOME/.config/rofi/clipboard/type-2" 4 | theme='style' 5 | 6 | cliphist list | rofi -dmenu -theme ${dir}/${theme}.rasi | cliphist decode | wl-copy 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "JetBrains Mono Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/clipboard/type-1/clipboard.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dir="$HOME/.config/rofi/clipboard/type-1" 4 | theme='style-8' 5 | 6 | cliphist list | rofi -dmenu -theme ${dir}/${theme}.rasi | cliphist decode | wl-copy 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/clipboard/type-3/clipboard.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dir="$HOME/.config/rofi/clipboard/type-3" 4 | theme='style-1' 5 | 6 | cliphist list | rofi -dmenu -theme ${dir}/${theme}.rasi | cliphist decode | wl-copy 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/launchers/type-1/launcher.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dir="$HOME/.config/rofi/launchers/type-1" 4 | theme='style-2' 5 | 6 | ## Run 7 | rofi \ 8 | -show drun \ 9 | -theme ${dir}/${theme}.rasi 10 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/cava_config: -------------------------------------------------------------------------------- 1 | [general] 2 | 3 | framerate = 20 4 | bars = 30 5 | 6 | [output] 7 | 8 | method = raw 9 | raw_target = /dev/stdout 10 | data_format = ascii 11 | bit_format = 8bit 12 | ascii_max_range = 100 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/clipboard/type-1/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "Iosevka Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/clipboard/type-2/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "Iosevka Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/clipboard/type-3/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "Iosevka Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/launchers/type-1/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "Iosevka Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/launchers/type-2/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "Iosevka Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/launchers/type-3/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "Iosevka Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/powermenu/type-1/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "JetBrains Mono Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/powermenu/type-2/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "JetBrains Mono Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/wallpaper/type-1/shared/fonts.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Fonts 7 | * 8 | **/ 9 | 10 | * { 11 | font: "JetBrains Mono Nerd Font 10"; 12 | } 13 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/1366x768.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "1366x768" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,1366x768,auto,1 -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/1440x1080.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "1440x1080" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,1440x1080,auto,1 -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/1600x900.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "1600x900@75" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,1600x900@77,auto,1 -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/1920x1080.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "1920x1080" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,1920x1080@75,auto,1 -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/1920x1200.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "1920x1200" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,1920x1200,auto,1 -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/2560x1440.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "2560x1440" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,2560x1440,auto,1 -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/3440x1440.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "3440x1440" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,3440x1440,auto,1 -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/desktop@75.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "Desktop" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,1920x1080@75,auto,1 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/desktop@83.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "Desktop" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,1920x1080@83,auto,1 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/cava_pipe.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | confPath="$HOME/.config/eww/scripts/cava_config" 4 | 5 | cava -p $confPath | while read -r line; do echo $line | sed -e 's/;/,/g'; done | while read -r line; do echo "["$(echo ${line/%?/})"]"; done 6 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/2560x1440@120.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "2560x1440@120" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,2560x1440@120,auto,1 -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/animation/variants/animations-disable.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Animations 3 | # name "disable" 4 | # ----------------------------------------------------- 5 | 6 | animations { 7 | enabled = false 8 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/xdph.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Configuration files for screen sharing 3 | # ----------------------------------------------------- 4 | 5 | screencopy { 6 | max_fps = 60 7 | allow_token_by_default = true 8 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/waybar/river/style.css: -------------------------------------------------------------------------------- 1 | @import "../../../.config/hypr-theme/waybar/global.css"; 2 | @import "../style/main.css"; 3 | 4 | window { 5 | background-color: transparent; 6 | } 7 | 8 | window>box { 9 | min-height: 30px; 10 | padding: 6px; 11 | padding-bottom: 2px; 12 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/eww/toggle-panel.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | current_state=$(eww get revealControlpanel) 4 | 5 | if [ "$current_state" = "true" ]; then 6 | new_state="false" 7 | else 8 | new_state="true" 9 | fi 10 | 11 | eww update revealControlpanel="$new_state" 12 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/kb-layout/set-active: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | hyprctl \ 4 | --batch "$( 5 | hyprctl devices -j | 6 | jq -r '.keyboards[] | .name' | 7 | while IFS= read -r keyboard; do 8 | printf '%s %s %s;' 'switchxkblayout' "${keyboard}" 'next' 9 | done 10 | )" -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-modules/_logo.yuck: -------------------------------------------------------------------------------- 1 | (defwidget Logo [] 2 | (eventbox 3 | :cursor "pointer" 4 | :onclick "${EWW_CMD} update revealControlpanel=${ !revealControlpanel }" 5 | :onrightclick "${EWW_CMD} open wallpaperselect --toggle" 6 | (box :class "logo" 7 | (label :text "")))) 8 | -------------------------------------------------------------------------------- /host/shortcuts/pcsx2.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Pcsx2 3 | Comment=PS2 Emulator - Play your favorite Playstation 2 games on your PC. 4 | GenericName=Emulator 5 | Exec=env gamemoderun /home/hesam/Games/Pcsx2/pcsx2.AppImage 6 | Type=Application 7 | Categories=Game;Emulation 8 | Keywords=pcsx2,pcsx2,playstation,emulator -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/default.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "Default" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,highres,auto,1 7 | 8 | xwayland { 9 | force_zero_scaling = true 10 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/monitor/variants/laptop.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Monitor Setup 3 | # name: "1920x1080" 4 | # ----------------------------------------------------- 5 | 6 | monitor=,highres,auto,1.2 7 | 8 | xwayland { 9 | force_zero_scaling = true 10 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/clear-n.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-components/_separator.yuck: -------------------------------------------------------------------------------- 1 | (defwidget Separator [orientation dots ?visible] (box 2 | :orientation orientation 3 | :class "separator" 4 | :space-evenly false 5 | :visible visible 6 | 7 | (for dot in dots 8 | (box :class "dot" :halign "center" :hexpand true :valign "center")))) 9 | -------------------------------------------------------------------------------- /host/shortcuts/rpcs3.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Rpcs3 3 | Comment=PS3 Emulator - Play your favorite Playstation 3 games on your PC. 4 | GenericName=Emulator 5 | Exec=env MANGOHUD=1 QT_QPA_PLATFORM=xcb gamemoderun /home/hesam/Games/Rpcs3/rpcs3.AppImage 6 | Type=Application 7 | Categories=Game;Emulation 8 | Keywords=rpcs3,ps3,playstation,emulator -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/workspace/get-active: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id' 4 | 5 | socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | 6 | stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}' 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/waybar/mini-river/style.css: -------------------------------------------------------------------------------- 1 | @import "../../../.config/hypr-theme/waybar/global.css"; 2 | @import "../style/main.css"; 3 | 4 | * { 5 | font-size: 10px; 6 | } 7 | 8 | window { 9 | background-color: transparent; 10 | } 11 | 12 | window>box { 13 | min-height: 32px; 14 | padding: 6px; 15 | padding-bottom: 2px; 16 | } -------------------------------------------------------------------------------- /host/shortcuts/spotify.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Spotify (adblock) 4 | GenericName=Music Player 5 | Icon=spotify-client 6 | TryExec=spotify 7 | Exec=env LD_PRELOAD=/usr/lib/spotify-adblock.so spotify 8 | Terminal=false 9 | MimeType=x-scheme-handler/spotify; 10 | Categories=Audio;Music;Player;AudioVideo; 11 | StartupWMClass=spotify -------------------------------------------------------------------------------- /hypr-configs/dotfiles/pipewire/pipewire.conf.d/10-wireplumber.conf: -------------------------------------------------------------------------------- 1 | # copy or symlink this file to /etc/pipewire/pipewire.conf.d (system configuration) 2 | # or ${XDG_CONFIG_HOME}/pipewire/pipewire.conf.d (per-user configuration) 3 | # to configure pipewire to launch wireplumber directly 4 | 5 | # context.exec = [ { path = "/usr/bin/wireplumber" args = "" } ] 6 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/clouds.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/kb-layout/get-active: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | hyprctl devices | grep -A 3 "$DEVICE$" | grep "active keymap:" | tail -n 1 | awk '{print toupper(substr($3,1,2))}' 4 | 5 | socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | 6 | stdbuf -o0 awk -F '>>|,' -e '/^activelayout>>/ {print toupper(substr($3, 1, 2))}' 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/pipewire/pipewire.conf.d/20-pipewire-pulse.conf: -------------------------------------------------------------------------------- 1 | # copy or symlink this file to /etc/pipewire/pipewire.conf.d (system configuration) 2 | # or ${XDG_CONFIG_HOME}/pipewire/pipewire.conf.d (per-user configuration) 3 | # to configure pipewire to launch pipewire-pulse directly 4 | 5 | # context.exec = [ { path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" } ] 6 | -------------------------------------------------------------------------------- /host/shortcuts/webstorm.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=WebStorm 3 | Comment=The smartest JavaScript IDE 4 | GenericName=IDE 5 | Exec=/opt/WebStorm/bin/webstorm.sh 6 | Icon=/opt/WebStorm/bin/bin/webstorm.png 7 | Type=Application 8 | StartupNotify=false 9 | StartupWMClass=jetbrains-webstorm 10 | Categories=Development;IDE; 11 | MimeType=text/plain; 12 | Keywords=webstorm;IDE;JavaScript; -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/waybar/toggle.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source ~/.config/scripts/env.sh 4 | WAYBAR_START="$HOME/.config/hypr/scripts/waybar/start.sh" 5 | 6 | if pgrep -x waybar >/dev/null; then 7 | pkill -f waybar 8 | fi 9 | 10 | if [ $WAYBAR_DEV_MODE = true ]; then 11 | GTK_DEBUG=interactive $WAYBAR_START 12 | else 13 | exec $WAYBAR_START 14 | fi 15 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/arc.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #2F343FFF; 11 | background-alt: #383C4AFF; 12 | foreground: #BAC5D0FF; 13 | selected: #5294E2FF; 14 | active: #98C379FF; 15 | urgent: #E06B74FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/black.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #171717; 11 | background-alt: #101010FF; 12 | foreground: #FFFFFFFF; 13 | selected: #62AEEFFF; 14 | active: #98C379FF; 15 | urgent: #E06B74FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/navy.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #021B21FF; 11 | background-alt: #0C252BFF; 12 | foreground: #F2F1B9FF; 13 | selected: #44B5B1FF; 14 | active: #7CBF9EFF; 15 | urgent: #C2454EFF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/nord.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #2E3440FF; 11 | background-alt: #383E4AFF; 12 | foreground: #E5E9F0FF; 13 | selected: #81A1C1FF; 14 | active: #A3BE8CFF; 15 | urgent: #BF616AFF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/adapta.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #222D32FF; 11 | background-alt: #29353BFF; 12 | foreground: #B8C2C6FF; 13 | selected: #00BCD4FF; 14 | active: #21FF90FF; 15 | urgent: #FF4B60FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/cyberpunk.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #000B1EFF; 11 | background-alt: #0A1528FF; 12 | foreground: #0ABDC6FF; 13 | selected: #0ABDC6FF; 14 | active: #00FF00FF; 15 | urgent: #FF0000FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/dracula.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #1E1F29FF; 11 | background-alt: #282A36FF; 12 | foreground: #FFFFFFFF; 13 | selected: #BD93F9FF; 14 | active: #50FA7BFF; 15 | urgent: #FF5555FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/gruvbox.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #282828FF; 11 | background-alt: #353535FF; 12 | foreground: #EBDBB2FF; 13 | selected: #83A598FF; 14 | active: #B8BB26FF; 15 | urgent: #FB4934FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/lovelace.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #1D1F28FF; 11 | background-alt: #282A36FF; 12 | foreground: #FDFDFDFF; 13 | selected: #79E6F3FF; 14 | active: #5ADECDFF; 15 | urgent: #F37F97FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/onedark.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #1E2127FF; 11 | background-alt: #282B31FF; 12 | foreground: #FFFFFFFF; 13 | selected: #61AFEFFF; 14 | active: #98C379FF; 15 | urgent: #E06C75FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/paper.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #F1F1F1FF; 11 | background-alt: #E0E0E0FF; 12 | foreground: #252525FF; 13 | selected: #008EC4FF; 14 | active: #10A778FF; 15 | urgent: #C30771FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/solarized.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #002B36FF; 11 | background-alt: #073642FF; 12 | foreground: #EEE8D5FF; 13 | selected: #268BD2FF; 14 | active: #859900FF; 15 | urgent: #DC322FFF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/yousai.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #F5E7DEFF; 11 | background-alt: #EBDCD2FF; 12 | foreground: #34302DFF; 13 | selected: #D97742FF; 14 | active: #BF8F60FF; 15 | urgent: #B23636FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/waybar/global.css: -------------------------------------------------------------------------------- 1 | @define-color backgroundlight #FFFFFF; 2 | @define-color backgrounddark #171717; 3 | @define-color workspacesbackground1 #FFFFFF; 4 | @define-color workspacesbackground2 #CCCCCC; 5 | @define-color bordercolor #FFFFFF; 6 | @define-color textcolor1 #000000; 7 | @define-color textcolor2 #000000; 8 | @define-color textcolor3 #FFFFFF; 9 | @define-color iconcolor #FFFFFF; -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/python/quote.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | import requests 3 | import json 4 | 5 | try: 6 | req = requests.get("https://api.quotable.io/random").text 7 | res = json.loads(req) 8 | except: 9 | res = { 10 | "content": "I can't get quotes, you are not online right now", 11 | "author": "quote widget" 12 | } 13 | print(json.dumps(res)) 14 | 15 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/catppuccin.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #1E1D2FFF; 11 | background-alt: #282839FF; 12 | foreground: #D9E0EEFF; 13 | selected: #7AA2F7FF; 14 | active: #ABE9B3FF; 15 | urgent: #F28FADFF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/everforest.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Aditya Shakya (adi1090x) 4 | * Github : @adi1090x 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #323D43FF; 11 | background-alt: #3C474DFF; 12 | foreground: #DAD1BEFF; 13 | selected: #7FBBB3FF; 14 | active: #A7C080FF; 15 | urgent: #E67E80FF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr-theme/rofi/colors/tokyonight.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author : Levi Lacoss (fishyfishfish55) 4 | * Github : @fishyfishfish55 5 | * 6 | * Colors 7 | **/ 8 | 9 | * { 10 | background: #15161EFF; 11 | background-alt: #1A1B26FF; 12 | foreground: #C0CAF5FF; 13 | selected: #33467CFF; 14 | active: #414868FF; 15 | urgent: #F7768EFF; 16 | } 17 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/storm.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/waybar/gandalf/style.css: -------------------------------------------------------------------------------- 1 | @import "../../../.config/hypr-theme/waybar/global.css"; 2 | @import "../style/main.css"; 3 | 4 | * { 5 | font-size: 9px; 6 | } 7 | 8 | window { 9 | border-radius: 0; 10 | background-color: transparent; 11 | } 12 | 13 | window>box { 14 | min-height: 30px; 15 | margin: 6px; 16 | margin-bottom: 2px; 17 | padding: 5px 4px; 18 | background-color: @backgrounddark; 19 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/layout/variants/desktop.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Layouts 3 | # ----------------------------------------------------- 4 | 5 | dwindle { 6 | pseudotile = false 7 | preserve_split = true 8 | force_split = 2 9 | } 10 | 11 | binds { 12 | workspace_back_and_forth = false 13 | allow_workspace_cycles = true 14 | pass_mouse_when_bound = false 15 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/startup/pipewire.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | check_and_start() { 4 | if ! pgrep -x "$1" >/dev/null; then 5 | echo "Starting $1..." 6 | sleep 1 && $2 & 7 | else 8 | echo "$1 is already running." 9 | fi 10 | } 11 | 12 | check_and_start "pipewire" "/usr/bin/pipewire" 13 | check_and_start "pipewire-pulse" "/usr/bin/pipewire-pulse" 14 | check_and_start "wireplumber" "/usr/bin/wireplumber" 15 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/python/iconfetch.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import gi 4 | gi.require_version('Gtk', '3.0') 5 | from gi.repository import Gtk 6 | import sys 7 | 8 | def fetch(icon_name): 9 | icon_theme = Gtk.IconTheme.get_default() 10 | icon = icon_theme.lookup_icon(icon_name, 48, 0) 11 | if icon: 12 | return icon.get_filename() 13 | else: 14 | return 15 | 16 | if __name__ == "__main__": 17 | print(fetch(sys.argv[1])) 18 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-modules/_system-tray.yuck: -------------------------------------------------------------------------------- 1 | (defwidget Systemtray [?orientation ?class] 2 | (box 3 | :space-evenly false 4 | :valign "center" 5 | :halign "center" 6 | :class "${class}" 7 | 8 | (revealer 9 | :reveal revealSystray 10 | :transition "slideup" 11 | 12 | (systray 13 | :orientation orientation 14 | :icon-size 18 15 | :spacing spacing-default 16 | ) 17 | 18 | ) 19 | )) -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/sys-info/get-gpu: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | file_exists() { 4 | if [ -f "$1" ]; then 5 | return 0 6 | else 7 | return 1 8 | fi 9 | } 10 | 11 | device_id="0" 12 | gpu_busy_file="/sys/class/hwmon/hwmon$device_id/device/gpu_busy_percent" 13 | 14 | if file_exists "$gpu_busy_file"; then 15 | gpu_busy_percent=$(cat "$gpu_busy_file") 16 | echo "$gpu_busy_percent" 17 | else 18 | echo "Error !" >&2 19 | exit 1 20 | fi 21 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/waybar/scripts/gpu-usage.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | file_exists() { 4 | if [ -f "$1" ]; then 5 | return 0 6 | else 7 | return 1 8 | fi 9 | } 10 | 11 | device_id="0" 12 | gpu_busy_file="/sys/class/hwmon/hwmon$device_id/device/gpu_busy_percent" 13 | 14 | if file_exists "$gpu_busy_file"; then 15 | gpu_busy_percent=$(cat "$gpu_busy_file") 16 | echo "$gpu_busy_percent" 17 | else 18 | echo "Error !" >&2 19 | exit 1 20 | fi 21 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/wireplumber/wireplumber.conf.d/51-fix-crackle.conf: -------------------------------------------------------------------------------- 1 | monitor.alsa.rules = [ 2 | { 3 | matches = [ 4 | { 5 | node.name = "alsa_output.pci-0000_00_1f.3.analog-stereo" 6 | } 7 | ] 8 | actions = { 9 | update-props = { 10 | audio.format = "S32LE" 11 | audio.rate = 48000 12 | api.alsa.period-size = 1024 13 | api.alsa.periods = 2 14 | node.pause-on-idle = false 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/clear.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/windows/_dashboard.scss: -------------------------------------------------------------------------------- 1 | .dashboard { 2 | padding: get-token(padding); 3 | border-radius: get-token(border-radius); 4 | background-color: $base; 5 | } 6 | 7 | .heading { 8 | font-size: 25px; 9 | color: $accent; 10 | margin: 5px; 11 | } 12 | 13 | .dmpdcontrol { 14 | margin: 10px; 15 | } 16 | 17 | .dmpdcontrol label { 18 | font-size: 20px; 19 | margin: 0px 8px; 20 | } 21 | 22 | .dicons label { 23 | font-size: 25px; 24 | margin-right: 6px; 25 | } 26 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/few-clouds-n.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/mouse.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Mouse 3 | # ----------------------------------------------------- 4 | 5 | cursor { 6 | no_hardware_cursors = false 7 | } 8 | 9 | device { 10 | name = instant-usb-gaming-mouse- 11 | natural_scroll = 0 12 | accel_profile = flat 13 | sensitivity = 0 14 | } 15 | 16 | device { 17 | name = logitech-g502-hero-se 18 | natural_scroll = 0 19 | accel_profile = flat 20 | sensitivity = 0 21 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/input.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Keyboard Layout 3 | # https://wiki.hyprland.org/Configuring/Variables/#input 4 | # ----------------------------------------------------- 5 | 6 | input { 7 | kb_layout = us, ir 8 | kb_options = grp:win_space_toggle 9 | kb_variant = 10 | kb_model = 11 | kb_rules = 12 | # follow_mouse = 1 13 | 14 | touchpad { 15 | natural_scroll = true 16 | disable_while_typing = 0 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/pipewire/pipewire-pulse.conf.d/audiorelay.conf: -------------------------------------------------------------------------------- 1 | pulse.cmd = [ 2 | { 3 | cmd = "load-module" 4 | args = "module-null-sink sink_name=audiorelay-virtual-mic-sink sink_properties=device.description=Virtual-Mic-Sink" 5 | flags = [ ] 6 | }, 7 | { 8 | cmd = "load-module" 9 | args = "module-remap-source master=audiorelay-virtual-mic-sink.monitor source_name=audiorelay-virtual-mic-sink source_properties=device.description=Virtual-Mic" 10 | flags = [ ] 11 | } 12 | ] -------------------------------------------------------------------------------- /hypr-configs/dotfiles/waybar/style/modules/battery.css: -------------------------------------------------------------------------------- 1 | #battery.charging, 2 | #battery.plugged { 3 | color: #00ff00; 4 | animation: pulse 2s cubic-bezier(0.075, 0.82, 0.165, 1) infinite; 5 | } 6 | 7 | #battery.critical:not(.charging) { 8 | background-color: #f53c3c; 9 | animation: pulse 2s cubic-bezier(0.075, 0.82, 0.165, 1) infinite; 10 | } 11 | 12 | @keyframes pulse { 13 | 0% { 14 | opacity: 1; 15 | } 16 | 17 | 50% { 18 | opacity: 0.5; 19 | } 20 | 21 | 100% { 22 | opacity: 1; 23 | } 24 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-components/_stats.yuck: -------------------------------------------------------------------------------- 1 | (defwidget SystemStatus [icon val ?visible] 2 | (box 3 | :class "system-status" 4 | :visible {visible} 5 | 6 | (overlay 7 | (circular-progress 8 | :halign "center" 9 | :valign "center" 10 | :class "progress" 11 | :thickness 40 12 | :value val) 13 | 14 | (box 15 | :class "icon" 16 | :halign "center" 17 | :valign "center" 18 | :height 55 19 | :width 55 20 | (label :text icon))) 21 | ) 22 | ) -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/few-clouds.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/avizo/config.ini: -------------------------------------------------------------------------------- 1 | [default] 2 | time = 0.8 3 | width = 260 4 | height = 200 5 | padding = 20 6 | y-offset = 0.8 7 | border-radius = 12 8 | border-width = 0 9 | block-height = 20 10 | block-spacing = 1 11 | block-count = 20 12 | 13 | ;image-base-dir = 14 | ;image-opacity = 1.0 15 | # Sets the fade in animation duration in seconds. 16 | fade-in = 0.1 17 | 18 | # Sets the fade out animation duration in seconds. 19 | ;fade-out = 0.5 20 | 21 | background = rgba(255, 255, 255, 1) 22 | bar-fg-color = rgba(23, 23, 23, 0.8) 23 | ;border-color = rgba(90, 90, 90, 0.8) -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/workspace/set-active: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | clamp() { 4 | min=$1 5 | max=$2 6 | val=$3 7 | python -c "print(max($min, min($val, $max)))" 8 | } 9 | 10 | direction=$1 11 | current=$2 12 | 13 | if test "$direction" = "down"; then 14 | target=$(clamp 1 10 $(($current + 1))) 15 | echo "jumping to $target" 16 | hyprctl dispatch workspace $target 17 | elif test "$direction" = "up"; then 18 | target=$(clamp 1 10 $(($current - 1))) 19 | echo "jumping to $target" 20 | hyprctl dispatch workspace $target 21 | fi 22 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/workspace/get-workspaces: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | NUMBER_OF_WORKSPACES=6 4 | 5 | workspaces() { 6 | WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries') 7 | 8 | seq 1 $NUMBER_OF_WORKSPACES | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})' 9 | } 10 | 11 | workspaces 12 | 13 | socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do 14 | workspaces 15 | done 16 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/rain.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/windows/_osd.scss: -------------------------------------------------------------------------------- 1 | .volume-osd { 2 | @extend .panel-widget; 3 | border-radius: get-token(border-radius, large); 4 | 5 | min-width: 320px; 6 | } 7 | 8 | .volume-scale { 9 | trough { 10 | border-radius: get-token(border-radius, large); 11 | min-height: 32px; 12 | background-color: $surface1; 13 | 14 | highlight { 15 | border-radius: get-token(border-radius, large); 16 | background-color: $accent; 17 | } 18 | } 19 | 20 | .volume-icon { 21 | font-size: get-token(font-sizes, large); 22 | margin-left: 8px; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-modules/_timer.yuck: -------------------------------------------------------------------------------- 1 | (defwidget Timer [] 2 | (box 3 | :orientation "v" 4 | :class "timer" 5 | :space-evenly false 6 | 7 | (label :valign "center" :vexpand true :text timerdis) 8 | 9 | (box 10 | :orientation "h" 11 | :class "timer-controls" 12 | 13 | (button :onclick "./scripts/python/timer.py timedec" (label :text "-")) 14 | (button :onclick "./scripts/python/timer.py toggle" (label :text { !matches(timerdis, ":") ? "󱎫" : "󱫎"})) 15 | (button :onclick "./scripts/python/timer.py timeinc" (label :text "+"))))) 16 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/pipewire/pipewire.conf.d/1-pipewire.conf: -------------------------------------------------------------------------------- 1 | context.properties = { 2 | default.clock.rate = 48000 3 | default.clock.allowed-rates = [ 44100 48000 88200 96000 ] 4 | default.clock.quantum = 1024 5 | default.clock.min-quantum = 1024 6 | default.clock.max-quantum = 2048 7 | } 8 | 9 | context.modules = [ 10 | { name = libpipewire-module-rt 11 | args = { 12 | nice.level = -11 13 | rt.prio = 88 14 | rt.time.soft = -1 15 | rt.time.hard = -1 16 | } 17 | flags = [ ifexists nofail ] 18 | } 19 | ] -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/animation/variants/animations-river.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Animations 3 | # name "river" 4 | # ----------------------------------------------------- 5 | 6 | animations { 7 | enabled = true 8 | 9 | bezier = overshot, 0.1, 1, 0.1, 1.05 10 | 11 | animation = windows, 1, 7, overshot 12 | animation = windowsOut, 1, 7, default, popin 80% 13 | animation = border, 1, 10, default 14 | animation = fade, 1, 7, default 15 | animation = workspaces, 1, 6, default, slide 16 | animation = specialWorkspace, 1, 6, default, slidevert 17 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/eww.scss: -------------------------------------------------------------------------------- 1 | @import "./assets/scss/themes/feverblush.scss"; 2 | @import "./assets/scss/tokens"; 3 | @import "./assets/scss/native"; 4 | @import "./assets/scss/global"; 5 | @import "./assets/scss/modules"; 6 | @import "./assets/scss/components"; 7 | 8 | @import "./assets/scss/windows/control-panel"; 9 | @import "./assets/scss/windows/vertical-bar"; 10 | @import "./assets/scss/windows/dashboard"; 11 | @import "./assets/scss/windows/osd"; 12 | @import "./assets/scss/windows/notifications"; 13 | 14 | @import "./src/dock/styles.scss"; 15 | 16 | * { 17 | all: unset; 18 | font-family: "Iosevka Nerd Font"; 19 | } 20 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/themes/camellia.scss: -------------------------------------------------------------------------------- 1 | // By Vixima 2 | 3 | $BG: #17181c; 4 | $MidBG: #1e1f24; 5 | $LightBG: #26272b; 6 | $DarkGrey: #333438; 7 | $LightGrey: #8f9093; 8 | $DarkFG: #b0b1b4; 9 | $MidFG: #cbccce; 10 | $FG: #e4e5e7; 11 | $Pink: #fa3867; 12 | $Orange: #f57f3d; 13 | $Gold: #f5ca32; 14 | $Lime: #65db3d; 15 | $Turquoise: #53dfca; 16 | $Blue: #4cb2e5; 17 | $Violet: #9a57f5; 18 | $Red: #fa4242; 19 | $white: #fff; 20 | 21 | $base: #17181c; 22 | $surface0: #1e1f24; 23 | $surface1: #26272b; 24 | $surface2: #333438; 25 | $white0: #e4e5e7; 26 | $white1: $FG; 27 | $white2: $FG; 28 | $red: $Red; 29 | $green: $Lime; 30 | $accent: $Pink; 31 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-modules/_time.yuck: -------------------------------------------------------------------------------- 1 | (defwidget Clock [] 2 | (eventbox 3 | :cursor "pointer" 4 | :onclick "${EWW_CMD} open CalendarPopup --toggle" 5 | (box 6 | :orientation "v" 7 | :space-evenly false 8 | :class "clock" 9 | 10 | (label :text thour) 11 | (label :text tmin)))) 12 | 13 | (defwindow CalendarPopup 14 | :geometry (geometry 15 | :width "100" 16 | :height "35" 17 | :anchor "bottom left") 18 | :stacking "overlay" 19 | :monitor 0 20 | 21 | (box 22 | :class "popup" 23 | 24 | (box 25 | :class "widget" 26 | (calendar :day calendar_day :year calendar_year)))) 27 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/animation/variants/default.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Animations 3 | # name "Default" 4 | # ----------------------------------------------------- 5 | 6 | animations { 7 | enabled = true 8 | 9 | bezier = myBezier, 0.05, 0.9, 0.1, 1.05 10 | 11 | animation = windows, 1, 7, myBezier 12 | animation = windowsOut, 1, 7, default, popin 80% 13 | animation = border, 1, 10, default 14 | animation = borderangle, 1, 8, default 15 | animation = fade, 1, 7, default 16 | animation = workspaces, 1, 6, default 17 | animation = specialWorkspace, 1, 6, default, slidevert 18 | } 19 | 20 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/windows/_notifications.scss: -------------------------------------------------------------------------------- 1 | .notifbox { 2 | background-color: $surface1; 3 | border-radius: 5px; 4 | padding: 5px; 5 | margin: 5px; 6 | } 7 | 8 | .notiftitle { 9 | font-size: 18px; 10 | color: $white0; 11 | } 12 | 13 | .notifbody { 14 | font-size: 15px; 15 | color: $white0; 16 | } 17 | 18 | .notifclose { 19 | font-family: "Symbols Nerd Font"; 20 | font-size: 25px; 21 | min-width: 1em; 22 | min-height: 1em; 23 | color: $red; 24 | } 25 | 26 | .notiflabel { 27 | font-size: 18px; 28 | margin-bottom: 5px; 29 | } 30 | 31 | .notifactions { 32 | font-size: 15px; 33 | margin: 5px; 34 | color: $white0; 35 | } 36 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/rofi-launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source ~/.config/scripts/env.sh 4 | 5 | pkill rofi 6 | 7 | case $1 in 8 | d) exec $ROFI_DIR/launchers/type-$LAUNCHER_TYPE/launcher.sh ;; 9 | c) exec $ROFI_DIR/clipboard/type-$CLIPBOARD_TYPE/clipboard.sh ;; 10 | w) exec $ROFI_DIR/wallpaper/type-$WALLPAPER_TYPE/wallpaper.sh ;; 11 | p) exec $ROFI_DIR/applets/bin/powermenu.sh ;; 12 | s) exec $ROFI_DIR/applets/bin/screenshot.sh ;; 13 | h) 14 | echo -e "rofilaunch.sh [action]\nwhere action," 15 | echo "d : drun mode" 16 | echo "w : window mode" 17 | echo "s : screen shot mode," 18 | echo "c : clipboard manager" 19 | exit 0 20 | ;; 21 | *) ;; 22 | esac 23 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/decoration/variants/performance.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # General window decoration 3 | # name: "Rounding No Blur No Shadows" 4 | # ----------------------------------------------------- 5 | 6 | decoration { 7 | rounding = 0 8 | 9 | blur { 10 | enabled = false 11 | 12 | size = 12 13 | passes = 4 14 | new_optimizations = on 15 | ignore_opacity = true 16 | xray = true 17 | blurls = waybar 18 | } 19 | 20 | shadow { 21 | enabled = false 22 | } 23 | 24 | active_opacity = 1 25 | inactive_opacity = 0.95 26 | fullscreen_opacity = 1 27 | } 28 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/wifi: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | wifi_status=$(nmcli -t -f STATE g) 4 | wifi_essid=$(nmcli -t -f NAME c show --active | head -n1) 5 | wifi_strength=$(awk 'NR==3 {print int($3 * 10/7)}' /proc/net/wireless) 6 | 7 | get_wifi_icon() { 8 | if [[ $wifi_status == "connected" ]]; then 9 | case $wifi_strength in 10 | [0-9] | 1[0-9] | 2[0-5]) echo "󰤟" ;; 11 | 2[6-9] | 3[0-9] | 4[0-9] | 50) echo "󰤢" ;; 12 | 5[1-9] | 6[0-9] | 7[0-5]) echo "󰤥" ;; 13 | *) echo "󰤨" ;; 14 | esac 15 | else 16 | echo "󰤭" 17 | fi 18 | 19 | } 20 | 21 | case "$1" in 22 | --COL) echo "$color" ;; 23 | --ESSID) echo $wifi_essid ;; 24 | --ICON) get_wifi_icon ;; 25 | esac 26 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/pipewire/pipewire.conf.d/98-echo-canceling.conf: -------------------------------------------------------------------------------- 1 | # context.modules = [ 2 | # { 3 | # name = libpipewire-module-echo-cancel 4 | # args = { 5 | # library.name = aec/libspa-aec-webrtc 6 | # node.latency = 1024/48000 7 | # monitor.mode = false 8 | # capture.props = { 9 | # node.name = "Echo Cancellation Capture" 10 | # } 11 | # source.props = { 12 | # node.name = "Echo Cancellation Source" 13 | # } 14 | # sink.props = { 15 | # node.name = "Echo Cancellation Chad" 16 | # } 17 | # playback.props = { 18 | # node.name = "Echo Cancellation Playback" 19 | # } 20 | # } 21 | # } 22 | # ] 23 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/themes/ocean.scss: -------------------------------------------------------------------------------- 1 | // Midnight Frost palette 2 | $black: #0c1015; 3 | $gray100: #1c2026; 4 | $gray90: #262b33; 5 | $gray80: #31363f; 6 | $gray70: #3d434d; 7 | $gray60: #545b68; 8 | $gray50: #6b7280; 9 | $gray40: #838a98; 10 | $gray30: #9ca3b0; 11 | $gray20: #b5bbc8; 12 | $gray10: #ced3de; 13 | $white: #ebeef5; 14 | $red: #e63946; 15 | $green: #2ecc71; 16 | $green_dark: #27ae60; 17 | $yellow: #f1c40f; 18 | $yellow_dark: #f39c12; 19 | $blue: #3498db; 20 | $blue_dark: #2980b9; 21 | $magenta: #9b59b6; 22 | $magenta_dark: #8e44ad; 23 | $cyan: #1abc9c; 24 | $cyan_dark: #16a085; 25 | 26 | $base: $black; 27 | $surface0: $gray100; 28 | $surface1: $gray90; 29 | $surface2: $gray80; 30 | $white0: $gray10; 31 | $white1: $white; 32 | $white2: $white; 33 | $accent: $red; 34 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/animation/variants/animations-moving.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Animations 3 | # name "Moving" 4 | # ----------------------------------------------------- 5 | 6 | animations { 7 | enabled = true 8 | bezier = overshot, 0.05, 0.9, 0.1, 1.05 9 | bezier = smoothOut, 0.5, 0, 0.99, 0.99 10 | bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 11 | animation = windows, 1, 5, overshot, slide 12 | animation = windowsOut, 1, 3, smoothOut 13 | animation = windowsIn, 1, 3, smoothOut 14 | animation = windowsMove, 1, 4, smoothIn, slide 15 | animation = border, 1, 5, default 16 | animation = fade, 1, 5, smoothIn 17 | animation = fadeDim, 1, 5, smoothIn 18 | animation = workspaces, 1, 6, default 19 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/themes/sunburst.scss: -------------------------------------------------------------------------------- 1 | // Sunburst Oasis palette 2 | $black: #141a1f; 3 | $gray100: #1f2a33; 4 | $gray90: #2a3740; 5 | $gray80: #35444e; 6 | $gray70: #41525d; 7 | $gray60: #566873; 8 | $gray50: #6b7e8a; 9 | $gray40: #8195a1; 10 | $gray30: #98acb8; 11 | $gray20: #b0c3cf; 12 | $gray10: #c8dae6; 13 | $white: #e0f0fd; 14 | $red: #ff6b6b; 15 | $green: #5ec26c; 16 | $green_dark: #4ca158; 17 | $yellow: #feca57; 18 | $yellow_dark: #d9a638; 19 | $blue: #54a0ff; 20 | $blue_dark: #3d7acc; 21 | $magenta: #ff78c6; 22 | $magenta_dark: #d35d9e; 23 | $cyan: #48dbfb; 24 | $cyan_dark: #3aafcc; 25 | 26 | $base: $black; 27 | $surface0: $gray100; 28 | $surface1: $gray90; 29 | $surface2: $gray80; 30 | $white0: $gray10; 31 | $white1: $white; 32 | $white2: $white; 33 | $accent: $red; 34 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/arch-autostart.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Autostart 3 | # ----------------------------------------------------- 4 | 5 | exec-once = dbus-update-activation-environment --systemd --all 6 | exec-once = wl-paste --watch cliphist store 7 | exec-once = systemctl --user start hyprpolkitagent 8 | exec-once = systemctl --user start hyprpaper 9 | exec-once = systemctl --user start hypridle 10 | 11 | # exec-once = $script_dir/startup/dunst.sh & 12 | exec-once = $script_dir/startup/swayosd.sh & 13 | 14 | # exec-once = $script_dir/startup/pipewire.sh & 15 | # exec-once = ~/.config/hypr/scripts/wallpaper/wallpaper-daemon.sh & 16 | # exec-once = $eww_script_dir/eww/start.sh & 17 | # exec-once = ~/.config/hypr/scripts/waybar/start.sh & 18 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/wallpaper/swaybg-random.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source ~/.config/scripts/env.sh 4 | 5 | files=($(find "${WALLPAPERS_DIR}" -type f)) 6 | 7 | if [ ${#files[@]} -eq 0 ]; then 8 | dunstify "No files found in the directory: ${WALLPAPERS_DIR}" 9 | exit 1 10 | fi 11 | 12 | image_files=() 13 | for file in "${files[@]}"; do 14 | if file -b --mime-type "$file" | grep -q "^image/"; then 15 | image_files+=("$file") 16 | fi 17 | done 18 | 19 | if [ ${#image_files[@]} -eq 0 ]; then 20 | dunstify "No image files found in the directory: ${WALLPAPERS_DIR}" 21 | exit 1 22 | fi 23 | 24 | random_pic=${image_files[$RANDOM % ${#image_files[@]}]} 25 | 26 | if [[ $(pidof swaybg) ]]; then 27 | pkill swaybg 28 | fi 29 | 30 | swaybg -i "$random_pic" 31 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/animation/variants/animations-dynamic.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Animations 3 | # name "Dynamic" 4 | # ----------------------------------------------------- 5 | 6 | animations { 7 | enabled = true 8 | bezier = wind, 0.05, 0.9, 0.1, 1.05 9 | bezier = winIn, 0.1, 1.1, 0.1, 1.1 10 | bezier = winOut, 0.3, -0.3, 0, 1 11 | bezier = liner, 1, 1, 1, 1 12 | animation = windows, 1, 6, wind, slide 13 | animation = windowsIn, 1, 6, winIn, slide 14 | animation = windowsOut, 1, 5, winOut, slide 15 | animation = windowsMove, 1, 5, wind, slide 16 | animation = border, 1, 1, liner 17 | animation = borderangle, 1, 30, liner, loop 18 | animation = fade, 1, 10, default 19 | animation = workspaces, 1, 5, wind 20 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/wallpaper/swww-random.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source ~/.config/scripts/env.sh 4 | 5 | files=($(find "${WALLPAPERS_DIR}" -type f)) 6 | 7 | if [ ${#files[@]} -eq 0 ]; then 8 | dunstify "No files found in the directory: ${WALLPAPERS_DIR}" 9 | exit 1 10 | fi 11 | 12 | image_files=() 13 | for file in "${files[@]}"; do 14 | if file -b --mime-type "$file" | grep -q "^image/"; then 15 | image_files+=("$file") 16 | fi 17 | done 18 | 19 | if [ ${#image_files[@]} -eq 0 ]; then 20 | dunstify "No image files found in the directory: ${WALLPAPERS_DIR}" 21 | exit 1 22 | fi 23 | 24 | random_pic=${image_files[$RANDOM % ${#image_files[@]}]} 25 | 26 | swww img "$random_pic" --transition-fps $SWWW_FPS --transition-type any --transition-duration $SWWW_DURATION 27 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/themes/fullerene.scss: -------------------------------------------------------------------------------- 1 | // by Gwynsav 2 | 3 | $black: #0c0c0c; 4 | $gray100: #161616; 5 | $gray90: #1f1f1f; 6 | $gray80: #262626; 7 | $gray70: #393939; 8 | $gray60: #525252; 9 | $gray50: #6f6f6f; 10 | $gray40: #8d8d8d; 11 | $gray30: #a8a8a8; 12 | $gray20: #c6c6c6; 13 | $gray10: #e0e0e0; 14 | $white: #fff; 15 | 16 | $red: #c1374b; 17 | $red_dark: #902c3b; 18 | $green: #32ae80; 19 | $green_dark: #2a8664; 20 | $yellow: #e1a36b; 21 | $yellow_dark: #d78438; 22 | $blue: #738be7; 23 | $blue_dark: #546ad8; 24 | $magenta: #9e7ad5; 25 | $magenta_dark: #875fd4; 26 | $cyan: #2b9eb0; 27 | $cyan_dark: #1f7a89; 28 | 29 | $base: #0c0c0c; 30 | $surface0: $gray80; 31 | $surface1: $gray70; 32 | $surface2: $gray60; 33 | $white0: $gray10; 34 | $white1: $white; 35 | $white2: $white; 36 | $accent: $magenta; 37 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/decoration/variants/default.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # General window decoration 3 | # name: "Default" 4 | # ----------------------------------------------------- 5 | 6 | decoration { 7 | rounding = 6 8 | 9 | blur { 10 | enabled = true 11 | size = 6 12 | passes = 3 13 | new_optimizations = on 14 | ignore_opacity = true 15 | blurls = Dunst 16 | blurls = dunst 17 | # blurls = avizo 18 | # blurls = waybar 19 | # xray = true 20 | } 21 | 22 | active_opacity = 1.0 23 | inactive_opacity = 0.8 24 | fullscreen_opacity = 1.0 25 | 26 | drop_shadow = true 27 | shadow_range = 30 28 | shadow_render_power = 5 29 | col.shadow = 0x66000000 30 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/hyprpaper.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # 3 | # ██╗ ██╗██╗ ██╗██████╗ ██████╗ ██████╗ █████╗ ██████╗ ███████╗██████╗ 4 | # ██║ ██║╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔════╝██╔══██╗ 5 | # ███████║ ╚████╔╝ ██████╔╝██████╔╝██████╔╝███████║██████╔╝█████╗ ██████╔╝ 6 | # ██╔══██║ ╚██╔╝ ██╔═══╝ ██╔══██╗██╔═══╝ ██╔══██║██╔═══╝ ██╔══╝ ██╔══██╗ 7 | # ██║ ██║ ██║ ██║ ██║ ██║██║ ██║ ██║██║ ███████╗██║ ██║ 8 | # ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ 9 | # 10 | # ----------------------------------------------------- 11 | 12 | $WALLPAPER_PATH = ~/.config/hypr/wallpapers 13 | 14 | preload = $WALLPAPER_PATH/windows-11.jpg 15 | 16 | wallpaper = ,$WALLPAPER_PATH/windows-11.jpg 17 | 18 | splash = true 19 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/themes/feverblush.scss: -------------------------------------------------------------------------------- 1 | // Everblush palette 2 | 3 | $black: #171717; 4 | $gray100: #282828; 5 | $gray90: #2d3437; 6 | $gray80: #373d3f; 7 | $gray70: #43494b; 8 | $gray60: #5d6567; 9 | $gray50: #767b7c; 10 | $gray40: #8f9293; 11 | $gray30: #a8a9aa; 12 | $gray20: #c1c2c3; 13 | $gray10: #dadada; 14 | $white: #fff; 15 | 16 | $red: #fa4242; 17 | 18 | $green: #8ccf7e; 19 | $green_dark: #70a665; 20 | 21 | $yellow: #e5c76b; 22 | $yellow_dark: #b89f56; 23 | 24 | $blue: #67b0e8; 25 | $blue_dark: #528dba; 26 | 27 | $magenta: #c47fd5; 28 | $magenta_dark: #9d66aa; 29 | 30 | $cyan: #6cbfbf; 31 | $cyan_dark: #569999; 32 | 33 | $base: $black; 34 | $surface0: $gray100; 35 | $surface1: $gray90; 36 | $surface2: $gray80; 37 | $white0: $gray10; 38 | $white1: $white; 39 | $white2: $white; 40 | $accent: $red; 41 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/wallpaper/mpvpaper-random.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source ~/.config/scripts/env.sh 4 | 5 | files=($(find "${LIVE_WALLPAPERS_DIR}" -type f)) 6 | 7 | if [ ${#files[@]} -eq 0 ]; then 8 | dunstify "No files found in the directory: ${LIVE_WALLPAPERS_DIR}" 9 | exit 1 10 | fi 11 | 12 | video_files=() 13 | for file in "${files[@]}"; do 14 | if file -b --mime-type "$file" | grep -q "^video/"; then 15 | video_files+=("$file") 16 | fi 17 | done 18 | 19 | if [ ${#video_files[@]} -eq 0 ]; then 20 | echo "No video files found in the directory: ${WALLPAPERS_DIR}" 21 | exit 1 22 | fi 23 | 24 | random_video=${video_files[$RANDOM % ${#video_files[@]}]} 25 | 26 | if [[ $(pidof mpvpaper) ]]; then 27 | pkill mpvpaper 28 | fi 29 | 30 | mpvpaper -o "loop-file" "*" $random_video 31 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-application-prefer-dark-theme=true 3 | gtk-button-images=true 4 | gtk-cursor-blink=true 5 | gtk-cursor-blink-time=1000 6 | gtk-cursor-theme-name=breeze_cursors 7 | gtk-cursor-theme-size=24 8 | gtk-decoration-layout=:minimize,maximize,close 9 | gtk-enable-animations=true 10 | gtk-enable-event-sounds=1 11 | gtk-enable-input-feedback-sounds=0 12 | gtk-font-name=Noto Sans, 10 13 | gtk-icon-theme-name=breeze-dark 14 | gtk-menu-images=true 15 | gtk-modules=colorreload-gtk-module 16 | gtk-primary-button-warps-slider=true 17 | gtk-sound-theme-name=ocean 18 | gtk-theme-name=Orchis-Dark-Compact 19 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 20 | gtk-toolbar-style=3 21 | gtk-xft-antialias=1 22 | gtk-xft-dpi=98304 23 | gtk-xft-hinting=1 24 | gtk-xft-hintstyle=hintslight 25 | gtk-xft-rgba=rgb 26 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/themes/everblush.scss: -------------------------------------------------------------------------------- 1 | // Everblush palette 2 | 3 | $black: #141b1e; 4 | $gray100: #232a2d; 5 | $gray90: #2d3437; 6 | $gray80: #373d3f; 7 | $gray70: #43494b; 8 | $gray60: #5d6567; 9 | $gray50: #767b7c; 10 | $gray40: #8f9293; 11 | $gray30: #a8a9aa; 12 | $gray20: #c1c2c3; 13 | $gray10: #dadada; 14 | $white: #fff; 15 | 16 | $red: #e57474; 17 | $red_dark: #b35d5d; 18 | 19 | $green: #8ccf7e; 20 | $green_dark: #70a665; 21 | 22 | $yellow: #e5c76b; 23 | $yellow_dark: #b89f56; 24 | 25 | $blue: #67b0e8; 26 | $blue_dark: #528dba; 27 | 28 | $magenta: #c47fd5; 29 | $magenta_dark: #9d66aa; 30 | 31 | $cyan: #6cbfbf; 32 | $cyan_dark: #569999; 33 | 34 | $base: $black; 35 | $surface0: $gray100; 36 | $surface1: $gray90; 37 | $surface2: $gray80; 38 | $white0: $gray10; 39 | $white1: $white; 40 | $white2: $white; 41 | $accent: $red; 42 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/autostart.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Autostart 3 | # ----------------------------------------------------- 4 | 5 | exec-once = dbus-update-activation-environment --all & 6 | exec-once = pipewire & 7 | exec-once = wireplumber & 8 | exec-once = pipewire-pulse & 9 | exec-once = /usr/libexec/hyprpolkitagent & 10 | exec-once = wl-paste --watch cliphist store & 11 | exec-once = hyprpaper & 12 | exec-once = hypridle & 13 | exec-once = $script_dir/startup/dunst.sh & 14 | exec-once = $script_dir/startup/swayosd.sh & 15 | 16 | # exec-once = $script_dir/startup/pipewire.sh & 17 | # exec-once = avizo-service & 18 | # exec-once = ~/.config/hypr/scripts/wallpaper/wallpaper-daemon.sh & 19 | # exec-once = $eww_script_dir/eww/start.sh & 20 | # exec-once = ~/.config/hypr/scripts/waybar/start.sh & 21 | -------------------------------------------------------------------------------- /.scripts/_helper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | git_pull() { 4 | if [[ "$1" == "-p" ]]; then 5 | git stash 6 | git pull 7 | git stash pop 8 | else 9 | git pull 10 | fi 11 | } 12 | 13 | git_pull_submodule() { 14 | if [[ "$1" == "-s" ]]; then 15 | git submodule update --recursive --remote 16 | git submodule foreach git checkout main 17 | git submodule foreach git pull origin main 18 | else 19 | echo "Usage: $0 -s" 20 | fi 21 | } 22 | 23 | while getopts "ps" opt; do 24 | case $opt in 25 | p) 26 | git_pull -p 27 | ;; 28 | s) 29 | git_pull_submodule -s 30 | ;; 31 | \?) 32 | echo "Invalid option: -$OPTARG" >&2 33 | exit 1 34 | ;; 35 | esac 36 | done 37 | 38 | if [[ $# -eq 0 ]]; then 39 | git_pull 40 | fi 41 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/layout/variants/laptop.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Layouts 3 | # ----------------------------------------------------- 4 | 5 | dwindle { 6 | pseudotile = true 7 | preserve_split = true 8 | } 9 | 10 | master { 11 | # Commented out due to compatibility reasons 12 | # new_status = master 13 | } 14 | 15 | # gestures { 16 | # workspace_swipe = true 17 | # workspace_swipe_fingers = 3 18 | # workspace_swipe_distance = 500 19 | # workspace_swipe_invert = true 20 | # workspace_swipe_min_speed_to_force = 30 21 | # workspace_swipe_cancel_ratio = 0.5 22 | # workspace_swipe_create_new = true 23 | # workspace_swipe_forever = true 24 | # } 25 | 26 | binds { 27 | workspace_back_and_forth = true 28 | allow_workspace_cycles = true 29 | pass_mouse_when_bound = false 30 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-components/_sliders.yuck: -------------------------------------------------------------------------------- 1 | (defwidget VerticalBarSlider [var ?onchange ?visible] 2 | (scale 3 | :value {var} 4 | :onchange {onchange} 5 | :class "vertical-bar-slider" 6 | :visible {visible} 7 | :orientation "v" 8 | :tooltip "${var}%" 9 | :max 101 10 | :min 0 11 | :flipped true)) 12 | 13 | (defwidget BigBarSlider [var ?icon ?onchange ?visible ?timeout] 14 | (box 15 | :class "big-bar-slider" 16 | :visible {visible} 17 | 18 | (overlay 19 | (scale 20 | :value var 21 | :onchange {onchange} 22 | :visible {visible} 23 | :orientation "v" 24 | :tooltip "${var}%" 25 | :max 101 26 | :min 0 27 | :flipped true) 28 | 29 | (label 30 | :class "icon" 31 | :valign "end" 32 | :text {icon})) 33 | ) 34 | ) 35 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/format.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | WATCH_DIR="$(pwd)" 4 | 5 | if [ -z "$WATCH_DIR" ]; then 6 | echo "Usage: $0 " 7 | exit 1 8 | fi 9 | 10 | if [ ! -d "$WATCH_DIR" ]; then 11 | echo "Directory $WATCH_DIR does not exist." 12 | exit 1 13 | fi 14 | 15 | format_file() { 16 | local file="$1" 17 | echo "Formatting $file" 18 | vim -c "execute 'normal! =G' | :wq!" "$file" 19 | } 20 | 21 | last_run=0 22 | 23 | inotifywait -m -r -e modify,create,delete,move --format '%w%f' "$WATCH_DIR" | while read -r file; do 24 | if [[ "$file" == *.yuck ]]; then 25 | current_time=$(date +%s%N | cut -b1-13) 26 | 27 | if ((current_time - last_run > 2500)); then 28 | sleep 0.1 29 | if [ -e "$file" ]; then 30 | format_file $file 31 | fi 32 | last_run=$current_time 33 | fi 34 | fi 35 | done 36 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/rules/workspaces.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # workspaces rules 3 | # ----------------------------------------------------- 4 | 5 | windowrulev2 = workspace special:$networks_workspace,class:^(nekoray|Nekoray|hiddify|v2rayN)$ 6 | 7 | windowrulev2 = workspace 1, class:^(Google-chrome|Thorium-browser|chrome|google-chrome|Chrome|Firefox|firefox|FreeTube)$ 8 | windowrulev2 = workspace 2, class:^(code-url-handler|code-oss|code|Code|Code - OSS|.*jetbrains.*)$ 9 | windowrulev2 = workspace 3, class:^(.*[Tt]elegram.*|.*[Dd]iscord.*)$ 10 | windowrulev2 = workspace 3, class:^(Google-chrome)$, title:^(.*Telegram Web.*)$ 11 | windowrulev2 = workspace 4, class:^(Steam|steam)$,title:^(steam|Steam)$ 12 | windowrulev2 = workspace 5, class:^(Spotify)$ 13 | # windowrulev2 = workspace 6,title:^(.*PCSX2.*)$ 14 | # windowrulev2 = workspace 7,class:^(.*Gimp.*|blender|.*steam_app.*)$ -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/wallpaper/wallpaper-daemon.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source ~/.config/scripts/env.sh 4 | 5 | if [ -z "$WALLPAPER_DAEMON" ]; then 6 | echo "WALLPAPER_DAEMON is not set in the environment." 7 | exit 1 8 | fi 9 | 10 | case $WALLPAPER_DAEMON in 11 | "swaybg") 12 | pkill -f swww-daemon 13 | pkill -f mpvpaper 14 | 15 | exec ~/.config/hypr/scripts/wallpaper/swaybg-random.sh 16 | ;; 17 | "swww") 18 | pkill -f swaybg 19 | pkill -f mpvpaper 20 | 21 | if [[ ! $(pidof swww-daemon) ]]; then 22 | swww init 23 | fi 24 | 25 | exec ~/.config/hypr/scripts/wallpaper/swww-random.sh 26 | ;; 27 | "mpvpaper") 28 | pkill -f swaybg 29 | pkill -f swww-daemon 30 | 31 | exec ~/.config/hypr/scripts/wallpaper/mpvpaper-random.sh 32 | ;; 33 | *) 34 | dunstify "Unknown value for WALLPAPER_DAEMON: $WALLPAPER_DAEMON" 35 | exit 1 36 | ;; 37 | esac 38 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/eww.yuck: -------------------------------------------------------------------------------- 1 | (include "./_definitions.yuck") 2 | 3 | (include "./src/-components/_helpers.yuck") 4 | (include "./src/-components/_separator.yuck") 5 | (include "./src/-components/_sliders.yuck") 6 | (include "./src/-components/_stats.yuck") 7 | 8 | (include "./src/-modules/_language.yuck") 9 | (include "./src/-modules/_timer.yuck") 10 | (include "./src/-modules/_system-tray.yuck") 11 | (include "./src/-modules/_workspaces.yuck") 12 | (include "./src/-modules/_time.yuck") 13 | (include "./src/-modules/_logo.yuck") 14 | (include "./src/-modules/_media.yuck") 15 | 16 | (include "./src/windows/_notifications.yuck") 17 | (include "./src/windows/_vertical-bar.yuck") 18 | (include "./src/windows/_control-panel.yuck") 19 | (include "./src/windows/_dashboard.yuck") 20 | (include "./src/windows/_osd.yuck") 21 | 22 | (include "./_setups.yuck") 23 | 24 | (include "./src/wallpapers/main.yuck") 25 | (include "./src/dock/main.yuck") 26 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/animation/variants/animations-high.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Animations 3 | # name: "High" 4 | # ----------------------------------------------------- 5 | 6 | animations { 7 | enabled = true 8 | bezier = wind, 0.05, 0.9, 0.1, 1.05 9 | bezier = winIn, 0.1, 1.1, 0.1, 1.1 10 | bezier = winOut, 0.3, -0.3, 0, 1 11 | bezier = liner, 1, 1, 1, 1 12 | bezier = overshot, 0.05, 0.9, 0.1, 1.05 13 | bezier = smoothOut, 0.5, 0, 0.99, 0.99 14 | bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 15 | animation = windows, 1, 6, wind, slide 16 | animation = windowsIn, 1, 6, winIn, slide 17 | animation = windowsOut, 1, 5, winOut, slide 18 | animation = windowsMove, 1, 5, wind, slide 19 | animation = border, 1, 1, liner 20 | animation = borderangle, 1, 30, liner, loop 21 | animation = fade, 1, 10, default 22 | animation = workspaces, 1, 6, wind 23 | } 24 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/swayosd/style.css: -------------------------------------------------------------------------------- 1 | window#osd { 2 | padding: 12px 20px; 3 | border-radius: 12px; 4 | border: none; 5 | background: alpha(@theme_bg_color, 1); 6 | } 7 | 8 | window#osd #container { 9 | margin: 16px; 10 | } 11 | 12 | window#osd image, 13 | window#osd label { 14 | color: @theme_fg_color; 15 | } 16 | 17 | window#osd progressbar:disabled, 18 | window#osd image:disabled { 19 | opacity: 0.5; 20 | } 21 | 22 | window#osd progressbar { 23 | transition: all ease-in-out 0.5s; 24 | min-height: 6px; 25 | border-radius: 999px; 26 | background: transparent; 27 | border: none; 28 | } 29 | 30 | window#osd trough { 31 | min-height: inherit; 32 | border-radius: inherit; 33 | border: none; 34 | background: alpha(@theme_fg_color, 0.5); 35 | } 36 | 37 | window#osd progress { 38 | min-height: inherit; 39 | border-radius: inherit; 40 | border: none; 41 | background: @theme_fg_color; 42 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/decoration/variants/rounding-all-blur-v47.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # General window decoration 3 | # name: "Rounding All Blur" 4 | # ----------------------------------------------------- 5 | 6 | decoration { 7 | rounding = 8 8 | 9 | blur { 10 | enabled = true 11 | size = 8 12 | passes = 3 13 | new_optimizations = on 14 | ignore_opacity = true 15 | xray = false 16 | # blurls = swayosd 17 | # blurls = waybar 18 | blurls = vesktop 19 | blurls = Code 20 | } 21 | 22 | shadow { 23 | range = 30 24 | render_power = 3 25 | color = 0x66000000 26 | } 27 | 28 | active_opacity = 1 29 | inactive_opacity = 0.8 30 | fullscreen_opacity = 1 31 | 32 | # drop_shadow = true 33 | # shadow_range = 30 34 | # shadow_render_power = 3 35 | # col.shadow = 0x66000000 36 | } 37 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/rain-light.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/scripts/env.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # utils shell : 4 | export WATCHER="$HOME/.config/scripts/utils/watcher/main.sh" 5 | 6 | # waybar env : 7 | export WAYBAR_DEV_MODE=false 8 | export WAYBAR_THEME="river" 9 | export WAYBAR_DIR="$HOME/.config/waybar/$WAYBAR_THEME" 10 | export WAYBAR_WATCH_DIR="$HOME/.config/waybar" 11 | export WAYBAR_LAUNCHER="waybar -c $WAYBAR_DIR/config.jsonc -s $WAYBAR_DIR/style.css" 12 | 13 | # wallpaper configs - swaybg, swww, mpvpaper : 14 | export WALLPAPER_DAEMON="swaybg" 15 | export WALLPAPERS_DIR="$HOME/Wallpapers" 16 | export LIVE_WALLPAPERS_DIR="$HOME/Wallpapers/Live" 17 | export SWWW_FPS=144 18 | export SWWW_DURATION=2 19 | 20 | # swayosd configs : 21 | export SWAYOSD_DAEMON="swayosd-server" 22 | export SWAYOSD_DIR="$HOME/.config/swayosd" 23 | 24 | # rofi launcher : 25 | export LAUNCHER_TYPE="2" 26 | export CLIPBOARD_TYPE="1" 27 | export WALLPAPER_TYPE="1" 28 | export POWERMENU_TYPE="2" 29 | export ROFI_DIR="$HOME/.config/rofi" 30 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/windows/_osd.yuck: -------------------------------------------------------------------------------- 1 | (defwidget VolumeOsd [] 2 | (revealer :transition "slideup" :reveal revealOsd :duration "500ms" 3 | (box :orientation "h" :class "volume-osd" :space-evenly false 4 | (VolumeScale)))) 5 | 6 | (defwidget VolumeScale [] 7 | (overlay :hexpand true :class "volume-scale" 8 | (scale :min 0 :max 100 :active {volume != "muted"} :value {volume == "muted" ? 0 : volume} :onchange "pamixer --set-volume {}") 9 | (label :class 'volume-icon ${volume == "muted" ? "less" : volume < 5 ? "less" : "more"}' :halign "start" :text {volume == "muted" ? "󰸈" : volume < 33 ? "" : volume < 67 ? "" : ""}))) 10 | 11 | (defwidget VolumeControlCenter [] 12 | (box :orientation "h" :class "volume-control-center" :space-evenly false 13 | (volume_scale) 14 | (button :class "volume-mute ${volume == 'muted' ? 'active' : ''}" :onclick "pamixer -t" "󰝟") 15 | (button :class "volume-arrow" :onclick "scripts/toggle_control_center.sh close && pavucontrol &" "󰅂"))) -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/startup.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Startup 3 | # ----------------------------------------------------- 4 | 5 | # exec-once = [workspace 3 silent] $terminal -e btop 6 | # exec-once = [workspace 3 silent] nekoray 7 | # exec-once = [workspace 3 silent] $terminal -e htop 8 | 9 | # exec-once = [workspace special:$networks_workspace silent] $zterminal 10 | exec-once = [workspace special:$networks_workspace silent] $terminal 11 | exec-once = [workspace special:$networks_workspace silent] $terminal -e bandwhich 12 | 13 | # exec-once = [workspace special:$magic_workspace silent] $terminal -e tty-clock -c 14 | exec-once = [workspace special:$magic_workspace silent] $zterminal 15 | # exec-once = [workspace special:$magic_workspace silent] $terminal 16 | 17 | exec-once = [workspace special:$multimedia_workspace silent] $terminal 18 | 19 | # exec-once = [workspace 3 silent] $terminal -e bandwhich 20 | # exec-once = [workspace 3 silent] $terminal -e tty-clock -c 21 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/animation/variants/animations-fast.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # Animations 3 | # name "Fast" 4 | # ----------------------------------------------------- 5 | 6 | animations { 7 | enabled = true 8 | bezier = linear, 0, 0, 1, 1 9 | bezier = md3_standard, 0.2, 0, 0, 1 10 | bezier = md3_decel, 0.05, 0.7, 0.1, 1 11 | bezier = md3_accel, 0.3, 0, 0.8, 0.15 12 | bezier = overshot, 0.05, 0.9, 0.1, 1.1 13 | bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 14 | bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 15 | bezier = fluent_decel, 0.1, 1, 0, 1 16 | bezier = easeInOutCirc, 0.85, 0, 0.15, 1 17 | bezier = easeOutCirc, 0, 0.55, 0.45, 1 18 | bezier = easeOutExpo, 0.16, 1, 0.3, 1 19 | animation = windows, 1, 3, md3_decel, popin 60% 20 | animation = border, 1, 10, default 21 | animation = fade, 1, 2.5, md3_decel 22 | animation = workspaces, 1, 3.5, easeOutExpo, slide 23 | animation = specialWorkspace, 1, 3, md3_decel, slidevert 24 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/waybar/waybar_cava.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## 3 | 4 | # Not my own work. This was added through Github PR. Credit to original author 5 | 6 | #----- Optimized bars animation without much CPU usage increase -------- 7 | bar="▁▂▃▄▅▆▇█" 8 | dict="s/;//g" 9 | 10 | # Calculate the length of the bar outside the loop 11 | bar_length=${#bar} 12 | 13 | # Create dictionary to replace char with bar 14 | for ((i = 0; i < bar_length; i++)); do 15 | dict+=";s/$i/${bar:$i:1}/g" 16 | done 17 | 18 | # Create cava config 19 | config_file="/tmp/bar_cava_config" 20 | cat >"$config_file" < -d -p " 5 | exit 1 6 | } 7 | 8 | while getopts ":a:d:p:" opt; do 9 | case $opt in 10 | p) process_name="$OPTARG" ;; 11 | a) app_name="$OPTARG" ;; 12 | d) watch_dir="$OPTARG" ;; 13 | *) usage ;; 14 | esac 15 | done 16 | 17 | if [[ -z $app_name || -z $watch_dir || -z $process_name ]]; then 18 | usage 19 | fi 20 | 21 | if [[ ! -d $watch_dir ]]; then 22 | echo "Error: Directory $watch_dir does not exist!" 23 | exit 1 24 | fi 25 | 26 | start_application() { 27 | echo "Starting $process_name..." 28 | pkill $process_name 29 | exec $app_name 30 | } 31 | 32 | restart_application() { 33 | if pgrep -x "$process_name" >/dev/null; then 34 | echo "Restarting $process_name..." 35 | pkill $process_name 36 | $app_name & 37 | else 38 | echo "$app_name is not currently running." 39 | fi 40 | } 41 | 42 | start_application & 43 | 44 | inotifywait -q -m -r -e modify,delete,create "$watch_dir" | while read DIRECTORY EVENT FILE; do 45 | restart_application 46 | done 47 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/pipewire/pipewire.conf.d/99-input-denoising.conf: -------------------------------------------------------------------------------- 1 | context.modules = [ 2 | { 3 | name = libpipewire-module-filter-chain 4 | flags = [ ifexists nofail ] 5 | args = { 6 | node.description = "Noise Canceling source" 7 | media.name = "Noise Canceling source" 8 | filter.graph = { 9 | nodes = [ 10 | { 11 | type = ladspa 12 | name = rnnoise 13 | plugin = /home/hesam/Pipewire/linux-rnnoise/ladspa/librnnoise_ladspa.so 14 | label = noise_suppressor_mono 15 | control = { 16 | "VAD Threshold (%)" = 50.0 17 | "VAD Grace Period (ms)" = 200 18 | "Retroactive VAD Grace (ms)" = 0 19 | } 20 | } 21 | ] 22 | } 23 | capture.props = { 24 | node.name = "capture.rnnoise_source" 25 | node.passive = true 26 | audio.rate = 48000 27 | } 28 | playback.props = { 29 | node.name = "rnnoise_source" 30 | media.class = Audio/Source 31 | audio.rate = 48000 32 | } 33 | } 34 | } 35 | ] 36 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/snow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/windows/_vertical-bar.scss: -------------------------------------------------------------------------------- 1 | .vbar { 2 | min-width: 2.6em; 3 | background-color: $base; 4 | padding: get-token(padding, small); 5 | 6 | .control-box { 7 | @extend .widget; 8 | 9 | padding: 10px 6px; 10 | } 11 | } 12 | 13 | .charging trough highlight { 14 | background-color: $green; 15 | } 16 | 17 | .dying trough highlight { 18 | background-color: $red; 19 | } 20 | 21 | .seektime { 22 | trough { 23 | min-height: 10px; 24 | min-width: 180px; 25 | 26 | slider { 27 | background-color: $white2; 28 | border-radius: 25px; 29 | min-height: 20px; 30 | min-width: 20px; 31 | margin: -10px; 32 | } 33 | 34 | highlight { 35 | background-color: $red; 36 | } 37 | } 38 | } 39 | 40 | .sidempdctl { 41 | margin: 5px; 42 | label { 43 | font-size: 30px; 44 | padding-right: 5px; 45 | min-height: 1em; 46 | min-width: 1em; 47 | } 48 | } 49 | 50 | .mpdvolumeseek { 51 | @extend .seektime; 52 | trough { 53 | min-height: 100px; 54 | min-width: 10px; 55 | highlight { 56 | background-color: $white0; 57 | } 58 | } 59 | } 60 | 61 | .touch label { 62 | font-size: 20px; 63 | } 64 | 65 | .mtitle { 66 | color: $white0; 67 | font-size: 20px; 68 | margin-top: 30px; 69 | } 70 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/notification/manage: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | DBUS_CMD="dbus-send --session --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications" 4 | 5 | dismiss() { 6 | $DBUS_CMD org.freedesktop.Notifications.DismissPopup uint32:$1 7 | } 8 | 9 | close() { 10 | $DBUS_CMD org.freedesktop.Notifications.CloseNotification uint32:$1 11 | } 12 | 13 | action() { 14 | $DBUS_CMD org.freedesktop.Notifications.InvokeAction uint32:$1 string:$2 15 | } 16 | 17 | get_current() { 18 | $DBUS_CMD org.freedesktop.Notifications.GetCurrent 19 | } 20 | 21 | clear_all() { 22 | $DBUS_CMD org.freedesktop.Notifications.ClearAll 23 | } 24 | 25 | listen() { 26 | $DBUS_CMD org.freedesktop.Notifications.Listen 27 | } 28 | 29 | toggle_dnd() { 30 | $DBUS_CMD org.freedesktop.Notifications.ToggleDND 31 | } 32 | 33 | case "$1" in 34 | --dismiss) 35 | dismiss "$2" 36 | ;; 37 | --close) 38 | close "$2" 39 | ;; 40 | --action) 41 | action "$2" "$3" 42 | ;; 43 | --current) 44 | get_current 45 | ;; 46 | --clear) 47 | clear_all 48 | ;; 49 | --listen) 50 | listen 51 | ;; 52 | --toggle) 53 | toggle_dnd 54 | ;; 55 | *) 56 | echo "Usage: $0 {--dismiss|--close|--action|--clear|--listen|--toggle} [args]" 57 | exit 1 58 | ;; 59 | esac 60 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/idk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/idk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-modules/_workspaces.yuck: -------------------------------------------------------------------------------- 1 | (defwidget Workspaces [] 2 | (eventbox 3 | :cursor "pointer" 4 | :onscroll "./scripts/workspace/set-active {} ${currentWorkspace}" 5 | :onhover "${EWW_CMD} update showNoOfWindows=true" 6 | :onhoverlost "${EWW_CMD} update showNoOfWindows=false" 7 | 8 | (box 9 | :class "workspaces" 10 | :space-evenly false 11 | :orientation "v" 12 | :spacing spacing-default 13 | :vexpand true 14 | 15 | (for workspace in {workspacesJson} 16 | (button 17 | :onclick "hyprctl dispatch workspace ${workspace.id}" 18 | 19 | (box 20 | :class `workspace ${workspace.id == currentWorkspace ? "active" : ""}`)))))) 21 | 22 | (defwidget DotsWorkspaces [] 23 | (eventbox 24 | :cursor "pointer" 25 | :onscroll "./scripts/workspace/set-active {} ${currentWorkspace}" 26 | 27 | (box 28 | :class "dots-workspaces" 29 | :space-evenly false 30 | :orientation "v" 31 | :spacing spacing-small 32 | 33 | (for workspace in {workspacesJson} 34 | (button 35 | :onclick "hyprctl dispatch workspace ${workspace.id}" 36 | :class "workspace ${workspace.id == currentWorkspace ? "active" : ""} ${workspace.windows > 0 ? "occupied" : "empty"}" 37 | 38 | (label :class "icon" :text {workspace.windows > 0 ? "${workspace.id == currentWorkspace ? "" : ""}" : ""}) 39 | ) 40 | )))) 41 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/hypridle.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # 3 | # ██╗ ██╗██╗ ██╗██████╗ ██████╗ ██╗██████╗ ██╗ ███████╗ 4 | # ██║ ██║╚██╗ ██╔╝██╔══██╗██╔══██╗██║██╔══██╗██║ ██╔════╝ 5 | # ███████║ ╚████╔╝ ██████╔╝██████╔╝██║██║ ██║██║ █████╗ 6 | # ██╔══██║ ╚██╔╝ ██╔═══╝ ██╔══██╗██║██║ ██║██║ ██╔══╝ 7 | # ██║ ██║ ██║ ██║ ██║ ██║██║██████╔╝███████╗███████╗ 8 | # ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝╚═════╝ ╚══════╝╚══════╝ 9 | # 10 | # ----------------------------------------------------- 11 | 12 | general { 13 | lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. 14 | before_sleep_cmd = loginctl lock-session # lock before suspend. 15 | after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. 16 | } 17 | 18 | listener { 19 | timeout = 300 # 5min 20 | on-timeout = loginctl lock-session # lock screen when timeout has passed 21 | } 22 | 23 | # listener { 24 | # timeout = 900 # 15min 25 | # on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed 26 | # on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired. 27 | # } 28 | 29 | # listener { 30 | # timeout = 2400 # 40min 31 | # on-timeout = loginctl suspend # suspend pc 32 | # } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/startup/dunst.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dunst_dir="$HOME/.config/dunst" 4 | inotify_events="-e close_write,move,create" 5 | send_notification=false 6 | 7 | case $1 in 8 | d) send_notification=true ;; 9 | h) 10 | echo "d : dev mode show notif after reset" 11 | exit 0 12 | ;; 13 | *) ;; 14 | esac 15 | 16 | if [[ ! -d "$dunst_dir" ]]; then 17 | echo "Error: Configuration directory or files missing!" 18 | exit 1 19 | fi 20 | 21 | pkill dunst 22 | sleep 1 23 | 24 | while true; do 25 | logger -i "$0: Starting dunst in the background..." 26 | dunst & 27 | dunst_pid=$! 28 | 29 | if $send_notification; then 30 | notify-send "Dunst Restarted" "Dunst has been restarted." 31 | fi 32 | 33 | logger -i "$0: Started dunst PID=$dunst_pid. Waiting for modifications in $dunst_dir..." 34 | inotifywait $inotify_events "$dunst_dir" 2>&1 | logger -i 35 | 36 | if [[ $? -ne 0 ]]; then 37 | echo "Error: inotifywait failed!" 38 | exit 1 39 | fi 40 | 41 | logger -i "$0: Configuration files in $dunst_dir modified. Killing dunst process..." 42 | pkill dunst 2>&1 | logger -i 43 | 44 | if [[ $? -ne 0 ]]; then 45 | echo "Error: Killing dunst failed!" 46 | exit 1 47 | fi 48 | 49 | wait $dunst_pid 50 | if [[ $? -ne 0 ]]; then 51 | echo "Warning: dunst process exited unexpectedly!" 52 | fi 53 | 54 | logger -i "$0: killall dunst returned $?. Waiting for the next modifications..." 55 | done 56 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/image/weather/fog.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/settings.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # General window layout and colors 3 | # name: "Default" 4 | # ----------------------------------------------------- 5 | 6 | general { 7 | layout = dwindle 8 | 9 | gaps_in = 4 10 | gaps_out = 6 11 | border_size = 2 12 | 13 | col.active_border = rgba(0DB7D4FF) 14 | col.inactive_border = rgba(31313699) 15 | 16 | allow_tearing = true 17 | resize_on_border = true 18 | no_focus_fallback = false 19 | } 20 | 21 | # gestures { 22 | # workspace_swipe = true 23 | # workspace_swipe_fingers = 3 24 | # workspace_swipe_distance = 500 25 | # workspace_swipe_invert = true 26 | # workspace_swipe_min_speed_to_force = 30 27 | # workspace_swipe_cancel_ratio = 0.5 28 | # workspace_swipe_create_new = true 29 | # workspace_swipe_forever = true 30 | # } 31 | 32 | binds { 33 | workspace_back_and_forth = false 34 | allow_workspace_cycles = true 35 | pass_mouse_when_bound = false 36 | } 37 | 38 | misc { 39 | close_special_on_empty = false 40 | enable_swallow = false 41 | middle_click_paste = false 42 | focus_on_activate = false 43 | disable_hyprland_logo = true 44 | disable_splash_rendering = true 45 | animate_manual_resizes = true 46 | animate_mouse_windowdragging = false 47 | background_color = 0000 48 | 49 | vrr = false 50 | vfr = false 51 | enable_anr_dialog = false 52 | } 53 | 54 | render { 55 | direct_scanout = false 56 | } 57 | 58 | debug { 59 | overlay = false 60 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # 3 | # ██╗ ██╗██╗ ██╗██████╗ ██████╗ ██╗ █████╗ ███╗ ██╗██████╗ 4 | # ██║ ██║╚██╗ ██╔╝██╔══██╗██╔══██╗██║ ██╔══██╗████╗ ██║██╔══██╗ 5 | # ███████║ ╚████╔╝ ██████╔╝██████╔╝██║ ███████║██╔██╗ ██║██║ ██║ 6 | # ██╔══██║ ╚██╔╝ ██╔═══╝ ██╔══██╗██║ ██╔══██║██║╚██╗██║██║ ██║ 7 | # ██║ ██║ ██║ ██║ ██║ ██║███████╗██║ ██║██║ ╚████║██████╔╝ 8 | # ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ 9 | # 10 | # ----------------------------------------------------- 11 | 12 | # ----------------------------------------------------- 13 | # Main configuration files 14 | # ----------------------------------------------------- 15 | 16 | source = ~/.config/hypr/env.conf 17 | source = ~/.config/hypr/configs/arch-autostart.conf 18 | source = ~/.config/hypr/configs/startup.conf 19 | source = ~/.config/hypr/configs/monitor/export.conf 20 | # source = ~/.config/hypr/configs/animation/export.conf 21 | source = ~/.config/hypr/configs/layout/export.conf 22 | source = ~/.config/hypr/configs/input.conf 23 | source = ~/.config/hypr/configs/mouse.conf 24 | 25 | # ----------------------------------------------------- 26 | # Load configuration files 27 | # ----------------------------------------------------- 28 | 29 | source = ~/.config/hypr/configs/settings.conf 30 | source = ~/.config/hypr/configs/decoration/export.conf 31 | source = ~/.config/hypr/configs/keybinds.conf 32 | source = ~/.config/hypr/configs/rules.conf 33 | source = ~/.config/hypr/configs/plugins.conf 34 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/_tokens.scss: -------------------------------------------------------------------------------- 1 | $rounded: 0.8rem; 2 | 3 | $widget-padding: 0.75rem 0.65rem; 4 | $widget-margin: 0.2rem; 5 | 6 | $panel-widget-margin: 0.4rem; 7 | 8 | $icon-size: 1.25rem; 9 | 10 | $text-base: 1.2rem; 11 | $text-lg: 1.4rem; 12 | $text-xl: 1.8rem; 13 | $text-2xl: 2.6rem; 14 | 15 | $m-base: 0.4rem; 16 | $m-lg: 1.5rem; 17 | $m-xl: 2rem; 18 | $m-2xl: 3rem; 19 | 20 | $p-base: 1rem; 21 | $p-lg: 1.5rem; 22 | $p-xl: 2rem; 23 | $p-2xl: 3rem; 24 | 25 | $design-tokens: ( 26 | font-sizes: ( 27 | small: 16px, 28 | default: 18px, 29 | large: 20px, 30 | extra: 30px, 31 | ), 32 | padding: ( 33 | small: 4px, 34 | default: 10px 8px, 35 | large: 10px, 36 | extra: 12px, 37 | ), 38 | margin: ( 39 | small: 4px, 40 | default: 6px, 41 | large: 8px, 42 | extra: 16px, 43 | ), 44 | border-radius: ( 45 | small: 4px, 46 | default: 6px, 47 | large: 8px, 48 | extra: 16px, 49 | ), 50 | ); 51 | 52 | @function get-token($category, $key: null) { 53 | $tokens: map-get($design-tokens, $category); 54 | 55 | @if $tokens ==null { 56 | @error "Category `#{$category}` not found in design tokens."; 57 | } 58 | 59 | @if $key ==null { 60 | @if map-has-key($tokens, default) { 61 | $key: default; 62 | } @else { 63 | @error "Default key not found in category `#{$category}`."; 64 | } 65 | } 66 | 67 | $value: map-get($tokens, $key); 68 | 69 | @if $value ==null { 70 | @error "Token `#{$key}` not found in category `#{$category}`."; 71 | } 72 | 73 | @return $value; 74 | } 75 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/dock/main.yuck: -------------------------------------------------------------------------------- 1 | (defwindow dock 2 | :geometry (geometry 3 | :x 0 4 | :y 0 5 | :width 10 6 | :height 54 7 | :anchor "bottom center") 8 | :monitor 0 9 | (dockstruct)) 10 | 11 | (defwidget dockstruct [] 12 | (eventbox 13 | :onhover "${EWW_CMD} update revealDock=true" 14 | :onhoverlost "${EWW_CMD} update revealDock=false" 15 | (box 16 | :orientation "v" 17 | :space-evenly false 18 | :valign "end" 19 | (box 20 | :height 4) 21 | (revealer 22 | :reveal revealDock 23 | :transition "slideup" 24 | (box 25 | :class "popup" 26 | :height 60 27 | :orientation "h" 28 | :halign "center" 29 | (tasklist :iconsize 50)))))) 30 | 31 | (defwidget tasklist [iconsize] 32 | (box 33 | :orientation "h" 34 | :space-evenly true 35 | :spacing 10 36 | (for task in {tasksjson} 37 | (button 38 | :tooltip { task.name } 39 | :onclick { task.pid != 'null' ? 'swaymsg "[pid=${task.pid}] focus"' : '(cd && gtk-launch ${task.app_id}) &'} 40 | (box 41 | :orientation "v" 42 | :space-evenly false 43 | (image 44 | :image-width iconsize 45 | :image-height iconsize 46 | :path {task.path}) 47 | 48 | (scroll 49 | :hscroll true 50 | :vscroll false 51 | (box 52 | :orientation "h" 53 | :halign "center" 54 | :space-evenly false 55 | :spacing 3 56 | (for focus in {task.focused} 57 | (box 58 | :class "dockindicate" 59 | :hexpand false 60 | :width { focus ? 10 : 5 } 61 | :height 3)))) 62 | ))))) 63 | 64 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/configs/plugins.conf: -------------------------------------------------------------------------------- 1 | # exec-once = hyprctl plugin load ~/.config/hypr/plugins/hyprexpo.so 2 | # exec-once = hyprctl plugin load ~/.config/hypr/plugins/hyprfocus.so 3 | 4 | # bind = SUPER, O, hyprexpo:expo, toggle 5 | 6 | plugin { 7 | # hyprexpo { 8 | # enabled = yes 9 | # columns = 3 10 | # gap_size = 12 11 | # bg_col = rgb(111111) 12 | # workspace_method = center current 13 | # enable_gesture = true 14 | # gesture_fingers = 2 15 | # gesture_distance = 300 16 | # gesture_positive = true 17 | # } 18 | 19 | # hyprfocus { 20 | # enabled = yes 21 | # animate_floating = yes 22 | # animate_workspacechange = no 23 | # focus_animation = shrink 24 | # # Beziers for focus animations 25 | # bezier = bezIn, 0.5,0.0,1.0,0.5 26 | # bezier = bezOut, 0.0,0.5,0.5,1.0 27 | # bezier = overshot, 0.05, 0.9, 0.1, 1.05 28 | # bezier = smoothOut, 0.36, 0, 0.66, -0.56 29 | # bezier = smoothIn, 0.25, 1, 0.5, 1 30 | # bezier = realsmooth, 0.28,0.29,.69,1.08 31 | # # Flash settings 32 | # flash { 33 | # flash_opacity = 0.95 34 | # in_bezier = realsmooth 35 | # in_speed = 0.5 36 | # out_bezier = realsmooth 37 | # out_speed = 3 38 | # } 39 | # # Shrink settings 40 | # shrink { 41 | # shrink_percentage = 0.95 42 | # in_bezier = realsmooth 43 | # in_speed = 1 44 | # out_bezier = realsmooth 45 | # out_speed = 2 46 | # } 47 | # } 48 | } 49 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/_native.scss: -------------------------------------------------------------------------------- 1 | tooltip { 2 | background-color: $surface0; 3 | color: $white0; 4 | border-radius: 5px; 5 | border-style: solid; 6 | border-width: 2px; 7 | border-color: $surface2; 8 | } 9 | 10 | entry { 11 | padding: 5px; 12 | margin: 5px; 13 | border-radius: 5px; 14 | border-style: solid; 15 | border-color: $surface2; 16 | background-color: $surface1; 17 | color: $white0; 18 | } 19 | 20 | scale { 21 | all: unset; 22 | } 23 | 24 | calendar { 25 | all: unset; 26 | background-color: $surface0; 27 | font-size: 20px; 28 | color: $white0; 29 | 30 | .header { 31 | color: $accent; 32 | font-weight: bold; 33 | } 34 | 35 | &:selected { 36 | color: $base; 37 | background-color: $accent; 38 | border-radius: 8px; 39 | } 40 | 41 | &:indeterminate { 42 | color: $surface2; 43 | } 44 | } 45 | 46 | checkbutton { 47 | border-radius: 24px; 48 | background-color: $surface1; 49 | padding: 4px; 50 | 51 | check { 52 | min-height: 15px; 53 | min-width: 15px; 54 | color: $white0; 55 | } 56 | 57 | &:checked { 58 | check { 59 | border-radius: 24px; 60 | background-color: $white0; 61 | } 62 | } 63 | } 64 | 65 | menu { 66 | background-color: $base; 67 | border-radius: get-token(border-radius); 68 | padding: get-token(padding); 69 | 70 | menuitem { 71 | padding: 2px 6px; 72 | border-radius: get-token(border-radius, small); 73 | 74 | &:hover { 75 | background-color: $accent; 76 | } 77 | } 78 | 79 | separator { 80 | background-color: $surface0; 81 | margin: 6px 2px; 82 | min-height: 1px; 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/_components.scss: -------------------------------------------------------------------------------- 1 | .reveal-on-hover { 2 | padding: 12px 0px; 3 | } 4 | 5 | .reveal-on-click { 6 | @extend .widget; 7 | 8 | label { 9 | color: $surface2; 10 | padding: 4px 0px; 11 | } 12 | } 13 | 14 | .separator { 15 | padding: 4px 8px; 16 | 17 | .dot { 18 | padding: 3px; 19 | 20 | border-radius: 100%; 21 | 22 | background-color: $white; 23 | } 24 | } 25 | 26 | .vertical-bar-slider { 27 | trough { 28 | background-color: $surface2; 29 | border-radius: get-token(border-radius); 30 | min-height: 80px; 31 | min-width: 10px; 32 | 33 | slider { 34 | background-color: $white2; 35 | border-radius: get-token(border-radius, large); 36 | margin: -10px; 37 | } 38 | 39 | highlight { 40 | background-color: $white0; 41 | border-radius: get-token(border-radius); 42 | } 43 | } 44 | 45 | .volume-icon { 46 | font-size: get-token(font-sizes, large); 47 | } 48 | } 49 | 50 | .big-bar-slider { 51 | trough { 52 | min-width: 60px; 53 | background-color: $surface1; 54 | margin: get-token(margin); 55 | border-radius: $rounded; 56 | 57 | highlight { 58 | background-color: $surface2; 59 | border-radius: $rounded; 60 | } 61 | } 62 | 63 | .icon { 64 | font-size: get-token(font-sizes, extra); 65 | margin-bottom: 16px; 66 | } 67 | } 68 | 69 | .system-status { 70 | margin: get-token(margin, large); 71 | 72 | .progress { 73 | color: $accent; 74 | background-color: $surface1; 75 | } 76 | 77 | .icon { 78 | border-radius: 100%; 79 | background-color: $surface0; 80 | 81 | label { 82 | font-family: "Symbols Nerd Font"; 83 | font-size: get-token(font-sizes, extra); 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/windows/_control-panel.scss: -------------------------------------------------------------------------------- 1 | .control-panel { 2 | background-color: $base; 3 | padding: get-token(padding, small); 4 | } 5 | 6 | .userinfo label { 7 | font-size: 18px; 8 | color: $white0; 9 | } 10 | 11 | .titlesel { 12 | font-size: 20px; 13 | margin: 5px; 14 | padding: 5px; 15 | color: $base; 16 | background-color: $accent; 17 | border-radius: 5px; 18 | } 19 | 20 | .title { 21 | font-size: 20px; 22 | margin: 5px; 23 | padding: 5px; 24 | color: $white0; 25 | background-color: $surface1; 26 | border-radius: 5px; 27 | } 28 | 29 | .tricontrol label { 30 | @extend .title; 31 | font-size: 22px; 32 | font-family: "Symbols Nerd font"; 33 | padding: 5px; 34 | } 35 | 36 | .unbarwidget { 37 | padding: 5px; 38 | border-radius: 5px; 39 | background-color: $surface0; 40 | margin: 5px; 41 | color: $white0; 42 | } 43 | 44 | .quoteauthor { 45 | color: $white0; 46 | font-size: 14px; 47 | margin: 5px; 48 | } 49 | 50 | .quote { 51 | // color: $light_blue; 52 | font-size: 18px; 53 | margin: 5px; 54 | } 55 | 56 | .revcal { 57 | font-size: 13px; 58 | } 59 | 60 | .wmctrlslide { 61 | trough { 62 | min-width: 160px; 63 | min-height: 10px; 64 | slider { 65 | background-color: $white2; 66 | min-height: 15px; 67 | min-width: 15px; 68 | margin: -10px; 69 | border-radius: 25px; 70 | } 71 | } 72 | } 73 | 74 | .fadeoutbox { 75 | background-image: linear-gradient(180deg, transparent, $surface0); 76 | border-radius: 5px; 77 | } 78 | 79 | // stupid window overview thing 80 | .overviewworkspace { 81 | background-color: $surface1; 82 | border-radius: 5px; 83 | } 84 | 85 | .overviewwindow { 86 | background-color: $base; 87 | border-radius: 5px; 88 | border-style: solid; 89 | border-color: $surface2; 90 | border-width: 2px; 91 | } 92 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/waybar/waybar_selector.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Define directories 4 | styles_dir="$HOME/.config/waybar/bars" 5 | waybar_config_dir="$HOME/.config/waybar" 6 | config_file="config.jsonc" 7 | style_file="style.css" 8 | waybar_refresh_script="$HOME/.scripts/waybar.sh" 9 | 10 | # Function to display menu options 11 | menu() { 12 | options=() 13 | while IFS= read -r version; do 14 | options+=("$version") 15 | done < <(find "$styles_dir" -mindepth 1 -maxdepth 1 -type d -exec basename {} \; | sort) 16 | 17 | printf '%s\n' "${options[@]}" 18 | } 19 | 20 | # Function to refresh Waybar 21 | refresh_waybar() { 22 | if pgrep -x "waybar"; then 23 | pkill -x waybar 24 | waybar & 25 | else 26 | waybar & 27 | fi 28 | } 29 | 30 | # Main function 31 | main() { 32 | selected_version=$(menu | rofi -dmenu -config ~/.config/rofi/waybar.rasi -p "Select a version:") 33 | 34 | if [[ -z "$selected_version" ]]; then 35 | echo "No version selected. Exiting." 36 | exit 1 37 | fi 38 | 39 | # Check if selected version exists 40 | if [[ ! -d "$styles_dir/$selected_version" ]]; then 41 | echo "Selected version doesn't exist. Exiting." 42 | exit 1 43 | fi 44 | 45 | # Create symlinks for config and style files 46 | ln -sf "$styles_dir/$selected_version/$config_file" "$waybar_config_dir/$config_file" 47 | ln -sf "$styles_dir/$selected_version/$style_file" "$waybar_config_dir/$style_file" 48 | 49 | echo "Configurations updated to $selected_version." 50 | 51 | # Check if symlinks are created successfully 52 | if [[ $? -eq 0 ]]; then 53 | echo "Configurations updated to $selected_version." 54 | else 55 | echo "Failed to update configurations." 56 | exit 1 57 | fi 58 | 59 | # Refresh Waybar 60 | refresh_waybar 61 | } 62 | 63 | main 64 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/hyprlock.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # 3 | # ██╗ ██╗██╗ ██╗██████╗ ██████╗ ██╗ ██████╗ ██████╗██╗ ██╗ 4 | # ██║ ██║╚██╗ ██╔╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝██║ ██╔╝ 5 | # ███████║ ╚████╔╝ ██████╔╝██████╔╝██║ ██║ ██║██║ █████╔╝ 6 | # ██╔══██║ ╚██╔╝ ██╔═══╝ ██╔══██╗██║ ██║ ██║██║ ██╔═██╗ 7 | # ██║ ██║ ██║ ██║ ██║ ██║███████╗╚██████╔╝╚██████╗██║ ██╗ 8 | # ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝ 9 | # 10 | # ----------------------------------------------------- 11 | 12 | background { 13 | monitor = 14 | path = screenshot 15 | color = rgba(25, 20, 20, 1.0) 16 | blur_passes = 2 17 | blur_size = 7 18 | noise = 0 19 | contrast = 0.5 20 | brightness = 0.5 21 | vibrancy = 0.1696 22 | vibrancy_darkness = 0.0 23 | } 24 | 25 | input-field { 26 | monitor = 27 | size = 260, 60 28 | outline_thickness = 0 29 | dots_size = 0.2 30 | dots_spacing = 0.15 31 | dots_center = true 32 | dots_rounding = -2 33 | 34 | outer_color = rgba(0, 0, 0, 0) 35 | inner_color = rgba(11, 5, 0, 0.2) 36 | font_color = rgb(255, 255, 255) 37 | 38 | placeholder_text = Input Password... 39 | fail_text = $FAIL ($ATTEMPTS) 40 | 41 | fade_on_empty = false 42 | fade_timeout = 1000 43 | hide_input = false 44 | rounding = -1 45 | fail_transition = 300 46 | capslock_color = -1 47 | numlock_color = -1 48 | bothlock_color = -1 49 | invert_numlock = false 50 | swap_font_color = false 51 | 52 | halign = center 53 | valign = center 54 | } 55 | 56 | label { 57 | monitor = 58 | text = cmd[update:1000] echo " $(date +"%H:%M:%S") " # 24H 59 | font_size = 96 60 | position = 0, 100 61 | halign = center 62 | valign = center 63 | } -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/wallhaven.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python3 2 | 3 | import requests 4 | import json 5 | import sys 6 | import os 7 | import subprocess 8 | import shutil 9 | 10 | imgdir = "/tmp/wallpapers" 11 | eww_bin= [subprocess.getoutput("which eww"), "-c", f"{os.getcwd()}"] 12 | 13 | try: 14 | if sys.argv[1] == "search": 15 | if os.path.exists(imgdir): 16 | shutil.rmtree(imgdir) 17 | os.mkdir(imgdir) 18 | else: 19 | os.mkdir(imgdir) 20 | 21 | data = json.loads(requests.get(f"https://wallhaven.cc/api/v1/search?q={'+'.join(sys.argv[2:])}&ratios=landscape").text) 22 | 23 | smaller = [] 24 | count = 0 25 | for d in data["data"]: 26 | 27 | if count == 15: 28 | break 29 | count += 1 30 | 31 | img_data = requests.get(d["thumbs"]["small"]).content 32 | with open(imgdir+"/"+d["id"]+".png", "wb") as f: 33 | f.write(img_data) 34 | 35 | smaller.append({"path": imgdir+"/"+d["id"]+".png", "fav": d["favorites"], "views": d["views"], "url": d["path"]}) 36 | 37 | subprocess.run(eww_bin+["update", f"wallpapers={json.dumps(smaller)}"]) 38 | 39 | # print(json.dumps(smaller)) 40 | elif sys.argv[1] == "select": 41 | url = sys.argv[2] 42 | 43 | if not url: 44 | raise Exception("No url provided") 45 | img_data = requests.get(url).content 46 | with open(imgdir+"/selected.png", "wb") as f: 47 | f.write(img_data) 48 | 49 | subprocess.run(["swaymsg", "output", "*", "bg", imgdir+"/selected.png", "fill"]) 50 | 51 | elif sys.argv[1] == "reset": 52 | subprocess.run(["swaymsg", "output", "*", "bg", os.path.expandvars("$HOME/.config/sway/wallpaper/tile.png"), "tile"]) 53 | 54 | except Exception as e: 55 | print(e) 56 | print("{}") 57 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/-components/_helpers.yuck: -------------------------------------------------------------------------------- 1 | (defwidget HoveredSign [var] 2 | (box :space-evenly false 3 | (revealer :reveal {!var} 4 | :duration "100ms" 5 | :transition "slideleft" 6 | (children :nth 0)) 7 | (revealer :reveal {var} 8 | :duration "100ms" 9 | :transition "slideleft" 10 | (children :nth 1)))) 11 | 12 | (defwidget RevealOnHover [var varname ?icon ?class ?duration ?transition ?visible] 13 | (eventbox 14 | :onhover `${EWW_CMD} update ${varname}=true` 15 | :onhoverlost `${EWW_CMD} update ${varname}=false` 16 | :visible {visible} 17 | 18 | (box 19 | :space-evenly false 20 | :orientation "v" 21 | 22 | (box (label :class "icon" :text icon)) 23 | 24 | (revealer 25 | :reveal var 26 | :transition {transition ?:"slidedown"} 27 | :duration animation-duration-fast 28 | (box :class "reveal-on-hover" (children :nth 0)))) 29 | )) 30 | 31 | (defwidget RevealOnClick [var varname direction ?class ?duration ?transition] 32 | (box 33 | :orientation "v" 34 | :class "widget" 35 | :space-evenly false 36 | :class "reveal-on-click" 37 | 38 | (eventbox 39 | :cursor "pointer" 40 | :visible {direction == "up"} 41 | :onclick `${EWW_CMD} update ${varname}=${!var}` 42 | 43 | (label :angle {direction == "up" ? (var ? 270 : 90) : (var ? 90 : 270)} :tooltip "touch control" :text "")) 44 | 45 | (revealer 46 | :reveal var 47 | :transition {direction == "up" ? "slideup" : "slidedown"} 48 | :duration animation-duration-fast 49 | 50 | (box :style "padding: 6px 0px" (children :nth 0))) 51 | 52 | (eventbox 53 | :cursor "pointer" 54 | :visible {direction == "down"} 55 | :onclick `${EWW_CMD} update ${varname}=${!var}` 56 | 57 | (label :angle {direction == "up" ? (var ? 270 : 90) : (var ? 90 : 270)} :tooltip "touch control" :text "")) 58 | 59 | )) 60 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/wallpapers/main.yuck: -------------------------------------------------------------------------------- 1 | 2 | (defwindow wallpaperselect 3 | :geometry (geometry 4 | :x 0 5 | :y 0 6 | :width 415 7 | :height 600 8 | :anchor "center") 9 | :stacking "overlay" 10 | :monitor 0 11 | (box 12 | :class "popup" 13 | (wallpaperselectwidget))) 14 | 15 | (defwidget wallpaperselectwidget [] 16 | (eventbox 17 | 18 | (box 19 | :orientation "v" 20 | :class "unbarwidget" 21 | :space-evenly false 22 | 23 | (box 24 | :orientation "h" 25 | :space-evenly false 26 | (input 27 | :hexpand true 28 | :onaccept "./scripts/wallhaven.py search {}" 29 | :timeout "20000ms") 30 | (button 31 | :onclick "${EWW_CMD} update wallpapers=[] && ./scripts/wallhaven.py reset" 32 | ;; :style "padding: 0px 8px 0px 3px;" 33 | (label 34 | :class "icon" 35 | :text ""))) 36 | 37 | (scroll 38 | :hscroll false 39 | :vscroll true 40 | :vexpand true 41 | (box 42 | :orientation "v" 43 | :space-evenly false 44 | :valign "start" 45 | (image 46 | :style "margin: 50px 0px 5px 0px;" 47 | :hexpand false 48 | :vexpand false 49 | :path "./assets/image/fieshidle.gif" 50 | :visible {arraylength(wallpapers) == 0}) 51 | 52 | (label 53 | :visible {arraylength(wallpapers) == 0} 54 | :text "No wallpapers yet") 55 | 56 | (for wall in wallpapers 57 | (box 58 | :orientation "v" 59 | :space-evenly false 60 | :class "mainentry" 61 | :spacing 5 62 | (button 63 | :onclick "./scripts/wallhaven.py select ${wall.url}" 64 | (image :image-height 225 :image-width 400 :path {wall.path})) 65 | (box 66 | :orientation "h" 67 | :space-evenly true 68 | (label :text "${wall.views} 󰈈") 69 | (label :text "${wall.fav} 󰣐"))))))))) 70 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/env.conf: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------- 2 | # General Environments 3 | # ----------------------------------------------------- 4 | 5 | env = XDG_DATA_DIRS, $HOME/.nix-profile/share:/usr/share/:$HOME/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/var/lib/flatpak/exports/share 6 | 7 | $mouse_cursor = Bibata-Modern-Ice 8 | $mouse_cursor_size = 24 9 | 10 | env = HYPRCURSOR_THEME, $mouse_cursor 11 | env = XCURSOR_THEME, $mouse_cursor 12 | env = HYPRCURSOR_SIZE, $mouse_cursor_size 13 | env = XCURSOR_SIZE, $mouse_cursor_size 14 | exec-once = hyprctl setcursor $mouse_cursor $mouse_cursor_size 15 | exec-once = gsettings set org.gnome.desktop.interface cursor-theme $mouse_cursor 16 | 17 | env = ELECTRON_OZONE_PLATFORM_HINT, auto 18 | env = QT_QPA_PLATFORM, wayland;xcb 19 | env = QT_QPA_PLATFORMTHEME, qt6ct 20 | # env = QT_STYLE_OVERRIDE, kvantum 21 | exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" 22 | 23 | $main_mod = SUPER 24 | 25 | $script_dir = ~/.config/hypr/scripts 26 | $eww_script_dir = ~/.config/eww/scripts 27 | $eww_toggle_panel = $eww_script_dir/eww/toggle-panel.sh 28 | 29 | $alacritty_terminal = kitty 30 | $kitty_terminal = kitty 31 | $rio_terminal = rio 32 | 33 | $terminal = $alacritty_terminal 34 | $zterminal = $terminal -e tmux 35 | 36 | $fileManager = dolphin 37 | $bluetooth-manager = blueman-manager 38 | $pkg_manager = octoxbps 39 | $locker = hyprlock 40 | 41 | $screenshot = $script_dir/hyprshot.sh 42 | $pavucontrol = $script_dir/pavucontrol-launch.sh 43 | $nekoray = $script_dir/nekoray-launch.sh 44 | $network_manager = $script_dir/nmtui-launch.sh 45 | $random_wallpaper = $script_dir/wallpaper/wallpaper-daemon.sh 46 | $kill_wallpaper_daemon = $script_dir/wallpaper/kill-daemon.sh 47 | $waybar_toggle = $script_dir/waybar/toggle.sh 48 | $rofi_menu = $script_dir/rofi-launch.sh d 49 | $rofi_powermenu = $script_dir/rofi-launch.sh p 50 | $rofi_screenshot = $script_dir/rofi-launch.sh s 51 | $rofi_clipboard = $script_dir/rofi-launch.sh c 52 | $rofi_wallpaper = $script_dir/rofi-launch.sh w 53 | 54 | $magic_workspace = magic 55 | $networks_workspace = networks 56 | $multimedia_workspace = multimedia 57 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/dunst/dunstrc.nk: -------------------------------------------------------------------------------- 1 | [global] 2 | follow = keyboard 3 | width = (0, 1500) 4 | height = 950 5 | origin = top-right 6 | offset = 48x60 7 | scale = 0 8 | notification_limit = 10 9 | progress_bar = true 10 | progress_bar_height = 10 11 | progress_bar_frame_width = 1 12 | progress_bar_min_width = 150 13 | progress_bar_max_width = 300 14 | progress_bar_corner_radius = 0 15 | icon_corner_radius = 0 16 | indicate_hidden = yes 17 | transparency = 5 18 | separator_height = 2 19 | padding = 15 20 | horizontal_padding = 15 21 | text_icon_padding = 0 22 | frame_width = 3 23 | frame_color = "#aaaaaa" 24 | gap_size = 0 25 | separator_color = frame 26 | sort = yes 27 | idle_threshold = 120 28 | font = UbuntuMono Nerd Font Mono 17 29 | line_height = 10 30 | markup = full 31 | format = "%s\n%b\n" 32 | alignment = left 33 | vertical_alignment = top 34 | show_age_threshold = 60 35 | word_wrap = no 36 | ellipsize = end 37 | ignore_newline = no 38 | stack_duplicates = true 39 | hide_duplicate_count = false 40 | show_indicators = yes 41 | enable_recursive_icon_lookup = true 42 | icon_theme = "breeze-dark, Papirus-Dark" 43 | icon_position = left 44 | min_icon_size = 48 45 | max_icon_size = 128 46 | icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 47 | sticky_history = yes 48 | history_length = 50 49 | dmenu = /usr/bin/dmenu -i -fn Ubuntu-18 -l 30 -p dunst: 50 | browser = qutebrowser 51 | always_run_script = true 52 | title = Dunst 53 | class = Dunst 54 | corner_radius = 9 55 | ignore_dbusclose = false 56 | force_xwayland = false 57 | force_xinerama = false 58 | mouse_left_click = close_current 59 | mouse_middle_click = do_action, close_current 60 | mouse_right_click = close_all 61 | 62 | [experimental] 63 | per_monitor_dpi = false 64 | 65 | [urgency_low] 66 | background = "#E5E9F0" 67 | foreground = "#2E3440" 68 | frame_color = "#2E3440" 69 | timeout = 10 70 | 71 | [urgency_normal] 72 | background = "#2E3440" 73 | foreground = "#BF616A" 74 | frame_color = "#BF616A" 75 | highlight = "#BF616A" 76 | timeout = 10 77 | 78 | [urgency_critical] 79 | background = "#ffffff" 80 | foreground = "#900000" 81 | frame_color = "#900000" 82 | timeout = 0 -------------------------------------------------------------------------------- /hypr-configs/dotfiles/pipewire/pipewire.conf.d/100-deepfilter-stereo.conf: -------------------------------------------------------------------------------- 1 | # context.modules = [ 2 | # { 3 | # name = libpipewire-module-filter-chain 4 | # flags = [ ifexists nofail ] 5 | # args = { 6 | # node.description = "DeepFilter Noise Canceling Source" 7 | # media.name = "DeepFilter Noise Canceling Source" 8 | # filter.graph = { 9 | # nodes = [ 10 | # { 11 | # type = ladspa 12 | # name = "DeepFilter Mono" 13 | # plugin = ~/libdeep_filter_ladspa.so 14 | # label = deep_filter_mono 15 | # control = { 16 | # "Attenuation Limit (dB)" 100 17 | # } 18 | # } 19 | # ] 20 | # } 21 | # audio.rate = 48000 22 | # audio.position = [MONO] 23 | # capture.props = { 24 | # node.passive = true 25 | # } 26 | # playback.props = { 27 | # media.class = Audio/Source 28 | # } 29 | # } 30 | # }, 31 | # { 32 | # name = libpipewire-module-filter-chain 33 | # flags = [ ifexists nofail ] 34 | # args = { 35 | # node.description = "DeepFilter Noise Canceling Sink" 36 | # media.name = "DeepFilter Noise Canceling Sink" 37 | # filter.graph = { 38 | # nodes = [ 39 | # { 40 | # type = ladspa 41 | # name = "DeepFilter Stereo" 42 | # plugin = ~/libdeep_filter_ladspa.so 43 | # label = deep_filter_stereo 44 | # control = { 45 | # "Attenuation Limit (dB)" 100 46 | # } 47 | # } 48 | # ] 49 | # } 50 | # audio.rate = 48000 51 | # audio.channels = 2 52 | # audio.position = [FL FR] 53 | # capture.props = { 54 | # node.name = "deep_filter_stereo_input" 55 | # media.class = Audio/Sink 56 | # } 57 | # playback.props = { 58 | # node.name = "deep_filter_stereo_output" 59 | # node.passive = true 60 | # } 61 | # } 62 | # } 63 | # ] 64 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/windows/_vertical-bar.yuck: -------------------------------------------------------------------------------- 1 | (defwidget VerticalBar [] 2 | (box 3 | :orientation "h" 4 | :space-evenly false 5 | :class "vbar" 6 | 7 | (revealer 8 | :transition "slideright" 9 | :reveal revealControlpanel 10 | :duration animation-duration-fast 11 | 12 | (ControlPanel)) 13 | 14 | (centerbox 15 | :orientation "v" 16 | 17 | (BarTop) 18 | (BarMiddle) 19 | (BarBottom) 20 | ))) 21 | 22 | (defwidget BarTop [] 23 | (box 24 | :orientation "v" 25 | :space-evenly false 26 | 27 | (DotsWorkspaces) 28 | ; (Shortcuts) 29 | )) 30 | 31 | (defwidget BarMiddle [] 32 | (box 33 | :orientation "v" 34 | :space-evenly false 35 | :valign "center" 36 | :height 300 37 | 38 | (Clock) 39 | 40 | (Separator :orientation "h" :dots "[1, 2, 3]" :visible true) 41 | 42 | (BarMediaPlayer :cover true) 43 | )) 44 | 45 | (defwidget BarBottom [] 46 | (box 47 | :orientation "v" 48 | :space-evenly false 49 | :valign "end" 50 | 51 | (RevealOnClick 52 | :var revealSystray 53 | :varname "revealSystray" 54 | :direction "up" 55 | (Systemtray :orientation "v") 56 | ) 57 | (Sliders) 58 | (Language) 59 | )) 60 | 61 | (defwidget Sliders [] 62 | (box 63 | :class "control-box" 64 | :orientation "v" 65 | :space-evenly false 66 | :spacing spacing-default 67 | 68 | (RevealOnHover 69 | :var {revealWifiEssid} 70 | :varname "revealWifiEssid" 71 | :icon {wifi_icon} 72 | 73 | (label 74 | :angle 90 75 | :text wifi_essid) 76 | ) 77 | 78 | (RevealOnHover 79 | :var {revealVolume} 80 | :varname "revealVolume" 81 | :icon {volumemute == 'false' ? "󰕾" : "󰖁"} 82 | 83 | (VerticalBarSlider :var {volume} :onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%") 84 | ) 85 | 86 | (RevealOnHover 87 | :var {revealMicrophone} 88 | :varname "revealMicrophone" 89 | :icon {volumemute == 'false' ? "" : "󰖁"} 90 | 91 | (VerticalBarSlider :var {mic_volume} :onchange "pactl set-source-volume @DEFAULT_SOURCE@ {}%") 92 | ) 93 | 94 | (RevealOnHover 95 | :var {revealBrightness} 96 | :varname "revealBrightness" 97 | :icon "󰃞" 98 | 99 | (VerticalBarSlider :var {brightness} :onchange "brightnessctl set {}%")) 100 | )) 101 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/bin/appasroot.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Applets : Run Applications as Root 7 | 8 | # Import Current Theme 9 | source "$HOME"/.config/rofi/applets/shared/theme.bash 10 | theme="$type/$style" 11 | 12 | # Theme Elements 13 | prompt='Applications' 14 | mesg='Run Applications as Root' 15 | 16 | if [[ "$theme" == *'type-1'* ]]; then 17 | list_col='1' 18 | list_row='5' 19 | win_width='400px' 20 | elif [[ "$theme" == *'type-3'* ]]; then 21 | list_col='1' 22 | list_row='5' 23 | win_width='120px' 24 | elif [[ "$theme" == *'type-5'* ]]; then 25 | list_col='1' 26 | list_row='5' 27 | win_width='520px' 28 | elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then 29 | list_col='5' 30 | list_row='1' 31 | win_width='670px' 32 | fi 33 | 34 | # Options 35 | layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` 36 | if [[ "$layout" == 'NO' ]]; then 37 | option_1=" Alacritty" 38 | option_2=" Thunar" 39 | option_3=" Geany" 40 | option_4=" Ranger" 41 | option_5=" Vim" 42 | else 43 | option_1="" 44 | option_2="" 45 | option_3="" 46 | option_4="" 47 | option_5="" 48 | fi 49 | 50 | # Rofi CMD 51 | rofi_cmd() { 52 | rofi -theme-str "window {width: $win_width;}" \ 53 | -theme-str "listview {columns: $list_col; lines: $list_row;}" \ 54 | -theme-str 'textbox-prompt-colon {str: "";}' \ 55 | -dmenu \ 56 | -p "$prompt" \ 57 | -mesg "$mesg" \ 58 | -markup-rows \ 59 | -theme ${theme} 60 | } 61 | 62 | # Pass variables to rofi dmenu 63 | run_rofi() { 64 | echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd 65 | } 66 | 67 | # Execute Command 68 | run_cmd() { 69 | polkit_cmd="pkexec env PATH=$PATH DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY" 70 | if [[ "$1" == '--opt1' ]]; then 71 | ${polkit_cmd} alacritty 72 | elif [[ "$1" == '--opt2' ]]; then 73 | ${polkit_cmd} dbus-run-session thunar 74 | elif [[ "$1" == '--opt3' ]]; then 75 | ${polkit_cmd} geany 76 | elif [[ "$1" == '--opt4' ]]; then 77 | ${polkit_cmd} alacritty -e ranger 78 | elif [[ "$1" == '--opt5' ]]; then 79 | ${polkit_cmd} alacritty -e vim 80 | fi 81 | } 82 | 83 | # Actions 84 | chosen="$(run_rofi)" 85 | case ${chosen} in 86 | $option_1) 87 | run_cmd --opt1 88 | ;; 89 | $option_2) 90 | run_cmd --opt2 91 | ;; 92 | $option_3) 93 | run_cmd --opt3 94 | ;; 95 | $option_4) 96 | run_cmd --opt4 97 | ;; 98 | $option_5) 99 | run_cmd --opt5 100 | ;; 101 | esac 102 | 103 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/assets/scss/_modules.scss: -------------------------------------------------------------------------------- 1 | .clock { 2 | @extend .widget; 3 | 4 | label { 5 | font-size: get-token(font-sizes, large); 6 | font-weight: bold; 7 | } 8 | } 9 | 10 | .language { 11 | @extend .widget; 12 | 13 | label { 14 | font-size: get-token(font-sizes, small); 15 | font-weight: bold; 16 | } 17 | } 18 | 19 | .logo { 20 | @extend .widget; 21 | 22 | label { 23 | @extend .icon; 24 | 25 | color: $accent; 26 | } 27 | } 28 | 29 | .system-tray { 30 | @extend .widget; 31 | } 32 | 33 | .workspaces { 34 | @extend .widget; 35 | 36 | .workspace { 37 | min-height: 16px; 38 | background-color: $surface2; 39 | border-radius: get-token(border-radius); 40 | transition: all cubic-bezier(0.175, 0.885, 0.32, 1.275) 300ms; 41 | 42 | &.active { 43 | min-height: 42px; 44 | 45 | background-color: $accent; 46 | } 47 | } 48 | } 49 | 50 | .dots-workspaces { 51 | @extend .widget; 52 | 53 | .workspace { 54 | label { 55 | @extend .icon; 56 | } 57 | 58 | &.empty { 59 | color: transparentize($white, 0.8); 60 | } 61 | 62 | &.occupied { 63 | color: transparentize($white, 0.4); 64 | } 65 | 66 | &.active { 67 | color: $white; 68 | } 69 | } 70 | } 71 | 72 | .bar-media-player { 73 | @extend .widget; 74 | 75 | .player-controls { 76 | label { 77 | @extend .icon; 78 | 79 | font-size: get-token(font-sizes, large); 80 | } 81 | } 82 | } 83 | 84 | .media-player { 85 | @extend .panel-widget; 86 | 87 | padding: 8px; 88 | 89 | .player-cover { 90 | transition: 600ms ease; 91 | margin: get-token(margin); 92 | border-radius: get-token(border-radius); 93 | background-repeat: no-repeat; 94 | background-size: cover; 95 | background-position: center; 96 | opacity: 0.1; 97 | } 98 | 99 | .player-controls { 100 | label { 101 | font-size: 64px; 102 | padding: 16px 0px; 103 | } 104 | } 105 | 106 | .player-info { 107 | label { 108 | font-size: get-token(font-sizes, large); 109 | } 110 | } 111 | } 112 | 113 | .timer { 114 | @extend .panel-widget; 115 | 116 | font-size: $text-2xl; 117 | 118 | .timer-controls { 119 | button { 120 | padding: $p-base; 121 | margin: $m-base; 122 | border-radius: $rounded; 123 | 124 | background-color: $accent; 125 | 126 | &:hover { 127 | background-color: $surface2; 128 | } 129 | } 130 | 131 | label { 132 | @extend .icon; 133 | } 134 | } 135 | } 136 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/mimeapps.list: -------------------------------------------------------------------------------- 1 | [Added Associations] 2 | application/pdf=firefox.desktop;libreoffice-draw.desktop;org.gnome.Evince.desktop; 3 | application/x-extension-htm=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 4 | application/x-extension-html=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 5 | application/x-extension-shtml=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 6 | application/x-extension-xht=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 7 | application/x-extension-xhtml=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 8 | application/xhtml+xml=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 9 | image/png=org.gnome.eog.desktop; 10 | text/csv=libreoffice-calc.desktop; 11 | text/html=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 12 | text/plain=dev.zed.Zed.desktop; 13 | video/mp4=vlc.desktop; 14 | x-scheme-handler/chrome=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 15 | x-scheme-handler/http=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 16 | x-scheme-handler/https=userapp-Firefox-QKWUJ2.desktop;userapp-Firefox-Q5DTJ2.desktop; 17 | 18 | [Default Applications] 19 | application/pdf=firefox.desktop; 20 | application/x-extension-htm=userapp-Firefox-Q5DTJ2.desktop 21 | application/x-extension-html=userapp-Firefox-Q5DTJ2.desktop 22 | application/x-extension-shtml=userapp-Firefox-Q5DTJ2.desktop 23 | application/x-extension-xht=userapp-Firefox-Q5DTJ2.desktop 24 | application/x-extension-xhtml=userapp-Firefox-Q5DTJ2.desktop 25 | application/xhtml+xml=userapp-Firefox-Q5DTJ2.desktop 26 | image/png=org.gnome.eog.desktop 27 | inode/directory=nemo.desktop 28 | text/csv=libreoffice-calc.desktop; 29 | text/html=google-chrome.desktop 30 | text/plain=dev.zed.Zed.desktop; 31 | video/mp4=vlc.desktop 32 | x-scheme-handler/about=google-chrome.desktop 33 | x-scheme-handler/chrome=userapp-Firefox-Q5DTJ2.desktop 34 | x-scheme-handler/discord=vesktop.desktop 35 | x-scheme-handler/discord-424004941485572097=discord-424004941485572097.desktop 36 | x-scheme-handler/eclipse+command=_usr_lib_dbeaver_.desktop 37 | x-scheme-handler/fleet=jetbrains-fleet.desktop 38 | x-scheme-handler/franz=franz.desktop 39 | x-scheme-handler/http=google-chrome.desktop 40 | x-scheme-handler/https=google-chrome.desktop 41 | x-scheme-handler/hydralauncher=hydralauncher.desktop 42 | x-scheme-handler/jetbrains=jetbrains-toolbox.desktop 43 | x-scheme-handler/mailto=google-chrome.desktop 44 | x-scheme-handler/postman=Postman.desktop 45 | x-scheme-handler/responsively=ResponsivelyApp.desktop 46 | x-scheme-handler/unknown=google-chrome.desktop 47 | x-scheme-handler/vscode=code-url-handler.desktop 48 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/src/windows/_notifications.yuck: -------------------------------------------------------------------------------- 1 | (defwidget NotficationsCenter [] 2 | (revealer 3 | :reveal { arraylength(notifications.popups) > 0 } 4 | :transition "slidedown" 5 | (box 6 | :orientation "v" 7 | :space-evenly false 8 | :spacing spacing-default 9 | 10 | (for noti in {notifications.popups} 11 | (SingleNotification :noti noti :initial true))))) 12 | 13 | (defwidget SingleNotification [noti initial] 14 | (box 15 | :orientation "v" 16 | :class "${initial ? 'popup' : 'notifbox'}" 17 | :space-evenly false 18 | 19 | (centerbox 20 | :orientation "h" 21 | :class "notifbar" 22 | (image :halign "start" :image-width 30 :image-height 30 :path {noti.icon != "null" ? noti.icon : "./assets/image/idk.svg"}) 23 | (scroll 24 | :halign "center" 25 | :valign "center" 26 | :hexpand true 27 | :hscroll true 28 | :vscroll false 29 | :width 200 30 | (label 31 | :class "notiflabel" 32 | :text {noti.app})) 33 | (button 34 | :halign "end" 35 | :onclick "./scripts/notification/manage --close ${noti.id}" 36 | (label 37 | :class "notifclose" 38 | :text ""))) 39 | 40 | (box 41 | :orientation "h" 42 | :halign "fill" 43 | :height 80 44 | :space-evenly false 45 | :spacing 10 46 | (image :image-width 80 :image-height 80 :visible {noti.image != "null"} :path {noti.image != "null" ? noti.image : "./assets/image/idk.svg"}) 47 | 48 | (button 49 | :onclick "./scripts/notification/manage --dismiss ${noti.id}" 50 | :onrightclick "./scripts/notification/manage --close ${noti.id}" 51 | :tooltip "${noti.time}" 52 | :hexpand true 53 | :vexpand true 54 | (box 55 | :orientation "v" 56 | :space-evenly false 57 | :valign "center" 58 | (scroll 59 | :hscroll true 60 | :vscroll false 61 | :hexpand true 62 | (label 63 | :class "notiftitle" 64 | :text {noti.summary})) 65 | (scroll 66 | :hscroll true 67 | :vscroll false 68 | :hexpand true 69 | (label 70 | :class "notifbody" 71 | :visible {noti.body != "null"} 72 | :text {noti.body}))))) 73 | 74 | (box 75 | :orientation "h" 76 | (for action in {noti.actions} 77 | (button 78 | :onclick "./scripts/notification/manage --action ${noti.id} ${action[0]} && ./scripts/notification/manage --close ${noti.id}" 79 | (label 80 | :class "notifactions" 81 | :text {action[1]})) 82 | )))) 83 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/bin/quicklinks.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Applets : Quick Links 7 | 8 | # Import Current Theme 9 | source "$HOME"/.config/rofi/applets/shared/theme.bash 10 | theme="$type/$style" 11 | 12 | # Theme Elements 13 | prompt='Quick Links' 14 | mesg="Using '$BROWSER' as web browser" 15 | 16 | if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then 17 | list_col='1' 18 | list_row='6' 19 | elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then 20 | list_col='6' 21 | list_row='1' 22 | fi 23 | 24 | if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-5'* ) ]]; then 25 | efonts="JetBrains Mono Nerd Font 10" 26 | else 27 | efonts="JetBrains Mono Nerd Font 28" 28 | fi 29 | 30 | # Options 31 | layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` 32 | if [[ "$layout" == 'NO' ]]; then 33 | option_1=" Google" 34 | option_2=" Gmail" 35 | option_3=" Youtube" 36 | option_4=" Github" 37 | option_5=" Reddit" 38 | option_6=" Twitter" 39 | else 40 | option_1="" 41 | option_2="" 42 | option_3="" 43 | option_4="" 44 | option_5="" 45 | option_6="" 46 | fi 47 | 48 | # Rofi CMD 49 | rofi_cmd() { 50 | rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ 51 | -theme-str 'textbox-prompt-colon {str: "";}' \ 52 | -theme-str "element-text {font: \"$efonts\";}" \ 53 | -dmenu \ 54 | -p "$prompt" \ 55 | -mesg "$mesg" \ 56 | -markup-rows \ 57 | -theme ${theme} 58 | } 59 | 60 | # Pass variables to rofi dmenu 61 | run_rofi() { 62 | echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd 63 | } 64 | 65 | # Execute Command 66 | run_cmd() { 67 | if [[ "$1" == '--opt1' ]]; then 68 | xdg-open 'https://www.google.com/' 69 | elif [[ "$1" == '--opt2' ]]; then 70 | xdg-open 'https://mail.google.com/' 71 | elif [[ "$1" == '--opt3' ]]; then 72 | xdg-open 'https://www.youtube.com/' 73 | elif [[ "$1" == '--opt4' ]]; then 74 | xdg-open 'https://www.github.com/' 75 | elif [[ "$1" == '--opt5' ]]; then 76 | xdg-open 'https://www.reddit.com/' 77 | elif [[ "$1" == '--opt6' ]]; then 78 | xdg-open 'https://www.twitter.com/' 79 | fi 80 | } 81 | 82 | # Actions 83 | chosen="$(run_rofi)" 84 | case ${chosen} in 85 | $option_1) 86 | run_cmd --opt1 87 | ;; 88 | $option_2) 89 | run_cmd --opt2 90 | ;; 91 | $option_3) 92 | run_cmd --opt3 93 | ;; 94 | $option_4) 95 | run_cmd --opt4 96 | ;; 97 | $option_5) 98 | run_cmd --opt5 99 | ;; 100 | $option_6) 101 | run_cmd --opt6 102 | ;; 103 | esac 104 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/powermenu/type-1/powermenu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Rofi : Power Menu 7 | # 8 | ## Available Styles 9 | # 10 | ## style-1 style-2 style-3 style-4 style-5 11 | 12 | # Current Theme 13 | dir="$HOME/.config/rofi/powermenu/type-1" 14 | theme='style-1' 15 | 16 | # CMDs 17 | uptime="$(uptime -p | sed -e 's/up //g')" 18 | host=$(hostname) 19 | 20 | # Options 21 | shutdown=' Shutdown' 22 | reboot=' Reboot' 23 | lock=' Lock' 24 | suspend=' Suspend' 25 | logout=' Logout' 26 | yes=' Yes' 27 | no=' No' 28 | 29 | # Rofi CMD 30 | rofi_cmd() { 31 | rofi -dmenu \ 32 | -p "$host" \ 33 | -mesg "Uptime: $uptime" \ 34 | -theme ${dir}/${theme}.rasi 35 | } 36 | 37 | # Confirmation CMD 38 | confirm_cmd() { 39 | rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 250px;}' \ 40 | -theme-str 'mainbox {children: [ "message", "listview" ];}' \ 41 | -theme-str 'listview {columns: 2; lines: 1;}' \ 42 | -theme-str 'element-text {horizontal-align: 0.5;}' \ 43 | -theme-str 'textbox {horizontal-align: 0.5;}' \ 44 | -dmenu \ 45 | -p 'Confirmation' \ 46 | -mesg 'Are you Sure?' \ 47 | -theme ${dir}/${theme}.rasi 48 | } 49 | 50 | # Ask for confirmation 51 | confirm_exit() { 52 | echo -e "$yes\n$no" | confirm_cmd 53 | } 54 | 55 | # Pass variables to rofi dmenu 56 | run_rofi() { 57 | echo -e "$lock\n$suspend\n$logout\n$reboot\n$shutdown" | rofi_cmd 58 | } 59 | 60 | # Execute Command 61 | run_cmd() { 62 | selected="$(confirm_exit)" 63 | if [[ "$selected" == "$yes" ]]; then 64 | if [[ $1 == '--shutdown' ]]; then 65 | systemctl poweroff 66 | elif [[ $1 == '--reboot' ]]; then 67 | systemctl reboot 68 | elif [[ $1 == '--suspend' ]]; then 69 | mpc -q pause 70 | amixer set Master mute 71 | systemctl suspend 72 | elif [[ $1 == '--logout' ]]; then 73 | if [[ "$DESKTOP_SESSION" == 'openbox' ]]; then 74 | openbox --exit 75 | elif [[ "$DESKTOP_SESSION" == 'bspwm' ]]; then 76 | bspc quit 77 | elif [[ "$DESKTOP_SESSION" == 'i3' ]]; then 78 | i3-msg exit 79 | elif [[ "$DESKTOP_SESSION" == 'plasma' ]]; then 80 | qdbus org.kde.ksmserver /KSMServer logout 0 0 0 81 | fi 82 | fi 83 | else 84 | exit 0 85 | fi 86 | } 87 | 88 | # Actions 89 | chosen="$(run_rofi)" 90 | case ${chosen} in 91 | $shutdown) 92 | run_cmd --shutdown 93 | ;; 94 | $reboot) 95 | run_cmd --reboot 96 | ;; 97 | $lock) 98 | if [[ -x '/usr/bin/betterlockscreen' ]]; then 99 | betterlockscreen -l 100 | elif [[ -x '/usr/bin/i3lock' ]]; then 101 | i3lock 102 | fi 103 | ;; 104 | $suspend) 105 | run_cmd --suspend 106 | ;; 107 | $logout) 108 | run_cmd --logout 109 | ;; 110 | esac 111 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/bin/brightness.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Applets : Brightness 7 | 8 | # Import Current Theme 9 | source "$HOME"/.config/rofi/applets/shared/theme.bash 10 | theme="$type/$style" 11 | 12 | # Brightness Info 13 | backlight="$(printf "%.0f\n" `light -G`)" 14 | card="`light -L | grep 'backlight' | head -n1 | cut -d'/' -f3`" 15 | 16 | if [[ $backlight -ge 0 ]] && [[ $backlight -le 29 ]]; then 17 | level="Low" 18 | elif [[ $backlight -ge 30 ]] && [[ $backlight -le 49 ]]; then 19 | level="Optimal" 20 | elif [[ $backlight -ge 50 ]] && [[ $backlight -le 69 ]]; then 21 | level="High" 22 | elif [[ $backlight -ge 70 ]] && [[ $backlight -le 100 ]]; then 23 | level="Peak" 24 | fi 25 | 26 | # Theme Elements 27 | prompt="${backlight}%" 28 | mesg="Device: ${card}, Level: $level" 29 | 30 | if [[ "$theme" == *'type-1'* ]]; then 31 | list_col='1' 32 | list_row='4' 33 | win_width='400px' 34 | elif [[ "$theme" == *'type-3'* ]]; then 35 | list_col='1' 36 | list_row='4' 37 | win_width='120px' 38 | elif [[ "$theme" == *'type-5'* ]]; then 39 | list_col='1' 40 | list_row='4' 41 | win_width='425px' 42 | elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then 43 | list_col='4' 44 | list_row='1' 45 | win_width='550px' 46 | fi 47 | 48 | # Options 49 | layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` 50 | if [[ "$layout" == 'NO' ]]; then 51 | option_1=" Increase" 52 | option_2=" Optimal" 53 | option_3=" Decrease" 54 | option_4=" Settings" 55 | else 56 | option_1="" 57 | option_2="" 58 | option_3="" 59 | option_4="" 60 | fi 61 | 62 | # Rofi CMD 63 | rofi_cmd() { 64 | rofi -theme-str "window {width: $win_width;}" \ 65 | -theme-str "listview {columns: $list_col; lines: $list_row;}" \ 66 | -theme-str 'textbox-prompt-colon {str: "";}' \ 67 | -dmenu \ 68 | -p "$prompt" \ 69 | -mesg "$mesg" \ 70 | -markup-rows \ 71 | -theme ${theme} 72 | } 73 | 74 | # Pass variables to rofi dmenu 75 | run_rofi() { 76 | echo -e "$option_1\n$option_2\n$option_3\n$option_4" | rofi_cmd 77 | } 78 | 79 | # Execute Command 80 | run_cmd() { 81 | if [[ "$1" == '--opt1' ]]; then 82 | light -A 5 83 | elif [[ "$1" == '--opt2' ]]; then 84 | light -S 25 85 | elif [[ "$1" == '--opt3' ]]; then 86 | light -U 5 87 | elif [[ "$1" == '--opt4' ]]; then 88 | xfce4-power-manager-settings 89 | fi 90 | } 91 | 92 | # Actions 93 | chosen="$(run_rofi)" 94 | case ${chosen} in 95 | $option_1) 96 | run_cmd --opt1 97 | ;; 98 | $option_2) 99 | run_cmd --opt2 100 | ;; 101 | $option_3) 102 | run_cmd --opt3 103 | ;; 104 | $option_4) 105 | run_cmd --opt4 106 | ;; 107 | esac 108 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/powermenu/type-2/powermenu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Rofi : Power Menu 7 | # 8 | ## Available Styles 9 | # 10 | ## style-1 style-2 style-3 style-4 style-5 11 | ## style-6 style-7 style-8 style-9 style-10 12 | 13 | # Current Theme 14 | dir="$HOME/.config/rofi/powermenu/type-2" 15 | theme='style-1' 16 | 17 | # CMDs 18 | uptime="$(uptime -p | sed -e 's/up //g')" 19 | host=$(hostname) 20 | 21 | # Options 22 | shutdown='' 23 | reboot='' 24 | lock='' 25 | suspend='' 26 | logout='' 27 | yes='' 28 | no='' 29 | 30 | # Rofi CMD 31 | rofi_cmd() { 32 | rofi -dmenu \ 33 | -p "Uptime: $uptime" \ 34 | -mesg "Uptime: $uptime" \ 35 | -theme ${dir}/${theme}.rasi 36 | } 37 | 38 | # Confirmation CMD 39 | confirm_cmd() { 40 | rofi -theme-str 'window {location: center; anchor: center; fullscreen: true; width: 350px;}' \ 41 | -theme-str 'mainbox {children: [ "message", "listview" ];}' \ 42 | -theme-str 'listview {columns: 2; lines: 1;}' \ 43 | -theme-str 'element-text {horizontal-align: 0.5;}' \ 44 | -theme-str 'textbox {horizontal-align: 0.5;}' \ 45 | -dmenu \ 46 | -p 'Confirmation' \ 47 | -mesg 'Are you Sure?' \ 48 | -theme ${dir}/${theme}.rasi 49 | } 50 | 51 | # Ask for confirmation 52 | confirm_exit() { 53 | echo -e "$yes\n$no" | confirm_cmd 54 | } 55 | 56 | # Pass variables to rofi dmenu 57 | run_rofi() { 58 | echo -e "$lock\n$suspend\n$logout\n$reboot\n$shutdown" | rofi_cmd 59 | } 60 | 61 | # Execute Command 62 | run_cmd() { 63 | selected="$(confirm_exit)" 64 | if [[ "$selected" == "$yes" ]]; then 65 | if [[ $1 == '--shutdown' ]]; then 66 | systemctl poweroff 67 | elif [[ $1 == '--reboot' ]]; then 68 | systemctl reboot 69 | elif [[ $1 == '--suspend' ]]; then 70 | mpc -q pause 71 | amixer set Master mute 72 | systemctl suspend 73 | elif [[ $1 == '--logout' ]]; then 74 | if [[ "$DESKTOP_SESSION" == 'openbox' ]]; then 75 | openbox --exit 76 | elif [[ "$DESKTOP_SESSION" == 'bspwm' ]]; then 77 | bspc quit 78 | elif [[ "$DESKTOP_SESSION" == 'i3' ]]; then 79 | i3-msg exit 80 | elif [[ "$DESKTOP_SESSION" == 'plasma' ]]; then 81 | qdbus org.kde.ksmserver /KSMServer logout 0 0 0 82 | fi 83 | fi 84 | else 85 | exit 0 86 | fi 87 | } 88 | 89 | # Actions 90 | chosen="$(run_rofi)" 91 | case ${chosen} in 92 | $shutdown) 93 | run_cmd --shutdown 94 | ;; 95 | $reboot) 96 | run_cmd --reboot 97 | ;; 98 | $lock) 99 | if [[ -x '/usr/bin/betterlockscreen' ]]; then 100 | betterlockscreen -l 101 | elif [[ -x '/usr/bin/i3lock' ]]; then 102 | i3lock 103 | fi 104 | ;; 105 | $suspend) 106 | run_cmd --suspend 107 | ;; 108 | $logout) 109 | run_cmd --logout 110 | ;; 111 | esac 112 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/bin/apps.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Applets : Favorite Applications 7 | 8 | # Import Current Theme 9 | source "$HOME"/.config/rofi/applets/shared/theme.bash 10 | theme="$type/$style" 11 | 12 | # Theme Elements 13 | prompt='Applications' 14 | mesg="Installed Packages : `pacman -Q | wc -l` (pacman)" 15 | 16 | if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then 17 | list_col='1' 18 | list_row='6' 19 | elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then 20 | list_col='6' 21 | list_row='1' 22 | fi 23 | 24 | # CMDs (add your apps here) 25 | term_cmd='alacritty' 26 | file_cmd='thunar' 27 | text_cmd='geany' 28 | web_cmd='firefox' 29 | music_cmd='alacritty -e ncmpcpp' 30 | setting_cmd='xfce4-settings-manager' 31 | 32 | # Options 33 | layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` 34 | if [[ "$layout" == 'NO' ]]; then 35 | option_1=" Terminal ($term_cmd)" 36 | option_2=" Files ($file_cmd)" 37 | option_3=" Editor ($text_cmd)" 38 | option_4=" Browser ($web_cmd)" 39 | option_5=" Music ($music_cmd)" 40 | option_6=" Settings ($setting_cmd)" 41 | else 42 | option_1="" 43 | option_2="" 44 | option_3="" 45 | option_4="" 46 | option_5="" 47 | option_6="" 48 | fi 49 | 50 | # Rofi CMD 51 | rofi_cmd() { 52 | rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ 53 | -theme-str 'textbox-prompt-colon {str: "";}' \ 54 | -dmenu \ 55 | -p "$prompt" \ 56 | -mesg "$mesg" \ 57 | -markup-rows \ 58 | -theme ${theme} 59 | } 60 | 61 | # Pass variables to rofi dmenu 62 | run_rofi() { 63 | echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd 64 | } 65 | 66 | # Execute Command 67 | run_cmd() { 68 | if [[ "$1" == '--opt1' ]]; then 69 | ${term_cmd} 70 | elif [[ "$1" == '--opt2' ]]; then 71 | ${file_cmd} 72 | elif [[ "$1" == '--opt3' ]]; then 73 | ${text_cmd} 74 | elif [[ "$1" == '--opt4' ]]; then 75 | ${web_cmd} 76 | elif [[ "$1" == '--opt5' ]]; then 77 | ${music_cmd} 78 | elif [[ "$1" == '--opt6' ]]; then 79 | ${setting_cmd} 80 | fi 81 | } 82 | 83 | # Actions 84 | chosen="$(run_rofi)" 85 | case ${chosen} in 86 | $option_1) 87 | run_cmd --opt1 88 | ;; 89 | $option_2) 90 | run_cmd --opt2 91 | ;; 92 | $option_3) 93 | run_cmd --opt3 94 | ;; 95 | $option_4) 96 | run_cmd --opt4 97 | ;; 98 | $option_5) 99 | run_cmd --opt5 100 | ;; 101 | $option_6) 102 | run_cmd --opt6 103 | ;; 104 | esac 105 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/bin/screenshot.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Applets : Screenshot 7 | 8 | # Import Current Theme 9 | source "$HOME"/.config/rofi/applets/shared/theme.bash 10 | theme="$type/$style" 11 | hyprshot="$HOME/.config/hypr/scripts/hyprshot.sh" 12 | 13 | # Theme Elements 14 | prompt='Screenshot' 15 | mesg="DIR: ~/Screenshots" 16 | 17 | if [[ "$theme" == *'type-1'* ]]; then 18 | list_col='1' 19 | list_row='5' 20 | win_width='400px' 21 | elif [[ "$theme" == *'type-3'* ]]; then 22 | list_col='1' 23 | list_row='5' 24 | win_width='120px' 25 | elif [[ "$theme" == *'type-5'* ]]; then 26 | list_col='1' 27 | list_row='5' 28 | win_width='520px' 29 | elif [[ ("$theme" == *'type-2'*) || ("$theme" == *'type-4'*) ]]; then 30 | list_col='5' 31 | list_row='1' 32 | win_width='670px' 33 | fi 34 | 35 | # Options 36 | layout=$(cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2) 37 | if [[ "$layout" == 'NO' ]]; then 38 | option_1=" Capture Desktop" 39 | option_2=" Capture Area" 40 | option_3=" Capture Window" 41 | option_4=" Capture in 5s" 42 | option_5=" Capture in 10s" 43 | else 44 | option_1="" 45 | option_2="" 46 | option_3="" 47 | option_4="" 48 | option_5="" 49 | fi 50 | 51 | # Rofi CMD 52 | rofi_cmd() { 53 | rofi -n -theme-str "window {width: $win_width;}" \ 54 | -theme-str "listview {columns: $list_col; lines: $list_row;}" \ 55 | -theme-str 'textbox-prompt-colon {str: "";}' \ 56 | -dmenu \ 57 | -p "$prompt" \ 58 | -mesg "$mesg" \ 59 | -markup-rows \ 60 | -theme ${theme} 61 | } 62 | 63 | # Pass variables to rofi dmenu 64 | run_rofi() { 65 | echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd 66 | } 67 | 68 | # countdown 69 | countdown() { 70 | for sec in $(seq $1 -1 1); do 71 | dunstify -t 1000 --replace=699 "Taking shot in : $sec" 72 | sleep 1 73 | done 74 | } 75 | 76 | # take shots 77 | shotnow() { 78 | sleep 1 79 | $hyprshot -im output 80 | } 81 | 82 | shot5() { 83 | countdown '5' 84 | $hyprshot -m output 85 | } 86 | 87 | shot10() { 88 | countdown '10' 89 | $hyprshot -m output 90 | } 91 | 92 | shotwin() { 93 | sleep 1 94 | $hyprshot -m window 95 | } 96 | 97 | shotarea() { 98 | $hyprshot -m region 99 | } 100 | 101 | # Execute Command 102 | run_cmd() { 103 | if [[ "$1" == '--opt1' ]]; then 104 | shotnow 105 | elif [[ "$1" == '--opt2' ]]; then 106 | shotarea 107 | elif [[ "$1" == '--opt3' ]]; then 108 | shotwin 109 | elif [[ "$1" == '--opt4' ]]; then 110 | shot5 111 | elif [[ "$1" == '--opt5' ]]; then 112 | shot10 113 | fi 114 | } 115 | 116 | # Actions 117 | chosen="$(run_rofi)" 118 | case ${chosen} in 119 | $option_1) 120 | run_cmd --opt1 121 | ;; 122 | $option_2) 123 | run_cmd --opt2 124 | ;; 125 | $option_3) 126 | run_cmd --opt3 127 | ;; 128 | $option_4) 129 | run_cmd --opt4 130 | ;; 131 | $option_5) 132 | run_cmd --opt5 133 | ;; 134 | esac 135 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/hypr/scripts/wallpaper_selector.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ## /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## 3 | # This script for selecting wallpapers (SUPER W) 4 | 5 | # Wallpapers Path 6 | wallpaperDir="$HOME/.wallpapers/" 7 | themesDir="$HOME/.config/rofi" 8 | 9 | # Transition config 10 | FPS=60 11 | TYPE="any" 12 | DURATION=3 13 | BEZIER="0.4,0.2,0.4,1.0" 14 | SWWW_PARAMS="--transition-fps ${FPS} --transition-type ${TYPE} --transition-duration ${DURATION} --transition-bezier ${BEZIER}" 15 | 16 | # Check if swaybg is running 17 | if pidof swaybg > /dev/null; then 18 | pkill swaybg 19 | fi 20 | 21 | # Retrieve image files as a list 22 | PICS=($(find "${wallpaperDir}" -type f \( -iname \*.jpg -o -iname \*.jpeg -o -iname \*.png -o -iname \*.webp -o -iname \*.gif \) | sort )) 23 | 24 | # Use date variable to increase randomness 25 | randomNumber=$(( ($(date +%s) + RANDOM) + $$ )) 26 | randomPicture="${PICS[$(( randomNumber % ${#PICS[@]} ))]}" 27 | randomChoice="[${#PICS[@]}] Random" 28 | 29 | # Rofi command 30 | rofiCommand="rofi -show -dmenu -theme ${themesDir}/wallpaper.rasi" 31 | 32 | # Execute command according the wallpaper manager 33 | executeCommand() { 34 | 35 | if command -v swww &>/dev/null; then 36 | swww img "$1" ${SWWW_PARAMS} && notify-send "Wallpaper Changed" -i "$1" --app-name=Wallpaper -u low -t 3000 37 | 38 | elif command -v swaybg &>/dev/null; then 39 | swaybg -i "$1" & 40 | 41 | else 42 | echo "Neither swww nor swaybg are installed." 43 | exit 1 44 | fi 45 | 46 | ln -sf "$1" "$HOME/.current_wallpaper" 47 | } 48 | 49 | # Show the images 50 | menu() { 51 | 52 | printf "$randomChoice\n" 53 | 54 | for i in "${!PICS[@]}"; do 55 | 56 | # If not *.gif, display 57 | if [[ -z $(echo "${PICS[$i]}" | grep .gif$ | grep .webp$) ]]; then 58 | printf "$(basename "${PICS[$i]}" | cut -d. -f1)\x00icon\x1f${PICS[$i]}\n" 59 | else 60 | # Displaying .gif to indicate animated images 61 | printf "$(basename "${PICS[$i]}")\n" 62 | fi 63 | done 64 | } 65 | 66 | # If swww exists, start it 67 | if command -v swww &>/dev/null; then 68 | swww query || swww init 69 | fi 70 | 71 | # Execution 72 | main() { 73 | choice=$(menu | ${rofiCommand}) 74 | 75 | # No choice case 76 | if [[ -z $choice ]]; then 77 | exit 0 78 | fi 79 | 80 | # Random choice case 81 | if [ "$choice" = "$randomChoice" ]; then 82 | executeCommand "${randomPicture}" 83 | return 0 84 | fi 85 | 86 | # Find the selected file 87 | for file in "${PICS[@]}"; do 88 | # Getting the file 89 | if [[ "$(basename "$file" | cut -d. -f1)" = "$choice" ]]; then 90 | selectedFile="$file" 91 | break 92 | fi 93 | done 94 | 95 | # Check the file and execute 96 | if [[ -n "$selectedFile" ]]; then 97 | executeCommand "${selectedFile}" 98 | return 0 99 | else 100 | echo "Image not found." 101 | exit 1 102 | fi 103 | 104 | } 105 | 106 | # Check if rofi is already running 107 | if pidof rofi > /dev/null; then 108 | pkill rofi 109 | exit 0 110 | fi 111 | 112 | main 113 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/music_info: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # got this script from adi1090x, I did not make this 4 | 5 | ## Get data 6 | STATUS="$(mpc status)" 7 | COVER="/tmp/.music_cover.jpg" 8 | MUSIC_DIR="$HOME/Music" 9 | 10 | ## Get status 11 | get_status() { 12 | if [[ $STATUS == *"[playing]"* ]]; then 13 | echo "" 14 | else 15 | echo "" 16 | fi 17 | } 18 | 19 | poll() { 20 | while [[ 1 == 1 ]]; do 21 | STATUS="$(mpc status)" 22 | if [[ -z $STATUS ]]; then 23 | sleep 30 24 | fi 25 | $1 26 | mpc idle >/dev/null 27 | done 28 | } 29 | 30 | ## Get song 31 | get_song() { 32 | song=$(mpc -f %title% current) 33 | if [[ -z "$song" ]]; then 34 | echo "Offline" 35 | else 36 | echo "$song" 37 | fi 38 | } 39 | 40 | ## Get artist 41 | get_artist() { 42 | artist=$(mpc -f %artist% current) 43 | if [[ -z "$artist" ]]; then 44 | echo "Offline" 45 | else 46 | echo "$artist" 47 | fi 48 | } 49 | 50 | ## Get time 51 | get_time() { 52 | time=$(mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)') 53 | if [[ -z "$time" ]]; then 54 | echo "0" 55 | else 56 | echo "$time" 57 | fi 58 | } 59 | get_ctime() { 60 | ctime=$(mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g') 61 | if [[ -z "$ctime" ]]; then 62 | echo "0:00" 63 | else 64 | echo "$ctime" 65 | fi 66 | } 67 | get_ttime() { 68 | ttime=$(mpc -f %time% current) 69 | if [[ -z "$ttime" ]]; then 70 | echo "0:00" 71 | else 72 | echo "$ttime" 73 | fi 74 | } 75 | 76 | ## Get cover 77 | get_cover() { 78 | ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &>/dev/null 79 | STATUS=$? 80 | 81 | # Check if the file has a embbeded album art 82 | if [ "$STATUS" -eq 0 ]; then 83 | echo "$COVER" 84 | else 85 | echo "image/emptympd.png" 86 | fi 87 | } 88 | 89 | get_volume() { 90 | # gotta get rid of spaces lol 91 | vol=$(mpc status "%volume%" | awk '{print $1}' | tr -d '%') 92 | if [[ -z "$vol" ]]; then 93 | echo "0" 94 | else 95 | echo "$vol" 96 | fi 97 | } 98 | 99 | get_random() { 100 | random=$(mpc status "%random%") 101 | if [[ -z "$random" ]]; then 102 | echo "no" 103 | else 104 | echo "$random" 105 | fi 106 | } 107 | 108 | get_single() { 109 | single=$(mpc status "%single%") 110 | if [[ -z "$single" ]]; then 111 | echo "no" 112 | else 113 | echo "$single" 114 | fi 115 | } 116 | 117 | ## Execute accordingly 118 | if [[ "$1" == "--song" ]]; then 119 | poll get_song 120 | elif [[ "$1" == "--artist" ]]; then 121 | poll get_artist 122 | elif [[ "$1" == "--status" ]]; then 123 | poll get_status 124 | elif [[ "$1" == "--time" ]]; then 125 | get_time 126 | elif [[ "$1" == "--ctime" ]]; then 127 | get_ctime 128 | elif [[ "$1" == "--ttime" ]]; then 129 | get_ttime 130 | elif [[ "$1" == "--cover" ]]; then 131 | poll get_cover 132 | elif [[ "$1" == "--volume" ]]; then 133 | poll get_volume 134 | elif [[ "$1" == "--single" ]]; then 135 | poll get_single 136 | elif [[ "$1" == "--random" ]]; then 137 | poll get_random 138 | elif [[ "$1" == "--toggle" ]]; then 139 | mpc -q toggle 140 | elif [[ "$1" == "--next" ]]; then 141 | { 142 | mpc -q next 143 | get_cover 144 | } 145 | elif [[ "$1" == "--prev" ]]; then 146 | { 147 | mpc -q prev 148 | get_cover 149 | } 150 | fi 151 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/python/timer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import time 4 | import os 5 | import sys 6 | import subprocess 7 | 8 | eww_bin= [subprocess.getoutput("which eww"), "-c", f"{os.getcwd()}"] 9 | 10 | def startstop(): 11 | if os.path.exists("/tmp/timerstamp"): 12 | os.remove("/tmp/timerstamp") 13 | os.popen("notify-send 'timer stopped'") 14 | else: 15 | with open("/tmp/timerstamp", "x") as f: 16 | f.write(str(time.time())) 17 | os.popen("notify-send 'timer start'") 18 | 19 | # fuck it, I'm sure we don't need the loop function 20 | def readtime(): 21 | if not os.path.exists("/tmp/timer"): 22 | with open("/tmp/timer", "x") as f: 23 | f.write("25") 24 | 25 | while True: 26 | with open("/tmp/timer") as f: 27 | timer = int(f.read()) 28 | 29 | if os.path.exists("/tmp/timerstamp"): 30 | current = time.time() 31 | with open("/tmp/timerstamp") as f: 32 | timestamp = float(f.read()) 33 | 34 | if current - timestamp >= timer*60: 35 | os.remove("/tmp/timerstamp") 36 | os.popen("notify-send 'time is up'") 37 | print("OwO") 38 | subprocess.run(eww_bin + ["update", f"timerdis=OwO"]) 39 | else: 40 | m, s = divmod((timer*60) - (current-timestamp), 60) 41 | print (f"{int(m)}:{int(s)}") 42 | subprocess.run(eww_bin + ["update", f"timerdis={int(m)}:{int(s)}"]) 43 | else: 44 | print(timer) 45 | subprocess.run(eww_bin + ["update", f"timerdis={timer}"]) 46 | 47 | time.sleep(1) 48 | 49 | 50 | def loop(): 51 | if not os.path.exists("/tmp/timer"): 52 | with open("/tmp/timer", "x") as f: 53 | f.write("25") 54 | 55 | while True: 56 | with open("/tmp/timer") as f: 57 | timer = int(f.read()) 58 | 59 | current = time.time() 60 | if os.path.exists("/tmp/timerstamp"): 61 | with open("/tmp/timerstamp") as f: 62 | timestamp = float(f.read()) 63 | 64 | if current - timestamp >= timer*60: 65 | os.remove("/tmp/timerstamp") 66 | os.popen("notify-send 'time is up'") 67 | 68 | time.sleep(1) 69 | 70 | def substate(): 71 | if os.path.exists("/tmp/timerstamp"): 72 | print("stop") 73 | else: 74 | print("start") 75 | 76 | def timeinc(): 77 | with open("/tmp/timer", "r") as f: 78 | timer = int(f.read()) 79 | 80 | timer+=5 81 | with open("/tmp/timer", "w") as f: 82 | f.write(str(timer)) 83 | subprocess.run(eww_bin + ["update", f"timerdis={timer}"]) 84 | 85 | def timedec(): 86 | with open("/tmp/timer", "r") as f: 87 | timer = int(f.read()) 88 | 89 | timer-=5 90 | with open("/tmp/timer", "w") as f: 91 | f.write(str(timer)) 92 | subprocess.run(eww_bin + ["update", f"timerdis={timer}"]) 93 | 94 | a = sys.argv[1] 95 | 96 | if a == "loop": 97 | loop() 98 | if a == "toggle": 99 | startstop() 100 | if a == "subscribe": 101 | readtime() 102 | if a == "substate": 103 | substate() 104 | if a == "timedec": 105 | timedec() 106 | if a == "timeinc": 107 | timeinc() 108 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/wallpaper/type-1/wallpaper.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source $HOME/.config/scripts/env.sh 4 | 5 | dir="$HOME/.config/rofi/wallpaper/type-1" 6 | theme='style-8' 7 | thumbnail_dir="$LIVE_WALLPAPERS_DIR/thumbs" 8 | 9 | rofi_cmd() { 10 | rofi -dmenu -theme "${dir}/${theme}.rasi" 11 | } 12 | 13 | show_image_preview() { 14 | for image in "$WALLPAPERS_DIR"/*.{jpg,jpeg,png,gif}; do 15 | [[ -e $image ]] || continue 16 | filename=$(basename "$image") 17 | echo -en "$filename\x00icon\x1f$WALLPAPERS_DIR/$filename\n" 18 | done 19 | } 20 | 21 | set_wallpaper() { 22 | if [ $WALLPAPER_DAEMON == "mpvpaper" ]; then 23 | local base_name=$(basename "$1" .png) 24 | local wallpaper="$LIVE_WALLPAPERS_DIR/$base_name.mp4" 25 | else 26 | local wallpaper="$WALLPAPERS_DIR/$1" 27 | fi 28 | 29 | if [ -f "$wallpaper" ]; then 30 | 31 | case $WALLPAPER_DAEMON in 32 | "swaybg") 33 | pkill -f swww-daemon 34 | pkill -f mpvpaper 35 | 36 | if [[ $(pidof swaybg) ]]; then 37 | pkill -f swaybg 38 | fi 39 | 40 | swaybg -i "$wallpaper" 41 | ;; 42 | "swww") 43 | pkill -f swaybg 44 | pkill -f mpvpaper 45 | 46 | if [[ ! $(pidof swww-daemon) ]]; then 47 | swww init 48 | fi 49 | 50 | swww img "$wallpaper" --transition-fps "$SWWW_FPS" --transition-type any --transition-duration "$SWWW_DURATION" 51 | ;; 52 | "mpvpaper") 53 | pkill -f swaybg 54 | pkill -f swww-daemon 55 | 56 | if [[ $(pidof mpvpaper) ]]; then 57 | pkill -f mpvpaper 58 | fi 59 | 60 | mpvpaper -o "loop-file" "*" $wallpaper 61 | ;; 62 | *) 63 | echo "Unknown value for WALLPAPER_DAEMON: $WALLPAPER_DAEMON" 64 | exit 1 65 | ;; 66 | esac 67 | echo "Wallpaper set to: $wallpaper" 68 | else 69 | echo "Error: Wallpaper file not found: $wallpaper" 70 | fi 71 | } 72 | 73 | generate_video_thumbnails() { 74 | mkdir -p "$thumbnail_dir" 75 | total_files=$(find "$LIVE_WALLPAPERS_DIR" -maxdepth 1 -type f \( -iname \*.mp4 \) | wc -l) 76 | processed_files=0 77 | 78 | shopt -s nullglob 79 | for video in "$LIVE_WALLPAPERS_DIR"/*.mp4; do 80 | thumbnail="$LIVE_WALLPAPERS_DIR/thumbs/$(basename "$video" .mp4).png" 81 | 82 | if [ ! -f "$thumbnail" ]; then 83 | dunstify -u low -t 1000 "Thumbnail Generation" 84 | sleep 1 && ffmpeg -ss 00:00:02 -i "$video" -frames:v 1 "$thumbnail" 85 | fi 86 | done 87 | } 88 | 89 | show_video_preview() { 90 | for image in "$thumbnail_dir"/*.{jpg,jpeg,png,gif}; do 91 | [[ -e $image ]] || continue 92 | filename=$(basename "$image") 93 | echo -en "$filename\x00icon\x1f$thumbnail_dir/$filename\n" 94 | done 95 | } 96 | 97 | if [ $WALLPAPER_DAEMON == "mpvpaper" ]; then 98 | generate_video_thumbnails 99 | choice=$(show_video_preview | rofi_cmd) 100 | else 101 | choice=$(show_image_preview | rofi_cmd) 102 | fi 103 | 104 | if [ -n "$choice" ]; then 105 | set_wallpaper "$choice" 106 | else 107 | echo "No wallpaper selected." 108 | fi 109 | 110 | exit 0 111 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/bin/volume.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Applets : Volume 7 | 8 | # Import Current Theme 9 | source "$HOME"/.config/rofi/applets/shared/theme.bash 10 | theme="$type/$style" 11 | 12 | # Volume Info 13 | mixer="`amixer info Master | grep 'Mixer name' | cut -d':' -f2 | tr -d \',' '`" 14 | speaker="`amixer get Master | tail -n1 | awk -F ' ' '{print $5}' | tr -d '[]'`" 15 | mic="`amixer get Capture | tail -n1 | awk -F ' ' '{print $5}' | tr -d '[]'`" 16 | 17 | active="" 18 | urgent="" 19 | 20 | # Speaker Info 21 | amixer get Master | grep '\[on\]' &>/dev/null 22 | if [[ "$?" == 0 ]]; then 23 | active="-a 1" 24 | stext='Unmute' 25 | sicon='' 26 | else 27 | urgent="-u 1" 28 | stext='Mute' 29 | sicon='' 30 | fi 31 | 32 | # Microphone Info 33 | amixer get Capture | grep '\[on\]' &>/dev/null 34 | if [[ "$?" == 0 ]]; then 35 | [ -n "$active" ] && active+=",3" || active="-a 3" 36 | mtext='Unmute' 37 | micon='' 38 | else 39 | [ -n "$urgent" ] && urgent+=",3" || urgent="-u 3" 40 | mtext='Mute' 41 | micon='' 42 | fi 43 | 44 | # Theme Elements 45 | prompt="S:$stext, M:$mtext" 46 | mesg="$mixer - Speaker: $speaker, Mic: $mic" 47 | 48 | if [[ "$theme" == *'type-1'* ]]; then 49 | list_col='1' 50 | list_row='5' 51 | win_width='400px' 52 | elif [[ "$theme" == *'type-3'* ]]; then 53 | list_col='1' 54 | list_row='5' 55 | win_width='120px' 56 | elif [[ "$theme" == *'type-5'* ]]; then 57 | list_col='1' 58 | list_row='5' 59 | win_width='520px' 60 | elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then 61 | list_col='5' 62 | list_row='1' 63 | win_width='670px' 64 | fi 65 | 66 | # Options 67 | layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` 68 | if [[ "$layout" == 'NO' ]]; then 69 | option_1=" Increase" 70 | option_2="$sicon $stext" 71 | option_3=" Decrese" 72 | option_4="$micon $mtext" 73 | option_5=" Settings" 74 | else 75 | option_1="" 76 | option_2="$sicon" 77 | option_3="" 78 | option_4="$micon" 79 | option_5="" 80 | fi 81 | 82 | # Rofi CMD 83 | rofi_cmd() { 84 | rofi -theme-str "window {width: $win_width;}" \ 85 | -theme-str "listview {columns: $list_col; lines: $list_row;}" \ 86 | -theme-str 'textbox-prompt-colon {str: "";}' \ 87 | -dmenu \ 88 | -p "$prompt" \ 89 | -mesg "$mesg" \ 90 | ${active} ${urgent} \ 91 | -markup-rows \ 92 | -theme ${theme} 93 | } 94 | 95 | # Pass variables to rofi dmenu 96 | run_rofi() { 97 | echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd 98 | } 99 | 100 | # Execute Command 101 | run_cmd() { 102 | if [[ "$1" == '--opt1' ]]; then 103 | amixer -Mq set Master,0 5%+ unmute 104 | elif [[ "$1" == '--opt2' ]]; then 105 | amixer set Master toggle 106 | elif [[ "$1" == '--opt3' ]]; then 107 | amixer -Mq set Master,0 5%- unmute 108 | elif [[ "$1" == '--opt4' ]]; then 109 | amixer set Capture toggle 110 | elif [[ "$1" == '--opt5' ]]; then 111 | pavucontrol 112 | fi 113 | } 114 | 115 | # Actions 116 | chosen="$(run_rofi)" 117 | case ${chosen} in 118 | $option_1) 119 | run_cmd --opt1 120 | ;; 121 | $option_2) 122 | run_cmd --opt2 123 | ;; 124 | $option_3) 125 | run_cmd --opt3 126 | ;; 127 | $option_4) 128 | run_cmd --opt4 129 | ;; 130 | $option_5) 131 | run_cmd --opt5 132 | ;; 133 | esac 134 | 135 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/sys_info: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/bash 3 | 4 | ## Files and Data 5 | PREV_TOTAL=0 6 | PREV_IDLE=0 7 | cpuFile="/tmp/.cpu_usage" 8 | 9 | ## Get CPU usage 10 | get_cpu() { 11 | if [[ -f "${cpuFile}" ]]; then 12 | fileCont=$(cat "${cpuFile}") 13 | PREV_TOTAL=$(echo "${fileCont}" | head -n 1) 14 | PREV_IDLE=$(echo "${fileCont}" | tail -n 1) 15 | fi 16 | 17 | CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics. 18 | unset CPU[0] # Discard the "cpu" prefix. 19 | IDLE=${CPU[4]} # Get the idle CPU time. 20 | 21 | # Calculate the total CPU time. 22 | TOTAL=0 23 | 24 | for VALUE in "${CPU[@]:0:4}"; do 25 | let "TOTAL=$TOTAL+$VALUE" 26 | done 27 | 28 | if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then 29 | # Calculate the CPU usage since we last checked. 30 | let "DIFF_IDLE=$IDLE-$PREV_IDLE" 31 | let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL" 32 | let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10" 33 | echo "${DIFF_USAGE}" 34 | else 35 | echo "?" 36 | fi 37 | 38 | # Remember the total and idle CPU times for the next check. 39 | echo "${TOTAL}" > "${cpuFile}" 40 | echo "${IDLE}" >> "${cpuFile}" 41 | } 42 | 43 | ## Get Used memory 44 | get_mem() { 45 | printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}') 46 | } 47 | 48 | ## Get Brightness 49 | get_blight() { 50 | CARD=`ls /sys/class/backlight | head -n 1` 51 | 52 | if [[ "$CARD" == *"intel_"* ]]; then 53 | BNESS=`xbacklight -get` 54 | LIGHT=${BNESS%.*} 55 | else 56 | BNESS=`blight -d $CARD get brightness` 57 | PERC="$(($BNESS*100/255))" 58 | LIGHT=${PERC%.*} 59 | fi 60 | 61 | echo "$LIGHT" 62 | } 63 | 64 | ## Get Battery 65 | get_battery() { 66 | battery_info=$(upower -i /org/freedesktop/UPower/devices/battery_BAT0) 67 | battery_percentage=$(echo "$battery_info" | grep -E "percentage" | awk '{print $2}' | tr -d '%') 68 | battery_state=$(echo "$battery_info" | grep -E "state" | awk '{print $2}') 69 | 70 | case $battery_state in 71 | "discharging") 72 | if [ "$battery_percentage" -le 10 ]; then 73 | notify-send -a battery "Battery percentage 10%" "HOLY FUCK PLEASE CHARGE ME" 74 | elif [ "$battery_percentage" -le 15 ]; then 75 | notify-send -a battery "Battery Percentage 15%" "You should probably plug in the charger" 76 | fi 77 | ;; 78 | esac 79 | 80 | echo $battery_percentage 81 | } 82 | 83 | get_battery_icon () { 84 | battery_info=$(upower -i /org/freedesktop/UPower/devices/battery_BAT0) 85 | battery_percentage=$(echo "$battery_info" | grep -E "percentage" | awk '{print $2}' | tr -d '%') 86 | icon="" 87 | 88 | if [ "$battery_percentage" -le 20 ]; then 89 | icon="" 90 | elif [ "$battery_percentage" -le 40 ]; then 91 | icon="" 92 | elif [ "$battery_percentage" -le 60 ]; then 93 | icon="" 94 | elif [ "$battery_percentage" -le 80 ]; then 95 | icon="" 96 | fi 97 | 98 | echo $icon 99 | } 100 | 101 | ## Execute accordingly 102 | if [[ "$1" == "--cpu" ]]; then 103 | get_cpu 104 | elif [[ "$1" == "--mem" ]]; then 105 | get_mem 106 | elif [[ "$1" == "--blight" ]]; then 107 | get_blight 108 | elif [[ "$1" == "--bat" ]]; then 109 | get_battery 110 | elif [[ "$1" == "--baticon" ]]; then 111 | get_battery_icon 112 | fi 113 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/bin/mpd.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Applets : MPD (music) 7 | 8 | # Import Current Theme 9 | source "$HOME"/.config/rofi/applets/shared/theme.bash 10 | theme="$type/$style" 11 | 12 | # Theme Elements 13 | status="`mpc status`" 14 | if [[ -z "$status" ]]; then 15 | prompt='Offline' 16 | mesg="MPD is Offline" 17 | else 18 | prompt="`mpc -f "%artist%" current`" 19 | mesg="`mpc -f "%title%" current` :: `mpc status | grep "#" | awk '{print $3}'`" 20 | fi 21 | 22 | if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then 23 | list_col='1' 24 | list_row='6' 25 | elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then 26 | list_col='6' 27 | list_row='1' 28 | fi 29 | 30 | # Options 31 | layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` 32 | if [[ "$layout" == 'NO' ]]; then 33 | if [[ ${status} == *"[playing]"* ]]; then 34 | option_1=" Pause" 35 | else 36 | option_1=" Play" 37 | fi 38 | option_2=" Stop" 39 | option_3=" Previous" 40 | option_4=" Next" 41 | option_5=" Repeat" 42 | option_6=" Random" 43 | else 44 | if [[ ${status} == *"[playing]"* ]]; then 45 | option_1="" 46 | else 47 | option_1="" 48 | fi 49 | option_2="" 50 | option_3="" 51 | option_4="" 52 | option_5="" 53 | option_6="" 54 | fi 55 | 56 | # Toggle Actions 57 | active='' 58 | urgent='' 59 | # Repeat 60 | if [[ ${status} == *"repeat: on"* ]]; then 61 | active="-a 4" 62 | elif [[ ${status} == *"repeat: off"* ]]; then 63 | urgent="-u 4" 64 | else 65 | option_5=" Parsing Error" 66 | fi 67 | # Random 68 | if [[ ${status} == *"random: on"* ]]; then 69 | [ -n "$active" ] && active+=",5" || active="-a 5" 70 | elif [[ ${status} == *"random: off"* ]]; then 71 | [ -n "$urgent" ] && urgent+=",5" || urgent="-u 5" 72 | else 73 | option_6=" Parsing Error" 74 | fi 75 | 76 | # Rofi CMD 77 | rofi_cmd() { 78 | rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ 79 | -theme-str 'textbox-prompt-colon {str: "";}' \ 80 | -dmenu \ 81 | -p "$prompt" \ 82 | -mesg "$mesg" \ 83 | ${active} ${urgent} \ 84 | -markup-rows \ 85 | -theme ${theme} 86 | } 87 | 88 | # Pass variables to rofi dmenu 89 | run_rofi() { 90 | echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd 91 | } 92 | 93 | # Execute Command 94 | run_cmd() { 95 | if [[ "$1" == '--opt1' ]]; then 96 | mpc -q toggle && notify-send -u low -t 1000 " `mpc current`" 97 | elif [[ "$1" == '--opt2' ]]; then 98 | mpc -q stop 99 | elif [[ "$1" == '--opt3' ]]; then 100 | mpc -q prev && notify-send -u low -t 1000 " `mpc current`" 101 | elif [[ "$1" == '--opt4' ]]; then 102 | mpc -q next && notify-send -u low -t 1000 " `mpc current`" 103 | elif [[ "$1" == '--opt5' ]]; then 104 | mpc -q repeat 105 | elif [[ "$1" == '--opt6' ]]; then 106 | mpc -q random 107 | fi 108 | } 109 | 110 | # Actions 111 | chosen="$(run_rofi)" 112 | case ${chosen} in 113 | $option_1) 114 | run_cmd --opt1 115 | ;; 116 | $option_2) 117 | run_cmd --opt2 118 | ;; 119 | $option_3) 120 | run_cmd --opt3 121 | ;; 122 | $option_4) 123 | run_cmd --opt4 124 | ;; 125 | $option_5) 126 | run_cmd --opt5 127 | ;; 128 | $option_6) 129 | run_cmd --opt6 130 | ;; 131 | esac 132 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/bin/battery.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Applets : Battery 7 | 8 | # Import Current Theme 9 | source "$HOME"/.config/rofi/applets/shared/theme.bash 10 | theme="$type/$style" 11 | 12 | # Battery Info 13 | battery="`acpi -b | cut -d',' -f1 | cut -d':' -f1`" 14 | status="`acpi -b | cut -d',' -f1 | cut -d':' -f2 | tr -d ' '`" 15 | percentage="`acpi -b | cut -d',' -f2 | tr -d ' ',\%`" 16 | time="`acpi -b | cut -d',' -f3`" 17 | 18 | if [[ -z "$time" ]]; then 19 | time=' Fully Charged' 20 | fi 21 | 22 | # Theme Elements 23 | prompt="$status" 24 | mesg="${battery}: ${percentage}%,${time}" 25 | 26 | if [[ "$theme" == *'type-1'* ]]; then 27 | list_col='1' 28 | list_row='4' 29 | win_width='400px' 30 | elif [[ "$theme" == *'type-3'* ]]; then 31 | list_col='1' 32 | list_row='4' 33 | win_width='120px' 34 | elif [[ "$theme" == *'type-5'* ]]; then 35 | list_col='1' 36 | list_row='4' 37 | win_width='500px' 38 | elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then 39 | list_col='4' 40 | list_row='1' 41 | win_width='550px' 42 | fi 43 | 44 | # Charging Status 45 | active="" 46 | urgent="" 47 | if [[ $status = *"Charging"* ]]; then 48 | active="-a 1" 49 | ICON_CHRG="" 50 | elif [[ $status = *"Full"* ]]; then 51 | active="-u 1" 52 | ICON_CHRG="" 53 | else 54 | urgent="-u 1" 55 | ICON_CHRG="" 56 | fi 57 | 58 | # Discharging 59 | if [[ $percentage -ge 5 ]] && [[ $percentage -le 19 ]]; then 60 | ICON_DISCHRG="" 61 | elif [[ $percentage -ge 20 ]] && [[ $percentage -le 39 ]]; then 62 | ICON_DISCHRG="" 63 | elif [[ $percentage -ge 40 ]] && [[ $percentage -le 59 ]]; then 64 | ICON_DISCHRG="" 65 | elif [[ $percentage -ge 60 ]] && [[ $percentage -le 79 ]]; then 66 | ICON_DISCHRG="" 67 | elif [[ $percentage -ge 80 ]] && [[ $percentage -le 100 ]]; then 68 | ICON_DISCHRG="" 69 | fi 70 | 71 | # Options 72 | layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` 73 | if [[ "$layout" == 'NO' ]]; then 74 | option_1=" Remaining ${percentage}%" 75 | option_2=" $status" 76 | option_3=" Power Manager" 77 | option_4=" Diagnose" 78 | else 79 | option_1="$ICON_DISCHRG" 80 | option_2="$ICON_CHRG" 81 | option_3="" 82 | option_4="" 83 | fi 84 | 85 | # Rofi CMD 86 | rofi_cmd() { 87 | rofi -theme-str "window {width: $win_width;}" \ 88 | -theme-str "listview {columns: $list_col; lines: $list_row;}" \ 89 | -theme-str "textbox-prompt-colon {str: \"$ICON_DISCHRG\";}" \ 90 | -dmenu \ 91 | -p "$prompt" \ 92 | -mesg "$mesg" \ 93 | ${active} ${urgent} \ 94 | -markup-rows \ 95 | -theme ${theme} 96 | } 97 | 98 | # Pass variables to rofi dmenu 99 | run_rofi() { 100 | echo -e "$option_1\n$option_2\n$option_3\n$option_4" | rofi_cmd 101 | } 102 | 103 | # Execute Command 104 | run_cmd() { 105 | polkit_cmd="pkexec env PATH=$PATH DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY" 106 | if [[ "$1" == '--opt1' ]]; then 107 | notify-send -u low " Remaining : ${percentage}%" 108 | elif [[ "$1" == '--opt2' ]]; then 109 | notify-send -u low "$ICON_CHRG Status : $status" 110 | elif [[ "$1" == '--opt3' ]]; then 111 | xfce4-power-manager-settings 112 | elif [[ "$1" == '--opt4' ]]; then 113 | ${polkit_cmd} alacritty -e powertop 114 | fi 115 | } 116 | 117 | # Actions 118 | chosen="$(run_rofi)" 119 | case ${chosen} in 120 | $option_1) 121 | run_cmd --opt1 122 | ;; 123 | $option_2) 124 | run_cmd --opt2 125 | ;; 126 | $option_3) 127 | run_cmd --opt3 128 | ;; 129 | $option_4) 130 | run_cmd --opt4 131 | ;; 132 | esac 133 | 134 | 135 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/rofi/applets/bin/powermenu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya (adi1090x) 4 | ## Github : @adi1090x 5 | # 6 | ## Applets : Power Menu 7 | 8 | # Import Current Theme 9 | source "$HOME"/.config/rofi/applets/shared/theme.bash 10 | theme="$type/$style" 11 | 12 | # Theme Elements 13 | prompt="$(hostname)" 14 | mesg="Uptime : $(uptime -p | sed -e 's/up //g')" 15 | 16 | if [[ "$theme" == *'type-1'* ]]; then 17 | list_col='1' 18 | list_row='5' 19 | win_width='400px' 20 | elif [[ "$theme" == *'type-3'* ]]; then 21 | list_col='1' 22 | list_row='5' 23 | win_width='120px' 24 | elif [[ "$theme" == *'type-5'* ]]; then 25 | list_col='1' 26 | list_row='5' 27 | win_width='520px' 28 | elif [[ ("$theme" == *'type-2'*) || ("$theme" == *'type-4'*) ]]; then 29 | list_col='5' 30 | list_row='1' 31 | win_width='670px' 32 | fi 33 | 34 | # Options 35 | layout=$(cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2) 36 | if [[ "$layout" == 'NO' ]]; then 37 | option_1=" Lock" 38 | option_2=" Logout" 39 | option_3=" Suspend" 40 | option_4=" Hibernate" 41 | option_5=" Reboot" 42 | option_6=" Shutdown" 43 | yes=' Yes' 44 | no=' No' 45 | else 46 | option_1="" 47 | option_2="" 48 | option_3="" 49 | option_4="" 50 | option_5="" 51 | option_6="" 52 | yes='' 53 | no='' 54 | fi 55 | 56 | # Rofi CMD 57 | rofi_cmd() { 58 | rofi -theme-str "window {width: $win_width;}" \ 59 | -theme-str "listview {columns: $list_col; lines: $list_row;}" \ 60 | -theme-str 'textbox-prompt-colon {str: "";}' \ 61 | -dmenu \ 62 | -p "$prompt" \ 63 | -mesg "$mesg" \ 64 | -markup-rows \ 65 | -theme ${theme} 66 | } 67 | 68 | # Pass variables to rofi dmenu 69 | run_rofi() { 70 | echo -e "$option_1\n$option_2\n$option_3\n$option_5\n$option_6" | rofi_cmd 71 | } 72 | 73 | # Confirmation CMD 74 | confirm_cmd() { 75 | rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 350px;}' \ 76 | -theme-str 'mainbox {orientation: vertical; children: [ "message", "listview" ];}' \ 77 | -theme-str 'listview {columns: 2; lines: 1;}' \ 78 | -theme-str 'element-text {horizontal-align: 0.5;}' \ 79 | -theme-str 'textbox {horizontal-align: 0.5;}' \ 80 | -dmenu \ 81 | -p 'Confirmation' \ 82 | -mesg 'Are you Sure?' \ 83 | -theme ${theme} 84 | } 85 | 86 | # Ask for confirmation 87 | confirm_exit() { 88 | echo -e "$yes\n$no" | confirm_cmd 89 | } 90 | 91 | # Confirm and execute 92 | confirm_run() { 93 | selected="$(confirm_exit)" 94 | if [[ "$selected" == "$yes" ]]; then 95 | ${1} && ${2} && ${3} 96 | else 97 | exit 98 | fi 99 | } 100 | 101 | confirm_run_suspend() { 102 | selected="$(confirm_exit)" 103 | if [[ "$selected" == "$yes" ]]; then 104 | hyprlock & 105 | disown && loginctl suspend 106 | else 107 | exit 108 | fi 109 | } 110 | 111 | # Execute Command 112 | run_cmd() { 113 | if [[ "$1" == '--opt1' ]]; then 114 | sleep 1 && hyprlock 115 | elif [[ "$1" == '--opt2' ]]; then 116 | confirm_run 'hyprctl dispatch exit' 117 | elif [[ "$1" == '--opt3' ]]; then 118 | confirm_run_suspend 119 | elif [[ "$1" == '--opt4' ]]; then 120 | confirm_run 'loginctl hibernate' 121 | elif [[ "$1" == '--opt5' ]]; then 122 | confirm_run 'loginctl reboot' 123 | elif [[ "$1" == '--opt6' ]]; then 124 | confirm_run 'loginctl poweroff' 125 | fi 126 | } 127 | 128 | # Actions 129 | chosen="$(run_rofi)" 130 | case ${chosen} in 131 | $option_1) 132 | run_cmd --opt1 133 | ;; 134 | $option_2) 135 | run_cmd --opt2 136 | ;; 137 | $option_3) 138 | run_cmd --opt3 139 | ;; 140 | $option_4) 141 | run_cmd --opt4 142 | ;; 143 | $option_5) 144 | run_cmd --opt5 145 | ;; 146 | $option_6) 147 | run_cmd --opt6 148 | ;; 149 | esac 150 | -------------------------------------------------------------------------------- /hypr-configs/dotfiles/eww/scripts/tasklist.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | from iconfetch import fetch 3 | import subprocess 4 | import json 5 | import os 6 | import i3ipc 7 | 8 | eww_bin= [subprocess.getoutput("which eww"), "-c", f"{os.getcwd()}"] 9 | 10 | def recurse(apps, workspace, output): 11 | for l in workspace.descendants(): 12 | if not l.pid or not l.app_id: 13 | continue 14 | app_id = l.app_id.lower() 15 | 16 | if app_id == "com.github.xournalpp.xournalpp": 17 | app_id = "xournalpp" 18 | 19 | rect = { 20 | "x": 0, 21 | "y": 0, 22 | "width": 0, 23 | "height": 0 24 | } 25 | 26 | rect["x"] = l.rect.x - output.rect.x 27 | rect["y"] = l.rect.y - output.rect.y 28 | 29 | rect["width"] = l.rect.width * 1920/output.rect.width 30 | rect["height"] = l.rect.height * 1080/output.rect.height 31 | rect["x"] *= 1920/output.rect.width 32 | rect["y"] *= 1080/output.rect.height 33 | 34 | apps.append({ 35 | "app_id": app_id, 36 | "name": l.name, 37 | "pid": l.pid, 38 | "focused": l.focused, 39 | "rect": rect, 40 | "path": fetch(app_id) or fetch("unknown") 41 | }) 42 | 43 | def update(i3, e): 44 | 45 | root = i3.get_tree() 46 | 47 | apps = [] 48 | windows = [[] for _ in range(10)] 49 | 50 | for output in root.nodes: 51 | if output.name == "__i3": 52 | continue 53 | 54 | for workspace in output.nodes: 55 | found = [] 56 | recurse(found, workspace, output) 57 | 58 | apps.extend(found) 59 | # if output["name"] == "eDP-1": 60 | # windows[int(workspace["name"])-1] = found 61 | windows[int(workspace.name)-1] = found 62 | 63 | # change this yourself lol 64 | appsdict = { 65 | "firefox": [], 66 | "thunar": [], 67 | "xournalpp": [], 68 | "discord": [], 69 | "foot": [] 70 | } 71 | # translate to launch cmd 72 | appsexec = { 73 | "discord": "discord-wayland", 74 | "xournalpp": "com.github.xournalpp.xournalpp", 75 | "foot": "org.codeberg.dnkl.foot", 76 | } 77 | 78 | appsjson = [] 79 | 80 | for app in apps: 81 | a = app.copy() 82 | name = a["app_id"] 83 | 84 | if name not in appsdict: 85 | appsdict[name] = [] 86 | appsdict[name].append(a) 87 | 88 | for key, value in appsdict.items(): 89 | if len(value) == 0: 90 | appsjson.append(dict( 91 | path = fetch(key), 92 | name = key, 93 | app_id = key if key not in appsexec else appsexec[key], 94 | pid = None, 95 | focused = [] 96 | )) 97 | 98 | else: 99 | f = [] 100 | for v in value: 101 | f.append(v["focused"]) 102 | 103 | appsjson.append(dict( 104 | path = value[0]["path"], 105 | name = value[0]["name"], 106 | app_id = value[0]["app_id"].lower(), 107 | pid = value[0]["pid"], 108 | focused = f 109 | )) 110 | 111 | 112 | subprocess.run(eww_bin + ["update", f"windows={json.dumps(windows)}"]) 113 | subprocess.run(eww_bin + ["update", f"tasksjson={json.dumps(appsjson)}"]) 114 | 115 | def main(): 116 | i3 = i3ipc.Connection(auto_reconnect=True) 117 | update(i3, None) 118 | i3.on(i3ipc.Event.WINDOW, update) 119 | i3.main() 120 | 121 | 122 | if __name__ == "__main__": 123 | main() 124 | --------------------------------------------------------------------------------