Compare commits

...

46 Commits

Author SHA1 Message Date
edd0c4cba0 chore(config): update iterm2 config 2023-08-21 07:48:48 +03:00
103aa08664 chore(zsh): remove antigen plugins not used 2023-08-21 07:48:30 +03:00
ivuorinen
b8ba7a0681 chore(git): Update submodules (automated)
config/nvim v3.36.3
2023-08-20 03:04:39 +00:00
ivuorinen
e1db55f113 chore(git): Update submodules (automated)
config/nvim v3.36.2
2023-08-19 03:04:44 +00:00
ivuorinen
d519af562a chore(git): Update submodules (automated)
config/nvim v3.36.1
tmux/tmux-notify v1.5.0
2023-08-16 03:04:50 +00:00
7493fd6401 fix(config): fix fzf.zsh paths 2023-08-15 12:17:30 +03:00
217664ffc2 fix(shell): remove fig from bashrc 2023-08-15 12:16:44 +03:00
7998705d3b chore(tmux): remove wrongly linked catppuccin 2023-08-15 12:16:25 +03:00
2f043d8b37 chore(config): updated paths, cleaned old files 2023-08-15 12:11:24 +03:00
a103fbddbe feat(tools): moved x-dc & few others to shared.sh 2023-08-15 12:10:36 +03:00
b583b0be83 chore(config): moved nbrc under config 2023-08-15 12:08:41 +03:00
52323803dc feat(tools): removal of fig 2023-08-15 12:07:35 +03:00
2026b6adfe fix(tmux): catppuccin submodule and tpm names 2023-08-15 11:55:07 +03:00
bb4eb1f8c7 chore(nvim): don't show .null-ls_* 2023-08-13 17:26:01 +03:00
daff9f957a chore(brew): update brewfile 2023-08-13 17:25:25 +03:00
91c8410eb0 feat(tldr): switch to tealdeer from tldr 2023-08-13 17:23:37 +03:00
68bb53435d chore(config): cleanup configs, fixes 2023-08-13 17:21:53 +03:00
ivuorinen
cd5cea172a chore(git): Update submodules (automated)
tmux/tmux-autoreload v0.0.1
tmux/tmux-continuum v3.1.0
tmux/tmux-resurrect v4.0.0
tmux/tmux-sensible v3.0.0
tmux/tmux-sessionist v2.3.0
tmux/tmux-yank v2.3.0
tmux/vim-tmux-navigator v1.0
2023-08-13 03:04:40 +00:00
e3f5bbad00 fix(git): submodule registration script 2023-08-12 16:43:22 +03:00
1185524e97 feat(scripts): python wrapper for python3 2023-08-11 16:59:56 +03:00
ac18c73f53 fix(docs): updated screenshot paths 2023-08-11 11:59:50 +03:00
bf4730a1f3 fix(tmux): added tmux plugins as git submodules 2023-08-11 11:55:14 +03:00
3ea0ba687c chore(tmux): moved plugins to config/tmux/plugins 2023-08-11 11:40:28 +03:00
b5df810075 fix(shell): fix completions 2023-08-11 11:39:33 +03:00
fab40dae96 chore(config): home cleanup, config updates 2023-08-11 11:38:43 +03:00
c6567f4f98 feat(shell): moved p10k from root 2023-08-11 11:32:06 +03:00
2ecbefecf7 feat(config): rust / cargo env settings 2023-08-11 10:20:56 +03:00
90bc744d51 chore(docs): rework readme 2023-08-11 10:20:24 +03:00
ivuorinen
e46dadb128 chore(git): Update submodules (automated)
config/nvim v3.36.0
2023-08-11 03:04:39 +00:00
3368217108 chore(config): taskrc recurrence 2023-08-10 09:33:38 +03:00
85fbc8684b fix(config): fix git-profile configuration 2023-08-10 09:33:07 +03:00
a3acd654f2 fix(shell): updated completions settings 2023-08-10 09:32:25 +03:00
49362fcc9d chore(repo): moved readme under .github 2023-08-10 09:30:31 +03:00
742b4af0e8 feat(brew): update Brewfile path, add brew.env 2023-08-10 09:30:06 +03:00
aebb0dadbd chore(config): update iterm2 configuration 2023-08-10 08:25:04 +03:00
ivuorinen
a7e68f1224 chore(git): Update submodules (automated)
config/nvim v3.35.2
2023-08-09 03:04:24 +00:00
42706adf0b feat(zsh): now using romkatv/powerlevel10k theme 2023-08-08 12:28:21 +03:00
fef9398a86 feat(alias): tmux attach over new sessions 2023-08-07 16:27:54 +03:00
c37df72f12 fix(shell): reverts .zshenv and .config/zsh/.zshrc 2023-08-07 16:27:10 +03:00
ivuorinen
45a2330425 chore(git): Update submodules (automated)
config/nvim v3.35.0
2023-08-04 03:04:28 +00:00
0596c51a0e fix(scripts): fix x-welcome-banner time comparison 2023-08-03 08:36:10 +03:00
8f4ad21ed8 feat(nvim): kazhala/close-buffers.nvim + mappings 2023-08-01 14:26:13 +03:00
491f733221 feat(nvim): ansible document support 2023-08-01 14:21:19 +03:00
6eefbdc965 chore(lint): lualint fixes 2023-08-01 14:20:23 +03:00
558b6500d3 chore(git): ignore config/zsh/.zcompdump 2023-08-01 13:17:29 +03:00
ivuorinen
23a34c1447 chore(git): Update submodules (automated)
config/nvim v3.34.4
2023-08-01 03:04:39 +00:00
64 changed files with 6216 additions and 402 deletions

118
.github/README.md vendored Normal file
View File

