2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ショートカットキーでXfceのパネルを開閉する

Posted at

経緯

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というファイル名で作製した。

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を開く。(ファイルがない場合は作成する)
以下の内容を書き込んで保存する。

~/.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

パネルが開くときのスピードも変更したかったが、こちらは設定項目が見つからなかった。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?