起動時にキーボードバックライトが常に点灯していることを確認するにはどうすればよいですか(最大)。

起動時にキーボードバックライトが常に点灯していることを確認するにはどうすればよいですか(最大)。

質問

起動時にDellノートブックのキーボードバックライトが点灯する(最大)確認する方法は?

基本的な

時には、昼間にキーボードのバックライトを消すために思わずキーの組み合わせを押して寝て覚醒したとき、通常夜中に点灯して妻を目覚めたくありません。だから私はコンピュータを起動するたびにバックライトの可能な最大値を読み取って設定する方法の解決策を探しています。私はいつも夜に電源を切って、このソリューションでスリープモードや休止状態を考慮する必要がなくなりました。

研究

キーボードバックライトの最大値は次の場所に保存されます。

/sys/class/leds/dell\:\:kbd_backlight/max_brightness

現在の設定の実際の値は次の場所に保存されます。

/sys/class/leds/dell\:\:kbd_backlight/brightness

答え1

最大値が一定であっても理由と方法は不明ですが、最後のブートでは最大値が3でした。これで2つができました。私は恥ずかしさと同時に混乱した。

BIOS設定同じ理由を探したくないので、ブート時に最大値を読んで設定してみましょう。日中に誤ってバックライトを消しても構いません。

私は簡単な方法を見つけました。

sudo crontab -e

そして、1つのコマンドで最大値を読み取って設定します。

@reboot /bin/cat /sys/class/leds/dell\:\:kbd_backlight/max_brightness > /sys/class/leds/dell\:\:kbd_backlight/brightness

答え2

より柔軟な操作(構成可能など)を行いました。実行レベルが0(システムが一時停止/電源オフモードに切り替わる)または6(システムが再起動/再起動モードに切り替えられる)以外の場合、起動時に自動的に起動されるinitスクリプトを作成しました。

起動すると、スクリプトは現地時間17:00:00が間にあることを確認します07:59:59。その場合はキーボードのバックライトをオンにし、その場合はキーボードのバックライトをオンにします。それ以外の場合、バックライトは消灯します。

これらのスクリプトを生成するために必要な手順は次のとおりです。


ステップ1 - 初期化スクリプトを作成する

シェルターミナルエミュレーションウィンドウを開き(たとえば、を押してCtrlAltT)、グラフィックテキストエディタ(GeditやMousepadなど)を使用してinitスクリプトを作成します。私はGeditを使用しているので、端末で実行するコマンドは次のようになります。

sudo gedit /etc/init.d/keyboard-backlight-brightness

下のソースコードをコピーしてテキストエディタウィンドウに貼り付けます。

#!/bin/bash

### BEGIN INIT INFO
# Provides:          keyboard-backlight-brightness
# Required-Start:
# Required-Stop:
# Default-Start:     1 2 3 4 5
# Default-Stop:      0 6
# Short-Description: Sets keyboard backlight brightness at boot time
# Description:       Script that sets the keyboard's LED (backlight) brightness at boot time
### END INIT INFO

case "$1" in
    start)
       # If the current runlevel is one of those in 'Default-Start', then
       # sets keyboard backlight to 24 (from a set of 0, 12, 24, 36,..., 255) if local time
       # is between 17:00:00 and 07:59:59, otherwise set it to 0 (e.g. 'off').
       if [[ `date +%-H` > 16 || `date +%-H` < 8 ]]
       then
            echo -n "Setting keyboard backlight brightness to 24..."
            echo 24 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
       else
            echo -n "Setting keyboard backlight brightness to 0..."
            echo 0 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
       fi
    ;;

    stop)
       # If the current runlevel is one of those in 'Default-Stop', then
       # sets keyboard backlight to 0 (i.e. 'off').
       echo -n "Setting keyboard backlight brightness to 0..."
       echo 0 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
    ;;

    reload|restart)
       $0 stop
       $0 start
    ;;

    *)
       echo "Usage: keyboard-backlight-brightness start|stop|restart|reload"
       exit 1
esac

exit 0

私のコンピュータ(2009年半ば13インチApple Macbook Pro)の場合、キーボードbrightnessファイルはにありますが、/sys/class/leds/smc\:\:kbd_backlight/brightnessこの回答のコードを変更してすべての/sys/class/leds/dell\:\:kbd_backlight/brightnessファイルを表示するようにしました。

明るさの強度レベルを との間で希望の値24に変更することができ、他のローカル時間範囲を設定することもできます。たとえば、18:00:00~05:59:59の間にバックライトをオンにするには、次のコードを使用します。1255

if [[ `date +%-H` > 17 || `date +%-H` < 6 ]]

昼(または夜)の時間に関係なく、キーボードのバックライトを最大電力に保つには、次のコードを使用できます。

#!/bin/bash

### BEGIN INIT INFO
# Provides:          keyboard-backlight-brightness
# Required-Start:
# Required-Stop:
# Default-Start:     1 2 3 4 5
# Default-Stop:      0 6
# Short-Description: Sets keyboard backlight brightness at boot time
# Description:       Script that sets the keyboard's LED (backlight) brightness at boot time
### END INIT INFO

case "$1" in
    start)
       # If the current runlevel is one of those in 'Default-Start', then
       # sets keyboard backlight to 255 (from a set of 0, 12, 24, 36,..., 255).
       echo -n "Setting keyboard backlight brightness to 255..."
       echo 255 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
    ;;

    stop)
       # If the current runlevel is one of those in 'Default-Stop', then
       # sets keyboard backlight to 0 (i.e. 'off').
       echo -n "Setting keyboard backlight brightness to 0..."
       echo 0 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
    ;;

    reload|restart)
       $0 stop
       $0 start
    ;;

    *)
       echo "Usage: keyboard-backlight-brightness start|stop|restart|reload"
       exit 1
