diff --git a/home/dot_config/tabby/plugins/run_onchange_after_install-tabby-plugins.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_53-tabby.tmpl similarity index 93% rename from home/dot_config/tabby/plugins/run_onchange_after_install-tabby-plugins.tmpl rename to home/.chezmoiscripts/universal/run_onchange_after_53-tabby.tmpl index bbccaae7..96e6611a 100644 --- a/home/dot_config/tabby/plugins/run_onchange_after_install-tabby-plugins.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_53-tabby.tmpl @@ -1,3 +1,4 @@ +{{- if ne .host.distro.family "windows" -}} #!/usr/bin/env bash {{ includeTemplate "universal/profile" }} @@ -15,3 +16,5 @@ if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/tabby/plugins/package-lock.json" ]; t else logg info 'Skipping Tabby plugin installation because is not present' fi + +{{ end -}} diff --git a/home/Vagrantfile b/home/Vagrantfile index 51426726..1edf4a19 100644 --- a/home/Vagrantfile +++ b/home/Vagrantfile @@ -4,17 +4,20 @@ Vagrant.require_version ">= 1.6.2" nodes = [ - { :hostname => 'altair', :ip => '192.168.14.41', :box => 'Beta/Archlinux' }, - { :hostname => 'caph', :ip => '192.168.14.42', :box => 'Beta/CentOS-Stream-9' }, - { :hostname => 'denab', :ip => '192.168.14.43', :box => 'Beta/Debian-11' }, - { :hostname => 'fulu', :ip => '192.168.14.44', :box => 'Beta/Fedora-37' }, - { :hostname => 'mira', :ip => '192.168.14.45', :box => 'Beta/macOS-13', :ram => 8192 }, - { :hostname => 'ukdah', :ip => '192.168.14.46', :box => 'Beta/Ubuntu-22' }, - { :hostname => 'wazn', :ip => '192.168.14.47', :box => 'Beta/Windows-11', :ram => 4096 } + { :hostname => 'altair', :desc => 'Archlinux', :ip => '192.168.14.41', :box => 'Beta/Archlinux' }, + { :hostname => 'caph', :desc => 'CentOS 9 Stream', :ip => '192.168.14.42', :box => 'Beta/CentOS-Stream-9' }, + { :hostname => 'denab', :desc => 'Debian 11', :ip => '192.168.14.43', :box => 'Beta/Debian-11' }, + { :hostname => 'fulu', :desc => 'Fedora 37', :ip => '192.168.14.44', :box => 'Beta/Fedora-37' }, + { :hostname => 'mira', :desc => 'macOS 13', :ip => '192.168.14.45', :box => 'Beta/macOS-13', :cpus => 4, :ram => 8192 }, + { :hostname => 'ukdah', :desc => 'Ubuntu 22.04', :ip => '192.168.14.46', :box => 'Beta/Ubuntu-22' }, + { :hostname => 'wazn', :desc => 'Windows 11', :ip => '192.168.14.47', :box => 'Beta/Windows-11', :cpus => 4, :ram => 4096 } ] Vagrant.configure("2") do |config| nodes.each do |node| + config.ssh.password = "vagrant" + config.ssh.username = "vagrant" + config.vm.define node[:hostname] do |nodeconfig| nodeconfig.vm.box = node[:box] nodeconfig.vm.hostname = node[:hostname] @@ -25,21 +28,98 @@ Vagrant.configure("2") do |config| nodeconfig.vm.network :forwarded_port, guest: 443, host: 52443, id: "https", auto_correct: true nodeconfig.vm.network :forwarded_port, guest: 3389, host: 53389, id: "rdp", auto_correct: true + cpus = node[:cpu] ? node[:cpu] : 2 memory = node[:ram] ? node[:ram] : 2048 - nodeconfig.vm.provider :virtualbox do |vb| - vb.customize [ + + nodeconfig.vm.provider :hyperv do |v| + v.cpus = cpus + v.maxmemory = memory + v.vmname = node[:desc] + end + + nodeconfig.vm.provider :virtualbox do |v| + v.check_guest_additions = true + v.cpus = cpus + v.customize [ "modifyvm", :id, "--cpuexecutioncap", "50", "--memory", memory.to_s ] + v.customize ["modifyvm", :id, "--accelerate3d", "on"] + v.customize ["modifyvm", :id, "--clipboard", "bidirectional"] + v.customize ["modifyvm", :id, "--graphicscontroller", "vmsvga"] + v.customize ["modifyvm", :id, "--hwvirtex", "on"] + v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] + v.customize ["modifyvm", :id, "--vram", "256"] + v.customize ["setextradata", "global", "GUI/SuppressMessages", "all"] + v.gui = true + v.memory = memory + v.name = node[:desc] end - nodeconfig.vm.provider :parallels do |parallels| + + nodeconfig.vm.provider :parallels do |v| + v.cpus = cpus + v.memory = memory + v.name = node[:desc] + v.update_guest_tools = true + end + + nodeconfig.vm.provider :libvirt do |v, override| + v.cpus = cpus + v.memory = memory + # Use WinRM for the default synced folder; or disable it if + # WinRM is not available. Linux hosts don't support SMB, + # and Windows guests don't support NFS/9P/rsync + # Source: https://github.com/Cimpress-MCP/vagrant-winrm-syncedfolders + if Vagrant.has_plugin?("vagrant-winrm-syncedfolders") + override.vm.synced_folder ".", "/vagrant", type: "winrm" + else + override.vm.synced_folder ".", "/vagrant", disabled: true + end + # Enable Hyper-V enlightments - Source: https://blog.wikichoon.com/2014/07/enabling-hyper-v-enlightenments-with-kvm.html + v.hyperv_feature :name => 'stimer', :state => 'on' + v.hyperv_feature :name => 'relaxed', :state => 'on' + v.hyperv_feature :name => 'vapic', :state => 'on' + v.hyperv_feature :name => 'synic', :state => 'on' + end + + nodeconfig.vm.provider :vmware_fusion do |v| + v.gui = true + v.vmx["ethernet0.virtualDev"] = "vmxnet3" + v.vmx["gui.fitGuestUsingNativeDisplayResolution"] = "TRUE" + v.vmx["gui.fullScreenAtPowerOn"] = "TRUE" + v.vmx["gui.lastPoweredViewMode"] = "fullscreen" + v.vmx["gui.viewModeAtPowerOn"] = "fullscreen" + v.vmx["memsize"] = memory.to_s + v.vmx["mks.enable3d"] = "TRUE" + v.vmx["mks.forceDiscreteGPU"] = "TRUE" + v.vmx["numvcpus"] = cpus.to_s + v.vmx["RemoteDisplay.vnc.enabled"] = "TRUE" + v.vmx["RemoteDisplay.vnc.port"] = "5900" + v.vmx["sound.autodetect"] = "TRUE" + v.vmx["sound.present"] = "TRUE" + v.vmx["sound.startConnected"] = "TRUE" + end + + nodeconfig.vm.provider :vmware_workstation do |v| + v.gui = true + v.vmx["ethernet0.virtualDev"] = "vmxnet3" + v.vmx["gui.fitGuestUsingNativeDisplayResolution"] = "TRUE" + v.vmx["gui.fullScreenAtPowerOn"] = "TRUE" + v.vmx["gui.lastPoweredViewMode"] = "fullscreen" + v.vmx["gui.viewModeAtPowerOn"] = "fullscreen" + v.vmx["memsize"] = memory.to_s + v.vmx["mks.enable3d"] = "TRUE" + v.vmx["mks.forceDiscreteGPU"] = "TRUE" + v.vmx["numvcpus"] = cpus.to_s + v.vmx["RemoteDisplay.vnc.enabled"] = "TRUE" + v.vmx["RemoteDisplay.vnc.port"] = "5900" + v.vmx["sound.autodetect"] = "TRUE" + v.vmx["sound.present"] = "TRUE" + v.vmx["sound.startConnected"] = "TRUE" end end end - config.vm.provision :ansible do |ansible| - ansible.playbook = "main.yml" - ansible.inventory_path = "inventories/vagrant.yml" - end + config.vm.provision "shell", path: "https://install.doctor/start" end diff --git a/home/dot_local/share/vagrant.d/Vagrantfile b/home/dot_local/share/vagrant.d/Vagrantfile index 40760265..1edf4a19 100644 --- a/home/dot_local/share/vagrant.d/Vagrantfile +++ b/home/dot_local/share/vagrant.d/Vagrantfile @@ -101,7 +101,7 @@ Vagrant.configure("2") do |config| v.vmx["sound.startConnected"] = "TRUE" end - os.vm.provider :vmware_workstation do |v| + nodeconfig.vm.provider :vmware_workstation do |v| v.gui = true v.vmx["ethernet0.virtualDev"] = "vmxnet3" v.vmx["gui.fitGuestUsingNativeDisplayResolution"] = "TRUE" @@ -121,8 +121,5 @@ Vagrant.configure("2") do |config| end end - config.vm.provision :ansible do |ansible| - ansible.playbook = "main.yml" - ansible.inventory_path = "inventories/vagrant.yml" - end + config.vm.provision "shell", path: "https://install.doctor/start" end diff --git a/software.yml b/software.yml index a36101de..b0d00d6f 100644 --- a/software.yml +++ b/software.yml @@ -7347,12 +7347,16 @@ softwarePackages: _home: https://tabby.sh/ _name: Tabby _type: application + _snapClassic: true + _notes: TODO Update the direct links periodically and keep eye out for Snap / Flatpak _when:cask: '! test -d /Applications/Tabby.app' ansible:linux: professormanhattan.tabby + apt: https://github.com/Eugeny/tabby/releases/download/v1.0.188/tabby-1.0.188-linux-x64.deb cask: tabby choco: tabby + dnf: https://github.com/Eugeny/tabby/releases/download/v1.0.188/tabby-1.0.188-linux-x64.rpm github: github.com/Eugeny/tabby - _service: false + pacman: https://github.com/Eugeny/tabby/releases/download/v1.0.188/tabby-1.0.188-linux-x64.pacman tailscale: _bin: tailscale _desc: '[Tailscale](https://tailscale.com/) lets you easily manage access to private resources, quickly SSH into devices on your network, and work securely from anywhere in the world.'