Hyprland - Wofi Duplicates if Keybind is Pressed Multiple Times Instead of Closing

Hey all, wondering if I can get some help with a quirk I’m experiencing, more annoying than an actual issue. So whenever I activate Wofi through the keyboard shortcut, it pops up as expected. But when I hit the keyboard shortcut again, I’m wanting it to close wofi, but instead a duplicate wofi appears layered on top of it. I’ve tested it up to 10 layers of wofi on top of each other.

I tried editing the keyboard to killall wofi instances before it gets executed but that didn’t work for me. Also searched the forum and search engine without finding anything related to this specific issue. Wondering if someone has come across this before and maybe knows of a fix.


  Kernel: 6.8.9-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=68154397-d9b5-48f7-bccf-ed06c6d13e42 rw rootflags=subvol=@
    quiet loglevel=3 ibt=off
  Desktop: Hyprland v: N/A with: waybar tools: avail: swayidle,swaylock
    dm: SDDM Distro: Garuda base: Arch Linux
  Type: Laptop System: ASUSTeK product: ASUS TUF Dash F15 FX516PM_FX516PM
    v: 1.0 serial: <filter>
  Mobo: ASUSTeK model: FX516PM v: 1.0 serial: <filter>
    uuid: 4dcbff1a-cb18-cd47-bc11-aa5d4f09a3e4 UEFI: American Megatrends LLC.
    v: FX516PM.330 date: 05/15/2023
  ID-1: BAT0 charge: 58.5 Wh (99.2%) condition: 59.0/76.0 Wh (77.6%)
    power: 25.7 W volts: 15.8 min: 15.8 model: ASUSTeK ASUS Battery type: Li-ion
    serial: N/A status: discharging cycles: 405
  Info: model: 11th Gen Intel Core i7-11370H socket: U3E1 bits: 64
    type: MT MCP arch: Tiger Lake gen: core 11 level: v4 note: check built: 2020
    process: Intel 10nm family: 6 model-id: 0x8C (140) stepping: 1
    microcode: 0xB6
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
    L1: 320 KiB desc: d-4x48 KiB; i-4x32 KiB L2: 5 MiB desc: 4x1.2 MiB
    L3: 12 MiB desc: 1x12 MiB
  Speed (MHz): avg: 2659 high: 4800 min/max: 400/4800 base/boost: 3300/4800
    scaling: driver: intel_pstate governor: performance volts: 0.9 V
    ext-clock: 100 MHz cores: 1: 651 2: 2483 3: 3481 4: 3886 5: 2013 6: 4800
    7: 400 8: 3559 bogomips: 52838
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities: <filter>
  Device-1: Intel TigerLake-LP GT2 [Iris Xe Graphics] vendor: ASUSTeK
    driver: i915 v: kernel alternate: xe arch: Gen-12.1 process: Intel 10nm
    built: 2020-21 ports: active: DP-3,DP-5,eDP-1 empty: DP-1, DP-2, DP-4,
    HDMI-A-1 bus-ID: 0000:00:02.0 chip-ID: 8086:9a49 class-ID: 0300
  Device-2: NVIDIA GA106M [GeForce RTX 3060 Mobile / Max-Q] vendor: ASUSTeK
    driver: nouveau v: kernel non-free: 550.xx+ status: current (as of 2024-04;
    EOL~2026-12-xx) arch: Ampere code: GAxxx process: TSMC n7 (7nm)
    built: 2020-2023 ports: active: none empty: HDMI-A-2 bus-ID: 0000:01:00.0
    chip-ID: 10de:2520 class-ID: 0300
  Device-3: Creative Live! Cam Sync 1080p driver: snd-usb-audio,uvcvideo
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 5-2.3:4
    chip-ID: 041e:409f class-ID: 0102 serial: <filter>
  Display: server: X.org v: with: Xwayland v: 23.2.6
    compositor: Hyprland driver: X: loaded: modesetting,nouveau
    alternate: fbdev,intel,nv,vesa dri: iris,nouveau gpu: i915 display-ID: :1
  Monitor-1: DP-3 model: LG (GoldStar) FULL HD serial: <filter> built: 2016
    res: 1920x1080 dpi: 102 gamma: 1.2 size: 480x270mm (18.9x10.63")
    diag: 551mm (21.7") ratio: 16:9 modes: max: 1920x1080 min: 720x400
  Monitor-2: DP-5 model: LG (GoldStar) ULTRAGEAR serial: <filter>
    built: 2022 res: 2560x1440 dpi: 93 gamma: 1.2 size: 697x392mm (27.44x15.43")
    diag: 800mm (31.5") ratio: 16:9 modes: max: 2560x1440 min: 640x480
  Monitor-3: eDP-1 model: Najing CEC Panda 0x004d built: 2019 res: 1920x1080
    dpi: 142 gamma: 1.2 size: 344x194mm (13.54x7.64") diag: 395mm (15.5")
    ratio: 16:9 modes: 1920x1080
  API: Vulkan Message: No Vulkan data available.
  API: OpenGL Message: Unable to show GL data. glxinfo is missing.
  Device-1: Intel Tiger Lake-LP Smart Sound Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel alternate: snd_sof_pci_intel_tgl
    bus-ID: 0000:00:1f.3 chip-ID: 8086:a0c8 class-ID: 0403
  Device-2: NVIDIA GA106 High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 0000:01:00.1 chip-ID: 10de:228e
    class-ID: 0403
  Device-3: Logitech G535 Wireless Gaming Headset
    driver: cdc_acm,hid-generic,snd-usb-audio,usbhid type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-4:2 chip-ID: 046d:0ac4
    class-ID: 0a00
  Device-4: Lenovo ThinkPad Thunderbolt 3 Dock USB Audio
    driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 2.0 speed: 12 Mb/s
    lanes: 1 mode: 1.1 bus-ID: 5- chip-ID: 17ef:3083 class-ID: 0300
    serial: <filter>
  Device-5: Creative Live! Cam Sync 1080p driver: snd-usb-audio,uvcvideo
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 5-2.3:4
    chip-ID: 041e:409f class-ID: 0102 serial: <filter>
  API: ALSA v: k6.8.9-zen1-1-zen status: kernel-api tools: N/A
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: PipeWire v: 1.0.5 status: n/a (root, process) with:
    1: pipewire-pulse status: active 2: wireplumber status: active
    3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
  Device-1: Intel Wi-Fi 6 AX201 driver: iwlwifi v: kernel bus-ID: 0000:00:14.3
    chip-ID: 8086:a0f0 class-ID: 0280
  IF: wlo1 state: down mac: <filter>
  Device-2: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: ASUSTeK driver: r8169 v: kernel port: 3000 bus-ID: 0000:2e:00.0
    chip-ID: 10ec:8168 class-ID: 0200
  IF: eno2 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-3: Lenovo ThinkPad TBT 3 Dock driver: r8152 type: USB rev: 3.0
    speed: 5 Gb/s lanes: 1 mode: 3.2 gen-1x1 bus-ID: 6-2.1.2:4
    chip-ID: 17ef:3082 class-ID: 0000 serial: <filter>
  IF: enp4s0u2u1u2 state: down mac: <filter>
  Info: services: NetworkManager, smbd, systemd-timesyncd, wpa_supplicant
  Device-1: Intel AX201 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-10:3 chip-ID: 8087:0026
    class-ID: e001
  Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.2
    lmp-v: 11 status: discoverable: no pairing: no class-ID: 6c010c
  Hardware-1: Intel Volume Management Device NVMe RAID Controller driver: vmd
    v: 0.6 port: N/A bus-ID: 0000:00:0e.0 chip-ID: 8086:9a0b rev: class-ID: 0104
  Local Storage: total: 1.38 TiB used: 19.03 GiB (1.4%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
    model: WD BLACK SN770 1TB size: 931.51 GiB block-size: physical: 512 B
    logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 731030WD temp: 49.9 C scheme: GPT
  ID-2: /dev/nvme1n1 maj-min: 259:5 vendor: Samsung
    model: MZVLQ512HBLU-00B00 size: 476.94 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: FXM7201Q temp: 35.9 C scheme: GPT
  ID-1: / raw-size: 475.77 GiB size: 475.77 GiB (100.00%)
    used: 19.03 GiB (4.0%) fs: btrfs block-size: 4096 B dev: /dev/nvme1n1p2
    maj-min: 259:7
  ID-2: /boot/efi raw-size: 1.17 GiB size: 1.17 GiB (99.80%)
    used: 588 KiB (0.0%) fs: vfat block-size: 512 B dev: /dev/nvme1n1p1
    maj-min: 259:6
  ID-3: /home raw-size: 475.77 GiB size: 475.77 GiB (100.00%)
    used: 19.03 GiB (4.0%) fs: btrfs block-size: 4096 B dev: /dev/nvme1n1p2
    maj-min: 259:7
  ID-4: /var/log raw-size: 475.77 GiB size: 475.77 GiB (100.00%)
    used: 19.03 GiB (4.0%) fs: btrfs block-size: 4096 B dev: /dev/nvme1n1p2
    maj-min: 259:7
  ID-5: /var/tmp raw-size: 475.77 GiB size: 475.77 GiB (100.00%)
    used: 19.03 GiB (4.0%) fs: btrfs block-size: 4096 B dev: /dev/nvme1n1p2
    maj-min: 259:7
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 15.32 GiB used: 26.8 MiB (0.2%)
    priority: 100 comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 8
    dev: /dev/zram0
  System Temperatures: cpu: 46.0 C mobo: N/A
  Fan Speeds (rpm): cpu: 2100
  Memory: total: 16 GiB available: 15.32 GiB used: 5.66 GiB (37.0%)
    igpu: 64 MiB
  Processes: 317 Power: uptime: 1h 39m states: freeze,mem,disk
    suspend: s2idle avail: deep wakeups: 0 hibernate: platform avail: shutdown,
    reboot, suspend, test_resume image: 6.12 GiB services: upowerd
    Init: systemd v: 255 default: graphical tool: systemctl
  Packages: pm: pacman pkgs: 1362 libs: 393 tools: pacseek,paru Compilers:
    gcc: 14.1.1 Shell: garuda-inxi (sudo) default: Bash v: 5.2.26
    running-in: foot inxi: 3.3.34
Garuda (2.6.26-1):
  System install date:     2024-05-06
  Last full system update: 2024-05-08
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut
  Windows dual boot:       Yes
  Failed units:            


Just don’t do it more than one time :slight_smile:
Press ESC. Or mouse click some where.

Check issue on github

1 Like

Hm, not finding much on GH issues either… Searched wofi, duplicate, keybind(ing), etc

No worries, like I said, more of an annoyance than a full-blown issue. Just wanted to check if someone else had come across it and knew the solution since I couldn’t find one.

I don’t know if this is of help. I don’t like that about wofi and thats why I use fuzzel, instead.
Closing would be as easy as Ctrl+g if you are an emacs nerd or Esc, if your fingers are tall enough to get there.

I’ll check it out, thanks! I’m used to opening a window with a keybind, then hitting that keybind again to close it (after running KDE for so long), so more of a comfort/familiarity thing. It for me is just a faster workflow. :slight_smile:

bind = $mainMod, Y, exec, killall wofi

works :slight_smile:
Best I can do in moment. :smiley:

1 Like

From the Hyprland wiki

# Start wofi opens wofi on first press, closes it on second
bindr=SUPER, SUPER_L, exec, pkill wofi || wofi

press super first, release, press L


Missing the icons, but you can’t get it all :smiley:

1 Like

Fun fact, I get to keep the icons! :partying_face:

This line works perfectly, and was exactly what I was looking for, thanks so much all @veitw for the suggestion!
I was digging in the Hyprland docs when I should’ve looked at the Arch docs. M’bad on that.
Here’s the config line that works great.

bind = $mainMod, D, exec, pkill wofi || wofi --normal-window --show drun --allow-images

Inspired by @veitw and @glomar_response

bindr=SUPER, SUPER_L, exec, pkill wofi || wofi --normal-window --show drun --allow-images

Just click only :penguin: “toggles” wofi, like KDE launcher. You folks are great.

By the way, I never pressed :penguin: + d for fun, but only when I needed it to open an app, so closing it directly never happened for me :smiley:


This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.