2020年05月16日

xscreensaver のダイアログをカスタマイズ

Lubuntu 20.04 Focal Fossa では xscreensaver のロック解除画面ががらっと変わった。デフォルトのGTK風から一転してすっきりした反面、コントラストが低すぎて文字が読めない。

Focal での変更

Debian/Ubuntuのデフォルト値は /etc/X11/app-defaults/XScreenSaver にあるが、パッケージ lubuntu-default-settings が /usr/lib/X11/app-defaults/XScreenSaver を作っているので比較してみると、色以外にもこまごま違う。

  • 入力を受け付ける残り時間を表示するメーターなど一部を非表示に
  • 枠線(影エフェクト)をなくす
  • タイトルを「XscreenSaver」から「Lubuntu」に
lubuntu-focal-xscreensaver-before.png

コントラストは1.61:1WCAG 2.0が定めるところの3:1には程遠い。

とりあえずパッチ付きでバグ報告してみたけど、どうせならもう少しデスクトップのテーマに近い色合いがいいので個人設定で変更したい。

設定方法

xscreensaver の man によれば ~/.Xresources に設定値を書き込めば変更できるとのこと。 ~/.xscreensaver はGUIの設定マネージャが上書きしてしまうので手で編集するのは危険。

設定名と値をコロンでつなぐ。たとえば白地に黒文字なら:

XScreenSaver.Dialog.background: white
XScreenSaver.Dialog.foreground: black

色指定は16進表記でもできるし、各部品の色やフォント、文言も変更できる。

プリセット

実はデフォルトの設定ファイルにも「テーマ」がいくつかコメントで書かれている。モダンなボーダレスとか、Ubuntu風のワイン色とか。それらを参考にしてArc の通常版とダークモードに合わせて作ってみた。
フォントは環境による差があるので分けてある。具体的には xfonts-efont-unicode を別途入れる必要があるかもしれない。

xscreensaver-arc-theme.png

適当なところにダウンロードしたら ~/.Xresources でinclude。フルパスかホームディレクトリからの相対パス。もしくは ~/.Xresources ファイルに直接コピペしてもいい。
下記の例では1段落目でインクルードして、2段落目では左の「New Login」ボタンを取り除いてある。使いみちがないし色も整合性がないので。(!で始まる行はコメント)

#include ".Xresources.d/xscreensaver-arc"
#include ".Xresoucres.d/xscreensaver-fonts-fixed"

! Hide 'New Login' button
XScreenSaver.newLoginCommand:

通常は再ログインが必要。すぐに反映させたいなら

xrdb -I$HOME < ~/.Xresources && xscreensaver-command -restart
xscreensaver-command -lock

~/.Xresources の読み込みは通常セッションマネージャが行う。たとえば Lubuntu では SDDM が採用されていて /usr/share/sddm/scripts/Xsession で読み込まれる。

また、お作法としては XScreenSaver と CamelCase で書くのがいいのだけど、システム側の設定との兼ね合いで xscreensaver と小文字で書かないと優先度の問題から無視されることもある。どうしても設定内容があたらない場合はそのへんを確認。

フォント別解

xscreensaverのデフォルト設定では Helvetica (ゴシック)。他のXアプリケーションでもとりあえずHelvetica指定してるものがある。

素の Ubuntu にはたぶん入っていないので、ロック画面が明朝で表示されていたはず。 パッケージ fonts-urw-base35gsfonts-x11 を入れると適当なエイリアスが作られてHelveticaが指定されている箇所ではURWフォントが代わりに使われる。

posted by かぷらす at 17:58| Comment(0) | 作業記録 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください