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
    • 最新
    • 标签
主页 / user-72216

Jacob Vlijm's questions

Martin Hope
Jacob Vlijm
Asked: 2016-10-29 12:06:54 +0800 CST

如何使用 dbus-monitor 和 xargs 解决“不匹配的双引号”错误?

  • 9

为了在 Linux (Ubuntu) 上拦截 ( notify-osd) 通知,我使用dbus-monitor下面的脚本。随后,该脚本运行另一个脚本 ( /opt/nonotifs/nonotifs/silent),并将截获的通知作为参数,以进行进一步处理:

#!/bin/bash

dbus-monitor "interface='org.freedesktop.Notifications'" | \
grep --line-buffered "string" | \
grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | \
grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | \
grep --line-buffered -v '^\s*$' | \
xargs -I '{}' /opt/nonotifs/nonotifs/silent {}

这工作完美无缺,除了通知hplip。

在此处输入图像描述

从终端运行时,上面的脚本显示:

xargs: unmatched double quote; by default quotes are special to xargs unless you use the -0 option

但是,当使用该选项-0时,脚本根本不提供任何参数。

我试过的

在某些情况下,脚本随后会中断。如果总是这样,可以通过在我尝试过的“保持活力”-包装器中运行它来解决它。然而,脚本通常不会终止,但它仍然会停止返回截获的通知。

我该如何解决这个问题?

编辑

正如@Serg 所建议的那样,我将xargs...部分替换为cat -A, 以查看传递给xargs. 这说明(第三行)的通知中确实有一个不匹配的双引号hplip,这似乎是通知中的一个错误。

运行时的输出cat -A,调用通知:

"hplip"$ 
"HPLIP Device Status"$ 
"Officejet_Pro_8600$ 
"transient"$
command-line
  • 1 个回答
  • 8637 Views
Martin Hope
Jacob Vlijm
Asked: 2016-08-30 02:42:23 +0800 CST

我可以在 Launchpad 上为特定 Ubuntu 版本回滚我的 ppa(我拥有的)吗?

  • 4

我在 Launchpad 上拥有一个项目。我是在16.04开发的,大部分时间都是在14.04上测试过的,除了最新的版本。事实证明,最新版本在 16.04 上运行良好,但不能倒退。

但是,我复制了最新版本,假设一切正常,已经复制到所有 Ubuntu 版本。我当然可以将以前的版本作为更新版本上传,但这似乎很奇怪,所以:

对于特定的 Ubuntu 版本,我可以将我的项目回滚到以前的版本吗?

application-development
  • 2 个回答
  • 82 Views
Martin Hope
Jacob Vlijm
Asked: 2016-05-23 00:11:33 +0800 CST

是什么导致不断出现消息“文件在磁盘上已更改;重新加载,忽略?”

  • 3

问题

在(在这种情况下).css在 Bluefish 中编辑文件时,我切换到浏览器以重新加载页面并测试结果。之后,我切换回该.css文件,并收到“( .css) 文件已在磁盘上编辑”的消息。

在此处输入图像描述

我很确定不是我,从另一个应用程序编辑文件。
这种情况一直在发生,如果发生了,但并非总是如此。当它开始时,它是不可阻挡的。

没有蓝鱼问题

由于它不仅适用于 Bluefish,而且在编写例如 bash 脚本时也是如此gedit,因此“编辑”必须是真实的。然而,在文件中实际上没有任何改变。

笔记

我正在编辑 NAS 上的文件,在我的桌面上本地链接。

nas
  • 1 个回答
  • 1881 Views
Martin Hope
Jacob Vlijm
Asked: 2016-04-19 03:10:58 +0800 CST

如果启动器项目不在 .desktop 文件中,它们的本地化接口名称在哪里定义?

  • 4

启动器的命名

- 在大多数情况下...
启动器 的接口名称,在大多数情况下,在(第一)行中定义,以:

Name=

其对应.desktop文件:

在此处输入图像描述

- 来自 .desktop 文件
的本地化命名 对于本地化命名,一些应用程序(如 Thunderbird)使用带有特定语言名称的扩展列表:

在此处输入图像描述


- 但是,如果本地化名称没有在 .desktop 文件中定义,那么它在哪里定义?
然而,在某些情况下,图标的名称不同,但文件中没有该名称.desktop:

在此处输入图像描述

该名称与.desktop文件的关联在哪里?

