ラベル 設定ファイルの編集 の投稿を表示しています。 すべての投稿を表示
ラベル 設定ファイルの編集 の投稿を表示しています。 すべての投稿を表示

☆Karmicのusplashをカスタマイズ

Karmicでは高速化のためにusplashのプログレスバーが無効になっています。
(ソースに "/* disable progress bar in Ubuntu 9.10 due to faster boot */" と書いてあります。)
このために起動の進捗具合が分かりにくくなっています。起動にかかる時間を短縮することも重要ですが、プログレスバーが表示された方が良いと思っている方も多いのではないでしょうか。

プログレスバーを出すだけならばusplash-theme-ubuntu-colorパッケージを導入すればjauntyと同じ状態になります。
しかし、私はKarmicのモノトーンが好きなのでusplash-theme-ubuntu-colorでは満足出来ません。そこでusplash-theme-ubuntuのソースパッケージを取得してプログレスバーを有効にします。
ついでにgrubの設定を少しいじってusplashの下側に実行しているプロセスを表示するようにします。

百聞は一件に如かず。まずはスクリーンショット

usplash表示前
変更前はこのとき画面が真っ黒
usplash表示初期
インジケーターが行ったり来たり
usplash表示後期
プログレスバーが伸びて行く

ちなみにGDMを使っている場合はこのあとxsplashが少しのあいだ表示され、GDMのログイン画面が表示されます。
SLiMならxsplashなしですぐにログイン画面です。速さを求めるならSLiMよいですよ。

●grubの設定

まずは簡単な方から。/etc/defalt/grubを編集します。 変更対象のエントリは"GRUB_CMDLINE_LINUX_DEFAULT"。"quiet"を取り除きます。 変更前

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
変更後
GRUB_CMDLINE_LINUX_DEFAULT="splash"

その後、/boot/grub/grub.cfgを作り直します。

sudo update-grub

●usplashのソース改変

例によって、作ったパッケージをUpしました。
作業過程に興味のない方や開発用のパッケージを入れたくない方はこちらをどうぞ。
https://sites.google.com/site/midspeclowload/files/usplash-theme-ubuntu-mono_0.27_i386.deb?attredirects=0&d=1

一通り自分で作業される場合は、Ubuntu Weekly Recipe 第16回を参照して必要なパッケージを導入します。
作業用のディレクトリでusplash-theme-ubuntu のソースを取得。

sudo apt-get source usplash-theme-ubuntu
usplash-theme-ubuntu-0.27の下にあるusplash-theme-ubuntu.cをusplash-theme-ubuntu-mono.c にリネームします。
Makefile, debian/rules, debian/changelog, debian/control, debian/postinstに含まれている文字列”usplash-theme-ubuntu”をすべて”usplash-theme-ubuntu-mono”に置き換えます。

usplash-theme-ubuntu-mono.cをエディタで開いて"#if 0"を検索します。ここから"#endif"までがプログレスバーの処理をする関数のようです。そのさらに下に中身がからっぽの関数が定義してあります。
空っぽの方を"#if 0"、"#endif"で挟んで無効化し、ちゃんと中身のある方を有効にします。

このままではロゴとプログレスバーが重なってしまうので、ロゴのY座標を調整します。usplash-theme-ubuntu-colorのソースを取得して、Y座標だけusplash-theme-ubuntu-color.cと同じにします。

改変したソースは
https://sites.google.com/site/midspeclowload/files/usplash-theme-ubuntu-mono_0.27_i386.deb?attredirects=0&d=1
にあるのでオリジナルと比べて見てください。

パッケージをビルドします。

debuild -r fakeroot
一つ上のディレクトリにパッケージが作成されます。

●usplashの導入、設定

作成したパッケージを導入します。

sudo dpkg -i usplash-theme-ubuntu-mono_0.27_i386.deb

これでupdate-initramfsが走っているのですが、なぜかこれだけでは新しいusplashに変わってくれません。
update-alternativesに指定している優先度の問題かもしれませんが、ここはツールに頼ります。startupmanagerを導入します。

2010/02/28 この件に関するフォローを投稿しました。☆Startup- Managerに頼らないUsplashの変更

sudo apt-get install startupmanager
gksudo startupmanager &
設定画面の[外観]タブのリストボックスから導入したusplashを選択します。[閉じる]を押すとupdate-initramfsが起動されます。

