ubuntu/LinuxMintでdesktopの背景を変更するコマンドを試しました
1.概要
私はインストール時の設定の自動化をshellで実施しています。その中の項目の一つにデスクトップの背景を変えることをコマンド実行できないかと以前から考えていました。私はマルチブート環境を利用しているので、デスクトップの背景でどの機能を実現するパーティション区画であるかを判断して利用しており、背景をコマンド変更が必要でした。
このコマンドは標準コマンドですが、環境依存の部分があるかもしれません。デスクトップの背景なので大きな影響はないと考えていますが、利用される方は十分な注意をして利用してください。
2.詳細
参考資料の「gsettingsを利用してデスクトップの設定一覧を確認する」に記載されている内容を利用して、background変更前と変更後の設定内容を調べて、diffで差分を取り、実現しました。実現方法
参考料を参照して、現在のデスクトップの設定一覧をnow.txtに取得します。
$ for s in $(gsettings list-schemas); do gsettings list-recursively $s; done > now.txt
次に、背景を変更して、再度、現在のデスクトップ設定一覧をupd.txtに取得します。
$ for s in $(gsettings list-schemas); do gsettings list-recursively $s; done > upd.txt
ここで、差分を確認して変更箇所を確認します。
$ diff upd.txt now.txt
最終的な、変更方法のshellを参考例として記述します。
#!/bin/bash
BKGD="Headstock_by_Bernhard_Hanakam.jpg"
URL="file:///usr/share/backgrounds/$BKGD"
gsettings set org.gnome.desktop.background primary-color '#000000'
gsettings set org.gnome.desktop.background secondary-color '#000000'
gsettings set org.gnome.desktop.background picture-uri "$URL"
gsettings set org.gnome.desktop.screensaver primary-color '#000000'
gsettings set org.gnome.desktop.screensaver secondary-color '#000000'
gsettings set org.gnome.desktop.screensaver picture-uri "$URL"
・shell変数に入っている値の文字数確認方法
#!/bin/bash
BKGD="Headstock_by_Bernhard_Hanakam.jpg"
URL="file:///usr/share/backgrounds/$BKGD"
gsettings set org.gnome.desktop.background primary-color '#000000'
gsettings set org.gnome.desktop.background secondary-color '#000000'
gsettings set org.gnome.desktop.background picture-uri "$URL"
gsettings set org.gnome.desktop.screensaver primary-color '#000000'
gsettings set org.gnome.desktop.screensaver secondary-color '#000000'
gsettings set org.gnome.desktop.screensaver picture-uri "$URL"
3.所見
設定した結果から変更された部分の差分を取ることで何を変更すると設定が可能となるかを参考資料で学習雨しました。とても便利に利用しています。この方式はLinuxMIntでも利用でき、ubuntuからの移行後も利用しています。
多分、OSSなのでGUI環境設定の変更コマンドは探すとどこかにからなず存在すると思います。見つけることが困難なだけです。いや、今ならば、AIに尋ねることでコマンドを探してくれる可能性もあります。
作成したコマンドは2024年から利用していますが、今まで問題を起こしたことがありません。その過程で、ubuntuのversion移行、LinuxMintへの移行などを実施して適用してきましたが、想定したとおりに動作しています。本資料を参照して、問題が発生した方や改良方法がわかった方は、連絡をお願いします。
参考
[本ブログ内参照]・shell変数に入っている値の文字数確認方法
[外部サイト参照]
・gsettingsを利用してデスクトップの設定一覧を確認する
・gsettingsを利用してデスクトップの設定一覧を確認する
コメント
コメントを投稿