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
    • 最新
    • 标签
主页 / unix / 问题

问题[x](unix)

Martin Hope
ynn
Asked: 2019-04-14 20:31:02 +0800 CST

有没有办法在没有 gui 的情况下启动 gui 应用程序?

  • 5

我正在使用 Linux Mint MATE。我想在我的眼睛没有识别的情况下启动一个 gui 应用程序。我尝试了以下代码,该代码启动应用程序并在启动后立即将其移动到另一个工作区,wmctrl但这不起作用。

some_app_with_gui &
wmctrl -r title -t 1 #move window to another workspace (Say I'm in workspace 0 now)

如此处所示,原因是在的窗口出现wmctrl之前执行。some_app_with_gui所以解决方案是

some_app_with_gui &
sleep 0.8
wmctrl -r title -t 1 #move window to another workspace (Say I'm in workspace 0 now)

这实际上有效。

但是,使用此解决方案时,我的眼睛可以识别窗口片刻(0.1 秒左右)。这真的很烦人,我想避免它。

有什么解决办法吗?它不一定必须使用wmctrl. 任何其他命令都可以。请注意我不访问窗口,即应用程序由脚本启动并由脚本关闭,因此完全隐藏窗口是可以的。


这个问题与标题相似的问题有何不同是

  • 只涉及一台机器(与 SSH 无关)

  • 并且我想在没有 gui的桌面环境的机器上启动 gui 应用程序。

gui x
  • 2 个回答
  • 3394 Views
Martin Hope
nintyfan
Asked: 2019-03-05 23:43:45 +0800 CST

读取非客户区的 X 窗口属性

  • 0

如何读取 X 窗口非客户区(窗口管理器窗口)的属性?XChangeProperty我在我的 C 程序中设置了 X 属性。通过鼠标使用xprop和选择非客户区(我的意思是:窗口的标题栏)时,我的应用程序创建的窗口的属性不会显示。我测试了这两种情况。使用时xprop 8s name_of_non_registered_property和xprop 8s name_of_registered_property消息不同,所以我更正创建XAtom。

我只在 Plasma5.15 上测试 xprop(KWin 在 X.org 下工作)

我正在混合 GTK+2 和 XCB(或 XLib)代码。当使用XListProperty,XGetAtomName来自先前调用先前函数的元素和XGetAtomNameput 到puts(C stdlib) 的结果时,我的原子的名称是可见的。第一次调用主循环时,可能是 GTK 混乱?在将我的属性添加到它之前,我意识到了窗口。

我认为,这与其说是系统问题,不如说是编程问题。

> xwininfo -all -root
....
0xba00001 "program": ("program" "Program")  10x10+10+10  +10+10
    1 child:
    0xba00002 (has no name): ()  1x1+-1+-1  +9+9
...
>xprop -id 0xba00001
 WM_CLASS(STRING) = "program", "Program"
 WM_COMMAND(STRING) = { "program" }
 _NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0xba00002
 _KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 29562975
 WM_CLIENT_LEADER(WINDOW): window id # 0xba00001
 _NET_WM_PID(CARDINAL) = 25223
 WM_LOCALE_NAME(STRING) = "pl_PL.UTF-8"
 WM_CLIENT_MACHINE(STRING) = "linux-rvnb"
 WM_NORMAL_HINTS(WM_SIZE_HINTS):
                 program specified size: 10 by 10
>xprop -id 0xba00002
>
window-manager x
  • 1 个回答
  • 584 Views
Martin Hope
pitosalas
Asked: 2019-01-26 03:35:28 +0800 CST

X和VNC是什么关系?

  • 1

我以为他们完全不同。但我刚刚注意到,Screen Sharing在 MacOS 上运行时,窗口标题栏显示“pitosalas 的 X 桌面”。我认为 MacOS 上的屏幕共享是一个 VNC 客户端,所以我很困惑。

vnc x
  • 1 个回答
  • 55 Views
Martin Hope
Sergey
Asked: 2018-12-27 04:38:33 +0800 CST

限制所有 X 应用程序的 CPU 和内存消耗

  • 4

我想保留少量的 cpu 和内存,以便在紧急情况下能够创建 tty 会话并终止占用内存的 X 应用程序。cgroups提供了这个功能。如何自动将我所有的 X 应用程序放入 cgroup 中?

cgroups x
  • 1 个回答
  • 927 Views
Martin Hope
Joren Vaes
Asked: 2018-10-23 05:23:42 +0800 CST

SSH -X 不适用于特定应用程序

  • -1

在我的工作中,我们有许多运行 Linux 的计算服务器。我想使用 Windows 系统的 GUI 在其上运行我的软件。由于工作性质,VNC 不是一个选项,它必须使用 SSH。

这适用于除一个(ANSYS HFSS)以外的所有应用程序。在其他软件中,我可以在连接 SSH 后启动软件,它会在我的本地 Windows 计算机上打开一个窗口。然而,对于 HFSS,它要么

  • 显示启动画面,当它消失时什么也没有发生(当我用 htop 检查时程序仍在运行,它使用了几个 % 的 CPU)
  • 什么都不做
  • 如果我用要加载的文件路径启动程序,它会显示 GUI,然后崩溃

