mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-27 20:45:31 +00:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 52a5f226e9 | |||
|
|
9b94302270 | ||
|
|
fe7e9173d0 | ||
|
|
fb5aae3deb | ||
| 036392d38a | |||
| 2cb11292d4 | |||
| a163d6338a | |||
| 191488c081 | |||
| cc47614280 | |||
| 91cde60dba | |||
| 5dea757707 | |||
| f8833fca73 | |||
| 9cd99dbc88 | |||
| 14f67cb5ca | |||
|
|
4ce76fbd70 | ||
|
|
ca68803fb9 |
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"Version": "2.7.0",
|
||||
"Version": "v3.3.0",
|
||||
"Verbose": false,
|
||||
"Debug": false,
|
||||
"IgnoreDefaults": false,
|
||||
"SpacesAftertabs": false,
|
||||
"SpacesAfterTabs": false,
|
||||
"NoColor": false,
|
||||
"Exclude": [],
|
||||
"AllowedContentTypes": [],
|
||||
2
.github/workflows/linters.yml
vendored
2
.github/workflows/linters.yml
vendored
@@ -33,4 +33,4 @@ jobs:
|
||||
|
||||
- name: Run PR Lint
|
||||
# https://github.com/ivuorinen/actions
|
||||
uses: ivuorinen/actions/pr-lint@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30
|
||||
uses: ivuorinen/actions/pr-lint@3cfe6722c4f81d724c8c6b27be453ff4c6f14ef0 # 25.7.14
|
||||
|
||||
2
.github/workflows/sync-labels.yml
vendored
2
.github/workflows/sync-labels.yml
vendored
@@ -29,4 +29,4 @@ jobs:
|
||||
issues: write
|
||||
|
||||
steps:
|
||||
- uses: ivuorinen/actions/sync-labels@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30
|
||||
- uses: ivuorinen/actions/sync-labels@3cfe6722c4f81d724c8c6b27be453ff4c6f14ef0 # 25.7.14
|
||||
|
||||
@@ -39,7 +39,7 @@ repos:
|
||||
- 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 +49,7 @@ repos:
|
||||
- id: actionlint
|
||||
|
||||
- repo: https://github.com/renovatebot/pre-commit-hooks
|
||||
rev: 41.23.2
|
||||
rev: 41.37.7
|
||||
hooks:
|
||||
- id: renovate-config-validator
|
||||
|
||||
|
||||
34
AGENTS.md
Normal file
34
AGENTS.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Project guidelines
|
||||
|
||||
This repository contains configuration files and helper scripts for managing a development environment. Dotbot drives the installation and host specific folders under `hosts/` include extra configs.
|
||||
|
||||
## Keeping the repository up to date
|
||||
|
||||
1. Update submodules with `git submodule update --remote --merge`.
|
||||
2. Pull the latest changes and run `./install`.
|
||||
3. Run `yarn install` whenever `package.json` changes.
|
||||
|
||||
## Linting and tests
|
||||
|
||||
- Format files with:
|
||||
|
||||
```bash
|
||||
yarn fix:prettier
|
||||
yarn fix:markdown
|
||||
```
|
||||
|
||||
- Shell scripts must pass `shellcheck`. Run:
|
||||
|
||||
```bash
|
||||
find . -path ./node_modules -prune -o -name '*.sh' -print0 | xargs -0 shellcheck
|
||||
```
|
||||
|
||||
- Execute tests with `yarn test`.
|
||||
|
||||
## 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.
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
|
||||
# shellcheck shell=bash
|
||||
use_asdf() {
|
||||
source_env "$(asdf direnv envrc "$@")"
|
||||
}
|
||||
|
||||
54
config/fish/completions/pinact.fish
Normal file
54
config/fish/completions/pinact.fish
Normal 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'
|
||||
@@ -21,3 +21,5 @@ dfm.sh
|
||||
.scannerwork
|
||||
.phpactor.json
|
||||
.zsh_history
|
||||
**/.claude/settings.local.json
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
helper = cache --timeout 30000
|
||||
|
||||
[core]
|
||||
excludesfile = ~/.config/git/gitignore
|
||||
excludesfile = ~/.config/git/ignore
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
# shellcheck shell=bash
|
||||
export OP_PLUGIN_ALIASES_SOURCED=1
|
||||
alias gh="op plugin run -- gh"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"context_servers": {
|
||||
"github-activity-summarizer": {
|
||||
"source": "extension",
|
||||
"settings": {}
|
||||
}
|
||||
},
|
||||
@@ -8,12 +9,13 @@
|
||||
"metrics": false
|
||||
},
|
||||
"agent": {
|
||||
"always_allow_tool_actions": false,
|
||||
"always_allow_tool_actions": true,
|
||||
"default_profile": "ask",
|
||||
"default_model": {
|
||||
"provider": "copilot_chat",
|
||||
"model": "gpt-4.1"
|
||||
},
|
||||
"version": "2"
|
||||
"play_sound_when_agent_done": true
|
||||
},
|
||||
"languages": {
|
||||
"PHP": {
|
||||
@@ -77,7 +79,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 +91,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 +104,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 +115,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 +127,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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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 "$@"
|
||||
|
||||
Reference in New Issue
Block a user