0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

gnome-initial-setup は新規ユーザーのログイン時にセットアップなどを行う。
ユーザーごとに言語設定を行うのに便利。

image.png

独自の設定を入れたいのだけれどどうしたらいいのかな?

環境

Debiana Testing (Debian 13 : 2024/07/06 時点)

調査

gnome 系は Unix philosophy に沿ってないのでメンドクサイ。
gbine-initial-setup のカスタマイズを調べてみたけど全然わからない。
ここらへんに
https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/tree/master
Vendor 設定があるが、試してみたけど動いてないようだった。

ソース

設定方法がわからないので、ソースから再コンパイルかな? と思ったけどめんどくさそう。

今回は Debian をベースにしたシステムで使うつもりだけど、 以下のようなことが書いてあって読み解くのが大変。

Although this mode is unreachable in the upstream version of Initial Setup, both
Debian and Ubuntu have downstream patches to restore it.

別アプリケーションで対処

gnome-initial-setup に手を加えるのではなく、別プログラムを gnome-initial--setup が終わった後に起動する方法を採ることにした。

作戦

gnome-initial-setup は、新規ログオン時に一度だけ実行されます。
二度目からのログオン時には実行されません。
それは gnome-initial-setup が実行されたときにファイル

~/.config/gnonme-initial-setup-done 

が生成されるからです。
このファイルが無いときには gnome-nitial-setup が実行中とみなし、このファイルが生成されたら別アプリを実行するようにします。

キックプログラム

これは gnome-initial-setup の後に首相官邸ページを表示するものです。

#!/bin/sh
FILE="${HOME}/.config/gnome-initial-setup-done"

while [ ! --e $FILE]
do
  sleep 1
done
firefox https://www.kantei.go.jp

全てのユーザの自動起動のために、
/etc/xdg/autostart/after-gnome-initial-setup.desktop
を以下の内容で作ります。

[Desktop Entry]
Type=Application
Name=Welcome 2nd stage
Exec=/usr/local/bin/after-gnome-initial-setup.sh
X-GNOME-Autostart-enabled=true

テスト

debian のパッケージに README.source にテスト方法があります。

Testing this package
====================

Test Case 1
---------------
rm ~/.config/gnome-initial-setup-done
Log out then log back in
gnome-initial-setup should automatically start

Test Case 2
----------------
Create a new user
Log in as the new user
gnome-initial-setup should automatically start

Test Case 3
----------------
Run this command
/usr/libexec/gnome-initial-setup --existing-user


今回は Test Case 2 の方法を使ってテストしました。

gnome-initial-setup が終わると
image.png

首相官邸のページが表示されました。
image.png

1回のみ起動する

このプログラムだと、ログイン時に毎回表示されます。
gnome-initial-setup の実行後に1回だけ実行するには、

/.config/gnonme-initial-setup-done

と同じように

/.config/after-gnonme-initial-setup-done

ファイルを作成し、こちらのファイルがあれば処理を行わないようにするなどの処理が必要となります。

パスワード変更を行う

「TkEasyGUI で パスワード変更 GUI を作る」
https://qiita.com/nanbuwks/items/358b53a2495199b54068

を使い、 gnome-initial-setup が終わったらパスワードを変更するようにしました。
上記の「1回のみ起動する」の処理も加えています。

#!/bin/sh
DONEFILE="${HOME}/.config/after-gnome-initial-setup-done"
WATCHFILE="${HOME}/.config/-gnome-initial-setup-done"
if [ -e $DONEFILE ]; then
  exit
fi

WATCHFILE="${HOME}/.config/gnome-initial-setup-done"

while [ ! -e $WATCHFILE ]
do
  sleep 1
done
passwordchange.py
touch $DONEFILE

処理が終わるとパスワード変更ダイアログが表示されるようになりました。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?