【问题标题】:How to make the windowing system's focus switch to another application using elisp?如何使用elisp使窗口系统的焦点切换到另一个应用程序?
【发布时间】:2012-08-08 23:35:46
【问题描述】:

我想在浏览器中打开当前正在编辑的html页面,然后切换 窗口系统焦点到浏览器上的按键。我正在使用 gnome 桌面环境。

下面是代码(焦点切换除外)

(defun open-in-browser()
  (interactive)
  (save-buffer)
  ; switch the windowing systems focus to the browser
  (let ((filename (buffer-file-name)))
    (browse-url (concat "file://" filename))))

(global-set-key (kbd "<f5>") 'open-in-browser)

我尝试过使用lower-frame功能和suspend-frame功能, 两者都隐藏了不需要的 emacs 框架,因为我将无法看到代码, 除此之外,我必须键入 ALT-TAB 两次 才能再次切换到 emacs-frame。

如何切换到另一个应用程序(就像在 gnome 中模拟 ALT-TAB)使用 省略。

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    您正在寻找的功能可能是unfocus-frame,但它已经过时了。您需要一个合作的窗口管理器才能真正按照您的要求进行操作。

    【讨论】:

      【解决方案2】:

      你不能按照你的要求去做。改变焦点是窗口管理器的责任,emacs 做不到。你可以

      1. 从 emacs 调用一个外部程序来做你想做的事
      2. 创建一个结合&lt;f5&gt;ALT-TAB的键绑定

      【讨论】:

        【解决方案3】:

        有些程序可用于从命令行控制窗口管理器,以便您可以从 elisp 调用命令来激活窗口和其他东西。

        一个这样的程序是wmctrl。我不知道它是否适用于 Gnome,您应该尝试一下。

        【讨论】:

          猜你喜欢
          • 2019-02-23
          • 1970-01-01
          • 2020-09-15
          • 1970-01-01
          • 2021-10-24
          • 2023-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多