#!/usr/bin/env bash cd "$(dirname "$0")" || exit 1 git submodule update --init --recursive || (echo "Submodule update failed!"; exit 5) # Source inst and diff function . ./utils/inst # Load if we force changes (implies no interaction) [ "$1" = "-f" ] && FORCE=true || FORCE=false ################################################################################# source private/install # private files, sorry but some privacy is required. # TODO on hosts without shellrc we might want some thin shellrc to be installed if ask "profile" "Install shell profile"; then inst profile ~/.profile inst zprofile ~/.zprofile fi if ask "git" "Install GIT configuration"; then inst gitconfig ~/.gitconfig inst gitignore ~/.gitignore fi if ask "gpg" "Install GPG configuration"; then inst gnupg/gpg.conf ~/.gnupg/gpg.conf fi if ask "nix" "Install Nix configuration"; then inst config/nix/ ~/.config/nix inst private/config/nix/builders ~/.config/nix/builders fi if ask "clituls" "Install configurations for various CLI utility tools"; then inst screenrc ~/.screenrc inst local/share/mc/skins/nord16M.ini ~/.local/share/mc/skins/nord16M.ini fi if ask "ssh" "Install SSH config"; then mkdir -p ~/.cache/ssh # directory for sockets inst private/ssh_config ~/.ssh/config fi if ask "wayvnc" "Install wayland access"; then inst local/bin/sshvnc ~/.local/bin/ inst local/sbin/wayvnc1 ~/.local/sbin/ inst config/systemd/user/wayvnc1.service ~/.config/systemd/user/ fi if ask "vim" "Install VIM scripts"; then inst vimrc ~/.vimrc inst vim/ ~/.vim mkdir -p ~/.cache/vim # directory for *.swp files mkdir -p ~/.cache/vim-undo # directory for undo files # Vim plugin manager [ -d ~/.vim/bundle/Vundle.vim ] || { mkdir -p ~/.vim/bundle git clone "https://github.com/VundleVim/Vundle.vim.git" ~/.vim/bundle/Vundle.vim } vim +PluginUpdate +qall # cs spelling mkdir -p ~/.vim/spell curl "http://ftp.vim.org/vim/runtime/spell/cs.utf-8.spl" > ~/.vim/spell/cs.utf-8.spl fi if ask "dev" "Development tools configuration"; then inst config/clangd/ ~/.config/clangd inst pdbrc ~/.pdbrc inst config/pycodestyle ~/.config/pycodestyle inst flake8 ~/.flake8 inst pylintrc ~/.pylintrc inst config/mypy/ ~/.config/mypy inst local/bin/new-flake-dev ~/.local/bin/new-flake-dev inst shvcli.ini ~/.shvcli.ini curl "https://github.com/cyrus-and/gdb-dashboard/raw/master/.gdbinit" > ~/.gdbinit fi if ask "sync" "Install synchronization"; then inst local/bin/allsync ~/.local/bin/allsync if [ "$(ps -o comm= 1)" = "systemd" ]; then inst config/systemd/user/allsync.service ~/.config/systemd/user/ inst config/systemd/user/allsync.timer ~/.config/systemd/user/ fi inst private/mbsyncrc ~/.mbsyncrc inst private/notmuch-config ~/.notmuch-config inst private/notmuch-tag-new ~/.notmuch-tag-new inst local/bin/email-unread ~/.local/bin/email-unread inst local/sbin/newmail-notify ~/.local/sbin/newmail-notify inst private/msmtprc ~/.msmtprc inst private/astroid/config ~/.config/astroid/config inst config/astroid/ui/ ~/.config/astroid/ui inst private/vdirsyncer/ ~/.vdirsyncer inst config/khal/config ~/.config/khal/config inst config/khard/khard.conf ~/.config/khard/khard.conf inst_sync fi if ask "desktop" "Install desktop"; then # Force some dconf settings gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' gsettings set org.gnome.desktop.interface font-name 'Cantarell 8' gsettings set org.gnome.desktop.interface gtk-key-theme 'Emacs' gsettings set org.gnome.desktop.interface gtk-theme 'Nordic-darker-standard-buttons' gsettings set org.gnome.desktop.interface icon-theme 'Delft' # Theme inst gtk-2.0/gtkrc ~/.gtkrc-2.0 inst config/Trolltech.conf ~/.config/Trolltech.conf # TODO download https://github.com/EliverLara/Nordic/releases/download/v2.2.0/Nordic-darker-standard-buttons.tar.xz # User directories inst config/user-dirs.conf ~/.config/user-dirs.dirs # Sway inst local/bin/startsway ~/.local/bin/startsway inst config/sway/ ~/.config/sway inst Xdefaults ~/.Xdefaults inst config/dunst/ ~/.config/dunst inst config/i3blocks/ ~/.config/i3blocks inst config/swaylock/ ~/.config/swaylock inst config/swayidle/ ~/.config/swayidle inst config/wofi/ ~/.config/wofi [ -f "private/kanshi/$(hostname)" ] \ && inst "private/kanshi/$(hostname)" ~/.config/kanshi/config inst config/xdg-desktop-portal-wlr/ ~/.config/xdg-desktop-portal-wlr inst local/bin/wlr-select-screen ~/.local/bin/wlr-select-screen fi if ask "alacritty" "Install configurations for terminal emulator"; then inst config/alacritty.toml ~/.config/alacritty.toml fi if ask "mpd" "Install MPD configuration"; then inst config/mpd/ ~/.config/mpd fi if ask "elektroline" "Install Elektroline scripts"; then inst local/bin/elektroline-git-config ~/.local/bin/elektroline-git-config inst local/bin/elektroline-windows ~/.local/bin/elektroline-windows inst local/bin/elektroline00 ~/.local/bin/elektroline00 fi if ask "wake" "Install wake-* scripts"; then [ "$(hostname)" = "ridcully" ] || \ inst local/bin/wake-ridcully ~/.local/bin/wake-ridcully [ "$(hostname)" = "errol" ] || \ inst local/bin/wake-errol ~/.local/bin/wake-errol fi