Giter VIP home page Giter VIP logo

dotfiles's Introduction

Dotfiles

Cross-platform dotfiles.

  • clone repo

    git clone https://github.com/jthegedus/dotfiles ~/dev
  • run the script to symlink dotfiles:

    ~/dev/dotfiles/setup.bash
  • Now install the tools & software using your favourite package manager.

Tools

Tools I use:

Configuration can be seen in this repositories home directory.

Tools without custom Configurations

  • bat: A cat(1) clone with wings
  • bottom: Yet another cross-platform graphical process/system monitor
  • choose: A human-friendly and fast alternative to cut and (sometimes) awk
  • difftastic: A structural diff tool that understands syntax
  • fd: A simple, fast and user-friendly alternative to 'find'
  • gh: GitHub’s official command line tool
  • gotop: A terminal based graphical activity monitor inspired by gtop and vtop
  • nala: a wrapper for the apt package manager
  • nvtop: GPUs process monitoring for AMD, Intel and NVIDIA
  • ranger: A VIM-inspired filemanager for the console
  • ripgrep: recursively search directories for a regex pattern while respecting your gitignore
  • tealdeer: A very fast implementation of tldr in Rust.
  • ugrep: an ultra fast, user-friendly, compatible grep.
  • vscode: code editor
  • zoxide: A smarter cd command

OS

Manual configurations I set for OSs.

Linux with Gnome:

  • set tab switching swap all app windows not just apps:
    • Settings > Keyboard > customize keyboard shortcuts > Navigation > Switch Windows: set to use the keyboard combo you like, eg: alt+tab
  • set interactive screenshot tool:
    • Settings > Keyboard > customize keyboard shortcuts > Screenshots > Take a Screenshot Interactively: set to use the keyboard combo you like, eg: shift+super+s
  • Install Gnome extension for Forge tiling window manager

Windows:

MacOS:

Interesting

License

MIT License © James Hegedus

dotfiles's People

Contributors

christippett avatar dependabot[bot] avatar jthegedus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dotfiles's Issues

Revert Linuxbrew

Is your feature request related to a problem? Please describe.

I wish to revert my usage of Linuxbrew. While somewhat convenient, my issues with Homebrew has been exacerbated and it is much more simple to just rely on each system's best method to get particular tools.

Describe the solution you'd like

Continue using Homebrew on macOS, but revert Ubuntu use of Linuxbrew.

Describe alternatives you've considered

Additional context

Git config

Is your feature request related to a problem? Please describe.

Would be good to have basic git config in here:

  • username
  • email
  • credentials with cache timeout
     git config credential.helper store
     git config --global credential.helper 'cache --timeout 7200'
    

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Include other configuration files in dotfiles repository

Is your feature request related to a problem? Please describe.
Some configuration files make sense to be replicated across different environments. A user's dotfiles repository is a good place to save and instantiate these, rather than having to employ a manual process separate to the shell/application setup to copy these across.

Some examples include a user's .gitconfig, .vimrc, ssh/config file, etc.

Describe the solution you'd like
One potential approach is to have the shell setup script loop through each file included in the config/ directory, symlinking each file it finds into the user's $HOME directory. It should traverse sub-folders, so configuration files like .ssh/config are supported.

Describe alternatives you've considered
NA

Additional context
NA

Explore these tools for macOS

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Integrate some of these tools into the macos setup/dotfiles

Describe alternatives you've considered

Additional context

z not installed on setup

Describe the bug
z.sh not installed on setup.

Steps to reproduce
Run wget -O https://raw.githubusercontent.com/rupa/z/master/z.sh "${HOME}" (snippet from setup-devtools.bash)

Expected behavior
Downloads z.sh to home directory.

Screenshots
NA

Additional context
NA

Use Brewfile for installing packages on MacOS

Is your feature request related to a problem? Please describe.
Homebrew allows you to declare which packages (including casks) you'd like installed in a Brewfile. Rather than peppering the install scripts with brew install's, desired packages could be listed in a Brewfile that's committed to the repository and then referenced as part of the install process. This would allow users to customise their environments by editing a single resource, instead of inspecting and modifying the underlying scripts.

Describe the solution you'd like
Add a step within setup-devtools.bash to call brew bundle --global and install any and all packages listed in the user's Brewfile located in their home directory. This Brewfile would be symlinked from a version sourced from the dotfiles repository (config/Brewfile).

Describe alternatives you've considered
Keep the status quo and install relevant packages inline within the install scripts.

Additional context
NA

support per OS installation & .config

Writing a single installation script per OS is messy and hard to maintain.

Should have a single install.bash script, which then detects OS to the download and curl|bash an OS-specific install-<os>.bash script.

Support same tooling across different OSs.

OSs:

  • Windows11
  • macOS
  • Arch (EndeavourOS)
  • Debian (Ubuntu/PopOS)