ちなみにstartupmanagerの[起動オプション]タブにある[その他]以下の2項目は"GRUB_CMDLINE_LINUX_DEFAULT"ではなく"GRUB_CMDLINE_LINUX"を変更するようです。
"GRUB_CMDLINE_LINUX"はrecovery modeのオプションを設定する項目みたいです。
こちらをいじっても通常の起動には影響しません。

☆Ubuntu Karmic で多ボタンマウス

"Ubuntu"と"多ボタンマウス"で検索すると大抵xorg.confを編集する方法が上位に出てきます。
ならばと思い"fdi"を足すとThink Padのタッチパッドようの設定が上位に出てきます。
やっとの思いで見つけたのが
『Ubuntu Weekly Recipe 第13回 ポインティングデバイスのカスタマイズ(2):マウスボタンの設定』
2ページ目の最後のほうに自分のやりたいことが実現できる方法が載ってました。 2008年4月9日の記事ですが、Karmicでも有効でした。

著者の吉田史さんに感謝。

実現したかったことは使用しているマウスのサイドボタンにPageUp、PageDownキーを押した場合と 同じ動作を割り当てることです。 手順は上記の記事とほぼそのまま。記事中で「ボタンへのキー割付の変更 」という見出し以降の手順を行えばOKです。(xorg.confの編集は当然必要なし)

[xvkbd,xbindkeyslの導入]
$ sudo apt-get update
$ sudo apt-get install xvkbd xbindkeys

ちなみに私の環境でサイドボタンにPageUp、PageDownを割り当てる場合、$HOME/.xbindkeysrc の内容は下記のようになります。
(マウスによってb:8とb:9が逆の場合がありました。参照記事にあるとおり必ずxevを用いて,ボタンの割り当てを確認しましょう。)

"/usr/bin/xvkbd -xsendevent -text "\[Page_Up]""
  b:9
"/usr/bin/xvkbd -xsendevent -text "\[Page_Down]""
  b:8

参照記事の最後のxbindkeysを自動起動するように設定する箇所は、端末で

gnome-session-properties &
とコマンドをたたいて設定画面を起動しました。
(このほうが使用しているディスクトップ環境に操作が依存しないです。ちなみに私はxfceです。)
$HOME/.config/autostart ディレクトリにxbindkeys.desktopというファイルができます。
内容は下記のとおりです。
[Desktop Entry]
Type=Application
Exec=xbindkeys
Hidden=false
X-GNOME-Autostart-enabled=true
Name[ja_JP]=xbindkeys
Name=xbindkeys
Comment[ja_JP]=xbindkeys
Comment=xbindkeys

☆これはお勧め gmrun

gmrunは http://directory.fsf.org/project/gmrun/ の冒頭で

'Gmrun' is a run-program utility that provides bash-like TAB completion and history, the ability to run commands in a terminal using CTRL-Enter. CTRL-R/CTRL-S may be used for history searches, similar to 'bash'.
'Gmrun'はプログラムを実行するユーティリティで、bashのようなTAB補完と履歴を提供し、CTRL-Enterを使ってターミナルでコマンドを実行できます。CTRL-R/CTRL-Sは'bash'と同じで履歴の検索に使えます。

と紹介されています。(日本語訳が間違っていたらごめんなさい)

上記には記述されてませんが、矢印キーのUp/Downで履歴を行き来することも出ます。
'http:'や'mailto:'で始まる文字列を処理するアプリケーションを指定することも可能です。
(詳しくはgmrunrcの設定で記述します。)
拡張子による処理アプリケーションの指定も可能です。

gnome,xfce,LXDEいずれもAlt+F2でコマンドラインのラウンチャーが起動しますが、
補完と履歴の両方を備えているのはgnomeのものだけ。

補完と履歴のを備えたコマンドラインベースのラウンチャーを探している方にお勧めです。
gnomeのコマンドラインのラウンチャーのような補完動作もできるのでgnomeユーザも
試してみてはいかがでしょうか。

以下、ubuntu 9.10 karmic koala を前提にして導入方法、使い方を紹介します。
(ちなみに依存するライブラリは少なく、Version: 0.9.1-2.4のバイナリをコピーしただけでmoblin2.1でも動作しました。しかし、別の投稿で記述する0.9.1-4はmoblin2.1で動作しませんでした。)

●導入

リポジトリに入っているので(Section: universe/x11)、apt-getで導入できます。
これを書いている時点では Version: 0.9.1-2.4 です。

sudo apt-get install gmrun

●設定

gmrunの設定ファイルは $HOME/.gmrunrcと /etc/gmrunrc です。$HOMEの方が優先されます。

これはちょっと長くなるので先に xfceとLXDEでデフォルトのラウンチャーと置き換える方法を先に記述します。

■xfceでデフォルトのラウンチャを置き換える場合

$HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
の内容を書き換えます。(設定用のGUIもあります。)
ここではF2はそのままにして、Windows+Rにgmrunを割り当てます。
書き換え前

<property name="<Alt>F2" type="string" value="xfrun4"/>

書き換え後(上記の下に一行追加)
<property name="<Alt>F2" type="string" value="xfrun4"/>
<property name="<Super>r" type="string" value="gmrun"/>

■LXDEでデフォルトのラウンチャを置き換える場合

$HOME/.config/openbox/lxde-rc.xml
   の内容を書き換えます。(設定用のGUIは見つけられませんでした。)

書き換え前

<keybind key="W-r">
      <action name="Execute">
        <command>lxpanelctl run</command>
        <command>gmrun</command>
      </action>
  </keybind>

書き換え後
<keybind key="W-r">
      <action name="Execute">
        <command>gmrun</command>
      </action>
  </keybind>

■$HOME/.gmrunrcと /etc/gmrunrcの設定

なぜかVersion: 0.9.1-2.4のパッケージにはgmrunrcのサンプルが入っていません。
manpageは内容が古いようです。READMEは設定ファイルについての記述がほとんどありません。
(ほかにも0.9.1-2.4はapt-get source、debuildでコンパイルエラーがでるなど不備が多そうです。)
仕方がないので Version: 0.9.1-4の/etc/gmrunrcを参考にします。


# Set terminal
Terminal = gnome-terminal --start-factory-server --use-factory
TermExec = ${Terminal} -e
AlwaysInTerm = ssh telnet ftp lynx mc vi vim pine centericq perldoc man

Terminalはgmrunに何も入力されていない状態でCTRL-Enterを押した場合に起動する
ターミナルのコマンドラインを指定します。
TermExecはコマンドを入力してCTRL-Enterした場合に入力した場合の指定です。
(これはあまりいじる必要ななさそうです。)
AlwaysInTermは説明が見当たらなかったのですが、名前から推測するとENTERだけを
押下しても CTRL-Enterを押したように動作するコマンドの指定をしているようです。


# Set window geometry (except height)
Width = 400
Top = 100
Left = 200

ウィンドウの表示位置を設定します。画面のピクセル単位です。


# History size
History = 256

コマンド履歴のサイズ


# Shows last history line selected when invoked
ShowLast = 1

起動されたときに最後のヒストリを表示するかどうかを設定するようですが、
うまく動作しないようです。


# Show files starting with '.'
# Default is 0 (off), set it to 1 if you want "hidden" files to show up
# in the completion window
ShowDotFiles = 0

先頭がドットで始まるファイルを補完ウィンドウに表示する/しないを設定します。
これは1にしておいたほうがいいと思います。
(ドットで始まるコマンドはありませんが、引数に与えるファイル名としてはあるので)


# Timeout (in milliseconds) after which gmrun will simulate a TAB press
# Set this to NULL if don't like this feature.
TabTimeout = 0

何かキー入力した後に TabTimeout ミリ秒たつとタブが押下されたように補完を行います。
"0"にしておくとタブを押さない限り補完が葉たらなくなります。
"10"くらいにしておくとgnomeのラウンチャのように入力された文字列に前方一致するコマンドが
補完されて表示されます。


# URL handlers
# If the entered text is "http://www.google.com" then:
#   - %u gets replaced with the whole URL ("http://www.google.com")
#   - %s gets replaced with "//www.google.com".  This is useful for URL-s
#     like "man:printf" --> %s will get replaced with "printf"
URL_http = mozilla -remote "openURL(%u, new-window)"
URL_mailto = mozilla -remote "mailto(%s)"
URL_man = ${TermExec} 'man %s'
URL_info = ${TermExec} 'info %s'
URL_pd = ${TermExec} 'perldoc %s'
URL_file = nautilus %s
URL_readme = ${TermExec} 'less /usr/doc/%s/README'
URL_info = ${TermExec} 'info %s'
URL_sh = sh -c '%s'

