AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 25644
Accepted
Erigami
Erigami
Asked: 2011-02-11 06:31:01 +0800 CST2011-02-11 06:31:01 +0800 CST 2011-02-11 06:31:01 +0800 CST

哪个窗口具有当前焦点?

  • 772

我想知道(以编程方式)哪个窗口具有当前焦点。是否有一种独立于窗口管理器的方式来发现它?

否则,如何确定 Compiz 或 Metacity 中哪个窗口具有焦点?

python
  • 6 6 个回答
  • 13099 Views

6 个回答

  • Voted
  1. Best Answer
    Michael Terry
    2011-02-12T04:47:55+08:002011-02-12T04:47:55+08:00

    您想要的是libwnck(如果您只对 windows 感兴趣)或libbamf(如果您对 windows 和拥有它们的应用程序感兴趣)。

    • 6
  2. frabjous
    2011-02-11T07:28:58+08:002011-02-11T07:28:58+08:00

    您可以使用的另一件事是xdotool:

    xdotool getwindowfocus

    将返回焦点窗口的窗口 ID,并且:

    xdotool getwindowfocus getwindowname

    会告诉你它的名字。

    • 4
  3. akazuko
    2014-06-16T04:14:05+08:002014-06-16T04:14:05+08:00

    尝试使用 wnck lib,然后使用以下代码:

    import wnck
    import gtk
    
    while True:
    if __name__ == '__main__':
        screen = wnck.screen_get_default()
        screen.force_update()
        while True:
            while gtk.events_pending():
                gtk.main_iteration()
            #time.sleep(0.5)
            print screen.get_active_window().get_name()
    
    • 4
  4. RAOF
    2011-02-11T15:05:18+08:002011-02-11T15:05:18+08:00

    如果您乐于进行一点 X11 编程,那么EWMH 规范就是您所追求的——特别是_NET_ACTIVE_WINDOW。

    • 3
  5. Oli
    2011-02-11T06:40:26+08:002011-02-11T06:40:26+08:00

    好吧,如果您可以将某些内容ping回shell:

    xdpyinfo | grep focus
    

    应该管用。

    编辑:为了更清晰的输出,试试这个:

    xdpyinfo | grep -Eo 'window 0x[^,]+' | cut -d" " -f2
    
    • 2
  6. Peter.O
    2011-02-12T05:22:53+08:002011-02-12T05:22:53+08:00

    来自信息 xtool:

    getactivewindow
       Output the current active window. This command is often more
       reliable than getwindowfocus. The result is saved to the window
       stack. See "WINDOW STACK" for more details.
    

    这就是我用来获取标题的方法。(我在 10.04)

    xwininfo -id "$(xdotool getactivewindow)" |sed -n \
      "2s/^xwininfo: Window id: \(0x[[:xdigit:]]\+\) \x22\(.*\)\x22$/\2/p"
    
    • 1

相关问题

  • 默认的字符编码是什么?

  • 如何使用 pynotify 创建可点击通知?

  • 有没有安装 Django 1.2.*(最新稳定版)的简单方法?

  • 为 Python 应用程序设置构建系统

  • 为我的 PPA 创建包时遇到问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve