ラベル display manager の投稿を表示しています。 すべての投稿を表示
ラベル display manager の投稿を表示しています。 すべての投稿を表示

☆Xubuntu用にSLiMのログインスクリプトを変更

Ubuntu用に作成したSLiMのログインスクリプトは、ログイン時に'default'が選択された場合は
前回のセッションと同じウィンドウマネージャーを使用する仕様にしていました。

しかし、Xubuntuの場合/usr/share/xsessions/default.desktopが存在しているので
ログイン時に'default'が選択された場合、default.desktopのシンボリックリンク先が選択されたのと
同様の動作をするのが妥当だと思います。

というわけでetc_slim_d.tar.gzのXubutu版をアップしました。
https://sites.google.com/site/midspeclowload/files/etc_slim_d_xubuntu.tar.gz?attredirects=0&d=1

変更箇所は下記のとおりです。etc/slim/Xsessionは変更なしです。

diff -u -r org/etc/slim/SLiMXsessionrc.pl new/etc/slim/SLiMXsessionrc.pl
--- org/etc/slim/SLiMXsessionrc.pl 2010-01-23 21:32:53.000000000 +0900
+++ new/etc/slim/SLiMXsessionrc.pl 2010-02-14 22:00:35.000000000 +0900
@@ -107,13 +107,15 @@
 my($wm_arg) = shift;
 DBG_OUT "\$wm_arg='$wm_arg'\n";
 
-$wm_arg = '' if $wm_arg eq 'default';
+# $wm_arg = '' if $wm_arg eq 'default';
 my($wm_dmrc, $DMRC_recs_ref) = readDMRC($DMRC_FILE);
 DBG_OUT "\$wm_dmrc='$wm_dmrc'\n";
 
 my($wm_determined) = $wm_arg eq '' ? $wm_dmrc : $wm_arg;
+$wm_determined = 'default' if $wm_determined eq '';
 DBG_OUT "\$wm_determined='$wm_determined'\n";
 
+
 my($cmd);
 my($desktop) = "${X_SESSION_DIR}/${wm_determined}.desktop";
 DBG_OUT "\$desktop='$desktop'\n";

ちなみに一度もF1を押さなければ、~/.dmrcに"Session="の行は存在しないままになります。
これはGDMを使用していて、一度もセッションの選択を行わなかった場合と同様です。
またこの修正により、初回のログインでF1を押さなかった場合に出ていた警告メッセージも出なくなります。

☆SLiMの削除

WindowsXPでVirtualBox3.12のGuest Additionsを導入するとSLiMの起動時にエラーが発生するようです。

当然、この場合SLiMのパッケージを削除するのですが、 dpkgやapt-get removeでSLiMのパッケージを削除すると再起動してもGDMは立ち上がらず、 コンソールへのログインになってしまいます。

これは /etc/default-display-manager の内容が /usr/bin/slim のままになっているせいです。
viで /usr/sbin/gdm に書き換えればGDMが立ち上がるようになります。

☆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パスワードを知らなくてもシャットダウン、再起動ができます。)