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 / 问题 / 473447
Accepted
WxPilot
WxPilot
Asked: 2014-05-29 05:26:20 +0800 CST2014-05-29 05:26:20 +0800 CST 2014-05-29 05:26:20 +0800 CST

在双屏设置中编写 Gnome Image Viewer 脚本

  • 772

我正在尝试使用 gnome 命令的眼睛在两个单独的显示器上打开图像查看器的两个实例。问题是,如果我使用命令:

eog -s --display=DVI-0 image.jpg

它声明它无法打开显示器(我的假设是它指的是 X 显示器)。有没有办法在每个屏幕上打开一个实例?

eog
  • 1 1 个回答
  • 2670 Views

1 个回答

  • Voted
  1. Best Answer
    Rémi
    2014-05-29T06:31:03+08:002014-05-29T06:31:03+08:00

    这里有两个问题:

    1. 有两个独立的 eog 实例(或至少是窗口)
    2. 控制他们在哪个屏幕上打开

    第一个很简单:选项--new-instance可以解决问题。

    第二个更复杂。--display 参数指的是要使用的X 服务器,而不是屏幕和/或监视器的名称(xorg.conf 术语)。所以 --display 不适合使用。

    在终端上发布eog --fullscreen image.jpg时,图像与终端在同一屏幕上打开。所以我想有一种方法可以告诉 Gtk 在精确的屏幕上打开。(注意:选项 -s 用于幻灯片放映,即,如果您想要一张图片,则更喜欢全屏。)

    从 GTK/Gdk 的文档和 eog 的源代码来看,eog 似乎创建了一个带有 teh 图像的弹出窗口,并请求 gdk 将其设置为全屏。Gdk 然后请求窗口管理器设置弹出窗口全屏的“窗口”。因此,在这个或那个屏幕上打开图像的决定权属于窗口管理器。

    wmctrl似乎是与窗口管理器通信的正确工具。这是执行此操作的脚本草稿。

    #!/bin/bash
    #open two fullscreen windows
    eog --fullscreen --new-instance image1.jpg&
    #wait until windows are actually created
    while [ 1 ]; do 
       found=$(wmctrl -l |grep 'image1.jpg'); 
       if ! [[ -z "$found" ]]; then 
          break; 
       fi; 
    done;
    #move first win to the left
    wmctrl -r 'image1.jpg' -e 1,0,0,-1,-1
    
    eog --fullscreen --new-instance image2.jpg&
    #wait
    while [ 1 ]; do 
       found=$(wmctrl -l |grep 'image2.jpg'); 
       if ! [[ -z "$found" ]]; then 
          break; 
       fi; 
    done;
    #move
    wmctrl -r 'image2.jpg' -e 1,1280,0,-1,-1
    

    但是您应该将 1280 替换为您的实际屏幕宽度。另请注意,因为脚本使用窗口名称来识别它们,所以如果您的桌面上存在具有相似名称('image1'、'image2')的窗口,这将不起作用。

    • 3

相关问题

  • 按修改日期/大小/类型/等排序的打开图像

  • 是什么让 Shotwell 无法取代 EOG?

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

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

    • 14 个回答
  • Marko Smith

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

    • 24 个回答
  • Marko Smith

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

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +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