@@ -0,0 +1,118 @@
# .dotfiles
Welcome to [ivuorinen](https://github.com/ivuorinen)'s .dotfiles repository.
It's a hodgepodge of scripts and configurations, tests and mistakes I'm not
aware of yet. As I find more interesting tools, configs and other stuff,
this repository will live accordingly.
Please for the love of everything good do not use these 1:1 as your own dotfiles,
fork or download the repo as a zip and go from there with your own configs.
## Setup
### First time setup
1. Clone this repository to `$HOME/.dotfiles`
2. `./install`
3. ???
4. Profit
### Updates
`cd $HOME/.dotfiles && git pull && ./install`
## The looks
## tmux with powerlevel10k, the default view
![screenshot of tmux with powerlevel10k](./screenshots/tmux-powerlevel10k-130x20.png)
## tmux + nvim (astronvim) editing this repository
![screenshot of tmux showing nvim](./screenshots/tmux-astronvim-130x40.png)
## Interesting files and locations
### Interesting folders
| Path | Description |
|---------------------|----------------------------------------------|
| `.github` | GitHub Repository configuration files. |
| `hosts/{hostname}/` | Configs that should apply to that host only. |
| `local/bin` | Helper scripts that I've collected or wrote. |
| `scripts` | Setup scripts. |
### dotfile folders
| Repo | Destination | Description |
|-----------|-------------|---------------------------------------------|
| `base/` | `.*` | `$HOME` level files. |
| `config/` | `.config/` | Configurations for applications. |
| `local/` | `.local/` | XDG Base folder: `bin`, `share` and `state` |
| `ssh/` | `.ssh/` | SSH Configurations. |
### dfm - the dotfiles manager
`.local/bin/dfm` is a shell script that has some tools that help with dotfiles management.
## Configuration
The folder structure follows [XDG Base Directory Specification][xdg] where possible.
### XDG Variables
| Env | Default | Short description |
|--------------------|----------------------|------------------------------------------------|
| `$XDG_BIN_HOME` | `$HOME/.local/bin` | Local binaries |
| `$XDG_CONFIG_HOME` | `$HOME/.config` | User-specific configs |
| `$XDG_DATA_HOME` | `$HOME/.local/share` | User-specific data files |
| `$XDG_STATE_HOME` | `$HOME/.local/state` | App state that should persist between restarts |
#### XDG_BIN_HOME (`$HOME/.local/bin`)
`$XDG_BIN_HOME` defines directory that contains local binaries.
User-specific executable files may be stored in `$HOME/.local/bin`.
Distributions should ensure this directory shows up in the UNIX `$PATH`
environment variable, at an appropriate place.
#### XDG_DATA_HOME (`$HOME/.local/share`)
`$XDG_DATA_HOME` defines the base directory relative to which
user-specific *data files* should be stored.
If `$XDG_DATA_HOME` is either not set or empty,
a default equal to `$HOME/.local/share` should be used.
#### XDG_CONFIG_HOME (`$HOME/.config`)
`$XDG_CONFIG_HOME` defines the base directory relative to which
user-specific *configuration files* should be stored.
If `$XDG_CONFIG_HOME` is either not set or empty,
a default equal to `$HOME/.config` should be used.
#### XDG_STATE_HOME (`$HOME/.local/state`)
`$XDG_STATE_HOME` defines the base directory relative to which
user-specific *state files* should be stored.
If `$XDG_STATE_HOME` is either not set or empty,
a default equal to `$HOME/.local/state` should be used.
The `$XDG_STATE_HOME` contains *state data* that should
*persist between (application) restarts*, but that is not important or
portable enough to the user that it should be stored in `$XDG_DATA_HOME`.
- It may contain:
- actions history (logs, history, recently used files, …)
- current state of the application that can be reused
on a restart (view, layout, open files, undo history, …)
#### XDG_DATA_DIRS
`$XDG_DATA_DIRS` defines the preference-ordered set of base directories
to search for data files in addition to the `$XDG_DATA_HOME` base directory.
The directories in `$XDG_DATA_DIRS` should be seperated with a colon ':'.
[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

2
.gitignore vendored
View File

@@ -8,6 +8,8 @@ config/fzf
config/cheat/cheatsheets/pure-bash-bible/*
config/cheat/cheatsheets/tldr/*
config/git/credentials
config/npm/npmrc
config/zsh/.zcompdump
ssh/local.d/*
!ssh/local.d/.gitkeep
!.gitkeep

39
.gitmodules vendored
View File

@@ -29,3 +29,42 @@
path = config/tmux/plugins/tpm
url = https://github.com/tmux-plugins/tpm.git
ignore = dirty
[submodule "tmux/catppuccin"]
path = config/tmux/plugins/tmux
url = https://github.com/catppuccin/tmux.git
[submodule "tmux/tmux-1password"]
path = config/tmux/plugins/tmux-1password
url = https://github.com/yardnsm/tmux-1password.git
[submodule "tmux/tmux-autoreload"]
path = config/tmux/plugins/tmux-autoreload
url = https://github.com/b0o/tmux-autoreload.git
[submodule "tmux/tmux-continuum"]
path = config/tmux/plugins/tmux-continuum
url = https://github.com/tmux-plugins/tmux-continuum
[submodule "tmux/tmux-fzf"]
path = config/tmux/plugins/tmux-fzf
url = https://github.com/sainnhe/tmux-fzf.git
[submodule "tmux/tmux-menus"]
path = config/tmux/plugins/tmux-menus
url = https://github.com/jaclu/tmux-menus.git
[submodule "tmux/tmux-notify"]
path = config/tmux/plugins/tmux-notify
url = https://github.com/ChanderG/tmux-notify.git
[submodule "tmux/tmux-resurrect"]
path = config/tmux/plugins/tmux-resurrect
url = https://github.com/tmux-plugins/tmux-resurrect
[submodule "tmux/tmux-sensible"]
path = config/tmux/plugins/tmux-sensible
url = https://github.com/tmux-plugins/tmux-sensible.git
[submodule "tmux/tmux-sessionist"]
path = config/tmux/plugins/tmux-sessionist
url = https://github.com/tmux-plugins/tmux-sessionist.git
[submodule "tmux/tmux-suspend"]
path = config/tmux/plugins/tmux-suspend
url = https://github.com/MunifTanjim/tmux-suspend.git
[submodule "tmux/tmux-yank"]
path = config/tmux/plugins/tmux-yank
url = https://github.com/tmux-plugins/tmux-yank.git
[submodule "tmux/vim-tmux-navigator"]
path = config/tmux/plugins/vim-tmux-navigator
url = https://github.com/christoomey/vim-tmux-navigator.git

5
.ignore Normal file
View File

@@ -0,0 +1,5 @@
config/cheat/cheatsheets/community/**
config/tmux/**
config/nvim/**
tools/**

View File

@@ -1,5 +0,0 @@
config/cheat/cheatsheets/community/
config/tmux/
config/nvim/
tools/

View File

@@ -1,95 +0,0 @@
# .dotfiles
Welcome to [ivuorinen](https://github.com/ivuorinen)'s .dotfiles repository.
It's a hodgepodge of scripts and configurations, tests and mistakes I'm not
aware of yet. As I find more interesting tools, configs and other stuff,
this repository will live accordingly.
Please for the love of everything good do not use these 1:1 as your own dotfiles,
fork or download the repo as a zip and go from there with your own configs.
## Setup
### First time setup
1. Clone this repository to `$HOME/.dotfiles`
2. `./install`
3. ???
4. Profit
### Updates
`cd $HOME/.dotfiles && git pull && ./install`
## The looks
## tmux with starship, the default view
![screenshot of tmux with starship](./.github/screenshots/tmux-starship.png)
## tmux + nvim (astronvim) editing this repository
![screenshot of tmux showing nvim](.github/screenshots/tmux-nvim-astronvim.png)
## Interesting files and locations
### Interesting folders
| Path | Description |
|---------------------|----------------------------------------------|
| `.github` | GitHub Repository configuration files. |
| `hosts/{hostname}/` | Configs that should apply to that host only. |
| `local/bin` | Helper scripts that I've collected or wrote. |
| `scripts` | Setup scripts. |
### dotfile folders
| Repo | Destination | Description |
|-----------|-------------|---------------------------------------------|
| `base/` | `.*` | `$HOME` level files. |
| `config/` | `.config/` | Configurations for applications. |
| `local/` | `.local/` | XDG Base folder: `bin`, `share` and `state` |
| `ssh/` | `.ssh/` | SSH Configurations. |
### dfm - the dotfiles manager
`.local/bin/dfm` is a shell script that has some tools that help with dotfiles management.
## Configuration
The folder structure follows [XDG Base Directory Specification][xdg] where possible.
### XDG Variables
| Env | Default |
|--------------------|----------------------|
| `$XDG_BIN_HOME` | `$HOME/.local/bin` |
| `$XDG_CONFIG_HOME` | `$HOME/.config` |
| `$XDG_DATA_HOME` | `$HOME/.local/share` |
| `$XDG_STATE_HOME` | `$HOME/.local/state` |
- `$XDG_BIN_HOME` defines directory that contains local binaries.
- `$XDG_DATA_HOME` defines the base directory relative to which user-specific data
files should be stored.
- If `$XDG_DATA_HOME` is either not set or empty, a default equal to
`$HOME/.local/share` should be used.
- `$XDG_CONFIG_HOME` defines the base directory relative to which user-specific
configuration files should be stored.
- If `$XDG_CONFIG_HOME` is either not set or empty, a default equal to `$HOME/.config` should be used.
- `$XDG_STATE_HOME` defines the base directory relative
to which user-specific state files should be stored.
- If `$XDG_STATE_HOME` is either not set or empty, a default equal to `$HOME/.local/state` should be used.
- The `$XDG_STATE_HOME` contains state data that should persist between (application) restarts,
but that is not important or portable enough to the user that it should be stored in `$XDG_DATA_HOME`.
- It may contain:
- actions history (logs, history, recently used files, …)
- current state of the application that can be reused
on a restart (view, layout, open files, undo history, …)
- User-specific executable files may be stored in `$HOME/.local/bin`.
Distributions should ensure this directory shows up in the UNIX `$PATH`
environment variable, at an appropriate place.
- `$XDG_DATA_DIRS` defines the preference-ordered set of base directories
to search for data files in addition to the `$XDG_DATA_HOME` base directory.
The directories in `$XDG_DATA_DIRS` should be seperated with a colon ':'.
[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

View File

@@ -4,4 +4,34 @@ git submodule add --name dotbot -f https://github.com/anishathalye/dotbot.git to
git submodule add --name dotbot-brew -f https://github.com/wren/dotbot-brew.git tools/dotbot-brew
git submodule add --name dotbot-include -f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include
git submodule add --name cheat-community -f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
git submodule add --name tmux/tpm -f https://github.com/tmux-plugins/tpm.git config/tmux/plugins/tpm
# tmux plugin manager and plugins
git submodule add --name tmux/tpm \
-f https://github.com/tmux-plugins/tpm.git config/tmux/plugins/tpm
git submodule add --name tmux/catppuccin \
-f https://github.com/catppuccin/tmux.git config/tmux/plugins/tmux
git submodule add --name tmux/tmux-1password \
-f https://github.com/yardnsm/tmux-1password.git config/tmux/plugins/tmux-1password
git submodule add --name tmux/tmux-autoreload \
-f https://github.com/b0o/tmux-autoreload.git config/tmux/plugins/tmux-autoreload
git submodule add --name tmux/tmux-continuum \
-f https://github.com/tmux-plugins/tmux-continuum config/tmux/plugins/tmux-continuum
git submodule add --name tmux/tmux-fzf \
-f https://github.com/sainnhe/tmux-fzf.git config/tmux/plugins/tmux-fzf
git submodule add --name tmux/tmux-menus \
-f https://github.com/jaclu/tmux-menus.git config/tmux/plugins/tmux-menus
git submodule add --name tmux/tmux-notify \
-f https://github.com/ChanderG/tmux-notify.git config/tmux/plugins/tmux-notify
git submodule add --name tmux/tmux-resurrect \
-f https://github.com/tmux-plugins/tmux-resurrect config/tmux/plugins/tmux-resurrect
git submodule add --name tmux/tmux-sensible \
-f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible
git submodule add --name tmux/tmux-sessionist \
-f https://github.com/tmux-plugins/tmux-sessionist.git config/tmux/plugins/tmux-sessionist
git submodule add --name tmux/tmux-suspend \
-f https://github.com/MunifTanjim/tmux-suspend.git config/tmux/plugins/tmux-suspend
git submodule add --name tmux/tmux-yank \
-f https://github.com/tmux-plugins/tmux-yank.git config/tmux/plugins/tmux-yank
git submodule add --name tmux/vim-tmux-navigator \
-f https://github.com/christoomey/vim-tmux-navigator.git config/tmux/plugins/vim-tmux-navigator

View File

@@ -1,6 +0,0 @@
{
"version": 1,
"cli": {
"analytics": false
}
}

View File

@@ -1,5 +1,3 @@
# Fig pre block. Keep at the top of this file.
[[ -f "$HOME/.fig/shell/bashrc.pre.bash" ]] && builtin source "$HOME/.fig/shell/bashrc.pre.bash"
# this is my bashrc config. there are many like it, but this one is mine.
# shellcheck shell=bash
@@ -11,10 +9,10 @@ function x-load-configs()
{
# Load the shell dotfiles, and then some:
for file in $DOTFILES/config/{exports,alias,functions}; do
[ -r "$file" ] && [ -f "$file" ] && source "$file"
[ -r "$file-secret" ] && [ -f "$file-secret" ] && source "$file-secret"
[ -r "$file-$HOSTNAME" ] && [ -f "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
[ -r "$file-$HOSTNAME-secret" ] && [ -f "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
[ -r "$file" ] && source "$file"
[ -r "$file-secret" ] && source "$file-secret"
[ -r "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
[ -r "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
done
}
x-load-configs
@@ -22,7 +20,6 @@ x-load-configs
# Import ssh keys in keychain
ssh-add -A 2>/dev/null;
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash ] && source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] \
&& source "${DOTFILES}/config/fzf/fzf.bash"
# Fig post block. Keep at the bottom of this file.
[[ -f "$HOME/.fig/shell/bashrc.post.bash" ]] && builtin source "$HOME/.fig/shell/bashrc.post.bash"

View File

@@ -1,12 +0,0 @@
[work]
name = Ismo Vuorinen
email = ismo.vuorinen@vincit.fi
[home]
name = Ismo Vuorinen
email = ismo@ivuorinen.net
[github]
name = ivuorinen
email = ivuorinen@users.noreply.github.com

34
base/gitprofile Normal file
View File

@@ -0,0 +1,34 @@
{
"profiles": {
"github": [
{
"key": "user.name",
"value": "Ismo Vuorinen"
},
{
"key": "user.email",
"value": "ivuorinen@users.noreply.github.com"
}
],
"home": [
{
"key": "user.email",
"value": "ismo@ivuorinen.net"
},
{
"key": "user.name",
"value": "Ismo Vuorinen"
}
],
"work": [
{
"key": "user.email",
"value": "ismo.vuorinen@vincit.fi"
},
{
"key": "user.name",
"value": "Ismo Vuorinen"
}
]
}
}

View File

@@ -4,5 +4,3 @@ export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
alias php="php -d error_reporting=22527"

View File

@@ -1 +0,0 @@
ZDOTDIR=~/.config/zsh

View File

@@ -1,10 +1,65 @@
# Fig pre block. Keep at the top of this file.
[[ -f "$HOME/.fig/shell/zshrc.pre.zsh" ]] && builtin source "$HOME/.fig/shell/zshrc.pre.zsh"
# this is my zsh config. there are many like it, but this one is mine.
# shellcheck shell=bash
export ZDOTDIR="$HOME/.config/zsh/"
mkdir -p "$ZDOTDIR"
# Defaults
export DOTFILES="$HOME/.dotfiles"
# shellcheck source=shared.sh
source "$DOTFILES/scripts/shared.sh"
# Run x-load-configs in your terminal to reload the files.
function x-load-configs()
{
# Load the shell dotfiles, and then some:
for file in $DOTFILES/config/{exports,alias,functions}; do
[ -r "$file" ] && source "$file"
[ -r "$file-secret" ] && source "$file-secret"
[ -r "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
[ -r "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
done
}
x-load-configs
export HISTFILE="$XDG_STATE_HOME"/zsh/history
autoload -U colors zsh/terminfo
colors
setopt correct
export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion"
x-dc "$ZSH_CUSTOM_COMPLETION_PATH"
# Add completion scripts to zsh path
FPATH="$ZSH_CUSTOM_COMPLETION_PATH:$FPATH"
autoload -Uz compinit
if type brew &>/dev/null
then
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
fi
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
# Import ssh keys in keychain
ssh-add -A 2>/dev/null;
# Try to load antigen, if present
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
# antigen is present
have antigen && {
antigen use oh-my-zsh
# config/functions
x-default-antigen-bundles
antigen apply
}
[ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \
&& source "${DOTFILES}/config/fzf/fzf.zsh"
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
export P10K_LOCATION="$XDG_CONFIG_HOME/zsh/p10k.zsh"
[[ ! -f $P10K_LOCATION ]] || source $P10K_LOCATION
# Fig post block. Keep at the bottom of this file.
[[ -f "$HOME/.fig/shell/zshrc.post.zsh" ]] && builtin source "$HOME/.fig/shell/zshrc.post.zsh"

4
config/act/actrc Normal file
View File

@@ -0,0 +1,4 @@
-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04
-P ubuntu-18.04=catthehacker/ubuntu:act-18.04

View File

@@ -55,6 +55,11 @@ if [[ $(uname) == 'Darwin' ]]; then
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
fi
# tmux: automatically attach or create session with name 'main'
alias tmux='tmux new-session -A -s main'
# tmux: attach or create new session
alias ta='tmux attach || tmux'
# watch with: differences, precise, beep and color
alias watchx='watch -dpbc'
# delete .DS_Store files

View File

@@ -1,3 +1,4 @@
-- luacheck: globals vim
return {
-- Configure AstroNvim updates
updater = {
@@ -78,6 +79,29 @@ return {
-- augroups/autocommands and custom filetypes also this just pure lua so
-- anything that doesn't fit in the normal config locations above can go here
polish = function()
local function yaml_ft(path, bufnr)
-- get content of buffer as string
local content = vim.filetype.getlines(bufnr)
if type(content) == "table" then content = table.concat(content, "\n") end
-- check if file is in roles, tasks, or handlers folder
local path_regex = vim.regex "(tasks\\|roles\\|handlers)/"
if path_regex and path_regex:match_str(path) then return "yaml.ansible" end
-- check for known ansible playbook text and if found, return yaml.ansible
local regex = vim.regex "hosts:\\|tasks:"
if regex and regex:match_str(content) then return "yaml.ansible" end
-- return yaml if nothing else
return "yaml"
end
vim.filetype.add {
extension = {
yml = yaml_ft,
yaml = yaml_ft,
},
}
require("notify").setup({
background_colour = "#000000",
})

View File

@@ -17,12 +17,33 @@ return {
end,
desc = "Pick to close",
},
-- tables with the `name` key will be registered with which-key if it's installed
-- this is useful for naming menus
-- tables with the `name` key will be registered with which-key
-- if it's installed this is useful for naming menus
["<leader>b"] = { name = "Buffers" },
-- quick save
-- ["<C-s>"] = { ":w!<cr>", desc = "Save File" }, -- change description but the same command
["<leader>P"] = { ":Telescope projects<cr>", desc = "Update Projects listing" },
-- quick save (change description)
["<C-s>"] = { ":w!<cr>", desc = "Save File" },
["<leader>P"] = {
":Telescope projects<cr>",
desc = "Update Projects listing"
},
-- close_buffers
['<leader>bch'] = {
"<CMD>lua require('close_buffers').delete({type = 'hidden'})<CR>",
desc = "Delete hidden buffers"
},
-- comment-box
["<leader>bb"] = {
"<cmd>lua require('comment-box').lbox()<cr>",
desc = "Left aligned fixed size box with left aligned text"
},
["<leader>bc"] = {
"<cmd>lua require('comment-box').ccbox()<cr>",
desc = "Centered adapted box with centered text"
},
["<leader>bl"] = {
"<cmd>lua require('comment-box').cline()<cr>",
desc = "Centered line"
},
},
t = {
-- setting a mapping to false will disable it

View File

@@ -57,6 +57,9 @@ return {
'.DS_Store',
'thumbs.db'
},
never_show_by_pattern = { -- uses glob style patterns
".null-ls_*",
},
}
return opts

View File

@@ -1,3 +1,4 @@
-- luacheck: globals vim
return {
-- You can also add new plugins here as well:
-- Add plugins, the lazy syntax
@@ -21,6 +22,7 @@ return {
mode = "cursor", -- cursor, or topline
},
},
{ "kazhala/close-buffers.nvim" },
{
"folke/edgy.nvim",
event = "VeryLazy",
@@ -48,12 +50,13 @@ return {
end,
opts = {
bottom = {
-- toggleterm / lazyterm at the bottom with a height of 40% of the screen
-- toggleterm / lazyterm at the bottom with
-- a height of 40% of the screen
{
ft = "toggleterm",
size = { height = 0.4 },
-- exclude floating windows
filter = function(buf, win)
filter = function(_, win)
return vim.api.nvim_win_get_config(win).relative == ""
end,
},
@@ -96,11 +99,6 @@ return {
pinned = true,
open = "Neotree position=top buffers",
},
{
ft = "Outline",
pinned = true,
open = "SymbolsOutlineOpen",
},
-- any other neo-tree windows
"neo-tree",
},

View File

@@ -17,17 +17,11 @@ export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run"
# Homebrew configuration
export HOMEBREW="/opt/homebrew"
export HOMEBREW_BIN="$HOMEBREW/bin"
export HOMEBREW_SBIN="$HOMEBREW/sbin"
export HOMEBREW_PKG="$HOMEBREW/opt"
export HOMEBREW_NO_ENV_HINTS=1
path_append "/opt/homebrew/bin"
have brew && eval "$(brew shellenv)"
path_append "/usr/local/bin"
path_prepend "$HOMEBREW_SBIN"
path_prepend "$HOMEBREW_BIN"
path_prepend "$XDG_BIN_HOME"
path_append "$XDG_BIN_HOME"
# brew, https://brew.sh
have brew && {

View File

@@ -3,6 +3,7 @@
# shellcheck enable=external-sources
# shellcheck disable=1091,2139
# vim: filetype=zsh
export DOTFILES="$HOME/.dotfiles"
source "$DOTFILES/scripts/shared.sh"
# Antigen configuration
@@ -76,6 +77,8 @@ export NVM_DIR="$XDG_CONFIG_HOME/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
# Add npm packages to path
have node && {
NVM_NODE_BIN_DIR="$(dirname "$(which node)")"
@@ -95,6 +98,7 @@ have op && {
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
have pyenv && {
path_append "$(pyenv root)/shims"
path_append "$PYENV_ROOT/bin"
eval "$(pyenv init -)"
}
@@ -112,9 +116,19 @@ x-dc "$RBENV_ROOT"
have gem && path_append "$(gem environment gemdir)/bin"
have rbenv && eval "$(rbenv init - zsh)"
# Rust / cargo
export CARGO_HOME="$XDG_DATA_HOME/cargo"
path_append "$CARGO_HOME/bin"
# screen
export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
# sonarlint
export SONARLINT_USER_HOME="$XDG_DATA_HOME/sonarlint"
# tldr / tealdeer
export TEALDEER_CONFIG_DIR="$XDG_CONFIG_HOME/tealdeer/"
# tmux
export TMUX_CONF="$XDG_CONFIG_HOME/tmux/tmux.conf"

View File

@@ -2,6 +2,7 @@
# shellcheck shell=bash
# shellcheck disable=1091,2046
# vim: filetype=zsh
export DOTFILES="$HOME/.dotfiles"
source "$DOTFILES/scripts/shared.sh"
export LC_ALL=fi_FI.UTF-8

View File

@@ -3,6 +3,7 @@
# shell functions
#
# shellcheck source="../scripts/shared.sh"
export DOTFILES="$HOME/.dotfiles"
source "$DOTFILES/scripts/shared.sh"
# Weather in Tampere, or other city
@@ -19,12 +20,6 @@ ssh-docker()
docker exec -it "$@" bash
}
# Create a new directory and enter it
mkd()
{
mkdir -p "$@" && cd "$@" || exit
}
# All the dig info
digga()
{
@@ -63,27 +58,12 @@ scheduler()
done
}
silent()
{
"$@" >&/dev/null
}
ask()
{
while true; do
read -p "$1 ([y]/n) " -r
REPLY=${REPLY:-"y"}
if [[ $REPLY =~ ^[Yy]$ ]]; then
return 1
elif [[ $REPLY =~ ^[Nn]$ ]]; then
return 0
fi
done
}
# Defines default antigen bundles
x-default-antigen-bundles()
{
# the theme to use
antigen theme romkatv/powerlevel10k
# these should be always available
antigen bundle colored-man-pages
antigen bundle command-not-found
@@ -96,9 +76,6 @@ x-default-antigen-bundles()
# these should be available if there's need
have brew && antigen bundle brew
have docker && antigen bundle docker
have docker-compose && antigen bundle sroze/docker-compose-zsh-plugin
have jq && antigen bundle reegnz/jq-zsh-plugin
have nvm && antigen bundle nvm
have nvm && antigen bundle "$DOTFILES/config/zsh/plugins/nvm-auto-use"
have php && antigen bundle php

View File

@@ -1,13 +1,13 @@
# Setup fzf
# ---------
if [[ ! "$PATH" == */Users/ivuorinen/.config/fzf/bin* ]]; then
PATH="${PATH:+${PATH}:}/Users/ivuorinen/.config/fzf/bin"
if [[ ! "$PATH" == *$HOME/.config/fzf/bin* ]]; then
PATH="${PATH:+${PATH}:}$HOME/.config/fzf/bin"
fi
# Auto-completion
# ---------------
[[ $- == *i* ]] && source "/Users/ivuorinen/.config/fzf/shell/completion.zsh" 2> /dev/null
[[ $- == *i* ]] && source "$HOME/.config/fzf/shell/completion.zsh" 2> /dev/null
# Key bindings
# ------------
source "/Users/ivuorinen/.config/fzf/shell/key-bindings.zsh"
source "$HOME/.config/fzf/shell/key-bindings.zsh"