我在 Windows 系统上使用 mobaXterm。

ssh x
  • 1 个回答
  • 145 Views
Martin Hope
Greg Nisbet
Asked: 2018-10-17 13:46:16 +0800 CST

直接清除特定的 X 缓冲区,无需经过 xsel 或 xclip

  • 3

我正在尝试使用Radivarig 的解决方案完全禁用从缓冲区粘贴的中键。

把这个放在~/.xbindkeysrc

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release

但是,此解决方案取决于xsel(或等效xclip地)快速完成其工作。

最近我注意到尝试清除主缓冲区时xsel延迟了几秒钟。xclip

是否有比强制 X 清空特定缓冲区的任何方式xsel或正在采取的方式更不“礼貌”的方式?xclip

有问题的 Linux 发行版是 Manjaro ......这可能是 Manjaro 或 Arch 特定的错误,但关于如何在没有或其他类似工具的情况下与 X11 服务器交互的面向最终用户的信息xsel似乎xclip有些缺乏。

~  > xclip -selection primary -verbose -in </dev/null
Connected to X server.
Using selection: XA_PRIMARY
Using UTF8_STRING.
Waiting for selection requests, Control-C to quit
  Waiting for selection request number 1
  Waiting for selection request number 2
Time: 13s

~  > xclip -selection primary -verbose -in </dev/null
...
Time: 11s

~  > xclip -selection primary -verbose -in </dev/null
...
Time: 23s

我连接gdb到一个挂起xclip的 s 上,它似乎一直在等待来自 X 服务器的响应。

(gdb) where
#0  0x00007f905e1f1b78 in poll () from /usr/lib/libc.so.6
#1  0x00007f905dc68630 in ?? () from /usr/lib/libxcb.so.1
#2  0x00007f905dc6a2db in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3  0x00007f905e306009 in _XReadEvents () from /usr/lib/libX11.so.6
#4  0x00007f905e2f4ee1 in XNextEvent () from /usr/lib/libX11.so.6
#5  0x0000563eb8eaea70 in ?? ()
#6  0x00007f905e125223 in __libc_start_main () from /usr/lib/libc.so.6
#7  0x0000563eb8eaf53e in ?? ()

我尝试根据部分xsel源代码直接使用 X API 编写精简程序,特别是:https ://github.com/kfish/xsel/blob/master/xsel.c#L1003-L1018 。

为了清除缓冲区,xsel 似乎依赖于以下属性XSetSelectionOwner:

如果新所有者(无论是客户端还是 None )与选择的当前所有者不同并且当前所有者不是 None ,则向当前所有者发送 SelectionClear 事件。如果作为选择所有者的客户端稍后终止(即其连接关闭),或者如果它在请求中指定的所有者窗口后来被销毁,则选择的所有者自动恢复为 None ,但最后一个-更改时间不受影响。X 服务器不解释选择原子。XGetSelectionOwner() 返回所有者窗口,在 SelectionRequest 和 SelectionClear 事件中报告。选择对于 X 服务器来说是全局的。

这是我尝试精简xsel到我需要的功能。

我假设XA_PRIMARY缓冲区的所有者通常不是None. 我将它设置None在我的 C 程序的主体内,然后希望它能够工作。

// clear.c
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <assert.h>

// always debug
#undef NDEBUG

static Display * display = NULL;

static char * display_name = NULL;

static void clear_selection(void)
{
  printf("%d\n", 300);
  display = XOpenDisplay(display_name);
  assert(display != NULL);
  printf("%d\n", 200);
  XSetSelectionOwner(display, XA_PRIMARY, None, CurrentTime);
  printf("%d\n, 500);
  XSync(display, False);
  return;
}

int main(void)
{
  printf("%d\n", 100);
  clear_selection();
  printf("%d\n", 200);
  return 0;
}

该程序运行并打印

100
300
400
500
200

正如预期的那样。

但是,它未能清除主缓冲区。

xclip -selection -primary out前后显示相同的东西。

x11 x
  • 1 个回答
  • 405 Views
Martin Hope
O.O.
Asked: 2018-10-17 07:27:19 +0800 CST

什么启用 Alt+单击窗口拖动

  • 2

我使用 Kubuntu 18.04,我想知道哪个组件实现了Alt+ Left Click drag。

显示管理器 SDDM是否实现了这一点,或者它是X 服务器,还是KDE中的东西?抱歉,我不知道所有这些是如何协同工作的。

背景:我希望看到额外的功能,例如,当Alt+Left Click 拖动移动一个最大化的窗口时,但是一旦将它移动到另一个显示器,它就不会再次最大化它。如果我能知道谁(即 SDDM、X 或其他任何人)正在执行此操作,我就可以进一步调查我需要做什么来解决此问题。这只是背景,而不是这里的实际问题。

kde x
  • 1 个回答
  • 249 Views

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve