はじめに
こんにちは、野村です。
前回は、ウィンドウのフォーカスを切り替える仕組みを作ってみました。
ウィンドウマネージャなしでGUIを使ってみることにしました。とりあえず下準備。ウィンドウのフォーカスを切り替えるコマンドを作ってみます。
今回は、実際にウィンドウマネージャ抜きでGUIを起動してみます。
今回必要なパッケージ
キーボード・ショートカットを「xbindkeys」で設定します。
インストールはこんな感じ(debianの場合)。
$ sudo apt install xbindkeys
ウィンドウを配置するコマンドの改良
前々回に作ったコマンド「winpos」を以下のように修正します。
#!/bin/bash
id=`xdotool getwindowfocus`
if [ $1 = "left" ]; then
w=638;h=1040
x=1;y=1
elif [ $1 = "right" ]; then
w=1278;h=1040
x=641;y=1
else
w=1918;h=1040
x=1;y=1
fi
xdotool windowsize $id $w $h
xdotool windowmove $id $x $y
xdotool mousemove $x $y
xdotool windowfocus $id
xdotool windowraise $id
- このファイル「winpos」は、パスの通ったデレクトリに保存し、パーミッションを755に設定します。
- 解像度1920×1080専用です。
キーボード・ショートカットの設定
ファイル「~/.xbindkeysrc」を作成し、以下のように書き込みます。
前回作ったコマンド「winring」や今回修正したコマンド「winpos」はここで使います。
"winring"
Alt+Tab
"winpos left"
Shift+Mod4 + j
"winpos right"
Shift+Mod4 + k
"winpos full"
Shift+Mod4 + f
"xdotool getwindowfocus | xargs -I@ xdotool windowkill @"
Shift+Mod4 + c
"mlterm"
Shift+Mod4 + t
"dmenu_run"
Shift+Mod4 + d
key | 説明 |
---|---|
Alt+Tab | ウィンドウのフォーカスを切り替える |
Shift+Mod4+j | ウィンドウを左側に配置 |
Shift+Mod4+k | ウィンドウを右側に配置 |
Shift+Mod4+f | ウィンドウを全画面表示 |
Shift+Mod4+c | ウィンドウを落とす |
Shift+Mod4+t | ターミナルエミュレータを起動(お好みで) |
Shift+Mod4+d | メニューを起動(お好みで) |
- 「Mod4」とは、いわゆるウィンドウキーのことです。
~/.xinitrc
~/.xinitrcはこんな感じです。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
fcitx-autostart
setxkbmap -model jp106 -layout jp &
xrandr --output VGA-1 --mode 1920x1080
xbindkeys &
mlterm
- ターミナルエミュレータはお好みで。
- ターミナルエミュレータの起動には「exec」を付けない方がいいです。
- パネルは起動させないほうがいいです。必要ないし、ウィンドウのフォーカスを切り替える際に不具合がでるから(宿題だな)。
終わりに
これで仮想コンソールから「startx」を実行すればGUIが起動します。
ウィンドウのタイトルバーは表示されないし、ウィンドウのリサイズや移動は自由じゃないけど、これで十分。
gimpのような複数ウィンドウのアプリには対応できません。
でもいいんです。めったに使わないから。
次回は、パネルを表示させたときの不具合をなんとかしてみます。
前々回と前回で、ウィンドウマネージャを使わないGUI環境を構築しました。今回は、パネルを表示させた場合の不具合を修正してみます。
というわけで、今回はこれにて。