動機
- 普段外部ディスプレイを使っているが、たまにmacのディスプレイを使うので、その時に解像度を楽に切り替えたい
- macのディスプレイに合った解像度がkali linuxの初期の解像度一覧になかった
これらの問題を解決するために、kali linuxのターミナル上からコマンドを打つことによって、すぐに解像度を切り替えられるようにした。仮想環境が不調になったとき、すぐ環境を破壊してまた構築することが多いので備忘録として残しておく。
環境
- M2 macbook air
- macにUTMをインストールし,そこでkali linux を動かしている
ディスプレイ情報の取得
まず、下のコマンドによってディスプレイ情報を取得する。
xrandr
コマンドを打って帰ってきたVirtual-1 connected primary 1920x180+0+0 (normal left inverted right x axis y axis) 325mm x 203mm
みたいな部分のディスプレイ名っぽいやつ(今回の場合はVirtual-1
)を控えておく。
モードラインの取得
以下のコマンドにより、モードラインの取得を行う。
gtf 2560 1600 60
今回は解像度2560x1620、リフレッシュレート60で設定している。コマンドの結果はこんな感じ。
# 2560x1600 @ 60.00 Hz (GTF) hsync: 99.36 kHz; pclk: 348.16 MHz
Modeline "2560x1600_60.00" 348.16 2560 2752 3032 3504 1600 1601 1604 1656 -HSync +Vsync
この結果の"2560x1600_60.00" 348.16 2560 2752 3032 3504 1600 1601 1604 1656 -HSync +Vsync
の部分を控えておく。
シェルを調べる
シェルは
which $SHELL
によって調べられる。自分の環境ではzshなので、.zshrcファイルを編集する。
調べた情報を元にコマンドを作る
シェルスクリプトをぶち込むディレクトリをつくる
Mac(Catalina)でのzshの自作コマンドの作り方という記事がとてもわかりやすかったので参考にした.シェルスクリプトの内容以外はぶっちゃけこの記事を見ればわかるが、一応手順を書く。
今回は参考記事に従ってmycommands
というディレクトリをホームディレクトリ直下に作って、そこにスクリプトファイルをぶち込むことにする。
パスを通す
今回シェルはzshなので.zshrc
に
export PATH=$HOME/mycommands:$PATH
という記述を追加する。.zshrc
はホームディレクトリにある。ない場合は作成して上の記述を追加する。
.zshrc
の内容を反映させる
source
コマンドやターミナルの開き直しで反映するっぽいが、なんか確実そうなのでおれはいつも再起動してる(本当に確実なのか??)
シェルスクリプトファイルを書く
先ほど作ったmycommands
ディレクトリの下にシェルスクリプトファイルをぶち込む。今回はchreso
という名前のファイルを作った。この時拡張子は無しにする。chreso
の内容は以下の通り。
#!/bin/zsh
xrandr --newmode "2560x1600_60.00" 348.16 2560 2752 3032 3504 1600 1601 1604 1656 -HSync +Vsync
xrandr --addmode Virtual-1 2560x1600_60.00
xrandr --output Virtual-1 --mode 2560x1600_60.00
xrandr --newmode "2560x1600_60.00" 348.16 2560 2752 3032 3504 1600 1601 1604 1656 -HSync +Vsync
やVirtual
は先程控えておいたものに適宜置き換える。
シェルスクリプトファイルへの権限の設定
chmod
を使って権限を設定する
sudo chmod 755 ~/mycommands/chreso
コマンドの呼び出し
あとはターミナルで
chreso
と打てば解像度が変わる!(はず)
最後に
読んでいただいてありがとうございました!!
はじめて書いたqiitaの記事なのでお手柔らかに…