URLハンドラの指定です。入力テキストが"http://www.google.com"のばあい
%uは "http://www.google.com" に置き換えられます。
%sは "//www.google.com"に置き換えられます。

私の環境では
URL_http =/usr/bin/firefox %u
URL_mailto = /usr/bin/sylpheed --compose %s
のようにしています。


# extension handlers
EXT:doc,rtf = AbiWord %s
EXT:txt,cc,cpp,h,java,html,htm,epl,tex,latex,js,css,xml,xsl,am = emacs %s
EXT:ps = gv %s
EXT:pdf = xpdf %s

拡張子による処理アプリケーションの指定です。

☆SLiMのデフォルトを前回と同じにする

SLiMを使っていて一番不便に感じるのはGDMのように前回選択したデスクトップ環境をデフォルトで起動してくれないところです。

GDMがどうやって ユーザが前回選択したWMを記憶しているか調べてみると、 ~/.dmrc に書き込んでいるようです。

SLiMでも ~/.dmrc を読み書きして、ログイン画面でF1を押さない場合(とdefaultを選択した場合)に前回選択したWMを起動するようにします。

●作成するディレクトリ、スクリプト

下記リンクのファイルをダウンロードして"/"の直下で展開します。
https://sites.google.com/site/midspeclowload/files/etc_slim_d.tar.gz?attredirects=0&d=1

ちなみに中身は下記のとおり

drwxr-xr-x root/root         0 2010-01-23 21:32 etc/slim/
-rwxr-xr-x root/root        41 2010-01-21 02:21 etc/slim/Xsession
-rwxr-xr-x root/root      2561 2010-01-23 21:32 etc/slim/SLiMXsessionrc.pl
/etc/slim/Xsessionrcは受け取った引数をそのまま/etc/slim/SLiMXsessionrc.pl
に渡して起動しているだけです。(/bin/bash -login の後ろはシェルスクリプトでないとダメなようで直接perlのスクリプトを渡すとエラーになります。)
/etc/slim/SLiMXsessionrc.pl は引数と.dmrcから /etc/X11/Xsession への引数を決定します。
(引数の指定と.dmrcに保存しているセッションの指定が異なる場合は.dmrcを書き換えます。)

●設定ファイル(/etc/slim.conf)の編集

初期状態では

login_cmd           exec /bin/bash -login /etc/X11/Xsession %session
となっている行を
login_cmd           exec /bin/bash -login /etc/slim/Xsession %session
に変更します。


2010/01/24 追記
手順が洩れていました。
上記に加えて

sessions         default,gnome,startxfce4,startlxde
となっているところを
sessions         default,gnome,xfce,LXDE
のように変更します。

使える文字列は /usr/share/xsessions ディレクトリ以下のファイル名から ".desktop"を
取り除いた文字です。



相変わらずguest-restrictedなどは起動に失敗します。
gnome-failsafeを使いたい場合は /usr/share/xsessions/gnome-failsafe.desktop の

Exec=gnome-session -f

#Exec=gnome-session -f
Exec=gnome-session-f
のように修正して(-fの前のスペースをとっています。) /usr/bin/gnome-session-f を作成し、
中身に
#/bin/bash
exec gnome-session -f
と記述します。(実行権限をつけてください)

☆そんなにお勧めできませんが、SLiM試してみませんか

SLiM とは "Simple Login Manager" の略のようです。
タイトルどおりでそんなにお勧めできませんが、GDMやKDMじゃないものを使いたい方は試してみませんか。

公式サイトhttp://slim.berlios.de/index.php 、テーマhttp://slim.berlios.de/themes01.php にあります。

ちなみに私はテーマいじってをこんなふうにしています。

●特徴

  • ・F1キーで使用するデスクトップ環境を選択できる。しかしキーボードレイアウトや言語は指定できない。
  • ・テーマに対応。テーマはごく簡単な構造。

とにかくシンプルです。

