获取标题中带有非 ANSI 字母的活动窗口的 WM_CLASS

获取标题中带有非 ANSI 字母的活动窗口的 WM_CLASS

尝试获取活动窗口的 WM_CLASS,以使 AutoKey 脚本针对不同的应用程序以不同的方式工作

这是其中一种方法:

winname=`xdotool getactivewindow getwindowname`
winclass=`xprop -name "$winname" | grep WM_CLASS`

当活动窗口的标题仅包含 ANSI 字符时,它可以正常工作。如果有其他字符(如非拉丁字母),则 xprop 会退出并出现错误。

有没有办法解决 xprop 的这个缺点?

或者有哪些其他方法可以获取 WM_CLASS 或以其他方式识别活动窗口的程序名称?

答案1

你已经接近目标了。试试这个:

winid=$(xdotool getactivewindow)
winclass=$(xprop -id "$winid" | grep WM_CLASS)

我用俄文字母测试了它并且它起作用了,但是类名将以八进制数字显示(例如,对于"алфавит"I got "\320\260\320\273\321\204\320\260\320\262\320\270\321\202")。

请注意,我用 替换了不推荐的反引号$(...)

相关内容