Linux as an IDE
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Sublime Text 3 running side by side with IRB in a macOS window

PetPenguin is my custom configuration of Ubuntu 16.04 designed to run in VirtualBox on macOS hosts. It tries to mimic a “normal” GUI app running on your Mac. The primary purpose of this project is to provide an accessible virtual machine template for experimentation and running software native to Linux. The configuration is highly opinionated and is unlikely to be useful for anyone but myself. This is also the place where I store my dot-files.

PetPenguin is alpha software.

Installation (Easy)

Requires Vagrant and VirtualBox.

  1. Clone this repo: git clone
  2. Open the clonned directory: cd PetPenguin.
  3. Run vagrant up.
  4. Run vagrant reload if you notice any issues after the installation.

Installation (Advanced)

Requires VirtualBox.

  1. Create a new VirtualBox VM with the following settings:
  • 2048+ MB RAM, 2+ CPUs, 128 MB Video Memory (3D acceleration enabled);
  • enable KVM paravirtualization (VT-x/AMD-V, Nested Paging, PAE/NX);
  • for sound, select Core audio driver, Intel HD Audio;
  • enable bi-directional clipboard.
  1. Install Ubuntu 16.04 Minimal.
  2. Install VirtualBox Guest Additions.
  3. Clone this repo: git clone
  4. Open the clonned directory: cd PetPenguin.
  5. Run ./

Installing dot-files on Mac

  1. Clone this repo: git clone
  2. Open the clonned directory: cd PetPenguin.
  3. Run ./

Usage Instructions


Standard macOS shortcuts should work in the terminal and most GTK apps. Many host shortcuts should behave normally (e.g., spotlight, taking screenshots, switching between input sources, etc.).

Shortcut Action
+1, ..., +0 Switch between IDE tabs.
+Shift+1 ..., +Shift+0 Move current panel to the specified tab.
+Shift+Enter Run a terminal (st+tmux).
+J Select the next panel.
+K Select the previous panel.
+Enter Expand the selected panel.
+Shift+W Close the selected panel.
+Shift+Space Show the application launcher (dmenu).
++ Widen the expanded panel.
+- Shrink the expanded panel.
+Shift++ Disable the expanded panel (makes all panels equal).
+Shift+- Enable the expanded panel (default).
+Shift+Q Restart the UI (X11).

Useful Utilities


Good old pbcopy that works between the host and the guest VM. Put any terminal output to to the clipboard by running echo "anything" | pbcopy.


Most Linux apps will use the $BROWSER environment variable to determine your current browser. Unless you want to run the browser inside the VM (can be installed from APT), impostor will attempt to SSH to the host (assumed to be at or specified via the $MACOS_SSH_HOSTNAME environment variable) and open the URL in Safari. Any local URLs will be opened in Surf.