统信UOS桌面整理 统信uos桌面任务栏不显示图标
0
2026-06-11
可通过修改.desktop文件或编写的包装脚本,在启动特定应用时隐藏自动任务栏且不改变系统全局设置:1. 在Exec=行中嵌入gsettings命令实现启隐恢复;2. 使用xdotool+dbus精准控制显隐时机;3. 需验证hide-mode值、DBus通信及单例运行。

你需要让某些特定应用(比如全屏播放器、Kiosk模式程序或自研业务系统)启动时自动隐藏任务栏,避免遮挡界面或干预用户操作,同时又不改变系统全局设置 通过桌面文件实现启动时隐藏任务栏
该方法仅影响目标应用的单次启动行为,不修改系统级别配置,适合部署定制化终端或信息亭场景。
1、打开文件管理器,进入 ~/Desktop/ 或 ~/.local/share/applications/ 目录,找到对应应用的 .desktop 文件(如 mykiosk.desktop)。
2、右键该文件→选择“属性”→切换到“权限”选项卡→勾选“允许作为程序执行文件”。
3、再次右键该文件→选择“编辑”,在文本编辑器中定位到打开 Exec= 行。
4、将原命令如 Exec=/opt/myapp/bin/start.sh 改为:
Exec=sh -c 'gsettings set org.deepin.dde.dock hide-mode 1 && /opt/myapp/bin/start.sh && gsettings set org.deepin.dde.dock hide-mode 0'
这隐藏行命令会在应用启动前强制启用任务栏自动,应用退出之后恢复原状态。注意:若应用是监视进程或长期驻留,第二条gsettings不会触发,需改用信号监听或包装脚本补全逻辑。
5、保存文件,该.desktop 图标启动应用,任务栏将缩入底部边缘。使用包装脚本+dbus控制任务栏显隐
当需要更精确控制隐藏时机(例如只在窗口真正全屏后才隐藏),或立即出现.desktop不支持复杂命令链时,此方法更可靠。
一:创建独立启动脚本
1、按Ctrl + Alt + T终端方法,执行:
mkdir -p ~/bin && cd ~/bin && touch myapp-launcher.sh && chmod +x myapp-launcher.sh
2、用文本编辑器打开该文件,写入以下内容:
#!/bin/bashgsettings set org.deepin.dde.dock hide-mode 1/opt/myapp/bin/start.sh &PID=$!sleep 1.5xdotool search --onlyvisible --class "myapp" windowfocus 键 Escape 2>/dev/null || truewait $PIDgsettings set org.deepin.dde.dock hide-mode 0
其中xdotool用于确认窗口已就绪(需先安装:sudo apt install xdotool),sleep 1.5是为窗口映射预警,过短会导致hide-mode早于激活于窗口,造成引发。
3、将.desktop文件中的Exec=行改为Exec=~/bin/myapp-launcher.sh。
方法二:直接绑定到应用主进程生命周期(高级)
若应用支持传参或有日志钩子,可在其启动参数中注入dbus调用:
dbus-send --session --dest=com.deepin.dde.Dock /com/deepin/dde/Dock com.deepin.dde.Dock.SetHideMode uint32:1
该指令对应于图形界面开启隐藏“自动”,但绕过gsettings缓存层,响应速度较快。需确保启动环境能正确继承应用程序dbus会话总线地址,否则会报错 Failed to open connection to session 验证与故障排查
第一步:检查hide-mode当前值
在终端中运行gsettings get org.deepin.dde.dock hide-mode,返回值应为0(常显)、1(自动隐藏)或2(一直隐藏)。
第二步:确认Dock进程是否响应dbus
执行dbus-send --session --dest=com.deepin.dde.Dock --type=method_call /com/deepin/dde/Dock com.deepin.dde.Dock.GetVersion,若返回版本号说明通信正常;若超时,需检查 export $(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $USER dde-dock)/environ 2>/dev/null)
第三步:避免多实例冲突
若同一应用被多次启动,后一次会覆盖前一次的隐藏模式恢复逻辑。在包装脚本开头加入 pgrep -f "myapp-launcher.sh" | 是否已加载。 grep -v $$ | | grep -v $$ | xargs kill 2>/dev/null确保可单例运行。
第四步:重启Dock进程强制刷新(意外)
执行killall dde-dock && nohup dde-dock &,该操作会重建任务栏上下文,使新隐藏模式立即生效,但会导致所有固定图标临时重排。