Paepoi

Paepoi » Fedora Tips » Fedora Tips | GNOME 及び GTK アプリの設定

Fedora Tips | GNOME 及び GTK アプリの設定

# 最終更新日 2022.08.14

- GNOME 3 表記だったのを GNOME 40 以降にも合わせて書き換え
- ちなみに一部が GTK4 化された以外は変わっていません

gsettings コマンド
GNOME 及び GTK アプリの設定は gsettings コマンドを利用します。
バージョンは GNOME3 からいきなり飛びましたけど特に変わっていません。

たとえば GNOME デフォルト状態ではデスクトップに時刻と曜日しか表示されません。
以下のコマンドでを撃ち込めば日付けを表示できるようになります。
# gsettings set スキーマ キー 値
gsettings set org.gnome.desktop.interface clock-show-date true
# デフォルトに戻すには gsettings reset スキーマ キー
gsettings reset org.gnome.desktop.interface clock-show-date

# ウインドウに最小化と最大化ボタンを追加、コロンの左に書くと左寄せになる
gsettings set org.gnome.desktop.wm.preferences button-layout appmenu:minimize,maximize,close
# 戻す
gsettings reset org.gnome.desktop.wm.preferences button-layout

# GNOME 3.28 以降は設定してもデスクトップにファイルは置けません、無視される
#gsettings set org.gnome.desktop.background show-desktop-icons true

# 詳しくは man で(手抜き)
man gsettings

スキーマの実体は /usr/share/glib-2.0/schemas ディレクトリにある XML ファイル。
自分でアプリを作った場合もココに XML ファイルを配置します。

ユーザー定義の実体は ~/.config/dconf/user のバイナリファイル。
設定を弄くるとこのファイルが更新されていきます。

とはいえスキーマやキーの名前が解らないとコマンドも糞もないですよね。
dconf-editor を導入しましょう、デフォルトでは入っていません。
gnome-softwere で dconf と検索すれば出てきます、コマンドなら以下。
sudo dnf install dconf-editor
gnome-tweak-tool というものがありますがコレの機能縮小版でしかありません。
ぶっちゃけデスクトップのカスタムとフリーソフトのインストールしかやらない人用です。

dconf-editor は GNOME 及び GTK3 アプリ設定の全てを変更できます。

img/gsettings_show_date.png

階層はタイトルバーに表示されています。
この階層をドットで区切ったものをスキーマとしてキーの値を変更するのが基本。
しかし下記画像のように階層とスキーマ名が若干違うという場合もある。

img/gsettings_terminal.png

上記の場合は [Schema] 部分をスキーマ名とすれば適用できます。
大文字小文字も区別されますのでコマンドを使う時には慎重に。

初期設定で利用しそうなスキーマをいくつか。
GNOME のバージョンにより結構変わるのでコレも慎重に。
# デスクトップの基本設定
org.gnome.desktop.interface
# GnomeShell の基本設定
org.gnome.shell
# ウインドウマネージャの動作設定
org.gnome.desktop.wm.preferences
# Gedit の設定(本体で変更できない機能が多い...
org.gnome.gedit.preferences.editor

systemctl コマンド
Fedora は 15 以降サービスが SysV から systemd に変更されています。
起動スクリプトは /etc/init.d から /usr/lib/systemd/system に移動している。
なので chkconfig ではなく systemctl コマンドを使う必要があります。
# サービス一覧
systemctl -t service

# サービスの(開始|停止|状態確認)
sudo systemctl start|stop|status hoge.service

# 次回起動時よりサービスの自動開始(有効|無効)
sudo systemctl enable|disable hoge.service

# ABRT はバグ報告のサービスですが開発をしていると自アプリの Debug に反応する
# 以下コマンドで表示されたサービスをすべて stop, disable にする
# ちなみに sudo systemctl disable abrt-x とかから Tab キー補完が使える
systemctl -t service | grep abrt

SELinux
難解すぎることで有名な SELinux ですが実際は存在を感じることは少ないです。
macOS の Gatekeeper のようなもの、不適切なアクセスを遮断するセキュリティアプリです。
公開サーバー用途でもなければ存在を感じるのは Web 開発の時だけです。

Fedora Update のバグでアクセス不能になった等の時だけ一時的に無効にするのが得策。
# 状態確認、Enforcing なら On で Permissive なら Off
getenforce
# On にする
sudo setenforce 1
# Off にする
sudo setenforce 0
SELinux を起動時から無効化するには
/etc/selinux/config ファイルにて SELINUX=disabled に書き換え再起動。
サイトやアプリを作る気も他のマシンとの通信もやらないならコレでいいです。

localhost.localdomain
localhost.localdomain はファイル共有や http アクセスに使われるデフォルト名です。
別の手持ち UNIX や macOS との通信、スマホ向けサイトを作る時等に必要になります。
他のコンピューターから判別できるように適切な名前に変更しておきましょう。

macOS では ***.local という名前でファイル共有や http アクセスなので合わせたい。
以下は katana.local に変更しています。
# ホスト名.ドメイン名
hostnamectl set-hostname katana.local

# 再起動後に確認
hostnamectl status

# NetworkManager 単独再起動は不調になるので OS 丸ごと再起動を
# この方法はデバイス名や共有名も同じ名前に変更される
# GUI でデバイス名や共有名を変更すると Pretty hostname が別に設定される
# nmcli general hostname katana.local ではデバイス名や共有名は変更されない、分離したい場合はこちら
# ドメイン名は local にしないと上手くいかないみたい
ホスト名は bash のプロンプトにも使われる、ドメイン名は表示されません。
img2/bash.png
Copyright(C) sasakima-nao All rights reserved 2002 --- 2024.