<palign="center">Made with 💝 for <imgsrc=".github/tux.png"align="top"width="18"/></p>
<palign="center">Made with 💝 for <imgsrc=".github/tux.png"align="top"width="18"/></p>
## Introduction
## Introduction
Quickemu is a very simple script to "manage" Qemu virtual machines. Each
Quickemu is a simple script to *"manage"* Qemu virtual machines. Each virtual
virtual machine configuration is broadly the same requiring minimal setup. The
machine configuration is a few lines long requiring minimal setup. The
main objective of the project is to enable quick testing of desktop Linux
main objective of the project is to enable quick testing of desktop Linux
distributions where the virtual machines can be stored anywhere, such as
distributions where the virtual machines configuration and disk images can be
external USB storage.
stored anywhere, such as external USB storage or your home directory. **Windows
and macOS guests are also supported.**
Quickemu is opinionated and will attempt to *"do the right thing"* rather than
Quickemu will attempt to *"do the right thing"* rather than expose rich
expose rich configuration options. Quickemu is a wrapper for [QEMU](https://www.qemu.org/). See the video where I explain some of my motivations for creating this script.
configuration options. Quickemu is a wrapper for [QEMU](https://www.qemu.org/).
See the video where I explain some of my motivations for creating this script.
We have a Discord for this project: [![Discord](https://img.shields.io/discord/712850672223125565?color=0C306A&label=WimpysWorld%20Discord&logo=Discord&logoColor=ffffff&style=flat-square)](https://discord.gg/sNmz3uw)
We have a Discord for this project: [![Discord](https://img.shields.io/discord/712850672223125565?color=0C306A&label=WimpysWorld%20Discord&logo=Discord&logoColor=ffffff&style=flat-square)](https://discord.gg/sNmz3uw)
@ -53,54 +55,24 @@ sudo apt install quickemu
## Usage
## Usage
### Linux
### Linux Guest
* Download a .iso image of a Linux distribution
* Download a .iso image of a Linux distribution
* Create a VM configuration file; for example `ubuntu.conf`
* Create a VM configuration file; for example `ubuntu.conf`
* The **default** `guest_os` is `linux`, so this is optional for Linux VM configs.
* The **default** `guest_os` is `linux`, so this is optional for Linux VM configs.
* The `boot` option enables Legacy BIOS (`legacy`) or EFI (`efi`) booting. `legacy` is the default.
* The `boot` option enables Legacy BIOS (`legacy`) or EFI (`efi`) booting. `legacy` is the default.
`qemu` will always default to the primary monitor to display the VM's window.
`qemu` will always default to the primary monitor to display the VM's window.
Without the `--screen` option, `quickemu` will look for the size of the smallest monitor, and use a size that fits on said monitor.
Without the `--screen` option, `quickemu` will look for the size of the smallest
monitor, and use a size that fits on said monitor.
The `--screen` option forces `quickemu` to use the size of the given monitor to compute the size of the window. **It wont't use that monitor to display the VM's window if it's not the primary monitor**. This is usefull if the primary monitor if not the smallest one, and if the VM's window doesn't need to be moved around.
The `--screen` option forces `quickemu` to use the size of the given monitor to
compute the size of the window. **It wont't use that monitor to display the VM's
window if it's not the primary monitor**. This is useful if the primary monitor
if not the smallest one, and if the VM's window doesn't need to be moved around.
The `--screen` option is also usefull with the `--fullscreen` option, again because `qemu` will always use the primary monitor. In order for the fullscreen mode to work properly, the resolution of the VM's window must match the resolution of the screen.
The `--screen` option is also useful with the `--fullscreen` option, again
because `qemu` will always use the primary monitor. In order for the fullscreen
mode to work properly, the resolution of the VM's window must match the
resolution of the screen.
To know which screen to use, type :
To know which screen to use, type:
```
```bash
xrandr --listmonitors | grep -v Monitors
xrandr --listmonitors | grep -v Monitors
```
```
The command will output something like this :
The command will output something like this:
```
```
0: +*HDMI-0 2560/597x1440/336+1920+0 HDMI-0
0: +*HDMI-0 2560/597x1440/336+1920+0 HDMI-0
1: +DVI-D-0 1920/527x1080/296+0+0 DVI-D-0
1: +DVI-D-0 1920/527x1080/296+0+0 DVI-D-0
```
```
The first number is what needs to be passed to the `--screen` option.
The first number is what needs to be passed to the `--screen` option.
For example :
For example:
```
```bash
quickemu --vm vm.conf --screen 0
quickemu --vm vm.conf --screen 0
```
```
will use my big screen to compute the size of the window, and make it 2048x1152. Without the `--screen` option, it would have used the smallest monitor and make the window 1664x936.
The above uses the 2560x1440 screen to compute the size of the window, which
Quickemu sizes to 2048x1152. Without the `--screen` option, Quickemu would have
used the 1920x1080 monitor which results in a window size of 1664x936.