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

Ubuntu 如何设置快捷键切换 App

  •  
  •   wellwellwell · Jun 30, 2022 · 2606 views
    This topic created in 1591 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
    cyaki
    Jun 30, 2022
    1
    抛砖引玉,用了以下代码,能一定程度上解决列表中后两个问题

    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
    debuggerx
    Jun 30, 2022
    2
    基本就是利用 xdotool 和 xwininfo 就能实现这些操作。
    贴一个之前帮人写的脚本:

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

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

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