Help us understand the problem. What is going on with this article?

XWindow の GUI アプリを CUI で操作

「VNC をセカンドディスプレイとして使う on Ubuntu 18.04」
https://qiita.com/nanbuwks/items/d12a98c8d41630c31a55

では、いろいろヘンなことをして実現しているため、いろいろヘンなことが起こります。
image.png

一番には、VNCサブディスプレイ内で残像が無限に更新し続けるという問題があります。
これをごまかすため、適当なアプリウィンドウをVNCサブディスプレイ内で最大化しています。
背景を表示しないようにすればこの問題は解決します。

スライドショー

適当なアプリということで、壁紙ライブラリをスライドショーで表示することにしました。

壁紙アプリとしてristrettoを使います。

image.png
Photo Claudio Schwarz | @purzlbaum

スライドショーアプリとして、以下を選びました。

  • スライドショー時に全画面表示にならない
  • VNCサブディスプレイ内でウィンドウ位置制御ができる(xdotool使用)
  • スライドショー間隔の調整ができる

意外と条件を満たすものが無かった。(選定の詳細はAPPENDIXにて。)

手作業だとめんどくさいのでスクリプトにします。しかしながら本来

 wmctrl -ir  $window_id  -e 0,0,0,1920,1080 # 

だけで大丈夫なはずが、VNCサブディスプレイ内にスライドショーアプリが入ってないとうまくいきません。

起動時にはリアルディスプレイ内部にしか表示されないようなので、以下のようにめんどくさい手順を踏むことにしました。

  • ristrettoを起動して
  • 最大化になっていれば解除
  • 画面境界に移動
  • ristrettoのスライドショーをF5で開始
  • Alt+Spaceでウィンドウのキーボード操作を可能にする
  • 移動メニューを選ぶ
  • 矢印キーで移動
  • エンターで位置確定
  • ウィンドウをVNCサブディスプレイの背景を覆うサイズに変更

このような操作をキーボードから行うのと同じようにスクリプトから操作します。
ristrettoのスライドショーオプションもうまく動かないので、F5キーを押してスライドショーを開始する操作も自動化します。

環境

  • Ubuntu 18.04
  • 使用するツール
    • xdotool
    • wmctrl

画面構成
image.png

スクリプト

ristretto /home/nanbuwks/Downloads/unsplash -s & # ristrettoを壁紙フォルダを指定して起動
xdotool sleep 2 # 起動するまでの待ち時間
window_id=$(xdotool getactivewindow) # restrettoウィンドウIDを取得
echo $window_id # デバッグ用
wmctrl -ir  $window_id -b remove,maximized_vert,maximized_horz # 最大化で起動した場合位置移動ができないため最大化を解除
wmctrl -ir  $window_id  -e 0,0,200,500,500 # 位置を画面端に移動(本来これでVNCサブディスプレイに移動するはずがウィンドウの左端座標が1920位置にしかならない)
xdotool sleep 0.4 
xdotool key F5 # スライドショー開始
xdotool sleep 0.4 
xdotool key alt+space # ウィンドウのキーボード操作を可能にする
xdotool sleep 0.4
xdotool key Down # 移動メニューのために下矢印を2回
xdotool sleep 0.2
xdotool key Down
xdotool sleep 0.2
xdotool key Return # 移動メニュー選択
xdotool sleep 0.1
xdotool key Left # ウィンドウを移動してVNCサブディスプレイ内に
xdotool sleep 0.1
xdotool key Left
xdotool sleep 0.1
xdotool key Left
xdotool sleep 0.1
xdotool key Left
xdotool key Return # 位置確定
wmctrl -ir  $window_id  -e 0,0,0,1920,1080 # VNCサブディスプレイ全体を覆う

APPENDIX

試したスライドショーアプリ

  • eog (Ubuntu標準の画像ビューワ)
  • shotwell
  • nomacs
  • slide
  • geeqie
  • gthumb
  • gwenview
  • viewnior
  • mirage
  • ristretto

と試してristrettoになりました。

nanbuwks
iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com
https://iotlt.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした