はじめに
私はVim(Neovim)を使ってコードを書いています.私は動画を観ながらコードを書くことが多いのですが,Macではブラウザ上でのyoutubeのfull screenモードの上にVim(正確にはターミナルapp)を展開できないので,大きくともシアターモードあるいはブラウザのズームによる拡大の上でvimを重ねるしかありません.どちらにせよPCのモニター全体に動画を表示することができません.(しかもブラウザでyoutubeを見る場合はタブやメニューが有,ただし設定次第では消せるかも)
そこで,geektoolというアプリケーションを用いてhtmlページをPCモニター全体に表示しターミナルアプリの透明にすることによりVimでコードを書きながらyoutube動画をフルスクリーンで視聴できるようにします.
そもそも...
最近はMacしか触っていないのでわかりませんでしたが,windowsやlinuxはやろうとすればブラウザ経由のyoutube動画のフルスクリーンにターミナルを重ねることができるみたいです.Windows,lLinuxユーザの方はなぜこんな回りくどいことを?状態になるかもしれないです.
Macじゃあそれができないんですよ(私が試した限りでは).
この方法で使用するgeektoolですが,これはMac(Linuxでも使用可能かも)用アプリケーションになるので,そういう意味でもMacユーザ向けになります.
私の環境について
IDEのような高級な環境(値段が高いという意味ではない)ではbackgroundを透明に設定できるものはなかなかないと思います.おそらくVimのようなエディタやターミナル経由で起動できるものを使用することになり,今までそれを使用してこなかった方は何を使えば良いかわからないかもしれないです.そこで一例にはなりますが,私の環境を紹介しようと思います.(おそらくこんなに面倒な思いをしてまでマネする人はいないと思が)
使っているもの
Mac book Pro
こんな面倒なことまですることになった理由というか原因です.これを実現するときに初めてWindows使おうかなと思いました.
Alacritty
なんだそれ?と思った方がいるかもしれませんが,Alacrittyはターミナルアプリです.
https://github.com/jwilm/alacritty
仲間ですとMacにデフォルトでインストールされているターミナル(app名です)やiTerm2です.もともとはiTerm2を使っていましたが,Alacrittyに変えました.
理由は私がプログラミング言語としてrustを使っているので,そのrustで作られているAlacrittyに惹かれたからです.それだけです.ただ,体感だとAlacrittyの方がiTerm2より起動が早く感じました.しかし,shellの設定の違いのような別の要因を考えることもできるので,アプリの違いにより早くなったかどうかはわかりません.
Alacrittyは設定をテキストベース(alacritty.yaml)でいじるので慣れていない方は難しいかもしれません.そのときはiTerm2を使うと良いです.多くの方が使用しているので調べやすいと思います.
Alacrittyを使う場合はbackgroundを透明にする際,alacritty.yaml内のbackground_opacityを次のようにすれば良いです.
...# other codesbackground_opacity:0.4# select 0.0~1.0...# other codes
0.0が完全な透明で1.0が不透明になります.
Neovim
エディタです.私は純粋なVimではなくNeovimを使っています.どちらでも問題ないので好きな方を使えば良いです.私は新しく出てきたものを使いたくなりがちなのでNeovimを使っています(本当はもう少ししっかりした理由もありますが).詳しくないのであまりはっきりしたことは言えませんが,ターミナル経由で起動できるものなら別のエディタ(emacsのような)でも背景は透明になるかもしれないので,Vimが必須というわけではありません.もっと言えば背景を透明にできるのであれば単独のアプリとして起動するエディタやIDEでも問題ありません.
使用方法
私のリポジトリのREADME.mdに使用方法は記してあるので,もし私と同じように動画を観ながら(単一モニターしかない状況でフルスクリーンモードで観ながら)コードを書きたいという欲張りな方(効率性,集中力なんて興味ない方)はそちらを見てください.
https://github.com/faluna/vim-bg-youtube
ただ汎用的に作っているわけではないので,現在はyoutubeのplaylist idから動画を再生します.単一の動画をリピートし続けるような別の設定をしたい場合は自分でコードを変更していただく必要があります.Youtube-IFramePlayerAPIの使い方は公式か以下の記事でGeekToolの使い方も含めて解説している記事がありますのでそちらを参照してください.というか私はこの記事を参考にして作成しました.
GeekToolとYoutube-IFramePlayerAPIを使って、MacでWallpaper Engineを再現する
最後に
多くの需要があるような機能は誰かしらが実現してくれますが,このようなマイナー要望はどうしても自分で作成する必要があり,しかもなかなか記事もないです.というか数件(片手で数えるくらい)しかありませんでした.
そこまでというか全く難しいことはしていませんが,同じような要望を持っている方の役にたてば幸いです.
同じことをしたい方にこれを使って欲しいというより,これを元により良いものを作っていく参考になればと思います.