diff --git a/.github/workflows/install-ci.yml b/.github/workflows/install-ci.yml index 985f315..586c420 100644 --- a/.github/workflows/install-ci.yml +++ b/.github/workflows/install-ci.yml @@ -3,6 +3,7 @@ on: push: branches: - main + - devcontainer jobs: install: runs-on: ${{ matrix.os }} @@ -15,6 +16,6 @@ jobs: with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: install - run: ./install.sh 1 + run: ./install.sh env: CI: true diff --git a/config/lvim/lua/user/options.lua b/config/lvim/lua/user/options.lua index 2b77797..d9322df 100644 --- a/config/lvim/lua/user/options.lua +++ b/config/lvim/lua/user/options.lua @@ -71,30 +71,3 @@ table.insert(lvim.builtin.alpha.dashboard.section.buttons.entries, "lua require('devcontainer_cli.devcontainer_cli').up()" } ) --- LSP -lvim.lsp.installer.setup.ensure_installed = { - "clangd", - "cmake", - "docker_compose_language_service", - "dockerls", - "lemminx", - "lua_ls", - "pyright", - "taplo", - "yamlls", -} -require("lvim.lsp.null-ls.formatters").setup { - { name = "black" }, - { name = "clang-format" }, - { name = "isort" }, - { name = "yamlfmt" }, -} -require("lvim.lsp.null-ls.linters").setup { - { name = "cmakelint" }, - { name = "cpplint" }, - { name = "cpptools" }, - { name = "flake8" }, - { name = "markdownlint" }, - { name = "pylint" }, - { name = "yamllint" }, -} diff --git a/config/lvim/lua/user/plugins.lua b/config/lvim/lua/user/plugins.lua index db1375d..612e189 100644 --- a/config/lvim/lua/user/plugins.lua +++ b/config/lvim/lua/user/plugins.lua @@ -19,16 +19,17 @@ lvim.plugins = { }, { - -- "erichlf/nvim-devcontainer-cli", - dir = "/home/elfoster/workspace/nvim-devcontainer-cli", - dev = true, - branch = "DevContainerExec", + "erichlf/devcontainer-cli.nvim", + -- dir = "/home/elfoster/workspace/devcontainer-cli.nvim", + -- dev = true, + -- branch = "AddShell", opts = { - interactive = true, + interactive = false, dotfiles_repository = "https://github.com/erichlf/dotfiles.git", dotfiles_branch = "devcontainer", dotfiles_targetPath = "~/dotfiles", dotfiles_installCommand = "install.sh", + shell = "zsh", }, keys = { -- stylua: ignore diff --git a/install.sh b/install.sh index 18dbb07..395d96c 100755 --- a/install.sh +++ b/install.sh @@ -10,11 +10,12 @@ codename=`lsb_release -a 2>/dev/null | grep Codename | awk -F ' ' '{print $2}'` release=`lsb_release -a 2>/dev/null | grep Release | awk -F ' ' '{print $2}'` DOTFILES_DIR=$(pwd) +echo "$DOTFILES_DIR" ############################# grab dotfiles #################################### # dotfiles already exist since I am running this script! # git clone git@github.com:erichlf/dotfiles.git -(cd $DOTFILES_DIR && git submodule update --init --recursive) +git submodule update --init --recursive cmd=( \ dialog \ @@ -62,6 +63,7 @@ function no_ppa_exists(){ function add_ppa(){ sudo add-apt-repository ppa:$1 -y + apt_update return 0 } @@ -108,23 +110,38 @@ function sym_links(){ ############################# my base system ################################### #bikeshed contains utilities such as purge-old-kernels function base_sys(){ - cd $HOME + sudo add-apt-repository universe + + echo "Setting up shell..." + if no_ppa_exists linuxuprising + then + add_ppa linuxuprising/guake + fi apt_install \ btop \ cifs-utils \ curl \ + dconf-cli \ + dconf-editor \ fzf \ gnome-tweaks \ + guake \ iftop \ nfs-common \ tmux \ wget \ zsh + guake --restore-preferences $DOTFILES_DIR/guake.conf + + sudo chsh -s $(which zsh) $(whoami) + + # memory for cd curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash - chsh -s /usr/bin/zsh + # zsh plugin manager + [ ! -d $HOME/.zgen ] && git clone https://github.com/tarjoilija/zgen.git ${HOME}/.zgen # tool to figure out why my last command didn't work snap_install thefuck --beta --classic @@ -142,35 +159,39 @@ function base_sys(){ ./starship.sh --bin-dir $HOME/.local/bin/ -y rm -f starship.sh + echo "Setting up networking..." apt_install \ network-manager-openvpn \ network-manager-openvpn-gnome \ - network-manager-vpnc - # sudo /etc/init.d/networking restart - - cd $DOTFILES_DIR + network-manager-vpnc \ + openssh-server + echo "Installing developer tools..." if [ ! -d "$HOME/workspace" ]; then mkdir "$HOME/workspace" fi apt_install \ build-essential \ - clang \ + clang \ clang-format \ clang-tools \ cmake \ g++ \ gcc \ + git-completion \ + global \ + libtool-bin \ + meld \ python3-dev \ python3-ipython \ python3-matplotlib \ python3-numpy \ - python3-pip - python3-scipy \ - python3-setuptools \ + python3-pip \ + python3-scipy \ + python3-setuptools - # need dnspython and unrar are needed by calibre + echo "Installing python linters..." pip3_install \ autoflake \ black \ @@ -181,29 +202,25 @@ function base_sys(){ wheel \ yapf - if no_ppa_exists linuxuprising - then - add_ppa linuxuprising/guake - fi - if no_ppa_exists ppa-verse then add_ppa ppa-verse/neovim fi + echo "Installing VIM..." apt_install \ - freeglut3-dev \ - git-completion - global \ - guake \ - libtool-bin \ - meld \ + git-lfs \ + golang-go \ neovim \ - openssh-server \ + nodejs \ + python3-git \ + python3-venv \ + python3-yaml \ xclip - - # install zgen - [ ! -d $HOME/.zgen ] && git clone https://github.com/tarjoilija/zgen.git ${HOME}/.zgen + + # treesitter for vim + npm install -g neovim tree-sitter + snap_install --edge chafa # needed by telescope-media-files # install lunarvim curl -sSL https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.sh | LV_BRANCH='release-1.3/neovim-0.9' bash -s -- -y @@ -216,39 +233,28 @@ function base_sys(){ install lazygit $HOME/.local/bin cd - - # restore guake config - guake --restore-preferences guake.conf - sudo update-alternatives --config editor - apt_install \ - gnupg \ - ca-certificates + echo "Setting up docker..." + apt_install \ + ca-certificates \ + containerd \ + gnupg apt_update apt_install \ docker-compose \ docker.io \ - git-lfs \ - golang-go \ # used by gitlab nvim plugin - nodejs \ - python3-git \ - python3-venv \ - python3-yaml - snap_install --edge chafa # needed by telescope-media-files sudo usermod -a -G docker $USER sudo systemctl daemon-reload sudo systemctl restart docker newgrp docker - - # devcontainer cli + + echo "Installing vscode..." npm install -g @devcontainers/cli - # treesitter for vim - npm install -g neovim tree-sitter - # install vscode apt_install \ apt-transport-https \ software-properties-common @@ -264,13 +270,14 @@ function base_sys(){ echo "net.core.rmem_max=26214400" | sudo tee /etc/sysctl.d/10-udp-buffer-sizes.conf echo "net.core.rmem_default=26214400" | sudo tee -a /etc/sysctl.d/10-udp-buffer-sizes.conf - cd /tmp - + echo "Installing extras..." apt_update apt_install chrome-gnome-shell + cd /tmp wget -c https://downloads.vivaldi.com/stable/vivaldi-stable_6.6.3271.45-1_amd64.deb sudo dpkg -i vivaldi-stable*.deb + cd $DOTFILES_DIR curl -sS https://downloads.1password.com/linux/keys/1password.asc | sudo gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/amd64 stable main' | sudo tee /etc/apt/sources.list.d/1password.list @@ -289,14 +296,8 @@ function base_sys(){ sudo chmod 755 /etc/1password/custom_allowed_browsers # install signal desktop - wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg - cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null - echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |\ - sudo tee /etc/apt/sources.list.d/signal-xenial.list - apt_update - apt_install signal-desktop + snap_install signal-desktop - cd $DOTFILES_DIR return 0 } @@ -346,15 +347,25 @@ function latitude_7440(){ ######################## remove things I never use ############################# function crapware(){ - sudo apt-get remove -y \ - thunderbird \ - transmission-gtk \ + echo "Removing crapware..." + remove="thunderbird transmission-gtk" + pkgsToRemove="" + for pkg in $(echo $remove); do + $(dpkg --status $pkg &> /dev/null) + if [[ $? -eq 0 ]]; then + pkgsToRemove="$pkgsToRemove $pkg" + fi + done + sudo apt-get --yes --purge remove $pkgsToRemove + + echo "Removed $pkgsToRemove" return 0 } ########################## update and upgrade ################################## function update_sys(){ + echo "Updating system..." apt_update sudo apt-get -y upgrade @@ -363,6 +374,7 @@ function update_sys(){ ############################## annoyances ###################################### function sudo_rules(){ + echo "Setting sudo rules..." sudo_rule /sbin/shutdown sudo_rule /sbin/reboot