2025年3月2日日曜日

ubuntuのランチャーに特定の大きさと位置でのchromium起動メニューを追加


背景

twitter(現x)を見るためにブラウザを起動して、サイトに入って、枠を都合が良い大きさに整える一連の流れが面倒だったので、その動作をコマンド化してデスクトップアプリとしてランチャーに登録しました。
備忘録として対応内容を記事に残します。

使ったもの

  • ubuntu22.04
  • chromium
    ブラウザです。
    下記のコマンドでインストールできます。
    sudo apt install chromium-browser
  • xdotool
    デスクトップの操作を行えるコマンドです。
    下記のコマンドでインストールできます。
    sudo apt install xdotool

desktopファイルを作成

下記のファイルを作成してubuntuのランチャーを何回か開くとtwitterメニューが出てきます。
~/.local/share/applications/twitter.desktop
[Desktop Entry]
Name=Twitter
Exec=bash -c "chromium --new-window https://twitter.com & sleep 5 && xdotool search --name \" X \" windowsize 200 3000 windowmove 4000 0"
Terminal=false
Type=Application

処理内容は「chtomiumでtwitterを開く、5秒待つ、Twitterを開いているchromiumを幅200高さ3000に変更して左上の座標上から0左から4000に移動」です。
chromiumの起動とtwitterを開くのに5秒以上かかると大きさ変更と移動がされないことがあります。

ランチャーでtwitterと検索すると出てきます。


実行すると画面の端に幅200pxでtwitterを開いたchromiumが表示されます。


参考
ubuntuのアプリ選択画面にアプリを出すための設定方法
xdotool を使ったGUI操作で快適スクレイピング
Resizung a Linux (Ubuntu/Xubuntu/Kubuntu) application window exactly

枠の大きさ変更にxdotoolを使うのは、chromiumの起動コマンドではプロセス起動時しか大きさと位置を指定できないから

今回の件に取り組み始めたときはchromiumのコマンドでwindow-sizeとwindow-positionを指定できるのでそれで十分だと思いましたが、既に他のchromiumの枠(window)を開いている場合は指定したwindow-sizeが無視されて既存の枠と同じ大きさで開かれると分かりました。
# 既にchromiumを開いていると大きさと位置の指定が無視されるコマンド
chromium --new-window https://twitter.com --window-size="200,3000" --window-position="4000,0"

この問題は既に報告されていましたが、解決される雰囲気では無かったです。
app-window-size is ignored if window-size has already been used
Chrome should respect window-size and window-position when new-window argument is present, and ignore for subsequent window.open() calls

ということで、chromiumのみでの実現は諦め、ubuntuのxwindow上の操作ができるxdotoolに頼りました。

おわり

chromiumとxdotoolを組み合わせてtwitterを良い具合に閲覧できるブラウザを表示するメニューをubuntuのランチャーに追加できました。

参考

ubuntuのアプリ選択画面にアプリを出すための設定方法
xdotool を使ったGUI操作で快適スクレイピング
Resizung a Linux (Ubuntu/Xubuntu/Kubuntu) application window exactly

0 件のコメント :