Compare commits

...

45 Commits

Author SHA1 Message Date
github-actions[bot]
bfe46f0a90 chore: update pre-commit hooks (#170) 2025-08-18 19:36:04 +03:00
renovate[bot]
a60ce374b5 fix(container): update image python (3.13.6 → 3.13.7) (#169) 2025-08-16 13:24:14 +03:00
5f59851c7a chore(tooling): use yarn for linting scripts (#149)
* chore(tooling): use yarn for linting scripts

* chore: fixes and tweaks

* chore(ci): more permissions

* chore: clean up, lint fixes

* chore: clean up, lint fixes

* chore: clean up, lint fixes

* chore(lint): fix yamllint errors and warnings

* chore(lint): lint fixes

* chore(lint): lint fixes
2025-08-15 09:06:22 +03:00
renovate[bot]
9c68e8b05c feat(github-action)!: Update actions/checkout (v4.3.0 → v5.0.0) (#164)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-14 10:48:05 +03:00
84e3351125 fix(ci): tweaks 2025-08-14 10:06:20 +03:00
363ae046c8 fix(ci): update submodules 2025-08-14 09:53:43 +03:00
github-actions[bot]
9ac792b924 chore: update pre-commit hooks (#168) 2025-08-14 09:29:36 +03:00
renovate[bot]
e377d9212a feat(github-action)!: Update amannn/action-semantic-pull-request (v5.5.3 → v6.0.1) (#167) 2025-08-14 02:29:11 +03:00
renovate[bot]
125fd027f7 feat(github-action): update actions/checkout (v4.2.2 → v4.3.0) (#166)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-13 13:56:09 +00:00
renovate[bot]
ecd099edbd fix(github-action): update ivuorinen/actions (25.8.4 → 25.8.11) (#165)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-13 13:56:02 +00:00
3baa7547e1 chore(config): update tmux-window-name and tmux.conf 2025-08-13 16:21:51 +03:00
github-actions[bot]
782eeb78ec chore: update pre-commit hooks (#162)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-08-11 14:03:56 +03:00
renovate[bot]
7b211489fd fix(container): update image python (3.13.5 → 3.13.6) (#161) 2025-08-09 12:44:08 +03:00
d3ec2e7332 chore(config): nvim: telescope file finding and preview
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-08-07 10:59:13 +03:00
github-actions[bot]
0b11f6456a chore: update pre-commit hooks (#160) 2025-08-07 10:07:08 +03:00
renovate[bot]
58064a7b9b feat(github-action): update ivuorinen/actions (25.7.28 → 25.8.4) (#159)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 02:51:52 +00:00
github-actions[bot]
4723d5c61c chore: update pre-commit hooks (#158) 2025-08-04 07:35:25 +03:00
renovate[bot]
4e0e4b8883 fix(github-action): update ivuorinen/actions (25.7.21 → 25.7.28) (#156)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 10:43:13 +00:00
renovate[bot]
5b6f43e22f chore(deps): update node.js to v22.18.0 (#157) 2025-08-02 13:42:23 +03:00
ca594f9b2d chore(config): zed: php formatter
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-30 18:09:30 +03:00
685a843d78 chore(config): tms: use rose pine colors
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-30 18:08:56 +03:00
470acd8956 chore(config): fish: add ivuorinen/phpenv.fish
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-30 18:08:34 +03:00
a6907d890e chore: update configs, add .go-version 2025-07-29 14:13:52 +03:00
renovate[bot]
c37fdb7cd3 fix(github-action): update ivuorinen/actions (25.7.14 → 25.7.21) (#154)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 12:44:02 +03:00
bad1ce2a34 chore(fish): add bob completions
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-24 11:43:33 +03:00
e67d4285b6 chore(nvim): tweak plugins
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-24 11:42:58 +03:00
f577ad28a9 chore(deps): update yarn dependencies
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-24 11:41:39 +03:00
github-actions[bot]
e9ac5e48ac chore: update pre-commit hooks (#155)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-07-24 11:15:17 +03:00
github-actions[bot]
cc01f4fdde chore: update pre-commit hooks (#153)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-07-21 09:08:43 +03:00
52a5f226e9 chore(nvim): plugin cleanup
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-18 17:10:38 +03:00
github-actions[bot]
9b94302270 chore: update pre-commit hooks (#152)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-07-17 11:49:04 +03:00
renovate[bot]
fe7e9173d0 fix(github-action): update ivuorinen/actions (25.7.7 → 25.7.14) (#151)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 20:57:27 +03:00
renovate[bot]
fb5aae3deb chore(deps): update node.js to v22.17.1 (#150)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 15:43:54 +03:00
036392d38a fix(ci): editorconfig-linter config version 2025-07-16 13:51:44 +03:00
2cb11292d4 chore(fish): add pinact completions file 2025-07-16 13:39:04 +03:00
a163d6338a chore(config): upgrade editorconfig-linter config 2025-07-16 13:38:27 +03:00
191488c081 chore(git): add masf to git profile 2025-07-13 21:09:32 +03:00
cc47614280 chore(git): move gitignore to ignore 2025-07-13 21:09:11 +03:00
91cde60dba fix(scripts): resolve shellcheck warnings (#148) 2025-07-10 17:44:36 +03:00
5dea757707 chore(config): remove aqua from go packages
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-10 12:38:54 +03:00
f8833fca73 chore(zed): add templ, add requirements
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-10 12:38:26 +03:00
9cd99dbc88 chore(zed): update theme, update config
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-10 12:37:26 +03:00
14f67cb5ca chore(yabai): ignore golang
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-10 12:19:24 +03:00
github-actions[bot]
4ce76fbd70 chore: update pre-commit hooks (#147) 2025-07-10 09:36:39 +03:00
renovate[bot]
ca68803fb9 feat(github-action): update ivuorinen/actions (25.6.30 → 25.7.7) (#146) 2025-07-09 15:29:09 +03:00
60 changed files with 2047 additions and 2764 deletions

View File

@@ -12,7 +12,7 @@ trim_trailing_whitespace = true
max_line_length = 80
[*.md]
max_line_length = 100
max_line_length = 120
[*.lua]
max_line_length = 90
@@ -38,6 +38,9 @@ space_redirects = true
keep_padding = false
function_next_line = true # --func-next-line
[config/git/config]
indent_style = tab
# Ignore the entire "third_party" directory when calling shfmt on directories,
# such as "shfmt -l -w .". When formatting files directly,
# like "shfmt -w third_party/foo.sh" or "shfmt --filename=third_party/foo.sh",

View File

@@ -1,11 +1,21 @@
{
"Version": "2.7.0",
"Verbose": false,
"Debug": false,
"IgnoreDefaults": false,
"SpacesAftertabs": false,
"SpacesAfterTabs": false,
"NoColor": false,
"Exclude": [],
"Exclude": [
"base/plan",
"config/fish/completions/.*",
"config/fish/conf.d/.*",
"config/fish/functions/.*",
"config/fzf/key-bindings.fish",
"config/irssi/scripts/autorun/.*",
"config/vim/autoload/.*",
"docs/.*",
"local/man/.*",
"local/share/.*"
],
"AllowedContentTypes": [],
"PassedFiles": [],
"Disable": {

1
.envrc
View File

@@ -1 +0,0 @@
use asdf

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

@@ -1,3 +1,4 @@
---
version: 2
updates:
# Maintain dependencies for GitHub Actions

View File

@@ -18,7 +18,7 @@ jobs:
permissions: write-all
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Create changelog text
id: changelog

View File

@@ -2,6 +2,7 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Lint Code Base
# yamllint disable-line
on:
pull_request:
branches: [master, main]
@@ -18,13 +19,15 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
statuses: write
contents: read
issues: write
packages: read
pull-requests: write
statuses: write
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Yarn Lock Changes
uses: Simek/yarn-lock-changes@34017425198654c20162a4dfd4f238fbece9636f # v0.12.1
@@ -32,5 +35,4 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run PR Lint
# https://github.com/ivuorinen/actions
uses: ivuorinen/actions/pr-lint@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30
uses: ivuorinen/actions/pr-lint@fa0232d3c4ba16d087b606296435354a69c01756 # 25.8.11

View File

@@ -24,7 +24,7 @@ jobs:
version: ${{ steps.daily-version.outputs.version }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Create tag if necessary
uses: fregante/daily-version-action@fb1a60b7c4daf1410cd755e360ebec3901e58588 # v2.1.3

View File

@@ -23,7 +23,7 @@ jobs:
pull-requests: write
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0

View File

@@ -2,8 +2,9 @@
# $schema: "https://json.schemastore.org/github-workflow.json"
name: Semantic PR
# yamllint disable-line
on:
pull_request_target:
pull_request:
types:
- opened
- edited
@@ -20,7 +21,7 @@ jobs:
runs-on: self-hosted
steps:
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3
- uses: amannn/action-semantic-pull-request@fdd4d3ddf614fbcd8c29e4b106d3bbe0cb2c605d # v6.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:

View File

@@ -29,4 +29,4 @@ jobs:
issues: write
steps:
- uses: ivuorinen/actions/sync-labels@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30
- uses: ivuorinen/actions/sync-labels@fa0232d3c4ba16d087b606296435354a69c01756 # 25.8.11

View File

@@ -22,27 +22,29 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: true
fetch-depth: 2
token: ${{secrets.GITHUB_TOKEN}}
- name: Config Git User
shell: bash
run: |
git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
- name: Update submodules
shell: bash
run: |
git submodule sync
git submodule foreach --quiet '
tag="$(git describe --tags --abbrev=0 origin/HEAD)"
if [ "$(git describe --tags)" != "$tag" ]; then
git checkout --quiet "$tag"
echo "$name updated to $tag"
git submodule foreach --quiet "
tag=\"$(git describe --tags --abbrev=0 origin/HEAD)\"
if [ \"$(git describe --tags)\" != \"$tag\" ]; then
git checkout --quiet \"$tag\"
echo \"$name updated to $tag\"
fi
'
"
if git diff --quiet; then
echo "No updates for submodules."

1
.go-version Normal file
View File

@@ -0,0 +1 @@
1.23.0

View File

@@ -6,4 +6,4 @@ config/tmux/plugins/*
local/bin/asdf/*
tools/*
node_modules/*
.git/*

View File

@@ -2,7 +2,6 @@
# 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
@@ -15,15 +14,13 @@ 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
- JAVASCRIPT_ES
YAML_YAMLLINT_CONFIG_FILE: .yamllint.yml
MARKDOWN_MARKDOWNLINT_CONFIG_FILE: .markdownlint.json
JAVASCRIPT_ES_CONFIG_FILE: .eslintrc.json
TYPESCRIPT_ES_CONFIG_FILE: .eslintrc.json
REPOSITORY_GIT_DIFF_DISABLE_ERRORS: true
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.18.0

View File

@@ -1,6 +1,7 @@
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: requirements-txt-fixer
- id: detect-aws-credentials
@@ -34,12 +35,12 @@ repos:
- id: yamllint
- repo: https://github.com/koalaman/shellcheck-precommit
rev: v0.10.0
rev: v0.11.0
hooks:
- id: shellcheck
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.11.0-1
rev: v3.12.0-2
hooks:
- id: shfmt
@@ -49,7 +50,7 @@ repos:
- id: actionlint
- repo: https://github.com/renovatebot/pre-commit-hooks
rev: 41.23.2
rev: 41.76.0
hooks:
- id: renovate-config-validator

View File

@@ -8,6 +8,7 @@ module.exports = {
options: {
printWidth: 120,
proseWrap: 'preserve',
tabWidth: 2,
},
},
],

View File

@@ -1 +1 @@
3.13.5
3.13.7

21
.yamllint.yml Normal file
View File

@@ -0,0 +1,21 @@
---
extends: default
ignore: |
node_modules
tools
config/tmux/plugins
rules:
empty-lines:
level: warning
max: 1
line-length:
max: 200
level: warning
truthy:
check-keys: false
comments:
min-spaces-from-content: 1
trailing-spaces:
level: warning

55
AGENTS.md Normal file
View File

@@ -0,0 +1,55 @@
# Project guidelines
This repository contains configuration files and helper scripts for managing
a development environment.
Dotbot drives installation, and host-specific folders under `hosts/` contain extra configs.
## Setup
1. Run `yarn install` to fetch linting tools and the Bats test framework.
2. Re-run `yarn install` whenever `package.json` changes.
3. Yarn is the package manager of choice; avoid `npm` commands.
## Keeping the repository up to date
1. Update submodules with `git submodule update --remote --merge`.
2. Pull the latest changes and run `./install`.
## Linting and tests
- Format files with:
```bash
yarn fix:prettier
yarn fix:markdown
```
- Shell scripts must pass `shellcheck`.
```bash
find . -path ./node_modules -prune -o -name '*.sh' -print0 | xargs -0 shellcheck
```
- Ensure `.editorconfig` rules pass:
```bash
tools/install-ec.sh
ec
```
- Execute tests with `yarn test` when code changes.
## Debugging lint issues
- `yarn lint:prettier` and `yarn lint:markdown` show formatting errors.
- Ensure shell scripts have a shebang or `# shellcheck shell=bash` directive.
- Consult `.shellcheckrc` for project specific checks.
Scripts rely on helpers in `config/shared.sh` so they run under Bash, Zsh and Fish by default.
## 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

@@ -20,6 +20,16 @@
"value": "Ismo Vuorinen"
}
],
"masf": [
{
"key": "user.email",
"value": "ismo@masf.fi"
},
{
"key": "user.name",
"value": "Ismo Vuorinen"
}
],
"work": [
{
"key": "user.email",

View File

@@ -180,7 +180,7 @@ swap-main:
# Move focus to the n-th screen in the list; e.g.,
# focus-screen-3 will move mouse focus to the 3rd screen.
# Note that the main window in the given screen will be focused.
#focus-screen-n:
# focus-screen-n:
# focus-screen-<screen-number>:
# mod: mod1
# key: y
@@ -197,12 +197,12 @@ swap-main:
# key: i
# Select tall layout
#select-tall-layout:
# mod: mod1
# key: a
# select-tall-layout:
# mod: mod1
# key: a
# Select wide layout
#select-wide-layout:
# select-wide-layout:
# mod: mod1
# key: s

View File

@@ -1,8 +1,6 @@
// These are golang packages I use,
// 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
github.com/dotzero/git-profile@v1.4.0
// An extensible command line tool or library to format yaml files.
@@ -21,3 +19,8 @@ github.com/rhysd/actionlint/cmd/actionlint@v1.7.1
github.com/doron-cohen/antidot@v0.6.3
// FZF is a general-purpose command-line fuzzy finder.
github.com/junegunn/fzf@latest
// gopls, the Go language server
golang.org/x/tools/gopls@latest
// A language for writing HTML user interfaces in Go.
github.com/a-h/templ/cmd/templ@latest

View File

@@ -1,4 +1,5 @@
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
# shellcheck shell=bash
use_asdf() {
source_env "$(asdf direnv envrc "$@")"
}

View File

@@ -0,0 +1,71 @@
# Print an optspec for argparse to handle cmd's options that are independent of any subcommand.
function __fish_bob_global_optspecs
string join \n h/help V/version
end
function __fish_bob_needs_command
# Figure out if the current invocation already has a command.
set -l cmd (commandline -opc)
set -e cmd[1]
argparse -s (__fish_bob_global_optspecs) -- $cmd 2>/dev/null
or return
if set -q argv[1]
# Also print the command, so this can be used to figure out what it is.
echo $argv[1]
return 1
end
return 0
end
function __fish_bob_using_subcommand
set -l cmd (__fish_bob_needs_command)
test -z "$cmd"
and return 1
contains -- $cmd[1] $argv
end
complete -c bob -n "__fish_bob_needs_command" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_needs_command" -s V -l version -d 'Print version'
complete -c bob -n "__fish_bob_needs_command" -f -a "use" -d 'Switch to the specified version, by default will auto-invoke install command if the version is not installed already'
complete -c bob -n "__fish_bob_needs_command" -f -a "install" -d 'Install the specified version, can also be used to update out-of-date nightly version'
complete -c bob -n "__fish_bob_needs_command" -f -a "sync" -d 'If Config::version_sync_file_location is set, the version in that file will be parsed and installed'
complete -c bob -n "__fish_bob_needs_command" -f -a "uninstall" -d 'Uninstall the specified version'
complete -c bob -n "__fish_bob_needs_command" -f -a "rm" -d 'Uninstall the specified version'
complete -c bob -n "__fish_bob_needs_command" -f -a "rollback" -d 'Rollback to an existing nightly rollback'
complete -c bob -n "__fish_bob_needs_command" -f -a "erase" -d 'Erase any change bob ever made, including neovim installation, neovim version downloads and registry changes'
complete -c bob -n "__fish_bob_needs_command" -f -a "list" -d 'List all installed and used versions'
complete -c bob -n "__fish_bob_needs_command" -f -a "ls" -d 'List all installed and used versions'
complete -c bob -n "__fish_bob_needs_command" -f -a "list-remote"
complete -c bob -n "__fish_bob_needs_command" -f -a "ls-remote"
complete -c bob -n "__fish_bob_needs_command" -f -a "complete" -d 'Generate shell completion'
complete -c bob -n "__fish_bob_needs_command" -f -a "update" -d 'Update existing version |nightly|stable|--all|'
complete -c bob -n "__fish_bob_needs_command" -f -a "run"
complete -c bob -n "__fish_bob_needs_command" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c bob -n "__fish_bob_using_subcommand use" -s n -l no-install -d 'Whether not to auto-invoke install command'
complete -c bob -n "__fish_bob_using_subcommand use" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c bob -n "__fish_bob_using_subcommand install" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c bob -n "__fish_bob_using_subcommand sync" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand uninstall" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c bob -n "__fish_bob_using_subcommand rm" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c bob -n "__fish_bob_using_subcommand rollback" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand erase" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand list" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand ls" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand list-remote" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand ls-remote" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand complete" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand update" -s a -l all -d 'Apply the update to all versions'
complete -c bob -n "__fish_bob_using_subcommand update" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand run" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "use" -d 'Switch to the specified version, by default will auto-invoke install command if the version is not installed already'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "install" -d 'Install the specified version, can also be used to update out-of-date nightly version'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "sync" -d 'If Config::version_sync_file_location is set, the version in that file will be parsed and installed'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "uninstall" -d 'Uninstall the specified version'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "rollback" -d 'Rollback to an existing nightly rollback'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "erase" -d 'Erase any change bob ever made, including neovim installation, neovim version downloads and registry changes'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "list" -d 'List all installed and used versions'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "list-remote"
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "complete" -d 'Generate shell completion'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "update" -d 'Update existing version |nightly|stable|--all|'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "run"
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'

View File

@@ -0,0 +1,123 @@
# Completions for phpenv command
# Place in ~/.config/fish/completions/phpenv.fish
# Complete main commands
complete -c phpenv -f -n "__fish_use_subcommand" -a "install" -d "Install a PHP version"
complete -c phpenv -f -n "__fish_use_subcommand" -a "uninstall" -d "Uninstall a PHP version"
complete -c phpenv -f -n "__fish_use_subcommand" -a "use" -d "Use PHP version for current shell"
complete -c phpenv -f -n "__fish_use_subcommand" -a "local" -d "Set PHP version for current project"
complete -c phpenv -f -n "__fish_use_subcommand" -a "global" -d "Set global PHP version"
complete -c phpenv -f -n "__fish_use_subcommand" -a "list" -d "List installed PHP versions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "ls" -d "List installed PHP versions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "current" -d "Show current PHP version"
complete -c phpenv -f -n "__fish_use_subcommand" -a "which" -d "Show path to PHP binary"
complete -c phpenv -f -n "__fish_use_subcommand" -a "versions" -d "Show all available versions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "doctor" -d "Check phpenv installation"
complete -c phpenv -f -n "__fish_use_subcommand" -a "config" -d "Manage configuration"
complete -c phpenv -f -n "__fish_use_subcommand" -a "extensions" -d "Manage PHP extensions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "ext" -d "Manage PHP extensions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "help" -d "Show help"
# Helper functions for completions
function __phpenv_complete_installed_versions
phpenv list 2>/dev/null | sed 's/^[* ]*//'
end
function __phpenv_complete_available_versions
# Try to get dynamic versions first
if command -q curl -a command -q jq; and functions -q __phpenv_parse_version_field
echo "latest"
echo "nightly"
echo "5.x"
echo "7.x"
echo "8.x"
__phpenv_parse_version_field "latest" "8.4"
__phpenv_parse_version_field "nightly" "8.5"
__phpenv_parse_version_field "5.x" "5.6"
__phpenv_parse_version_field "7.x" "7.4"
__phpenv_parse_version_field "8.x" "8.4"
end
# Fallback to common versions
printf "5.6\n7.0\n7.1\n7.2\n7.3\n7.4\n8.0\n8.1\n8.2\n8.3\n8.4\n8.5\n"
end
function __phpenv_complete_config_keys
printf "global-version\nauto-install\nauto-install-extensions\nauto-switch\ndefault-extensions\n"
end
function __phpenv_complete_extensions
printf "xdebug\nredis\nimagick\nmongodb\nmemcached\npcov\nast\ngrpc\n"
printf "protobuf\nyaml\nzip\ncurl\ngd\nintl\nmbstring\nmysql\nopcache\npdo\nsockets\nxml\n"
end
function __phpenv_complete_binaries
printf "php\nphp-config\nphpize\ncomposer\npecl\npear\n"
end
# Complete versions for install command
complete -c phpenv -f -n "__fish_seen_subcommand_from install" \
-a "(__phpenv_complete_available_versions)" -d "PHP version"
# Complete installed versions for uninstall, use commands
complete -c phpenv -f -n "__fish_seen_subcommand_from uninstall use local global" \
-a "(__phpenv_complete_installed_versions)" -d "Installed PHP version"
# Add system option for use command
complete -c phpenv -f -n "__fish_seen_subcommand_from use" -a "system" -d "Use system PHP"
# Complete binaries for which command
complete -c phpenv -f -n "__fish_seen_subcommand_from which" -a "(__phpenv_complete_binaries)" -d "PHP binary"
# Complete config subcommands
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \
-a "get" -d "Get configuration value"
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \
-a "set" -d "Set configuration value"
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \
-a "list" -d "List all configuration"
# Complete config keys
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and __fish_seen_subcommand_from get set" \
-a "(__phpenv_complete_config_keys)" -d "Configuration key"
# Complete config values for boolean settings
complete -c phpenv -f \
-n "__fish_seen_subcommand_from config; and __fish_seen_subcommand_from set" \
-n "contains -- (commandline -opc)[-1] auto-install auto-install-extensions auto-switch" \
-a "true false" -d "Boolean value"
# Complete extensions subcommands
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "install" -d "Install PHP extension"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "uninstall" -d "Uninstall PHP extension"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "remove" -d "Remove PHP extension"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "list" -d "List installed extensions"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "ls" -d "List installed extensions"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "available" -d "Show available extensions"
# Complete extension names
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext; and __fish_seen_subcommand_from install" \
-a "(__phpenv_complete_extensions)" -d "PHP extension"
# Complete help options
complete -c phpenv -f -s h -l help -d "Show help"

View File

@@ -0,0 +1,54 @@
# pinact fish shell completion
function __fish_pinact_no_subcommand --description 'Test if there has been any subcommand yet'
for i in (commandline -opc)
if contains -- $i init run migrate token version help-all help h completion
return 1
end
end
return 0
end
complete -c pinact -n '__fish_pinact_no_subcommand' -f -l log-level -r -d 'log level'
complete -c pinact -n '__fish_pinact_no_subcommand' -f -l config -s c -r -d 'configuration file path'
complete -c pinact -n '__fish_pinact_no_subcommand' -f -l help -s h -d 'show help'
complete -c pinact -n '__fish_pinact_no_subcommand' -f -l version -s v -d 'print the version'
complete -x -c pinact -n '__fish_pinact_no_subcommand' -a 'init' -d 'Create .pinact.yaml if it doesn\'t exist'
complete -c pinact -n '__fish_seen_subcommand_from init' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from init; and not __fish_seen_subcommand_from help h' -a 'help' -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_pinact_no_subcommand' -a 'run' -d 'Pin GitHub Actions versions'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l verify -s v -d 'Verify if pairs of commit SHA and version are correct'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l check -d 'Exit with a non-zero status code if actions are not pinned. If this is true, files aren\'t updated'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l update -s u -d 'Update actions to latest versions'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l review -d 'Create reviews'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l fix -d 'Fix code. By default, this is true. If -check or -diff is true, this is false by default'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l diff -d 'Output diff. By default, this is false'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l repo-owner -r -d 'GitHub repository owner'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l repo-name -r -d 'GitHub repository name'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l sha -r -d 'Commit SHA to be reviewed'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l pr -r -d 'GitHub pull request number'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from run; and not __fish_seen_subcommand_from help h' -a 'help' -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_pinact_no_subcommand' -a 'migrate' -d 'Migrate .pinact.yaml'
complete -c pinact -n '__fish_seen_subcommand_from migrate' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from migrate; and not __fish_seen_subcommand_from help h' -a 'help' -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_pinact_no_subcommand' -a 'token' -d 'Manage GitHub Access token'
complete -c pinact -n '__fish_seen_subcommand_from token' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and not __fish_seen_subcommand_from set remove rm help h' -a 'set' -d 'Set GitHub Access token'
complete -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from set' -f -l stdin -d 'Read GitHub Access token from stdin'
complete -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from set' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from help h' -a 'help' -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and not __fish_seen_subcommand_from set remove rm help h' -a 'remove' -d 'Remove GitHub Access token'
complete -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from remove rm' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from remove rm; and not __fish_seen_subcommand_from help h' -a 'help' -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and not __fish_seen_subcommand_from set remove rm help h' -a 'help' -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_pinact_no_subcommand' -a 'version' -d 'Show version'
complete -c pinact -n '__fish_seen_subcommand_from version' -f -l json -s j -d 'Output version in JSON format'
complete -c pinact -n '__fish_seen_subcommand_from version' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from version; and not __fish_seen_subcommand_from help h' -a 'help' -d 'Shows a list of commands or help for one command'
complete -c pinact -n '__fish_seen_subcommand_from help-all' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from help-all; and not __fish_seen_subcommand_from help h' -a 'help' -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_pinact_no_subcommand' -a 'help' -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_pinact_no_subcommand' -a 'completion' -d 'Output shell completion script for bash, zsh, fish, or Powershell'
complete -c pinact -n '__fish_seen_subcommand_from completion' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from completion; and not __fish_seen_subcommand_from help h' -a 'help' -d 'Shows a list of commands or help for one command'

View File

@@ -0,0 +1,38 @@
# phpenv configuration file
# Place in ~/.config/fish/conf.d/phpenv.fish
# Set default configuration using session variables for most settings
# Only PHPENV_GLOBAL_VERSION needs to persist across shells
if not set -q PHPENV_AUTO_INSTALL
set -g PHPENV_AUTO_INSTALL false
end
if not set -q PHPENV_AUTO_INSTALL_EXTENSIONS
set -g PHPENV_AUTO_INSTALL_EXTENSIONS false
end
if not set -q PHPENV_AUTO_SWITCH
set -g PHPENV_AUTO_SWITCH true
end
if not set -q PHPENV_DEFAULT_EXTENSIONS
set -g PHPENV_DEFAULT_EXTENSIONS "opcache"
end
# Initialize PATH on shell startup if global version is set (less aggressive)
if test -n "$PHPENV_GLOBAL_VERSION"; and not set -q PHPENV_INITIALIZED
if functions -q __phpenv_is_version_installed __phpenv_set_php_path
if __phpenv_is_version_installed "$PHPENV_GLOBAL_VERSION" 2>/dev/null
# Only set PATH if no project-specific version is detected
if not __phpenv_find_version_file .php-version >/dev/null 2>&1
if not __phpenv_find_version_file .tool-version >/dev/null 2>&1
if not test -f composer.json
__phpenv_set_php_path "$PHPENV_GLOBAL_VERSION" 2>/dev/null
end
end
end
end
end
set -g PHPENV_INITIALIZED true
end

View File

@@ -9,3 +9,4 @@ meaningful-ooo/sponge
nickeb96/puffer-fish
jgusta/paths
patrickf1/fzf.fish
ivuorinen/phpenv.fish

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,4 @@
---
prSections:
- title: My Pull Requests
filters: is:open author:@me

View File

@@ -21,3 +21,5 @@ dfm.sh
.scannerwork
.phpactor.json
.zsh_history
**/.claude/settings.local.json

View File

@@ -3,7 +3,7 @@
helper = cache --timeout 30000
[core]
excludesfile = ~/.config/git/gitignore
excludesfile = ~/.config/git/ignore
[init]
defaultBranch = main

View File

@@ -1,3 +1,4 @@
---
# mouse support (TUI-mode only)
mouse: false
# use pager to display markdown

View File

@@ -1,6 +1,6 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
htop_version=3.3.0
htop_version=3.4.1
config_reader_min_version=3
fields=0 48 17 18 38 39 2 46 47 49 1
hide_kernel_threads=1
@@ -25,6 +25,7 @@ detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
show_cached_memory=1
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0

View File

@@ -1,331 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Ansi 0 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.27058823529411763</real>
<key>Green Component</key>
<real>0.2784313725490196</real>
<key>Blue Component</key>
<real>0.35294117647058826</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 1 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.9529411764705882</real>
<key>Green Component</key>
<real>0.5450980392156862</real>
<key>Blue Component</key>
<real>0.6588235294117647</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 2 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.6509803921568628</real>
<key>Green Component</key>
<real>0.8901960784313725</real>
<key>Blue Component</key>
<real>0.6313725490196078</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 3 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.9764705882352941</real>
<key>Green Component</key>
<real>0.8862745098039215</real>
<key>Blue Component</key>
<real>0.6862745098039216</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 4 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.5372549019607843</real>
<key>Green Component</key>
<real>0.7058823529411765</real>
<key>Blue Component</key>
<real>0.9803921568627451</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 5 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.9607843137254902</real>
<key>Green Component</key>
<real>0.7607843137254902</real>
<key>Blue Component</key>
<real>0.9058823529411765</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 6 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.5803921568627451</real>
<key>Green Component</key>
<real>0.8862745098039215</real>
<key>Blue Component</key>
<real>0.8352941176470589</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 7 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.7294117647058823</real>
<key>Green Component</key>
<real>0.7607843137254902</real>
<key>Blue Component</key>
<real>0.8705882352941177</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 8 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.34509803921568627</real>
<key>Green Component</key>
<real>0.3568627450980392</real>
<key>Blue Component</key>
<real>0.4392156862745098</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 9 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.9529411764705882</real>
<key>Green Component</key>
<real>0.5450980392156862</real>
<key>Blue Component</key>
<real>0.6588235294117647</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 10 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.6509803921568628</real>
<key>Green Component</key>
<real>0.8901960784313725</real>
<key>Blue Component</key>
<real>0.6313725490196078</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 11 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.9764705882352941</real>
<key>Green Component</key>
<real>0.8862745098039215</real>
<key>Blue Component</key>
<real>0.6862745098039216</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 12 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.5372549019607843</real>
<key>Green Component</key>
<real>0.7058823529411765</real>
<key>Blue Component</key>
<real>0.9803921568627451</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 13 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.9607843137254902</real>
<key>Green Component</key>
<real>0.7607843137254902</real>
<key>Blue Component</key>
<real>0.9058823529411765</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 14 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.5803921568627451</real>
<key>Green Component</key>
<real>0.8862745098039215</real>
<key>Blue Component</key>
<real>0.8352941176470589</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Ansi 15 Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.6509803921568628</real>
<key>Green Component</key>
<real>0.6784313725490196</real>
<key>Blue Component</key>
<real>0.7843137254901961</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Background Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.11764705882352941</real>
<key>Green Component</key>
<real>0.11764705882352941</real>
<key>Blue Component</key>
<real>0.1803921568627451</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Foreground Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.803921568627451</real>
<key>Green Component</key>
<real>0.8392156862745098</real>
<key>Blue Component</key>
<real>0.9568627450980393</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Link Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.5372549019607843</real>
<key>Green Component</key>
<real>0.8627450980392157</real>
<key>Blue Component</key>
<real>0.9215686274509803</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Bold Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.803921568627451</real>
<key>Green Component</key>
<real>0.8392156862745098</real>
<key>Blue Component</key>
<real>0.9568627450980393</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Cursor Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.9607843137254902</real>
<key>Green Component</key>
<real>0.8784313725490196</real>
<key>Blue Component</key>
<real>0.8627450980392157</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Cursor Text Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.803921568627451</real>
<key>Green Component</key>
<real>0.8392156862745098</real>
<key>Blue Component</key>
<real>0.9568627450980393</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Cursor Guide Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.803921568627451</real>
<key>Green Component</key>
<real>0.8392156862745098</real>
<key>Blue Component</key>
<real>0.9568627450980393</real>
<key>Alpha Component</key>
<real>0.07</real>
</dict>
<key>Selection Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.34509803921568627</real>
<key>Green Component</key>
<real>0.3568627450980392</real>
<key>Blue Component</key>
<real>0.4392156862745098</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
<key>Selected Text Color</key>
<dict>
<key>Color Space</key>
<string>sRGB</string>
<key>Red Component</key>
<real>0.803921568627451</real>
<key>Green Component</key>
<real>0.8392156862745098</real>
<key>Blue Component</key>
<real>0.9568627450980393</real>
<key>Alpha Component</key>
<real>1</real>
</dict>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@@ -1,410 +0,0 @@
{
"Badge Text": "",
"Working Directory": "/Users/ivuorinen/Code",
"Prompt Before Closing 2": false,
"Selected Text Color": {
"Red Component": 0.80392156862745101,
"Color Space": "sRGB",
"Blue Component": 0.95686274509803926,
"Alpha Component": 1,
"Green Component": 0.83921568627450982
},
"Rows": 25,
"Ansi 11 Color": {
"Red Component": 0.97647058823529409,
"Color Space": "sRGB",
"Blue Component": 0.68627450980392157,
"Alpha Component": 1,
"Green Component": 0.88627450980392153
},
"Use Italic Font": true,
"Foreground Color": {
"Red Component": 0.80392156862745101,
"Color Space": "sRGB",
"Blue Component": 0.95686274509803926,
"Alpha Component": 1,
"Green Component": 0.83921568627450982
},
"Right Option Key Sends": 0,
"Character Encoding": 4,
"Selection Color": {
"Red Component": 0.34509803921568627,
"Color Space": "sRGB",
"Blue Component": 0.4392156862745098,
"Alpha Component": 1,
"Green Component": 0.35686274509803922
},
"Blend": 0.24709154211956524,
"Mouse Reporting": true,
"Cursor Boost": 0,
"Ansi 4 Color": {
"Red Component": 0.53725490196078429,
"Color Space": "sRGB",
"Blue Component": 0.98039215686274506,
"Alpha Component": 1,
"Green Component": 0.70588235294117652
},
"Non-ASCII Anti Aliased": true,
"Sync Title": false,
"Badge Font": "JetBrainsMonoNerdFontCompleteM-Bold",
"Disable Window Resizing": true,
"Description": "Default",
"Close Sessions On End": true,
"Jobs to Ignore": ["rlogin", "ssh", "slogin", "telnet"],
"Scrollback Lines": 0,
"Draw Powerline Glyphs": true,
"Flashing Bell": true,
"Cursor Guide Color": {
"Red Component": 0.80392156862745101,
"Color Space": "sRGB",
"Blue Component": 0.95686274509803926,
"Alpha Component": 0.070000000000000007,
"Green Component": 0.83921568627450982
},
"BM Growl": true,
"Ansi 3 Color": {
"Red Component": 0.97647058823529409,
"Color Space": "sRGB",
"Blue Component": 0.68627450980392157,
"Alpha Component": 1,
"Green Component": 0.88627450980392153
},
"Icon": 1,
"Use Non-ASCII Font": false,
"Link Color": {
"Red Component": 0.53725490196078429,
"Color Space": "sRGB",
"Blue Component": 0.92156862745098034,
"Alpha Component": 1,
"Green Component": 0.86274509803921573
},
"Shortcut": "",
"Background Image Location": "",
"Bold Color": {
"Red Component": 0.80392156862745101,
"Color Space": "sRGB",
"Blue Component": 0.95686274509803926,
"Alpha Component": 1,
"Green Component": 0.83921568627450982
},
"Use Cursor Guide": false,
"Unlimited Scrollback": true,
"Custom Command": "No",
"Title Components": 512,
"Keyboard Map": {
"0xf700-0x260000": {
"Action": 10,
"Text": "[1;6A"
},
"0x37-0x40000": {
"Action": 11,
"Text": "0x1f"
},
"0x32-0x40000": {
"Action": 11,
"Text": "0x00"
},
"0xf709-0x20000": {
"Action": 10,
"Text": "[17;2~"
},
"0xf70c-0x20000": {
"Action": 10,
"Text": "[20;2~"
},
"0xf729-0x20000": {
"Action": 10,
"Text": "[1;2H"
},
"0xf72b-0x40000": {
"Action": 10,
"Text": "[1;5F"
},
"0xf705-0x20000": {
"Action": 10,
"Text": "[1;2Q"
},
"0xf703-0x260000": {
"Action": 10,
"Text": "[1;6C"
},
"0xf700-0x220000": {
"Action": 10,
"Text": "[1;2A"
},
"0xf701-0x280000": {
"Action": 11,
"Text": "0x1b 0x1b 0x5b 0x42"
},
"0x38-0x40000": {
"Action": 11,
"Text": "0x7f"
},
"0x33-0x40000": {
"Action": 11,
"Text": "0x1b"
},
"0xf703-0x220000": {
"Action": 10,
"Text": "[1;2C"
},
"0xf701-0x240000": {
"Action": 10,
"Text": "[1;5B"
},
"0xf70d-0x20000": {
"Action": 10,
"Text": "[21;2~"
},
"0xf702-0x260000": {
"Action": 10,
"Text": "[1;6D"
},
"0xf729-0x40000": {
"Action": 10,
"Text": "[1;5H"
},
"0xf706-0x20000": {
"Action": 10,
"Text": "[1;2R"
},
"0x34-0x40000": {
"Action": 11,
"Text": "0x1c"
},
"0xf700-0x280000": {
"Action": 11,
"Text": "0x1b 0x1b 0x5b 0x41"
},
"0x2d-0x40000": {
"Action": 11,
"Text": "0x1f"
},
"0xf70e-0x20000": {
"Action": 10,
"Text": "[23;2~"
},
"0xf702-0x220000": {
"Action": 10,
"Text": "[1;2D"
},
"0xf703-0x280000": {
"Action": 11,
"Text": "0x1b 0x1b 0x5b 0x43"
},
"0xf700-0x240000": {
"Action": 10,
"Text": "[1;5A"
},
"0xf707-0x20000": {
"Action": 10,
"Text": "[1;2S"
},
"0xf70a-0x20000": {
"Action": 10,
"Text": "[18;2~"
},
"0x35-0x40000": {
"Action": 11,
"Text": "0x1d"
},
"0xf70f-0x20000": {
"Action": 10,
"Text": "[24;2~"
},
"0xf703-0x240000": {
"Action": 10,
"Text": "[1;5C"
},
"0xf701-0x260000": {
"Action": 10,
"Text": "[1;6B"
},
"0xf702-0x280000": {
"Action": 11,
"Text": "0x1b 0x1b 0x5b 0x44"
},
"0xf72b-0x20000": {
"Action": 10,
"Text": "[1;2F"
},
"0x36-0x40000": {
"Action": 11,
"Text": "0x1e"
},
"0xf708-0x20000": {
"Action": 10,
"Text": "[15;2~"
},
"0xf701-0x220000": {
"Action": 10,
"Text": "[1;2B"
},
"0xf70b-0x20000": {
"Action": 10,
"Text": "[19;2~"
},
"0xf702-0x240000": {
"Action": 10,
"Text": "[1;5D"
},
"0xf704-0x20000": {
"Action": 10,
"Text": "[1;2P"
}
},
"Ansi 14 Color": {
"Red Component": 0.58039215686274515,
"Color Space": "sRGB",
"Blue Component": 0.83529411764705885,
"Alpha Component": 1,
"Green Component": 0.88627450980392153
},
"Ansi 2 Color": {
"Red Component": 0.65098039215686276,
"Color Space": "sRGB",
"Blue Component": 0.63137254901960782,
"Alpha Component": 1,
"Green Component": 0.8901960784313725
},
"Send Code When Idle": false,
"ASCII Anti Aliased": true,
"Tags": [],
"Ansi 9 Color": {
"Red Component": 0.95294117647058818,
"Color Space": "sRGB",
"Blue Component": 0.6588235294117647,
"Alpha Component": 1,
"Green Component": 0.54509803921568623
},
"Badge Right Margin": 10,
"Use Bold Font": true,
"Silence Bell": false,
"Ansi 12 Color": {
"Red Component": 0.53725490196078429,
"Color Space": "sRGB",
"Blue Component": 0.98039215686274506,
"Alpha Component": 1,
"Green Component": 0.70588235294117652
},
"Window Type": 0,
"Use Bright Bold": true,
"Cursor Text Color": {
"Red Component": 0.80392156862745101,
"Color Space": "sRGB",
"Blue Component": 0.95686274509803926,
"Alpha Component": 1,
"Green Component": 0.83921568627450982
},
"Default Bookmark": "No",
"Cursor Color": {
"Red Component": 0.96078431372549022,
"Color Space": "sRGB",
"Blue Component": 0.86274509803921573,
"Alpha Component": 1,
"Green Component": 0.8784313725490196
},
"Ansi 1 Color": {
"Red Component": 0.95294117647058818,
"Color Space": "sRGB",
"Blue Component": 0.6588235294117647,
"Alpha Component": 1,
"Green Component": 0.54509803921568623
},
"Name": "Default",
"Blinking Cursor": false,
"Guid": "82636119-EA17-4A26-9AA7-408172F4A9C8",
"Badge Max Width": 0.45000000000000001,
"Idle Code": 0,
"Ansi 10 Color": {
"Red Component": 0.65098039215686276,
"Color Space": "sRGB",
"Blue Component": 0.63137254901960782,
"Alpha Component": 1,
"Green Component": 0.8901960784313725
},
"Ansi 8 Color": {
"Red Component": 0.34509803921568627,
"Color Space": "sRGB",
"Blue Component": 0.4392156862745098,
"Alpha Component": 1,
"Green Component": 0.35686274509803922
},
"Badge Color": {
"Red Component": 1,
"Color Space": "sRGB",
"Blue Component": 0,
"Alpha Component": 0.5,
"Green Component": 0.14910030364990234
},
"Smart Cursor Color": true,
"Ambiguous Double Width": false,
"Blur Radius": 9.5927277260638313,
"Badge Max Height": 0.10000000000000001,
"Ansi 0 Color": {
"Red Component": 0.27058823529411763,
"Color Space": "sRGB",
"Blue Component": 0.35294117647058826,
"Alpha Component": 1,
"Green Component": 0.27843137254901962
},
"Blur": true,
"Normal Font": "JetBrainsMonoNerdFontCompleteM-Light 15",
"Vertical Spacing": 1,
"Ansi 7 Color": {
"Red Component": 0.72941176470588232,
"Color Space": "sRGB",
"Blue Component": 0.87058823529411766,
"Alpha Component": 1,
"Green Component": 0.76078431372549016
},
"Command": "",
"Terminal Type": "xterm-256color",
"Horizontal Spacing": 1,
"Option Key Sends": 0,
"Only The Default BG Color Uses Transparency": true,
"Minimum Contrast": 0.14973958333333334,
"Ansi 15 Color": {
"Red Component": 0.65098039215686276,
"Color Space": "sRGB",
"Blue Component": 0.78431372549019607,
"Alpha Component": 1,
"Green Component": 0.67843137254901964
},
"Ansi 6 Color": {
"Red Component": 0.58039215686274515,
"Color Space": "sRGB",
"Blue Component": 0.83529411764705885,
"Alpha Component": 1,
"Green Component": 0.88627450980392153
},
"Badge Top Margin": 10,
"Transparency": 0.10293218085106381,
"Background Color": {
"Red Component": 0.11764705882352941,
"Color Space": "sRGB",
"Blue Component": 0.1803921568627451,
"Alpha Component": 1,
"Green Component": 0.11764705882352941
},
"Screen": -2,
"Non Ascii Font": "Monaco 12",
"Ansi 13 Color": {
"Red Component": 0.96078431372549022,
"Color Space": "sRGB",
"Blue Component": 0.90588235294117647,
"Alpha Component": 1,
"Green Component": 0.76078431372549016
},
"Columns": 120,
"Visual Bell": true,
"ASCII Ligatures": false,
"Ansi 5 Color": {
"Red Component": 0.96078431372549022,
"Color Space": "sRGB",
"Blue Component": 0.90588235294117647,
"Alpha Component": 1,
"Green Component": 0.76078431372549016
},
"Custom Directory": "Yes"
}

View File

@@ -111,7 +111,7 @@ local lazy_plugins = function()
return require('telescope').extensions.lazy_plugins.lazy_plugins()
end
K.nl('f', ':Telescope fd --hidden=true<cr>', 'Find Files')
K.nl('f', ':Telescope find_files<cr>', 'Find Files')
K.nl(',', ':Telescope buffers<cr>', 'Find existing buffers')
K.nl('/', function() fuzzy_search() end, 'Fuzzily search in current buffer')

View File

@@ -11,6 +11,13 @@ return {
end,
},
-- Go development plugin for Vim
-- https://github.com/fatih/vim-go
{
'fatih/vim-go',
config = function() end,
},
-- Run your tests at the speed of thought
-- https://github.com/vim-test/vim-test
{

View File

@@ -1,13 +1,18 @@
return {
{
'stevearc/conform.nvim',
event = 'BufWritePre',
event = { 'BufReadPre', 'BufNewFile' },
config = function()
local conform = require 'conform'
conform.setup {
formatters_by_ft = {
bash = { 'shfmt' },
go = { 'golangci-lint' },
lua = { 'stylua' },
sh = { 'shfmt' },
ansible = { 'ansible-lint' },
docker = { 'hadolint' },
},
format_on_save = function(bufnr)
-- Disable autoformat for files in a certain paths
@@ -20,6 +25,7 @@ return {
}
return {
lsp_fallback = not disable_lsp[vim.bo[bufnr].filetype],
async = false,
timeout_ms = 500,
}
end,
@@ -63,4 +69,8 @@ return {
end
end,
},
{
'gpanders/editorconfig.nvim',
lazy = false,
},
}

View File

@@ -1,44 +1,4 @@
return {
-- A collection of small QoL plugins for Neovim
-- https://github.com/folke/snacks.nvim
{
---@module 'snacks'
'folke/snacks.nvim',
priority = 1000,
lazy = false,
---@type snacks.Config
opts = {
bigfile = { enabled = true },
input = { enabled = true },
notifier = {
enabled = true,
timeout = 3000,
},
gitbrowse = { enabled = true },
quickfile = { enabled = true },
statuscolumn = {
enabled = true,
left = { 'mark', 'sign' }, -- priority of signs on the left (high to low)
right = { 'fold', 'git' }, -- priority of signs on the right (high to low)
folds = {
open = true, -- show open fold icons
git_hl = true, -- use Git Signs hl for fold icons
},
git = {
-- patterns to match Git signs
patterns = { 'GitSign', 'MiniDiffSign' },
},
refresh = 50, -- refresh at most every 50ms
},
words = { enabled = true },
styles = {
notification = {
wo = { wrap = true }, -- Wrap notifications
},
},
},
},
-- Highly experimental plugin that completely
-- replaces the UI for messages, cmdline and the popupmenu.
-- https://github.com/folke/noice.nvim
@@ -49,7 +9,10 @@ return {
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
'MunifTanjim/nui.nvim',
'rcarriga/nvim-notify',
{
'rcarriga/nvim-notify',
opts = { background_colour = '#000000' },
},
},
opts = {
lsp = {
@@ -69,6 +32,10 @@ return {
lsp_doc_border = false, -- add a border to hover docs and signature help
},
routes = {
{
view = 'notify',
filter = { event = 'msg_showmode' },
},
{
filter = {
event = 'msg_show',
@@ -106,13 +73,31 @@ return {
},
views = {
cmdline_popup = {
border = {
style = 'none',
padding = { 1, 2 },
position = {
row = 5,
col = '50%',
},
size = {
width = 60,
height = 'auto',
},
},
popupmenu = {
relative = 'editor',
position = {
row = 8,
col = '50%',
},
size = {
width = 60,
height = 10,
},
border = {
style = 'rounded',
padding = { 0, 1 },
},
filter_options = {},
win_options = {
winhighlight = 'NormalFloat:NormalFloat,FloatBorder:FloatBorder',
winhighlight = { Normal = 'Normal', FloatBorder = 'DiagnosticInfo' },
},
},
},

View File

@@ -17,6 +17,8 @@ return {
-- Allows extra capabilities provided by blink.cmp
'saghen/blink.cmp',
{ 'j-hui/fidget.nvim', opts = {} },
},
config = function()
local lazydev = require 'lazydev'

View File

@@ -37,15 +37,18 @@ return {
local vimgrep_arguments = { unpack(c.values.vimgrep_arguments) }
-- I want to search in hidden/dot files.
table.insert(vimgrep_arguments, '--hidden')
-- I don't want to search in the `.git` directory.
table.insert(vimgrep_arguments, '--hidden=true')
table.insert(vimgrep_arguments, '--glob')
-- I don't want to search in the `.git` directory.
table.insert(vimgrep_arguments, '!**/.git/*')
-- [[ Configure Telescope ]]
-- See `:help telescope` and `:help telescope.setup()`
t.setup {
defaults = {
preview = {
filesize_limit = 0.1, -- MB
},
-- `hidden = true` is not supported in text grep commands.
vimgrep_arguments = vimgrep_arguments,

View File

@@ -60,7 +60,16 @@ return {
extra_groups = {
'NormalNC',
'NormalFloat',
'FloatTitle',
'FloatBorder',
'NotifyDEBUGBorder',
'NotifyERRORBorder',
'NotifyINFOBorder',
'NotifyINFOBorder73',
'NotifyINFOBorder75',
'NotifyINFOBorder101',
'NotifyTRACEBorder',
'NotifyWARNBorder',
'TelescopeBorder',
'TelescopePromptBorder',
'TelescopeResultsBorder',

View File

@@ -1,165 +0,0 @@
snippet php "php"
<?php
${1}
snippet ec "ec"
echo '${1}'${2};
snippet vd "vd"
var_dump(${1});
# Includes and requires
snippet inc "inc"
include_once '${1}';${2}
snippet req "req"
require_once '${1}';${2}
# define(...)
snippet def "def"
define('${1}'${2});${3}
# Doxygen comments
snippet d "/**"
/**
* ${1}
*/${2}
snippet code "code"
* @code
* ${1}
* @endcode
# Class
snippet cl "cl"
class ${1} {
${2}
function ${3:__construct}(${4}) {
${5}
}
}
snippet pubf "public method"
public function ${1}(${2}): $3
{
${0}
}
snippet prof "protected method"
protected function ${1}(${2}): $3
{
${0}
}
snippet prif "private method"
protected function ${1}(${2}): $3
{
${0}
}
snippet testt "test method (prefix)"
public function test_${1}()
{
${0}
}
snippet testa "test method (annotation)"
/** @test */
public function ${1}()
{
${0}
}
# $this->
snippet . "$this->" i
$this->
# If statement
snippet if "if"
if (${1}) {
${2}
}
snippet ife "ife"
if (${1}) {
${2}
} else {
${3}
}
snippet elif "elif"
else if (${1}) {
${2}
}
snippet el "el"
else {
${1}
}
# Switch
snippet sw "sw"
switch (${1}) {
default:
break;
}
snippet case "case"
case '${1}':
${2}
break;${3}
# Do-while loop
snippet do "do"
do {
${2}
} while (${1});
# While loop
snippet wh "wh"
while (${1}) {
${2}
}
# For loop
snippet for "for"
for (${1}; ${2}; ${3}) {
${4}
}
snippet fore "fore"
foreach (${1} as ${2}) {
${3}
}
# Functions and methods
snippet fun "fun"
function ${1}(${2}) {
${3}
}
snippet met "met"
${1}function ${2}(${3}) {
${4}
}
# Return
snippet r "return"
return ${1}
# Todos
snippet todo "todo"
// TODO ${1}

View File

@@ -1,2 +1,3 @@
# shellcheck shell=bash
export OP_PLUGIN_ALIASES_SOURCED=1
alias gh="op plugin run -- gh"

View File

@@ -26,7 +26,7 @@ x-path-prepend()
local dir=$1
case "$CURRENT_SHELL" in
fish)
set -U fish_user_paths "$dir" $fish_user_paths
set -U fish_user_paths "$dir" "$fish_user_paths"
;;
sh | bash | zsh)
PATH="$dir:$PATH"
@@ -106,7 +106,7 @@ if ! declare -f msg_done > /dev/null; then
# $1 - message (string)
msg_done()
{
msgr done "$1"
msgr "done" "$1"
return 0
}
fi

View File

@@ -41,19 +41,23 @@ shift + cmd - return : wezterm
# Floating windows
# float / unfloat window and center on screen medium size
alt - t : yabai -m window --toggle float;\
yabai -m window --grid 9:16:1:1:14:7
alt - t : \
yabai -m window --toggle float;\
yabai -m window --grid 9:16:1:1:14:7
# float / unfloat window and center on screen large size
shift + alt - t : yabai -m window --toggle float;\
yabai -m window --grid 90:160:5:5:150:80
shift + alt - t : \
yabai -m window --toggle float;\
yabai -m window --grid 90:160:5:5:150:80
# make floating window fill screen
alt - y : yabai -m window --toggle float;\
yabai -m window --grid 1:1:0:0:1:1
alt - y : \
yabai -m window --toggle float;\
yabai -m window --grid 1:1:0:0:1:1
# toggle float window and center on screen medium size
shift + alt - y : yabai -m window --toggle float \
shift + alt - y : \
yabai -m window --toggle float \
&& yabai -m window --resize \
abs:$(($(yabai -m query --displays --display | jq .frame.w) / 2)):$(($(yabai -m query --displays --display | jq .frame.h) * 4 / 5)) \
&& yabai -m window --move \
@@ -86,11 +90,16 @@ shift + alt - k : yabai -m window --swap north
shift + alt - l : yabai -m window --swap east
## resize windows
ctrl + alt - h : yabai -m window --resize left:-50:0; \
yabai -m window --resize right:-50:0
ctrl + alt - j : yabai -m window --resize bottom:0:50; \
yabai -m window --resize top:0:50
ctrl + alt - k : yabai -m window --resize top:0:-50; \
yabai -m window --resize bottom:0:-50
ctrl + alt - l : yabai -m window --resize right:50:0; \
yabai -m window --resize left:50:0
ctrl + alt - h : \
yabai -m window --resize left:-50:0; \
yabai -m window --resize right:-50:0
ctrl + alt - j : \
yabai -m window --resize bottom:0:50; \
yabai -m window --resize top:0:50
ctrl + alt - k : \
yabai -m window --resize top:0:-50; \
yabai -m window --resize bottom:0:-50
ctrl + alt - l : \
yabai -m window --resize right:50:0; \
yabai -m window --resize left:50:0

View File

@@ -1,10 +1,11 @@
default_session = "main"
display_full_path = true
[[search_dirs]]
path = "~/Code"
depth = 3
[picker_colors]
highlight_color = "#21202e"
highlight_text_color = "#86e1fc"
border_color = "#524f67"
highlight_color = "#31748f"
highlight_text_color = "#e0def4"
border_color = "#524F67"

View File

@@ -51,7 +51,7 @@ if-shell '[ "$DEBUG" = "1" ]' 'set -g debug-file ~/.cache/tmux-debug.log'
# ╰──────────────────────────────────────────────────────────╯
set -g pane-active-border-style "fg=#7aa2f7"
set -g pane-border-style "fg=#3b4261"
set -g pane-border-style "fg=#31748f"
set -g status-style "bg=default"
set -g status-justify "left"
set -g status-left ''
@@ -114,7 +114,7 @@ bind -N "tms refresh" C-r display-popup -E "tms refresh"
# Plugin that lets you suspend local tmux session,
# so that you can work with nested remote tmux session painlessly.
# https://github.com/MunifTanjim/tmux-suspend
set -g @suspend_key 'F12'
set -g @suspend_key 'C-i' # Ctrl + inner
## A plugin to name your tmux windows smartly.
## https://github.com/ofirgall/tmux-window-name

View File

@@ -25,6 +25,7 @@ yabai -m config \
# > yabai -m query --windows | jq .[].app | sort | uniq
yabai -m rule --add app="1Password" manage=off
yabai -m rule --add app="Fork" manage=off
yabai -m rule --add app="GoLand" manage=off
yabai -m rule --add app="JetBrains Rider" manage=off
yabai -m rule --add app="Logi Options" manage=off
yabai -m rule --add app="MSTeams" manage=off

View File

@@ -1,6 +1,7 @@
{
"context_servers": {
"github-activity-summarizer": {
"source": "extension",
"settings": {}
}
},
@@ -8,16 +9,18 @@
"metrics": false
},
"agent": {
"always_allow_tool_actions": false,
"always_allow_tool_actions": true,
"default_profile": "write",
"default_model": {
"provider": "copilot_chat",
"model": "gpt-4.1"
"model": "claude-3.7-sonnet"
},
"version": "2"
"play_sound_when_agent_done": true
},
"languages": {
"PHP": {
"language_servers": ["intelephense", "phpactor"]
"language_servers": ["intelephense", "phpactor"],
"formatter": "language_server"
},
"Python": {
"enable_language_server": true,
@@ -35,14 +38,15 @@
},
"Markdown": {
"enable_language_server": true,
"preferred_line_length": 160,
"prettier": {
"allowed": true
}
"preferred_line_length": 120,
"formatter": "language_server"
},
"Lua": {
"enable_language_server": true,
"tab_size": 2
},
"Go": {
"language_servers": ["gopls", "golangci-lint"]
}
},
"lsp": {
@@ -77,7 +81,7 @@
"update_debounce_ms": 150
}
},
"multi_cursor_modifier": "cmd_or_ctrl", // alias: "cmd", "ctrl"
"multi_cursor_modifier": "cmd_or_ctrl",
"indent_guides": {
"enabled": true,
"coloring": "indent_aware"
@@ -89,8 +93,8 @@
"vim_mode": true,
"theme": {
"mode": "system",
"light": "Tomorrow",
"dark": "Tomorrow at Midnight"
"light": "Rosé Pine Dawn",
"dark": "Rosé Pine"
},
"inlay_hints": {
"enabled": true,
@@ -102,7 +106,6 @@
"buffer_font_size": 16,
"buffer_font_fallbacks": ["JetBrainsMono Nerd Font"],
"use_autoclose": false,
"hour_format": "hour24",
"auto_install_extensions": {
"angular": true,
"ansible": true,
@@ -114,9 +117,9 @@
"dockerfile": true,
"git-firefly": true,
"github-activity-summarizer": true,
"go-snippets": true,
"golangci-lint": true,
"gosum": true,
"go-snippets": true,
"html": true,
"ini": true,
"json": true,
@@ -126,19 +129,20 @@
"lua": true,
"make": true,
"php": true,
"python-snippets": true,
"python-requirements": true,
"python-snippets": true,
"rose-pine-theme": true,
"ruff": true,
"scss": true,
"sieve": true,
"stylelint": true,
"sql": true,
"stylelint": true,
"templ": true,
"toml": true,
"vue": true,
"vue-snippets": true,
"wakatime": true,
"xcode-themes": true,
"yaml": true,
"tomorrow-theme": true
"yaml": true
}
}

View File

@@ -1,12 +1,14 @@
# git-dirty
A powerful tool to recursively check Git repository status across multiple directories.
A powerful tool to recursively check Git repository status across
multiple directories.
## Overview
`git-dirty` scans directories to identify Git repositories and reports their status.
It quickly shows which repositories have uncommitted changes, untracked files, or need
to be pushed, making it easy to maintain clean workspaces across multiple projects.
`git-dirty` scans directories to identify Git repositories and reports their
status. It quickly shows which repositories have uncommitted changes,
untracked files, or need to be pushed, making it easy to maintain clean
workspaces across multiple projects.
## Features
@@ -95,9 +97,10 @@ The script uses the following status indicators:
## Branch Display
The script shows branch names for repositories not on main branches. This helps identify
repositories where work is happening on feature branches. Main branches (configurable as
`main`, `master`, and `trunk` by default) are hidden to reduce output clutter.
The script shows branch names for repositories not on main branches.
This helps identify repositories where work is happening on feature branches.
Main branches (configurable as `main`, `master`, and `trunk` by default) are
hidden to reduce output clutter.
## Configuration
@@ -132,41 +135,44 @@ GIT_DIRTY_EXCLUDE="node_modules vendor .cache build dist tmp"
## Skip Directories from Checking
If you want to skip a directory from being checked, add a `.ignore` file next to the `.git` folder.
You can add `.ignore` to your global `.gitignore` file to avoid committing these files.
If you want to skip a directory from being checked, add a `.ignore` file next
to the `.git` folder. You can add `.ignore` to your global `.gitignore` file
to avoid committing these files.
## Performance Features
- **Parallel processing**: Significant speed improvements when using the `-p` flag
- **Parallel processing**: Significant speed improvements when
using the `-p` flag
- **Progress bars**: Real-time feedback on scanning progress with ETA
- **Rate limiting**: Controls parallel jobs to prevent system overloading
- **Smart directory traversal**: Skips excluded directories for faster processing
- **Smart directory traversal**: Skips excluded directories for
faster processing
## Tips
1. **Add an alias**: Create an alias in your shell configuration:
Add an alias: Create an alias in your shell configuration:
```bash
alias gd='git-dirty'
```
```bash
alias gd='git-dirty'
```
2. **Use it with specific directories**:
Use it with specific directories:
```bash
git-dirty ~/specific/project
```
```bash
git-dirty ~/specific/project
```
3. **Run in parallel mode for large codebases**:
Run in parallel mode for large codebases:
```bash
git-dirty -p ~/huge-monorepo
```
```bash
git-dirty -p ~/huge-monorepo
```
4. **Turn off branch display for cleaner output**:
Turn off branch display for cleaner output:
```bash
git-dirty -b
```
```bash
git-dirty -b
```
## Requirements

View File

@@ -6,11 +6,14 @@
"doc": "docs"
},
"scripts": {
"lint:markdown": "npx markdownlint -d .",
"fix:markdown": "npx markdownlint -df .",
"lint:prettier": "npx prettier . --check",
"fix:prettier": "npx prettier . --write",
"test": "bash test-all.sh"
"lint:markdown": "markdownlint -d .",
"fix:markdown": "markdownlint -df .",
"lint:prettier": "prettier . --check",
"fix:prettier": "prettier . --write",
"test": "bash test-all.sh",
"lint:ec": "ec -f gcc",
"lint": "yarn lint:markdown && yarn lint:prettier && yarn lint:ec",
"fix": "yarn fix:markdown && yarn fix:prettier"
},
"repository": {
"type": "git",
@@ -30,6 +33,9 @@
"@ivuorinen/base-configs": "^2.0.0",
"@types/node": "^24.0.1",
"bats": "^1.12.0",
"editorconfig-checker": "^6.1.0",
"markdownlint": "^0.38",
"prettier": "^3.6.2",
"typescript": "^5.8.3"
},
"packageManager": "yarn@1.22.22"

View File

@@ -38,7 +38,7 @@ install_packages()
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
msgr run "Installing cargo package $pkg"
cargo install --jobs $BUILD_JOBS "$pkg"
cargo install --jobs "$BUILD_JOBS" "$pkg"
msgr run_done "Done installing $pkg"
echo ""
done
@@ -56,13 +56,13 @@ post_install_steps()
msgr run "Removing cargo cache"
cargo cache --autoclean
msgr done "Done removing cargo cache"
msgr "done" "Done removing cargo cache"
}
main()
{
install_packages
msgr done "Installed cargo packages!"
msgr "done" "Installed cargo packages!"
post_install_steps
}

View File

@@ -9,7 +9,7 @@ VERBOSE="${VERBOSE:-0}"
# Check if ntfy is already installed
if x-have "ntfy"; then
msgr done "ntfy already installed"
msgr "done" "ntfy already installed"
exit 0
fi
@@ -50,7 +50,7 @@ install_ntfy()
main()
{
install_ntfy
msgr done "ntfy installation complete"
msgr "done" "ntfy installation complete"
}
main "$@"

18
tools/install-ec.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Install editorconfig-checker if not already installed
set -euo pipefail
if command -v ec > /dev/null 2>&1; then
exit 0
fi
if ! command -v yarn > /dev/null 2>&1; then
echo "yarn is required to install editorconfig-checker" >&2
exit 1
fi
if yarn --version | grep -q '^1\.'; then
yarn global add --silent editorconfig-checker@"${VERSION:-latest}"
else
yarn dlx --quiet editorconfig-checker@"${VERSION:-latest}" --version > /dev/null
fi

664
yarn.lock

File diff suppressed because it is too large Load Diff