Tools:

  • nushell: a new type of shell
  • starship: cross-shell theme
  • asdf: Manage multiple runtime versions with a single CLI tool
  • powerline fonts
  • ripgrep: recursively search directories for a regex pattern while respecting your gitignore
  • zoxide: A smarter cd command
  • bat: A cat(1) clone with wings
  • fd: A simple, fast and user-friendly alternative to 'find'
  • ? https://github.com/ClementTsang/bottom

Some of these may not run natively on Windows11

Install script for Ubuntu app setup

Is your feature request related to a problem? Please describe.

I want to be able to remotely clone and exec a particular script to setup my apps on Ubuntu similar to how oh-my-zsh is installed sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Social Preview image for repo

Is your feature request related to a problem? Please describe.

A preview image to be rendered when shared on social media

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Support GitHub Codespaces

Is your feature request related to a problem? Please describe.

I have access to GitHub Codespaces (VSCode in browser hosted by GitHub). Codespaces looks for <user>/dotfiles repo on launch and clones this into the environment. While successfully cloning, it does not run the installation steps in this repo as it is not found by Codespaces install methods:

When you create a new codespace, GitHub clones your dotfiles repository to the codespace environment, and looks for one of the following files to set up the environment.

  • install.sh
  • install
  • bootstrap.sh
  • bootstrap
  • setup.sh
  • setup
    If none of these files are found, then any files or folders in dotfiles starting with . are symlinked to the codespace's ~ or $HOME directory.
    Any changes to your dotfiles repository will apply only to each new codespace, and do not affect any existing codespace.

source: https://docs.github.com/en/github/developing-online-with-codespaces/personalizing-codespaces-for-your-account

Describe the solution you'd like

Add a wrapper script in the repo root which Codespace will find and run

Identify if installs from GitHub require master > main changes

Describe the bug

Some tools are installed by raw github content curls or wget, if these repos have changed their default branches we will need to update to pull from them.

**URls used **

Fix directory bug

/ in the filepaths is causing a folder called / to be created in the users "Home" folder.

change to git clone https://github.com/jthegedus/dotfiles.git "./Projects/Personal/dotfiles"

Read git clone docs

finish upgrade

  • add contributors guide & all_contributors to pkg.json
  • migrate zsh manual setup to it's own guide
  • migrate zshrc to template
  • ensure bashrc template is complete
  • add automated installation script that installs with zshrc or bashrc
  • add automated scripts for installing as much of 18.04 system stuff as possible

git config per dir

Is your feature request related to a problem? Please describe.

I often have multiple folders at work for different clients (projects-company1, projects-company2 etc) and want to automatically change git config user per directory.

Describe the solution you'd like

Use the solutions described here - https://stackoverflow.com/a/43884702/7911479

Describe alternatives you've considered

manually changing

Additional context

# ~/.gitconfig
[includeIf "gitdir:~/projects/"]
	path = ~/projects/.gitconfig
[includeIf "gitdir:~/projects-COMPANY_NAME/"]
	path = ~/projects-COMPANY_NAME/.gitconfig
[core]
	editor = code --wait
[credential]
	helper = cache --timeout 7200
[pull]
	ff = only

# ~/projects/.gitconfig
[user]
	name = jthegedus
	email = j[email protected]

# ~/projects-COMPANY_NAME/.gitconfig
[user]
	name = James Hegedus
	email = james.hegedus@COMPANY_NAME.com

Update README

README has fallen out of sync with the actual implementation. Update this to reflect the use of Homebrew on Linux and Navi etc.

Use plugin repo urls instead of relying of asdf-plugins repo

Is your feature request related to a problem? Please describe.

config/initial-asdf-plugins.txt relies on the asdf-plugins repo plugins instead of the direct repo URLs for the plugins. We should be more precise here.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Migrate Linux tool/dependencies installation to use Homebrew

Is your feature request related to a problem? Please describe.

I just learned that Homebrew now natively supports Linux. I wasn't a fan of Linuxbrew and Homebrew being two separate systems. I am a fan of how Homebrew manages dependencies of each of it's Formulae. Instead of managing dependencies in this repo before each tool is installed, we can lean on Homebrew.

Describe the solution you'd like

Use Homebrew to install macOS and Linux/Ubuntu.

May require installing deps for Homebrew.

Describe alternatives you've considered

Currently we manually handle the dependencies for Linux/Ubuntu which is becoming cumbersome.

Additional context

Move z.sh and fzf into setup-shell.bash

Would you consider moving the installation steps for z.sh and fzf into setup-shell.bash?

For setting up non-development environments (in my case, a home server), it'd be great to still install all the nice shell utilities by running setup-shell.bash.

Add GitConfig

Local user setup:
git config --global user.email
git config --global user.name

Alias:

  • lg -> git log --all --decorate --oneline --graph

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.