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

GDPMicroPCでChrome Remote Desktopをつなぐ

GDPMicroPCは電車内で利用できて好き。
でも開発しにくいから自宅ではChrome Remote Desktopでアクセスできるようにしたいよねって話。

詰まる原因は2点

  • 公式で配布されているubuntu mateはLXDE系
    • →仮想のディスプレイポートが貼れなくて、表示されている画面を共有するようにスクリプトの修正が必要
  • 本来縦長のディスプレイを利用しているせいで縦横が逆で表示される
    • デフォルトでxrandr -o rightを掛けなければいけない

その1

cat <<EOF >$HOME/.chrome-remote-desktop-session
DESKTOP_SESSION=mate XDG_CURRENT_DESKTOP=MATE XDG_RUNTIME_DIR=/run/user/$(id -u) exec /usr/sbin/lightdm-session mate-session
EOF

その2

  • xrandr -o rightの指定はどこかでする必要がある
    • 仮想のxorgの初期設定 ← コメントアウト済み
    • 一番最初のxrandr ← コメントアウト済み
    • リサイズ時に走るxrandr ← これを修正する
    • Chrome Remote Desktopで接続後にコンソールを叩く
      • 一応 xrandr --output DSI1 --mode 720x1280 -o right って叩くと直る
/opt/google/chrome-remote-desktop/chrome-remote-desktop のリサイズ監視部分はここ
def watch_for_resolution_changes(initial_size):
 for _ in range(30):
    time.sleep(1)
    xrandr_output = subprocess.Popen(["xrandr"],
                                     stdout=subprocess.PIPE).communicate()[0]
    matches = re.search(r'current (\d+) x (\d+), maximum (\d+) x (\d+)',
                        xrandr_output)


    if current_size != initial_size:
      if current_size == maximum_size:
        label = "%dx%d" % initial_size
        args = ["xrandr", "-s", label]
        subprocess.call(args)
        args = ["xrandr", "--dpi", "96"]
        subprocess.call(args)
        args = ["xrandr", "-o", "right"] # 追記
        subprocess.call(args) # 追記

余談

  • GDPMicroPCのデフォルト解像度は以下の種類である。
    • 720x1280,640x480,720x405,360x640,640x360
    • 増やしたいときは多分 xrandr --addmode DSI1 ... とか使う
    • 本来、Chrome Remote Desktopにも自動で解像度を増やしてくれる環境変数オプションはある。
      • CHROME_REMOTE_DESKTOP_DEFAULT_DESKTOP_SIZES
      • CHROME_REMOTE_DESKTOP_USE_XORG
        • でも、この辺の変数はスクリプトの修正をした時点でコメントアウトされた関数なので、今回は特に意味がなかったりする
  • 若干、リサイズ時の縦横比が気になるけど直せなかったので放置した。
  • /opt/google/chrome-remote-desktop/chrome-remote-desktop は更新されるときにたまに修正内容が吹き飛ぶのでバックアップはしよう
  • sytemctlでChrome Remote Desktopを明示的に扱える
    • sudo systemctl start chrome-remote-desktop.service
    • 実体は /etc/init.d/chrome-remote-desktop にあって /opt/google/chrome-remote-desktop/chrome-remote-desktop を叩くsh
      • /opt/google/chrome-remote-desktop/chrome-remote-desktop --start 的なことをしている
  • GDPMicroPCのxorgの初期設定は/usr/share/X11/xorg.conf.d/40-gpd-micropc-monitor.confに書かれてる
    • xrandrで叩いたときのoutputラベル名として、ここで設定されたDSI1とか、DSI-1とかの名前があることがわかって嬉しいね!!
    • ので、gnome系とかで仮想のxorgの初期設定が効く人は、/opt/google/chrome-remote-desktop/chrome-remote-desktopのSection "Monitor" に Option "Rotate" "right"って書くだけで行ける可能性はあるかも
# GPD MicroPC (modesetting)
Section "Monitor"
  Identifier "DSI-1"
  Option     "Rotate"  "right"
EndSection


# GPD MicroPC (xorg-video-intel)
Section "Monitor"
  Identifier "DSI1"
  Option     "Rotate"  "right"
EndSection

参考;

http://kapper1224.sblo.jp/article/186180635.html
https://wiki.archlinux.jp/index.php/Xrandr
https://webnetforce.net/ubuntu-chrome-remote-trouble/
https://qiita.com/hiro_mayo/items/db8ddcea600e8bfbdd5f
https://qiita.com/k_ikasumipowder/items/c173fb92cf12c75b2375

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
ユーザーは見つかりませんでした