Skip to content

Instantly share code, notes, and snippets.

@sam0x17
Last active May 1, 2023 20:49
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 sam0x17/c6458b88d69bac61c4d80a271eb6b466 to your computer and use it in GitHub Desktop.
Save sam0x17/c6458b88d69bac61c4d80a271eb6b466 to your computer and use it in GitHub Desktop.
dev environment
#!/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 "sam@durosoft.com"
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