View File

@@ -62,6 +62,8 @@ brew "asdf"
brew "aspell"
# Official Amazon AWS command-line interface
brew "awscli"
# Bourne-Again SHell, a UNIX command interpreter
brew "bash"
# Clone of cat(1) with syntax highlighting and Git integration
brew "bat"
# Yet another cross-platform graphical process/system monitor
@@ -119,7 +121,7 @@ brew "fzf"
# Graphics library to dynamically manipulate images
brew "gd"
# Disk usage analyzer with console interface written in Go
brew "gdu"
brew "gdu", link: false
# GitHub command-line tool
brew "gh"
# Distributed revision control system
@@ -182,6 +184,8 @@ brew "jq"
brew "krb5"
# Lazier way to manage everything docker
brew "lazydocker"
# Postgres C API library
brew "libpq"
# Linguistic software and Finnish dictionary
brew "libvoikko"
# Rainbows and unicorns in your console!
@@ -196,8 +200,6 @@ brew "mas"
brew "ncdu"
# Ambitious Vim-fork focused on extensibility and agility
brew "neovim"
# No Nonsense Neovim Client in Rust
brew "neovide"
# HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
brew "nginx"
# Port scanning utility for large networks
@@ -240,14 +242,16 @@ brew "rust"
brew "shellcheck"
# Autoformat shell script source code
brew "shfmt"
# Cross-shell prompt for astronauts
brew "starship"
# Support CI generation of SBOMs via golang tooling
brew "spdx-sbom-generator"
# Version control system designed to be a better CVS
brew "subversion"
# Feature-rich console based todo list manager
brew "task"
# Terminal user interface for taskwarrior
brew "taskwarrior-tui"
# Very fast implementation of tldr in Rust
brew "tealdeer"
# Send macOS User Notifications from the command-line
brew "terminal-notifier"
# Thin wrapper for Terraform e.g. for locking state
@@ -260,8 +264,6 @@ brew "tfenv"
brew "tfsec"
# Programmatically correct mistyped console commands
brew "thefuck"
# Simplified and community-driven man pages
brew "tldr"
# Terminal multiplexer
brew "tmux"
# Display directories as trees (with optional color/HTML output)
@@ -281,7 +283,7 @@ brew "wget"
# Personal information dashboard for your terminal
brew "wtfutil"
# Check your $HOME for unwanted files and directories
brew "xdg-ninja"
brew "xdg-ninja", args: ["HEAD"]
# Hackable, minimal, fast TUI file explorer
brew "xplr"
# JavaScript package manager
@@ -324,8 +326,6 @@ cask "dbeaver-community"
cask "dbngin"
# App to build and share containerized applications and microservices
cask "docker"
# Reimagine your terminal
cask "fig"
# UI toolkit for building applications for mobile, web and desktop
cask "flutter"
# Unofficial overcast.fm podcast app
@@ -356,10 +356,10 @@ cask "jetbrains-toolbox"
cask "lens"
# Keep all tasks from your todo apps on your menu bar
cask "monofocus"
# Neovim Client
cask "neovide"
# Reverse proxy, secure introspectable tunnels to localhost
cask "ngrok"
# Simple application that will prevent iTunes or Apple Music from launching
cask "notunes"
# Knowledge base that works on top of a local folder of plain text Markdown files
cask "obsidian"
# Scheduling application focusing on organization
@@ -424,6 +424,7 @@ vscode "bmewburn.vscode-intelephense-client"
vscode "Box-Of-Hats.bemhelper"
vscode "bradlc.vscode-tailwindcss"
vscode "christian-kohler.npm-intellisense"
vscode "christian-kohler.path-intellisense"
vscode "DavidAnson.vscode-markdownlint"
vscode "dbaeumer.vscode-eslint"
vscode "DotJoshJohnson.xml"
@@ -431,6 +432,7 @@ vscode "eamodio.gitlens"
vscode "EditorConfig.EditorConfig"
vscode "esbenp.prettier-vscode"
vscode "formulahendry.auto-close-tag"
vscode "formulahendry.auto-rename-tag"
vscode "formulahendry.code-runner"
vscode "gencer.html-slim-scss-css-class-completion"
vscode "github.vscode-github-actions"
@@ -446,6 +448,7 @@ vscode "liamhammett.inline-parameters"
vscode "macieklad.tailwind-sass-syntax"
vscode "MehediDracula.php-namespace-resolver"
vscode "mikestead.dotenv"
vscode "MisterJ.vue-volar-extention-pack"
vscode "MrChetan.phpstorm-parameter-hints-in-vscode"
vscode "mrorz.language-gettext"
vscode "ms-azuretools.vscode-docker"
@@ -466,6 +469,7 @@ vscode "octref.vetur"
vscode "oderwat.indent-rainbow"
vscode "pflannery.vscode-versionlens"
vscode "phiter.phpstorm-snippets"
vscode "sibiraj-s.vscode-scss-formatter"
vscode "SonarSource.sonarlint-vscode"
vscode "stylelint.vscode-stylelint"
vscode "syler.sass-indented"
@@ -473,8 +477,8 @@ vscode "timonwong.shellcheck"
vscode "tootone.org-mode"
vscode "valeryanm.vscode-phpsab"
vscode "Vue.volar"
vscode "Vue.vscode-typescript-vue-plugin"
vscode "WakaTime.vscode-wakatime"
vscode "withfig.fig"
vscode "wix.vscode-import-cost"
vscode "xdebug.php-debug"
vscode "xdebug.php-pack"

11
config/homebrew/brew.env Normal file
View File

@@ -0,0 +1,11 @@
# shellcheck shell=bash
# vim: filetype=zsh
# dotenv-linter:off LowercaseKey, KeyWithoutValue, ExtraBlankLine, EndingBlankLine
#
# Homebrew configuration
export HOMEBREW_AUTOREMOVE=true
export HOMEBREW_AUTO_UPDATE_SECS=86400
export HOMEBREW_CLEANUP_MAX_AGE_DAYS=30
export HOMEBREW_NO_ENV_HINTS=1

View File

@@ -345,10 +345,16 @@
<true/>
<key>DisableFullscreenTransparency</key>
<true/>
<key>EnableDivisionView</key>
<true/>
<key>HapticFeedbackForEsc</key>
<false/>
<key>HideActivityIndicator</key>
<false/>
<key>HideScrollbar</key>
<true/>
<key>HideTabNumber</key>
<false/>
<key>HotkeyMigratedFromSingleToMulti</key>
<true/>
<key>IRMemory</key>
@@ -371,208 +377,208 @@
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.35294117647058826</real>
<real>0.11764705926179886</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.27843137254901962</real>
<real>0.098039217293262482</real>
<key>Red Component</key>
<real>0.27058823529411763</real>
<real>0.078431375324726105</real>
</dict>
<key>Ansi 1 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.6588235294117647</real>
<real>0.16300037503242493</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.54509803921568623</real>
<real>0.23660069704055786</real>
<key>Red Component</key>
<real>0.95294117647058818</real>
<real>0.7074432373046875</real>
</dict>
<key>Ansi 10 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.63137254901960782</real>
<real>0.56541937589645386</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.8901960784313725</real>
<real>0.9042816162109375</real>
<key>Red Component</key>
<real>0.65098039215686276</real>
<real>0.3450070321559906</real>
</dict>
<key>Ansi 11 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.68627450980392157</real>
<real>0.0</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.88627450980392153</real>
<real>0.8833775520324707</real>
<key>Red Component</key>
<real>0.97647058823529409</real>
<real>0.9259033203125</real>
</dict>
<key>Ansi 12 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.98039215686274506</real>
<real>0.9485321044921875</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.70588235294117652</real>
<real>0.67044717073440552</real>
<key>Red Component</key>
<real>0.53725490196078429</real>
<real>0.65349078178405762</real>
</dict>
<key>Ansi 13 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.90588235294117647</real>
<real>0.8821563720703125</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.76078431372549016</real>
<real>0.4927266538143158</real>
<key>Red Component</key>
<real>0.96078431372549022</real>
<real>0.8821563720703125</real>
</dict>
<key>Ansi 14 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.83529411764705885</real>
<real>1</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.88627450980392153</real>
<real>0.99263292551040649</real>
<key>Red Component</key>
<real>0.58039215686274515</real>
<real>0.37597531080245972</real>
</dict>
<key>Ansi 15 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.78431372549019607</real>
<real>1</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.67843137254901964</real>
<real>1</real>
<key>Red Component</key>
<real>0.65098039215686276</real>
<real>0.99999600648880005</real>
</dict>
<key>Ansi 2 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.63137254901960782</real>
<real>0.0</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.8901960784313725</real>
<real>0.7607843279838562</real>
<key>Red Component</key>
<real>0.65098039215686276</real>
<real>0.0</real>
</dict>
<key>Ansi 3 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.68627450980392157</real>
<real>0.0</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.88627450980392153</real>
<real>0.76959484815597534</real>
<key>Red Component</key>
<real>0.97647058823529409</real>
<real>0.78058648109436035</real>
</dict>
<key>Ansi 4 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.98039215686274506</real>
<real>0.78216177225112915</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.70588235294117652</real>
<real>0.26474356651306152</real>
<key>Red Component</key>
<real>0.53725490196078429</real>
<real>0.15404300391674042</real>
</dict>
<key>Ansi 5 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.90588235294117647</real>
<real>0.74494361877441406</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.76078431372549016</real>
<real>0.24931684136390686</real>
<key>Red Component</key>
<real>0.96078431372549022</real>
<real>0.752197265625</real>
</dict>
<key>Ansi 6 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.83529411764705885</real>
<real>0.78166204690933228</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.88627450980392153</real>
<real>0.77425903081893921</real>
<key>Red Component</key>
<real>0.58039215686274515</real>
<real>0.0</real>
</dict>
<key>Ansi 7 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.87058823529411766</real>
<real>0.78104829788208008</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.76078431372549016</real>
<real>0.78105825185775757</real>
<key>Red Component</key>
<real>0.72941176470588232</real>
<real>0.7810397744178772</real>
</dict>
<key>Ansi 8 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.4392156862745098</real>
<real>0.4078223705291748</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.35686274509803922</real>
<real>0.40782788395881653</real>
<key>Red Component</key>
<real>0.34509803921568627</real>
<real>0.40781760215759277</real>
</dict>
<key>Ansi 9 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.6588235294117647</real>
<real>0.45833224058151245</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.54509803921568623</real>
<real>0.47524076700210571</real>
<key>Red Component</key>
<real>0.95294117647058818</real>
<real>0.8659515380859375</real>
</dict>
<key>BM Growl</key>
<true/>
@@ -581,13 +587,13 @@
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.1803921568627451</real>
<real>0.12103271484375</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.11764705882352941</real>
<real>0.099111050367355347</real>
<key>Red Component</key>
<real>0.11764705882352941</real>
<real>0.0806884765625</real>
</dict>
<key>Background Image Location</key>
<string></string>
@@ -596,11 +602,11 @@
<key>Alpha Component</key>
<real>0.5</real>
<key>Blue Component</key>
<real>0.0</real>
<real>1</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.14910030364990234</real>
<real>1</real>
<key>Red Component</key>
<real>1</real>
</dict>
@@ -609,19 +615,19 @@
<key>Blur</key>
<true/>
<key>Blur Radius</key>
<real>10</real>
<real>20</real>
<key>Bold Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.95686274509803926</real>
<real>1</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.83921568627450982</real>
<real>1</real>
<key>Red Component</key>
<real>0.80392156862745101</real>
<real>0.99999600648880005</real>
</dict>
<key>Character Encoding</key>
<integer>4</integer>
@@ -631,45 +637,49 @@
<integer>130</integer>
<key>Command</key>
<string></string>
<key>Cursor Boost</key>
<real>0.19958333333333333</real>
<key>Cursor Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.86274509803921573</real>
<real>0.99998724460601807</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.8784313725490196</real>
<real>1</real>
<key>Red Component</key>
<real>0.96078431372549022</real>
<real>0.99997633695602417</real>
</dict>
<key>Cursor Guide Color</key>
<dict>
<key>Alpha Component</key>
<real>0.070000000000000007</real>
<real>0.25</real>
<key>Blue Component</key>
<real>0.95686274509803926</real>
<real>1</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.83921568627450982</real>
<real>0.9268307089805603</real>
<key>Red Component</key>
<real>0.80392156862745101</real>
<real>0.70213186740875244</real>
</dict>
<key>Cursor Text Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.95686274509803926</real>
<real>0.0</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.83921568627450982</real>
<real>0.0</real>
<key>Red Component</key>
<real>0.80392156862745101</real>
<real>0.0</real>
</dict>
<key>Cursor Type</key>
<integer>1</integer>
<key>Custom Command</key>
<string>No</string>
<key>Custom Directory</key>
@@ -689,18 +699,20 @@
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.95686274509803926</real>
<real>0.86198854446411133</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.83921568627450982</real>
<real>0.86199951171875</real>
<key>Red Component</key>
<real>0.80392156862745101</real>
<real>0.86197912693023682</real>
</dict>
<key>Guid</key>
<string>B563F48B-314D-48CC-908E-ACA971D430BE</string>
<key>Horizontal Spacing</key>
<real>1</real>
<key>Icon</key>
<integer>1</integer>
<key>Idle Code</key>
<integer>0</integer>
<key>Jobs to Ignore</key>
@@ -998,14 +1010,16 @@
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.92156862745098034</real>
<real>0.9337158203125</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.86274509803921573</real>
<real>0.55789834260940552</real>
<key>Red Component</key>
<real>0.53725490196078429</real>
<real>0.19802422821521759</real>
</dict>
<key>Minimum Contrast</key>
<real>0.49644531250000001</real>
<key>Mouse Reporting</key>
<true/>
<key>Name</key>
@@ -1029,7 +1043,7 @@
<key>Right Option Key Sends</key>
<integer>0</integer>
<key>Rows</key>
<integer>25</integer>
<integer>40</integer>
<key>Screen</key>
<integer>-1</integer>
<key>Scrollback Lines</key>
@@ -1039,33 +1053,37 @@
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.95686274509803926</real>
<real>0.0</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.83921568627450982</real>
<real>0.0</real>
<key>Red Component</key>
<real>0.80392156862745101</real>
<real>0.0</real>
</dict>
<key>Selection Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.4392156862745098</real>
<real>1</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.35686274509803922</real>
<real>0.84313726425170898</real>
<key>Red Component</key>
<real>0.34509803921568627</real>
<real>0.70196080207824707</real>
</dict>
<key>Send Code When Idle</key>
<false/>
<key>Set Local Environment Vars</key>
<false/>
<key>Shortcut</key>
<string></string>
<key>Show Mark Indicators</key>
<false/>
<key>Show Status Bar</key>
<true/>
<false/>
<key>Show Timestamps</key>
<integer>2</integer>
<key>Silence Bell</key>
@@ -1225,13 +1243,15 @@
<key>Terminal Type</key>
<string>xterm-256color</string>
<key>Transparency</key>
<real>0.20000000000000004</real>
<real>0.14999999999999997</real>
<key>Unlimited Scrollback</key>
<true/>
<key>Use Bold Font</key>
<true/>
<key>Use Bright Bold</key>
<true/>
<key>Use Cursor Guide</key>
<false/>
<key>Use Italic Font</key>
<true/>
<key>Use Non-ASCII Font</key>
@@ -1291,10 +1311,14 @@
<true/>
<key>SoundForEsc</key>
<false/>
<key>SplitPaneDimmingAmount</key>
<real>0.29999999999999993</real>
<key>StatusBarPosition</key>
<integer>0</integer>
<key>TabStyleWithAutomaticOption</key>
<integer>5</integer>
<key>TabsHaveCloseButton</key>
<false/>
<key>ThreeFingerEmulates</key>
<true/>
<key>TmuxUnpauseAutomatically</key>

