Hyprland dotfiles
initial commit
99 files changed, +7058 -0
+2-0.gitignore
| @@ -0,0 +1,2 @@ | ||
| 1 | +wallpaper_effects | |
| 2 | +monitors.conf |
+0-0.initial_startup_done
No content changes (mode or rename only).
+14-0Monitor_Profiles/README
| @@ -0,0 +1,14 @@ | ||
| 1 | +# Create a Monitor profile you want to on this directory | |
| 2 | + | |
| 3 | +# Create a unique file name i.e. Mirror, or Office, Scale, etc etc | |
| 4 | + | |
| 5 | +# tip: You can easily create a profile using nwg-displays | |
| 6 | +# after creating a profile using nwg-displays, copy the ~/.config/hypr/monitors.conf file to this directory with a unique file name | |
| 7 | +# suggest not to call it default | |
| 8 | + | |
| 9 | + | |
| 10 | +# Note, after selecting Profiles wanted via Rofi (SUPER SHIFT E), previous content of ~/.config/hypr/monitors.conf will be backed up and named as Previous_Profile.conf | |
| 11 | + | |
| 12 | +# Monitor profile should be loaded automatically once selected by KooL Rofi Settings ROfi Menu, unless you disabled the auto-reload function on Hyprland settings. | |
| 13 | +# However, if it does not load, kindly log out and re-login. This seem apparent if you are using a Virtual Environment. | |
| 14 | + |
+52-0Monitor_Profiles/default.conf
| @@ -0,0 +1,52 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# default Monitor config | |
| 3 | + | |
| 4 | +# Monitor Configuration | |
| 5 | +# See Hyprland wiki for more details | |
| 6 | +# https://wiki.hyprland.org/Configuring/Monitors/ | |
| 7 | +# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info. | |
| 8 | + | |
| 9 | +# Monitors | |
| 10 | +monitor=,preferred,auto,1 | |
| 11 | + | |
| 12 | +# High Refresh Rate | |
| 13 | +monitor=,highrr,auto,1 | |
| 14 | + | |
| 15 | +# High Resolution | |
| 16 | +monitor=,highres,auto,1 | |
| 17 | + | |
| 18 | +# NOTE: for laptop, kindly check notes in Laptops.conf regarding display | |
| 19 | +# Created this inorder for the monitor display to not wake up if not intended. | |
| 20 | +# See here: https://github.com/hyprwm/Hyprland/issues/4090 | |
| 21 | + | |
| 22 | +# Some examples to set your own monitor | |
| 23 | +#monitor = eDP-1, preferred, auto, 1 | |
| 24 | +#monitor = eDP-1, 2560x1440@165, 0x0, 1 #own screen | |
| 25 | +#monitor = DP-3, 1920x1080@240, auto, 1 | |
| 26 | +#monitor = DP-1, preferred, auto, 1 | |
| 27 | +#monitor = HDMI-A-1, preferred,auto,1 | |
| 28 | + | |
| 29 | +# QEMU-KVM, virtual box or vmware | |
| 30 | +#monitor = Virtual-1, 1920x1080@60,auto,1 | |
| 31 | + | |
| 32 | +# to disable a monitor | |
| 33 | +#monitor=name,disable | |
| 34 | + | |
| 35 | +# Mirror samples | |
| 36 | +#monitor=DP-3,1920x1080@60,0x0,1,mirror,DP-2 | |
| 37 | +#monitor=,preferred,auto,1,mirror,eDP-1 | |
| 38 | +#monitor=HDMI-A-1,2560x1440@144,0x0,1,mirror,eDP-1 | |
| 39 | + | |
| 40 | +# 10 bit monitor support - See wiki https://wiki.hyprland.org/Configuring/Monitors/#10-bit-support - See NOTES below | |
| 41 | +# NOTE: Colors registered in Hyprland (e.g. the border color) do not support 10 bit. | |
| 42 | +# NOTE: Some applications do not support screen capture with 10 bit enabled. (Screen captures like OBS may render black screen) | |
| 43 | +# monitor=,preferred,auto,1,bitdepth,10 | |
| 44 | + | |
| 45 | +#monitor=eDP-1,transform,0 | |
| 46 | +#monitor=eDP-1,addreserved,10,10,10,49 | |
| 47 | + | |
| 48 | +# workspaces - Monitor rules | |
| 49 | +# https://wiki.hyprland.org/Configuring/Workspace-Rules/ | |
| 50 | +# SUPER E - Workspace-Rules | |
| 51 | +# See ~/.config/hypr/UserConfigs/WorkspaceRules.conf | |
| 52 | + |
+16-0UserConfigs/00-Readme
| @@ -0,0 +1,16 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | + | |
| 3 | +KooL's Hyprland-Dots | |
| 4 | + | |
| 5 | +1.) Suggest not to rename any files in this directory. As this is connected and being sourced from hyprland.conf in ~/.config/hypr | |
| 6 | + | |
| 7 | +2.) This directory, along with UserScripts directory will NOT be touch when running upgrade.sh | |
| 8 | + | |
| 9 | +3.) However, if hyprland has a big change in settings, i.e., blur section is moved into another group, you should managed the change yourself. | |
| 10 | + | |
| 11 | +4.) Guidance on the keybinds. Suggest NOT to assign a keybind which I set on the default Keybinds. Else will conflict. Once Hyprland decided to have a global keybinds, then I will adjust. | |
| 12 | + | |
| 13 | +5.) If you think that the default keybinds SHOULD be adjusted, open an issue on my github page and present me a valid argument. Like conflicting to GLOBAL keybinds, etc etc etc. | |
| 14 | + | |
| 15 | + | |
| 16 | +I will update the Hyprland-Dots wiki for guidance. Make sure to check out changelogs as well |
+19-0UserConfigs/01-UserDefaults.conf
| @@ -0,0 +1,19 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | + | |
| 3 | +# This is a file where you put your own default apps, default search Engine etc | |
| 4 | + | |
| 5 | +# Set your default editor here uncomment and reboot to take effect. | |
| 6 | +# NOTE, this will be automatically uncommented if you select neovim or vim to your default editor | |
| 7 | +env = EDITOR,nvim #default editor | |
| 8 | + | |
| 9 | +# Define preferred text editor for the KooL Quick Settings Menu (SUPER SHIFT E) | |
| 10 | +# script will take the default EDITOR and nano as fallback | |
| 11 | +$edit=${EDITOR:-nano} | |
| 12 | + | |
| 13 | +# These two are for UserKeybinds.conf & Waybar Modules | |
| 14 | +$term = alacrity # Terminal | |
| 15 | +$files = nautilus # File Manager | |
| 16 | + | |
| 17 | +# Default Search Engine for ROFI Search (SUPER S) | |
| 18 | +$Search_Engine = "https://www.google.com/search?q={}" | |
| 19 | + |
+88-0UserConfigs/ENVariables.conf
| @@ -0,0 +1,88 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/ | |
| 3 | + | |
| 4 | +# Set your defaults editor through ENV in ~/.config/hypr/UserConfigs/01-UserDefaults.conf | |
| 5 | + | |
| 6 | +# environment-variables | |
| 7 | +# Toolkit Backend Variables | |
| 8 | +env = GDK_BACKEND,wayland,x11,* | |
| 9 | +env = QT_QPA_PLATFORM,wayland;xcb | |
| 10 | +env = CLUTTER_BACKEND,wayland | |
| 11 | + | |
| 12 | +#Run SDL2 applications on Wayland. | |
| 13 | +#Remove or set to x11 if games that provide older versions of SDL cause compatibility issues | |
| 14 | +#env = SDL_VIDEODRIVER,wayland | |
| 15 | + | |
| 16 | +# xdg Specifications | |
| 17 | +env = XDG_CURRENT_DESKTOP,Hyprland | |
| 18 | +env = XDG_SESSION_DESKTOP,Hyprland | |
| 19 | +env = XDG_SESSION_TYPE,wayland | |
| 20 | + | |
| 21 | +# QT Variables | |
| 22 | +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 | |
| 23 | +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 | |
| 24 | +env = QT_QPA_PLATFORMTHEME,qt5ct | |
| 25 | +env = QT_QPA_PLATFORMTHEME,qt6ct | |
| 26 | + | |
| 27 | +# hyprland-qt-support | |
| 28 | +env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style | |
| 29 | + | |
| 30 | +# xwayland apps scale fix (useful if you are use monitor scaling). | |
| 31 | +# Set same value if you use scaling in Monitors.conf | |
| 32 | +# 1 is 100% 1.5 is 150% | |
| 33 | +# see https://wiki.hyprland.org/Configuring/XWayland/ | |
| 34 | +env = GDK_SCALE,1 | |
| 35 | +env = QT_SCALE_FACTOR,1 | |
| 36 | + | |
| 37 | +# Bibata-Modern-Ice-Cursor | |
| 38 | +# NOTE! You must have the hyprcursor version to activate this. | |
| 39 | +# https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/ | |
| 40 | +env = HYPRCURSOR_THEME,Bibata-Modern-Ice | |
| 41 | +env = HYPRCURSOR_SIZE,24 | |
| 42 | + | |
| 43 | +# firefox | |
| 44 | +env = MOZ_ENABLE_WAYLAND,1 | |
| 45 | + | |
| 46 | +# electron >28 apps (may help) ## | |
| 47 | +# https://www.electronjs.org/docs/latest/api/environment-variables | |
| 48 | +env = ELECTRON_OZONE_PLATFORM_HINT,auto # auto selects Wayland if possible, X11 otherwise | |
| 49 | + | |
| 50 | +# NVIDIA | |
| 51 | +# This is from Hyprland Wiki. Below will be activated nvidia gpu detected | |
| 52 | +# See hyprland wiki https://wiki.hyprland.org/Nvidia/#environment-variables | |
| 53 | + | |
| 54 | +env = LIBVA_DRIVER_NAME,nvidia | |
| 55 | +env = __GLX_VENDOR_LIBRARY_NAME,nvidia | |
| 56 | +env = NVD_BACKEND,direct | |
| 57 | + | |
| 58 | +# additional ENV's for nvidia. Caution, activate with care | |
| 59 | +#env = GBM_BACKEND,nvidia-drm | |
| 60 | + | |
| 61 | +#env = __GL_GSYNC_ALLOWED,1 #adaptive Vsync | |
| 62 | +#env = __NV_PRIME_RENDER_OFFLOAD,1 | |
| 63 | +#env = __VK_LAYER_NV_optimus,NVIDIA_only | |
| 64 | +#env = WLR_DRM_NO_ATOMIC,1 | |
| 65 | + | |
| 66 | +# FOR VM and POSSIBLY NVIDIA | |
| 67 | +# LIBGL_ALWAYS_SOFTWARE software mesa rendering | |
| 68 | +#env = LIBGL_ALWAYS_SOFTWARE,1 # Warning. May cause hyprland to crash | |
| 69 | +#env = WLR_RENDERER_ALLOW_SOFTWARE,1 | |
| 70 | + | |
| 71 | +# nvidia firefox (for hardware acceleration on FF)? | |
| 72 | +# check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration | |
| 73 | +#env = MOZ_DISABLE_RDD_SANDBOX,1 | |
| 74 | +#env = EGL_PLATFORM,wayland | |
| 75 | + | |
| 76 | +#### Aquamarine Environment Variables #### ( Hyprland > 0.45 ) | |
| 77 | +# https://wiki.hyprland.org/Configuring/Environment-variables/#aquamarine-environment-variables----ref-httpsgithubcomhyprwmaquamarineblobmaindocsenvmd--- | |
| 78 | +# env = AQ_TRACE,1 # Enables more verbose logging. | |
| 79 | +# env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0 # Set an explicit list of DRM devices (GPUs) to use. It’s a colon-separated list of paths, with the first being the primary. E.g. /dev/dri/card1:/dev/dri/card0 | |
| 80 | +# env = AQ_MGPU_NO_EXPLICIT,1 # Disables explicit syncing on mgpu buffers | |
| 81 | +# env = AQ_NO_MODIFIERS,1 # Disables modifiers for DRM buffers | |
| 82 | + | |
| 83 | +#### Hyprland Environment Variables #### | |
| 84 | +# https://wiki.hyprland.org/Configuring/Environment-variables/#hyprland-environment-variables | |
| 85 | +# env = HYPRLAND_TRACE,1 # Enables more verbose logging. | |
| 86 | +# env = HYPRLAND_NO_RT,1 # Disables realtime priority setting by Hyprland. | |
| 87 | +# env = HYPRLAND_NO_SD_NOTIFY,1 # If systemd, disables the 'sd_notify' calls. | |
| 88 | +# env = HYPRLAND_NO_SD_VARS,1 # Disables management of variables in systemd and dbus activation environments. |
+4-0UserConfigs/LaptopDisplay.conf
| @@ -0,0 +1,4 @@ | ||
| 1 | +# NOTE, THIS FILE IS BEING USED by disabling Laptop display monitor behaviour when closing lid. | |
| 2 | +# See notes on Laptops.conf | |
| 3 | + | |
| 4 | +#monitor = eDP-1, preferred, auto, 1 |
+55-0UserConfigs/Laptops.conf
| @@ -0,0 +1,55 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | + | |
| 3 | +# See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings | |
| 4 | +# These configs are mostly for laptops. This is addemdum to Keybinds.conf | |
| 5 | + | |
| 6 | +$mainMod = SUPER | |
| 7 | +$scriptsDir = $HOME/.config/hypr/scripts | |
| 8 | +$UserConfigs = $HOME/.config/hypr/UserConfigs | |
| 9 | + | |
| 10 | +# for disabling Touchpad. hyprctl devices to get device name. | |
| 11 | +$Touchpad_Device=asue1209:00-04f3:319f-touchpad | |
| 12 | + | |
| 13 | +binde = , xf86KbdBrightnessDown, exec, $scriptsDir/BrightnessKbd.sh --dec # decrease keyboard brightness | |
| 14 | +binde = , xf86KbdBrightnessUp, exec, $scriptsDir/BrightnessKbd.sh --inc # increase keyboard brightness | |
| 15 | +bind = , xf86Launch1, exec, rog-control-center # ASUS Armory crate button | |
| 16 | +bind = , xf86Launch3, exec, asusctl led-mode -n # FN+F4 Switch keyboard RGB profile | |
| 17 | +bind = , xf86Launch4, exec, asusctl profile -n # FN+F5 change of fan profiles (Quite, Balance, Performance) | |
| 18 | +binde = , xf86MonBrightnessDown, exec, $scriptsDir/Brightness.sh --dec # decrease monitor brightness | |
| 19 | +binde = , xf86MonBrightnessUp, exec, $scriptsDir/Brightness.sh --inc # increase monitor brightness | |
| 20 | +bind = , xf86TouchpadToggle, exec, $scriptsDir/TouchPad.sh # disable touchpad | |
| 21 | + | |
| 22 | +# Screenshot keybindings using F6 (no PrinSrc button) | |
| 23 | +bind = $mainMod, F6, exec, $scriptsDir/ScreenShot.sh --now # screenshot | |
| 24 | +bind = $mainMod SHIFT, F6, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area) | |
| 25 | +bind = $mainMod CTRL, F6, exec, $scriptsDir/ScreenShot.sh --in5 # # screenshot (5 secs delay) | |
| 26 | +bind = $mainMod ALT, F6, exec, $scriptsDir/ScreenShot.sh --in10 # screenshot (10 secs delay) | |
| 27 | +bind = ALT, F6, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only) | |
| 28 | + | |
| 29 | +$TOUCHPAD_ENABLED = true | |
| 30 | +device { | |
| 31 | + name = $Touchpad_Device | |
| 32 | + enabled = $TOUCHPAD_ENABLED | |
| 33 | +} | |
| 34 | +# Below are useful when you are connecting your laptop in external display | |
| 35 | +# Suggest you edit below for your laptop display | |
| 36 | +# From WIKI This is to disable laptop monitor when lid is closed. | |
| 37 | +# consult https://wiki.hyprland.org/hyprland-wiki/pages/Configuring/Binds/#switches | |
| 38 | +#bindl = , switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, preferred, auto, 1" | |
| 39 | +#bindl = , switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable" | |
| 40 | + | |
| 41 | + | |
| 42 | +# WARNING! Using this method has some caveats!! USE THIS PART WITH SOME CAUTION! | |
| 43 | +# CONS of doing this, is that you need to set up your wallpaper (SUPER W) and choose wallpaper. | |
| 44 | +# CAVEATS! Sometimes the Main Laptop Monitor DOES NOT have display that it needs to re-connect your external monitor | |
| 45 | +# One work around is to ensure that before shutting down laptop, MAKE SURE your laptop lid is OPEN!! | |
| 46 | +# Make sure to comment (put # on the both the bindl = , switch ......) above | |
| 47 | +# NOTE: Display for laptop are being generated into LaptopDisplay.conf | |
| 48 | +# This part is to be use if you do not want your main laptop monitor to wake up during say wallpaper change etc | |
| 49 | + | |
| 50 | +#bindl = , switch:off:Lid Switch,exec,echo "monitor = eDP-1, preferred, auto, 1" > $UserConfigs/LaptopDisplay.conf | |
| 51 | +#bindl = , switch:on:Lid Switch,exec,echo "monitor = eDP-1, disable" > $UserConfigs/LaptopDisplay.conf | |
| 52 | + | |
| 53 | +# for laptop-lid action (to erase the last entry) | |
| 54 | +#exec-once = echo "monitor = eDP-1, preferred, auto, 1" > $HOME/.config/hypr/UserConfigs/LaptopDisplay.conf | |
| 55 | +# |
+55-0UserConfigs/Startup_Apps.conf
| @@ -0,0 +1,55 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# Commands and Apps to be executed at launch | |
| 3 | + | |
| 4 | +$scriptsDir = $HOME/.config/hypr/scripts | |
| 5 | +$UserScripts = $HOME/.config/hypr/UserScripts | |
| 6 | + | |
| 7 | +$wallDIR=$HOME/Pictures/wallpapers | |
| 8 | +$lock = $scriptsDir/LockScreen.sh | |
| 9 | +$SwwwRandom = $UserScripts/WallpaperAutoChange.sh | |
| 10 | +$livewallpaper="" | |
| 11 | + | |
| 12 | +# polkit | |
| 13 | +exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 | |
| 14 | + | |
| 15 | +# wallpaper stuff | |
| 16 | +exec-once = swww-daemon --format xrgb | |
| 17 | +#exec-once = mpvpaper '*' -o "load-scripts=no no-audio --loop" $livewallpaper | |
| 18 | + | |
| 19 | +# wallpaper random | |
| 20 | +#exec-once = $SwwwRandom $wallDIR # random wallpaper switcher every 30 minutes | |
| 21 | + | |
| 22 | +# Startup | |
| 23 | +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP | |
| 24 | +exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP | |
| 25 | + | |
| 26 | +# Polkit (Polkit Gnome / KDE) | |
| 27 | +exec-once = $scriptsDir/Polkit.sh | |
| 28 | + | |
| 29 | +# starup apps | |
| 30 | +exec-once = nm-applet --indicator | |
| 31 | +exec-once = swaync | |
| 32 | +exec-once = ags | |
| 33 | +#exec-once = blueman-applet | |
| 34 | +#exec-once = rog-control-center | |
| 35 | +exec-once = waybar | |
| 36 | + | |
| 37 | +#clipboard manager | |
| 38 | +exec-once = wl-paste --type text --watch cliphist store | |
| 39 | +exec-once = wl-paste --type image --watch cliphist store | |
| 40 | + | |
| 41 | +# Rainbow borders | |
| 42 | +exec-once = $UserScripts/RainbowBorders.sh | |
| 43 | + | |
| 44 | +# Starting hypridle to start hyprlock | |
| 45 | +exec-once = hypridle | |
| 46 | + | |
| 47 | + | |
| 48 | +# Here are list of features available but disabled by default | |
| 49 | +# exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png # persistent wallpaper | |
| 50 | + | |
| 51 | +#gnome polkit for nixos | |
| 52 | +#exec-once = $scriptsDir/Polkit-NixOS.sh | |
| 53 | + | |
| 54 | +# xdg-desktop-portal-hyprland (should be auto starting. However, you can force to start) | |
| 55 | +#exec-once = $scriptsDir/PortalHyprland.sh |
+24-0UserConfigs/UserAnimations.conf
| @@ -0,0 +1,24 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Fast" | |
| 4 | +# credit https://github.com/mylinuxforwork/dotfiles | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + bezier = linear, 0, 0, 1, 1 | |
| 9 | + bezier = md3_standard, 0.2, 0, 0, 1 | |
| 10 | + bezier = md3_decel, 0.05, 0.7, 0.1, 1 | |
| 11 | + bezier = md3_accel, 0.3, 0, 0.8, 0.15 | |
| 12 | + bezier = overshot, 0.05, 0.9, 0.1, 1.1 | |
| 13 | + bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 | |
| 14 | + bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 | |
| 15 | + bezier = fluent_decel, 0.1, 1, 0, 1 | |
| 16 | + bezier = easeInOutCirc, 0.85, 0, 0.15, 1 | |
| 17 | + bezier = easeOutCirc, 0, 0.55, 0.45, 1 | |
| 18 | + bezier = easeOutExpo, 0.16, 1, 0.3, 1 | |
| 19 | + animation = windows, 1, 3, md3_decel, popin 60% | |
| 20 | + animation = border, 1, 10, default | |
| 21 | + animation = fade, 1, 2.5, md3_decel | |
| 22 | + animation = workspaces, 1, 3.5, easeOutExpo, slide | |
| 23 | + animation = specialWorkspace, 1, 3, md3_decel, slidevert | |
| 24 | +} |
+58-0UserConfigs/UserDecorations.conf
| @@ -0,0 +1,58 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# Decoration Settings | |
| 3 | + | |
| 4 | +# Hyprland Wiki Links | |
| 5 | +# Animation - https://wiki.hyprland.org/Configuring/Animations/ | |
| 6 | +# Decoration - https://wiki.hyprland.org/Configuring/Variables/#decoration | |
| 7 | + | |
| 8 | +# Sourcing colors generated by wallust | |
| 9 | +source = $HOME/.config/hypr/wallust/wallust-hyprland.conf | |
| 10 | + | |
| 11 | +general { | |
| 12 | + border_size = 2 | |
| 13 | + gaps_in = 2 | |
| 14 | + gaps_out = 4 | |
| 15 | + | |
| 16 | + col.active_border = $color12 | |
| 17 | + col.inactive_border = $color10 | |
| 18 | +} | |
| 19 | + | |
| 20 | +decoration { | |
| 21 | + rounding = 10 | |
| 22 | + | |
| 23 | + active_opacity = 1.0 | |
| 24 | + inactive_opacity = 0.9 | |
| 25 | + fullscreen_opacity = 1.0 | |
| 26 | + | |
| 27 | + dim_inactive = true | |
| 28 | + dim_strength = 0.1 | |
| 29 | + dim_special = 0.8 | |
| 30 | + | |
| 31 | + shadow { | |
| 32 | + enabled = true | |
| 33 | + range = 3 | |
| 34 | + render_power = 1 | |
| 35 | + | |
| 36 | + color = $color12 | |
| 37 | + color_inactive = $color10 | |
| 38 | + } | |
| 39 | + | |
| 40 | + | |
| 41 | + blur { | |
| 42 | + enabled = true | |
| 43 | + size = 6 | |
| 44 | + passes = 2 | |
| 45 | + ignore_opacity = true | |
| 46 | + new_optimizations = true | |
| 47 | + special = true | |
| 48 | + popups = true | |
| 49 | + } | |
| 50 | +} | |
| 51 | + | |
| 52 | +group { | |
| 53 | + col.border_active = $color15 | |
| 54 | + | |
| 55 | + groupbar { | |
| 56 | + col.active = $color0 | |
| 57 | + } | |
| 58 | +} |
+105-0UserConfigs/UserKeybinds.conf
| @@ -0,0 +1,105 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# This is where you put your own keybinds. Be Mindful to check as well ~/.config/hypr/configs/Keybinds.conf to avoid conflict | |
| 3 | +# if you think I should replace the Pre-defined Keybinds in ~/.config/hypr/configs/Keybinds.conf , submit an issue or let me know in DC and present me a valid reason as to why, such as conflicting with global shortcuts, etc etc | |
| 4 | + | |
| 5 | +# See https://wiki.hyprland.org/Configuring/Keywords/ for more settings and variables | |
| 6 | +# See also Laptops.conf for laptops keybinds | |
| 7 | + | |
| 8 | +# /* ---- ✴️ Variables ✴️ ---- */ # | |
| 9 | +$mainMod = SUPER | |
| 10 | +$files = nautilus | |
| 11 | +$term = foot | |
| 12 | +$scriptsDir = $HOME/.config/hypr/scripts | |
| 13 | +$UserScripts = $HOME/.config/hypr/UserScripts | |
| 14 | + | |
| 15 | +# Move focus vim style | |
| 16 | +bind = $mainMod, h, movefocus, l | |
| 17 | +bind = $mainMod, l, movefocus, r | |
| 18 | +bind = $mainMod, k, movefocus, u | |
| 19 | +bind = $mainMod, j, movefocus, d | |
| 20 | + | |
| 21 | +# move actual window vim style | |
| 22 | +bind = $mainMod SHIFT, h, swapwindow, l | |
| 23 | +bind = $mainMod SHIFT, j, swapwindow, d | |
| 24 | +bind = $mainMod SHIFT, k, swapwindow, u | |
| 25 | +bind = $mainMod SHIFT, l, swapwindow, r | |
| 26 | + | |
| 27 | +# f11 and f12 for music | |
| 28 | +# bind = , F10, exec, playerctl previous | |
| 29 | +bind = , F11, exec, playerctl play-pause | |
| 30 | +bind = , F12, exec, playerctl next | |
| 31 | + | |
| 32 | +# Cycle tabs in group | |
| 33 | +bind = $mainMod, p, changegroupactive, f | |
| 34 | +bind = $mainMod, n, changegroupactive, b | |
| 35 | + | |
| 36 | +# common shortcuts | |
| 37 | +#bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu | |
| 38 | +bind = $mainMod, D, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window # Main Menu (APP Launcher) | |
| 39 | +bind = $mainMod, B, exec, xdg-open "https://" # default browser | |
| 40 | +bind = $mainMod, A, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed) | |
| 41 | +bind = $mainMod, Return, exec, $term #terminal | |
| 42 | +bind = $mainMod, E, exec, $files #file manager | |
| 43 | + | |
| 44 | +# move workspace to another monitor | |
| 45 | +bind = $mainMod, M, exec, \ | |
| 46 | + hyprctl dispatch moveworkspacetomonitor $(hyprctl activeworkspace -j | jq '.id') \ | |
| 47 | + $(hyprctl monitors -j | jq -r 'map(select(.focused != true))[0].name') | |
| 48 | + | |
| 49 | +bind = $mainMod, C, exec, gtk-launch clockify | |
| 50 | + | |
| 51 | +# FEATURES / EXTRAS | |
| 52 | +bind = $mainMod CTRL, H, exec, $scriptsDir/KeyHints.sh # help / cheat sheet | |
| 53 | +bind = $mainMod ALT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi | |
| 54 | +bind = $mainMod ALT, E, exec, $scriptsDir/RofiEmoji.sh # emoji menu | |
| 55 | +# bind = $mainMod, S, exec, $scriptsDir/RofiSearch.sh # Google search using rofi | |
| 56 | +bind = $mainMod ALT, O, exec, $scriptsDir/ChangeBlur.sh # Toggle blur settings | |
| 57 | +bind = $mainMod SHIFT, G, exec, $scriptsDir/GameMode.sh # Toggle animations ON/OFF | |
| 58 | +bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout | |
| 59 | +bind = $mainMod ALT, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager | |
| 60 | +bind = $mainMod CTRL, R, exec, $scriptsDir/RofiThemeSelector.sh # KooL Rofi Menu Theme Selector | |
| 61 | +bind = $mainMod CTRL SHIFT, R, exec, pkill rofi || true && $scriptsDir/RofiThemeSelector-modified.sh # modified Rofi Theme Selector | |
| 62 | +bind = $mainMod, V, exec, $scriptsDir/OpenVolume.sh # Open volume control | |
| 63 | +bind = $mainMod SHIFT, V, exec, $scriptsDir/LiveMicTest.sh # Live mic test | |
| 64 | + | |
| 65 | +bind = $mainMod SHIFT, F, fullscreen # whole full screen | |
| 66 | +bind = $mainMod, F, fullscreen, 1 # fake full screen | |
| 67 | +# bind = $mainMod, SPACE, togglefloating, #Float Mode | |
| 68 | +bind = $mainMod ALT, SPACE, exec, hyprctl dispatch workspaceopt allfloat #All Float Mode | |
| 69 | +bind = $mainMod SHIFT, Return, exec, [float; move 15% 5%; size 70% 60%] $term # Dropdown terminal | |
| 70 | + | |
| 71 | +# Desktop zooming or magnifier | |
| 72 | +bind = $mainMod ALT, mouse_down, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')" | |
| 73 | +bind = $mainMod ALT, mouse_up, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')" | |
| 74 | + | |
| 75 | +## NOTES for ja (Hyprland version 0.39 (Ubuntu 24.04)) | |
| 76 | +#bind = $mainMod ALT, mouse_down, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')" | |
| 77 | +#bind = $mainMod ALT, mouse_up, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')" | |
| 78 | + | |
| 79 | +# Waybar / Bar related | |
| 80 | +bind = $mainMod CTRL ALT, B, exec, pkill -SIGUSR1 waybar # Toggle hide/show waybar | |
| 81 | +bind = $mainMod CTRL, B, exec, $scriptsDir/WaybarStyles.sh # Waybar Styles Menu | |
| 82 | +bind = $mainMod ALT, B, exec, $scriptsDir/WaybarLayout.sh # Waybar Layout Menu | |
| 83 | + | |
| 84 | +# FEATURES / EXTRAS (UserScripts) | |
| 85 | +bind = $mainMod, S, exec, $UserScripts/ToggleStudy.sh | |
| 86 | +bind = $mainMod SHIFT, M, exec, $UserScripts/RofiBeats.sh # online music using rofi | |
| 87 | +bind = $mainMod, W, exec, $UserScripts/WallpaperSelect.sh # Select wallpaper to apply | |
| 88 | +bind = $mainMod SHIFT, W, exec, $UserScripts/WallpaperEffects.sh # Wallpaper Effects by imagemagick | |
| 89 | +bind = CTRL ALT, W, exec, $UserScripts/WallpaperRandom.sh # Random wallpapers | |
| 90 | +bind = $mainMod CTRL, O, exec, hyprctl setprop active opaque toggle # disable opacity on active window | |
| 91 | +bind = $mainMod CTRL, K, exec, $scriptsDir/KeyBinds.sh # search keybinds via rofi | |
| 92 | +bind = $mainMod SHIFT, A, exec, $scriptsDir/Animations.sh #hyprland animations menu | |
| 93 | +bind = $mainMod SHIFT, O, exec, $UserScripts/ZshChangeTheme.sh # Change oh-my-zsh theme | |
| 94 | +# bindln = ALT_L, SHIFT_L, exec, $scriptsDir/SwitchKeyboardLayout.sh # Change keyboard layout | |
| 95 | +# bind = $mainMod ALT, C, exec, qalculate-gtk # calculator (qalculate) | |
| 96 | +bind = $mainMod ALT, C, exec, $UserScripts/Calculator.sh # calculator (qalculate) | |
| 97 | +bind = $mainMod SHIFT, C, exec, gnome-calendar | |
| 98 | +# bind = $mainMod ALT, C, exec, $UserScripts/RofiCalc.sh # calculator (qalculate) | |
| 99 | + | |
| 100 | +# For passthrough keyboard into a VM | |
| 101 | +# bind = $mainMod ALT, P, submap, passthru | |
| 102 | +#submap = passthru | |
| 103 | +# to unbind | |
| 104 | +#bind = $mainMod ALT, P, submap, reset | |
| 105 | +#submap = reset |
+118-0UserConfigs/UserSettings.conf
| @@ -0,0 +1,118 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# User Settings | |
| 3 | +# This is where you put your own settings as this will not be touched during update | |
| 4 | +# if the upgrade.sh is used. | |
| 5 | + | |
| 6 | +# refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables/ | |
| 7 | + | |
| 8 | +# NOTE: some settings are in ~/.config/hypr/UserConfigs/UserDecorAnimations.conf | |
| 9 | + | |
| 10 | +dwindle { | |
| 11 | + pseudotile = yes | |
| 12 | + preserve_split = yes | |
| 13 | + special_scale_factor = 0.8 | |
| 14 | +} | |
| 15 | + | |
| 16 | +master { | |
| 17 | + new_status = master | |
| 18 | + new_on_top = 1 | |
| 19 | + mfact = 0.5 | |
| 20 | +} | |
| 21 | + | |
| 22 | +general { | |
| 23 | + resize_on_border = true | |
| 24 | + | |
| 25 | + layout = dwindle | |
| 26 | +} | |
| 27 | + | |
| 28 | +input { | |
| 29 | + kb_layout = us,us | |
| 30 | + kb_variant = ,dvorak | |
| 31 | + kb_model = | |
| 32 | + kb_options = grp:win_space_toggle | |
| 33 | + kb_rules = | |
| 34 | + repeat_rate = 50 | |
| 35 | + repeat_delay = 300 | |
| 36 | + | |
| 37 | + sensitivity = 0 #mouse sensitivity | |
| 38 | + #accel_profile = # flat or adaptive or blank or EMPTY means libinput’s default mode | |
| 39 | + numlock_by_default = true | |
| 40 | + left_handed = false | |
| 41 | + follow_mouse = true | |
| 42 | + float_switch_override_focus = false | |
| 43 | + | |
| 44 | + touchpad { | |
| 45 | + disable_while_typing = true | |
| 46 | + natural_scroll = true | |
| 47 | + clickfinger_behavior = false | |
| 48 | + middle_button_emulation = true | |
| 49 | + tap-to-click = true | |
| 50 | + drag_lock = false | |
| 51 | + } | |
| 52 | + | |
| 53 | + # below for devices with touchdevice ie. touchscreen | |
| 54 | + touchdevice { | |
| 55 | + enabled = true | |
| 56 | + } | |
| 57 | + | |
| 58 | + # below is for table see link above for proper variables | |
| 59 | + tablet { | |
| 60 | + transform = 0 | |
| 61 | + left_handed = 0 | |
| 62 | + } | |
| 63 | +} | |
| 64 | + | |
| 65 | +gestures { | |
| 66 | + # workspace_swipe = true | |
| 67 | + # workspace_swipe_fingers = 3 | |
| 68 | + workspace_swipe_distance = 500 | |
| 69 | + workspace_swipe_invert = true | |
| 70 | + workspace_swipe_min_speed_to_force = 30 | |
| 71 | + workspace_swipe_cancel_ratio = 0.5 | |
| 72 | + workspace_swipe_create_new = true | |
| 73 | + workspace_swipe_forever = true | |
| 74 | + #workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right | |
| 75 | +} | |
| 76 | + | |
| 77 | +misc { | |
| 78 | + disable_hyprland_logo = true | |
| 79 | + disable_splash_rendering = true | |
| 80 | + vfr = true | |
| 81 | + vrr = 2 | |
| 82 | + mouse_move_enables_dpms = true | |
| 83 | + enable_swallow = off | |
| 84 | + swallow_regex = ^(kitty)$ | |
| 85 | + focus_on_activate = false | |
| 86 | + initial_workspace_tracking = 0 | |
| 87 | + middle_click_paste = false | |
| 88 | +} | |
| 89 | + | |
| 90 | +#opengl { | |
| 91 | +# nvidia_anti_flicker = true | |
| 92 | +#} | |
| 93 | + | |
| 94 | +binds { | |
| 95 | + workspace_back_and_forth = true | |
| 96 | + allow_workspace_cycles = true | |
| 97 | + pass_mouse_when_bound = false | |
| 98 | +} | |
| 99 | + | |
| 100 | +#Could help when scaling and not pixelating | |
| 101 | +xwayland { | |
| 102 | + enabled = true | |
| 103 | + force_zero_scaling = true | |
| 104 | +} | |
| 105 | + | |
| 106 | +render { | |
| 107 | + # explicit_sync = 2 | |
| 108 | + # explicit_sync_kms = 2 | |
| 109 | + direct_scanout = 0 | |
| 110 | +} | |
| 111 | + | |
| 112 | +cursor { | |
| 113 | + sync_gsettings_theme = true | |
| 114 | + no_hardware_cursors = 1 # change to 1 if want to disable | |
| 115 | + enable_hyprcursor = true | |
| 116 | + warp_on_change_workspace = 2 | |
| 117 | + no_warps = true | |
| 118 | +} |
+20-0UserConfigs/WindowRules.conf
| @@ -0,0 +1,20 @@ | ||
| 1 | +# https://wiki.hypr.land/Configuring/Window-Rules/ | |
| 2 | + | |
| 3 | +# Master window rules | |
| 4 | +windowrule = border_size 1, rounding 1, match:class .* | |
| 5 | + | |
| 6 | +# Volume Control | |
| 7 | +windowrule = tag +volume, match:initial_class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$ | |
| 8 | +windowrule = float on, center on, size window_w window_h*0.8, pin on, match:tag volume | |
| 9 | + | |
| 10 | +# Zen Browser | |
| 11 | +windowrule = workspace 2, match:class zen | |
| 12 | +windowrule = center on, float on, size monitor_w*0.8 monitor_h*0.8, match:title ^Save As.*$ | |
| 13 | + | |
| 14 | +# Files | |
| 15 | +windowrule = tag +files, match:initial_class ^(org.gnome.Nautilus)$ | |
| 16 | +windowrule = tag +files, match:title ^(Save As.*|All Files.*).*$ | |
| 17 | +windowrule = float on, center on, size monitor_w*0.8 monitor_h*0.8, match:tag files | |
| 18 | + | |
| 19 | +# Chrome Browser | |
| 20 | +windowrule = workspace 3, match:class google-chrome |
+32-0UserConfigs/WorkSpaceRules
| @@ -0,0 +1,32 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | + | |
| 3 | +# NOTE: THIS IS NOT BEING SOURCED by hyprland | |
| 4 | +# It is only here as a guide if you want to do it manually | |
| 5 | +# The file you should edit is ~/.config/hypr/workspaces.conf | |
| 6 | +# Since that is the work space rules being sourced by hyprland | |
| 7 | +# use nwg-displays to handle your workspace rules. | |
| 8 | + | |
| 9 | +# You can set workspace rules to achieve workspace-specific behaviors. | |
| 10 | +# For instance, you can define a workspace where all windows are drawn without borders or gaps. | |
| 11 | + | |
| 12 | +# https://wiki.hyprland.org/Configuring/Workspace-Rules/ | |
| 13 | + | |
| 14 | +# Assigning workspace to a certain monitor. Below are just examples | |
| 15 | +# workspace = 1, monitor:eDP-1 | |
| 16 | +# workspace = 2, monitor:eDP-1 | |
| 17 | +# workspace = 3, monitor:eDP-1 | |
| 18 | +# workspace = 4, monitor:eDP-1 | |
| 19 | +# workspace = 5, monitor:DP-2 | |
| 20 | +# workspace = 6, monitor:DP-2 | |
| 21 | +# workspace = 7, monitor:DP-2 | |
| 22 | +# workspace = 8, monitor:DP-2 | |
| 23 | + | |
| 24 | + | |
| 25 | +# example rules (from wiki) | |
| 26 | +# workspace = 3, rounding:false, decorate:false | |
| 27 | +# workspace = name:coding, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false, monitor:DP-1 | |
| 28 | +# workspace = 8,bordersize:8 | |
| 29 | +# workspace = name:Hello, monitor:DP-1, default:true | |
| 30 | +# workspace = name:gaming, monitor:desc:Chimei Innolux Corporation 0x150C, default:true | |
| 31 | +# workspace = 5, on-created-empty:[float] firefox | |
| 32 | +# workspace = special:scratchpad, on-created-empty:foot |
+5-0UserScripts/00-Readme
| @@ -0,0 +1,5 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | + | |
| 3 | +# Place your new scripts here. | |
| 4 | +# If you need to edit a script from main script (~/.config/hypr/scripts), copy it on this directory, and edit. | |
| 5 | +# Make sure to update as well the keybinds in ~/.config/hypr/UserConfigs directory if any script is linked to it |
+2-0UserScripts/Calculator.sh
| @@ -0,0 +1,2 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +qalculate-gtk |
+14-0UserScripts/RainbowBorders.sh
| @@ -0,0 +1,14 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# for rainbow borders animation | |
| 4 | + | |
| 5 | +function random_hex() { | |
| 6 | + random_hex=("0xff$(openssl rand -hex 3)") | |
| 7 | + echo $random_hex | |
| 8 | +} | |
| 9 | + | |
| 10 | +# rainbow colors only for active window | |
| 11 | +hyprctl keyword general:col.active_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg | |
| 12 | + | |
| 13 | +# rainbow colors for inactive window (uncomment to take effect) | |
| 14 | +#hyprctl keyword general:col.inactive_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg |
+134-0UserScripts/RofiBeats.sh
| @@ -0,0 +1,134 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# For Rofi Beats to play online Music or Locally saved media files | |
| 4 | + | |
| 5 | +# Variables | |
| 6 | +mDIR="$HOME/Music/" | |
| 7 | +iDIR="$HOME/.config/swaync/icons" | |
| 8 | +rofi_theme="$HOME/.config/rofi/config-rofi-Beats.rasi" | |
| 9 | +rofi_theme_1="$HOME/.config/rofi/config-rofi-Beats-menu.rasi" | |
| 10 | + | |
| 11 | +# Online Stations. Edit as required | |
| 12 | +declare -A online_music=( | |
| 13 | + ["FM - Easy Rock 96.3 📻🎶"]="https://radio-stations-philippines.com/easy-rock" | |
| 14 | + ["FM - Easy Rock - Baguio 91.9 📻🎶"]="https://radio-stations-philippines.com/easy-rock-baguio" | |
| 15 | + ["FM - Love Radio 90.7 📻🎶"]="https://radio-stations-philippines.com/love" | |
| 16 | + ["FM - WRock - CEBU 96.3 📻🎶"]="https://onlineradio.ph/126-96-3-wrock.html" | |
| 17 | + ["FM - Fresh Philippines 📻🎶"]="https://onlineradio.ph/553-fresh-fm.html" | |
| 18 | + ["Radio - Lofi Girl 🎧🎶"]="https://play.streamafrica.net/lofiradio" | |
| 19 | + ["Radio - Chillhop 🎧🎶"]="http://stream.zeno.fm/fyn8eh3h5f8uv" | |
| 20 | + ["Radio - Ibiza Global 🎧🎶"]="https://filtermusic.net/ibiza-global" | |
| 21 | + ["Radio - Metal Music 🎧🎶"]="https://tunein.com/radio/mETaLmuSicRaDio-s119867/" | |
| 22 | + ["YT - Wish 107.5 YT Pinoy HipHop 📻🎶"]="https://youtube.com/playlist?list=PLkrzfEDjeYJnmgMYwCKid4XIFqUKBVWEs&si=vahW_noh4UDJ5d37" | |
| 23 | + ["YT - Youtube Top 100 Songs Global 📹🎶"]="https://youtube.com/playlist?list=PL4fGSI1pDJn6puJdseH2Rt9sMvt9E2M4i&si=5jsyfqcoUXBCSLeu" | |
| 24 | + ["YT - Wish 107.5 YT Wishclusives 📹🎶"]="https://youtube.com/playlist?list=PLkrzfEDjeYJn5B22H9HOWP3Kxxs-DkPSM&si=d_Ld2OKhGvpH48WO" | |
| 25 | + ["YT - Relaxing Piano Music 🎹🎶"]="https://youtu.be/6H7hXzjFoVU?si=nZTPREC9lnK1JJUG" | |
| 26 | + ["YT - Youtube Remix 📹🎶"]="https://youtube.com/playlist?list=PLeqTkIUlrZXlSNn3tcXAa-zbo95j0iN-0" | |
| 27 | + ["YT - Korean Drama OST 📹🎶"]="https://youtube.com/playlist?list=PLUge_o9AIFp4HuA-A3e3ZqENh63LuRRlQ" | |
| 28 | + ["YT - lofi hip hop radio beats 📹🎶"]="https://www.youtube.com/live/jfKfPfyJRdk?si=PnJIA9ErQIAw6-qd" | |
| 29 | + ["YT - Relaxing Piano Jazz Music 🎹🎶"]="https://youtu.be/85UEqRat6E4?si=jXQL1Yp2VP_G6NSn" | |
| 30 | +) | |
| 31 | + | |
| 32 | +# Populate local_music array with files from music directory and subdirectories | |
| 33 | +populate_local_music() { | |
| 34 | + local_music=() | |
| 35 | + filenames=() | |
| 36 | + while IFS= read -r file; do | |
| 37 | + local_music+=("$file") | |
| 38 | + filenames+=("$(basename "$file")") | |
| 39 | + done < <(find -L "$mDIR" -type f \( -iname "*.mp3" -o -iname "*.flac" -o -iname "*.wav" -o -iname "*.ogg" -o -iname "*.mp4" \)) | |
| 40 | +} | |
| 41 | + | |
| 42 | +# Function for displaying notifications | |
| 43 | +notification() { | |
| 44 | + notify-send -u normal -i "$iDIR/music.png" "Now Playing:" "$@" | |
| 45 | +} | |
| 46 | + | |
| 47 | +# Main function for playing local music | |
| 48 | +play_local_music() { | |
| 49 | + populate_local_music | |
| 50 | + | |
| 51 | + # Prompt the user to select a song | |
| 52 | + choice=$(printf "%s\n" "${filenames[@]}" | rofi -i -dmenu -config $rofi_theme) | |
| 53 | + | |
| 54 | + if [ -z "$choice" ]; then | |
| 55 | + exit 1 | |
| 56 | + fi | |
| 57 | + | |
| 58 | + # Find the corresponding file path based on user's choice and set that to play the song then continue on the list | |
| 59 | + for (( i=0; i<"${#filenames[@]}"; ++i )); do | |
| 60 | + if [ "${filenames[$i]}" = "$choice" ]; then | |
| 61 | + | |
| 62 | + notification "$choice" | |
| 63 | + mpv --playlist-start="$i" --loop-playlist --vid=no "${local_music[@]}" | |
| 64 | + | |
| 65 | + break | |
| 66 | + fi | |
| 67 | + done | |
| 68 | +} | |
| 69 | + | |
| 70 | +# Main function for shuffling local music | |
| 71 | +shuffle_local_music() { | |
| 72 | + notification "Shuffle Play local music" | |
| 73 | + | |
| 74 | + # Play music in $mDIR on shuffle | |
| 75 | + mpv --shuffle --loop-playlist --vid=no "$mDIR" | |
| 76 | +} | |
| 77 | + | |
| 78 | +# Main function for playing online music | |
| 79 | +play_online_music() { | |
| 80 | + choice=$(for online in "${!online_music[@]}"; do | |
| 81 | + echo "$online" | |
| 82 | + done | sort | rofi -i -dmenu -config "$rofi_theme") | |
| 83 | + | |
| 84 | + if [ -z "$choice" ]; then | |
| 85 | + exit 1 | |
| 86 | + fi | |
| 87 | + | |
| 88 | + link="${online_music[$choice]}" | |
| 89 | + | |
| 90 | + notification "$choice" | |
| 91 | + | |
| 92 | + # Play the selected online music using mpv | |
| 93 | + mpv --shuffle --vid=no "$link" | |
| 94 | +} | |
| 95 | + | |
| 96 | +# Function to stop music and kill mpv processes | |
| 97 | +stop_music() { | |
| 98 | + mpv_pids=$(pgrep -x mpv) | |
| 99 | + | |
| 100 | + if [ -n "$mpv_pids" ]; then | |
| 101 | + # Get the PID of the mpv process used by mpvpaper (using the unique argument added) | |
| 102 | + mpvpaper_pid=$(ps aux | grep -- 'unique-wallpaper-process' | grep -v 'grep' | awk '{print $2}') | |
| 103 | + | |
| 104 | + for pid in $mpv_pids; do | |
| 105 | + if ! echo "$mpvpaper_pid" | grep -q "$pid"; then | |
| 106 | + kill -9 $pid || true | |
| 107 | + fi | |
| 108 | + done | |
| 109 | + notify-send -u low -i "$iDIR/music.png" "Music stopped" || true | |
| 110 | + fi | |
| 111 | +} | |
| 112 | + | |
| 113 | +# Check if music is already playing | |
| 114 | +if pgrep -x "mpv" > /dev/null; then | |
| 115 | + stop_music | |
| 116 | +else | |
| 117 | + user_choice=$(printf "Play from Online Stations\nPlay from Music directory\nShuffle Play from Music directory" | rofi -dmenu -config $rofi_theme_1) | |
| 118 | + | |
| 119 | + echo "User choice: $user_choice" | |
| 120 | + | |
| 121 | + case "$user_choice" in | |
| 122 | + "Play from Music directory") | |
| 123 | + play_local_music | |
| 124 | + ;; | |
| 125 | + "Play from Online Stations") | |
| 126 | + play_online_music | |
| 127 | + ;; | |
| 128 | + "Shuffle Play from Music directory") | |
| 129 | + shuffle_local_music | |
| 130 | + ;; | |
| 131 | + *) | |
| 132 | + ;; | |
| 133 | + esac | |
| 134 | +fi |
+30-0UserScripts/RofiCalc.sh
| @@ -0,0 +1,30 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ | |
| 3 | +# /* Calculator (using qalculate) and rofi */ | |
| 4 | +# /* Submitted by: https://github.com/JosephArmas */ | |
| 5 | + | |
| 6 | +rofi_theme="$HOME/.config/rofi/config-calc.rasi" | |
| 7 | + | |
| 8 | +# Kill Rofi if already running before execution | |
| 9 | +if pgrep -x "rofi" >/dev/null; then | |
| 10 | + pkill rofi | |
| 11 | +fi | |
| 12 | + | |
| 13 | +# main function | |
| 14 | + | |
| 15 | +while true; do | |
| 16 | + result=$( | |
| 17 | + rofi -i -dmenu \ | |
| 18 | + -config $rofi_theme \ | |
| 19 | + -mesg "$result = $calc_result" | |
| 20 | + ) | |
| 21 | + | |
| 22 | + if [ $? -ne 0 ]; then | |
| 23 | + exit | |
| 24 | + fi | |
| 25 | + | |
| 26 | + if [ -n "$result" ]; then | |
| 27 | + calc_result=$(qalc -t "$result") | |
| 28 | + echo "$calc_result" | wl-copy | |
| 29 | + fi | |
| 30 | +done |
+21-0UserScripts/ToggleStudy.sh
| @@ -0,0 +1,21 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | + | |
| 3 | +PID_FILE="/tmp/study_music.pid" | |
| 4 | +AUDIO_FILE=~/Music/study.wav | |
| 5 | + | |
| 6 | +if [ -f "$PID_FILE" ]; then | |
| 7 | + PID=$(cat "$PID_FILE") | |
| 8 | + if kill -0 "$PID" 2>/dev/null; then | |
| 9 | + kill "$PID" | |
| 10 | + echo "Stopped study music." | |
| 11 | + rm "$PID_FILE" | |
| 12 | + exit 0 | |
| 13 | + else | |
| 14 | + rm "$PID_FILE" | |
| 15 | + fi | |
| 16 | +fi | |
| 17 | + | |
| 18 | +# ffplay -nodisp -autoexit -loop 0 "$AUDIO_FILE" >/dev/null 2>&1 & | |
| 19 | +paplay --device=alsa_output.pci-0000_00_1f.3.analog-stereo "$AUDIO_FILE" & | |
| 20 | +echo $! >"$PID_FILE" | |
| 21 | +echo "Started study music." |
+39-0UserScripts/WallpaperAutoChange.sh
| @@ -0,0 +1,39 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# source https://wiki.archlinux.org/title/Hyprland#Using_a_script_to_change_wallpaper_every_X_minutes | |
| 4 | + | |
| 5 | +# This script will randomly go through the files of a directory, setting it | |
| 6 | +# up as the wallpaper at regular intervals | |
| 7 | +# | |
| 8 | +# NOTE: this script uses bash (not POSIX shell) for the RANDOM variable | |
| 9 | + | |
| 10 | +wallust_refresh=$HOME/.config/hypr/scripts/RefreshNoWaybar.sh | |
| 11 | + | |
| 12 | +focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}') | |
| 13 | + | |
| 14 | +if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then | |
| 15 | + echo "Usage: | |
| 16 | + $0 <dir containing images>" | |
| 17 | + exit 1 | |
| 18 | +fi | |
| 19 | + | |
| 20 | +# Edit below to control the images transition | |
| 21 | +export SWWW_TRANSITION_FPS=60 | |
| 22 | +export SWWW_TRANSITION_TYPE=simple | |
| 23 | + | |
| 24 | +# This controls (in seconds) when to switch to the next image | |
| 25 | +INTERVAL=1800 | |
| 26 | + | |
| 27 | +while true; do | |
| 28 | + find "$1" \ | |
| 29 | + | while read -r img; do | |
| 30 | + echo "$((RANDOM % 1000)):$img" | |
| 31 | + done \ | |
| 32 | + | sort -n | cut -d':' -f2- \ | |
| 33 | + | while read -r img; do | |
| 34 | + swww img -o $focused_monitor "$img" | |
| 35 | + $wallust_refresh | |
| 36 | + sleep $INTERVAL | |
| 37 | + | |
| 38 | + done | |
| 39 | +done |
+140-0UserScripts/WallpaperEffects.sh
| @@ -0,0 +1,140 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 3 | +# Wallpaper Effects using ImageMagick (SUPER SHIFT W) | |
| 4 | + | |
| 5 | +# Variables | |
| 6 | +terminal=foot | |
| 7 | +wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" | |
| 8 | +wallpaper_output="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified" | |
| 9 | +SCRIPTSDIR="$HOME/.config/hypr/scripts" | |
| 10 | +focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') | |
| 11 | +rofi_theme="$HOME/.config/rofi/config-wallpaper-effect.rasi" | |
| 12 | + | |
| 13 | +# Directory for swaync | |
| 14 | +iDIR="$HOME/.config/swaync/images" | |
| 15 | +iDIRi="$HOME/.config/swaync/icons" | |
| 16 | + | |
| 17 | +# swww transition config | |
| 18 | +FPS=60 | |
| 19 | +TYPE="wipe" | |
| 20 | +DURATION=2 | |
| 21 | +BEZIER=".43,1.19,1,.4" | |
| 22 | +SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER" | |
| 23 | + | |
| 24 | +# Define ImageMagick effects | |
| 25 | +declare -A effects=( | |
| 26 | + ["No Effects"]="no-effects" | |
| 27 | + ["Black & White"]="magick $wallpaper_current -colorspace gray -sigmoidal-contrast 10,40% $wallpaper_output" | |
| 28 | + ["Blurred"]="magick $wallpaper_current -blur 0x10 $wallpaper_output" | |
| 29 | + ["Charcoal"]="magick $wallpaper_current -charcoal 0x5 $wallpaper_output" | |
| 30 | + ["Edge Detect"]="magick $wallpaper_current -edge 1 $wallpaper_output" | |
| 31 | + ["Emboss"]="magick $wallpaper_current -emboss 0x5 $wallpaper_output" | |
| 32 | + ["Frame Raised"]="magick $wallpaper_current +raise 150 $wallpaper_output" | |
| 33 | + ["Frame Sunk"]="magick $wallpaper_current -raise 150 $wallpaper_output" | |
| 34 | + ["Negate"]="magick $wallpaper_current -negate $wallpaper_output" | |
| 35 | + ["Oil Paint"]="magick $wallpaper_current -paint 4 $wallpaper_output" | |
| 36 | + ["Posterize"]="magick $wallpaper_current -posterize 4 $wallpaper_output" | |
| 37 | + ["Polaroid"]="magick $wallpaper_current -polaroid 0 $wallpaper_output" | |
| 38 | + ["Sepia Tone"]="magick $wallpaper_current -sepia-tone 65% $wallpaper_output" | |
| 39 | + ["Solarize"]="magick $wallpaper_current -solarize 80% $wallpaper_output" | |
| 40 | + ["Sharpen"]="magick $wallpaper_current -sharpen 0x5 $wallpaper_output" | |
| 41 | + ["Vignette"]="magick $wallpaper_current -vignette 0x3 $wallpaper_output" | |
| 42 | + ["Vignette-black"]="magick $wallpaper_current -background black -vignette 0x3 $wallpaper_output" | |
| 43 | + ["Zoomed"]="magick $wallpaper_current -gravity Center -extent 1:1 $wallpaper_output" | |
| 44 | +) | |
| 45 | + | |
| 46 | +# Function to apply no effects | |
| 47 | +no-effects() { | |
| 48 | + swww img -o "$focused_monitor" "$wallpaper_current" $SWWW_PARAMS && | |
| 49 | + wait $! | |
| 50 | + wallust run "$wallpaper_current" -s && | |
| 51 | + wait $! | |
| 52 | + # Refresh rofi, waybar, wallust palettes | |
| 53 | + sleep 2 | |
| 54 | + "$SCRIPTSDIR/Refresh.sh" | |
| 55 | + | |
| 56 | + notify-send -u low -i "$iDIR/ja.png" "No wallpaper" "effects applied" | |
| 57 | + # copying wallpaper for rofi menu | |
| 58 | + cp "$wallpaper_current" "$wallpaper_output" | |
| 59 | +} | |
| 60 | + | |
| 61 | +# Function to run rofi menu | |
| 62 | +main() { | |
| 63 | + # Populate rofi menu options | |
| 64 | + options=("No Effects") | |
| 65 | + for effect in "${!effects[@]}"; do | |
| 66 | + [[ "$effect" != "No Effects" ]] && options+=("$effect") | |
| 67 | + done | |
| 68 | + | |
| 69 | + choice=$(printf "%s\n" "${options[@]}" | LC_COLLATE=C sort | rofi -dmenu -i -config $rofi_theme) | |
| 70 | + | |
| 71 | + # Process user choice | |
| 72 | + if [[ -n "$choice" ]]; then | |
| 73 | + if [[ "$choice" == "No Effects" ]]; then | |
| 74 | + no-effects | |
| 75 | + elif [[ "${effects[$choice]+exists}" ]]; then | |
| 76 | + # Apply selected effect | |
| 77 | + notify-send -u normal -i "$iDIR/ja.png" "Applying:" "$choice effects" | |
| 78 | + eval "${effects[$choice]}" | |
| 79 | + | |
| 80 | + # intial kill process | |
| 81 | + for pid in swaybg mpvpaper; do | |
| 82 | + killall -SIGUSR1 "$pid" | |
| 83 | + done | |
| 84 | + | |
| 85 | + sleep 1 | |
| 86 | + swww img -o "$focused_monitor" "$wallpaper_output" $SWWW_PARAMS & | |
| 87 | + | |
| 88 | + sleep 2 | |
| 89 | + | |
| 90 | + wallust run "$wallpaper_output" -s & | |
| 91 | + sleep 1 | |
| 92 | + # Refresh rofi, waybar, wallust palettes | |
| 93 | + "${SCRIPTSDIR}/Refresh.sh" | |
| 94 | + notify-send -u low -i "$iDIR/ja.png" "$choice" "effects applied" | |
| 95 | + else | |
| 96 | + echo "Effect '$choice' not recognized." | |
| 97 | + fi | |
| 98 | + fi | |
| 99 | +} | |
| 100 | + | |
| 101 | +# Check if rofi is already running and kill it | |
| 102 | +if pidof rofi > /dev/null; then | |
| 103 | + pkill rofi | |
| 104 | +fi | |
| 105 | + | |
| 106 | +main | |
| 107 | + | |
| 108 | +sleep 1 | |
| 109 | + | |
| 110 | +if [[ -n "$choice" ]]; then | |
| 111 | + sddm_sequoia="/usr/share/sddm/themes/sequoia_2" | |
| 112 | + if [ -d "$sddm_sequoia" ]; then | |
| 113 | + | |
| 114 | + # Check if yad is running to avoid multiple yad notification | |
| 115 | + if pidof yad > /dev/null; then | |
| 116 | + killall yad | |
| 117 | + fi | |
| 118 | + | |
| 119 | + if yad --info --text="Set current wallpaper as SDDM background?\n\nNOTE: This only applies to SEQUOIA SDDM Theme" \ | |
| 120 | + --text-align=left \ | |
| 121 | + --title="SDDM Background" \ | |
| 122 | + --timeout=5 \ | |
| 123 | + --timeout-indicator=right \ | |
| 124 | + --button="yad-yes:0" \ | |
| 125 | + --button="yad-no:1" \ | |
| 126 | + ; then | |
| 127 | + | |
| 128 | + # Check if terminal exists | |
| 129 | + if ! command -v "$terminal" &>/dev/null; then | |
| 130 | + notify-send -i "$iDIR/ja.png" "Missing $terminal" "Install $terminal to enable setting of wallpaper background" | |
| 131 | + exit 1 | |
| 132 | + fi | |
| 133 | + | |
| 134 | + # Open terminal and set the wallpaper | |
| 135 | + $terminal -e bash -c "echo 'Enter your password to set wallpaper as SDDM Background'; \ | |
| 136 | + sudo cp -r $wallpaper_output '$sddm_sequoia/backgrounds/default' && \ | |
| 137 | + notify-send -i '$iDIR/ja.png' 'SDDM' 'Background SET'" | |
| 138 | + fi | |
| 139 | + fi | |
| 140 | +fi |
+30-0UserScripts/WallpaperRandom.sh
| @@ -0,0 +1,30 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Script for Random Wallpaper ( CTRL ALT W) | |
| 4 | + | |
| 5 | +wallDIR="$HOME/Pictures/wallpapers" | |
| 6 | +SCRIPTSDIR="$HOME/.config/hypr/scripts" | |
| 7 | + | |
| 8 | +focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') | |
| 9 | + | |
| 10 | +PICS=($(find -L ${wallDIR} -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.pnm" -o -name "*.tga" -o -name "*.tiff" -o -name "*.webp" -o -name "*.bmp" -o -name "*.farbfeld" -o -name "*.gif" \))) | |
| 11 | +RANDOMPICS=${PICS[ $RANDOM % ${#PICS[@]} ]} | |
| 12 | + | |
| 13 | + | |
| 14 | +# Transition config | |
| 15 | +FPS=30 | |
| 16 | +TYPE="random" | |
| 17 | +DURATION=1 | |
| 18 | +BEZIER=".43,1.19,1,.4" | |
| 19 | +SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER" | |
| 20 | + | |
| 21 | + | |
| 22 | +swww query || swww-daemon --format xrgb && swww img -o $focused_monitor ${RANDOMPICS} $SWWW_PARAMS | |
| 23 | + | |
| 24 | +wait $! | |
| 25 | +"$SCRIPTSDIR/WallustSwww.sh" && | |
| 26 | + | |
| 27 | +wait $! | |
| 28 | +sleep 2 | |
| 29 | +"$SCRIPTSDIR/Refresh.sh" | |
| 30 | + |
+238-0UserScripts/WallpaperSelect.sh
| @@ -0,0 +1,238 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ | |
| 3 | +# This script for selecting wallpapers (SUPER W) | |
| 4 | + | |
| 5 | +# WALLPAPERS PATH | |
| 6 | +terminal=foot | |
| 7 | +wallDIR="$HOME/Pictures/wallpapers" | |
| 8 | +SCRIPTSDIR="$HOME/.config/hypr/scripts" | |
| 9 | +wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" | |
| 10 | + | |
| 11 | +# Directory for swaync | |
| 12 | +iDIR="$HOME/.config/swaync/images" | |
| 13 | +iDIRi="$HOME/.config/swaync/icons" | |
| 14 | + | |
| 15 | +# swww transition config | |
| 16 | +FPS=60 | |
| 17 | +TYPE="any" | |
| 18 | +DURATION=2 | |
| 19 | +BEZIER=".43,1.19,1,.4" | |
| 20 | +SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER" | |
| 21 | + | |
| 22 | +# Check if package bc exists | |
| 23 | +if ! command -v bc &>/dev/null; then | |
| 24 | + notify-send -i "$iDIR/error.png" "bc missing" "Install package bc first" | |
| 25 | + exit 1 | |
| 26 | +fi | |
| 27 | + | |
| 28 | +# Variables | |
| 29 | +rofi_theme="$HOME/.config/rofi/config-wallpaper.rasi" | |
| 30 | +focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') | |
| 31 | + | |
| 32 | +# Ensure focused_monitor is detected | |
| 33 | +if [[ -z "$focused_monitor" ]]; then | |
| 34 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Could not detect focused monitor" | |
| 35 | + exit 1 | |
| 36 | +fi | |
| 37 | + | |
| 38 | +# Monitor details | |
| 39 | +scale_factor=$(hyprctl monitors -j | jq -r --arg mon "$focused_monitor" '.[] | select(.name == $mon) | .scale') | |
| 40 | +monitor_height=$(hyprctl monitors -j | jq -r --arg mon "$focused_monitor" '.[] | select(.name == $mon) | .height') | |
| 41 | + | |
| 42 | +icon_size=$(echo "scale=1; ($monitor_height * 3) / ($scale_factor * 150)" | bc) | |
| 43 | +adjusted_icon_size=$(echo "$icon_size" | awk '{if ($1 < 15) $1 = 20; if ($1 > 25) $1 = 25; print $1}') | |
| 44 | +rofi_override="element-icon{size:${adjusted_icon_size}%;}" | |
| 45 | + | |
| 46 | +# Kill existing wallpaper daemons for video | |
| 47 | +kill_wallpaper_for_video() { | |
| 48 | + swww kill 2>/dev/null | |
| 49 | + pkill mpvpaper 2>/dev/null | |
| 50 | + pkill swaybg 2>/dev/null | |
| 51 | + pkill hyprpaper 2>/dev/null | |
| 52 | +} | |
| 53 | + | |
| 54 | +# Kill existing wallpaper daemons for image | |
| 55 | +kill_wallpaper_for_image() { | |
| 56 | + pkill mpvpaper 2>/dev/null | |
| 57 | + pkill swaybg 2>/dev/null | |
| 58 | + pkill hyprpaper 2>/dev/null | |
| 59 | +} | |
| 60 | + | |
| 61 | +# Retrieve wallpapers (both images & videos) | |
| 62 | +mapfile -d '' PICS < <(find -L "${wallDIR}" -type f \( \ | |
| 63 | + -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" -o \ | |
| 64 | + -iname "*.bmp" -o -iname "*.tiff" -o -iname "*.webp" -o \ | |
| 65 | + -iname "*.mp4" -o -iname "*.mkv" -o -iname "*.mov" -o -iname "*.webm" \) -print0) | |
| 66 | + | |
| 67 | +RANDOM_PIC="${PICS[$((RANDOM % ${#PICS[@]}))]}" | |
| 68 | +RANDOM_PIC_NAME=". random" | |
| 69 | + | |
| 70 | +# Rofi command | |
| 71 | +rofi_command="rofi -i -show -dmenu -config $rofi_theme -theme-str $rofi_override" | |
| 72 | + | |
| 73 | +# Sorting Wallpapers | |
| 74 | +menu() { | |
| 75 | + IFS=$'\n' sorted_options=($(sort <<<"${PICS[*]}")) | |
| 76 | + | |
| 77 | + printf "%s\x00icon\x1f%s\n" "$RANDOM_PIC_NAME" "$RANDOM_PIC" | |
| 78 | + | |
| 79 | + for pic_path in "${sorted_options[@]}"; do | |
| 80 | + pic_name=$(basename "$pic_path") | |
| 81 | + if [[ "$pic_name" =~ \.gif$ ]]; then | |
| 82 | + cache_gif_image="$HOME/.cache/gif_preview/${pic_name}.png" | |
| 83 | + if [[ ! -f "$cache_gif_image" ]]; then | |
| 84 | + mkdir -p "$HOME/.cache/gif_preview" | |
| 85 | + magick "$pic_path[0]" -resize 1920x1080 "$cache_gif_image" | |
| 86 | + fi | |
| 87 | + printf "%s\x00icon\x1f%s\n" "$pic_name" "$cache_gif_image" | |
| 88 | + elif [[ "$pic_name" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then | |
| 89 | + cache_preview_image="$HOME/.cache/video_preview/${pic_name}.png" | |
| 90 | + if [[ ! -f "$cache_preview_image" ]]; then | |
| 91 | + mkdir -p "$HOME/.cache/video_preview" | |
| 92 | + ffmpeg -v error -y -i "$pic_path" -ss 00:00:01.000 -vframes 1 "$cache_preview_image" | |
| 93 | + fi | |
| 94 | + printf "%s\x00icon\x1f%s\n" "$pic_name" "$cache_preview_image" | |
| 95 | + else | |
| 96 | + printf "%s\x00icon\x1f%s\n" "$(echo "$pic_name" | cut -d. -f1)" "$pic_path" | |
| 97 | + fi | |
| 98 | + done | |
| 99 | +} | |
| 100 | + | |
| 101 | +# Offer SDDM Sequioa Wallpaper Option (only for non-video wallpapers) | |
| 102 | +set_sddm_wallpaper() { | |
| 103 | + sleep 1 | |
| 104 | + sddm_sequoia="/usr/share/sddm/themes/sequoia_2" | |
| 105 | + | |
| 106 | + if [ -d "$sddm_sequoia" ]; then | |
| 107 | + | |
| 108 | + # Check if yad is running to avoid multiple notifications | |
| 109 | + if pidof yad >/dev/null; then | |
| 110 | + killall yad | |
| 111 | + fi | |
| 112 | + | |
| 113 | + if yad --info --text="Set current wallpaper as SDDM background?\n\nNOTE: This only applies to SEQUOIA SDDM Theme" \ | |
| 114 | + --text-align=left \ | |
| 115 | + --title="SDDM Background" \ | |
| 116 | + --timeout=5 \ | |
| 117 | + --timeout-indicator=right \ | |
| 118 | + --button="yes:0" \ | |
| 119 | + --button="no:1"; then | |
| 120 | + | |
| 121 | + # Check if terminal exists | |
| 122 | + if ! command -v "$terminal" &>/dev/null; then | |
| 123 | + notify-send -i "$iDIR/error.png" "Missing $terminal" "Install $terminal to enable setting of wallpaper background" | |
| 124 | + exit 1 | |
| 125 | + fi | |
| 126 | + | |
| 127 | + # Open terminal to enter password | |
| 128 | + $terminal -e bash -c "echo 'Enter your password to set wallpaper as SDDM Background'; \ | |
| 129 | + sudo cp -r $wallpaper_current '$sddm_sequoia/backgrounds/default' && \ | |
| 130 | + notify-send -i '$iDIR/ja.png' 'SDDM' 'Background SET'" | |
| 131 | + fi | |
| 132 | + fi | |
| 133 | +} | |
| 134 | + | |
| 135 | +modify_startup_config() { | |
| 136 | + local selected_file="$1" | |
| 137 | + local startup_config="$HOME/.config/hypr/UserConfigs/Startup_Apps.conf" | |
| 138 | + | |
| 139 | + # Check if it's a live wallpaper (video) | |
| 140 | + if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm)$ ]]; then | |
| 141 | + # For video wallpapers: | |
| 142 | + sed -i '/^\s*exec-once\s*=\s*swww-daemon\s*--format\s*xrgb\s*$/s/^/\#/' "$startup_config" | |
| 143 | + sed -i '/^\s*#\s*exec-once\s*=\s*mpvpaper\s*.*$/s/^#\s*//;' "$startup_config" | |
| 144 | + | |
| 145 | + # Update the livewallpaper variable with the selected video path (using $HOME) | |
| 146 | + selected_file="${selected_file/#$HOME/\$HOME}" # Replace /home/user with $HOME | |
| 147 | + sed -i "s|^\$livewallpaper=.*|\$livewallpaper=\"$selected_file\"|" "$startup_config" | |
| 148 | + | |
| 149 | + echo "Configured for live wallpaper (video)." | |
| 150 | + else | |
| 151 | + # For image wallpapers: | |
| 152 | + sed -i '/^\s*#\s*exec-once\s*=\s*swww-daemon\s*--format\s*xrgb\s*$/s/^\s*#\s*//;' "$startup_config" | |
| 153 | + | |
| 154 | + sed -i '/^\s*exec-once\s*=\s*mpvpaper\s*.*$/s/^/\#/' "$startup_config" | |
| 155 | + | |
| 156 | + echo "Configured for static wallpaper (image)." | |
| 157 | + fi | |
| 158 | +} | |
| 159 | + | |
| 160 | +# Apply Image Wallpaper | |
| 161 | +apply_image_wallpaper() { | |
| 162 | + local image_path="$1" | |
| 163 | + | |
| 164 | + kill_wallpaper_for_image | |
| 165 | + | |
| 166 | + if ! pgrep -x "swww-daemon" >/dev/null; then | |
| 167 | + echo "Starting swww-daemon..." | |
| 168 | + swww-daemon --format xrgb & | |
| 169 | + fi | |
| 170 | + | |
| 171 | + swww img -o "$focused_monitor" "$image_path" $SWWW_PARAMS | |
| 172 | + | |
| 173 | + # Run additional scripts | |
| 174 | + "$SCRIPTSDIR/WallustSwww.sh" | |
| 175 | + sleep 2 | |
| 176 | + "$SCRIPTSDIR/Refresh.sh" | |
| 177 | + sleep 1 | |
| 178 | + | |
| 179 | + set_sddm_wallpaper | |
| 180 | +} | |
| 181 | + | |
| 182 | +apply_video_wallpaper() { | |
| 183 | + local video_path="$1" | |
| 184 | + | |
| 185 | + # Check if mpvpaper is installed | |
| 186 | + if ! command -v mpvpaper &>/dev/null; then | |
| 187 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "mpvpaper not found" | |
| 188 | + return 1 | |
| 189 | + fi | |
| 190 | + kill_wallpaper_for_video | |
| 191 | + | |
| 192 | + # Apply video wallpaper using mpvpaper | |
| 193 | + mpvpaper '*' -o "load-scripts=no no-audio --loop" "$video_path" & | |
| 194 | +} | |
| 195 | + | |
| 196 | +# Main function | |
| 197 | +main() { | |
| 198 | + choice=$(menu | $rofi_command) | |
| 199 | + choice=$(echo "$choice" | xargs) | |
| 200 | + RANDOM_PIC_NAME=$(echo "$RANDOM_PIC_NAME" | xargs) | |
| 201 | + | |
| 202 | + if [[ -z "$choice" ]]; then | |
| 203 | + echo "No choice selected. Exiting." | |
| 204 | + exit 0 | |
| 205 | + fi | |
| 206 | + | |
| 207 | + # Handle random selection correctly | |
| 208 | + if [[ "$choice" == "$RANDOM_PIC_NAME" ]]; then | |
| 209 | + choice=$(basename "$RANDOM_PIC") | |
| 210 | + fi | |
| 211 | + | |
| 212 | + choice_basename=$(basename "$choice" | sed 's/\(.*\)\.[^.]*$/\1/') | |
| 213 | + | |
| 214 | + # Search for the selected file in the wallpapers directory, including subdirectories | |
| 215 | + selected_file=$(find "$wallDIR" -iname "$choice_basename.*" -print -quit) | |
| 216 | + | |
| 217 | + if [[ -z "$selected_file" ]]; then | |
| 218 | + echo "File not found. Selected choice: $choice" | |
| 219 | + exit 1 | |
| 220 | + fi | |
| 221 | + | |
| 222 | + # Modify the Startup_Apps.conf file based on wallpaper type | |
| 223 | + modify_startup_config "$selected_file" | |
| 224 | + | |
| 225 | + # **CHECK FIRST** if it's a video or an image **before calling any function** | |
| 226 | + if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then | |
| 227 | + apply_video_wallpaper "$selected_file" | |
| 228 | + else | |
| 229 | + apply_image_wallpaper "$selected_file" | |
| 230 | + fi | |
| 231 | +} | |
| 232 | + | |
| 233 | +# Check if rofi is already running | |
| 234 | +if pidof rofi >/dev/null; then | |
| 235 | + pkill rofi | |
| 236 | +fi | |
| 237 | + | |
| 238 | +main |
+146-0UserScripts/Weather.py
| @@ -0,0 +1,146 @@ | ||
| 1 | +#!/usr/bin/env python3 | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 3 | +# original code https://gist.github.com/Surendrajat/ff3876fd2166dd86fb71180f4e9342d7 | |
| 4 | +# weather using python | |
| 5 | + | |
| 6 | +import requests | |
| 7 | +import json | |
| 8 | +import os | |
| 9 | +from pyquery import PyQuery # install using `pip install pyquery` | |
| 10 | + | |
| 11 | +# weather icons | |
| 12 | +weather_icons = { | |
| 13 | + "sunnyDay": "", | |
| 14 | + "clearNight": "", | |
| 15 | + "cloudyFoggyDay": "", | |
| 16 | + "cloudyFoggyNight": "", | |
| 17 | + "rainyDay": "", | |
| 18 | + "rainyNight": "", | |
| 19 | + "snowyIcyDay": "", | |
| 20 | + "snowyIcyNight": "", | |
| 21 | + "severe": "", | |
| 22 | + "default": "", | |
| 23 | +} | |
| 24 | + | |
| 25 | + | |
| 26 | +# Get current location based on IP address | |
| 27 | +def get_location(): | |
| 28 | + response = requests.get("https://ipinfo.io") | |
| 29 | + data = response.json() | |
| 30 | + loc = data["loc"].split(",") | |
| 31 | + return float(loc[0]), float(loc[1]) | |
| 32 | + | |
| 33 | + | |
| 34 | +# Get latitude and longitude | |
| 35 | +latitude, longitude = get_location() | |
| 36 | + | |
| 37 | +# Open-Meteo API endpoint | |
| 38 | +url = f"https://weather.com/en-PH/weather/today/l/{latitude},{longitude}?unit=f" | |
| 39 | + | |
| 40 | +# manual location_id | |
| 41 | +# NOTE: if you want to add manually, make sure you disable def get_location above | |
| 42 | +# to get your own location_id, go to https://weather.com & search your location. | |
| 43 | +# once you choose your location, you can see the location_id in the URL(64 chars long hex string) | |
| 44 | +# like this: https://weather.com/en-PH/weather/today/l/bca47d1099e762a012b9a139c36f30a0b1e647f69c0c4ac28b537e7ae9c1c200 | |
| 45 | +# location_id = "bca47d1099e762a012b9a139c36f30a0b1e647f69c0c4ac28b537e7ae9c1c200" # TODO | |
| 46 | + | |
| 47 | +# NOTE to change to deg F, change the URL to your preffered location after weather.com | |
| 48 | +# Default is English-Philippines with Busan, South Korea as location_id | |
| 49 | +# get html page | |
| 50 | +# url = "https://weather.com/en-PH/weather/today/l/" + location_id | |
| 51 | + | |
| 52 | +html_data = PyQuery(url=url) | |
| 53 | + | |
| 54 | +# current temperature | |
| 55 | +temp = html_data("span[data-testid='TemperatureValue']").eq(0).text() | |
| 56 | + | |
| 57 | +# current status phrase | |
| 58 | +status = html_data("div[data-testid='wxPhrase']").text() | |
| 59 | +status = f"{status[:16]}.." if len(status) > 17 else status | |
| 60 | + | |
| 61 | +# status code | |
| 62 | +status_code = html_data("#regionHeader").attr("class").split(" ")[2].split("-")[2] | |
| 63 | + | |
| 64 | +# status icon | |
| 65 | +icon = ( | |
| 66 | + weather_icons[status_code] | |
| 67 | + if status_code in weather_icons | |
| 68 | + else weather_icons["default"] | |
| 69 | +) | |
| 70 | + | |
| 71 | +# temperature feels like | |
| 72 | +temp_feel = html_data( | |
| 73 | + "div[data-testid='FeelsLikeSection'] > span > span[data-testid='TemperatureValue']" | |
| 74 | +).text() | |
| 75 | +temp_feel_text = f"Feels like {temp_feel}F" | |
| 76 | + | |
| 77 | +# min-max temperature | |
| 78 | +temp_min = ( | |
| 79 | + html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']") | |
| 80 | + .eq(1) | |
| 81 | + .text() | |
| 82 | +) | |
| 83 | +temp_max = ( | |
| 84 | + html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']") | |
| 85 | + .eq(0) | |
| 86 | + .text() | |
| 87 | +) | |
| 88 | +temp_min_max = f" {temp_min}\t\t {temp_max}" | |
| 89 | + | |
| 90 | +# wind speed | |
| 91 | +wind_speed = html_data("span[data-testid='Wind']").text().split("\n")[0] | |
| 92 | +wind_text = f" {wind_speed}" | |
| 93 | + | |
| 94 | +# humidity | |
| 95 | +humidity = html_data("span[data-testid='PercentageValue']").text() | |
| 96 | +humidity_text = f" {humidity}" | |
| 97 | + | |
| 98 | +# visibility | |
| 99 | +visibility = html_data("span[data-testid='VisibilityValue']").text() | |
| 100 | +visibility_text = f" {visibility}" | |
| 101 | + | |
| 102 | +# air quality index | |
| 103 | +air_quality_index = html_data("text[data-testid='DonutChartValue']").text() | |
| 104 | + | |
| 105 | +# hourly rain prediction | |
| 106 | +prediction = html_data("section[aria-label='Hourly Forecast']")( | |
| 107 | + "div[data-testid='SegmentPrecipPercentage'] > span" | |
| 108 | +).text() | |
| 109 | +prediction = prediction.replace("Chance of Rain", "") | |
| 110 | +prediction = f"\n\n (hourly) {prediction}" if len(prediction) > 0 else prediction | |
| 111 | + | |
| 112 | +# tooltip text | |
| 113 | +tooltip_text = str.format( | |
| 114 | + "\t\t{}\t\t\n{}\n{}\n{}\n\n{}\n{}\n{}{}", | |
| 115 | + f'<span size="xx-large">{temp}</span>', | |
| 116 | + f"<big> {icon}</big>", | |
| 117 | + f"<b>{status}</b>", | |
| 118 | + f"<small>{temp_feel_text}</small>", | |
| 119 | + f"<b>{temp_min_max}</b>", | |
| 120 | + f"{wind_text}\t{humidity_text}", | |
| 121 | + f"{visibility_text}\tAQI {air_quality_index}", | |
| 122 | + f"<i> {prediction}</i>", | |
| 123 | +) | |
| 124 | + | |
| 125 | +# print waybar module data | |
| 126 | +out_data = { | |
| 127 | + "text": f"{icon} {temp}", | |
| 128 | + "alt": status, | |
| 129 | + "tooltip": tooltip_text, | |
| 130 | + "class": status_code, | |
| 131 | +} | |
| 132 | +print(json.dumps(out_data)) | |
| 133 | + | |
| 134 | +simple_weather = ( | |
| 135 | + f"{icon} {status}\n" | |
| 136 | + + f" {temp} ({temp_feel_text})\n" | |
| 137 | + + f"{wind_text} \n" | |
| 138 | + + f"{humidity_text} \n" | |
| 139 | + + f"{visibility_text} AQI{air_quality_index}\n" | |
| 140 | +) | |
| 141 | + | |
| 142 | +try: | |
| 143 | + with open(os.path.expanduser("~/.cache/.weather_cache"), "w") as file: | |
| 144 | + file.write(simple_weather) | |
| 145 | +except Exception as e: | |
| 146 | + print(f"Error writing to cache: {e}") |
+87-0UserScripts/Weather.sh
| @@ -0,0 +1,87 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# weather info from wttr. https://github.com/chubin/wttr.in | |
| 4 | +# Remember to add city | |
| 5 | + | |
| 6 | +city= | |
| 7 | +cachedir="~/.cache/rbn" | |
| 8 | +cachefile=${0##*/}-$1 | |
| 9 | + | |
| 10 | +if [ ! -d $cachedir ]; then | |
| 11 | + mkdir -p $cachedir | |
| 12 | +fi | |
| 13 | + | |
| 14 | +if [ ! -f $cachedir/$cachefile ]; then | |
| 15 | + touch $cachedir/$cachefile | |
| 16 | +fi | |
| 17 | + | |
| 18 | +# Save current IFS | |
| 19 | +SAVEIFS=$IFS | |
| 20 | +# Change IFS to new line. | |
| 21 | +IFS=$'\n' | |
| 22 | + | |
| 23 | +cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile"))) | |
| 24 | +if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then | |
| 25 | + data=($(curl -s "https://en.wttr.in/${city}${1}\?0qnT&u" 2>&1)) | |
| 26 | + echo ${data[0]} | cut -f1 -d, >$cachedir/$cachefile | |
| 27 | + echo ${data[1]} | sed -E 's/^.{15}//' >>$cachedir/$cachefile | |
| 28 | + echo ${data[2]} | sed -E 's/^.{15}//' >>$cachedir/$cachefile | |
| 29 | +fi | |
| 30 | + | |
| 31 | +weather=($(cat $cachedir/$cachefile)) | |
| 32 | + | |
| 33 | +# Restore IFSClear | |
| 34 | +IFS=$SAVEIFS | |
| 35 | + | |
| 36 | +temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]]+)\.\./\1 to /g') | |
| 37 | + | |
| 38 | +#echo ${weather[1]##*,} | |
| 39 | + | |
| 40 | +# https://fontawesome.com/icons?s=solid&c=weather | |
| 41 | +case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in | |
| 42 | +"clear" | "sunny") | |
| 43 | + condition="" | |
| 44 | + ;; | |
| 45 | +"partly cloudy") | |
| 46 | + condition="" | |
| 47 | + ;; | |
| 48 | +"cloudy") | |
| 49 | + condition="" | |
| 50 | + ;; | |
| 51 | +"overcast") | |
| 52 | + condition="" | |
| 53 | + ;; | |
| 54 | +"fog" | "freezing fog") | |
| 55 | + condition="" | |
| 56 | + ;; | |
| 57 | +"patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "mist" | "rain") | |
| 58 | + condition="" | |
| 59 | + ;; | |
| 60 | +"moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower") | |
| 61 | + condition="" | |
| 62 | + ;; | |
| 63 | +"patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers") | |
| 64 | + condition="" | |
| 65 | + ;; | |
| 66 | +"blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers") | |
| 67 | + condition="" | |
| 68 | + ;; | |
| 69 | +"blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers") | |
| 70 | + condition="" | |
| 71 | + ;; | |
| 72 | +"thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder") | |
| 73 | + condition="" | |
| 74 | + ;; | |
| 75 | +*) | |
| 76 | + condition="" | |
| 77 | + echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" | |
| 78 | + ;; | |
| 79 | +esac | |
| 80 | + | |
| 81 | +#echo $temp $condition | |
| 82 | + | |
| 83 | +echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" | |
| 84 | + | |
| 85 | +cached_weather=" $temperature \n$condition ${weather[1]}" | |
| 86 | + | |
| 87 | +echo -e $cached_weather >"~/.cache/.weather_cache" |
+69-0UserScripts/ZshChangeTheme.sh
| @@ -0,0 +1,69 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Script for Oh my ZSH theme ( CTRL SHIFT O) | |
| 4 | + | |
| 5 | +# preview of theme can be view here: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes | |
| 6 | +# after choosing theme, TTY need to be closed and re-open | |
| 7 | + | |
| 8 | +# Variables | |
| 9 | +iDIR="$HOME/.config/swaync/images" | |
| 10 | +rofi_theme="$HOME/.config/rofi/config-zsh-theme.rasi" | |
| 11 | + | |
| 12 | +if [ -n "$(grep -i nixos < /etc/os-release)" ]; then | |
| 13 | + notify-send -i "$iDIR/note.png" "NOT Supported" "Sorry NixOS does not support this KooL feature" | |
| 14 | + exit 1 | |
| 15 | +fi | |
| 16 | + | |
| 17 | +themes_dir="$HOME/.oh-my-zsh/themes" | |
| 18 | +file_extension=".zsh-theme" | |
| 19 | + | |
| 20 | + | |
| 21 | +themes_array=($(find -L "$themes_dir" -type f -name "*$file_extension" -exec basename {} \; | sed -e "s/$file_extension//")) | |
| 22 | + | |
| 23 | +# Add "Random" option to the beginning of the array | |
| 24 | +themes_array=("Random" "${themes_array[@]}") | |
| 25 | + | |
| 26 | +rofi_command="rofi -i -dmenu -config $rofi_theme" | |
| 27 | + | |
| 28 | +menu() { | |
| 29 | + for theme in "${themes_array[@]}"; do | |
| 30 | + echo "$theme" | |
| 31 | + done | |
| 32 | +} | |
| 33 | + | |
| 34 | +main() { | |
| 35 | + choice=$(menu | ${rofi_command}) | |
| 36 | + | |
| 37 | + # if nothing selected, script won't change anything | |
| 38 | + if [ -z "$choice" ]; then | |
| 39 | + exit 0 | |
| 40 | + fi | |
| 41 | + | |
| 42 | + zsh_path="$HOME/.zshrc" | |
| 43 | + var_name="ZSH_THEME" | |
| 44 | + | |
| 45 | + if [[ "$choice" == "Random" ]]; then | |
| 46 | + # Pick a random theme from the original themes_array (excluding "Random") | |
| 47 | + random_theme=${themes_array[$((RANDOM % (${#themes_array[@]} - 1) + 1))]} | |
| 48 | + theme_to_set="$random_theme" | |
| 49 | + notify-send -i "$iDIR/ja.png" "Random theme:" "selected: $random_theme" | |
| 50 | + else | |
| 51 | + # Set theme to the selected choice | |
| 52 | + theme_to_set="$choice" | |
| 53 | + notify-send -i "$iDIR/ja.png" "Theme selected:" "$choice" | |
| 54 | + fi | |
| 55 | + | |
| 56 | + if [ -f "$zsh_path" ]; then | |
| 57 | + sed -i "s/^$var_name=.*/$var_name=\"$theme_to_set\"/" "$zsh_path" | |
| 58 | + notify-send -i "$iDIR/ja.png" "OMZ theme" "applied. restart your terminal" | |
| 59 | + else | |
| 60 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "~.zshrc file not found!" | |
| 61 | + fi | |
| 62 | +} | |
| 63 | + | |
| 64 | +# Check if rofi is already running | |
| 65 | +if pidof rofi > /dev/null; then | |
| 66 | + pkill rofi | |
| 67 | +fi | |
| 68 | + | |
| 69 | +main |
+26-0animations/00-default.conf
| @@ -0,0 +1,26 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | + | |
| 3 | +animations { | |
| 4 | + enabled = yes | |
| 5 | + | |
| 6 | + bezier = wind, 0.05, 0.9, 0.1, 1.05 | |
| 7 | + bezier = winIn, 0.1, 1.1, 0.1, 1.1 | |
| 8 | + bezier = winOut, 0.3, -0.3, 0, 1 | |
| 9 | + bezier = liner, 1, 1, 1, 1 | |
| 10 | + bezier = overshot, 0.05, 0.9, 0.1, 1.05 | |
| 11 | + bezier = smoothOut, 0.5, 0, 0.99, 0.99 | |
| 12 | + bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 | |
| 13 | + | |
| 14 | + animation = windows, 1, 6, wind, slide | |
| 15 | + animation = windowsIn, 1, 5, winIn, slide | |
| 16 | + animation = windowsOut, 1, 3, smoothOut, slide | |
| 17 | + animation = windowsMove, 1, 5, wind, slide | |
| 18 | + animation = border, 1, 1, liner | |
| 19 | + animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors | |
| 20 | + animation = fade, 1, 3, smoothOut | |
| 21 | + animation = workspaces, 1, 5, overshot | |
| 22 | + | |
| 23 | + # animations for -git or version >0.42.0 | |
| 24 | + animation = workspacesIn, 1, 5, winIn, slide | |
| 25 | + animation = workspacesOut, 1, 5, winOut, slide | |
| 26 | +} |
+27-0animations/01-default - v2.conf
| @@ -0,0 +1,27 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | + | |
| 3 | +# old animations | |
| 4 | + | |
| 5 | +animations { | |
| 6 | + enabled = yes | |
| 7 | + | |
| 8 | + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 | |
| 9 | + bezier = linear, 0.0, 0.0, 1.0, 1.0 | |
| 10 | + bezier = wind, 0.05, 0.9, 0.1, 1.05 | |
| 11 | + bezier = winIn, 0.1, 1.1, 0.1, 1.1 | |
| 12 | + bezier = winOut, 0.3, -0.3, 0, 1 | |
| 13 | + bezier = slow, 0, 0.85, 0.3, 1 | |
| 14 | + bezier = overshot, 0.7, 0.6, 0.1, 1.1 | |
| 15 | + bezier = bounce, 1.1, 1.6, 0.1, 0.85 | |
| 16 | + bezier = sligshot, 1, -1, 0.15, 1.25 | |
| 17 | + bezier = nice, 0, 6.9, 0.5, -4.20 | |
| 18 | + | |
| 19 | + animation = windowsIn, 1, 5, slow, popin | |
| 20 | + animation = windowsOut, 1, 5, winOut, popin | |
| 21 | + animation = windowsMove, 1, 5, wind, slide | |
| 22 | + animation = border, 1, 10, linear | |
| 23 | + animation = borderangle, 1, 180, linear, loop #used by rainbow borders and rotating colors | |
| 24 | + animation = fade, 1, 5, overshot | |
| 25 | + animation = workspaces, 1, 5, wind | |
| 26 | + animation = windows, 1, 5, bounce, popin | |
| 27 | +} |
+5-0animations/03- Disable Animation.conf
| @@ -0,0 +1,5 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | + | |
| 3 | +animations { | |
| 4 | + enabled = no | |
| 5 | +} |
+40-0animations/END-4.conf
| @@ -0,0 +1,40 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "End-4" | |
| 4 | +# credit https://github.com/end-4/dots-hyprland | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + # Animation curves | |
| 9 | + | |
| 10 | + bezier = linear, 0, 0, 1, 1 | |
| 11 | + bezier = md3_standard, 0.2, 0, 0, 1 | |
| 12 | + bezier = md3_decel, 0.05, 0.7, 0.1, 1 | |
| 13 | + bezier = md3_accel, 0.3, 0, 0.8, 0.15 | |
| 14 | + bezier = overshot, 0.05, 0.9, 0.1, 1.1 | |
| 15 | + bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 | |
| 16 | + bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 | |
| 17 | + bezier = menu_decel, 0.1, 1, 0, 1 | |
| 18 | + bezier = menu_accel, 0.38, 0.04, 1, 0.07 | |
| 19 | + bezier = easeInOutCirc, 0.85, 0, 0.15, 1 | |
| 20 | + bezier = easeOutCirc, 0, 0.55, 0.45, 1 | |
| 21 | + bezier = easeOutExpo, 0.16, 1, 0.3, 1 | |
| 22 | + bezier = softAcDecel, 0.26, 0.26, 0.15, 1 | |
| 23 | + bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration | |
| 24 | + # Animation configs | |
| 25 | + animation = windows, 1, 3, md3_decel, popin 60% | |
| 26 | + animation = windowsIn, 1, 3, md3_decel, popin 60% | |
| 27 | + animation = windowsOut, 1, 3, md3_accel, popin 60% | |
| 28 | + animation = border, 1, 10, default | |
| 29 | + animation = fade, 1, 3, md3_decel | |
| 30 | + # animation = layers, 1, 2, md3_decel, slide | |
| 31 | + animation = layersIn, 1, 3, menu_decel, slide | |
| 32 | + animation = layersOut, 1, 1.6, menu_accel | |
| 33 | + animation = fadeLayersIn, 1, 2, menu_decel | |
| 34 | + animation = fadeLayersOut, 1, 4.5, menu_accel | |
| 35 | + animation = workspaces, 1, 7, menu_decel, slide | |
| 36 | + # animation = workspaces, 1, 2.5, softAcDecel, slide | |
| 37 | + # animation = workspaces, 1, 7, menu_decel, slidefade 15% | |
| 38 | + # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% | |
| 39 | + animation = specialWorkspace, 1, 3, md3_decel, slidevert | |
| 40 | +} |
+34-0animations/HYDE - Vertical.conf
| @@ -0,0 +1,34 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Vertical" | |
| 4 | +# credit https://github.com/prasanthrangan/hyprdots | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = yes | |
| 8 | + | |
| 9 | + bezier = fluent_decel, 0, 0.2, 0.4, 1 | |
| 10 | + bezier = easeOutCirc, 0, 0.55, 0.45, 1 | |
| 11 | + bezier = easeOutCubic, 0.33, 1, 0.68, 1 | |
| 12 | + bezier = easeinoutsine, 0.37, 0, 0.63, 1 | |
| 13 | + | |
| 14 | + # Windows | |
| 15 | + animation = windowsIn, 1, 1.5, easeinoutsine, popin 60% # window open | |
| 16 | + animation = windowsOut, 1, 1.5, easeOutCubic, popin 60% # window close. | |
| 17 | + animation = windowsMove, 1, 1.5, easeinoutsine, slide # everything in between, moving, dragging, resizing. | |
| 18 | + | |
| 19 | + # Fading | |
| 20 | + animation = fade, 1, 2.5, fluent_decel | |
| 21 | + | |
| 22 | + animation = fadeLayersIn, 0 | |
| 23 | + animation = border, 0 | |
| 24 | + | |
| 25 | + | |
| 26 | + # Layers | |
| 27 | + animation = layers, 1, 1.5, easeinoutsine, popin | |
| 28 | + | |
| 29 | + # Workspaces | |
| 30 | + #animation = workspaces, 1, 3, fluent_decel, slidefade 30% # styles: slide, slidevert, fade, slidefade, slidefadevert | |
| 31 | + animation = workspaces, 1, 3, fluent_decel, slidefadevert 30% # styles: slide, slidevert, fade, slidefade, slidefadevert | |
| 32 | + | |
| 33 | + animation = specialWorkspace, 1, 2, fluent_decel, slidefade 10% | |
| 34 | +} |
+21-0animations/HYDE - default.conf
| @@ -0,0 +1,21 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Default" | |
| 4 | +# credit https://github.com/prasanthrangan/hyprdots | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = yes | |
| 8 | + bezier = wind, 0.05, 0.9, 0.1, 1.05 | |
| 9 | + bezier = winIn, 0.1, 1.1, 0.1, 1.1 | |
| 10 | + bezier = winOut, 0.3, -0.3, 0, 1 | |
| 11 | + bezier = liner, 1, 1, 1, 1 | |
| 12 | + animation = windows, 1, 6, wind, slide | |
| 13 | + animation = windowsIn, 1, 6, winIn, slide | |
| 14 | + animation = windowsOut, 1, 5, winOut, slide | |
| 15 | + animation = windowsMove, 1, 5, wind, slide | |
| 16 | + animation = border, 1, 1, liner | |
| 17 | + animation = borderangle, 1, 30, liner, once | |
| 18 | + animation = fade, 1, 10, default | |
| 19 | + animation = workspaces, 1, 5, wind | |
| 20 | + animation = specialWorkspace, 1, 5, wind, slidevert | |
| 21 | +} |
+27-0animations/HYDE - minimal-1.conf
| @@ -0,0 +1,27 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# # name "Minimal-1" | |
| 4 | +# credit https://github.com/prasanthrangan/hyprdots- | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + | |
| 9 | + # █▄▄ █▀▀ ▀█ █ █▀▀ █▀█ █▀▀ █░█ █▀█ █░█ █▀▀ | |
| 10 | + # █▄█ ██▄ █▄ █ ██▄ █▀▄ █▄▄ █▄█ █▀▄ ▀▄▀ ██▄ | |
| 11 | + bezier = wind, 0.05, 0.9, 0.1, 1.05 | |
| 12 | + bezier = winIn, 0.1, 1.1, 0.1, 1.1 | |
| 13 | + bezier = winOut, 0.3, -0.3, 0, 1 | |
| 14 | + bezier = liner, 1, 1, 1, 1 | |
| 15 | + | |
| 16 | + | |
| 17 | + #▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ | |
| 18 | + #█▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ | |
| 19 | + animation = windows, 1, 6, wind, slide | |
| 20 | + animation = windowsIn, 1, 6, winIn, slide | |
| 21 | + animation = windowsOut, 1, 5, winOut, slide | |
| 22 | + animation = windowsMove, 1, 5, wind, slide | |
| 23 | + animation = border, 1, 1, liner | |
| 24 | + animation = borderangle, 1, 30, liner, once | |
| 25 | + animation = fade, 1, 10, default | |
| 26 | + animation = workspaces, 1, 5, wind | |
| 27 | +} |
+16-0animations/HYDE - minimal-2.conf
| @@ -0,0 +1,16 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# # name "Minimal-2" | |
| 4 | +# credit https://github.com/prasanthrangan/hyprdots | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = yes | |
| 8 | + | |
| 9 | + bezier = quart, 0.25, 1, 0.5, 1 | |
| 10 | + | |
| 11 | + animation = windows, 1, 6, quart, slide | |
| 12 | + animation = border, 1, 6, quart | |
| 13 | + animation = borderangle, 1, 6, quart | |
| 14 | + animation = fade, 1, 6, quart | |
| 15 | + animation = workspaces, 1, 6, quart | |
| 16 | +} |
+41-0animations/HYDE - optimized.conf
| @@ -0,0 +1,41 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Optimized" | |
| 4 | +# credit https://github.com/prasanthrangan/hyprdots | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + bezier = wind, 0.05, 0.85, 0.03, 0.97 | |
| 9 | + bezier = winIn, 0.07, 0.88, 0.04, 0.99 | |
| 10 | + bezier = winOut, 0.20, -0.15, 0, 1 | |
| 11 | + bezier = liner, 1, 1, 1, 1 | |
| 12 | + bezier = md3_standard, 0.12, 0, 0, 1 | |
| 13 | + bezier = md3_decel, 0.05, 0.80, 0.10, 0.97 | |
| 14 | + bezier = md3_accel, 0.20, 0, 0.80, 0.08 | |
| 15 | + bezier = overshot, 0.05, 0.85, 0.07, 1.04 | |
| 16 | + bezier = crazyshot, 0.1, 1.22, 0.68, 0.98 | |
| 17 | + bezier = hyprnostretch, 0.05, 0.82, 0.03, 0.94 | |
| 18 | + bezier = menu_decel, 0.05, 0.82, 0, 1 | |
| 19 | + bezier = menu_accel, 0.20, 0, 0.82, 0.10 | |
| 20 | + bezier = easeInOutCirc, 0.75, 0, 0.15, 1 | |
| 21 | + bezier = easeOutCirc, 0, 0.48, 0.38, 1 | |
| 22 | + bezier = easeOutExpo, 0.10, 0.94, 0.23, 0.98 | |
| 23 | + bezier = softAcDecel, 0.20, 0.20, 0.15, 1 | |
| 24 | + bezier = md2, 0.30, 0, 0.15, 1 | |
| 25 | + | |
| 26 | + bezier = OutBack, 0.28, 1.40, 0.58, 1 | |
| 27 | + bezier = easeInOutCirc, 0.78, 0, 0.15, 1 | |
| 28 | + | |
| 29 | + animation = border, 1, 1.6, liner | |
| 30 | + animation = borderangle, 1, 82, liner, once | |
| 31 | + animation = windowsIn, 1, 3.2, winIn, slide | |
| 32 | + animation = windowsOut, 1, 2.8, easeOutCirc | |
| 33 | + animation = windowsMove, 1, 3.0, wind, slide | |
| 34 | + animation = fade, 1, 1.8, md3_decel | |
| 35 | + animation = layersIn, 1, 1.8, menu_decel, slide | |
| 36 | + animation = layersOut, 1, 1.5, menu_accel | |
| 37 | + animation = fadeLayersIn, 1, 1.6, menu_decel | |
| 38 | + animation = fadeLayersOut, 1, 1.8, menu_accel | |
| 39 | + animation = workspaces, 1, 4.0, menu_decel, slide | |
| 40 | + animation = specialWorkspace, 1, 2.3, md3_decel, slidefadevert 15% | |
| 41 | +} |
+15-0animations/ML4W - classic.conf
| @@ -0,0 +1,15 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Classic" | |
| 4 | +# credit https://github.com/mylinuxforwork/dotfiles | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 | |
| 9 | + animation = windows, 1, 7, myBezier | |
| 10 | + animation = windowsOut, 1, 7, default, popin 80% | |
| 11 | + animation = border, 1, 10, default | |
| 12 | + animation = borderangle, 1, 8, default | |
| 13 | + animation = fade, 1, 7, default | |
| 14 | + animation = workspaces, 1, 6, default | |
| 15 | +} |
+20-0animations/ML4W - dynamic.conf
| @@ -0,0 +1,20 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Dynamic" | |
| 4 | +# credit https://github.com/mylinuxforwork/dotfiles | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + bezier = wind, 0.05, 0.9, 0.1, 1.05 | |
| 9 | + bezier = winIn, 0.1, 1.1, 0.1, 1.1 | |
| 10 | + bezier = winOut, 0.3, -0.3, 0, 1 | |
| 11 | + bezier = liner, 1, 1, 1, 1 | |
| 12 | + animation = windows, 1, 6, wind, slide | |
| 13 | + animation = windowsIn, 1, 6, winIn, slide | |
| 14 | + animation = windowsOut, 1, 5, winOut, slide | |
| 15 | + animation = windowsMove, 1, 5, wind, slide | |
| 16 | + animation = border, 1, 1, liner | |
| 17 | + animation = borderangle, 1, 30, liner, loop | |
| 18 | + animation = fade, 1, 10, default | |
| 19 | + animation = workspaces, 1, 5, wind | |
| 20 | +} |
+24-0animations/ML4W - fast.conf
| @@ -0,0 +1,24 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Fast" | |
| 4 | +# credit https://github.com/mylinuxforwork/dotfiles | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + bezier = linear, 0, 0, 1, 1 | |
| 9 | + bezier = md3_standard, 0.2, 0, 0, 1 | |
| 10 | + bezier = md3_decel, 0.05, 0.7, 0.1, 1 | |
| 11 | + bezier = md3_accel, 0.3, 0, 0.8, 0.15 | |
| 12 | + bezier = overshot, 0.05, 0.9, 0.1, 1.1 | |
| 13 | + bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 | |
| 14 | + bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 | |
| 15 | + bezier = fluent_decel, 0.1, 1, 0, 1 | |
| 16 | + bezier = easeInOutCirc, 0.85, 0, 0.15, 1 | |
| 17 | + bezier = easeOutCirc, 0, 0.55, 0.45, 1 | |
| 18 | + bezier = easeOutExpo, 0.16, 1, 0.3, 1 | |
| 19 | + animation = windows, 1, 3, md3_decel, popin 60% | |
| 20 | + animation = border, 1, 10, default | |
| 21 | + animation = fade, 1, 2.5, md3_decel | |
| 22 | + animation = workspaces, 1, 3.5, easeOutExpo, slide | |
| 23 | + animation = specialWorkspace, 1, 3, md3_decel, slidevert | |
| 24 | +} |
+20-0animations/ML4W - high.conf
| @@ -0,0 +1,20 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "High" | |
| 4 | +# credit https://github.com/mylinuxforwork/dotfiles | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + bezier = wind, 0.05, 0.9, 0.1, 1.05 | |
| 9 | + bezier = winIn, 0.1, 1.1, 0.1, 1.1 | |
| 10 | + bezier = winOut, 0.3, -0.3, 0, 1 | |
| 11 | + bezier = liner, 1, 1, 1, 1 | |
| 12 | + animation = windows, 1, 6, wind, slide | |
| 13 | + animation = windowsIn, 1, 6, winIn, slide | |
| 14 | + animation = windowsOut, 1, 5, winOut, slide | |
| 15 | + animation = windowsMove, 1, 5, wind, slide | |
| 16 | + animation = border, 1, 1, liner | |
| 17 | + animation = borderangle, 1, 30, liner, once | |
| 18 | + animation = fade, 1, 10, default | |
| 19 | + animation = workspaces, 1, 5, wind | |
| 20 | +} |
+20-0animations/ML4W - moving.conf
| @@ -0,0 +1,20 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Moving" | |
| 4 | +# credit https://github.com/mylinuxforwork/dotfiles | |
| 5 | + | |
| 6 | + | |
| 7 | +animations { | |
| 8 | + enabled = true | |
| 9 | + bezier = overshot, 0.05, 0.9, 0.1, 1.05 | |
| 10 | + bezier = smoothOut, 0.5, 0, 0.99, 0.99 | |
| 11 | + bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 | |
| 12 | + animation = windows, 1, 5, overshot, slide | |
| 13 | + animation = windowsOut, 1, 3, smoothOut | |
| 14 | + animation = windowsIn, 1, 3, smoothOut | |
| 15 | + animation = windowsMove, 1, 4, smoothIn, slide | |
| 16 | + animation = border, 1, 5, default | |
| 17 | + animation = fade, 1, 5, smoothIn | |
| 18 | + animation = fadeDim, 1, 5, smoothIn | |
| 19 | + animation = workspaces, 1, 6, default | |
| 20 | +} |
+15-0animations/ML4W - standard.conf
| @@ -0,0 +1,15 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Standard" | |
| 4 | +# credit https://github.com/mylinuxforwork/dotfiles | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 | |
| 9 | + animation = windows, 1, 7, myBezier | |
| 10 | + animation = windowsOut, 1, 7, default, popin 80% | |
| 11 | + animation = border, 1, 10, default | |
| 12 | + animation = borderangle, 1, 8, default | |
| 13 | + animation = fade, 1, 7, default | |
| 14 | + animation = workspaces, 1, 6, default | |
| 15 | +} |
+55-0animations/Mahaveer - me-1.conf
| @@ -0,0 +1,55 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Me-1" | |
| 4 | +# credit https://github.com/mahaveergurjar | |
| 5 | + | |
| 6 | +animations { | |
| 7 | + enabled = true | |
| 8 | + # Animation curves | |
| 9 | + bezier = wind, 0.05, 0.9, 0.1, 1.05 | |
| 10 | + bezier = winIn, 0.1, 1.1, 0.1, 1.1 | |
| 11 | + bezier = winOut, 0.3, -0.3, 0, 1 | |
| 12 | + bezier = liner, 1, 1, 1, 1 | |
| 13 | + # bezier = linear, 0, 0, 1, 1 | |
| 14 | + bezier = md3_standard, 0.2, 0, 0, 1 | |
| 15 | + bezier = md3_decel, 0.05, 0.7, 0.1, 1 | |
| 16 | + bezier = md3_accel, 0.3, 0, 0.8, 0.15 | |
| 17 | + bezier = overshot, 0.05, 0.9, 0.1, 1.1 | |
| 18 | + bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 | |
| 19 | + bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 | |
| 20 | + bezier = menu_decel, 0.1, 1, 0, 1 | |
| 21 | + bezier = menu_accel, 0.38, 0.04, 1, 0.07 | |
| 22 | + bezier = easeInOutCirc, 0.85, 0, 0.15, 1 | |
| 23 | + bezier = easeOutCirc, 0, 0.55, 0.45, 1 | |
| 24 | + bezier = easeOutExpo, 0.16, 1, 0.3, 1 | |
| 25 | + bezier = softAcDecel, 0.26, 0.26, 0.15, 1 | |
| 26 | + bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration | |
| 27 | + | |
| 28 | + # Animation configs | |
| 29 | + # animation = windows, 1, 3, md3_decel, popin 60% | |
| 30 | + # animation = windowsIn, 1, 3, md3_decel, popin 60% | |
| 31 | + # animation = windowsOut, 1, 3, md3_accel, popin 60% | |
| 32 | + # animation = windows, 1, 6, wind, slide | |
| 33 | + animation = border, 1, 1, liner | |
| 34 | + animation = borderangle, 1, 30, liner, once | |
| 35 | + animation = windows, 1, 6, wind, slide | |
| 36 | + animation = windowsIn, 1, 6, winIn, slide | |
| 37 | + animation = windowsOut, 1, 5, winOut, slide | |
| 38 | + animation = windowsMove, 1, 5, wind, slide | |
| 39 | + | |
| 40 | + # animation = border, 1, 10, default | |
| 41 | + animation = fade, 1, 3, md3_decel | |
| 42 | + # animation = layers, 1, 2, md3_decel, slide | |
| 43 | + animation = layersIn, 1, 3, menu_decel, slide | |
| 44 | + animation = layersOut, 1, 1.6, menu_accel | |
| 45 | + animation = fadeLayersIn, 1, 2, menu_decel | |
| 46 | + animation = fadeLayersOut, 1, 4.5, menu_accel | |
| 47 | + animation = workspaces, 1, 7, menu_decel, slide | |
| 48 | + animation = workspaces, 1, 5, wind | |
| 49 | + # animation = workspaces, 1, 2.5, softAcDecel, slide | |
| 50 | + # animation = workspaces, 1, 7, menu_decel, slidefade 15% | |
| 51 | + animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% | |
| 52 | + animation = specialWorkspace, 1, 3, md3_decel, slidevert | |
| 53 | +} | |
| 54 | + | |
| 55 | + |
+30-0animations/Mahaveer - me-2.conf
| @@ -0,0 +1,30 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# | |
| 3 | +# name "Me-2" | |
| 4 | +# credit https://github.com/mahaveergurjar | |
| 5 | + | |
| 6 | + | |
| 7 | +animations { | |
| 8 | + enabled = yes | |
| 9 | + | |
| 10 | + bezier = wind, 0.05, 0.9, 0.1, 1.05 | |
| 11 | + bezier = winIn, 0.1, 1.1, 0.1, 1.1 | |
| 12 | + bezier = winOut, 0.3, -0.3, 0, 1 | |
| 13 | + bezier = liner, 1, 1, 1, 1 | |
| 14 | + bezier = overshot, 0.05, 0.9, 0.1, 1.05 | |
| 15 | + bezier = smoothOut, 0.5, 0, 0.99, 0.99 | |
| 16 | + bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 | |
| 17 | + | |
| 18 | + animation = windows, 1, 6, wind, slide | |
| 19 | + animation = windowsIn, 1, 5, winIn, slide | |
| 20 | + animation = windowsOut, 1, 3, smoothOut, slide | |
| 21 | + animation = windowsMove, 1, 5, wind, slide | |
| 22 | + animation = border, 1, 1, liner | |
| 23 | + animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors | |
| 24 | + animation = fade, 1, 3, smoothOut | |
| 25 | + animation = workspaces, 1, 5, overshot | |
| 26 | + | |
| 27 | + # animations for -git or version >0.42.0 | |
| 28 | + animation = workspacesIn, 1, 5, winIn, slide | |
| 29 | + animation = workspacesOut, 1, 5, winOut, slide | |
| 30 | +} |
+8-0application-style.conf
| @@ -0,0 +1,8 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# as per Hyprland wiki: hyprland-qt-support provides a QML style for hypr* qt6 apps | |
| 3 | + | |
| 4 | +roundess = 2 | |
| 5 | + | |
| 6 | +border_width = 0 | |
| 7 | + | |
| 8 | +reduce_motion = false |
+149-0configs/Keybinds.conf
| @@ -0,0 +1,149 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# Default Keybinds | |
| 3 | +# visit https://wiki.hyprland.org/Configuring/Binds/ for more info | |
| 4 | + | |
| 5 | +# /* ---- ✴️ Variables ✴️ ---- */ # | |
| 6 | +$mainMod = SUPER | |
| 7 | +$scriptsDir = $HOME/.config/hypr/scripts | |
| 8 | +$UserConfigs = $HOME/.config/hypr/UserConfigs | |
| 9 | +$UserScripts = $HOME/.config/hypr/UserScripts | |
| 10 | + | |
| 11 | +bind = CTRL ALT, Delete, exec, hyprctl dispatch exit 0 # exit Hyprland | |
| 12 | +bind = $mainMod, Q, killactive, # close active (not kill) | |
| 13 | +bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh # Kill active process | |
| 14 | +bind = CTRL ALT, L, exec, $scriptsDir/LockScreen.sh # screen lock | |
| 15 | +bind = CTRL ALT, P, exec, $scriptsDir/Wlogout.sh # power menu | |
| 16 | +bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC notification panel | |
| 17 | +bind = $mainMod SHIFT, E, exec, $scriptsDir/Kool_Quick_Settings.sh # Settings Menu KooL Hyprland Settings | |
| 18 | + | |
| 19 | +# Master Layout | |
| 20 | +bind = $mainMod CTRL, D, layoutmsg, removemaster | |
| 21 | +bind = $mainMod, I, layoutmsg, addmaster | |
| 22 | +bind = $mainMod, J, layoutmsg, cyclenext | |
| 23 | +bind = $mainMod, K, layoutmsg, cycleprev | |
| 24 | +bind = $mainMod CTRL, Return, layoutmsg, swapwithmaster | |
| 25 | + | |
| 26 | +# Dwindle Layout | |
| 27 | +bind = $mainMod SHIFT, I, togglesplit # only works on dwindle layout | |
| 28 | +bind = $mainMod, P, pseudo, # dwindle | |
| 29 | + | |
| 30 | +# Works on either layout (Master or Dwindle) | |
| 31 | +bind = $mainMod, M, exec, hyprctl dispatch splitratio 0.3 | |
| 32 | + | |
| 33 | +# group | |
| 34 | +bind = $mainMod, G, togglegroup # toggle group | |
| 35 | +bind = $mainMod CTRL, tab, changegroupactive # change focus to another window | |
| 36 | + | |
| 37 | + # Cycle windows if floating bring to top | |
| 38 | +bind = ALT, tab, cyclenext | |
| 39 | +bind = ALT, tab, bringactivetotop | |
| 40 | + | |
| 41 | +# Special Keys / Hot Keys | |
| 42 | +bindel = , xf86audioraisevolume, exec, $scriptsDir/Volume.sh --inc # volume up | |
| 43 | +bindel = , xf86audiolowervolume, exec, $scriptsDir/Volume.sh --dec # volume down | |
| 44 | +bindl = , xf86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic # mic mute | |
| 45 | +bindl = , xf86audiomute, exec, $scriptsDir/Volume.sh --toggle # mute | |
| 46 | +bindl = , xf86Sleep, exec, systemctl suspend # sleep button | |
| 47 | +bindl = , xf86Rfkill, exec, $scriptsDir/AirplaneMode.sh # Airplane mode | |
| 48 | + | |
| 49 | +# media controls using keyboards | |
| 50 | +bindl = , xf86AudioPlayPause, exec, $scriptsDir/MediaCtrl.sh --pause | |
| 51 | +bindl = , xf86AudioPause, exec, $scriptsDir/MediaCtrl.sh --pause | |
| 52 | +bindl = , xf86AudioPlay, exec, $scriptsDir/MediaCtrl.sh --pause | |
| 53 | +bindl = , xf86AudioNext, exec, $scriptsDir/MediaCtrl.sh --nxt | |
| 54 | +bindl = , xf86AudioPrev, exec, $scriptsDir/MediaCtrl.sh --prv | |
| 55 | +bindl = , xf86audiostop, exec, $scriptsDir/MediaCtrl.sh --stop | |
| 56 | + | |
| 57 | +# Screenshot keybindings NOTE: You may need to press Fn key as well | |
| 58 | +bind = $mainMod, F10, exec, $scriptsDir/ScreenShot.sh --now # screenshot | |
| 59 | +bind = $mainMod SHIFT, F10, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area) | |
| 60 | +bind = $mainMod CTRL, F10, exec, $scriptsDir/ScreenShot.sh --in5 # screenshot (5 secs delay) | |
| 61 | +bind = $mainMod CTRL SHIFT, F10, exec, $scriptsDir/ScreenShot.sh --in10 # screenshot (10 secs delay) | |
| 62 | +bind = ALT, F10, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only) | |
| 63 | + | |
| 64 | +# screenshot with swappy (another screenshot tool) | |
| 65 | +bind = $mainMod SHIFT, S, exec, $scriptsDir/ScreenShot.sh --swappy #screenshot (swappy) | |
| 66 | + | |
| 67 | +# Resize windows | |
| 68 | +binde = $mainMod SHIFT, left, resizeactive,-50 0 | |
| 69 | +binde = $mainMod SHIFT, right, resizeactive,50 0 | |
| 70 | +binde = $mainMod SHIFT, up, resizeactive,0 -50 | |
| 71 | +binde = $mainMod SHIFT, down, resizeactive,0 50 | |
| 72 | + | |
| 73 | +# Move windows | |
| 74 | +bind = $mainMod CTRL, left, movewindow, l | |
| 75 | +bind = $mainMod CTRL, right, movewindow, r | |
| 76 | +bind = $mainMod CTRL, up, movewindow, u | |
| 77 | +bind = $mainMod CTRL, down, movewindow, d | |
| 78 | + | |
| 79 | +# Swap windows | |
| 80 | +bind = $mainMod ALT, left, swapwindow, l | |
| 81 | +bind = $mainMod ALT, right, swapwindow, r | |
| 82 | +bind = $mainMod ALT, up, swapwindow, u | |
| 83 | +bind = $mainMod ALT, down, swapwindow, d | |
| 84 | + | |
| 85 | +# Move focus with mainMod + arrow keys | |
| 86 | +bind = $mainMod, left, movefocus, l | |
| 87 | +bind = $mainMod, right, movefocus, r | |
| 88 | +bind = $mainMod, up, movefocus, u | |
| 89 | +bind = $mainMod, down, movefocus, d | |
| 90 | + | |
| 91 | +# Workspaces related | |
| 92 | +bind = $mainMod, tab, workspace, m+1 | |
| 93 | +bind = $mainMod SHIFT, tab, workspace, m-1 | |
| 94 | + | |
| 95 | +# Special workspace | |
| 96 | +bind = $mainMod SHIFT, U, movetoworkspace, special | |
| 97 | +bind = $mainMod, U, togglespecialworkspace, | |
| 98 | + | |
| 99 | +# The following mappings use the key codes to better support various keyboard layouts | |
| 100 | +# 1 is code:10, 2 is code 11, etc | |
| 101 | +# Switch workspaces with mainMod + [0-9] | |
| 102 | +bind = $mainMod, code:10, workspace, 1 # NOTE: code:10 = key 1 | |
| 103 | +bind = $mainMod, code:11, workspace, 2 # NOTE: code:11 = key 2 | |
| 104 | +bind = $mainMod, code:12, workspace, 3 # NOTE: code:12 = key 3 | |
| 105 | +bind = $mainMod, code:13, workspace, 4 # NOTE: code:13 = key 4 | |
| 106 | +bind = $mainMod, code:14, workspace, 5 # NOTE: code:14 = key 5 | |
| 107 | +bind = $mainMod, code:15, workspace, 6 # NOTE: code:15 = key 6 | |
| 108 | +bind = $mainMod, code:16, workspace, 7 # NOTE: code:16 = key 7 | |
| 109 | +bind = $mainMod, code:17, workspace, 8 # NOTE: code:17 = key 8 | |
| 110 | +bind = $mainMod, code:18, workspace, 9 # NOTE: code:18 = key 9 | |
| 111 | +bind = $mainMod, code:19, workspace, 10 # NOTE: code:19 = key 0 | |
| 112 | + | |
| 113 | +# Move active window and follow to workspace mainMod + SHIFT [0-9] | |
| 114 | +bind = $mainMod SHIFT, code:10, movetoworkspace, 1 # NOTE: code:10 = key 1 | |
| 115 | +bind = $mainMod SHIFT, code:11, movetoworkspace, 2 # NOTE: code:11 = key 2 | |
| 116 | +bind = $mainMod SHIFT, code:12, movetoworkspace, 3 # NOTE: code:12 = key 3 | |
| 117 | +bind = $mainMod SHIFT, code:13, movetoworkspace, 4 # NOTE: code:13 = key 4 | |
| 118 | +bind = $mainMod SHIFT, code:14, movetoworkspace, 5 # NOTE: code:14 = key 5 | |
| 119 | +bind = $mainMod SHIFT, code:15, movetoworkspace, 6 # NOTE: code:15 = key 6 | |
| 120 | +bind = $mainMod SHIFT, code:16, movetoworkspace, 7 # NOTE: code:16 = key 7 | |
| 121 | +bind = $mainMod SHIFT, code:17, movetoworkspace, 8 # NOTE: code:17 = key 8 | |
| 122 | +bind = $mainMod SHIFT, code:18, movetoworkspace, 9 # NOTE: code:18 = key 9 | |
| 123 | +bind = $mainMod SHIFT, code:19, movetoworkspace, 10 # NOTE: code:19 = key 0 | |
| 124 | +bind = $mainMod SHIFT, bracketleft, movetoworkspace, -1 # brackets [ | |
| 125 | +bind = $mainMod SHIFT, bracketright, movetoworkspace, +1 # brackets ] | |
| 126 | + | |
| 127 | +# Move active window to a workspace silently mainMod + CTRL [0-9] | |
| 128 | +bind = $mainMod CTRL, code:10, movetoworkspacesilent, 1 # NOTE: code:10 = key 1 | |
| 129 | +bind = $mainMod CTRL, code:11, movetoworkspacesilent, 2 # NOTE: code:11 = key 2 | |
| 130 | +bind = $mainMod CTRL, code:12, movetoworkspacesilent, 3 # NOTE: code:12 = key 3 | |
| 131 | +bind = $mainMod CTRL, code:13, movetoworkspacesilent, 4 # NOTE: code:13 = key 4 | |
| 132 | +bind = $mainMod CTRL, code:14, movetoworkspacesilent, 5 # NOTE: code:14 = key 5 | |
| 133 | +bind = $mainMod CTRL, code:15, movetoworkspacesilent, 6 # NOTE: code:15 = key 6 | |
| 134 | +bind = $mainMod CTRL, code:16, movetoworkspacesilent, 7 # NOTE: code:16 = key 7 | |
| 135 | +bind = $mainMod CTRL, code:17, movetoworkspacesilent, 8 # NOTE: code:17 = key 8 | |
| 136 | +bind = $mainMod CTRL, code:18, movetoworkspacesilent, 9 # NOTE: code:18 = key 9 | |
| 137 | +bind = $mainMod CTRL, code:19, movetoworkspacesilent, 10 # NOTE: code:19 = key 0 | |
| 138 | +bind = $mainMod CTRL, bracketleft, movetoworkspacesilent, -1 # brackets [ | |
| 139 | +bind = $mainMod CTRL, bracketright, movetoworkspacesilent, +1 # brackets ] | |
| 140 | + | |
| 141 | +# Scroll through existing workspaces with mainMod + scroll | |
| 142 | +bind = $mainMod, mouse_down, workspace, e+1 | |
| 143 | +bind = $mainMod, mouse_up, workspace, e-1 | |
| 144 | +bind = $mainMod, period, workspace, e+1 | |
| 145 | +bind = $mainMod, comma, workspace, e-1 | |
| 146 | + | |
| 147 | +# Move/resize windows with mainMod + LMB/RMB and dragging | |
| 148 | +bindm = $mainMod, mouse:272, movewindow # NOTE: mouse:272 = left click | |
| 149 | +bindm = $mainMod, mouse:273, resizewindow # NOTE: mouse:272 = right click |
+50-0hypridle.conf
| @@ -0,0 +1,50 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# Hypridle | |
| 3 | +# Original config submitted by https://github.com/SherLock707 | |
| 4 | + | |
| 5 | +$iDIR="$HOME/.config/swaync/images/ja.png" | |
| 6 | + | |
| 7 | +general { | |
| 8 | + lock_cmd = pidof hyprlock || hyprlock # runs hyprlock if it is not already running (this is always run when "loginctl lock-session" is called) | |
| 9 | + # unlock_cmd = killall hyprlock # kills hyprlock when unlocking (this is always run when "loginctl unlock-session" is called) | |
| 10 | + before_sleep_cmd = loginctl lock-session # ensures that the session is locked before going to sleep | |
| 11 | + after_sleep_cmd = hyprctl dispatch dpms on # turn of screen after sleep (not strictly necessary, but just in case) | |
| 12 | + ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam) | |
| 13 | +} | |
| 14 | + | |
| 15 | +# turn off screen faster if session is already locked | |
| 16 | +# (disabled by default) | |
| 17 | +# listener { | |
| 18 | +# timeout = 30 # 30 seconds | |
| 19 | +# on-timeout = pidof hyprlock && hyprctl dispatch dpms off # turns off the screen if hyprlock is active | |
| 20 | +# on-resume = pidof hyprlock && hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired. | |
| 21 | +# } | |
| 22 | + | |
| 23 | +# Warn | |
| 24 | +listener { | |
| 25 | + timeout = 540 # 9 min | |
| 26 | + on-timeout = notify-send -i $iDIR " You are idle!" # command to run when timeout has passed | |
| 27 | + on-resume = notify-send -i $iDIR " Oh! you're Back" " Hello !!!" # command to run when activity is detected after timeout has fired. | |
| 28 | +} | |
| 29 | + | |
| 30 | +# Screenlock | |
| 31 | +listener { | |
| 32 | + timeout = 600 # 10 min | |
| 33 | + on-timeout = loginctl lock-session # command to run when timeout has passed | |
| 34 | + #on-resume = notify-send -i $iDIR " System Unlocked!" # command to run when activity is detected after timeout has fired. | |
| 35 | +} | |
| 36 | + | |
| 37 | +# Turn off screen | |
| 38 | +# (disabled by default) | |
| 39 | +# listener { | |
| 40 | +# timeout = 630 # 10.5 min | |
| 41 | +# on-timeout = hyprctl dispatch dpms off # command to run when timeout has passed | |
| 42 | +# on-resume = hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired. | |
| 43 | +# } | |
| 44 | + | |
| 45 | +# Suspend # disabled by default | |
| 46 | +# listener { | |
| 47 | + # timeout = 1200 # 20 min | |
| 48 | + # on-timeout = systemctl suspend # command to run when timeout has passed | |
| 49 | + # on-resume = notify-send -i $iDIR " Oh! you're back" "Hello !!!" # command to run when activity is detected after timeout has fired. | |
| 50 | +# } |
+43-0hyprland.conf
| @@ -0,0 +1,43 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# always refer to Hyprland wiki | |
| 3 | +# https://wiki.hyprland.org/ | |
| 4 | + | |
| 5 | +# Initial boot script enable to apply initial wallpapers, theming, new settings etc. | |
| 6 | +# suggest not to change this or delete this including deleting referrence file in ~/.config/hypr/.initial_startup_done | |
| 7 | +# as long as the referrence file is present, this initial-boot.sh will not execute | |
| 8 | +exec-once = $HOME/.config/hypr/initial-boot.sh | |
| 9 | + | |
| 10 | +# Sourcing external config files | |
| 11 | +$configs = $HOME/.config/hypr/configs # Default Configs directory path | |
| 12 | + | |
| 13 | +source=$configs/Keybinds.conf # Pre-configured keybinds | |
| 14 | + | |
| 15 | +# ## This is where you want to start tinkering | |
| 16 | +$UserConfigs = $HOME/.config/hypr/UserConfigs # User Configs directory path | |
| 17 | + | |
| 18 | +source= $UserConfigs/Startup_Apps.conf # put your start-up packages on this file | |
| 19 | + | |
| 20 | +source= $UserConfigs/ENVariables.conf # Environment variables to load | |
| 21 | + | |
| 22 | +#source= $UserConfigs/Monitors.conf # Its all about your monitor config (old dots) will remove on push to main | |
| 23 | +#source= $UserConfigs/WorkspaceRules.conf # Hyprland workspaces (old dots) will remove on push to main | |
| 24 | + | |
| 25 | +source= $UserConfigs/Laptops.conf # For laptop related | |
| 26 | + | |
| 27 | +source= $UserConfigs/LaptopDisplay.conf # Laptop display related. You need to read the comment on this file | |
| 28 | + | |
| 29 | +source= $UserConfigs/WindowRules.conf # all about Hyprland Window Rules and Layer Rules | |
| 30 | + | |
| 31 | +source= $UserConfigs/UserDecorations.conf # Decorations config file | |
| 32 | + | |
| 33 | +source= $UserConfigs/UserAnimations.conf # Animation config file | |
| 34 | + | |
| 35 | +source= $UserConfigs/UserKeybinds.conf # Put your own keybinds here | |
| 36 | + | |
| 37 | +source= $UserConfigs/UserSettings.conf # Main Hyprland Settings. | |
| 38 | + | |
| 39 | +source= $UserConfigs/01-UserDefaults.conf # settings for User defaults apps | |
| 40 | + | |
| 41 | +# nwg-displays | |
| 42 | +source= $HOME/.config/hypr/monitors.conf | |
| 43 | +source= $HOME/.config/hypr/workspaces.conf |
+160-0hyprlock-1080p.conf
| @@ -0,0 +1,160 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# Hyprlock config for < 1080p monitor resolutions | |
| 3 | +# Original config submitted by https://github.com/SherLock707 | |
| 4 | + | |
| 5 | +# Sourcing colors generated by wallust | |
| 6 | +source = $HOME/.config/hypr/wallust/wallust-hyprland.conf | |
| 7 | +$Scripts = $HOME/.config/hypr/scripts | |
| 8 | + | |
| 9 | +general { | |
| 10 | + grace = 1 | |
| 11 | + fractional_scaling = 2 | |
| 12 | + immediate_render = true | |
| 13 | +} | |
| 14 | + | |
| 15 | +background { | |
| 16 | + monitor = | |
| 17 | + # NOTE: use only 1 path | |
| 18 | + #path = screenshot # screenshot of your desktop | |
| 19 | + #path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_modified # by wallpaper effects | |
| 20 | + path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current # current wallpaper | |
| 21 | + | |
| 22 | + color = rgb(0,0,0) # color will be rendered initially until path is available | |
| 23 | + | |
| 24 | + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations | |
| 25 | + blur_size = 3 | |
| 26 | + blur_passes = 2 # 0 disables blurring | |
| 27 | + noise = 0.0117 | |
| 28 | + contrast = 1.3000 # Vibrant!!! | |
| 29 | + brightness = 0.8000 | |
| 30 | + vibrancy = 0.2100 | |
| 31 | + vibrancy_darkness = 0.0 | |
| 32 | +} | |
| 33 | + | |
| 34 | + | |
| 35 | +# Date | |
| 36 | +# label { | |
| 37 | +# monitor = | |
| 38 | +# text = cmd[update:18000000] echo "<b> "$(date +'%A, %-d %B')" </b>" | |
| 39 | +# color = $color13 | |
| 40 | +# font_size = 16 | |
| 41 | +# font_family = Victor Mono Bold Italic | |
| 42 | +# position = 0, -20 | |
| 43 | +# halign = center | |
| 44 | +# valign = center | |
| 45 | +# } | |
| 46 | + | |
| 47 | +# Hour-Time | |
| 48 | +label { | |
| 49 | + monitor = | |
| 50 | + text = cmd[update:1000] echo "$(date +"%H")" | |
| 51 | +# text = cmd[update:1000] echo "$(date +"%I")" #AM/PM | |
| 52 | + #color = rgba(255, 185, 0, .8) | |
| 53 | + color = $color13 | |
| 54 | + font_size = 200 | |
| 55 | + font_family = JetBrainsMono Nerd Font ExtraBold | |
| 56 | + position = 0, -60 | |
| 57 | + halign = center | |
| 58 | + valign = top | |
| 59 | +} | |
| 60 | + | |
| 61 | +# Minute-Time | |
| 62 | +label { | |
| 63 | + monitor = | |
| 64 | + text = cmd[update:1000] echo "$(date +"%M")" | |
| 65 | + #color = rgba(15, 10, 222, .8) | |
| 66 | + color = $color12 | |
| 67 | + font_size = 200 | |
| 68 | + font_family = JetBrainsMono Nerd Font ExtraBold | |
| 69 | + position = 0, -320 | |
| 70 | + halign = center | |
| 71 | + valign = top | |
| 72 | +} | |
| 73 | + | |
| 74 | +# Seconds-Time | |
| 75 | +label { | |
| 76 | + monitor = | |
| 77 | + text = cmd[update:1000] echo "$(date +"%S")" | |
| 78 | +# text = cmd[update:1000] echo "$(date +"%S %p")" #AM/PM | |
| 79 | + color = $color11 | |
| 80 | + font_size = 35 | |
| 81 | + font_family = JetBrainsMono Nerd Font ExtraBold | |
| 82 | + position = 0, -350 | |
| 83 | + halign = center | |
| 84 | + valign = top | |
| 85 | +} | |
| 86 | + | |
| 87 | +# Put a picture of choice here. Default is the current wallpaper | |
| 88 | +#image { | |
| 89 | +# monitor = | |
| 90 | +# path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current | |
| 91 | +# size = 160 | |
| 92 | +# rounding = -1 | |
| 93 | +# border_size = 0 | |
| 94 | +# border_color = $color11 | |
| 95 | +# rotate = 0 | |
| 96 | +# reload_time = -1 | |
| 97 | +# position = 0, 280 | |
| 98 | +# halign = center | |
| 99 | +# valign = bottom | |
| 100 | +} | |
| 101 | + | |
| 102 | +# USER | |
| 103 | +label { | |
| 104 | + monitor = | |
| 105 | + text = $USER | |
| 106 | + color = $color13 | |
| 107 | + font_size = 24 | |
| 108 | + font_family = Victor Mono Bold Oblique | |
| 109 | + position = 0, 150 | |
| 110 | + halign = center | |
| 111 | + valign = bottom | |
| 112 | +} | |
| 113 | + | |
| 114 | + | |
| 115 | +# INPUT FIELD | |
| 116 | +input-field { | |
| 117 | + monitor = | |
| 118 | + size = 300, 60 | |
| 119 | + outline_thickness = 2 | |
| 120 | + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 | |
| 121 | + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 | |
| 122 | + dots_center = true | |
| 123 | + outer_color = $color11 | |
| 124 | + inner_color = rgba(255, 255, 255, 0.1) | |
| 125 | + capslock_color = rgb(255,255,255) | |
| 126 | + font_color = $color13 | |
| 127 | + fade_on_empty = false | |
| 128 | + font_family = Victor Mono Bold Oblique | |
| 129 | + placeholder_text = <i><span foreground="##ffffff99">🔒 Type Password</span></i> | |
| 130 | + hide_input = false | |
| 131 | + position = 0, 50 | |
| 132 | + halign = center | |
| 133 | + valign = bottom | |
| 134 | +} | |
| 135 | + | |
| 136 | +# uptime | |
| 137 | +label { | |
| 138 | + monitor = | |
| 139 | + text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>" | |
| 140 | + color = $color13 | |
| 141 | + font_size = 16 | |
| 142 | + font_family = Victor Mono Bold Oblique | |
| 143 | + position = 0, 0 | |
| 144 | + halign = right | |
| 145 | + valign = bottom | |
| 146 | +} | |
| 147 | + | |
| 148 | +# weather edit the scripts for locations | |
| 149 | +# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py | |
| 150 | +# see https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock | |
| 151 | +label { | |
| 152 | + monitor = | |
| 153 | + text = cmd[update:3600000] [ -f "$HOME/.cache/.weather_cache" ] && cat "$HOME/.cache/.weather_cache" | |
| 154 | + color = $color13 | |
| 155 | + font_size = 16 | |
| 156 | + font_family = Victor Mono Bold Oblique | |
| 157 | + position = 50, 0 | |
| 158 | + halign = left | |
| 159 | + valign = bottom | |
| 160 | +} |
+157-0hyprlock.conf
| @@ -0,0 +1,157 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | +# Hyprlock config for => 2k monitor resolutions | |
| 3 | +# Original config submitted by https://github.com/SherLock707 | |
| 4 | + | |
| 5 | +# Sourcing colors generated by wallust | |
| 6 | +source = $HOME/.config/hypr/wallust/wallust-hyprland.conf | |
| 7 | +$Scripts = $HOME/.config/hypr/scripts | |
| 8 | + | |
| 9 | +general { | |
| 10 | + grace = 1 | |
| 11 | + fractional_scaling = 2 | |
| 12 | + immediate_render = true | |
| 13 | +} | |
| 14 | + | |
| 15 | +background { | |
| 16 | + monitor = | |
| 17 | + # NOTE: use only 1 path | |
| 18 | + path = screenshot # screenshot of your desktop | |
| 19 | + # path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_modified # by wallpaper effects | |
| 20 | + # path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current # current wallpaper | |
| 21 | + | |
| 22 | + color = rgb(0,0,0) # color will be rendered initially until path is available | |
| 23 | + | |
| 24 | + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations | |
| 25 | + blur_size = 3 | |
| 26 | + blur_passes = 3 # 0 disables blurring | |
| 27 | + noise = 0.0117 | |
| 28 | + contrast = 1.3000 # Vibrant!!! | |
| 29 | + brightness = 0.8000 | |
| 30 | + vibrancy = 0.2100 | |
| 31 | + vibrancy_darkness = 0.0 | |
| 32 | +} | |
| 33 | + | |
| 34 | + | |
| 35 | +# Date | |
| 36 | +label { | |
| 37 | + monitor = | |
| 38 | + text = cmd[update:18000000] echo "<b> "$(date +'%A, %-d %B')" </b>" | |
| 39 | + color = $color13 | |
| 40 | + font_size = 42 | |
| 41 | + font_family = Victor Mono Bold | |
| 42 | + position = 0, 400 | |
| 43 | + halign = center | |
| 44 | + valign = center | |
| 45 | +} | |
| 46 | + | |
| 47 | +# Hour-Time | |
| 48 | +label { | |
| 49 | + monitor = | |
| 50 | + text = cmd[update:1000] echo "$(date +"%I")" #AM/PM | |
| 51 | + color = $color13 | |
| 52 | + font_size = 240 | |
| 53 | + font_family = JetBrainsMono Nerd Font ExtraBold | |
| 54 | + position = 0, -100 | |
| 55 | + halign = center | |
| 56 | + valign = top | |
| 57 | +} | |
| 58 | + | |
| 59 | +# Minute-Time | |
| 60 | +label { | |
| 61 | + monitor = | |
| 62 | + text = cmd[update:1000] echo "$(date +"%M")" | |
| 63 | + color = $color13 | |
| 64 | + font_size = 240 | |
| 65 | + font_family = JetBrainsMono Nerd Font ExtraBold | |
| 66 | + position = 0, -450 | |
| 67 | + halign = center | |
| 68 | + valign = top | |
| 69 | +} | |
| 70 | + | |
| 71 | +# Seconds-Time | |
| 72 | +label { | |
| 73 | + monitor = | |
| 74 | +# text = cmd[update:1000] echo "$(date +"%S")" | |
| 75 | + text = cmd[update:1000] echo "$(date +"%S %p")" #AM/PM | |
| 76 | + color = $color11 | |
| 77 | + font_size = 50 | |
| 78 | + font_family = JetBrainsMono Nerd Font ExtraBold | |
| 79 | + position = 0, -450 | |
| 80 | + halign = center | |
| 81 | + valign = top | |
| 82 | +} | |
| 83 | + | |
| 84 | +# Put a picture of choice here. Default is the current wallpaper | |
| 85 | +#image { | |
| 86 | +# monitor = | |
| 87 | +# #path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current | |
| 88 | +# size = 160 | |
| 89 | +# rounding = -1 | |
| 90 | +# border_size = 0 | |
| 91 | +# border_color = $color11 | |
| 92 | +# rotate = 0 | |
| 93 | +# reload_time = -1 | |
| 94 | +# position = 0, 400 | |
| 95 | +# halign = center | |
| 96 | +# valign = bottom | |
| 97 | +#} | |
| 98 | + | |
| 99 | +# USER | |
| 100 | +label { | |
| 101 | + monitor = | |
| 102 | + text = $USER | |
| 103 | + color = $color13 | |
| 104 | + font_size = 24 | |
| 105 | + font_family = Victor Mono Bold Oblique | |
| 106 | + position = 0, 200 | |
| 107 | + halign = center | |
| 108 | + valign = bottom | |
| 109 | +} | |
| 110 | + | |
| 111 | + | |
| 112 | +# INPUT FIELD | |
| 113 | +input-field { | |
| 114 | + monitor = | |
| 115 | + size = 300, 60 | |
| 116 | + outline_thickness = 2 | |
| 117 | + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 | |
| 118 | + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 | |
| 119 | + dots_center = true | |
| 120 | + outer_color = $color11 | |
| 121 | + inner_color = rgba(255, 255, 255, 0.1) | |
| 122 | + font_color = $color13 | |
| 123 | + capslock_color = rgb(255,255,255) | |
| 124 | + fade_on_empty = false | |
| 125 | + font_family = Victor Mono Bold Oblique | |
| 126 | + placeholder_text = <i><span foreground="##ffffff99">🔒 Type Password</span></i> | |
| 127 | + hide_input = false | |
| 128 | + position = 0, 100 | |
| 129 | + halign = center | |
| 130 | + valign = bottom | |
| 131 | +} | |
| 132 | + | |
| 133 | +# uptime | |
| 134 | +label { | |
| 135 | + monitor = | |
| 136 | + text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>" | |
| 137 | + color = $color13 | |
| 138 | + font_size = 18 | |
| 139 | + font_family = Victor Mono Bold Oblique | |
| 140 | + position = 0, 15 | |
| 141 | + halign = right | |
| 142 | + valign = bottom | |
| 143 | +} | |
| 144 | + | |
| 145 | +# weather edit the scripts for locations | |
| 146 | +# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py | |
| 147 | +# see https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock | |
| 148 | +label { | |
| 149 | + monitor = | |
| 150 | + text = cmd[update:3600000] [ -f "$HOME/.cache/.weather_cache" ] && cat "$HOME/.cache/.weather_cache" | |
| 151 | + color = $color13 | |
| 152 | + font_size = 18 | |
| 153 | + font_family = Victor Mono Bold Oblique | |
| 154 | + position = 10, 15 | |
| 155 | + halign = left | |
| 156 | + valign = bottom | |
| 157 | +} |
+66-0initial-boot.sh
| @@ -0,0 +1,66 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 3 | +# A bash script designed to run only once dotfiles installed | |
| 4 | + | |
| 5 | +# THIS SCRIPT CAN BE DELETED ONCE SUCCESSFULLY BOOTED!! And also, edit ~/.config/hypr/configs/Settings.conf | |
| 6 | +# NOT necessary to do since this script is only designed to run only once as long as the marker exists | |
| 7 | +# marker file is located at ~/.config/hypr/.initial_startup_done | |
| 8 | +# However, I do highly suggest not to touch it since again, as long as the marker exist, script wont run | |
| 9 | + | |
| 10 | +# Variables | |
| 11 | +scriptsDir=$HOME/.config/hypr/scripts | |
| 12 | +wallpaper=$HOME/.config/hypr/wallpaper_effects/.wallpaper_current | |
| 13 | +waybar_style="$HOME/.config/waybar/style/[Extra] Modern-Combined - Transparent.css" | |
| 14 | +kvantum_theme="catppuccin-mocha-blue" | |
| 15 | +color_scheme="prefer-dark" | |
| 16 | +gtk_theme="Flat-Remix-GTK-Blue-Dark" | |
| 17 | +icon_theme="Flat-Remix-Blue-Dark" | |
| 18 | +cursor_theme="Bibata-Modern-Ice" | |
| 19 | + | |
| 20 | +swww="swww img" | |
| 21 | +effect="--transition-bezier .43,1.19,1,.4 --transition-fps 30 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2" | |
| 22 | + | |
| 23 | +# Check if a marker file exists. | |
| 24 | +if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then | |
| 25 | + sleep 1 | |
| 26 | + # Initialize wallust and wallpaper | |
| 27 | + if [ -f "$wallpaper" ]; then | |
| 28 | + wallust run -s $wallpaper > /dev/null | |
| 29 | + swww query || swww-daemon && $swww $wallpaper $effect | |
| 30 | + "$scriptsDir/WallustSwww.sh" > /dev/null 2>&1 & | |
| 31 | + fi | |
| 32 | + | |
| 33 | + # initiate GTK dark mode and apply icon and cursor theme | |
| 34 | + gsettings set org.gnome.desktop.interface color-scheme $color_scheme > /dev/null 2>&1 & | |
| 35 | + gsettings set org.gnome.desktop.interface gtk-theme $gtk_theme > /dev/null 2>&1 & | |
| 36 | + gsettings set org.gnome.desktop.interface icon-theme $icon_theme > /dev/null 2>&1 & | |
| 37 | + gsettings set org.gnome.desktop.interface cursor-theme $cursor_theme > /dev/null 2>&1 & | |
| 38 | + gsettings set org.gnome.desktop.interface cursor-size 24 > /dev/null 2>&1 & | |
| 39 | + | |
| 40 | + # NIXOS initiate GTK dark mode and apply icon and cursor theme | |
| 41 | + if [ -n "$(grep -i nixos < /etc/os-release)" ]; then | |
| 42 | + gsettings set org.gnome.desktop.interface color-scheme "'$color_scheme'" > /dev/null 2>&1 & | |
| 43 | + dconf write /org/gnome/desktop/interface/gtk-theme "'$gtk_theme'" > /dev/null 2>&1 & | |
| 44 | + dconf write /org/gnome/desktop/interface/icon-theme "'$icon_theme'" > /dev/null 2>&1 & | |
| 45 | + dconf write /org/gnome/desktop/interface/cursor-theme "'$cursor_theme'" > /dev/null 2>&1 & | |
| 46 | + dconf write /org/gnome/desktop/interface/cursor-size "24" > /dev/null 2>&1 & | |
| 47 | + fi | |
| 48 | + | |
| 49 | + # initiate kvantum theme | |
| 50 | + kvantummanager --set "$kvantum_theme" > /dev/null 2>&1 & | |
| 51 | + | |
| 52 | + # initiate the kb_layout (for some reason) waybar cant launch it | |
| 53 | + "$scriptsDir/SwitchKeyboardLayout.sh" > /dev/null 2>&1 & | |
| 54 | + | |
| 55 | + # waybar style | |
| 56 | + #if [ -L "$HOME/.config/waybar/config" ]; then | |
| 57 | + ## ln -sf "$waybar_style" "$HOME/.config/waybar/style.css" | |
| 58 | + # "$scriptsDir/Refresh.sh" > /dev/null 2>&1 & | |
| 59 | + #fi | |
| 60 | + | |
| 61 | + | |
| 62 | + # Create a marker file to indicate that the script has been executed. | |
| 63 | + touch "$HOME/.config/hypr/.initial_startup_done" | |
| 64 | + | |
| 65 | + exit | |
| 66 | +fi |
+16-0scripts/AirplaneMode.sh
| @@ -0,0 +1,16 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Airplane Mode. Turning on or off all wifi using rfkill. | |
| 4 | + | |
| 5 | +notif="$HOME/.config/swaync/images/ja.png" | |
| 6 | + | |
| 7 | +# Check if any wireless device is blocked | |
| 8 | +wifi_blocked=$(rfkill list wifi | grep -o "Soft blocked: yes") | |
| 9 | + | |
| 10 | +if [ -n "$wifi_blocked" ]; then | |
| 11 | + rfkill unblock wifi | |
| 12 | + notify-send -u low -i "$notif" " Airplane" " mode: OFF" | |
| 13 | +else | |
| 14 | + rfkill block wifi | |
| 15 | + notify-send -u low -i "$notif" " Airplane" " mode: ON" | |
| 16 | +fi |
+31-0scripts/Animations.sh
| @@ -0,0 +1,31 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# For applying Animations from different users | |
| 4 | + | |
| 5 | +# Check if rofi is already running | |
| 6 | +if pidof rofi > /dev/null; then | |
| 7 | + pkill rofi | |
| 8 | +fi | |
| 9 | + | |
| 10 | +# Variables | |
| 11 | +iDIR="$HOME/.config/swaync/images" | |
| 12 | +SCRIPTSDIR="$HOME/.config/hypr/scripts" | |
| 13 | +animations_dir="$HOME/.config/hypr/animations" | |
| 14 | +UserConfigs="$HOME/.config/hypr/UserConfigs" | |
| 15 | +rofi_theme="$HOME/.config/rofi/config-Animations.rasi" | |
| 16 | +msg='❗NOTE:❗ This will copy animations into UserAnimations.conf' | |
| 17 | +# list of animation files, sorted alphabetically with numbers first | |
| 18 | +animations_list=$(find -L "$animations_dir" -maxdepth 1 -type f | sed 's/.*\///' | sed 's/\.conf$//' | sort -V) | |
| 19 | + | |
| 20 | +# Rofi Menu | |
| 21 | +chosen_file=$(echo "$animations_list" | rofi -i -dmenu -config $rofi_theme -mesg "$msg") | |
| 22 | + | |
| 23 | +# Check if a file was selected | |
| 24 | +if [[ -n "$chosen_file" ]]; then | |
| 25 | + full_path="$animations_dir/$chosen_file.conf" | |
| 26 | + cp "$full_path" "$UserConfigs/UserAnimations.conf" | |
| 27 | + notify-send -u low -i "$iDIR/ja.png" "$chosen_file" "Hyprland Animation Loaded" | |
| 28 | +fi | |
| 29 | + | |
| 30 | +sleep 1 | |
| 31 | +"$SCRIPTSDIR/RefreshNoWaybar.sh" |
+74-0scripts/Brightness.sh
| @@ -0,0 +1,74 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Script for Monitor backlights (if supported) using brightnessctl | |
| 4 | + | |
| 5 | +iDIR="$HOME/.config/swaync/icons" | |
| 6 | +notification_timeout=1000 | |
| 7 | +step=10 # INCREASE/DECREASE BY THIS VALUE | |
| 8 | + | |
| 9 | +# Get brightness | |
| 10 | +get_backlight() { | |
| 11 | + brightnessctl -m | cut -d, -f4 | sed 's/%//' | |
| 12 | +} | |
| 13 | + | |
| 14 | +# Get icons | |
| 15 | +get_icon() { | |
| 16 | + current=$(get_backlight) | |
| 17 | + if [ "$current" -le "20" ]; then | |
| 18 | + icon="$iDIR/brightness-20.png" | |
| 19 | + elif [ "$current" -le "40" ]; then | |
| 20 | + icon="$iDIR/brightness-40.png" | |
| 21 | + elif [ "$current" -le "60" ]; then | |
| 22 | + icon="$iDIR/brightness-60.png" | |
| 23 | + elif [ "$current" -le "80" ]; then | |
| 24 | + icon="$iDIR/brightness-80.png" | |
| 25 | + else | |
| 26 | + icon="$iDIR/brightness-100.png" | |
| 27 | + fi | |
| 28 | +} | |
| 29 | + | |
| 30 | +# Notify | |
| 31 | +notify_user() { | |
| 32 | + notify-send -e -h string:x-canonical-private-synchronous:brightness_notif -h int:value:$current -u low -i $icon "Screen" "Brightness:$current%" | |
| 33 | +} | |
| 34 | + | |
| 35 | +# Change brightness | |
| 36 | +change_backlight() { | |
| 37 | + local current_brightness | |
| 38 | + current_brightness=$(get_backlight) | |
| 39 | + | |
| 40 | + # Calculate new brightness | |
| 41 | + if [[ "$1" == "+${step}%" ]]; then | |
| 42 | + new_brightness=$((current_brightness + step)) | |
| 43 | + elif [[ "$1" == "${step}%-" ]]; then | |
| 44 | + new_brightness=$((current_brightness - step)) | |
| 45 | + fi | |
| 46 | + | |
| 47 | + # Ensure new brightness is within valid range | |
| 48 | + if (( new_brightness < 5 )); then | |
| 49 | + new_brightness=5 | |
| 50 | + elif (( new_brightness > 100 )); then | |
| 51 | + new_brightness=100 | |
| 52 | + fi | |
| 53 | + | |
| 54 | + brightnessctl set "${new_brightness}%" | |
| 55 | + get_icon | |
| 56 | + current=$new_brightness | |
| 57 | + notify_user | |
| 58 | +} | |
| 59 | + | |
| 60 | +# Execute accordingly | |
| 61 | +case "$1" in | |
| 62 | + "--get") | |
| 63 | + get_backlight | |
| 64 | + ;; | |
| 65 | + "--inc") | |
| 66 | + change_backlight "+${step}%" | |
| 67 | + ;; | |
| 68 | + "--dec") | |
| 69 | + change_backlight "${step}%-" | |
| 70 | + ;; | |
| 71 | + *) | |
| 72 | + get_backlight | |
| 73 | + ;; | |
| 74 | +esac |
+51-0scripts/BrightnessKbd.sh
| @@ -0,0 +1,51 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Script for keyboard backlights (if supported) using brightnessctl | |
| 4 | + | |
| 5 | +iDIR="$HOME/.config/swaync/icons" | |
| 6 | + | |
| 7 | +# Get keyboard brightness | |
| 8 | +get_kbd_backlight() { | |
| 9 | + echo $(brightnessctl -d '*::kbd_backlight' -m | cut -d, -f4) | |
| 10 | +} | |
| 11 | + | |
| 12 | +# Get icons | |
| 13 | +get_icon() { | |
| 14 | + current=$(get_kbd_backlight | sed 's/%//') | |
| 15 | + if [ "$current" -le "20" ]; then | |
| 16 | + icon="$iDIR/brightness-20.png" | |
| 17 | + elif [ "$current" -le "40" ]; then | |
| 18 | + icon="$iDIR/brightness-40.png" | |
| 19 | + elif [ "$current" -le "60" ]; then | |
| 20 | + icon="$iDIR/brightness-60.png" | |
| 21 | + elif [ "$current" -le "80" ]; then | |
| 22 | + icon="$iDIR/brightness-80.png" | |
| 23 | + else | |
| 24 | + icon="$iDIR/brightness-100.png" | |
| 25 | + fi | |
| 26 | +} | |
| 27 | +# Notify | |
| 28 | +notify_user() { | |
| 29 | + notify-send -e -h string:x-canonical-private-synchronous:brightness_notif -h int:value:$current -u low -i "$icon" "Keyboard" "Brightness:$current%" | |
| 30 | +} | |
| 31 | + | |
| 32 | +# Change brightness | |
| 33 | +change_kbd_backlight() { | |
| 34 | + brightnessctl -d *::kbd_backlight set "$1" && get_icon && notify_user | |
| 35 | +} | |
| 36 | + | |
| 37 | +# Execute accordingly | |
| 38 | +case "$1" in | |
| 39 | + "--get") | |
| 40 | + get_kbd_backlight | |
| 41 | + ;; | |
| 42 | + "--inc") | |
| 43 | + change_kbd_backlight "+30%" | |
| 44 | + ;; | |
| 45 | + "--dec") | |
| 46 | + change_kbd_backlight "30%-" | |
| 47 | + ;; | |
| 48 | + *) | |
| 49 | + get_kbd_backlight | |
| 50 | + ;; | |
| 51 | +esac |
+17-0scripts/ChangeBlur.sh
| @@ -0,0 +1,17 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Script for changing blurs on the fly | |
| 4 | + | |
| 5 | +notif="$HOME/.config/swaync/images" | |
| 6 | + | |
| 7 | +STATE=$(hyprctl -j getoption decoration:blur:passes | jq ".int") | |
| 8 | + | |
| 9 | +if [ "${STATE}" == "2" ]; then | |
| 10 | + hyprctl keyword decoration:blur:size 2 | |
| 11 | + hyprctl keyword decoration:blur:passes 1 | |
| 12 | + notify-send -e -u low -i "$notif/note.png" " Less Blur" | |
| 13 | +else | |
| 14 | + hyprctl keyword decoration:blur:size 5 | |
| 15 | + hyprctl keyword decoration:blur:passes 2 | |
| 16 | + notify-send -e -u low -i "$notif/ja.png" " Normal Blur" | |
| 17 | +fi |
+30-0scripts/ChangeLayout.sh
| @@ -0,0 +1,30 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# for changing Hyprland Layouts (Master or Dwindle) on the fly | |
| 4 | + | |
| 5 | +notif="$HOME/.config/swaync/images/ja.png" | |
| 6 | + | |
| 7 | +LAYOUT=$(hyprctl -j getoption general:layout | jq '.str' | sed 's/"//g') | |
| 8 | + | |
| 9 | +case $LAYOUT in | |
| 10 | +"master") | |
| 11 | + hyprctl keyword general:layout dwindle | |
| 12 | + hyprctl keyword unbind SUPER,J | |
| 13 | + hyprctl keyword unbind SUPER,K | |
| 14 | + hyprctl keyword bind SUPER,J,cyclenext | |
| 15 | + hyprctl keyword bind SUPER,K,cyclenext,prev | |
| 16 | + hyprctl keyword bind SUPER,O,togglesplit | |
| 17 | + notify-send -e -u low -i "$notif" " Dwindle Layout" | |
| 18 | + ;; | |
| 19 | +"dwindle") | |
| 20 | + hyprctl keyword general:layout master | |
| 21 | + hyprctl keyword unbind SUPER,J | |
| 22 | + hyprctl keyword unbind SUPER,K | |
| 23 | + hyprctl keyword unbind SUPER,O | |
| 24 | + hyprctl keyword bind SUPER,J,layoutmsg,cyclenext | |
| 25 | + hyprctl keyword bind SUPER,K,layoutmsg,cycleprev | |
| 26 | + notify-send -e -u low -i "$notif" " Master Layout" | |
| 27 | + ;; | |
| 28 | +*) ;; | |
| 29 | + | |
| 30 | +esac |
+49-0scripts/ClipManager.sh
| @@ -0,0 +1,49 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Clipboard Manager. This script uses cliphist, rofi, and wl-copy. | |
| 4 | + | |
| 5 | +# Variables | |
| 6 | +rofi_theme="$HOME/.config/rofi/config-clipboard.rasi" | |
| 7 | +msg='👀 **note** CTRL DEL = cliphist del (entry) or ALT DEL - cliphist wipe (all)' | |
| 8 | +# Actions: | |
| 9 | +# CTRL Del to delete an entry | |
| 10 | +# ALT Del to wipe clipboard contents | |
| 11 | + | |
| 12 | +# Check if rofi is already running | |
| 13 | +if pidof rofi > /dev/null; then | |
| 14 | + pkill rofi | |
| 15 | +fi | |
| 16 | + | |
| 17 | +while true; do | |
| 18 | + result=$( | |
| 19 | + rofi -i -dmenu \ | |
| 20 | + -kb-custom-1 "Control-Delete" \ | |
| 21 | + -kb-custom-2 "Alt-Delete" \ | |
| 22 | + -config $rofi_theme < <(cliphist list) \ | |
| 23 | + -mesg "$msg" | |
| 24 | + ) | |
| 25 | + | |
| 26 | + case "$?" in | |
| 27 | + 1) | |
| 28 | + exit | |
| 29 | + ;; | |
| 30 | + 0) | |
| 31 | + case "$result" in | |
| 32 | + "") | |
| 33 | + continue | |
| 34 | + ;; | |
| 35 | + *) | |
| 36 | + cliphist decode <<<"$result" | wl-copy | |
| 37 | + exit | |
| 38 | + ;; | |
| 39 | + esac | |
| 40 | + ;; | |
| 41 | + 10) | |
| 42 | + cliphist delete <<<"$result" | |
| 43 | + ;; | |
| 44 | + 11) | |
| 45 | + cliphist wipe | |
| 46 | + ;; | |
| 47 | + esac | |
| 48 | +done | |
| 49 | + |
+254-0scripts/DarkLight.sh
| @@ -0,0 +1,254 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +## /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# For Dark and Light switching | |
| 4 | +# Note: Scripts are looking for keywords Light or Dark except for wallpapers as the are in a separate directories | |
| 5 | + | |
| 6 | +# Paths | |
| 7 | +wallpaper_base_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers" | |
| 8 | +dark_wallpapers="$wallpaper_base_path/Dark" | |
| 9 | +light_wallpapers="$wallpaper_base_path/Light" | |
| 10 | +hypr_config_path="$HOME/.config/hypr" | |
| 11 | +swaync_style="$HOME/.config/swaync/style.css" | |
| 12 | +ags_style="$HOME/.config/ags/user/style.css" | |
| 13 | +SCRIPTSDIR="$HOME/.config/hypr/scripts" | |
| 14 | +notif="$HOME/.config/swaync/images/bell.png" | |
| 15 | +wallust_rofi="$HOME/.config/wallust/templates/colors-rofi.rasi" | |
| 16 | + | |
| 17 | +kitty_conf="$HOME/.config/kitty/kitty.conf" | |
| 18 | + | |
| 19 | +wallust_config="$HOME/.config/wallust/wallust.toml" | |
| 20 | +pallete_dark="dark16" | |
| 21 | +pallete_light="light16" | |
| 22 | + | |
| 23 | +# intial kill process | |
| 24 | +for pid in waybar rofi swaync ags swaybg; do | |
| 25 | + killall -SIGUSR1 "$pid" | |
| 26 | +done | |
| 27 | + | |
| 28 | + | |
| 29 | +# Initialize swww if needed | |
| 30 | +swww query || swww-daemon --format xrgb | |
| 31 | + | |
| 32 | +# Set swww options | |
| 33 | +swww="swww img" | |
| 34 | +effect="--transition-bezier .43,1.19,1,.4 --transition-fps 60 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2" | |
| 35 | + | |
| 36 | +# Determine current theme mode | |
| 37 | +if [ "$(cat $HOME/.cache/.theme_mode)" = "Light" ]; then | |
| 38 | + next_mode="Dark" | |
| 39 | + # Logic for Dark mode | |
| 40 | + wallpaper_path="$dark_wallpapers" | |
| 41 | +else | |
| 42 | + next_mode="Light" | |
| 43 | + # Logic for Light mode | |
| 44 | + wallpaper_path="$light_wallpapers" | |
| 45 | +fi | |
| 46 | + | |
| 47 | +# Function to update theme mode for the next cycle | |
| 48 | +update_theme_mode() { | |
| 49 | + echo "$next_mode" > "$HOME/.cache/.theme_mode" | |
| 50 | +} | |
| 51 | + | |
| 52 | +# Function to notify user | |
| 53 | +notify_user() { | |
| 54 | + notify-send -u low -i "$notif" " Switching to" " $1 mode" | |
| 55 | +} | |
| 56 | + | |
| 57 | +# Use sed to replace the palette setting in the wallust config file | |
| 58 | +if [ "$next_mode" = "Dark" ]; then | |
| 59 | + sed -i 's/^palette = .*/palette = "'"$pallete_dark"'"/' "$wallust_config" | |
| 60 | +else | |
| 61 | + sed -i 's/^palette = .*/palette = "'"$pallete_light"'"/' "$wallust_config" | |
| 62 | +fi | |
| 63 | + | |
| 64 | +# Function to set Waybar style | |
| 65 | +set_waybar_style() { | |
| 66 | + theme="$1" | |
| 67 | + waybar_styles="$HOME/.config/waybar/style" | |
| 68 | + waybar_style_link="$HOME/.config/waybar/style.css" | |
| 69 | + style_prefix="\\[${theme}\\].*\\.css$" | |
| 70 | + | |
| 71 | + style_file=$(find -L "$waybar_styles" -maxdepth 1 -type f -regex ".*$style_prefix" | shuf -n 1) | |
| 72 | + | |
| 73 | + if [ -n "$style_file" ]; then | |
| 74 | + ln -sf "$style_file" "$waybar_style_link" | |
| 75 | + else | |
| 76 | + echo "Style file not found for $theme theme." | |
| 77 | + fi | |
| 78 | +} | |
| 79 | + | |
| 80 | +# Call the function after determining the mode | |
| 81 | +set_waybar_style "$next_mode" | |
| 82 | +notify_user "$next_mode" | |
| 83 | + | |
| 84 | + | |
| 85 | +# swaync color change | |
| 86 | +if [ "$next_mode" = "Dark" ]; then | |
| 87 | + sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(0, 0, 0, 0.8);/' "${swaync_style}" | |
| 88 | + #sed -i '/@define-color noti-bg-alt/s/#.*;/#111111;/' "${swaync_style}" | |
| 89 | +else | |
| 90 | + sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(255, 255, 255, 0.9);/' "${swaync_style}" | |
| 91 | + #sed -i '/@define-color noti-bg-alt/s/#.*;/#F0F0F0;/' "${swaync_style}" | |
| 92 | +fi | |
| 93 | + | |
| 94 | +# ags color change | |
| 95 | +if command -v ags >/dev/null 2>&1; then | |
| 96 | + if [ "$next_mode" = "Dark" ]; then | |
| 97 | + sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(0, 0, 0, 0.4);/' "${ags_style}" | |
| 98 | + sed -i '/@define-color text-color/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(255, 255, 255, 0.7);/' "${ags_style}" | |
| 99 | + sed -i '/@define-color noti-bg-alt/s/#.*;/#111111;/' "${ags_style}" | |
| 100 | + else | |
| 101 | + sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(255, 255, 255, 0.4);/' "${ags_style}" | |
| 102 | + sed -i '/@define-color text-color/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(0, 0, 0, 0.7);/' "${ags_style}" | |
| 103 | + sed -i '/@define-color noti-bg-alt/s/#.*;/#F0F0F0;/' "${ags_style}" | |
| 104 | + fi | |
| 105 | +fi | |
| 106 | + | |
| 107 | +# kitty background color change | |
| 108 | +if [ "$next_mode" = "Dark" ]; then | |
| 109 | + sed -i '/^foreground /s/^foreground .*/foreground #dddddd/' "${kitty_conf}" | |
| 110 | + sed -i '/^background /s/^background .*/background #000000/' "${kitty_conf}" | |
| 111 | + sed -i '/^cursor /s/^cursor .*/cursor #dddddd/' "${kitty_conf}" | |
| 112 | +else | |
| 113 | + sed -i '/^foreground /s/^foreground .*/foreground #000000/' "${kitty_conf}" | |
| 114 | + sed -i '/^background /s/^background .*/background #dddddd/' "${kitty_conf}" | |
| 115 | + sed -i '/^cursor /s/^cursor .*/cursor #000000/' "${kitty_conf}" | |
| 116 | +fi | |
| 117 | + | |
| 118 | +for pid_kitty in $(pidof kitty); do | |
| 119 | + kill -SIGUSR1 "$pid_kitty" | |
| 120 | +done | |
| 121 | + | |
| 122 | +# Set Dynamic Wallpaper for Dark or Light Mode | |
| 123 | +if [ "$next_mode" = "Dark" ]; then | |
| 124 | + next_wallpaper="$(find -L "${dark_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)" | |
| 125 | +else | |
| 126 | + next_wallpaper="$(find -L "${light_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)" | |
| 127 | +fi | |
| 128 | + | |
| 129 | +# Update wallpaper using swww command | |
| 130 | +$swww "${next_wallpaper}" $effect | |
| 131 | + | |
| 132 | + | |
| 133 | +# Set Kvantum Manager theme & QT5/QT6 settings | |
| 134 | +if [ "$next_mode" = "Dark" ]; then | |
| 135 | + kvantum_theme="catppuccin-mocha-blue" | |
| 136 | + #qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Mocha.conf" | |
| 137 | + #qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Mocha.conf" | |
| 138 | +else | |
| 139 | + kvantum_theme="catppuccin-latte-blue" | |
| 140 | + #qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Latte.conf" | |
| 141 | + #qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Latte.conf" | |
| 142 | +fi | |
| 143 | + | |
| 144 | +sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt5ct_color_scheme|" "$HOME/.config/qt5ct/qt5ct.conf" | |
| 145 | +sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt6ct_color_scheme|" "$HOME/.config/qt6ct/qt6ct.conf" | |
| 146 | +kvantummanager --set "$kvantum_theme" | |
| 147 | + | |
| 148 | + | |
| 149 | +# set the rofi color for background | |
| 150 | +if [ "$next_mode" = "Dark" ]; then | |
| 151 | + sed -i '/^background:/s/.*/background: rgba(0,0,0,0.7);/' $wallust_rofi | |
| 152 | +else | |
| 153 | + sed -i '/^background:/s/.*/background: rgba(255,255,255,0.9);/' $wallust_rofi | |
| 154 | +fi | |
| 155 | + | |
| 156 | + | |
| 157 | +# GTK themes and icons switching | |
| 158 | +set_custom_gtk_theme() { | |
| 159 | + mode=$1 | |
| 160 | + gtk_themes_directory="$HOME/.themes" | |
| 161 | + icon_directory="$HOME/.icons" | |
| 162 | + color_setting="org.gnome.desktop.interface color-scheme" | |
| 163 | + theme_setting="org.gnome.desktop.interface gtk-theme" | |
| 164 | + icon_setting="org.gnome.desktop.interface icon-theme" | |
| 165 | + | |
| 166 | + if [ "$mode" == "Light" ]; then | |
| 167 | + search_keywords="*Light*" | |
| 168 | + gsettings set $color_setting 'prefer-light' | |
| 169 | + elif [ "$mode" == "Dark" ]; then | |
| 170 | + search_keywords="*Dark*" | |
| 171 | + gsettings set $color_setting 'prefer-dark' | |
| 172 | + else | |
| 173 | + echo "Invalid mode provided." | |
| 174 | + return 1 | |
| 175 | + fi | |
| 176 | + | |
| 177 | + themes=() | |
| 178 | + icons=() | |
| 179 | + | |
| 180 | + while IFS= read -r -d '' theme_search; do | |
| 181 | + themes+=("$(basename "$theme_search")") | |
| 182 | + done < <(find "$gtk_themes_directory" -maxdepth 1 -type d -iname "$search_keywords" -print0) | |
| 183 | + | |
| 184 | + while IFS= read -r -d '' icon_search; do | |
| 185 | + icons+=("$(basename "$icon_search")") | |
| 186 | + done < <(find "$icon_directory" -maxdepth 1 -type d -iname "$search_keywords" -print0) | |
| 187 | + | |
| 188 | + if [ ${#themes[@]} -gt 0 ]; then | |
| 189 | + if [ "$mode" == "Dark" ]; then | |
| 190 | + selected_theme=${themes[RANDOM % ${#themes[@]}]} | |
| 191 | + else | |
| 192 | + selected_theme=${themes[$RANDOM % ${#themes[@]}]} | |
| 193 | + fi | |
| 194 | + echo "Selected GTK theme for $mode mode: $selected_theme" | |
| 195 | + gsettings set $theme_setting "$selected_theme" | |
| 196 | + | |
| 197 | + # Flatpak GTK apps (themes) | |
| 198 | + if command -v flatpak &> /dev/null; then | |
| 199 | + flatpak --user override --filesystem=$HOME/.themes | |
| 200 | + sleep 0.5 | |
| 201 | + flatpak --user override --env=GTK_THEME="$selected_theme" | |
| 202 | + fi | |
| 203 | + else | |
| 204 | + echo "No $mode GTK theme found" | |
| 205 | + fi | |
| 206 | + | |
| 207 | + if [ ${#icons[@]} -gt 0 ]; then | |
| 208 | + if [ "$mode" == "Dark" ]; then | |
| 209 | + selected_icon=${icons[RANDOM % ${#icons[@]}]} | |
| 210 | + else | |
| 211 | + selected_icon=${icons[$RANDOM % ${#icons[@]}]} | |
| 212 | + fi | |
| 213 | + echo "Selected icon theme for $mode mode: $selected_icon" | |
| 214 | + gsettings set $icon_setting "$selected_icon" | |
| 215 | + | |
| 216 | + ## QT5ct icon_theme | |
| 217 | + sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt5ct/qt5ct.conf" | |
| 218 | + sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt6ct/qt6ct.conf" | |
| 219 | + | |
| 220 | + # Flatpak GTK apps (icons) | |
| 221 | + if command -v flatpak &> /dev/null; then | |
| 222 | + flatpak --user override --filesystem=$HOME/.icons | |
| 223 | + sleep 0.5 | |
| 224 | + flatpak --user override --env=ICON_THEME="$selected_icon" | |
| 225 | + fi | |
| 226 | + else | |
| 227 | + echo "No $mode icon theme found" | |
| 228 | + fi | |
| 229 | +} | |
| 230 | + | |
| 231 | +# Call the function to set GTK theme and icon theme based on mode | |
| 232 | +set_custom_gtk_theme "$next_mode" | |
| 233 | + | |
| 234 | +# Update theme mode for the next cycle | |
| 235 | +update_theme_mode | |
| 236 | + | |
| 237 | + | |
| 238 | +${SCRIPTSDIR}/WallustSwww.sh && | |
| 239 | + | |
| 240 | +sleep 2 | |
| 241 | +# kill process | |
| 242 | +for pid1 in waybar rofi swaync ags swaybg; do | |
| 243 | + killall "$pid1" | |
| 244 | +done | |
| 245 | + | |
| 246 | +sleep 1 | |
| 247 | +${SCRIPTSDIR}/Refresh.sh | |
| 248 | + | |
| 249 | +sleep 0.5 | |
| 250 | +# Display notifications for theme and icon changes | |
| 251 | +notify-send -u low -i "$notif" " Themes switched to:" " $next_mode Mode" | |
| 252 | + | |
| 253 | +exit 0 | |
| 254 | + |
+40-0scripts/Distro_update.sh
| @@ -0,0 +1,40 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Simple bash script to check and will try to update your system | |
| 4 | + | |
| 5 | +# Local Paths | |
| 6 | +iDIR="$HOME/.config/swaync/images" | |
| 7 | + | |
| 8 | +# Check for required tools (kitty) | |
| 9 | +if ! command -v kitty &> /dev/null; then | |
| 10 | + notify-send -i "$iDIR/error.png" "Need Kitty:" "Kitty terminal not found. Please install Kitty terminal." | |
| 11 | + exit 1 | |
| 12 | +fi | |
| 13 | + | |
| 14 | +# Detect distribution and update accordingly | |
| 15 | +if command -v paru &> /dev/null || command -v yay &> /dev/null; then | |
| 16 | + # Arch-based | |
| 17 | + if command -v paru &> /dev/null; then | |
| 18 | + kitty -T update paru -Syu | |
| 19 | + notify-send -i "$iDIR/ja.png" -u low 'Arch-based system' 'has been updated.' | |
| 20 | + else | |
| 21 | + kitty -T update yay -Syu | |
| 22 | + notify-send -i "$iDIR/ja.png" -u low 'Arch-based system' 'has been updated.' | |
| 23 | + fi | |
| 24 | +elif command -v dnf &> /dev/null; then | |
| 25 | + # Fedora-based | |
| 26 | + kitty -T update sudo dnf update --refresh -y | |
| 27 | + notify-send -i "$iDIR/ja.png" -u low 'Fedora system' 'has been updated.' | |
| 28 | +elif command -v apt &> /dev/null; then | |
| 29 | + # Debian-based (Debian, Ubuntu, etc.) | |
| 30 | + kitty -T update sudo apt update && sudo apt upgrade -y | |
| 31 | + notify-send -i "$iDIR/ja.png" -u low 'Debian/Ubuntu system' 'has been updated.' | |
| 32 | +elif command -v zypper &> /dev/null; then | |
| 33 | + # openSUSE-based | |
| 34 | + kitty -T update sudo zypper dup -y | |
| 35 | + notify-send -i "$iDIR/ja.png" -u low 'openSUSE system' 'has been updated.' | |
| 36 | +else | |
| 37 | + # Unsupported distro | |
| 38 | + notify-send -i "$iDIR/error.png" -u critical "Unsupported system" "This script does not support your distribution." | |
| 39 | + exit 1 | |
| 40 | +fi |
+33-0scripts/GameMode.sh
| @@ -0,0 +1,33 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Game Mode. Turning off all animations | |
| 4 | + | |
| 5 | +notif="$HOME/.config/swaync/images/ja.png" | |
| 6 | +SCRIPTSDIR="$HOME/.config/hypr/scripts" | |
| 7 | + | |
| 8 | + | |
| 9 | +HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}') | |
| 10 | +if [ "$HYPRGAMEMODE" = 1 ] ; then | |
| 11 | + hyprctl --batch "\ | |
| 12 | + keyword animations:enabled 0;\ | |
| 13 | + keyword decoration:shadow:enabled 0;\ | |
| 14 | + keyword decoration:blur:enabled 0;\ | |
| 15 | + keyword general:gaps_in 0;\ | |
| 16 | + keyword general:gaps_out 0;\ | |
| 17 | + keyword general:border_size 1;\ | |
| 18 | + keyword decoration:rounding 0" | |
| 19 | + | |
| 20 | + hyprctl keyword "windowrule opacity 1 override 1 override 1 override, ^(.*)$" | |
| 21 | + swww kill | |
| 22 | + notify-send -e -u low -i "$notif" " Gamemode:" " enabled" | |
| 23 | + exit | |
| 24 | +else | |
| 25 | + swww-daemon --format xrgb && swww img "$HOME/.config/rofi/.current_wallpaper" & | |
| 26 | + sleep 0.1 | |
| 27 | + ${SCRIPTSDIR}/WallustSwww.sh | |
| 28 | + sleep 0.5 | |
| 29 | + ${SCRIPTSDIR}/Refresh.sh | |
| 30 | + notify-send -e -u normal -i "$notif" " Gamemode:" " disabled" | |
| 31 | + exit | |
| 32 | +fi | |
| 33 | +hyprctl reload |
+23-0scripts/Hypridle.sh
| @@ -0,0 +1,23 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# This is for custom version of waybar idle_inhibitor which activates / deactivates hypridle instead | |
| 4 | + | |
| 5 | +PROCESS="hypridle" | |
| 6 | + | |
| 7 | +if [[ "$1" == "status" ]]; then | |
| 8 | + sleep 1 | |
| 9 | + if pgrep -x "$PROCESS" >/dev/null; then | |
| 10 | + echo '{"text": "RUNNING", "class": "active", "tooltip": "idle_inhibitor NOT ACTIVE\nLeft Click: Activate\nRight Click: Lock Screen"}' | |
| 11 | + else | |
| 12 | + echo '{"text": "NOT RUNNING", "class": "notactive", "tooltip": "idle_inhibitor is ACTIVE\nLeft Click: Deactivate\nRight Click: Lock Screen"}' | |
| 13 | + fi | |
| 14 | +elif [[ "$1" == "toggle" ]]; then | |
| 15 | + if pgrep -x "$PROCESS" >/dev/null; then | |
| 16 | + pkill "$PROCESS" | |
| 17 | + else | |
| 18 | + "$PROCESS" | |
| 19 | + fi | |
| 20 | +else | |
| 21 | + echo "Usage: $0 {status|toggle}" | |
| 22 | + exit 1 | |
| 23 | +fi |
+39-0scripts/KeyBinds.sh
| @@ -0,0 +1,39 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# searchable enabled keybinds using rofi | |
| 4 | + | |
| 5 | +# kill yad to not interfere with this binds | |
| 6 | +pkill yad || true | |
| 7 | + | |
| 8 | +# check if rofi is already running | |
| 9 | +if pidof rofi > /dev/null; then | |
| 10 | + pkill rofi | |
| 11 | +fi | |
| 12 | + | |
| 13 | +# define the config files | |
| 14 | +keybinds_conf="$HOME/.config/hypr/configs/Keybinds.conf" | |
| 15 | +user_keybinds_conf="$HOME/.config/hypr/UserConfigs/UserKeybinds.conf" | |
| 16 | +laptop_conf="$HOME/.config/hypr/UserConfigs/Laptops.conf" | |
| 17 | +rofi_theme="$HOME/.config/rofi/config-keybinds.rasi" | |
| 18 | +msg='☣️ NOTE ☣️: Clicking with Mouse or Pressing ENTER will have NO function' | |
| 19 | + | |
| 20 | +# combine the contents of the keybinds files and filter for keybinds | |
| 21 | +keybinds=$(cat "$keybinds_conf" "$user_keybinds_conf" | grep -E '^bind') | |
| 22 | + | |
| 23 | +# check if laptop.conf exists and add its keybinds if present | |
| 24 | +if [[ -f "$laptop_conf" ]]; then | |
| 25 | + laptop_binds=$(grep -E '^bind' "$laptop_conf") | |
| 26 | + keybinds+=$'\n'"$laptop_binds" | |
| 27 | +fi | |
| 28 | + | |
| 29 | +# check for any keybinds to display | |
| 30 | +if [[ -z "$keybinds" ]]; then | |
| 31 | + echo "no keybinds found." | |
| 32 | + exit 1 | |
| 33 | +fi | |
| 34 | + | |
| 35 | +# replace $mainmod with super in the displayed keybinds for rofi | |
| 36 | +display_keybinds=$(echo "$keybinds" | sed 's/\$mainMod/SUPER/g') | |
| 37 | + | |
| 38 | +# use rofi to display the keybinds with the modified content | |
| 39 | +echo "$display_keybinds" | rofi -dmenu -i -config "$rofi_theme" -mesg "$msg" |
+72-0scripts/KeyHints.sh
| @@ -0,0 +1,72 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | + | |
| 4 | +# GDK BACKEND. Change to either wayland or x11 if having issues | |
| 5 | +BACKEND=wayland | |
| 6 | + | |
| 7 | +# Check if rofi or yad is running and kill them if they are | |
| 8 | +if pidof rofi >/dev/null; then | |
| 9 | + pkill rofi | |
| 10 | +fi | |
| 11 | + | |
| 12 | +if pidof yad >/dev/null; then | |
| 13 | + pkill yad | |
| 14 | +fi | |
| 15 | + | |
| 16 | +# Launch yad with calculated width and height | |
| 17 | +GDK_BACKEND=$BACKEND yad \ | |
| 18 | + --center \ | |
| 19 | + --title="KooL Quick Cheat Sheet" \ | |
| 20 | + --no-buttons \ | |
| 21 | + --list \ | |
| 22 | + --column=Key: \ | |
| 23 | + --column=Description: \ | |
| 24 | + --column=Command: \ | |
| 25 | + --timeout-indicator=bottom \ | |
| 26 | + "ESC" "close this app" "" " = " "SUPER KEY (Windows Key Button)" "(SUPER KEY)" \ | |
| 27 | + " SHIFT K" "Searchable Keybinds" "(Search all Keybinds via rofi)" \ | |
| 28 | + " SHIFT E" "KooL Hyprland Settings Menu" "" \ | |
| 29 | + "" "" "" \ | |
| 30 | + " enter" "Terminal" "(kitty)" \ | |
| 31 | + " SHIFT enter" "DropDown Terminal" " Q to close" \ | |
| 32 | + " B" "Launch Browser" "(Default browser)" \ | |
| 33 | + " A" "Desktop Overview" "(AGS - if opted to install)" \ | |
| 34 | + " D" "Application Launcher" "(rofi-wayland)" \ | |
| 35 | + " E" "Open File Manager" "(Nautilus AKA Files)" \ | |
| 36 | + " S" "Google Search using rofi" "(rofi)" \ | |
| 37 | + " Q" "close active window" "(not kill)" \ | |
| 38 | + " Shift Q " "kills an active window" "(kill)" \ | |
| 39 | + " ALT mouse scroll up/down " "Desktop Zoom" "Desktop Magnifier" \ | |
| 40 | + " Alt V" "Clipboard Manager" "(cliphist)" \ | |
| 41 | + " W" "Choose wallpaper" "(Wallpaper Menu)" \ | |
| 42 | + " Shift W" "Choose wallpaper effects" "(imagemagick + swww)" \ | |
| 43 | + "CTRL ALT W" "Random wallpaper" "(via swww)" \ | |
| 44 | + " CTRL ALT B" "Hide/UnHide Waybar" "waybar" \ | |
| 45 | + " CTRL B" "Choose waybar styles" "(waybar styles)" \ | |
| 46 | + " ALT B" "Choose waybar layout" "(waybar layout)" \ | |
| 47 | + " ALT R" "Reload Waybar swaync Rofi" "CHECK NOTIFICATION FIRST!!!" \ | |
| 48 | + " SHIFT N" "Launch Notification Panel" "swaync Notification Center" \ | |
| 49 | + " Print" "screenshot" "(grim)" \ | |
| 50 | + " Shift Print" "screenshot region" "(grim + slurp)" \ | |
| 51 | + " Shift S" "screenshot region" "(swappy)" \ | |
| 52 | + " CTRL Print" "screenshot timer 5 secs " "(grim)" \ | |
| 53 | + " CTRL SHIFT Print" "screenshot timer 10 secs " "(grim)" \ | |
| 54 | + "ALT Print" "Screenshot active window" "active window only" \ | |
| 55 | + "CTRL ALT P" "power-menu" "(wlogout)" \ | |
| 56 | + "CTRL ALT L" "screen lock" "(hyprlock)" \ | |
| 57 | + "CTRL ALT Del" "Hyprland Exit" "(NOTE: Hyprland Will exit immediately)" \ | |
| 58 | + " SHIFT F" "Fullscreen" "Toggles to full screen" \ | |
| 59 | + " CTL F" "Fake Fullscreen" "Toggles to fake full screen" \ | |
| 60 | + " ALT L" "Toggle Dwindle | Master Layout" "Hyprland Layout" \ | |
| 61 | + " SPACEBAR" "Toggle float" "single window" \ | |
| 62 | + " ALT SPACEBAR" "Toggle all windows to float" "all windows" \ | |
| 63 | + " ALT O" "Toggle Blur" "normal or less blur" \ | |
| 64 | + " CTRL O" "Toggle Opaque ON or OFF" "on active window only" \ | |
| 65 | + " Shift A" "Animations Menu" "Choose Animations via rofi" \ | |
| 66 | + " CTRL R" "Rofi Themes Menu" "Choose Rofi Themes via rofi" \ | |
| 67 | + " CTRL Shift R" "Rofi Themes Menu v2" "Choose Rofi Themes via Theme Selector (modified)" \ | |
| 68 | + " SHIFT G" "Gamemode! All animations OFF or ON" "toggle" \ | |
| 69 | + " ALT E" "Rofi Emoticons" "Emoticon" \ | |
| 70 | + " H" "Launch this Quick Cheat Sheet" "" \ | |
| 71 | + "" "" "" \ | |
| 72 | + "More tips:" "https://github.com/JaKooLit/Hyprland-Dots/wiki" ""\ |
+11-0scripts/KillActiveProcess.sh
| @@ -0,0 +1,11 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | + | |
| 4 | +# Copied from Discord post. Thanks to @Zorg | |
| 5 | + | |
| 6 | + | |
| 7 | +# Get id of an active window | |
| 8 | +active_pid=$(hyprctl activewindow | grep -o 'pid: [0-9]*' | cut -d' ' -f2) | |
| 9 | + | |
| 10 | +# Close active window | |
| 11 | +kill $active_pid |
+45-0scripts/Kitty_themes.sh
| @@ -0,0 +1,45 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 3 | +# Kitty Themes Source https://github.com/dexpota/kitty-themes # | |
| 4 | + | |
| 5 | +# Define directories and variables | |
| 6 | +kitty_themes_DiR="$HOME/.config/kitty/kitty-themes" # Kitty Themes Directory | |
| 7 | +theme_path="$kitty_themes_DiR/$theme.conf" | |
| 8 | +kitty_config="$HOME/.config/kitty/kitty.conf" | |
| 9 | +iDIR="$HOME/.config/swaync/images" | |
| 10 | +rofi_theme="$HOME/.config/rofi/config-kitty-theme.rasi" | |
| 11 | + | |
| 12 | +# Check if the Kitty Themes directory exists | |
| 13 | +if [ ! -d "$kitty_themes_DiR" ]; then | |
| 14 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Unable to locate Kitty Themes directory. Exiting....." | |
| 15 | + exit 1 | |
| 16 | +fi | |
| 17 | + | |
| 18 | +# List the kitty-theme files from the themes directory | |
| 19 | +theme=$(ls "$kitty_themes_DiR"/*.conf | xargs -n 1 basename | sed 's/\.conf$//' | rofi -dmenu -config $rofi_theme) | |
| 20 | + | |
| 21 | +# Check if no theme was selected, and exit if empty | |
| 22 | +if [ -z "$theme" ]; then | |
| 23 | + notify-send -u low -i "$iDIR/note.png" "No kitty theme" "selected. Exiting....." | |
| 24 | + exit 1 | |
| 25 | +fi | |
| 26 | + | |
| 27 | +# Uncomment the line that includes the kitty themes if it's commented | |
| 28 | +if grep -q '#include ./kitty-themes/' "$kitty_config"; then | |
| 29 | + sed -i "s|#include ./kitty-themes/|include ./kitty-themes/$theme.conf|g" "$kitty_config" | |
| 30 | + | |
| 31 | + notify-send -u low -i "$iDIR/ja.png" "$theme" "Kitty Theme Loaded" | |
| 32 | + | |
| 33 | + for pid_kitty in $(pidof kitty); do | |
| 34 | + kill -SIGUSR1 "$pid_kitty" | |
| 35 | + done | |
| 36 | +else | |
| 37 | + # If the line is already uncommented, just add the chosen theme | |
| 38 | + sed -i "s|include ./kitty-themes/.*|include ./kitty-themes/$theme.conf|g" "$kitty_config" | |
| 39 | + | |
| 40 | + notify-send -u low -i "$iDIR/ja.png" "$theme" "Kitty Theme Loaded" | |
| 41 | + | |
| 42 | + for pid_kitty in $(pidof kitty); do | |
| 43 | + kill -SIGUSR1 "$pid_kitty" | |
| 44 | + done | |
| 45 | +fi |
+73-0scripts/KooLsDotsUpdate.sh
| @@ -0,0 +1,73 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# simple bash script to check if update is available by comparing local version and github version | |
| 4 | + | |
| 5 | +# Local Paths | |
| 6 | +local_dir="$HOME/.config/hypr" | |
| 7 | +iDIR="$HOME/.config/swaync/images/" | |
| 8 | +local_version=$(ls $local_dir/v* 2>/dev/null | sort -V | tail -n 1 | sed 's/.*v\(.*\)/\1/') | |
| 9 | +KooL_Dots_DIR="$HOME/Hyprland-Dots" | |
| 10 | + | |
| 11 | +# exit if cannot find local version | |
| 12 | +if [ -z "$local_version" ]; then | |
| 13 | + notify-send -i "$iDIR/error.png" "ERROR "!?!?!!"" "Unable to find KooL's dots version . exiting.... " | |
| 14 | + exit 1 | |
| 15 | +fi | |
| 16 | + | |
| 17 | +# GitHub URL - KooL's dots | |
| 18 | +branch="main" | |
| 19 | +github_url="https://github.com/JaKooLit/Hyprland-Dots/tree/$branch/config/hypr/" | |
| 20 | + | |
| 21 | +# Fetch the version from GitHub URL - KooL's dots | |
| 22 | +github_version=$(curl -s $github_url | grep -o 'v[0-9]\+\.[0-9]\+\.[0-9]\+' | sort -V | tail -n 1 | sed 's/v//') | |
| 23 | + | |
| 24 | +# Cant find GitHub URL - KooL's dots version | |
| 25 | +if [ -z "$github_version" ]; then | |
| 26 | + exit 1 | |
| 27 | +fi | |
| 28 | + | |
| 29 | +# Comparing local and github versions | |
| 30 | +if [ "$(echo -e "$github_version\n$local_version" | sort -V | head -n 1)" = "$github_version" ]; then | |
| 31 | + notify-send -i "$iDIR/note.png" "KooL Hyprland:" "No update available" | |
| 32 | + exit 0 | |
| 33 | +else | |
| 34 | + # update available | |
| 35 | + notify_cmd_base="notify-send -t 10000 -A action1=Update -A action2=NO -h string:x-canonical-private-synchronous:shot-notify" | |
| 36 | + notify_cmd_shot="${notify_cmd_base} -i $iDIR/ja.png" | |
| 37 | + | |
| 38 | + response=$($notify_cmd_shot "KooL Hyprland:" "Update available! Update now?") | |
| 39 | + | |
| 40 | + case "$response" in | |
| 41 | + "action1") | |
| 42 | + if [ -d $KooL_Dots_DIR ]; then | |
| 43 | + if ! command -v kitty &> /dev/null; then | |
| 44 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Kitty terminal not found. Please install Kitty terminal." | |
| 45 | + exit 1 | |
| 46 | + fi | |
| 47 | + kitty -e bash -c " | |
| 48 | + cd $KooL_Dots_DIR && | |
| 49 | + git stash && | |
| 50 | + git pull && | |
| 51 | + ./copy.sh && | |
| 52 | + notify-send -u critical -i "$iDIR/ja.png" 'Update Completed:' 'Kindly log out and relogin to take effect' | |
| 53 | + " | |
| 54 | + | |
| 55 | + else | |
| 56 | + if ! command -v kitty &> /dev/null; then | |
| 57 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Kitty terminal not found. Please install Kitty terminal." | |
| 58 | + exit 1 | |
| 59 | + fi | |
| 60 | + kitty -e bash -c " | |
| 61 | + git clone --depth=1 https://github.com/JaKooLit/Hyprland-Dots.git $KooL_Dots_DIR && | |
| 62 | + cd $KooL_Dots_DIR && | |
| 63 | + chmod +x copy.sh && | |
| 64 | + ./copy.sh && | |
| 65 | + notify-send -u critical -i "$iDIR/ja.png" 'Update Completed:' 'Kindly log out and relogin to take effect' | |
| 66 | + " | |
| 67 | + fi | |
| 68 | + ;; | |
| 69 | + "action2") | |
| 70 | + exit 0 | |
| 71 | + ;; | |
| 72 | + esac | |
| 73 | +fi |
+117-0scripts/Kool_Quick_Settings.sh
| @@ -0,0 +1,117 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Rofi menu for KooL Hyprland Quick Settings (SUPER SHIFT E) | |
| 4 | + | |
| 5 | +# Modify this config file for default terminal and EDITOR | |
| 6 | +config_file="$HOME/.config/hypr/UserConfigs/01-UserDefaults.conf" | |
| 7 | + | |
| 8 | +tmp_config_file=$(mktemp) | |
| 9 | +sed 's/^\$//g; s/ = /=/g' "$config_file" > "$tmp_config_file" | |
| 10 | +source "$tmp_config_file" | |
| 11 | +# ##################################### # | |
| 12 | + | |
| 13 | +# variables | |
| 14 | +configs="$HOME/.config/hypr/configs" | |
| 15 | +UserConfigs="$HOME/.config/hypr/UserConfigs" | |
| 16 | +rofi_theme="$HOME/.config/rofi/config-edit.rasi" | |
| 17 | +msg=' ⁉️ Choose what to do ⁉️' | |
| 18 | +iDIR="$HOME/.config/swaync/images" | |
| 19 | +scriptsDir="$HOME/.config/hypr/scripts" | |
| 20 | +UserScripts="$HOME/.config/hypr/UserScripts" | |
| 21 | + | |
| 22 | +# Function to display the menu options without numbers | |
| 23 | +menu() { | |
| 24 | + cat <<EOF | |
| 25 | +view/edit User Defaults | |
| 26 | +view/edit ENV variables | |
| 27 | +view/edit Window Rules | |
| 28 | +view/edit User Keybinds | |
| 29 | +view/edit User Settings | |
| 30 | +view/edit Startup Apps | |
| 31 | +view/edit Decorations | |
| 32 | +view/edit Animations | |
| 33 | +view/edit Laptop Keybinds | |
| 34 | +view/edit Default Keybinds | |
| 35 | +Choose Kitty Terminal Theme | |
| 36 | +Configure Monitors (nwg-displays) | |
| 37 | +Configure Workspace Rules (nwg-displays) | |
| 38 | +GTK Settings (nwg-look) | |
| 39 | +QT Apps Settings (qt6ct) | |
| 40 | +QT Apps Settings (qt5ct) | |
| 41 | +Choose Hyprland Animations | |
| 42 | +Choose Monitor Profiles | |
| 43 | +Choose Rofi Themes | |
| 44 | +Search for Keybinds | |
| 45 | +Toggle Game Mode | |
| 46 | +Switch Dark-Light Theme | |
| 47 | +EOF | |
| 48 | +} | |
| 49 | + | |
| 50 | +# Main function to handle menu selection | |
| 51 | +main() { | |
| 52 | + choice=$(menu | rofi -i -dmenu -config $rofi_theme -mesg "$msg") | |
| 53 | + | |
| 54 | + # Map choices to corresponding files | |
| 55 | + case "$choice" in | |
| 56 | + "view/edit User Defaults") file="$UserConfigs/01-UserDefaults.conf" ;; | |
| 57 | + "view/edit ENV variables") file="$UserConfigs/ENVariables.conf" ;; | |
| 58 | + "view/edit Window Rules") file="$UserConfigs/WindowRules.conf" ;; | |
| 59 | + "view/edit User Keybinds") file="$UserConfigs/UserKeybinds.conf" ;; | |
| 60 | + "view/edit User Settings") file="$UserConfigs/UserSettings.conf" ;; | |
| 61 | + "view/edit Startup Apps") file="$UserConfigs/Startup_Apps.conf" ;; | |
| 62 | + "view/edit Decorations") file="$UserConfigs/UserDecorations.conf" ;; | |
| 63 | + "view/edit Animations") file="$UserConfigs/UserAnimations.conf" ;; | |
| 64 | + "view/edit Laptop Keybinds") file="$UserConfigs/Laptops.conf" ;; | |
| 65 | + "view/edit Default Keybinds") file="$configs/Keybinds.conf" ;; | |
| 66 | + "Choose Kitty Terminal Theme") $scriptsDir/Kitty_themes.sh ;; | |
| 67 | + "Configure Monitors (nwg-displays)") | |
| 68 | + if ! command -v nwg-displays &>/dev/null; then | |
| 69 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Install nwg-displays first" | |
| 70 | + exit 1 | |
| 71 | + fi | |
| 72 | + nwg-displays ;; | |
| 73 | + "Configure Workspace Rules (nwg-displays)") | |
| 74 | + if ! command -v nwg-displays &>/dev/null; then | |
| 75 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Install nwg-displays first" | |
| 76 | + exit 1 | |
| 77 | + fi | |
| 78 | + nwg-displays ;; | |
| 79 | + "GTK Settings (nwg-look)") | |
| 80 | + if ! command -v nwg-look &>/dev/null; then | |
| 81 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Install nwg-look first" | |
| 82 | + exit 1 | |
| 83 | + fi | |
| 84 | + nwg-look ;; | |
| 85 | + "QT Apps Settings (qt6ct)") | |
| 86 | + if ! command -v qt6ct &>/dev/null; then | |
| 87 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Install qt6ct first" | |
| 88 | + exit 1 | |
| 89 | + fi | |
| 90 | + qt6ct ;; | |
| 91 | + "QT Apps Settings (qt5ct)") | |
| 92 | + if ! command -v qt5ct &>/dev/null; then | |
| 93 | + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Install qt5ct first" | |
| 94 | + exit 1 | |
| 95 | + fi | |
| 96 | + qt5ct ;; | |
| 97 | + "Choose Hyprland Animations") $scriptsDir/Animations.sh ;; | |
| 98 | + "Choose Monitor Profiles") $scriptsDir/MonitorProfiles.sh ;; | |
| 99 | + "Choose Rofi Themes") $scriptsDir/RofiThemeSelector.sh ;; | |
| 100 | + "Search for Keybinds") $scriptsDir/KeyBinds.sh ;; | |
| 101 | + "Toggle Game Mode") $scriptsDir/GameMode.sh ;; | |
| 102 | + "Switch Dark-Light Theme") $scriptsDir/DarkLight.sh ;; | |
| 103 | + *) return ;; # Do nothing for invalid choices | |
| 104 | + esac | |
| 105 | + | |
| 106 | + # Open the selected file in the terminal with the text editor | |
| 107 | + if [ -n "$file" ]; then | |
| 108 | + $term -e $edit "$file" | |
| 109 | + fi | |
| 110 | +} | |
| 111 | + | |
| 112 | +# Check if rofi is already running | |
| 113 | +if pidof rofi > /dev/null; then | |
| 114 | + pkill rofi | |
| 115 | +fi | |
| 116 | + | |
| 117 | +main |
+6-0scripts/LiveMicTest.sh
| @@ -0,0 +1,6 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +if systemctl --user is-active --quiet live-mic; then | |
| 3 | + systemctl --user stop live-mic | |
| 4 | +else | |
| 5 | + systemctl --user start live-mic | |
| 6 | +fi |
+7-0scripts/LockScreen.sh
| @@ -0,0 +1,7 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | + | |
| 4 | +# For Hyprlock | |
| 5 | +#pidof hyprlock || hyprlock -q | |
| 6 | + | |
| 7 | +loginctl lock-session |
+61-0scripts/MediaCtrl.sh
| @@ -0,0 +1,61 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Playerctl | |
| 4 | + | |
| 5 | +music_icon="$HOME/.config/swaync/icons/music.png" | |
| 6 | + | |
| 7 | +# Play the next track | |
| 8 | +play_next() { | |
| 9 | + playerctl next | |
| 10 | + show_music_notification | |
| 11 | +} | |
| 12 | + | |
| 13 | +# Play the previous track | |
| 14 | +play_previous() { | |
| 15 | + playerctl previous | |
| 16 | + show_music_notification | |
| 17 | +} | |
| 18 | + | |
| 19 | +# Toggle play/pause | |
| 20 | +toggle_play_pause() { | |
| 21 | + playerctl play-pause | |
| 22 | + show_music_notification | |
| 23 | +} | |
| 24 | + | |
| 25 | +# Stop playback | |
| 26 | +stop_playback() { | |
| 27 | + playerctl stop | |
| 28 | + notify-send -e -u low -i $music_icon " Playback:" " Stopped" | |
| 29 | +} | |
| 30 | + | |
| 31 | +# Display notification with song information | |
| 32 | +show_music_notification() { | |
| 33 | + status=$(playerctl status) | |
| 34 | + if [[ "$status" == "Playing" ]]; then | |
| 35 | + song_title=$(playerctl metadata title) | |
| 36 | + song_artist=$(playerctl metadata artist) | |
| 37 | + notify-send -e -u low -i $music_icon "Now Playing:" "$song_title by $song_artist" | |
| 38 | + elif [[ "$status" == "Paused" ]]; then | |
| 39 | + notify-send -e -u low -i $music_icon " Playback:" " Paused" | |
| 40 | + fi | |
| 41 | +} | |
| 42 | + | |
| 43 | +# Get media control action from command line argument | |
| 44 | +case "$1" in | |
| 45 | + "--nxt") | |
| 46 | + play_next | |
| 47 | + ;; | |
| 48 | + "--prv") | |
| 49 | + play_previous | |
| 50 | + ;; | |
| 51 | + "--pause") | |
| 52 | + toggle_play_pause | |
| 53 | + ;; | |
| 54 | + "--stop") | |
| 55 | + stop_playback | |
| 56 | + ;; | |
| 57 | + *) | |
| 58 | + echo "Usage: $0 [--nxt|--prv|--pause|--stop]" | |
| 59 | + exit 1 | |
| 60 | + ;; | |
| 61 | +esac |
+42-0scripts/MonitorProfiles.sh
| @@ -0,0 +1,42 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# For applying Pre-configured Monitor Profiles | |
| 4 | + | |
| 5 | +# Check if rofi is already running | |
| 6 | +if pidof rofi > /dev/null; then | |
| 7 | + pkill rofi | |
| 8 | +fi | |
| 9 | + | |
| 10 | +# Variables | |
| 11 | +iDIR="$HOME/.config/swaync/images" | |
| 12 | +SCRIPTSDIR="$HOME/.config/hypr/scripts" | |
| 13 | +monitor_dir="$HOME/.config/hypr/Monitor_Profiles" | |
| 14 | +target="$HOME/.config/hypr/monitors.conf" | |
| 15 | +rofi_theme="$HOME/.config/rofi/config-Monitors.rasi" | |
| 16 | +msg='❗NOTE:❗ This will overwrite $HOME/.config/hypr/monitors.conf' | |
| 17 | + | |
| 18 | +# Define the list of files to ignore | |
| 19 | +ignore_files=( | |
| 20 | + "README" | |
| 21 | +) | |
| 22 | + | |
| 23 | +# list of Monitor Profiles, sorted alphabetically with numbers first | |
| 24 | +mon_profiles_list=$(find -L "$monitor_dir" -maxdepth 1 -type f | sed 's/.*\///' | sed 's/\.conf$//' | sort -V) | |
| 25 | + | |
| 26 | +# Remove ignored files from the list | |
| 27 | +for ignored_file in "${ignore_files[@]}"; do | |
| 28 | + mon_profiles_list=$(echo "$mon_profiles_list" | grep -v -E "^$ignored_file$") | |
| 29 | +done | |
| 30 | + | |
| 31 | +# Rofi Menu | |
| 32 | +chosen_file=$(echo "$mon_profiles_list" | rofi -i -dmenu -config $rofi_theme -mesg "$msg") | |
| 33 | + | |
| 34 | +if [[ -n "$chosen_file" ]]; then | |
| 35 | + full_path="$monitor_dir/$chosen_file.conf" | |
| 36 | + cp "$full_path" "$target" | |
| 37 | + | |
| 38 | + notify-send -u low -i "$iDIR/ja.png" "$chosen_file" "Monitor Profile Loaded" | |
| 39 | +fi | |
| 40 | + | |
| 41 | +sleep 1 | |
| 42 | +${SCRIPTSDIR}/RefreshNoWaybar.sh & |
+2-0scripts/OpenVolume.sh
| @@ -0,0 +1,2 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +pavucontrol & |
+21-0scripts/Polkit-NixOS.sh
| @@ -0,0 +1,21 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# For NixOS starting of polkit-gnome. Dec 2023, the settings stated in NixOS wiki does not work so have to manual start it | |
| 4 | + | |
| 5 | +# Find all polkit-gnome executables in the Nix store | |
| 6 | +polkit_gnome_paths=$(find /nix/store -name 'polkit-gnome-authentication-agent-1' -type f 2>/dev/null) | |
| 7 | + | |
| 8 | +for polkit_gnome_path in $polkit_gnome_paths; do | |
| 9 | + # Extract the directory containing the executable | |
| 10 | + polkit_gnome_dir=$(dirname "$polkit_gnome_path") | |
| 11 | + | |
| 12 | + # Check if the executable is valid and exists | |
| 13 | + if [ -x "$polkit_gnome_dir/polkit-gnome-authentication-agent-1" ]; then | |
| 14 | + # Start the Polkit-GNOME Authentication Agent | |
| 15 | + "$polkit_gnome_dir/polkit-gnome-authentication-agent-1" & | |
| 16 | + exit 0 | |
| 17 | + fi | |
| 18 | +done | |
| 19 | + | |
| 20 | +# If no valid executable is found, report an error | |
| 21 | +echo "No valid Polkit-GNOME Authentication Agent executable found." |
+34-0scripts/Polkit.sh
| @@ -0,0 +1,34 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# This is for polkits, it will start from top and will stop if the top is executed | |
| 4 | + | |
| 5 | +# Polkit possible paths files to check | |
| 6 | +polkit=( | |
| 7 | + "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" | |
| 8 | + "/usr/libexec/hyprpolkitagent" | |
| 9 | + "/usr/lib/hyprpolkitagent" | |
| 10 | + "/usr/lib/hyprpolkitagent/hyprpolkitagent" | |
| 11 | + "/usr/lib/polkit-kde-authentication-agent-1" | |
| 12 | + "/usr/lib/polkit-gnome-authentication-agent-1" | |
| 13 | + "/usr/libexec/polkit-gnome-authentication-agent-1" | |
| 14 | + "/usr/libexec/polkit-mate-authentication-agent-1" | |
| 15 | + "/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1" | |
| 16 | + "/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1" | |
| 17 | +) | |
| 18 | + | |
| 19 | +executed=false # Flag to track if a file has been executed | |
| 20 | + | |
| 21 | +# Loop through the list of files | |
| 22 | +for file in "${polkit[@]}"; do | |
| 23 | + if [ -e "$file" ]; then | |
| 24 | + echo "File $file found, executing command..." | |
| 25 | + exec "$file" | |
| 26 | + executed=true | |
| 27 | + break | |
| 28 | + fi | |
| 29 | +done | |
| 30 | + | |
| 31 | +# If none of the files were found, you can add a fallback command here | |
| 32 | +if [ "$executed" == false ]; then | |
| 33 | + echo "None of the specified files were found. Install a Polkit" | |
| 34 | +fi |
+16-0scripts/PortalHyprland.sh
| @@ -0,0 +1,16 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# For manually starting xdg-desktop-portal-hyprland | |
| 4 | + | |
| 5 | +sleep 1 | |
| 6 | +killall xdg-desktop-portal-hyprland | |
| 7 | +killall xdg-desktop-portal-wlr | |
| 8 | +killall xdg-desktop-portal-gnome | |
| 9 | +killall xdg-desktop-portal | |
| 10 | +sleep 1 | |
| 11 | +/usr/lib/xdg-desktop-portal-hyprland & | |
| 12 | +/usr/libexec/xdg-desktop-portal-hyprland & | |
| 13 | +sleep 2 | |
| 14 | +/usr/lib/xdg-desktop-portal & | |
| 15 | +/usr/libexec/xdg-desktop-portal & | |
| 16 | + |
+52-0scripts/Refresh.sh
| @@ -0,0 +1,52 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Scripts for refreshing ags, waybar, rofi, swaync, wallust | |
| 4 | + | |
| 5 | +SCRIPTSDIR=$HOME/.config/hypr/scripts | |
| 6 | +UserScripts=$HOME/.config/hypr/UserScripts | |
| 7 | + | |
| 8 | +# Define file_exists function | |
| 9 | +file_exists() { | |
| 10 | + if [ -e "$1" ]; then | |
| 11 | + return 0 # File exists | |
| 12 | + else | |
| 13 | + return 1 # File does not exist | |
| 14 | + fi | |
| 15 | +} | |
| 16 | + | |
| 17 | +# Kill already running processes | |
| 18 | +_ps=(waybar rofi swaync ags) | |
| 19 | +for _prs in "${_ps[@]}"; do | |
| 20 | + if pidof "${_prs}" >/dev/null; then | |
| 21 | + pkill "${_prs}" | |
| 22 | + fi | |
| 23 | +done | |
| 24 | + | |
| 25 | +# added since wallust sometimes not applying | |
| 26 | +killall -SIGUSR2 waybar | |
| 27 | + | |
| 28 | +# quit ags & relaunch ags | |
| 29 | +ags -q && ags & | |
| 30 | + | |
| 31 | +# some process to kill | |
| 32 | +for pid in $(pidof waybar rofi swaync ags swaybg); do | |
| 33 | + kill -SIGUSR1 "$pid" | |
| 34 | +done | |
| 35 | + | |
| 36 | +#Restart waybar | |
| 37 | +sleep 1 | |
| 38 | +waybar & | |
| 39 | + | |
| 40 | +# relaunch swaync | |
| 41 | +sleep 0.5 | |
| 42 | +swaync > /dev/null 2>&1 & | |
| 43 | +# reload swaync | |
| 44 | +swaync-client --reload-config | |
| 45 | + | |
| 46 | +# Relaunching rainbow borders if the script exists | |
| 47 | +sleep 1 | |
| 48 | +if file_exists "${UserScripts}/RainbowBorders.sh"; then | |
| 49 | + ${UserScripts}/RainbowBorders.sh & | |
| 50 | +fi | |
| 51 | + | |
| 52 | +exit 0 |
+44-0scripts/RefreshNoWaybar.sh
| @@ -0,0 +1,44 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | + | |
| 4 | +# Modified version of Refresh.sh but waybar wont refresh | |
| 5 | +# Used by automatic wallpaper change | |
| 6 | +# Modified inorder to refresh rofi background, Wallust, SwayNC only | |
| 7 | + | |
| 8 | +SCRIPTSDIR=$HOME/.config/hypr/scripts | |
| 9 | +UserScripts=$HOME/.config/hypr/UserScripts | |
| 10 | + | |
| 11 | +# Define file_exists function | |
| 12 | +file_exists() { | |
| 13 | + if [ -e "$1" ]; then | |
| 14 | + return 0 # File exists | |
| 15 | + else | |
| 16 | + return 1 # File does not exist | |
| 17 | + fi | |
| 18 | +} | |
| 19 | + | |
| 20 | +# Kill already running processes | |
| 21 | +_ps=(rofi) | |
| 22 | +for _prs in "${_ps[@]}"; do | |
| 23 | + if pidof "${_prs}" >/dev/null; then | |
| 24 | + pkill "${_prs}" | |
| 25 | + fi | |
| 26 | +done | |
| 27 | + | |
| 28 | +# quit ags & relaunch ags | |
| 29 | +ags -q && ags & | |
| 30 | + | |
| 31 | +# Wallust refresh | |
| 32 | +${SCRIPTSDIR}/WallustSwww.sh & | |
| 33 | + | |
| 34 | +# reload swaync | |
| 35 | +swaync-client --reload-config | |
| 36 | + | |
| 37 | +# Relaunching rainbow borders if the script exists | |
| 38 | +sleep 1 | |
| 39 | +if file_exists "${UserScripts}/RainbowBorders.sh"; then | |
| 40 | + ${UserScripts}/RainbowBorders.sh & | |
| 41 | +fi | |
| 42 | + | |
| 43 | + | |
| 44 | +exit 0 |
+1871-0scripts/RofiEmoji.sh
| @@ -0,0 +1,1871 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | + | |
| 4 | +# Variables | |
| 5 | +rofi_theme="$HOME/.config/rofi/config-emoji.rasi" | |
| 6 | +msg='** note ** 👀 Click or Return to choose || Ctrl V to Paste' | |
| 7 | + | |
| 8 | +# Check if rofi is already running | |
| 9 | +if pidof rofi > /dev/null; then | |
| 10 | + pkill rofi | |
| 11 | +fi | |
| 12 | + | |
| 13 | +sed '1,/^# # DATA # #$/d' "$0" | \ | |
| 14 | +rofi -i -dmenu -mesg "$msg" -config $rofi_theme | \ | |
| 15 | +awk '{print $1}' | \ | |
| 16 | +head -n 1 | \ | |
| 17 | +tr -d '\n' | \ | |
| 18 | +wl-copy | |
| 19 | + | |
| 20 | +exit | |
| 21 | + | |
| 22 | +# # DATA # # | |
| 23 | +😀 grinning face face smile happy joy :D grin | |
| 24 | +😃 grinning face with big eyes face happy joy haha :D :) smile funny | |
| 25 | +😄 grinning face with smiling eyes face happy joy funny haha laugh like :D :) smile | |
| 26 | +😁 beaming face with smiling eyes face happy smile joy kawaii | |
| 27 | +😆 grinning squinting face happy joy lol satisfied haha face glad XD laugh | |
| 28 | +😅 grinning face with sweat face hot happy laugh sweat smile relief | |
| 29 | +🤣 rolling on the floor laughing face rolling floor laughing lol haha rofl | |
| 30 | +😂 face with tears of joy face cry tears weep happy happytears haha | |
| 31 | +🙂 slightly smiling face face smile | |
| 32 | +🙃 upside down face face flipped silly smile | |
| 33 | +😉 winking face face happy mischievous secret ;) smile eye | |
| 34 | +😊 smiling face with smiling eyes face smile happy flushed crush embarrassed shy joy | |
| 35 | +😇 smiling face with halo face angel heaven halo | |
| 36 | +🥰 smiling face with hearts face love like affection valentines infatuation crush hearts adore | |
| 37 | +😍 smiling face with heart eyes face love like affection valentines infatuation crush heart | |
| 38 | +🤩 star struck face smile starry eyes grinning | |
| 39 | +😘 face blowing a kiss face love like affection valentines infatuation kiss | |
| 40 | +😗 kissing face love like face 3 valentines infatuation kiss | |
| 41 | +☺️ smiling face face blush massage happiness | |
| 42 | +😚 kissing face with closed eyes face love like affection valentines infatuation kiss | |
| 43 | +😙 kissing face with smiling eyes face affection valentines infatuation kiss | |
| 44 | +😋 face savoring food happy joy tongue smile face silly yummy nom delicious savouring | |
| 45 | +😛 face with tongue face prank childish playful mischievous smile tongue | |
| 46 | +😜 winking face with tongue face prank childish playful mischievous smile wink tongue | |
| 47 | +🤪 zany face face goofy crazy | |
| 48 | +😝 squinting face with tongue face prank playful mischievous smile tongue | |
| 49 | +🤑 money mouth face face rich dollar money | |
| 50 | +🤗 hugging face face smile hug | |
| 51 | +🤭 face with hand over mouth face whoops shock surprise | |
| 52 | +🤫 shushing face face quiet shhh | |
| 53 | +🤔 thinking face face hmmm think consider | |
| 54 | +🤐 zipper mouth face face sealed zipper secret | |
| 55 | +🤨 face with raised eyebrow face distrust scepticism disapproval disbelief surprise | |
| 56 | +😐 neutral face indifference meh :| neutral | |
| 57 | +😑 expressionless face face indifferent - - meh deadpan | |
| 58 | +😶 face without mouth face hellokitty | |
| 59 | +😏 smirking face face smile mean prank smug sarcasm | |
| 60 | +😒 unamused face indifference bored straight face serious sarcasm unimpressed skeptical dubious side eye | |
| 61 | +🙄 face with rolling eyes face eyeroll frustrated | |
| 62 | +😬 grimacing face face grimace teeth | |
| 63 | +🤥 lying face face lie pinocchio | |
| 64 | +😌 relieved face face relaxed phew massage happiness | |
| 65 | +😔 pensive face face sad depressed upset | |
| 66 | +😪 sleepy face face tired rest nap | |
| 67 | +🤤 drooling face face | |
| 68 | +😴 sleeping face face tired sleepy night zzz | |
| 69 | +😷 face with medical mask face sick ill disease | |
| 70 | +🤒 face with thermometer sick temperature thermometer cold fever | |
| 71 | +🤕 face with head bandage injured clumsy bandage hurt | |
| 72 | +🤢 nauseated face face vomit gross green sick throw up ill | |
| 73 | +🤮 face vomiting face sick | |
| 74 | +🤧 sneezing face face gesundheit sneeze sick allergy | |
| 75 | +🥵 hot face face feverish heat red sweating | |
| 76 | +🥶 cold face face blue freezing frozen frostbite icicles | |
| 77 | +🥴 woozy face face dizzy intoxicated tipsy wavy | |
| 78 | +😵 dizzy face spent unconscious xox dizzy | |
| 79 | +🤯 exploding head face shocked mind blown | |
| 80 | +🤠 cowboy hat face face cowgirl hat | |
| 81 | +🥳 partying face face celebration woohoo | |
| 82 | +😎 smiling face with sunglasses face cool smile summer beach sunglass | |
| 83 | +🤓 nerd face face nerdy geek dork | |
| 84 | +🧐 face with monocle face stuffy wealthy | |
| 85 | +😕 confused face face indifference huh weird hmmm :/ | |
| 86 | +😟 worried face face concern nervous :( | |
| 87 | +🙁 slightly frowning face face frowning disappointed sad upset | |
| 88 | +☹️ frowning face face sad upset frown | |
| 89 | +😮 face with open mouth face surprise impressed wow whoa :O | |
| 90 | +😯 hushed face face woo shh | |
| 91 | +😲 astonished face face xox surprised poisoned | |
| 92 | +😳 flushed face face blush shy flattered | |
| 93 | +🥺 pleading face face begging mercy | |
| 94 | +😦 frowning face with open mouth face aw what | |
| 95 | +😧 anguished face face stunned nervous | |
| 96 | +😨 fearful face face scared terrified nervous oops huh | |
| 97 | +😰 anxious face with sweat face nervous sweat | |
| 98 | +😥 sad but relieved face face phew sweat nervous | |
| 99 | +😢 crying face face tears sad depressed upset :'( | |
| 100 | +😭 loudly crying face face cry tears sad upset depressed | |
| 101 | +😱 face screaming in fear face munch scared omg | |
| 102 | +😖 confounded face face confused sick unwell oops :S | |
| 103 | +😣 persevering face face sick no upset oops | |
| 104 | +😞 disappointed face face sad upset depressed :( | |
| 105 | +😓 downcast face with sweat face hot sad tired exercise | |
| 106 | +😩 weary face face tired sleepy sad frustrated upset | |
| 107 | +😫 tired face sick whine upset frustrated | |
| 108 | +🥱 yawning face tired sleepy | |
| 109 | +😤 face with steam from nose face gas phew proud pride | |
| 110 | +😡 pouting face angry mad hate despise | |
| 111 | +😠 angry face mad face annoyed frustrated | |
| 112 | +🤬 face with symbols on mouth face swearing cursing cussing profanity expletive | |
| 113 | +😈 smiling face with horns devil horns | |
| 114 | +👿 angry face with horns devil angry horns | |
| 115 | +💀 skull dead skeleton creepy death | |
| 116 | +☠️ skull and crossbones poison danger deadly scary death pirate evil | |
| 117 | +💩 pile of poo hankey shitface fail turd shit | |
| 118 | +🤡 clown face face | |
| 119 | +👹 ogre monster red mask halloween scary creepy devil demon japanese ogre | |
| 120 | +👺 goblin red evil mask monster scary creepy japanese goblin | |
| 121 | +👻 ghost halloween spooky scary | |
| 122 | +👽 alien UFO paul weird outer space | |
| 123 | +👾 alien monster game arcade play | |
| 124 | +🤖 robot computer machine bot | |
| 125 | +😺 grinning cat animal cats happy smile | |
| 126 | +😸 grinning cat with smiling eyes animal cats smile | |
| 127 | +😹 cat with tears of joy animal cats haha happy tears | |
| 128 | +😻 smiling cat with heart eyes animal love like affection cats valentines heart | |
| 129 | +😼 cat with wry smile animal cats smirk | |
| 130 | +😽 kissing cat animal cats kiss | |
| 131 | +🙀 weary cat animal cats munch scared scream | |
| 132 | +😿 crying cat animal tears weep sad cats upset cry | |
| 133 | +😾 pouting cat animal cats | |
| 134 | +🙈 see no evil monkey monkey animal nature haha | |
| 135 | +🙉 hear no evil monkey animal monkey nature | |
| 136 | +🙊 speak no evil monkey monkey animal nature omg | |
| 137 | +💋 kiss mark face lips love like affection valentines | |
| 138 | +💌 love letter email like affection envelope valentines | |
| 139 | +💘 heart with arrow love like heart affection valentines | |
| 140 | +💝 heart with ribbon love valentines | |
| 141 | +💖 sparkling heart love like affection valentines | |
| 142 | +💗 growing heart like love affection valentines pink | |
| 143 | +💓 beating heart love like affection valentines pink heart | |
| 144 | +💞 revolving hearts love like affection valentines | |
| 145 | +💕 two hearts love like affection valentines heart | |
| 146 | +💟 heart decoration purple-square love like | |
| 147 | +❣️ heart exclamation decoration love | |
| 148 | +💔 broken heart sad sorry break heart heartbreak | |
| 149 | +❤️ red heart love like valentines | |
| 150 | +🧡 orange heart love like affection valentines | |
| 151 | +💛 yellow heart love like affection valentines | |
| 152 | +💚 green heart love like affection valentines | |
| 153 | +💙 blue heart love like affection valentines | |
| 154 | +💜 purple heart love like affection valentines | |
| 155 | +🤎 brown heart coffee | |
| 156 | +🖤 black heart evil | |
| 157 | +🤍 white heart pure | |
| 158 | +💯 hundred points score perfect numbers century exam quiz test pass hundred | |
| 159 | +💢 anger symbol angry mad | |
| 160 | +💥 collision bomb explode explosion collision blown | |
| 161 | +💫 dizzy star sparkle shoot magic | |
| 162 | +💦 sweat droplets water drip oops | |
| 163 | +💨 dashing away wind air fast shoo fart smoke puff | |
| 164 | +🕳️ hole embarrassing | |
| 165 | +💣 bomb boom explode explosion terrorism | |
| 166 | +💬 speech balloon bubble words message talk chatting | |
| 167 | +👁️🗨️ eye in speech bubble info | |
| 168 | +🗨️ left speech bubble words message talk chatting | |
| 169 | +🗯️ right anger bubble caption speech thinking mad | |
| 170 | +💭 thought balloon bubble cloud speech thinking dream | |
| 171 | +💤 zzz sleepy tired dream | |
| 172 | +👋 waving hand hands gesture goodbye solong farewell hello hi palm | |
| 173 | +🤚 raised back of hand fingers raised backhand | |
| 174 | +🖐️ hand with fingers splayed hand fingers palm | |
| 175 | +✋ raised hand fingers stop highfive palm ban | |
| 176 | +🖖 vulcan salute hand fingers spock star trek | |
| 177 | +👌 ok hand fingers limbs perfect ok okay | |
| 178 | +🤏 pinching hand tiny small size | |
| 179 | +✌️ victory hand fingers ohyeah hand peace victory two | |
| 180 | +🤞 crossed fingers good lucky | |
| 181 | +🤟 love you gesture hand fingers gesture | |
| 182 | +🤘 sign of the horns hand fingers evil eye sign of horns rock on | |
| 183 | +🤙 call me hand hands gesture shaka | |
| 184 | +👈 backhand index pointing left direction fingers hand left | |
| 185 | +👉 backhand index pointing right fingers hand direction right | |
| 186 | +👆 backhand index pointing up fingers hand direction up | |
| 187 | +🖕 middle finger hand fingers rude middle flipping | |
| 188 | +👇 backhand index pointing down fingers hand direction down | |
| 189 | +☝️ index pointing up hand fingers direction up | |
| 190 | +👍 thumbs up thumbsup yes awesome good agree accept cool hand like +1 | |
| 191 | +👎 thumbs down thumbsdown no dislike hand -1 | |
| 192 | +✊ raised fist fingers hand grasp | |
| 193 | +👊 oncoming fist angry violence fist hit attack hand | |
| 194 | +🤛 left facing fist hand fistbump | |
| 195 | +🤜 right facing fist hand fistbump | |
| 196 | +👏 clapping hands hands praise applause congrats yay | |
| 197 | +🙌 raising hands gesture hooray yea celebration hands | |
| 198 | +👐 open hands fingers butterfly hands open | |
| 199 | +🤲 palms up together hands gesture cupped prayer | |
| 200 | +🤝 handshake agreement shake | |
| 201 | +🙏 folded hands please hope wish namaste highfive pray | |
| 202 | +✍️ writing hand lower left ballpoint pen stationery write compose | |
| 203 | +💅 nail polish beauty manicure finger fashion nail | |
| 204 | +🤳 selfie camera phone | |
| 205 | +💪 flexed biceps arm flex hand summer strong biceps | |
| 206 | +🦾 mechanical arm accessibility | |
| 207 | +🦿 mechanical leg accessibility | |
| 208 | +🦵 leg kick limb | |
| 209 | +🦶 foot kick stomp | |
| 210 | +👂 ear face hear sound listen | |
| 211 | +🦻 ear with hearing aid accessibility | |
| 212 | +👃 nose smell sniff | |
| 213 | +🧠 brain smart intelligent | |
| 214 | +🦷 tooth teeth dentist | |
| 215 | +🦴 bone skeleton | |
| 216 | +👀 eyes look watch stalk peek see | |
| 217 | +👁️ eye face look see watch stare | |
| 218 | +👅 tongue mouth playful | |
| 219 | +👄 mouth mouth kiss | |
| 220 | +👶 baby child boy girl toddler | |
| 221 | +🧒 child gender-neutral young | |
| 222 | +👦 boy man male guy teenager | |
| 223 | +👧 girl female woman teenager | |
| 224 | +🧑 person gender-neutral person | |
| 225 | +👱 person blond hair hairstyle | |
| 226 | +👨 man mustache father dad guy classy sir moustache | |
| 227 | +🧔 man beard person bewhiskered | |
| 228 | +👨🦰 man red hair hairstyle | |
| 229 | +👨🦱 man curly hair hairstyle | |
| 230 | +👨🦳 man white hair old elder | |
| 231 | +👨🦲 man bald hairless | |
| 232 | +👩 woman female girls lady | |
| 233 | +👩🦰 woman red hair hairstyle | |
| 234 | +🧑🦰 person red hair hairstyle | |
| 235 | +👩🦱 woman curly hair hairstyle | |
| 236 | +🧑🦱 person curly hair hairstyle | |
| 237 | +👩🦳 woman white hair old elder | |
| 238 | +🧑🦳 person white hair elder old | |
| 239 | +👩🦲 woman bald hairless | |
| 240 | +🧑🦲 person bald hairless | |
| 241 | +👱♀️ woman blond hair woman female girl blonde person | |
| 242 | +👱♂️ man blond hair man male boy blonde guy person | |
| 243 | +🧓 older person human elder senior gender-neutral | |
| 244 | +👴 old man human male men old elder senior | |
| 245 | +👵 old woman human female women lady old elder senior | |
| 246 | +🙍 person frowning worried | |
| 247 | +🙍♂️ man frowning male boy man sad depressed discouraged unhappy | |
| 248 | +🙍♀️ woman frowning female girl woman sad depressed discouraged unhappy | |
| 249 | +🙎 person pouting upset | |
| 250 | +🙎♂️ man pouting male boy man | |
| 251 | +🙎♀️ woman pouting female girl woman | |
| 252 | +🙅 person gesturing no decline | |
| 253 | +🙅♂️ man gesturing no male boy man nope | |
| 254 | +🙅♀️ woman gesturing no female girl woman nope | |
| 255 | +🙆 person gesturing ok agree | |
| 256 | +🙆♂️ man gesturing ok men boy male blue human man | |
| 257 | +🙆♀️ woman gesturing ok women girl female pink human woman | |
| 258 | +💁 person tipping hand information | |
| 259 | +💁♂️ man tipping hand male boy man human information | |
| 260 | +💁♀️ woman tipping hand female girl woman human information | |
| 261 | +🙋 person raising hand question | |
| 262 | +🙋♂️ man raising hand male boy man | |
| 263 | +🙋♀️ woman raising hand female girl woman | |
| 264 | +🧏 deaf person accessibility | |
| 265 | +🧏♂️ deaf man accessibility | |
| 266 | +🧏♀️ deaf woman accessibility | |
| 267 | +🙇 person bowing respectiful | |
| 268 | +🙇♂️ man bowing man male boy | |
| 269 | +🙇♀️ woman bowing woman female girl | |
| 270 | +🤦 person facepalming disappointed | |
| 271 | +🤦♂️ man facepalming man male boy disbelief | |
| 272 | +🤦♀️ woman facepalming woman female girl disbelief | |
| 273 | +🤷 person shrugging regardless | |
| 274 | +🤷♂️ man shrugging man male boy confused indifferent doubt | |
| 275 | +🤷♀️ woman shrugging woman female girl confused indifferent doubt | |
| 276 | +🧑⚕️ health worker hospital | |
| 277 | +👨⚕️ man health worker doctor nurse therapist healthcare man human | |
| 278 | +👩⚕️ woman health worker doctor nurse therapist healthcare woman human | |
| 279 | +🧑🎓 student learn | |
| 280 | +👨🎓 man student graduate man human | |
| 281 | +👩🎓 woman student graduate woman human | |
| 282 | +🧑🏫 teacher professor | |
| 283 | +👨🏫 man teacher instructor professor man human | |
| 284 | +👩🏫 woman teacher instructor professor woman human | |
| 285 | +🧑⚖️ judge law | |
| 286 | +👨⚖️ man judge justice court man human | |
| 287 | +👩⚖️ woman judge justice court woman human | |
| 288 | +🧑🌾 farmer crops | |
| 289 | +👨🌾 man farmer rancher gardener man human | |
| 290 | +👩🌾 woman farmer rancher gardener woman human | |
| 291 | +🧑🍳 cook food kitchen culinary | |
| 292 | +👨🍳 man cook chef man human | |
| 293 | +👩🍳 woman cook chef woman human | |
| 294 | +🧑🔧 mechanic worker technician | |
| 295 | +👨🔧 man mechanic plumber man human wrench | |
| 296 | +👩🔧 woman mechanic plumber woman human wrench | |
| 297 | +🧑🏭 factory worker labor | |
| 298 | +👨🏭 man factory worker assembly industrial man human | |
| 299 | +👩🏭 woman factory worker assembly industrial woman human | |
| 300 | +🧑💼 office worker business | |
| 301 | +👨💼 man office worker business manager man human | |
| 302 | +👩💼 woman office worker business manager woman human | |
| 303 | +🧑🔬 scientist chemistry | |
| 304 | +👨🔬 man scientist biologist chemist engineer physicist man human | |
| 305 | +👩🔬 woman scientist biologist chemist engineer physicist woman human | |
| 306 | +🧑💻 technologist computer | |
| 307 | +👨💻 man technologist coder developer engineer programmer software man human laptop computer | |
| 308 | +👩💻 woman technologist coder developer engineer programmer software woman human laptop computer | |
| 309 | +🧑🎤 singer song artist performer | |
| 310 | +👨🎤 man singer rockstar entertainer man human | |
| 311 | +👩🎤 woman singer rockstar entertainer woman human | |
| 312 | +🧑🎨 artist painting draw creativity | |
| 313 | +👨🎨 man artist painter man human | |
| 314 | +👩🎨 woman artist painter woman human | |
| 315 | +🧑✈️ pilot fly plane airplane | |
| 316 | +👨✈️ man pilot aviator plane man human | |
| 317 | +👩✈️ woman pilot aviator plane woman human | |
| 318 | +🧑🚀 astronaut outerspace | |
| 319 | +👨🚀 man astronaut space rocket man human | |
| 320 | +👩🚀 woman astronaut space rocket woman human | |
| 321 | +🧑🚒 firefighter fire | |
| 322 | +👨🚒 man firefighter fireman man human | |
| 323 | +👩🚒 woman firefighter fireman woman human | |
| 324 | +👮 police officer cop | |
| 325 | +👮♂️ man police officer man police law legal enforcement arrest 911 | |
| 326 | +👮♀️ woman police officer woman police law legal enforcement arrest 911 female | |
| 327 | +🕵️ detective human spy detective | |
| 328 | +🕵️♂️ man detective crime | |
| 329 | +🕵️♀️ woman detective human spy detective female woman | |
| 330 | +💂 guard protect | |
| 331 | +💂♂️ man guard uk gb british male guy royal | |
| 332 | +💂♀️ woman guard uk gb british female royal woman | |
| 333 | +👷 construction worker labor build | |
| 334 | +👷♂️ man construction worker male human wip guy build construction worker labor | |
| 335 | +👷♀️ woman construction worker female human wip build construction worker labor woman | |
| 336 | +🤴 prince boy man male crown royal king | |
| 337 | +👸 princess girl woman female blond crown royal queen | |
| 338 | +👳 person wearing turban headdress | |
| 339 | +👳♂️ man wearing turban male indian hinduism arabs | |
| 340 | +👳♀️ woman wearing turban female indian hinduism arabs woman | |
| 341 | +👲 man with skullcap male boy chinese | |
| 342 | +🧕 woman with headscarf female hijab mantilla tichel | |
| 343 | +🤵 man in tuxedo couple marriage wedding groom | |
| 344 | +👰 bride with veil couple marriage wedding woman bride | |
| 345 | +🤰 pregnant woman baby | |
| 346 | +🤱 breast feeding nursing baby | |
| 347 | +👼 baby angel heaven wings halo | |
| 348 | +🎅 santa claus festival man male xmas father christmas | |
| 349 | +🤶 mrs claus woman female xmas mother christmas | |
| 350 | +🦸 superhero marvel | |
| 351 | +🦸♂️ man superhero man male good hero superpowers | |
| 352 | +🦸♀️ woman superhero woman female good heroine superpowers | |
| 353 | +🦹 supervillain marvel | |
| 354 | +🦹♂️ man supervillain man male evil bad criminal hero superpowers | |
| 355 | +🦹♀️ woman supervillain woman female evil bad criminal heroine superpowers | |
| 356 | +🧙 mage magic | |
| 357 | +🧙♂️ man mage man male mage sorcerer | |
| 358 | +🧙♀️ woman mage woman female mage witch | |
| 359 | +🧚 fairy wings magical | |
| 360 | +🧚♂️ man fairy man male | |
| 361 | +🧚♀️ woman fairy woman female | |
| 362 | +🧛 vampire blood twilight | |
| 363 | +🧛♂️ man vampire man male dracula | |
| 364 | +🧛♀️ woman vampire woman female | |
| 365 | +🧜 merperson sea | |
| 366 | +🧜♂️ merman man male triton | |
| 367 | +🧜♀️ mermaid woman female merwoman ariel | |
| 368 | +🧝 elf magical | |
| 369 | +🧝♂️ man elf man male | |
| 370 | +🧝♀️ woman elf woman female | |
| 371 | +🧞 genie magical wishes | |
| 372 | +🧞♂️ man genie man male | |
| 373 | +🧞♀️ woman genie woman female | |
| 374 | +🧟 zombie dead | |
| 375 | +🧟♂️ man zombie man male dracula undead walking dead | |
| 376 | +🧟♀️ woman zombie woman female undead walking dead | |
| 377 | +💆 person getting massage relax | |
| 378 | +💆♂️ man getting massage male boy man head | |
| 379 | +💆♀️ woman getting massage female girl woman head | |
| 380 | +💇 person getting haircut hairstyle | |
| 381 | +💇♂️ man getting haircut male boy man | |
| 382 | +💇♀️ woman getting haircut female girl woman | |
| 383 | +🚶 person walking move | |
| 384 | +🚶♂️ man walking human feet steps | |
| 385 | +🚶♀️ woman walking human feet steps woman female | |
| 386 | +🧍 person standing still | |
| 387 | +🧍♂️ man standing still | |
| 388 | +🧍♀️ woman standing still | |
| 389 | +🧎 person kneeling pray respectful | |
| 390 | +🧎♂️ man kneeling pray respectful | |
| 391 | +🧎♀️ woman kneeling respectful pray | |
| 392 | +🧑🦯 person with probing cane blind | |
| 393 | +👨🦯 man with probing cane blind | |
| 394 | +👩🦯 woman with probing cane blind | |
| 395 | +🧑🦼 person in motorized wheelchair disability accessibility | |
| 396 | +👨🦼 man in motorized wheelchair disability accessibility | |
| 397 | +👩🦼 woman in motorized wheelchair disability accessibility | |
| 398 | +🧑🦽 person in manual wheelchair disability accessibility | |
| 399 | +👨🦽 man in manual wheelchair disability accessibility | |
| 400 | +👩🦽 woman in manual wheelchair disability accessibility | |
| 401 | +🏃 person running move | |
| 402 | +🏃♂️ man running man walking exercise race running | |
| 403 | +🏃♀️ woman running woman walking exercise race running female | |
| 404 | +💃 woman dancing female girl woman fun | |
| 405 | +🕺 man dancing male boy fun dancer | |
| 406 | +🕴️ man in suit levitating suit business levitate hover jump | |
| 407 | +👯 people with bunny ears perform costume | |
| 408 | +👯♂️ men with bunny ears male bunny men boys | |
| 409 | +👯♀️ women with bunny ears female bunny women girls | |
| 410 | +🧖 person in steamy room relax spa | |
| 411 | +🧖♂️ man in steamy room male man spa steamroom sauna | |
| 412 | +🧖♀️ woman in steamy room female woman spa steamroom sauna | |
| 413 | +🧗 person climbing sport | |
| 414 | +🧗♂️ man climbing sports hobby man male rock | |
| 415 | +🧗♀️ woman climbing sports hobby woman female rock | |
| 416 | +🤺 person fencing sports fencing sword | |
| 417 | +🏇 horse racing animal betting competition gambling luck | |
| 418 | +⛷️ skier sports winter snow | |
| 419 | +🏂 snowboarder sports winter | |
| 420 | +🏌️ person golfing sports business | |
| 421 | +🏌️♂️ man golfing sport | |
| 422 | +🏌️♀️ woman golfing sports business woman female | |
| 423 | +🏄 person surfing sport sea | |
| 424 | +🏄♂️ man surfing sports ocean sea summer beach | |
| 425 | +🏄♀️ woman surfing sports ocean sea summer beach woman female | |
| 426 | +🚣 person rowing boat sport move | |
| 427 | +🚣♂️ man rowing boat sports hobby water ship | |
| 428 | +🚣♀️ woman rowing boat sports hobby water ship woman female | |
| 429 | +🏊 person swimming sport pool | |
| 430 | +🏊♂️ man swimming sports exercise human athlete water summer | |
| 431 | +🏊♀️ woman swimming sports exercise human athlete water summer woman female | |
| 432 | +⛹️ person bouncing ball sports human | |
| 433 | +⛹️♂️ man bouncing ball sport | |
| 434 | +⛹️♀️ woman bouncing ball sports human woman female | |
| 435 | +🏋️ person lifting weights sports training exercise | |
| 436 | +🏋️♂️ man lifting weights sport | |
| 437 | +🏋️♀️ woman lifting weights sports training exercise woman female | |
| 438 | +🚴 person biking sport move | |
| 439 | +🚴♂️ man biking sports bike exercise hipster | |
| 440 | +🚴♀️ woman biking sports bike exercise hipster woman female | |
| 441 | +🚵 person mountain biking sport move | |
| 442 | +🚵♂️ man mountain biking transportation sports human race bike | |
| 443 | +🚵♀️ woman mountain biking transportation sports human race bike woman female | |
| 444 | +🤸 person cartwheeling sport gymnastic | |
| 445 | +🤸♂️ man cartwheeling gymnastics | |
| 446 | +🤸♀️ woman cartwheeling gymnastics | |
| 447 | +🤼 people wrestling sport | |
| 448 | +🤼♂️ men wrestling sports wrestlers | |
| 449 | +🤼♀️ women wrestling sports wrestlers | |
| 450 | +🤽 person playing water polo sport | |
| 451 | +🤽♂️ man playing water polo sports pool | |
| 452 | +🤽♀️ woman playing water polo sports pool | |
| 453 | +🤾 person playing handball sport | |
| 454 | +🤾♂️ man playing handball sports | |
| 455 | +🤾♀️ woman playing handball sports | |
| 456 | +🤹 person juggling performance balance | |
| 457 | +🤹♂️ man juggling juggle balance skill multitask | |
| 458 | +🤹♀️ woman juggling juggle balance skill multitask | |
| 459 | +🧘 person in lotus position meditate | |
| 460 | +🧘♂️ man in lotus position man male meditation yoga serenity zen mindfulness | |
| 461 | +🧘♀️ woman in lotus position woman female meditation yoga serenity zen mindfulness | |
| 462 | +🛀 person taking bath clean shower bathroom | |
| 463 | +🛌 person in bed bed rest | |
| 464 | +🧑🤝🧑 people holding hands friendship | |
| 465 | +👭 women holding hands pair friendship couple love like female people human | |
| 466 | +👫 woman and man holding hands pair people human love date dating like affection valentines marriage | |
| 467 | +👬 men holding hands pair couple love like bromance friendship people human | |
| 468 | +💏 kiss pair valentines love like dating marriage | |
| 469 | +👩❤️💋👨 kiss woman man love | |
| 470 | +👨❤️💋👨 kiss man man pair valentines love like dating marriage | |
| 471 | +👩❤️💋👩 kiss woman woman pair valentines love like dating marriage | |
| 472 | +💑 couple with heart pair love like affection human dating valentines marriage | |
| 473 | +👩❤️👨 couple with heart woman man love | |
| 474 | +👨❤️👨 couple with heart man man pair love like affection human dating valentines marriage | |
| 475 | +👩❤️👩 couple with heart woman woman pair love like affection human dating valentines marriage | |
| 476 | +👪 family home parents child mom dad father mother people human | |
| 477 | +👨👩👦 family man woman boy love | |
| 478 | +👨👩👧 family man woman girl home parents people human child | |
| 479 | +👨👩👧👦 family man woman girl boy home parents people human children | |
| 480 | +👨👩👦👦 family man woman boy boy home parents people human children | |
| 481 | +👨👩👧👧 family man woman girl girl home parents people human children | |
| 482 | +👨👨👦 family man man boy home parents people human children | |
| 483 | +👨👨👧 family man man girl home parents people human children | |
| 484 | +👨👨👧👦 family man man girl boy home parents people human children | |
| 485 | +👨👨👦👦 family man man boy boy home parents people human children | |
| 486 | +👨👨👧👧 family man man girl girl home parents people human children | |
| 487 | +👩👩👦 family woman woman boy home parents people human children | |
| 488 | +👩👩👧 family woman woman girl home parents people human children | |
| 489 | +👩👩👧👦 family woman woman girl boy home parents people human children | |
| 490 | +👩👩👦👦 family woman woman boy boy home parents people human children | |
| 491 | +👩👩👧👧 family woman woman girl girl home parents people human children | |
| 492 | +👨👦 family man boy home parent people human child | |
| 493 | +👨👦👦 family man boy boy home parent people human children | |
| 494 | +👨👧 family man girl home parent people human child | |
| 495 | +👨👧👦 family man girl boy home parent people human children | |
| 496 | +👨👧👧 family man girl girl home parent people human children | |
| 497 | +👩👦 family woman boy home parent people human child | |
| 498 | +👩👦👦 family woman boy boy home parent people human children | |
| 499 | +👩👧 family woman girl home parent people human child | |
| 500 | +👩👧👦 family woman girl boy home parent people human children | |
| 501 | +👩👧👧 family woman girl girl home parent people human children | |
| 502 | +🗣️ speaking head user person human sing say talk | |
| 503 | +👤 bust in silhouette user person human | |
| 504 | +👥 busts in silhouette user person human group team | |
| 505 | +👣 footprints feet tracking walking beach | |
| 506 | +🐵 monkey face animal nature circus | |
| 507 | +🐒 monkey animal nature banana circus | |
| 508 | +🦍 gorilla animal nature circus | |
| 509 | +🦧 orangutan animal | |
| 510 | +🐶 dog face animal friend nature woof puppy pet faithful | |
| 511 | +🐕 dog animal nature friend doge pet faithful | |
| 512 | +🦮 guide dog animal blind | |
| 513 | +🐕🦺 service dog blind animal | |
| 514 | +🐩 poodle dog animal 101 nature pet | |
| 515 | +🐺 wolf animal nature wild | |
| 516 | +🦊 fox animal nature face | |
| 517 | +🦝 raccoon animal nature | |
| 518 | +🐱 cat face animal meow nature pet kitten | |
| 519 | +🐈 cat animal meow pet cats | |
| 520 | +🦁 lion animal nature | |
| 521 | +🐯 tiger face animal cat danger wild nature roar | |
| 522 | +🐅 tiger animal nature roar | |
| 523 | +🐆 leopard animal nature | |
| 524 | +🐴 horse face animal brown nature | |
| 525 | +🐎 horse animal gamble luck | |
| 526 | +🦄 unicorn animal nature mystical | |
| 527 | +🦓 zebra animal nature stripes safari | |
| 528 | +🦌 deer animal nature horns venison | |
| 529 | +🐮 cow face beef ox animal nature moo milk | |
| 530 | +🐂 ox animal cow beef | |
| 531 | +🐃 water buffalo animal nature ox cow | |
| 532 | +🐄 cow beef ox animal nature moo milk | |
| 533 | +🐷 pig face animal oink nature | |
| 534 | +🐖 pig animal nature | |
| 535 | +🐗 boar animal nature | |
| 536 | +🐽 pig nose animal oink | |
| 537 | +🐏 ram animal sheep nature | |
| 538 | +🐑 ewe animal nature wool shipit | |
| 539 | +🐐 goat animal nature | |
| 540 | +🐪 camel animal hot desert hump | |
| 541 | +🐫 two hump camel animal nature hot desert hump | |
| 542 | +🦙 llama animal nature alpaca | |
| 543 | +🦒 giraffe animal nature spots safari | |
| 544 | +🐘 elephant animal nature nose th circus | |
| 545 | +🦏 rhinoceros animal nature horn | |
| 546 | +🦛 hippopotamus animal nature | |
| 547 | +🐭 mouse face animal nature cheese wedge rodent | |
| 548 | +🐁 mouse animal nature rodent | |
| 549 | +🐀 rat animal mouse rodent | |
| 550 | +🐹 hamster animal nature | |
| 551 | +🐰 rabbit face animal nature pet spring magic bunny | |
| 552 | +🐇 rabbit animal nature pet magic spring | |
| 553 | +🐿️ chipmunk animal nature rodent squirrel | |
| 554 | +🦔 hedgehog animal nature spiny | |
| 555 | +🦇 bat animal nature blind vampire | |
| 556 | +🐻 bear animal nature wild | |
| 557 | +🐨 koala animal nature | |
| 558 | +🐼 panda animal nature panda | |
| 559 | +🦥 sloth animal | |
| 560 | +🦦 otter animal | |
| 561 | +🦨 skunk animal | |
| 562 | +🦘 kangaroo animal nature australia joey hop marsupial | |
| 563 | +🦡 badger animal nature honey | |
| 564 | +🐾 paw prints animal tracking footprints dog cat pet feet | |
| 565 | +🦃 turkey animal bird | |
| 566 | +🐔 chicken animal cluck nature bird | |
| 567 | +🐓 rooster animal nature chicken | |
| 568 | +🐣 hatching chick animal chicken egg born baby bird | |
| 569 | +🐤 baby chick animal chicken bird | |
| 570 | +🐥 front facing baby chick animal chicken baby bird | |
| 571 | +🐦 bird animal nature fly tweet spring | |
| 572 | +🐧 penguin animal nature | |
| 573 | +🕊️ dove animal bird | |
| 574 | +🦅 eagle animal nature bird | |
| 575 | +🦆 duck animal nature bird mallard | |
| 576 | +🦢 swan animal nature bird | |
| 577 | +🦉 owl animal nature bird hoot | |
| 578 | +🦩 flamingo animal | |
| 579 | +🦚 peacock animal nature peahen bird | |
| 580 | +🦜 parrot animal nature bird pirate talk | |
| 581 | +🐸 frog animal nature croak toad | |
| 582 | +🐊 crocodile animal nature reptile lizard alligator | |
| 583 | +🐢 turtle animal slow nature tortoise | |
| 584 | +🦎 lizard animal nature reptile | |
| 585 | +🐍 snake animal evil nature hiss python | |
| 586 | +🐲 dragon face animal myth nature chinese green | |
| 587 | +🐉 dragon animal myth nature chinese green | |
| 588 | +🦕 sauropod animal nature dinosaur brachiosaurus brontosaurus diplodocus extinct | |
| 589 | +🦖 t rex animal nature dinosaur tyrannosaurus extinct | |
| 590 | +🐳 spouting whale animal nature sea ocean | |
| 591 | +🐋 whale animal nature sea ocean | |
| 592 | +🐬 dolphin animal nature fish sea ocean flipper fins beach | |
| 593 | +🐟 fish animal food nature | |
| 594 | +🐠 tropical fish animal swim ocean beach nemo | |
| 595 | +🐡 blowfish animal nature food sea ocean | |
| 596 | +🦈 shark animal nature fish sea ocean jaws fins beach | |
| 597 | +🐙 octopus animal creature ocean sea nature beach | |
| 598 | +🐚 spiral shell nature sea beach | |
| 599 | +🐌 snail slow animal shell | |
| 600 | +🦋 butterfly animal insect nature caterpillar | |
| 601 | +🐛 bug animal insect nature worm | |
| 602 | +🐜 ant animal insect nature bug | |
| 603 | +🐝 honeybee animal insect nature bug spring honey | |
| 604 | +🐞 lady beetle animal insect nature ladybug | |
| 605 | +🦗 cricket animal cricket chirp | |
| 606 | +🕷️ spider animal arachnid | |
| 607 | +🕸️ spider web animal insect arachnid silk | |
| 608 | +🦂 scorpion animal arachnid | |
| 609 | +🦟 mosquito animal nature insect malaria | |
| 610 | +🦠 microbe amoeba bacteria germs virus | |
| 611 | +💐 bouquet flowers nature spring | |
| 612 | +🌸 cherry blossom nature plant spring flower | |
| 613 | +💮 white flower japanese spring | |
| 614 | +🏵️ rosette flower decoration military | |
| 615 | +🌹 rose flowers valentines love spring | |
| 616 | +🥀 wilted flower plant nature flower | |
| 617 | +🌺 hibiscus plant vegetable flowers beach | |
| 618 | +🌻 sunflower nature plant fall | |
| 619 | +🌼 blossom nature flowers yellow | |
| 620 | +🌷 tulip flowers plant nature summer spring | |
| 621 | +🌱 seedling plant nature grass lawn spring | |
| 622 | +🌲 evergreen tree plant nature | |
| 623 | +🌳 deciduous tree plant nature | |
| 624 | +🌴 palm tree plant vegetable nature summer beach mojito tropical | |
| 625 | +🌵 cactus vegetable plant nature | |
| 626 | +🌾 sheaf of rice nature plant | |
| 627 | +🌿 herb vegetable plant medicine weed grass lawn | |
| 628 | +☘️ shamrock vegetable plant nature irish clover | |
| 629 | +🍀 four leaf clover vegetable plant nature lucky irish | |
| 630 | +🍁 maple leaf nature plant vegetable ca fall | |
| 631 | +🍂 fallen leaf nature plant vegetable leaves | |
| 632 | +🍃 leaf fluttering in wind nature plant tree vegetable grass lawn spring | |
| 633 | +🍇 grapes fruit food wine | |
| 634 | +🍈 melon fruit nature food | |
| 635 | +🍉 watermelon fruit food picnic summer | |
| 636 | +🍊 tangerine food fruit nature orange | |
| 637 | +🍋 lemon fruit nature | |
| 638 | +🍌 banana fruit food monkey | |
| 639 | +🍍 pineapple fruit nature food | |
| 640 | +🥭 mango fruit food tropical | |
| 641 | +🍎 red apple fruit mac school | |
| 642 | +🍏 green apple fruit nature | |
| 643 | +🍐 pear fruit nature food | |
| 644 | +🍑 peach fruit nature food | |
| 645 | +🍒 cherries food fruit | |
| 646 | +🍓 strawberry fruit food nature | |
| 647 | +🥝 kiwi fruit fruit food | |
| 648 | +🍅 tomato fruit vegetable nature food | |
| 649 | +🥥 coconut fruit nature food palm | |
| 650 | +🥑 avocado fruit food | |
| 651 | +🍆 eggplant vegetable nature food aubergine | |
| 652 | +🥔 potato food tuber vegatable starch | |
| 653 | +🥕 carrot vegetable food orange | |
| 654 | +🌽 ear of corn food vegetable plant | |
| 655 | +🌶️ hot pepper food spicy chilli chili | |
| 656 | +🥒 cucumber fruit food pickle | |
| 657 | +🥬 leafy green food vegetable plant bok choy cabbage kale lettuce | |
| 658 | +🥦 broccoli fruit food vegetable | |
| 659 | +🧄 garlic food spice cook | |
| 660 | +🧅 onion cook food spice | |
| 661 | +🍄 mushroom plant vegetable | |
| 662 | +🥜 peanuts food nut | |
| 663 | +🌰 chestnut food squirrel | |
| 664 | +🍞 bread food wheat breakfast toast | |
| 665 | +🥐 croissant food bread french | |
| 666 | +🥖 baguette bread food bread french | |
| 667 | +🥨 pretzel food bread twisted | |
| 668 | +🥯 bagel food bread bakery schmear | |
| 669 | +🥞 pancakes food breakfast flapjacks hotcakes | |
| 670 | +🧇 waffle food breakfast | |
| 671 | +🧀 cheese wedge food chadder | |
| 672 | +🍖 meat on bone good food drumstick | |
| 673 | +🍗 poultry leg food meat drumstick bird chicken turkey | |
| 674 | +🥩 cut of meat food cow meat cut chop lambchop porkchop | |
| 675 | +🥓 bacon food breakfast pork pig meat | |
| 676 | +🍔 hamburger meat fast food beef cheeseburger mcdonalds burger king | |
| 677 | +🍟 french fries chips snack fast food | |
| 678 | +🍕 pizza food party | |
| 679 | +🌭 hot dog food frankfurter | |
| 680 | +🥪 sandwich food lunch bread | |
| 681 | +🌮 taco food mexican | |
| 682 | +🌯 burrito food mexican | |
| 683 | +🥙 stuffed flatbread food flatbread stuffed gyro | |
| 684 | +🧆 falafel food | |
| 685 | +🥚 egg food chicken breakfast | |
| 686 | +🍳 cooking food breakfast kitchen egg | |
| 687 | +🥘 shallow pan of food food cooking casserole paella | |
| 688 | +🍲 pot of food food meat soup | |
| 689 | +🥣 bowl with spoon food breakfast cereal oatmeal porridge | |
| 690 | +🥗 green salad food healthy lettuce | |
| 691 | +🍿 popcorn food movie theater films snack | |
| 692 | +🧈 butter food cook | |
| 693 | +🧂 salt condiment shaker | |
| 694 | +🥫 canned food food soup | |
| 695 | +🍱 bento box food japanese box | |
| 696 | +🍘 rice cracker food japanese | |
| 697 | +🍙 rice ball food japanese | |
| 698 | +🍚 cooked rice food china asian | |
| 699 | +🍛 curry rice food spicy hot indian | |
| 700 | +🍜 steaming bowl food japanese noodle chopsticks | |
| 701 | +🍝 spaghetti food italian noodle | |
| 702 | +🍠 roasted sweet potato food nature | |
| 703 | +🍢 oden food japanese | |
| 704 | +🍣 sushi food fish japanese rice | |
| 705 | +🍤 fried shrimp food animal appetizer summer | |
| 706 | +🍥 fish cake with swirl food japan sea beach narutomaki pink swirl kamaboko surimi ramen | |
| 707 | +🥮 moon cake food autumn | |
| 708 | +🍡 dango food dessert sweet japanese barbecue meat | |
| 709 | +🥟 dumpling food empanada pierogi potsticker | |
| 710 | +🥠 fortune cookie food prophecy | |
| 711 | +🥡 takeout box food leftovers | |
| 712 | +🦀 crab animal crustacean | |
| 713 | +🦞 lobster animal nature bisque claws seafood | |
| 714 | +🦐 shrimp animal ocean nature seafood | |
| 715 | +🦑 squid animal nature ocean sea | |
| 716 | +🦪 oyster food | |
| 717 | +🍦 soft ice cream food hot dessert summer | |
| 718 | +🍧 shaved ice hot dessert summer | |
| 719 | +🍨 ice cream food hot dessert | |
| 720 | +🍩 doughnut food dessert snack sweet donut | |
| 721 | +🍪 cookie food snack oreo chocolate sweet dessert | |
| 722 | +🎂 birthday cake food dessert cake | |
| 723 | +🍰 shortcake food dessert | |
| 724 | +🧁 cupcake food dessert bakery sweet | |
| 725 | +🥧 pie food dessert pastry | |
| 726 | +🍫 chocolate bar food snack dessert sweet | |
| 727 | +🍬 candy snack dessert sweet lolly | |
| 728 | +🍭 lollipop food snack candy sweet | |
| 729 | +🍮 custard dessert food | |
| 730 | +🍯 honey pot bees sweet kitchen | |
| 731 | +🍼 baby bottle food container milk | |
| 732 | +🥛 glass of milk beverage drink cow | |
| 733 | +☕ hot beverage beverage caffeine latte espresso coffee | |
| 734 | +🍵 teacup without handle drink bowl breakfast green british | |
| 735 | +🍶 sake wine drink drunk beverage japanese alcohol booze | |
| 736 | +🍾 bottle with popping cork drink wine bottle celebration | |
| 737 | +🍷 wine glass drink beverage drunk alcohol booze | |
| 738 | +🍸 cocktail glass drink drunk alcohol beverage booze mojito | |
| 739 | +🍹 tropical drink beverage cocktail summer beach alcohol booze mojito | |
| 740 | +🍺 beer mug relax beverage drink drunk party pub summer alcohol booze | |
| 741 | +🍻 clinking beer mugs relax beverage drink drunk party pub summer alcohol booze | |
| 742 | +🥂 clinking glasses beverage drink party alcohol celebrate cheers wine champagne toast | |
| 743 | +🥃 tumbler glass drink beverage drunk alcohol liquor booze bourbon scotch whisky glass shot | |
| 744 | +🥤 cup with straw drink soda | |
| 745 | +🧃 beverage box drink | |
| 746 | +🧉 mate drink tea beverage | |
| 747 | +🧊 ice water cold | |
| 748 | +🥢 chopsticks food | |
| 749 | +🍽️ fork and knife with plate food eat meal lunch dinner restaurant | |
| 750 | +🍴 fork and knife cutlery kitchen | |
| 751 | +🥄 spoon cutlery kitchen tableware | |
| 752 | +🔪 kitchen knife knife blade cutlery kitchen weapon | |
| 753 | +🏺 amphora vase jar | |
| 754 | +🌍 globe showing europe africa globe world international | |
| 755 | +🌎 globe showing americas globe world USA international | |
| 756 | +🌏 globe showing asia australia globe world east international | |
| 757 | +🌐 globe with meridians earth international world internet interweb i18n | |
| 758 | +🗺️ world map location direction | |
| 759 | +🗾 map of japan nation country japanese asia | |
| 760 | +🧭 compass magnetic navigation orienteering | |
| 761 | +🏔️ snow capped mountain photo nature environment winter cold | |
| 762 | +⛰️ mountain photo nature environment | |
| 763 | +🌋 volcano photo nature disaster | |
| 764 | +🗻 mount fuji photo mountain nature japanese | |
| 765 | +🏕️ camping photo outdoors tent | |
| 766 | +🏖️ beach with umbrella weather summer sunny sand mojito | |
| 767 | +🏜️ desert photo warm saharah | |
| 768 | +🏝️ desert island photo tropical mojito | |
| 769 | +🏞️ national park photo environment nature | |
| 770 | +🏟️ stadium photo place sports concert venue | |
| 771 | +🏛️ classical building art culture history | |
| 772 | +🏗️ building construction wip working progress | |
| 773 | +🧱 brick bricks | |
| 774 | +🏘️ houses buildings photo | |
| 775 | +🏚️ derelict house abandon evict broken building | |
| 776 | +🏠 house building home | |
| 777 | +🏡 house with garden home plant nature | |
| 778 | +🏢 office building building bureau work | |
| 779 | +🏣 japanese post office building envelope communication | |
| 780 | +🏤 post office building email | |
| 781 | +🏥 hospital building health surgery doctor | |
| 782 | +🏦 bank building money sales cash business enterprise | |
| 783 | +🏨 hotel building accomodation checkin | |
| 784 | +🏩 love hotel like affection dating | |
| 785 | +🏪 convenience store building shopping groceries | |
| 786 | +🏫 school building student education learn teach | |
| 787 | +🏬 department store building shopping mall | |
| 788 | +🏭 factory building industry pollution smoke | |
| 789 | +🏯 japanese castle photo building | |
| 790 | +🏰 castle building royalty history | |
| 791 | +💒 wedding love like affection couple marriage bride groom | |
| 792 | +🗼 tokyo tower photo japanese | |
| 793 | +🗽 statue of liberty american newyork | |
| 794 | +⛪ church building religion christ | |
| 795 | +🕌 mosque islam worship minaret | |
| 796 | +🛕 hindu temple religion | |
| 797 | +🕍 synagogue judaism worship temple jewish | |
| 798 | +⛩️ shinto shrine temple japan kyoto | |
| 799 | +🕋 kaaba mecca mosque islam | |
| 800 | +⛲ fountain photo summer water fresh | |
| 801 | +⛺ tent photo camping outdoors | |
| 802 | +🌁 foggy photo mountain | |
| 803 | +🌃 night with stars evening city downtown | |
| 804 | +🏙️ cityscape photo night life urban | |
| 805 | +🌄 sunrise over mountains view vacation photo | |
| 806 | +🌅 sunrise morning view vacation photo | |
| 807 | +🌆 cityscape at dusk photo evening sky buildings | |
| 808 | +🌇 sunset photo good morning dawn | |
| 809 | +🌉 bridge at night photo sanfrancisco | |
| 810 | +♨️ hot springs bath warm relax | |
| 811 | +🎠 carousel horse photo carnival | |
| 812 | +🎡 ferris wheel photo carnival londoneye | |
| 813 | +🎢 roller coaster carnival playground photo fun | |
| 814 | +💈 barber pole hair salon style | |
| 815 | +🎪 circus tent festival carnival party | |
| 816 | +🚂 locomotive transportation vehicle train | |
| 817 | +🚃 railway car transportation vehicle | |
| 818 | +🚄 high speed train transportation vehicle | |
| 819 | +🚅 bullet train transportation vehicle speed fast public travel | |
| 820 | +🚆 train transportation vehicle | |
| 821 | +🚇 metro transportation blue-square mrt underground tube | |
| 822 | +🚈 light rail transportation vehicle | |
| 823 | +🚉 station transportation vehicle public | |
| 824 | +🚊 tram transportation vehicle | |
| 825 | +🚝 monorail transportation vehicle | |
| 826 | +🚞 mountain railway transportation vehicle | |
| 827 | +🚋 tram car transportation vehicle carriage public travel | |
| 828 | +🚌 bus car vehicle transportation | |
| 829 | +🚍 oncoming bus vehicle transportation | |
| 830 | +🚎 trolleybus bart transportation vehicle | |
| 831 | +🚐 minibus vehicle car transportation | |
| 832 | +🚑 ambulance health 911 hospital | |
| 833 | +🚒 fire engine transportation cars vehicle | |
| 834 | +🚓 police car vehicle cars transportation law legal enforcement | |
| 835 | +🚔 oncoming police car vehicle law legal enforcement 911 | |
| 836 | +🚕 taxi uber vehicle cars transportation | |
| 837 | +🚖 oncoming taxi vehicle cars uber | |
| 838 | +🚗 automobile red transportation vehicle | |
| 839 | +🚘 oncoming automobile car vehicle transportation | |
| 840 | +🚙 sport utility vehicle transportation vehicle | |
| 841 | +🚚 delivery truck cars transportation | |
| 842 | +🚛 articulated lorry vehicle cars transportation express | |
| 843 | +🚜 tractor vehicle car farming agriculture | |
| 844 | +🏎️ racing car sports race fast formula f1 | |
| 845 | +🏍️ motorcycle race sports fast | |
| 846 | +🛵 motor scooter vehicle vespa sasha | |
| 847 | +🦽 manual wheelchair accessibility | |
| 848 | +🦼 motorized wheelchair accessibility | |
| 849 | +🛺 auto rickshaw move transportation | |
| 850 | +🚲 bicycle sports bicycle exercise hipster | |
| 851 | +🛴 kick scooter vehicle kick razor | |
| 852 | +🛹 skateboard board | |
| 853 | +🚏 bus stop transportation wait | |
| 854 | +🛣️ motorway road cupertino interstate highway | |
| 855 | +🛤️ railway track train transportation | |
| 856 | +🛢️ oil drum barrell | |
| 857 | +⛽ fuel pump gas station petroleum | |
| 858 | +🚨 police car light police ambulance 911 emergency alert error pinged law legal | |
| 859 | +🚥 horizontal traffic light transportation signal | |
| 860 | +🚦 vertical traffic light transportation driving | |
| 861 | +🛑 stop sign stop | |
| 862 | +🚧 construction wip progress caution warning | |
| 863 | +⚓ anchor ship ferry sea boat | |
| 864 | +⛵ sailboat ship summer transportation water sailing | |
| 865 | +🛶 canoe boat paddle water ship | |
| 866 | +🚤 speedboat ship transportation vehicle summer | |
| 867 | +🛳️ passenger ship yacht cruise ferry | |
| 868 | +⛴️ ferry boat ship yacht | |
| 869 | +🛥️ motor boat ship | |
| 870 | +🚢 ship transportation titanic deploy | |
| 871 | +✈️ airplane vehicle transportation flight fly | |
| 872 | +🛩️ small airplane flight transportation fly vehicle | |
| 873 | +🛫 airplane departure airport flight landing | |
| 874 | +🛬 airplane arrival airport flight boarding | |
| 875 | +🪂 parachute fly glide | |
| 876 | +💺 seat sit airplane transport bus flight fly | |
| 877 | +🚁 helicopter transportation vehicle fly | |
| 878 | +🚟 suspension railway vehicle transportation | |
| 879 | +🚠 mountain cableway transportation vehicle ski | |
| 880 | +🚡 aerial tramway transportation vehicle ski | |
| 881 | +🛰️ satellite communication gps orbit spaceflight NASA ISS | |
| 882 | +🚀 rocket launch ship staffmode NASA outer space outer space fly | |
| 883 | +🛸 flying saucer transportation vehicle ufo | |
| 884 | +🛎️ bellhop bell service | |
| 885 | +🧳 luggage packing travel | |
| 886 | +⌛ hourglass done time clock oldschool limit exam quiz test | |
| 887 | +⏳ hourglass not done oldschool time countdown | |
| 888 | +⌚ watch time accessories | |
| 889 | +⏰ alarm clock time wake | |
| 890 | +⏱️ stopwatch time deadline | |
| 891 | +⏲️ timer clock alarm | |
| 892 | +🕰️ mantelpiece clock time | |
| 893 | +🕛 twelve o clock time noon midnight midday late early schedule | |
| 894 | +🕧 twelve thirty time late early schedule | |
| 895 | +🕐 one o clock time late early schedule | |
| 896 | +🕜 one thirty time late early schedule | |
| 897 | +🕑 two o clock time late early schedule | |
| 898 | +🕝 two thirty time late early schedule | |
| 899 | +🕒 three o clock time late early schedule | |
| 900 | +🕞 three thirty time late early schedule | |
| 901 | +🕓 four o clock time late early schedule | |
| 902 | +🕟 four thirty time late early schedule | |
| 903 | +🕔 five o clock time late early schedule | |
| 904 | +🕠 five thirty time late early schedule | |
| 905 | +🕕 six o clock time late early schedule dawn dusk | |
| 906 | +🕡 six thirty time late early schedule | |
| 907 | +🕖 seven o clock time late early schedule | |
| 908 | +🕢 seven thirty time late early schedule | |
| 909 | +🕗 eight o clock time late early schedule | |
| 910 | +🕣 eight thirty time late early schedule | |
| 911 | +🕘 nine o clock time late early schedule | |
| 912 | +🕤 nine thirty time late early schedule | |
| 913 | +🕙 ten o clock time late early schedule | |
| 914 | +🕥 ten thirty time late early schedule | |
| 915 | +🕚 eleven o clock time late early schedule | |
| 916 | +🕦 eleven thirty time late early schedule | |
| 917 | +🌑 new moon nature twilight planet space night evening sleep | |
| 918 | +🌒 waxing crescent moon nature twilight planet space night evening sleep | |
| 919 | +🌓 first quarter moon nature twilight planet space night evening sleep | |
| 920 | +🌔 waxing gibbous moon nature night sky gray twilight planet space evening sleep | |
| 921 | +🌕 full moon nature yellow twilight planet space night evening sleep | |
| 922 | +🌖 waning gibbous moon nature twilight planet space night evening sleep waxing gibbous moon | |
| 923 | +🌗 last quarter moon nature twilight planet space night evening sleep | |
| 924 | +🌘 waning crescent moon nature twilight planet space night evening sleep | |
| 925 | +🌙 crescent moon night sleep sky evening magic | |
| 926 | +🌚 new moon face nature twilight planet space night evening sleep | |
| 927 | +🌛 first quarter moon face nature twilight planet space night evening sleep | |
| 928 | +🌜 last quarter moon face nature twilight planet space night evening sleep | |
| 929 | +🌡️ thermometer weather temperature hot cold | |
| 930 | +☀️ sun weather nature brightness summer beach spring | |
| 931 | +🌝 full moon face nature twilight planet space night evening sleep | |
| 932 | +🌞 sun with face nature morning sky | |
| 933 | +🪐 ringed planet outerspace | |
| 934 | +⭐ star night yellow | |
| 935 | +🌟 glowing star night sparkle awesome good magic | |
| 936 | +🌠 shooting star night photo | |
| 937 | +🌌 milky way photo space stars | |
| 938 | +☁️ cloud weather sky | |
| 939 | +⛅ sun behind cloud weather nature cloudy morning fall spring | |
| 940 | +⛈️ cloud with lightning and rain weather lightning | |
| 941 | +🌤️ sun behind small cloud weather | |
| 942 | +🌥️ sun behind large cloud weather | |
| 943 | +🌦️ sun behind rain cloud weather | |
| 944 | +🌧️ cloud with rain weather | |
| 945 | +🌨️ cloud with snow weather | |
| 946 | +🌩️ cloud with lightning weather thunder | |
| 947 | +🌪️ tornado weather cyclone twister | |
| 948 | +🌫️ fog weather | |
| 949 | +🌬️ wind face gust air | |
| 950 | +🌀 cyclone weather swirl blue cloud vortex spiral whirlpool spin tornado hurricane typhoon | |
| 951 | +🌈 rainbow nature happy unicorn face photo sky spring | |
| 952 | +🌂 closed umbrella weather rain drizzle | |
| 953 | +☂️ umbrella weather spring | |
| 954 | +☔ umbrella with rain drops rainy weather spring | |
| 955 | +⛱️ umbrella on ground weather summer | |
| 956 | +⚡ high voltage thunder weather lightning bolt fast | |
| 957 | +❄️ snowflake winter season cold weather christmas xmas | |
| 958 | +☃️ snowman winter season cold weather christmas xmas frozen | |
| 959 | +⛄ snowman without snow winter season cold weather christmas xmas frozen without snow | |
| 960 | +☄️ comet space | |
| 961 | +🔥 fire hot cook flame | |
| 962 | +💧 droplet water drip faucet spring | |
| 963 | +🌊 water wave sea water wave nature tsunami disaster | |
| 964 | +🎃 jack o lantern halloween light pumpkin creepy fall | |
| 965 | +🎄 christmas tree festival vacation december xmas celebration | |
| 966 | +🎆 fireworks photo festival carnival congratulations | |
| 967 | +🎇 sparkler stars night shine | |
| 968 | +🧨 firecracker dynamite boom explode explosion explosive | |
| 969 | +✨ sparkles stars shine shiny cool awesome good magic | |
| 970 | +🎈 balloon party celebration birthday circus | |
| 971 | +🎉 party popper party congratulations birthday magic circus celebration tada | |
| 972 | +🎊 confetti ball festival party birthday circus | |
| 973 | +🎋 tanabata tree plant nature branch summer | |
| 974 | +🎍 pine decoration plant nature vegetable panda pine decoration | |
| 975 | +🎎 japanese dolls japanese toy kimono | |
| 976 | +🎏 carp streamer fish japanese koinobori carp banner | |
| 977 | +🎐 wind chime nature ding spring bell | |
| 978 | +🎑 moon viewing ceremony photo japan asia tsukimi | |
| 979 | +🧧 red envelope gift | |
| 980 | +🎀 ribbon decoration pink girl bowtie | |
| 981 | +🎁 wrapped gift present birthday christmas xmas | |
| 982 | +🎗️ reminder ribbon sports cause support awareness | |
| 983 | +🎟️ admission tickets sports concert entrance | |
| 984 | +🎫 ticket event concert pass | |
| 985 | +🎖️ military medal award winning army | |
| 986 | +🏆 trophy win award contest place ftw ceremony | |
| 987 | +🏅 sports medal award winning | |
| 988 | +🥇 1st place medal award winning first | |
| 989 | +🥈 2nd place medal award second | |
| 990 | +🥉 3rd place medal award third | |
| 991 | +⚽ soccer ball sports football | |
| 992 | +⚾ baseball sports balls | |
| 993 | +🥎 softball sports balls | |
| 994 | +🏀 basketball sports balls NBA | |
| 995 | +🏐 volleyball sports balls | |
| 996 | +🏈 american football sports balls NFL | |
| 997 | +🏉 rugby football sports team | |
| 998 | +🎾 tennis sports balls green | |
| 999 | +🥏 flying disc sports frisbee ultimate | |
| 1000 | +🎳 bowling sports fun play | |
| 1001 | +🏏 cricket game sports | |
| 1002 | +🏑 field hockey sports | |
| 1003 | +🏒 ice hockey sports | |
| 1004 | +🥍 lacrosse sports ball stick | |
| 1005 | +🏓 ping pong sports pingpong | |
| 1006 | +🏸 badminton sports | |
| 1007 | +🥊 boxing glove sports fighting | |
| 1008 | +🥋 martial arts uniform judo karate taekwondo | |
| 1009 | +🥅 goal net sports | |
| 1010 | +⛳ flag in hole sports business flag hole summer | |
| 1011 | +⛸️ ice skate sports | |
| 1012 | +🎣 fishing pole food hobby summer | |
| 1013 | +🤿 diving mask sport ocean | |
| 1014 | +🎽 running shirt play pageant | |
| 1015 | +🎿 skis sports winter cold snow | |
| 1016 | +🛷 sled sleigh luge toboggan | |
| 1017 | +🥌 curling stone sports | |
| 1018 | +🎯 direct hit game play bar target bullseye | |
| 1019 | +🪀 yo yo toy | |
| 1020 | +🪁 kite wind fly | |
| 1021 | +🎱 pool 8 ball pool hobby game luck magic | |
| 1022 | +🔮 crystal ball disco party magic circus fortune teller | |
| 1023 | +🧿 nazar amulet bead charm | |
| 1024 | +🎮 video game play console PS4 controller | |
| 1025 | +🕹️ joystick game play | |
| 1026 | +🎰 slot machine bet gamble vegas fruit machine luck casino | |
| 1027 | +🎲 game die dice random tabletop play luck | |
| 1028 | +🧩 puzzle piece interlocking puzzle piece | |
| 1029 | +🧸 teddy bear plush stuffed | |
| 1030 | +♠️ spade suit poker cards suits magic | |
| 1031 | +♥️ heart suit poker cards magic suits | |
| 1032 | +♦️ diamond suit poker cards magic suits | |
| 1033 | +♣️ club suit poker cards magic suits | |
| 1034 | +♟️ chess pawn expendable | |
| 1035 | +🃏 joker poker cards game play magic | |
| 1036 | +🀄 mahjong red dragon game play chinese kanji | |
| 1037 | +🎴 flower playing cards game sunset red | |
| 1038 | +🎭 performing arts acting theater drama | |
| 1039 | +🖼️ framed picture photography | |
| 1040 | +🎨 artist palette design paint draw colors | |
| 1041 | +🧵 thread needle sewing spool string | |
| 1042 | +🧶 yarn ball crochet knit | |
| 1043 | +👓 glasses fashion accessories eyesight nerdy dork geek | |
| 1044 | +🕶️ sunglasses face cool accessories | |
| 1045 | +🥽 goggles eyes protection safety | |
| 1046 | +🥼 lab coat doctor experiment scientist chemist | |
| 1047 | +🦺 safety vest protection | |
| 1048 | +👔 necktie shirt suitup formal fashion cloth business | |
| 1049 | +👕 t shirt fashion cloth casual shirt tee | |
| 1050 | +👖 jeans fashion shopping | |
| 1051 | +🧣 scarf neck winter clothes | |
| 1052 | +🧤 gloves hands winter clothes | |
| 1053 | +🧥 coat jacket | |
| 1054 | +🧦 socks stockings clothes | |
| 1055 | +👗 dress clothes fashion shopping | |
| 1056 | +👘 kimono dress fashion women female japanese | |
| 1057 | +🥻 sari dress | |
| 1058 | +🩱 one piece swimsuit fashion | |
| 1059 | +🩲 briefs clothing | |
| 1060 | +🩳 shorts clothing | |
| 1061 | +👙 bikini swimming female woman girl fashion beach summer | |
| 1062 | +👚 woman s clothes fashion shopping bags female | |
| 1063 | +👛 purse fashion accessories money sales shopping | |
| 1064 | +👜 handbag fashion accessory accessories shopping | |
| 1065 | +👝 clutch bag bag accessories shopping | |
| 1066 | +🛍️ shopping bags mall buy purchase | |
| 1067 | +🎒 backpack student education bag backpack | |
| 1068 | +👞 man s shoe fashion male | |
| 1069 | +👟 running shoe shoes sports sneakers | |
| 1070 | +🥾 hiking boot backpacking camping hiking | |
| 1071 | +🥿 flat shoe ballet slip-on slipper | |
| 1072 | +👠 high heeled shoe fashion shoes female pumps stiletto | |
| 1073 | +👡 woman s sandal shoes fashion flip flops | |
| 1074 | +🩰 ballet shoes dance | |
| 1075 | +👢 woman s boot shoes fashion | |
| 1076 | +👑 crown king kod leader royalty lord | |
| 1077 | +👒 woman s hat fashion accessories female lady spring | |
| 1078 | +🎩 top hat magic gentleman classy circus | |
| 1079 | +🎓 graduation cap school college degree university graduation cap hat legal learn education | |
| 1080 | +🧢 billed cap cap baseball | |
| 1081 | +⛑️ rescue worker s helmet construction build | |
| 1082 | +📿 prayer beads dhikr religious | |
| 1083 | +💄 lipstick female girl fashion woman | |
| 1084 | +💍 ring wedding propose marriage valentines diamond fashion jewelry gem engagement | |
| 1085 | +💎 gem stone blue ruby diamond jewelry | |
| 1086 | +🔇 muted speaker sound volume silence quiet | |
| 1087 | +🔈 speaker low volume sound volume silence broadcast | |
| 1088 | +🔉 speaker medium volume volume speaker broadcast | |
| 1089 | +🔊 speaker high volume volume noise noisy speaker broadcast | |
| 1090 | +📢 loudspeaker volume sound | |
| 1091 | +📣 megaphone sound speaker volume | |
| 1092 | +📯 postal horn instrument music | |
| 1093 | +🔔 bell sound notification christmas xmas chime | |
| 1094 | +🔕 bell with slash sound volume mute quiet silent | |
| 1095 | +🎼 musical score treble clef compose | |
| 1096 | +🎵 musical note score tone sound | |
| 1097 | +🎶 musical notes music score | |
| 1098 | +🎙️ studio microphone sing recording artist talkshow | |
| 1099 | +🎚️ level slider scale | |
| 1100 | +🎛️ control knobs dial | |
| 1101 | +🎤 microphone sound music PA sing talkshow | |
| 1102 | +🎧 headphone music score gadgets | |
| 1103 | +📻 radio communication music podcast program | |
| 1104 | +🎷 saxophone music instrument jazz blues | |
| 1105 | +🎸 guitar music instrument | |
| 1106 | +🎹 musical keyboard piano instrument compose | |
| 1107 | +🎺 trumpet music brass | |
| 1108 | +🎻 violin music instrument orchestra symphony | |
| 1109 | +🪕 banjo music instructment | |
| 1110 | +🥁 drum music instrument drumsticks snare | |
| 1111 | +📱 mobile phone technology apple gadgets dial | |
| 1112 | +📲 mobile phone with arrow iphone incoming | |
| 1113 | +☎️ telephone technology communication dial telephone | |
| 1114 | +📞 telephone receiver technology communication dial | |
| 1115 | +📟 pager bbcall oldschool 90s | |
| 1116 | +📠 fax machine communication technology | |
| 1117 | +🔋 battery power energy sustain | |
| 1118 | +🔌 electric plug charger power | |
| 1119 | +💻 laptop technology laptop screen display monitor | |
| 1120 | +🖥️ desktop computer technology computing screen | |
| 1121 | +🖨️ printer paper ink | |
| 1122 | +⌨️ keyboard technology computer type input text | |
| 1123 | +🖱️ computer mouse click | |
| 1124 | +🖲️ trackball technology trackpad | |
| 1125 | +💽 computer disk technology record data disk 90s | |
| 1126 | +💾 floppy disk oldschool technology save 90s 80s | |
| 1127 | +💿 optical disk technology dvd disk disc 90s | |
| 1128 | +📀 dvd cd disk disc | |
| 1129 | +🧮 abacus calculation | |
| 1130 | +🎥 movie camera film record | |
| 1131 | +🎞️ film frames movie | |
| 1132 | +📽️ film projector video tape record movie | |
| 1133 | +🎬 clapper board movie film record | |
| 1134 | +📺 television technology program oldschool show television | |
| 1135 | +📷 camera gadgets photography | |
| 1136 | +📸 camera with flash photography gadgets | |
| 1137 | +📹 video camera film record | |
| 1138 | +📼 videocassette record video oldschool 90s 80s | |
| 1139 | +🔍 magnifying glass tilted left search zoom find detective | |
| 1140 | +🔎 magnifying glass tilted right search zoom find detective | |
| 1141 | +🕯️ candle fire wax | |
| 1142 | +💡 light bulb light electricity idea | |
| 1143 | +🔦 flashlight dark camping sight night | |
| 1144 | +🏮 red paper lantern light paper halloween spooky | |
| 1145 | +🪔 diya lamp lighting | |
| 1146 | +📔 notebook with decorative cover classroom notes record paper study | |
| 1147 | +📕 closed book read library knowledge textbook learn | |
| 1148 | +📖 open book book read library knowledge literature learn study | |
| 1149 | +📗 green book read library knowledge study | |
| 1150 | +📘 blue book read library knowledge learn study | |
| 1151 | +📙 orange book read library knowledge textbook study | |
| 1152 | +📚 books literature library study | |
| 1153 | +📓 notebook stationery record notes paper study | |
| 1154 | +📒 ledger notes paper | |
| 1155 | +📃 page with curl documents office paper | |
| 1156 | +📜 scroll documents ancient history paper | |
| 1157 | +📄 page facing up documents office paper information | |
| 1158 | +📰 newspaper press headline | |
| 1159 | +🗞️ rolled up newspaper press headline | |
| 1160 | +📑 bookmark tabs favorite save order tidy | |
| 1161 | +🔖 bookmark favorite label save | |
| 1162 | +🏷️ label sale tag | |
| 1163 | +💰 money bag dollar payment coins sale | |
| 1164 | +💴 yen banknote money sales japanese dollar currency | |
| 1165 | +💵 dollar banknote money sales bill currency | |
| 1166 | +💶 euro banknote money sales dollar currency | |
| 1167 | +💷 pound banknote british sterling money sales bills uk england currency | |
| 1168 | +💸 money with wings dollar bills payment sale | |
| 1169 | +💳 credit card money sales dollar bill payment shopping | |
| 1170 | +🧾 receipt accounting expenses | |
| 1171 | +💹 chart increasing with yen green-square graph presentation stats | |
| 1172 | +💱 currency exchange money sales dollar travel | |
| 1173 | +💲 heavy dollar sign money sales payment currency buck | |
| 1174 | +✉️ envelope letter postal inbox communication | |
| 1175 | +📧 e mail communication inbox | |
| 1176 | +📨 incoming envelope email inbox | |
| 1177 | +📩 envelope with arrow email communication | |
| 1178 | +📤 outbox tray inbox email | |
| 1179 | +📥 inbox tray email documents | |
| 1180 | +📦 package mail gift cardboard box moving | |
| 1181 | +📫 closed mailbox with raised flag email inbox communication | |
| 1182 | +📪 closed mailbox with lowered flag email communication inbox | |
| 1183 | +📬 open mailbox with raised flag email inbox communication | |
| 1184 | +📭 open mailbox with lowered flag email inbox | |
| 1185 | +📮 postbox email letter envelope | |
| 1186 | +🗳️ ballot box with ballot election vote | |
| 1187 | +✏️ pencil stationery write paper writing school study | |
| 1188 | +✒️ black nib pen stationery writing write | |
| 1189 | +🖋️ fountain pen stationery writing write | |
| 1190 | +🖊️ pen stationery writing write | |
| 1191 | +🖌️ paintbrush drawing creativity art | |
| 1192 | +🖍️ crayon drawing creativity | |
| 1193 | +📝 memo write documents stationery pencil paper writing legal exam quiz test study compose | |
| 1194 | +💼 briefcase business documents work law legal job career | |
| 1195 | +📁 file directory documents business office | |
| 1196 | +📂 open file directory documents load | |
| 1197 | +🗂️ card index dividers organizing business stationery | |
| 1198 | +📅 calendar calendar schedule | |
| 1199 | +📆 tear off calendar schedule date planning | |
| 1200 | +🗒️ spiral notepad memo stationery | |
| 1201 | +🗓️ spiral calendar date schedule planning | |
| 1202 | +📇 card index business stationery | |
| 1203 | +📈 chart increasing graph presentation stats recovery business economics money sales good success | |
| 1204 | +📉 chart decreasing graph presentation stats recession business economics money sales bad failure | |
| 1205 | +📊 bar chart graph presentation stats | |
| 1206 | +📋 clipboard stationery documents | |
| 1207 | +📌 pushpin stationery mark here | |
| 1208 | +📍 round pushpin stationery location map here | |
| 1209 | +📎 paperclip documents stationery | |
| 1210 | +🖇️ linked paperclips documents stationery | |
| 1211 | +📏 straight ruler stationery calculate length math school drawing architect sketch | |
| 1212 | +📐 triangular ruler stationery math architect sketch | |
| 1213 | +✂️ scissors stationery cut | |
| 1214 | +🗃️ card file box business stationery | |
| 1215 | +🗄️ file cabinet filing organizing | |
| 1216 | +🗑️ wastebasket bin trash rubbish garbage toss | |
| 1217 | +🔒 locked security password padlock | |
| 1218 | +🔓 unlocked privacy security | |
| 1219 | +🔏 locked with pen security secret | |
| 1220 | +🔐 locked with key security privacy | |
| 1221 | +🔑 key lock door password | |
| 1222 | +🗝️ old key lock door password | |
| 1223 | +🔨 hammer tools build create | |
| 1224 | +🪓 axe tool chop cut | |
| 1225 | +⛏️ pick tools dig | |
| 1226 | +⚒️ hammer and pick tools build create | |
| 1227 | +🛠️ hammer and wrench tools build create | |
| 1228 | +🗡️ dagger weapon | |
| 1229 | +⚔️ crossed swords weapon | |
| 1230 | +🔫 pistol violence weapon pistol revolver | |
| 1231 | +🏹 bow and arrow sports | |
| 1232 | +🛡️ shield protection security | |
| 1233 | +🔧 wrench tools diy ikea fix maintainer | |
| 1234 | +🔩 nut and bolt handy tools fix | |
| 1235 | +⚙️ gear cog | |
| 1236 | +🗜️ clamp tool | |
| 1237 | +⚖️ balance scale law fairness weight | |
| 1238 | +🦯 probing cane accessibility | |
| 1239 | +🔗 link rings url | |
| 1240 | +⛓️ chains lock arrest | |
| 1241 | +🧰 toolbox tools diy fix maintainer mechanic | |
| 1242 | +🧲 magnet attraction magnetic | |
| 1243 | +⚗️ alembic distilling science experiment chemistry | |
| 1244 | +🧪 test tube chemistry experiment lab science | |
| 1245 | +🧫 petri dish bacteria biology culture lab | |
| 1246 | +🧬 dna biologist genetics life | |
| 1247 | +🔬 microscope laboratory experiment zoomin science study | |
| 1248 | +🔭 telescope stars space zoom science astronomy | |
| 1249 | +📡 satellite antenna communication future radio space | |
| 1250 | +💉 syringe health hospital drugs blood medicine needle doctor nurse | |
| 1251 | +🩸 drop of blood period hurt harm wound | |
| 1252 | +💊 pill health medicine doctor pharmacy drug | |
| 1253 | +🩹 adhesive bandage heal | |
| 1254 | +🩺 stethoscope health | |
| 1255 | +🚪 door house entry exit | |
| 1256 | +🛏️ bed sleep rest | |
| 1257 | +🛋️ couch and lamp read chill | |
| 1258 | +🪑 chair sit furniture | |
| 1259 | +🚽 toilet restroom wc washroom bathroom potty | |
| 1260 | +🚿 shower clean water bathroom | |
| 1261 | +🛁 bathtub clean shower bathroom | |
| 1262 | +🪒 razor cut | |
| 1263 | +🧴 lotion bottle moisturizer sunscreen | |
| 1264 | +🧷 safety pin diaper | |
| 1265 | +🧹 broom cleaning sweeping witch | |
| 1266 | +🧺 basket laundry | |
| 1267 | +🧻 roll of paper roll | |
| 1268 | +🧼 soap bar bathing cleaning lather | |
| 1269 | +🧽 sponge absorbing cleaning porous | |
| 1270 | +🧯 fire extinguisher quench | |
| 1271 | +🛒 shopping cart trolley | |
| 1272 | +🚬 cigarette kills tobacco cigarette joint smoke | |
| 1273 | +⚰️ coffin vampire dead die death rip graveyard cemetery casket funeral box | |
| 1274 | +⚱️ funeral urn dead die death rip ashes | |
| 1275 | +🗿 moai rock easter island moai | |
| 1276 | +🏧 atm sign money sales cash blue-square payment bank | |
| 1277 | +🚮 litter in bin sign blue-square sign human info | |
| 1278 | +🚰 potable water blue-square liquid restroom cleaning faucet | |
| 1279 | +♿ wheelchair symbol blue-square disabled accessibility | |
| 1280 | +🚹 men s room toilet restroom wc blue-square gender male | |
| 1281 | +🚺 women s room purple-square woman female toilet loo restroom gender | |
| 1282 | +🚻 restroom blue-square toilet refresh wc gender | |
| 1283 | +🚼 baby symbol orange-square child | |
| 1284 | +🚾 water closet toilet restroom blue-square | |
| 1285 | +🛂 passport control custom blue-square | |
| 1286 | +🛃 customs passport border blue-square | |
| 1287 | +🛄 baggage claim blue-square airport transport | |
| 1288 | +🛅 left luggage blue-square travel | |
| 1289 | +⚠️ warning exclamation wip alert error problem issue | |
| 1290 | +🚸 children crossing school warning danger sign driving yellow-diamond | |
| 1291 | +⛔ no entry limit security privacy bad denied stop circle | |
| 1292 | +🚫 prohibited forbid stop limit denied disallow circle | |
| 1293 | +🚳 no bicycles cyclist prohibited circle | |
| 1294 | +🚭 no smoking cigarette blue-square smell smoke | |
| 1295 | +🚯 no littering trash bin garbage circle | |
| 1296 | +🚱 non potable water drink faucet tap circle | |
| 1297 | +🚷 no pedestrians rules crossing walking circle | |
| 1298 | +📵 no mobile phones iphone mute circle | |
| 1299 | +🔞 no one under eighteen 18 drink pub night minor circle | |
| 1300 | +☢️ radioactive nuclear danger | |
| 1301 | +☣️ biohazard danger | |
| 1302 | +⬆️ up arrow blue-square continue top direction | |
| 1303 | +↗️ up right arrow blue-square point direction diagonal northeast | |
| 1304 | +➡️ right arrow blue-square next | |
| 1305 | +↘️ down right arrow blue-square direction diagonal southeast | |
| 1306 | +⬇️ down arrow blue-square direction bottom | |
| 1307 | +↙️ down left arrow blue-square direction diagonal southwest | |
| 1308 | +⬅️ left arrow blue-square previous back | |
| 1309 | +↖️ up left arrow blue-square point direction diagonal northwest | |
| 1310 | +↕️ up down arrow blue-square direction way vertical | |
| 1311 | +↔️ left right arrow shape direction horizontal sideways | |
| 1312 | +↩️ right arrow curving left back return blue-square undo enter | |
| 1313 | +↪️ left arrow curving right blue-square return rotate direction | |
| 1314 | +⤴️ right arrow curving up blue-square direction top | |
| 1315 | +⤵️ right arrow curving down blue-square direction bottom | |
| 1316 | +🔃 clockwise vertical arrows sync cycle round repeat | |
| 1317 | +🔄 counterclockwise arrows button blue-square sync cycle | |
| 1318 | +🔙 back arrow arrow words return | |
| 1319 | +🔚 end arrow words arrow | |
| 1320 | +🔛 on arrow arrow words | |
| 1321 | +🔜 soon arrow arrow words | |
| 1322 | +🔝 top arrow words blue-square | |
| 1323 | +🛐 place of worship religion church temple prayer | |
| 1324 | +⚛️ atom symbol science physics chemistry | |
| 1325 | +🕉️ om hinduism buddhism sikhism jainism | |
| 1326 | +✡️ star of david judaism | |
| 1327 | +☸️ wheel of dharma hinduism buddhism sikhism jainism | |
| 1328 | +☯️ yin yang balance | |
| 1329 | +✝️ latin cross christianity | |
| 1330 | +☦️ orthodox cross suppedaneum religion | |
| 1331 | +☪️ star and crescent islam | |
| 1332 | +☮️ peace symbol hippie | |
| 1333 | +🕎 menorah hanukkah candles jewish | |
| 1334 | +🔯 dotted six pointed star purple-square religion jewish hexagram | |
| 1335 | +♈ aries sign purple-square zodiac astrology | |
| 1336 | +♉ taurus purple-square sign zodiac astrology | |
| 1337 | +♊ gemini sign zodiac purple-square astrology | |
| 1338 | +♋ cancer sign zodiac purple-square astrology | |
| 1339 | +♌ leo sign purple-square zodiac astrology | |
| 1340 | +♍ virgo sign zodiac purple-square astrology | |
| 1341 | +♎ libra sign purple-square zodiac astrology | |
| 1342 | +♏ scorpio sign zodiac purple-square astrology scorpio | |
| 1343 | +♐ sagittarius sign zodiac purple-square astrology | |
| 1344 | +♑ capricorn sign zodiac purple-square astrology | |
| 1345 | +♒ aquarius sign purple-square zodiac astrology | |
| 1346 | +♓ pisces purple-square sign zodiac astrology | |
| 1347 | +⛎ ophiuchus sign purple-square constellation astrology | |
| 1348 | +🔀 shuffle tracks button blue-square shuffle music random | |
| 1349 | +🔁 repeat button loop record | |
| 1350 | +🔂 repeat single button blue-square loop | |
| 1351 | +▶️ play button blue-square right direction play | |
| 1352 | +⏩ fast forward button blue-square play speed continue | |
| 1353 | +⏭️ next track button forward next blue-square | |
| 1354 | +⏯️ play or pause button blue-square play pause | |
| 1355 | +◀️ reverse button blue-square left direction | |
| 1356 | +⏪ fast reverse button play blue-square | |
| 1357 | +⏮️ last track button backward | |
| 1358 | +🔼 upwards button blue-square triangle direction point forward top | |
| 1359 | +⏫ fast up button blue-square direction top | |
| 1360 | +🔽 downwards button blue-square direction bottom | |
| 1361 | +⏬ fast down button blue-square direction bottom | |
| 1362 | +⏸️ pause button pause blue-square | |
| 1363 | +⏹️ stop button blue-square | |
| 1364 | +⏺️ record button blue-square | |
| 1365 | +⏏️ eject button blue-square | |
| 1366 | +🎦 cinema blue-square record film movie curtain stage theater | |
| 1367 | +🔅 dim button sun afternoon warm summer | |
| 1368 | +🔆 bright button sun light | |
| 1369 | +📶 antenna bars blue-square reception phone internet connection wifi bluetooth bars | |
| 1370 | +📳 vibration mode orange-square phone | |
| 1371 | +📴 mobile phone off mute orange-square silence quiet | |
| 1372 | +♀️ female sign woman women lady girl | |
| 1373 | +♂️ male sign man boy men | |
| 1374 | +⚕️ medical symbol health hospital | |
| 1375 | +♾️ infinity forever | |
| 1376 | +♻️ recycling symbol arrow environment garbage trash | |
| 1377 | +⚜️ fleur de lis decorative scout | |
| 1378 | +🔱 trident emblem weapon spear | |
| 1379 | +📛 name badge fire forbid | |
| 1380 | +🔰 japanese symbol for beginner badge shield | |
| 1381 | +⭕ hollow red circle circle round | |
| 1382 | +✅ check mark button green-square ok agree vote election answer tick | |
| 1383 | +☑️ check box with check ok agree confirm black-square vote election yes tick | |
| 1384 | +✔️ check mark ok nike answer yes tick | |
| 1385 | +✖️ multiplication sign math calculation | |
| 1386 | +❌ cross mark no delete remove cancel red | |
| 1387 | +❎ cross mark button x green-square no deny | |
| 1388 | +➕ plus sign math calculation addition more increase | |
| 1389 | +➖ minus sign math calculation subtract less | |
| 1390 | +➗ division sign divide math calculation | |
| 1391 | +➰ curly loop scribble draw shape squiggle | |
| 1392 | +➿ double curly loop tape cassette | |
| 1393 | +〽️ part alternation mark graph presentation stats business economics bad | |
| 1394 | +✳️ eight spoked asterisk star sparkle green-square | |
| 1395 | +✴️ eight pointed star orange-square shape polygon | |
| 1396 | +❇️ sparkle stars green-square awesome good fireworks | |
| 1397 | +‼️ double exclamation mark exclamation surprise | |
| 1398 | +⁉️ exclamation question mark wat punctuation surprise | |
| 1399 | +❓ question mark doubt confused | |
| 1400 | +❔ white question mark doubts gray huh confused | |
| 1401 | +❕ white exclamation mark surprise punctuation gray wow warning | |
| 1402 | +❗ exclamation mark heavy exclamation mark danger surprise punctuation wow warning | |
| 1403 | +〰️ wavy dash draw line moustache mustache squiggle scribble | |
| 1404 | +©️ copyright ip license circle law legal | |
| 1405 | +®️ registered alphabet circle | |
| 1406 | +™️ trade mark trademark brand law legal | |
| 1407 | +ycap symbol blue-square twitter | |
| 1408 | +*️⃣ keycap star keycap | |
| 1409 | +0️⃣ keycap 0 0 numbers blue-square null | |
| 1410 | +1️⃣ keycap 1 blue-square numbers 1 | |
| 1411 | +2️⃣ keycap 2 numbers 2 prime blue-square | |
| 1412 | +3️⃣ keycap 3 3 numbers prime blue-square | |
| 1413 | +4️⃣ keycap 4 4 numbers blue-square | |
| 1414 | +5️⃣ keycap 5 5 numbers blue-square prime | |
| 1415 | +6️⃣ keycap 6 6 numbers blue-square | |
| 1416 | +7️⃣ keycap 7 7 numbers blue-square prime | |
| 1417 | +8️⃣ keycap 8 8 blue-square numbers | |
| 1418 | +9️⃣ keycap 9 blue-square numbers 9 | |
| 1419 | +🔟 keycap 10 numbers 10 blue-square | |
| 1420 | +🔠 input latin uppercase alphabet words blue-square | |
| 1421 | +🔡 input latin lowercase blue-square alphabet | |
| 1422 | +🔢 input numbers numbers blue-square | |
| 1423 | +🔣 input symbols blue-square music note ampersand percent glyphs characters | |
| 1424 | +🔤 input latin letters blue-square alphabet | |
| 1425 | +🅰️ a button red-square alphabet letter | |
| 1426 | +🆎 ab button red-square alphabet | |
| 1427 | +🅱️ b button red-square alphabet letter | |
| 1428 | +🆑 cl button alphabet words red-square | |
| 1429 | +🆒 cool button words blue-square | |
| 1430 | +🆓 free button blue-square words | |
| 1431 | +ℹ️ information blue-square alphabet letter | |
| 1432 | +🆔 id button purple-square words | |
| 1433 | +Ⓜ️ circled m alphabet blue-circle letter | |
| 1434 | +🆕 new button blue-square words start | |
| 1435 | +🆖 ng button blue-square words shape icon | |
| 1436 | +🅾️ o button alphabet red-square letter | |
| 1437 | +🆗 ok button good agree yes blue-square | |
| 1438 | +🅿️ p button cars blue-square alphabet letter | |
| 1439 | +🆘 sos button help red-square words emergency 911 | |
| 1440 | +🆙 up button blue-square above high | |
| 1441 | +🆚 vs button words orange-square | |
| 1442 | +🈁 japanese here button blue-square here katakana japanese destination | |
| 1443 | +🈂️ japanese service charge button japanese blue-square katakana | |
| 1444 | +🈷️ japanese monthly amount button chinese month moon japanese orange-square kanji | |
| 1445 | +🈶 japanese not free of charge button orange-square chinese have kanji | |
| 1446 | +🈯 japanese reserved button chinese point green-square kanji | |
| 1447 | +🉐 japanese bargain button chinese kanji obtain get circle | |
| 1448 | +🈹 japanese discount button cut divide chinese kanji pink-square | |
| 1449 | +🈚 japanese free of charge button nothing chinese kanji japanese orange-square | |
| 1450 | +🈲 japanese prohibited button kanji japanese chinese forbidden limit restricted red-square | |
| 1451 | +🉑 japanese acceptable button ok good chinese kanji agree yes orange-circle | |
| 1452 | +🈸 japanese application button chinese japanese kanji orange-square | |
| 1453 | +🈴 japanese passing grade button japanese chinese join kanji red-square | |
| 1454 | +🈳 japanese vacancy button kanji japanese chinese empty sky blue-square | |
| 1455 | +㊗️ japanese congratulations button chinese kanji japanese red-circle | |
| 1456 | +㊙️ japanese secret button privacy chinese sshh kanji red-circle | |
| 1457 | +🈺 japanese open for business button japanese opening hours orange-square | |
| 1458 | +🈵 japanese no vacancy button full chinese japanese red-square kanji | |
| 1459 | +🔴 red circle shape error danger | |
| 1460 | +🟠 orange circle round | |
| 1461 | +🟡 yellow circle round | |
| 1462 | +🟢 green circle round | |
| 1463 | +🔵 blue circle shape icon button | |
| 1464 | +🟣 purple circle round | |
| 1465 | +🟤 brown circle round | |
| 1466 | +⚫ black circle shape button round | |
| 1467 | +⚪ white circle shape round | |
| 1468 | +🟥 red square | |
| 1469 | +🟧 orange square | |
| 1470 | +🟨 yellow square | |
| 1471 | +🟩 green square | |
| 1472 | +🟦 blue square | |
| 1473 | +🟪 purple square | |
| 1474 | +🟫 brown square | |
| 1475 | +⬛ black large square shape icon button | |
| 1476 | +⬜ white large square shape icon stone button | |
| 1477 | +◼️ black medium square shape button icon | |
| 1478 | +◻️ white medium square shape stone icon | |
| 1479 | +◾ black medium small square icon shape button | |
| 1480 | +◽ white medium small square shape stone icon button | |
| 1481 | +▪️ black small square shape icon | |
| 1482 | +▫️ white small square shape icon | |
| 1483 | +🔶 large orange diamond shape jewel gem | |
| 1484 | +🔷 large blue diamond shape jewel gem | |
| 1485 | +🔸 small orange diamond shape jewel gem | |
| 1486 | +🔹 small blue diamond shape jewel gem | |
| 1487 | +🔺 red triangle pointed up shape direction up top | |
| 1488 | +🔻 red triangle pointed down shape direction bottom | |
| 1489 | +💠 diamond with a dot jewel blue gem crystal fancy | |
| 1490 | +🔘 radio button input old music circle | |
| 1491 | +🔳 white square button shape input | |
| 1492 | +🔲 black square button shape input frame | |
| 1493 | +🏁 chequered flag contest finishline race gokart | |
| 1494 | +🚩 triangular flag mark milestone place | |
| 1495 | +🎌 crossed flags japanese nation country border | |
| 1496 | +🏴 black flag pirate | |
| 1497 | +🏳️ white flag losing loser lost surrender give up fail | |
| 1498 | +🏳️🌈 rainbow flag flag rainbow pride gay lgbt glbt queer homosexual lesbian bisexual transgender | |
| 1499 | +🏴☠️ pirate flag skull crossbones flag banner | |
| 1500 | +🇦🇨 flag ascension island | |
| 1501 | +🇦🇩 flag andorra ad flag nation country banner andorra | |
| 1502 | +🇦🇪 flag united arab emirates united arab emirates flag nation country banner united arab emirates | |
| 1503 | +🇦🇫 flag afghanistan af flag nation country banner afghanistan | |
| 1504 | +🇦🇬 flag antigua barbuda antigua barbuda flag nation country banner antigua barbuda | |
| 1505 | +🇦🇮 flag anguilla ai flag nation country banner anguilla | |
| 1506 | +🇦🇱 flag albania al flag nation country banner albania | |
| 1507 | +🇦🇲 flag armenia am flag nation country banner armenia | |
| 1508 | +🇦🇴 flag angola ao flag nation country banner angola | |
| 1509 | +🇦🇶 flag antarctica aq flag nation country banner antarctica | |
| 1510 | +🇦🇷 flag argentina ar flag nation country banner argentina | |
| 1511 | +🇦🇸 flag american samoa american ws flag nation country banner american samoa | |
| 1512 | +🇦🇹 flag austria at flag nation country banner austria | |
| 1513 | +🇦🇺 flag australia au flag nation country banner australia | |
| 1514 | +🇦🇼 flag aruba aw flag nation country banner aruba | |
| 1515 | +🇦🇽 flag aland islands Åland islands flag nation country banner aland islands | |
| 1516 | +🇦🇿 flag azerbaijan az flag nation country banner azerbaijan | |
| 1517 | +🇧🇦 flag bosnia herzegovina bosnia herzegovina flag nation country banner bosnia herzegovina | |
| 1518 | +🇧🇧 flag barbados bb flag nation country banner barbados | |
| 1519 | +🇧🇩 flag bangladesh bd flag nation country banner bangladesh | |
| 1520 | +🇧🇪 flag belgium be flag nation country banner belgium | |
| 1521 | +🇧🇫 flag burkina faso burkina faso flag nation country banner burkina faso | |
| 1522 | +🇧🇬 flag bulgaria bg flag nation country banner bulgaria | |
| 1523 | +🇧🇭 flag bahrain bh flag nation country banner bahrain | |
| 1524 | +🇧🇮 flag burundi bi flag nation country banner burundi | |
| 1525 | +🇧🇯 flag benin bj flag nation country banner benin | |
| 1526 | +🇧🇱 flag st barthelemy saint barthélemy flag nation country banner st barthelemy | |
| 1527 | +🇧🇲 flag bermuda bm flag nation country banner bermuda | |
| 1528 | +🇧🇳 flag brunei bn darussalam flag nation country banner brunei | |
| 1529 | +🇧🇴 flag bolivia bo flag nation country banner bolivia | |
| 1530 | +🇧🇶 flag caribbean netherlands bonaire flag nation country banner caribbean netherlands | |
| 1531 | +🇧🇷 flag brazil br flag nation country banner brazil | |
| 1532 | +🇧🇸 flag bahamas bs flag nation country banner bahamas | |
| 1533 | +🇧🇹 flag bhutan bt flag nation country banner bhutan | |
| 1534 | +🇧🇻 flag bouvet island norway | |
| 1535 | +🇧🇼 flag botswana bw flag nation country banner botswana | |
| 1536 | +🇧🇾 flag belarus by flag nation country banner belarus | |
| 1537 | +🇧🇿 flag belize bz flag nation country banner belize | |
| 1538 | +🇨🇦 flag canada ca flag nation country banner canada | |
| 1539 | +🇨🇨 flag cocos islands cocos keeling islands flag nation country banner cocos islands | |
| 1540 | +🇨🇩 flag congo kinshasa congo democratic republic flag nation country banner congo kinshasa | |
| 1541 | +🇨🇫 flag central african republic central african republic flag nation country banner central african republic | |
| 1542 | +🇨🇬 flag congo brazzaville congo flag nation country banner congo brazzaville | |
| 1543 | +🇨🇭 flag switzerland ch flag nation country banner switzerland | |
| 1544 | +🇨🇮 flag cote d ivoire ivory coast flag nation country banner cote d ivoire | |
| 1545 | +🇨🇰 flag cook islands cook islands flag nation country banner cook islands | |
| 1546 | +🇨🇱 flag chile flag nation country banner chile | |
| 1547 | +🇨🇲 flag cameroon cm flag nation country banner cameroon | |
| 1548 | +🇨🇳 flag china china chinese prc flag country nation banner china | |
| 1549 | +🇨🇴 flag colombia co flag nation country banner colombia | |
| 1550 | +🇨🇵 flag clipperton island | |
| 1551 | +🇨🇷 flag costa rica costa rica flag nation country banner costa rica | |
| 1552 | +🇨🇺 flag cuba cu flag nation country banner cuba | |
| 1553 | +🇨🇻 flag cape verde cabo verde flag nation country banner cape verde | |
| 1554 | +🇨🇼 flag curacao curaçao flag nation country banner curacao | |
| 1555 | +🇨🇽 flag christmas island christmas island flag nation country banner christmas island | |
| 1556 | +🇨🇾 flag cyprus cy flag nation country banner cyprus | |
| 1557 | +🇨🇿 flag czechia cz flag nation country banner czechia | |
| 1558 | +🇩🇪 flag germany german nation flag country banner germany | |
| 1559 | +🇩🇬 flag diego garcia | |
| 1560 | +🇩🇯 flag djibouti dj flag nation country banner djibouti | |
| 1561 | +🇩🇰 flag denmark dk flag nation country banner denmark | |
| 1562 | +🇩🇲 flag dominica dm flag nation country banner dominica | |
| 1563 | +🇩🇴 flag dominican republic dominican republic flag nation country banner dominican republic | |
| 1564 | +🇩🇿 flag algeria dz flag nation country banner algeria | |
| 1565 | +🇪🇦 flag ceuta melilla | |
| 1566 | +🇪🇨 flag ecuador ec flag nation country banner ecuador | |
| 1567 | +🇪🇪 flag estonia ee flag nation country banner estonia | |
| 1568 | +🇪🇬 flag egypt eg flag nation country banner egypt | |
| 1569 | +🇪🇭 flag western sahara western sahara flag nation country banner western sahara | |
| 1570 | +🇪🇷 flag eritrea er flag nation country banner eritrea | |
| 1571 | +🇪🇸 flag spain spain flag nation country banner spain | |
| 1572 | +🇪🇹 flag ethiopia et flag nation country banner ethiopia | |
| 1573 | +🇪🇺 flag european union european union flag banner | |
| 1574 | +🇫🇮 flag finland fi flag nation country banner finland | |
| 1575 | +🇫🇯 flag fiji fj flag nation country banner fiji | |
| 1576 | +🇫🇰 flag falkland islands falkland islands malvinas flag nation country banner falkland islands | |
| 1577 | +🇫🇲 flag micronesia micronesia federated states flag nation country banner micronesia | |
| 1578 | +🇫🇴 flag faroe islands faroe islands flag nation country banner faroe islands | |
| 1579 | +🇫🇷 flag france banner flag nation france french country france | |
| 1580 | +🇬🇦 flag gabon ga flag nation country banner gabon | |
| 1581 | +🇬🇧 flag united kingdom united kingdom great britain northern ireland flag nation country banner british UK english england union jack united kingdom | |
| 1582 | +🇬🇩 flag grenada gd flag nation country banner grenada | |
| 1583 | +🇬🇪 flag georgia ge flag nation country banner georgia | |
| 1584 | +🇬🇫 flag french guiana french guiana flag nation country banner french guiana | |
| 1585 | +🇬🇬 flag guernsey gg flag nation country banner guernsey | |
| 1586 | +🇬🇭 flag ghana gh flag nation country banner ghana | |
| 1587 | +🇬🇮 flag gibraltar gi flag nation country banner gibraltar | |
| 1588 | +🇬🇱 flag greenland gl flag nation country banner greenland | |
| 1589 | +🇬🇲 flag gambia gm flag nation country banner gambia | |
| 1590 | +🇬🇳 flag guinea gn flag nation country banner guinea | |
| 1591 | +🇬🇵 flag guadeloupe gp flag nation country banner guadeloupe | |
| 1592 | +🇬🇶 flag equatorial guinea equatorial gn flag nation country banner equatorial guinea | |
| 1593 | +🇬🇷 flag greece gr flag nation country banner greece | |
| 1594 | +🇬🇸 flag south georgia south sandwich islands south georgia sandwich islands flag nation country banner south georgia south sandwich islands | |
| 1595 | +🇬🇹 flag guatemala gt flag nation country banner guatemala | |
| 1596 | +🇬🇺 flag guam gu flag nation country banner guam | |
| 1597 | +🇬🇼 flag guinea bissau gw bissau flag nation country banner guinea bissau | |
| 1598 | +🇬🇾 flag guyana gy flag nation country banner guyana | |
| 1599 | +🇭🇰 flag hong kong sar china hong kong flag nation country banner hong kong sar china | |
| 1600 | +🇭🇲 flag heard mcdonald islands | |
| 1601 | +🇭🇳 flag honduras hn flag nation country banner honduras | |
| 1602 | +🇭🇷 flag croatia hr flag nation country banner croatia | |
| 1603 | +🇭🇹 flag haiti ht flag nation country banner haiti | |
| 1604 | +🇭🇺 flag hungary hu flag nation country banner hungary | |
| 1605 | +🇮🇨 flag canary islands canary islands flag nation country banner canary islands | |
| 1606 | +🇮🇩 flag indonesia flag nation country banner indonesia | |
| 1607 | +🇮🇪 flag ireland ie flag nation country banner ireland | |
| 1608 | +🇮🇱 flag israel il flag nation country banner israel | |
| 1609 | +🇮🇲 flag isle of man isle man flag nation country banner isle of man | |
| 1610 | +🇮🇳 flag india in flag nation country banner india | |
| 1611 | +🇮🇴 flag british indian ocean territory british indian ocean territory flag nation country banner british indian ocean territory | |
| 1612 | +🇮🇶 flag iraq iq flag nation country banner iraq | |
| 1613 | +🇮🇷 flag iran iran islamic republic flag nation country banner iran | |
| 1614 | +🇮🇸 flag iceland is flag nation country banner iceland | |
| 1615 | +🇮🇹 flag italy italy flag nation country banner italy | |
| 1616 | +🇯🇪 flag jersey je flag nation country banner jersey | |
| 1617 | +🇯🇲 flag jamaica jm flag nation country banner jamaica | |
| 1618 | +🇯🇴 flag jordan jo flag nation country banner jordan | |
| 1619 | +🇯🇵 flag japan japanese nation flag country banner japan | |
| 1620 | +🇰🇪 flag kenya ke flag nation country banner kenya | |
| 1621 | +🇰🇬 flag kyrgyzstan kg flag nation country banner kyrgyzstan | |
| 1622 | +🇰🇭 flag cambodia kh flag nation country banner cambodia | |
| 1623 | +🇰🇮 flag kiribati ki flag nation country banner kiribati | |
| 1624 | +🇰🇲 flag comoros km flag nation country banner comoros | |
| 1625 | +🇰🇳 flag st kitts nevis saint kitts nevis flag nation country banner st kitts nevis | |
| 1626 | +🇰🇵 flag north korea north korea nation flag country banner north korea | |
| 1627 | +🇰🇷 flag south korea south korea nation flag country banner south korea | |
| 1628 | +🇰🇼 flag kuwait kw flag nation country banner kuwait | |
| 1629 | +🇰🇾 flag cayman islands cayman islands flag nation country banner cayman islands | |
| 1630 | +🇰🇿 flag kazakhstan kz flag nation country banner kazakhstan | |
| 1631 | +🇱🇦 flag laos lao democratic republic flag nation country banner laos | |
| 1632 | +🇱🇧 flag lebanon lb flag nation country banner lebanon | |
| 1633 | +🇱🇨 flag st lucia saint lucia flag nation country banner st lucia | |
| 1634 | +🇱🇮 flag liechtenstein li flag nation country banner liechtenstein | |
| 1635 | +🇱🇰 flag sri lanka sri lanka flag nation country banner sri lanka | |
| 1636 | +🇱🇷 flag liberia lr flag nation country banner liberia | |
| 1637 | +🇱🇸 flag lesotho ls flag nation country banner lesotho | |
| 1638 | +🇱🇹 flag lithuania lt flag nation country banner lithuania | |
| 1639 | +🇱🇺 flag luxembourg lu flag nation country banner luxembourg | |
| 1640 | +🇱🇻 flag latvia lv flag nation country banner latvia | |
| 1641 | +🇱🇾 flag libya ly flag nation country banner libya | |
| 1642 | +🇲🇦 flag morocco ma flag nation country banner morocco | |
| 1643 | +🇲🇨 flag monaco mc flag nation country banner monaco | |
| 1644 | +🇲🇩 flag moldova moldova republic flag nation country banner moldova | |
| 1645 | +🇲🇪 flag montenegro me flag nation country banner montenegro | |
| 1646 | +🇲🇫 flag st martin | |
| 1647 | +🇲🇬 flag madagascar mg flag nation country banner madagascar | |
| 1648 | +🇲🇭 flag marshall islands marshall islands flag nation country banner marshall islands | |
| 1649 | +🇲🇰 flag north macedonia macedonia flag nation country banner north macedonia | |
| 1650 | +🇲🇱 flag mali ml flag nation country banner mali | |
| 1651 | +🇲🇲 flag myanmar mm flag nation country banner myanmar | |
| 1652 | +🇲🇳 flag mongolia mn flag nation country banner mongolia | |
| 1653 | +🇲🇴 flag macao sar china macao flag nation country banner macao sar china | |
| 1654 | +🇲🇵 flag northern mariana islands northern mariana islands flag nation country banner northern mariana islands | |
| 1655 | +🇲🇶 flag martinique mq flag nation country banner martinique | |
| 1656 | +🇲🇷 flag mauritania mr flag nation country banner mauritania | |
| 1657 | +🇲🇸 flag montserrat ms flag nation country banner montserrat | |
| 1658 | +🇲🇹 flag malta mt flag nation country banner malta | |
| 1659 | +🇲🇺 flag mauritius mu flag nation country banner mauritius | |
| 1660 | +🇲🇻 flag maldives mv flag nation country banner maldives | |
| 1661 | +🇲🇼 flag malawi mw flag nation country banner malawi | |
| 1662 | +🇲🇽 flag mexico mx flag nation country banner mexico | |
| 1663 | +🇲🇾 flag malaysia my flag nation country banner malaysia | |
| 1664 | +🇲🇿 flag mozambique mz flag nation country banner mozambique | |
| 1665 | +🇳🇦 flag namibia na flag nation country banner namibia | |
| 1666 | +🇳🇨 flag new caledonia new caledonia flag nation country banner new caledonia | |
| 1667 | +🇳🇪 flag niger ne flag nation country banner niger | |
| 1668 | +🇳🇫 flag norfolk island norfolk island flag nation country banner norfolk island | |
| 1669 | +🇳🇬 flag nigeria flag nation country banner nigeria | |
| 1670 | +🇳🇮 flag nicaragua ni flag nation country banner nicaragua | |
| 1671 | +🇳🇱 flag netherlands nl flag nation country banner netherlands | |
| 1672 | +🇳🇴 flag norway no flag nation country banner norway | |
| 1673 | +🇳🇵 flag nepal np flag nation country banner nepal | |
| 1674 | +🇳🇷 flag nauru nr flag nation country banner nauru | |
| 1675 | +🇳🇺 flag niue nu flag nation country banner niue | |
| 1676 | +🇳🇿 flag new zealand new zealand flag nation country banner new zealand | |
| 1677 | +🇴🇲 flag oman om symbol flag nation country banner oman | |
| 1678 | +🇵🇦 flag panama pa flag nation country banner panama | |
| 1679 | +🇵🇪 flag peru pe flag nation country banner peru | |
| 1680 | +🇵🇫 flag french polynesia french polynesia flag nation country banner french polynesia | |
| 1681 | +🇵🇬 flag papua new guinea papua new guinea flag nation country banner papua new guinea | |
| 1682 | +🇵🇭 flag philippines ph flag nation country banner philippines | |
| 1683 | +🇵🇰 flag pakistan pk flag nation country banner pakistan | |
| 1684 | +🇵🇱 flag poland pl flag nation country banner poland | |
| 1685 | +🇵🇲 flag st pierre miquelon saint pierre miquelon flag nation country banner st pierre miquelon | |
| 1686 | +🇵🇳 flag pitcairn islands pitcairn flag nation country banner pitcairn islands | |
| 1687 | +🇵🇷 flag puerto rico puerto rico flag nation country banner puerto rico | |
| 1688 | +🇵🇸 flag palestinian territories palestine palestinian territories flag nation country banner palestinian territories | |
| 1689 | +🇵🇹 flag portugal pt flag nation country banner portugal | |
| 1690 | +🇵🇼 flag palau pw flag nation country banner palau | |
| 1691 | +🇵🇾 flag paraguay py flag nation country banner paraguay | |
| 1692 | +🇶🇦 flag qatar qa flag nation country banner qatar | |
| 1693 | +🇷🇪 flag reunion réunion flag nation country banner reunion | |
| 1694 | +🇷🇴 flag romania ro flag nation country banner romania | |
| 1695 | +🇷🇸 flag serbia rs flag nation country banner serbia | |
| 1696 | +🇷🇺 flag russia russian federation flag nation country banner russia | |
| 1697 | +🇷🇼 flag rwanda rw flag nation country banner rwanda | |
| 1698 | +🇸🇦 flag saudi arabia flag nation country banner saudi arabia | |
| 1699 | +🇸🇧 flag solomon islands solomon islands flag nation country banner solomon islands | |
| 1700 | +🇸🇨 flag seychelles sc flag nation country banner seychelles | |
| 1701 | +🇸🇩 flag sudan sd flag nation country banner sudan | |
| 1702 | +🇸🇪 flag sweden se flag nation country banner sweden | |
| 1703 | +🇸🇬 flag singapore sg flag nation country banner singapore | |
| 1704 | +🇸🇭 flag st helena saint helena ascension tristan cunha flag nation country banner st helena | |
| 1705 | +🇸🇮 flag slovenia si flag nation country banner slovenia | |
| 1706 | +🇸🇯 flag svalbard jan mayen | |
| 1707 | +🇸🇰 flag slovakia sk flag nation country banner slovakia | |
| 1708 | +🇸🇱 flag sierra leone sierra leone flag nation country banner sierra leone | |
| 1709 | +🇸🇲 flag san marino san marino flag nation country banner san marino | |
| 1710 | +🇸🇳 flag senegal sn flag nation country banner senegal | |
| 1711 | +🇸🇴 flag somalia so flag nation country banner somalia | |
| 1712 | +🇸🇷 flag suriname sr flag nation country banner suriname | |
| 1713 | +🇸🇸 flag south sudan south sd flag nation country banner south sudan | |
| 1714 | +🇸🇹 flag sao tome principe sao tome principe flag nation country banner sao tome principe | |
| 1715 | +🇸🇻 flag el salvador el salvador flag nation country banner el salvador | |
| 1716 | +🇸🇽 flag sint maarten sint maarten dutch flag nation country banner sint maarten | |
| 1717 | +🇸🇾 flag syria syrian arab republic flag nation country banner syria | |
| 1718 | +🇸🇿 flag eswatini sz flag nation country banner eswatini | |
| 1719 | +🇹🇦 flag tristan da cunha | |
| 1720 | +🇹🇨 flag turks caicos islands turks caicos islands flag nation country banner turks caicos islands | |
| 1721 | +🇹🇩 flag chad td flag nation country banner chad | |
| 1722 | +🇹🇫 flag french southern territories french southern territories flag nation country banner french southern territories | |
| 1723 | +🇹🇬 flag togo tg flag nation country banner togo | |
| 1724 | +🇹🇭 flag thailand th flag nation country banner thailand | |
| 1725 | +🇹🇯 flag tajikistan tj flag nation country banner tajikistan | |
| 1726 | +🇹🇰 flag tokelau tk flag nation country banner tokelau | |
| 1727 | +🇹🇱 flag timor leste timor leste flag nation country banner timor leste | |
| 1728 | +🇹🇲 flag turkmenistan flag nation country banner turkmenistan | |
| 1729 | +🇹🇳 flag tunisia tn flag nation country banner tunisia | |
| 1730 | +🇹🇴 flag tonga to flag nation country banner tonga | |
| 1731 | +🇹🇷 flag turkey turkey flag nation country banner turkey | |
| 1732 | +🇹🇹 flag trinidad tobago trinidad tobago flag nation country banner trinidad tobago | |
| 1733 | +🇹🇻 flag tuvalu flag nation country banner tuvalu | |
| 1734 | +🇹🇼 flag taiwan tw flag nation country banner taiwan | |
| 1735 | +🇹🇿 flag tanzania tanzania united republic flag nation country banner tanzania | |
| 1736 | +🇺🇦 flag ukraine ua flag nation country banner ukraine | |
| 1737 | +🇺🇬 flag uganda ug flag nation country banner uganda | |
| 1738 | +🇺🇲 flag u s outlying islands | |
| 1739 | +🇺🇳 flag united nations un flag banner | |
| 1740 | +🇺🇸 flag united states united states america flag nation country banner united states | |
| 1741 | +🇺🇾 flag uruguay uy flag nation country banner uruguay | |
| 1742 | +🇺🇿 flag uzbekistan uz flag nation country banner uzbekistan | |
| 1743 | +🇻🇦 flag vatican city vatican city flag nation country banner vatican city | |
| 1744 | +🇻🇨 flag st vincent grenadines saint vincent grenadines flag nation country banner st vincent grenadines | |
| 1745 | +🇻🇪 flag venezuela ve bolivarian republic flag nation country banner venezuela | |
| 1746 | +🇻🇬 flag british virgin islands british virgin islands bvi flag nation country banner british virgin islands | |
| 1747 | +🇻🇮 flag u s virgin islands virgin islands us flag nation country banner u s virgin islands | |
| 1748 | +🇻🇳 flag vietnam viet nam flag nation country banner vietnam | |
| 1749 | +🇻🇺 flag vanuatu vu flag nation country banner vanuatu | |
| 1750 | +🇼🇫 flag wallis futuna wallis futuna flag nation country banner wallis futuna | |
| 1751 | +🇼🇸 flag samoa ws flag nation country banner samoa | |
| 1752 | +🇽🇰 flag kosovo xk flag nation country banner kosovo | |
| 1753 | +🇾🇪 flag yemen ye flag nation country banner yemen | |
| 1754 | +🇾🇹 flag mayotte yt flag nation country banner mayotte | |
| 1755 | +🇿🇦 flag south africa south africa flag nation country banner south africa | |
| 1756 | +🇿🇲 flag zambia zm flag nation country banner zambia | |
| 1757 | +🇿🇼 flag zimbabwe zw flag nation country banner zimbabwe | |
| 1758 | +🏴 flag england flag english | |
| 1759 | +🏴 flag scotland flag scottish | |
| 1760 | +🏴 flag wales flag welsh | |
| 1761 | +🥲 smiling face with tear sad cry pretend | |
| 1762 | +🥸 disguised face pretent brows glasses moustache | |
| 1763 | +🤌 pinched fingers size tiny small | |
| 1764 | +🫀 anatomical heart health heartbeat | |
| 1765 | +🫁 lungs breathe | |
| 1766 | +🥷 ninja ninjutsu skills japanese | |
| 1767 | +🤵♂️ man in tuxedo formal fashion | |
| 1768 | +🤵♀️ woman in tuxedo formal fashion | |
| 1769 | +👰♂️ man with veil wedding marriage | |
| 1770 | +👰♀️ woman with veil wedding marriage | |
| 1771 | +👩🍼 woman feeding baby birth food | |
| 1772 | +👨🍼 man feeding baby birth food | |
| 1773 | +🧑🍼 person feeding baby birth food | |
| 1774 | +🧑🎄 mx claus christmas | |
| 1775 | +🫂 people hugging care | |
| 1776 | +🐈⬛ black cat superstition luck | |
| 1777 | +🦬 bison ox | |
| 1778 | +🦣 mammoth elephant tusks | |
| 1779 | +🦫 beaver animal rodent | |
| 1780 | +🐻❄️ polar bear animal arctic | |
| 1781 | +🦤 dodo animal bird | |
| 1782 | +🪶 feather bird fly | |
| 1783 | +🦭 seal animal creature sea | |
| 1784 | +🪲 beetle insect | |
| 1785 | +🪳 cockroach insect pests | |
| 1786 | +🪰 fly insect | |
| 1787 | +🪱 worm animal | |
| 1788 | +🪴 potted plant greenery house | |
| 1789 | +🫐 blueberries fruit | |
| 1790 | +🫒 olive fruit | |
| 1791 | +🫑 bell pepper fruit plant | |
| 1792 | +🫓 flatbread flour food | |
| 1793 | +🫔 tamale food masa | |
| 1794 | +🫕 fondue cheese pot food | |
| 1795 | +🫖 teapot drink hot | |
| 1796 | +🧋 bubble tea taiwan boba milk tea straw | |
| 1797 | +🪨 rock stone | |
| 1798 | +🪵 wood nature timber trunk | |
| 1799 | +🛖 hut house structure | |
| 1800 | +🛻 pickup truck car transportation | |
| 1801 | +🛼 roller skate footwear sports | |
| 1802 | +🪄 magic wand supernature power | |
| 1803 | +🪅 pinata mexico candy celebration | |
| 1804 | +🪆 nesting dolls matryoshka toy | |
| 1805 | +🪡 sewing needle stitches | |
| 1806 | +🪢 knot rope scout | |
| 1807 | +🩴 thong sandal footwear summer | |
| 1808 | +🪖 military helmet army protection | |
| 1809 | +🪗 accordion music | |
| 1810 | +🪘 long drum music | |
| 1811 | +🪙 coin money currency | |
| 1812 | +🪃 boomerang weapon | |
| 1813 | +🪚 carpentry saw cut chop | |
| 1814 | +🪛 screwdriver tools | |
| 1815 | +🪝 hook tools | |
| 1816 | +🪜 ladder tools | |
| 1817 | +🛗 elevator lift | |
| 1818 | +🪞 mirror reflection | |
| 1819 | +🪟 window scenery | |
| 1820 | +🪠 plunger toilet | |
| 1821 | +🪤 mouse trap cheese | |
| 1822 | +🪣 bucket water container | |
| 1823 | +🪥 toothbrush hygiene dental | |
| 1824 | +🪦 headstone death rip grave | |
| 1825 | +🪧 placard announcement | |
| 1826 | +⚧️ transgender symbol lgbtq | |
| 1827 | +🏳️⚧️ transgender flag lgbtq | |
| 1828 | +😶🌫️ face in clouds shower steam dream | |
| 1829 | +😮💨 face exhaling relieve relief tired sigh | |
| 1830 | +😵💫 face with spiral eyes sick ill confused nauseous nausea | |
| 1831 | +❤️🔥 heart on fire passionate enthusiastic | |
| 1832 | +❤️🩹 mending heart broken heart bandage wounded | |
| 1833 | +🧔♂️ man beard facial hair | |
| 1834 | +🧔♀️ woman beard facial hair | |
| 1835 | +🫠 melting face hot heat | |
| 1836 | +🫢 face with open eyes and hand over mouth silence secret shock surprise | |
| 1837 | +🫣 face with peeking eye scared frightening embarrassing | |
| 1838 | +🫡 saluting face respect salute | |
| 1839 | +🫥 dotted line face invisible lonely isolation depression | |
| 1840 | +🫤 face with diagonal mouth skeptic confuse frustrated indifferent | |
| 1841 | +🥹 face holding back tears touched gratitude | |
| 1842 | +🫱 rightwards hand palm offer | |
| 1843 | +🫲 leftwards hand palm offer | |
| 1844 | +🫳 palm down hand palm drop | |
| 1845 | +🫴 palm up hand lift offer demand | |
| 1846 | +🫰 hand with index finger and thumb crossed heart love money expensive | |
| 1847 | +🫵 index pointing at the viewer you recruit | |
| 1848 | +🫶 heart hands love appreciation support | |
| 1849 | +🫦 biting lip flirt sexy pain worry | |
| 1850 | +🫅 person with crown royalty power | |
| 1851 | +🫃 pregnant man baby belly | |
| 1852 | +🫄 pregnant person baby belly | |
| 1853 | +🧌 troll mystical monster | |
| 1854 | +🪸 coral ocean sea reef | |
| 1855 | +🪷 lotus flower calm meditation | |
| 1856 | +🪹 empty nest bird | |
| 1857 | +🪺 nest with eggs bird | |
| 1858 | +🫘 beans food | |
| 1859 | +🫗 pouring liquid cup water | |
| 1860 | +🫙 jar container sauce | |
| 1861 | +🛝 playground slide fun park | |
| 1862 | +🛞 wheel car transport | |
| 1863 | +🛟 ring buoy life saver life preserver | |
| 1864 | +🪬 hamsa religion protection | |
| 1865 | +🪩 mirror ball disco dance party | |
| 1866 | +🪫 low battery drained dead | |
| 1867 | +🩼 crutch accessibility assist | |
| 1868 | +🩻 x-ray skeleton medicine | |
| 1869 | +🫧 bubbles soap fun carbonation sparkling | |
| 1870 | +🪪 identification card document | |
| 1871 | +🟰 heavy equals sign math |
+36-0scripts/RofiSearch.sh
| @@ -0,0 +1,36 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# For Searching via web browsers | |
| 4 | + | |
| 5 | +# Define the path to the config file | |
| 6 | +config_file=$HOME/.config/hypr/UserConfigs/01-UserDefaults.conf | |
| 7 | + | |
| 8 | +# Check if the config file exists | |
| 9 | +if [[ ! -f "$config_file" ]]; then | |
| 10 | + echo "Error: Configuration file not found!" | |
| 11 | + exit 1 | |
| 12 | +fi | |
| 13 | + | |
| 14 | +# Process the config file in memory, removing the $ and fixing spaces | |
| 15 | +config_content=$(sed 's/\$//g' "$config_file" | sed 's/ = /=/') | |
| 16 | + | |
| 17 | +# Source the modified content directly from the variable | |
| 18 | +eval "$config_content" | |
| 19 | + | |
| 20 | +# Check if $term is set correctly | |
| 21 | +if [[ -z "$Search_Engine" ]]; then | |
| 22 | + echo "Error: \$Search_Engine is not set in the configuration file!" | |
| 23 | + exit 1 | |
| 24 | +fi | |
| 25 | + | |
| 26 | +# Rofi theme and message | |
| 27 | +rofi_theme="$HOME/.config/rofi/config-search.rasi" | |
| 28 | +msg='‼️ **note** ‼️ search via default web browser' | |
| 29 | + | |
| 30 | +# Kill Rofi if already running before execution | |
| 31 | +if pgrep -x "rofi" >/dev/null; then | |
| 32 | + pkill rofi | |
| 33 | +fi | |
| 34 | + | |
| 35 | +# Open Rofi and pass the selected query to xdg-open for Google search | |
| 36 | +echo "" | rofi -dmenu -config "$rofi_theme" -mesg "$msg" | xargs -I{} xdg-open $Search_Engine |
+229-0scripts/RofiThemeSelector-modified.sh
| @@ -0,0 +1,229 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# A modified version of Rofi-Theme-Selector, concentrating only on ~/.local and also, applying only 10 @themes in ~/.config/rofi/config.rasi | |
| 4 | +# as opposed to continous adding of //@theme | |
| 5 | + | |
| 6 | +# This code is released in public domain by Dave Davenport <qball@gmpclient.org> | |
| 7 | + | |
| 8 | +iDIR="$HOME/.config/swaync/images" | |
| 9 | + | |
| 10 | + | |
| 11 | +OS="linux" | |
| 12 | + | |
| 13 | +ROFI=$(command -v rofi) | |
| 14 | +SED=$(command -v sed) | |
| 15 | +MKTEMP=$(command -v mktemp) | |
| 16 | +NOTIFY_SEND=$(command -v notify-send) | |
| 17 | + | |
| 18 | +if [ -z "${SED}" ] | |
| 19 | +then | |
| 20 | + echo "Did not find 'sed', script cannot continue." | |
| 21 | + exit 1 | |
| 22 | +fi | |
| 23 | +if [ -z "${MKTEMP}" ] | |
| 24 | +then | |
| 25 | + echo "Did not find 'mktemp', script cannot continue." | |
| 26 | + exit 1 | |
| 27 | +fi | |
| 28 | +if [ -z "${ROFI}" ] | |
| 29 | +then | |
| 30 | + echo "Did not find rofi, there is no point to continue." | |
| 31 | + exit 1 | |
| 32 | +fi | |
| 33 | +if [ -z "${NOTIFY_SEND}" ] | |
| 34 | +then | |
| 35 | + echo "Did not find 'notify-send', notifications won't work." | |
| 36 | +fi | |
| 37 | + | |
| 38 | +TMP_CONFIG_FILE=$(${MKTEMP}).rasi | |
| 39 | +#rofi_theme_dir="${HOME}/.local/share/rofi/themes" | |
| 40 | +rofi_config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/rofi/config.rasi" | |
| 41 | + | |
| 42 | +## | |
| 43 | +# Array with parts to the found themes. | |
| 44 | +# And array with the printable name. | |
| 45 | +## | |
| 46 | +declare -a themes | |
| 47 | +declare -a theme_names | |
| 48 | + | |
| 49 | +## | |
| 50 | +# Function that tries to find all installed rofi themes. | |
| 51 | +# This fills in #themes array and formats a displayable string #theme_names | |
| 52 | +## | |
| 53 | +# Find themes in defined directories | |
| 54 | +find_themes() { | |
| 55 | + directories=("$HOME/.local/share/rofi/themes" "$HOME/.config/rofi/themes") | |
| 56 | + | |
| 57 | + for TD in "${directories[@]}"; do | |
| 58 | + if [ -d "$TD" ]; then | |
| 59 | + echo "Checking themes in: $TD" | |
| 60 | + for file in "$TD"/*.rasi; do | |
| 61 | + if [ -f "$file" ] && [ ! -L "$file" ]; then | |
| 62 | + themes+=("$file") | |
| 63 | + theme_names+=("$(basename "${file%.*}")") | |
| 64 | + else | |
| 65 | + echo "Skipping symlink: $file" | |
| 66 | + fi | |
| 67 | + done | |
| 68 | + else | |
| 69 | + echo "Directory does not exist: $TD" | |
| 70 | + fi | |
| 71 | + done | |
| 72 | +} | |
| 73 | + | |
| 74 | +## | |
| 75 | +# Function to add or update theme in the config.rasi | |
| 76 | +## | |
| 77 | +add_theme_to_config() { | |
| 78 | + local theme_name="$1" | |
| 79 | + local theme_path | |
| 80 | + | |
| 81 | + # Determine the correct path for the theme | |
| 82 | + if [[ -f "$HOME/.local/share/rofi/themes/$theme_name.rasi" ]]; then | |
| 83 | + theme_path="$HOME/.local/share/rofi/themes/$theme_name.rasi" | |
| 84 | + elif [[ -f "$HOME/.config/rofi/themes/$theme_name.rasi" ]]; then | |
| 85 | + theme_path="$HOME/.config/rofi/themes/$theme_name.rasi" | |
| 86 | + else | |
| 87 | + echo "Theme not found: $theme_name" | |
| 88 | + return 1 | |
| 89 | + fi | |
| 90 | + | |
| 91 | + # Resolve symlinks if present | |
| 92 | + if [[ -L "$theme_path" ]]; then | |
| 93 | + theme_path=$(readlink -f "$theme_path") | |
| 94 | + fi | |
| 95 | + | |
| 96 | + # Convert path to use ~ for home directory | |
| 97 | + theme_path_with_tilde="~${theme_path#$HOME}" | |
| 98 | + | |
| 99 | + # Add or update @theme line in config | |
| 100 | + if ! grep -q '^\s*@theme' "$rofi_config_file"; then | |
| 101 | + echo -e "\n\n@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" | |
| 102 | + echo "Added @theme \"$theme_path_with_tilde\" to $rofi_config_file" | |
| 103 | + else | |
| 104 | + $SED -i "s/^\(\s*@theme.*\)/\/\/\1/" "$rofi_config_file" | |
| 105 | + echo -e "@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" | |
| 106 | + echo "Updated @theme line to $theme_path_with_tilde" | |
| 107 | + fi | |
| 108 | + | |
| 109 | + # Limit the number of @theme lines to a maximum of 9 | |
| 110 | + max_lines=9 | |
| 111 | + total_lines=$(grep -c '^\s*//@theme' "$rofi_config_file") | |
| 112 | + | |
| 113 | + if [ "$total_lines" -gt "$max_lines" ]; then | |
| 114 | + excess=$((total_lines - max_lines)) | |
| 115 | + for i in $(seq 1 "$excess"); do | |
| 116 | + $SED -i '0,/^\s*\/\/@theme/ { /^\s*\/\/@theme/ {d; q; }}' "$rofi_config_file" | |
| 117 | + done | |
| 118 | + echo "Removed excess //@theme lines" | |
| 119 | + fi | |
| 120 | +} | |
| 121 | + | |
| 122 | +## | |
| 123 | +# Create a copy of rofi config | |
| 124 | +## | |
| 125 | +create_config_copy() | |
| 126 | +{ | |
| 127 | + ${ROFI} -dump-config > "${TMP_CONFIG_FILE}" | |
| 128 | + # remove theme entry. | |
| 129 | + ${SED} -i 's/^\s*theme:\s\+".*"\s*;//g' "${TMP_CONFIG_FILE}" | |
| 130 | +} | |
| 131 | + | |
| 132 | +### | |
| 133 | +# Print the list out so it can be displayed by rofi. | |
| 134 | +## | |
| 135 | +create_theme_list() | |
| 136 | +{ | |
| 137 | + OLDIFS=${IFS} | |
| 138 | + IFS='|' | |
| 139 | + for themen in ${theme_names[@]} | |
| 140 | + do | |
| 141 | + echo "${themen}" | |
| 142 | + done | |
| 143 | + IFS=${OLDIFS} | |
| 144 | +} | |
| 145 | + | |
| 146 | +## | |
| 147 | +# Thee indicate what entry is selected. | |
| 148 | +## | |
| 149 | +declare -i SELECTED | |
| 150 | + | |
| 151 | +select_theme() | |
| 152 | +{ | |
| 153 | + local MORE_FLAGS=(-dmenu -format i -no-custom -p "Theme" -markup -config "${TMP_CONFIG_FILE}" -i) | |
| 154 | + MORE_FLAGS+=(-kb-custom-1 "Alt-a") | |
| 155 | + MORE_FLAGS+=(-u 2,3 -a 4,5 ) | |
| 156 | + local CUR="default" | |
| 157 | + while true | |
| 158 | + do | |
| 159 | + declare -i RTR | |
| 160 | + declare -i RES | |
| 161 | + local MESG="""You can preview themes by hitting <b>Enter</b>. | |
| 162 | +<b>Alt-a</b> to accept the new theme. | |
| 163 | +<b>Escape</b> to cancel | |
| 164 | +Current theme: <b>${CUR}</b> | |
| 165 | +<span weight=\"bold\" size=\"xx-small\">When setting a new theme this will override previous theme settings. | |
| 166 | +Please update your config file if you have local modifications.</span>""" | |
| 167 | + THEME_FLAG= | |
| 168 | + if [ -n "${SELECTED}" ] | |
| 169 | + then | |
| 170 | + THEME_FLAG="-theme ${themes[${SELECTED}]}" | |
| 171 | + fi | |
| 172 | + RES=$( create_theme_list | ${ROFI} ${THEME_FLAG} ${MORE_FLAGS[@]} -cycle -selected-row "${SELECTED}" -mesg "${MESG}") | |
| 173 | + RTR=$? | |
| 174 | + if [ "${RTR}" = 10 ] | |
| 175 | + then | |
| 176 | + return 0; | |
| 177 | + elif [ "${RTR}" = 1 ] | |
| 178 | + then | |
| 179 | + return 1; | |
| 180 | + elif [ "${RTR}" = 65 ] | |
| 181 | + then | |
| 182 | + return 1; | |
| 183 | + fi | |
| 184 | + CUR=${theme_names[${RES}]} | |
| 185 | + SELECTED=${RES} | |
| 186 | + done | |
| 187 | +} | |
| 188 | + | |
| 189 | +############################################################################################################ | |
| 190 | +# Actual program execution | |
| 191 | +########################################################################################################### | |
| 192 | +## | |
| 193 | +# Find all themes | |
| 194 | +## | |
| 195 | +find_themes | |
| 196 | + | |
| 197 | +## | |
| 198 | +# Do check if there are themes. | |
| 199 | +## | |
| 200 | +if [ ${#themes[@]} = 0 ] | |
| 201 | +then | |
| 202 | + ${ROFI} -e "No themes found." | |
| 203 | + exit 0 | |
| 204 | +fi | |
| 205 | + | |
| 206 | +## | |
| 207 | +# Create copy of config to play with in preview | |
| 208 | +## | |
| 209 | +create_config_copy | |
| 210 | + | |
| 211 | +## | |
| 212 | +# Show the themes to user. | |
| 213 | +## | |
| 214 | +if select_theme && [ -n "${SELECTED}" ] | |
| 215 | +then | |
| 216 | + # Apply the selected theme | |
| 217 | + add_theme_to_config "${theme_names[${SELECTED}]}" | |
| 218 | + | |
| 219 | + # Send notification with the selected theme name | |
| 220 | + selection="${theme_names[${SELECTED}]}" | |
| 221 | + if [ -n "$NOTIFY_SEND" ]; then | |
| 222 | + notify-send -u low -i "$iDIR/ja.png" "Rofi Theme applied:" "$selection" | |
| 223 | + fi | |
| 224 | +fi | |
| 225 | + | |
| 226 | +## | |
| 227 | +# Remove temp. config. | |
| 228 | +## | |
| 229 | +rm -- "${TMP_CONFIG_FILE}" |
+75-0scripts/RofiThemeSelector.sh
| @@ -0,0 +1,75 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Script for adding a selected theme to the Rofi config | |
| 4 | + | |
| 5 | +IFS=$'\n\t' | |
| 6 | + | |
| 7 | +# Define directories and variables | |
| 8 | +rofi_theme_dir="$HOME/.config/rofi/themes" | |
| 9 | +rofi_config_file="$HOME/.config/rofi/config.rasi" | |
| 10 | +SED=$(which sed) | |
| 11 | +iDIR="$HOME/.config/swaync/images" | |
| 12 | +rofi_theme="$HOME/.config/rofi/config-rofi-theme.rasi" | |
| 13 | + | |
| 14 | +# Function to display menu options | |
| 15 | +menu() { | |
| 16 | + options=() | |
| 17 | + while IFS= read -r file; do | |
| 18 | + options+=("$file") | |
| 19 | + done < <(find -L "$rofi_theme_dir" -maxdepth 1 -type f -exec basename {} \; | sort -V) | |
| 20 | + | |
| 21 | + printf '%s\n' "${options[@]}" | |
| 22 | +} | |
| 23 | + | |
| 24 | +# Function to add or update theme in the config.rasi | |
| 25 | +add_theme_to_config() { | |
| 26 | + local theme_name="$1" | |
| 27 | + local theme_path="$rofi_theme_dir/$theme_name" | |
| 28 | + | |
| 29 | + # if config in $HOME to write as $HOME | |
| 30 | + if [[ "$theme_path" == $HOME/* ]]; then | |
| 31 | + theme_path_with_tilde="~${theme_path#$HOME}" | |
| 32 | + else | |
| 33 | + theme_path_with_tilde="$theme_path" | |
| 34 | + fi | |
| 35 | + | |
| 36 | + # If no @theme is in the file, add it | |
| 37 | + if ! grep -q '^\s*@theme' "$rofi_config_file"; then | |
| 38 | + echo -e "\n\n@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" | |
| 39 | + echo "Added @theme \"$theme_path_with_tilde\" to $rofi_config_file" | |
| 40 | + else | |
| 41 | + $SED -i "s/^\(\s*@theme.*\)/\/\/\1/" "$rofi_config_file" | |
| 42 | + echo -e "@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" | |
| 43 | + echo "Updated @theme line to $theme_path_with_tilde" | |
| 44 | + fi | |
| 45 | + | |
| 46 | + # Ensure no more than max # of lines with //@theme lines | |
| 47 | + max_line="9" | |
| 48 | + total_lines=$(grep -c '^\s*//@theme' "$rofi_config_file") | |
| 49 | + | |
| 50 | + if [ "$total_lines" -gt "$max_line" ]; then | |
| 51 | + excess=$((total_lines - max_line)) | |
| 52 | + # Remove the oldest or the very top //@theme lines | |
| 53 | + for i in $(seq 1 "$excess"); do | |
| 54 | + $SED -i '0,/^\s*\/\/@theme/ { /^\s*\/\/@theme/ {d; q; }}' "$rofi_config_file" | |
| 55 | + done | |
| 56 | + echo "Removed excess //@theme lines" | |
| 57 | + fi | |
| 58 | +} | |
| 59 | + | |
| 60 | +# Main function | |
| 61 | +main() { | |
| 62 | + choice=$(menu | rofi rofi -dmenu -i -config $rofi_theme) | |
| 63 | + | |
| 64 | + if [[ -z "$choice" ]]; then | |
| 65 | + exit 0 | |
| 66 | + fi | |
| 67 | + add_theme_to_config "$choice" | |
| 68 | + notify-send -i "$iDIR/ja.png" -u low 'Rofi Theme applied:' "$choice" | |
| 69 | +} | |
| 70 | + | |
| 71 | +if pgrep -x "rofi" >/dev/null; then | |
| 72 | + pkill rofi | |
| 73 | +fi | |
| 74 | + | |
| 75 | +main |
+166-0scripts/ScreenShot.sh
| @@ -0,0 +1,166 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Screenshots scripts | |
| 4 | + | |
| 5 | +# variables | |
| 6 | +time=$(date "+%d-%b_%H-%M-%S") | |
| 7 | +dir="$(xdg-user-dir)/Pictures/Screenshots" | |
| 8 | +file="Screenshot_${time}_${RANDOM}.png" | |
| 9 | + | |
| 10 | +iDIR="$HOME/.config/swaync/icons" | |
| 11 | +iDoR="$HOME/.config/swaync/images" | |
| 12 | +sDIR="$HOME/.config/hypr/scripts" | |
| 13 | + | |
| 14 | +active_window_class=$(hyprctl -j activewindow | jq -r '(.class)') | |
| 15 | +active_window_file="Screenshot_${time}_${active_window_class}.png" | |
| 16 | +active_window_path="${dir}/${active_window_file}" | |
| 17 | + | |
| 18 | +notify_cmd_base="notify-send -t 10000 -A action1=Open -A action2=Delete -h string:x-canonical-private-synchronous:shot-notify" | |
| 19 | +notify_cmd_shot="${notify_cmd_base} -i ${iDIR}/picture.png " | |
| 20 | +notify_cmd_shot_win="${notify_cmd_base} -i ${iDIR}/picture.png " | |
| 21 | +notify_cmd_NOT="notify-send -u low -i ${iDoR}/note.png " | |
| 22 | + | |
| 23 | +# notify and view screenshot | |
| 24 | +notify_view() { | |
| 25 | + if [[ "$1" == "active" ]]; then | |
| 26 | + if [[ -e "${active_window_path}" ]]; then | |
| 27 | + "${sDIR}/Sounds.sh" --screenshot | |
| 28 | + resp=$(timeout 5 ${notify_cmd_shot_win} " Screenshot of:" " ${active_window_class} Saved.") | |
| 29 | + case "$resp" in | |
| 30 | + action1) | |
| 31 | + xdg-open "${active_window_path}" & | |
| 32 | + ;; | |
| 33 | + action2) | |
| 34 | + rm "${active_window_path}" & | |
| 35 | + ;; | |
| 36 | + esac | |
| 37 | + else | |
| 38 | + ${notify_cmd_NOT} " Screenshot of:" " ${active_window_class} NOT Saved." | |
| 39 | + "${sDIR}/Sounds.sh" --error | |
| 40 | + fi | |
| 41 | + | |
| 42 | + elif [[ "$1" == "swappy" ]]; then | |
| 43 | + "${sDIR}/Sounds.sh" --screenshot | |
| 44 | + resp=$(${notify_cmd_shot} " Screenshot:" " Captured by Swappy") | |
| 45 | + case "$resp" in | |
| 46 | + action1) | |
| 47 | + swappy -f - <"$tmpfile" | |
| 48 | + ;; | |
| 49 | + action2) | |
| 50 | + rm "$tmpfile" | |
| 51 | + ;; | |
| 52 | + esac | |
| 53 | + | |
| 54 | + else | |
| 55 | + local check_file="${dir}/${file}" | |
| 56 | + if [[ -e "$check_file" ]]; then | |
| 57 | + "${sDIR}/Sounds.sh" --screenshot | |
| 58 | + resp=$(timeout 5 ${notify_cmd_shot} " Screenshot" " Saved") | |
| 59 | + case "$resp" in | |
| 60 | + action1) | |
| 61 | + xdg-open "${check_file}" & | |
| 62 | + ;; | |
| 63 | + action2) | |
| 64 | + rm "${check_file}" & | |
| 65 | + ;; | |
| 66 | + esac | |
| 67 | + else | |
| 68 | + ${notify_cmd_NOT} " Screenshot" " NOT Saved" | |
| 69 | + "${sDIR}/Sounds.sh" --error | |
| 70 | + fi | |
| 71 | + fi | |
| 72 | +} | |
| 73 | + | |
| 74 | +# countdown | |
| 75 | +countdown() { | |
| 76 | + for sec in $(seq $1 -1 1); do | |
| 77 | + notify-send -h string:x-canonical-private-synchronous:shot-notify -t 1000 -i "$iDIR"/timer.png " Taking shot" " in: $sec secs" | |
| 78 | + sleep 1 | |
| 79 | + done | |
| 80 | +} | |
| 81 | + | |
| 82 | +# take shots | |
| 83 | +shotnow() { | |
| 84 | + cd ${dir} && grim - | tee "$file" | wl-copy | |
| 85 | + sleep 2 | |
| 86 | + notify_view | |
| 87 | +} | |
| 88 | + | |
| 89 | +shot5() { | |
| 90 | + countdown '5' | |
| 91 | + sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy | |
| 92 | + sleep 1 | |
| 93 | + notify_view | |
| 94 | +} | |
| 95 | + | |
| 96 | +shot10() { | |
| 97 | + countdown '10' | |
| 98 | + sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy | |
| 99 | + notify_view | |
| 100 | +} | |
| 101 | + | |
| 102 | +shotwin() { | |
| 103 | + w_pos=$(hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1) | |
| 104 | + w_size=$(hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g) | |
| 105 | + cd ${dir} && grim -g "$w_pos $w_size" - | tee "$file" | wl-copy | |
| 106 | + notify_view | |
| 107 | +} | |
| 108 | + | |
| 109 | +shotarea() { | |
| 110 | + tmpfile=$(mktemp) | |
| 111 | + grim -g "$(slurp)" - >"$tmpfile" | |
| 112 | + | |
| 113 | + # Copy with saving | |
| 114 | + if [[ -s "$tmpfile" ]]; then | |
| 115 | + wl-copy <"$tmpfile" | |
| 116 | + mv "$tmpfile" "$dir/$file" | |
| 117 | + fi | |
| 118 | + notify_view | |
| 119 | +} | |
| 120 | + | |
| 121 | +shotactive() { | |
| 122 | + active_window_class=$(hyprctl -j activewindow | jq -r '(.class)') | |
| 123 | + active_window_file="Screenshot_${time}_${active_window_class}.png" | |
| 124 | + active_window_path="${dir}/${active_window_file}" | |
| 125 | + | |
| 126 | + hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | grim -g - "${active_window_path}" | |
| 127 | + sleep 1 | |
| 128 | + notify_view "active" | |
| 129 | +} | |
| 130 | + | |
| 131 | +shotswappy() { | |
| 132 | + tmpfile=$(mktemp) | |
| 133 | + grim -g "$(slurp)" - >"$tmpfile" | |
| 134 | + # hyprshot -m region -z | |
| 135 | + # flameshot gui | |
| 136 | + | |
| 137 | + # Copy without saving | |
| 138 | + if [[ -s "$tmpfile" ]]; then | |
| 139 | + wl-copy <"$tmpfile" | |
| 140 | + notify_view "swappy" | |
| 141 | + fi | |
| 142 | +} | |
| 143 | + | |
| 144 | +if [[ ! -d "$dir" ]]; then | |
| 145 | + mkdir -p "$dir" | |
| 146 | +fi | |
| 147 | + | |
| 148 | +if [[ "$1" == "--now" ]]; then | |
| 149 | + shotnow | |
| 150 | +elif [[ "$1" == "--in5" ]]; then | |
| 151 | + shot5 | |
| 152 | +elif [[ "$1" == "--in10" ]]; then | |
| 153 | + shot10 | |
| 154 | +elif [[ "$1" == "--win" ]]; then | |
| 155 | + shotwin | |
| 156 | +elif [[ "$1" == "--area" ]]; then | |
| 157 | + shotarea | |
| 158 | +elif [[ "$1" == "--active" ]]; then | |
| 159 | + shotactive | |
| 160 | +elif [[ "$1" == "--swappy" ]]; then | |
| 161 | + shotswappy | |
| 162 | +else | |
| 163 | + echo -e "Available Options : --now --in5 --in10 --win --area --active --swappy" | |
| 164 | +fi | |
| 165 | + | |
| 166 | +exit 0 |
+77-0scripts/Sounds.sh
| @@ -0,0 +1,77 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# This script is used to play system sounds. | |
| 4 | +# Script is used by Volume.Sh and ScreenShots.sh | |
| 5 | + | |
| 6 | +theme="freedesktop" # Set the theme for the system sounds. | |
| 7 | +mute=false # Set to true to mute the system sounds. | |
| 8 | + | |
| 9 | +# Mute individual sounds here. | |
| 10 | +muteScreenshots=false | |
| 11 | +muteVolume=false | |
| 12 | + | |
| 13 | +# Exit if the system sounds are muted. | |
| 14 | +if [[ "$mute" = true ]]; then | |
| 15 | + exit 0 | |
| 16 | +fi | |
| 17 | + | |
| 18 | +# Choose the sound to play. | |
| 19 | +if [[ "$1" == "--screenshot" ]]; then | |
| 20 | + if [[ "$muteScreenshots" = true ]]; then | |
| 21 | + exit 0 | |
| 22 | + fi | |
| 23 | + soundoption="screen-capture.*" | |
| 24 | +elif [[ "$1" == "--volume" ]]; then | |
| 25 | + if [[ "$muteVolume" = true ]]; then | |
| 26 | + exit 0 | |
| 27 | + fi | |
| 28 | + soundoption="audio-volume-change.*" | |
| 29 | +elif [[ "$1" == "--error" ]]; then | |
| 30 | + if [[ "$muteScreenshots" = true ]]; then | |
| 31 | + exit 0 | |
| 32 | + fi | |
| 33 | + soundoption="dialog-error.*" | |
| 34 | +else | |
| 35 | + echo -e "Available sounds: --screenshot, --volume, --error" | |
| 36 | + exit 0 | |
| 37 | +fi | |
| 38 | + | |
| 39 | +# Set the directory defaults for system sounds. | |
| 40 | +if [ -d "/run/current-system/sw/share/sounds" ]; then | |
| 41 | + systemDIR="/run/current-system/sw/share/sounds" # NixOS | |
| 42 | +else | |
| 43 | + systemDIR="/usr/share/sounds" | |
| 44 | +fi | |
| 45 | +userDIR="$HOME/.local/share/sounds" | |
| 46 | +defaultTheme="freedesktop" | |
| 47 | + | |
| 48 | +# Prefer the user's theme, but use the system's if it doesn't exist. | |
| 49 | +sDIR="$systemDIR/$defaultTheme" | |
| 50 | +if [ -d "$userDIR/$theme" ]; then | |
| 51 | + sDIR="$userDIR/$theme" | |
| 52 | +elif [ -d "$systemDIR/$theme" ]; then | |
| 53 | + sDIR="$systemDIR/$theme" | |
| 54 | +fi | |
| 55 | + | |
| 56 | +# Get the theme that it inherits. | |
| 57 | +iTheme=$(cat "$sDIR/index.theme" | grep -i "inherits" | cut -d "=" -f 2) | |
| 58 | +iDIR="$sDIR/../$iTheme" | |
| 59 | + | |
| 60 | +# Find the sound file and play it. | |
| 61 | +sound_file=$(find -L $sDIR/stereo -name "$soundoption" -print -quit) | |
| 62 | +if ! test -f "$sound_file"; then | |
| 63 | + sound_file=$(find -L $iDIR/stereo -name "$soundoption" -print -quit) | |
| 64 | + if ! test -f "$sound_file"; then | |
| 65 | + sound_file=$(find -L $userDIR/$defaultTheme/stereo -name "$soundoption" -print -quit) | |
| 66 | + if ! test -f "$sound_file"; then | |
| 67 | + sound_file=$(find -L $systemDIR/$defaultTheme/stereo -name "$soundoption" -print -quit) | |
| 68 | + if ! test -f "$sound_file"; then | |
| 69 | + echo "Error: Sound file not found." | |
| 70 | + exit 1 | |
| 71 | + fi | |
| 72 | + fi | |
| 73 | + fi | |
| 74 | +fi | |
| 75 | + | |
| 76 | +# pipewire priority, fallback pulseaudio | |
| 77 | +pw-play "$sound_file" || pa-play "$sound_file" |
+104-0scripts/SwitchKeyboardLayout.sh
| @@ -0,0 +1,104 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# This is for changing kb_layouts. Set kb_layouts in $settings_file | |
| 4 | + | |
| 5 | +layout_file="$HOME/.cache/kb_layout" | |
| 6 | +settings_file="$HOME/.config/hypr/UserConfigs/UserSettings.conf" | |
| 7 | +notif_icon="$HOME/.config/swaync/images/ja.png" | |
| 8 | + | |
| 9 | +# Refined ignore list with patterns or specific device names | |
| 10 | +ignore_patterns=( | |
| 11 | + "--(avrcp)" | |
| 12 | + "Bluetooth Speaker" | |
| 13 | + "Other Device | |
| 14 | + Name" | |
| 15 | + ) | |
| 16 | + | |
| 17 | + | |
| 18 | +# Create layout file with default layout if it does not exist | |
| 19 | +if [ ! -f "$layout_file" ]; then | |
| 20 | + echo "Creating layout file..." | |
| 21 | + default_layout=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2 | tr -d '[:space:]' | cut -d ',' -f 1 2>/dev/null) | |
| 22 | + default_layout=${default_layout:-"us"} # Default to 'us' layout | |
| 23 | + echo "$default_layout" > "$layout_file" | |
| 24 | + echo "Default layout set to $default_layout" | |
| 25 | +fi | |
| 26 | + | |
| 27 | +current_layout=$(cat "$layout_file") | |
| 28 | +echo "Current layout: $current_layout" | |
| 29 | + | |
| 30 | +# Read available layouts from settings file | |
| 31 | +if [ -f "$settings_file" ]; then | |
| 32 | + kb_layout_line=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2) | |
| 33 | + # Remove leading and trailing spaces around each layout | |
| 34 | + kb_layout_line=$(echo "$kb_layout_line" | tr -d '[:space:]') | |
| 35 | + IFS=',' read -r -a layout_mapping <<< "$kb_layout_line" | |
| 36 | +else | |
| 37 | + echo "Settings file not found!" | |
| 38 | + exit 1 | |
| 39 | +fi | |
| 40 | + | |
| 41 | +layout_count=${#layout_mapping[@]} | |
| 42 | +echo "Number of layouts: $layout_count" | |
| 43 | + | |
| 44 | +# Find current layout index and calculate next layout | |
| 45 | +for ((i = 0; i < layout_count; i++)); do | |
| 46 | + if [ "$current_layout" == "${layout_mapping[i]}" ]; then | |
| 47 | + current_index=$i | |
| 48 | + break | |
| 49 | + fi | |
| 50 | +done | |
| 51 | + | |
| 52 | +next_index=$(( (current_index + 1) % layout_count )) | |
| 53 | +new_layout="${layout_mapping[next_index]}" | |
| 54 | +echo "Next layout: $new_layout" | |
| 55 | + | |
| 56 | +# Function to get keyboard names | |
| 57 | +get_keyboard_names() { | |
| 58 | + hyprctl devices -j | jq -r '.keyboards[].name' | |
| 59 | +} | |
| 60 | + | |
| 61 | +# Function to check if a device matches any ignore pattern | |
| 62 | +is_ignored() { | |
| 63 | + local device_name=$1 | |
| 64 | + for pattern in "${ignore_patterns[@]}"; do | |
| 65 | + if [[ "$device_name" == *"$pattern"* ]]; then | |
| 66 | + return 0 # Device matches ignore pattern | |
| 67 | + fi | |
| 68 | + done | |
| 69 | + return 1 # Device does not match any ignore pattern | |
| 70 | +} | |
| 71 | + | |
| 72 | +# Function to change keyboard layout | |
| 73 | +change_layout() { | |
| 74 | + local error_found=false | |
| 75 | + | |
| 76 | + while read -r name; do | |
| 77 | + if is_ignored "$name"; then | |
| 78 | + echo "Skipping ignored device: $name" | |
| 79 | + continue | |
| 80 | + fi | |
| 81 | + | |
| 82 | + echo "Switching layout for $name to $new_layout..." | |
| 83 | + hyprctl switchxkblayout "$name" "$next_index" | |
| 84 | + if [ $? -ne 0 ]; then | |
| 85 | + echo "Error while switching layout for $name." >&2 | |
| 86 | + error_found=true | |
| 87 | + fi | |
| 88 | + done <<< "$(get_keyboard_names)" | |
| 89 | + | |
| 90 | + $error_found && return 1 | |
| 91 | + return 0 | |
| 92 | +} | |
| 93 | + | |
| 94 | +# Execute layout change and notify | |
| 95 | +if ! change_layout; then | |
| 96 | + notify-send -u low -t 2000 'kb_layout' " Error:" " Layout change failed" | |
| 97 | + echo "Layout change failed." >&2 | |
| 98 | + exit 1 | |
| 99 | +else | |
| 100 | + notify-send -u low -i "$notif_icon" " kb_layout: $new_layout" | |
| 101 | + echo "Layout change notification sent." | |
| 102 | +fi | |
| 103 | + | |
| 104 | +echo "$new_layout" > "$layout_file" |
+32-0scripts/TouchPad.sh
| @@ -0,0 +1,32 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# For disabling touchpad. | |
| 4 | +# Edit the Touchpad_Device on ~/.config/hypr/UserConfigs/Laptops.conf according to your system | |
| 5 | +# use hyprctl devices to get your system touchpad device name | |
| 6 | +# source https://github.com/hyprwm/Hyprland/discussions/4283?sort=new#discussioncomment-8648109 | |
| 7 | + | |
| 8 | +notif="$HOME/.config/swaync/images/ja.png" | |
| 9 | + | |
| 10 | +export STATUS_FILE="$XDG_RUNTIME_DIR/touchpad.status" | |
| 11 | + | |
| 12 | +enable_touchpad() { | |
| 13 | + printf "true" >"$STATUS_FILE" | |
| 14 | + notify-send -u low -i $notif " Enabling" " touchpad" | |
| 15 | + hyprctl keyword '$TOUCHPAD_ENABLED' "true" -r | |
| 16 | +} | |
| 17 | + | |
| 18 | +disable_touchpad() { | |
| 19 | + printf "false" >"$STATUS_FILE" | |
| 20 | + notify-send -u low -i $notif " Disabling" " touchpad" | |
| 21 | + hyprctl keyword '$TOUCHPAD_ENABLED' "false" -r | |
| 22 | +} | |
| 23 | + | |
| 24 | +if ! [ -f "$STATUS_FILE" ]; then | |
| 25 | + enable_touchpad | |
| 26 | +else | |
| 27 | + if [ $(cat "$STATUS_FILE") = "true" ]; then | |
| 28 | + disable_touchpad | |
| 29 | + elif [ $(cat "$STATUS_FILE") = "false" ]; then | |
| 30 | + enable_touchpad | |
| 31 | + fi | |
| 32 | +fi |
+33-0scripts/UptimeNixOS.sh
| @@ -0,0 +1,33 @@ | ||
| 1 | +#!/usr/bin/env bash | |
| 2 | +# Script parses /proc/uptime to get the system uptime | |
| 3 | +# and prints it in a human-readable format | |
| 4 | +# This is a workaround for system where `uptime` command is taken from coreutils | |
| 5 | +# where `uptime -p` is not supported | |
| 6 | + | |
| 7 | +if [[ -r /proc/uptime ]]; then | |
| 8 | + s=$(< /proc/uptime) | |
| 9 | + s=${s/.*} | |
| 10 | +else | |
| 11 | + echo "Error UptimeNixOS.sh: Uptime could not be determined." >&2 | |
| 12 | + exit 1 | |
| 13 | +fi | |
| 14 | + | |
| 15 | +d="$((s / 60 / 60 / 24)) days" | |
| 16 | +h="$((s / 60 / 60 % 24)) hours" | |
| 17 | +m="$((s / 60 % 60)) minutes" | |
| 18 | + | |
| 19 | +# Remove plural if < 2. | |
| 20 | +((${d/ *} == 1)) && d=${d/s} | |
| 21 | +((${h/ *} == 1)) && h=${h/s} | |
| 22 | +((${m/ *} == 1)) && m=${m/s} | |
| 23 | + | |
| 24 | +# Hide empty fields. | |
| 25 | +((${d/ *} == 0)) && unset d | |
| 26 | +((${h/ *} == 0)) && unset h | |
| 27 | +((${m/ *} == 0)) && unset m | |
| 28 | + | |
| 29 | +uptime=${d:+$d, }${h:+$h, }$m | |
| 30 | +uptime=${uptime%', '} | |
| 31 | +uptime=${uptime:-$s seconds} | |
| 32 | + | |
| 33 | +echo "up $uptime" |
+143-0scripts/Volume.sh
| @@ -0,0 +1,143 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Scripts for volume controls for audio and mic | |
| 4 | + | |
| 5 | +iDIR="$HOME/.config/swaync/icons" | |
| 6 | +sDIR="$HOME/.config/hypr/scripts" | |
| 7 | + | |
| 8 | +# Get Volume | |
| 9 | +get_volume() { | |
| 10 | + volume=$(pamixer --get-volume) | |
| 11 | + if [[ "$volume" -eq "0" ]]; then | |
| 12 | + echo "Muted" | |
| 13 | + else | |
| 14 | + echo "$volume %" | |
| 15 | + fi | |
| 16 | +} | |
| 17 | + | |
| 18 | +# Get icons | |
| 19 | +get_icon() { | |
| 20 | + current=$(get_volume) | |
| 21 | + if [[ "$current" == "Muted" ]]; then | |
| 22 | + echo "$iDIR/volume-mute.png" | |
| 23 | + elif [[ "${current%\%}" -le 30 ]]; then | |
| 24 | + echo "$iDIR/volume-low.png" | |
| 25 | + elif [[ "${current%\%}" -le 60 ]]; then | |
| 26 | + echo "$iDIR/volume-mid.png" | |
| 27 | + else | |
| 28 | + echo "$iDIR/volume-high.png" | |
| 29 | + fi | |
| 30 | +} | |
| 31 | + | |
| 32 | +# Notify | |
| 33 | +notify_user() { | |
| 34 | + if [[ "$(get_volume)" == "Muted" ]]; then | |
| 35 | + notify-send -e -h string:x-canonical-private-synchronous:volume_notif -u low -i "$(get_icon)" " Volume:" " Muted" | |
| 36 | + else | |
| 37 | + notify-send -e -h int:value:"$(get_volume | sed 's/%//')" -h string:x-canonical-private-synchronous:volume_notif -u low -i "$(get_icon)" " Volume Level:" " $(get_volume)" && | |
| 38 | + "$sDIR/Sounds.sh" --volume | |
| 39 | + fi | |
| 40 | +} | |
| 41 | + | |
| 42 | +# Increase Volume | |
| 43 | +inc_volume() { | |
| 44 | + if [ "$(pamixer --get-mute)" == "true" ]; then | |
| 45 | + toggle_mute | |
| 46 | + else | |
| 47 | + pamixer -i 5 --allow-boost --set-limit 150 && notify_user | |
| 48 | + fi | |
| 49 | +} | |
| 50 | + | |
| 51 | +# Decrease Volume | |
| 52 | +dec_volume() { | |
| 53 | + if [ "$(pamixer --get-mute)" == "true" ]; then | |
| 54 | + toggle_mute | |
| 55 | + else | |
| 56 | + pamixer -d 5 && notify_user | |
| 57 | + fi | |
| 58 | +} | |
| 59 | + | |
| 60 | +# Toggle Mute | |
| 61 | +toggle_mute() { | |
| 62 | + if [ "$(pamixer --get-mute)" == "false" ]; then | |
| 63 | + pamixer -m && notify-send -e -u low -i "$iDIR/volume-mute.png" " Mute" | |
| 64 | + elif [ "$(pamixer --get-mute)" == "true" ]; then | |
| 65 | + pamixer -u && notify-send -e -u low -i "$(get_icon)" " Volume:" " Switched ON" | |
| 66 | + fi | |
| 67 | +} | |
| 68 | + | |
| 69 | +# Toggle Mic | |
| 70 | +toggle_mic() { | |
| 71 | + if [ "$(pamixer --default-source --get-mute)" == "false" ]; then | |
| 72 | + pamixer --default-source -m && notify-send -e -u low -i "$iDIR/microphone-mute.png" " Microphone:" " Switched OFF" | |
| 73 | + elif [ "$(pamixer --default-source --get-mute)" == "true" ]; then | |
| 74 | + pamixer -u --default-source u && notify-send -e -u low -i "$iDIR/microphone.png" " Microphone:" " Switched ON" | |
| 75 | + fi | |
| 76 | +} | |
| 77 | +# Get Mic Icon | |
| 78 | +get_mic_icon() { | |
| 79 | + current=$(pamixer --default-source --get-volume) | |
| 80 | + if [[ "$current" -eq "0" ]]; then | |
| 81 | + echo "$iDIR/microphone-mute.png" | |
| 82 | + else | |
| 83 | + echo "$iDIR/microphone.png" | |
| 84 | + fi | |
| 85 | +} | |
| 86 | + | |
| 87 | +# Get Microphone Volume | |
| 88 | +get_mic_volume() { | |
| 89 | + volume=$(pamixer --default-source --get-volume) | |
| 90 | + if [[ "$volume" -eq "0" ]]; then | |
| 91 | + echo "Muted" | |
| 92 | + else | |
| 93 | + echo "$volume %" | |
| 94 | + fi | |
| 95 | +} | |
| 96 | + | |
| 97 | +# Notify for Microphone | |
| 98 | +notify_mic_user() { | |
| 99 | + volume=$(get_mic_volume) | |
| 100 | + icon=$(get_mic_icon) | |
| 101 | + notify-send -e -h int:value:"$volume" -h "string:x-canonical-private-synchronous:volume_notif" -u low -i "$icon" " Mic Level:" " $volume" | |
| 102 | +} | |
| 103 | + | |
| 104 | +# Increase MIC Volume | |
| 105 | +inc_mic_volume() { | |
| 106 | + if [ "$(pamixer --default-source --get-mute)" == "true" ]; then | |
| 107 | + toggle_mic | |
| 108 | + else | |
| 109 | + pamixer --default-source -i 5 && notify_mic_user | |
| 110 | + fi | |
| 111 | +} | |
| 112 | + | |
| 113 | +# Decrease MIC Volume | |
| 114 | +dec_mic_volume() { | |
| 115 | + if [ "$(pamixer --default-source --get-mute)" == "true" ]; then | |
| 116 | + toggle-mic | |
| 117 | + else | |
| 118 | + pamixer --default-source -d 5 && notify_mic_user | |
| 119 | + fi | |
| 120 | +} | |
| 121 | + | |
| 122 | +# Execute accordingly | |
| 123 | +if [[ "$1" == "--get" ]]; then | |
| 124 | + get_volume | |
| 125 | +elif [[ "$1" == "--inc" ]]; then | |
| 126 | + inc_volume | |
| 127 | +elif [[ "$1" == "--dec" ]]; then | |
| 128 | + dec_volume | |
| 129 | +elif [[ "$1" == "--toggle" ]]; then | |
| 130 | + toggle_mute | |
| 131 | +elif [[ "$1" == "--toggle-mic" ]]; then | |
| 132 | + toggle_mic | |
| 133 | +elif [[ "$1" == "--get-icon" ]]; then | |
| 134 | + get_icon | |
| 135 | +elif [[ "$1" == "--get-mic-icon" ]]; then | |
| 136 | + get_mic_icon | |
| 137 | +elif [[ "$1" == "--mic-inc" ]]; then | |
| 138 | + inc_mic_volume | |
| 139 | +elif [[ "$1" == "--mic-dec" ]]; then | |
| 140 | + dec_mic_volume | |
| 141 | +else | |
| 142 | + get_volume | |
| 143 | +fi |
+39-0scripts/WallustSwww.sh
| @@ -0,0 +1,39 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Wallust Colors for current wallpaper | |
| 4 | + | |
| 5 | +# Define the path to the swww cache directory | |
| 6 | +cache_dir="$HOME/.cache/swww/" | |
| 7 | + | |
| 8 | +# Get a list of monitor outputs | |
| 9 | +monitor_outputs=($(ls "$cache_dir")) | |
| 10 | + | |
| 11 | +# Initialize a flag to determine if the ln command was executed | |
| 12 | +ln_success=false | |
| 13 | + | |
| 14 | +# Get current focused monitor | |
| 15 | +current_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}') | |
| 16 | +echo $current_monitor | |
| 17 | +# Construct the full path to the cache file | |
| 18 | +cache_file="$cache_dir$current_monitor" | |
| 19 | +echo $cache_file | |
| 20 | +# Check if the cache file exists for the current monitor output | |
| 21 | +if [ -f "$cache_file" ]; then | |
| 22 | + # Get the wallpaper path from the cache file | |
| 23 | + wallpaper_path=$(grep -v 'Lanczos3' "$cache_file" | head -n 1) | |
| 24 | + echo $wallpaper_path | |
| 25 | + # symlink the wallpaper to the location Rofi can access | |
| 26 | + if ln -sf "$wallpaper_path" "$HOME/.config/rofi/.current_wallpaper"; then | |
| 27 | + ln_success=true # Set the flag to true upon successful execution | |
| 28 | + fi | |
| 29 | + # copy the wallpaper for wallpaper effects | |
| 30 | + cp -r "$wallpaper_path" "$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" | |
| 31 | +fi | |
| 32 | + | |
| 33 | +# Check the flag before executing further commands | |
| 34 | +if [ "$ln_success" = true ]; then | |
| 35 | + # execute wallust | |
| 36 | + echo 'about to execute wallust' | |
| 37 | + # execute wallust skipping tty and terminal changes | |
| 38 | + wallust run "$wallpaper_path" -s & | |
| 39 | +fi |
+42-0scripts/WaybarCava.sh
| @@ -0,0 +1,42 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Not my own work. This was added through Github PR. Credit to original author | |
| 4 | + | |
| 5 | +#----- Optimized bars animation without much CPU usage increase -------- | |
| 6 | +bar="▁▂▃▄▅▆▇█" | |
| 7 | +dict="s/;//g" | |
| 8 | + | |
| 9 | +# Calculate the length of the bar outside the loop | |
| 10 | +bar_length=${#bar} | |
| 11 | + | |
| 12 | +# Create dictionary to replace char with bar | |
| 13 | +for ((i = 0; i < bar_length; i++)); do | |
| 14 | + dict+=";s/$i/${bar:$i:1}/g" | |
| 15 | +done | |
| 16 | + | |
| 17 | +# Create cava config | |
| 18 | +config_file="/tmp/bar_cava_config" | |
| 19 | +cat >"$config_file" <<EOF | |
| 20 | +[general] | |
| 21 | +# Older systems show significant CPU use with default framerate | |
| 22 | +# Setting maximum framerate to 30 | |
| 23 | +# You can increase the value if you wish | |
| 24 | +framerate = 30 | |
| 25 | +bars = 10 | |
| 26 | + | |
| 27 | +[input] | |
| 28 | +method = pulse | |
| 29 | +source = auto | |
| 30 | + | |
| 31 | +[output] | |
| 32 | +method = raw | |
| 33 | +raw_target = /dev/stdout | |
| 34 | +data_format = ascii | |
| 35 | +ascii_max_range = 7 | |
| 36 | +EOF | |
| 37 | + | |
| 38 | +# Kill cava if it's already running | |
| 39 | +pkill -f "cava -p $config_file" | |
| 40 | + | |
| 41 | +# Read stdout from cava and perform substitution in a single sed command | |
| 42 | +cava -p "$config_file" | sed -u "$dict" |
+55-0scripts/WaybarLayout.sh
| @@ -0,0 +1,55 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Script for waybar layout or configs | |
| 4 | + | |
| 5 | +IFS=$'\n\t' | |
| 6 | + | |
| 7 | +# Define directories | |
| 8 | +waybar_layouts="$HOME/.config/waybar/configs" | |
| 9 | +waybar_config="$HOME/.config/waybar/config" | |
| 10 | +SCRIPTSDIR="$HOME/.config/hypr/scripts" | |
| 11 | +rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi" | |
| 12 | +msg=' 🎌 NOTE: Some waybar LAYOUT NOT fully compatible with some STYLES' | |
| 13 | + | |
| 14 | +# Function to display menu options | |
| 15 | +menu() { | |
| 16 | + options=() | |
| 17 | + while IFS= read -r file; do | |
| 18 | + options+=("$(basename "$file")") | |
| 19 | + done < <(find -L "$waybar_layouts" -maxdepth 1 -type f -exec basename {} \; | sort ) | |
| 20 | + | |
| 21 | + printf '%s\n' "${options[@]}" | |
| 22 | +} | |
| 23 | + | |
| 24 | +# Apply selected configuration | |
| 25 | +apply_config() { | |
| 26 | + ln -sf "$waybar_layouts/$1" "$waybar_config" | |
| 27 | + "${SCRIPTSDIR}/Refresh.sh" & | |
| 28 | +} | |
| 29 | + | |
| 30 | +# Main function | |
| 31 | +main() { | |
| 32 | + choice=$(menu | rofi -i -dmenu -config "$rofi_config" -mesg "$msg") | |
| 33 | + | |
| 34 | + if [[ -z "$choice" ]]; then | |
| 35 | + echo "No option selected. Exiting." | |
| 36 | + exit 0 | |
| 37 | + fi | |
| 38 | + | |
| 39 | + case $choice in | |
| 40 | + "no panel") | |
| 41 | + pgrep -x "waybar" && pkill waybar || true | |
| 42 | + ;; | |
| 43 | + *) | |
| 44 | + apply_config "$choice" | |
| 45 | + ;; | |
| 46 | + esac | |
| 47 | +} | |
| 48 | + | |
| 49 | +# Kill Rofi if already running before execution | |
| 50 | +if pgrep -x "rofi" >/dev/null; then | |
| 51 | + pkill rofi | |
| 52 | + #exit 0 | |
| 53 | +fi | |
| 54 | + | |
| 55 | +main |
+41-0scripts/WaybarScripts.sh
| @@ -0,0 +1,41 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 3 | +# This file used on waybar modules sourcing defaults set in $HOME/.config/hypr/UserConfigs/01-UserDefaults.conf | |
| 4 | + | |
| 5 | +# Define the path to the config file | |
| 6 | +config_file=$HOME/.config/hypr/UserConfigs/01-UserDefaults.conf | |
| 7 | + | |
| 8 | +# Check if the config file exists | |
| 9 | +if [[ ! -f "$config_file" ]]; then | |
| 10 | + echo "Error: Configuration file not found!" | |
| 11 | + exit 1 | |
| 12 | +fi | |
| 13 | + | |
| 14 | +# Process the config file in memory, removing the $ and fixing spaces | |
| 15 | +config_content=$(sed 's/\$//g' "$config_file" | sed 's/ = /=/') | |
| 16 | + | |
| 17 | +# Source the modified content directly from the variable | |
| 18 | +eval "$config_content" | |
| 19 | + | |
| 20 | +# Check if $term is set correctly | |
| 21 | +if [[ -z "$term" ]]; then | |
| 22 | + echo "Error: \$term is not set in the configuration file!" | |
| 23 | + exit 1 | |
| 24 | +fi | |
| 25 | + | |
| 26 | +# Execute accordingly based on the passed argument | |
| 27 | +if [[ "$1" == "--btop" ]]; then | |
| 28 | + $term --title btop sh -c 'btop' | |
| 29 | +elif [[ "$1" == "--nvtop" ]]; then | |
| 30 | + $term --title nvtop sh -c 'nvtop' | |
| 31 | +elif [[ "$1" == "--nmtui" ]]; then | |
| 32 | + $term nmtui | |
| 33 | +elif [[ "$1" == "--term" ]]; then | |
| 34 | + $term & | |
| 35 | +else | |
| 36 | + echo "Usage: $0 [--btop | --nvtop | --nmtui | --term]" | |
| 37 | + echo "--btop : Open btop in a new term" | |
| 38 | + echo "--nvtop : Open nvtop in a new term" | |
| 39 | + echo "--nmtui : Open nmtui in a new term" | |
| 40 | + echo "--term : Launch a term window" | |
| 41 | +fi |
+50-0scripts/WaybarStyles.sh
| @@ -0,0 +1,50 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# Script for waybar styles | |
| 4 | + | |
| 5 | +IFS=$'\n\t' | |
| 6 | + | |
| 7 | +# Define directories | |
| 8 | +waybar_styles="$HOME/.config/waybar/style" | |
| 9 | +waybar_style="$HOME/.config/waybar/style.css" | |
| 10 | +SCRIPTSDIR="$HOME/.config/hypr/scripts" | |
| 11 | +rofi_config="$HOME/.config/rofi/config-waybar-style.rasi" | |
| 12 | +msg=' 🎌 NOTE: Some waybar STYLES NOT fully compatible with some LAYOUTS' | |
| 13 | + | |
| 14 | +# Function to display menu options | |
| 15 | +menu() { | |
| 16 | + options=() | |
| 17 | + while IFS= read -r file; do | |
| 18 | + if [ -f "$waybar_styles/$file" ]; then | |
| 19 | + options+=("$(basename "$file" .css)") | |
| 20 | + fi | |
| 21 | + done < <(find -L "$waybar_styles" -maxdepth 1 -type f -name '*.css' -exec basename {} \; | sort ) | |
| 22 | + | |
| 23 | + printf '%s\n' "${options[@]}" | |
| 24 | +} | |
| 25 | + | |
| 26 | +# Apply selected style | |
| 27 | +apply_style() { | |
| 28 | + ln -sf "$waybar_styles/$1.css" "$waybar_style" | |
| 29 | + "${SCRIPTSDIR}/Refresh.sh" & | |
| 30 | +} | |
| 31 | + | |
| 32 | +# Main function | |
| 33 | +main() { | |
| 34 | + choice=$(menu | rofi -i -dmenu -config "$rofi_config" -mesg "$msg") | |
| 35 | + | |
| 36 | + if [[ -z "$choice" ]]; then | |
| 37 | + echo "No option selected. Exiting." | |
| 38 | + exit 0 | |
| 39 | + fi | |
| 40 | + | |
| 41 | + apply_style "$choice" | |
| 42 | +} | |
| 43 | + | |
| 44 | +# Kill Rofi if already running before execution | |
| 45 | +if pgrep -x "rofi" >/dev/null; then | |
| 46 | + pkill rofi | |
| 47 | + #exit 0 | |
| 48 | +fi | |
| 49 | + | |
| 50 | +main |
+57-0scripts/Wlogout.sh
| @@ -0,0 +1,57 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## | |
| 3 | +# wlogout (Power, Screen Lock, Suspend, etc) | |
| 4 | + | |
| 5 | +# Set variables for parameters. First numbers corresponts to Monitor Resolution | |
| 6 | +# i.e 2160 means 2160p | |
| 7 | +A_2160=600 | |
| 8 | +B_2160=600 | |
| 9 | +A_1600=400 | |
| 10 | +B_1600=400 | |
| 11 | +A_1440=400 | |
| 12 | +B_1440=400 | |
| 13 | +A_1080=200 | |
| 14 | +B_1080=200 | |
| 15 | +A_720=50 | |
| 16 | +B_720=50 | |
| 17 | + | |
| 18 | +# Check if wlogout is already running | |
| 19 | +if pgrep -x "wlogout" > /dev/null; then | |
| 20 | + pkill -x "wlogout" | |
| 21 | + exit 0 | |
| 22 | +fi | |
| 23 | + | |
| 24 | +# Detect monitor resolution and scaling factor | |
| 25 | +resolution=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .height / .scale' | awk -F'.' '{print $1}') | |
| 26 | +hypr_scale=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .scale') | |
| 27 | + | |
| 28 | +# Set parameters based on screen resolution and scaling factor | |
| 29 | +if ((resolution >= 2160)); then | |
| 30 | + T_val=$(awk "BEGIN {printf \"%.0f\", $A_2160 * 2160 * $hypr_scale / $resolution}") | |
| 31 | + B_val=$(awk "BEGIN {printf \"%.0f\", $B_2160 * 2160 * $hypr_scale / $resolution}") | |
| 32 | + echo "Setting parameters for resolution >= 4k" | |
| 33 | + wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & | |
| 34 | +elif ((resolution >= 1600 && resolution < 2160)); then | |
| 35 | + T_val=$(awk "BEGIN {printf \"%.0f\", $A_1600 * 1600 * $hypr_scale / $resolution}") | |
| 36 | + B_val=$(awk "BEGIN {printf \"%.0f\", $B_1600 * 1600 * $hypr_scale / $resolution}") | |
| 37 | + echo "Setting parameters for resolution >= 2.5k and < 4k" | |
| 38 | + wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & | |
| 39 | +elif ((resolution >= 1440 && resolution < 1600)); then | |
| 40 | + T_val=$(awk "BEGIN {printf \"%.0f\", $A_1440 * 1440 * $hypr_scale / $resolution}") | |
| 41 | + B_val=$(awk "BEGIN {printf \"%.0f\", $B_1440 * 1440 * $hypr_scale / $resolution}") | |
| 42 | + echo "Setting parameters for resolution >= 2k and < 2.5k" | |
| 43 | + wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & | |
| 44 | +elif ((resolution >= 1080 && resolution < 1440)); then | |
| 45 | + T_val=$(awk "BEGIN {printf \"%.0f\", $A_1080 * 1080 * $hypr_scale / $resolution}") | |
| 46 | + B_val=$(awk "BEGIN {printf \"%.0f\", $B_1080 * 1080 * $hypr_scale / $resolution}") | |
| 47 | + echo "Setting parameters for resolution >= 1080p and < 2k" | |
| 48 | + wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & | |
| 49 | +elif ((resolution >= 720 && resolution < 1080)); then | |
| 50 | + T_val=$(awk "BEGIN {printf \"%.0f\", $A_720 * 720 * $hypr_scale / $resolution}") | |
| 51 | + B_val=$(awk "BEGIN {printf \"%.0f\", $B_720 * 720 * $hypr_scale / $resolution}") | |
| 52 | + echo "Setting parameters for resolution >= 720p and < 1080p" | |
| 53 | + wlogout --protocol layer-shell -b 3 -T $T_val -B $B_val & | |
| 54 | +else | |
| 55 | + echo "Setting default parameters" | |
| 56 | + wlogout & | |
| 57 | +fi |
+5-0v2.3.15
| @@ -0,0 +1,5 @@ | ||
| 1 | +### https://github.com/JaKooLit ### | |
| 2 | +## https://github.com/JaKooLit/Hyprland-Dots | |
| 3 | +## This is to have a reference of which version would be | |
| 4 | + | |
| 5 | +## note that this will always be higher than the released versions |
+24-0wallust/wallust-hyprland.conf
| @@ -0,0 +1,24 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ | |
| 2 | +# /* wallust template - colors-hyprland */ | |
| 3 | + | |
| 4 | +$background = rgb(0a0a0f) # Dark background | |
| 5 | +$foreground = rgb(f2f2f2) # Light text | |
| 6 | + | |
| 7 | +$color0 = rgb(1a1a1f) # Base UI dark gray | |
| 8 | +$color1 = rgb(ff003c) # Neon red/pink (headline accent) | |
| 9 | +$color2 = rgb(c73e1d) # Deep orange-red | |
| 10 | +$color3 = rgb(ffa500) # Gold-orange accent | |
| 11 | +$color4 = rgb(222235) # Deep background purple | |
| 12 | +$color5 = rgb(d61e92) # Vibrant magenta-pink | |
| 13 | +$color6 = rgb(4cc2e0) # Cool cyan | |
| 14 | +$color7 = rgb(f3ecf5) # Soft gray highlight | |
| 15 | + | |
| 16 | +$color8 = rgb(2c2c2c) # Dim gray (alt background) | |
| 17 | +$color9 = rgb(ff3355) # Light neon red | |
| 18 | +$color10 = rgb(333366) # Warm soft orange | |
| 19 | +$color11 = rgb(c73e1d) # Deep orange-red | |
| 20 | +$color12 = rgb(ee8855) # Muted purple-blue | |
| 21 | +$color13 = rgb(ee8855) # Warm soft orange | |
| 22 | +$color14 = rgb(f8eafc) # Pale rose | |
| 23 | +$color15 = rgb(f3ecf5) # Light gray-white | |
| 24 | + |
+33-0workspaces.conf
| @@ -0,0 +1,33 @@ | ||
| 1 | +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # | |
| 2 | + | |
| 3 | +# *********************************************************** # | |
| 4 | +# | |
| 5 | +# NOTE: This will be overwritten by NWG-Displays | |
| 6 | +# once you use and click apply. | |
| 7 | +# | |
| 8 | +# *********************************************************** # | |
| 9 | + | |
| 10 | +# You can set workspace rules to achieve workspace-specific behaviors. | |
| 11 | +# For instance, you can define a workspace where all windows are drawn without borders or gaps. | |
| 12 | + | |
| 13 | +# https://wiki.hyprland.org/Configuring/Workspace-Rules/ | |
| 14 | + | |
| 15 | +# Assigning workspace to a certain monitor. Below are just examples | |
| 16 | +# workspace = 1, monitor:eDP-1 | |
| 17 | +# workspace = 2, monitor:eDP-1 | |
| 18 | +# workspace = 3, monitor:eDP-1 | |
| 19 | +# workspace = 4, monitor:eDP-1 | |
| 20 | +# workspace = 5, monitor:DP-2 | |
| 21 | +# workspace = 6, monitor:DP-2 | |
| 22 | +# workspace = 7, monitor:DP-2 | |
| 23 | +# workspace = 8, monitor:DP-2 | |
| 24 | + | |
| 25 | + | |
| 26 | +# example rules (from wiki) | |
| 27 | +# workspace = 3, rounding:false, decorate:false | |
| 28 | +# workspace = name:coding, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false, monitor:DP-1 | |
| 29 | +# workspace = 8,bordersize:8 | |
| 30 | +# workspace = name:Hello, monitor:DP-1, default:true | |
| 31 | +# workspace = name:gaming, monitor:desc:Chimei Innolux Corporation 0x150C, default:true | |
| 32 | +# workspace = 5, on-created-empty:[float] firefox | |
| 33 | +# workspace = special:scratchpad, on-created-empty:foot |