Cập nhật ngày 4 tháng 6 năm 2018
Một chương trình ưu việt hơn nhiều multi-timer
đã được tạo ra: Một bộ đếm thời gian để thiết lập các báo thức khác nhau đồng thời
Khóa màn hình hẹn giờ
Tạo Bộ đếm thời gian Khóa màn hình của riêng bạn thay vì các ứng dụng của bên thứ 3
Mặc dù có các ứng dụng của bên thứ 3 để thực hiện việc này, bạn có thể tạo ứng dụng của riêng mình. Tóm tắt các bước:
- Sử dụng gedit để tạo tập lệnh
lock-screen-timer
- Sao chép và dán mã từ cửa sổ này vào
lock-screen-timer
- Đánh dấu
lock-screen-timer
là một thực thi
- Kiểm tra nó!
- Cấu hình Nautilus để thực thi các tập lệnh bash
- Tạo liên kết phím tắt trên màn hình
- Theo dõi thời gian còn lại
Chỉnh sửa 1 (ngày 19 tháng 11 năm 2016): Phiên bản cuối cùng. Cảnh báo khóa sắp xảy ra ở 15, 10, 5, 3, 2 và 1 phút còn lại bằng tin nhắn và âm thanh. Sử dụng tiện nghi để có được số phút (mặc định là 30).
Chỉnh sửa 2 (ngày 20 tháng 11 năm 2016): Thay đổi mã để giết tập lệnh ngủ trước đó.
Chỉnh sửa 3 (ngày 20 tháng 1 năm 2017): Sửa lại việc giết mã tập lệnh trước đó. Thêm thông báo nếu phiên bản trước đã chạy và kết thúc.
Chỉnh sửa 4 (Tháng Hai 4.2017): Chạy trong vòng lặp để đếm ngược nhiều lần mà không cần phải nhấp lại vào biểu tượng máy tính để bàn. tức là đêm giặt - 16 phút để xả chu trình (nước xả vải), 13 phút để tải máy sấy, 58 phút để lấy ra khỏi máy sấy.
Chỉnh sửa 5 (ngày 11 tháng 2 năm 2017): Viết số phút còn lại để
/tmp/lock-screen-timer-remaining
. Điều này cho phép các chương trình khác hiển thị lượng thời gian trước khi màn hình bị khóa.
Chỉnh sửa 6 (ngày 07 tháng 8 năm 2017): Thay đổi /tmp/
tệp công việc ~/.
để hỗ trợ nhiều người dùng trên mạng.
EDIT: Lưu ý rằng tập lệnh phụ thuộc vào ogg123 để phát âm thanh nhắc nhở. Chương trình này là một phần của gói công cụ vorbis từ kho vũ trụ. Kịch bản như được trình bày ở đây cũng cố gắng sử dụng tập lệnh hotplugtv được tìm thấy ở đây.
Chỉnh sửa 8 (ngày 12 tháng 11 năm 2017): Thêm hỗ trợ WSL (Hệ thống con Windows 10 cho Linux). Lưu ý bạn cần thêm VcXsrv
và ubuntu-desktop
hoặc xubuntu-desktop
(ưu tiên) để sử dụng GUI Linux trong WSL. Hiển thị thời gian còn lại của khay hệ thống / khay thông báo của Windows 10 yêu cầu bổ sung cho những gì indicator-sysmonitor
trong Linux. Một powershell.exe
kịch bản trong tương lai được lên kế hoạch cho hỗ trợ khu vực thông báo Windows 10.
Chỉnh sửa 9 (ngày 19 tháng 2 năm 2018): Sửa lỗi hoạt hình thiếu trình tự \
quay bánh pizza "|, /, ─, \".
Sử dụng gedit để tạo tập lệnh lock-screen-timer
Mở Terminal
bằng Ctrl+ Alt+ Tvà gõ:
gedit lock-screen-timer
Sao chép và dán mã từ cửa sổ bên dưới để lock-screen-timer
Chuyển trở lại màn hình này và sao chép mã sau bằng cách tô sáng nó và nhấn Ctrl+ C:
#!/bin/bash
# NAME: lock-screen-timer
# PATH: $HOME/bin
# DESC: Lock screen in x minutes
# CALL: Place on Desktop or call from Terminal with "lock-screen-timer 99"
# DATE: Created Nov 19, 2016. Last revision May 30, 2018.
# UPDT: Updated to support WSL (Windows Subsystem for Linux)
# Remove hotplugtv. Replace ogg with paplay.
# Cohesion with multi-timer. New sysmonitor indicator style.
# NOTE: Time defaults to 30 minutes.
# If previous version is sleeping it is killed.
# Zenity is used to pop up entry box to get number of minutes.
# If zenity is closed with X or Cancel, no screen lock timer is launched.
# Pending lock warning displayed on-screen at set intervals.
# Write time remaining to ~/.lock-screen-timer-remaining
MINUTES="$1" # Optional parameter 1 when invoked from terminal.
# if no parameters set default MINUTES to 30
if [ $# == 0 ]; then
MINUTES=30
fi
DEFAULT="$MINUTES" # When looping, minutes count down to zero. Save deafult for subsequent timers.
# Check if lock screen timer already running
pID=$(pgrep -f "${0##*/}") # All PIDs matching lock-screen-timer name
PREVIOUS=$(echo "$pID" | grep -v ^"$$") # Strip out this running copy ($$$)
if [ "$PREVIOUS" != "" ]; then
kill "$PREVIOUS"
rm ~/.lock-screen-timer-remaining
zenity --info --title="Lock screen timer already running" --text="Previous lock screen timer has been terminated."
fi
# Running under WSL (Windows Subsystem for Linux)?
if cat /proc/version | grep Microsoft; then
WSL_running=true
else
WSL_running=false
fi
while true ; do # loop until cancel
# Get number of minutes until lock from user
MINUTES=$(zenity --entry --title="Lock screen timer" --text="Set number of minutes until lock" --entry-text="$DEFAULT")
RESULT=$? # Zenity return code
if [ $RESULT != 0 ]; then
break ; # break out of timer lock screen loop and end this script.
fi
DEFAULT="$MINUTES" # Save deafult for subsequent timers.
if [[ $MINUTES == 0 ]] || [[ $MINUTES == "" ]]; then
break ; # zero minutes considered cancel.
fi
# Loop for X minutes, testing each minute for alert message.
(( ++MINUTES ))
while (( --MINUTES > 0 )); do
case $MINUTES in 1|2|3|5|10|15|30|45|60|120|480|960|1920)
notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/appointment-soon.png "Locking screen in ""$MINUTES"" minute(s)." ;
if [[ $WSL_running == true ]]; then
powershell.exe -c '(New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").PlaySync();'
else
paplay /usr/share/sounds/freedesktop/stereo/complete.oga ;
fi
;;
esac;
# Record number of minutes remaining to file other processes can read.
echo "Lock screen in: $MINUTES Minutes" > ~/.lock-screen-timer-remaining
sleep 60
done
rm ~/.lock-screen-timer-remaining # Remove work file others can see our progress with
if [[ $WSL_running == true ]]; then
# Call lock screen for Windows 10
rundll32.exe user32.dll,LockWorkStation
else
# Call screen saver lock for Ubuntu versions > 14.04.
dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
fi
done # End of while loop getting minutes to next lock screen
exit 0 # Closed dialog box or "Cancel" selected.
Sau đó chuyển trở lại gedit
cửa sổ trống và dán mã bằng Ctrl+ V. Lưu tệp và thoát trình chỉnh sửa trở lại dấu nhắc lệnh.
Đánh dấu lock-screen-timer
là một thực thi
Bây giờ chúng ta cần làm cho tập lệnh thực thi bằng cách gõ:
chmod +x lock-screen-timer
Kiểm tra nó!
Trước khi gọi tập lệnh từ GUI, chúng tôi sẽ gọi nó từ thiết bị đầu cuối để chúng tôi có thể xem liệu có bất kỳ thông báo lỗi nào được hiển thị không:
~/lock-screen-timer
Bạn được nhắc về số phút:
Đặt số phút mong muốn và nhấp OK để bắt đầu hẹn giờ. Khi có 15, 10, 5, 3, 2 và 1 phút để lại âm thanh hệ thống và một bong bóng thông báo xuất hiện thông báo khi màn hình sẽ bị khóa. Sau khi màn hình bị khóa, bạn cần nhập mật khẩu để mở khóa màn hình.
Cấu hình Nautilus để thực thi các tập lệnh bash
Nautilus định nghĩa những gì xảy ra khi chúng ta nhấp đúp vào tập lệnh thực thi khi cửa sổ hiển thị tệp hoặc liên kết trên màn hình. Hành vi bình thường là chỉnh sửa tập lệnh bằng cách sử dụng gedit
. Chúng tôi muốn thay đổi hành vi này để nó được thực thi.
Bắt đầu Nautilus và điều hướng đến thư mục chứa lock-screen-timer
. Nhấp chuột trái vào nó một lần để tập trung vào nó. Di chuột qua thanh menu trên cùng cho đến khi menu "Chỉnh sửa tệp ..." xuất hiện, sử dụng:
- Nhấp vào
Edit
menu thả xuống
- Bấm
Properties
tùy chọn
- Bấm vào
Behavior
tab
- Quan sát các nút tùy chọn radio bên dưới
Executable Text Files
- Kiểm tra nút radio
Run executable text files when they are opened
Tạo liên kết phím tắt trên màn hình
Từ phần trước lock-screen-timer
vẫn có trọng tâm. Nếu không, điều hướng đến tập lệnh và nhấp chuột trái vào tập lệnh một lần để tập trung vào nó. Sau đó sử dụng:
- Nhấp chuột phải vào tập tin và các tùy chọn menu ngữ cảnh xuất hiện.
- Từ menu chọn
Make Link
.
- Một biểu tượng mới xuất hiện được gọi là
Link to lock-screen-timer
.
- Nhấp chuột trái vào biểu tượng mới và kéo nó từ Nautilus vào máy tính để bàn của bạn.
Bây giờ bạn có thể nhấp đúp vào liên kết phím tắt trên màn hình và tập lệnh được chạy. Một hộp thoại xuất hiện để lấy số phút. Hai nút được trình bày Cancelvà OK. Nếu bạn bấm vào X
để đóng cửa sổ, nó giống như chọn Cancel.
Sau khi bộ đếm thời gian đang chạy và bạn nhấp đúp chuột vào nó một lần nữa, bản sao đang chạy đầu tiên bị "giết". Bây giờ bạn có thể bắt đầu đếm ngược khóa mới hoặc nhấp vào Cancelđể không đếm ngược.
Thời gian hiển thị còn lại trong vùng systray / thông báo
Trong khi bộ đếm thời gian màn hình khóa đang chạy, nó ghi lại bao nhiêu phút còn lại vào tệp ~/.lock-screen-timer-remaining
. Bạn có thể xem tệp này bằng watch
lệnh hoặc hiển thị nó trên thanh chỉ báo ứng dụng / khay hệ thống của Ubuntu như được hiển thị ở đầu câu trả lời này. Để hiển thị thời gian còn lại trong khu vực thông báo, hãy làm theo các hướng dẫn trong Hỏi & Đáp này: ( BASH có thể hiển thị trong systray làm chỉ báo ứng dụng không? ).