View File

@@ -4,5 +4,4 @@ editorconfig-checker
github-release-notes
neovim
stylelint-lsp
tldr

View File

@@ -1,37 +0,0 @@
# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
# Inserts a blank line between shell prompts
add_newline = true
# Timeout for commands executed by starship (in milliseconds).
command_timeout = 1000
# Replace the '' symbol in the prompt with '➜'
[character] # The name of the module we are configuring is 'character'
success_symbol = '[➜](bold green)' # The 'success_symbol' segment is being set to '➜' with the color 'bold green'
[cmd_duration]
disabled = true
[git_branch]
symbol = '🌱 '
truncation_length = 20
truncation_symbol = '…'
ignore_branches = ['master', 'main']
[git_status]
up_to_date = '✓'
staged = '[++\($count\)](green)'
[package]
format = '[$symbol($version )]($style)'
version_format = '${major}.${minor}'
[php]
format = '[$symbol($version )]($style)'
version_format = '${major}.${minor}'
[nodejs]
format = '[$symbol($version )]($style)'
version_format = '${major}.${minor}'

View File

@@ -46,6 +46,7 @@ news.version=2.6.0
default.project=Inbox
calendar.details=full
calendar.holidays=sparse
recurrence=on
uda.taskwarrior-tui.keyconfig.quit=q
uda.taskwarrior-tui.keyconfig.refresh=r

