fuzzel could only answer "which app", so launching Brave at a URL meant picking the app, waiting for it, then typing the address somewhere else. The launcher now takes a verb and an object in one line: type `gitlab.enqs.de` and every app that can open it sorts to the top, default browser first, ready for Enter — or arrow/hjkl down to Brave's New Incognito Window, which is offered as a peer of Brave itself rather than hidden behind a submenu. services/Apps.qml is the brain and holds no UI: it flattens desktop entries and their actions into one index, classifies the typed argument (url / mail / path), ranks by fuzzy match plus handler affinity plus frecency, and launches. Launching through `uwsm app` keeps each app in its own scope; entries whose Exec declares no field code (Brave's `--incognito` action, among others) are launched by tokenising Exec per the Desktop Entry spec and appending the argument, never via `sh -c`. Four prefixes reuse the same window, so there is one picker and one set of keys: `>` runs a command, `=` evaluates arithmetic, `:` is clipboard history (cliphist, which had been a second fuzzel invocation), and a dmenu mode is driven over IPC. quickshell/scripts/takemi-dmenu is the bridge for that last one — a `fuzzel --dmenu` drop-in for scripts that want a picker, symlinked into ~/.local/bin. fluxo's bt menu now goes through it. Living in the Quickshell process means the window is on screen on the frame the bind fires, with no process to spawn. Removes fuzzel entirely: its config, its theme submodule, the package, and the last consumers (the bar sigil, fluxo's menu_command). Also drops hypr/scripts/powermenu.sh, which was fuzzel-based and bound to nothing.
✦ Google-ish Hyprlock Theme ✦
▶️ Preview
📦 Installation
❗ This configuration is based on a 1080p display, if you are using a higher screen resolution,
you may need to reconfigure the sizes and recoordinate all the components.
Auto-Installation :
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Tamarindtype/googlish-hyprlock-theme/main/install.sh)"
Manual Installation :
# Backup your current Hyprlock config first!
# Clone the repository
git clone https://github.com/Tamarindtype/googlish-hyprlock-theme.git
# Move all the files to the hyprland config folder
mv ./googlish-hyprlock-theme/* ~/.config/hypr/
# Go to script folder
cd $HOME/.config/hypr/hyprlock/
# Change all the scripts permission to make them executable
chmod +x *.sh
# Run the Hyprlock
hyprlock
🗄️ Directory Structure
$HOME
└── .config
└── hypr
├── hyprlock
│ ├── assets
│ ├── battery.sh
│ ├── bluetooth.sh
│ ├── change_wallpaper.sh
│ ├── greeting.sh
│ ├── network.sh
│ ├── medianotif.sh
│ └── weatherinfo.sh
└── hyprlock.conf
🗨️ FAQ
| Question | Answer |
|---|---|
| Profile & User info does not appear? | By default, it set without profile and user info. You can enable it by uncomment the image @PROFILE PICTURE and label @USER INFO in hyprlock.conf |
| Battery percentage number does not appear? | Change your battery module in battery.sh. The default is BAT0, you can check it by running this command ls /sys/class/power_supply/ |
| How to change the 24H Format to 12H Format? | Comment the 24H format and uncomment the 12H format. also uncomment the AM/PM label & shape in hyprlock.conf |
| null location or Unable to determine your location? | Change the IP Geolocation provider in weatherinfo.sh |
🏅 Recommendations
| Type | Name | Links |
|---|---|---|
| Regular | PP Neue Machina | Pangram Pangram |
| Nerd Font | Geist & Space Mono | Nerd Fonts |
| Emoji | Apple Emoji | apple-emoji-linux |
✨ Special Thanks & Credits
| Details | Credit |
|---|---|
| Battery & Playerctl Widget Scripts | @ashish-kus minimal Hyprlock |
| Helped Me Create Dynamic WiFi, Bluetooth, Weathercast and Greeting Widget | @OPENAI ChatGPT |