语境

几年前,我编写了QLE Quicklist 编辑器。该版本使用国际接口名称。我现在正在重写它Gtk+,但需要找到一种可靠的方法来显示本地化的启动器名称。

笔记

毫无疑问,这个问题与这个有关,但不完全是一个骗局;我想知道信息存储在哪里以自己获取本地化名称。


编辑

作为证明,gnome-screenshot.desktop名为Scermafdruk的内容已本地化(翻译:截图)。文件中没有字符串“Scermafdruk”的痕迹......

[澳大利亚]

[Desktop Entry]
Name=Screenshot
Comment=Save images of your screen or individual windows
Keywords=snapshot;capture;print;
Exec=gnome-screenshot --interactive
Terminal=false
Type=Application
Icon=applets-screenshooter
StartupNotify=true
Categories=GTK;GNOME;Utility;
NotShowIn=KDE;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-utils
X-GNOME-Bugzilla-Component=screenshot
Actions=Screen;Window;Area
X-Ubuntu-Gettext-Domain=gnome-screenshot

[Desktop Action Screen]
Name=Take a Screenshot of the Whole Screen
Exec=gnome-screenshot
OnlyShowIn=Unity;

[Desktop Action Window]
Name=Take a Screenshot of the Current Window
Exec=gnome-screenshot -w
OnlyShowIn=Unity;

[Desktop Action Area]
Name=Take a Screenshot of a Selected Area
Exec=gnome-screenshot -a
OnlyShowIn=Unity;
unity
  • 1 个回答
  • 640 Views
Martin Hope
Jacob Vlijm
Asked: 2016-03-24 02:16:24 +0800 CST

Launchpad 团队通常是如何组成的?

  • 5

随着时间的推移,我在这里回答了许多问题。很多时候,这些问题都是(用户)特定的,并且以即兴的方式创建了答案。
然而,在某些场合,事情肯定是更加成熟的结果。此外,这些问题/答案中的一些可能对更广泛的用户有用,具有良好集成的 GUI,可以维护、更新,并且可以由没有经验的用户轻松获得和安装。

具体来说,我正在考虑将这些帖子中的(一些)组合成一组易于访问的工作区工具或任何名称:这个、这个、这个、也许这个和这个。

尽管我喜欢时不时地在这里更新这些答案,就像其他任何人一样,我有我的局限性(不会告诉你哪个:)),并且一个人的团队并不是保证长期(呃)的最专业的方法一个项目的生命。

所以我的问题是:通常如何创建启动板团队


编辑

把问题缩小一点

我的印象是,许多积极参与开发的 AU 用户也是他们日常生活中的程序员/开发人员。他们的日常环境或多或少与他们在这里所做的事情有关。

我的情况完全不同。我的大多数同事根本不知道我在这里做什么,对这个问题了解甚少,并且对这个主题没有兴趣。换句话说; 我的专业网络根本与编程无关。

我想获得的最重要的见解是团队(通常)是否来自现有的合作,被带到 Launchpad,或者新团队是否出现在虚拟世界中。

application-development
  • 1 个回答
  • 187 Views
Martin Hope
Jacob Vlijm
Asked: 2016-01-13 13:53:17 +0800 CST

如何在(就在之前)注销 Unity 会话时运行本地命令(运行脚本)?

  • 4

冒着发布重复问题的风险:

注销时如何运行本地脚本(作为当前用户)?

我阅读(并尝试过)除其他外:

  1. 这个(Marton 的版本)完全没有做任何事情,用于创建文件的简单脚本、脚本的绝对路径(可执行)和文件。
  2. 这个,一定是过时的;它使我从命令行中删除了该文件,以便能够再次使用我的系统。
  3. 我也调查了这个,没有成功。

我相信我在这里一定做错了什么,但无法找出我的盲点。

语境

为这个问题寻找一个优雅的解决方案(解决方法),大概是一个错误的结果,我制作了一个脚本,根据参数,根据最后一个快照。该脚本运行良好,但实际上不适合作为后台脚本运行。

因此,脚本应该在注销时运行以获取安排,显然由当前用户运行。

14.04
  • 1 个回答
  • 1288 Views
Martin Hope
Jacob Vlijm
Asked: 2015-07-26 12:50:41 +0800 CST

是什么导致 15.04 中 GNOME 终端的 ps 输出发生变化?

  • 0