View File

@@ -0,0 +1,38 @@
[style.description]
underline = false
bold = false
italic = false
[style.command_name]
foreground = "cyan"
underline = false
bold = false
italic = false
[style.example_text]
foreground = "green"
underline = false
bold = false
italic = false
[style.example_code]
foreground = "cyan"
underline = false
bold = false
italic = false
[style.example_variable]
foreground = "cyan"
underline = true
bold = false
italic = false
[display]
compact = false
use_pager = false
[updates]
auto_update = false
auto_update_interval_hours = 720
[directories]

View File

@@ -4,6 +4,9 @@
# - https://tmuxguide.readthedocs.io/en/latest/tmux/tmux.html
# - https://github.com/dreamsofcode-io/tmux/blob/main/tmux.conf
# Set plugins install dir
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.dotfiles/config/tmux/plugins'
## Install plugins, starting with plugin manager
set -g @tpm_plugins ' \
tmux-plugins/tpm \
@@ -14,7 +17,6 @@ set -g @tpm_plugins ' \
yardnsm/tmux-1password \
jaclu/tmux-menus \
sainnhe/tmux-fzf \
MunifTanjim/tmux-mode-indicator \
MunifTanjim/tmux-suspend \
tmux-plugins/tmux-continuum \
tmux-plugins/tmux-resurrect \
@@ -23,9 +25,6 @@ set -g @tpm_plugins ' \
tmux-plugins/tmux-yank \
'
# Set plugins install dir
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.config/tmux/plugins/'
set-option -sa terminal-overrides ",xterm*:Tc"
# Mouse support
@@ -82,6 +81,29 @@ set -g @1password-key 'x'
## https://github.com/catppuccin/tmux
set -g @catppuccin_flavour 'mocha' # latte/frappe/macchiato/mocha
set -g @catppuccin_window_tabs_enabled on # or off to disable window_tabs
set -g @catppuccin_window_status_enable "yes"
set -g @catppuccin_window_left_separator ""
set -g @catppuccin_window_right_separator " "
set -g @catppuccin_window_middle_separator " █"
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_default_fill "number"
set -g @catppuccin_window_default_text "#W"
set -g @catppuccin_window_current_fill "number"
set -g @catppuccin_window_current_text "#W"
set -g @catppuccin_status_modules "application session date_time"
set -g @catppuccin_date_time_text "%Y-%m-%d %H:%M"
set -g @catppuccin_status_left_separator " "
set -g @catppuccin_status_right_separator ""
set -g @catppuccin_status_right_separator_inverse "no"
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_connect_separator "no"
set -g @catppuccin_directory_text "#{pane_current_path}"
## https://github.com/MunifTanjim/tmux-mode-indicator
set -g status-right '%Y-%m-%d %H:%M #{tmux_mode_indicator}'
@@ -145,4 +167,4 @@ unbind p
bind p paste-buffer
# Finally run the tmux plugin manager
run '~/.config/tmux/plugins/tpm/tpm'
run '~/.dotfiles/config/tmux/plugins/tpm/tpm'

View File

