経緯
Xfceではマウスポインタを画面端に接触させることでワークスペースを移動できる。
この機能を気に入っていたが、隠れているパネルを開く際の動きと競合してしまう。
そこで、競合を避けるためにパネルの開閉をキーボードで操作したいと考えた。
方針
xfconf-query
を使用してパネルの設定のパネルを自動的に隠す
のプロパティを書き換えるシェルスクリプトを作成する。
このシェルスクリプトにキーボードショートカットを割り当てて目的の操作を実現する。
xfconf-query
Xfceは設定オプションをXfconfに保存している。Xfconfの内容は設定マネージャー > 設定エディター
で見ることができる。
xfconf-query
はこのXfconf内の設定にアクセスするためのCLIツール。今回は主にこのツールを利用して実装を進めていく。
環境
- Manjaro 22.0 Sikaris
- Xfce4.18
パネルの開閉
今回はパネル1を開閉することにする。
まずは以下のコマンドを実行してパネルが現れることを確認する。
$ xfconf-query -c xfce4-panel -p /panels/panel-1/autohide-behavior -s 0
このコマンドでは、-c
オプションでxfce4-panel
チャネルを指定し、-p
オプションで/panels/panel-1/autohide-behavior
プロパティを指定、-s
オプションで値に0
を設定している。
このコマンドが行なっていることは、GUIの設定画面でパネルのパネルを自動的に隠す
の項目をしない
に設定していることに対応する。
panel-1
の数字の部分がパネルの番号によって異なるので、操作したいパネルに応じて数字を書き換える必要があることに注意。
逆にパネルを閉じたい場合は先程のプロパティに2を設定すれば良い。(→パネルを自動的に隠す
を常に
に設定)
これでマウスポインタがパネル上にいないなければパネルは自動的に隠れる。
$ xfconf-query -c xfce4-panel -p /panels/panel-1/autohide-behavior -s 2
ショートカットキーでパネルの開閉を切り替えたいため、これらのコマンドをシェルスクリプトにまとめる。
今回は/usr/bin/
にmyPanelSwitcher
というファイル名で作製した。
#! /usr/bin/bash
nowConf=`xfconf-query -c xfce4-panel -p /panels/panel-1/autohide-behavior`
if [ $nowConf -eq 0 ]; then
xfconf-query -c xfce4-panel -p /panels/panel-1/autohide-behavior -s 2
else
xfconf-query -c xfce4-panel -p /panels/panel-1/autohide-behavior -s 0
fi
以下のコマンドで実行権限を与える。
$ chmod +x /usr/bin/myPanelSwitcher
ターミナルでmyPanelSwitcher
を実行すると交互にパネル1の表示⇄非表示(パネルを自動的に隠す
:しない
⇄常に
)が切り替わるはずである。
ショートカットキーの割り当て
最後に先程のシェルスクリプトにショートカットキーを割り当てる。
設定マネージャー > キーボード > アプリケーションショートカットキー
に新しい項目を作成する。
左下の追加
を押すとポップアップが現れる。コマンドにmyPanelSwitcher
を入力してOK
。
するとまた新しいポップアップが開くので設定したいショートカットキーを押す。
これで登録したショートカットキーを押せばパネルが開閉するようになる。
追加の設定
以上で当初の目的は達成したが、使い勝手を良くするためにいくつか追加の設定をする。
パネル表示時のウィンドウ最大化
画面端に接触しているパネルが表示されているときにウィンドウを最大化すると、パネルの幅の分だけウィンドウが表示される領域が狭くなってしまう。
そこで、パネルの設定からパネルをウィンドウの上に置く
にチェックを入れておくと、パネルが表示されていてもウィンドウを最大化したときにパネルに重ねてウィンドウを表示することができる。
パネルを自動的に隠す
の設定項目でしない
を選択しておかないとチェックが入れられないので注意。
パネルが隠れ始めるまでのラグ
パネルを閉じるときに、シェルスクリプトで設定を変更してから隠れるまでラグが生じる。
このままでは使いづらいので、ショートカットキーを押したらすぐにパネルが隠れるようにする。
まずテキストエディタで~/.config/gtk-3.0/gtk.css
を開く。(ファイルがない場合は作成する)
以下の内容を書き込んで保存する。
* {
-XfcePanelWindow-popdown-delay: 0;
}
ターミナルで以下のコマンドを実行してxfce4-panelをリセットして変更を適用する。
$ xfce4-panel -r
パネルが閉じるスピード
パネルが閉じるときのスピードを設定することができる。
以下のコマンドでは100msかけて閉じるように設定している。末尾の数字を変えれば任意のスピードに設定できる。
$ xfconf-query -c xfce4-panel -p /panels/panel-1/popdown-speed -s 100
パネルが開くときのスピードも変更したかったが、こちらは設定項目が見つからなかった。