在研究这个答案时,我发现ps命令的输出在 15.04 中发生了很大变化。

几个例子

在 14.04 中,输出ps -e显示在gnome-terminal:

$ ps -e
19006 ?        00:00:00 gnome-terminal

在 15.04 中:

$ ps -e
24959 ?        00:00:00 gnome-terminal-

(注意15个字符)

对长版感到好奇,我跑了ps -e ww:

在 14.04 中:

$ ps -e ww
19006 ?        Sl     0:01 gnome-terminal

而在 15.04

$ ps -e ww
24959 ?        Rl     0:01 /usr/lib/gnome-terminal/gnome-terminal-server --app-id com.canonical.Terminal.qVQkBaeWjRVoRiJKYQVkNNyrboXUfVrj

寻找应用,对应pid:

在 14.04 中:

$ ps -p 19006 -o comm=
gnome-terminal

在 15.04 中:

$ ps -p 24959 -o comm=

又是 15 个字符(如预期的那样):

gnome-terminal-

在链接的问题中,我通过从 派生应用程序名称来解决它WM_CLASS,如命令输出中所述xprop。但是,我更愿意使用ps -p 19006 -o comm=效率更高的“老式”。

这些差异对脚本的使用有相当大的影响。我的问题是:有没有人知道这背后的原因是什么或是由什么引起的?

command-line
  • 1 个回答
  • 262 Views
Martin Hope
Jacob Vlijm
Asked: 2015-01-23 08:27:23 +0800 CST

wmctrl窗口移动命令出现偏差是什么原因

  • 16

关于wmctrl

使用wmctrl(默认情况下未安装),我们可以获得有关窗口的信息、它们的 id、它们的几何形状、它们所属的 pid 等。我们还可以使用几个命令移动或调整窗口大小。然而,在某些方面,它的行为似乎不符合逻辑。我的问题是关于通过以下方式移动窗口wmctrl:

获取资讯

当我运行命令时:

wmctrl -lG

我得到 (ao) 下面图片中有关窗口的以下信息:

0x04200085  0 746  443  468  205  jacob-System-Product-Name Niet-opgeslagen document 1 - gedit

在第 3-5 列中,几何信息告诉我们 x/y 坐标和宽度/高度。

移动/调整窗口大小

当我将这些坐标放在wmctrl命令中以移动/调整窗口大小时,它应该什么都不做,因为坐标没有改变:

wmctrl -ir 0x04200085 -e 0,746,443,468,205

偏差

但是,下面的图片显示窗口向下移动(准确地说是 28px)。我认为原因是wmctrl 窗口移动命令是根据工作区域(屏幕减去面板高度)计算的,而wmctrl -lG命令是根据总屏幕尺寸计算的。然后仍然无法解释 4px(面板高 24px)。

虽然偏差可以很好地在脚本中得到补偿,但我不明白原因这一事实并不令人满意,所以问题是:

造成这种偏差的确切原因是什么?


移动具有输出中精确坐标wmctrl -lG的窗口不应该移动窗口,但它确实

在此处输入图像描述

在此处输入图像描述

unity
  • 2 个回答
  • 3184 Views
Martin Hope
Jacob Vlijm
Asked: 2014-12-23 12:08:44 +0800 CST

Unity 中 wmctrl -d 和 wmctrl -lG 之间的关系到底是什么?

  • 5

来自 man wmctrl:

wmctrl 是一个命令,可用于与与 EWMH/NetWM 规范兼容的 X 窗口管理器进行交互。wmctrl 可以向窗口管理器查询信息,它可以请求执行某些窗口管理操作。

具体问题

该wmctrl -d命令可用于获取有关桌面(视口/工作区)的信息,该wmctrl -lG命令列出所有窗口,包括它们的几何信息。

我如何(在 Unity 中与其他窗口管理器相比):

  • 了解工作区的概况及其排列方式?
  • 找出哪个是当前工作区?
  • 从绝对意义上找出窗户的位置?
  • 列出当前工作区中的窗口?

从命令行,使用这两个命令?

背景资料


wmctrl -d 命令
列出桌面。在(例如)Xubuntu 上,当我运行时wmctrl -d,我可以在输出中清楚地看到哪个是当前工作区,以及工作区上的屏幕分辨率 (DG)。

