diff --git a/.config/just/justfile b/.config/just/justfile new file mode 100644 index 0000000..6059690 --- /dev/null +++ b/.config/just/justfile @@ -0,0 +1,157 @@ +ssh_loc := "/home/$USER/.ssh/id_rsa" +n_cpu := "$(($(grep -c ^processor /proc/cpuinfo)-2))" + +# ------------------- Package Installers ------------------- # + +# Install a package using apt +apt +package: + #!/usr/bin/bash + for p in {{package}}; do + PKG_OK=$(dpkg-query -W --showformat='${Status}\n' {{package}}|grep "install ok installed") + if [ "" = "$PKG_OK" ]; then + echo "No {{package}}. Setting up {{package}}." + sudo apt-get -qy install {{package}} + fi + done + +# Install a package using cargo +cargo +package: (rust) + #!/usr/bin/bash + # if [ "update" == {{package}} ]; then + # just cargo cargo-update + # cargo install-update -a + # exit 0 + # fi + for p in {{package}}; do + echo $RESULT + if [ "" = "$RESULT" ]; then + cargo binstall {{package}} -y + fi + done + +rust: + #!/usr/bin/env bash + PKG=$(which rustup) + if [ "" = "$PKG" ]; then + # rustup / cargo + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + # cargo-binstall + curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash + fi + +zsh: (apt "zsh fzf build-essential") (duf) (lazygit) (cargo "eza zoxide bat fd-find yazi-fm yazi-cli tealdeer ripgrep") (node) + tldr --update + exec zsh + chsh -s $(which zsh) + antidote load + +cloudflared: (apt "gdebi") + wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb + sudo gdebi -n cloudflared-linux-amd64.deb + rm cloudflared-linux-amd64.deb + +nvim: (cargo "bob-nvim ripgrep tree-sitter-cli") + bob use stable + +node: + #!/usr/bin/env bash + PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v1.40.1/install.sh | bash' + source ~/.nvm/nvm.sh + nvm install node + +font myfont="Meslo": + #!/usr/bin/env bash + wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/{{myfont}}.zip + unzip {{myfont}}.zip -d ~/.fonts + fc-cache -fv + rm {{myfont}}.zip + +tmux: (apt "tmux") + git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm + +nord: (apt "dconf-cli") (apt "uuid-runtime") (apt "gnome-tweaks") + #!/usr/bin/env bash + # install terminal theme + export TERMINAL=gnome-terminal + bash -c "$(wget -qO- https://raw.githubusercontent.com/Mayccoll/Gogh/master/themes/nord.sh)" + # install ubuntu theme + git clone https://github.com/EliverLara/Nordic.git ~/.themes/nordic + +obsidian: launcher + curl -fLO https://glare.now.sh/obsidianmd/obsidian-releases/.AppImage + mv .AppImage ~/Applications/Obsidian.AppImage + +lazygit: + #!/bin/env bash + LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*') + curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz" + tar xf lazygit.tar.gz lazygit + cp lazygit $HOME/.local/bin + rm lazygit* + +duf: (apt "gdebi") + #!/bin/env bash + DUF_VERSION=$(curl -s "https://api.github.com/repos/muesli/duf/releases/latest" | grep -Po '"tag_name": "v\K[^"]*') + echo $DUF_VERSION + curl -Lo duf.deb "https://github.com/muesli/duf/releases/latest/download/duf_${DUF_VERSION}_linux_amd64.deb" + sudo gdebi -n duf.deb + rm duf.deb + +slack: (apt "gdebi") + wget https://downloads.slack-edge.com/linux_releases/slack-desktop-4.17.0-amd64.deb + sudo gdebi -n slack*.deb + rm slack*.deb + +zoom: (apt "gdebi") + wget https://zoom.us/client/latest/zoom_amd64.deb + sudo gdebi -n zoom*.deb + rm zoom*.deb + +zotero: + curl -sL https://raw.githubusercontent.com/retorquere/zotero-deb/master/install.sh | sudo bash + sudo apt update + sudo apt install -qy zotero + +chrome: (apt "gdebi") + wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb + sudo gdebi -n google-chrome*.deb + rm google-chrome*.deb + +# From here: https://code.visualstudio.com/docs/setup/linux +vscode: + wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg + sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ + sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' + rm -f packages.microsoft.gpg + sudo apt update + sudo apt install -qy code + +syncthing: + curl -s https://syncthing.net/release-key.txt | sudo apt-key add - + echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list + sudo apt-get update + sudo apt-get install syncthing + sudo systemctl enable syncthing@$(whoami).service + sudo systemctl start syncthing@$(whoami).service + +docker: + sudo apt-get install ca-certificates gnupg lsb-release + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg + echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + sudo apt-get update + sudo apt-get install -qy docker-ce docker-ce-cli containerd.io + sudo usermod -aG docker $USER + +ssh: + #!/usr/bin/env bash + ssh-keygen -t rsa -N "" -f {{ssh_loc}} + eval `ssh-agent` + ssh-add {{ssh_loc}} + cat {{ssh_loc}}.pub + +### Optional ones that aren't ran by default +launcher: (apt "gdebi") + curl -fLO https://glare.now.sh/TheAssassin/AppImageLauncher/amd64.deb + sudo gdebi -n amd64.deb + rm amd64.deb + mkdir -p ~/Applications diff --git a/.config/yadm/bootstrap b/.config/yadm/bootstrap new file mode 100755 index 0000000..c493b06 --- /dev/null +++ b/.config/yadm/bootstrap @@ -0,0 +1,9 @@ +#!/bin/sh + +# Make all files shown +yadm gitconfig --unset status.showUntrackedFiles + +cd "$HOME" +echo "Init submodules" +yadm submodule update --recursive --init +