系统监控指示器

系统监控指示器

我有一个 bash 脚本,可以在一定时间后锁定屏幕(Ubuntu 中在一定时间后锁定屏幕的应用程序)。我想在 Ubuntu 的系统托盘/应用程序指示栏中显示剩余时间。

答案1

系统监控指示器

我发现最好的方法是Sysmonitor 指标摘自这篇文章WEB UPD8网站:

它在 Ubuntu 系统托盘 (Systray) / 应用程序指示栏上显示您的 bash 脚本使用单个echo命令更新的文本。

不同的桌面环境

以上文章针对的是 Ubuntu 14.04 至 20.04,Unity 桌面。如果你没有为 Ubuntu 20.04 安装 Unity Desktop,请参阅这些说明

有关 Xubuntu、Gnome-Shell + app-indicator 扩展和 Budgie 的更多信息,请访问开发者网站:fossfreedom / 指标系统监控。还可访问网站获取更详细的安装和配置说明。

安装和配置indicator-sysmonitor

安装系统监控指示器您需要首先指定indicator-sysmonitor可以找到的 PPA:

sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor
sudo apt-get update
sudo apt-get install indicator-sysmonitor

Alt现在从 Unity Dash( +F2⊞ Superaka键)运行“indicator-sysmonitor”GUI ⊞ Win。如果您使用的是 GNOME,请使用⊞ Super+A打开“显示应用程序”而不是 Dash。

  • 单击显示“cpu: 99% mem: 99%”的系统托盘区域
  • 选择“偏好设置”
  • “常规”选项卡最初处于活动状态,单击“启动时运行”框
  • 选择“高级”选项卡
  • 单击New按钮添加新控件
  • 在传感器字段中输入custom
  • 在描述字段中输入Bash Indicator _ 在命令字段中输入你的 bash 脚本的名称,即/mnt/e/bin/indicator-sysmonitor-display
  • 保存您的新自定义指标
  • 突出显示该custom行并单击Add按钮以激活它。
  • 您可以删除可能对您没有帮助的“CPU”和“Mem”的默认变量。
  • 我将刷新时间间隔从2秒改为.3秒。为了支持下面解释的“旋转披萨”。
  • 现在单击Save按钮。

Sysmonitor 指标运行情况

.gif显示了 Ubuntu 的 Unity 系统托盘更新时的样子。

多计时器系统监视器指示器.gif

  • 在动画的开始处,系统托盘输出包含“亮度:3000”。笔记:eyesome自 2020 年 7 月 6 日起,脚本已更改为显示“eyesome: 99%”,其中 99 是基于一天中的时间的阳光百分比。下面提供了链接。
  • 然后multi-timer(下面的链接)启动并逐步执行多个计时器。
  • 出现一个旋转的披萨,同时出现当前计时器剩余时间的倒计时。

Sysmonitor 指标 BASH 脚本

创建类似于以下脚本的脚本,名为indicator-sysmonitor-display。将脚本的文件名分配给{Custom}变量Sysmonitor 指标

#!/bin/bash

# UPDT: May 30 2018 - Cohesion with new multi-timer and old lock-screen-timer.
#       July 6 2020 - New eyesome sunlight percentage.

if [ -f ~/.lock-screen-timer-remaining ]; then
    text-spinner
    Spinner=$(cat ~/.last-text-spinner) # read last text spinner used
    String=$(cat ~/.lock-screen-timer-remaining)
    systray="$Spinner  $String"
else
    systray=""
fi

if [ -f /usr/local/bin/.eyesome-percent ]; then
    Brightness=$(cat /usr/local/bin/.eyesome-percent)
    systray="$systray  eyesome: $Brightness"
else
    systray="$systray  eyesome: OFF"
fi

# Below for AU answer: https://askubuntu.com/questions/1024866/is-it-possible-to-show-ip-address-on-top-bar-near-the-time
# default_interface=$(route -n | awk '$1 == "0.0.0.0" {print $8; exit}')
# ip_address=$(ifconfig "$default_interface" | awk 'sub(/.* inet addr:/, "") {print $1}')
# systray="$systray  $ip_address"
        
echo "$systray" # sysmon-indidicator will put echo string into systray for us.

exit 0

告诉之后Sysmonitor 指标{Custom}通过设置它在每个刷新间隔运行的变量来设置您的 bash 脚本的名称。您的 bash 脚本通过echo命令输出的任何内容都会出现在 Ubuntu 的系统托盘中。

三个输出到 Systray 的 bash 脚本

脚本indicator-sysmonitor-display显示剩余时间显示亮度级别值。这些值由记录在询问 Ubuntu

这三个 bash 脚本说明了多个脚本如何同时输出到 Systray,并共享indicator-sysmonitor-display更新显示的同一个脚本文件 ()。

旋转披萨text-spinner--BASH 脚本

bashtext-spinner脚本通过循环显示字符 、 和 来创建旋转披萨效果|/效果\突出显示某物正在“工作”或“思考”。要获得“旋转效果”,您需要更改Sysmonitor 指标刷新间隔从默认的2秒变为约0.30秒。

以下是text-spinnerBash 脚本:

#!/bin/bash

# return '|', '/', '─', '\' sequentially with each call to this script.
# Use ~/.last-text-spinner to store last used

FILE=~/.last-text-spinner

if ! [ -f $FILE ]; then
    echo '|' > $FILE
    exit 124 # ASCII equivalent for '|'. Bash doesn't allow character return codes
fi

LAST=$(cat $FILE) # read last character used

if [[ $LAST == '|' ]]; then
    echo '/' > $FILE
    exit 47 # ASCII equivalent of "/"
elif [[ $LAST == '/' ]]; then  # NOTE: you must have spaces around " == " else code breaks
    echo '─' > $FILE
    exit 9472 # ASCII equivalent
elif [[ $LAST == '─' ]]; then
    echo '\' > $FILE # NOTE: must use single quote because double quote BASH reinterprets
    exit 92 # ASCII
else
    echo '|' > $FILE
    exit 124 # ASCII
fi

相关内容