Compare commits

..

9 Commits

363 changed files with 5236 additions and 13746 deletions

View File

@@ -8,16 +8,13 @@ indent_style = space
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
[*.fish]
max_line_length = 80
[*.md] [*.md]
max_line_length = 100 max_line_length = 100
[*.lua] [*.lua]
max_line_length = 90 max_line_length = 120
[*.{php,fish}] [*.php]
indent_size = 4 indent_size = 4
[.git{ignore,modules}] [.git{ignore,modules}]

50
.gitattributes vendored
View File

@@ -1,4 +1,4 @@
## GITATTRIBUTES ## GITATTRIBUTES FOR WEB PROJECTS
# #
# These settings are for any web project. # These settings are for any web project.
# #
@@ -20,23 +20,20 @@
*.bat text eol=crlf *.bat text eol=crlf
*.cmd text eol=crlf *.cmd text eol=crlf
*.coffee text *.coffee text
*.css text diff=css eol=lf *.css text diff=css
*.fish text diff=shell eol=lf *.htm text diff=html
*.htm text diff=html eol=lf *.html text diff=html
*.html text diff=html eol=lf
*.inc text *.inc text
*.ini text *.ini text
*.js text *.js text
*.json text *.json text
*.jsx text *.jsx text
*.less text *.less text
*.lua text diff=lua eol=lf
*.ls text *.ls text
*.map text -diff *.map text -diff
*.od text *.od text
*.onlydata text *.onlydata text
*.php text diff=php *.php text diff=php
*.plist text eol=lf
*.pl text *.pl text
*.ps1 text eol=crlf *.ps1 text eol=crlf
*.py text diff=python *.py text diff=python
@@ -44,18 +41,15 @@
*.sass text *.sass text
*.scm text *.scm text
*.scss text diff=css *.scss text diff=css
*.sh text eol=lf diff=shell *.sh text eol=lf
.husky/* text eol=lf .husky/* text eol=lf
*.sql text *.sql text
*.styl text *.styl text
*.tag text *.tag text
*.tmux text eol=lf diff=tmux
*.ts text *.ts text
*.tsx text *.tsx text
*.vim text eol=lf
*.xml text *.xml text
*.xhtml text diff=html *.xhtml text diff=html
*.zsh text diff=zsh eol=lf
# Docker # Docker
Dockerfile text Dockerfile text
@@ -74,7 +68,6 @@ Dockerfile text
AUTHORS text AUTHORS text
CHANGELOG text CHANGELOG text
CHANGES text CHANGES text
CODEOWNERS text
CONTRIBUTING text CONTRIBUTING text
COPYING text COPYING text
copyright text copyright text
@@ -85,7 +78,6 @@ LICENSE text
NEWS text NEWS text
readme text readme text
*README* text *README* text
# Files literally named "TODO", not a todo list item
TODO text TODO text
# Templates # Templates
@@ -113,8 +105,6 @@ TODO text
*.config text *.config text
.editorconfig text .editorconfig text
.env text .env text
*.env text
*.env.* text
.gitattributes text .gitattributes text
.gitconfig text .gitconfig text
.htaccess text .htaccess text
@@ -123,8 +113,7 @@ package.json text eol=lf
package-lock.json text eol=lf -diff package-lock.json text eol=lf -diff
pnpm-lock.yaml text eol=lf -diff pnpm-lock.yaml text eol=lf -diff
.prettierrc text .prettierrc text
# Ensure yarn.lock shows textual diffs yarn.lock text -diff
yarn.lock text eol=lf
*.toml text *.toml text
*.yaml text *.yaml text
*.yml text *.yml text
@@ -219,38 +208,15 @@ Procfile text
*.gitignore text *.gitignore text
*.gitkeep text *.gitkeep text
.gitattributes text export-ignore .gitattributes export-ignore
*.gitattributes text export-ignore
.gitmodules text export-ignore
*.gitmodules text export-ignore
**/.gitignore export-ignore **/.gitignore export-ignore
**/.gitkeep export-ignore **/.gitkeep export-ignore
# Repo specials # Repo specials
local/bin/* text eol=lf diff=shell local/bin/* text eol=lf
local/bin/*.md text eol=lf diff=markdown
config/antigen.zsh text config/antigen.zsh text
git/* text git/* text
**/git/* text **/git/* text
**/alias text **/alias text
ssh/* text ssh/* text
ssh/shared.d/* text
ssh/local.d/* text
# Auto-generated rules - 2025-04-16 10:28:04
# Shell scripts detected by content
install text eol=lf diff=shell
# File extension-based rules
*.1 text eol=lf
*.applescript text eol=lf
*.d/work-git text eol=lf
*.dirs text eol=lf
*.example text eol=lf
*.itermcolors text eol=lf
*.locale text eol=lf
*.python-version text eol=lf
*.snippets text eol=lf
*.theme text eol=lf
*.yamlfmt text eol=lf
*.bats text eol=lf diff=shell

30
.github/AGENTS.md vendored
View File

@@ -1,30 +0,0 @@
# Guidelines for AI contributors
These instructions help language models work with this repository.
## Setup
1. Run `yarn install` to get linting tools and the Bats test framework.
## Formatting
- Format code and docs with Prettier and markdownlint:
```bash
yarn fix:prettier
yarn fix:markdown
```
- Shell scripts should pass `shellcheck`.
## Testing
- When code changes, run `yarn test` to execute Bats tests.
- If only comments or documentation change, tests may be skipped.
## Commits and PRs
- Use Semantic Commit messages: `type(scope): summary`.
- Keep PR titles in the same format.
<!-- vim: set ft=markdown spell spelllang=en_us cc=80 : -->

View File

@@ -60,7 +60,7 @@ representative at an online or offline event.
Instances of abusive, harassing, or otherwise unacceptable behavior may be Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at reported to the community leaders responsible for enforcement at
<ismo@ivuorinen.net>. ismo@ivuorinen.net.
All complaints will be reviewed and investigated promptly and fairly. All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the All community leaders are obligated to respect the privacy and security of the
@@ -116,7 +116,7 @@ the community.
This Code of Conduct is adapted from the [Contributor Covenant][homepage], This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at version 2.0, available at
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>. https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity). enforcement ladder](https://github.com/mozilla/diversity).
@@ -124,5 +124,5 @@ enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org [homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at For answers to common questions about this code of conduct, see the FAQ at
<https://www.contributor-covenant.org/faq>. Translations are available at https://www.contributor-covenant.org/faq. Translations are available at
<https://www.contributor-covenant.org/translations>. https://www.contributor-covenant.org/translations.

46
.github/README.md vendored
View File

@@ -43,12 +43,6 @@ see what interesting stuff you've done with it. Sharing is caring.
| `local/bin` | Helper scripts that I've collected or wrote. | | `local/bin` | Helper scripts that I've collected or wrote. |
| `scripts` | Setup scripts. | | `scripts` | Setup scripts. |
### Host specific configuration
Configurations under `hosts/<hostname>` are applied only when running on the
matching machine. Each host folder contains its own `install.conf.yaml` that
is processed by Dotbot during installation.
### dotfile folders ### dotfile folders
| Repo | Destination | Description | | Repo | Destination | Description |
@@ -64,21 +58,6 @@ is processed by Dotbot during installation.
Running `dfm` gives you a list of available commands. Running `dfm` gives you a list of available commands.
#### Documentation generation
`dfm docs` generates Markdown documentation under the `docs/` directory. The
subcommands are:
```bash
dfm docs alias # regenerate alias table
dfm docs folders # document interesting folders
dfm docs keybindings # update keybinding docs for tmux, nvim and others
dfm docs all # run every docs task
```
The `docs/` folder contains generated cheat sheets, keybindings and other
reference files. New documentation can be added without modifying this README.
## Configuration ## Configuration
The folder structure follows [XDG Base Directory Specification][xdg] where possible. The folder structure follows [XDG Base Directory Specification][xdg] where possible.
@@ -94,31 +73,6 @@ The folder structure follows [XDG Base Directory Specification][xdg] where possi
Please see [docs/folders.md][docs-folders] for more information. Please see [docs/folders.md][docs-folders] for more information.
## Managing submodules
This repository uses Git submodules for external dependencies. After cloning,
run:
```bash
git submodule update --init --recursive
```
To pull submodule updates later use:
```bash
git submodule update --remote --merge
```
The helper script `add-submodules.sh` documents how each submodule is added and
configured. Submodules are automatically updated by the
[update-submodules.yml](.github/workflows/update-submodules.yml) workflow.
## Testing
Shell scripts under `local/bin` are validated with [Bats](https://github.com/bats-core/bats-core).
Run `yarn test` to execute every test file. Bats is installed as a development
dependency, so run `yarn install` first if needed.
[dfm]: https://github.com/ivuorinen/dotfiles/blob/main/local/bin/dfm [dfm]: https://github.com/ivuorinen/dotfiles/blob/main/local/bin/dfm
[docs-folders]: https://github.com/ivuorinen/dotfiles/blob/main/docs/folders.md [docs-folders]: https://github.com/ivuorinen/dotfiles/blob/main/docs/folders.md
[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html [xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

View File

@@ -1,32 +1,18 @@
--- ---
# $schema: "https://json.schemastore.org/github-workflow.json"
name: Debug Changelog # Workflow name displayed on GitHub name: Debug Changelog # Workflow name displayed on GitHub
on: on:
workflow_dispatch: # Trigger manually workflow_dispatch: # Trigger manually
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs: jobs:
debug-changelog: debug-changelog:
runs-on: self-hosted runs-on: self-hosted
permissions: write-all
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@v4
- name: Create changelog text - name: Create changelog text
id: changelog id: changelog
uses: loopwerk/tag-changelog@941366edb8920e2071eae0449031830984b9f26e # v1.3.0 uses: loopwerk/tag-changelog@v1
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
config_file: .github/tag-changelog-config.js config_file: .github/tag-changelog-config.js
- name: 'Echo results' - name: 'Echo results'
id: output-changelog id: output-changelog
run: | run: |

View File

@@ -1,36 +1,40 @@
--- ---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json name: reviewdog
name: Lint Code Base on: [push]
on:
pull_request:
branches: [master, main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs: jobs:
Linter: linters:
name: PR Lint name: Linters
runs-on: ubuntu-latest runs-on: self-hosted
timeout-minutes: 15
permissions:
statuses: write
contents: read
packages: read
steps: steps:
- name: Checkout - uses: actions/checkout@v4
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: GitHub Actions
uses: reviewdog/action-actionlint@v1
- name: Yarn Lock Changes
uses: Simek/yarn-lock-changes@34017425198654c20162a4dfd4f238fbece9636f # v0.12.1
with: with:
token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
- name: Run PR Lint - name: detect-secrets
# https://github.com/ivuorinen/actions uses: reviewdog/action-detect-secrets@master
uses: ivuorinen/actions/pr-lint@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30 with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
- name: markdownlint
uses: reviewdog/action-markdownlint@v0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
- name: shfmt
uses: reviewdog/action-shfmt@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
shfmt_flags: |
--find
--list
--write
--diff
--simplify
--language-dialect bash
--indent 2
--binary-next-line
--case-indent
--space-redirects
--func-next-line

View File

@@ -1,48 +1,38 @@
--- ---
# $schema: "https://json.schemastore.org/github-workflow.json"
name: Release Daily State name: Release Daily State
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: '0 21 * * *' # 00:00 at Europe/Helsinki - cron: '0 21 * * *' # 00:00 at Europe/Helsinki
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs: jobs:
new-daily-release: new-daily-release:
runs-on: self-hosted runs-on: self-hosted
permissions:
permissions: write-all contents: write
outputs: outputs:
created: ${{ steps.daily-version.outputs.created }} created: ${{ steps.daily-version.outputs.created }}
version: ${{ steps.daily-version.outputs.version }} version: ${{ steps.daily-version.outputs.version }}
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@v4
- name: Create tag if necessary - name: Create tag if necessary
uses: fregante/daily-version-action@fb1a60b7c4daf1410cd755e360ebec3901e58588 # v2.1.3 uses: fregante/daily-version-action@v2
id: daily-version id: daily-version
- name: Create changelog text - name: Create changelog text
if: steps.daily-version.outputs.created if: steps.daily-version.outputs.created
id: changelog id: changelog
uses: loopwerk/tag-changelog@941366edb8920e2071eae0449031830984b9f26e # v1.3.0 uses: loopwerk/tag-changelog@v1
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
config_file: .github/tag-changelog-config.js config_file: .github/tag-changelog-config.js
- name: Create release - name: Create release
if: steps.daily-version.outputs.created if: steps.daily-version.outputs.created
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2 uses: actions/create-release@latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ steps.daily-version.outputs.version }} tag_name: ${{ steps.daily-version.outputs.version }}
name: Release ${{ steps.daily-version.outputs.version }} release_name: Release ${{ steps.daily-version.outputs.version }}
body: ${{ steps.changelog.outputs.changes }} body: ${{ steps.changelog.outputs.changes }}

View File

@@ -1,38 +1,24 @@
--- ---
# $schema: "https://json.schemastore.org/github-workflow.json"
name: Pre-commit autoupdate name: Pre-commit autoupdate
on: on:
schedule: schedule:
# At 04:00 on Monday and Thursday. # At 04:00 on Monday and Thursday.
- cron: '0 4 * * 1,4' - cron: "0 4 * * 1,4"
workflow_dispatch: workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs: jobs:
auto-update: auto-update:
runs-on: self-hosted runs-on: ubuntu-latest
permissions: permissions:
contents: write contents: write
pull-requests: write pull-requests: write
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@v4
- uses: actions/setup-python@v5.4.0
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
- run: pip install pre-commit && pre-commit autoupdate - 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: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
branch: update/pre-commit-hooks branch: update/pre-commit-hooks
title: 'chore: update pre-commit hooks' title: "chore: update pre-commit hooks"
commit-message: 'chore: update pre-commit hooks' commit-message: "chore: update pre-commit hooks"
body: Update versions of pre-commit hooks to latest version. body: Update versions of pre-commit hooks to latest version.

View File

@@ -1,5 +1,4 @@
--- ---
# $schema: "https://json.schemastore.org/github-workflow.json"
name: Semantic PR name: Semantic PR
on: on:
@@ -9,18 +8,11 @@ on:
- edited - edited
- synchronize - synchronize
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs: jobs:
semantic-pr: semantic-pr:
runs-on: self-hosted runs-on: self-hosted
steps: steps:
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3 - uses: amannn/action-semantic-pull-request@v5.5.3
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:

View File

@@ -1,5 +1,4 @@
--- ---
# $schema: "https://json.schemastore.org/github-workflow.json"
name: Sync labels name: Sync labels
# yamllint disable-line rule:truthy # yamllint disable-line rule:truthy
@@ -11,22 +10,14 @@ on:
- .github/workflows/sync-labels.yml - .github/workflows/sync-labels.yml
- .github/labels.yml - .github/labels.yml
schedule: schedule:
- cron: '34 5 * * *' - cron: "34 5 * * *"
workflow_call: workflow_call:
workflow_dispatch: workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs: jobs:
SyncLabels: SyncLabels:
runs-on: self-hosted
permissions: permissions:
issues: write issues: write
runs-on: ubuntu-latest
steps: steps:
- uses: ivuorinen/actions/sync-labels@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30 - uses: ivuorinen/actions/sync-labels@main

View File

@@ -1,38 +1,28 @@
--- ---
# $schema: "https://json.schemastore.org/github-workflow.json"
name: Update submodules name: Update submodules
on: on:
schedule: schedule:
# At 04:00 on Monday and Thursday. # At 04:00 on Monday and Thursday.
- cron: '0 4 * * 1' - cron: "0 4 * * 1,4"
workflow_dispatch: workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs: jobs:
update-submodules: update-submodules:
permissions:
contents: write
issues: write
pull-requests: write
runs-on: self-hosted runs-on: self-hosted
permissions: write-all
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@v4
with: with:
submodules: true submodules: true
fetch-depth: 2 fetch-depth: 0
token: ${{secrets.GITHUB_TOKEN}} token: ${{secrets.GITHUB_TOKEN}}
- name: Config Git User - name: Config Git User
run: | run: |
git config --global user.name "${{ github.actor }}" git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com" git config --global user.email "${{ github.actor }}@users.noreply.github.com"
- name: Update submodules - name: Update submodules
run: | run: |
git submodule sync git submodule sync
@@ -43,7 +33,7 @@ jobs:
echo "$name updated to $tag" echo "$name updated to $tag"
fi fi
' '
if git diff --quiet; then if git diff --quiet; then
echo "No updates for submodules." echo "No updates for submodules."
else else

13
.gitignore vendored
View File

@@ -3,8 +3,6 @@
*.bak *.bak
*.log *.log
*.socket *.socket
*.swp
*.old
*cache *cache
.env .env
.idea .idea
@@ -24,10 +22,6 @@ config/npm/npmrc
config/nvim/lazy-lock.json config/nvim/lazy-lock.json
config/nvim/spell/* config/nvim/spell/*
!config/nvim/spell/.gitkeep !config/nvim/spell/.gitkeep
config/git/local.d/*
!config/git/local.d/.gitkeep
config/vim/fzf
config/vim/plugged/*
config/zed/* config/zed/*
!config/zed/settings.json !config/zed/settings.json
config/zsh/.zcompdump config/zsh/.zcompdump
@@ -40,12 +34,5 @@ node_modules
ssh/local.d/* ssh/local.d/*
!ssh/local.d/.gitkeep !ssh/local.d/.gitkeep
config/fish/fish_variables config/fish/fish_variables
**/exports.secret.fish
**/exports-secret.fish **/exports-secret.fish
config/fish/completions/asdf.fish config/fish/completions/asdf.fish
config/vim/.netrwhist
config/vim/extra/*
config/gh/hosts.yml
dependency-check-report.html
local/bin/yabai
local/man/yabai.1

6
.gitmodules vendored
View File

@@ -80,6 +80,6 @@
shallow = true shallow = true
ignore = dirty ignore = dirty
[submodule "tmux/tmux-resurrect"] [submodule "dotbot-asdf"]
path = config/tmux/plugins/tmux-resurrect path = tools/dotbot-asdf
url = https://github.com/tmux-plugins/tmux-resurrect.git url = https://github.com/sobolevn/dotbot-asdf

View File

@@ -1,3 +1,5 @@
{ {
"diagnostics.globals": ["vim"] "diagnostics.globals": [
"vim"
]
} }

View File

@@ -13,6 +13,7 @@
"siblings_only": true "siblings_only": true
}, },
"required-headings": false, "required-headings": false,
"ol-prefix": false,
"ul-style": { "ul-style": {
"style": "dash" "style": "dash"
} }

View File

@@ -1,7 +1,6 @@
# only care about files that are directly under our control # only care about files that are directly under our control
config/cheat/cheatsheets/community/* config/cheat/cheatsheets/community/*
config/cheat/cheatsheets/tldr/* config/cheat/cheatsheets/tldr/*
config/op/plugins/used_plugins/*
config/tmux/plugins/* config/tmux/plugins/*
local/bin/asdf/* local/bin/asdf/*
tools/* tools/*

View File

@@ -1,29 +0,0 @@
---
# Configuration file for MegaLinter
# See all available variables at
# https://megalinter.io/configuration/ and in linters documentation
APPLY_FIXES: all
SHOW_ELAPSED_TIME: false # Show elapsed time at the end of MegaLinter run
PARALLEL: true
VALIDATE_ALL_CODEBASE: true
FILEIO_REPORTER: false # Generate file.io report
GITHUB_STATUS_REPORTER: true # Generate GitHub status report
IGNORE_GENERATED_FILES: true # Ignore generated files
JAVASCRIPT_DEFAULT_STYLE: prettier # Default style for JavaScript
PRINT_ALPACA: false # Print Alpaca logo in console
SARIF_REPORTER: true # Generate SARIF report
SHOW_SKIPPED_LINTERS: false # Show skipped linters in MegaLinter log
TYPESCRIPT_DEFAULT_STYLE: prettier # Default style for TypeScript
DISABLE_LINTERS:
- REPOSITORY_DEVSKIM
YAML_YAMLLINT_CONFIG_FILE: .yamllint.yml
MARKDOWN_MARKDOWNLINT_CONFIG_FILE: .markdownlint.json
JAVASCRIPT_ES_CONFIG_FILE: .eslintrc.json
TYPESCRIPT_ES_CONFIG_FILE: .eslintrc.json
FILTER_REGEX_EXCLUDE: >
(node_modules|tools|config/cheat/cheatsheets/community|config/cheat/cheatsheets/tldr|config/fzf|config/zsh|config/tmux/plugins)

2
.nvmrc
View File

@@ -1 +1 @@
22.17.0 22.14.0

View File

@@ -23,13 +23,13 @@ repos:
args: [--autofix, --no-sort-keys] args: [--autofix, --no-sort-keys]
- repo: https://github.com/igorshubovych/markdownlint-cli - repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.45.0 rev: v0.44.0
hooks: hooks:
- id: markdownlint - id: markdownlint
args: [-c, .markdownlint.json, --fix] args: [-c, .markdownlint.json, --fix]
- repo: https://github.com/adrienverge/yamllint - repo: https://github.com/adrienverge/yamllint
rev: v1.37.1 rev: v1.35.1
hooks: hooks:
- id: yamllint - id: yamllint
@@ -39,7 +39,7 @@ repos:
- id: shellcheck - id: shellcheck
- repo: https://github.com/scop/pre-commit-shfmt - repo: https://github.com/scop/pre-commit-shfmt
rev: v3.11.0-1 rev: v3.10.0-2
hooks: hooks:
- id: shfmt - id: shfmt
@@ -49,17 +49,11 @@ repos:
- id: actionlint - id: actionlint
- repo: https://github.com/renovatebot/pre-commit-hooks - repo: https://github.com/renovatebot/pre-commit-hooks
rev: 41.17.2 rev: 39.178.1
hooks: hooks:
- id: renovate-config-validator - id: renovate-config-validator
- repo: https://github.com/JohnnyMorganz/StyLua - repo: https://github.com/JohnnyMorganz/StyLua
rev: v2.1.0 rev: v2.0.2
hooks: hooks:
- id: stylua # or stylua-system / stylua-github - id: stylua # or stylua-system / stylua-github
- repo: https://github.com/hugoh/pre-commit-fish.git
rev: v1.2
hooks:
- id: fish_syntax
- id: fish_indent

View File

@@ -5,7 +5,6 @@ config/cheat/cheatsheets/community
config/cheat/cheatsheets/tldr config/cheat/cheatsheets/tldr
config/fzf/* config/fzf/*
config/nvim/* config/nvim/*
config/op/plugins/used_plugins/*
config/tmux/plugins/* config/tmux/plugins/*
config/zsh/* config/zsh/*
lazy-lock.json lazy-lock.json

View File

@@ -1 +1 @@
3.13.5 3.13.2

View File

@@ -11,6 +11,8 @@ git submodule add --name dotbot-include \
-f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include -f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include
git submodule add --name dotbot-pip \ git submodule add --name dotbot-pip \
-f https://github.com/sobolevn/dotbot-pip.git tools/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 # other repos
git submodule add --name cheat-community \ git submodule add --name cheat-community \
@@ -26,8 +28,6 @@ git submodule add --name tmux/tmux-continuum \
-f https://github.com/tmux-plugins/tmux-continuum config/tmux/plugins/tmux-continuum -f https://github.com/tmux-plugins/tmux-continuum config/tmux/plugins/tmux-continuum
git submodule add --name tmux/tmux-mode-indicator \ git submodule add --name tmux/tmux-mode-indicator \
-f https://github.com/MunifTanjim/tmux-mode-indicator.git config/tmux/plugins/tmux-mode-indicator -f https://github.com/MunifTanjim/tmux-mode-indicator.git config/tmux/plugins/tmux-mode-indicator
git submodule add --name tmux/tmux-resurrect \
-f https://github.com/tmux-plugins/tmux-resurrect.git config/tmux/plugins/tmux-resurrect
git submodule add --name tmux/tmux-sensible \ git submodule add --name tmux/tmux-sensible \
-f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible -f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible
git submodule add --name tmux/tmux-sessionist \ git submodule add --name tmux/tmux-sessionist \
@@ -57,6 +57,7 @@ folders=(
"config/tmux/plugins/tpm" "config/tmux/plugins/tpm"
"config/tmux/plugins/tmux" "config/tmux/plugins/tmux"
"config/tmux/plugins/tmux-menus" "config/tmux/plugins/tmux-menus"
"config/tmux/plugins/tmux-resurrect"
"tools/dotbot-crontab" "tools/dotbot-crontab"
"tools/dotbot-snap" "tools/dotbot-snap"
"config/nvim-kickstart" "config/nvim-kickstart"

View File

@@ -25,6 +25,3 @@ x-have antidot && {
PROMPT_DIRTRIM=3 PROMPT_DIRTRIM=3
PROMPT_COMMAND='PS1_CMD1=$(git branch --show-current 2>/dev/null)' 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\] ' 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"

View File

@@ -1 +1 @@
v22.14.0 lts/*

View File

@@ -22,6 +22,7 @@ FPATH="$ZSH_COMPLETIONS:$FPATH"
ZSH_COMPDUMP="$XDG_CACHE_HOME/zsh/zcompdump-${SHORT_HOST}-${ZSH_VERSION}" ZSH_COMPDUMP="$XDG_CACHE_HOME/zsh/zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
source "$DOTFILES/config/zsh/antidote.zsh" source "$DOTFILES/config/zsh/antidote.zsh"
# source "$DOTFILES/config/zsh/prompt.zsh"
# Function to source FZF configuration # Function to source FZF configuration
source_fzf_config() source_fzf_config()
@@ -60,6 +61,3 @@ bashcompinit
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
export P10K_CONFIG="$DOTFILES/config/zsh/p10k.zsh" export P10K_CONFIG="$DOTFILES/config/zsh/p10k.zsh"
[[ ! -f "$P10K_CONFIG" ]] || source "$P10K_CONFIG" [[ ! -f "$P10K_CONFIG" ]] || source "$P10K_CONFIG"
# Added by LM Studio CLI (lms)
export PATH="$PATH:$HOME/.lmstudio/bin"

View File

@@ -119,10 +119,6 @@ run = ['layout floating']
if.app-id = 'com.philipyoungg.session-setapp' # Session app (Setapp) if.app-id = 'com.philipyoungg.session-setapp' # Session app (Setapp)
run = ['layout floating'] run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.microsoft.rdc.macos' # Remote Desktop
run = ['layout floating']
# Possible values: (qwerty|dvorak) # Possible values: (qwerty|dvorak)
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping # See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
[key-mapping] [key-mapping]

View File

@@ -7,8 +7,6 @@ x-have eza && {
alias ls="eza -h -s=type --git --icons --group-directories-first" alias ls="eza -h -s=type --git --icons --group-directories-first"
} }
alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"'
# Easier navigation: .., ..., .... # Easier navigation: .., ..., ....
alias ..="cd .." alias ..="cd .."
alias ...="cd ../.." alias ...="cd ../.."

View File

@@ -1,15 +0,0 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/aqua-yaml.json
# aqua - Declarative CLI Version Manager
# https://aquaproj.github.io/
# checksum:
# enabled: true
# require_checksum: true
# supported_envs:
# - all
registries:
- type: standard
ref: v4.346.0 # renovate: depName=aquaproj/aqua-registry
packages:
- name: cli/cli
version: 'v2.69.0'

View File

@@ -1,8 +1,6 @@
// These are golang packages I use, // These are golang packages I use,
// so they should be available with all versions // so they should be available with all versions
// Aqua is a package manager like asdf, or Brew
github.com/aquaproj/aqua/v2/cmd/aqua@latest
// Git Profile allows you to switch between user profiles in git repos // Git Profile allows you to switch between user profiles in git repos
github.com/dotzero/git-profile@v1.4.0 github.com/dotzero/git-profile@v1.4.0
// An extensible command line tool or library to format yaml files. // An extensible command line tool or library to format yaml files.

View File

@@ -75,6 +75,7 @@ cheatpaths:
path: ~/.dotfiles/config/cheat/cheatsheets/personal path: ~/.dotfiles/config/cheat/cheatsheets/personal
tags: [personal] tags: [personal]
readonly: false readonly: false
# While it requires no configuration here, it's also worth noting that # While it requires no configuration here, it's also worth noting that
# cheat will automatically append directories named '.cheat' within the # cheat will automatically append directories named '.cheat' within the
# current working directory to the 'cheatpath'. This can be very useful if # current working directory to the 'cheatpath'. This can be very useful if

View File

@@ -213,7 +213,7 @@ get_sha256sum()
# $2 - filename (string) # $2 - filename (string)
# #
# Returns 1 when replaceable, 0 when not replaceable. # Returns 1 when replaceable, 0 when not replaceable.
replaceable() replacable()
{ {
FILE1="$1" FILE1="$1"
FILE2="$2" FILE2="$2"

View File

@@ -1,108 +0,0 @@
# 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 'edit 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
# Go to the directory where my work codes are stored
function .s --wraps='cd ~/Code/s' --description 'cd ~/Code/s'
cd ~/Code/s $argv
end
# Go to the directory where my personal codes are stored
function .p --wraps='cd ~/Code/ivuorinen' --description 'cd ~/Code/ivuorinen'
cd ~/Code/ivuorinen $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
function configure_tide --description 'Configure tide with the lean style and my preferences'
tide configure \
--auto \
--style=Lean \
--prompt_colors='True color' \
--show_time=No \
--lean_prompt_height='Two lines' \
--prompt_connection=Disconnected \
--prompt_spacing=Sparse \
--icons='Many icons' \
--transient=Yes
end
# Abbreviations for git
abbr --add gau git add -u
abbr --add gaa git add -A
abbr --add gcv git commit -v
# Abbreviations for composer
abbr --add c composer
abbr --add cu composer update
abbr --add ci composer install
# Abbreviations for php artisan
abbr --add .pa php artisan
abbr --add .paf php artisan fresh
abbr --add .pam php artisan migrate
abbr --add .pams php artisan migrate --seed
abbr --add .pat php artisan test
# Abbreviations for npm
abbr --add .n npm
abbr --add .nt npm test --if-present
abbr --add .nb npm run build --if-present
abbr --add .ns npm run start --if-present

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/completions/app.fish:v7.0.1 # @halostatue/fish-macos/completions/app.fish:v7.0.0
complete --command app --erase complete --command app --erase

View File

@@ -1,125 +0,0 @@
# aqua fish shell completion
function __fish_aqua_no_subcommand --description 'Test if there has been any subcommand yet'
for i in (commandline -opc)
if contains -- $i init install i generate g update-aqua upa update-checksum upc update up completion bash zsh fish help h help h which info remove rm vacuum cp policy allow deny init init-policy exec list generate-registry gr version root-dir help h
return 1
end
end
return 0
end
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l log-level -r -d 'log level'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l config -s c -r -d 'configuration file path'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l disable-cosign -d 'Disable Cosign verification'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l disable-slsa -d 'Disable SLSA verification'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l disable-github-artifact-attestation -d 'Disable GitHub Artifact Attestations verification'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l trace -r -d 'trace output file path'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l cpu-profile -r -d 'cpu profile output file path'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l help -s h -d 'show help'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l version -s v -d 'print the version'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l help -s h -d 'show help'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l version -s v -d 'print the version'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'init' -d 'Create a configuration file if it doesn\'t exist'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l use-import-dir -s u -d 'Use import_dir'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l import-dir -s i -r -d 'import_dir'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l create-dir -s d -d 'Create a directory named aqua and create aqua.yaml in it'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'install i' -d 'Install tools'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l only-link -s l -d 'create links but skip downloading packages'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l test -d 'This flag was deprecated and had no meaning from aqua v2.0.0. This flag will be removed in aqua v3.0.0. https://github.com/aquaproj/aqua/issues/1691'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l all -s a -d 'install all aqua configuration packages'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l tags -s t -r -d 'filter installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l exclude-tags -r -d 'exclude installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'generate g' -d 'Search packages in registries and output the configuration interactively'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l f -r -d 'the file path of packages list. When the value is "-", the list is passed from the standard input'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l i -d 'Insert packages to configuration file'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l pin -d 'Pin version'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l g -d 'Insert packages in a global configuration file'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l detail -s d -d 'Output additional fields such as description and link'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l o -r -d 'inserted file'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l select-version -s s -d 'Select the installed version interactively. Default to display 30 versions, use --limit/-l to change it.'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l limit -s l -r -d 'The maximum number of versions. Non-positive number refers to no limit.'
complete -c aqua -n '__fish_seen_subcommand_from update-aqua upa' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'update-aqua upa' -d 'Update aqua'
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'update-checksum upc' -d 'Create or Update aqua-checksums.json'
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l all -s a -d 'Create or Update all aqua-checksums.json including global configuration'
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l deep -d 'This flag was deprecated and had no meaning from aqua v2.0.0. This flag will be removed in aqua v3.0.0. https://github.com/aquaproj/aqua/issues/1769'
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l prune -d 'Remove unused checksums'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'update up' -d 'Update registries and packages'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l i -d 'Select packages with fuzzy finder'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l select-version -s s -d 'Select the version with fuzzy finder. Default to display 30 versions, use --limit/-l to change it.'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l only-registry -s r -d 'Update only registries'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l only-package -s p -d 'Update only packages'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l limit -s l -r -d 'The maximum number of versions. Non-positive number refers to no limit.'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l tags -s t -r -d 'filter installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l exclude-tags -r -d 'exclude installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from completion' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'completion' -d 'Output shell completion script for bash, zsh, or fish'
complete -c aqua -n '__fish_seen_subcommand_from completion' -f -l help -s h -d 'show help'
complete -c aqua -n '__fish_seen_subcommand_from bash' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'bash' -d 'Output shell completion script for bash'
complete -c aqua -n '__fish_seen_subcommand_from zsh' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'zsh' -d 'Output shell completion script for zsh'
complete -c aqua -n '__fish_seen_subcommand_from fish' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'fish' -d 'Output shell completion script for fish'
complete -c aqua -n '__fish_seen_subcommand_from fish' -f -l help -s h -d 'show help'
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from fish' -a 'help h' -d 'Shows a list of commands or help for one command'
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'help h' -d 'Shows a list of commands or help for one command'
complete -c aqua -n '__fish_seen_subcommand_from which' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'which' -d 'Output the absolute file path of the given command'
complete -c aqua -n '__fish_seen_subcommand_from which' -f -l version -s v -d 'Output the given package version'
complete -c aqua -n '__fish_seen_subcommand_from info' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'info' -d 'Show information'
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'remove rm' -d 'Uninstall packages'
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l all -s a -d 'uninstall all packages'
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l mode -s m -r -d 'Removed target modes. l: link, p: package'
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l i -d 'Select packages with a Fuzzy Finder'
complete -c aqua -n '__fish_seen_subcommand_from vacuum' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'vacuum' -d 'Remove unused installed packages'
complete -c aqua -n '__fish_seen_subcommand_from vacuum' -f -l init -d 'Create timestamp files.'
complete -c aqua -n '__fish_seen_subcommand_from vacuum' -f -l days -s d -r -d 'Expiration days'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'cp' -d 'Copy executable files in a directory'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l o -r -d 'destination directory'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l all -s a -d 'install all aqua configuration packages'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l tags -s t -r -d 'filter installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l exclude-tags -r -d 'exclude installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from policy' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'policy' -d 'Manage Policy'
complete -c aqua -n '__fish_seen_subcommand_from allow' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a 'allow' -d 'Allow a policy file'
complete -c aqua -n '__fish_seen_subcommand_from deny' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a 'deny' -d 'Deny a policy file'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a 'init' -d 'Create a policy file if it doesn\'t exist'
complete -c aqua -n '__fish_seen_subcommand_from init-policy' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'init-policy' -d '[Deprecated] Create a policy file if it doesn\'t exist'
complete -c aqua -n '__fish_seen_subcommand_from exec' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'exec' -d 'Execute tool'
complete -c aqua -n '__fish_seen_subcommand_from list' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'list' -d 'List packages in Registries'
complete -c aqua -n '__fish_seen_subcommand_from list' -f -l installed -s i -d 'List installed packages'
complete -c aqua -n '__fish_seen_subcommand_from list' -f -l all -s a -d 'List global configuration packages too'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'generate-registry gr' -d 'Generate a registry\'s package configuration'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l out-testdata -r -d 'A file path where the testdata is outputted'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l cmd -r -d 'A list of commands joined with commas \',\''
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l generate-config -s c -r -d 'A configuration file path'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l limit -s l -r -d 'the maximum number of versions'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l deep -d 'This flag was deprecated and had no meaning from aqua v2.15.0. This flag will be removed in aqua v3.0.0. https://github.com/aquaproj/aqua/issues/2351'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l init -d 'Generate a configuration file'
complete -c aqua -n '__fish_seen_subcommand_from version' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'version' -d 'Show version'
complete -c aqua -n '__fish_seen_subcommand_from root-dir' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'root-dir' -d 'Output the aqua root directory (AQUA_ROOT_DIR)'
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'help h' -d 'Shows a list of commands or help for one command'

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/completions/finder.fish:v7.0.1 # @halostatue/fish-macos/completions/finder.fish:v7.0.0
complete --command finder --erase complete --command finder --erase

View File

@@ -1,176 +0,0 @@
# fish completion for git-profile -*- shell-script -*-
function __git_profile_debug
set -l file "$BASH_COMP_DEBUG_FILE"
if test -n "$file"
echo "$argv" >> $file
end
end
function __git_profile_perform_completion
__git_profile_debug "Starting __git_profile_perform_completion"
# Extract all args except the last one
set -l args (commandline -opc)
# Extract the last arg and escape it in case it is a space
set -l lastArg (string escape -- (commandline -ct))
__git_profile_debug "args: $args"
__git_profile_debug "last arg: $lastArg"
set -l requestComp "$args[1] __complete $args[2..-1] $lastArg"
__git_profile_debug "Calling $requestComp"
set -l results (eval $requestComp 2> /dev/null)
# Some programs may output extra empty lines after the directive.
# Let's ignore them or else it will break completion.
# Ref: https://github.com/spf13/cobra/issues/1279
for line in $results[-1..1]
if test (string trim -- $line) = ""
# Found an empty line, remove it
set results $results[1..-2]
else
# Found non-empty line, we have our proper output
break
end
end
set -l comps $results[1..-2]
set -l directiveLine $results[-1]
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
# completions must be prefixed with the flag
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
__git_profile_debug "Comps: $comps"
__git_profile_debug "DirectiveLine: $directiveLine"
__git_profile_debug "flagPrefix: $flagPrefix"
for comp in $comps
printf "%s%s\n" "$flagPrefix" "$comp"
end
printf "%s\n" "$directiveLine"
end
# This function does two things:
# - Obtain the completions and store them in the global __git_profile_comp_results
# - Return false if file completion should be performed
function __git_profile_prepare_completions
__git_profile_debug ""
__git_profile_debug "========= starting completion logic =========="
# Start fresh
set --erase __git_profile_comp_results
set -l results (__git_profile_perform_completion)
__git_profile_debug "Completion results: $results"
if test -z "$results"
__git_profile_debug "No completion, probably due to a failure"
# Might as well do file completion, in case it helps
return 1
end
set -l directive (string sub --start 2 $results[-1])
set --global __git_profile_comp_results $results[1..-2]
__git_profile_debug "Completions are: $__git_profile_comp_results"
__git_profile_debug "Directive is: $directive"
set -l shellCompDirectiveError 1
set -l shellCompDirectiveNoSpace 2
set -l shellCompDirectiveNoFileComp 4
set -l shellCompDirectiveFilterFileExt 8
set -l shellCompDirectiveFilterDirs 16
if test -z "$directive"
set directive 0
end
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
if test $compErr -eq 1
__git_profile_debug "Received error directive: aborting."
# Might as well do file completion, in case it helps
return 1
end
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
if test $filefilter -eq 1; or test $dirfilter -eq 1
__git_profile_debug "File extension filtering or directory filtering not supported"
# Do full file completion instead
return 1
end
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
__git_profile_debug "nospace: $nospace, nofiles: $nofiles"
# If we want to prevent a space, or if file completion is NOT disabled,
# we need to count the number of valid completions.
# To do so, we will filter on prefix as the completions we have received
# may not already be filtered so as to allow fish to match on different
# criteria than the prefix.
if test $nospace -ne 0; or test $nofiles -eq 0
set -l prefix (commandline -t | string escape --style=regex)
__git_profile_debug "prefix: $prefix"
set -l completions (string match -r -- "^$prefix.*" $__git_profile_comp_results)
set --global __git_profile_comp_results $completions
__git_profile_debug "Filtered completions are: $__git_profile_comp_results"
# Important not to quote the variable for count to work
set -l numComps (count $__git_profile_comp_results)
__git_profile_debug "numComps: $numComps"
if test $numComps -eq 1; and test $nospace -ne 0
# We must first split on \t to get rid of the descriptions to be
# able to check what the actual completion will be.
# We don't need descriptions anyway since there is only a single
# real completion which the shell will expand immediately.
set -l split (string split --max 1 \t $__git_profile_comp_results[1])
# Fish won't add a space if the completion ends with any
# of the following characters: @=/:.,
set -l lastChar (string sub -s -1 -- $split)
if not string match -r -q "[@=/:.,]" -- "$lastChar"
# In other cases, to support the "nospace" directive we trick the shell
# by outputting an extra, longer completion.
__git_profile_debug "Adding second completion to perform nospace directive"
set --global __git_profile_comp_results $split[1] $split[1].
__git_profile_debug "Completions are now: $__git_profile_comp_results"
end
end
if test $numComps -eq 0; and test $nofiles -eq 0
# To be consistent with bash and zsh, we only trigger file
# completion when there are no other completions
__git_profile_debug "Requesting file completion"
return 1
end
end
return 0
end
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
# so we can properly delete any completions provided by another script.
# Only do this if the program can be found, or else fish may print some errors; besides,
# the existing completions will only be loaded if the program can be found.
if type -q "git-profile"
# The space after the program name is essential to trigger completion for the program
# and not completion of the program name itself.
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
complete --do-complete "git-profile " > /dev/null 2>&1
end
# Remove any pre-existing completions for the program since we will be handling all of them.
complete -c git-profile -e
# The call to __git_profile_prepare_completions will setup __git_profile_comp_results
# which provides the program's completion choices.
complete -c git-profile -n '__git_profile_prepare_completions' -f -a '$__git_profile_comp_results'

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/completions/mac.fish:v7.0.1 # @halostatue/fish-macos/completions/mac.fish:v7.0.0
complete --command mac --erase complete --command mac --erase

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/completions/manp.fish:v7.0.1 # @halostatue/fish-macos/completions/manp.fish:v7.0.0
complete --command manp --erase complete --command manp --erase
complete --command manp --wraps man complete --command manp --wraps man

View File

@@ -0,0 +1,21 @@
complete --command nvm --exclusive
complete --command nvm --exclusive --long version --description "Print version"
complete --command nvm --exclusive --long help --description "Print help"
complete --command nvm --long silent --description "Suppress standard output"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments install --description "Download and activate the specified Node version"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments use --description "Activate the specified Node version in the current shell"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list --description "List installed Node versions"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list-remote --description "List available Node versions to install"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments current --description "Print the currently-active Node version"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from install" --arguments "(
test -e $nvm_data && string split ' ' <$nvm_data/.index
)"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use" --arguments "(_nvm_list | string split ' ')"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments uninstall --description "Uninstall the specified Node version"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from uninstall" --arguments "(
_nvm_list | string split ' ' | string replace system ''
)"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use uninstall" --arguments "(
set --query nvm_default_version && echo default
)"

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/completions/ql.fish:v7.0.1 # @halostatue/fish-macos/completions/ql.fish:v7.0.0
complete --erase --command ql complete --erase --command ql
complete --command ql --wraps qlmanage complete --command ql --wraps qlmanage

View File

@@ -0,0 +1,87 @@
function __fish_eza_install --on-event fish-eza_install
set -Ux __FISH_EZA_BASE_ALIASES l ll lg le lt lc lo
set -Ux __FISH_EZA_EXPANDED a d i id aa ad ai aid aad aai aaid
set -Ux __FISH_EZA_EXPANDED_OPT_NAME LA LD LI LID LAA LAD LAI LAID LAAD LAAI LAAID
set -Ux __FISH_EZA_OPT_NAMES
set -Ux __FISH_EZA_ALIASES
set -Ux __FISH_EZA_SORT_OPTIONS name .name size ext mod old acc cr inode
set -Ux EZA_STANDARD_OPTIONS "--group" "--header" "--group-directories-first"
# Base aliases
set -Ux EZA_L_OPTIONS
set -Ux EZA_LL_OPTIONS "--long"
set -Ux EZA_LG_OPTIONS "--git" "--git-ignore" "--long"
set -Ux EZA_LE_OPTIONS "--extended" "--long"
set -Ux EZA_LT_OPTIONS "--tree" "--level"
set -Ux EZA_LC_OPTIONS "--across"
set -Ux EZA_LO_OPTIONS "--oneline"
# Extended aliases
set -Ux EZA_LI_OPTIONS "--icons"
set -Ux EZA_LD_OPTIONS "--only-dirs"
set -Ux EZA_LID_OPTIONS "--icons" "--only-dirs"
set -Ux EZA_LA_OPTIONS "--all" "--binary"
set -Ux EZA_LAD_OPTIONS "--all" "--binary" "--only-dirs"
set -Ux EZA_LAI_OPTIONS "--all" "--binary" "--icons"
set -Ux EZA_LAID_OPTIONS "--all" "--binary" "--icons" "--only-dirs"
set -Ux EZA_LAA_OPTIONS "--all" "--all" "--binary"
set -Ux EZA_LAAD_OPTIONS "--all" "--all" "--binary" "--only-dirs"
set -Ux EZA_LAAI_OPTIONS "--all" "--all" "--binary" "--icons"
set -Ux EZA_LAAID_OPTIONS "--all" "--all" "--binary" "--icons" "--only-dirs"
for a in $__FISH_EZA_BASE_ALIASES
set -l opt_name (string join '_' "EZA" (string upper $a) "OPTIONS")
if test $a = "ll"
alias --save "$a" "eza_git"
else
alias --save "$a" "eza \$EZA_STANDARD_OPTIONS \$$opt_name"
end
set -a __FISH_EZA_OPT_NAMES "$opt_name"
set -a __FISH_EZA_ALIASES "$a"
for i in (seq (count $__FISH_EZA_EXPANDED))
set -l name "$a$__FISH_EZA_EXPANDED[$i]"
# --tree is useless given --all --all
if test $name = "ltaa"; or test $name = "ltaac"
continue
end
set -l exp_opt_name (string join '_' "EZA" $__FISH_EZA_EXPANDED_OPT_NAME[$i] "OPTIONS")
if string match --quiet 'll*' "$name"
alias --save "$name" "eza_git \$$exp_opt_name"
else
alias --save "$name" "eza \$EZA_STANDARD_OPTIONS \$$exp_opt_name \$$opt_name"
end
set -a __FISH_EZA_ALIASES "$name"
if not contains $exp_opt_name $__FISH_EZA_OPT_NAMES
set -a __FISH_EZA_OPT_NAMES $exp_opt_name
end
end
end
end
function __fish_eza_update --on-event fish-eza_update
__fish_eza_uninstall
__fish_eza_install
end
function __fish_eza_uninstall --on-event fish-eza_uninstall
set --erase EZA_STANDARD_OPTIONS
for a in $__FISH_EZA_ALIASES
functions --erase $a
funcsave $a
end
for opt in $__FISH_EZA_OPT_NAMES
set --erase $opt
end
set --erase __FISH_EZA_BASE_ALIASES
set --erase __FISH_EZA_ALIASES
set --erase __FISH_EZA_EXPANDED
set --erase __FISH_EZA_EXPANDED_OPT_NAME
set --erase __FISH_EZA_OPT_NAMES
set --erase __FISH_EZA_SORT_OPTIONS
end

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/conf.d/halostatue_fish_macos.fish:v7.0.1 # @halostatue/fish-macos/conf.d/halostatue_fish_macos.fish:v7.0.0
function _halostatue_fish_macos_uninstall -e halostatue_fish_macos_uninstall function _halostatue_fish_macos_uninstall -e halostatue_fish_macos_uninstall
set --function functions app finder has_app mac manp note ql remind set --function functions app finder has_app mac manp note ql remind

View File

@@ -0,0 +1,28 @@
set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
set --query nvm_data || set --global nvm_data $XDG_DATA_HOME/nvm
function _nvm_install --on-event nvm_install
test ! -d $nvm_data && command mkdir -p $nvm_data
echo "Downloading the Node distribution index..." 2>/dev/null
_nvm_index_update
end
function _nvm_update --on-event nvm_update
set --query --universal nvm_data && set --erase --universal nvm_data
set --query --universal nvm_mirror && set --erase --universal nvm_mirror
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
end
function _nvm_uninstall --on-event nvm_uninstall
command rm -rf $nvm_data
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
set --names | string replace --filter --regex -- "^nvm" "set --erase nvm" | source
functions --erase (functions --all | string match --entire --regex -- "^_nvm_")
end
if status is-interactive && set --query nvm_default_version && ! set --query nvm_current_version
nvm use --silent $nvm_default_version
end

View File

@@ -1,25 +0,0 @@
status is-interactive || exit
function _puffer_fish_key_bindings --on-variable fish_key_bindings
set -l modes
if test "$fish_key_bindings" = fish_default_key_bindings
set modes default insert
else
set modes insert default
end
bind --mode $modes[1] . _puffer_fish_expand_dots
bind --mode $modes[1] ! _puffer_fish_expand_bang
bind --mode $modes[1] '$' _puffer_fish_expand_lastarg
bind --mode $modes[2] --erase . ! '$'
end
_puffer_fish_key_bindings
set -l uninstall_event puffer_fish_key_bindings_uninstall
function _$uninstall_event --on-event $uninstall_event
bind -e .
bind -e !
bind -e '$'
end

View File

@@ -1,52 +0,0 @@
# Sponge version
set --global sponge_version 1.1.0
# Allow to repeat previous command by default
if not set --query --universal sponge_delay
set --universal sponge_delay 2
end
# Purge entries both after `sponge_delay` entries and on exit by default
if not set --query --universal sponge_purge_only_on_exit
set --universal sponge_purge_only_on_exit false
end
# Add default filters
if not set --query --universal sponge_filters
set --universal sponge_filters sponge_filter_failed sponge_filter_matched
end
# Don't filter out commands that already have been in the history by default
if not set --query --universal sponge_allow_previously_successful
set --universal sponge_allow_previously_successful true
end
# Consider `0` the only successful exit code by default
if not set --query --universal sponge_successful_exit_codes
set --universal sponge_successful_exit_codes 0
end
# No active regex patterns by default
if not set --query --universal sponge_regex_patterns
set --universal sponge_regex_patterns
end
# Attach event handlers
functions --query \
_sponge_on_prompt \
_sponge_on_preexec \
_sponge_on_postexec \
_sponge_on_exit
# Initialize empty state for the first run
function _sponge_install --on-event sponge_install
set --global _sponge_current_command ''
set --global _sponge_current_command_exit_code 0
set --global _sponge_current_command_previously_in_history false
end
# Clean up variables
function _sponge_uninstall --on-event sponge_uninstall
_sponge_clear_state
set --erase sponge_version
end

View File

@@ -2,35 +2,12 @@
# │ fish/config.fish │ # │ fish/config.fish │
# ╰──────────────────────────────────────────────────────────╯ # ╰──────────────────────────────────────────────────────────╯
test -e "$HOME/.config/fish/alias.fish" &&
source "$HOME/.config/fish/alias.fish"
test -e "$HOME/.config/fish/exports.fish" && test -e "$HOME/.config/fish/exports.fish" &&
source "$HOME/.config/fish/exports.fish" source "$HOME/.config/fish/exports.fish"
test -e "$HOME/.dotfiles/config/fzf/key-bindings.fish" &&
source "$HOME/.dotfiles/config/fzf/key-bindings.fish"
if status is-interactive if status is-interactive
# Commands to run in interactive shell # Commands to run in interactive sessions can go here
# 1Password plugins if op command is available # Start tmux if not already running and not in SSH
type -q op; and test -e "$HOME/.config/op/plugins.sh" && open-tmux # defined in functions/open-tmux.fish
source "$HOME/.config/op/plugins.sh"
# version manager initializers
type -q rbenv; and source (rbenv init -|psub)
type -q pyenv; and source (pyenv init -|psub)
type -q pyenv; and source (pyenv virtualenv-init -|psub)
type -q goenv; and source (goenv init -|psub)
# type -q fnm; and fnm env --use-on-cd --shell fish | source
type -q load_nvm; and load_nvm > /dev/stderr
# Start tmux if not already running and not in SSH
open-tmux # defined in functions/open-tmux.fish
end end
# Added by LM Studio CLI (lms)
set -gx PATH $PATH $HOME/.lmstudio/bin
# vim: ft=fish ts=4 sw=4 et:

View File

@@ -1,38 +1,34 @@
#!/usr/bin/env fish #!/usr/bin/env fish
# XDG Base Directory Specification # Set XDG environment variables
set -q XDG_CONFIG_HOME; or set -x XDG_CONFIG_HOME "$HOME/.config" test -z "$XDG_CONFIG_HOME" && set -x XDG_CONFIG_HOME "$HOME/.config"
set -q XDG_DATA_HOME; or set -x XDG_DATA_HOME "$HOME/.local/share" test -z "$XDG_DATA_HOME" && set -x XDG_DATA_HOME "$HOME/.local/share"
set -q XDG_CACHE_HOME; or set -x XDG_CACHE_HOME "$HOME/.cache" test -z "$XDG_CACHE_HOME" && set -x XDG_CACHE_HOME "$HOME/.cache"
set -q XDG_STATE_HOME; or set -x XDG_STATE_HOME "$HOME/.local/state" test -z "$XDG_STATE_HOME" && set -x XDG_STATE_HOME "$HOME/.local/state"
set -q XDG_BIN_HOME; or set -x XDG_BIN_HOME "$HOME/.local/bin" test -z "$XDG_BIN_HOME" && set -x XDG_BIN_HOME "$HOME/.local/bin"
set -q XDG_RUNTIME_DIR; or set -x XDG_RUNTIME_DIR "$HOME/.local/run" test -z "$XDG_RUNTIME_DIR" && set -x XDG_RUNTIME_DIR "$HOME/.local/run"
# Dotfiles directory # Set dotfiles directory
set -q DOTFILES; or set -x DOTFILES "$HOME/.dotfiles" test -z "$DOTFILES" && set -x DOTFILES "$HOME/.dotfiles"
# Editor settings # Set other environment variables
set -q EDITOR; or set -x EDITOR nvim test -z "$EDITOR" && set -x EDITOR "nvim"
set -q VISUAL; or set -x VISUAL code test -z "$VISUAL" && set -x VISUAL "code"
set -q HOSTNAME; or set -x HOSTNAME (hostname -s) test -z "$HOSTNAME" && set -x HOSTNAME (hostname -s)
# Add local bin to path # Add local bin to path
fish_add_path "$XDG_BIN_HOME" fish_add_path "$XDG_BIN_HOME"
# Add cargo bin to path # Set npm environment variables
fish_add_path "$XDG_SHARE_HOME/cargo/bin" test -z "$NPM_CONFIG_PREFIX" && set -x NPM_CONFIG_PREFIX "$XDG_DATA_HOME/npm"
fish_add_path "$NPM_CONFIG_PREFIX/bin"
# NPM/NVM configuration # Set yarn environment variables
set -q NVM_DIR; or set -x NVM_DIR "$XDG_DATA_HOME/nvm" test -z "$YARN_GLOBAL_FOLDER" && set -x YARN_GLOBAL_FOLDER "$XDG_DATA_HOME/yarn"
fish_add_path "$NVM_DIR/bin"
fish_add_path "$XDG_CONFIG_HOME/nvm"
# Yarn configuration
set -q YARN_GLOBAL_FOLDER; or set -x YARN_GLOBAL_FOLDER "$XDG_DATA_HOME/yarn"
fish_add_path "$YARN_GLOBAL_FOLDER/bin" fish_add_path "$YARN_GLOBAL_FOLDER/bin"
# Mason configuration # Set mason environment variables
set -q MASON_HOME; or set -x MASON_HOME "$XDG_DATA_HOME/nvim/mason" test -z "$MASON_HOME" && set -x MASON_HOME "$XDG_DATA_HOME/nvim/mason"
fish_add_path "$MASON_HOME/bin" fish_add_path "$MASON_HOME/bin"
# Set Neovim environment variables # Set Neovim environment variables
@@ -46,142 +42,136 @@ 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" test -z "$NVIM_UNDO_PATH" && set -x NVIM_UNDO_PATH "$NVIM_STATE/undo"
# Ansible configuration # Ansible configuration
set -q ANSIBLE_HOME; or set -x ANSIBLE_HOME "$XDG_CONFIG_HOME/ansible" # https://docs.ansible.com/ansible/latest/reference_appendices/config.html
set -q ANSIBLE_CONFIG; or set -x ANSIBLE_CONFIG "$ANSIBLE_HOME/ansible.cfg" test -z "$ANSIBLE_HOME" && set -x ANSIBLE_HOME "$XDG_CONFIG_HOME/ansible"
set -q ANSIBLE_GALAXY_CACHE_DIR; or set -x ANSIBLE_GALAXY_CACHE_DIR "$XDG_CACHE_HOME/ansible/galaxy_cache" test -z "$ANSIBLE_CONFIG" && set -x ANSIBLE_CONFIG "$ANSIBLE_HOME/ansible.cfg"
test -z "$ANSIBLE_GALAXY_CACHE_DIR" && set -x ANSIBLE_GALAXY_CACHE_DIR "$XDG_CACHE_HOME/ansible/galaxy_cache"
x-dc "$ANSIBLE_HOME" x-dc "$ANSIBLE_HOME"
x-dc "$ANSIBLE_GALAXY_CACHE_DIR" x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
# AWS configuration # AWS configuration
set -q AWS_CONFIG_FILE; or set -x AWS_CONFIG_FILE "$XDG_STATE_HOME/aws/config" test -z "$AWS_CONFIG_FILE" && 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" test -z "$AWS_SHARED_CREDENTIALS_FILE" && 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" test -z "$AWS_SESSION_TOKEN" && 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" test -z "$AWS_DATA_PATH" && set -x AWS_DATA_PATH "$XDG_DATA_HOME/aws"
set -q AWS_DEFAULT_OUTPUT; or set -x AWS_DEFAULT_OUTPUT table test -z "$AWS_DEFAULT_OUTPUT" && set -x AWS_DEFAULT_OUTPUT "table"
set -q AWS_CONFIGURE_KEYS; or set -x AWS_CONFIGURE_KEYS true test -z "$AWS_CONFIGURE_KEYS" && set -x AWS_CONFIGURE_KEYS "true"
set -q AWS_CONFIGURE_SESSION; or set -x AWS_CONFIGURE_SESSION true test -z "$AWS_CONFIGURE_SESSION" && set -x AWS_CONFIGURE_SESSION "true"
set -q AWS_CONFIGURE_SESSION_DURATION; or set -x AWS_CONFIGURE_SESSION_DURATION 7200 test -z "$AWS_CONFIGURE_SESSION_DURATION" && set -x AWS_CONFIGURE_SESSION_DURATION "7200"
set -q AWS_CONFIGURE_SESSION_MFA; or set -x AWS_CONFIGURE_SESSION_MFA true test -z "$AWS_CONFIGURE_SESSION_MFA" && set -x AWS_CONFIGURE_SESSION_MFA "true"
set -q AWS_CONFIGURE_PROFILE; or set -x AWS_CONFIGURE_PROFILE true test -z "$AWS_CONFIGURE_PROFILE" && set -x AWS_CONFIGURE_PROFILE "true"
set -q AWS_CONFIGURE_PROMPT; or set -x AWS_CONFIGURE_PROMPT true test -z "$AWS_CONFIGURE_PROMPT" && set -x AWS_CONFIGURE_PROMPT "true"
set -q AWS_CONFIGURE_PROMPT_DEFAULT; or set -x AWS_CONFIGURE_PROMPT_DEFAULT true test -z "$AWS_CONFIGURE_PROMPT_DEFAULT" && set -x AWS_CONFIGURE_PROMPT_DEFAULT "true"
# Brew configuration # Brew configuration
set -q HOMEBREW_NO_ANALYTICS; or set -x HOMEBREW_NO_ANALYTICS true test -z "$HOMEBREW_NO_ANALYTICS" && set -x HOMEBREW_NO_ANALYTICS "true"
set -q HOMEBREW_NO_ENV_HINTS; or set -x HOMEBREW_NO_ENV_HINTS true test -z "$HOMEBREW_NO_ENV_HINTS" && set -x HOMEBREW_NO_ENV_HINTS "true"
set -q HOMEBREW_BUNDLE_MAS_SKIP; or set -x HOMEBREW_BUNDLE_MAS_SKIP true test -z "$HOMEBREW_BUNDLE_MAS_SKIP" && set -x HOMEBREW_BUNDLE_MAS_SKIP "true"
set -q HOMEBREW_BUNDLE_FILE; or set -x HOMEBREW_BUNDLE_FILE "$XDG_CONFIG_HOME/homebrew/Brewfile" test -z "$HOMEBREW_BUNDLE_FILE" && set -x HOMEBREW_BUNDLE_FILE "$XDG_CONFIG_HOME/homebrew/Brewfile"
# Composer configuration # Set composer environment variables
set -q COMPOSER_HOME; or set -x COMPOSER_HOME "$XDG_STATE_HOME/composer" test -z "$COMPOSER_HOME" && set -x COMPOSER_HOME "$XDG_STATE_HOME/composer"
set -q COMPOSER_BIN; or set -x COMPOSER_BIN "$COMPOSER_HOME/vendor/bin" test -z "$COMPOSER_BIN" && set -x COMPOSER_BIN "$COMPOSER_HOME/vendor/bin"
fish_add_path "$COMPOSER_BIN" fish_add_path "$COMPOSER_BIN"
# direnv configuration # direnv, https://direnv.net/
set -q DIRENV_LOG_FORMAT; or set -x DIRENV_LOG_FORMAT '' # https://direnv.net/docs/hook.html
# Set the hook to show the direnv message in a different color
# export DIRENV_LOG_FORMAT=$'\033[2mdirenv: %s\033[0m'
test -z "$DIRENV_LOG_FORMAT" && set -x DIRENV_LOG_FORMAT ''
# Docker configuration # docker, https://docs.docker.com/engine/reference/commandline/cli/
set -q DOCKER_CONFIG; or set -x DOCKER_CONFIG "$XDG_CONFIG_HOME/docker" test -z "$DOCKER_CONFIG" && set -x DOCKER_CONFIG "$XDG_CONFIG_HOME/docker"
x-dc "$DOCKER_CONFIG" x-dc "$DOCKER_CONFIG"
set -q DOCKER_HIDE_LEGACY_COMMANDS; or set -x DOCKER_HIDE_LEGACY_COMMANDS true test -z "$DOCKER_HIDE_LEGACY_COMMANDS" && set -x DOCKER_HIDE_LEGACY_COMMANDS "true"
set -q DOCKER_SCAN_SUGGEST; or set -x DOCKER_SCAN_SUGGEST false # Docke: Disable snyk ad
test -z "$DOCKER_SCAN_SUGGEST" && set -x DOCKER_SCAN_SUGGEST "false"
# FNM / Node.js configuration # fzf
set -q FNM_DIR; or set -x FNM_DIR "$XDG_DATA_HOME/fnm" test -z "$FZF_BASE" && set -x FZF_BASE "$XDG_CONFIG_HOME/fzf"
fish_add_path "$FNM_DIR" test -z "$FZF_DEFAULT_OPTS" && set -x FZF_DEFAULT_OPTS '--height 40% --tmux bottom,40% --layout reverse --border top'
set -q FNM_VERSION_FILE_STRATEGY; or set -x FNM_VERSION_FILE_STRATEGY recursive
set -q FNM_USE_ON_CD; or set -x FNM_USE_ON_CD true
set -q FNM_COREPACK_ENABLED; or set -x FNM_COREPACK_ENABLED true
set -q FNM_RESOLVE_ENGINES; or set -x FNM_RESOLVE_ENGINES true
# fzf configuration # GnuPG
set -q FZF_BASE; or set -x FZF_BASE "$XDG_CONFIG_HOME/fzf" # https://gnupg.org/documentation/manuals/gnupg/Invoking-GPG.html
set -q FZF_DEFAULT_OPTS; or set -x FZF_DEFAULT_OPTS '--height 40% --tmux bottom,40% --layout reverse --border top' test -z "$GNUPGHOME" && set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
# GnuPG configuration # Go
set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg" test -z "$GOPATH" && set -x GOPATH "$XDG_DATA_HOME/go"
test -z "$GOBIN" && set -x GOBIN "$XDG_BIN_HOME"
fish_add_path "$GOBIN"
# Go configuration # NPM: Add npm packages to path
# set -q GOPATH; or set -x GOPATH "$XDG_DATA_HOME/go" if x-have node;
set -q GOBIN; or set -x GOBIN "$XDG_BIN_HOME" set -x NVM_NODE_BIN_DIR $(dirname $(which node))
fish_add_path "$NVM_NODE_BIN_DIR"
end
set -q GOENV_ROOT; or set -x GOENV_ROOT "$XDG_DATA_HOME/goenv" # 1Password
set -q GOENV_RC_FILE; or set -x GOENV_RC_FILE "$XDG_CONFIG_HOME/goenv/goenvrc.fish" test -z "$OP_CACHE" && set -x OP_CACHE "$XDG_STATE_HOME/1password"
# 1Password configuration # Python
set -q OP_CACHE; or set -x OP_CACHE "$XDG_STATE_HOME/1password" test -z "$WORKON_HOME" && set -x WORKON_HOME "$XDG_DATA_HOME/virtualenvs"
test -z "$PYENV_ROOT" && set -x PYENV_ROOT "$XDG_DATA_HOME/pyenv"
# 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" fish_add_path "$PYENV_ROOT/bin"
# Poetry configuration ## Set poetry environment variables
set -q POETRY_HOME; or set -x POETRY_HOME "$XDG_DATA_HOME/poetry" test -z "$POETRY_HOME" && set -x POETRY_HOME "$XDG_DATA_HOME/poetry"
fish_add_path "$POETRY_HOME/bin" fish_add_path "$POETRY_HOME/bin"
# Rust / cargo configuration # Rust / cargo
set -q CARGO_HOME; or set -x CARGO_HOME "$XDG_DATA_HOME/cargo" test -z "$CARGO_HOME" && set -x CARGO_HOME "$XDG_DATA_HOME/cargo"
set -q CARGO_BIN_HOME; or set -x CARGO_BIN_HOME "$XDG_BIN_HOME" test -z "$CARGO_BIN_HOME" && set -x CARGO_BIN_HOME "$XDG_BIN_HOME"
set -q RUSTUP_HOME; or set -x RUSTUP_HOME "$XDG_DATA_HOME/rustup" test -z "$RUSTUP_HOME" && set -x RUSTUP_HOME "$XDG_DATA_HOME/rustup"
set -x RUST_WITHOUT "clippy,docs,rls" set -x RUST_WITHOUT "clippy,docs,rls"
fish_add_path "$CARGO_HOME/bin" fish_add_path "$CARGO_BIN_HOME"
fish_add_path "$XDG_SHARE_HOME/bob/nvim-bin" fish_add_path "$XDG_SHARE_HOME/bob/nvim-bin"
# screen configuration # screen
set -q SCREENRC; or set -x SCREENRC "$XDG_CONFIG_HOME/misc/screenrc" # https://www.gnu.org/software/screen/manual/screen.html
test -z "$SCREENRC" && set -x SCREENRC "$XDG_CONFIG_HOME/misc/screenrc"
# Sonarlint configuration # Sonarlint
set -q SONARLINT_HOME; or set -x SONARLINT_HOME "$XDG_DATA_HOME/sonarlint" test -z "$SONARLINT_HOME" && set -x SONARLINT_HOME "$XDG_DATA_HOME/sonarlint"
set -q SONARLINT_BIN; or set -x SONARLINT_BIN "$XDG_BIN_HOME" test -z "$SONARLINT_BIN" && set -x SONARLINT_BIN "$XDG_BIN_HOME"
set -q SONARLINT_USER_HOME; or set -x SONARLINT_USER_HOME "$XDG_DATA_HOME/sonarlint" test -z "$SONARLINT_USER_HOME" && set -x SONARLINT_USER_HOME "$XDG_DATA_HOME/sonarlint"
# Terraform configuration # Terraform
set -q TF_DATA_DIR; or set -x TF_DATA_DIR "$XDG_STATE_HOME/terraform" test -z "$TF_DATA_DIR" && 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" test -z "$TF_CLI_CONFIG_FILE" && 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" test -z "$TF_PLUGIN_CACHE_DIR" && set -x TF_PLUGIN_CACHE_DIR "$XDG_CACHE_HOME/terraform/plugin-cache"
# tmux configuration # tmux
set -q TMUX_TMPDIR; or set -x TMUX_TMPDIR "$XDG_STATE_HOME/tmux" # https://tmux.github.io/
set -q TMUX_CONF_DIR; or set -x TMUX_CONF_DIR "$XDG_CONFIG_HOME/tmux" test -z "$TMUX_TMPDIR" && set -x TMUX_TMPDIR "$XDG_STATE_HOME/tmux"
set -q TMUX_PLUGINS; or set -x TMUX_PLUGINS "$TMUX_CONF_DIR/plugins" test -z "$TMUX_CONF_DIR" && set -x TMUX_CONF_DIR "$XDG_CONFIG_HOME/tmux"
set -q TMUX_CONF; or set -x TMUX_CONF "$TMUX_CONF_DIR/tmux.conf" test -z "$TMUX_PLUGINS" && set -x TMUX_PLUGINS "$TMUX_CONF_DIR/plugins"
set -q TMUX_PLUGIN_MANAGER_PATH; or set -x TMUX_PLUGIN_MANAGER_PATH "$TMUX_PLUGINS" test -z "$TMUX_CONF" && set -x TMUX_CONF "$TMUX_CONF_DIR/tmux.conf"
test -z "$TMUX_PLUGIN_MANAGER_PATH" && set -x TMUX_PLUGIN_MANAGER_PATH "$TMUX_PLUGINS"
# Source tmux theme activation script for Fish shell # tms
if test -f "$DOTFILES/config/tmux/theme-activate.fish" # https://github.com/jrmoulton/tmux-sessionizer
source "$DOTFILES/config/tmux/theme-activate.fish" test -z "$TMS_CONFIG_FILE" && set -x TMS_CONFIG_FILE "$XDG_CONFIG_HOME/tms/config.toml"
end
# tms configuration # wakatime
set -q TMS_CONFIG_FILE; or set -x TMS_CONFIG_FILE "$XDG_CONFIG_HOME/tms/config.toml" # https://github.com/wakatime/wakatime-cli
test -z "$WAKATIME_HOME" && set -x WAKATIME_HOME "$XDG_STATE_HOME/wakatime"
# wakatime configuration
set -q WAKATIME_HOME; or set -x WAKATIME_HOME "$XDG_STATE_HOME/wakatime"
x-dc "$WAKATIME_HOME" x-dc "$WAKATIME_HOME"
# Miscellaneous configuration # misc
set -q CHEAT_USE_FZF; or set -x CHEAT_USE_FZF true test -z "$CHEAT_USE_FZF" && set -x CHEAT_USE_FZF "true"
set -q SQLITE_HISTORY; or set -x SQLITE_HISTORY "$XDG_CACHE_HOME/sqlite/sqlite_history" test -z "$SQLITE_HISTORY" && set -x SQLITE_HISTORY "$XDG_CACHE_HOME/sqlite/sqlite_history"
# Source additional configuration files if they exist # Source exports-secret.fish if it exists
if test -f "$DOTFILES/config/fish/exports-secret.fish" if test -f "$DOTFILES/config/fish/exports-secret.fish"
source "$DOTFILES/config/fish/exports-secret.fish" source "$DOTFILES/config/fish/exports-secret.fish"
end end
# Source $DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish if it exists
if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish" if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish"
source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish" source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish"
end end
# Source $DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish if it exists
if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish" if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish"
source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish" source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish"
end end
# Configure tide prompt
set -gx tide_prompt_transient_enabled true
set -gx tide_prompt_add_newline_before true
set -gx tide_prompt_min_cols 34
set -gx tide_prompt_pad_items false
set -gx tide_left_prompt_items context pwd git node python rustc java php pulumi ruby go gcloud kubectl distrobox toolbox terraform aws nix_shell crystal elixir zig newline character
set -gx tide_right_prompt_items status jobs direnv
set -gx tide_context_hostname_parts 1

View File

@@ -1,10 +1,11 @@
jorgebucaran/fisher jorgebucaran/fisher
jorgebucaran/nvm.fish
ilancosman/tide@v6 ilancosman/tide@v6
jethrokuan/z jethrokuan/z
halostatue/fish-macos@v7 halostatue/fish-macos@v7
ehfive/fish-bash2env
jgusta/paths
danhper/fish-ssh-agent danhper/fish-ssh-agent
halostatue/fish-brew@v3 halostatue/fish-brew@v3
plttn/fish-eza
edc/bass edc/bass
meaningful-ooo/sponge
nickeb96/puffer-fish
jgusta/paths

View File

@@ -0,0 +1,4 @@
function .c --wraps='cd ~/Code' --description 'alias .c=cd ~/Code'
cd ~/Code $argv
end

View File

@@ -0,0 +1,4 @@
function .d --wraps='cd ~/.dotfiles' --description 'alias .d=cd ~/.dotfiles'
cd ~/.dotfiles $argv
end

View File

@@ -0,0 +1,56 @@
#!/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

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_bundleid.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_app_bundleid.fish:v7.0.0
function __macos_app_bundleid function __macos_app_bundleid
argparse --name 'app bundleid' x/exact a/all h/help q/quiet s/short -- $argv argparse --name 'app bundleid' x/exact a/all h/help q/quiet s/short -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_find.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_app_find.fish:v7.0.0
function __macos_app_find function __macos_app_find
argparse --name 'app find' x/exact a/all q/quiet h/help -- $argv argparse --name 'app find' x/exact a/all q/quiet h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_frontmost.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_app_frontmost.fish:v7.0.0
function __macos_app_frontmost::info function __macos_app_frontmost::info
set --function value (lsappinfo info -only $argv[2] $argv[1] | string split =)[2] set --function value (lsappinfo info -only $argv[2] $argv[1] | string split =)[2]

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_icon.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_app_icon.fish:v7.0.0
function __macos_app_icon function __macos_app_icon
argparse --name 'app quit' x/exact h/help 'o/output=' 'w/width=' -- $argv argparse --name 'app quit' x/exact h/help 'o/output=' 'w/width=' -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_quit.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_app_quit.fish:v7.0.0
function __macos_app_quit function __macos_app_quit
argparse --name 'app quit' x/exact r/restart h/help -- $argv argparse --name 'app quit' x/exact r/restart h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_cd.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_cd.fish:v7.0.0
function __macos_finder_cd function __macos_finder_cd
argparse --name 'finder cd' h/help -- $argv argparse --name 'finder cd' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_clean.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_clean.fish:v7.0.0
function __macos_finder_clean function __macos_finder_clean
argparse --name 'finder clean' h/help -- $argv argparse --name 'finder clean' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_column.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_column.fish:v7.0.0
function __macos_finder_column function __macos_finder_column
argparse --name 'finder column' h/help -- $argv argparse --name 'finder column' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_desktop_icons.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_desktop_icons.fish:v7.0.0
function __macos_finder_desktop_icons function __macos_finder_desktop_icons
argparse --name 'finder desktop-icons' h/help -- $argv argparse --name 'finder desktop-icons' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_hidden.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_hidden.fish:v7.0.0
function __macos_finder_hidden function __macos_finder_hidden
argparse --name 'finder hidden' h/help -- $argv argparse --name 'finder hidden' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_icon.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_icon.fish:v7.0.0
function __macos_finder_icon function __macos_finder_icon
argparse --name 'finder icon' h/help -- $argv argparse --name 'finder icon' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_list.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_list.fish:v7.0.0
function __macos_finder_list function __macos_finder_list
argparse --name 'finder list' h/help -- $argv argparse --name 'finder list' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_pushd.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_pushd.fish:v7.0.0
function __macos_finder_pushd function __macos_finder_pushd
argparse --name 'finder pushd' h/help -- $argv argparse --name 'finder pushd' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_pwd.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_pwd.fish:v7.0.0
function __macos_finder_pwd function __macos_finder_pwd
argparse --name 'finder pwd' h/help -- $argv argparse --name 'finder pwd' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_quarantine.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_quarantine.fish:v7.0.0
function __macos_finder_quarantine::run function __macos_finder_quarantine::run
set --query argv[1] set --query argv[1]

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_selected.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_selected.fish:v7.0.0
function __macos_finder_selected function __macos_finder_selected
argparse --name 'finder selected' h/help -- $argv argparse --name 'finder selected' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_track.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_track.fish:v7.0.0
function __macos_finder_track function __macos_finder_track
argparse --name 'finder track' h/help -- $argv argparse --name 'finder track' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_untrack.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_untrack.fish:v7.0.0
function __macos_finder_untrack function __macos_finder_untrack
argparse --name 'finder untrack' h/help -- $argv argparse --name 'finder untrack' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_update.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_finder_update.fish:v7.0.0
function __macos_finder_update function __macos_finder_update
argparse --name 'finder update' h/help -- $argv argparse --name 'finder update' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_airdrop.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_airdrop.fish:v7.0.0
function __macos_mac_airdrop function __macos_mac_airdrop
argparse --name 'mac airdrop' h/help -- $argv argparse --name 'mac airdrop' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_airport.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_airport.fish:v7.0.0
function __macos_mac_airport::ssid function __macos_mac_airport::ssid
__macos_mac_airport::run -I | string replace --filter --regex '\s+SSID: (\S+)' '$1' __macos_mac_airport::run -I | string replace --filter --regex '\s+SSID: (\S+)' '$1'

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_brightness.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_brightness.fish:v7.0.0
function __macos_mac_brightness function __macos_mac_brightness
argparse --name 'mac brightness' h/help -- $argv argparse --name 'mac brightness' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_defaults_query.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_defaults_query.fish:v7.0.0
function __macos_mac_defaults_query function __macos_mac_defaults_query
if set --function value (defaults read $argv[1] $argv[2] 2>/dev/null) if set --function value (defaults read $argv[1] $argv[2] 2>/dev/null)

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_flushdns.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_flushdns.fish:v7.0.0
function __macos_mac_flushdns function __macos_mac_flushdns
argparse --name 'mac flushdns' h/help -- $argv argparse --name 'mac flushdns' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_font_smoothing.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_font_smoothing.fish:v7.0.0
function __macos_mac_font_smoothing function __macos_mac_font_smoothing
argparse --name 'mac font-smoothing' h/help -- $argv argparse --name 'mac font-smoothing' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_lsclean.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_lsclean.fish:v7.0.0
function __macos_mac_lsclean function __macos_mac_lsclean
argparse --name 'mac lsclean' h/help -- $argv argparse --name 'mac lsclean' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_mail.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_mail.fish:v7.0.0
# Speed up Mail.app by vacuuming the Envelope Index # Speed up Mail.app by vacuuming the Envelope Index
# - Code from: http://web.archive.org/web/20071008123746/http://www.hawkwings.net/2007/03/03/scripts-to-automate-the-mailapp-envelope-speed-trick/ # - Code from: http://web.archive.org/web/20071008123746/http://www.hawkwings.net/2007/03/03/scripts-to-automate-the-mailapp-envelope-speed-trick/

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_proxy_icon.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_proxy_icon.fish:v7.0.0
function __macos_mac_proxy_icon function __macos_mac_proxy_icon
argparse --name 'mac proxy-icon' h/help q/query -- $argv argparse --name 'mac proxy-icon' h/help q/query -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_serialnumber.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_serialnumber.fish:v7.0.0
function __macos_mac_serialnumber function __macos_mac_serialnumber
argparse --name 'mac serialnumber' h/help c/copy -- $argv argparse --name 'mac serialnumber' h/help c/copy -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_touchid.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_touchid.fish:v7.0.0
function __macos_mac_touchid function __macos_mac_touchid
argparse --name 'mac touchid' h/help q/quiet -- $argv argparse --name 'mac touchid' h/help q/quiet -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_touchid_sudo.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_touchid_sudo.fish:v7.0.0
# Massively simplified. This version _only_ works if /etc/pam.d/sudo includes `auth # Massively simplified. This version _only_ works if /etc/pam.d/sudo includes `auth
# include sudo_local` and requires manual removal of `pam_reattach` and `pam_tid` from # include sudo_local` and requires manual removal of `pam_reattach` and `pam_tid` from

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_transparency.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_transparency.fish:v7.0.0
function __macos_mac_transparency function __macos_mac_transparency
argparse --name 'mac transparency' h/help q/query -- $argv argparse --name 'mac transparency' h/help q/query -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_version.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_version.fish:v7.0.0
function __macos_mac_version function __macos_mac_version
argparse \ argparse \

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_vol.fish:v7.0.1 # @halostatue/fish-macos/functions/__macos_mac_vol.fish:v7.0.0
function __macos_mac_vol function __macos_mac_vol
argparse --name 'mac vol' h/help -- $argv argparse --name 'mac vol' h/help -- $argv

View File

@@ -0,0 +1,20 @@
function _nvm_index_update
test ! -d $nvm_data && command mkdir -p $nvm_data
set --local index $nvm_data/.index
if not command curl -q --location --silent $nvm_mirror/index.tab >$index.temp
command rm -f $index.temp
echo "nvm: Can't update index, host unavailable: \"$nvm_mirror\"" >&2
return 1
end
command awk -v OFS=\t '
/v0.9.12/ { exit } # Unsupported
NR > 1 {
print $1 (NR == 2 ? " latest" : $10 != "-" ? " lts/" tolower($10) : "")
}
' $index.temp >$index
command rm -f $index.temp
end

View File

@@ -0,0 +1,14 @@
function _nvm_list
set --local versions $nvm_data/*
set --query versions[1] &&
string match --entire --regex -- (
string replace --all -- $nvm_data/ "" $versions |
string match --regex -- "v\d.+" |
string escape --style=regex |
string join "|"
) <$nvm_data/.index
command --all node |
string match --quiet --invert --regex -- "^$nvm_data" && echo system
end

View File

@@ -0,0 +1,4 @@
function _nvm_version_activate --argument-names ver
set --global --export nvm_current_version $ver
set --prepend PATH $nvm_data/$ver/bin
end

View File

@@ -0,0 +1,5 @@
function _nvm_version_deactivate --argument-names ver
test "$nvm_current_version" = "$ver" && set --erase nvm_current_version
set --local index (contains --index -- $nvm_data/$ver/bin $PATH) &&
set --erase PATH[$index]
end

View File

@@ -1,9 +0,0 @@
function _puffer_fish_expand_bang
switch (commandline -t)
case '!'
commandline -t $history[1]
case '*'
commandline -i '!'
end
end

View File

@@ -1,9 +0,0 @@
function _puffer_fish_expand_dots -d 'expand ... to ../.. etc'
set -l cmd (commandline --cut-at-cursor)
set -l split (string split -- ' ' $cmd)
if string match --quiet --regex -- '^(\.\./)*\.\.$' $split[-1]
commandline --insert '/..'
else
commandline --insert '.'
end
end

View File

@@ -1,9 +0,0 @@
function _puffer_fish_expand_lastarg
switch (commandline -t)
case '!'
commandline -t ""
commandline -f history-token-search-backward
case '*'
commandline -i '$'
end
end

View File

@@ -1,5 +0,0 @@
function _sponge_clear_state
set --erase --global _sponge_current_command
set --erase --global _sponge_current_command_exit_code
set --erase --global _sponge_current_command_previously_in_history
end

View File

@@ -1,3 +0,0 @@
function _sponge_on_exit --on-event fish_exit
sponge_delay=0 _sponge_remove_from_history
end

View File

@@ -1,24 +0,0 @@
function _sponge_on_postexec --on-event fish_postexec
set --global _sponge_current_command_exit_code $status
# Remove command from the queue if it's been added previously
if set --local index (contains --index -- $_sponge_current_command $_sponge_queue)
set --erase _sponge_queue[$index]
end
# Ignore empty commands
if test -n $_sponge_current_command
set --local command ''
# Run filters
for filter in $sponge_filters
if $filter \
$_sponge_current_command \
$_sponge_current_command_exit_code \
$_sponge_current_command_previously_in_history
set command $_sponge_current_command
break
end
end
set --prepend --global _sponge_queue $command
end
end

View File

@@ -1,16 +0,0 @@
function _sponge_on_preexec --on-event fish_preexec \
--argument-names command
_sponge_clear_state
set --global _sponge_current_command $command
builtin history search --case-sensitive --exact --max=1 --null $command \
| read --local --null found_entries
# If a command is in the history and in the queue, ignore it, like if it wasnt in the history
if test (count $found_entries) -ne 0; and not contains $command $_sponge_queue
set --global _sponge_current_command_previously_in_history true
else
set --global _sponge_current_command_previously_in_history false
end
end

View File

@@ -1,5 +0,0 @@
function _sponge_on_prompt --on-event fish_prompt
if test $sponge_purge_only_on_exit = false
_sponge_remove_from_history
end
end

View File

@@ -1,9 +0,0 @@
function _sponge_remove_from_history
while test (count $_sponge_queue) -gt $sponge_delay
builtin history delete --case-sensitive --exact -- $_sponge_queue[-1]
set --erase _sponge_queue[-1]
end
builtin history save
end

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/app.fish:v7.0.1 # @halostatue/fish-macos/functions/app.fish:v7.0.0
function app --description 'Operate on macOS applications' function app --description 'Operate on macOS applications'
argparse --stop-nonopt h/help -- $argv argparse --stop-nonopt h/help -- $argv

Some files were not shown because too many files have changed in this diff Show More