blob: 446bfb3f7dea551b1ddba9920f450b28eac52d22 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#!/bin/sh
virtdir=~/.local/share/virt
halfram() { awk '/^MemTotal/ { printf "%dM\n", $2/2/1024 }' /proc/meminfo; } # Needs to be either in M or G according to man page
halfthreads() { awk '/^processor/ { cpus++ } END{ print cpus/2 }' /proc/cpuinfo; }
startvm() {
qemu-system-x86_64 \
-enable-kvm \
-cpu host \
-m $(halfram) \
-smp $(halfthreads) \
-vga virtio \
-display sdl,gl=on \
-audiodev pa,id=pa1,server=/run/user/1000/pulse/native \
-soundhw all \
-boot menu=on \
-drive file="$virtdir/$1.img" \
; }
vms="$(ls $virtdir)"
[ -n "$1" ] && vm="$1" || vm=$(echo "$vms" | sed 's/\.img//' | dmenu -p "Choose Virtual Machine Image or Enter Name for New Virtual Machine")
if echo "$vms" | grep "^$vm.img$" >/dev/null; then
startvm "$vm"
else
qemu-img create -f qcow2 "$virtdir/$vm.img" $(echo -n "4G\n8G\n16G\n32G" | dmenu -p "Choose Size of Virtual Machine \"$vm\"")
fi
|