Last active
May 1, 2023 20:49
-
-
Save sam0x17/c6458b88d69bac61c4d80a271eb6b466 to your computer and use it in GitHub Desktop.
dev environment
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -ex | |
# run updates, clean unneeded packages | |
sudo apt-get update --assume-yes | |
sudo apt-get upgrade --assume-yes | |
sudo apt-get remove --assume-yes libreoffice-* | |
# fix repo issue | |
sudo add-apt-repository -r ppa:ubuntu-toolchain-r/test | |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test | |
sudo apt-get update --assume-yes | |
# install required packages | |
sudo apt-get install --assume-yes build-essential ffmpeg git nano clang curl \ | |
libssl-dev protobuf-compiler pkg-config \ | |
scdaemon zsh fonts-powerline libgtk-3-dev \ | |
libpango1.0-dev libgdk-pixbuf-2.0-dev \ | |
libglib2.0-dev cmake libclang-dev \ | |
libudev-dev libayatana-appindicator3-1 \ | |
g++-11 | |
# set up initial .zshrc | |
touch $HOME/.zshrc | |
# install rust | |
curl https://sh.rustup.rs -sSf | sh -s -- -y | |
source $HOME/.cargo/env | |
rustup default stable | |
rustup update | |
rustup update nightly | |
rustup target add wasm32-unknown-unknown --toolchain nightly | |
rustup target add wasm32-unknown-unknown --toolchain stable | |
rustup show | |
rustup +nightly show | |
# install append-if | |
if ! command -v append-if &> /dev/null | |
then | |
cargo install append-if | |
fi | |
export APPEND_IF=`which append-if` | |
export PATH="$PATH:$HOME/.cargo/bin" | |
append-if --version | |
sudo $APPEND_IF --version | |
# set up cargo config | |
append-if --path $HOME/.bashrc \ | |
--pattern '# cargo bin' \ | |
--append ' | |
# cargo bin | |
export PATH="$PATH:$HOME/.cargo/bin" | |
' | |
append-if --path $HOME/.zshrc \ | |
--pattern '# cargo bin' \ | |
--append ' | |
# cargo bin | |
export PATH="$PATH:$HOME/.cargo/bin" | |
' | |
# sccache | |
if ! command -v sccache &> /dev/null | |
then | |
cargo install sccache | |
fi | |
sccache --version | |
append-if --path $HOME/.bashrc \ | |
--pattern '# sccache settings' \ | |
--append ' | |
# sccache settings | |
export SCCACHE_CACHE_SIZE=100G | |
export CMAKE_C_COMPILER_LAUNCHER=sccache | |
export CMAKE_CXX_COMPILER_LAUNCHER=sccache | |
' | |
append-if --path $HOME/.zshrc \ | |
--pattern '# sccache settings' \ | |
--append ' | |
# sccache settings | |
export SCCACHE_CACHE_SIZE=100G | |
export CMAKE_C_COMPILER_LAUNCHER=sccache | |
export CMAKE_CXX_COMPILER_LAUNCHER=sccache | |
' | |
# cargo.toml | |
touch $HOME/.cargo/config.toml | |
append-if --path $HOME/.cargo/config.toml \ | |
--pattern 'sccache' \ | |
--append '[build] | |
rustc-wrapper = "/home/sam/.cargo/bin/sccache" | |
' | |
source $HOME/.bashrc | |
# GPG/SSH setup | |
append-if --path $HOME/.bashrc \ | |
--pattern '# yubikey GPG/SSH setup' \ | |
--append ' | |
# yubikey GPG/SSH setup | |
export GPG_TTY="$(tty)" | |
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) | |
gpgconf --launch gpg-agent | |
' | |
append-if --path $HOME/.zshrc \ | |
--pattern '# yubikey GPG/SSH setup' \ | |
--append ' | |
# yubikey GPG/SSH setup | |
export GPG_TTY="$(tty)" | |
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) | |
gpgconf --launch gpg-agent | |
' | |
# asusctl setup | |
mkdir -p $HOME/opt | |
export OLD_DIR=`pwd` | |
touch $HOME/opt/update.sh | |
append-if --path $HOME/opt/update.sh \ | |
--pattern '#!/bin/' \ | |
--append ' | |
#!/bin/zsh | |
set -ex | |
cd asusctl | |
git pull origin main | |
make -j16 | |
sudo make install | |
sudo systemctl daemon-reload && systemctl restart asusd | |
' | |
chmod +x $HOME/opt/update.sh | |
cd $HOME/opt | |
if [ ! -d "asusctl" ]; then | |
git clone https://gitlab.com/asus-linux/asusctl.git | |
fi | |
./update.sh | |
# install brave | |
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg 'https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg' | |
sudo touch /etc/apt/sources.list.d/brave-browser-release.list | |
sudo $APPEND_IF --path /etc/apt/sources.list.d/brave-browser-release.list \ | |
--pattern 'brave-browser' \ | |
--append 'deb [arch=amd64 signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main' | |
sudo apt-get --assume-yes update | |
sudo apt-get --assume-yes install brave-browser | |
# install vscode | |
sudo snap install --classic code | |
# set up git | |
git config --global user.name "Sam Johnson" | |
git config --global user.email "[email protected]" | |
git config --global core.editor nano | |
git config --global init.defaultBranch main | |
git config --global commit.gpgSign true | |
git config --global user.signingKey 07E917A0B2FC1ABB6812BAC5B0C7B1CDE21F404B | |
# set up lock screen settings | |
gsettings set org.gnome.desktop.screensaver lock-enabled true | |
gsettings set org.gnome.desktop.lockdown disable-lock-screen false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment