UbuntuSetup

From DrewWiki
Revision as of 18:44, 29 March 2018 by Drew (talk | contribs) (set gnome-terminal colors)
Jump to navigation Jump to search

Install Main Apps

#!/bin/bash

set -x

# passwordless sudo for my local box
sudo sh -c 'echo "drew ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'

# set github
git config --global user.name "Drew Holt"
git config --global user.email "[email protected]"

# set natural scrolling, GUI under 'Settings > Mouse'
gsettings set org.gnome.desktop.peripherals.mouse natural-scroll true
gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll false

# switch windows, not applications. GUI under 'Settings > Keyboard'
gsettings set org.gnome.desktop.wm.keybindings switch-applications "[]"
gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "[]"
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']"
gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward  "['<Alt><Shift>Tab']"

# set gnome-terminal colors
# gsettings list-recursively  "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/"
# gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" login-shell true
settings=("use-theme-colors false" "login-shell true" "foreground-color 'rgb(255,255,255)'" "background-transparency-percent 6" "background-color 'rgb(0,0,0)'" "use-theme-transparency false" "scrollback-unlimited true" "use-transparent-background true")
profile=$(gsettings get org.gnome.Terminal.ProfilesList default); profile=${profile:1:-1} # remove leading and trailing single quotes
for i in "${settings[@]}"; do
  gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" $i
done

# remove clutter
cd $HOME; rmdir Documents/ Music/ Public/ Templates/ Videos/; rm examples.desktop

## disable popularity-contest
#sudo dpkg-reconfigure popularity-contest # disable

# docker add repo
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# oracle 8 add java repo
sudo add-apt-repository -y ppa:webupd8team/java
echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections

# update all repos, upgrade
sudo apt-get update
sudo apt-get -y dist-upgrade

# install etckeeper and initialize it
sudo apt-get install -y etckeeper
sudo etckeeper init

# install local installers already gathered
sudo mkdir /mnt/hdd
sudo mount /dev/vg_hdd/lv_hdd /mnt/hdd
cd /mnt/hdd/iso_installers/ubuntu-installers
sudo apt-get install -y ./atom-amd64.deb ./google-chrome-stable_current_amd64.deb ./insync_1.4.4.37065-artful_amd64.deb ./slack-desktop-3.1.0-amd64.deb ./vagrant_2.0.3_x86_64.deb ./virtualbox-5.2_5.2.8-121009_Ubuntu_zesty_amd64.deb ./skypeforlinux-64.deb ./keybase_amd64.deb ./chefdk_2.4.17-1_amd64.deb

# install all the software
DEBIAN_FRONTEND=noninteractive `#no prompting` \
sudo apt-get install -y \
keepass2 synergy gnome-tweak-tool chrome-gnome-shell `#tools` \
vim vim-scripts vim-runtime vim-doc curl xd `#systools` \
lm-sensors p7zip-full exfat-utils exfat-fuse libimage-exiftool-perl `#systools` \
ubuntu-restricted-extras gimp audacity vlc vlc-plugin-fluidsynth ffmpeg atomicparsley `#media` \
openjdk-8-jdk icedtea-8-plugin `#java` \
openssh-server fail2ban `#daemon` \
openvpn network-manager-openconnect-gnome network-manager-openvpn-gnome `#network-client` \
rdesktop freerdp2-x11 xtightvncviewer sshpass qbittorrent wireshark nmap nikto chkrootkit wavemon namebench apache2-utils mailutils `#netutils` \
virtualenv python2.7-examples python-pip `#python` \
build-essential `#build-tools` \
sqlitebrowser yamllint highlight gawk `#dev-tools` \
lynis pandoc apt-transport-https `#misc` \
xchat pidgin `#chatapps` \
docker-ce `#docker` \
oracle-java8-installer `#oraclejava8` \
ansible `#automation`

# Set good vim
sudo update-alternatives --set editor /usr/bin/vim.basic

# install youtube-dl
pip install youtube-dl

# install awscli
pip install awscli

# set env and aliases
cat <<EOF >> $HOME/.bashrc
export PATH="$HOME/.local/bin:$PATH"
alias xclip='xclip -selection clipboard'
alias rdesktop='rdesktop -g 1280x720 -r clipboard:CLIPBOARD -r disk:share=/home/drew'
alias get_ip='_get_ip() { VBoxManage guestproperty get "$1" "/VirtualBox/GuestInfo/Net/1/V4/IP";}; _get_ip'
EOF

# docker
sudo usermod -a -G docker drew

# configure lm_sensors
sudo sensors-detect --auto

# rvm install
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable --ruby

# virtualbox extras pack
echo y | sudo VBoxManage extpack install /mnt/hdd/iso_installers/ubuntu-installers/Oracle_VM_VirtualBox_Extension_Pack-5.2.8.vbox-extpack

# atom plugins
apm install atom-beautify linter-flake8 linter-pep8 autocomplete-python django-templates script-runner teletype

# vagrant plugins
vagrant plugin install vagrant-berkshelf
vagrant plugin install berkshelf

# nvm install
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

Local Installers and config needed

run_keybase
insync start ### do some magic here so we don't have to resync 200GB of google drive
  • Chrome [3]
  • Atom [4]
  • VirtualBox [5]
  • Vagrant [6]
  • Slack [7]
  • Skype [8]
  • Docker (in script) [9]
  • Orackle 8 (in script)
  • rvm (in script) requires /bin/bash --login or fixed shell Ubuntu RVM Instructions
  • awscli (in script) [10]
  • nvm (in script) requires /bin/bash --login or fixed shell (in script) [11]
  1. ChefDK (in script) [12]

When needed

drew@drew-8570w:~$ snap list
Name                  Version                  Rev   Developer      Notes
core                  16-2.29.4.2              3604  canonical      core
drive                 current                  22    fireeye        -
juju                  2.3.1                    3106  canonical      classic
kubectl               1.9.0                    266   canonical      classic

Configure misc

Configure SSH keys

Create new ones or replenish from vault.

Configure GPG keys

Replenish from vault.

Set gnome-screenshot default save directory

?

Set default downloads directory to Desktop

command for firefoxx, chrome, qbit, skype, slack, hangouts, etc

Gnome Tweak Tool

Install extension then use Tweak tool to configure.

Dash to Dock

  • Dash to Dock [19]
  • TopIcons-plus [20] - for Insync, Slack, Skype icons
  • OpenWeather [21]
  • Grown-up notifications [22]

Extensions installed into:

$ ~/.local/share/gnome-shell/extensions
* restart GNOME Shell (Alt+F2, r, Enter) and enable the extension through gnome-tweak-tool.

Maybe Snaps

drew@drew-8570w:~$ snap list
picard                1.4.2                    2     pachulo        -
spotify               1.0.70.399.g5ffabd56-26  5     spotify        -
sqlitebrowser-casept  3.9.1                    2     casept         -
vault                 v0.9.0                   236   snapcrafters   -
vscode                1.19.1-1513676564        22    flexiondotorg  classic