我需要一个简单的程序在屏幕上显示信息。例如,我想要一个角落里的小框来告诉我当前的语言是什么。
我设想该程序每隔几秒钟就会运行一个脚本或以其他方式进行更新。
我使用 fvwm,而不是 gnome 或其他带有 dock 的窗口管理器,所以我需要一些可以与 vanilla Xwindows 兼容的东西。
有这样的事吗?
答案1
通常,输入法编辑器会在系统托盘中显示当前语言。例如,ibus 或 fcitx。如果您有系统托盘应用程序,则它会在那里。
如果你想在不使用输入法的情况下获取布局,你可以使用 setxkbmap,例如这里。
无论您想要运行什么命令,您都可以从 FvwmScript 中执行,或者只需更新 FvwmButtons 中的按钮。
对于语言,将其添加到您的 fvwm 配置中:
DestroyModuleConfig FvwmButtonLanguage: *
*FvwmButtonLanguage: (Id button0, Title "ZZ")
然后您可以为其安排一个定期任务(也可以在您的 fvwm 配置中):
Schedule 1000 PipeRead "echo SendToModule FvwmButtonLanguage ChangeButton button0 Title $(setxkbmap -query | grep layout | cut -f2 -d: )"
或者运行一个脚本(假设你的启动函数中已经加载了模块 FvwmCommandS)来更新包含以下内容的按钮:
while true ; do FvwmCommand "SendToModule FvwmButtonLanguage ChangeButton button0 Title $(setxkbmap -query | grep layout | cut -f2 -d: )" ; sleep 1 ; done
如果您更新您的问题以提供另一个示例,我将用一个详尽的示例更新这个答案。