có được trạng thái xautolock


7

Tôi hiện đang sử dụng xautolock để tự động khóa màn hình của mình bằng slock . Tuy nhiên, khi tôi đang xem phim, tôi chắc chắn không muốn màn hình của mình bị đen đột ngột. Tôi đọc trang này và thấy rằng xautolock -toggleràng buộc với một phím tắt bàn phím phải cho tôi quyền kiểm soát toàn bộ.

Nhưng, tôi muốn xem tình trạng hiện tại. Hoặc tôi sẽ bị lẫn lộn. Có ai biết cách tìm trạng thái xautolock hay tôi nên làm gì đó như tạo một tệp chứa trạng thái hiện tại và sử dụng -enable / -disable, kiểm tra tệp và nhập nội dung nào notify-sendđó?


Tôi đã tìm kiếm một cách để làm điều này một lần để gỡ lỗi một kịch bản, nhưng không bao giờ tìm ra cách. Tôi nghi ngờ điều đó là không thể. Nếu bạn định tạo một tệp chứa trạng thái hiện tại, có thể dễ dàng hơn (và không an toàn hơn) pkill xautolockpgrep xautolockkiểm tra xem nó có chạy hay không.
Sparhawk

Một giải pháp tiềm năng khác là sử dụng caffeine, nhưng thật không may, nó không hỗ trợ xautolock.
Sparhawk

@Sparhawk Có, tôi vẫn sử dụng caffeine trên máy tính để bàn đang chạy quế và xscreenaver.
MadTux

Câu trả lời:


2

Bạn có thể sử dụng chức năng được tích hợp trong hầu hết các trình phát phương tiện để quản lý việc này; nó hoạt động hoàn hảo với xautolockvà đó là tủ khóa.

mpvmplayer đều có tùy chọn bảo vệ màn hình:

--stop-Screensaver, --no-stop-Screensaver Tắt trình bảo vệ màn hình (hoặc trống màn hình và các cơ chế tương tự) khi khởi động và tắt nó bật lại khi thoát (mặc định: có). Trình bảo vệ màn hình luôn được bật lại khi trình phát bị tạm dừng. Điều này không được hỗ trợ trên tất cả các đầu ra video hoặc nền tảng. Đôi khi nó được thực hiện, nhưng không hoạt động (xảy ra thường xuyên trên Gnome). Bạn có thể làm việc này bằng cách sử dụng - lovbeat-cmd thay thế.

Bạn có thể kích hoạt tính năng này bằng cách bao gồm dòng trong ~/.mpv/config:

stop-screensaver=yes

và thưởng thức phát lại liên tục các video của bạn.

Nếu bạn đang sử dụng trình phát đa phương tiện không có chức năng cơ bản này, bạn có thể sử dụng trình bao bọc đơn giản để đạt được hiệu quả tương tự:

#!/usr/bin/env bash
# wrapper to prevent screen blanking when files are played from ~/Videos

usage() {
    printf "%s\n" "Usage: ${0##*/} /path/to/file"
    exit 1
}

case $# in
    1)  if [[ $1 =~ Videos ]]; then
            xset dpms 0 0 0
            xautolock -disable
            vlc "$1"
            xautolock -enable
            xset dpms 900 900 900
        else
            usage
        fi
        ;;
    *) usage
        ;;
esac

Tôi đã nghĩ đến việc làm điều đó và quyết định lập một danh sách các ứng dụng "chặn" cho slock thay thế. Nhưng cảm ơn. Đặc biệt là cho tùy chọn mplayer. Tôi giả sử gnome-mplayer cũng hỗ trợ nó?
MadTux

@MadTux Tôi sẽ tưởng tượng như vậy: kiểm tra hướng dẫn để xác nhận, tôi không chắc gnome-mplayer khác với chính mplayer như thế nào.
jasonwryan

Không thể tìm thấy nó trong trang người đàn ông và việc dùng thử đã cho tôi một lỗi: / Điều đó thật kỳ quặc. Ah tốt, câu trả lời của bạn (và giải pháp của tôi) giải quyết nó anyway.
MadTux

4

Kiểm tra nhanh mã nguồn của phiên bản hiện tại xautolock 2.2, cho thấy rằng nó không hỗ trợ tính năng này, mặc dù sẽ không quá khó để tự thực hiện nếu bạn biết một chút về Ccách viết Xchương trình.

Lý do có lẽ là thế này: bất cứ khi nào bạn muốn biết trạng thái của nó xautolock, bạn cũng biết bạn muốn trạng thái nào. Vì vậy, chỉ cần đưa ra vấn đề xautolock -disablenếu bạn muốn tắt nó, và xautolock -enabletrong trường hợp ngược lại. Lưu ý rằng tất cả các xautolockcài đặt khác của bạn sẽ không bị ảnh hưởng khi thực hiện việc này.

Theo dõi tình trạng bản thân theo cách bạn đề xuất cũng có thể, nhưng có lẽ hơi không đáng tin cậy và dễ bị lỗi.


1
Tôi chỉ tạo một kịch bản với pgrep mplayer || slockvà bảo` xautolock sử dụng nó. Có lẽ tôi sẽ ràng buộc các phím tắt riêng biệt để -disable và -enable ...
MadTux

đó là một yêu cầu rất cơ bản và thực sự không có lý do gì để không đưa nó vào xautolock...
Yan King Yin

1

Tôi đã xoay sở để làm đúng những gì OP yêu cầu và tất cả đều có trong cấu hình i3 của tôi, bị ràng buộc với một phím tắt (xem bên dưới). Vì vậy, tôi khóa màn hình của mình bằng Mod + o và tôi chuyển đổi khóa màn hình tự động bằng Mod + Shift + o khi thông báo xuất hiện cho tôi biết "LOCK on" hoặc "LOCK OFF", tùy thuộc vào "trạng thái" của xautolock. Tôi đã sử dụng xautlock -exitđể tìm hiểu xem nó có chạy hay không mà không phải quản lý trạng thái trong một tệp bổ sung.

Kịch bản xử lý trạng thái bật tắt chỉ trông giống như thế này

if xautolock -exit
    then (notify-send -u normal -t 100 -- 'LOCK OFF') 2> /dev/null
    else
        notify-send -u normal -t 100 -- 'LOCK on'
        xautolock -time 2 -locker 'slock' -notify 10 -notifier "notify-send -u normal -t 100 -- 'LOCKING screen ...'"
fi

Tùy thuộc vào nơi bạn gọi tập lệnh đó, bạn phải đảm bảo xautolock -time ...chạy trong nền (ví dụ: bằng cách thêm &).

Từ .i3/configtập tin của tôi :

exec --no-startup-id xautolock -time 2 -locker 'slock' -notify 10 -notifier "notify-send -u normal -t 10000 -- 'LOCKING screen'"

bindsym $mod+o exec --no-startup-id xautolock -locknow
bindsym $mod+Shift+o exec --no-startup-id "if xautolock -exit; then (notify-send -u normal -t 100 -- 'LOCK OFF') 2> /dev/null; else notify-send -u normal -t 100 -- 'LOCK on'; xautolock -time 2 -locker 'slock' -notify 10 -notifier \\"notify-send -u normal -t 100 -- 'LOCKING screen ...'\\"; fi"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.