چند ترفند در مورد زمان

امین 16 سپتامبر 2023 زمان خواندن: 2 دقیقه

چند تا ترفند و اسکریپت در مورد زمان درست کردم که ممکنه به دردمون بخوره

اعلام زمان

اولی ساعت رو به همراه میزان زمانی که کامپیوتر روشن بوده بوسیله notify-osd اعلام میکنه. به درد مواقعی میخوره که شما در حالت فول اسکرین یک برنامه هستید و به ساعت دسترسی ندارید، با یه شورتکات میتونید این اسکریپت رو اجرا کنید. همچنین میتونید به cron بدید تا مثلا سر هر ساعت یه نوتیفیکیشن بیاد و ساعت رو به شما اعلام کنه!

/usr/bin/notify-send -u critical -i "clock" "Clock" "Its $(date +%H:%M) now. Uptime: $(uptime | sed 's/.*up \([^,]*\), .*/\1/')" && paplay -q /usr/share/sounds/freedesktop/stereo/message-new-instant.oga

دستور play مال بسته sox هست. اگر اون رو ندارید و نمیخواید نصب کنید میتونید به جای دستور play از mplayer یا cvlc  یا canberra-gtk-play یا چیزای دیگه هم استفاده کنید. و فایل صدا رو هم به دلخواه خودتون تعیین کنید.

یک تایمر ساده

اسکریپت بعدی که توی اینترنت پیداش کردم و با notify-osd ترکیبش کردم بوسیله zenity یه تایمی از شما میگیره و بعد از اون تایم به شما یه نوتیفیکیشن میده. یعنی یه تایمر بسیار ساده.

#!/bin/bash
  # This script asks the user for a time, waits the specified amount of time, and shows an alert dialog.
 
TIME=$(zenity --entry --title="Timer" --text="Enter a duration for the timer.\n\n Examples: 5s or 5m or 5h")
  sleep $TIME
/usr/bin/notify-send -u critical -i "clock" "Ding Ding!" "It has been $TIME. " && paplay /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga

اعلام تاریخ شمسی

تقویم های فارسی ای وجود دارند که ممکنه به سلیقه هر کسی خوش نیان. یا اینکه ممکنه فقط نیاز داشته باشید بدونید امروز چندمه! با یه اسکریپت ساده notify-osd میتونیم اینجوری تقویم رو داشته باشیم

قبلش باید jdate رو نصب کنید و بعد با این دستور میتونید این نوتیفیکیشن رو داشته باشید:

/usr/bin/notify-send -u critical -i "date" "تاریخ شمسی" "امروز، $(jdate +%G\ %W)"

با گذاشتتن یک شورتکات یا alias خیلی راحت تاریخ شمسی رو میتونیم داشته باشیم.

اما برای گذاشتن این موارد در cron باید یه تغییراتی در اسکریپت بدیم. خروجی دستور زیر رو کپی کنید:

set | grep DBUS_SESSION_BUS_ADDRESS

مثلا میشه این:

DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus

بعد این رو در ابتدای اسکریپت قرار بدید:

export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus

وگرنه notify-send در cron اجرا نمیشه.

اولین نفری باشید که دیدگاهی ارسال می کند!




حاصل سر و کله زدن های من با لینوکس