@@ -1,52 +0,0 @@
autoload -U colors zsh/terminfo
colors
setopt correct
# Add completion scripts to zsh path
FPATH="~/.config/zsh/completion:$FPATH"
autoload -Uz compinit && compinit -i
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
# Defaults
export DOTFILES="$HOME/.dotfiles"
# shellcheck source=shared.sh
source "$DOTFILES/scripts/shared.sh"
# Run x-load-configs in your terminal to reload the files.
function x-load-configs()
{
# Load the shell dotfiles, and then some:
for file in $DOTFILES/config/{exports,alias,functions}; do
[ -f "$file" ] && source "$file"
[ -f "$file-secret" ] && source "$file-secret"
[ -f "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
[ -f "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
done
}
x-load-configs
# Import ssh keys in keychain
ssh-add -A 2>/dev/null;
# Try to load antigen, if present
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
# antigen is present
have antigen && {
antigen use oh-my-zsh
# config/functions
x-default-antigen-bundles
antigen apply
}
# starship is present
have starship && eval "$(starship init zsh)"
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh ] \
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh
export LESSHISTFILE="$XDG_CACHE_HOME"/less_history

View File

@@ -0,0 +1,66 @@
#compdef cheat
# vim: ft=zsh
local cheats taglist pathlist
_cheat_complete_personal_cheatsheets()
{
cheats=("${(f)$(cheat -l -t personal | tail -n +2 | cut -d' ' -f1)}")
_describe -t cheats 'cheats' cheats
}
_cheat_complete_full_cheatsheets()
{
cheats=("${(f)$(cheat -l | tail -n +2 | cut -d' ' -f1)}")
_describe -t cheats 'cheats' cheats
}
_cheat_complete_tags()
{
taglist=("${(f)$(cheat -T)}")
_describe -t taglist 'taglist' taglist
}
_cheat_complete_paths()
{
pathlist=("${(f)$(cheat -d | cut -d':' -f1)}")
_describe -t pathlist 'pathlist' pathlist
}
_cheat() {
_arguments -C \
'(--init)--init[Write a default config file to stdout]: :->none' \
'(-c --colorize)'{-c,--colorize}'[Colorize output]: :->none' \
'(-d --directories)'{-d,--directories}'[List cheatsheet directories]: :->none' \
'(-e --edit)'{-e,--edit}'[Edit <sheet>]: :->personal' \
'(-l --list)'{-l,--list}'[List cheatsheets]: :->full' \
'(-p --path)'{-p,--path}'[Return only sheets found on path <name>]: :->pathlist' \
'(-r --regex)'{-r,--regex}'[Treat search <phrase> as a regex]: :->none' \
'(-s --search)'{-s,--search}'[Search cheatsheets for <phrase>]: :->none' \
'(-t --tag)'{-t,--tag}'[Return only sheets matching <tag>]: :->taglist' \
'(-T --tags)'{-T,--tags}'[List all tags in use]: :->none' \
'(-v --version)'{-v,--version}'[Print the version number]: :->none' \
'(--rm)--rm[Remove (delete) <sheet>]: :->personal'
case $state in
(none)
;;
(full)
_cheat_complete_full_cheatsheets
;;
(personal)
_cheat_complete_personal_cheatsheets
;;
(taglist)
_cheat_complete_tags
;;
(pathlist)
_cheat_complete_paths
;;
(*)
;;
esac
}
compdef _cheat cheat

View File

@@ -0,0 +1,177 @@
#compdef _git-profile git-profile
# zsh completion for git-profile -*- shell-script -*-
__git-profile_debug()
{
local file="$BASH_COMP_DEBUG_FILE"
if [[ -n ${file} ]]; then
echo "$*" >> "${file}"
fi
}
_git-profile()
{
local shellCompDirectiveError=1
local shellCompDirectiveNoSpace=2
local shellCompDirectiveNoFileComp=4
local shellCompDirectiveFilterFileExt=8
local shellCompDirectiveFilterDirs=16
local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace
local -a completions
__git-profile_debug "\n========= starting completion logic =========="
__git-profile_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}"
# The user could have moved the cursor backwards on the command-line.
# We need to trigger completion from the $CURRENT location, so we need
# to truncate the command-line ($words) up to the $CURRENT location.
# (We cannot use $CURSOR as its value does not work when a command is an alias.)
words=("${=words[1,CURRENT]}")
__git-profile_debug "Truncated words[*]: ${words[*]},"
lastParam=${words[-1]}
lastChar=${lastParam[-1]}
__git-profile_debug "lastParam: ${lastParam}, lastChar: ${lastChar}"
# For zsh, when completing a flag with an = (e.g., git-profile -n=<TAB>)
# completions must be prefixed with the flag
setopt local_options BASH_REMATCH
if [[ "${lastParam}" =~ '-.*=' ]]; then
# We are dealing with a flag with an =
flagPrefix="-P ${BASH_REMATCH}"
fi
# Prepare the command to obtain completions
requestComp="${words[1]} __complete ${words[2,-1]}"
if [ "${lastChar}" = "" ]; then
# If the last parameter is complete (there is a space following it)
# We add an extra empty parameter so we can indicate this to the go completion code.
__git-profile_debug "Adding extra empty parameter"
requestComp="${requestComp} \"\""
fi
__git-profile_debug "About to call: eval ${requestComp}"
# Use eval to handle any environment variables and such
out=$(eval ${requestComp} 2>/dev/null)
__git-profile_debug "completion output: ${out}"
# Extract the directive integer following a : from the last line
local lastLine
while IFS='\n' read -r line; do
lastLine=${line}
done < <(printf "%s\n" "${out[@]}")
__git-profile_debug "last line: ${lastLine}"
if [ "${lastLine[1]}" = : ]; then
directive=${lastLine[2,-1]}
# Remove the directive including the : and the newline
local suffix
(( suffix=${#lastLine}+2))
out=${out[1,-$suffix]}
else
# There is no directive specified. Leave $out as is.
__git-profile_debug "No directive found. Setting do default"
directive=0
fi
__git-profile_debug "directive: ${directive}"
__git-profile_debug "completions: ${out}"
__git-profile_debug "flagPrefix: ${flagPrefix}"
if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then
__git-profile_debug "Completion received error. Ignoring completions."
return
fi
while IFS='\n' read -r comp; do
if [ -n "$comp" ]; then
# If requested, completions are returned with a description.
# The description is preceded by a TAB character.
# For zsh's _describe, we need to use a : instead of a TAB.
# We first need to escape any : as part of the completion itself.
comp=${comp//:/\\:}
local tab=$(printf '\t')
comp=${comp//$tab/:}
__git-profile_debug "Adding completion: ${comp}"
completions+=${comp}
lastComp=$comp
fi
done < <(printf "%s\n" "${out[@]}")
if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then
__git-profile_debug "Activating nospace."
noSpace="-S ''"
fi
if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then
# File extension filtering
local filteringCmd
filteringCmd='_files'
for filter in ${completions[@]}; do
if [ ${filter[1]} != '*' ]; then
# zsh requires a glob pattern to do file filtering
filter="\*.$filter"
fi
filteringCmd+=" -g $filter"
done
filteringCmd+=" ${flagPrefix}"
__git-profile_debug "File filtering command: $filteringCmd"
_arguments '*:filename:'"$filteringCmd"
elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then
# File completion for directories only
local subdir
subdir="${completions[1]}"
if [ -n "$subdir" ]; then
__git-profile_debug "Listing directories in $subdir"
pushd "${subdir}" >/dev/null 2>&1
else
__git-profile_debug "Listing directories in ."
fi
local result
_arguments '*:dirname:_files -/'" ${flagPrefix}"
result=$?
if [ -n "$subdir" ]; then
popd >/dev/null 2>&1
fi
return $result
else
__git-profile_debug "Calling _describe"
if eval _describe "completions" completions $flagPrefix $noSpace; then
__git-profile_debug "_describe found some completions"
# Return the success of having called _describe
return 0
else
__git-profile_debug "_describe did not find completions."
__git-profile_debug "Checking if we should do file completion."
if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then
__git-profile_debug "deactivating file completion"
# We must return an error code here to let zsh know that there were no
# completions found by _describe; this is what will trigger other
# matching algorithms to attempt to find completions.
# For example zsh can match letters in the middle of words.
return 1
else
# Perform file completion
__git-profile_debug "Activating file completion"
# We must return the result of this command, so it must be the
# last command, or else we must store its result to return it.
_arguments '*:filename:_files'" ${flagPrefix}"
fi
fi
fi
}
# don't run the completion function when being source-ed or eval-ed
if [ "$funcstack[1]" = "_git-profile" ]; then
_git-profile
fi

3420
config/zsh/completion/_solo2 Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,177 @@
#compdef _git-profile git-profile
# zsh completion for git-profile -*- shell-script -*-
__git-profile_debug()
{
local file="$BASH_COMP_DEBUG_FILE"
if [[ -n ${file} ]]; then
echo "$*" >> "${file}"
fi
}
_git-profile()
{
local shellCompDirectiveError=1
local shellCompDirectiveNoSpace=2
local shellCompDirectiveNoFileComp=4
local shellCompDirectiveFilterFileExt=8
local shellCompDirectiveFilterDirs=16
local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace
local -a completions
__git-profile_debug "\n========= starting completion logic =========="
__git-profile_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}"
# The user could have moved the cursor backwards on the command-line.
# We need to trigger completion from the $CURRENT location, so we need
# to truncate the command-line ($words) up to the $CURRENT location.
# (We cannot use $CURSOR as its value does not work when a command is an alias.)
words=("${=words[1,CURRENT]}")
__git-profile_debug "Truncated words[*]: ${words[*]},"
lastParam=${words[-1]}
lastChar=${lastParam[-1]}
__git-profile_debug "lastParam: ${lastParam}, lastChar: ${lastChar}"
# For zsh, when completing a flag with an = (e.g., git-profile -n=<TAB>)
# completions must be prefixed with the flag
setopt local_options BASH_REMATCH
if [[ "${lastParam}" =~ '-.*=' ]]; then
# We are dealing with a flag with an =
flagPrefix="-P ${BASH_REMATCH}"
fi
# Prepare the command to obtain completions
requestComp="${words[1]} __complete ${words[2,-1]}"
if [ "${lastChar}" = "" ]; then
# If the last parameter is complete (there is a space following it)
# We add an extra empty parameter so we can indicate this to the go completion code.
__git-profile_debug "Adding extra empty parameter"
requestComp="${requestComp} \"\""
fi
__git-profile_debug "About to call: eval ${requestComp}"
# Use eval to handle any environment variables and such
out=$(eval ${requestComp} 2>/dev/null)
__git-profile_debug "completion output: ${out}"
# Extract the directive integer following a : from the last line
local lastLine
while IFS='\n' read -r line; do
lastLine=${line}
done < <(printf "%s\n" "${out[@]}")
__git-profile_debug "last line: ${lastLine}"
if [ "${lastLine[1]}" = : ]; then
directive=${lastLine[2,-1]}
# Remove the directive including the : and the newline
local suffix
(( suffix=${#lastLine}+2))
out=${out[1,-$suffix]}
else
# There is no directive specified. Leave $out as is.
__git-profile_debug "No directive found. Setting do default"
directive=0
fi
__git-profile_debug "directive: ${directive}"
__git-profile_debug "completions: ${out}"
__git-profile_debug "flagPrefix: ${flagPrefix}"
if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then
__git-profile_debug "Completion received error. Ignoring completions."
return
fi
while IFS='\n' read -r comp; do
if [ -n "$comp" ]; then
# If requested, completions are returned with a description.
# The description is preceded by a TAB character.
# For zsh's _describe, we need to use a : instead of a TAB.
# We first need to escape any : as part of the completion itself.
comp=${comp//:/\\:}
local tab=$(printf '\t')
comp=${comp//$tab/:}
__git-profile_debug "Adding completion: ${comp}"
completions+=${comp}
lastComp=$comp
fi
done < <(printf "%s\n" "${out[@]}")
if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then
__git-profile_debug "Activating nospace."
noSpace="-S ''"
fi
if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then
# File extension filtering
local filteringCmd
filteringCmd='_files'
for filter in ${completions[@]}; do
if [ ${filter[1]} != '*' ]; then
# zsh requires a glob pattern to do file filtering
filter="\*.$filter"
fi
filteringCmd+=" -g $filter"
done
filteringCmd+=" ${flagPrefix}"
__git-profile_debug "File filtering command: $filteringCmd"
_arguments '*:filename:'"$filteringCmd"
elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then
# File completion for directories only
local subdir
subdir="${completions[1]}"
if [ -n "$subdir" ]; then
__git-profile_debug "Listing directories in $subdir"
pushd "${subdir}" >/dev/null 2>&1
else
__git-profile_debug "Listing directories in ."
fi
local result
_arguments '*:dirname:_files -/'" ${flagPrefix}"
result=$?
if [ -n "$subdir" ]; then
popd >/dev/null 2>&1
fi
return $result
else
__git-profile_debug "Calling _describe"
if eval _describe "completions" completions $flagPrefix $noSpace; then
__git-profile_debug "_describe found some completions"
# Return the success of having called _describe
return 0
else
__git-profile_debug "_describe did not find completions."
__git-profile_debug "Checking if we should do file completion."
if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then
__git-profile_debug "deactivating file completion"
# We must return an error code here to let zsh know that there were no
# completions found by _describe; this is what will trigger other
# matching algorithms to attempt to find completions.
# For example zsh can match letters in the middle of words.
return 1
else
# Perform file completion
__git-profile_debug "Activating file completion"
# We must return the result of this command, so it must be the
# last command, or else we must store its result to return it.
_arguments '*:filename:_files'" ${flagPrefix}"
fi
fi
fi
}
# don't run the completion function when being source-ed or eval-ed
if [ "$funcstack[1]" = "_git-profile" ]; then
_git-profile
fi

1713
config/zsh/p10k.zsh Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -32,7 +32,6 @@
glob: true
path: local/bin/**
~/.ssh/:
force: true
glob: true
mode: 0600
path: ssh/**

View File

@@ -11,7 +11,7 @@
: "${DOTFILES:=$HOME/.dotfiles}"
: "${SHARED_SCRIPT:=$DOTFILES/scripts/shared.sh}"
: "${INSTALL_SCRIPT:=$DOTFILES/scripts/install-dotfiles.sh}"
: "${BREWFILE:=$DOTFILES/Brewfile}"
: "${BREWFILE:=$DOTFILES/config/homebrew/Brewfile}"
: "${HOSTFILES:=$DOTFILES/hosts}"
SCRIPT=$(basename "$0")
@@ -47,7 +47,6 @@ function section_install
all)
$0 install macos
$0 install antigen
$0 install starship
$0 brew install
$0 install composer
$0 install dotenv

7
local/bin/python Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
# work around https://github.com/Microsoft/vscode/issues/3941
# and anyone else who expects to see a 'python' executable
exec python3 "$@"

View File

@@ -1,13 +0,0 @@
#!/usr/bin/env bash
# Verify folder exists, and if it does not, create it.
dir="$1"
[ $# -eq 0 ] && {
echo "Usage: $0 full/path/to/dir/to/create"
exit 1
}
if [ ! -d "$dir" ]; then
mkdir -p "$dir" && exit 0
fi

View File

@@ -18,7 +18,7 @@ RESET='\033[0m'
# Print time-based personalized message, using figlet & lolcat if availible
function welcome_greeting () {
h=$(date +%H)
if [ "$h" -lt 04 ] || [[ $h -gt 22 ]];
if [ "$h" -lt 04 ] || [ "$h" -gt 22 ];
then greeting="Good Night"
elif [ "$h" -lt 12 ];
then greeting="Good morning"
@@ -41,7 +41,7 @@ function welcome_greeting () {
function welcome_sysinfo () {
if hash neofetch 2>/dev/null; then
neofetch --shell_version off \
--disable kernel distro shell resolution de wm wm_theme theme icons terminal \
--disable kernel distro shell resolution cpu gpu de wm wm_theme theme icons terminal \
--backend off \
--colors 4 8 4 4 8 6 \
--color_blocks off \

View File

@@ -36,4 +36,11 @@ for pkg in "${packages[@]}"; do
echo ""
done
msg "Installing completions for selected packages"
have git-profile && {
git-profile completion zsh > "$ZSH_CUSTOM_COMPLETION_PATH/git-profile" \
&& msg_yay "Installed completions for git-profile"
}
msg_ok "Done"

View File

@@ -294,3 +294,46 @@ function replacable()
return 1
}
# Create directory if it doesn't exist already
x-dc()
{
dir="$1"
[ $# -eq 0 ] && {
echo "Usage: $0 full/path/to/dir/to/create"
exit 1
}
if [ ! -d "$dir" ]; then
mkdir -p "$dir" && exit 0
fi
}
# Create a new directory and enter it
mkd()
{
mkdir -p "$@" && cd "$@" || exit
}
# Run command silently
# Usage: silent uptime
silent()
{
"$@" >&/dev/null
}
# Create a prompt which you have to answer y/n to continue
ask()
{
while true; do
read -p "$1 ([y]/n) " -r
REPLY=${REPLY:-"y"}
if [[ $REPLY =~ ^[Yy]$ ]]; then
return 1
elif [[ $REPLY =~ ^[Nn]$ ]]; then
return 0
fi
done
}

View File

@@ -3,7 +3,3 @@ Include local.d/*
Host *
# IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
# Fig ssh integration. Keep at the bottom of this file.
Match all
Include ~/.fig/ssh