如何以编程方式强制Emacs X窗口获得当前用户输入焦点?
我想在下面的Bash脚本中使用它
# Debug in Emacs using GDB
function emacs-gdb()
{
if [ -z $1 ]; then
echo -e "Usage: $FUNCNAME EXE EXE_ARGS...";
else
if (($# >= 2)); then
local ARGS="--args ${@:1:100}";
else
local ARGS="$1";
fi
emacsclient --eval "(gdb \"gdb -i=mi $ARGS\")"
fi
}
以使Emacs窗口自动获得窗口焦点。
发布于 2014-04-06 02:33:16
您可以通过在eval代码中添加对raise-frame
的调用来完成此操作。
例如:
emacsclient --eval "(progn (raise-frame) (gdb \"gdb -i=mi $ARGS\"))"
发布于 2014-04-06 12:21:33
我从某个与org-protocol
相关的地方复制了这篇文章。它也应该对你有帮助:
(defadvice raise-frame (after make-it-work (&optional frame) activate)
"Work around some bug? in raise-frame/Emacs/GTK/Metacity/something.
Katsumi Yamaoka posted this in
http://article.gmane.org/gmane.emacs.devel:39702"
(call-process
"wmctrl" nil nil nil "-s" "1")
(call-process
"wmctrl" nil nil nil "-i" "-R"
(frame-parameter (or frame (selected-frame)) 'outer-window-id)))
这是对@tungd建议调用raise-frame
的补充。
https://stackoverflow.com/questions/22883680
复制相似问题