コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2026年10月12日 >>> 2026年9月29日
link もっと後

2026年10月4日

Xfce4の設定をCUIから読み書きする方法

目次: Arduino

もはやArduino全然関係ないですが、Arduinoが相棒のシステム系の話繋がりってことで……。Xfce4の調査をするにあたって設定変更を頻繁にやります、その際にGUIでポチポチやるのがだるい&ROCK 3Cはあまり速いマシンではないので、CUIからXfce4の設定を確認&設定する方法をメモしておきます。

設定のありか

Xfce4の設定ファイルはXMLで.config/xfce4/xfconf/xfce-perchannel-xml/の下にあります。例えばこれから調査しようとしているスクリーンセーバーの設定は.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xmlで私の環境だとこんな感じです。

xfce4-screensaver.xmlの例

<?xml version="1.0" encoding="UTF-8"?>

<channel name="xfce4-screensaver" version="1.0">
  <property name="saver" type="empty">
    <property name="mode" type="int" value="0"/>
    <property name="themes" type="empty">
      <property name="list" type="empty"/>
    </property>
    <property name="enabled" type="bool" value="false"/>
    <property name="idle-activation" type="empty">
      <property name="enabled" type="bool" value="false"/>
      <property name="delay" type="int" value="1"/>
    </property>
    <property name="fullscreen-inhibit" type="bool" value="false"/>
  </property>
  <property name="lock" type="empty">
    <property name="enabled" type="bool" value="false"/>
  </property>
</channel>

設定に間違ったtype, valueを書くと無視されてデフォルト値として受け付けます。Xfce4の親切機能ですがCUIユーザーにとっては罠です。CUIから設定読み書きする場合にtype(特にint/uint)を間違えると、設定が全く反映されていないように見えるため、めっちゃハマります、というかハマりました。ダメな時は無視しないでダメなところを言ってほしい。

設定の読み書き

現在の設定を読むにはxfconf-query -c (チャネル名) -p (プロパティ名)を使います。チャネル、プロパティの一覧は-c (チャネル名) -lで出せるので、組み合わせて全部ダンプするならこんな感じです。

以降の全操作例に共通ですが、デスクトップの設定はログインしたユーザーのD-Busセッションと関連しているので、

  • デスクトップ環境にログインした状態
  • SSHなどから実行する場合は自分のセッションをDBUS_SESSION_BUS_ADDRESSを指定

ログインした画面から操作するか、SSHなら環境変数を指定する必要があります。

チャネル名、プロパティ名一覧
$ export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus

$ xfconf-query -l

Channels:
  parole
  xsettings
  thunar-volman
  xfce4-panel
  xfce4-settings-manager
  xfwm4
  xfce4-screensaver
  keyboards
  xfce4-desktop
  xfce4-power-manager
  thunar
  xfce4-notifyd
  xfce4-keyboard-shortcuts
  xfce4-session
  displays


$ xfconf-query -c xfce4-screensaver -l

/lock/enabled
/saver/enabled
/saver/fullscreen-inhibit
/saver/idle-activation/delay
/saver/idle-activation/enabled
/saver/mode
/saver/themes/list
xfce4-screensaverのプロパティダンプ
$ export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus

$ for i in `xfconf-query -c xfce4-screensaver -l`;  do echo $i ---; xfconf-query -c xfce4-screensaver -p $i; done

/lock/enabled ---
false
/saver/enabled ---
false
/saver/fullscreen-inhibit ---
false
/saver/idle-activation/delay ---
1
/saver/idle-activation/enabled ---
false
/saver/mode ---
0
/saver/themes/list ---
Value is an array with 1 items:

screensavers-xfce-popsquares

設定するにはxfconf-query -c (チャネル名) -p (プロパティ名) -t (型名) -s (値)を使います。例えばスクリーンセーバーを無効にするには、/saver/enabled, /lock/enabled, /saver/idle-activation/enabled辺りを全部falseにするとよいです。

スクリーンセーバーを起動しないようにする設定例
$ export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus

$ xfconf-query -c xfce4-screensaver -p /saver/idle-activation/enabled -n -t bool -s false
$ xfconf-query -c xfce4-screensaver -p /saver/enabled -n -t bool -s false
$ xfconf-query -c xfce4-screensaver -p /lock/enabled  -n -t bool -s false

さっき書いた通り、このtypeがかなり曲者なので調べ方もメモしておきます。

正しい値の調べ方

値のtype, valueの調べ方はGUIで該当する項目を設定してみることです。GUIの設定項目とプロパティ名の対応がわからないときはmonitorモードを使うと便利です。

monitorモードでプロパティの変化を観察
$ export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus

$ xfconf-query -c xfce4-screensaver -m

Start monitoring channel "xfce4-screensaver":

#### Enable Screensaverを変えた
set: /saver/enabled
set: /saver/enabled

#### Activate screensaver when computer is idleを変えた
set: /saver/idle-activation/enabled
set: /saver/idle-activation/enabled

#### Regard the computer as idle after:を変えた
set: /saver/idle-activation/delay
set: /saver/idle-activation/delay

