使用Hyprland, dolphin经常出现双击无法打开文件的情况.(显示选择程序打开但列表空白)
运行 XDG_MENU_PREFIX=arch- kbuildsycoca6 --noincremental 后恢复正常, 但一段时间后问题再次出现.
使用Hyprland, dolphin经常出现双击无法打开文件的情况.(显示选择程序打开但列表空白)
运行 XDG_MENU_PREFIX=arch- kbuildsycoca6 --noincremental 后恢复正常, 但一段时间后问题再次出现.
往hyprland.conf塞这一句凑合着用吧
exec-once = sh -c "while \[\[ 1 \]\];do XDG_MENU_PREFIX=arch- kbuildsycoca6; sleep 2s ;done"
两秒还是太极端了(
现在一出问题就手动跑一下, 也凑合用(
主要是我没法稳定复现这个问题, 总是要用到krunner或dolphin时才发现不能选择了…
也不知道在什么条件下会出现
写了个py脚本用来监控应用列表的变化。虽然还没怎么测试,但或许可以试试:
#!/usr/bin/env python
# Created:2025.10.04
import os
import time
import subprocess
from pathlib import Path
def main():
base_files = sorted(Path("/etc/xdg/menus/").glob("*-applications.menu"), key=lambda x:x.stat().st_size, reverse=True)
if not base_files:
print("ERROR '/etc/xdg/menus/*-applications.menu' not exisit, try: pacman -S archlinux-xdg-menu")
return
prefix = base_files[0].name.replace("-applications.menu", "")
print(f"INFO using file '{base_files[0]}' with prefix '{prefix}'")
env = dict(os.environ)
env.update({"XDG_MENU_PREFIX":f"{prefix}-"})
home = Path.home()
subprocess.run("kbuildsycoca6", env=env, check=True)
build_file = sorted(home.glob(".cache/ksycoca6_*"), key=lambda x: x.stat().st_mtime)[-1]
mtime = build_file.stat().st_mtime
while True:
print(f"Check, {time.strftime("%Y.%m.%d %H:%M:%S")}")
if mtime != build_file.stat().st_mtime:
subprocess.run("kbuildsycoca6", env=env, check=True)
mtime = build_file.stat().st_mtime
else:
print("passed")
time.sleep(1)
if __name__ == "__main__":
main()
试试 ln -sf /etc/xdg/menus/plasma-applications.menu ~/.config/menus/applications.menu
可以使用以下命令让dolphin显示和使用程序
env = XDG_MENU_PREFIX, plasma-
exec-once = dbus-update-activation-environment --all
我最近用niri也遇到了一样的问题,可以试试这个
ln -sf /etc/xdg/menus/plasma-applications.menu ~/.config/menus/applications.menu
在这位大佬的博客找到的:busyo's blog - dolphin 默认文件打开方式