📌  相关文章
📜  如何在单击文档图标时启用最小化 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:52:54.343000             🧑  作者: Mango

如何在单击文档图标时启用最小化 - Shell-Bash

在Shell-Bash中,我们可以使用xprop和xdotool来设置在单击文档图标时启用最小化。

xprop

xprop是用于获取窗口属性的命令。我们可以使用它来获取当前窗口的窗口ID(wid)。

首先,打开终端并运行以下命令:

xprop

这将启动一个鼠标指针,并要求你点击你想要获取其窗口ID的窗口。将鼠标指针移动到文档窗口上,然后单击窗口。

输出中将显示许多窗口属性。我们要查找的是_NET_WM_WINDOW_TYPE_NET_WM_WINDOW_TYPE_DESKTOP。如果它们都在当前窗口中,那么这是文档窗口。

在这个窗口中,你将看到一个类似于_NET_WM_PID:的字符串,后面跟着一个数字。这个数字是该窗口的进程ID(PID)。请记下这个数字。我们将在下一步中使用它。

xdotool

xdotool是一个命令行工具,可以模拟键盘、鼠标和窗口操作。我们可以使用它来最小化窗口。

我们来试试。在终端中运行以下命令:

xdotool windowminimize <wid>

<wid>替换为我们在上一步中获得的窗口ID(wid)。窗口应该已经被最小化了。

设置文档图标最小化

现在我们已经知道了如何使用xprop和xdotool,我们可以将它们结合起来并将它们添加到我们的桌面环境配置文件中,这样我们就可以在单击文档图标时启用最小化。

以下是一个示例脚本,可以在单击文档图标时最小化窗口。你可以将其添加到你的.shrc或.xprofile文件中,这样每次启动X会话时,它都会被执行:

#!/bin/bash

wid=$(xprop | awk '/_NET_WM_WINDOW_TYPE_NORMAL/ {print $5}')
pid=$(xprop -id $wid | awk '/_NET_WM_PID\(CARDINAL\)/ {print $3}')
export wid
export pid

wmctrl -lp | awk "\$3 == $pid {print \$1}" | while read wid; do
    xprop -id $wid -f _NET_WM_NAME 8u -set _NET_WM_NAME "DOCUMENT VIEWER"
done &

xdotool search --sync --onlyvisible --pid $pid --class Evince windowactivate %{wid} key --clearmodifiers "alt+space" "n"

这个脚本做了以下几件事情:

  1. 使用xprop获取当前文档窗口的窗口ID和进程ID。
  2. 找到具有相同PID的所有窗口,并将它们的窗口名设置为DOCUMENT VIEWER。这是为了帮助我们找到正确的窗口。
  3. 使用xdotool将文档窗口激活,并按下ALT + SPACE键。这应该打开窗口的系统菜单。
  4. 按下N键,将窗口最小化。

现在,当你单击文档图标时,你应该会看到文档窗口被最小化。