Power-Management

關閉筆記型電腦蓋時關閉 Xfce 電源管理器中的顯示和鎖定螢幕?

  • March 11, 2016

我有一台戴爾 XPS 13(2015 型號),我正在使用帶有 Xmonad 的 Ubuntu 15.10。我已經xfce4-power-manager執行並gnome-screensaver用於鎖定螢幕。在 xfce4-power-manager 的設置對話框中,有一個設置“當筆記型電腦蓋子關閉時”,它有三個選項(分別用於電池和插入時):關閉顯示、掛起和鎖定螢幕。

如果我選擇“關閉顯示”,關閉蓋子時螢幕不會被鎖定。我想在合上蓋子時鎖定螢幕。但是,當我選擇“鎖定螢幕”時,顯示似乎沒有關閉。為了節省電池,我也想關閉顯示器。什麼是獲得兩者的好方法(簡單和/或有些規範)?

使用 gnome-screensaver 和 XFCE 消隱後鎖定螢幕的問題可能與此有關,但沒有答案。

我認為在 XFCE 電源管理器中不可能做到這一點。但是,您可以編寫一個腳本來鎖定螢幕並將其關閉,並使其在您合上蓋子後立即啟動,從而覆蓋電源管理器的設置。

Ubuntu 官方幫助頁面中報告瞭如何啟動自定義腳本。我將按順序寫文章,以了解每個步驟的原因閱讀原帖。也許這不是最簡單的過程(無論如何它很容易,因為您只需輸入一系列指定的命令並用精確的內容填充文件),但我認為這是唯一的方法。此外,無論是小寫字母還是大寫字母 C,都非正常範,因為解決方案在 Ubuntu 的官方幫助中。

首先,創建一個腳本以使環境變數可用於 root,以便它可以在您的普通使用者環境中啟動命令。(我mousepad輸入了命令,因為它是 XFCE 的預設文本編輯器。將其替換為GEdit, SciTE, Emacs,或您使用nanovim任何編輯器)

$ mousepad ~/export_x_info

有以下內容

在啟動時導出 dbus 會話地址,以便任何其他環境都可以使用它

sleep 5

touch $ HOME/.Xdbus chmod 600 $ HOME/.Xdbus 環境

| grep DBUS_SESSION_BUS_ADDRESS > $ HOME/.Xdbus echo ’export DBUS_SESSION_BUS_ADDRESS’ >> $ 首頁/.Xdbus

在啟動時導出 XAUTHORITY 值,以便 cron

env 使用它 | grep XAUTHORITY >> $ HOME/.Xdbus echo ’export XAUTHORITY’ >> $ 首頁/.Xdbus

並使其可執行

$ chmod 700 ~/export_x_info

將其添加到SettingsSession and StartupApplication autostart以將其設置為在啟動時執行。

創造/etc/acpi/events/lm_lid

# mousepad /etc/acpi/events/lm_lid

有了這個內容

事件=按鈕/蓋子。*

動作=/etc/acpi/lid.sh

這將/etc/api/lid.sh在蓋子按鈕被觸發時執行。讓我們創建它

# mousepad /etc/api/lid.sh

#!/bin/bash

/home/%user/lid_event

(顯然替換%user為您的使用者名)

這意味著腳本將執行/home/%user/lid_event。讓我們也創造它

$ mousepad ~/lid_event

grep -q 關閉 /proc/acpi/button/lid/LID/state

if

$$ $? = 0 $$

然後

    /home/%user/close;

否則

    /home/%user/open;

~/open如果蓋子打開和關閉,這將執行~/close。同樣,讓我們創建它們:

$ mousepad ~/close

由於您需要關閉螢幕xset dpms force off並鎖定它xflock4,因此將在裡面寫下close

#這樣執行讓root可以在使用者環境

源/home/%user/.Xdbus下執行以下命令 #

鎖定並關閉螢幕

DISPLAY=:0.0 su %user -c “xflock4 && xset dpms force off”

內部打開,如 Ubuntu 的幫助所建議的,你可以播放你選擇的聲音(我用 Barney Gumble 的打嗝做了一個測試)

#這樣執行讓root可以在使用者的環境下執行以下命令

source /home/%user/.Xdbus

#play a open sound

DISPLAY=:0.0 su %user -c “aplay %path/to/a/sound/of /你的選擇”

讓我們讓它們都可執行

$ chmod +x ~/lid_event
$ chmod +x ~/open
$ chmod +x ~/close

重啟 acpid

# /etc/init.d/acpid restart

啟動~/export_x_info(或重新啟動您的筆記型電腦,使其在啟動時自動啟動)並關閉/打開蓋子以查看它是否有效。

注意:在我的筆記型電腦中,鎖定螢幕也會將其關閉,因此我無法 100% 測試雙重動作,但它可以鎖定它。此外,作為範例,幫助頁面提供了一個操作,當您關閉蓋子時將 Pidgin 的狀態更改為離開,當您打開它時更改為“我在這裡”,非常有用。

TL;DR(如果這個問題應該發生在一個懶惰的人或新手身上):在灰色背景中輸入命令(#意味著您需要提升的 root 權限,或者只需sudo在命令之前鍵入,而$意味著您應該按照正常輸入命令使用者)。當命令呼叫文本編輯器(即mousepad)時,將黃色背景中的部分複制並粘貼到編輯器中,然後保存並關閉。

引用自:https://unix.stackexchange.com/questions/260737