在ratpoison中最小化后恢复GUI窗口

在ratpoison中最小化后恢复GUI窗口

我在跑ratpoison。我是emacs通过键绑定启动的(因此没有 xterm)。然后我错误地按了 Ctrl-Z,emacs 消失了(emacs iconify-or-deiconify-frame)。我知道它仍然在那里,因为当我离开ratpoison 并转到mwm emacs 时,它又回到了前台。然而,启动 xterm 并运行%emacsbash 告诉我bash: fg: %emacs: no such job

如何在ratpoison 中取消 emacs 图标?

  1. Gnome 中存在类似问题
  2. 错误报告

(这篇文章经过大量编辑)

答案1

将子 shell #1 中的进程置于后台并将其返回到子 shell #2 上的前台是根本不可能的(如果您不使用额外的工具,例如:雷普特尔)。


在您的情况下,您甚至没有从终端启动它,并且Ctrl+Z如果您不在终端中,则会有不同的行为。我认为你Ctrl+Z正在做一些其他的“魔法”,鼠毒默认键绑定甚至不列出来。也许你应该弄清楚,Ctrl+Z你的设置有什么限制。

编辑
Emacs手册:

当 Emacs 直接与 X 服务器通信并创建自己的专用 X 窗口时,Cz 具有不同的含义。挂起使用自己的 X 窗口的应用程序没有任何意义或用处。相反,Cz 运行命令 iconify-or-deiconify-frame,该命令临时图标化(或“最小化”)选定的 Emacs 框架(请参阅 P. 框架和 X Windows 部分)。然后您可以使用窗口管理器返回到 shell 窗口。

您应该能够Alt+Tab通过打开的应用程序访问 emacs。也许在ratpoison下有另一种方法可以恢复最小化的帧。或者添加Alt-Tab到ratpoison,编辑你的.ratpoisonrc

definekey top M-Tab next
definekey top M-ISO_Left_Tab prev

并重新启动 rp。

答案2

Ctrl+Z是 Emacs 命令最小化窗口(Emacs 将窗口称为“框架”)。从技术上讲,它与使用Ctrl+Z在终端窗口中暂停命令无关(但 Emacs 设计者选择了该快捷方式,因为它们的操作有些相似)。

通常,窗口管理器会在某处显示最小化窗口的列表。最初,“某处”是桌面上的一个图标,这就是最小化也称为图标化的原因。许多窗口管理器提供了一些其他方法来取消最小化窗口的最小化,例如通过从列表中进行选择。

如果您的窗口管理器不提供此功能,您可以从命令行执行此操作。最新版本wmctrl可以用 来做到wmctrl -x -Y Emacs。最新版本xdotool可以用 来做到xdotool search --classname Emacs windowmap

如果您启动了 Emacs 服务器,则可以使用 恢复 Emacs 窗口emacsclient -c '(make-frame-visible)'

为了避免将来发生意外,您可以将以下行添加到您的文件中,~/.emacs以便在最小化之前获得确认提示:

(defadvice iconify-frame (around iconify-frame-confirm)
  (if (y-or-n-p "Really iconify this frame?")
    ad-do-it))

我不会覆盖C-z绑定,因为它在终端中很有用。您可能希望将图标替换为对 Ratpoison 有用的其他内容。另外,请务必启动 Emacs 服务器,以便您可以使用以下命令发出命令emacsclient:将(server-start)您的.emacs.

答案3

我正在其 git 存储库中查看 RatPoison 的来源。基本上,当它收到窗口已图标化的事件时,它会将其撤回并将其放入全局列表中。查看unmap_notify函数 inevents.c和 at withdraw_windowin manage.c

withdraw_window将窗口放入某种全局列表中:请参阅list_move_tail(&win->node, &rp_unmapped_window);中的行withdraw_window

rp_unmapped_window也许破解一个新操作,分配给某个键绑定,从该列表中弹出一个窗口,并执行 XLib 调用以取消图标化它,从而使其恢复生机并不困难。 (无需做任何花哨的事情,例如渲染这些图标化窗口的列表以供随机选择。)

答案4

默认的ratpoison键绑定:

Ctrl+ t Ctrl+Enter隐藏一个窗口ratpoison

Emacs Guiunderratpoison也隐藏在Ctrl+之后z

Ctrl+t Enter恢复隐藏窗口。

相关内容