GUIから設定を変更して、XMLファイルを開き、書き換わったプロパティ名を頼りに探せば正しいtype, valueがわかるはずです。XMLは更新が遅い?のかすぐ見ると値が古いことがあります。少し経ってから見たほうが良いかもしれません。

もう1つの方法はD-Busで聞く方法です。こちらは即応のようですし、型名も出るので便利です。

D-BusでXfce4の設定を得る
$ export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus

$ gdbus call --session --dest org.xfce.Xfconf \
    --object-path /org/xfce/Xfconf \
    --method org.xfce.Xfconf.GetProperty \
    xfce4-screensaver /saver/idle-activation/delay

(<1>,)


#### uintのプロパティだとこんな感じになる

$ gdbus call --session --dest org.xfce.Xfconf \
    --object-path /org/xfce/Xfconf \
    --method org.xfce.Xfconf.GetProperty \
    xfce4-power-manager /xfce4-power-manager/dpms-on-ac-off

(<uint32 0>,)

XMLにせよD-Busにせよ、いずれの場合もGUIで設定を変更した後に見てください。CUIで間違った値を書いた後だと、当然ながら間違った値が読み出されます。

編集者:すずき(2026/10/11 02:50)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2026年10月2日

ROCK 3C + Debian 12 + Xfce4にアップデート

目次: Arduino

以前作ってTarget-1で稼働中の的あてゲーム、Linux側システムにRadxa ROCK 3Cを使っていて、ずっとDebian 11(Bullseye)で稼働しています。お店のシステムはネットワークに繋げていないので、アップデートしていないこと自体は問題ありません。とはいえ故障して新しいボードに置き換えたときに新しいイメージで稼働しないとなると困ります。

実は去年あたりにアップデートしたらどうなるのかちょっと試したら、全然動かなくなってて、直すのも調べるのも面倒で挫折してました。再チャレンジです。

Debian 12へアップグレードしたら動かなくなった

Radxaの公式イメージ配布サイト(Images Download - Radxa Docs)で配布されているROCK 3C向けDebian系イメージは2種類あります。

  • Debian 11(Bullseye)+ Xfce4
  • Debian 12(Bookworm)+ KDE

現在のDebian 11 + Xfce4からDebian 12 + KDEにするには、デスクトップ環境入れ替えなきゃいけなくて面倒なので、とりあえずDebian 11 -> 12アップデート = Debian 12 + Xfce4環境にします。これくらいなら動くでしょ?と思ったら全然動きません。マジかよ、なんでだよ。正確に言うとゲームシステム自体は起動しますが、デスクトップ環境と描画周りがかなり怪しい動きです。目立っておかしいところは下記の3つです。

  • 自動ログインが失敗してログイン画面に戻る
  • デスクトップが暗転して画面が消える
  • ゲームシステムの描画が変な色になる

一番困る奴から見ていこうと思います。

自動ログインの失敗

お店で稼働しているROCK 3Cはキーボード未接続なので、自動ログインに失敗するとめちゃ困ります。しかしなぜこうなるのか全然わかりません。うまくいかないときの/var/log/Xorg.0.log.oldを見ると、

ログイン画面に戻された時のXorg.0.log.old
[ 10380.104] (II) modeset(0): Output HDMI-1 connected
[ 10380.104] (II) modeset(0): Using exact sizes for initial modes
[ 10380.104] (II) modeset(0): Output HDMI-1 using initial mode 1920x1080 +0+0    ★1920x1080で起動した
[ 10380.104] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
[ 10380.104] (==) modeset(0): DPI set to (96, 96)
(...略...)
[ 10387.451] (--) modeset(0): HDMI max TMDS frequency 225000KHz
[ 10387.499] (II) modeset(0): Allocate new frame buffer 1024x768 stride    ★1024x768に切り替えようとして、クラッシュ
[ 10387.527] (EE)
[ 10387.527] (EE) Backtrace:
[ 10387.529] (EE) 0: /usr/lib/xorg/Xorg (OsLookupColor+0x188) [0xaaaab37b08d8]
[ 10387.530] (EE) unw_get_proc_info failed: no unwind info found [-10]
[ 10387.530] (EE)
[ 10387.530] (EE) Segmentation fault at address 0x6af1a5a5ffbea626
[ 10387.530] (EE)
Fatal server error:
[ 10387.530] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 10387.530] (EE)
[ 10387.530] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[ 10387.531] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[ 10387.531] (EE)
[ 10387.706] (EE) Server terminated with error (1). Closing log file.

ちなみに自動ログイン時にクラッシュ、X.orgが再起動しているため、Xorg.0.logではなくXorg.0.log.oldを見る必要があります。ややこしいな。ログには特に情報がなく、わかるのは解像度を切り替えようとしたときにクラッシュしたことくらいです。X.orgかXfce4かGPUドライバ(GPU HWはMali-G52)ですかね……。

あら?解像度切り替えで死んでしまうなら、解像度を切り替えなければ良いじゃないこと?(by Claude先生)だそうで。暫定対策としてX.orgの設定を変更して、解像度を最初から1024x768にします。ROCK 3Cの環境はちょうど良いことに、/etc/X11/xorg.conf.d/20-modesetting.confが置いてあるので、こいつを書き換えましょう。

