可以从其他程序看到 Gedit 是否正在运行并且包含未保存的文本吗?

可以从其他程序看到 Gedit 是否正在运行并且包含未保存的文本吗?

我使用 Gedit 作为我最喜欢的文本编辑器。是否可以用 Python 或 Bash 编写一个脚本来检查 Gedit 是否正在运行并包含未保存的文本?

答案1

Gedit 正在运行

pidof gedit应该给你答案

包含未保存的文本

据我所知,Gedit 不支持任何 DBus 接口,这使得这项任务相对困难但可能:

#! /bin/bash

for i in `pidof gedit`; do
    for j in `xdotool search --name --onlyvisible --pid $i`; do
        title=`xdotool getwindowname $j`
        case $title in
            \**)
                echo "Found running Gedit with unsaved data"
            ;;
            *)
                echo "Gedit is open but there are no unsaved documents"
            ;;
        esac
    done
done

这个脚本的作用。它迭代所有找到的 gedit 进程,找到它们的可见窗口,迭代它们的标题并检查标题是否包含*指示未保存文档的第一个字符。

Bash/shell 纯粹主义者可能会想要替换``$( ).

相关内容