i3 wm環境でmpvを任意の場所に

最近PC作業中に動画をウィンドウ表示,最前面に表示しています.
i3 wm環境でファイラーからmpvで動画を再生,フローティングウィンドウ表示に切り替え,サイズ調整,位置調整,全てのワークスペースで表示としていますが毎回これをやるのが面倒なので設定しました.

実際の操作は以下のような感じ.たくさんの動画を一度に開けばまだいいですが,1つの動画を何度も再生するには面倒です.

  • Mod4+shift+spaceでフローティングウィンドウに切り替え

  • Mod4+rでリサイズモードに, jkl;でサイズ調整,escでリサイズモード解除

  • Mod4+shift+j k l ;で位置調整

  • Mod4+shift+wで全てのワークスペースで表示

Note

全てのワークスペースに表示はこの設定を使っています.

i3 wmでの設定

まずi3 wmの設定でmpvをフローティングウィンドウで起動,スティッキーを有効にして全ワークスペースで表示されるようにします.

$ grep mpv ~/.config/i3/config
for_window [class="mpv"] floating enable
for_window [class="mpv"] sticky enable

Mod4+shift+rで設定反映して,mpvを起動して動作確認します.

mpvの設定

次にmpvの設定ファイルでウィンドウサイズや位置を設定します.
mpvの設定ファイルはパッケージに含まれているものをベースにしました.すでにある場合はそれを利用しましょう.

$ ls ~/.config/mpv/mpv.conf
ls: cannot access '/home/matoken/.config/mpv/mpv.conf': No such file or directory
$ mkdir ~/config/mpv
$ zcat /usr/share/doc/mpv/mpv.conf.gz > ~/.config/mpv/mpv.conf

次に好みのテキストエディタで~/.config/mpv/mpv.confを開いて編集します.
#geometry=50%:50% の行をコメントを消し以下のように設定しました.

geometry=45%-50-80

geometryのオプション形式は以下のようになっています.

[W[%][xH[%]]][{+-}X[%]{+-}Y[%]] | [X[%]:Y[%]]

ここではWを45%にして画面の45%のサイズに,-50で右下から50pix左に,-80で右下から80pix上に配置しています.

はじめWxHは動画に対する設定だと思い100%を超える設定がうまく行かないと悩んでしまいました.
こういうときコマンドラインから実行するとわかりやすいです.

$ mpv --geometry=120%
Option geometry: invalid geometry: '120%'
Valid format: [W[%][xH[%]]][{+-}X[%]{+-}Y[%]] | [X[%]:Y[%]]
Error parsing option geometry (option parameter could not be parsed)
Setting commandline option --geometry=120% failed.
Exiting... (Fatal error)

環境

$ dpkg-query -W mpv i3
i3      4.24-1
mpv     0.38.0-1+b1
$ lsb_release -dr
Description:    Debian GNU/Linux trixie/sid
Release:        n/a
$ arch
x86_64

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)