Merge branch 'readme' into main
This commit is contained in:
commit
12ae1e614d
117
README.md
117
README.md
@ -2,9 +2,11 @@
|
|||||||
|
|
||||||
These are my dotfiles. They are awesome.
|
These are my dotfiles. They are awesome.
|
||||||
|
|
||||||
This repo contains my dotfiles which I use at OS X and FreeBSD systems. This set features a nice and fast zsh config, a neat vim environment and a tmux config.
|
This repo contains my dotfiles which I use at macOS, FreeBSD and Linux systems. This set features a nice and fast zsh config, a neat vim environment and a tmux config.
|
||||||
|
|
||||||
![Image](https://raw.githubusercontent.com/chrisb86/dotfiles/main/screenshot.png)
|
The workstation realted stuff is mostly tested on macOS. Especially the key bindings may be not portable at the moment.
|
||||||
|
|
||||||
|
![Alacritty window using the dotfiles by chrisb86](https://raw.githubusercontent.com/chrisb86/dotfiles/main/screenshot.png)
|
||||||
|
|
||||||
The zsh prompt is handcrafted to look neat and provide some extra info. When you are root the user- and hostname color changes from blue to red. If you are connected via ssh, the prompt will show some green arrows behind the working path and when you are in a git repository, it will show some git infos at the right side.
|
The zsh prompt is handcrafted to look neat and provide some extra info. When you are root the user- and hostname color changes from blue to red. If you are connected via ssh, the prompt will show some green arrows behind the working path and when you are in a git repository, it will show some git infos at the right side.
|
||||||
|
|
||||||
@ -12,20 +14,45 @@ The tmux config contains some nice settings to make my work a bit easier and loo
|
|||||||
|
|
||||||
My color scheme is the awesome [Nord Color scheme](https://www.nordtheme.com) by Arctic Ice Studio and my font is [~~FiraCode~~](https://github.com/tonsky/FiraCode) [Source Code Pro](https://adobe-fonts.github.io/source-code-pro/).
|
My color scheme is the awesome [Nord Color scheme](https://www.nordtheme.com) by Arctic Ice Studio and my font is [~~FiraCode~~](https://github.com/tonsky/FiraCode) [Source Code Pro](https://adobe-fonts.github.io/source-code-pro/).
|
||||||
|
|
||||||
The repo ships with a bootstrap script that you can use to deploy and update the dotfiles.
|
The repo ships with a Makefile that you can use to deploy and update the dotfiles.
|
||||||
|
|
||||||
# bootstrap.sh help
|
```shell
|
||||||
|
# make help
|
||||||
Usage: bootstrap.sh command {params}
|
help This help
|
||||||
|
all Update repo, decrypt secrets and run deploy-macos
|
||||||
list List all files that will be copied
|
install Update repor and run deploy-base
|
||||||
update Update the git repo and the included submodules
|
deploy-base Only deploy basic conf files for shell usage
|
||||||
deploy Copy the files to ~
|
deploy-workstation Deploy workstation specific config files (inherits deploy-shell)
|
||||||
install Update and deploy these dotfiles
|
deploy-macos Deploy macOS specific config files (inherits deploy-workstation)
|
||||||
help Show this screen
|
gen-vscodium-plugin-list Update the list of VSCodium plugins
|
||||||
|
git-secrets-hide Hide secrets with git-secret
|
||||||
|
git-secrets-reveal Reveal secrets with git-secret
|
||||||
|
git-fetch Fetch changes from origin
|
||||||
|
git-push Push changes to origin
|
||||||
|
git-update-submodules Update all submodules
|
||||||
|
brew-bundle Install applications with brew bundle
|
||||||
|
brew-bundle-cleanup Removew all appplications that are not listed in Brewfile
|
||||||
|
deploy-alacritty Deploy alacritty config
|
||||||
|
deploy-bitbar Deploy BitBar config
|
||||||
|
deploy-duti Deploy duti config
|
||||||
|
deploy-espanso Deploy espanso config
|
||||||
|
deploy-htop Deploy htop config
|
||||||
|
deploy-skhd Deploy skhd config
|
||||||
|
deploy-tmux Deploy tmux config
|
||||||
|
deploy-vim Deploy vim config
|
||||||
|
deploy-vscodium Deploy VSCodium config
|
||||||
|
deploy-yabai Deploy yabai config
|
||||||
|
deploy-youtubedl Deploy youtube-dl config
|
||||||
|
deploy-zsh Deploy zsh config
|
||||||
|
deploy-brewfile Deploy Brewfile
|
||||||
|
deploy-ssh Deploy SSH config
|
||||||
|
deploy-hushlogin Deploy .hushlogin
|
||||||
|
```
|
||||||
|
|
||||||
The dotfiles will be copied to your **~**.
|
The dotfiles will be copied to your **~**.
|
||||||
|
|
||||||
|
The repo is initialized for beeing used with git-secret. My own personal secrets are pushed to the repo as well and can be decrypted with my GPG key.
|
||||||
|
|
||||||
## ZSH with bells and whistles
|
## ZSH with bells and whistles
|
||||||
|
|
||||||
The ZSH config doesn’t use any frameworks and is tuned for speed.
|
The ZSH config doesn’t use any frameworks and is tuned for speed.
|
||||||
@ -52,22 +79,70 @@ The tmux config rebinds the prefix key to C-a. It features different shortcuts t
|
|||||||
|
|
||||||
It also supports nested sessions with a modified color scheme. That’s nice when using tmix.
|
It also supports nested sessions with a modified color scheme. That’s nice when using tmix.
|
||||||
|
|
||||||
![Image](https://raw.githubusercontent.com/chrisb86/dotfiles/main/screenshot-tmix.png)
|
![Alacritty window using the dotfiles by chrisb86 in a tmix session](https://raw.githubusercontent.com/chrisb86/dotfiles/main/screenshot-tmix.png)
|
||||||
|
|
||||||
|
## Alacritty
|
||||||
|
|
||||||
|
I love Alacritty because it's a damn fast Terminal emulator that's configured with a simple text file config.
|
||||||
|
|
||||||
|
I've configured it to use tmux for tabs and multiplexing and configured some usefull keybindings.
|
||||||
|
|
||||||
|
### Keybindings:
|
||||||
|
|
||||||
|
| Key | Modifier(s) | Description |
|
||||||
|
| -------- | ----------- | ------------------------ |
|
||||||
|
| N | ⌘ | Spawn a new instance |
|
||||||
|
| 0 (Zero) | ⌘ | Reset font size |
|
||||||
|
| + | ⌘ | Increase font size |
|
||||||
|
| - | ⌘ | Decrease font size |
|
||||||
|
| J | ⌘ | Move to next session |
|
||||||
|
| K | ⌘ | Move to previous session |
|
||||||
|
| T | ⌘ | Create window |
|
||||||
|
| H | ⌘ | Move to previous window |
|
||||||
|
| L | ⌘ | Move to next window |
|
||||||
|
| X | ⌘ | Kill pane/window |
|
||||||
|
| A | ⌘ | Split pane vertically |
|
||||||
|
| S | ⌘ | Split pane horizontally |
|
||||||
|
| Z | ⌘ | Maximize pane |
|
||||||
|
| T | ⌘⇧ | Create window in nested session |
|
||||||
|
| H | ⌘⇧ | Move to previous window in nested session |
|
||||||
|
| L | ⌘⇧ | Move to next window in nested session |
|
||||||
|
| X | ⌘⇧ | Kill pane/window in nested session |
|
||||||
|
| A | ⌘⇧ | Split pane vertically in nested session |
|
||||||
|
| S | ⌘⇧ | Split pane horizontally in nested session |
|
||||||
|
| Z | ⌘⇧ | Maximize pane in nested session |
|
||||||
|
| , | ⌘ | Open Alacritty config directory |
|
||||||
|
| ⌫ | ⌘ | Delete word/line |
|
||||||
|
| ← | ⌥ | Move one word left |
|
||||||
|
| → | ⌥ | Move one word right |
|
||||||
|
| ← | ⌘ | Move to beginning of the line |
|
||||||
|
| → | ⌘ | Move to end of the line |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Get the dotfiles.
|
## ### Getting the dotfiles.
|
||||||
|
|
||||||
git clone https://git.debilux.org/chbaer/dotfiles.git
|
```shell
|
||||||
|
git clone https://github.com/chrisb86/dotfiles.git
|
||||||
|
```
|
||||||
|
|
||||||
2. Deploy
|
### Deploying the dotfiles
|
||||||
|
|
||||||
./make.sh install
|
For installing the base set for shell usage run
|
||||||
|
```shell
|
||||||
3. Enjoy!
|
make install
|
||||||
|
```
|
||||||
If you want to update to the newest version, run ``bootstrap.sh update`` from within the dotfiles folder and ``bootstrap.sh deploy`` to copy the updated files.
|
For the fullfl edged setup with decrypting of the secrets use
|
||||||
|
```shell
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
To list all avaliable commands run:
|
||||||
|
```shell
|
||||||
|
make help
|
||||||
|
```
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
104
make.sh
104
make.sh
@ -1,104 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# make.sh
|
|
||||||
# Copyright 2016 Christian Baer
|
|
||||||
# https://git.debilux.org/chbaerr/dotfiles
|
|
||||||
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
# a copy of this software and associated documentation files (the
|
|
||||||
# "Software"), to deal in the Software without restriction, including
|
|
||||||
# without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
||||||
# permit persons to whom the Software is furnished to do so, subject to
|
|
||||||
# the following conditions:
|
|
||||||
|
|
||||||
# The above copyright notice and this permission notice shall be
|
|
||||||
# included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
||||||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
||||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTI
|
|
||||||
|
|
||||||
exclude="README.md|init|Makefile|screenshot.png|.png|.git|.gitignore|.gitmodules|.gitsecret|.DS_Store|make.sh"
|
|
||||||
|
|
||||||
self=`basename -- "$0"`
|
|
||||||
basedir=`dirname "$0"`
|
|
||||||
|
|
||||||
# Show help screen
|
|
||||||
# Usage: help exitcode
|
|
||||||
help () {
|
|
||||||
echo "Usage: ${self} command {params}"
|
|
||||||
echo
|
|
||||||
echo "list List all files that will be copied"
|
|
||||||
echo "update Update the git repo and the included submodules"
|
|
||||||
echo "deploy Copy the files to ~"
|
|
||||||
echo "install Update and deploy these dotfiles"
|
|
||||||
echo "help Show this screen"
|
|
||||||
|
|
||||||
exit $1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Update git repo and submodules
|
|
||||||
# Usage: df_update
|
|
||||||
df_update () {
|
|
||||||
echo "#### Updating git repos and submodules"
|
|
||||||
git pull origin
|
|
||||||
git submodule init
|
|
||||||
git submodule update
|
|
||||||
git submodule foreach git pull origin
|
|
||||||
}
|
|
||||||
|
|
||||||
# Deploy files to ~
|
|
||||||
# Usage: df_deploy
|
|
||||||
df_deploy () {
|
|
||||||
|
|
||||||
list_dirs=$(find . -type d | cut -d "/" -f 2- | grep -vE "${exclude}")
|
|
||||||
list_files=$(find . -type f | cut -d "/" -f 2- | grep -vE "${exclude}")
|
|
||||||
|
|
||||||
for dir in ${list_dirs}; do
|
|
||||||
mkdir -p ${HOME}/${dir}
|
|
||||||
done
|
|
||||||
|
|
||||||
for file in ${list_files}; do
|
|
||||||
cp -f ${file} ${HOME}/${file}
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# List files that will be copied
|
|
||||||
# Usage: df_list
|
|
||||||
df_list () {
|
|
||||||
find . -print | grep -vE "$exclude"
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
######################## bootstrap.sh HELP ########################
|
|
||||||
help)
|
|
||||||
help 0
|
|
||||||
;;
|
|
||||||
######################## bootstrap.sh LIST ########################
|
|
||||||
list)
|
|
||||||
# Lists all files in repo, except those specified in $exclude"
|
|
||||||
df_list
|
|
||||||
;;
|
|
||||||
######################## bootstrap.sh DEPLOY ########################
|
|
||||||
deploy)
|
|
||||||
|
|
||||||
df_deploy
|
|
||||||
;;
|
|
||||||
######################## bootstrap.sh UPDATE ########################
|
|
||||||
update)
|
|
||||||
|
|
||||||
df_update
|
|
||||||
;;
|
|
||||||
######################## bootstrap.sh INSTALL ########################
|
|
||||||
install)
|
|
||||||
df_update
|
|
||||||
df_deploy
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
help 1
|
|
||||||
;;
|
|
||||||
esac
|
|
Binary file not shown.
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 493 KiB |
BIN
screenshot.png
BIN
screenshot.png
Binary file not shown.
Before Width: | Height: | Size: 331 KiB After Width: | Height: | Size: 558 KiB |
Loading…
Reference in New Issue
Block a user