V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
jeesk
V2EX  ›  Linux

gnome 下面有什么什么办法为程序绑定全局快捷键?

  •  
  •   jeesk · 274 天前 · 1328 次点击
    这是一个创建于 274 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我只想打开一个 chrome , 如果 chrome 已经存在,那么直接激活当前的 chrome 即可? 有这方面的拓展吗?

    第 1 条附言  ·  274 天前
    目前想到方法, 使用 wmctrl 去绕开, 部分应用可以,自己找规则。
    11 条回复    2024-03-26 23:37:01 +08:00
    L4Linux
        1
    L4Linux  
       274 天前 via Android
    为什么不改.desktop 文件?
    mephisto
        2
    mephisto  
       274 天前 via iPad
    你可以看看我写的一个隐藏和呼出终端的文章,但是不是 Gnome 下的,Gnome 很多东西是锁死的,有利有弊
    passive
        3
    passive  
       273 天前 via Android
    没用过 wayland 。如果是 X ,在 Chrome.desktop 里填 StartupWMClass 。
    june4
        4
    june4  
       273 天前
    设置中心>键盘>Custom Shortcuts ,里面可以为任意程序指定快捷键,写上 chrome 的命令行地址就行
    vcn8yjOogEL
        5
    vcn8yjOogEL  
       273 天前
    Chrome 放到 Dash 上, 然后按 Super+数字键
    kuanat
        6
    kuanat  
       273 天前
    `Run or raise`
    https://github.com/CZ-NIC/run-or-raise
    https://extensions.gnome.org/extension/1336/run-or-raise/

    PS
    不依赖扩展的方式就是楼上说的 Super+数字,上面的插件里也提到了。

    再 PS
    tiling wm 环境里这个功能非常好实现,可以借鉴一下思路。绑定快捷键就用 Gnome 自带的 Keyboard shortcuts ,执行一个 bash -c "command" 命令。这个命令脚本用来判定运行程序和判定焦点,然后通过某个接口去操作窗口管理器。X11 的话,wmctrl 就可以。Wayland 需要通过 D-Bus 调用。
    huangmingyou
        7
    huangmingyou  
       272 天前
    gnome 用 xdotool 写脚本,用快捷键绑定脚本。 kde 可以直接用 kwin 规则实现,fvwm 也可以直接实现。不用 xdotool
    jeesk
        8
    jeesk  
    OP
       272 天前
    @huangmingyou
    @kuanat

    我直接用上了 run-or-raise, 在 x11 上我用的 wmctrl 来实现的。
    jeesk
        9
    jeesk  
    OP
       272 天前
    @huangmingyou kde 貌似在 wayland 上面渲染有些问题, 弃用了。
    mutex369
        10
    mutex369  
       271 天前
    以 Ubuntu20 为例:Settings -> Keyboard -> View and Customize Shortcuts -> Custom Shortcuts -> Add Custom Shortcut
    在 Command 一行加入如下代码:
    ```
    /bin/bash -c 'if ps -A | grep 那个程序可能的名字; then wmctrl -a 那个程序可能显示的窗体名字; else 运行那个程序的命令 ; fi;'
    ```
    ----------
    但我现在也遇到了一个问题,wmctlr -l 显示的窗体里没有 firefox ,虽然它已经打开了。有人能教导一下吗?
    mutex369
        11
    mutex369  
       268 天前
    @mutex369 找到原因了,https://www.reddit.com/r/Ubuntu/comments/nu8bij/issue_with_wmctrl_and_firefox_after_upgrading_to/。
    新版 firefox 默认使用 wayland 启动了,而 wmctrl 只能操纵 X11 的窗口。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1563 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:56 · PVG 00:56 · LAX 08:56 · JFK 11:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.