├── .github └── workflows │ └── main.yml ├── README.md ├── Wallpaper ├── samurai_strike.jpg └── street-tn.png ├── assets ├── kitty-tokyonight.png ├── recording.gif ├── recording.mp4 ├── swappy-20231001_181737.png ├── swappy-20231001_182925.png ├── swappy-20231001_190543.png ├── swappy-20231001_191552.png └── swappy-20231001_192442.png ├── dunst ├── dunstrc └── scripts │ ├── brightness │ ├── notify-history.sh │ └── volume ├── fish ├── completions │ └── nvm.fish ├── conf.d │ └── nvm.fish ├── config.fish ├── fish_plugins └── functions │ ├── _nvm_index_update.fish │ ├── _nvm_list.fish │ ├── _nvm_version_activate.fish │ ├── _nvm_version_deactivate.fish │ └── nvm.fish ├── hypr ├── hyprland.conf └── scripts │ ├── autolaunch_on_workspace │ ├── autostart │ ├── default │ ├── battery_notif │ ├── expand_toolbar │ ├── idle_handler │ ├── launch_portals │ ├── lock │ ├── lock.sh │ ├── record_screen │ ├── rgb_borders │ ├── screenshot │ ├── toolbar_state │ ├── tools │ │ ├── dynamic │ │ ├── expand │ │ ├── notif │ │ ├── start_dyn │ │ └── swww │ └── workspaces │ ├── default_app │ ├── exec_wofi │ ├── mako.sh │ ├── variables │ ├── load_envs │ ├── set_env │ └── temp │ │ ├── background │ │ └── primary_screen │ ├── workspace │ └── xdg-desktop-portal-hyprland.bak ├── kitty ├── kitty-theme.conf └── kitty.conf ├── neofetch ├── config.conf └── logo.txt ├── ranger ├── colorschemes │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-311.pyc │ │ └── default.cpython-311.pyc │ ├── default.py │ └── zenburn.py ├── commands.py ├── plugins │ ├── __init__.py │ ├── __pycache__ │ │ └── __init__.cpython-311.pyc │ └── ranger_devicons │ │ ├── __init__.py │ │ ├── __pycache__ │ │ ├── __init__.cpython-311.pyc │ │ └── devicons.cpython-311.pyc │ │ └── devicons.py ├── rc.conf ├── rifle.conf └── scope.sh ├── starship.toml ├── swaylock └── config ├── tmux └── tmux.conf ├── waybar ├── Waybar-3.0 │ ├── border.css │ ├── config │ ├── config.json │ ├── configs │ │ └── custom_modules │ │ │ ├── modules │ │ │ └── privacy_container │ ├── kartorias1 Hyprland-dotfiles main waybar.zip │ ├── scripts │ │ ├── checkupdates │ │ ├── custom │ │ │ └── privacy-test.sh │ │ ├── pacman-update-icon.sh │ │ ├── rofi-wifi-menu.sh │ │ ├── title │ │ │ └── icon_check.sh │ │ └── window-name.sh │ ├── style-og.css │ ├── style-tokyo.css │ ├── style.css │ ├── style.css.map │ ├── style.css.tokyonight │ └── style.scss ├── scripts │ ├── mediaplayer.py │ ├── play-pause.sh │ ├── power-menu │ │ ├── powermenu.sh │ │ ├── shared │ │ │ ├── colors.rasi │ │ │ ├── colors │ │ │ │ ├── adapta.rasi │ │ │ │ ├── arc.rasi │ │ │ │ ├── black.rasi │ │ │ │ ├── catppuccin.rasi │ │ │ │ ├── cyberpunk.rasi │ │ │ │ ├── dracula.rasi │ │ │ │ ├── everforest.rasi │ │ │ │ ├── gruvbox.rasi │ │ │ │ ├── lovelace.rasi │ │ │ │ ├── navy.rasi │ │ │ │ ├── nord.rasi │ │ │ │ ├── onedark.rasi │ │ │ │ ├── paper.rasi │ │ │ │ ├── solarized.rasi │ │ │ │ ├── tokyonight.rasi │ │ │ │ └── yousai.rasi │ │ │ └── fonts.rasi │ │ ├── style-1.rasi │ │ ├── style-2.rasi │ │ ├── style-3.rasi │ │ ├── style-4.rasi │ │ └── style-5.rasi │ ├── rofi-bluetooth │ ├── rofi-wifi-menu.sh │ ├── sound │ │ ├── expand │ │ ├── expand_soundbar │ │ ├── flick0 hyprland-print 47238bbedc75bee69d03b960933e4b92868b2cb8 dark-waybar_sound.zip │ │ └── soundbar_state │ ├── spotify.sh │ ├── waybar-wttr.py │ └── weather.py ├── tokyoconfig └── tokyostyle.css ├── waypaper └── config.ini ├── wofi ├── config ├── config.bak ├── menu ├── menu.css └── woif-wifi.sh └── zathura └── zathurarc /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Update Stars Badge 2 | name: Install jq 3 | uses: dcarbone/install-jq-action@v1.0.1 4 | 5 | on: 6 | schedule: 7 | - cron: "0 * * * *" 8 | 9 | jobs: 10 | update-badge: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Set up Git repository 14 | uses: actions/checkout@v2 15 | 16 | - name: Update Stars Badge 17 | run: | 18 | stars=$(curl -s https://api.github.com/repos/knightfall01/Hyprland-i3 | jq -r .stargazers_count) 19 | sed -i "s/badge\/stars-[0-9]*-brightgreen/badge\/stars-$stars-brightgreen/" README.md 20 | git config --local user.email "action@github.com" 21 | git config --local user.name "GitHub Action" 22 | git commit -am "Update stars badge [skip ci]" 23 | git push 24 | env: 25 | REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | # 💠 Dot Files - Hypr Config 3.0 💠 7 | 8 | [![Stars Badge](https://img.shields.io/github/stars/knightfall01/Hyprland-i3.svg?style=for-the-badge&color=82a1f1)](https://github.com/knightfall01/Hyprland-i3/stargazers) [![Last Commit](https://img.shields.io/github/last-commit/knightfall01/Hyprland-i3.svg?style=for-the-badge&color=b69bf1)](https://github.com/knightfall01/Hyprland-i3/commits/main) [![Repo Size](https://img.shields.io/github/repo-size/knightfall01/Hyprland-i3.svg?style=for-the-badge&color=90cdfa)](https://github.com/knightfall01/Hyprland-i3) 9 | 10 | 11 | 12 | 13 |
14 | 15 | ![image](./assets/swappy-20231001_181737.png) 16 |
17 | 18 | ![image](./assets/swappy-20231001_182925.png) 19 |
20 | 21 | ![recording](https://github.com/Knightfall01/Hyprland-i3/assets/107239398/776c7548-353e-4cf0-b7f5-2ee29336bdf5) 22 |
23 | 24 | ### Tokyo Night Kitty Terminal Color Scheme 25 | 26 | ![image](./assets/kitty-tokyonight.png) 27 | 28 | ### Waybar Configs: 29 | 30 | #### Config 3.0 31 | 32 | ![image](./assets/swappy-20231001_192442.png) 33 |
34 | 35 | #### Old Config 36 | 37 | ![image](./assets/swappy-20231001_191552.png) 38 |
39 | 40 | 41 |

Replace the `config-3.0` in the hypr config with `tokyonightconfig and tokyonightstyle.css` to use the old configuration.

42 | 43 |

44 | 45 | # Details 46 | - **OS**: Arch Linux 47 | - **Compositor**: [Hyprland](https://github.com/hyprwm/Hyprland) 48 | - **Top Bar**: [Waybar](https://github.com/Alexays/Waybar/) 49 | - **Notifications**: [dunst](https://github.com/dunst-project/dunst) 50 | - **Wallpaper**: `../wallpaper/street-tn.png` 51 | - **Terminal**: [kitty](https://github.com/kovidgoyal/kitty) 52 | - **Search menu**: [wofi](https://github.com/uncomfyhalomacro/wofi) 53 | - **Fetch script**: `Neofetch` 54 | - **Themes**: `Use the waybar config as configcat and stylecss as stylecat` 55 | 56 | -------------------------------------------------------------------------------- /Wallpaper/samurai_strike.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/Wallpaper/samurai_strike.jpg -------------------------------------------------------------------------------- /Wallpaper/street-tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/Wallpaper/street-tn.png -------------------------------------------------------------------------------- /assets/kitty-tokyonight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/assets/kitty-tokyonight.png -------------------------------------------------------------------------------- /assets/recording.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/assets/recording.gif -------------------------------------------------------------------------------- /assets/recording.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/assets/recording.mp4 -------------------------------------------------------------------------------- /assets/swappy-20231001_181737.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/assets/swappy-20231001_181737.png -------------------------------------------------------------------------------- /assets/swappy-20231001_182925.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/assets/swappy-20231001_182925.png -------------------------------------------------------------------------------- /assets/swappy-20231001_190543.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/assets/swappy-20231001_190543.png -------------------------------------------------------------------------------- /assets/swappy-20231001_191552.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/assets/swappy-20231001_191552.png -------------------------------------------------------------------------------- /assets/swappy-20231001_192442.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/assets/swappy-20231001_192442.png -------------------------------------------------------------------------------- /dunst/scripts/brightness: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | down() { 4 | light -U 5 5 | brightness=$(light -G) 6 | dunstify -a "BRIGHTNESS" "Decreasing to $brightness%" -h int:value:"$brightness" -i display-brightness-symbolic -r 2593 -u normal 7 | } 8 | 9 | up() { 10 | light -A 5 11 | brightness=$(light -G) 12 | dunstify -a "BRIGHTNESS" "Increasing to $brightness%" -h int:value:"$brightness" -i display-brightness-symbolic -r 2593 -u normal 13 | } 14 | 15 | case "$1" in 16 | up) up;; 17 | down) down;; 18 | esac -------------------------------------------------------------------------------- /dunst/scripts/notify-history.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | socat -u UNIX-CONNECT:/tmp/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | while read -r event; do 4 | if [[ $event == "closelayer>>notifications" ]]; then 5 | echo $event 6 | dunstctl history > /tmp/dunst-history.json 7 | exit 8 | fi 9 | done 10 | -------------------------------------------------------------------------------- /dunst/scripts/volume: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | down() { 5 | pamixer -d 5 6 | volume=$(pamixer --get-volume) 7 | [$volume -gt 0 ] && volume=`expr $volume` 8 | dunstify -a "VOLUME" "Decreasing to $volume%" -h int:value:"$volume" -i audio-volume-low-symbolic -r 2593 -u normal 9 | canberra-gtk-play -i audio-volume-change -d "changevolume" 10 | } 11 | 12 | up() { 13 | pamixer -i 5 14 | volume=$(pamixer --get-volume) 15 | [ $volume -lt 100 ] && volume=`expr $volume` 16 | dunstify -a "VOLUME" "Increasing to $volume%" -h int:value:"$volume" -i audio-volume-high-symbolic -r 2593 -u normal 17 | canberra-gtk-play -i audio-volume-change -d "changevolume" 18 | } 19 | 20 | mute() { 21 | muted="$(pamixer --get-mute)" 22 | if $muted; then 23 | pamixer -u 24 | dunstify -a "VOLUME" "UNMUTED" -i audio-volume-high-symbolic -r 2593 -u normal 25 | else 26 | pamixer -m 27 | dunstify -a "VOLUME" "MUTED" -i audio-volume-muted-symbolic -r 2593 -u normal 28 | fi 29 | } 30 | 31 | case "$1" in 32 | up) up;; 33 | down) down;; 34 | mute) mute;; 35 | esac -------------------------------------------------------------------------------- /fish/completions/nvm.fish: -------------------------------------------------------------------------------- 1 | complete --command nvm --exclusive 2 | complete --command nvm --exclusive --long version --description "Print version" 3 | complete --command nvm --exclusive --long help --description "Print help" 4 | complete --command nvm --long silent --description "Suppress standard output" 5 | 6 | complete --command nvm --exclusive --condition __fish_use_subcommand --arguments install --description "Download and activate the specified Node version" 7 | complete --command nvm --exclusive --condition __fish_use_subcommand --arguments use --description "Activate a version in the current shell" 8 | complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list --description "List installed versions" 9 | complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list-remote --description "List versions available to install matching optional regex" 10 | complete --command nvm --exclusive --condition __fish_use_subcommand --arguments current --description "Print the currently-active version" 11 | complete --command nvm --exclusive --condition "__fish_seen_subcommand_from install" --arguments "( 12 | test -e $nvm_data && string split ' ' <$nvm_data/.index 13 | )" 14 | complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use" --arguments "(_nvm_list | string split ' ')" 15 | complete --command nvm --exclusive --condition __fish_use_subcommand --arguments uninstall --description "Uninstall a version" 16 | complete --command nvm --exclusive --condition "__fish_seen_subcommand_from uninstall" --arguments "( 17 | _nvm_list | string split ' ' | string replace system '' 18 | )" 19 | complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use uninstall" --arguments "( 20 | set --query nvm_default_version && echo default 21 | )" 22 | -------------------------------------------------------------------------------- /fish/conf.d/nvm.fish: -------------------------------------------------------------------------------- 1 | function _nvm_install --on-event nvm_install 2 | set --query nvm_mirror || set --universal nvm_mirror https://nodejs.org/dist 3 | set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share 4 | set --universal nvm_data $XDG_DATA_HOME/nvm 5 | 6 | test ! -d $nvm_data && command mkdir -p $nvm_data 7 | echo "Downloading the Node distribution index..." 2>/dev/null 8 | _nvm_index_update 9 | end 10 | 11 | function _nvm_update --on-event nvm_update 12 | set --query nvm_mirror || set --universal nvm_mirror https://nodejs.org/dist 13 | set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share 14 | set --universal nvm_data $XDG_DATA_HOME/nvm 15 | end 16 | 17 | function _nvm_uninstall --on-event nvm_uninstall 18 | command rm -rf $nvm_data 19 | 20 | set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version 21 | 22 | set --names | string replace --filter --regex -- "^nvm" "set --erase nvm" | source 23 | functions --erase (functions --all | string match --entire --regex -- "^_nvm_") 24 | end 25 | 26 | if status is-interactive && set --query nvm_default_version && ! set --query nvm_current_version 27 | nvm use --silent $nvm_default_version 28 | end 29 | -------------------------------------------------------------------------------- /fish/config.fish: -------------------------------------------------------------------------------- 1 | # By knightfall01 on Github as a part of https://github.com/Knightfall01/Hyprland-config. 2 | 3 | if status is-interactive 4 | # Commands to run in interactive sessions can go here 5 | end 6 | starship init fish | source 7 | set -U fish_greeting "" 8 | cat ~/.cache/wal/sequences 9 | sh ~/.bin/colorscripts/crunchbang-mini 10 | 11 | # fish_add_path ~/.bin/ 12 | # fish_add_path ~/.config/emacs/bin/ 13 | # fish_add_path ~/.local/bin/ 14 | 15 | alias l="ls -lh" 16 | # alias ls="exa" 17 | alias nivm="nvim" 18 | alias open="xdg-open" 19 | alias findme="grep -nr" 20 | alias nano="nvim" 21 | -------------------------------------------------------------------------------- /fish/fish_plugins: -------------------------------------------------------------------------------- 1 | jorgebucaran/nvm.fish 2 | -------------------------------------------------------------------------------- /fish/functions/_nvm_index_update.fish: -------------------------------------------------------------------------------- 1 | function _nvm_index_update 2 | test ! -d $nvm_data && command mkdir -p $nvm_data 3 | 4 | set --local index $nvm_data/.index 5 | 6 | if not command curl --location --silent $nvm_mirror/index.tab >$index.temp 7 | command rm -f $index.temp 8 | echo "nvm: Can't update index, host unavailable: \"$nvm_mirror\"" >&2 9 | return 1 10 | end 11 | 12 | command awk -v OFS=\t ' 13 | /v0.9.12/ { exit } # Unsupported 14 | NR > 1 { 15 | print $1 (NR == 2 ? " latest" : $10 != "-" ? " lts/" tolower($10) : "") 16 | } 17 | ' $index.temp >$index 18 | 19 | command rm -f $index.temp 20 | end 21 | -------------------------------------------------------------------------------- /fish/functions/_nvm_list.fish: -------------------------------------------------------------------------------- 1 | function _nvm_list 2 | set --local versions $nvm_data/* 3 | set --query versions[1] && 4 | string match --entire --regex -- (string match --regex -- "v\d.+" $versions | 5 | string escape --style=regex | 6 | string join "|" 7 | ) <$nvm_data/.index 8 | 9 | command --all node | 10 | string match --quiet --invert --regex -- "^$nvm_data" && echo system 11 | end 12 | -------------------------------------------------------------------------------- /fish/functions/_nvm_version_activate.fish: -------------------------------------------------------------------------------- 1 | function _nvm_version_activate --argument-names ver 2 | set --global --export nvm_current_version $ver 3 | set --prepend PATH $nvm_data/$ver/bin 4 | end 5 | -------------------------------------------------------------------------------- /fish/functions/_nvm_version_deactivate.fish: -------------------------------------------------------------------------------- 1 | function _nvm_version_deactivate --argument-names ver 2 | test "$nvm_current_version" = "$ver" && set --erase nvm_current_version 3 | set --local index (contains --index -- $nvm_data/$ver/bin $PATH) && 4 | set --erase PATH[$index] 5 | end 6 | -------------------------------------------------------------------------------- /fish/functions/nvm.fish: -------------------------------------------------------------------------------- 1 | function nvm --description "Node version manager" 2 | for silent in --silent -s 3 | if set --local index (contains --index -- $silent $argv) 4 | set --erase argv[$index] && break 5 | end 6 | set --erase silent 7 | end 8 | 9 | set --local cmd $argv[1] 10 | set --local ver $argv[2] 11 | 12 | if set --query silent && ! set --query cmd[1] 13 | echo "nvm: Version number not specified (see nvm -h for usage)" >&2 14 | return 1 15 | end 16 | 17 | if ! set --query ver[1] && contains -- "$cmd" install use 18 | for file in .nvmrc .node-version 19 | set file (_nvm_find_up $PWD $file) && read ver <$file && break 20 | end 21 | 22 | if ! set --query ver[1] 23 | echo "nvm: Invalid version or missing \".nvmrc\" file" >&2 24 | return 1 25 | end 26 | end 27 | 28 | set --local their_version $ver 29 | 30 | switch "$cmd" 31 | case -v --version 32 | echo "nvm, version 2.2.11" 33 | case "" -h --help 34 | echo "Usage: nvm install Download and activate the specified Node version" 35 | echo " nvm install Install version from nearest .nvmrc file" 36 | echo " nvm use Activate a version in the current shell" 37 | echo " nvm use Activate version from nearest .nvmrc file" 38 | echo " nvm list List installed versions" 39 | echo " nvm list-remote List versions available to install" 40 | echo " nvm list-remote List versions matching a given regular expression" 41 | echo " nvm current Print the currently-active version" 42 | echo " nvm uninstall Uninstall a version" 43 | echo "Options:" 44 | echo " -s or --silent Suppress standard output" 45 | echo " -v or --version Print version" 46 | echo " -h or --help Print this help message" 47 | echo "Variables:" 48 | echo " nvm_arch Override architecture, e.g. x64-musl" 49 | echo " nvm_mirror Use a mirror of the Node binaries" 50 | echo " nvm_default_version Set the default version for new shells" 51 | echo " nvm_default_packages Install a list of packages every time you install a Node version" 52 | case install 53 | _nvm_index_update 54 | 55 | string match --entire --regex -- (_nvm_version_match $ver) <$nvm_data/.index | read ver alias 56 | 57 | if ! set --query ver[1] 58 | echo "nvm: Invalid version number or alias: \"$their_version\"" >&2 59 | return 1 60 | end 61 | 62 | if test ! -e $nvm_data/$ver 63 | set --local os (command uname -s | string lower) 64 | set --local ext tar.gz 65 | set --local arch (command uname -m) 66 | 67 | switch $os 68 | case aix 69 | set arch ppc64 70 | case sunos 71 | case linux 72 | case darwin 73 | case {MSYS_NT,MINGW\*_NT}\* 74 | set os win 75 | set ext zip 76 | case \* 77 | echo "nvm: Unsupported operating system: \"$os\"" >&2 78 | return 1 79 | end 80 | 81 | switch $arch 82 | case i\*86 83 | set arch x86 84 | case x86_64 85 | set arch x64 86 | case arm64 87 | string match --regex --quiet "v(?\d+)" $ver 88 | if test "$os" = darwin -a $major -lt 16 89 | set arch x64 90 | end 91 | case armv6 armv6l 92 | set arch armv6l 93 | case armv7 armv7l 94 | set arch armv7l 95 | case armv8 armv8l aarch64 96 | set arch arm64 97 | end 98 | 99 | set --query nvm_arch && set arch $nvm_arch 100 | 101 | set --local dir "node-$ver-$os-$arch" 102 | set --local url $nvm_mirror/$ver/$dir.$ext 103 | 104 | command mkdir -p $nvm_data/$ver 105 | 106 | if ! set --query silent 107 | echo -e "Installing Node \x1b[1m$ver\x1b[22m $alias" 108 | echo -e "Fetching \x1b[4m$url\x1b[24m\x1b[7m" 109 | end 110 | 111 | if ! command curl $silent --progress-bar --location $url | 112 | command tar --extract --gzip --directory $nvm_data/$ver 2>/dev/null 113 | command rm -rf $nvm_data/$ver 114 | echo -e "\033[F\33[2K\x1b[0mnvm: Invalid mirror or host unavailable: \"$url\"" >&2 115 | return 1 116 | end 117 | 118 | set --query silent || echo -en "\033[F\33[2K\x1b[0m" 119 | 120 | if test "$os" = win 121 | command mv $nvm_data/$ver/$dir $nvm_data/$ver/bin 122 | else 123 | command mv $nvm_data/$ver/$dir/* $nvm_data/$ver 124 | command rm -rf $nvm_data/$ver/$dir 125 | end 126 | end 127 | 128 | if test $ver != "$nvm_current_version" 129 | set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version 130 | _nvm_version_activate $ver 131 | 132 | set --query nvm_default_packages[1] && npm install --global $silent $nvm_default_packages 133 | end 134 | 135 | set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info) 136 | case use 137 | test $ver = default && set ver $nvm_default_version 138 | _nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __ 139 | 140 | if ! set --query ver[1] 141 | echo "nvm: Can't use Node \"$their_version\", version must be installed first" >&2 142 | return 1 143 | end 144 | 145 | if test $ver != "$nvm_current_version" 146 | set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version 147 | test $ver != system && _nvm_version_activate $ver 148 | end 149 | 150 | set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info) 151 | case uninstall 152 | if test -z "$ver" 153 | echo "nvm: Not enough arguments for command: \"$cmd\"" >&2 154 | return 1 155 | end 156 | 157 | test $ver = default && test ! -z "$nvm_default_version" && set ver $nvm_default_version 158 | 159 | _nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __ 160 | 161 | if ! set -q ver[1] 162 | echo "nvm: Node version not installed or invalid: \"$their_version\"" >&2 163 | return 1 164 | end 165 | 166 | set --query silent || printf "Uninstalling Node %s %s\n" $ver (string replace ~ \~ "$nvm_data/$ver/bin/node") 167 | 168 | _nvm_version_deactivate $ver 169 | 170 | command rm -rf $nvm_data/$ver 171 | case current 172 | _nvm_current 173 | case ls list 174 | _nvm_list | _nvm_list_format (_nvm_current) $argv[2] 175 | case lsr {ls,list}-remote 176 | _nvm_index_update || return 177 | _nvm_list | command awk ' 178 | FILENAME == "-" && (is_local[$1] = FNR == NR) { next } { 179 | print $0 (is_local[$1] ? " ✓" : "") 180 | } 181 | ' - $nvm_data/.index | _nvm_list_format (_nvm_current) $argv[2] 182 | case \* 183 | echo "nvm: Unknown command or option: \"$cmd\" (see nvm -h for usage)" >&2 184 | return 1 185 | end 186 | end 187 | 188 | function _nvm_find_up --argument-names path file 189 | test -e "$path/$file" && echo $path/$file || begin 190 | test ! -z "$path" || return 191 | _nvm_find_up (string replace --regex -- '/[^/]*$' "" $path) $file 192 | end 193 | end 194 | 195 | function _nvm_version_match --argument-names ver 196 | string replace --regex -- '^v?(\d+|\d+\.\d+)$' 'v$1.' $ver | 197 | string replace --filter --regex -- '^v?(\d+)' 'v$1' | 198 | string escape --style=regex || 199 | string lower '\b'$ver'(?:/\w+)?$' 200 | end 201 | 202 | function _nvm_list_format --argument-names current regex 203 | command awk -v current="$current" -v regex="$regex" ' 204 | $0 ~ regex { 205 | aliases[versions[i++] = $1] = $2 " " $3 206 | pad = (n = length($1)) > pad ? n : pad 207 | } 208 | END { 209 | if (!i) exit 1 210 | while (i--) 211 | printf((current == versions[i] ? " ▶ " : " ") "%"pad"s %s\n", 212 | versions[i], aliases[versions[i]]) 213 | } 214 | ' 215 | end 216 | 217 | function _nvm_current 218 | command --search --quiet node || return 219 | set --query nvm_current_version && echo $nvm_current_version || echo system 220 | end 221 | 222 | function _nvm_node_info 223 | set --local npm_path (string replace bin/npm-cli.js "" (realpath (command --search npm))) 224 | test -f $npm_path/package.json || set --local npm_version_default (command npm --version) 225 | command node --eval " 226 | console.log(process.version) 227 | console.log('$npm_version_default' ? '$npm_version_default': require('$npm_path/package.json').version) 228 | console.log(process.execPath.replace(require('os').homedir(), '~')) 229 | " 230 | end 231 | -------------------------------------------------------------------------------- /hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | # By knightfall01 as a part of https://github.com/Knightfall01/Hyprland-i3 2 | 3 | # Monitor Configs 4 | # source https://wiki.hyprland.org/Configuring/Monitors/#general 5 | # monitor=,preferred,auto,1 # for pluggin in random monitors 6 | # monitor=,highrr,auto,1 # prefer high refresh rate for all monitors 7 | # monitor=eDP-1,1920x1080,1920x0,1 8 | 9 | #Uncomment this for extending your screen 10 | # monitor=DP-1,1920x1080@60,0x0,1 11 | # monitor=,1920x1080@60,auto,1,mirror,DP-1 12 | #For screen mirroring 13 | monitor=eDP-1,1920x1080@60,0x0,1 14 | monitor=,1920x1080@60,auto,1,mirror,eDP-1 15 | env=XCURSOR_THEME, Breeze 18 16 | input { 17 | kb_layout= us , pl 18 | kb_variant=ffffff 19 | kb_model= 20 | kb_options=compose:rctrl,level3:ralt_switch 21 | kb_rules= 22 | 23 | follow_mouse=1 24 | 25 | touchpad { 26 | natural_scroll=no 27 | disable_while_typing=true 28 | scroll_factor=1 29 | drag_lock = true 30 | } 31 | } 32 | 33 | misc { 34 | disable_hyprland_logo = true 35 | animate_mouse_windowdragging=false 36 | animate_manual_resizes = true 37 | enable_swallow = true 38 | hide_cursor_on_touch = false 39 | } 40 | 41 | binds { 42 | workspace_back_and_forth = true 43 | } 44 | 45 | general { 46 | gaps_in=5 47 | gaps_out=10 48 | border_size=3 49 | col.active_border = 0xffa3e49f 0xff63b2b8 0xff82599c 45deg 50 | col.inactive_border = 0xff6e738d 51 | apply_sens_to_raw=0 52 | sensitivity = 1 53 | col.group_border=0xff89dceb 54 | col.group_border_active=0xff2e8987 55 | } 56 | 57 | decoration { 58 | drop_shadow = true 59 | shadow_range = 4 60 | shadow_render_power = 4 61 | col.shadow = 0xff0f0f0f 62 | rounding = 8 63 | multisample_edges = true 64 | blur { 65 | enabled=true 66 | size=1 67 | passes=4 68 | ignore_opacity=true 69 | new_optimizations=true 70 | } 71 | } 72 | 73 | animations { 74 | bezier = myBezier, 0.05, 0.9, 0.1, 1.05 75 | animation = windows, 1, 3, myBezier 76 | animation = windowsOut, 1, 5, default, popin 80% 77 | animation = border, 1, 10, default 78 | animation = fade, 1, 5, default 79 | animation = workspaces, 1, 7, default 80 | 81 | enabled=1 82 | bezier=overshot,0.05,0.9,0.1,1.1 83 | bezier=overshot,0.13,0.99,0.29,1.1 84 | animation = windowsMove, 1, 5, myBezier 85 | animation = windowsOut, 1, 5, myBezier 86 | animation = fade, 1, 5, default 87 | animation=workspaces,1,4,overshot,slidevert 88 | } 89 | 90 | dwindle { 91 | pseudotile=1 92 | force_split=2 93 | } 94 | 95 | master{ 96 | 97 | } 98 | 99 | gestures { 100 | workspace_swipe=yes 101 | workspace_swipe_fingers=3 102 | } 103 | 104 | windowrule=float,^(zenity)$ 105 | exec=~/.config/hypr/scripts/variables/set_env primary 1 106 | exec= swaybg -i /home/knightfall/Pictures/Wallpapers/street-tn.png 107 | exec= systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP 108 | exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP 109 | exec-once = wl-paste --type text --watch cliphist store #Stores only text data 110 | exec-once = wl-paste --type image --watch cliphist store #Stores only image data 111 | exec-once = /usr/lib/polkit-kde-authentication-agent-1 112 | 113 | 114 | #bar 115 | exec-once = waybar -c ~/.config/waybar/Waybar-3.0/config -s ~/.config/waybar/Waybar-3.0/style.css 116 | bind=SUPER,P,exec, ~/.config/eww/launch_bar 117 | bind=SUPERSHIFT,P,exec,killall eww 118 | bind=SUPER,M,exec,waybar -c ~/.config/waybar/Waybar-3.0/config -s ~/.config/waybar/Waybar-3.0/style.css 119 | bind=SUPERSHIFT,M,exec,killall waybar 120 | 121 | # reize binds 122 | bindm=SUPER,mouse:272,movewindow 123 | bindm=SUPER,mouse:273,resizewindow 124 | bind=,mouse:276,workspace,e-1 #gaming mouse buttons 125 | bind=,mouse:275,workspace,e+1 126 | binde =SUPERCTRL,left,resizeactive,-20 0 127 | binde =SUPERCTRL,right,resizeactive,20 0 128 | binde =SUPERCTRL,up,resizeactive,0 -20 129 | binde =SUPERCTRL,down,resizeactive,0 20 130 | 131 | 132 | # basic keybinds 133 | bind=SUPER,Q,killactive, 134 | bind=SUPERCTRL,M,exit, 135 | bind=SUPER,S,togglefloating, 136 | bind=ALT,space,exec,pkill wofi || wofi -s ~/.config/wofi/menu.css 137 | bind=SUPER,space,pseudo, 138 | bind=SUPERSHIFT,space,pseudo, 139 | bind=SUPER,F,fullscreen 140 | 141 | # Screenshotting 142 | bind=SUPERSHIFT,S,exec,~/.config/hypr/scripts/default/screenshot 143 | bind=SUPER,Print,exec,~/.config/hypr/scripts/default/record_screen 144 | bind=CTRLSHIFT,S,exec,shutter -s 145 | bind=SUPERCTRL,V,exec,wf-recorder -g "$(slurp)" -f ~/Videos/recording.mp4 146 | bind=SUPERSHIFT,V,exec,killall -s SIGINT wf-recorder && dunstify "Recording saved" 147 | 148 | 149 | # basic applications 150 | bind=SUPER,B,exec,vivaldi-stable 151 | bind=SUPERSHIFT,N,exec,vivaldi-snapshot 152 | 153 | # Kitty 154 | bind=SUPERSHIFT,RETURN,exec,edex-ui 155 | bind=SUPER,RETURN,exec,kitty -o 'font_size=13' --title ok_its_kitty 156 | bind=CTRLALT,T,exec,kitty -o 'font_size=13' --title ok_its_kitty 157 | bind=SUPER,t,exec,kitty --start-as=fullscreen -o 'font_size=18' --title all_is_kitty 158 | bind=SUPER,N,exec,nvim 159 | bind=SUPER,I,exec,kitty --title ok_its_kitty --hold nmtui 160 | bind=SUPER,Y,exec,kitty --title ok_its_kitty --hold yay 161 | 162 | # lock screen 163 | bindl=SUPER,L,exec, swaylock -f -e -l -L -s fill -i ~/Pictures/Wallpapers/batman.jpg 164 | bindl=SUPER,X,exec, wlogout 165 | 166 | ### binds for workspaces ### 167 | ## focusing windows 168 | bind=SUPER,left,movefocus,l 169 | bind=SUPER,right,movefocus,r 170 | bind=SUPER,up,movefocus,u 171 | bind=SUPER,down,movefocus,d 172 | # vim-keybinds 173 | bind=SUPER,h,movefocus,l 174 | bind=SUPER,l,movefocus,r 175 | bind=SUPER,k,movefocus,u 176 | bind=SUPER,j,movefocus,d 177 | 178 | ## moving windows 179 | bind=SUPERSHIFT,left,movewindow,l 180 | bind=SUPERSHIFT,right,movewindow,r 181 | bind=SUPERSHIFT,up,movewindow,u 182 | bind=SUPERSHIFT,down,movewindow,d 183 | # vim-keybinds 184 | bind=SUPERSHIFT,h,movewindow,l 185 | bind=SUPERSHIFT,l,movewindow,r 186 | bind=SUPERSHIFT,k,movewindow,u 187 | bind=SUPERSHIFT,j,movewindow,d 188 | 189 | ## workspaces 190 | # focusing other workspaces 191 | bind=SUPER,1,workspace,1 192 | bind=SUPER,2,workspace,2 193 | bind=SUPER,3,workspace,3 194 | bind=SUPER,4,workspace,4 195 | bind=SUPER,5,workspace,5 196 | bind=SUPER,6,workspace,6 197 | bind=SUPER,7,workspace,7 198 | bind=SUPER,8,workspace,8 199 | bind=SUPER,9,workspace,9 200 | bind=SUPER,0,workspace,10 201 | bind=ALT,1,workspace,1 202 | bind=ALT,2,workspace,2 203 | bind=ALT,3,workspace,3 204 | bind=ALT,4,workspace,4 205 | bind=ALT,5,workspace,5 206 | bind=ALT,6,workspace,6 207 | bind=ALT,7,workspace,7 208 | 209 | bind=SUPER,g,togglegroup 210 | bind=SUPER,tab,changegroupactive 211 | 212 | # moving windows to other workspaces 213 | bind=SUPERSHIFT,1,movetoworkspace,1 214 | bind=SUPERSHIFT,2,movetoworkspace,2 215 | bind=SUPERSHIFT,3,movetoworkspace,3 216 | bind=SUPERSHIFT,4,movetoworkspace,4 217 | bind=SUPERSHIFT,5,movetoworkspace,5 218 | bind=SUPERSHIFT,6,movetoworkspace,6 219 | bind=SUPERSHIFT,7,movetoworkspace,7 220 | bind=SUPERSHIFT,8,movetoworkspace,8 221 | bind=SUPERSHIFT,9,movetoworkspace,9 222 | bind=SUPERSHIFT,0,movetoworkspace,10 223 | bind=ALTSHIFT,1,movetoworkspace,1 224 | 225 | # moving windows to other workspaces (silent) 226 | bind=SUPERCTRL,1,movetoworkspacesilent,1 227 | bind=SUPERCTRL,2,movetoworkspacesilent,2 228 | bind=SUPERCTRL,3,movetoworkspacesilent,3 229 | bind=SUPERCTRL,4,movetoworkspacesilent,4 230 | bind=SUPERCTRL,5,movetoworkspacesilent,5 231 | bind=SUPERCTRL,6,movetoworkspacesilent,6 232 | bind=SUPERCTRL,7,movetoworkspacesilent,7 233 | bind=SUPERCTRL,8,movetoworkspacesilent,8 234 | bind=SUPERCTRL,9,movetoworkspacesilent,9 235 | bind=SUPERCTRL,0,movetoworkspacesilent,10 236 | 237 | # moving to other wokspace with mouse control 238 | bind=SUPER,mouse_down,workspace,e-1 239 | bind=SUPER,mouse_up,workspace,e+1 240 | 241 | # simple movement between spaces 242 | bind=SUPER,Z,workspace,e-1 243 | # bind=SUPER,tab,workspace,e+1 244 | bind=SUPERSHIFT,minus,togglespecialworkspace, 245 | bind=SUPER,minus,movetoworkspace,special 246 | 247 | 248 | bind=SUPER,n,exec,kitty --title ok_its_kitty --hold nvim 249 | 250 | # Audio 251 | bind=,XF86AudioPlay,exec,playerctl play-pause 252 | bind=,XF86AudioPrev,exec,playerctl previous 253 | bind=,XF86AudioNext,exec,playerctl next 254 | 255 | bindl=,XF86AudioMedia,exec,playerctl play-pause 256 | bindl=,XF86AudioStop,exec,playerctl stop 257 | 258 | bindle=,XF86AudioRaiseVolume,exec,pactl set-sink-volume 0 +5% # amixer -D pulse sset Master 5%- 259 | bindle=,XF86AudioLowerVolume,exec,pactl set-sink-volume 0 -5% # amixer -D pulse sset Master 5%+ 260 | bindle=,XF86AudioMute,exec,pactl set-sink-mute 0 toggle 261 | 262 | bindl=SUPERSHIFT,B,exec,blueberry 263 | # brightness 264 | bindle=,XF86MonBrightnessUp,exec,brightnessctl set 5%+ 265 | bindle=,XF86MonBrightnessDown,exec,brightnessctl set 5%- 266 | 267 | # will switch to a submap called resize 268 | bind=SUPER,R,submap,resize 269 | 270 | # will start a submap called "resize" 271 | submap=resize 272 | 273 | # sets repeatable binds for resizing the active window 274 | binde=,right,resizeactive,10 0 275 | binde=,left,resizeactive,-10 0 276 | binde=,up,resizeactive,0 -10 277 | binde=,down,resizeactive,0 10 278 | 279 | # use reset to go back to the global submap 280 | bind=,escape,submap,reset 281 | 282 | # will reset the submap, meaning end the current one and return to the global one 283 | submap=reset 284 | 285 | # keybinds further down will be global again... 286 | # layerrule=blur,^(waybar)$ 287 | -------------------------------------------------------------------------------- /hypr/scripts/autolaunch_on_workspace: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | hyprctl keyword windowrule "workspace 8 silent,Caprine" && hyprctl dispatch exec "caprine" 4 | hyprctl keyword windowrule "workspace 7 silent,discord" && hyprctl dispatch exec "discord" 5 | hyprctl keyword windowrule "workspace special silent,kitty" && hyprctl dispatch exec "kitty" 6 | 7 | sleep 15 8 | 9 | hyprctl keyword windowrule "unset,discord" 10 | hyprctl keyword windowrule "unset,Caprine" 11 | hyprctl keyword windowrule "unset,kitty" 12 | #hyprctl reload 13 | -------------------------------------------------------------------------------- /hypr/scripts/autostart: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | # variables 4 | config=$HOME/.config/hypr 5 | scripts=$config/scripts 6 | 7 | # notification daemon 8 | dunst & 9 | 10 | # battery notification 11 | $scripts/default/battery_notif & 12 | 13 | # screen locking when idle 14 | $scripts/default/idle_handler & 15 | 16 | # effects 17 | # $scripts/rgb & 18 | 19 | # other 20 | ## persistent clipboard 21 | wl-clip-persist --clipboard regular & 22 | wl-paste --watch cliphist store & 23 | ## start xp pen drawing software minimized 24 | /usr/lib/pentablet/pentablet.sh /mini & 25 | ## make kde connect work (source: https://www.reddit.com/r/kde/comments/l6t6qu/please_make_kdeconnectcli_work_in_headless_moded/) 26 | /usr/lib/kdeconnectd -platform offscreen & 27 | ## Gnome authentication 28 | /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & 29 | 30 | # ... this might not be necessary anymore ? idk 31 | dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP & 32 | systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP & 33 | 34 | # launch portals after executing the above 35 | $scripts/default/launch_portals & -------------------------------------------------------------------------------- /hypr/scripts/default/battery_notif: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | prev_bat=`acpi -b | grep -P -o '[0-9]+(?=%)'` 4 | 5 | while true 6 | do 7 | curr_bat=`acpi -b | grep -P -o '[0-9]+(?=%)'` 8 | if [[ $curr_bat -eq 100 && $prev_bat -lt 100 ]]; then 9 | notify-send "Fully charged" "Level: ${curr_bat}%" 10 | elif [[ $curr_bat -le 20 && $prev_bat -gt 20 ]]; then 11 | notify-send --urgency=CRITICAL "Battery Low" "Level: ${curr_bat}%" 12 | elif [[ $curr_bat -le 10 && $prev_bat -gt 10 ]]; then 13 | notify-send --urgency=CRITICAL "Battery Low" "Level: ${curr_bat}%" 14 | fi 15 | prev_bat=curr_bat 16 | sleep 60 17 | done -------------------------------------------------------------------------------- /hypr/scripts/default/expand_toolbar: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | LOCK=/tmp/expand_toolbar.lock 4 | 5 | if [ -f "$LOCK" ]; then 6 | echo expand 7 | rm -f "$LOCK" 8 | else 9 | echo collapse 10 | touch "$LOCK" 11 | fi 12 | -------------------------------------------------------------------------------- /hypr/scripts/default/idle_handler: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | lockcmd="swaylock --screenshots --clock --indicator-idle-visible --indicator-radius 100 --indicator-thickness 7 --ignore-empty-password --ring-color 53E2AE --ring-ver-color 53E2AE --ring-wrong-color EE4F84 --key-hl-color EE4F84 --text-color ffffff --text-ver-color ffffff --text-wrong-color EE4F84 --line-color 00000000 --inside-color 00000088 --inside-ver-color 00000088 --inside-wrong-color 00000088 --separator-color 00000000 --fade-in 0.15 --effect-blur 10x2" 4 | 5 | #lockcmd="swaylockd --screenshots --indicator --clock --inside-wrong-color f38ba8 --ring-wrong-color 11111b --inside-clear-color a6e3a1 --ring-clear-color 11111b --inside-ver-color 89b4fa --ring-ver-color 11111b --text-color f5c2e7 --indicator-radius 80 --indicator-thickness 5 --effect-blur 10x7 --effect-vignette 0.2:0.2 --ring-color 11111b --key-hl-color f5c2e7 --line-color 313244 --inside-color 0011111b --separator-color 00000000 --fade-in 0.1" 6 | 7 | bat=$(ls /sys/class/power_supply | grep -m 1 "BAT") 8 | 9 | sway-audio-idle-inhibit & 10 | swayidle -w \ 11 | timeout 1200 "$lockcmd & if [[ \"$(cat /sys/class/power_supply/$bat/status)\" == \"Discharging\" ]]; then systemctl suspend; else hyprctl dispatch dpms off; fi" resume "hyprctl dispatch dpms on"\ 12 | before-sleep "$lockcmd" 13 | -------------------------------------------------------------------------------- /hypr/scripts/default/launch_portals: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 4 3 | killall xdg-desktop-portal-wlr 4 | killall xdg-desktop-portal 5 | /usr/lib/xdg-desktop-portal-wlr & 6 | sleep 4 7 | /usr/lib/xdg-desktop-portal & 8 | -------------------------------------------------------------------------------- /hypr/scripts/default/lock: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | swaylockd \ 3 | --screenshots \ 4 | --indicator \ 5 | --clock \ 6 | --inside-wrong-color f38ba8 \ 7 | --ring-wrong-color 11111b \ 8 | --inside-clear-color a6e3a1 \ 9 | --ring-clear-color 11111b \ 10 | --inside-ver-color 89b4fa \ 11 | --ring-ver-color 11111b \ 12 | --text-color f5c2e7 \ 13 | --indicator-radius 80 \ 14 | --indicator-thickness 5 \ 15 | --effect-blur 10x7 \ 16 | --effect-vignette 0.2:0.2 \ 17 | --ring-color 11111b \ 18 | --key-hl-color f5c2e7 \ 19 | --line-color 313244 \ 20 | --inside-color 0011111b \ 21 | --separator-color 00000000 \ 22 | --fade-in 0.1 & -------------------------------------------------------------------------------- /hypr/scripts/default/lock.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | swaylockd \ 3 | --screenshots \ 4 | --indicator \ 5 | --clock \ 6 | --inside-wrong-color f38ba8 \ 7 | --ring-wrong-color 11111b \ 8 | --inside-clear-color a6e3a1 \ 9 | --ring-clear-color 11111b \ 10 | --inside-ver-color 89b4fa \ 11 | --ring-ver-color 11111b \ 12 | --text-color f5c2e7 \ 13 | --indicator-radius 80 \ 14 | --indicator-thickness 5 \ 15 | --effect-blur 10x7 \ 16 | --effect-vignette 0.2:0.2 \ 17 | --ring-color 11111b \ 18 | --key-hl-color f5c2e7 \ 19 | --line-color 313244 \ 20 | --inside-color 0011111b \ 21 | --separator-color 00000000 \ 22 | --fade-in 0.1 & 23 | -------------------------------------------------------------------------------- /hypr/scripts/default/record_screen: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # If an instance of wf-recorder is running under this user kill it with SIGINT and exit 4 | pkill --euid "$USER" --signal SIGINT wf-recorder && exit 5 | 6 | # Define paths 7 | DefaultSaveDir=$HOME'/Videos/Recordings$(date +%s).png' 8 | TmpPathPrefix='/tmp/mp4-record' 9 | TmpRecordPath=$TmpPathPrefix'-cap.mp4' 10 | TmpPalettePath=$TmpPathPrefix'-palette.png' 11 | 12 | # Trap for cleanup on exit 13 | OnExit() { 14 | [[ -f $TmpRecordPath ]] && rm -f "$TmpRecordPath" 15 | [[ -f $TmpPalettePath ]] && rm -f "$TmpPalettePath" 16 | } 17 | trap OnExit EXIT 18 | 19 | # Set umask so tmp files are only acessible to the user 20 | umask 177 21 | 22 | # Get selection and honor escape key 23 | Coords=$(slurp) || exit 24 | 25 | # Capture video using slup for screen area 26 | # timeout and exit after 10 minutes as user has almost certainly forgotten it's running 27 | timeout 600 wf-recorder -g "$Coords" -a -f "$TmpRecordPath" || exit 28 | 29 | # Get the filename from the user and honor cancel 30 | SavePath=$( zenity \ 31 | --file-selection \ 32 | --save \ 33 | --confirm-overwrite \ 34 | --file-filter=*.mp4 \ 35 | --filename="$DefaultSaveDir"'/.mp4' \ 36 | ) || exit 37 | 38 | # Copy the file from the temporary path to the save path 39 | cp $TmpRecordPath $SavePath 40 | 41 | # copy the file location to your clipboard 42 | wl-copy $SavePath 43 | 44 | # Append .gif to the SavePath if it's missing 45 | #[[ $SavePath =~ \.gif$ ]] || SavePath+='.gif' 46 | 47 | # Produce a pallete from the video file 48 | #ffmpeg -i "$TmpRecordPath" -filter_complex "palettegen=stats_mode=full" "$TmpPalettePath" -y || exit 49 | 50 | # Return umask to default 51 | umask 022 52 | 53 | # Use pallete to produce a gif from the video file 54 | # ffmpeg -i "$TmpRecordPath" -i "$TmpPalettePath" -filter_complex "paletteuse=dither=sierra2_4a" "$SavePath" -y || exit 55 | -------------------------------------------------------------------------------- /hypr/scripts/default/rgb_borders: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import subprocess 4 | import time 5 | from colour import Color 6 | 7 | gradient = [ 8 | "#ff0000", 9 | "#00ff00", 10 | "#0000ff", 11 | ] 12 | 13 | def color_range(*args): 14 | l = [] 15 | for i,color in enumerate(args): 16 | if i == len(args)-1: 17 | break 18 | l.extend(color.range_to(args[i+1], 25)) 19 | return l 20 | 21 | def rgb_to_hex(r,g,b): 22 | return '%02x%02x%02x' % (r,g,b) 23 | 24 | def set_color(r,g,b): 25 | print(rgb_to_hex(r,g,b)) 26 | subprocess.run(f"hyprctl keyword dwindle:col.group_border_active 0xff{rgb_to_hex(r,g,b)}".split()) 27 | subprocess.run(f"hyprctl keyword dwindle:col.group_border 0x66{rgb_to_hex(r,g,b)}".split()) 28 | 29 | colors = color_range(*[Color(i) for i in gradient]) 30 | 31 | while 1: 32 | for col in colors: 33 | set_color(int(col.red*255), int(col.green*255), int(col.blue*255)) 34 | time.sleep(0.05) 35 | for col in colors[::-1]: 36 | set_color(int(col.red*255), int(col.green*255), int(col.blue*255)) 37 | time.sleep(0.05) -------------------------------------------------------------------------------- /hypr/scripts/default/screenshot: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | # grim -g "$(slurp)" - | wl-copy 4 | grim -t jpeg -q 100 -g "$(slurp)" - | swappy -f - -o ~/Pictures/Screenshots/screenshot$(date +%s).jpeg 5 | # grim -g "0,0 2048x1280" - | swappy -f - -o ~/Pictures/Screenshots/screenshot$(date +%s).png 6 | -------------------------------------------------------------------------------- /hypr/scripts/default/toolbar_state: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | LOCK=/tmp/expand_toolbar.lock 4 | 5 | if [ -f "$LOCK" ]; then 6 | exit 0 7 | else 8 | exit 1 9 | fi 10 | -------------------------------------------------------------------------------- /hypr/scripts/default/tools/dynamic: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import subprocess 4 | from pathlib import Path 5 | import json 6 | import pickle 7 | import time 8 | import threading 9 | 10 | OUT = f"{Path.home()}/.config/hypr/store/dynamic_out.txt" 11 | # PREV_PATH = f"{Path.home()}/.config/hypr/store/prev.txt" 12 | prev = None 13 | 14 | def print(ar): 15 | with open(OUT,"w") as f: 16 | f.write(json.dumps(ar)) 17 | 18 | # with open(f"{Path.home()}/.config/hypr/im_here","w") as f: 19 | # f.write("") 20 | 21 | global PAUSE_MEDIA 22 | PAUSE_MEDIA = False 23 | 24 | def notif_watcher(): 25 | with open(f"{Path.home()}/.config/hypr/store/latest_notif","rb") as f: 26 | new = pickle.load(f) 27 | global prev 28 | if new != prev: 29 | print(json.dumps({"class":"none","text":""})) 30 | global PAUSE_MEDIA 31 | PAUSE_MEDIA = True 32 | urgency = "low" 33 | if new["urgency"] == "CRITICAL": 34 | urgency = "critical" 35 | elif new["urgency"] == "NORMAL": 36 | urgency = "normal" 37 | doc = { 38 | "class":urgency, 39 | "text":f'[{new["app_name"]}] {new["summary"]}', 40 | "tooltip":"notification" 41 | } 42 | print(doc) 43 | time.sleep(3) 44 | print({"class":"none","text":""}) 45 | PAUSE_MEDIA = False 46 | prev = new 47 | 48 | 49 | def start_watcher(): 50 | while 1: 51 | notif_watcher() 52 | time.sleep(0.5) 53 | 54 | 55 | def debug(): 56 | while 1: 57 | print(PAUSE_MEDIA) 58 | time.sleep(0.5) 59 | t = threading.Thread(target=start_watcher) 60 | d = threading.Thread(target=debug) 61 | t.start() 62 | # d.start() 63 | 64 | 65 | 66 | with open("test.log", "wb") as f: 67 | process = subprocess.Popen( 68 | "waybar-mpris --position --autofocus".split(), 69 | stdout=subprocess.PIPE 70 | ) 71 | print(json.dumps({"class":"none","text":""})) 72 | for line in iter(lambda: process.stdout.readline().decode("utf-8"), b""): 73 | dat = json.loads(line) 74 | if not PAUSE_MEDIA: 75 | if "text" in dat: 76 | dat["text"] = dat["text"].replace(" ", "").replace("", "") 77 | print(dat) 78 | else: 79 | print({"class":"none","text":""}) 80 | 81 | t.join() 82 | # d.join() 83 | -------------------------------------------------------------------------------- /hypr/scripts/default/tools/expand: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | TEMP=/tmp/current_wall 3 | 4 | files=(~/.config/hypr/wallpapers/*) 5 | 6 | hypr=~/.config/hypr 7 | scripts=$hypr/scripts 8 | 9 | cooldown=0.1 10 | 11 | 12 | while true 13 | do 14 | case "$1" in 15 | "cycle") 16 | index=$(cat $TEMP) 17 | index=$((index+1)) 18 | if [ $index -ge ${#files[@]} ]; then 19 | index=0 20 | fi 21 | echo $index > $TEMP 22 | $scripts/wall "${files[$index]}" 23 | exit 0 24 | ;; 25 | "arrow-icon") 26 | if $scripts/toolbar_state; then 27 | echo "" 28 | else 29 | echo "" 30 | fi 31 | ;; 32 | "ss-icon") 33 | if $scripts/toolbar_state; then 34 | echo "" 35 | else 36 | echo "" 37 | fi 38 | ;; 39 | # "media") 40 | 41 | *) 42 | if $scripts/toolbar_state; then 43 | echo " " 44 | else 45 | echo "" 46 | fi 47 | ;; 48 | esac 49 | sleep $cooldown 50 | done -------------------------------------------------------------------------------- /hypr/scripts/default/tools/notif: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import pickle 3 | import os 4 | from pathlib import Path 5 | dat = { 6 | "app_name":os.getenv("DUNST_APP_NAME"), 7 | "summary":os.getenv("DUNST_SUMMARY"), 8 | "body":os.getenv("DUNST_BODY"), 9 | "icon":os.getenv("DUNST_ICON_path"), 10 | "urgency":os.getenv("DUNST_URGENCY"), 11 | "id":os.getenv("DUNST_ID"), 12 | "progress":os.getenv("DUNST_PROGRESS"), 13 | "category":os.getenv("DUNST_CATEGORY"), 14 | "stack_tag":os.getenv("DUNST_STACK_TAG"), 15 | "urls":os.getenv("DUNST_URLS"), 16 | "timeout":os.getenv("DUNST_TIMEOUT"), 17 | "timestamp":os.getenv("DUNST_TIMESTAMP"), 18 | "desktop-entry":os.getenv("DUNST_DESKTOP_ENTRY"), 19 | "stack-tag":os.getenv("DUNST_STACK_TAG"), 20 | } 21 | with open(f"{Path.home()}/.config/hypr/store/latest_notif", "wb") as f: 22 | pickle.dump(dat, f) 23 | -------------------------------------------------------------------------------- /hypr/scripts/default/tools/start_dyn: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | while true 4 | do 5 | # echo "" 6 | out=$(cat ~/.config/hypr/store/dynamic_out.txt) 7 | echo "$out" | jq --unbuffered --compact-output 8 | # cat ~/.config/hypr/scripts/tools/dynamic_out.txt 9 | sleep 0.5 10 | done -------------------------------------------------------------------------------- /hypr/scripts/default/tools/swww: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/hypr/scripts/default/tools/swww -------------------------------------------------------------------------------- /hypr/scripts/default/workspaces: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import subprocess 3 | import time 4 | 5 | def current_workspace(): 6 | active = subprocess.run("hyprctl activewindow".split(), stdout=subprocess.PIPE).stdout.decode("utf-8").strip() 7 | return int(active.split(":")[4].split()[0].strip()) 8 | 9 | 10 | def gen_map(e): 11 | current = current_workspace() 12 | print(f"{current=}") 13 | if e < current: 14 | return [i for i in range(e+1, current, -1)] 15 | elif e > current: 16 | return [i for i in range(current,e+1)] 17 | else: 18 | return [current] 19 | 20 | def go_to(e): 21 | print(f"change to {e}") 22 | _map = gen_map(e) 23 | print(f"{_map=}") 24 | t = 0.03*len(_map) 25 | for i in _map: 26 | subprocess.run(f"hyprctl dispatch workspace {i}".split()) 27 | time.sleep(t) 28 | if t != 0.01: 29 | t -= 0.03 30 | else: 31 | t -= 0.02 32 | 33 | 34 | go_to(10) 35 | -------------------------------------------------------------------------------- /hypr/scripts/default_app: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | TERM=kitty #Tag 1 3 | BROWSER=brave #Tag 2 4 | DOC=libreoffice #Tag 3 5 | FILE=dolphin #Tag 4 6 | PLAYER=vlc #Tag 5 7 | GAME=steam-native #Tag 6 8 | PHOTO=krita #Tag 7 9 | SANDBOX="mailspring --no-sandbox" #Tag 8 10 | DEV=neovide #Tag 9 11 | 12 | #Lookup Focused tag 13 | TAG=$(hyprctl monitors | grep -B 4 "focused: yes" | awk 'NR==2 {print $1}' RS='(' FS=')') 14 | 15 | #Executes application based on number of focused tag 16 | case "$TAG" in 17 | 1) $TERM &> /dev/null ;; 18 | 2) $BROWSER &> /dev/null ;; 19 | 3) $DOC &> /dev/null ;; 20 | 4) $FILE &> /dev/null ;; 21 | 5) $PLAYER &> /dev/null ;; 22 | 6) $GAME &> /dev/null ;; 23 | 7) $PHOTO &> /dev/null ;; 24 | 8) $SANDBOX &> /dev/null ;; 25 | 9) $DEV &> /dev/null ;; 26 | esac 27 | -------------------------------------------------------------------------------- /hypr/scripts/exec_wofi: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | function app_launcher(){ 4 | wofi --show drun 5 | } 6 | 7 | 8 | function wifi_menu(){ 9 | wifi4wofi & 10 | } 11 | 12 | doc() { 13 | echo "Usage: 14 | set_env [Options] 15 | 16 | Options: 17 | application_launcher Runs wofi application launcher 18 | wifi Runs wofi wifi menu" 19 | } 20 | 21 | 22 | killall wofi 23 | 24 | case $1 in 25 | application_launcher) app_launcher ;; 26 | wifi) wifi_menu ;; 27 | *) doc ;; 28 | esac -------------------------------------------------------------------------------- /hypr/scripts/mako.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # this file is here to make sure mako gets new pywal themes 3 | 4 | # Terminate already running mako instances 5 | killall -q mako 6 | 7 | # Wait until the processes have been shut down 8 | while pgrep -u $UID -x mako >/dev/null; do sleep 1; done 9 | 10 | # Launch mako 11 | mako & disown 12 | -------------------------------------------------------------------------------- /hypr/scripts/variables/load_envs: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # use this script with `source path/to/this/script` to load the environment variables for use in your script 4 | 5 | temp_folder=~/.config/hypr/scripts/variables/temp 6 | 7 | # sets the PRIMARY_MONITOR_ID environment variable 8 | function exportPrimary(){ 9 | if ! test -f "$temp_folder/primary_screen"; then 10 | touch $temp_folder/primary_screen 11 | fi 12 | # for display id run: 'hyprctl monitors' 13 | # id of your primary screen: () 14 | primary_monitor_id=$(head -1 $temp_folder/primary_screen) 15 | 16 | # all available monitors 17 | NB_MONITORS=($(hyprctl monitors -j | jq -r '.[] | .id')) 18 | # check if monitor is available 19 | if [[ ! " ${NB_MONITORS[*]} " =~ " ${primary_monitor_id} " ]]; then 20 | primary_monitor_id=0 21 | fi 22 | 23 | export PRIMARY_MONITOR_ID=$primary_monitor_id 24 | } 25 | 26 | # sets the BACKGROUND_IMAGE environment variable 27 | function exportBackground(){ 28 | if ! test -f "$temp_folder/background"; then 29 | touch $temp_folder/background 30 | fi 31 | # load the background variables 32 | background_image=$(head -1 $temp_folder/background) 33 | 34 | [ -z $background_image ] && background_image="~/.config/hypr/themes/apatheia/wallpapers/Planet.png" 35 | 36 | export BACKGROUND_IMAGE=$background_image 37 | } 38 | 39 | exportPrimary 40 | exportBackground -------------------------------------------------------------------------------- /hypr/scripts/variables/set_env: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | save_location=~/.config/hypr/scripts/variables/temp 3 | 4 | function setVar(){ 5 | checkENVDir $2 6 | echo $1 > "$save_location/$2" 7 | } 8 | 9 | function checkENVDir() { 10 | if ! test -d "$save_location"; then 11 | mkdir $save_location 12 | fi 13 | if ! test -f "$save_location/$1"; then 14 | touch $save_location/$1 15 | fi 16 | } 17 | 18 | doc() { 19 | echo "Usage: 20 | set_env [Options] 21 | 22 | Options: 23 | primary Sets the primary screen 24 | background Sets the image location of the active wallpaper" 25 | } 26 | 27 | case $1 in #function #file param #file name 28 | primary) setVar $2 primary_screen ;; 29 | background) setVar $2 background ;; 30 | help) doc ;; 31 | *) doc ;; 32 | esac 33 | -------------------------------------------------------------------------------- /hypr/scripts/variables/temp/background: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/hypr/scripts/variables/temp/background -------------------------------------------------------------------------------- /hypr/scripts/variables/temp/primary_screen: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /hypr/scripts/workspace: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | monitors=/tmp/hypr/monitors_temp 4 | hyprctl monitors > $monitors 5 | 6 | if [[ -z $1 ]]; then 7 | workspace=$(grep -B 4 "focused: no" "$monitors" | awk 'NR==1 {print $3}') 8 | else 9 | workspace=$1 10 | fi 11 | 12 | 13 | activemonitor=$(grep -B 6 "focused: yes" "$monitors" | awk 'NR==1 {print $2}') 14 | passivemonitor=$(grep -B 2 "($workspace)" "$monitors" | awk 'NR==1 {print $2}') 15 | #activews=$(grep -A 2 "$activemonitor" "$monitors" | awk 'NR==3 {print $1}' RS='(' FS=')') 16 | passivews=$(grep -A 2 "$passivemonitor" "$monitors" | awk 'NR==3 {print $1}' RS='(' FS=')') 17 | 18 | if [[ $workspace -eq $passivews ]] && [[ $activemonitor != "$passivemonitor" ]]; then 19 | hyprctl dispatch swapactiveworkspaces "$activemonitor" "$passivemonitor" 20 | else 21 | hyprctl dispatch moveworkspacetomonitor "$workspace $activemonitor" && hyprctl dispatch workspace "$workspace" 22 | fi 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /hypr/scripts/xdg-desktop-portal-hyprland.bak: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 1 3 | killall xdg-desktop-portal-hyprland 4 | killall xdg-desktop-portal-wlr 5 | killall xdg-desktop-portal 6 | /usr/libexec/xdg-desktop-portal-hyprland & 7 | sleep 2 8 | /usr/lib/xdg-desktop-portal & 9 | -------------------------------------------------------------------------------- /kitty/kitty-theme.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin 4 | ## author: Pocco81 (https://github.com/Pocco81) 5 | ## license: MIT 6 | ## upstream: https://raw.githubusercontent.com/catppuccin/kitty/main/catppuccin.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | # The basic colors 10 | foreground #E2E0EC 11 | #background #27163a 12 | background #191a24 13 | #background #12121a 14 | selection_foreground #D9E0EE 15 | selection_background #575268 16 | 17 | # Transparent Background 18 | background_opacity 1 19 | 20 | # Cursor colors 21 | cursor #F5E0DC 22 | cursor_text_color #1E1E2E 23 | 24 | # URL underline color when hovering with mouse 25 | url_color #F5E0DC 26 | 27 | # kitty window border colors 28 | active_border_color #C9CBFF 29 | inactive_border_color #575268 30 | bell_border_color #FAE3B0 31 | 32 | # OS Window titlebar colors 33 | wayland_titlebar_color system 34 | macos_titlebar_color system 35 | 36 | #: Tab bar colors 37 | active_tab_foreground #F5C2E7 38 | active_tab_background #575268 39 | inactive_tab_foreground #D9E0EE 40 | inactive_tab_background #1E1E2E 41 | tab_bar_background #161320 42 | 43 | # Colors for marks (marked text in the terminal) 44 | 45 | mark1_foreground #1E1E2E 46 | mark1_background #96CDFB 47 | mark2_foreground #1E1E2E 48 | mark2_background #F5C2E7 49 | mark3_foreground #1E1E2E 50 | mark3_background #B5E8E0 51 | 52 | #: The 16 terminal colors 53 | 54 | #: black 55 | color0 #15161e 56 | color8 #414868 57 | 58 | #: red 59 | color1 #e77d8f 60 | color9 #e77d8f 61 | 62 | #: green 63 | color2 #a8cd76 64 | color10 #a8cd76 65 | 66 | #: yellow 67 | color3 #d9b172 68 | color11 #d9b172 69 | 70 | #: blue 71 | color4 #82a1f1 72 | color12 #82a1f1 73 | 74 | #: magenta 75 | color5 #b69bf1 76 | color13 #b69bf1 77 | 78 | #: cyan 79 | color6 #90cdfa 80 | color14 #90cdfa 81 | 82 | #: white 83 | color7 #aab1d3 84 | color15 #aab1d3 85 | 86 | #font_family Symbols only 87 | #font_family Caskaydia Cove 88 | #font_family JetBrainsMono Regular 89 | #bold_font auto 90 | #italic_font auto 91 | 92 | font_size 16 93 | 94 | #font_family Iosevka 95 | font_family JetBrains Mono Regular 96 | bold_font JetBrains Mono Bold 97 | italic_font JetBrains Mono Italic 98 | bold_italic_font JetBrains Mono Bold Italic 99 | #bold_font auto 100 | #italic_font auto 101 | #bold_italic_font auto 102 | 103 | -------------------------------------------------------------------------------- /kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # BEGIN_KITTY_THEME 2 | # Rosé Pine 3 | include kitty-theme.conf.tokyonight 4 | # END_KITTY_THEME 5 | window_padding_width 7 6 | # font_size 12 7 | confirm_os_window_close 0 8 | -------------------------------------------------------------------------------- /neofetch/logo.txt: -------------------------------------------------------------------------------- 1 | ​${c1} 2 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⡿⣿⢏⡼⠀⢀⣾⢃⣼⠏⢠⡾⠃⣠⠏⠀⠁⣀⠀⡁⠀⠀⣠⡈⠉⡉⠉⢻⡄⠀⠀⠈⠈⢄⠐⣦ 3 | ⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣯⣾⠃⣼⢁⢠⡿⣡⣾⠃⣴⣿⠁⣠⡟⠀⠄⠡⢀⠈⠀⣠⣱⣿⠇⠡⠄⠀⠀⢿⡆⠈⠄⡁⠈⣳⣽ 4 | ⠄⠁⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣯⣿⠇⣼⡇⠀⣿⢓⣿⠧⣼⣻⠇⢠⣿⠁⠀⠌⠰⠀⢀⣴⣿⡟⣹⠀⠐⡌⠄⠸⡌⣿⠀⠀⠄⠄⢹⣿ 5 | ⠄⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣟⣟⢨⣿⠀⣼⣏⣾⡟⣰⣟⣿⢣⣿⡟⠀⠈⢀⢀⣄⣾⣿⡟⣇⣿⣀⡐⣈⡀⠐⣿⢹⡇⠀⠁⠂⢸⣿ 6 | ⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⣹⡇⣯⣿⠀⣿⣿⣿⣿⣿⣼⣧⡟⣽⡃⠀⢈⠈⣭⣿⡿⠃⠉⣿⣿⡍⢉⡏⠙⠻⣿⣼⡷⣬⣶⢷⣿⡟ 7 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢽⣸⡗⣯⣿⢘⣿⢼⣿⣿⣿⣿⣿⢠⣿⠀⠀⣠⡾⣻⣟⣡⣄⡀⣽⡏⣧⢸⡇⠂⠱⢺⣿⣗⡻⣽⣾⣿⠘ 8 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⡿⣷⣹⣿⡞⡿⣸⣿⣿⣿⣿⡏⢸⡿⠀⣰⡿⢣⡿⢻⣿⣿⣷⣿⣥⣿⣾⢡⠀⠐⣾⣿⡝⣧⣿⣿⢹⡀ 9 | ⠀⠀⠀⠀⢀⣠⣄⣀⣀⣀⣠⣸⣷⣿⣿⣿⢿⣇⠹⣟⡹⠿⡟⠀⠀⣿⣼⠏⢠⠋⠀⣿⣿⣿⣿⣿⣿⠿⣿⡇⠀⢨⣿⣿⡽⣟⡿⠁⢸⠅ 10 | ⠀⠀⠀⢰⣿⡟⠿⠿⢯⡿⣽⣿⣻⣿⣯⣿⣌⣷⠀⠉⠛⠁⠀⠀⢨⡿⠁⠀⠀⠀⠀⣿⠟⣿⢿⣿⠟⣰⡟⠀⠠⣼⣿⢯⣽⠟⣠⠀⢸⡇ 11 | ⠀⠀⢠⣿⣻⠃⢠⣄⣤⣔⣃⡀⠉⠉⠙⠛⠻⠾⢧⣤⣤⣤⣤⣀⣈⠀⠀⠀⠀⠀⠀⠙⠿⠶⠞⠁⣰⡿⠁⢀⣽⢻⣿⠟⠁⠀⢹⡄⠐⣿ 12 | ⡄⠀⣾⣧⡟⠀⣿⡏⠉⠉⠛⠁⢈⣿⠃⠀⠀⠀⢠⣦⡀⢠⣌⡉⠙⠛⠛⠷⠶⠶⠴⣶⣤⣦⣰⣾⡟⠁⢠⡾⢫⣿⡟⠀⠰⠈⢌⣧⠀⢿ 13 | ⡁⠀⣿⣽⠃⠀⠻⣿⣦⡀⠐⡁⢸⣟⠀⠀⠀⠀⢸⣿⡉⢸⡿⠁⠀⠁⠈⣷⡦⣷⣤⣤⣄⣠⡉⠉⠙⠛⣿⡿⣟⣿⣇⠀⠰⢈⠀⢿⡀⢈ 14 | ⢶⣴⣿⡟⠀⠀⠀⠀⠛⢿⣦⢀⣿⡟⠶⠶⢶⣦⣿⡇⡘⣿⡇⠀⠀⠀⢀⣿⠁⠀⠉⢹⣿⠛⠛⠋⠀⢠⣿⣗⡣⢿⣿⠀⠐⠠⠀⢸⣷⡀ 15 | ⣿⢿⣷⡇⠰⢷⣤⣤⣤⣿⢿⣸⣿⠁⠀⠀⠀⢠⣿⢱⢱⣿⠁⠀⠀⠀⣸⣿⠀⠈⡄⣿⡟⠀⠀⠀⠀⣸⣿⣶⢹⣻⣿⡄⠀⡁⠂⠈⣿⣷ 16 | ⣿⠉⢥⡂⠀⠀⠈⠉⠉⠀⠀⠛⠛⠀⠀⠀⠀⢼⣿⠘⠘⣿⣄⠀⠀⢢⣿⡇⠀⠐⢆⣿⠃⠀⠀⠀⢀⣿⣗⣻⣧⢚⣿⣧⠀⠐⠠⠄⢻⣿ 17 | ⣿⡀⡸⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠛⠿⠛⠋⠀⠀⠀⣸⣿⠀⠀⠐⡏⠹⣿⣧⢏⣷⢫⡜⣿⡆⠀⠃⠌⠘⣟ 18 | ⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢰⣶⠆⠀⠀⠀⣀⣀⠀⣁⠀⠀⠂⠀⠀⠀⠀⠀⠀⠈⠉⠁⠀⠸⣿⠉⠁⢻⣎⢿⡧⡽⣹⣿⡄⠉⠄⠈⢷ 19 | ⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡟⠀⠀⠀⢀⣿⡏⠂⣿⡿⠿⣶⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⡶⠛⠙⣿⡞⣿⡱⣧⣛⣿⡄⠀⠈⠈ 20 | ⢻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠇⠀⠀⠀⢸⣿⠃⢰⣿⠃⢀⡝⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡇⠀⠄⣿⣳⢻⣧⡿⡹⡽⣷⡄⠀⠠ 21 | ⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⠀⠀⠀⠀⣸⡟⠀⣼⣯⣤⣼⣽⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣯⠘⠀⣿⣧⢻⡷⣿⡱⢏⡿⣿⣄⠀ 22 | ⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣦⣀⣀⣠⣿⠃⢡⣿⡇⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⢿⣄⣁⣿⣏⣯⣿⣿⠱⣏⣿⢿⣿⣦ 23 | ⣶⣶⢦⡤⣤⣄⣀⣀⠀⠀⠀⠀⠈⠉⠉⠉⠀⠀⠸⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣷⣬⠿⡻⣍⠯⣹⣿⢇⡿⡜⣿⡇⣿⣿ 24 | ⠋⠙⠛⠛⢲⠾⢯⣽⣟⣟⣶⡶⢦⣤⣤⣄⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣍⡲⣍⠳⢎⡳⣽⡟⢮⡳⡝⣿⡇⢸⣿ 25 | ⠀⠀⠀⢀⣀⢀⡉⣴⣮⣉⣉⣹⣟⣿⡯⣭⣿⣻⣯⡿⣟⢳⡶⢤⡤⣤⣀⣀⣀⠀⠀⠀⠀⢰⣟⣛⣛⢳⡹⣎⣶⣿⣹⢣⣛⠵⣻⠆⠸⣿ 26 | -------------------------------------------------------------------------------- /ranger/colorschemes/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/ranger/colorschemes/__init__.py -------------------------------------------------------------------------------- /ranger/colorschemes/__pycache__/__init__.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/ranger/colorschemes/__pycache__/__init__.cpython-311.pyc -------------------------------------------------------------------------------- /ranger/colorschemes/__pycache__/default.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/ranger/colorschemes/__pycache__/default.cpython-311.pyc -------------------------------------------------------------------------------- /ranger/colorschemes/default.py: -------------------------------------------------------------------------------- 1 | from ranger.gui.color import * 2 | from ranger.colorschemes.default import Default 3 | 4 | class Scheme(Default): 5 | progress_bar_color = green 6 | def use(self, context): 7 | fg, bg, attr = Default.use(self, context) 8 | 9 | if context.directory and not context.marked and not context.link: 10 | fg = blue 11 | 12 | if context.in_titlebar: 13 | if context.hostname: 14 | if context.good: 15 | fg = cyan 16 | elif context.bad: 17 | fg = red 18 | else: 19 | fg = default 20 | 21 | if context.reset: 22 | return default_colors 23 | 24 | if context.border: 25 | fg = blue 26 | 27 | if context.in_taskview: 28 | fg = green 29 | 30 | if context.in_statusbar: 31 | if context.permissions: 32 | if context.good: 33 | fg = magenta 34 | elif context.bad: 35 | fg = red 36 | if context.message: 37 | if context.good: 38 | attr |= bold 39 | fg = yellow 40 | elif context.bad: 41 | attr |= bold 42 | fg = red 43 | 44 | return fg, bg, attr 45 | -------------------------------------------------------------------------------- /ranger/colorschemes/zenburn.py: -------------------------------------------------------------------------------- 1 | # Ivaylo Kuzev , 2014 2 | # Zenburn like colorscheme for https://github.com/hut/ranger . 3 | 4 | # default colorscheme. 5 | # Copyright (C) 2009-2013 Roman Zimbelmann 6 | # This software is distributed under the terms of the GNU GPL version 3. 7 | 8 | from ranger.gui.colorscheme import ColorScheme 9 | from ranger.gui.color import default_colors, reverse, bold, normal, default 10 | 11 | 12 | # pylint: disable=too-many-branches,too-many-statements 13 | class Zenburn(ColorScheme): 14 | progress_bar_color = 108 15 | 16 | def use(self, context): 17 | fg, bg, attr = default_colors 18 | 19 | if context.reset: 20 | return default_colors 21 | 22 | elif context.in_browser: 23 | if context.selected: 24 | attr = reverse 25 | else: 26 | attr = normal 27 | if context.empty or context.error: 28 | fg = 174 29 | bg = 235 30 | if context.border: 31 | fg = 248 32 | if context.image: 33 | fg = 109 34 | if context.video: 35 | fg = 66 36 | if context.audio: 37 | fg = 116 38 | if context.document: 39 | fg = 151 40 | if context.container: 41 | attr |= bold 42 | fg = 174 43 | if context.directory: 44 | attr |= bold 45 | fg = 223 46 | elif context.executable and not \ 47 | any((context.media, context.container, 48 | context.fifo, context.socket)): 49 | attr |= bold 50 | fg = 108 51 | if context.socket: 52 | fg = 180 53 | attr |= bold 54 | if context.fifo or context.device: 55 | fg = 144 56 | if context.device: 57 | attr |= bold 58 | if context.link: 59 | fg = 223 if context.good else 116 60 | bg = 234 61 | if context.bad: 62 | bg = 235 63 | if context.tag_marker and not context.selected: 64 | attr |= bold 65 | if fg in (174, 95): 66 | fg = 248 67 | else: 68 | fg = 174 69 | if not context.selected and (context.cut or context.copied): 70 | fg = 108 71 | bg = 234 72 | if context.main_column: 73 | if context.selected: 74 | attr |= bold 75 | if context.marked: 76 | attr |= bold 77 | fg = 223 78 | if context.badinfo: 79 | if attr & reverse: 80 | bg = 95 81 | else: 82 | fg = 95 83 | 84 | elif context.in_titlebar: 85 | attr |= bold 86 | if context.hostname: 87 | fg = 174 if context.bad else 180 88 | elif context.directory: 89 | fg = 223 90 | elif context.tab: 91 | if context.good: 92 | bg = 180 93 | elif context.link: 94 | fg = 116 95 | 96 | elif context.in_statusbar: 97 | if context.permissions: 98 | if context.good: 99 | fg = 108 100 | elif context.bad: 101 | fg = 174 102 | if context.marked: 103 | attr |= bold | reverse 104 | fg = 223 105 | if context.message: 106 | if context.bad: 107 | attr |= bold 108 | fg = 174 109 | if context.loaded: 110 | bg = self.progress_bar_color 111 | if context.vcsinfo: 112 | fg = 116 113 | attr &= ~bold 114 | if context.vcscommit: 115 | fg = 144 116 | attr &= ~bold 117 | 118 | if context.text: 119 | if context.highlight: 120 | attr |= reverse 121 | 122 | if context.in_taskview: 123 | if context.title: 124 | fg = 116 125 | 126 | if context.selected: 127 | attr |= reverse 128 | 129 | if context.loaded: 130 | if context.selected: 131 | fg = self.progress_bar_color 132 | else: 133 | bg = self.progress_bar_color 134 | 135 | if context.vcsfile and not context.selected: 136 | attr &= ~bold 137 | if context.vcsconflict: 138 | fg = 95 139 | elif context.vcschanged: 140 | fg = 174 141 | elif context.vcsunknown: 142 | fg = 174 143 | elif context.vcsstaged: 144 | fg = 108 145 | elif context.vcssync: 146 | fg = 108 147 | elif context.vcsignored: 148 | fg = default 149 | 150 | elif context.vcsremote and not context.selected: 151 | attr &= ~bold 152 | if context.vcssync: 153 | fg = 108 154 | elif context.vcsbehind: 155 | fg = 174 156 | elif context.vcsahead: 157 | fg = 116 158 | elif context.vcsdiverged: 159 | fg = 95 160 | elif context.vcsunknown: 161 | fg = 174 162 | 163 | return fg, bg, attr 164 | -------------------------------------------------------------------------------- /ranger/commands.py: -------------------------------------------------------------------------------- 1 | from __future__ import (absolute_import, division, print_function) 2 | 3 | from ranger.api.commands import * 4 | 5 | import os 6 | 7 | class emptytrash(Command): 8 | """:empty 9 | 10 | Empties the trash 11 | """ 12 | 13 | def execute(self): 14 | HOME = os.environ['HOME'] 15 | self.fm.run(f'trash-empty') 16 | 17 | -------------------------------------------------------------------------------- /ranger/plugins/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/ranger/plugins/__init__.py -------------------------------------------------------------------------------- /ranger/plugins/__pycache__/__init__.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/ranger/plugins/__pycache__/__init__.cpython-311.pyc -------------------------------------------------------------------------------- /ranger/plugins/ranger_devicons/__init__.py: -------------------------------------------------------------------------------- 1 | import ranger.api 2 | from ranger.core.linemode import LinemodeBase 3 | from .devicons import * 4 | 5 | @ranger.api.register_linemode 6 | class DevIconsLinemode(LinemodeBase): 7 | name = "devicons" 8 | 9 | uses_metadata = False 10 | 11 | def filetitle(self, file, metadata): 12 | return devicon(file) + ' ' + file.relative_path 13 | 14 | @ranger.api.register_linemode 15 | class DevIconsLinemodeFile(LinemodeBase): 16 | name = "filename" 17 | 18 | def filetitle(self, file, metadata): 19 | return devicon(file) + ' ' + file.relative_path 20 | -------------------------------------------------------------------------------- /ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-311.pyc -------------------------------------------------------------------------------- /ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knightfallxz/Hyprland-Custom-Configuration/070c32c1f65286dd2a642380b4aedecee65a8d74/ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-311.pyc -------------------------------------------------------------------------------- /ranger/rc.conf: -------------------------------------------------------------------------------- 1 | ## Copyright (C) 2020-2023 Aditya Shakya 2 | 3 | # Use non-default path for file preview script? 4 | # ranger ships with scope.sh, a script that calls external programs (see 5 | # README.md for dependencies) to preview images, archives, etc. 6 | set preview_script ~/.config/ranger/scope.sh 7 | 8 | # Use the external preview script or display simple plain text or image previews? 9 | set use_preview_script true 10 | 11 | # Be aware of version control systems and display information. 12 | set vcs_aware false 13 | 14 | # Use one of the supported image preview protocols 15 | set preview_images true 16 | 17 | set preview_images_method kitty 18 | 19 | # Use a unicode "..." character to mark cut-off filenames? 20 | set unicode_ellipsis true 21 | 22 | # Which colorscheme to use? These colorschemes are available by default: 23 | # default, jungle, snow, solarized 24 | set colorscheme default 25 | 26 | # Draw the status bar on top of the browser window (default: bottom) 27 | set status_bar_on_top false 28 | 29 | # Draw borders around columns? 30 | set draw_borders true 31 | 32 | # Display the directory name in tabs? 33 | set dirname_in_tabs true 34 | 35 | # Enable this if key combinations with the Alt Key don't work for you. 36 | # (Especially on xterm) 37 | set xterm_alt_key false 38 | 39 | # Use fuzzy tab completion with the "cd" command. For example, 40 | # ":cd /u/lo/b" expands to ":cd /usr/local/bin". 41 | set cd_tab_fuzzy true 42 | 43 | # Save tabs on exit 44 | set save_tabs_on_exit true 45 | 46 | # Enable scroll wrapping - moving down while on the last item will wrap around to 47 | # the top and vice versa. 48 | set wrap_scroll true 49 | 50 | # Column ratio 51 | set column_ratios 2,2,4 52 | 53 | # Hidden filter 54 | set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ 55 | 56 | # Color scheme 57 | set colorscheme default 58 | 59 | # =================================================================== 60 | # == Local Options 61 | # =================================================================== 62 | setlocal path=~/Downloads sort mtime 63 | 64 | # Moving 65 | map gT cd "~/.Trash" 66 | 67 | # trash lives in ~/.local/share/Trash/files 68 | map shell -d trash-put %s 69 | map x shell -d trash-put %s 70 | 71 | -------------------------------------------------------------------------------- /ranger/rifle.conf: -------------------------------------------------------------------------------- 1 | # vim: ft=cfg 2 | # 3 | # This is the configuration file of "rifle", ranger's file executor/opener. 4 | # Each line consists of conditions and a command. For each line the conditions 5 | # are checked and if they are met, the respective command is run. 6 | # 7 | # Syntax: 8 | # , , ... = command 9 | # 10 | # The command can contain these environment variables: 11 | # $1-$9 | The n-th selected file 12 | # $@ | All selected files 13 | # 14 | # If you use the special command "ask", rifle will ask you what program to run. 15 | # 16 | # Prefixing a condition with "!" will negate its result. 17 | # These conditions are currently supported: 18 | # match | The regexp matches $1 19 | # ext | The regexp matches the extension of $1 20 | # mime | The regexp matches the mime type of $1 21 | # name | The regexp matches the basename of $1 22 | # path | The regexp matches the absolute path of $1 23 | # has | The program is installed (i.e. located in $PATH) 24 | # env | The environment variable "variable" is non-empty 25 | # file | $1 is a file 26 | # directory | $1 is a directory 27 | # number | change the number of this command to n 28 | # terminal | stdin, stderr and stdout are connected to a terminal 29 | # X | $DISPLAY is not empty (i.e. Xorg runs) 30 | # 31 | # There are also pseudo-conditions which have a "side effect": 32 | # flag | Change how the program is run. See below. 33 | # label