Skip to content

Instantly share code, notes, and snippets.

@willpower232
Last active April 16, 2019 13:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save willpower232/92ca4895c512dddab6eeb53cbff37959 to your computer and use it in GitHub Desktop.
Save willpower232/92ca4895c512dddab6eeb53cbff37959 to your computer and use it in GitHub Desktop.
Setting up my perfect development environment in virtualbox

OS

Mint

Definitely more ready out of the box also seems to cope with 3D in Virtualbox better

Standard

save 1.1GB for base install of 5.5GB apt remove mintstick transmission-gtk timeshift thunderbird xed simple-scan rhythmbox redshift-gtk pix xplayer libreoffice-* xviewer hexchat gimp firefox xreader baobab gnome-calendar gnome-calculator gnome-terminal blueberry gufw tomboy && apt autoremove

LMDE

apt install plymouth-themes to fix background weirdness?

Mint-Y-Teal missing?

save 600 MB for base install of 4GB apt remove mintstick transmission-gtk timeshift thunderbird xed simple-scan rhythmbox redshift-gtk pix xplayer libreoffice-* xviewer hexchat gimp firefox xreader baobab gnome-calendar gnome-calculator gnome-terminal blueberry gufw && apt autoremove

Debian

Don't enable 3D maybe? Doesn't look like Virtualbox cares particularly...or maybe try this with ubuntu and then figure out which drivers you should be using. Under virtualbox 6 use VBoxVGA adapter.

if you're running 3d and your background goes weird on login, you need to re apply it. add this script as a startup application with a delay of 5

#!/bin/bash

gsettings set org.cinnamon.desktop.background picture-uri 'file:///home/wh/Pictures/BigBoye_unnecessary_yet_necessary.png'

sleep 2

gsettings set org.cinnamon.desktop.background picture-uri 'file:///home/wh/Pictures/BigBoye.png'

#gsettings set org.cinnamon.desktop.background picture-options 'spanned'
#gsettings set org.cinnamon.desktop.background picture-options 'zoom'

set autologin in /etc/lightdm/lightdm.conf or maybe /etc/lightdm/lightdm.conf.d/something.conf https://unix.stackexchange.com/a/404562

[Seat:*]
autologin-guest=false
autologin-user=USERNAME
autologin-user-timeout=0
allow-guest=false

Debian smallest cd

apt update && apt install software-properties-common && apt-add-repository contrib && apt update && apt install --no-install-recommends cinnamon-core lightdm xserver-xorg gdebi sudo linux-headers-amd64 x11-xserver-utils

Ubuntu smallest cd

As above, swap chromium for chromium-browser, linux-headers-amd64 for linux-headers-generic and add xorg and lightdm-gtk-greeter then sudo systemctl disable systemd-resolved

to fix network manager (pptp for windows) don't forget to comment out the interface that isn't lo in /etc/network/interfaces and then restart networking

apt install network-manager network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome gir1.2-nmgtk-1.0

may need libnm-gtk-dev if gir1.2-nmgtk-1.0 is not the one

Software

apt install sakura chromium(-browser) vim curl git make gcc net-tools fonts-firacode dnsutils feh whois pinentry-gnome3 ttf-ancient-fonts aptitude zip unzip xclip ssh-client

good alternative to network-manager would be wicd but it doesn't support vpn yet :-(

When using mlocate, it is useless to index the shared directories in the locate DB. Therefore, add the directories to PRUNEPATHS in /etc/updatedb.

Install virtualbox additions, set up shared folders, and then add to /etc/crontab

@reboot root sleep 15; mount -o uid=1000,gid=1000 -t vboxsf william.hall /mnt/william.hall
@reboot root sleep 15; mount -o uid=1000,gid=1000 -t vboxsf GitRepos /mnt/gitrepos
@reboot root sleep 15; mount -o uid=1000,gid=1000,fmode=600 -t vboxsf W_DRIVE /mnt/w
@reboot root sleep 15; mount -o uid=1000,gid=1000,fmode=600 -t vboxsf S_DRIVE /mnt/s

set preferred applications from menu. change settings to dark theme and turn off effects and screen saver

chromium blank annoying settings

  • content settings - cookies - keep local data only until you quit your browser

gitconfig, vimrc, bashrc, and git-aware-prompt

. /etc/bash.bashrc

# https://askubuntu.com/a/22043
alias sudo='sudo '

# lol
alias nano='vim'

alias bashphp='docker exec -it -w "$PWD" phpfpm bash'
alias bashnode='bash ~/containers/nodejs/interactive.sh'
alias bashruby='bash ~/containers/ruby/interactive.sh'
alias bashpython='bash ~/containers/python/interactive.sh'

function git {
        if [[ "$1" == "clone" && "$@" != *"--help"* ]]; then
                shift 1
                command git clone --config core.filemode=false "$@"
        else
                command git "$@"
        fi
}

function docker {
        if [[ "$1" == "stop-and-rm" ]]; then
                shift 1
                command docker stop "$@"
                command docker rm "$@"
        else
                command docker "$@"
        fi
}

# aliases let you put things after the command if you want
# i.e. get familiar with the flags but type way fewer characters
# e.g. dc build --no-cache -> rebuild the images without cache
# e.g. dcu -d -> dc up and detach/background it
# e.g. dce app bash -> dc exec bash in the service
# e.g. dcd -v -> dc down and clear volumes too
alias dc=docker-compose
alias dcd="docker-compose down"
alias dcu="docker-compose up"
alias dce="docker-compose exec"
cp /usr/share/applications/vim.desktop ~/.local/share/applications/vim.desktop

change terminal to false and exec to sakura -e "whatever was already here"

copy to ~/.local/share/applications/less.desktop, remove garbo, swap vim for less in sakura command

(https://askubuntu.com/a/968149)

cp /usr/share/applications/chromium-browser.desktop ~/.local/share/applications
Exec=chromium --password-store=basic %U

.gitconfig:

[core]
        autocrlf = input
        fileMode = false
        editor = vim
        untrackedCache = true
[user]
        email = your_work_or_personal_email@example.com
        name = William Hall
        signingkey = YOURGPGKEYOFCHOICEWHICHISROUGHLYTHISLONG
[commit]
        gpgsign = true
[gpg]
        program = gpg
[push]
        default = simple

Use docker container for python bits

install docker (mint have to specify bionic or whatever)

sudo usermod -aG docker wh
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

sudo nano /etc/docker/daemon.json AND THEN RESTART THE DOCKER SERVICE

{
        "registry-mirrors": [
                "https://your.cache.server:5000"
        ]
}

install php cli, vscode, gitkraken, and sublime merge ln -s /opt/sublime_merge/sublime_merge /usr/local/bin/smerge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment