ウィンドウマネージャなしでGUI環境を構築しよう(その2)

はじめに

こんにちは、野村です。

前回は、ウィンドウのフォーカスを切り替える仕組みを作ってみました。

ウィンドウマネージャなしでGUI環境を構築しよう(その1)
ウィンドウマネージャなしで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環境を構築しよう(その3)
前々回と前回で、ウィンドウマネージャを使わないGUI環境を構築しました。今回は、パネルを表示させた場合の不具合を修正してみます。

というわけで、今回はこれにて。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

野村 野村のプロフィール
メインPCはWindows10のVirtualBox上のFreeBSD。Linux/Unixの小ネタを求めて日々右往左往してたりする。