UbuntuSetup: Difference between revisions

From DrewWiki
Jump to navigation Jump to search
(set gnome-terminal colors)
m (Drew moved page Ubuntu17.10Setup to UbuntuSetup: Update as using 20.04)
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Install Main Apps=
=Install Main Apps=
Run install script from [https://github.com/drew-holt/ubuntu-setup-bash/blob/master/drew-8570w_u1710setup.sh]
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
#!/bin/bash
wget https://raw.githubusercontent.com/drew-holt/ubuntu-setup-bash/master/drew-8570w_setup.sh
 
chmod 755 drew-8570w_setup.sh
set -x
./drew-8570w_setup.sh | tee -a setup-$(date '+%Y-%m-%d-%H.%M.%S%z').log
 
# 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
</syntaxhighlight>
</syntaxhighlight>


= Local Installers and config needed =
= Installers needing extra config =
* KeyBase [https://keybase.io]
* KeyBase [https://keybase.io]
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Line 130: Line 13:
</syntaxhighlight>
</syntaxhighlight>


* Insynq [https://www.insynchq.com/downloads]
* Insync [https://www.insynchq.com/downloads]
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
insync start ### do some magic here so we don't have to resync 200GB of google drive
insync start ### do some magic here so we don't have to resync 200GB of google drive
Line 137: Line 20:
* Chrome [https://www.google.com/chrome/]
* Chrome [https://www.google.com/chrome/]
* Atom [https://atom.io/]
* Atom [https://atom.io/]
* VirtualBox [https://www.virtualbox.org/]
* Vagrant [https://www.vagrantup.com/]
* Slack [https://slack.com/downloads/linux]
* Slack [https://slack.com/downloads/linux]
* Skype [https://www.skype.com/en/get-skype/skype-for-linux/]
* Skype [https://www.skype.com/en/get-skype/skype-for-linux/]
* Docker (in script) [https://docs.docker.com/install/linux/docker-ce/ubuntu/#upgrade-docker-ce]
* Oracle JDK 8 [https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04]
* Orackle 8 (in script)
* Docker [https://docs.docker.com/install/linux/docker-ce/ubuntu/#upgrade-docker-ce]
* rvm (in script) ''requires '''/bin/bash --login''' or fixed shell'' [https://github.com/rvm/ubuntu_rvm Ubuntu RVM Instructions]
* awscli [https://aws.amazon.com/cli/]
* awscli (in script) [https://aws.amazon.com/cli/]
* youtube-dl (pip) [https://rg3.github.io/youtube-dl/]
* nvm (in script) ''requires '''/bin/bash --login''' or fixed shell'' (in script) [https://github.com/creationix/nvm]
* nvm ''requires '''/bin/bash --login''' or fixed shell'' [https://github.com/creationix/nvm]
# ChefDK (in script) [https://downloads.chef.io/chefdk]
* rvm ''requires '''/bin/bash --login''' or fixed shell'' [https://github.com/rvm/ubuntu_rvm Ubuntu RVM Instructions]
 
== Install Manually ==
* VirtualBox (script this?) [https://www.virtualbox.org/]
* Vagrant (script this?) [https://www.vagrantup.com/]
* ChefDK (script this) [https://downloads.chef.io/chefdk]


= When needed =
= When needed =
Line 153: Line 39:
* Ramlog or equivalent for SSD
* Ramlog or equivalent for SSD
* gvm for golang
* gvm for golang
* Studio 3T (mongodb browswer) (https://studio3t.com/download/)
* Studio 3T MongoDB Browser [https://studio3t.com/download/]
* Android Studio [https://developer.android.com/studio/index.html]
* Android Studio [https://developer.android.com/studio/index.html]
* Eclipse [https://www.eclipse.org/]
* Eclipse [https://www.eclipse.org/]
Line 175: Line 61:


==Configure GPG keys==
==Configure GPG keys==
Replenish from vault.
Pull from vault, set git config
<syntaxhighlight lang=bash>
gpg --import drewholt-private-2018.03.01.key
gpg --edit-key {KEY} trust quit
 
git config --global user.signingkey 7A27C99359698874
 
vi ~/.gnupg/gpg.conf:
default-key 2018-03-01
 
gpg -d somefile.tar.xz.pgp | tar -tJ
</syntaxhighlight>


==  Set gnome-screenshot default save directory ==
==  Set gnome-screenshot default save directory ==
Line 181: Line 78:


==Set default downloads directory to Desktop==
==Set default downloads directory to Desktop==
command for firefoxx, chrome, qbit, skype, slack, hangouts, etc
command for firefox, chrome, qbit, skype, slack, hangouts, etc


== Gnome Tweak Tool ==
== Gnome Tweak Tool ==
Install extension then use Tweak tool to configure.
Install and configure extensions (done via script).
=== Dash to Dock ===
* Dash to Dock [https://extensions.gnome.org/extension/307/dash-to-dock/]
* Dash to Dock [https://extensions.gnome.org/extension/307/dash-to-dock/]
* TopIcons-plus [https://extensions.gnome.org/extension/1031/topicons/] - for Insync, Slack, Skype icons
* TopIcons-plus [https://extensions.gnome.org/extension/1031/topicons/] - for Insync, Slack, Skype icons
* OpenWeather [https://extensions.gnome.org/extension/750/openweather/]
* Grown-up notifications [https://extensions.gnome.org/extension/1335/grown-up-notifications/]


Extensions installed into:
==Gmail to handle mailto: links==
<syntaxhighlight lang=bash>
Partially scripted.
$ ~/.local/share/gnome-shell/extensions
 
* restart GNOME Shell (Alt+F2, r, Enter) and enable the extension through gnome-tweak-tool.
https://developers.google.com/web/updates/2012/02/Getting-Gmail-to-handle-all-mailto-links-with-registerProtocolHandler
</syntaxhighlight>


==Maybe Snaps==
==Maybe Snaps==

Latest revision as of 01:12, 7 September 2021

Install Main Apps

Run install script from [1]

wget https://raw.githubusercontent.com/drew-holt/ubuntu-setup-bash/master/drew-8570w_setup.sh
chmod 755 drew-8570w_setup.sh
./drew-8570w_setup.sh | tee -a setup-$(date '+%Y-%m-%d-%H.%M.%S%z').log

Installers needing extra config

run_keybase
insync start ### do some magic here so we don't have to resync 200GB of google drive

Install Manually

  • VirtualBox (script this?) [13]
  • Vagrant (script this?) [14]
  • ChefDK (script this) [15]

When needed

  • Terraform [16]
  • Gitter
  • Ramlog or equivalent for SSD
  • gvm for golang
  • Studio 3T MongoDB Browser [17]
  • Android Studio [18]
  • Eclipse [19]
  • NetBeans [20]
  • DropBox (only if needed for work)
  • PyCharm [21]
  • IntelliJ [22]
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

Pull from vault, set git config

gpg --import drewholt-private-2018.03.01.key
gpg --edit-key {KEY} trust quit

git config --global user.signingkey 7A27C99359698874

vi ~/.gnupg/gpg.conf:
default-key 2018-03-01

gpg -d somefile.tar.xz.pgp | tar -tJ

Set gnome-screenshot default save directory

?

Set default downloads directory to Desktop

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

Gnome Tweak Tool

Install and configure extensions (done via script).

  • Dash to Dock [23]
  • TopIcons-plus [24] - for Insync, Slack, Skype icons

Gmail to handle mailto: links

Partially scripted.

https://developers.google.com/web/updates/2012/02/Getting-Gmail-to-handle-all-mailto-links-with-registerProtocolHandler

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