スクリーンセーバー等の設定の保存

リリースされた日本語版に関するもの

モデレータ: 暇人, YoN, nyu

返信する
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

スクリーンセーバー等の設定の保存

投稿記事 by jake »

メニュー=>デスクトップ=>Xのプロパティ設定でスクリーンセーバーの設定をするのですが、再起動時には初期値に戻ってしまいます。そこで、

コード: 全て選択

#!/bin/bash

/tmp/pupx_screen.sh s 30 600 s blank s expose quiet
というようなスクリプト(この例では30秒で消灯します)を書いて、デスクトップにアイコンを作り、起動のたびにクリックして設定しています。
起動時に自動で設定できればよいのですが、/etc/rc.d/rc.localとか/root/.xinitrcに上記のようなコマンドを書いてもまったく反映されません。何かよい方法は無いでしょうか?
最後に編集したユーザー jake [ 08/09/01(月) 21:19 ], 累計 1 回
アバター
サボり魔
記事: 294
登録日時: 07/12/06(木) 12:28
お住まい: 関東

投稿記事 by サボり魔 »

すいません、現在Windowsで閲覧してるので確認はできませんが・・・。

デスクトップでクリックしてるのは当該ファイルのリンク、起動時に実行したいということでしょうか?
/root にあるスタートアップ用フォルダに放り込むってのはどうでしょう?
自分は温度計やCPU使用率を表示するソフトをそうやって自動起動してます。シェルスクリプトに有効かはわかりませんけど。

見当違いでしたらごめんなさい。
サボり魔
Precise-550JP & Precise-571JP & Tahr-Puppy
frugal install (USB)
8GB ASUS H97I-PLUS Core-i5 4690S
8GB ASRock Z68M-ITX/HT Core-i7 2600k with Win7
16GB ASROCK H170M-ITX/ac Core-i5 6600
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

サボり魔さん、ありがとうございます。アドバイスにしたがったら起動時にスクリーンセーバーの設定が自動でできていました。もう少し詳細に書きます。

(1) pupxを起動して/tmp/pupx_screen.shをロードする。
(2) /tmp内のファイルはシャットダウン時に保存されないので、pupx_screen.shのコピーを例えば、/usr/sbinに作る。
(3) /etc/rc.d/rc/localに

コード: 全て選択

cp -f /usr/sbin/pupx_screen.sh /tmp/pupx_screen.sh
という行を追加する。(=>起動時に、/tmp/pupx_screen.shが作成される)
(4)

コード: 全て選択

#!/bin/bash 

/tmp/pupx_screen.sh s 30 600 s blank s expose quiet
と書いたファイルを/root/Startupに置く。
(5) 再起動する。
以上です。
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

Re: スクリーンセーバー等の設定の保存

投稿記事 by jake »

jake さんが書きました:/etc/rc.d/rc.localとか/root/.xinitrcに上記のようなコマンドを書いてもまったく反映されません。
その後、/root/.xinitrcは書く場所を変更したら起動時にスクリーンセーバーの設定が有効となりました。これまでは最後の方に追加していたのですが、
http://blogs.yahoo.co.jp/h2mon3/52345633.html
にもあるように、それではダメなようです。
/etc/rc.d/rc.localはダメなようです。
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

/usr/sbin/pupxの最後に以下の行を追加することで、"Xのプロパティ設定"(マウス、キーボード、スクリーンセーバー)を再起動時にも反映させることができました。

コード: 全て選択

echo '#!/bin/sh' > /root/Startup/pupx2
echo -n "xset " >> /root/Startup/pupx2
cat /tmp/pupx_finalparams >> /root/Startup/pupx2
chmod 777 /root/Startup/pupx2
この追加によって、"Xのプロパティ設定"の「設定を反映、保存して終了」をクリックすると、/root/Startupに設定パラメータが書き込まれたpupx2というファイルが作成され、次回起動時に実行されます。
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

上記の方法を見つける途中で気になったのですが、/usr/sbin/pupxの最後の方(325行目以降)に、

コード: 全て選択

echo -n "xset " > /root/.xset.sh
cat /tmp/pupx_finalparams >> /root/.xset.sh
chmod 644 /root/.xset.sh
#...this is evaluated at bootup by /root/.xinitrc
という行がありますが、この部分の意味がいまいちよくわかりません。これは、/root/.xset.shというファイルをつくるためのものですが、.xset.shの果たしている意味がわからないのです。.shとなっていますが、実行ファイルではありません。あれこれ考えた結果、これは書き間違い*ではないだろうか、という結論に達しました。本来は、

コード: 全て選択

echo '#!/bin/sh' > /root/.xset.sh
echo -n "xset " >> /root/.xset.sh
cat /tmp/pupx_finalparams >> /root/.xset.sh
chmod 744 /root/.xset.sh
#...this is evaluated at bootup by /root/.xinitrc
となるべきではないのか、というのが結論です。pupxをこのように書き直し、かつ、/root/initrcの117行目を

コード: 全て選択

# xset s 600 600 s blank
として、再起動すると、果たして、前回終了時の
"Xのプロパティ設定"が再現されました。

*本家のisoでも同じですので、日本語化の際のミスではありません。
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

その後の検証で以下のことがわかりました。
(1) .initrcはデフォルトでOK(手を加えなくてもよい)
(2) echo '#!/bin/sh' > /root/.xset.sh の行は不要

つまり、/usr/sbin/pupxの
chmod 644 /root/.xset.sh

chmod 744 /root/.xset.sh
とするだけでOK。どうも、744とすべきところが644となってしまったようです。

なお、puppy 403以降では、chmod +x として修正されています。これでもOK
返信する