Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wellwellwell
V2EX  ›  Linux

Ubuntu 如何设置快捷键切换 App

  •  
  •   wellwellwell · Jun 30, 2022 · 2417 views
    This topic created in 1483 days ago, the information mentioned may be changed or developed.

    比如 我设置 Alt+c 切换到 chrome

    • 当 chrome 没有启动则启动它
    • 当 chrome 已经启动,但没有在最顶层窗口,则激活它到最顶层窗口
    • 当 chrome 已经启动,并且在最顶层窗口,则将它隐藏或者最小化

    其实也就 MacOS 的应用切换方式

    3 replies    2022-07-01 11:49:35 +08:00
    cyaki
        1
    cyaki  
       Jun 30, 2022
    抛砖引玉,用了以下代码,能一定程度上解决列表中后两个问题

    application=$1

    active_window_id=`xdotool getactivewindow`

    hex_id=`xwininfo -root -tree | grep $application | head -n 1 | xargs | cut -d ' ' -f1`

    [ -z "$hex_id" ] && echo Not found hex_id && exit 2

    binary_id=`printf %i $hex_id`

    [[ $active_window_id == $binary_id ]] && xdotool windowunmap $binary_id || xdotool windowmap $binary_id && xdotool windowactivate $binary_id

    然后在使用系统快捷键调用该脚本和传参
    debuggerx
        2
    debuggerx  
       Jun 30, 2022
    基本就是利用 xdotool 和 xwininfo 就能实现这些操作。
    贴一个之前帮人写的脚本:

    以编辑器为例,执行如下命令:

    xdotool windowactivate `xwininfo -int -tree -root | grep "deepin-editor" | awk '{print $1}'` || deepin-editor
    如果已经有打开的编辑器实例,就会将其窗口唤醒,否则打开一个新的编辑器。

    原理就是先利用 xwininfo 获取给定程序名的窗口 ID ,然后尝试利用 xdotool 的 windowactivate 功能将其激活,如果激活失败则用短路与操作打开指定程序。
    huangmingyou
        3
    huangmingyou  
       Jul 1, 2022
    对 xdotool 可以做这个,但是在 fvwm 里面,fvwm 可以直接用函数做。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   942 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 20:50 · PVG 04:50 · LAX 13:50 · JFK 16:50
    ♥ Do have faith in what you're doing.