Vagrantfileはルビスクリプトですが、残念ながらルビーはこれについて知りません(少なくとも私は知っていません)。そしてあなたはもっと知る必要がありますすべてのシステムをチェックするのは簡単ではありません。
$ system_profiler SPDisplaysDataType | grep Resolution | wc -l
2
:ので、あなたが持っているどのように多くの解像度チェックすることができるモニターの数をカウントする
Mac上
、あなたはsystem_profiler SPDisplaysDataType
のコマンドを実行して持っているどのように多くのモニターを見つけることができ、例えば
$ system_profiler SPDisplaysDataType
Graphics/Displays:
Intel HD Graphics 4000:
Chipset Model: Intel HD Graphics 4000
Type: GPU
Bus: Built-In
VRAM (Dynamic, Max): 1536 MB
Vendor: Intel (0x8086)
Device ID: 0x0166
Revision ID: 0x0009
Automatic Graphics Switching: Supported
gMux Version: 3.2.19 [3.2.8]
Metal: Supported
NVIDIA GeForce GT 650M:
Chipset Model: NVIDIA GeForce GT 650M
Type: GPU
Bus: PCIe
PCIe Lane Width: x8
VRAM (Total): 1024 MB
Vendor: NVIDIA (0x10de)
Device ID: 0x0fd5
Revision ID: 0x00a2
ROM Revision: 3688
Automatic Graphics Switching: Supported
gMux Version: 3.2.19 [3.2.8]
Metal: Supported
Displays:
Color LCD:
Display Type: Retina LCD
Resolution: 2880 x 1800 Retina
Retina: Yes
Pixel Depth: 32-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Automatically Adjust Brightness: Yes
Built-In: Yes
PA279:
Resolution: 1920 x 1080 @ 60Hz (1080p)
Pixel Depth: 32-Bit Color (ARGB8888)
Display Serial Number: E2LMQS044803
Mirror: Off
Online: Yes
Rotation: Supported
Automatically Adjust Brightness: No
Connection Type: DisplayPort
Television: Yes
これはあなたのVagrantfileでそれを置くことができるように動作します:
monitor = 1
host = RbConfig::CONFIG['host_os']
if host =~ /darwin/
monitor = `system_profiler SPDisplaysDataType | grep Resolution | wc -l`.to_i
#elseif host =~ /linux/
#maybe there's a command for linux
#elseif host =~ /mswin|mingw|cygwin/
#maybe there's a command for windows
end
config.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.customize ["modifyvm", :id, "--vram", "128"]
vb.customize ["modifyvm", :id, "--monitorcount", "#{monitor}"]
end
私はLinuxの世界に相当するコマンドがあると確信しています。