mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-27 21:45:41 +00:00
Compare commits
83 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e81938a04d | |||
| 3bbcb248ba | |||
| 17194755e6 | |||
| 45f95422ef | |||
| b8f0bb570e | |||
| a0d8069455 | |||
|
|
8b1eb0a582 | ||
|
|
9cb10250c5 | ||
| 2836ed19cf | |||
| 21eb5086a9 | |||
| 56f49ab314 | |||
| 5e1a2d0dd0 | |||
| 5fdd26bf80 | |||
| 0c93dd9ad8 | |||
| 9deb613b5b | |||
|
|
bf4031c238 | ||
| 087b33cc97 | |||
|
|
361657cdec | ||
| 4855e56f3c | |||
| c119d4c20b | |||
| 4815e8678b | |||
| 31a45fed19 | |||
| 5aae400c92 | |||
| 26e11047ce | |||
| 1f0826c7e7 | |||
| 9f71f3c8aa | |||
| 5d929c6466 | |||
| afc04db93a | |||
|
|
eca0321e21 | ||
| def3372b9a | |||
|
|
5aaa177756 | ||
| 31a6ea351d | |||
| 333995c7f4 | |||
| d6b24c27a1 | |||
| 89ae4003f9 | |||
| 7a008c3ae8 | |||
| a6f89e80bd | |||
| 3d987e491e | |||
| e1729fd925 | |||
| 4e5dae4161 | |||
| 6b30ebfddb | |||
|
|
0aafae5d97 | ||
| 32cc561d20 | |||
| 784fddea64 | |||
| 0a058aaf22 | |||
| ff6876a56d | |||
| ccbd29fc40 | |||
| 9251225d3e | |||
| 241eed66f5 | |||
| 6de8e92968 | |||
| 2cdda605ef | |||
| 87a4ec8ecf | |||
| 87613d10ec | |||
| f6dc193f6a | |||
| 4adbbdb47a | |||
| bdbe10f612 | |||
| 531488001f | |||
| 4f2b47d5c3 | |||
|
|
dfbdb89aca | ||
|
|
c9489ae50f | ||
| 9fdb4cdfb0 | |||
| f4da515120 | |||
| fae9665671 | |||
| d5e34d168b | |||
| e8b43d76dc | |||
| 4f9757ad2b | |||
| 611a3bfa72 | |||
| 10da4ea372 | |||
| 68525d5ae4 | |||
|
|
7311f2576e | ||
| 721d3c0d15 | |||
| c82e183ff9 | |||
| 1b6a93650b | |||
| aa85bb0c72 | |||
| ceb452aa68 | |||
| 467a1c2ff9 | |||
| f73cd32309 | |||
| 0be2a5b879 | |||
| 8c015ac251 | |||
| 894ec12fd8 | |||
| 8cf3602de1 | |||
| 57c4f0438e | |||
|
|
02907d6a6b |
18
.github/workflows/changelog.yml
vendored
18
.github/workflows/changelog.yml
vendored
@@ -1,18 +1,32 @@
|
||||
---
|
||||
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||
name: Debug Changelog # Workflow name displayed on GitHub
|
||||
|
||||
on:
|
||||
workflow_dispatch: # Trigger manually
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
debug-changelog:
|
||||
runs-on: self-hosted
|
||||
|
||||
permissions: write-all
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Create changelog text
|
||||
id: changelog
|
||||
uses: loopwerk/tag-changelog@v1
|
||||
uses: loopwerk/tag-changelog@941366edb8920e2071eae0449031830984b9f26e # v1.3.0
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
config_file: .github/tag-changelog-config.js
|
||||
|
||||
- name: 'Echo results'
|
||||
id: output-changelog
|
||||
run: |
|
||||
|
||||
28
.github/workflows/linters.yml
vendored
28
.github/workflows/linters.yml
vendored
@@ -1,29 +1,47 @@
|
||||
---
|
||||
name: reviewdog
|
||||
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||
name: Reviewdog
|
||||
|
||||
on: [push]
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
linters:
|
||||
name: Linters
|
||||
|
||||
runs-on: self-hosted
|
||||
|
||||
permissions: write-all
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: GitHub Actions
|
||||
uses: reviewdog/action-actionlint@v1
|
||||
uses: reviewdog/action-actionlint@db58217885f9a6570da9c71be4e40ec33fe44a1f # v1.65.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
reporter: github-pr-review
|
||||
|
||||
- name: detect-secrets
|
||||
uses: reviewdog/action-detect-secrets@master
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
reporter: github-pr-review
|
||||
|
||||
- name: markdownlint
|
||||
uses: reviewdog/action-markdownlint@v0
|
||||
uses: reviewdog/action-markdownlint@f901468edf9a3634dd39b35ba26cad0aad1a0bfd # v0.26.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
reporter: github-pr-review
|
||||
|
||||
- name: shfmt
|
||||
uses: reviewdog/action-shfmt@v1
|
||||
uses: reviewdog/action-shfmt@f59386f08bd9a24ac1a746e69f026ddc2ed06710 # v1.0.2
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
shfmt_flags: |
|
||||
|
||||
28
.github/workflows/new-release.yml
vendored
28
.github/workflows/new-release.yml
vendored
@@ -1,38 +1,48 @@
|
||||
---
|
||||
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||
name: Release Daily State
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 21 * * *' # 00:00 at Europe/Helsinki
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
new-daily-release:
|
||||
runs-on: self-hosted
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
permissions: write-all
|
||||
|
||||
outputs:
|
||||
created: ${{ steps.daily-version.outputs.created }}
|
||||
version: ${{ steps.daily-version.outputs.version }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Create tag if necessary
|
||||
uses: fregante/daily-version-action@v2
|
||||
uses: fregante/daily-version-action@fb1a60b7c4daf1410cd755e360ebec3901e58588 # v2.1.3
|
||||
id: daily-version
|
||||
|
||||
- name: Create changelog text
|
||||
if: steps.daily-version.outputs.created
|
||||
id: changelog
|
||||
uses: loopwerk/tag-changelog@v1
|
||||
uses: loopwerk/tag-changelog@941366edb8920e2071eae0449031830984b9f26e # v1.3.0
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
config_file: .github/tag-changelog-config.js
|
||||
|
||||
- name: Create release
|
||||
if: steps.daily-version.outputs.created
|
||||
uses: actions/create-release@latest
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2.2.1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
tag_name: ${{ steps.daily-version.outputs.version }}
|
||||
release_name: Release ${{ steps.daily-version.outputs.version }}
|
||||
name: Release ${{ steps.daily-version.outputs.version }}
|
||||
body: ${{ steps.changelog.outputs.changes }}
|
||||
|
||||
20
.github/workflows/pre-commit-autoupdate.yml
vendored
20
.github/workflows/pre-commit-autoupdate.yml
vendored
@@ -1,21 +1,35 @@
|
||||
---
|
||||
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||
name: Pre-commit autoupdate
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# At 04:00 on Monday and Thursday.
|
||||
- cron: "0 4 * * 1,4"
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
auto-update:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5.4.0
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
|
||||
|
||||
- run: pip install pre-commit && pre-commit autoupdate
|
||||
- uses: peter-evans/create-pull-request@v7
|
||||
|
||||
- uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: update/pre-commit-hooks
|
||||
|
||||
10
.github/workflows/semantic-pr.yml
vendored
10
.github/workflows/semantic-pr.yml
vendored
@@ -1,4 +1,5 @@
|
||||
---
|
||||
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||
name: Semantic PR
|
||||
|
||||
on:
|
||||
@@ -8,11 +9,18 @@ on:
|
||||
- edited
|
||||
- synchronize
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
semantic-pr:
|
||||
runs-on: self-hosted
|
||||
|
||||
steps:
|
||||
- uses: amannn/action-semantic-pull-request@v5.5.3
|
||||
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
|
||||
11
.github/workflows/sync-labels.yml
vendored
11
.github/workflows/sync-labels.yml
vendored
@@ -1,4 +1,5 @@
|
||||
---
|
||||
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||
name: Sync labels
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
@@ -14,10 +15,18 @@ on:
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
SyncLabels:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: ivuorinen/actions/sync-labels@main
|
||||
|
||||
44
.github/workflows/update-submodules.yml
vendored
44
.github/workflows/update-submodules.yml
vendored
@@ -1,39 +1,55 @@
|
||||
---
|
||||
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||
name: Update submodules
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# At 04:00 on Monday and Thursday.
|
||||
- cron: "0 4 * * 1,4"
|
||||
- cron: "0 4 * * 1"
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
update-submodules:
|
||||
permissions:
|
||||
contents: write
|
||||
issues: write
|
||||
pull-requests: write
|
||||
runs-on: self-hosted
|
||||
|
||||
permissions: write-all
|
||||
|
||||
steps:
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
fetch-depth: 2
|
||||
token: ${{secrets.GITHUB_TOKEN}}
|
||||
|
||||
- name: Config Git User
|
||||
run: |
|
||||
git config --global user.name "${{ github.actor }}"
|
||||
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
|
||||
|
||||
- name: Update submodules
|
||||
run: |
|
||||
if git commit -am"chore(git): Update submodules (automated)
|
||||
|
||||
$(git submodule --quiet foreach \
|
||||
'tag="$(git describe --tags --abbrev=0 origin/HEAD)"
|
||||
git submodule sync
|
||||
git submodule foreach --quiet '
|
||||
tag="$(git describe --tags --abbrev=0 origin/HEAD)"
|
||||
if [ "$(git describe --tags)" != "$tag" ]; then
|
||||
git checkout --quiet "$tag"
|
||||
echo "$name" "$tag"
|
||||
fi')"
|
||||
then
|
||||
echo "$name updated to $tag"
|
||||
fi
|
||||
'
|
||||
|
||||
if git diff --quiet; then
|
||||
echo "No updates for submodules."
|
||||
else
|
||||
git add .
|
||||
git commit -m "chore(git): Update submodules (automated)"
|
||||
git show --raw
|
||||
git push
|
||||
fi
|
||||
|
||||
12
.gitignore
vendored
12
.gitignore
vendored
@@ -3,6 +3,8 @@
|
||||
*.bak
|
||||
*.log
|
||||
*.socket
|
||||
*.swp
|
||||
*.old
|
||||
*cache
|
||||
.env
|
||||
.idea
|
||||
@@ -22,6 +24,10 @@ config/npm/npmrc
|
||||
config/nvim/lazy-lock.json
|
||||
config/nvim/spell/*
|
||||
!config/nvim/spell/.gitkeep
|
||||
config/git/local.d/*
|
||||
!config/git/local.d/.gitkeep
|
||||
config/vim/fzf
|
||||
config/vim/plugged/*
|
||||
config/zed/*
|
||||
!config/zed/settings.json
|
||||
config/zsh/.zcompdump
|
||||
@@ -33,3 +39,9 @@ lock
|
||||
node_modules
|
||||
ssh/local.d/*
|
||||
!ssh/local.d/.gitkeep
|
||||
config/fish/fish_variables
|
||||
**/exports-secret.fish
|
||||
config/fish/completions/asdf.fish
|
||||
config/vim/.netrwhist
|
||||
config/vim/extra/*
|
||||
config/gh/hosts.yml
|
||||
|
||||
9
.gitmodules
vendored
9
.gitmodules
vendored
@@ -74,18 +74,9 @@
|
||||
url = https://github.com/erikw/tmux-dark-notify.git
|
||||
ignore = dirty
|
||||
|
||||
[submodule "asdf"]
|
||||
path = local/bin/asdf
|
||||
url = https://github.com/asdf-vm/asdf.git
|
||||
ignore = dirty
|
||||
|
||||
[submodule "antidote"]
|
||||
path = tools/antidote
|
||||
url = https://github.com/mattmc3/antidote.git
|
||||
shallow = true
|
||||
ignore = dirty
|
||||
|
||||
[submodule "dotbot-asdf"]
|
||||
path = tools/dotbot-asdf
|
||||
url = https://github.com/sobolevn/dotbot-asdf
|
||||
ignore = dirty
|
||||
|
||||
3
.ignore
3
.ignore
@@ -1,7 +1,10 @@
|
||||
**/__pycache__/**
|
||||
.git/**
|
||||
config/cheat/cheatsheets/community/**
|
||||
config/tmux/plugins/**
|
||||
node_modules
|
||||
tools/antidote/**
|
||||
tools/dotbot-brew/**
|
||||
tools/dotbot-include/**
|
||||
tools/dotbot/**
|
||||
*.pyc
|
||||
|
||||
@@ -29,7 +29,7 @@ repos:
|
||||
args: [-c, .markdownlint.json, --fix]
|
||||
|
||||
- repo: https://github.com/adrienverge/yamllint
|
||||
rev: v1.35.1
|
||||
rev: v1.36.1
|
||||
hooks:
|
||||
- id: yamllint
|
||||
|
||||
@@ -39,7 +39,7 @@ repos:
|
||||
- id: shellcheck
|
||||
|
||||
- repo: https://github.com/scop/pre-commit-shfmt
|
||||
rev: v3.10.0-2
|
||||
rev: v3.11.0-1
|
||||
hooks:
|
||||
- id: shfmt
|
||||
|
||||
@@ -49,7 +49,7 @@ repos:
|
||||
- id: actionlint
|
||||
|
||||
- repo: https://github.com/renovatebot/pre-commit-hooks
|
||||
rev: 39.169.3
|
||||
rev: 39.205.1
|
||||
hooks:
|
||||
- id: renovate-config-validator
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
git submodule sync --recursive
|
||||
|
||||
# dotbot and plugins
|
||||
git submodule add --name dotbot \
|
||||
-f https://github.com/anishathalye/dotbot.git tools/dotbot
|
||||
@@ -9,16 +11,12 @@ git submodule add --name dotbot-include \
|
||||
-f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include
|
||||
git submodule add --name dotbot-pip \
|
||||
-f https://github.com/sobolevn/dotbot-pip.git tools/dotbot-pip
|
||||
git submodule add --name dotbot-asdf \
|
||||
-f https://github.com/sobolevn/dotbot-asdf tools/dotbot-asdf
|
||||
|
||||
# other repos
|
||||
git submodule add --name cheat-community \
|
||||
-f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
|
||||
git submodule add --name cheat-tldr \
|
||||
-f https://github.com/ivuorinen/cheatsheet-tldr.git config/cheat/cheatsheets/tldr
|
||||
git submodule add --name asdf \
|
||||
-f https://github.com/asdf-vm/asdf.git local/bin/asdf
|
||||
git submodule add --name antidote \
|
||||
--depth 1 \
|
||||
-f https://github.com/mattmc3/antidote.git tools/antidote
|
||||
@@ -53,10 +51,21 @@ done
|
||||
git config -f .gitmodules submodule.antidote.shallow true
|
||||
|
||||
# remove old submodules
|
||||
[ -d "config/tmux/plugins/tpm" ] && rm -rf config/tmux/plugins/tpm
|
||||
[ -d "config/tmux/plugins/tmux" ] && rm -rf config/tmux/plugins/tmux
|
||||
[ -d "config/tmux/plugins/tmux-menus" ] && rm -rf config/tmux/plugins/tmux-menus
|
||||
[ -d "config/tmux/plugins/tmux-resurrect" ] && rm -rf config/tmux/plugins/tmux-resurrect
|
||||
[ -d "tools/dotbot-crontab" ] && rm -rf tools/dotbot-crontab
|
||||
[ -d "tools/dotbot-snap" ] && rm -rf tools/dotbot-snap
|
||||
[ -d "config/nvim-kickstart" ] && rm -rf config/nvim-kickstart
|
||||
folders=(
|
||||
"config/tmux/plugins/tpm"
|
||||
"config/tmux/plugins/tmux"
|
||||
"config/tmux/plugins/tmux-menus"
|
||||
"config/tmux/plugins/tmux-resurrect"
|
||||
"tools/dotbot-crontab"
|
||||
"tools/dotbot-snap"
|
||||
"config/nvim-kickstart"
|
||||
"local/bin/asdf"
|
||||
"local/asdf"
|
||||
"tools/dotbot-asdf"
|
||||
)
|
||||
|
||||
for folder in "${folders[@]}"; do
|
||||
[ -d "$folder" ] \
|
||||
&& rm -rf "$folder" \
|
||||
&& msgr run_done "Removed old submodule $folder"
|
||||
done
|
||||
|
||||
@@ -25,3 +25,6 @@ x-have antidot && {
|
||||
PROMPT_DIRTRIM=3
|
||||
PROMPT_COMMAND='PS1_CMD1=$(git branch --show-current 2>/dev/null)'
|
||||
PS1='\[\e[95m\]\u\[\e[0m\]@\[\e[38;5;22;2m\]\h\[\e[0m\] \[\e[38;5;33m\]\w\[\e[0m\] \[\e[92;2m\]${PS1_CMD1}\n\[\e[39m\]➜\[\e[0m\] '
|
||||
|
||||
# Added by LM Studio CLI (lms)
|
||||
export PATH="$PATH:$HOME/.lmstudio/bin"
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
use node
|
||||
use asdf
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"work": [
|
||||
{
|
||||
"key": "user.email",
|
||||
"value": "ismo.vuorinen@vincit.fi"
|
||||
"value": "ismo.vuorinen@svea.com"
|
||||
},
|
||||
{
|
||||
"key": "user.name",
|
||||
@@ -31,4 +31,4 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
golang 1.23.4
|
||||
rust 1.83.0
|
||||
direnv 2.35.0
|
||||
fd 10.2.0
|
||||
1password-cli 2.30.3
|
||||
age 1.2.1
|
||||
dotenv-linter 3.3.0
|
||||
editorconfig-checker 2.8.0
|
||||
github-cli 2.64.0
|
||||
hadolint 2.12.0
|
||||
kubectl 1.32.0
|
||||
pre-commit 4.0.1
|
||||
ripgrep 14.1.1
|
||||
shellcheck 0.10.0
|
||||
shfmt 3.10.0
|
||||
terragrunt 0.71.1
|
||||
tf-summarize 0.3.14
|
||||
yamllint 1.35.1
|
||||
yq 4.44.6
|
||||
@@ -12,7 +12,6 @@ export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$LOCAL_SHARE/nvim/mason/bin:$L
|
||||
export SHARED_SCRIPTS_SOURCED=0
|
||||
|
||||
source "$DOTFILES/config/shared.sh"
|
||||
source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc"
|
||||
|
||||
# zsh completions directory
|
||||
[ -z "$ZSH_COMPLETIONS" ] && export ZSH_COMPLETIONS="$XDG_CONFIG_HOME/zsh/completion"
|
||||
@@ -23,7 +22,6 @@ FPATH="$ZSH_COMPLETIONS:$FPATH"
|
||||
ZSH_COMPDUMP="$XDG_CACHE_HOME/zsh/zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
||||
|
||||
source "$DOTFILES/config/zsh/antidote.zsh"
|
||||
# source "$DOTFILES/config/zsh/prompt.zsh"
|
||||
|
||||
# Function to source FZF configuration
|
||||
source_fzf_config()
|
||||
@@ -51,10 +49,6 @@ setup_tmux_window_name_plugin()
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ -n $GHOSTTY_RESOURCES_DIR ]]; then
|
||||
source "$GHOSTTY_RESOURCES_DIR"/shell-integration/zsh/ghostty-integration
|
||||
fi
|
||||
|
||||
source_fzf_config
|
||||
setup_tmux_window_name_plugin
|
||||
x-have antidot && eval "$(antidot init)"
|
||||
@@ -66,3 +60,6 @@ bashcompinit
|
||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||
export P10K_CONFIG="$DOTFILES/config/zsh/p10k.zsh"
|
||||
[[ ! -f "$P10K_CONFIG" ]] || source "$P10K_CONFIG"
|
||||
|
||||
# Added by LM Studio CLI (lms)
|
||||
export PATH="$PATH:$HOME/.lmstudio/bin"
|
||||
|
||||
@@ -115,6 +115,13 @@ run = ['layout floating']
|
||||
if.app-id = 'com.apple.backup.launcher' # TimeMachine
|
||||
run = ['layout floating']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.philipyoungg.session-setapp' # Session app (Setapp)
|
||||
run = ['layout floating']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.microsoft.rdc.macos' # Remote Desktop
|
||||
run = ['layout floating']
|
||||
|
||||
# Possible values: (qwerty|dvorak)
|
||||
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
||||
|
||||
@@ -7,6 +7,8 @@ x-have eza && {
|
||||
alias ls="eza -h -s=type --git --icons --group-directories-first"
|
||||
}
|
||||
|
||||
alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"'
|
||||
|
||||
# Easier navigation: .., ..., ....
|
||||
alias ..="cd .."
|
||||
alias ...="cd ../.."
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
|
||||
export ASDF_DIRENV_BIN="$(asdf where direnv)/bin/direnv"
|
||||
eval "$($ASDF_DIRENV_BIN hook zsh)"
|
||||
@@ -291,35 +291,6 @@ hash shopt 2> /dev/null && shopt -s checkwinsize
|
||||
# shellcheck disable=SC2155
|
||||
export SHORT_HOST=$(hostname -s)
|
||||
|
||||
# asdf
|
||||
# https://github.com/asdf-vm/asdf
|
||||
msg "Setting up asdf configuration"
|
||||
export ASDF_DIR="${XDG_BIN_HOME}/asdf"
|
||||
[[ -d $ASDF_DIR ]] && {
|
||||
# [[ -d $ASDF_DIR/completions ]] && FPATH="$ASDF_DIR/completions:$FPATH"
|
||||
# [[ -d $ASDF_DIR/plugins ]] && FPATH="$ASDF_DIR/plugins:$FPATH"
|
||||
|
||||
export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc"
|
||||
export ASDF_DATA_DIR="${ASDF_DIR}"
|
||||
export ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME="${XDG_CONFIG_HOME}/asdf/plugin-versions"
|
||||
export ASDF_LOG_FILE="${XDG_CACHE_HOME}/asdf/asdf.log"
|
||||
export ASDF_FORCE_PREPEND=yes
|
||||
## Default package files
|
||||
export ASDF_CRATE_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/cargo-packages"
|
||||
export ASDF_GEM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/gem-packages"
|
||||
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/golang-packages"
|
||||
export ASDF_NPM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/npm-packages"
|
||||
export ASDF_PYTHON_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/python-packages"
|
||||
## Plugin configuration
|
||||
export ASDF_DIRENV_IGNORE_MISSING_PLUGINS=1
|
||||
export ASDF_GOLANG_MOD_VERSION_ENABLED=true
|
||||
export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY="latest_available"
|
||||
## Add asdf to path
|
||||
export PATH="${ASDF_DIR}/bin:${PATH}"
|
||||
|
||||
source "$ASDF_DIR/asdf.sh"
|
||||
}
|
||||
|
||||
# Antidote configuration
|
||||
# https://getantidote.github.io/
|
||||
msg "Setting up Antidote configuration"
|
||||
@@ -465,7 +436,7 @@ export TMUX_CONF_DIR="$XDG_CONFIG_HOME/tmux"
|
||||
export TMUX_PLUGINS="$TMUX_CONF_DIR/plugins"
|
||||
export TMUX_CONF="$TMUX_CONF_DIR/tmux.conf"
|
||||
## These settings are for zsh-tmux
|
||||
export ZSH_TMUX_AUTOSTART=false
|
||||
export ZSH_TMUX_AUTOSTART=true
|
||||
export ZSH_TMUX_CONFIG="$TMUX_CONF"
|
||||
export ZSH_TMUX_UNICODE=true
|
||||
export ZSH_TMUX_AUTOQUIT=false
|
||||
@@ -489,4 +460,3 @@ export SQLITE_HISTORY="${XDG_CACHE_HOME}/sqlite_history"
|
||||
[ -f "$XDG_CONFIG_HOME/exports-local" ] && source "$XDG_CONFIG_HOME/exports-local"
|
||||
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)"
|
||||
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)-secret" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)-secret"
|
||||
|
||||
|
||||
72
config/fish/alias.fish
Normal file
72
config/fish/alias.fish
Normal file
@@ -0,0 +1,72 @@
|
||||
# Set aliases for fish shell
|
||||
|
||||
alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"'
|
||||
|
||||
# eza aliases if eza is installed
|
||||
if type -q eza > /dev/null
|
||||
|
||||
function eza_git -d "Use eza and its git options if in a git repo"
|
||||
if git rev-parse --is-inside-work-tree &>/dev/null
|
||||
eza --group-directories-first --icons=always --smart-group --git $argv
|
||||
else
|
||||
eza --group-directories-first --icons=always --smart-group $argv
|
||||
end
|
||||
end
|
||||
|
||||
function lsa --wraps='eza_git -al' --description 'eza -al'
|
||||
eza_git -al $argv
|
||||
end
|
||||
|
||||
function ls --wraps='eza_git' --description 'eza'
|
||||
eza_git $argv
|
||||
end
|
||||
|
||||
function ll --wraps='eza_git -l' --description 'eza -l'
|
||||
eza_git -l $argv
|
||||
end
|
||||
|
||||
function l --wraps='eza_git' --description 'eza'
|
||||
eza_git $argv
|
||||
end
|
||||
end
|
||||
|
||||
# Edit fish alias file
|
||||
function .a --wraps='nvim ~/.dotfiles/config/fish/alias.fish' --description 'alias .a=nvim ~/.dotfiles/config/fish/alias.fish'
|
||||
nvim ~/.dotfiles/config/fish/alias.fish $argv
|
||||
|
||||
end
|
||||
|
||||
# Go to the directory where my projects are stored
|
||||
function .c --wraps='cd ~/Code' --description 'cd ~/Code'
|
||||
cd ~/Code $argv
|
||||
|
||||
end
|
||||
|
||||
# Go to the directory where the dotfiles are stored
|
||||
function .d --wraps='cd ~/.dotfiles' --description 'cd ~/.dotfiles'
|
||||
cd ~/.dotfiles $argv
|
||||
|
||||
end
|
||||
|
||||
function .s --wraps='cd ~/Code/s' --description 'cd ~/Code/s'
|
||||
cd ~/Code/s $argv
|
||||
|
||||
end
|
||||
|
||||
# shortcut to commit with a message
|
||||
function commit --wraps='git commit -a -m "chore: automated commit"' --description 'commit shortcut'
|
||||
set -l commitMessage $argv
|
||||
git add .
|
||||
|
||||
if test -z "$commitMessage"
|
||||
if type -q aicommits
|
||||
aicommits --type conventional
|
||||
else
|
||||
git commit -a -m "chore: automated commit"
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
git commit -a -m "$commitMessage"
|
||||
end
|
||||
|
||||
@@ -1,7 +1,19 @@
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ fish/config.fish │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
|
||||
test -e "$HOME/.config/fish/alias.fish" &&
|
||||
source "$HOME/.config/fish/alias.fish"
|
||||
|
||||
test -e "$HOME/.config/fish/exports.fish" &&
|
||||
source "$HOME/.config/fish/exports.fish"
|
||||
|
||||
if status is-interactive
|
||||
# Commands to run in interactive sessions can go here
|
||||
fish_add_path $HOME/.cargo/bin
|
||||
fish_add_path $HOME/.local/bin
|
||||
fish_add_path $HOME/.local/share/nvim/mason/bin
|
||||
fish_add_path $HOME/.local/state/composer/vendor/bin
|
||||
# Commands to run in interactive sessions can go here
|
||||
|
||||
# Start tmux if not already running and not in SSH
|
||||
open-tmux # defined in functions/open-tmux.fish
|
||||
end
|
||||
|
||||
# Added by LM Studio CLI (lms)
|
||||
set -gx PATH $PATH $HOME/.lmstudio/bin
|
||||
|
||||
177
config/fish/exports.fish
Normal file
177
config/fish/exports.fish
Normal file
@@ -0,0 +1,177 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
# XDG Base Directory Specification
|
||||
set -q XDG_CONFIG_HOME; or set -x XDG_CONFIG_HOME "$HOME/.config"
|
||||
set -q XDG_DATA_HOME; or set -x XDG_DATA_HOME "$HOME/.local/share"
|
||||
set -q XDG_CACHE_HOME; or set -x XDG_CACHE_HOME "$HOME/.cache"
|
||||
set -q XDG_STATE_HOME; or set -x XDG_STATE_HOME "$HOME/.local/state"
|
||||
set -q XDG_BIN_HOME; or set -x XDG_BIN_HOME "$HOME/.local/bin"
|
||||
set -q XDG_RUNTIME_DIR; or set -x XDG_RUNTIME_DIR "$HOME/.local/run"
|
||||
|
||||
# Dotfiles directory
|
||||
set -q DOTFILES; or set -x DOTFILES "$HOME/.dotfiles"
|
||||
|
||||
# Editor settings
|
||||
set -q EDITOR; or set -x EDITOR "nvim"
|
||||
set -q VISUAL; or set -x VISUAL "code"
|
||||
set -q HOSTNAME; or set -x HOSTNAME (hostname -s)
|
||||
|
||||
# Add local bin to path
|
||||
fish_add_path "$XDG_BIN_HOME"
|
||||
|
||||
# Add cargo bin to path
|
||||
fish_add_path "$XDG_SHARE_HOME/cargo/bin"
|
||||
|
||||
# NPM configuration
|
||||
set -q NPM_CONFIG_PREFIX; or set -x NPM_CONFIG_PREFIX "$XDG_DATA_HOME/npm"
|
||||
fish_add_path "$NPM_CONFIG_PREFIX/bin"
|
||||
|
||||
# Yarn configuration
|
||||
set -q YARN_GLOBAL_FOLDER; or set -x YARN_GLOBAL_FOLDER "$XDG_DATA_HOME/yarn"
|
||||
fish_add_path "$YARN_GLOBAL_FOLDER/bin"
|
||||
|
||||
# Mason configuration
|
||||
set -q MASON_HOME; or set -x MASON_HOME "$XDG_DATA_HOME/nvim/mason"
|
||||
fish_add_path "$MASON_HOME/bin"
|
||||
|
||||
# Set Neovim environment variables
|
||||
test -z "$NVIM_STATE" && set -x NVIM_STATE "$XDG_STATE_HOME/nvim"
|
||||
test -z "$NVIM_CONFIG_HOME" && set -x NVIM_CONFIG_HOME "$XDG_CONFIG_HOME/nvim"
|
||||
test -z "$NVIM_DATA_HOME" && set -x NVIM_DATA_HOME "$XDG_DATA_HOME/nvim"
|
||||
test -z "$NVIM_CACHE_HOME" && set -x NVIM_CACHE_HOME "$XDG_CACHE_HOME/nvim"
|
||||
test -z "$NVIM_LOG_PATH" && set -x NVIM_LOG_PATH "$NVIM_STATE/log"
|
||||
test -z "$NVIM_SESSION_PATH" && set -x NVIM_SESSION_PATH "$NVIM_STATE/session"
|
||||
test -z "$NVIM_SHADA_PATH" && set -x NVIM_SHADA_PATH "$NVIM_STATE/shada"
|
||||
test -z "$NVIM_UNDO_PATH" && set -x NVIM_UNDO_PATH "$NVIM_STATE/undo"
|
||||
|
||||
# Ansible configuration
|
||||
set -q ANSIBLE_HOME; or set -x ANSIBLE_HOME "$XDG_CONFIG_HOME/ansible"
|
||||
set -q ANSIBLE_CONFIG; or set -x ANSIBLE_CONFIG "$ANSIBLE_HOME/ansible.cfg"
|
||||
set -q ANSIBLE_GALAXY_CACHE_DIR; or set -x ANSIBLE_GALAXY_CACHE_DIR "$XDG_CACHE_HOME/ansible/galaxy_cache"
|
||||
x-dc "$ANSIBLE_HOME"
|
||||
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
|
||||
|
||||
# AWS configuration
|
||||
set -q AWS_CONFIG_FILE; or set -x AWS_CONFIG_FILE "$XDG_STATE_HOME/aws/config"
|
||||
set -q AWS_SHARED_CREDENTIALS_FILE; or set -x AWS_SHARED_CREDENTIALS_FILE "$XDG_STATE_HOME/aws/credentials"
|
||||
set -q AWS_SESSION_TOKEN; or set -x AWS_SESSION_TOKEN "$XDG_STATE_HOME/aws/session_token"
|
||||
set -q AWS_DATA_PATH; or set -x AWS_DATA_PATH "$XDG_DATA_HOME/aws"
|
||||
set -q AWS_DEFAULT_OUTPUT; or set -x AWS_DEFAULT_OUTPUT "table"
|
||||
set -q AWS_CONFIGURE_KEYS; or set -x AWS_CONFIGURE_KEYS "true"
|
||||
set -q AWS_CONFIGURE_SESSION; or set -x AWS_CONFIGURE_SESSION "true"
|
||||
set -q AWS_CONFIGURE_SESSION_DURATION; or set -x AWS_CONFIGURE_SESSION_DURATION "7200"
|
||||
set -q AWS_CONFIGURE_SESSION_MFA; or set -x AWS_CONFIGURE_SESSION_MFA "true"
|
||||
set -q AWS_CONFIGURE_PROFILE; or set -x AWS_CONFIGURE_PROFILE "true"
|
||||
set -q AWS_CONFIGURE_PROMPT; or set -x AWS_CONFIGURE_PROMPT "true"
|
||||
set -q AWS_CONFIGURE_PROMPT_DEFAULT; or set -x AWS_CONFIGURE_PROMPT_DEFAULT "true"
|
||||
|
||||
# Brew configuration
|
||||
set -q HOMEBREW_NO_ANALYTICS; or set -x HOMEBREW_NO_ANALYTICS "true"
|
||||
set -q HOMEBREW_NO_ENV_HINTS; or set -x HOMEBREW_NO_ENV_HINTS "true"
|
||||
set -q HOMEBREW_BUNDLE_MAS_SKIP; or set -x HOMEBREW_BUNDLE_MAS_SKIP "true"
|
||||
set -q HOMEBREW_BUNDLE_FILE; or set -x HOMEBREW_BUNDLE_FILE "$XDG_CONFIG_HOME/homebrew/Brewfile"
|
||||
|
||||
# Composer configuration
|
||||
set -q COMPOSER_HOME; or set -x COMPOSER_HOME "$XDG_STATE_HOME/composer"
|
||||
set -q COMPOSER_BIN; or set -x COMPOSER_BIN "$COMPOSER_HOME/vendor/bin"
|
||||
fish_add_path "$COMPOSER_BIN"
|
||||
|
||||
# direnv configuration
|
||||
set -q DIRENV_LOG_FORMAT; or set -x DIRENV_LOG_FORMAT ''
|
||||
|
||||
# Docker configuration
|
||||
set -q DOCKER_CONFIG; or set -x DOCKER_CONFIG "$XDG_CONFIG_HOME/docker"
|
||||
x-dc "$DOCKER_CONFIG"
|
||||
set -q DOCKER_HIDE_LEGACY_COMMANDS; or set -x DOCKER_HIDE_LEGACY_COMMANDS "true"
|
||||
set -q DOCKER_SCAN_SUGGEST; or set -x DOCKER_SCAN_SUGGEST "false"
|
||||
|
||||
# fzf configuration
|
||||
set -q FZF_BASE; or set -x FZF_BASE "$XDG_CONFIG_HOME/fzf"
|
||||
set -q FZF_DEFAULT_OPTS; or set -x FZF_DEFAULT_OPTS '--height 40% --tmux bottom,40% --layout reverse --border top'
|
||||
|
||||
# GnuPG configuration
|
||||
set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
|
||||
|
||||
# Go configuration
|
||||
set -q GOPATH; or set -x GOPATH "$XDG_DATA_HOME/go"
|
||||
set -q GOBIN; or set -x GOBIN "$XDG_BIN_HOME"
|
||||
fish_add_path "$GOBIN"
|
||||
|
||||
# NPM: Add npm packages to path
|
||||
if x-have node;
|
||||
set -x NVM_NODE_BIN_DIR (dirname (which node))
|
||||
fish_add_path "$NVM_NODE_BIN_DIR"
|
||||
end
|
||||
|
||||
# 1Password configuration
|
||||
set -q OP_CACHE; or set -x OP_CACHE "$XDG_STATE_HOME/1password"
|
||||
|
||||
# Python configuration
|
||||
set -q WORKON_HOME; or set -x WORKON_HOME "$XDG_DATA_HOME/virtualenvs"
|
||||
set -q PYENV_ROOT; or set -x PYENV_ROOT "$XDG_DATA_HOME/pyenv"
|
||||
fish_add_path "$PYENV_ROOT/bin"
|
||||
if x-have pyenv; and not functions -q pyenv
|
||||
status --is-interactive; and source (pyenv init - | psub)
|
||||
end
|
||||
|
||||
# Poetry configuration
|
||||
set -q POETRY_HOME; or set -x POETRY_HOME "$XDG_DATA_HOME/poetry"
|
||||
fish_add_path "$POETRY_HOME/bin"
|
||||
|
||||
# Rust / cargo configuration
|
||||
set -q CARGO_HOME; or set -x CARGO_HOME "$XDG_DATA_HOME/cargo"
|
||||
set -q CARGO_BIN_HOME; or set -x CARGO_BIN_HOME "$XDG_BIN_HOME"
|
||||
set -q RUSTUP_HOME; or set -x RUSTUP_HOME "$XDG_DATA_HOME/rustup"
|
||||
set -x RUST_WITHOUT "clippy,docs,rls"
|
||||
fish_add_path "$CARGO_BIN_HOME"
|
||||
fish_add_path "$CARGO_HOME/bin"
|
||||
fish_add_path "$XDG_SHARE_HOME/bob/nvim-bin"
|
||||
|
||||
# screen configuration
|
||||
set -q SCREENRC; or set -x SCREENRC "$XDG_CONFIG_HOME/misc/screenrc"
|
||||
|
||||
# Sonarlint configuration
|
||||
set -q SONARLINT_HOME; or set -x SONARLINT_HOME "$XDG_DATA_HOME/sonarlint"
|
||||
set -q SONARLINT_BIN; or set -x SONARLINT_BIN "$XDG_BIN_HOME"
|
||||
set -q SONARLINT_USER_HOME; or set -x SONARLINT_USER_HOME "$XDG_DATA_HOME/sonarlint"
|
||||
|
||||
# Terraform configuration
|
||||
set -q TF_DATA_DIR; or set -x TF_DATA_DIR "$XDG_STATE_HOME/terraform"
|
||||
set -q TF_CLI_CONFIG_FILE; or set -x TF_CLI_CONFIG_FILE "$XDG_CONFIG_HOME/terraform/terraformrc"
|
||||
set -q TF_PLUGIN_CACHE_DIR; or set -x TF_PLUGIN_CACHE_DIR "$XDG_CACHE_HOME/terraform/plugin-cache"
|
||||
|
||||
# tmux configuration
|
||||
set -q TMUX_TMPDIR; or set -x TMUX_TMPDIR "$XDG_STATE_HOME/tmux"
|
||||
set -q TMUX_CONF_DIR; or set -x TMUX_CONF_DIR "$XDG_CONFIG_HOME/tmux"
|
||||
set -q TMUX_PLUGINS; or set -x TMUX_PLUGINS "$TMUX_CONF_DIR/plugins"
|
||||
set -q TMUX_CONF; or set -x TMUX_CONF "$TMUX_CONF_DIR/tmux.conf"
|
||||
set -q TMUX_PLUGIN_MANAGER_PATH; or set -x TMUX_PLUGIN_MANAGER_PATH "$TMUX_PLUGINS"
|
||||
|
||||
# Source tmux theme activation script for Fish shell
|
||||
if test -f "$DOTFILES/config/tmux/theme-activate.fish"
|
||||
source "$DOTFILES/config/tmux/theme-activate.fish"
|
||||
end
|
||||
|
||||
# tms configuration
|
||||
set -q TMS_CONFIG_FILE; or set -x TMS_CONFIG_FILE "$XDG_CONFIG_HOME/tms/config.toml"
|
||||
|
||||
# wakatime configuration
|
||||
set -q WAKATIME_HOME; or set -x WAKATIME_HOME "$XDG_STATE_HOME/wakatime"
|
||||
x-dc "$WAKATIME_HOME"
|
||||
|
||||
# Miscellaneous configuration
|
||||
set -q CHEAT_USE_FZF; or set -x CHEAT_USE_FZF "true"
|
||||
set -q SQLITE_HISTORY; or set -x SQLITE_HISTORY "$XDG_CACHE_HOME/sqlite/sqlite_history"
|
||||
|
||||
# Source additional configuration files if they exist
|
||||
if test -f "$DOTFILES/config/fish/exports-secret.fish"
|
||||
source "$DOTFILES/config/fish/exports-secret.fish"
|
||||
end
|
||||
|
||||
if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish"
|
||||
source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish"
|
||||
end
|
||||
|
||||
if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish"
|
||||
source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish"
|
||||
end
|
||||
@@ -3,7 +3,7 @@ jorgebucaran/nvm.fish
|
||||
ilancosman/tide@v6
|
||||
jethrokuan/z
|
||||
halostatue/fish-macos@v7
|
||||
ehfive/fish-bash2env
|
||||
jgusta/paths
|
||||
danhper/fish-ssh-agent
|
||||
halostatue/fish-brew@v3
|
||||
edc/bass
|
||||
|
||||
@@ -1,212 +0,0 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR VIRTUAL_ENV_DISABLE_PROMPT:true
|
||||
SETUVAR ZO_CMD:zo
|
||||
SETUVAR Z_CMD:z
|
||||
SETUVAR Z_DATA:/Users/ivuorinen/\x2elocal/share/z/data
|
||||
SETUVAR Z_DATA_DIR:/Users/ivuorinen/\x2elocal/share/z
|
||||
SETUVAR Z_EXCLUDE:\x5e/Users/ivuorinen\x24
|
||||
SETUVAR --export ___paths_plugin_colors:27e6ff\x1e29e0ff\x1e5cd8ff\x1e77d0ff\x1e8ac8ff\x1e9cbfff\x1eafb5ff\x1ec5a7ff\x1ed99bfe\x1eea8feb\x1ef684d5\x1efe7abd\x1eff73a3\x1eff708a\x1efa7070\x1eff708a\x1eff73a3\x1efe7abd\x1ef684d5\x1eea8feb\x1ed99bfe\x1ec5a7ff\x1eafb5ff\x1e9cbfff\x1e8ac8ff\x1e77d0ff\x1e5cd8ff\x1e29e0ff
|
||||
SETUVAR --export ___paths_plugin_current_color:4
|
||||
SETUVAR __fish_initialized:3400
|
||||
SETUVAR _fisher_danhper_2F_fish_2D_ssh_2D_agent_files:\x7e/\x2econfig/fish/functions/__ssh_agent_is_started\x2efish\x1e\x7e/\x2econfig/fish/functions/__ssh_agent_start\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fish\x2dssh\x2dagent\x2efish
|
||||
SETUVAR _fisher_ehfive_2F_fish_2D_bash2env_files:\x7e/\x2econfig/fish/functions/__bash2env\x2esh\x1e\x7e/\x2econfig/fish/functions/bash2env\x2efish
|
||||
SETUVAR _fisher_halostatue_2F_fish_2D_brew_40_v3_files:\x7e/\x2econfig/fish/functions/has_cask\x2efish\x1e\x7e/\x2econfig/fish/functions/has_keg\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/halostatue_fish_brew\x2efish
|
||||
SETUVAR _fisher_halostatue_2F_fish_2D_macos_40_v7_files:\x7e/\x2econfig/fish/functions/__macos_app_bundleid\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_app_find\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_app_frontmost\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_app_icon\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_app_quit\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_cd\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_clean\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_column\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_desktop_icons\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_hidden\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_icon\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_list\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_pushd\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_pwd\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_quarantine\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_selected\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_track\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_untrack\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_update\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_airdrop\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_airport\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_brightness\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_defaults_query\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_flushdns\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_font_smoothing\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_lsclean\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_mail\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_proxy_icon\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_serialnumber\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_touchid\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_touchid_sudo\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_transparency\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_version\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_vol\x2efish\x1e\x7e/\x2econfig/fish/functions/app\x2efish\x1e\x7e/\x2econfig/fish/functions/finder\x2efish\x1e\x7e/\x2econfig/fish/functions/has_app\x2efish\x1e\x7e/\x2econfig/fish/functions/mac\x2efish\x1e\x7e/\x2econfig/fish/functions/manp\x2efish\x1e\x7e/\x2econfig/fish/functions/note\x2efish\x1e\x7e/\x2econfig/fish/functions/ql\x2efish\x1e\x7e/\x2econfig/fish/functions/remind\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/halostatue_fish_macos\x2efish\x1e\x7e/\x2econfig/fish/completions/app\x2efish\x1e\x7e/\x2econfig/fish/completions/finder\x2efish\x1e\x7e/\x2econfig/fish/completions/mac\x2efish\x1e\x7e/\x2econfig/fish/completions/manp\x2efish\x1e\x7e/\x2econfig/fish/completions/ql\x2efish
|
||||
SETUVAR _fisher_ilancosman_2F_tide_40_v6_files:\x7e/\x2econfig/fish/functions/_tide_1_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_2_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_cache_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_detect_os\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_find_and_remove\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_fish_colorize\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_aws\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_character\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_cmd_duration\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_context\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_crystal\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_direnv\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_distrobox\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_docker\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_elixir\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_gcloud\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_git\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_go\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_java\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_jobs\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_kubectl\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_nix_shell\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_node\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_os\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_php\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_private_mode\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_pulumi\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_python\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_ruby\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_rustc\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_shlvl\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_terraform\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_toolbox\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_vi_mode\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_zig\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_parent_dirs\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_print_item\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_pwd\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_remove_unusable_items\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_bug\x2dreport\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_configure\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_reload\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_mode_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/tide\x1e\x7e/\x2econfig/fish/functions/tide\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/_tide_init\x2efish\x1e\x7e/\x2econfig/fish/completions/tide\x2efish
|
||||
SETUVAR _fisher_jethrokuan_2F_z_files:\x7e/\x2econfig/fish/functions/__z\x2efish\x1e\x7e/\x2econfig/fish/functions/__z_add\x2efish\x1e\x7e/\x2econfig/fish/functions/__z_clean\x2efish\x1e\x7e/\x2econfig/fish/functions/__z_complete\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/z\x2efish
|
||||
SETUVAR _fisher_jgusta_2F_paths_files:\x7e/\x2econfig/fish/functions/paths\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/paths\x2efish
|
||||
SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
|
||||
SETUVAR _fisher_jorgebucaran_2F_nvm_2E_fish_files:\x7e/\x2econfig/fish/functions/_nvm_index_update\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_list\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_activate\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_deactivate\x2efish\x1e\x7e/\x2econfig/fish/functions/nvm\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/nvm\x2efish\x1e\x7e/\x2econfig/fish/completions/nvm\x2efish
|
||||
SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ejorgebucaran/nvm\x2efish\x1eilancosman/tide\x40v6\x1ejethrokuan/z\x1ehalostatue/fish\x2dmacos\x40v7\x1eehfive/fish\x2dbash2env\x1ejgusta/paths\x1edanhper/fish\x2dssh\x2dagent\x1ehalostatue/fish\x2dbrew\x40v3
|
||||
SETUVAR _fisher_upgraded_to_4_4:\x1d
|
||||
SETUVAR _tide_left_items:os\x1epwd\x1egit\x1enewline\x1echaracter
|
||||
SETUVAR _tide_prompt_4323:\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\uf179\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\x20\x1b\x5bm\x0f\x1b\x5bm\x0f\x40PWD\x40\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\x20\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmain\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x20\x2a1\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x2116\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f4\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x20\x1e\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\u276f\x1e\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x20\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5b38\x3b2\x3b68\x3b136\x3b62m\ue24f\x2022\x2e13\x2e1\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\x20\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\U000f0320\x203\x2e13\x2e2\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f
|
||||
SETUVAR _tide_prompt_78628:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\uf179\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x40PWD\x40\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x20\x1e\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\u276f\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\uf252\x207m\x2013s\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm
|
||||
SETUVAR _tide_right_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1enode\x1epython\x1ejava\x1ephp\x1eruby\x1ekubectl\x1eterraform\x1eaws
|
||||
SETUVAR fish_color_autosuggestion:brblack
|
||||
SETUVAR fish_color_cancel:\x2dr
|
||||
SETUVAR fish_color_command:blue
|
||||
SETUVAR fish_color_comment:red
|
||||
SETUVAR fish_color_cwd:green
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:green
|
||||
SETUVAR fish_color_error:brred
|
||||
SETUVAR fish_color_escape:brcyan
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:normal
|
||||
SETUVAR fish_color_host_remote:yellow
|
||||
SETUVAR fish_color_normal:normal
|
||||
SETUVAR fish_color_operator:brcyan
|
||||
SETUVAR fish_color_param:cyan
|
||||
SETUVAR fish_color_quote:yellow
|
||||
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_greeting:\x1d
|
||||
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||
SETUVAR fish_pager_color_completion:normal
|
||||
SETUVAR fish_pager_color_description:yellow\x1e\x2di
|
||||
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||
SETUVAR fish_user_paths:/Users/ivuorinen/\x2elocal/state/composer/vendor/bin\x1e/Users/ivuorinen/\x2elocal/share/nvim/mason/bin\x1e/Users/ivuorinen/\x2elocal/share/bob/nvim\x2dbin\x1e/Users/ivuorinen/\x2elocal/bin
|
||||
SETUVAR tide_aws_bg_color:normal
|
||||
SETUVAR tide_aws_color:FF9900
|
||||
SETUVAR tide_aws_icon:\uf270
|
||||
SETUVAR tide_character_color:5FD700
|
||||
SETUVAR tide_character_color_failure:FF0000
|
||||
SETUVAR tide_character_icon:\u276f
|
||||
SETUVAR tide_character_vi_icon_default:\u276e
|
||||
SETUVAR tide_character_vi_icon_replace:\u25b6
|
||||
SETUVAR tide_character_vi_icon_visual:V
|
||||
SETUVAR tide_cmd_duration_bg_color:normal
|
||||
SETUVAR tide_cmd_duration_color:87875F
|
||||
SETUVAR tide_cmd_duration_decimals:0
|
||||
SETUVAR tide_cmd_duration_icon:\uf252
|
||||
SETUVAR tide_cmd_duration_threshold:3000
|
||||
SETUVAR tide_context_always_display:false
|
||||
SETUVAR tide_context_bg_color:normal
|
||||
SETUVAR tide_context_color_default:D7AF87
|
||||
SETUVAR tide_context_color_root:D7AF00
|
||||
SETUVAR tide_context_color_ssh:D7AF87
|
||||
SETUVAR tide_context_hostname_parts:1
|
||||
SETUVAR tide_crystal_bg_color:normal
|
||||
SETUVAR tide_crystal_color:FFFFFF
|
||||
SETUVAR tide_crystal_icon:\ue62f
|
||||
SETUVAR tide_direnv_bg_color:normal
|
||||
SETUVAR tide_direnv_bg_color_denied:normal
|
||||
SETUVAR tide_direnv_color:D7AF00
|
||||
SETUVAR tide_direnv_color_denied:FF0000
|
||||
SETUVAR tide_direnv_icon:\u25bc
|
||||
SETUVAR tide_distrobox_bg_color:normal
|
||||
SETUVAR tide_distrobox_color:FF00FF
|
||||
SETUVAR tide_distrobox_icon:\U000f01a7
|
||||
SETUVAR tide_docker_bg_color:normal
|
||||
SETUVAR tide_docker_color:2496ED
|
||||
SETUVAR tide_docker_default_contexts:default\x1ecolima
|
||||
SETUVAR tide_docker_icon:\uf308
|
||||
SETUVAR tide_elixir_bg_color:normal
|
||||
SETUVAR tide_elixir_color:4E2A8E
|
||||
SETUVAR tide_elixir_icon:\ue62d
|
||||
SETUVAR tide_gcloud_bg_color:normal
|
||||
SETUVAR tide_gcloud_color:4285F4
|
||||
SETUVAR tide_gcloud_icon:\U000f02ad
|
||||
SETUVAR tide_git_bg_color:normal
|
||||
SETUVAR tide_git_bg_color_unstable:normal
|
||||
SETUVAR tide_git_bg_color_urgent:normal
|
||||
SETUVAR tide_git_color_branch:5FD700
|
||||
SETUVAR tide_git_color_conflicted:FF0000
|
||||
SETUVAR tide_git_color_dirty:D7AF00
|
||||
SETUVAR tide_git_color_operation:FF0000
|
||||
SETUVAR tide_git_color_staged:D7AF00
|
||||
SETUVAR tide_git_color_stash:5FD700
|
||||
SETUVAR tide_git_color_untracked:00AFFF
|
||||
SETUVAR tide_git_color_upstream:5FD700
|
||||
SETUVAR tide_git_icon:\uf1d3
|
||||
SETUVAR tide_git_truncation_length:24
|
||||
SETUVAR tide_git_truncation_strategy:\x1d
|
||||
SETUVAR tide_go_bg_color:normal
|
||||
SETUVAR tide_go_color:00ACD7
|
||||
SETUVAR tide_go_icon:\ue627
|
||||
SETUVAR tide_java_bg_color:normal
|
||||
SETUVAR tide_java_color:ED8B00
|
||||
SETUVAR tide_java_icon:\ue256
|
||||
SETUVAR tide_jobs_bg_color:normal
|
||||
SETUVAR tide_jobs_color:5FAF00
|
||||
SETUVAR tide_jobs_icon:\uf013
|
||||
SETUVAR tide_jobs_number_threshold:1000
|
||||
SETUVAR tide_kubectl_bg_color:normal
|
||||
SETUVAR tide_kubectl_color:326CE5
|
||||
SETUVAR tide_kubectl_icon:\U000f10fe
|
||||
SETUVAR tide_left_prompt_frame_enabled:false
|
||||
SETUVAR tide_left_prompt_items:os\x1epwd\x1egit\x1enewline\x1echaracter
|
||||
SETUVAR tide_left_prompt_prefix:
|
||||
SETUVAR tide_left_prompt_separator_diff_color:\x20
|
||||
SETUVAR tide_left_prompt_separator_same_color:\x20
|
||||
SETUVAR tide_left_prompt_suffix:\x20
|
||||
SETUVAR tide_nix_shell_bg_color:normal
|
||||
SETUVAR tide_nix_shell_color:7EBAE4
|
||||
SETUVAR tide_nix_shell_icon:\uf313
|
||||
SETUVAR tide_node_bg_color:normal
|
||||
SETUVAR tide_node_color:44883E
|
||||
SETUVAR tide_node_icon:\ue24f
|
||||
SETUVAR tide_os_bg_color:normal
|
||||
SETUVAR tide_os_color:normal
|
||||
SETUVAR tide_os_icon:\uf179
|
||||
SETUVAR tide_php_bg_color:normal
|
||||
SETUVAR tide_php_color:617CBE
|
||||
SETUVAR tide_php_icon:\ue608
|
||||
SETUVAR tide_private_mode_bg_color:normal
|
||||
SETUVAR tide_private_mode_color:FFFFFF
|
||||
SETUVAR tide_private_mode_icon:\U000f05f9
|
||||
SETUVAR tide_prompt_add_newline_before:true
|
||||
SETUVAR tide_prompt_color_frame_and_connection:6C6C6C
|
||||
SETUVAR tide_prompt_color_separator_same_color:949494
|
||||
SETUVAR tide_prompt_icon_connection:\x20
|
||||
SETUVAR tide_prompt_min_cols:34
|
||||
SETUVAR tide_prompt_pad_items:false
|
||||
SETUVAR tide_prompt_transient_enabled:true
|
||||
SETUVAR tide_pulumi_bg_color:normal
|
||||
SETUVAR tide_pulumi_color:F7BF2A
|
||||
SETUVAR tide_pulumi_icon:\uf1b2
|
||||
SETUVAR tide_pwd_bg_color:normal
|
||||
SETUVAR tide_pwd_color_anchors:00AFFF
|
||||
SETUVAR tide_pwd_color_dirs:0087AF
|
||||
SETUVAR tide_pwd_color_truncated_dirs:8787AF
|
||||
SETUVAR tide_pwd_icon:\uf07c
|
||||
SETUVAR tide_pwd_icon_home:\uf015
|
||||
SETUVAR tide_pwd_icon_unwritable:\uf023
|
||||
SETUVAR tide_pwd_markers:\x2ebzr\x1e\x2ecitc\x1e\x2egit\x1e\x2ehg\x1e\x2enode\x2dversion\x1e\x2epython\x2dversion\x1e\x2eruby\x2dversion\x1e\x2eshorten_folder_marker\x1e\x2esvn\x1e\x2eterraform\x1eCargo\x2etoml\x1ecomposer\x2ejson\x1eCVS\x1ego\x2emod\x1epackage\x2ejson\x1ebuild\x2ezig
|
||||
SETUVAR tide_python_bg_color:normal
|
||||
SETUVAR tide_python_color:00AFAF
|
||||
SETUVAR tide_python_icon:\U000f0320
|
||||
SETUVAR tide_right_prompt_frame_enabled:false
|
||||
SETUVAR tide_right_prompt_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1edirenv\x1enode\x1epython\x1erustc\x1ejava\x1ephp\x1epulumi\x1eruby\x1ego\x1egcloud\x1ekubectl\x1edistrobox\x1etoolbox\x1eterraform\x1eaws\x1enix_shell\x1ecrystal\x1eelixir\x1ezig
|
||||
SETUVAR tide_right_prompt_prefix:\x20
|
||||
SETUVAR tide_right_prompt_separator_diff_color:\x20
|
||||
SETUVAR tide_right_prompt_separator_same_color:\x20
|
||||
SETUVAR tide_right_prompt_suffix:
|
||||
SETUVAR tide_ruby_bg_color:normal
|
||||
SETUVAR tide_ruby_color:B31209
|
||||
SETUVAR tide_ruby_icon:\ue23e
|
||||
SETUVAR tide_rustc_bg_color:normal
|
||||
SETUVAR tide_rustc_color:F74C00
|
||||
SETUVAR tide_rustc_icon:\ue7a8
|
||||
SETUVAR tide_shlvl_bg_color:normal
|
||||
SETUVAR tide_shlvl_color:d78700
|
||||
SETUVAR tide_shlvl_icon:\uf120
|
||||
SETUVAR tide_shlvl_threshold:1
|
||||
SETUVAR tide_status_bg_color:normal
|
||||
SETUVAR tide_status_bg_color_failure:normal
|
||||
SETUVAR tide_status_color:5FAF00
|
||||
SETUVAR tide_status_color_failure:D70000
|
||||
SETUVAR tide_status_icon:\u2714
|
||||
SETUVAR tide_status_icon_failure:\u2718
|
||||
SETUVAR tide_terraform_bg_color:normal
|
||||
SETUVAR tide_terraform_color:844FBA
|
||||
SETUVAR tide_terraform_icon:\U000f1062
|
||||
SETUVAR tide_time_bg_color:normal
|
||||
SETUVAR tide_time_color:5F8787
|
||||
SETUVAR tide_time_format:
|
||||
SETUVAR tide_toolbox_bg_color:normal
|
||||
SETUVAR tide_toolbox_color:613583
|
||||
SETUVAR tide_toolbox_icon:\ue24f
|
||||
SETUVAR tide_vi_mode_bg_color_default:normal
|
||||
SETUVAR tide_vi_mode_bg_color_insert:normal
|
||||
SETUVAR tide_vi_mode_bg_color_replace:normal
|
||||
SETUVAR tide_vi_mode_bg_color_visual:normal
|
||||
SETUVAR tide_vi_mode_color_default:949494
|
||||
SETUVAR tide_vi_mode_color_insert:87AFAF
|
||||
SETUVAR tide_vi_mode_color_replace:87AF87
|
||||
SETUVAR tide_vi_mode_color_visual:FF8700
|
||||
SETUVAR tide_vi_mode_icon_default:D
|
||||
SETUVAR tide_vi_mode_icon_insert:I
|
||||
SETUVAR tide_vi_mode_icon_replace:R
|
||||
SETUVAR tide_vi_mode_icon_visual:V
|
||||
SETUVAR tide_zig_bg_color:normal
|
||||
SETUVAR tide_zig_color:F7A41D
|
||||
SETUVAR tide_zig_icon:\ue6a9
|
||||
@@ -1,4 +0,0 @@
|
||||
function .c --wraps='cd ~/Code' --description 'alias .c=cd ~/Code'
|
||||
cd ~/Code $argv
|
||||
|
||||
end
|
||||
@@ -1,4 +0,0 @@
|
||||
function .d --wraps='cd ~/.dotfiles' --description 'alias .d=cd ~/.dotfiles'
|
||||
cd ~/.dotfiles $argv
|
||||
|
||||
end
|
||||
@@ -1,56 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2022 Huang-Huang Bao
|
||||
#
|
||||
# This software is released under the MIT License.
|
||||
# https://opensource.org/licenses/MIT
|
||||
|
||||
# shellcheck disable=SC2076
|
||||
set -e
|
||||
|
||||
disallowd_vars_arr=(
|
||||
_
|
||||
fish_kill_signal
|
||||
fish_killring
|
||||
fish_pid
|
||||
history
|
||||
hostname
|
||||
PWD
|
||||
pipestatus
|
||||
SHLVL
|
||||
status
|
||||
status_generation
|
||||
version
|
||||
)
|
||||
disallowd_vars=" ${disallowd_vars_arr[*]} "
|
||||
|
||||
fish_escape() {
|
||||
value="${1//\\/\\\\}"
|
||||
value="${value//\'/\\\'}"
|
||||
echo "'${value}'"
|
||||
}
|
||||
|
||||
flag_impure="$__FISH_BASH2ENV_IMPURE"
|
||||
unset __FISH_BASH2ENV_IMPURE
|
||||
|
||||
if [[ -z "$flag_impure" ]]; then
|
||||
old_env=" $(env -0 | tr '\0' ' ') "
|
||||
fi
|
||||
|
||||
eval_status=
|
||||
eval "$*" 1>&2 || eval_status=$?
|
||||
|
||||
env -0 | while IFS= read -rs -d $'\0' line; do
|
||||
if [[ -z "$flag_impure" && "${old_env}" =~ " ${line} " ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
name="${line%%=*}"
|
||||
if [[ "${disallowd_vars}" =~ " ${name} " ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
value="$(fish_escape "${line#*=}")"
|
||||
echo "set -gx ${name} ${value}"
|
||||
done
|
||||
|
||||
exit $eval_status
|
||||
140
config/fish/functions/__bass.py
Normal file
140
config/fish/functions/__bass.py
Normal file
@@ -0,0 +1,140 @@
|
||||
"""
|
||||
To be used with a companion fish function like this:
|
||||
|
||||
function refish
|
||||
set -l _x (python /tmp/bass.py source ~/.nvm/nvim.sh ';' nvm use iojs); source $_x; and rm -f $_x
|
||||
end
|
||||
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import json
|
||||
import os
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
|
||||
BASH = 'bash'
|
||||
|
||||
FISH_READONLY = [
|
||||
'PWD', 'SHLVL', 'history', 'pipestatus', 'status', 'version',
|
||||
'FISH_VERSION', 'fish_pid', 'hostname', '_', 'fish_private_mode'
|
||||
]
|
||||
|
||||
IGNORED = [
|
||||
'PS1', 'XPC_SERVICE_NAME'
|
||||
]
|
||||
|
||||
def ignored(name):
|
||||
if name == 'PWD': # this is read only, but has special handling
|
||||
return False
|
||||
# ignore other read only variables
|
||||
if name in FISH_READONLY:
|
||||
return True
|
||||
if name in IGNORED or name.startswith("BASH_FUNC"):
|
||||
return True
|
||||
if name.startswith('%'):
|
||||
return True
|
||||
return False
|
||||
|
||||
def escape(string):
|
||||
# use json.dumps to reliably escape quotes and backslashes
|
||||
return json.dumps(string).replace(r'$', r'\$')
|
||||
|
||||
def escape_identifier(word):
|
||||
return escape(word.replace('?', '\\?'))
|
||||
|
||||
def comment(string):
|
||||
return '\n'.join(['# ' + line for line in string.split('\n')])
|
||||
|
||||
def gen_script():
|
||||
# Use the following instead of /usr/bin/env to read environment so we can
|
||||
# deal with multi-line environment variables (and other odd cases).
|
||||
env_reader = "%s -c 'import os,json; print(json.dumps({k:v for k,v in os.environ.items()}))'" % (sys.executable)
|
||||
args = [BASH, '-c', env_reader]
|
||||
output = subprocess.check_output(args, universal_newlines=True)
|
||||
old_env = output.strip()
|
||||
|
||||
pipe_r, pipe_w = os.pipe()
|
||||
if sys.version_info >= (3, 4):
|
||||
os.set_inheritable(pipe_w, True)
|
||||
command = 'eval $1 && ({}; alias) >&{}'.format(
|
||||
env_reader,
|
||||
pipe_w
|
||||
)
|
||||
args = [BASH, '-c', command, 'bass', ' '.join(sys.argv[1:])]
|
||||
p = subprocess.Popen(args, universal_newlines=True, close_fds=False)
|
||||
os.close(pipe_w)
|
||||
with os.fdopen(pipe_r) as f:
|
||||
new_env = f.readline()
|
||||
alias_str = f.read()
|
||||
if p.wait() != 0:
|
||||
raise subprocess.CalledProcessError(
|
||||
returncode=p.returncode,
|
||||
cmd=' '.join(sys.argv[1:]),
|
||||
output=new_env + alias_str
|
||||
)
|
||||
new_env = new_env.strip()
|
||||
|
||||
old_env = json.loads(old_env)
|
||||
new_env = json.loads(new_env)
|
||||
|
||||
script_lines = []
|
||||
|
||||
for k, v in new_env.items():
|
||||
if ignored(k):
|
||||
continue
|
||||
v1 = old_env.get(k)
|
||||
if not v1:
|
||||
script_lines.append(comment('adding %s=%s' % (k, v)))
|
||||
elif v1 != v:
|
||||
script_lines.append(comment('updating %s=%s -> %s' % (k, v1, v)))
|
||||
# process special variables
|
||||
if k == 'PWD':
|
||||
script_lines.append('cd %s' % escape(v))
|
||||
continue
|
||||
else:
|
||||
continue
|
||||
if k == 'PATH':
|
||||
value = ' '.join([escape(directory)
|
||||
for directory in v.split(':')])
|
||||
else:
|
||||
value = escape(v)
|
||||
script_lines.append('set -g -x %s %s' % (k, value))
|
||||
|
||||
for var in set(old_env.keys()) - set(new_env.keys()):
|
||||
script_lines.append(comment('removing %s' % var))
|
||||
script_lines.append('set -e %s' % var)
|
||||
|
||||
script = '\n'.join(script_lines)
|
||||
|
||||
alias_lines = []
|
||||
for line in alias_str.splitlines():
|
||||
_, rest = line.split(None, 1)
|
||||
k, v = rest.split("=", 1)
|
||||
alias_lines.append("alias " + escape_identifier(k) + "=" + v)
|
||||
alias = '\n'.join(alias_lines)
|
||||
|
||||
return script + '\n' + alias
|
||||
|
||||
script_file = os.fdopen(3, 'w')
|
||||
|
||||
if not sys.argv[1:]:
|
||||
print('__bass_usage', file=script_file, end='')
|
||||
sys.exit(0)
|
||||
|
||||
try:
|
||||
script = gen_script()
|
||||
except subprocess.CalledProcessError as e:
|
||||
sys.exit(e.returncode)
|
||||
except Exception:
|
||||
print('Bass internal error!', file=sys.stderr)
|
||||
raise # traceback will output to stderr
|
||||
except KeyboardInterrupt:
|
||||
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||
os.kill(os.getpid(), signal.SIGINT)
|
||||
else:
|
||||
script_file.write(script)
|
||||
@@ -1,39 +0,0 @@
|
||||
# Copyright (c) 2022 Huang-Huang Bao
|
||||
#
|
||||
# This software is released under the MIT License.
|
||||
# https://opensource.org/licenses/MIT
|
||||
|
||||
function bash2env -d "Import environment variables modified by given bash command"
|
||||
argparse --stop-nonopt h/help i/impure -- $argv
|
||||
or set argv
|
||||
|
||||
function _print_usage
|
||||
echo 'Usage:' \
|
||||
(set_color $fish_color_command)'bash2env' \
|
||||
(set_color $fish_color_normal)'[-i/--impure]' \
|
||||
(set_color $fish_color_param)"<bash command>"
|
||||
end
|
||||
|
||||
if test -n "$_flag_help"
|
||||
_print_usage
|
||||
return
|
||||
end
|
||||
if test (count $argv) -eq 0
|
||||
_print_usage
|
||||
return 22
|
||||
end
|
||||
|
||||
if test -n "$_flag_impure"
|
||||
set _flag_impure 1
|
||||
end
|
||||
|
||||
set -l DIR (dirname (status -f))
|
||||
__FISH_BASH2ENV_IMPURE=$_flag_impure command \
|
||||
bash $DIR/__bash2env.sh $argv | source
|
||||
|
||||
for code in $pipestatus
|
||||
if test $code != 0
|
||||
return $code
|
||||
end
|
||||
end
|
||||
end
|
||||
29
config/fish/functions/bass.fish
Normal file
29
config/fish/functions/bass.fish
Normal file
@@ -0,0 +1,29 @@
|
||||
function bass
|
||||
set -l bash_args $argv
|
||||
set -l bass_debug
|
||||
if test "$bash_args[1]_" = '-d_'
|
||||
set bass_debug true
|
||||
set -e bash_args[1]
|
||||
end
|
||||
|
||||
set -l script_file (mktemp)
|
||||
if command -v python3 >/dev/null 2>&1
|
||||
command python3 -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
|
||||
else
|
||||
command python -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
|
||||
end
|
||||
set -l bass_status $status
|
||||
if test $bass_status -ne 0
|
||||
return $bass_status
|
||||
end
|
||||
|
||||
if test -n "$bass_debug"
|
||||
cat $script_file
|
||||
end
|
||||
source $script_file
|
||||
command rm $script_file
|
||||
end
|
||||
|
||||
function __bass_usage
|
||||
echo "Usage: bass [-d] <bash-command>"
|
||||
end
|
||||
9
config/fish/functions/open-tmux.fish
Normal file
9
config/fish/functions/open-tmux.fish
Normal file
@@ -0,0 +1,9 @@
|
||||
# Description: Open tmux session if not already open
|
||||
# Dependencies: tmux
|
||||
# Usage: open-tmux
|
||||
function open-tmux --wraps='tmux attach-session -t main || tmux new-session -s main' --description 'open tmux session'
|
||||
# Check if not in an SSH session and not already in a tmux session
|
||||
if test -z "$SSH_TTY"; and not set -q TMUX
|
||||
command tmux attach-session -t main || command tmux new-session -s main
|
||||
end
|
||||
end
|
||||
0
config/git/local.d/.gitkeep
Normal file
0
config/git/local.d/.gitkeep
Normal file
@@ -29,6 +29,8 @@ brew "age"
|
||||
brew "ca-certificates"
|
||||
# Mozilla CA bundle for Python
|
||||
brew "certifi"
|
||||
# Cryptography and SSL/TLS Toolkit
|
||||
brew "openssl@3"
|
||||
# Cryptographic recipes and primitives for Python
|
||||
brew "cryptography"
|
||||
# YAML Parser
|
||||
@@ -47,8 +49,6 @@ brew "highway"
|
||||
brew "imath"
|
||||
# JPEG image codec that aids compression and decompression
|
||||
brew "jpeg-turbo"
|
||||
# Library for manipulating PNG images
|
||||
brew "libpng"
|
||||
# Zstandard is a real-time compression algorithm
|
||||
brew "zstd"
|
||||
# New file format for still image compression
|
||||
@@ -113,8 +113,6 @@ brew "enchant"
|
||||
brew "exiftool"
|
||||
# Banner-like program prints strings as ASCII art
|
||||
brew "figlet"
|
||||
# Text-based UI library
|
||||
brew "ncurses"
|
||||
# User-friendly command-line shell for UNIX-like operating systems
|
||||
brew "fish"
|
||||
# Lock file during command
|
||||
@@ -157,8 +155,6 @@ brew "gnutls"
|
||||
brew "gnupg"
|
||||
# Library access to GnuPG
|
||||
brew "gpgme"
|
||||
# Open source suite of directory software
|
||||
brew "openldap"
|
||||
# Manage your GnuPG keys with ease!
|
||||
brew "gpg-tui"
|
||||
# Image manipulation
|
||||
@@ -195,16 +191,12 @@ brew "legitify"
|
||||
brew "libedit"
|
||||
# Conversion library
|
||||
brew "libiconv"
|
||||
# Postgres C API library
|
||||
brew "libpq"
|
||||
# Version of the SSL/TLS protocol forked from OpenSSL
|
||||
brew "libressl"
|
||||
# Multi-platform support library with a focus on asynchronous I/O
|
||||
brew "libuv"
|
||||
# GNOME XML library
|
||||
brew "libxml2"
|
||||
# C library for reading, creating, and modifying zip archives
|
||||
brew "libzip"
|
||||
# Package manager for the Lua programming language
|
||||
brew "luarocks"
|
||||
# LZMA-based compression program similar to gzip or bzip2
|
||||
@@ -221,10 +213,12 @@ brew "nginx"
|
||||
brew "nmap"
|
||||
# Libraries for security-enabled client and server applications
|
||||
brew "nss"
|
||||
# Cryptography and SSL/TLS Toolkit
|
||||
brew "openssl@1.1"
|
||||
# Open source suite of directory software
|
||||
brew "openldap"
|
||||
# ISO-C API and CLI for generating UUIDs
|
||||
brew "ossp-uuid"
|
||||
# Execute binaries from Python packages in isolated environments
|
||||
brew "pipx"
|
||||
# Python version management
|
||||
brew "pyenv"
|
||||
# Migrate pip packages from one Python version to another
|
||||
@@ -239,6 +233,8 @@ brew "ruby-build"
|
||||
brew "rbenv"
|
||||
# Generate C-based recognizers from regular expressions
|
||||
brew "re2c"
|
||||
# Rust toolchain installer
|
||||
brew "rustup"
|
||||
# Static analysis and lint tool, for (ba)sh scripts
|
||||
brew "shellcheck"
|
||||
# Send macOS User Notifications from the command-line
|
||||
@@ -275,6 +271,8 @@ brew "doron-cohen/tap/antidot"
|
||||
brew "gesquive/tap/git-user"
|
||||
# Automated code review tool integrated with any code analysis tools regardless of programming language.
|
||||
brew "reviewdog/tap/reviewdog"
|
||||
# Igbinary PHP extension
|
||||
brew "shivammathur/extensions/igbinary@8.3"
|
||||
# Imagick PHP extension
|
||||
brew "shivammathur/extensions/imagick@8.3"
|
||||
# Mcrypt PHP extension
|
||||
@@ -290,23 +288,23 @@ brew "shivammathur/extensions/uuid@8.3"
|
||||
# Yaml PHP extension
|
||||
brew "shivammathur/extensions/yaml@8.3"
|
||||
# General-purpose scripting language
|
||||
brew "shivammathur/php/php"
|
||||
# General-purpose scripting language
|
||||
brew "shivammathur/php/php-debug"
|
||||
# Find & fix known vulnerabilities in open-source dependencies
|
||||
brew "snyk/tap/snyk"
|
||||
# General-purpose scripting language
|
||||
brew "shivammathur/php/php@8.2", link: true
|
||||
# General-purpose scripting language
|
||||
brew "shivammathur/php/php@8.2-debug"
|
||||
# Command-line interface for 1Password
|
||||
cask "1password-cli"
|
||||
# AeroSpace is an i3-like tiling window manager for macOS
|
||||
cask "aerospace"
|
||||
# Text editor
|
||||
cask "coda"
|
||||
# Universal database tool and SQL client
|
||||
cask "dbeaver-community"
|
||||
# Database version management tool
|
||||
cask "dbngin"
|
||||
# App to build and share containerised applications and microservices
|
||||
cask "docker"
|
||||
# Calendar software
|
||||
cask "fantastical"
|
||||
cask "font-jetbrains-mono"
|
||||
cask "font-jetbrains-mono-nerd-font"
|
||||
cask "font-open-sans"
|
||||
@@ -326,8 +324,6 @@ cask "ngrok"
|
||||
cask "notunes"
|
||||
# Knowledge base that works on top of a local folder of plain text Markdown files
|
||||
cask "obsidian"
|
||||
# Display image info and preview unsupported formats in QuickLook
|
||||
cask "qlimagesize"
|
||||
# Quick Look generator for Markdown files
|
||||
cask "qlmarkdown"
|
||||
# Quick Look plugin for plaintext files without an extension
|
||||
|
||||
@@ -1,71 +1,192 @@
|
||||
"" Source your .vimrc
|
||||
"source ~/.vimrc
|
||||
source ~/.dotfiles/config/vim/vimrc
|
||||
|
||||
"" -- Suggested options --
|
||||
" Show a few lines of context around the cursor. Note that this makes the
|
||||
" text scroll if you mouse-click near the start or end of the window.
|
||||
set scrolloff=5
|
||||
" https://github.com/ville6000/dotfiles/blob/main/vimrc
|
||||
" To get a list of Actions run `:actionlist `
|
||||
let mapleader = "\<SPACE>"
|
||||
|
||||
set clipboard+=unnamed
|
||||
|
||||
set ideajoin
|
||||
set ideamarks
|
||||
set idearefactormode=normal
|
||||
|
||||
" Map esc to :noh
|
||||
map <esc> :noh<cr>
|
||||
|
||||
nmap <leader>j :tabnext<CR>
|
||||
nmap <leader>k :tabprevious<CR>
|
||||
|
||||
nmap <leader>l b #<CR>
|
||||
:nmap <c-o> <Action>(Back)
|
||||
:nmap <c-i> <Action>(Forward)
|
||||
:map <leader>H <Action>(MethodUp)
|
||||
:map <leader>L <Action>(MethodDown)
|
||||
:map <leader>o <Action>(FileStructurePopup)
|
||||
:map <leader>m <Action>(ShowIntentionActions)
|
||||
|
||||
nmap <leader>ss <Action>(GotoSymbol)
|
||||
|
||||
" File management and navigation commands
|
||||
nmap <leader>fl <Action>(RecentLocations)
|
||||
nmap <leader>fc <Action>(FindInPath)
|
||||
nmap <leader>fr <Action>(RecentFiles)
|
||||
nmap <leader>fe :NERDTreeToggle<CR>
|
||||
nmap <Leader>fu :action FindUsages<CR>
|
||||
nmap <Leader>ff :action GotoFile<CR>
|
||||
nmap <leader>fi <Action>(SelectIn)
|
||||
nmap <leader>fp <Action>(ReplaceInPath)
|
||||
nmap <leader>fo <Action>(OpenFile)
|
||||
nmap <leader>fs <Action>(ManageRecentProjects)
|
||||
nmap <leader>fw <Action>(CloseActiveTab)
|
||||
|
||||
nmap <Leader>sr :action RecentFiles<CR>
|
||||
nmap <Leader>se :action SearchEverywhere<CR>
|
||||
nmap <leader>st <Action>(TextSearchAction)
|
||||
nmap <leader>ss <Action>(GotoSymbol)
|
||||
nmap <leader>sa <Action>(GotoAction)
|
||||
|
||||
" Find text
|
||||
nmap <Leader>ft :action FindText<CR>
|
||||
|
||||
nmap <leader>dx <Action>(Debug)
|
||||
nmap <leader>dc <Action>(ContextDebug)
|
||||
nmap <leader>dv <Action>(ViewBreakpoints)
|
||||
nmap <leader>de <Action>(EditBreakpoint)
|
||||
nmap <leader>dm <Action>(XDebugger.MuteBreakpoints)
|
||||
nmap <leader>dt <Action>(ToggleLineBreakpoint)
|
||||
nmap <leader>dC <Action>(RunToCursor)
|
||||
nmap <leader>di <Action>(StepInto)
|
||||
nmap <leader>do <Action>(StepOver)
|
||||
nmap <leader>dr <Action>(Resume)
|
||||
nmap <leader>dR <Action>(EvaluateExpression)
|
||||
nmap <leader>dw <Action>(ActivateDebugToolWindow)
|
||||
|
||||
nmap <leader>gd <Action>(GotoDeclaration)
|
||||
nmap <leader>go <Action>(GotoSuperMethod)
|
||||
nmap <leader>gD <Action>(GotoTypeDeclaration)
|
||||
nmap <leader>gi <Action>(GotoImplementation)
|
||||
nmap <leader>gT <Action>(GotoTest)
|
||||
nmap <leader>gp :action VcsShowPrevChangeMarker<CR>
|
||||
nmap <leader>gn :action VcsShowNextChangeMarker<CR>
|
||||
|
||||
" Trigger tests
|
||||
map <Leader>tt <Action>(RiderUnitTestRunContextAction)
|
||||
nmap <Leader>cc :action CommentByLineComment<CR>
|
||||
|
||||
nmap <leader>lf <Action>(ReformatCode)
|
||||
nmap <leader>li <Action>(InspectCode)
|
||||
:map <leader>lr <Action>(RenameElement)
|
||||
nmap <leader>ll <Action>(Refactorings.QuickListPopupAction)
|
||||
|
||||
nmap <leader>Gc <Action>(Vcs.Show.Local.Changes)
|
||||
nmap <leader>Ga <Action>(Annotate)
|
||||
|
||||
:map <leader>gh <Action>(ShowHoverInfo)
|
||||
|
||||
nmap <Leader>vv :vsplit<CR>
|
||||
nmap <Leader>vs :split<CR>
|
||||
|
||||
nmap <Leader>ww :action HideAllWindows<CR>
|
||||
nmap <Leader>wt :action ActivateTerminalToolWindow<CR>
|
||||
nmap <Leader>wd :action ActivateDatabaseToolWindow<CR>
|
||||
|
||||
" Open project tree window
|
||||
nmap <Leader>t :action ActivateProjectToolWindow<CR>
|
||||
|
||||
nnoremap <leader>cf :action ReformatCode<CR>
|
||||
|
||||
" Bookmarks
|
||||
nmap <leader>bm <Action>(Bookmarks)
|
||||
nmap <leader>bs <Action>(ShowBookmarks)
|
||||
nmap <leader>bt <Action>(ActivateBookmarksToolWindow)
|
||||
nmap <leader>bb <Action>(ToggleBookmark)
|
||||
nmap <leader>be <Action>(EditBookmark)
|
||||
nmap <leader>bp <Action>(GotoPreviousBookmark)
|
||||
nmap <leader>bn <Action>(GotoNextBookmark)
|
||||
|
||||
nnoremap ge :action GotoNextError<CR>
|
||||
nnoremap gE :action GotoPreviousError<CR>
|
||||
|
||||
" Turn off Copilot
|
||||
nmap <leader>cp :action Copilot.Toggle<CR>
|
||||
|
||||
" Navigate back
|
||||
nmap <leader> <C-o>
|
||||
|
||||
" mark as a global mark/
|
||||
nnoremap ma mA
|
||||
nnoremap mb mB
|
||||
nnoremap mc mC
|
||||
nnoremap md mD
|
||||
nnoremap me mE
|
||||
nnoremap mf mG
|
||||
nnoremap mh mH
|
||||
nnoremap mi mI
|
||||
nnoremap mj mJ
|
||||
nnoremap mk mK
|
||||
nnoremap ml mL
|
||||
nnoremap mm mM
|
||||
nnoremap mn mN
|
||||
nnoremap mo mO
|
||||
nnoremap mp mP
|
||||
nnoremap mq mQ
|
||||
nnoremap mr mR
|
||||
nnoremap ms mS
|
||||
nnoremap mt mT
|
||||
nnoremap mu mU
|
||||
nnoremap mv mV
|
||||
nnoremap mw mW
|
||||
nnoremap mx mX
|
||||
nnoremap my mY
|
||||
nnoremap mz mZ
|
||||
|
||||
" go to global marks
|
||||
nnoremap 'a `A
|
||||
nnoremap 'b `B
|
||||
nnoremap 'c `C
|
||||
nnoremap 'd `D
|
||||
nnoremap 'e `E
|
||||
nnoremap 'f `G
|
||||
nnoremap 'h `H
|
||||
nnoremap 'i `I
|
||||
nnoremap 'j `J
|
||||
nnoremap 'k `K
|
||||
nnoremap 'l `L
|
||||
nnoremap 'm `M
|
||||
nnoremap 'n `N
|
||||
nnoremap 'o `O
|
||||
nnoremap 'p `P
|
||||
nnoremap 'q `Q
|
||||
nnoremap 'r `R
|
||||
nnoremap 's `S
|
||||
nnoremap 't `T
|
||||
nnoremap 'u `U
|
||||
nnoremap 'v `V
|
||||
nnoremap 'w `W
|
||||
nnoremap 'x `X
|
||||
nnoremap 'y `Y
|
||||
nnoremap 'z `Z
|
||||
|
||||
" ---
|
||||
|
||||
set cursorline " Highlight current line
|
||||
set nocompatible " disable compatibility mode with vi
|
||||
filetype off " disable filetype detection (but re-enable later, see below)
|
||||
set undolevels=1000 " Number of undo levels
|
||||
set backspace=indent,eol,start " Backspace behaviour
|
||||
|
||||
" Don't use Ex mode, use Q for formatting.
|
||||
map Q gq
|
||||
|
||||
|
||||
"" -- Map IDE actions to IdeaVim -- https://jb.gg/abva4t
|
||||
"" Map \r to the Reformat Code action
|
||||
"map \r <Action>(ReformatCode)
|
||||
|
||||
"" Map <leader>d to start debug
|
||||
"map <leader>d <Action>(Debug)
|
||||
|
||||
"" Map \b to toggle the breakpoint on the current line
|
||||
"map \b <Action>(ToggleLineBreakpoint)
|
||||
|
||||
|
||||
" Find more examples here: https://jb.gg/share-ideavimrc
|
||||
|
||||
" https://github.com/ville6000/dotfiles/blob/main/vimrc
|
||||
set nocompatible " disable compatibility mode with vi
|
||||
filetype off " disable filetype detection (but re-enable later, see below)
|
||||
|
||||
set encoding=utf-8 " UTF-8
|
||||
set number " Show line numbers
|
||||
set laststatus=2 " Always show statusline (even with only single window)
|
||||
set showmatch " Highlight matching brace
|
||||
set visualbell " Use visual bell (no beeping)
|
||||
set hlsearch " Highlight all search results
|
||||
set smartcase " Enable smart-case search
|
||||
set ignorecase " Always case-insensitive
|
||||
set incsearch " Searches for strings incrementally
|
||||
set cindent " Use 'C' style program indenting
|
||||
set expandtab " Use spaces instead of tabs
|
||||
set shiftwidth=4 " Number of auto-indent spaces
|
||||
set smartindent " Enable smart-indent
|
||||
set smarttab " Enable smart-tabs
|
||||
set softtabstop=4 " Number of spaces per Tab
|
||||
set ruler " Show row and column ruler information
|
||||
set cursorline " Highlight current line
|
||||
set undolevels=1000 " Number of undo levels
|
||||
set backspace=indent,eol,start " Backspace behaviour
|
||||
set so=5
|
||||
|
||||
" move vertically by visual line (don't skip wrapped lines)
|
||||
nmap j gj
|
||||
nmap k gk
|
||||
|
||||
syntax enable
|
||||
filetype plugin indent on
|
||||
|
||||
call plug#begin('~/.vim/plugged')
|
||||
|
||||
Plug 'ayu-theme/ayu-vim'
|
||||
Plug 'ctrlpvim/ctrlp.vim'
|
||||
|
||||
call plug#end()
|
||||
" call plug#begin('~/.config/vim/plugged')
|
||||
" Plug 'ayu-theme/ayu-vim'
|
||||
" call plug#end()
|
||||
|
||||
set termguicolors
|
||||
set background=dark
|
||||
let ayucolor="dark"
|
||||
colorscheme ayu
|
||||
|
||||
if has('gui_running')
|
||||
set macligatures
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
|
||||
# Defaults
|
||||
[ -z "$DOTFILES" ] && export DOTFILES="$HOME/.dotfiles"
|
||||
export DOTFILES_CURRENT_SHELL=$(basename "$SHELL")
|
||||
DOTFILES_CURRENT_SHELL=$(basename "$SHELL")
|
||||
export DOTFILES_CURRENT_SHELL
|
||||
|
||||
# Enable verbosity with VERBOSE=1
|
||||
VERBOSE="${VERBOSE:-0}"
|
||||
|
||||
96
config/skhd/skhdrc
Normal file
96
config/skhd/skhdrc
Normal file
@@ -0,0 +1,96 @@
|
||||
# skhd configuration file
|
||||
# https://github.com/koekeishiya/skhd
|
||||
|
||||
# Reserved keys
|
||||
# ---------------------------
|
||||
# shift + cmd
|
||||
# m = restart yabai
|
||||
# q = quit yabai
|
||||
# <cr> = open wezterm
|
||||
# alt
|
||||
# h = focus west
|
||||
# j = focus south
|
||||
# k = focus north
|
||||
# l = focus east
|
||||
# e = toggle split
|
||||
# y = toggle float, center window medium size
|
||||
# u = move window to left
|
||||
# i = move window to center
|
||||
# o = move window to right
|
||||
# ctrl + alt
|
||||
# h = resize window left
|
||||
# j = resize window down
|
||||
# k = resize window up
|
||||
# l = resize window right
|
||||
# alt + shift
|
||||
# t = toggle float, center window medium size
|
||||
# y = toggle float, center window large size
|
||||
# h = swap window left
|
||||
# j = swap window down
|
||||
# k = swap window up
|
||||
# l = swap window right
|
||||
|
||||
# Control applications
|
||||
## Yabai
|
||||
shift + cmd - m : yabai --restart-service # restart yabai
|
||||
shift + cmd - q : yabai --quit # quit yabai
|
||||
|
||||
## wezterm
|
||||
shift + cmd - return : wezterm
|
||||
|
||||
# Floating windows
|
||||
|
||||
# float / unfloat window and center on screen medium size
|
||||
alt - t : yabai -m window --toggle float;\
|
||||
yabai -m window --grid 9:16:1:1:14:7
|
||||
|
||||
# float / unfloat window and center on screen large size
|
||||
shift + alt - t : yabai -m window --toggle float;\
|
||||
yabai -m window --grid 90:160:5:5:150:80
|
||||
|
||||
# make floating window fill screen
|
||||
alt - y : yabai -m window --toggle float;\
|
||||
yabai -m window --grid 1:1:0:0:1:1
|
||||
|
||||
# toggle float window and center on screen medium size
|
||||
shift + alt - y : yabai -m window --toggle float \
|
||||
&& yabai -m window --resize \
|
||||
abs:$(($(yabai -m query --displays --display | jq .frame.w) / 2)):$(($(yabai -m query --displays --display | jq .frame.h) * 4 / 5)) \
|
||||
&& yabai -m window --move \
|
||||
abs:$(($(yabai -m query --displays --display | jq .frame.x) + $(($(yabai -m query --displays --display | jq .frame.w) / 4)))):$(($(yabai -m query --displays --display | jq .frame.y) + $(($(yabai -m query --displays --display | jq .frame.h) / 10))))
|
||||
|
||||
# toggle window split type
|
||||
alt - e : yabai -m window --toggle split
|
||||
|
||||
|
||||
# Focusing, resizing and moving windows
|
||||
|
||||
## focus window
|
||||
alt - h : yabai -m window --focus west
|
||||
alt - j : yabai -m window --focus south
|
||||
alt - k : yabai -m window --focus north
|
||||
alt - l : yabai -m window --focus east
|
||||
|
||||
## move windows to predefined places
|
||||
alt - y : yabai -m window --grid 1:4:1:0:2:1 # 2/4 centered
|
||||
alt - u : yabai -m window --grid 1:3:0:0:1:1 # 1/3 left
|
||||
alt - i : yabai -m window --grid 1:3:1:0:1:1 # 1/3 center
|
||||
alt - o : yabai -m window --grid 1:3:2:0:1:1 # 1/3 right
|
||||
ctrl + alt - h : yabai -m window --grid 1:2:0:0:1:1 # 1/2 left
|
||||
ctrl + alt - l : yabai -m window --grid 1:2:1:0:1:1 # 1/2 right
|
||||
|
||||
## swap windows
|
||||
shift + alt - h : yabai -m window --swap west
|
||||
shift + alt - j : yabai -m window --swap south
|
||||
shift + alt - k : yabai -m window --swap north
|
||||
shift + alt - l : yabai -m window --swap east
|
||||
|
||||
## resize windows
|
||||
ctrl + alt - h : yabai -m window --resize left:-50:0; \
|
||||
yabai -m window --resize right:-50:0
|
||||
ctrl + alt - j : yabai -m window --resize bottom:0:50; \
|
||||
yabai -m window --resize top:0:50
|
||||
ctrl + alt - k : yabai -m window --resize top:0:-50; \
|
||||
yabai -m window --resize bottom:0:-50
|
||||
ctrl + alt - l : yabai -m window --resize right:50:0; \
|
||||
yabai -m window --resize left:50:0
|
||||
@@ -12,5 +12,9 @@
|
||||
# License: MIT
|
||||
|
||||
THEME_FILE="$HOME/.local/state/tmux/tmux-dark-notify-theme.conf"
|
||||
THEME_BACKUP="$HOME/.dotfiles/config/tmux/theme-dark.conf"
|
||||
|
||||
# If THEME_FILE doesn't exist, link $THEME_BACKUP to it
|
||||
[[ ! -e $THEME_FILE ]] && ln -s "$THEME_BACKUP" "$THEME_FILE"
|
||||
|
||||
[[ -e $THEME_FILE ]] && tmux source-file "$THEME_FILE"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Contains configuration from the following sources:
|
||||
# - https://tmuxguide.readthedocs.io/en/latest/tmux/tmux.html
|
||||
# - https://github.com/dreamsofcode-io/tmux/blob/main/tmux.conf
|
||||
|
||||
#
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Settings │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
@@ -16,13 +16,13 @@
|
||||
# -u : Unset the specified option.
|
||||
|
||||
set -g default-terminal "tmux-256color" # Set default terminal to 256 colors
|
||||
set -g detach-on-destroy off # don't detach tmux when killing a session
|
||||
set -g display-time 0 # Hide clock
|
||||
set -g focus-events on # Focus events enabled for terminals that support them
|
||||
set -g mouse on # Mouse support
|
||||
set -g set-titles on # Allow tmux to set the terminal title
|
||||
set -g status on # Setting status on
|
||||
set -g status-keys vi # vi keys to move between panes
|
||||
set -g detach-on-destroy off # don't detach tmux when killing a session
|
||||
set -g display-time 0 # Hide clock
|
||||
set -g focus-events on # Focus events enabled for terminals that support them
|
||||
set -g mouse on # Mouse support
|
||||
set -g set-titles on # Allow tmux to set the terminal title
|
||||
set -g status on # Setting status on
|
||||
set -g status-keys vi # vi keys to move between panes
|
||||
|
||||
# Activity Monitoring (for when something happens in another pain)
|
||||
set -g monitor-activity on
|
||||
@@ -43,7 +43,6 @@ set -g renumber-windows on
|
||||
# Activate with `DEBUG=1 tmux -vv`
|
||||
if-shell '[ "$DEBUG" = "1" ]' 'set -g debug-file ~/.cache/tmux-debug.log'
|
||||
|
||||
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Theme │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
@@ -63,6 +62,7 @@ set -g window-status-format ' #I:#W '
|
||||
# │ Bindings │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
# bind flags
|
||||
# -N = Note / description of the command
|
||||
# -r = repeatable, only needs prefix once
|
||||
# -n = doesn't need prefix
|
||||
# -t = binds to a certain key-table (root, copy-mode, prefix, etc.)
|
||||
@@ -73,10 +73,10 @@ set -g prefix C-Space
|
||||
bind C-Space send-prefix
|
||||
|
||||
# Use Alt-arrow keys without prefix key to switch panes
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
|
||||
# Easier switching between window
|
||||
bind C-n next-window
|
||||
@@ -95,6 +95,11 @@ bind Escape copy-mode
|
||||
unbind p
|
||||
bind p paste-buffer
|
||||
|
||||
# tms bindings
|
||||
bind -N "tms" t display-popup -E "tms"
|
||||
bind -N "tms windows" C-w display-popup -E "tms windows"
|
||||
bind -N "tms switch" C-s display-popup -E "tms switch"
|
||||
bind -N "tms refresh" C-r display-popup -E "tms refresh"
|
||||
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Plugins │
|
||||
@@ -120,7 +125,7 @@ set -g @tmux_window_name_use_tilde "True"
|
||||
|
||||
# https://github.com/erikw/tmux-dark-notify
|
||||
set -g @dark-notify-theme-path-light "$HOME/.dotfiles/config/tmux/theme-light.conf"
|
||||
set -g @dark-notify-theme-path-dark "$HOME/.dotfiles/config/tmux/theme-dark.conf"
|
||||
set -g @dark-notify-theme-path-dark "$HOME/.dotfiles/config/tmux/theme-dark.conf"
|
||||
|
||||
## https://github.com/MunifTanjim/tmux-mode-indicator
|
||||
set -g @mode_indicator_copy_mode_style 'bg=default,fg=yellow'
|
||||
@@ -132,24 +137,26 @@ set -g @mode_indicator_sync_mode_style 'bg=default,fg=red'
|
||||
set -g @fzf-url-bind 'u'
|
||||
set -g @fzf-url-history-limit '2000'
|
||||
|
||||
# ── Sourcing the plugins ──────────────────────────────────────────────
|
||||
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-sensible/sensible.tmux"
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-window-name/tmux_window_name.tmux"
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-mode-indicator/mode_indicator.tmux"
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-suspend/suspend.tmux"
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-continuum/continuum.tmux"
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-sessionist/sessionist.tmux"
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-yank/yank.tmux"
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-current-pane-hostname/current_pane_hostname.tmux"
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-dark-notify/main.tmux"
|
||||
run-shell "$HOME/.config/tmux/plugins/tmux-fzf-url/fzf-url.tmux"
|
||||
# ── Own scripts ───────────────────────────────────────────────────────
|
||||
|
||||
# If we started tmux with a session name, rename it.
|
||||
run-shell "$HOME/.dotfiles/config/tmux/rename-session.sh"
|
||||
|
||||
# Load theme based on tmux-dark-notify state.
|
||||
# This script helps states where dark-notify is not available,
|
||||
# and we want to have light or dark state constantly available.
|
||||
run-shell "$HOME/.config/tmux/theme-activate.sh"
|
||||
run-shell "$HOME/.dotfiles/config/tmux/theme-activate.sh"
|
||||
|
||||
# If we started tmux with a session name, rename it.
|
||||
run-shell "$HOME/.config/tmux/rename-session.sh"
|
||||
# ── Sourcing the plugins ──────────────────────────────────────────────
|
||||
|
||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sensible/sensible.tmux"
|
||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-window-name/tmux_window_name.tmux"
|
||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-mode-indicator/mode_indicator.tmux"
|
||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-suspend/suspend.tmux"
|
||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux"
|
||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/sessionist.tmux"
|
||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-yank/yank.tmux"
|
||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-current-pane-hostname/current_pane_hostname.tmux"
|
||||
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-fzf-url/fzf-url.tmux"
|
||||
|
||||
# run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-dark-notify/main.tmux"
|
||||
|
||||
1
config/vim/.gitignore
vendored
Normal file
1
config/vim/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
plugged
|
||||
2863
config/vim/autoload/plug.vim
Normal file
2863
config/vim/autoload/plug.vim
Normal file
File diff suppressed because it is too large
Load Diff
748
config/vim/vimrc
Normal file
748
config/vim/vimrc
Normal file
@@ -0,0 +1,748 @@
|
||||
" This is my vimrc
|
||||
" There are many like it but this will eventually be mine
|
||||
"
|
||||
" vim: ts=2 sw=2 expandtab
|
||||
" vint: +ProhibitAbbreviationOption +ProhibitSetNoCompatible
|
||||
"*****************************************************************************
|
||||
"" Vim-Plug core
|
||||
"*****************************************************************************
|
||||
let vimplug_exists=expand('$HOME/.config/autoload/plug.vim')
|
||||
if has('win32') && !has('win64')
|
||||
let curl_exists=expand('C:\Windows\Sysnative\curl.exe')
|
||||
else
|
||||
let curl_exists=expand('curl')
|
||||
endif
|
||||
|
||||
let g:vim_bootstrap_langs = "go,html,javascript,lua,php,python,typescript"
|
||||
let g:vim_bootstrap_editor = "vim" " nvim or vim
|
||||
let g:vim_bootstrap_theme = "iceberg"
|
||||
let g:vim_bootstrap_frams = "vuejs"
|
||||
|
||||
if !filereadable(vimplug_exists)
|
||||
if !executable(curl_exists)
|
||||
echoerr "You have to install curl or first install vim-plug yourself!"
|
||||
execute "q!"
|
||||
endif
|
||||
echo "Installing Vim-Plug..."
|
||||
echo ""
|
||||
silent exec "!"curl_exists" -fLo " . shellescape(vimplug_exists) . " --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"
|
||||
let g:not_finish_vimplug = "yes"
|
||||
|
||||
autocmd VimEnter * PlugInstall
|
||||
endif
|
||||
|
||||
" {{{
|
||||
call plug#begin(expand('$HOME/.config/vim/plugged'))
|
||||
|
||||
" coc.nvim - Intellisense engine
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
" editorconfig-vim - EditorConfig plugin
|
||||
Plug 'editorconfig/editorconfig-vim'
|
||||
" nerdtree - File system explorer
|
||||
Plug 'scrooloose/nerdtree'
|
||||
Plug 'jistr/vim-nerdtree-tabs'
|
||||
" vim-commentary - Commenting plugin
|
||||
Plug 'tpope/vim-commentary'
|
||||
" vim-fugitive - Git wrapper
|
||||
Plug 'tpope/vim-fugitive'
|
||||
" vim-gitgutter - Git diff in the gutter
|
||||
Plug 'airblade/vim-gitgutter'
|
||||
" grep.vim - Grep plugin
|
||||
Plug 'vim-scripts/grep.vim'
|
||||
" CSApprox - Approximate color scheme
|
||||
Plug 'vim-scripts/CSApprox'
|
||||
" tagbar - Tag list
|
||||
Plug 'majutsushi/tagbar'
|
||||
" ale - Asynchronous Lint Engine
|
||||
Plug 'dense-analysis/ale'
|
||||
" indentLine - Show indent lines
|
||||
Plug 'Yggdroot/indentLine'
|
||||
" vim-bootstrap-updater - Update vim-bootstrap
|
||||
Plug 'editor-bootstrap/vim-bootstrap-updater'
|
||||
" vim-rhubarb - Fugitive extension
|
||||
Plug 'tpope/vim-rhubarb' " required by fugitive to :GBrowse
|
||||
" ctrlp.vim - Fuzzy file finder
|
||||
Plug 'ctrlpvim/ctrlp.vim'
|
||||
|
||||
" vim-airline
|
||||
Plug 'vim-airline/vim-airline'
|
||||
|
||||
" iceberg.vim - Iceberg color scheme
|
||||
Plug 'cocopon/iceberg.vim'
|
||||
|
||||
" fzf.vim - Fuzzy finder
|
||||
if isdirectory('~/.config/vim/extra/fzf')
|
||||
Plug '~/.config/vim/extra/fzf' | Plug 'junegunn/fzf.vim'
|
||||
else
|
||||
Plug 'junegunn/fzf', { 'dir': '~/.config/vim/extra/fzf', 'do': './install --bin' }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
endif
|
||||
|
||||
let g:make = 'gmake'
|
||||
if exists('make')
|
||||
let g:make = 'make'
|
||||
endif
|
||||
|
||||
" vim-wordy - Uncover usage problems in your writing
|
||||
Plug 'preservim/vim-wordy'
|
||||
|
||||
" vimproc.vim - Asynchronous execution
|
||||
Plug 'Shougo/vimproc.vim', {'do': g:make}
|
||||
|
||||
" Vim-Session
|
||||
Plug 'xolox/vim-misc'
|
||||
Plug 'xolox/vim-session'
|
||||
|
||||
" go
|
||||
Plug 'fatih/vim-go', {'do': ':GoInstallBinaries'}
|
||||
|
||||
" html
|
||||
Plug 'hail2u/vim-css3-syntax'
|
||||
Plug 'gko/vim-coloresque'
|
||||
Plug 'tpope/vim-haml'
|
||||
Plug 'mattn/emmet-vim'
|
||||
|
||||
" javascript
|
||||
Plug 'jelera/vim-javascript-syntax'
|
||||
|
||||
" lua
|
||||
Plug 'xolox/vim-lua-ftplugin'
|
||||
Plug 'xolox/vim-lua-inspect'
|
||||
|
||||
" php
|
||||
Plug 'phpactor/phpactor', {'for': 'php', 'do': 'composer install --no-dev -o'}
|
||||
Plug 'stephpy/vim-php-cs-fixer'
|
||||
|
||||
" python
|
||||
Plug 'davidhalter/jedi-vim'
|
||||
Plug 'raimon49/requirements.txt.vim', {'for': 'requirements'}
|
||||
|
||||
" typescript
|
||||
Plug 'leafgarland/typescript-vim'
|
||||
Plug 'HerringtonDarkholme/yats.vim'
|
||||
|
||||
" vimrc
|
||||
Plug 'Vimjas/vint'
|
||||
|
||||
" vuejs
|
||||
Plug 'posva/vim-vue'
|
||||
Plug 'leafOfTree/vim-vue-plugin'
|
||||
|
||||
call plug#end()
|
||||
" }}}
|
||||
|
||||
let mapleader=' ' " Map leader to <space>
|
||||
filetype off " disable filetype detection (but re-enable later, see below)
|
||||
|
||||
" find matching tags in html/xml documents using matchit
|
||||
filetype plugin on
|
||||
packadd! matchit
|
||||
" disable super buggy netrw
|
||||
let g:loaded_netrw=1
|
||||
let g:netrw_loaded_netrwPlugin=1
|
||||
" show JSDoc highlight colors
|
||||
let g:javascript_plugin_jsdoc=1
|
||||
|
||||
set backspace=indent,eol,start " Backspace behavior
|
||||
set cindent " Use 'C' style program indenting
|
||||
set cursorline " Highlight current line
|
||||
set encoding=utf-8 " UTF-8
|
||||
set expandtab " Use spaces instead of tabs
|
||||
set fileformats=unix,dos,mac " File formats
|
||||
set foldmethod=indent " Fold based on indent
|
||||
set foldlevel=99 " Open all folds
|
||||
set guioptions=egmrti " GUI options
|
||||
set hidden " Enable hidden buffers
|
||||
set ignorecase " Always case-insensitive
|
||||
set incsearch " Searches for strings incrementally
|
||||
set laststatus=2 " Always show statusline (even with only single window)
|
||||
set linespace=3 " Set line spacing
|
||||
set list " Show invisible characters
|
||||
set listchars=tab:⌴\ ,trail:◼,nbsp:•,extends:…,precedes:… " Invisible characters
|
||||
set modeline " Enable modelines
|
||||
set modelines=3 " Number of lines to check for modelines
|
||||
set mouse=a " Enable mouse support
|
||||
set mousemodel=popup " Enable mouse support
|
||||
set nobackup " Disable backup files
|
||||
set nocompatible " disable compatibility mode with vi
|
||||
set nowritebackup " Disable backup files
|
||||
set number " Show line numbers
|
||||
set relativenumber " Show relative line numbers
|
||||
set ruler " Show row and column ruler information
|
||||
set scrolloff=8 " Minimum number of lines to keep above and below the cursor
|
||||
set shiftwidth=4 " Number of auto-indent spaces
|
||||
set shortmess+=A " Don't show autocommand messages
|
||||
set shortmess+=F " Avoid showing the "file-info" message
|
||||
set shortmess+=I " Don't show intro message
|
||||
set shortmess+=O " Avoid showing the "file-read" message
|
||||
set shortmess+=O " Don't show overlength messages
|
||||
set shortmess+=T " Don't show title messages
|
||||
set shortmess+=W " Don't show "written" messages
|
||||
set shortmess+=a " Avoid showing the "ATTENTION" message
|
||||
set shortmess+=c " Avoid showing the "ins-completion-menu" message
|
||||
set shortmess+=c " Don't pass messages to |ins-completion-menu|
|
||||
set shortmess+=o " Avoid showing the "overlength" message
|
||||
set shortmess+=t " Avoid showing the "trailing whitespace" message
|
||||
set showcmd " Show command in status line
|
||||
set showmatch " Highlight matching brace
|
||||
set signcolumn=yes " Show sign column
|
||||
set smartcase " Enable smart-case search
|
||||
set smartindent " Enable smart-indent
|
||||
set smarttab " Enable smart-tabs
|
||||
set softtabstop=4 " Number of spaces per Tab
|
||||
set spelllang=fi,en " Set the spell language
|
||||
set spellsuggest=double " Suggest the first word when spell checking
|
||||
set t_Co=256 " 256 colors
|
||||
set termguicolors " Enable 24-bit RGB color in the terminal
|
||||
set timeoutlen=500 " By default timeoutlen=1000 (ms)
|
||||
set ttimeoutlen=0 " By default ttimeoutlen=-1 (ms)
|
||||
set undolevels=1000 " Number of undo levels
|
||||
set visualbell " Use visual bell (no beeping)
|
||||
set wildmenu " Enable wildmenu
|
||||
set wildmode=longest,list:longest " Command-line completion mode
|
||||
set wrap " Wrap lines
|
||||
set wrapscan " Searches wrap around the end of the file
|
||||
|
||||
" Ignore these files in wildmenu
|
||||
set wildignore+=*.o,*.obj,.git,*.rbc,*.pyc,__pycache__,vendor
|
||||
|
||||
colorscheme iceberg " Set the color scheme
|
||||
filetype plugin indent on " enable filetype detection, plugins and indenting
|
||||
|
||||
" Set the shell
|
||||
if exists('$SHELL')
|
||||
set shell=$SHELL
|
||||
else
|
||||
set shell=/bin/sh
|
||||
endif
|
||||
|
||||
" COC
|
||||
let g:coc_global_extensions = [
|
||||
\ '@yaegassy/coc-intelephense',
|
||||
\ '@yaegassy/coc-laravel',
|
||||
\ '@yaegassy/coc-phpstan',
|
||||
\ 'coc-blade',
|
||||
\ 'coc-git',
|
||||
\ 'coc-json',
|
||||
\ 'coc-php-cs-fixer',
|
||||
\ 'coc-phpls',
|
||||
\ 'coc-prettier',
|
||||
\ 'coc-sh',
|
||||
\ 'coc-toml',
|
||||
\ 'coc-tsserver',
|
||||
\ 'coc-vimlsp',
|
||||
\ 'coc-yaml',
|
||||
\ 'coc-yank',
|
||||
\ 'coc-marketplace'
|
||||
\ ]
|
||||
|
||||
" session management
|
||||
let g:session_directory = "~/.local/state/vim/session"
|
||||
let g:session_autoload = "yes"
|
||||
let g:session_autosave = "yes"
|
||||
let g:session_command_aliases = 1
|
||||
|
||||
" GUI settings
|
||||
if has("gui_running")
|
||||
if has("gui_mac") || has("gui_macvim")
|
||||
set macligatures
|
||||
set guifont=JetBrains\ Mono:h14
|
||||
set transparency=7
|
||||
endif
|
||||
else
|
||||
let g:CSApprox_loaded = 1
|
||||
|
||||
" IndentLine
|
||||
let g:indentLine_enabled = 1
|
||||
let g:indentLine_concealcursor = ''
|
||||
let g:indentLine_char = '┆'
|
||||
let g:indentLine_faster = 1
|
||||
|
||||
if $COLORTERM == 'gnome-terminal'
|
||||
set term=gnome-256color
|
||||
else
|
||||
if $TERM == 'xterm'
|
||||
set term=xterm-256color
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
" if terminal supports 256 colors, disable t_ut
|
||||
if &term =~ '256color'
|
||||
set t_ut=
|
||||
endif
|
||||
|
||||
" set the title of the terminal to the file name
|
||||
set title
|
||||
set titleold="Terminal"
|
||||
set titlestring=%F
|
||||
|
||||
syntax on
|
||||
|
||||
" set statusline to show the file name
|
||||
" set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L)|
|
||||
|
||||
" Search mappings: These will make it so that going to the next one in a
|
||||
" search will center on the line it's found in.
|
||||
nnoremap n nzzzv
|
||||
nnoremap N Nzzzv
|
||||
|
||||
" if fugitive is installed, add the statusline
|
||||
if exists("*fugitive#statusline")
|
||||
set statusline+=%{fugitive#statusline()}
|
||||
endif
|
||||
|
||||
" vim-airline
|
||||
let g:airline#extensions#ale#enabled = 1
|
||||
let g:airline#extensions#branch#enabled = 1
|
||||
let g:airline#extensions#tabline#enabled = 1
|
||||
let g:airline#extensions#tagbar#enabled = 1
|
||||
let g:airline_powerline_fonts = 1
|
||||
let g:airline_skip_empty_sections = 1
|
||||
let g:airline_theme = 'iceberg'
|
||||
|
||||
"*****************************************************************************
|
||||
"" Abbreviations
|
||||
"*****************************************************************************
|
||||
"" no one is really happy until you have this shortcuts
|
||||
cnoreabbrev W! w! " force write
|
||||
cnoreabbrev Q! q! " force quit
|
||||
cnoreabbrev Qall! qall! " force quit all
|
||||
cnoreabbrev Wq wq " write and quit
|
||||
cnoreabbrev Wa wa " write all
|
||||
cnoreabbrev wQ wq " write and quit
|
||||
cnoreabbrev WQ wq " write and quit
|
||||
cnoreabbrev W w " write
|
||||
cnoreabbrev Q q " quit
|
||||
cnoreabbrev Qall qall " quit all
|
||||
|
||||
" NERDTree configuration
|
||||
let g:NERDTreeChDirMode=2
|
||||
let g:NERDTreeIgnore=['node_modules', 'vendor', '\.rbc$', '\~$', '\.pyc$', '\.db$', '\.sqlite$', '__pycache__']
|
||||
let g:NERDTreeSortOrder=['^__\.py$', '\/$', '*', '\.swp$', '\.bak$', '\~$']
|
||||
let g:NERDTreeShowBookmarks=1
|
||||
let g:nerdtree_tabs_focus_on_files=1
|
||||
let g:NERDTreeMapOpenInTabSilent = '<RightMouse>'
|
||||
let g:NERDTreeWinSize = 50
|
||||
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.db,*.sqlite,*node_modules/,*vendor/
|
||||
nnoremap <silent> <F2> :NERDTreeFind<CR>
|
||||
nnoremap <silent> <leader>t :NERDTreeToggle<CR>
|
||||
|
||||
" grep.vim configuration
|
||||
nnoremap <silent> <leader>f :Rgrep<CR>
|
||||
let Grep_Default_Options = '-IR'
|
||||
let Grep_Skip_Files = '*.log *.db .DS_Store'
|
||||
let Grep_Skip_Dirs = '.git node_modules vendor plugged'
|
||||
|
||||
nnoremap <silent> <leader>sh :terminal<CR> " open a new terminal
|
||||
|
||||
" CoC (code suggestions, diagnostics and refactoring)
|
||||
" find or update definitions
|
||||
nmap <silent> gd <Plug>(coc-definition)
|
||||
nmap <silent> gy <Plug>(coc-type-definition)
|
||||
nmap <silent> gi <Plug>(coc-implementation)
|
||||
nmap <silent> gr <Plug>(coc-references)
|
||||
nmap <silent> gn <Plug>(coc-rename)
|
||||
" autoformat code based on linter
|
||||
function! s:auto_format()
|
||||
" eslint is no longer exposed as a proper linter to coc
|
||||
if index(['js', 'jsx', 'javascript', 'javascriptreact', 'ts', 'typescript', 'typescriptcommon', 'typescriptreact'], &filetype) >= 0
|
||||
silent! CocCommand eslint.executeAutofix
|
||||
else
|
||||
call CocActionAsync('format')
|
||||
endif
|
||||
endfunction
|
||||
noremap <silent> <leader>f :call <SID>auto_format()<cr>
|
||||
" jump to diagnostics or the documentation
|
||||
nmap <silent> <C-k> <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> <C-j> <Plug>(coc-diagnostic-next)
|
||||
function! s:show_documentation()
|
||||
if index(['vim','help'], &filetype) >= 0
|
||||
execute 'h '.expand('<cword>')
|
||||
else
|
||||
call CocActionAsync('doHover')
|
||||
endif
|
||||
endfunction
|
||||
noremap <silent> K :call <SID>show_documentation()<cr>
|
||||
" scroll popup windows
|
||||
function s:find_cursor_popup(...)
|
||||
let radius = 50
|
||||
let srow = screenrow()
|
||||
let scol = screencol()
|
||||
for r in range(srow - radius, srow + radius)
|
||||
for c in range(scol - radius, scol + radius)
|
||||
let winid = popup_locate(r, c)
|
||||
if winid != 0
|
||||
return winid
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
return 0
|
||||
endfunction
|
||||
function s:scroll_cursor_popup(down)
|
||||
let winid = <SID>find_cursor_popup()
|
||||
if winid == 0
|
||||
return 0
|
||||
endif
|
||||
let pp = popup_getpos(winid)
|
||||
call popup_setoptions(winid, {'firstline': pp.firstline + a:down})
|
||||
return 1
|
||||
endfunction
|
||||
imap <expr> <C-f> <SID>scroll_cursor_popup(1) ? '' : ''
|
||||
imap <expr> <C-b> <SID>scroll_cursor_popup(-1) ? '' : ''
|
||||
" expand snippets, completion or copilot with tab key based on selection
|
||||
imap <silent> <S-Tab> <Nop>
|
||||
let g:copilot_no_tab_map = v:true
|
||||
inoremap <silent><expr> <Tab>
|
||||
\ coc#pum#has_item_selected() ? coc#_select_confirm() :
|
||||
\ exists('b:_copilot.suggestions') ? copilot#Accept("\<CR>") : ""
|
||||
" automatically fix diagnostics and/or refactor
|
||||
noremap <silent> <leader>d :CocList diagnostics<cr>
|
||||
nmap <leader>c <Plug>(coc-codeaction)
|
||||
xmap <leader>c <Plug>(coc-codeaction-selected)
|
||||
|
||||
let g:wordy#ring = [
|
||||
\ 'weak',
|
||||
\ ['being', 'passive-voice', ],
|
||||
\ 'business-jargon',
|
||||
\ 'weasel',
|
||||
\ 'puffery',
|
||||
\ ['problematic', 'redundant', ],
|
||||
\ ['colloquial', 'idiomatic', 'similies', ],
|
||||
\ 'art-jargon',
|
||||
\ ['contractions', 'opinion', 'vague-time', 'said-synonyms', ],
|
||||
\ 'adjectives',
|
||||
\ 'adverbs',
|
||||
\ ]
|
||||
|
||||
"*****************************************************************************
|
||||
"" Commands
|
||||
"*****************************************************************************
|
||||
|
||||
" remove trailing whitespaces
|
||||
command! FixWhitespace :%s/\s\+$//e
|
||||
|
||||
"*****************************************************************************
|
||||
"" Functions
|
||||
"*****************************************************************************
|
||||
|
||||
" setup wrapping function
|
||||
if !exists('*s:setupWrapping')
|
||||
function s:setupWrapping()
|
||||
set wrap
|
||||
set wm=2
|
||||
set textwidth=79
|
||||
endfunction
|
||||
endif
|
||||
|
||||
function! ChangeColorScheme(channel, msg)
|
||||
let time = trim(a:msg)
|
||||
if time ==# "Dark"
|
||||
set background="dark"
|
||||
else
|
||||
set background="light"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! CheckStatus(timer)
|
||||
if executable("defaults")
|
||||
let job = job_start(
|
||||
\ ["defaults", "read", "-g", "AppleInterfaceStyle"],
|
||||
\ {"out_cb": "ChangeColorScheme"}
|
||||
\ )
|
||||
else
|
||||
set background="dark"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! AutoDarkModeSetup()
|
||||
let timer = timer_start(3000, 'CheckStatus', {'repeat': -1})
|
||||
call CheckStatus(timer) " Initial call to setup the theme
|
||||
endfunction
|
||||
|
||||
call AutoDarkModeSetup()
|
||||
|
||||
"*****************************************************************************
|
||||
"" Autocmd Rules
|
||||
"*****************************************************************************
|
||||
|
||||
"" The PC is fast enough, do syntax highlight
|
||||
"" syncing from start 6nless 200 lines
|
||||
augroup vimrc-sync-fromstart
|
||||
autocmd!
|
||||
autocmd BufEnter * :syntax sync maxlines=600
|
||||
augroup END
|
||||
|
||||
"" txt
|
||||
augroup vimrc-wrapping
|
||||
autocmd!
|
||||
autocmd BufRead,BufNewFile *.txt call s:setupWrapping()
|
||||
augroup END
|
||||
|
||||
"" make/cmake
|
||||
augroup vimrc-make-cmake
|
||||
autocmd!
|
||||
autocmd FileType make setlocal noexpandtab
|
||||
autocmd BufNewFile,BufRead CMakeLists.txt setlocal filetype=cmake
|
||||
augroup END
|
||||
|
||||
set autoread
|
||||
|
||||
"*****************************************************************************
|
||||
"" Mappings
|
||||
"*****************************************************************************
|
||||
|
||||
noremap <C-s> :w<CR> " save buffer
|
||||
|
||||
"" Split
|
||||
noremap <Leader>h :<C-u>split<CR> " horizontal split
|
||||
noremap <Leader>v :<C-u>vsplit<CR> " vertical split
|
||||
|
||||
" Git
|
||||
noremap <Leader>ga :Gwrite<CR>
|
||||
noremap <Leader>gc :Git commit --verbose<CR>
|
||||
noremap <Leader>gsh :Git push<CR>
|
||||
noremap <Leader>gll :Git pull<CR>
|
||||
noremap <Leader>gs :Git<CR>
|
||||
noremap <Leader>gb :Git blame<CR>
|
||||
noremap <Leader>gd :Gvdiffsplit<CR>
|
||||
noremap <Leader>gr :GRemove<CR>
|
||||
|
||||
" session management
|
||||
nnoremap <leader>so :OpenSession<Space>
|
||||
nnoremap <leader>ss :SaveSession<Space>
|
||||
nnoremap <leader>sd :DeleteSession<CR>
|
||||
nnoremap <leader>sc :CloseSession<CR>
|
||||
|
||||
" Tabs
|
||||
nnoremap <Tab> gt " next tab
|
||||
nnoremap <S-Tab> gT " previous tab
|
||||
nnoremap <silent> <S-t> :tabnew<CR> " new tab
|
||||
|
||||
nnoremap <leader>. :lcd %:p:h<CR> " set working directory to the current file
|
||||
|
||||
"" Opens an edit command with the path of the currently edited file filled in
|
||||
noremap <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
|
||||
|
||||
"" Opens a tab edit command with the path of the currently edited file filled
|
||||
noremap <Leader>r :tabe <C-R>=expand("%:p:h") . "/" <CR>
|
||||
|
||||
"" fzf.vim
|
||||
let $FZF_DEFAULT_COMMAND = "find * -path '*/\.*' -prune -o -path 'node_modules/**' -prune -o -path 'target/**' -prune -o -path 'vendor/**' -prune -o -path 'dist/**' -prune -o -type f -print -o -type l -print 2> /dev/null"
|
||||
|
||||
cnoremap <C-P> <C-R>=expand("%:p:h") . "/" <CR>
|
||||
nnoremap <silent> <leader>b :Buffers<CR>
|
||||
nnoremap <silent> <leader>e :FZF -m<CR>
|
||||
" Recovery commands from history through FZF
|
||||
nmap <leader>y :History:<CR>
|
||||
|
||||
" ale
|
||||
let g:ale_linters = {
|
||||
\ "vim": [ "vint" ]
|
||||
\}
|
||||
let g:ale_fixers = {
|
||||
\}
|
||||
|
||||
" Tagbar
|
||||
nmap <silent> <F4> :TagbarToggle<CR> " open tagbar
|
||||
let g:tagbar_autofocus = 1
|
||||
|
||||
" Disable visualbell
|
||||
set noerrorbells visualbell t_vb=
|
||||
if has('autocmd')
|
||||
autocmd GUIEnter * set visualbell t_vb=
|
||||
endif
|
||||
|
||||
"" Copy/Paste/Cut
|
||||
if has('unnamedplus')
|
||||
set clipboard=unnamed,unnamedplus
|
||||
endif
|
||||
|
||||
noremap YY "+y<CR> " copy line
|
||||
noremap <leader>p "+gP<CR> " paste
|
||||
noremap XX "+x<CR> " cut
|
||||
|
||||
if has('macunix')
|
||||
" pbcopy for OSX copy/paste
|
||||
vmap <C-x> :!pbcopy<CR> " copy
|
||||
vmap <C-c> :w !pbcopy<CR><CR> " cut
|
||||
vmap <C-v> :!pbpaste<CR> " paste
|
||||
endif
|
||||
|
||||
"" Buffer nav
|
||||
noremap <leader>z :bp<CR> " previous buffer
|
||||
noremap <leader>x :bn<CR> " next buffer
|
||||
noremap <leader>bq :bp<CR> " previous buffer
|
||||
noremap <leader>bw :bn<CR> " next buffer
|
||||
noremap <leader>bd :bd<CR> " close buffer
|
||||
|
||||
nnoremap <silent> <esc><esc> :noh<cr> " clean search
|
||||
|
||||
"" Switching windows
|
||||
noremap <C-j> <C-w>j " move to window below
|
||||
noremap <C-k> <C-w>k " move to window above
|
||||
noremap <C-l> <C-w>l " move to window right
|
||||
noremap <C-h> <C-w>h " move to window left
|
||||
|
||||
vmap < <gv " move visual block left, keep selection
|
||||
vmap > >gv " move visual block right, keep selection
|
||||
vnoremap J :m '>+1<CR>gv=gv " move visual block down, keep selection
|
||||
vnoremap K :m '<-2<CR>gv=gv " move visual block up, keep selection
|
||||
|
||||
nnoremap <Leader>o :.GBrowse<CR> " open current line on GitHub
|
||||
|
||||
"*****************************************************************************
|
||||
"" Custom configs
|
||||
"*****************************************************************************
|
||||
|
||||
" go
|
||||
" vim-go
|
||||
" run :GoBuild or :GoTestCompile based on the go file
|
||||
function! s:build_go_files()
|
||||
let l:file = expand('%')
|
||||
if l:file =~# '^\f\+_test\.go$'
|
||||
call go#test#Test(0, 1)
|
||||
elseif l:file =~# '^\f\+\.go$'
|
||||
call go#cmd#Build(0)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let g:go_list_type = "quickfix"
|
||||
let g:go_fmt_command = "goimports"
|
||||
let g:go_fmt_fail_silently = 1
|
||||
|
||||
let g:go_highlight_types = 1
|
||||
let g:go_highlight_fields = 1
|
||||
let g:go_highlight_functions = 1
|
||||
let g:go_highlight_methods = 1
|
||||
let g:go_highlight_operators = 1
|
||||
let g:go_highlight_build_constraints = 1
|
||||
let g:go_highlight_structs = 1
|
||||
let g:go_highlight_generate_tags = 1
|
||||
let g:go_highlight_space_tab_error = 0
|
||||
let g:go_highlight_array_whitespace_error = 0
|
||||
let g:go_highlight_trailing_whitespace_error = 0
|
||||
let g:go_highlight_extra_types = 1
|
||||
|
||||
autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4
|
||||
|
||||
augroup completion_preview_close
|
||||
autocmd!
|
||||
if v:version > 703 || v:version == 703 && has('patch598')
|
||||
autocmd CompleteDone * if !&previewwindow && &completeopt =~ 'preview' | silent! pclose | endif
|
||||
endif
|
||||
augroup END
|
||||
|
||||
" for go files
|
||||
augroup go
|
||||
au!
|
||||
au Filetype go command! -bang A call go#alternate#Switch(<bang>0, 'edit')
|
||||
au Filetype go command! -bang AV call go#alternate#Switch(<bang>0, 'vsplit')
|
||||
au Filetype go command! -bang AS call go#alternate#Switch(<bang>0, 'split')
|
||||
au Filetype go command! -bang AT call go#alternate#Switch(<bang>0, 'tabe')
|
||||
|
||||
au FileType go nmap <Leader>dd <Plug>(go-def-vertical)
|
||||
au FileType go nmap <Leader>dv <Plug>(go-doc-vertical)
|
||||
au FileType go nmap <Leader>db <Plug>(go-doc-browser)
|
||||
|
||||
au FileType go nmap <leader>r <Plug>(go-run)
|
||||
au FileType go nmap <leader>t <Plug>(go-test)
|
||||
au FileType go nmap <Leader>gt <Plug>(go-coverage-toggle)
|
||||
au FileType go nmap <Leader>i <Plug>(go-info)
|
||||
au FileType go nmap <silent> <Leader>l <Plug>(go-metalinter)
|
||||
au FileType go nmap <C-g> :GoDecls<cr>
|
||||
au FileType go nmap <leader>dr :GoDeclsDir<cr>
|
||||
au FileType go imap <C-g> <esc>:<C-u>GoDecls<cr>
|
||||
au FileType go imap <leader>dr <esc>:<C-u>GoDeclsDir<cr>
|
||||
au FileType go nmap <leader>rb :<C-u>call <SID>build_go_files()<CR>
|
||||
augroup END
|
||||
|
||||
"" ale
|
||||
:call extend(g:ale_linters, {"go": [ 'golint', 'go vet' ]})
|
||||
|
||||
" html
|
||||
" for html files, 2 spaces
|
||||
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
||||
|
||||
" javascript
|
||||
let g:javascript_enable_domhtmlcss = 1
|
||||
|
||||
" vim-javascript
|
||||
augroup vimrc-javascript
|
||||
autocmd!
|
||||
autocmd FileType javascript setl tabstop=4|setl shiftwidth=4|setl expandtab softtabstop=4
|
||||
augroup END
|
||||
|
||||
" php
|
||||
" Phpactor plugin
|
||||
" Include use statement
|
||||
nmap <Leader>u :call phpactor#UseAdd()<CR>
|
||||
" Invoke the context menu
|
||||
nmap <Leader>mm :call phpactor#ContextMenu()<CR>
|
||||
" Invoke the navigation menu
|
||||
nmap <Leader>nn :call phpactor#Navigate()<CR>
|
||||
" Goto definition of class or class member under the cursor
|
||||
nmap <Leader>oo :call phpactor#GotoDefinition()<CR>
|
||||
nmap <Leader>oh :call phpactor#GotoDefinition('hsplit')<CR>
|
||||
nmap <Leader>ov :call phpactor#GotoDefinition('vsplit')<CR>
|
||||
nmap <Leader>ot :call phpactor#GotoDefinition('tabnew')<CR>
|
||||
" Show brief information about the symbol under the cursor
|
||||
nmap <Leader>K :call phpactor#Hover()<CR>
|
||||
" Transform the classes in the current file
|
||||
nmap <Leader>tt :call phpactor#Transform()<CR>
|
||||
" Generate a new class (replacing the current file)
|
||||
nmap <Leader>cc :call phpactor#ClassNew()<CR>
|
||||
" Extract expression (normal mode)
|
||||
nmap <silent><Leader>ee :call phpactor#ExtractExpression(v:false)<CR>
|
||||
" Extract expression from selection
|
||||
vmap <silent><Leader>ee :<C-U>call phpactor#ExtractExpression(v:true)<CR>
|
||||
" Extract method from selection
|
||||
vmap <silent><Leader>em :<C-U>call phpactor#ExtractMethod()<CR>
|
||||
|
||||
au FileType php,blade let b:coc_root_patterns = ['.git', '.env', 'composer.json', 'artisan']
|
||||
au FileType php,blade nmap <silent> ga <Plug>(coc-codeaction-line)
|
||||
au FileType php,blade nmap <silent> <leader>ac <Plug>(coc-codeaction-cursor)
|
||||
|
||||
" python
|
||||
" vim-python
|
||||
augroup vimrc-python
|
||||
autocmd!
|
||||
autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=8 colorcolumn=79 formatoptions+=croq softtabstop=4 cinwords=if,elif,else,for,while,try,except,finally,def,class,with
|
||||
augroup END
|
||||
|
||||
"" jedi-vim for python
|
||||
let g:jedi#popup_on_dot = 0
|
||||
let g:jedi#goto_assignments_command = "<leader>g"
|
||||
let g:jedi#goto_definitions_command = "<leader>d"
|
||||
let g:jedi#documentation_command = "K"
|
||||
let g:jedi#usages_command = "<leader>n"
|
||||
let g:jedi#rename_command = "<leader>r"
|
||||
let g:jedi#show_call_signatures = "0"
|
||||
let g:jedi#completions_command = "<C-Space>"
|
||||
let g:jedi#smart_auto_mappings = 0
|
||||
|
||||
" ale
|
||||
:call extend(g:ale_linters, {
|
||||
\ 'python': [ 'flake8' ],
|
||||
\ })
|
||||
:call extend(g:ale_fixers, {
|
||||
\ '*': ['remove_trailing_lines', 'trim_whitespace']
|
||||
\ })
|
||||
let g:ale_sign_column_always = 1
|
||||
let g:ale_fix_on_save = 1
|
||||
|
||||
" editorconfig
|
||||
let g:EditorConfig_exclude_patterns = ['fugitive://.*']
|
||||
au FileType gitcommit let b:EditorConfig_disable = 1
|
||||
|
||||
" Syntax highlight
|
||||
let python_highlight_all = 1
|
||||
|
||||
" typescript
|
||||
let g:yats_host_keyword = 1
|
||||
|
||||
" vuejs
|
||||
" vim vue
|
||||
let g:vue_disable_pre_processors=1
|
||||
" vim vue plugin
|
||||
let g:vim_vue_plugin_load_full_syntax = 1
|
||||
38
config/yabai/yabairc
Executable file
38
config/yabai/yabairc
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env sh
|
||||
# yabai configuration file
|
||||
# https://github.com/koekeishiya/yabai
|
||||
|
||||
## load scripting additions
|
||||
# sudo yabai --load-sa
|
||||
# yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
|
||||
|
||||
yabai -m config \
|
||||
active_window_border_color 0xff775759 \
|
||||
auto_balance on \
|
||||
layout bsp \
|
||||
top_padding 0 \
|
||||
bottom_padding 0 \
|
||||
left_padding 0 \
|
||||
right_padding 0 \
|
||||
window_gap 2 \
|
||||
normal_window_opacity 0.60 \
|
||||
window_placement second_child \
|
||||
window_opacity on \
|
||||
window_shadow float
|
||||
|
||||
# apps to not manage (ignore)
|
||||
# TODO: add apps from aerospace config to here
|
||||
# list active apps:
|
||||
# > yabai -m query --windows | jq .[].app
|
||||
yabai -m rule --add app="1Password" manage=off
|
||||
yabai -m rule --add app="Fork" manage=off
|
||||
yabai -m rule --add app="System Settings" manage=off
|
||||
yabai -m rule --add app="^Logi Options$" manage=off
|
||||
yabai -m rule --add app="^Microsoft Teams$" manage=off
|
||||
yabai -m rule --add app="^PhpStorm$" manage=off
|
||||
yabai -m rule --add app="^Slack$" manage=off
|
||||
yabai -m rule --add app="^TIDAL$" manage=off
|
||||
yabai -m rule --add app="^Windows App$" manage=off
|
||||
|
||||
# apply rules
|
||||
yabai -m rule --apply
|
||||
@@ -11,7 +11,7 @@
|
||||
},
|
||||
"formatter": {
|
||||
"external": {
|
||||
"command": "node_modules/.bin/prettier",
|
||||
"command": "prettier",
|
||||
"arguments": [
|
||||
"--stdin-filepath",
|
||||
"{buffer_path}"
|
||||
@@ -55,8 +55,8 @@
|
||||
"vim_mode": true,
|
||||
"theme": {
|
||||
"mode": "system",
|
||||
"light": "Tokyo Night Light",
|
||||
"dark": "Tokyo Night Storm"
|
||||
"light": "Iceberg",
|
||||
"dark": "Iceberg"
|
||||
},
|
||||
"inlay_hints": {
|
||||
"enabled": true,
|
||||
@@ -69,7 +69,7 @@
|
||||
"buffer_font_fallbacks": [
|
||||
"JetBrainsMono Nerd Font"
|
||||
],
|
||||
"inline_completions": {
|
||||
"edit_predictions": {
|
||||
"disabled_globs": [
|
||||
".env"
|
||||
]
|
||||
|
||||
@@ -3,10 +3,16 @@
|
||||
Leader: `<ctrl><space>`
|
||||
|
||||
```txt
|
||||
Space Select next layout
|
||||
! Break pane to a new window
|
||||
" Split window vertically
|
||||
# List all paste buffers
|
||||
$ Rename current session
|
||||
% Split window horizontally
|
||||
& Kill current window
|
||||
' Prompt for window index to select
|
||||
( Switch to previous client
|
||||
) Switch to next client
|
||||
, Rename current window
|
||||
- Delete the most recent paste buffer
|
||||
. Move the current window
|
||||
@@ -25,6 +31,7 @@ Leader: `<ctrl><space>`
|
||||
; Move to the previously active pane
|
||||
= Choose a paste buffer from a list
|
||||
? List key bindings
|
||||
D Choose and detach a client from a list
|
||||
E Spread panes out evenly
|
||||
L Switch to the last client
|
||||
M Clear the marked pane
|
||||
@@ -33,11 +40,13 @@ Leader: `<ctrl><space>`
|
||||
d Detach the current client
|
||||
f Search for a pane
|
||||
i Display window information
|
||||
l Select the previously current window
|
||||
m Toggle the marked pane
|
||||
n Select the next window
|
||||
o Select the next pane
|
||||
q Display pane numbers
|
||||
s Choose a session from a list
|
||||
t Show a clock
|
||||
t tms
|
||||
w Choose a window from a list
|
||||
x Kill the active pane
|
||||
z Zoom the active pane
|
||||
@@ -65,6 +74,9 @@ Leader: `<ctrl><space>`
|
||||
M-Left Resize the pane left by 5
|
||||
M-Right Resize the pane right by 5
|
||||
C-o Rotate through the panes
|
||||
C-r tms refresh
|
||||
C-s tms switch
|
||||
C-w tms windows
|
||||
C-z Suspend the current client
|
||||
C-Up Resize the pane up
|
||||
C-Down Resize the pane down
|
||||
@@ -75,3 +87,4 @@ Leader: `<ctrl><space>`
|
||||
S-Left Move the visible part of the window left
|
||||
S-Right Move the visible part of the window right
|
||||
```
|
||||
|
||||
|
||||
0
hosts/s/.gitkeep
Normal file
0
hosts/s/.gitkeep
Normal file
3
hosts/s/README.md
Normal file
3
hosts/s/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# .dotfiles/hosts/s
|
||||
|
||||
This is my work computer.
|
||||
0
hosts/s/base/.gitkeep
Normal file
0
hosts/s/base/.gitkeep
Normal file
0
hosts/s/config/.gitkeep
Normal file
0
hosts/s/config/.gitkeep
Normal file
2
hosts/s/config/git/local.d/work-git
Normal file
2
hosts/s/config/git/local.d/work-git
Normal file
@@ -0,0 +1,2 @@
|
||||
Host tfs.ia.corp.svea.com
|
||||
IdentityFile ~/.ssh/id_rsa
|
||||
26
hosts/s/config/git/overrides/config
Normal file
26
hosts/s/config/git/overrides/config
Normal file
@@ -0,0 +1,26 @@
|
||||
# vim: ft=gitconfig sw=2 ts=2 et
|
||||
[include]
|
||||
path = ~/.dotfiles/config/git/shared
|
||||
|
||||
[gpg]
|
||||
format = ssh
|
||||
|
||||
[user]
|
||||
name = Ismo Vuorinen
|
||||
email = ismo.vuorinen@svea.com
|
||||
signingkey = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMmEaS/pitd8TzLNaXf0ojTydEyFp2TWoDctuqTEF8Aw
|
||||
|
||||
[gpg "ssh"]
|
||||
program = /Applications/1Password.app/Contents/MacOS/op-ssh-sign
|
||||
allowedSignersFile = ~/.ssh/allowed_signers
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
[credential "https://github.com"]
|
||||
helper =
|
||||
helper = !/opt/homebrew/bin/gh auth git-credential
|
||||
|
||||
[credential "https://gist.github.com"]
|
||||
helper =
|
||||
helper = !/opt/homebrew/bin/gh auth git-credential
|
||||
14
hosts/s/install.conf.yaml
Normal file
14
hosts/s/install.conf.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
- include: 'tools/dotbot-defaults.yaml'
|
||||
- shell:
|
||||
- echo "Configuring s"
|
||||
- link:
|
||||
~/:
|
||||
force: true
|
||||
glob: true
|
||||
path: hosts/s/base/**
|
||||
prefix: '.'
|
||||
~/.config/:
|
||||
glob: true
|
||||
force: true
|
||||
path: hosts/s/config/**
|
||||
@@ -62,46 +62,6 @@
|
||||
- bash add-submodules.sh || true
|
||||
- git submodule update --init --recursive --force
|
||||
|
||||
- asdf:
|
||||
- plugin: 1password-cli
|
||||
url: https://github.com/NeoHsu/asdf-1password-cli.git
|
||||
- plugin: age
|
||||
url: https://github.com/threkk/asdf-age.git
|
||||
- plugin: direnv
|
||||
url: https://github.com/asdf-community/asdf-direnv.git
|
||||
- plugin: dotenv-linter
|
||||
url: https://github.com/wesleimp/asdf-dotenv-linter.git
|
||||
- plugin: editorconfig-checker
|
||||
url: https://github.com/gabitchov/asdf-editorconfig-checker.git
|
||||
- plugin: fd
|
||||
url: https://gitlab.com/wt0f/asdf-fd.git
|
||||
- plugin: github-cli
|
||||
url: https://github.com/bartlomiejdanek/asdf-github-cli.git
|
||||
- plugin: golang
|
||||
url: https://github.com/asdf-community/asdf-golang.git
|
||||
- plugin: hadolint
|
||||
url: https://github.com/devlincashman/asdf-hadolint.git
|
||||
- plugin: kubectl
|
||||
url: https://github.com/asdf-community/asdf-kubectl.git
|
||||
- plugin: pre-commit
|
||||
url: https://github.com/jonathanmorley/asdf-pre-commit.git
|
||||
- plugin: ripgrep
|
||||
url: https://gitlab.com/wt0f/asdf-ripgrep.git
|
||||
- plugin: rust
|
||||
url: https://github.com/code-lever/asdf-rust.git
|
||||
- plugin: shellcheck
|
||||
url: https://github.com/luizm/asdf-shellcheck.git
|
||||
- plugin: shfmt
|
||||
url: https://github.com/luizm/asdf-shfmt.git
|
||||
- plugin: terragrunt
|
||||
url: https://github.com/ohmer/asdf-terragrunt.git
|
||||
- plugin: tf-summarize
|
||||
url: https://github.com/adamcrews/asdf-tf-summarize.git
|
||||
- plugin: yamllint
|
||||
url: https://github.com/ericcornelissen/asdf-yamllint.git
|
||||
- plugin: yq
|
||||
url: https://github.com/sudermanjr/asdf-yq.git
|
||||
|
||||
- shell:
|
||||
- bash local/bin/dfm install all
|
||||
|
||||
|
||||
Submodule local/bin/asdf deleted from 54d15e3fa6
174
local/bin/dfm
174
local/bin/dfm
@@ -43,7 +43,6 @@ section_install()
|
||||
|
||||
MENU=(
|
||||
"all:Installs everything in the correct order"
|
||||
"asdf:Install asdf plugins"
|
||||
"cargo:Install rust/cargo packages"
|
||||
"cheat-databases:Install cheat external cheatsheet databases"
|
||||
"composer:Install composer"
|
||||
@@ -65,9 +64,9 @@ section_install()
|
||||
$0 install macos
|
||||
$0 install fonts
|
||||
$0 brew install
|
||||
$0 install asdf
|
||||
$0 install cargo
|
||||
$0 install go
|
||||
$0 install composer
|
||||
$0 install fzf
|
||||
$0 install cheat-databases
|
||||
$0 install nvm
|
||||
$0 install npm-packages
|
||||
@@ -77,12 +76,6 @@ section_install()
|
||||
msgr yay "All done!"
|
||||
;;
|
||||
|
||||
asdf)
|
||||
msgr run "Installing asdf..."
|
||||
$0 asdf plugins-install \
|
||||
&& msgr yay "asdf plugins installed!"
|
||||
;;
|
||||
|
||||
cargo)
|
||||
msgr run "Installing cargo packages..."
|
||||
bash "$DOTFILES/scripts/install-cargo-packages.sh" \
|
||||
@@ -270,164 +263,6 @@ section_brew()
|
||||
! x-have brew && menu_builder "$USAGE_PREFIX" "brew not available on this system"
|
||||
}
|
||||
|
||||
section_asdf()
|
||||
{
|
||||
USAGE_PREFIX="$SCRIPT asdf <command>"
|
||||
MENU=(
|
||||
"current:Show asdf current versions"
|
||||
"global:Show asdf global versions"
|
||||
"installed:Show asdf installed versions"
|
||||
"plugins-update:Update all asdf plugins"
|
||||
"plugins-install:Install plugins from configuration"
|
||||
"plugins-remove:Remove installed plugins"
|
||||
"reset:Reset asdf plugins"
|
||||
"fix-tool-versions:Remove uninstalled plugins from .tool-versions"
|
||||
"versions:Show asdf versions"
|
||||
"where:Show asdf where"
|
||||
"which:Show asdf which"
|
||||
)
|
||||
|
||||
case "$1" in
|
||||
plugins-update)
|
||||
msgr run "Updating all asdf plugins"
|
||||
asdf plugin update --all
|
||||
msgr run_done "Updated all plugins"
|
||||
;;
|
||||
|
||||
plugins-install)
|
||||
msgr run "Installing plugins from configuration"
|
||||
|
||||
# First install direnv if it's not installed
|
||||
if ! asdf plugin list | grep -q "^direnv$"; then
|
||||
msgr nested "Installing direnv plugin"
|
||||
asdf plugin add direnv https://github.com/asdf-community/asdf-direnv.git
|
||||
|
||||
# Install latest direnv
|
||||
local latest_direnv
|
||||
latest_direnv=$(asdf latest direnv)
|
||||
asdf install direnv "$latest_direnv"
|
||||
asdf global direnv "$latest_direnv"
|
||||
fi
|
||||
|
||||
# Check that all plugins are installed
|
||||
local installed_plugins
|
||||
installed_plugins=$(asdf plugin list)
|
||||
|
||||
while IFS= read -r line; do
|
||||
# Skip empty lines and comments
|
||||
[[ -z $line || $line =~ ^# ]] && continue
|
||||
|
||||
local plugin
|
||||
plugin=$(echo "$line" | awk '{print $1}')
|
||||
|
||||
# Skip direnv, it's already installed
|
||||
[[ $plugin == "direnv" ]] && continue
|
||||
|
||||
if ! echo "$installed_plugins" | grep -q "^${plugin}$"; then
|
||||
msgr nested "Installing $plugin plugin"
|
||||
asdf plugin add "$plugin"
|
||||
fi
|
||||
done < "$DOTFILES/base/tool-versions"
|
||||
|
||||
msgr run_done "All plugins installed"
|
||||
;;
|
||||
|
||||
plugins-remove)
|
||||
msgr run "Remove installed plugins"
|
||||
local installed_plugins
|
||||
installed_plugins=$(asdf plugin list | grep -v "^direnv$")
|
||||
|
||||
for plugin in $installed_plugins; do
|
||||
msgr nested "Removing $plugin"
|
||||
asdf plugin remove "$plugin"
|
||||
done
|
||||
|
||||
msgr run_done "Remove plugins done!"
|
||||
;;
|
||||
|
||||
reset)
|
||||
msgr run "Resetting asdf environment"
|
||||
$0 asdf plugins-remove
|
||||
$0 asdf plugins-install
|
||||
asdf reshim
|
||||
msgr yay "Reset asdf plugins done!"
|
||||
;;
|
||||
|
||||
fix-tool-versions)
|
||||
local tool_versions_file="$DOTFILES/base/tool-versions"
|
||||
local temp_file
|
||||
temp_file=$(mktemp)
|
||||
|
||||
msgr run "Fixing tool-versions file"
|
||||
|
||||
# Check that .tool-versions file exists
|
||||
if [[ ! -f $tool_versions_file ]]; then
|
||||
msgr error "tool-versions file not found: $tool_versions_file"
|
||||
rm -f "$temp_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check that asdf can be found in the path
|
||||
if ! command -v asdf > /dev/null; then
|
||||
msgr error "asdf not found"
|
||||
rm -f "$temp_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Read installed plugins
|
||||
msgr nested "Reading installed plugins"
|
||||
local installed_plugins
|
||||
installed_plugins=$(asdf plugin list | sort)
|
||||
|
||||
# Compare .tool-versions and installed plugins,
|
||||
# remove unknown plugins from .tool-versions
|
||||
msgr nested "Updating tool-versions file"
|
||||
while IFS= read -r line; do
|
||||
# Keep comments and empty lines
|
||||
if [[ -z $line || $line =~ ^[[:space:]]*# ]]; then
|
||||
echo "$line" >> "$temp_file"
|
||||
continue
|
||||
fi
|
||||
|
||||
local plugin
|
||||
plugin=$(echo "$line" | awk '{print $1}')
|
||||
|
||||
if echo "$installed_plugins" | grep -q "^${plugin}$"; then
|
||||
echo "$line" >> "$temp_file"
|
||||
else
|
||||
msgr nested "Removing $plugin - not installed"
|
||||
fi
|
||||
done < "$tool_versions_file"
|
||||
|
||||
# Check that the temp file is valid
|
||||
if [[ ! -s $temp_file ]] || ! grep -v '^[[:space:]]*#' "$temp_file" | grep -q .; then
|
||||
msgr error "Generated file is empty or contains only comments, keeping original"
|
||||
rm -f "$temp_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Backup the original .tool-versions
|
||||
cp "$tool_versions_file" "${tool_versions_file}.bak"
|
||||
|
||||
# Overwrite .tool-versions with the generated file
|
||||
mv "$temp_file" "$tool_versions_file"
|
||||
|
||||
msgr run_done "Updated $tool_versions_file"
|
||||
msgr nested "Backup saved as ${tool_versions_file}.bak"
|
||||
|
||||
return 0
|
||||
;;
|
||||
|
||||
current) asdf current ;;
|
||||
global) asdf global ;;
|
||||
installed) asdf list ;;
|
||||
versions) asdf list all ;;
|
||||
where) asdf where ;;
|
||||
which) asdf which ;;
|
||||
*) menu_builder "$USAGE_PREFIX" "${MENU[@]}" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
section_helpers()
|
||||
{
|
||||
USAGE_PREFIX="$SCRIPT helpers <command>"
|
||||
@@ -647,7 +482,7 @@ section_dotfiles()
|
||||
fd --full-path "$DOTFILES" -tx \
|
||||
--hidden \
|
||||
-E '*.pl' -E '*.php' -E '*.py' -E '*.zsh' -E 'plugins' -E 'fzf' -E 'dotbot' \
|
||||
-E 'test' -E '**/bin/asdf/**' -E '**/tldr/*' \
|
||||
-E 'test' -E '**/tldr/*' \
|
||||
-x shfmt \
|
||||
--language-dialect bash \
|
||||
--func-next-line --list --write \
|
||||
@@ -778,8 +613,6 @@ usage()
|
||||
echo ""
|
||||
section_apt
|
||||
echo ""
|
||||
section_asdf
|
||||
echo ""
|
||||
section_brew
|
||||
echo ""
|
||||
section_check
|
||||
@@ -801,7 +634,6 @@ main()
|
||||
case "$SECTION" in
|
||||
install) section_install "$@" ;;
|
||||
apt) section_apt "$@" ;;
|
||||
asdf) section_asdf "$@" ;;
|
||||
brew) section_brew "$@" ;;
|
||||
check) section_check "$@" ;;
|
||||
dotfiles) section_dotfiles "$@" ;;
|
||||
|
||||
22
local/bin/raycast/lungo-activate.sh
Executable file
22
local/bin/raycast/lungo-activate.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Note: Lungo v2.0.4 required
|
||||
# Install via Mac App Store: https://apps.apple.com/app/id1263070803
|
||||
|
||||
# Required parameters:
|
||||
# @raycast.schemaVersion 1
|
||||
# @raycast.title Lungo: Activate
|
||||
# @raycast.mode silent
|
||||
|
||||
# Optional parameters:
|
||||
# @raycast.icon ./images/lungo.png
|
||||
# @raycast.packageName Lungo
|
||||
|
||||
# Documentation:
|
||||
# @raycast.author Lungo
|
||||
# @raycast.authorURL https://sindresorhus.com/lungo
|
||||
# @raycast.description Deactivate Lungo.
|
||||
# @raycast.argument1 { "type": "text", "placeholder": "hours", "optional": true, "percentEncoded": true }
|
||||
# @raycast.argument2 { "type": "text", "placeholder": "minutes", "optional": true, "percentEncoded": true }
|
||||
|
||||
open --background "lungo:activate?hours=$1&minutes=$2"
|
||||
20
local/bin/raycast/lungo-deactivate.sh
Executable file
20
local/bin/raycast/lungo-deactivate.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Note: Lungo v2.0.4 required
|
||||
# Install via Mac App Store: https://apps.apple.com/app/id1263070803
|
||||
|
||||
# Required parameters:
|
||||
# @raycast.schemaVersion 1
|
||||
# @raycast.title Lungo: Deactivate
|
||||
# @raycast.mode silent
|
||||
|
||||
# Optional parameters:
|
||||
# @raycast.icon ./images/lungo.png
|
||||
# @raycast.packageName Lungo
|
||||
|
||||
# Documentation:
|
||||
# @raycast.author Lungo
|
||||
# @raycast.authorURL https://sindresorhus.com/lungo
|
||||
# @raycast.description Deactivate Lungo.
|
||||
|
||||
open --background lungo:deactivate
|
||||
22
local/bin/raycast/lungo-toggle.sh
Executable file
22
local/bin/raycast/lungo-toggle.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Note: Lungo v2.0.4 required
|
||||
# Install via Mac App Store: https://apps.apple.com/app/id1263070803
|
||||
|
||||
# Required parameters:
|
||||
# @raycast.schemaVersion 1
|
||||
# @raycast.title Lungo: Toggle
|
||||
# @raycast.mode silent
|
||||
|
||||
# Optional parameters:
|
||||
# @raycast.icon ./images/lungo.png
|
||||
# @raycast.packageName Lungo
|
||||
|
||||
# Documentation:
|
||||
# @raycast.author Lungo
|
||||
# @raycast.authorURL https://sindresorhus.com/lungo
|
||||
# @raycast.description Toggle Lungo.
|
||||
# @raycast.argument1 { "type": "text", "placeholder": "hours", "optional": true, "percentEncoded": true }
|
||||
# @raycast.argument2 { "type": "text", "placeholder": "minutes", "optional": true, "percentEncoded": true }
|
||||
|
||||
open --background "lungo:toggle?hours=$1&minutes=$2"
|
||||
21
local/bin/raycast/sp.sh
Executable file
21
local/bin/raycast/sp.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Dependency: requires the 1password cli: https://developer.1password.com/docs/cli/
|
||||
|
||||
# Required parameters:
|
||||
# @raycast.schemaVersion 1
|
||||
# @raycast.title Login password to clipboard
|
||||
# @raycast.mode silent
|
||||
|
||||
# Optional parameters:
|
||||
# @raycast.icon 🔐
|
||||
# @raycast.packageName Password to clipboard
|
||||
# @raycast.description Returns password from 1Password
|
||||
|
||||
# Documentation:
|
||||
# @raycast.author Ismo Vuorinen
|
||||
# @raycast.authorURL https://github.com/ivuorinen
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
op read "op://Svea/3hzhctmvovbwlgulv7mgy25rf4/login-input" | pbcopy
|
||||
26
local/bin/raycast/tidal.applescript
Executable file
26
local/bin/raycast/tidal.applescript
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/osascript
|
||||
|
||||
# Required parameters:
|
||||
# @raycast.schemaVersion 1
|
||||
# @raycast.title Tidal: Toggle Play/Pause
|
||||
# @raycast.mode silent
|
||||
# @raycast.packagename Tidal
|
||||
|
||||
# Optional parameters
|
||||
# @raycast.icon images/tidal-logo.png
|
||||
|
||||
# Documentation:
|
||||
# @raycast.author Cebrail AKTAS
|
||||
# @raycast.authorURL https://github.com/AktasC
|
||||
# @raycast.description Play/Pause Tidal
|
||||
|
||||
tell application "System Events"
|
||||
tell process "TIDAL"
|
||||
click first menu item of menu "Playback" of menu bar 1
|
||||
if name of first menu item of menu "Playback" of menu bar 1 is "Play" then
|
||||
log "▶️"
|
||||
else
|
||||
log "⏸"
|
||||
end if
|
||||
end tell
|
||||
end tell
|
||||
49
local/bin/raycast/zalgo-text.swift
Executable file
49
local/bin/raycast/zalgo-text.swift
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/swift
|
||||
|
||||
// Required parameters:
|
||||
// @raycast.schemaVersion 1
|
||||
// @raycast.title Zalgo Text
|
||||
// @raycast.mode silent
|
||||
// @raycast.author Adam Zethraeus
|
||||
// @raycast.authorURL https://github.com/adam-zethraeus
|
||||
// @raycast.packageName Conversions
|
||||
// @raycast.icon 👹
|
||||
// @raycast.argument1 { "type": "text", "placeholder": "Text to Z̶̶͚̯͗a̩̞͜͜l̫͕ͬͨ̿g͈̫͂ͤ͆͢o̠͚̞ͥ" }
|
||||
// @raycast.argument2 { "type": "text", "optional": true, "placeholder": "Intensity=5" }
|
||||
|
||||
// Documentation:
|
||||
// @raycast.description Converts text to z̫̫̐a̳ͩl̓͂̀ͅg͔̚o̷̦̣͢ t̳͆ḛ̊͟ẍ̮̝́t̵̔ͯ͝
|
||||
|
||||
import Cocoa
|
||||
|
||||
// zalgo function credit mattt @ https://gist.github.com/mattt/b46ab5027f1ee6ab1a45583a41240033
|
||||
func zalgo(_ string: String, intensity: Int = 5) -> String {
|
||||
let combiningDiacriticMarks = 0x0300...0x036f
|
||||
let latinAlphabetUppercase = 0x0041...0x005a
|
||||
let latinAlphabetLowercase = 0x0061...0x007a
|
||||
|
||||
var output: [UnicodeScalar] = []
|
||||
for scalar in string.unicodeScalars {
|
||||
output.append(scalar)
|
||||
guard (latinAlphabetUppercase).contains(numericCast(scalar.value)) ||
|
||||
(latinAlphabetLowercase).contains(numericCast(scalar.value))
|
||||
else {
|
||||
continue
|
||||
}
|
||||
|
||||
for _ in 0...(Int.random(in: 1...intensity)) {
|
||||
let randomScalarValue = Int.random(in: combiningDiacriticMarks)
|
||||
output.append(Unicode.Scalar(randomScalarValue)!)
|
||||
}
|
||||
}
|
||||
|
||||
return String(String.UnicodeScalarView(output))
|
||||
}
|
||||
|
||||
NSPasteboard.general.clearContents()
|
||||
let text = CommandLine.arguments[1]
|
||||
let intensityString = CommandLine.arguments[2]
|
||||
let intensity = Int(intensityString) ?? 5
|
||||
let zalgoText = zalgo(text, intensity: intensity)
|
||||
NSPasteboard.general.setString(zalgoText, forType: .string)
|
||||
print("\(zalgoText) copied to clipboard")
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
# Define protected keywords. Values of these keys are displayed as [protected value].
|
||||
# The keys are case-insensitive and are matched as substrings.
|
||||
PROTECTED_KEYS=("*TOKEN*" "*SECRET*" "DIRENV_DIFF" "DIRENV_WATCHES" "PATH" "FPATH")
|
||||
PROTECTED_KEYS=("*TOKEN*" "*SECRET*" "DIRENV_DIFF" "DIRENV_WATCHES")
|
||||
|
||||
# Default grouping is based on the first part before underscore, but can be overridden
|
||||
# either by custom grouping file or by the get_custom_group function.
|
||||
@@ -49,17 +49,50 @@ DEFINED_GROUPS=(
|
||||
"PYENV_ROOT=PYTHON"
|
||||
"PYENV_SHELL=PYTHON"
|
||||
"PYTHONPATH=PYTHON"
|
||||
"POETRY_HOME=PYTHON"
|
||||
"RUSTUP_HOME=RUST"
|
||||
"RUST_WITHOUT=RUST"
|
||||
"SHELL=SHELL"
|
||||
"TMPDIR=SHELL"
|
||||
"USER=SHELL"
|
||||
"SECURITYSESSIONID=SHELL"
|
||||
"SHLVL=SHELL"
|
||||
"WORKON_HOME=PYTHON"
|
||||
"ZSH=ZSH"
|
||||
"LANG=SHELL"
|
||||
"EDITOR=SHELL"
|
||||
"VISUAL=SHELL"
|
||||
"COMMAND_MODE=SHELL"
|
||||
"COLORTERM=SHELL"
|
||||
"CARGO_BIN_HOME=RUST"
|
||||
"CARGO_HOME=RUST"
|
||||
"LaunchInstanceID=SHELL"
|
||||
"SECURITYSESSIONID=SHELL"
|
||||
"TERM=SHELL"
|
||||
"TERM_PROGRAM=SHELL"
|
||||
"TERM_PROGRAM_VERSION=SHELL"
|
||||
"XPC_FLAGS=SHELL"
|
||||
"XPC_SERVICE_NAME=SHELL"
|
||||
"NPM_CONFIG_PREFIX=NODE"
|
||||
"YARN_GLOBAL_FOLDER=NODE"
|
||||
"MASON_HOME=NVIM"
|
||||
"asdf_data_dir=ASDF"
|
||||
"nvm_current_version=NODE"
|
||||
"NVM_NODE_BIN_DIR=NODE"
|
||||
"_=SHELL"
|
||||
"npm_config_cache=NPM"
|
||||
)
|
||||
|
||||
SKIPPED_KEYS=(
|
||||
"_tide*"
|
||||
"__FISH_*"
|
||||
"___paths_plugin_colors"
|
||||
"__CFBundleIdentifier"
|
||||
"__CF_USER_TEXT_ENCODING"
|
||||
"PATH"
|
||||
"FPATH"
|
||||
)
|
||||
|
||||
CONFIG_FILE="$X_ENV_GROUPING"
|
||||
|
||||
# If we have configuration file, run extra checks so we can process it.
|
||||
@@ -93,6 +126,12 @@ if [[ -f "$CONFIG_FILE" ]]; then
|
||||
PROTECTED_KEYS+=("$key")
|
||||
done <<< "$CUSTOM_KEYS"
|
||||
|
||||
SKIPPED+=("$(yq '.skipped_keys[]' "$CONFIG_FILE")")
|
||||
while IFS= read -r key; do
|
||||
# Add to default_skipped_keys
|
||||
SKIPPED_KEYS+=("$key")
|
||||
done <<< "$SKIPPED"
|
||||
|
||||
CUSTOM_GROUPS=$(yq '.custom_grouping[]' "$CONFIG_FILE")
|
||||
while IFS= read -r group; do
|
||||
group_name=$(echo "$group" | yq 'keys[0]')
|
||||
@@ -150,6 +189,22 @@ get_custom_group()
|
||||
return 1
|
||||
}
|
||||
|
||||
is_skipped()
|
||||
{
|
||||
local key=$1
|
||||
for skipped_key in "${SKIPPED_KEYS[@]}"; do
|
||||
# Direct match
|
||||
if [[ "$key" == "$skipped_key" ]]; then
|
||||
return 0
|
||||
fi
|
||||
# Wildcard match (skipped_key contains '*')
|
||||
if [[ "$skipped_key" == *"*"* ]] && [[ "$key" == $skipped_key ]]; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
# Create arrays to store all groups, group data and max lengths for each group
|
||||
all_groups=()
|
||||
group_data=()
|
||||
@@ -157,6 +212,15 @@ group_max_lengths=()
|
||||
|
||||
# Get environment variables and group them
|
||||
while IFS='=' read -r key value; do
|
||||
# Skip keys that are in the skipped list
|
||||
if is_skipped "$key"; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if is_skipped "$value"; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Check for custom group
|
||||
group=$(get_custom_group "$key")
|
||||
|
||||
|
||||
BIN
local/bin/yabai
Executable file
BIN
local/bin/yabai
Executable file
Binary file not shown.
1313
local/man/yabai.1
Normal file
1313
local/man/yabai.1
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
# @description Install cargo/rust packages.
|
||||
#
|
||||
# shellcheck source=shared.sh
|
||||
source "$HOME/.dotfiles/config/shared.sh"
|
||||
|
||||
msgr run "Starting to install rust/cargo packages"
|
||||
|
||||
source "$CARGO_HOME/env"
|
||||
|
||||
# If we have cargo install-update, use it first
|
||||
if command -v cargo-install-update &> /dev/null; then
|
||||
msgr run "Updating cargo packages with cargo install-update"
|
||||
@@ -15,32 +10,23 @@ if command -v cargo-install-update &> /dev/null; then
|
||||
msgr run_done "Done with cargo install-update"
|
||||
fi
|
||||
|
||||
packages=(
|
||||
# A cargo subcommand for checking and applying
|
||||
# updates to installed executables
|
||||
"cargo-update"
|
||||
# Cargo cache management utility
|
||||
"cargo-cache"
|
||||
# An incremental parsing system for programming tools
|
||||
"tree-sitter-cli"
|
||||
# a subprocess caching utility
|
||||
"bkt"
|
||||
# a structural diff that understands syntax
|
||||
"difftastic"
|
||||
# a modern replacement for ls.
|
||||
"eza"
|
||||
# A simple, fast and user-friendly alternative to 'find'
|
||||
"fd-find"
|
||||
# recursively searches directories for a
|
||||
# regex pattern while respecting your gitignore
|
||||
"ripgrep"
|
||||
# A version manager for neovim
|
||||
"bob-nvim"
|
||||
"bottom"
|
||||
)
|
||||
[[ -z "$ASDF_CRATE_DEFAULT_PACKAGES_FILE" ]] \
|
||||
&& ASDF_CRATE_DEFAULT_PACKAGES_FILE="$DOTFILES/config/asdf/cargo-packages"
|
||||
|
||||
# Packages are defined in $DOTFILES/config/asdf/cargo-packages, one per line
|
||||
# Skip comments and empty lines
|
||||
packages=()
|
||||
while IFS= read -r line; do
|
||||
# Skip comments
|
||||
if [[ ${line:0:1} == "#" ]]; then continue; fi
|
||||
if [[ ${line:0:1} == "/" ]]; then continue; fi
|
||||
# Skip empty lines
|
||||
if [[ -z "$line" ]]; then continue; fi
|
||||
packages+=("$line")
|
||||
done < "$ASDF_CRATE_DEFAULT_PACKAGES_FILE"
|
||||
|
||||
# Number of jobs to run in parallel, this helps to keep the system responsive
|
||||
BUILD_JOBS=$(nproc --ignore=2)
|
||||
BUILD_JOBS=$(nproc --ignore=2 2> /dev/null || sysctl -n hw.ncpu 2> /dev/null || echo 1)
|
||||
|
||||
# Function to install cargo packages
|
||||
install_packages()
|
||||
@@ -70,13 +56,13 @@ post_install_steps()
|
||||
|
||||
msgr run "Removing cargo cache"
|
||||
cargo cache --autoclean
|
||||
msg_done "Done removing cargo cache"
|
||||
msgr done "Done removing cargo cache"
|
||||
}
|
||||
|
||||
main()
|
||||
{
|
||||
install_packages
|
||||
msg_done "Installed cargo packages!"
|
||||
msgr done "Installed cargo packages!"
|
||||
post_install_steps
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ clone_or_update_repo()
|
||||
msg_run "Starting to update $PBB_GIT"
|
||||
git -C "$PBB_TEMP_DIR" reset --hard origin/master
|
||||
git -C "$PBB_TEMP_DIR" pull -q \
|
||||
&& msg_yay "Updated $PBB_GIT"
|
||||
&& msgr yay "Updated $PBB_GIT"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ add_fonts_to_sparse_checkout()
|
||||
install_fonts()
|
||||
{
|
||||
msgr run "Starting to install NerdFonts..."
|
||||
# shellcheck disable=SC2048,SC2086
|
||||
./install.sh -q -s ${fonts[*]}
|
||||
msgr run_done "Done"
|
||||
}
|
||||
|
||||
@@ -11,30 +11,22 @@ msgr run "Installing go packages"
|
||||
|
||||
! x-have "go" && msgr err "go hasn't been installed yet." && exit 0
|
||||
|
||||
packages=(
|
||||
# A shell parser, formatter, and interpreter with bash support; includes shfmt
|
||||
mvdan.cc/sh/v3/cmd/shfmt@latest
|
||||
# sysadmin/scripting utilities, distributed as a single binary
|
||||
github.com/skx/sysbox@latest
|
||||
# Git Profile allows you to switch between user profiles in git repos
|
||||
github.com/dotzero/git-profile@latest
|
||||
# An extensible command line tool or library to format yaml files.
|
||||
github.com/google/yamlfmt/cmd/yamlfmt@latest
|
||||
# Parsing HTML at the command line
|
||||
github.com/ericchiang/pup@latest
|
||||
# HTML to Markdown converter
|
||||
github.com/suntong/html2md@latest
|
||||
# cheat allows you to create and view interactive cheatsheets on the cli.
|
||||
github.com/cheat/cheat/cmd/cheat@latest
|
||||
# Render markdown on the CLI, with pizzazz! 💅
|
||||
github.com/charmbracelet/glow@latest
|
||||
# Static checker for GitHub Actions workflow files
|
||||
github.com/rhysd/actionlint/cmd/actionlint@latest
|
||||
# simple terminal UI for git commands
|
||||
github.com/jesseduffield/lazygit@latest
|
||||
# Cleans up your $HOME from those pesky dotfiles
|
||||
github.com/doron-cohen/antidot@latest
|
||||
)
|
||||
[[ -z "$ASDF_GOLANG_DEFAULT_PACKAGES_FILE" ]] && \
|
||||
ASDF_GOLANG_DEFAULT_PACKAGES_FILE="$DOTFILES/config/asdf/golang-packages"
|
||||
|
||||
# Packages are defined in $DOTFILES/config/asdf/golang-packages, one per line
|
||||
# Skip comments and empty lines
|
||||
packages=()
|
||||
if [[ -f "$ASDF_GOLANG_DEFAULT_PACKAGES_FILE" ]]; then
|
||||
while IFS= read -r line; do
|
||||
# Skip comments
|
||||
if [[ ${line:0:1} == "#" ]]; then continue; fi
|
||||
if [[ ${line:0:1} == "/" ]]; then continue; fi
|
||||
# Skip empty lines
|
||||
if [[ -z "$line" ]]; then continue; fi
|
||||
packages+=("$line")
|
||||
done < "$ASDF_GOLANG_DEFAULT_PACKAGES_FILE"
|
||||
fi
|
||||
|
||||
# Function to install go packages
|
||||
install_packages()
|
||||
|
||||
@@ -22,11 +22,14 @@ while true; do
|
||||
kill -0 "$$" || exit
|
||||
done 2> /dev/null &
|
||||
|
||||
msgr nested "Change user shell to zsh if it is available and not the current"
|
||||
# Skip when shell is fish
|
||||
if [[ $SHELL != $(which fish) ]]; then
|
||||
msgr nested "Change user shell to zsh if it is available and not the current"
|
||||
|
||||
# Change user shell to zsh if not that already.
|
||||
if hash zsh 2> /dev/null; then
|
||||
[[ $SHELL != $(which zsh) ]] && chsh -s "$(which zsh)"
|
||||
# Change user shell to zsh if not that already.
|
||||
if hash zsh 2> /dev/null; then
|
||||
[[ $SHELL != $(which zsh) ]] && chsh -s "$(which zsh)"
|
||||
fi
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
@@ -38,9 +41,6 @@ msgr nested "Setting General UI/UX settings"
|
||||
# Disable the sound effects on boot
|
||||
sudo nvram SystemAudioVolume=" "
|
||||
|
||||
# Menu bar: disable transparency
|
||||
#defaults write NSGlobalDomain AppleEnableMenuBarTransparency -bool false
|
||||
|
||||
# Set sidebar icon size to small
|
||||
defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 1
|
||||
|
||||
@@ -336,9 +336,8 @@ msgr nested "Restarting applications to apply changes"
|
||||
###############################################################################
|
||||
|
||||
for app in "Activity Monitor" "Address Book" "Calendar" "Contacts" "cfprefsd" \
|
||||
"Dock" "Finder" "Mail" "Messages" "Safari" "SizeUp" "SystemUIServer" \
|
||||
"Terminal" "Transmission" "iCal"; do
|
||||
"Dock" "Finder" "Mail" "Messages" "Safari" "SizeUp" "SystemUIServer"; do
|
||||
killall "${app}" > /dev/null 2>&1
|
||||
done
|
||||
|
||||
msg_yay "Done. Note that some of these changes require a logout/restart to take effect."
|
||||
msgr yay "Done. Note that some of these changes require a logout/restart to take effect."
|
||||
|
||||
@@ -1,21 +1,13 @@
|
||||
# demons
|
||||
# vim: ft=sshconfig
|
||||
|
||||
Host vine
|
||||
User ubuntu
|
||||
HostName vine.antiprocess.net
|
||||
IdentityFile ~/.ssh/id_rsa
|
||||
|
||||
# oracle
|
||||
Host purson
|
||||
User ubuntu
|
||||
HostName purson.antiprocess.net
|
||||
IdentityFile ~/.ssh/id_rsa
|
||||
|
||||
Host paimon
|
||||
User ivuorinen
|
||||
HostName paimon.antiprocess.net
|
||||
IdentityFile ~/.ssh/id_rsa
|
||||
|
||||
# hetzner
|
||||
Host baal
|
||||
User ivuorinen
|
||||
HostName baal.antiprocess.net
|
||||
|
||||
Submodule tools/dotbot updated: d1e83dc75a...abecc97bad
Submodule tools/dotbot-asdf deleted from 1ff44a2848
Reference in New Issue
Block a user