
Ubuntu日本語フォーラム

ログインしていません。
おはようございます。
Ubuntu10.10を使っている者です。
以前、端末(terminal)を起動するときのデフォルトの表示サイズを132x24にしたかったため、パネル上にショートカット(ランチャ)を作って、「ランチャのプロパティ」のコマンド欄に「gnome-terminal --geometry=132x24」と入力して起動させていました。
最近、キーボードショートカットで端末を起動させたいと思い、「システム」→「設定」→「キーボードショートカット」の「端末の起動」では表示サイズは変更出来なかったので、「独自のショートカット」に「端末の起動(132x24)」と追加して、ランチャ同様、コマンド欄に「gnome-terminal --geometry=132x24」と入れ、Ctrl+Alt+Tを割り当て、端末を起動するようにしました。
(デフォルトの「端末の起動」は「無効」になりました)
ところが、パネル上のショートカットでは、端末はホームディレクトリで開きますが、Ctrl+Alt+Tで端末を開くと何故かルートディレクトリになってしまいます。
mcmlxxxvii@pc:/$
なんとなく怖いので、いつも「cd」を打ってホームディレクトリに戻していますが、何故キーボードショートカットだと、こうなるのでしょうか。
また、ホームディレクトリで開く方法は無いでしょうか。
・割り当てキーを、Shift+Ctrl+Oなどと変えても同じでした
・デフォルトの「端末の起動」は、ホームディレクトリで開きます
・/etc/passwdの自分の箇所は、「mcmlxxxvii:x:1000:1000:mcmlxxxvii,,,:/home/mcmlxxxvii:/bin/bash」です(ユーザーは自分一人です)
・端末のバージョンは、2.32.0です。
以上です。
よろしくお願いします。
オフライン
$HOMEで開くには、
gnome-terminal --geometry=132x24 --working-directory=$HOME
か、
sh -c "cd $HOME && exec gnome-terminal --geometry=132x24"
のような泥臭い方法で。
--
何故ルートディレクトリがカレントディレクトリになるかについてですが、gnome-terminalのソースコードには確かに"/"へchdirするコードがあります。
しかし、何故その分岐を辿るのが私にはよく理解できないです。
terminal.cのmain関数が始まって直ぐの箇所です。
/* Now change directory to $HOME so we don't prevent unmounting, e.g. if the
* factory is started by nautilus-open-terminal. See bug #565328.
* On failure back to /.
*/
home_dir = g_get_home_dir ();
if (home_dir == NULL || chdir (home_dir) < 0)
(void) chdir ("/");g_get_home_dir: http://developer.gnome.org/glib/2.28/glib-Miscellaneous-Utility-Functions.html#g-get-home-dir
STGSAGWANさん、おはようございます。
ご回答有難う御座います。
ソースコードも提示していただき、恐れ入ります。
g_get_home_dir ()がNULLだったら、ルートになっちゃうって感じ・・・かな・・・
・・・まだまだ勉強不足で、理解できる領域ではなさそうです。
ともかく、 「--working-directory=$HOME」オプションを加えることで、Ctrl+Alt+Tでホームディレクトリを開けるようになりました。
また、自分のPC固有の問題でもなさそうなので、安心しました。
この度は有難う御座いました。
オフライン