0  - DG: 1024x600  VP: N/A  WA: 0,31 1024x569  1
1  - DG: 1024x600  VP: N/A  WA: 0,31 1024x569  2
2  - DG: 1024x600  VP: N/A  WA: 0,31 1024x569  3
3  * DG: 1024x600  VP: 0,0  WA: 0,31 1024x569  4

当前工作区标有*。

然而,在 Unity 上,输出wmctrl -d只显示一个(非常大的)工作区,标有*,无论哪个是当前“工作区”,例如:

0  * DG: 3360x2100  VP: 1680,0  WA: 65,24 1615x1026  N/A


来自:: 的 wmctrl -lG 命令man wmctrl:列出由窗口管理器管理的窗口。:在 -l 操作的输出中包含几何信息
-l
-G-

当我wmctrl -lG在(例如)Xubuntu 上运行时,每个工作区上都有一个鼠标垫窗口:

0x03400003  0 241  197  533  244  jacob-1001PX Untitled 1 - Mousepad
0x03400197  1 299  222  533  244  jacob-1001PX Untitled 2 - Mousepad
0x034001be  2 236  201  533  244  jacob-1001PX Untitled 3 - Mousepad
0x034001e3  3 283  228  533  244  jacob-1001PX Untitled 4 - Mousepad

这些信息很容易理解;从第二列,我们知道窗口所在的工作区、它的位置(x、y、第 3/4 列)和大小(x、y、第 5/6 列)。该位置是相对于它所在的工作空间给出的。

然而,在 Unity 上,情况就完全不同了。当我有四个工作区并在每个工作区上打开一个 gedit 窗口时:

0x03c03b81  0 468  -884 875  741  jacob-System-Product-Name Niet-opgeslagen document 1 - gedit
0x03c03e74  0 369  164  1111 741  jacob-System-Product-Name Niet-opgeslagen document 2 - gedit
0x03c03f8e  0 -1269 214  1111 741  jacob-System-Product-Name Niet-opgeslagen document 3 - gedit
0x03c00085  0 -1376 -917 1111 741  jacob-System-Product-Name Niet-opgeslagen document 4 - gedit

有些窗口有负坐标,有些(可能)有超过我屏幕分辨率的坐标。

unity
  • 1 个回答
  • 1189 Views
Martin Hope
Jacob Vlijm
Asked: 2014-06-16 07:32:59 +0800 CST

从 cron 启动时编辑 Gsettings 不成功

  • 6

我一定有一个盲点,但我找不到它是什么。

我制作了一个小的 python 脚本,可以从声音菜单中删除 VLC。它以我从终端或启动器或您能想到的任何方式运行它的任何方式完美运行。

脚本实际上所做的无非是获取当前设置:

gsettings get com.canonical.indicator.sound interested-media-players

编辑列表,并通过以下方式设置更改的列表:

gsettings set com.canonical.indicator.sound interested-media-players "['newlist']"

这些命令由 python 脚本执行。但是,当从 cronjob ( crontab -e) 运行时,只有 gsettings - get -部分有效,而gsettings - set -部分无效。get部分与cron 一起工作正常,我通过让脚本将数据(原始数据和编辑后的数据)写入外部文件来检查。

不是蟒蛇问题

为了查看问题是否与 python 代码有关,我创建了一个应用更改后的声音菜单项列表的 bash 脚本。故事是一样的:bash 脚本从命令行或启动器运行良好,而不是从 cron 运行,而同一脚本中的任何其他命令都可以运行良好。此外,如果我在下面的脚本末尾添加任何命令,它工作正常,看起来脚本对自己的工作感到满意。

为什么 gsettings set命令在从 cron 启动时不起作用?

这是脚本:

#!/usr/bin/python3
import subprocess

def read_soundmenu():
    # read the current launcher contents
    get_menuitems = subprocess.Popen([
        "gsettings", "get", "com.canonical.indicator.sound", "interested-media-players"
        ], stdout=subprocess.PIPE)
    return eval((get_menuitems.communicate()[0].decode("utf-8")))

def set_current_menu(current_list): # this takes no effect from cron
    # preparing subprocess command string
    current_list = str(current_list).replace(", ", ",")
    subprocess.Popen([
        "gsettings", "set", "com.canonical.indicator.sound", "interested-media-players",
        current_list,
        ])

current_list = read_soundmenu()
for item in current_list:
    if item == "vlc.desktop":
        current_list.remove(item)
set_current_menu(current_list)
scripts
  • 1 个回答
  • 1395 Views

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