ホットキーでモニターの電源を切ります



ホットキーを使用して通常の方法でモニターをオフにする機能が、Ubuntuの以前のバージョンの1つで壊れたのは残念です。 シンプルでかわいいスクリプトは、いくつかの簡単なジェスチャーでこの機能を(おそらくラップトップの所有者に)返すことができます。

おそらく多くの人が知っているように、モニターをオフにする古い方法はxsetコマンドを使用することです。

xset dpms force off

一般に、このトピックにはいくつかのバリエーションがありますが、少なくともUbuntu Karmic(9.10)から開始すると、この機能は壊れています。 一部のシステムコールは、このコマンドではうまく機能していないようで、約1分後に画面が起動します。 もちろん、これはしばらくの間不便を引き起こしましたが、使用する価値のある方法を自分で見つけました。 ubuntuforumsでは、このコマンドをループで使用することが提案されましたが、もちろん、プロセッサの使用率の増加などの方法はそれほど洗練されていませんでした。 しかし、ユーザーnxmehtaのおかげで、解決策が見つかりました。つまり、Pythonを使用して目標を達成することです。 書かれたスクリプトは、少なくともNattyのKarmicからのリリースで動作します。

最初に、python自体に加えてpython-xlibパッケージをインストールする必要があります。 これを行うには、ターミナルでコマンドを実行するだけです:

sudo apt-get install python python-xlib

次に行うことは、テキストエディター(geditなど)を開き、次のコードをコピーして貼り付けることです。

  1. #!/ usr / bin / python
  2. 輸入時間
  3. サブプロセスのインポート
  4. XlibからインポートX
  5. Xlib.display import Displayから
  6. ディスプレイ=ディスプレイ( ':0'
  7. root = display.screen()。root
  8. root.grab_pointer(True、
  9. X.ButtonPressMask | X.ButtonReleaseMask | X.PointerMotionMask、
  10. X.GrabModeAsync、X.GrabModeAsync、0、0、X.CurrentTime)
  11. root.grab_keyboard(True、
  12. X.GrabModeAsync、X.GrabModeAsync、X.CurrentTime)
  13. subprocess.call( 'xset dpms force off' .split())
  14. p = subprocess.Popen( 'gnome-screensaver-command -i' .split())
  15. time.sleep(1)
  16. Trueの場合:
  17. print display.next_event()を印刷します
  18. p.terminate()
  19. 破る
*このソースコードは、 ソースコードハイライターで強調表示されました。


彼がしていること-そのシンプルさのために、やめる価値はないと思います。


ファイルを希望の名前でどこかに保存します。 ホームフォルダーに格納されているbinフォルダーを使用する実行可能スクリプトの習慣を開発しました。 ところで、このフォルダ内のスクリプトは、絶対パスを示すことなく「表示」されます。 〜/ .profileファイルの簡単な行に感謝します。
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

そのため、ファイル〜/ bin / screen_off.pyは、他のスクリプトの近くに配置されました。

次のステップは、実行可能にすることです。 この高速なchmod + x〜/ bin / screen_off.pyを実行できますが、コンソールの使用方法がまだわからない場合(無駄になっています)、シェルのグラフィカル部分を使用できます。
ファイルをクリックして、[プロパティ]を選択します。

[アクセス許可]タブで、[ファイルをプログラムとして実行することを許可する]ボックスをオンにします。

これで、このスクリプトにキーボードショートカットを割り当てることができます。 Caps Lockを選択しましたが、別のキーの使用を好む曲がった指がある場合は問題ありません。 私の場合、まずこのキーの使用を無効にする必要があります。 これは、[キーボード]> [レイアウト]> [レイアウトオプション]メニュー([キーボード]> [レイアウト]> [オプション])で実行できます。

ここで、「Caps Lock動作」キー(Caps Lock動作)を見つけて選択することでオフにし、対応するボックスのチェックを外します。

ただし、これはすべて、たとえば次のように、gconftool-2を介してグラフィカルシェルに頼らずに簡単に実行できます。
$ # Caps Lock
$ xmodmap -e "remove lock = Caps_Lock"
$ # :
$ gconftool-2 -a /desktop/gnome/keybindings/custom0
binding = VoidSymbol
action = /home/your_username/bin/screen_off.py
name = Screen_Off


最後に、スクリプトをキーに割り当てるには、キーボードショートカットダイアログを開きます。

[追加]をクリックし、任意の名前にキーボードショートカットを指定すると、コマンドは作成されたファイルへのパスになります。 [適用]をクリックし、[キーボードショートカット]フィールドをクリックして、目的のショートカットキーを押します。 Caps Lockを無効にすると、「VoidSymbol」というテキストが表示されます。

それだけです! ここをクリックしてください! この方法がラップトップのバッテリーを少し節約するのに役立つことを願っています。

Source: https://habr.com/ru/post/J118625/


All Articles