├── .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 |
--------------------------------------------------------------------------------
/hypr-configs/dotfiles/eww/assets/image/weather/idk.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------