X.orgの設定追加で1024x768で起動する
### Valid values for rotation are "normal", "left", "right"
Section "Monitor"
    Identifier  "Default Monitor"
    Option          "Rotate" "normal"
    Option          "PreferredMode" "1024x768"    ★この行を追加する★
EndSection

変更後は解像度変更が発生しなくなり、自動ログインに失敗しなくなりました。とりあえずこれで良いでしょう。

デスクトップが暗転して画面が消える

しばらく放置すると画面が消えるので、運用上かなり困ります。調べてみると画面が消えるわけではなく、スクリーンセーバーを無効にしているのにスクリーンセーバーが1分で起動しているようです。


スクリーンセーバーの設定

設定は上記の画面の通りで、関係する設定項目を書き起こすとこんな感じです。

  • 上: Enable Screensaver = False
  • 下: Activate screensaver when computer idle = True

普通は上位のEnable Screensaver = Falseだから、従属のActivateなんちゃらはTrue/False関係なくスクリーンセーバーが起動しないと思いますよね。普通はそうですが、Xfce4は両方きっちりFalseにしないとスクリーンセーバーが起動します。

Xfce4の謎

挙動が謎すぎてClaude先生にこれバグなの?コード診てくんね?って愚痴ってたら「Xfce4のバグで4.18.3で直ってます、Debian 12は4.16.0なのでバグがまだ直ってないです」とのこと。ええー?こんな超基本的な設定がバグってる……?

興味がわいたので、次回はXfce4を調べてみようかと思います。

編集者:すずき(2026/10/11 01:28)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2026年10月12日 >>> 2026年9月29日
link もっと後

管理用メニュー

link 記事を新規作成

<2026>
<<<10>>>
日月火水木金土
----123
45678910
11121314151617
18192021222324
25262728293031

最近のコメント20件

  • link 26年7月26日
    すずきさん (08/06 12:27)
    「ダイバート便以外もバスなんですよねえ。私...」
  • link 26年7月26日
    hdkさん (08/06 08:41)
    「あの規模の空港だとダイバート便にまでボー...」
  • link 26年7月14日
    すずきさん (07/31 11:48)
    「補充して乗れるのはまあそうなんですけど、...」
  • link 26年7月14日
    hdkさん (07/22 08:37)
    「冷却水漏れなんて、修理するまでは補充して...」
  • link 26年1月23日
    すずきさん (01/29 09:48)
    「おおー、そんな昔からなんですね。歴史感じ...」
  • link 26年1月23日
    hdkさん (01/27 19:53)
    「#! はUNIX v8からだったってWi...」
  • link 24年12月9日
    すずきさん (01/18 15:45)
    「Thank you for your i...」
  • link 24年12月9日
    Up2Uさん (01/15 12:57)
    「Hi I also find the p...」
  • link 25年12月18日
    すずきさん (12/23 23:51)
    「良く見たらksys_read()でfil...」
  • link 25年12月18日
    すずきさん (12/23 23:15)
    「ですね、まあpread+readだと話が...」
  • link 25年12月18日
    hdkさん (12/21 08:34)
    「昔試しにデバイスドライバーを作ったことが...」
  • link 25年11月28日
    hdkさん (12/04 08:10)
    「あれ、停止直前くらいの時のトルクコンバー...」
  • link 25年11月28日
    すずきさん (12/03 11:24)
    「トルクコンバーターがいてエンブレは掛かり...」
  • link 25年11月28日
    hdkさん (12/02 08:02)
    「"停止直前に急にエンブレがほぼゼロになる...」
  • link 25年10月6日
    すずきさん (10/10 13:14)
    「ですね。ccはもはやコンパイラというより...」
  • link 25年10月6日
    hdkさん (10/10 08:27)
    「ただのHello, worldでも試して...」
  • link 25年9月29日
    すずきさん (10/03 00:29)
    「なんと、メタパッケージ入れてなかったです...」
  • link 25年9月29日
    hdkさん (10/02 06:51)
    「あれ、dkmsは自動ビルドされるのが便利...」
  • link 20年8月24日
    すずきさん (08/30 22:06)
    「ですね、自分も今はPulseAudioを...」
  • link 20年8月24日
    hdkさん (08/29 09:32)
    「ALSA懐かしい... PulseAud...」

最近の記事3件

  • link 23年6月2日
    すずき (10/11 02:50)
    「[Arduino - まとめリンク] 目次: ArduinoM5Stackとesp32とArduinoM5Stamp C3のA...」
  • link 26年10月4日
    すずき (10/11 02:50)
    「[Xfce4の設定をCUIから読み書きする方法] 目次: ArduinoもはやArduino全然関係ないですが、Arduino...」
  • link 26年10月2日
    すずき (10/11 01:28)
    「[ROCK 3C + Debian 12 + Xfce4にアップデート] 目次: Arduino以前作ってTarget-1で稼...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 2026年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 10/11 02:50