以下、Ubuntu 9.10 Karmic Koala での導入、基本的な設定方法を記述します。
ページを改めてもうちょっと便利な(.dmrcを読書きして前回の指定をデフォルトにする)変更方法を書くつもりです。
( 追加しました。SLiMのデフォルトを前回と同じにする

●パッケージの導入

なぜかKarmicのリポジトリにはslimが存在しません。jauntyやlucidにはあります。
仕方がないのでUbuntu Packages SearchのSearch package directoriesで検索します。

検索結果をたどって http://packages.ubuntu.com/lucid/slim
の下の方にダウンロード用のリンクがあるので環境にあわせてamd64かi386用のdebを入手します。

以下はi386用を前提にしてます。(amd64は使ったことがありません。)
依存しているパッケージは

libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libjpeg62, libpam0g (>= 0.99.7.1), libpng12-0 (>= 1.2.13-4), libstdc++6 (>= 4.1.1), libx11-6, libxft2 (>> 2.1.1), libxmu6, debconf (>= 1.2.9) ,debconf-2.0 
だけなので、すんなりインストールできると思います。
sudo dpkg -i slim_1.3.1-4_i386.deb
で手動インストールします。途中で使用するディスプレイマネージャを選択するようになっているのでslimの方を選択します。

ついでにログイン画面のキャプチャが取れるようにscrotを導入します。

sudo apt-get install scrot

●設定 (/etc/slim.conf の編集)

使用のために編集が必要なする項目はsessionsです。
デフォルトでは

sessions          default,startxfce4,openbox,ion3,icewm,wmaker,blackbox,awesome
となっていますが
sessions         default,gnome,startxfce4,startlxde
のように編集します。基本的に/usr/share/xsessions/*.desktop のExcec= で指定されたコマンドを記述できますが、gnome-session -f  のように引数がついているものは指定できません。
仕方がないので中に gnome-session -f  を記述したシェルスクリプトを/usr/bin/ に作成し、そのファイル名を指定します。
また、なぜか/usr/share/gdm/guest-session/Xsessionや/usr/bin/openbox-gnome-sessionは起動できませんでした。

テーマは/usr/share/slim/themes/ の下にあります。
初期状態ではdebian-moreblue,debian-moreblue-orbit,defaultの3つが存在します。
http://slim.berlios.de/themes01.php からテーマを取得したらこの下に入れます。

設定ファイル内のcurrent_themeで使用するテーマを指定します。
初期状態では current_theme debian-moreblue-orbit になっています。

ログイン画面のスクリーンショットを取得したい場合は

# Executed when pressing F11 (requires imagemagick)
screenshot_cmd screenshot_cmd scrot /tmp/slim.png

# Executed when pressing F11 (requires imagemagick) 
screenshot_cmd  scrot /tmp/slim-%F-%H%M%S.png
に変更します。コメントのimagemagickは関係なさそうです。(開発者の使用しているディストリビューションではscrotがimagemagickのパッケージに含まれているのでしょうか?)
-%F-%H%M%S を追加して一度のログインで複数枚のショットが取れるようにしています。
ファイルは所有者rootです(何せログインする前ですから)。 /tmp はスティキービットが立っているのでsudoできないユーザは消せません。これが気になる場合はディレクトリを適当に変えてください。

●操作方法

F1でデスクトップ環境の選択、F11でスクリーンショットの取得ができます。
F1を押さない場合、defaultを選択した場合は/etc/alternatives/x-session-manager のリンク先が起動されます。

もう少し詳しく説明すると、/etc/slim.confのlogin_cmdが
exec /bin/bash -login /etc/X11/Xsession %session
になっているので %session が指定されていなかったりwhichでフルパスが取得できないと/etc/X11/Xsession.d/50x11-common_determine-startupで/usr/bin/x-session-manager が起動されます。
/usr/bin/x-session-manager は /etc/alternatives/x-session-manager のシンボリックリンクです。
(ホームディレクトリに.xinitrcや.xserverrcがあるとそちらが優先されるようです。)
あとはユーザ名を入れてEnter,パスワードを入れてEnterです。認証が失敗した時のリアクションが特にないのがちょっと不親切です。

シャットダウンを行いたい場合はユーザ名をhalt、再起動の場合はrebootにしてrootのパスワードを入力するとシャットダウン、再起動ができます。
(gnomeやxfce4にログインしていれば、終了時にシャットダウンや再起動を選ぶことでrootパスワードを知らなくてもシャットダウン、再起動ができます。)