diff --git a/.zshrc b/.zshrc index d55b6df..ca5bf96 100644 --- a/.zshrc +++ b/.zshrc @@ -1,52 +1,40 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# If you come from bash you might have to change your $PATH. -# export PATH=$HOME/bin:/usr/local/bin:$PATH -# Path to your oh-my-zsh installation. +# export LANG=en_US.UTF-8 +# export PATH=$HOME/bin:/usr/local/bin:$PATH export ZSH="$HOME/.oh-my-zsh" #export MODULAR_HOME="/home/b0llull0s/.modular" #export PATH="/home/b0llull0s/.modular/pkg/packages.modular.com_mojo/bin:$PATH" #export NVM_DIR="$HOME/.nvm" # [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm # [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion -# Add Ruby gem binaries to PATH -export PATH="$HOME/.local/share/gem/ruby/3.3.0/bin:$PATH" - +export PATH="$HOME/.local/share/gem/ruby/3.4.4/bin:$PATH" +export PATH="/opt/flutter/bin:$PATH" +export ANDROID_HOME=~/Android/Sdk +export PATH=$PATH:$HOME/go/bin +# Compilation flags +# export ARCHFLAGS="-arch x86_64" # Set name of the theme to load --- if set to "random", it will # load a random theme each time oh-my-zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes -ZSH_THEME="robbyrussell" +ZSH_THEME="oh-my-theme" +#ZSH_THEME="robbyrussell" +#ZSH_THEME="agnoster" -# Set list of themes to pick from when loading at random -# Setting this variable when ZSH_THEME=random will cause zsh to load -# a theme from this variable instead of looking in $ZSH/themes/ -# If set to an empty array, this variable will have no effect. -# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) +## PATHS ## +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh +source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +source $ZSH/oh-my-zsh.sh +source "$HOME/.local/bin/env" -# Uncomment the following line to use case-sensitive completion. -CASE_SENSITIVE="false" +# Eval Functions +eval "$(zoxide init zsh)" -# Uncomment the following line to use hyphen-insensitive completion. -# Case-sensitive completion must be off. _ and - will be interchangeable. +CASE_SENSITIVE="false" HYPHEN_INSENSITIVE="true" # Uncomment one of the following lines to change the auto-update behavior @@ -58,7 +46,7 @@ HYPHEN_INSENSITIVE="true" # zstyle ':omz:update' frequency 13 # Uncomment the following line if pasting URLs and other text is messed up. -# DISABLE_MAGIC_FUNCTIONS="true" +DISABLE_MAGIC_FUNCTIONS="true" # Uncomment the following line to disable colors in ls. # DISABLE_LS_COLORS="true" @@ -91,23 +79,12 @@ HIST_STAMPS="mm/dd/yyyy" # Would you like to use another custom folder than $ZSH/custom? # ZSH_CUSTOM=/path/to/new-custom-folder -# Which plugins would you like to load? # Standard plugins can be found in $ZSH/plugins/ # Custom plugins may be added to $ZSH_CUSTOM/plugins/ -# Example format: plugins=(rails git textmate ruby lighthouse) -# Add wisely, as too many plugins slow down shell startup. #plugins=(git) -source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh -source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh -source $ZSH/oh-my-zsh.sh -# User configuration + ## Pywal ## cat ~/.cache/wal/sequences -#cat ~/.cache/wal/sequences -## PATHS ## - -# You may need to manually set your language environment -# export LANG=en_US.UTF-8 # Preferred editor for local and remote sessions # if [[ -n $SSH_CONNECTION ]]; then @@ -116,14 +93,7 @@ cat ~/.cache/wal/sequences # export EDITOR='mvim' # fi -# Compilation flags -# export ARCHFLAGS="-arch x86_64" - -# Set personal aliases, overriding those provided by oh-my-zsh libs, -# plugins, and themes. Aliases ca be placed here, though oh-my-zsh -# users are encouraged to define aliases within the ZSH_CUSTOM folder. # For a full list of active aliases, run `alias`. -# ## Aliases ## alias kill='sudo kill -9 $1' alias cd2='clear && cd $1 && ls' @@ -141,6 +111,8 @@ alias audio='pavucontrol' alias up='sudo pacman -Syu' alias ls='eza --all --header --long --sort=modified $eza_params' alias la='eza -lbhHigUmuSa@' +alias cd='z' +alias cdi='zi' alias tree='eza --tree $eza_params' alias kat='bat' alias ga='git add .' @@ -158,11 +130,12 @@ alias nc='netcat' alias http="python3 -m http.server" alias hypr="codium ~/.config/hypr/hyprland.conf" alias zshsrc="codium ~/.zshrc" -alias htb="sudo openvpn ~/Documents/CTF/HTB/lab_b4ndit23.ovpn" +alias htb="sudo openvpn ~/Documents/CTF/HTB/VPNs/machines_eu-free-7.ovpn" alias android-studio='QT_QPA_PLATFORM=xcb android-studio' alias pacmanff="pacman -Slq | fzf --multi --preview 'pacman -Si {1}' | xargs -ro sudo pacman -S" alias pacinfo="pacman -Qq | fzf --multi --preview 'pacman -Qi {1}' | xargs -ro sudo pacman -Rns" alias ff="find . -type f | fzf --multi --preview 'if file --mime-encoding {} | grep -q binary; then strings {} | head -100; else bat --color=always {}; fi' --preview-window 'right:60%'" + ## Functions ## function cheat() { curl -m 7 "http://cheat.sh/$1"; } function rmk() { scrub -p dod $1; shred -zun 10 -v $1; } @@ -170,3 +143,8 @@ function walup() { wal -i "$(find ~/Downloads/w4llp4p3rs -type f -name '*.jpeg' function box() { [ -z "$1" ] && echo "Usage: box " || sudo ufw allow from "$1" to any && echo "Traffic allowed from $1"; } function boxd() { [ -z "$1" ] && echo "Usage: boxd " || sudo ufw delete allow from "$1" to any && echo "Traffic rule deleted for $1"; } function randomchar() { < /dev/urandom tr -dc 'A-Za-z0-9' | head -c "$1"; echo; } +function git-ssh() { [ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)"; ssh-add -l | grep -q "$(ssh-keygen -lf ~/.ssh/github | awk '{print $2}')" || ssh-add ~/.ssh/github; } + +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/README.md b/README.md index 2911539..02369d7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/J3J41UVIX7) ## Synopsis: - `Wayland`, `Hyperland`, `Waybar` riced with `py-wal` @@ -17,9 +18,9 @@ | Window Manager | Hyprland | | Terminal Manager | Alacritty | | Clipboard Manager | Cliphist | -| File Manager | Ranger | +| File Manager | Yazi | | Status Bar | Waybar | -| Launcher | Wofi | +| Launcher | Wofi | | Shell | Zsh | | Browser | Librewolf | | Text Editor | Codium | @@ -33,9 +34,9 @@ - Fully `pywal` integration with nerdfont icons. -### Additional Packages included: +### Prefered Bloat: -`pacman-contrib` `yay` `atool` `unzip` `zip` `exa` `bat` `ufw` `wireshark` `bleachbit` `virtualbox` `obsidian` `nordvpn` `signal` `btop` `wget` `curl` `less` `tree` `locate` `qflipper` `neofetch` `python` `rust` `go` `pamixer` `cmus` `vscodium-bin` `scrub` `pam_yubico` `pam-u2f` `burpsuite` `sxiv` `p7zip` `apparmor` `whois` `tcpdump` `net-tools` +`yay` `atool` `exa` `bat` `wireshark` `obsidian` `signal` `python` `rust` `go` `scrub` `sxiv` `apparmor` `whois` `tcpdump` `net-tools` `tinyxxd` `strace` `lsof` `fwupd` `geckodriver` `ncurses` `cmake` `pngquant` `oxipng` `mkcert` `cmus` `vlc` `steam` `proton-vpn` `timeshift` `qemu` `exiftool` `firejail` `docker-compose` `dosfstools` `macchanger` `zoxide` `resvg` `fd` `ripgrep` `gimp` `ibreoffice` `zathura` `obs` `xpad` `youtube-music` `cursor` ### Zsh Plugings, Aliases and Functions: @@ -116,10 +117,9 @@ nmcli device wifi connect SSID_or_BSSID password password hidden yes ``` - And download this repository: ```bash -git clone https://github.com/b0llull0s/Arch-Installation-Script.git +git clone https://github.com/b0llull0s/Arch-Installation-Scripts.git ``` - Some application doesnt accept relatives paths and you will have to change those to your own home folder. -- You may also want to create a new directory with your desired profile name on `Wireshark/profile` and move the files inside. - You may want to add your wallpapers to the `w4llp4p3rs` folder or just change the name and path on the script as you want. - If you experience problems with `py-wal`, make sure that all the paths inside the config files match with your system files. ### Yubikey: @@ -165,8 +165,23 @@ aa-enabled # Now parse the profiles sudo apparmor_parser /usr/share/apparmor/extra-profiles ``` +### Pacman Hooks +- Sometimes `Pacman` overwrite your configuration for an app when you update it, that's the case for `Wireshark`, so a good practice so solve this problem is to create `Pacman` hooks so your configuration persist after updates: +```sh +sudo mkdir -p /etc/pacman.d/hooks +cat << EOF | sudo tee /etc/pacman.d/hooks/wireshark-dumpcap.hook > /dev/null +[Trigger] +Operation = Install +Operation = Upgrade +Type = Package +Target = wireshark-qt -![Screenshot](screenshot.png) +[Action] +Description = Setting capabilities on dumpcap +When = PostTransaction +Exec = /usr/bin/sh -c 'setcap cap_net_raw,cap_net_admin+eip /usr/bin/dumpcap || true' +EOF +``` ### Pywalfox - For `Librewolf` you need to run this command: @@ -174,45 +189,89 @@ sudo apparmor_parser /usr/share/apparmor/extra-profiles pywalfox install --browser librewolf ``` - And then get the addon like you would normally do + +![Screenshot](screenshot.png) + +### Launching Source-Installed Apps via Wofi +- For apps you install manually that aren't on official repos drop a `.desktop` file in `~/.local/share/applications/`. `Wofi drun` mode picks it up natively: +```bash +nano ~/.local/share/applications/.desktop +``` +- Add this to the file: +```ini +[Desktop Entry] +Version=1.0 +Type=Application +Name= +Comment= +Exec=/full/path/to/binary %u +Icon= +Terminal=false +Categories=; +StartupNotify=true +StartupWMClass= +``` +- Refresh and test: +```bash +update-desktop-database ~/.local/share/applications/ +desktop-file-validate ~/.local/share/applications/.desktop +``` +> [!TIP] +> For AppImages with versioned filenames (`drawio-x86_64-29.3.0.AppImage`), symlink to a stable name so the `.desktop` file's `Exec=` doesn't break on upgrade: +> ```bash +> ln -sf ~/App-Images/drawio-x86_64-29.3.0.AppImage ~/App-Images/drawio.AppImage +> ``` + ## Tips: -- Sometimes you may enconter an error retrieving the `blackarch.db` while updating the system, this error is normally related to a mirror having an expired certificate, simply comment that mirror and uncomment another one +Sometimes you may enconter an error retrieving the `blackarch.db` while updating the system, this error is normally related to a mirror having an expired certificate, simply comment that mirror and uncomment another one ```bash sudo nano /etc/pacman.d/blackarch-mirrorlist ``` -- In case you need to generate a new `py-wal` template just use the alias `walup`: +In case you need to generate a new `py-wal` template just use the alias `walup`: ```bash # For a specific file wal -i ~/Downloads/w4llp4p3rs/1.jpg ``` -- In case you need to make zsh your default shell: +In case you need to make zsh your default shell: ```bash usermod --shell /usr/bin/zsh username ``` -- Refresh your system data base: +Refresh your system data base: ```bash sudo updatedb ``` -- To implement plugings use locate to find the path of the plugin file and add it to your source file: +To implement plugings use locate to find the path of the plugin file and add it to your source file: ```bash # use this command: locate zsh-autosuggestions # Copy the .zsh entry and add it as source in the config file: source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh ``` -- Type `alias`to check the list of aliases. -- Nowdays with `Steam` using `proton` you dont need to install the `graphical drivers` yourself, the correct drivers for your system will be install when installing `proton` from `Steam`. -- Use `atool` to compress and uncompress files, worth to have a look at the `Arch Manual pages`. -- Once you have apparmor ready you may want to have a look to the `snap store`. -- I dont use `xwayland` but in case you do, the `env` paths are commented on `hyprland.conf`. -- At some point your pacman cache may grow more than it should, clear old libraries and cache to release space +At some point your pacman cache may grow more than it should, clear old libraries and cache to release space ```sh sudo pacman -Scc ``` -- You can also use this command to delete core dump files +Same for `Yay`: +```sh +yay -Y --clean +``` +You can also use this command to delete core dump files ```sh find / -xdev -name core -ls -o -path "/lib*" -prune ``` +The Journal Logs can grow big over time also: +```sh +sudo journalctl --vacuum-size=500M +``` +Install `flatpak` applications using your home folder instead of root: +```sh +flatpak install --user appName.flatpak +``` +If `QEMU` fails to capture special keys or you cannot interact with the VM window directly, you can inject inputs directly from the host terminal: +```sh +sudo virsh send-key win11 KEY_LEFTSHIFT KEY_F10 +``` > [!CAUTION] >- Currently Virtualbox Can't Use Fullscreen Mode On Wayland by default. >- To fix this, go to "User Interface" on the "Settings" from your VM and uncheck "Show in Full-screen/Seamless". @@ -231,7 +290,7 @@ find / -xdev -name core -ls -o -path "/lib*" -prune | `Super + Enter` | Alacritty | | `Super + E` | Librewolf | | `Super + K` | Kill Window | -| `Super + D` | Wofi | +| `Super + D` | Wofi | | `Super + [1-9]` | Switch Workspace | | `Super + [SHIFT] + [1-9]` | Move Window to Workspace| | `Super + [SHIFT] + [ARROW]` | Resize Window | @@ -255,11 +314,9 @@ find / -xdev -name core -ls -o -path "/lib*" -prune | `Super + V` | Clipboard | ## Credits and appreciations - -- Credit to **_Stephan Raabe_** for the base idea behind the custom scripts and all the `pywal` integration without his youtube channel would have been way harder. +- Credit to **_Stephan Raabe_** for the `pywal`. - Credit to **_s4vitar_** for the `rmk` function. - Credit to the **_annonymous_** user who posted the `waybar` custom module to see your public ip. -- Credit to **_Alan Moore_** and **_Dave Gibbons_** for `image1` and The band **_Sleep_** for `image2` - Wallpaper by **_Wenqing Yan_**. ;) ![Screenshot](image3.png) diff --git a/cursor_converter.sh b/cursor_converter.sh new file mode 100644 index 0000000..8d9b2f9 --- /dev/null +++ b/cursor_converter.sh @@ -0,0 +1,178 @@ +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < +#!/bin/bash + +# Script to convert cursor SETS with PROPER HOTSPOT positioning + +CURSOR_SOURCE="$HOME/Pictures/Cursors" +OUTPUT_DIR="$HOME/.icons" +TEMP_DIR="/tmp/cursor_conversion" + +echo "=========================================" +echo "Converting YOUR Cursor Sets to Themes" +echo "WITH AUTO-SCALING & PROPER HOTSPOTS" +echo "=========================================" + +if ! command -v xcursorgen &> /dev/null; then + echo "Installing xcursorgen..." + sudo pacman -S xorg-xcursorgen --noconfirm || { + echo "Please install xcursorgen manually:" + echo " sudo pacman -S xorg-xcursorgen" + exit 1 + } +fi + +if ! command -v convert &> /dev/null; then + echo "Installing ImageMagick (for image scaling)..." + sudo pacman -S imagemagick --noconfirm || { + echo "Please install ImageMagick manually:" + echo " sudo pacman -S imagemagick" + exit 1 + } +fi + +mkdir -p "$TEMP_DIR" + +declare -A themes + +for png_file in "$CURSOR_SOURCE"/*-default.png "$CURSOR_SOURCE"/*-hand.png; do + [ -f "$png_file" ] || continue + + basename=$(basename "$png_file") + theme_name=$(echo "$basename" | sed -E 's/-(default|hand)\.png$//') + themes["$theme_name"]=1 +done + +if [ ${#themes[@]} -eq 0 ]; then + echo "ERROR: No cursor pairs found!" + echo "" + echo "Expected file naming:" + echo " themename-default.png (the arrow/pointer)" + echo " themename-hand.png (the clicking hand)" + exit 1 +fi + +echo "Found ${#themes[@]} cursor theme(s)" +echo "" + +create_scaled_cursors() { + local source_png="$1" + local output_prefix="$2" + local sizes=(28 36 52 68) + + for size in "${sizes[@]}"; do + convert "$source_png" -resize ${size}x${size} "$TEMP_DIR/${output_prefix}_${size}.png" 2>/dev/null + + if [ $? -ne 0 ]; then + echo " ⚠️ Warning: Failed to scale $(basename "$source_png") to ${size}x${size}" + fi + done +} + +for theme_name in "${!themes[@]}"; do + default_png="$CURSOR_SOURCE/${theme_name}-default.png" + hand_png="$CURSOR_SOURCE/${theme_name}-hand.png" + + echo "Processing: $theme_name" + + if [ ! -f "$default_png" ]; then + echo " ⚠️ Missing: ${theme_name}-default.png (skipping)" + continue + fi + if [ ! -f "$hand_png" ]; then + echo " ⚠️ Missing: ${theme_name}-hand.png (skipping)" + continue + fi + + default_size=$(identify -format "%wx%h" "$default_png" 2>/dev/null) + hand_size=$(identify -format "%wx%h" "$hand_png" 2>/dev/null) + echo " Original sizes: default=$default_size, hand=$hand_size" + + echo " Scaling to slightly larger cursor sizes (28, 36, 52, 68)..." + create_scaled_cursors "$default_png" "${theme_name}_default" + create_scaled_cursors "$hand_png" "${theme_name}_hand" + + theme_dir="$OUTPUT_DIR/$theme_name" + mkdir -p "$theme_dir/cursors" + + cat > "$theme_dir/index.theme" << EOF +[Icon Theme] +Name=$theme_name +Comment=Custom cursor theme with proper hotspot positioning +EOF + + default_config="$TEMP_DIR/${theme_name}_default.cfg" + cat > "$default_config" << EOF +28 5 5 $TEMP_DIR/${theme_name}_default_28.png +36 6 6 $TEMP_DIR/${theme_name}_default_36.png +52 9 9 $TEMP_DIR/${theme_name}_default_52.png +68 12 12 $TEMP_DIR/${theme_name}_default_68.png +EOF + + hand_config="$TEMP_DIR/${theme_name}_hand.cfg" + cat > "$hand_config" << EOF +28 9 5 $TEMP_DIR/${theme_name}_hand_28.png +36 12 6 $TEMP_DIR/${theme_name}_hand_36.png +52 18 9 $TEMP_DIR/${theme_name}_hand_52.png +68 24 12 $TEMP_DIR/${theme_name}_hand_68.png +EOF + + default_names=( + "default" "left_ptr" "arrow" "top_left_arrow" + "wait" "watch" "progress" + "help" "question_arrow" + "cross" "crosshair" "tcross" + "move" "fleur" "size_all" + "n-resize" "s-resize" "e-resize" "w-resize" + "ne-resize" "nw-resize" "se-resize" "sw-resize" + "ns-resize" "ew-resize" "nesw-resize" "nwse-resize" + "col-resize" "row-resize" + "not-allowed" "forbidden" "no-drop" + "text" "xterm" "ibeam" + "zoom-in" "zoom-out" + "alias" "copy" "context-menu" + "cell" "vertical-text" "all-scroll" + ) + + hand_names=( + "pointer" "hand" "hand2" "pointing_hand" "hand1" + "grab" "openhand" "grabbing" "closedhand" + ) + + echo " Generating cursor files with proper hotspots..." + for cursor_name in "${default_names[@]}"; do + xcursorgen "$default_config" "$theme_dir/cursors/$cursor_name" 2>/dev/null + done + + for cursor_name in "${hand_names[@]}"; do + xcursorgen "$hand_config" "$theme_dir/cursors/$cursor_name" 2>/dev/null + done + + echo " ✓ Created: $theme_dir" + echo " - Default cursor: hotspot at tip (top-left)" + echo " - Hand cursor: hotspot at fingertip" + echo "" +done + +echo "Cleaning up temporary files..." +rm -rf "$TEMP_DIR" + +echo "" +echo "=========================================" +echo "SUCCESS! Created ${#themes[@]} cursor themes" +echo "=========================================" + +for theme_name in "${!themes[@]}"; do + echo " ✓ $theme_name" +done + + +echo "" +echo "Your cursor themes are in: $OUTPUT_DIR" +echo "" +echo "Cursor sizes: 28px, 36px, 52px, 68px (slightly bigger than standard)" + +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index ee3e521..ec2c025 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -1,41 +1,31 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < + # Monitor # monitor=,1920x1080,auto,1 # Auto Start # exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store -exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP -exec-once = dbus-update-activation-environment --systemd --all exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = waybar -exec-once = swww-daemon +exec-once = awww-daemon # Source Files # source = ~/.cache/wal/colors-hyprland # Environment Variables # +env = ELECTRON_OZONE_PLATFORM_HINT, auto +env = MOZ_ENABLE_WAYLAND, 1 +env = GTK_THEME, Adwaita:dark +env = XCURSOR_THEME, purpleZebra env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland -env = XCURSOR_SIZE,24 +#env = XCURSOR_SIZE,24 env = QT_QPA_PLATFORM,wayland -env = QT_STYLE_OVERRIDE,kvantum -env = QT_QPA_PLATFORMTHEME,qt5ct +#env = QT_STYLE_OVERRIDE,kvantum +#env = QT_QPA_PLATFORMTHEME,qt5ct +env = QT_STYLE_OVERRIDE, fusion +env = QT_COLOR_SCHEME, dark env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 # EcoSystem @@ -45,15 +35,17 @@ ecosystem { # Keyboard Layout # input { kb_layout = gb - kb_variant = - kb_model = - kb_options = - kb_rules = +# kb_options = caps:escape # Map Caps Lock to Escape follow_mouse = 1 + touchpad { natural_scroll = no + tap-to-click = yes + disable_while_typing = yes + middle_button_emulation = yes } - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + sensitivity = 0 } # Window Layout and colors # general { @@ -105,29 +97,36 @@ dwindle { master { new_status = master } -gestures { - workspace_swipe = off -} +# gestures { +# workspace_swipe = off +#} # Device Config # device { name = epic-mouse-v1 sensitivity = -0.1 } # Window Rules # -windowrulev2 = float,class:^(org.pulseaudio.pavucontrol)$ -windowrulev2 = float,class:^(Alacritty)$ -windowrulev2 = float,class:^(com\.github\.th_ch\.youtube_music)$ +windowrule = float on, match:class org.pulseaudio.pavucontrol +# Alacritty +windowrule = float on, match:class Alacritty +windowrule = size 950 700, match:class Alacritty +windowrule = opacity 0.9 0.4, match:class Alacritty +# Youtube Musics +windowrule = float on, match:class com.github.th_ch.youtube_music # External Video # -windowrulev2 = float,title:^(Picture-in-Picture)$ -windowrulev2 = pin,title:^(Picture-in-Picture)$ -windowrulev2 = opacity 1.0,title:^(Picture-in-Picture)$ -# Opacity Rules # -windowrulev2 = opacity 0.9 0.4,class:^(Alacritty)$ -windowrulev2 = opacity 0.9 0.4,class:^(xpad)$ -#windowrulev2 = opacity 1.0 1.0,class:^(VSCodium)$ +windowrule = float on, match:title Picture-in-Picture +#windowrule = pin on, match:title Picture-in-Picture # Uncomment if you want it pinned (always on top across workspaces) +windowrule = opacity 1.0, match:title Picture-in-Picture +# Codium +#windowrule = opacity 1.0 1.0, match:class VSCodium # Xpad Rules # -windowrulev2 = float,class:^(xpad)$ -#windowrulev2 = pin,class:^(xpad)$ # Sticks to all workspaces +windowrule = float on, match:class xpad +windowrule = opacity 0.9 0.4, match:class xpad +windowrule = size 500 400, match:class xpad +#windowrule = pin on, match:class xpad # Sticks to all workspaces +# TimeShift +windowrule = float on, match:class timeshift-gtk +windowrule = size 950 700, match:class timeshift-gtk # Mouse Binds # bindm=SUPER,mouse:272,movewindow bindm=SUPER, mouse:273, resizewindow @@ -136,9 +135,9 @@ $mainMod = SUPER # Kill Window # bind = $mainMod, K, killactive, # Volumen # -bind = $mainMod, Q, exec, pamixer -i 5 -bind = $mainMod, A, exec, pamixer -d 5 -bind = $mainMod, Z, exec, pamixer -t +binde = , XF86AudioRaiseVolume, exec, pamixer -i 5 +binde = , XF86AudioLowerVolume, exec, pamixer -d 5 +bindl = , XF86AudioMute, exec, pamixer -t # Clipboard # bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy # Apps # @@ -196,5 +195,13 @@ bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 +# Brightness controls +binde = , XF86MonBrightnessUp, exec, brightnessctl set +5% +binde = , XF86MonBrightnessDown, exec, brightnessctl set 5%- +# Cycle Cursor Size +bind = $mainMod, code:20, exec, ~/.config/hypr/scripts/cursor_size.sh down +bind = $mainMod, code:21, exec, ~/.config/hypr/scripts/cursor_size.sh up - +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/scripts/alacritty.sh b/hypr/scripts/alacritty.sh index 30c7c0a..abb0a27 100644 --- a/hypr/scripts/alacritty.sh +++ b/hypr/scripts/alacritty.sh @@ -2,21 +2,6 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < CURSOR_POS=$(hyprctl cursorpos | tr -d ',') CURSOR_X=$(echo "$CURSOR_POS" | awk '{print $1}') @@ -28,6 +13,10 @@ Y_OFFSET=-300 # Adjust based on xpad height FINAL_X=$((CURSOR_X + X_OFFSET)) FINAL_Y=$((CURSOR_Y + Y_OFFSET)) -hyprctl keyword windowrulev2 "move $FINAL_X $FINAL_Y,class:^(Alacritty)$" +hyprctl keyword windowrule "move $FINAL_X $FINAL_Y,match:class Alacritty" + +alacritty & -alacritty & \ No newline at end of file +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/scripts/cach3raser.sh b/hypr/scripts/cach3raser.sh index 0daacdb..e7349e9 100644 --- a/hypr/scripts/cach3raser.sh +++ b/hypr/scripts/cach3raser.sh @@ -2,21 +2,7 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < + usage() { echo "Usage: $0 [-copy [PATH]] [-hard]" echo " -copy [PATH] Optionally copy the .cache directory to the specified PATH." @@ -83,3 +69,7 @@ echo "Cache cleared, except for $CACHE_DIR/$EXCLUDE_DIR." if $HARD_DELETE; then echo "Files were securely deleted using the rmk function." fi + +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/scripts/cmus-status.sh b/hypr/scripts/cmus-status.sh index d442cd9..f3cf4c3 100644 --- a/hypr/scripts/cmus-status.sh +++ b/hypr/scripts/cmus-status.sh @@ -2,21 +2,7 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < + if ! pgrep -x "cmus" > /dev/null; then echo "No music" exit 0 @@ -32,4 +18,8 @@ elif [[ "$status" == "paused" ]]; then echo "$artist - $track" else echo "No music" -fi \ No newline at end of file +fi + +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/scripts/cursor_size.sh b/hypr/scripts/cursor_size.sh new file mode 100644 index 0000000..8d87604 --- /dev/null +++ b/hypr/scripts/cursor_size.sh @@ -0,0 +1,52 @@ +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < + +#!/bin/bash + +read_value() { + cat "$1" 2>/dev/null | tr -d '[:space:]' +} + +CURRENT_THEME=$(read_value /tmp/hypr_current_theme) +CURRENT_SIZE=$(read_value /tmp/hypr_current_size) + +if [ -z "$CURRENT_THEME" ]; then + CURRENT_THEME="Adwaita" +fi +if [ -z "$CURRENT_SIZE" ]; then + CURRENT_SIZE=24 +fi + +SIZES=(32 48 64) +NEXT_SIZE=$CURRENT_SIZE + +for i in "${!SIZES[@]}"; do + if [[ "${SIZES[$i]}" == "$CURRENT_SIZE" ]]; then + INDEX=$i + break + fi +done + +case "$1" in + "up") + NEXT_INDEX=$(( (INDEX + 1) % ${#SIZES[@]} )) + NEXT_SIZE=${SIZES[$NEXT_INDEX]} + ;; + "down") + NEXT_INDEX=$(( (INDEX - 1 + ${#SIZES[@]}) % ${#SIZES[@]} )) + NEXT_SIZE=${SIZES[$NEXT_INDEX]} + ;; + *) + exit 1 + ;; +esac + +hyprctl setcursor "$CURRENT_THEME" "$NEXT_SIZE" + +echo "$NEXT_SIZE" > /tmp/hypr_current_size + +notify-send "Cursor Size" "$CURRENT_THEME: $NEXT_SIZE" 2>/dev/null || true +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/scripts/screenshot.sh b/hypr/scripts/screenshot.sh index 66b736d..0fd9ab7 100644 --- a/hypr/scripts/screenshot.sh +++ b/hypr/scripts/screenshot.sh @@ -2,21 +2,7 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < + DIR="$HOME/Screenshots/" NAME="screenshot_$(date +%d%m%Y_%H%M%S).png" @@ -38,3 +24,7 @@ case $choice in notify-send "Screenshot created" "Mode: Fullscreen" ;; esac + +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/scripts/up-w4l.sh b/hypr/scripts/up-w4l.sh index 1787989..bf2b0fc 100644 --- a/hypr/scripts/up-w4l.sh +++ b/hypr/scripts/up-w4l.sh @@ -2,55 +2,166 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# Set the path to your wallpaper folder -WALLPAPER_FOLDER="$HOME/w4llp4p3rs" -# Function to set wallpaper and reset Waybar +WALLPAPER_FOLDER="$HOME/Documents/w4llp4p3rs" +CURSOR_FOLDER="$HOME/.icons" + set_wallpaper() { local wallpaper="$1" - wal -q -i "$wallpaper" - swww img "$wallpaper" - ~/.config/hypr/scripts/waybar.sh + + wal -q -i "$wallpaper" &>/dev/null + awww img "$wallpaper" &>/dev/null + + nohup ~/.config/hypr/scripts/waybar.sh &>/dev/null & + + nohup pywalfox update &>/dev/null & } -# Ask for options -options=("random" "select") -selected_option=$(echo -e "1. ${options[0]}\n2. ${options[1]}" | wofi --show dmenu --height 100 --width 200) -# Handle the selected option -case "$selected_option" in - "1. random") - # Get a random wallpaper from the folder - WALLPAPER=$(find "$WALLPAPER_FOLDER" -type f | shuf -n 1) - set_wallpaper "$WALLPAPER" +send_notification() { + local title="$1" + local message="$2" + + notify-send "$title" "$message" 2>/dev/null || true +} + +set_cursor() { + local cursor_theme="$1" + local cursor_size="${2:-28}" + + gsettings set org.gnome.desktop.interface cursor-theme "$cursor_theme" 2>/dev/null + + hyprctl setcursor "$cursor_theme" "$cursor_size" 2>/dev/null + + export XCURSOR_THEME="$cursor_theme" + export XCURSOR_SIZE="$cursor_size" + + echo "$cursor_theme" > /tmp/hypr_current_theme + echo "$cursor_size" > /tmp/hypr_current_size + + send_notification "Cursor Changed" "$cursor_theme ($cursor_size)" +} + +main_options=("wallpaper" "cursor" "both random") +selected_main=$(echo -e "1. ${main_options[0]}\n2. ${main_options[1]}\n3. ${main_options[2]}" | wofi --show dmenu --height 150 --width 200 -p "What to change:" 2>/dev/null) + +case "$selected_main" in + "1. wallpaper") + MODE="wallpaper" ;; - "2. select") - # Select wallpaper with wofi - selected_wallpaper=$(ls -1 "$WALLPAPER_FOLDER" | grep "jpg" | wofi --show dmenu --height 100 --width 200 -p "Select wallpaper:") - if [ -z "$selected_wallpaper" ]; then - echo "No wallpaper selected" - exit 1 - fi - selected_wallpaper_path="$WALLPAPER_FOLDER/$selected_wallpaper" - set_wallpaper "$selected_wallpaper_path" + "2. cursor") + MODE="cursor" + ;; + "3. both random") + MODE="both_random" ;; *) - echo "Invalid option" exit 1 ;; esac -pywalfox update + +if [ "$MODE" == "both_random" ]; then + WALLPAPER=$(find "$WALLPAPER_FOLDER" -type f \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.jpeg" \) 2>/dev/null | shuf -n 1) + + if [ -n "$WALLPAPER" ]; then + set_wallpaper "$WALLPAPER" + fi + + cursor_themes=() + + if [ -d "$CURSOR_FOLDER" ]; then + for theme_dir in "$CURSOR_FOLDER"/*; do + if [ -d "$theme_dir/cursors" ] && [ "$(ls -A "$theme_dir/cursors" 2>/dev/null)" ]; then + cursor_themes+=("$(basename "$theme_dir")") + fi + done + fi + + if [ -d "/usr/share/icons" ]; then + for theme_dir in /usr/share/icons/*; do + if [ -d "$theme_dir/cursors" ] && [ "$(ls -A "$theme_dir/cursors" 2>/dev/null)" ]; then + theme_name=$(basename "$theme_dir") + if [[ ! " ${cursor_themes[@]} " =~ " ${theme_name} " ]]; then + cursor_themes+=("$theme_name") + fi + fi + done + fi + + if [ ${#cursor_themes[@]} -gt 0 ]; then + random_cursor="${cursor_themes[$RANDOM % ${#cursor_themes[@]}]}" + set_cursor "$random_cursor" + fi + + send_notification "Theme Randomized! 🎲" "Wallpaper: $(basename "$WALLPAPER")\nCursor: $random_cursor" + exit 0 +fi + +if [ "$MODE" == "wallpaper" ]; then + options=("random" "select") + selected_option=$(echo -e "1. ${options[0]}\n2. ${options[1]}" | wofi --show dmenu --height 100 --width 200 -p "Wallpaper:" 2>/dev/null) + + case "$selected_option" in + "1. random") + WALLPAPER=$(find "$WALLPAPER_FOLDER" -type f 2>/dev/null | shuf -n 1) + set_wallpaper "$WALLPAPER" + exit 0 + ;; + "2. select") + selected_wallpaper=$(ls -1 "$WALLPAPER_FOLDER" 2>/dev/null | grep -E "\.(jpg|png|jpeg)$" | wofi --show dmenu --height 300 --width 400 -p "Select wallpaper:" 2>/dev/null) + if [ -z "$selected_wallpaper" ]; then + exit 1 + fi + selected_wallpaper_path="$WALLPAPER_FOLDER/$selected_wallpaper" + set_wallpaper "$selected_wallpaper_path" + exit 0 + ;; + *) + exit 1 + ;; + esac +fi + +if [ "$MODE" == "cursor" ]; then + cursor_themes=() + + if [ -d "$CURSOR_FOLDER" ]; then + for theme_dir in "$CURSOR_FOLDER"/*; do + if [ -d "$theme_dir/cursors" ] && [ "$(ls -A "$theme_dir/cursors" 2>/dev/null)" ]; then + cursor_themes+=("$(basename "$theme_dir")") + fi + done + fi + + if [ -d "/usr/share/icons" ]; then + for theme_dir in /usr/share/icons/*; do + if [ -d "$theme_dir/cursors" ] && [ "$(ls -A "$theme_dir/cursors" 2>/dev/null)" ]; then + theme_name=$(basename "$theme_dir") + if [[ ! " ${cursor_themes[@]} " =~ " ${theme_name} " ]]; then + cursor_themes+=("$theme_name") + fi + fi + done + fi + + IFS=$'\n' sorted_cursors=($(sort <<<"${cursor_themes[*]}")) + unset IFS + + if [ ${#sorted_cursors[@]} -eq 0 ]; then + send_notification "Error" "No valid cursor themes found!" + exit 1 + fi + + cursor_list=$(printf "%s\n" "${sorted_cursors[@]}") + + selected_cursor=$(echo "$cursor_list" | wofi --show dmenu --height 300 --width 300 -p "Select cursor theme:" 2>/dev/null) + + if [ -z "$selected_cursor" ]; then + exit 1 + fi + + set_cursor "$selected_cursor" + exit 0 +fi +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/scripts/update_cmus_library.sh b/hypr/scripts/update_cmus_library.sh index 522b206..961f18f 100644 --- a/hypr/scripts/update_cmus_library.sh +++ b/hypr/scripts/update_cmus_library.sh @@ -2,20 +2,10 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < + +cmus-remote -C "add ~/mnt/Musica" +cmus-remote -C "update-cache -f" + # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -cmus-remote -C "add ~/mnt/Musica" -cmus-remote -C "update-cache -f" diff --git a/hypr/scripts/waybar.sh b/hypr/scripts/waybar.sh index 8426677..3efc42a 100644 --- a/hypr/scripts/waybar.sh +++ b/hypr/scripts/waybar.sh @@ -1,5 +1,11 @@ +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < #!/bin/bash killall waybar waybar & +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/scripts/xpad.sh b/hypr/scripts/xpad.sh index 1450181..a75b15b 100644 --- a/hypr/scripts/xpad.sh +++ b/hypr/scripts/xpad.sh @@ -2,21 +2,6 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < CURSOR_POS=$(hyprctl cursorpos | tr -d ',') CURSOR_X=$(echo "$CURSOR_POS" | awk '{print $1}') @@ -28,6 +13,10 @@ Y_OFFSET=-150 # Adjust based on xpad height FINAL_X=$((CURSOR_X + X_OFFSET)) FINAL_Y=$((CURSOR_Y + Y_OFFSET)) -hyprctl keyword windowrulev2 "move $FINAL_X $FINAL_Y,class:^(xpad)$" +hyprctl keyword windowrule "move $FINAL_X $FINAL_Y,match:class xpad" xpad & + +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hypr/scripts/youtube-music.sh b/hypr/scripts/youtube-music.sh index 2a54a16..4b881ad 100644 --- a/hypr/scripts/youtube-music.sh +++ b/hypr/scripts/youtube-music.sh @@ -2,21 +2,6 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < CURSOR_POS=$(hyprctl cursorpos | tr -d ',') CURSOR_X=$(echo "$CURSOR_POS" | awk '{print $1}') @@ -28,6 +13,11 @@ Y_OFFSET=-150 # Adjust based on xpad height FINAL_X=$((CURSOR_X + X_OFFSET)) FINAL_Y=$((CURSOR_Y + Y_OFFSET)) -hyprctl keyword windowrulev2 "move $FINAL_X $FINAL_Y,class:^(com\.github\.th_ch\.youtube_music)$" +hyprctl keyword windowrule "move $FINAL_X $FINAL_Y,match:class com.github.th_ch.youtube_music" + +youtube-music & -youtube-music & \ No newline at end of file + +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/hyprland.conf b/hyprland.conf deleted file mode 100644 index b40ce8f..0000000 --- a/hyprland.conf +++ /dev/null @@ -1,197 +0,0 @@ -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# Monitor # -monitor=,1920x1080,auto,1 -# Auto Start # -exec-once = wl-paste --type text --watch cliphist store -exec-once = wl-paste --type image --watch cliphist store -exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP -exec-once = dbus-update-activation-environment --systemd --all -exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP -exec-once = waybar -exec-once = swww init -# Source Files # -source = ~/.cache/wal/colors-hyprland -# Environment Variables # -env = XDG_CURRENT_DESKTOP,Hyprland -env = XDG_SESSION_TYPE,wayland -env = XDG_SESSION_DESKTOP,Hyprland -env = XCURSOR_SIZE,24 -env = QT_QPA_PLATFORM,wayland -env = QT_STYLE_OVERRIDE,kvantum -env = QT_QPA_PLATFORMTHEME,qt5ct -env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 -env = QT_AUTO_SCREEN_SCALE_FACTOR,1 -# EcoSystem -ecosystem { - no_update_news = 1 -} -# Keyboard Layout # -input { - kb_layout = gb - kb_variant = - kb_model = - kb_options = - kb_rules = - follow_mouse = 1 - touchpad { - natural_scroll = no - } - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. -} -# Window Layout and colors # -general { - gaps_in = 5 - gaps_out = 7 - border_size = 2 - col.active_border = $color3 - col.inactive_border = $color7 - layout = dwindle -} -# General Window Decoration # -decoration { - rounding = 10 - active_opacity = 1.0 - inactive_opacity = 1.0 - fullscreen_opacity = 1.0 - # dim_inactive = true - # dim_strength = 0.5 - - blur { - enabled = true - size = 5 - passes = 1 - new_optimizations = on -} - shadow { - enabled = true - range = 30 - render_power = 3 - color = 0x66000000 -} -} -# Animations # -animations { - enabled = yes - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - animation = windows, 1, 7, myBezier - animation = windowsOut, 1, 7, default, popin 80% - animation = border, 1, 10, default - animation = borderangle, 1, 8, default - animation = fade, 1, 7, default - animation = workspaces, 1, 6, default -} -# Layouts # -dwindle { - pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = yes # you probably want this -} -master { - new_status = master -} -gestures { - workspace_swipe = off -} -# Device Config # -device { - name = epic-mouse-v1 - sensitivity = -0.1 -} -# Window Rules # -windowrulev2 = float,class:^(pavucontrol)$ -windowrulev2 = float,class:^(Alacritty)$ -windowrulev2 = float,class:^(com\.github\.th_ch\.youtube_music)$ -# Pin and float external windows # -windowrulev2 = float,title:^(Picture-in-Picture)$ -windowrulev2 = pin,title:^(Picture-in-Picture)$ -windowrulev2 = opacity 0.7,title:^(Picture-in-Picture)$ -# Opacity Rules # -windowrulev2 = opacity 0.9 0.4,class:^(Alacritty)$ -windowrulev2 = opacity 0.9 0.4,class:^(xpad)$ -#windowrulev2 = opacity 1.0 1.0,class:^(VSCodium)$ -# Xpad Rules # -windowrulev2 = float,class:^(xpad)$ -#windowrulev2 = pin,class:^(xpad)$ # Sticks to all workspaces -# Mouse Binds # -bindm=SUPER,mouse:272,movewindow -bindm=SUPER, mouse:273, resizewindow -# Key Binds # -$mainMod = SUPER -# Kill Window # -bind = $mainMod, K, killactive, -# Volumen # -bind = $mainMod, Q, exec, pamixer -i 5 -bind = $mainMod, A, exec, pamixer -d 5 -# Clipboard # -bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy -# Apps # -bind = $mainMod, RETURN, exec, ~/.config/hypr/scripts/alacritty.sh -bind = $mainMod, D, exec, wofi -I -S drun -bind = $mainMod, E, exec, librewolf -bind = $mainMod, C, exec, codium -bind = $mainMod, S, exec, signal-desktop -bind = $mainMod, F, exec, obsidian -# Scripts # -bind = $mainMod, W, exec, ~/.config/hypr/scripts/up-w4l.sh -bind = $mainMod, B, exec, ~/.config/hypr/scripts/waybar.sh -bind = $mainMod, M, exec, ~/.config/hypr/scripts/youtube-music.sh -bind = $mainMod, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh -bind = $mainMod, R, exec, ~/.config/hypr/scripts/cach3raser.sh -bind = SUPER, N, exec, ~/.config/hypr/scripts/xpad.sh -# Windows Modes # -bind = $mainMod, U, fullscreen -bind = $mainMod, P, togglefloating, -bind = $mainMod, O, pseudo, # dwindle -bind = $mainMod, I, togglesplit, # dwindle -# Focus # -bind = $mainMod, left, movefocus, l -bind = $mainMod, right, movefocus, r -bind = $mainMod, up, movefocus, u -bind = $mainMod, down, movefocus, d -# Resize # -bind = $mainMod SHIFT, right, resizeactive, 100 0 -bind = $mainMod SHIFT, left, resizeactive, -100 0 -bind = $mainMod SHIFT, up, resizeactive, 0 -100 -bind = $mainMod SHIFT, down, resizeactive, 0 100 -# Moving Windows # -bind = $mainMod CTRL, left, swapwindow, l -bind = $mainMod CTRL, right, swapwindow, r -bind = $mainMod CTRL, up, swapwindow, u -bind = $mainMod CTRL, down, swapwindow, d -# Workspace # -bind = $mainMod, 1, workspace, 1 -bind = $mainMod, 2, workspace, 2 -bind = $mainMod, 3, workspace, 3 -bind = $mainMod, 4, workspace, 4 -bind = $mainMod, 5, workspace, 5 -bind = $mainMod, 6, workspace, 6 -bind = $mainMod, 7, workspace, 7 -bind = $mainMod, 8, workspace, 8 -bind = $mainMod, 9, workspace, 9 -bind = $mainMod, 0, workspace, 10 -bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 -bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 -bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 -bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 -bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 -bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 -bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 -bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 -bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 -bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 diff --git a/install-Hacking-Tools.sh b/install-Hacking-Tools.sh index 999e3d9..3902b26 100644 --- a/install-Hacking-Tools.sh +++ b/install-Hacking-Tools.sh @@ -1,19 +1,5 @@ #!/bin/bash -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < + # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < @@ -46,16 +32,49 @@ enable_services() { } # Packages -install_packages qflipper-bin nmap openbsd-netcat rlwrap mariadb john feroxbuster impacket metasploit exploitdb proxychains-ng oath-toolkit bind sqlmap wpscan sqlite chromium tftp-hpa zaproxy hashcat +install_packages binwalk finalrecon qflipper-bin openbsd-netcat rlwrap impacket metasploit proxychains-ng oath-toolkit bind nasm strace + +# Protocols +install_packages freerdp net-snmp tftp-hpa + +# Utility +install_package navi ipcalc csvlens + +# Bruteforcing +install_package john feroxbuster hydra hashcat + +# Scanners +install_package wpscan sherlock nmap + +# Databases +install_packages exploitdb sqlmap mariadb sqlite + +# Wifi +install_packages macchanger bettercap aircrack-ng hcxtools hcxdumptool pocl + +# Stego +install_packages exiftool + +# Yay Packages +install_packages_yay ffuf gobuster burpsuite smbmap naabu netexec ruby-evil-winrm whatweb steghide pince git-dumper-git caido-desktop rustscan hashid python-oletools detect-it-easy responder # Python -install_packages python-pwntools python-aiosmtpd python-websocket-client python-bs4 python-requests python-beautifulsoup4 python-pexpect python-selenium +install_packages python-pwntools python-aiosmtpd python-websocket-client python-bs4 python-requests python-beautifulsoup4 python-pexpect python-selenium python-pycryptodome # Go go install github.com/sensepost/gowitness@latest - -# Yay Packages -install_packages_yay ffuf gobuster burpsuite smbmap naabu netexec ruby-evil-winrm whatweb steghide pince caido-desktop rustscan +go install github.com/CodeOne45/vex-tui@latest +go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest # Posting curl -LsSf https://astral.sh/uv/install.sh | sh + +# GEF +bash -c "$(curl -fsSL https://gef.blah.cat/sh)" + +# Penelope +wget https://raw.githubusercontent.com/brightio/penelope/refs/heads/main/penelope.py && python3 penelope.py + +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/install-uup-deps.sh b/install-uup-deps.sh new file mode 100644 index 0000000..fe12240 --- /dev/null +++ b/install-uup-deps.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +echo "Installing UUP Dump dependencies for Arch Linux..." + +sudo pacman -S --needed aria2 cabextract wimlib chntpw cdrtools mtools + +echo "All dependencies installed!" +echo "You can now run UUP Dump scripts to download Windows ISOs." diff --git a/install_john.sh b/install_john.sh new file mode 100644 index 0000000..ba762bf --- /dev/null +++ b/install_john.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# John the Ripper Installation Script +# Installs from official GitHub repository + +set -e # Exit on any error + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# Configuration +INSTALL_DIR="$HOME/tools" +JOHN_DIR="$INSTALL_DIR/john" + +echo -e "${GREEN}[*] John the Ripper Installation Script${NC}" +echo "" + +# Create tools directory if it doesn't exist +if [ ! -d "$INSTALL_DIR" ]; then + echo -e "${YELLOW}[+] Creating tools directory: $INSTALL_DIR${NC}" + mkdir -p "$INSTALL_DIR" +fi + +# Check if John already exists +if [ -d "$JOHN_DIR" ]; then + echo -e "${YELLOW}[!] John the Ripper directory already exists${NC}" + read -p "Do you want to update it? (y/n): " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + echo -e "${GREEN}[+] Updating John the Ripper...${NC}" + cd "$JOHN_DIR" + git pull + else + echo -e "${RED}[!] Installation cancelled${NC}" + exit 0 + fi +else + echo -e "${GREEN}[+] Cloning John the Ripper repository...${NC}" + cd "$INSTALL_DIR" + git clone https://github.com/openwall/john.git +fi + +# Build John +echo -e "${GREEN}[+] Building John the Ripper...${NC}" +cd "$JOHN_DIR/src" + +echo -e "${YELLOW}[+] Running configure...${NC}" +./configure + +echo -e "${YELLOW}[+] Compiling (this may take a while)...${NC}" +make -s clean && make -sj4 + +# Check if build was successful +if [ $? -eq 0 ]; then + echo "" + echo -e "${GREEN}[✓] John the Ripper installed successfully!${NC}" + echo "" + echo -e "${YELLOW}Installation location:${NC} $JOHN_DIR" + echo -e "${YELLOW}Binary location:${NC} $JOHN_DIR/run/john" + echo "" + echo -e "${YELLOW}[+] To use John, you can:${NC}" + echo " 1. Run directly: $JOHN_DIR/run/john" + echo " 2. Add to PATH: export PATH=\"\$PATH:$JOHN_DIR/run\"" + echo " 3. Create an alias: alias john='$JOHN_DIR/run/john'" + echo "" + + # Offer to add to PATH + read -p "Do you want to add John to your PATH in ~/.bashrc? (y/n): " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + echo "" >> ~/.bashrc + echo "# John the Ripper" >> ~/.bashrc + echo "export PATH=\"\$PATH:$JOHN_DIR/run\"" >> ~/.bashrc + echo -e "${GREEN}[✓] Added to ~/.bashrc${NC}" + echo -e "${YELLOW}[!] Run 'source ~/.bashrc' or restart your terminal${NC}" + fi +else + echo -e "${RED}[✗] Build failed!${NC}" + exit 1 +fi diff --git a/main-installation.sh b/main-installation.sh index 37dd71d..e271c42 100644 --- a/main-installation.sh +++ b/main-installation.sh @@ -2,21 +2,7 @@ # /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ # ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) # > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -# /\_/\ .. .. .. .. .. .x+=:. /\_/\ -# ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -# > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -# /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -# ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -# > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -# /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -# ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -# > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -# /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -# ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -# > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < +SCRIPT_DIR=$(dirname "$(realpath "$0")") # Functions error_exit() { echo "$1" 1>&2 @@ -45,85 +31,157 @@ enable_services() { done } +# Firewall setup +install_packages ufw +sudo ufw enable || error_exit "Failed to enable UFW" +enable_services ufw.service + # Install Hyprland install_packages hyprland ly +# Install Git +install_packages git git-lfs + # Home directories setup mkdir -p ~/Downloads ~/Screenshots || error_exit "Failed to create directories" -# Enable Black Arch repo -curl -fsSL https://blackarch.org/strap.sh | sudo bash || error_exit "Failed to enable Black Arch repo" +# Install Black Arch Basics +#curl -fsSL https://blackarch.org/strap.sh | sudo bash || error_exit "Failed to enable Black Arch repo" -# Firewall setup -install_packages ufw -sudo ufw enable || error_exit "Failed to enable UFW" -enable_services ufw.service +# Enable BlackArch repository +echo -e "\n\033[1;35mEnabling BlackArch repository (lean mode – no tools installed yet)...\033[0m" + +# Import and trust the official BlackArch master key +sudo pacman-key --keyserver keyserver.ubuntu.com --recv-keys 4345771566D76038C7FEB43863EC0ADBEA87E4E3 || error_exit "Failed to recv BlackArch master key" +sudo pacman-key --lsign-key 4345771566D76038C7FEB43863EC0ADBEA87E4E3 || error_exit "Failed to lsign BlackArch master key" + +# Download and install only the keyring +curl -fsSLO https://blackarch.org/keyring/blackarch-keyring.pkg.tar.zst || error_exit "Failed to download blackarch-keyring" +sudo pacman -U --noconfirm blackarch-keyring.pkg.tar.zst || error_exit "Failed to install blackarch-keyring" +rm -f blackarch-keyring.pkg.tar.zst + +# Add BlackArch repo to the pacman config file (idempotent) +if ! grep -q '^\[blackarch\]' /etc/pacman.conf; then + cat <<'EOF' | sudo tee -a /etc/pacman.conf > /dev/null + +[blackarch] +Server = https://mirror.blackarch.org/$repo/os/$arch +EOF + echo "BlackArch repo added to /etc/pacman.conf" +else + echo "BlackArch repo already present – skipping duplicate entry" +fi + +# Refresh databases so BlackArch packages are instantly available +sudo pacman -Syy --noconfirm || error_exit "Failed to refresh package databases (pacman -Syy)" + +echo -e "\033[1;32mBlackArch repository enabled successfully! (lean mode)\033[0m" +echo -e "\033[1;33m→ Tools ready! Example: sudo pacman -S nmap sqlmap metasploit hashcat john\033[0m" + +# Flatpak +install_packages flatpak +flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # Yay setup -install_packages base-devel git +mkdir -p /tmp/yay_install +cd /tmp/yay_install || error_exit "Failed to enter temp dir" git clone https://aur.archlinux.org/yay-git.git cd yay-git -makepkg -si || error_exit "Failed to install yay" -cd .. +makepkg -si --noconfirm || error_exit "Failed to install yay" +cd /tmp/yay_install +rm -rf yay-git +cd - || return # Mirrors setup sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup || error_exit "Failed to backup mirrorlist" -sudo pacman -Sy --noconfirm pacman-contrib || error_exit "Failed to install pacman-contrib" -# sudo rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist || error_exit "Failed to rank mirrors" +install_packages reflector +sudo reflector --latest 10 --sort rate --save /etc/pacman.d/mirrorlist # PacCache setup sudo systemctl enable --now paccache.timer || error_exit "Failed to enable paccache.timer" -# Binaries -install_packages zsh alacritty wofi curl wget locate less tree neofetch exa bat apparmor whois tcpdump exfat-utils openssh strace lsof fwupd tinyxxd +# Basic +install_packages zsh alacritty wofi plocate less tree exa bat apparmor exfatprogs lsof fwupd tinyxxd iw fzf btop cliphist waybar + +# File Management +install_packages yazi thunar udisks2 gvfs thunar-volman +sudo usermod -aG storage ${SUDO_USER:-$USER} +sudo systemctl enable --now udisks2 # Qt install_packages qt5-wayland qt6-wayland qt6-base qt6-tools qtcreator +# Networking Tools +install_packages curl wget tcpdump wireless_tools openssh net-tools curlie macchanger whois openvpn + # Programming & Development -install_packages cargo go tk geckodriver python-pip python-pywal ncurses cmake pngquant oxipng +install_packages cargo go tk geckodriver python-pip python-pywal ncurses cmake pngquant oxipng mkcert # Media -install_packages cmus pamixer pavucontrol vlc +install_packages sxiv cmus pamixer pavucontrol vlc # Bluetooth install_packages blueman bluez bluez-utils enable_services bluetooth +# PAM +install_packages pam_yubico pam-u2f + # Utils -install_packages curlie waybar ranger fzf btop cliphist pam_yubico pam-u2f atool unzip zip sxiv p7zip net-tools openvpn proton-vpn-gtk-app jq timeshift qemu-user perl-image-exiftool +install_packages ueberzugpp proton-vpn-gtk-app jq timeshift qemu-user perl-image-exiftool firejail docker-compose dosfstools wev brightnessctl zoxide resvg fd ripgrep + +# Compression Tools +install_packages atool unzip unrar zip 7zip # Graphic Design -install_packages gimp blender inkscape +install_packages gimp +#blender inkscape kdenlive # Text Editor/Viewer install_packages obsidian libreoffice-fresh zathura zathura-pdf-mupdf # Gaming -install_packages steam lutris +install_packages steam +#lutris # Messengers -install_packages signal-desktop thunderbird +install_packages signal-desktop +#thunderbird # OBS -install_packages obs xdg-desktop-portal-hyprland xdg-desktop-portal-wlr +install_packages obs-studio xdg-desktop-portal-hyprland xdg-desktop-portal-wlr # Wireshark install_packages wireshark-qt -sudo chmod +x /usr/bin/dumpcap || error_exit "Failed to change permissions for dumpcap" +sudo usermod -aG wireshark ${SUDO_USER:-$USER} +sudo setcap cap_net_raw,cap_net_admin+eip /usr/bin/dumpcap +#sudo chmod +x /usr/bin/dumpcap || error_exit "Failed to change permissions for dumpcap" + +# LLM +#install_packages +curl -fsSL https://llmfit.axjns.dev/install.sh | sh # Screenshots install_packages grim swappy slurp # Yay Packages -install_packages_yay ttf-firacode-nerd hyprland-qtutils swww vscodium-bin librewolf-bin scrub zsh-syntax-highlighting zsh-autosuggestions xpad youtube-music-bin cursor-bin python-pywalfox-librewolf +install_packages_yay ttf-firacode-nerd hyprland-qtutils awww vscodium-bin librewolf-bin scrub zsh-syntax-highlighting zsh-autosuggestions xpad youtube-music-bin cursor-bin python-pywalfox-librewolf # Dot Files +cd "$SCRIPT_DIR" || exit 1 for config_dir in alacritty btop gtk-3.0 gtk-4.0 hypr swappy waybar; do - cp -r "$config_dir" ~/.config/ || error_exit "Failed to copy $config_dir" + if [ -d "$config_dir" ]; then + cp -r "$config_dir" ~/.config/ || error_exit "Failed to copy $config_dir" + fi done -cp -r wal ~/.config || error_exit "Failed to copy wal/templates" +if [ -d "wal" ]; then + cp -r wal ~/.config/ || error_exit "Failed to copy wal/templates" +fi + +# Dark Mode for root +sudo cp ~/.config/gtk-3.0/settings.ini /root/.config/gtk-3.0/settings.ini +sudo cp ~/.config/gtk-4.0/settings.ini /root/.config/gtk-4.0/settings.ini # Script Permissions sudo chmod +x ~/.config/hypr/scripts/*.sh || error_exit "Failed to change script permissions" @@ -132,51 +190,17 @@ sudo chmod +x ~/.config/hypr/scripts/*.sh || error_exit "Failed to change script sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" || error_exit "Failed to install oh-my-zsh" # Set pywal -wal -i ~/Arch-Installation-Script/w4llp4p3rs/1.jpg || error_exit "Failed to set pywal" -pywalfox install --browser librewolf || || error_exit "Failed to set pywalfox" +wal -i ~/Arch-Installation-Scripts/w4llp4p3rs/1.jpg || error_exit "Failed to set pywal" +pywalfox install --browser librewolf || error_exit "Failed to set pywalfox" # Set Wallpaper -swww img ~/Arch-Installation-Script/w4llp4p3rs/1.jpg +awww img ~/Arch-Installation-Scripts/w4llp4p3rs/1.jpg # .zshsrc -SCRIPT_DIR=$(dirname "$(realpath "$0")") cp "$SCRIPT_DIR/.zshrc" ~/ || error_exit "Failed to copy .zshrc" -# Function to install VirtualBox -install_virtualbox() { - echo "Installing VirtualBox host modules..." - sudo pacman -S --noconfirm virtualbox-host-modules-arch - echo "Installing VirtualBox..." - sudo pacman -S --noconfirm virtualbox - echo "Loading VirtualBox modules..." - sudo modprobe vboxdrv - echo "Checking VirtualBox version..." - VBOX_VERSION=$(vboxmanage -v | cut -dr -f1) - echo "VirtualBox version detected: $VBOX_VERSION" - EXT_PACK_URL="https://download.virtualbox.org/virtualbox/$VBOX_VERSION/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack" - echo "Downloading VirtualBox Extension Pack from $EXT_PACK_URL..." - wget $EXT_PACK_URL - echo "Installing VirtualBox Extension Pack..." - sudo vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack - echo "Verifying the installed Extension Pack..." - vboxmanage list extpacks - read -p "Do you want to add your user to the vboxusers group? (yes/no): " ADD_USER - if [[ "$ADD_USER" == "yes" ]]; then - sudo usermod -aG vboxusers $USER - echo "User $USER has been added to the vboxusers group." - else - echo "User $USER was not added to the vboxusers group." - fi - rm Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VERSION.vbox-extpack - echo "VirtualBox installation and setup complete." -} - -read -p "Do you want to install VirtualBox? (yes/no): " INSTALL_VBOX -if [[ "$INSTALL_VBOX" == "yes" ]]; then - install_virtualbox -else - echo "Skipping VirtualBox installation." -fi - echo "Finished! Please reboot." +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/setup-renoise-arch.sh b/setup-renoise-arch.sh new file mode 100644 index 0000000..5b42e0a --- /dev/null +++ b/setup-renoise-arch.sh @@ -0,0 +1,111 @@ +#!/bin/bash + +# Renoise Audio Setup Script for Arch Linux +# Configures real-time audio permissions and PipeWire for low-latency performance + +set -e # Exit on error + +echo "==========================================" +echo "Renoise Audio Setup for Arch Linux" +echo "==========================================" +echo "" + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# Check if running as root +if [[ $EUID -eq 0 ]]; then + echo -e "${RED}ERROR: Do not run this script as root/sudo${NC}" + echo "Run it as your normal user - it will prompt for sudo when needed" + exit 1 +fi + +echo -e "${YELLOW}[1/5] Adding user to audio group...${NC}" +if groups $USER | grep -q '\baudio\b'; then + echo "✓ Already in audio group" +else + sudo usermod -aG audio $USER + echo -e "${GREEN}✓ Added $USER to audio group${NC}" +fi + +echo "" +echo -e "${YELLOW}[2/5] Configuring real-time audio limits...${NC}" +if grep -q "^@audio.*rtprio" /etc/security/limits.conf 2>/dev/null; then + echo "✓ Real-time limits already configured" +else + sudo tee -a /etc/security/limits.conf > /dev/null << 'EOF' + +# Real-time audio configuration for Renoise/DAWs +@audio - rtprio 95 +@audio - memlock unlimited +@audio - nice -19 +EOF + echo -e "${GREEN}✓ Real-time limits configured${NC}" +fi + +echo "" +echo -e "${YELLOW}[3/5] Creating PipeWire config directory...${NC}" +mkdir -p ~/.config/pipewire/pipewire.conf.d +echo -e "${GREEN}✓ Directory created${NC}" + +echo "" +echo -e "${YELLOW}[4/5] Configuring PipeWire for low-latency audio...${NC}" +cat > ~/.config/pipewire/pipewire.conf.d/10-renoise.conf << 'EOF' +# Optimized settings for Renoise and audio production +context.properties = { + default.clock.rate = 44100 + default.clock.quantum = 512 + default.clock.min-quantum = 32 + default.clock.max-quantum = 2048 +} + +context.modules = [ + { name = libpipewire-module-rt + args = { + nice.level = -11 + rt.prio = 88 + rt.time.soft = -1 + rt.time.hard = -1 + } + flags = [ ifexists nofail ] + } +] +EOF +echo -e "${GREEN}✓ PipeWire configuration created${NC}" + +echo "" +echo -e "${YELLOW}[5/5] Restarting PipeWire services...${NC}" +systemctl --user restart pipewire pipewire-pulse wireplumber 2>/dev/null || true +echo -e "${GREEN}✓ PipeWire restarted${NC}" + +echo "" +echo "==========================================" +echo -e "${GREEN}Setup Complete!${NC}" +echo "==========================================" +echo "" +echo -e "${RED}⚠️ IMPORTANT: You must LOG OUT and LOG BACK IN${NC}" +echo " for the audio group changes to take effect." +echo "" +echo "After logging back in, you can verify with:" +echo " ulimit -r # Should show: 95" +echo " groups # Should include: audio" +echo "" +echo "Recommended Renoise settings:" +echo " • Device type: JACK (use PipeWire's JACK compatibility)" +echo " • Buffer size: 256-512 (for ~5-12ms latency)" +echo " • Sample rate: 44100 Hz" +echo " • Enable: Use realtime priority" +echo "" +echo "IMPORTANT: Use JACK, not ALSA!" +echo " - ALSA bypasses PipeWire and causes conflicts" +echo " - JACK gives proper real-time performance" +echo " - PipeWire provides JACK API automatically" +echo "" +echo "If you experience audio glitches, increase buffer:" +echo " 256 → 512 → 1024" +echo "" +echo -e "${GREEN}Happy tracking! 🎵${NC}" + diff --git a/setup_qemu.sh b/setup_qemu.sh new file mode 100644 index 0000000..22f91c1 --- /dev/null +++ b/setup_qemu.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# QEMU & Libvirt Setup Script for Arch Linux +# This script installs and configures everything needed to run Windows 11 in Virt-Manager + +echo "--- Starting QEMU/Libvirt Setup ---" + +# 1. Install necessary packages +echo "[*] Installing QEMU, Virt-Manager, and Windows 11 dependencies..." +sudo pacman -S --needed --noconfirm \ + qemu-base \ + qemu-desktop \ + virt-manager \ + virt-viewer \ + dnsmasq \ + iptables-nft \ + bridge-utils \ + swtpm \ + edk2-ovmf + +# 2. Add current user to libvirt group for permission +echo "[*] Adding $USER to libvirt group..." +sudo usermod -aG libvirt $USER + +# 3. Enable and start libvirt modular daemons +echo "[*] Starting and enabling libvirt services..." +sudo systemctl enable --now libvirtd +sudo systemctl enable --now virtnetworkd +sudo systemctl enable --now virtstoraged + +# 4. Set up default network if it doesn't exist +echo "[*] Ensuring default network is active..." +sudo virsh net-start default 2>/dev/null +sudo virsh net-autostart default 2>/dev/null + +echo "" +echo "--- Setup Complete! ---" +echo "IMPORTANT: You MUST log out and log back in (or reboot) for the group changes to take effect." +echo "After logging back in, you can launch 'virt-manager' to start creating your Windows 11 VM." diff --git a/swappy/config b/swappy/config index 866b16e..b2dd2ab 100644 --- a/swappy/config +++ b/swappy/config @@ -1,3 +1,7 @@ +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < + [Default] save_dir=$HOME/Screenshots save_filename_format=swappy-%Y%m%d-%H%M%S.png @@ -7,4 +11,8 @@ text_size=20 text_font=sans-serif paint_mode=brush early_exit=false -fill_shape=false \ No newline at end of file +fill_shape=false + +# /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +# ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +# > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/waybar/config.jsonc b/waybar/config.jsonc index ac3a956..fa6ea1a 100644 --- a/waybar/config.jsonc +++ b/waybar/config.jsonc @@ -1,21 +1,7 @@ // /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ // ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) // > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < -// /\_/\ .. .. .. .. .. .x+=:. /\_/\ -// ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) -// > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < -// /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ -// ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) -// > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < -// /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ -// ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) -// > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < -// /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ -// ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) -// > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < -// /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ -// ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) -// > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < + { "layer": "top", "position": "top", @@ -171,3 +157,7 @@ "on-click": "alacritty -e cmus" } } + +// /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ +// ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) +// > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < diff --git a/waybar/style.css b/waybar/style.css index e375c11..30ad08e 100644 --- a/waybar/style.css +++ b/waybar/style.css @@ -1,21 +1,7 @@ /* /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ */ /* ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) */ /* > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < */ -/* /\_/\ .. .. .. .. .. .x+=:. /\_/\ */ -/* ( o.o ) . uW8" .n~~%x. x .d88" x .d88" x .d88" x .d88" .n~~%x. z` ^% ( o.o ) */ -/* > ^ < `t888 x88X 888. 5888R 5888R x. . 5888R 5888R x88X 888. . ^ < */ -/* /\_/\ 8888 . X888X 8888L '888R '888R .@88k z88u '888R '888R X888X 8888L .@8Ned8" /\_/\ */ -/* ( o.o ) 9888.z88N X8888X 88888 888R 888R ~"8888 ^8888 888R 888R X8888X 88888 .@^%8888" ( o.o ) */ -/* > ^ < 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X x88: `)8b. > ^ < */ -/* /\_/\ 9888 888E 88888X 88888X 888R 888R 8888 888R 888R 888R 88888X 88888X 8888N=*8888 /\_/\ */ -/* ( o.o ) 9888 888E 88888X 88888f 888R 888R 8888 888R 888R 888R 88888X 88888f %8" R88 ( o.o ) */ -/* > ^ < 9888 888E 48888X 88888 888R 888R 8888 ,888B . 888R 888R 48888X 88888 @8Wou 9% > ^ < */ -/* /\_/\ .8888 888" ?888X 8888" .888B . .888B . "8888Y 8888" .888B . .888B . ?888X 8888" .888888P` /\_/\ */ -/* ( o.o ) `%888*%" "88X 88*` ^*888% ^*888% `Y" 'YP ^*888% ^*888% "88X 88*` ` ^"F ( o.o ) */ -/* > ^ < "` ^"==="` "% "% "% "% ^"==="` > ^ < */ -/* /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ */ -/* ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) */ -/* > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < */ + /* Color Source */ @import "../../.cache/wal/colors-waybar.css"; /* Basic */ @@ -136,3 +122,7 @@ window#waybar { margin-right: 5px; border-left: 0px; } + +/* /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ */ +/* ( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o )( o.o ) */ +/* > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < > ^ < */