Giter VIP home page Giter VIP logo

dotfiles's Introduction

Hi There

Our earth is only one polka dot among a million stars in the cosmos.

-- Yayoi Kusama

But Who Am I?

class Bio:
  name     = "Garrett Gibo"

class Favorite:
  tv_show = "Bojack Horseman"
  anime   = "One Piece"
  music   = "https://open.spotify.com/user/31fio5yidti3svjqkvtecirof4ga"

Things I Like

  • Machine Learning
  • Computer Vision
  • Robotics

dotfiles's People

Contributors

garrettgibo avatar

dotfiles's Issues

convert bash scripts to POSIX sh scripts

๐Ÿš€ Feature

Convert all scripts from bash to standardized POSIX sh scripts

Motivation

Making all scripts POSIX compatible should ensure that they are more stable across systems, especially when the shell is changed.

Pitch

Change all scripts from bash to sh. Specifically, all header change from #!bin/bash to #!/bin/sh. Additionally all errors should be fixed to make the scripts actually POSIX compliant.

Alternatives

  • specify that scripts should be run in bash shell
  • force usage of bash shell
  • provide alternative instructions for any commands that would fail in other shells

Not removing zsh in clean scrupt

๐Ÿ› Bug

Not actually removing zsh in clean.sh

To Reproduce

sh ./clean.sh

Expected behavior

When running clean.sh all things relating to zsh should be removed, including zsh itself.

Add workflow to test scripts

๐Ÿš€ Feature

Add a test workflow to verify functionality of scripts being used.

Motivation

  • It's good to maintain verification for scripts.
  • Verified testing is good
  • test badge is nice to look at

Pitch

Setup a tests.yml workflow that will run test for setup.sh and clean.sh. Running these two scripts should call every other script thus testing all scripts being used.

Alternatives

  • test locally every time and hope that I remembered
  • setup custom pre-commit to automate tests before commit
    • this is the ultimate safety guard but would likely make small test changes much harder to make

Multiselect

๐Ÿ› Bug

Moving up or down leaves extra highlighted box at end of options.

image
image

To Reproduce

sh clean.sh or setup.sh
# move selection down or up

Expected behavior

Moving selection shouldn't leave any remnants

list of non-essential applications to install

๐Ÿš€ Feature

Add file containing list of non-essential applications to install. Add selection in setup to install each of the applications.

Motivation

  • There are a lot of non-essentials that are simply very nice to have.
  • Making a separate files makes it easier to maintain the list

Pitch

  • create a file with list of non-essential applications/packages to install i.e., extras.txt
  • parse file and add option in setup script to install each of the applications with their own confirmation prompt

Alternatives

  • directly store list of applications inside of script

Remove reliance on tput for text styling in scripts

๐Ÿš€ Feature

Replace tput with escape characters for all text color and formatting

Motivation

  • Color and formatting for any output to terminal should be possible without using tput.
  • reduce reliance on extra applications

Pitch

Use default color and styling options for outputting to terminal.
Details about options are found here

Alternatives

  • keep using tput but format different styles better to make it easier to use
  • store colors in variables that store printf formatting statements

Tmux option broken for setup and clean

๐Ÿ› Bug

Selecting tmux option in clean.sh and setup.sh doesn't actually do anything

To Reproduce

sh clean.sh or sh setup.sh
Select to Clean/Remove: 
 [ ]  zsh  
 [ ]  neovim 
 [x]  tmux 
 [ ]  extras 

Expected behavior

Actually setup and clean tmux

vim plugins not installed in setup script

๐Ÿ› Bug

vim plugins not installed in setup script

To Reproduce

Setup script will install neovim and link its init.vim file, but does not actually install individual plugins.

Expected behavior

setup.sh also installs plugins into neovim environment

Additional context

Right now there is simply a prompt to run :PlugInstall in vim.

-a/--all flag for clean and setup scripts

๐Ÿš€ Feature

Add a -a/--all flag to pass into the clean and setup scripts to have all options selected by default.

Motivation

Fresh installs will likely have me installing everything, so its easier to have a way to select them all. The same can be said for the clean script.

Pitch

Add a -a/--all flag to pass in to setup.sh and clean.sh:

sh setup.sh -a or sh setup.sh --all
sh clean.sh -a or sh clean.sh --all

Alternatives

  • Change the default in the multiselect.sh script to have everything selected to start.'

Add git config

๐Ÿš€ Feature

Add gitconfig to repo and setup script.

Motivation

  • git aliases are nice to have setup
  • git name and email are the same and should be maintained

Pitch

Add gitconfig that will be linked to a global XDG_CONFIG_HOME/git/config so that git configs are always maintained.

Alternatives

  • manually create git configs

neovim coc extensions not installed by setup script

๐Ÿš€ Feature

Add a package.json file for all of the coc-extensions

Motivation

When the setup script is run, coc-extensions are not installed into the neovim environment. Since I utilize many of these, the experience sucks without them.

Pitch

Maintain a package.json file with all of the coc-extensions to be installed. This can then be linked to $XDG_CONFIG_HOME/coc. Thus in the setup.sh script we can do a simple npm install in that directory to install all of the coc-extension.

Alternatives

  • store all desired coc-extensions in a simple text file then manually install them with:CocInstall
  • manually install all coc-extensions into the $XDG_CONFIG_HOME/coc directory

Create setup script

Background

There are tools out there that automatically sort and arrange your files in a convenient way, but they require you to structure your files in a certain way. Dotbot and GNU Stow are good examples of these that I may use at some point because I am lazy; however for now I would rather have a clean file structure so I can view my configs easily.

Problem

As I change machines I waste way too much time just setting up my environment to be exactly the same as before.

Solution

A configurable setup script would allow all of this to be automated saving hours of time.

Reinstalling packages every time setup.sh is run

๐Ÿ› Bug

Applications that are already installed are reinstalled every time setup.sh script is run

Current culprits:

  • ripgrep
  • fzf
  • neovim (node package)

To Reproduce

sh setup.sh

Expected behavior

When applications are already installed, they should not be reinstalled. Instead I should log a message saying that the specific packages are already installed.

Not cleaning neovim

๐Ÿ› Bug

clean.sh does not remove neovim and its configs

To Reproduce

sh clean.sh
# select option for neovim
Select to Clean/Remove: 
 [ ]  zsh  
 [x]   neovim 
 [ ]  tmux 
 [ ]  extras 

Expected behavior

clean.sh removes neovim, config, and all plugins related

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.