esac

exit 0

コードで必要に応じて調整し、ファイルを保存してテキストエディタを終了します。

ステップ2 - 初期化スクリプトの権限を構成する

以下を実行します。

sudo chmod 755 /etc/init.d/keyboard-backlight-brightness

...そしてinitスクリプトは、rwxrootへのアクセス(読み取り、書き込み、実行)とrx他のすべての人へのアクセス(読み取りと実行)を許可します。

ステップ3 - 適切なSystem Vランレベルの初期化スクリプトへのリンクを作成する

以下を実行します。

sudo update-rc.d keyboard-backlight-brightness defaults

...そしてinitスクリプトは、起動時に実行する必要がある対応するランレベルにリンクされます。

ステップ4 - 初期化スクリプトの開始

速く走る:

sudo service keyboard-backlight-brightness start

...サービスが始まります。


コードでローカル時間範囲オプションを保持することを決定した場合、スクリプトの起動時にローカル時間がスクリプトで指定された範囲内にある場合はキーボードバックライトがオンになり、そうでない場合はバックライトがオンになります。オフ。

起動時にスクリプトが実際に起動して動作していることを確認するには、システムを再起動する必要があります。

sudo telinit 6

または

sudo shutdown -r now

または

sudo reboot

または

sudo init 6

初期化スクリプトが正しく機能しないか、まったく機能しない場合

Linuxディストリビューションをアップグレードした後にこれが発生しました。この場合、以下が必要ですinitsystemd

  1. 初期化スクリプトを停止します。

    sudo service keyboard-backlight-brightness stop
    
  2. その後、initシステムからスクリプトを削除します。

    sudo update-rc.d -f keyboard-backlight-brightness remove
    
  3. その後、初期化スクリプトファイルを削除します。

    sudo rm -f /etc/init.d/keyboard-backlight-brightness
    

上記のステップ3を完了したら、システム化されたスクリプトとサービスを作成しましょう。


ステップ1 - カスタムネストされたSHスクリプトを作成する

端末で次のコマンドを実行します。

sudo gedit /usr/bin/keyboard-backlight-brightness.sh

...その後、次のコードを新しいファイルに貼り付けます。いいえ強く打つスクリプトを使用する代わりに〜しなければならない一つシェンスクリプト):

#!/bin/sh
# Sets keyboard backlight brightness to 24 (from a set of
# 0, 12, 24, 36,..., 255) if local time is between
# 17:00:00 and 07:59:59, otherwise sets it to 0 (e.g. 'off').

if [ $(date +%-H) -gt 16 -o $(date +%-H) -lt 8 ]
then
    echo -n "Setting keyboard backlight brightness to 24..."
    echo 24 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
else
    echo -n "Setting keyboard backlight brightness to 0..."
    echo 0 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
fi

exit 0

または、絶えず最大パワーキーボードバックライトを使用するには、次のコードを代わりに使用してください。

#!/bin/sh
# Sets keyboard backlight brightness to 255 (i.e. 100%).

echo -n "Setting keyboard backlight brightness to 255..."
echo 255 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness

exit 0

コードを貼り付けたらファイルを保存し、テキストエディタを終了してファイルの権限を変更します。

sudo chmod 755 /usr/bin/keyboard-backlight-brightness.sh

今あなたはシェンscript 、最初に生成する必要がある systemd サービススクリプトkeyboard-backlight-brightness.sh内にこれをネストする順番です。/usr/bin

ステップ2 - システムスクリプトを生成し、その中にSHスクリプトを入れ子にします。

端末で次のコマンドを実行します。

sudo gedit /etc/systemd/system/keyboard-backlight-brightness.service

...次のコードを新しいファイルに貼り付けます。

[Unit]
Description=Sets keyboard backlight brightness at boot time

[Service]
ExecStart=/usr/bin/keyboard-backlight-brightness.sh

[Install]
WantedBy=multi-user.target graphical.target rescue.target

keyboard-backlight-brightness.shスクリプトは引数を介してネストされますExecStart。また、オプションを使用すると、システムが再WantedBy起動されたりコンピュータがシャットダウンされたりしない限り、systemdスクリプトは常に実行されます。)

コードを貼り付けたらファイルを保存し、テキストエディタを終了してファイルの権限を変更します。

sudo chmod 755 /etc/systemd/system/keyboard-backlight-brightness.service

ステップ3 - システム構成を再ロードし、新しいシステムサービススクリプトを有効にします。

端末で次のコマンドを実行して、新しいsystemdサービススクリプトをsystemd環境にマージします。

sudo systemctl daemon-reload

keyboard-backlight-brightness.service...その後、起動時に新しいサービスをロードするには、次のコマンドを実行します。

sudo systemctl enable keyboard-backlight-brightness.service

ステップ4 - システムサービススクリプトの起動

速く走る:

sudo systemctl start keyboard-backlight-brightness.service

...サービスが始まります。


コードがローカル時間範囲オプションを保持することを決定した場合、systemdサービススクリプトを起動すると、ローカル時間がスクリプトで指定された範囲内にある場合はキーボードのバックライトが点灯し、そうでない場合はそのバックライトが点灯します。オフ。

起動時にスクリプトが実際に起動して動作していることを確認するには、システムを再起動する必要があります。

sudo telinit 6

または

sudo shutdown -r now

または

sudo reboot

または

sudo init 6

関連情報