mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-02-01 20:47:42 +00:00
Compare commits
11 Commits
25.7.7
...
codex/2025
| Author | SHA1 | Date | |
|---|---|---|---|
| 191488c081 | |||
| cc47614280 | |||
| 91cde60dba | |||
| 5dea757707 | |||
| f8833fca73 | |||
| 9cd99dbc88 | |||
| 14f67cb5ca | |||
|
|
4ce76fbd70 | ||
|
|
ca68803fb9 | ||
| fb97f10f64 | |||
| 6dbbc439b3 |
2
.github/workflows/linters.yml
vendored
2
.github/workflows/linters.yml
vendored
@@ -33,4 +33,4 @@ jobs:
|
|||||||
|
|
||||||
- name: Run PR Lint
|
- name: Run PR Lint
|
||||||
# https://github.com/ivuorinen/actions
|
# https://github.com/ivuorinen/actions
|
||||||
uses: ivuorinen/actions/pr-lint@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30
|
uses: ivuorinen/actions/pr-lint@625c37446b1c7e219755a40807f825c9283f6e05 # 25.7.7
|
||||||
|
|||||||
2
.github/workflows/sync-labels.yml
vendored
2
.github/workflows/sync-labels.yml
vendored
@@ -29,4 +29,4 @@ jobs:
|
|||||||
issues: write
|
issues: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: ivuorinen/actions/sync-labels@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30
|
- uses: ivuorinen/actions/sync-labels@625c37446b1c7e219755a40807f825c9283f6e05 # 25.7.7
|
||||||
|
|||||||
@@ -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.12.0-1
|
||||||
hooks:
|
hooks:
|
||||||
- id: shfmt
|
- id: shfmt
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ repos:
|
|||||||
- id: actionlint
|
- id: actionlint
|
||||||
|
|
||||||
- repo: https://github.com/renovatebot/pre-commit-hooks
|
- repo: https://github.com/renovatebot/pre-commit-hooks
|
||||||
rev: 41.23.2
|
rev: 41.23.5
|
||||||
hooks:
|
hooks:
|
||||||
- id: renovate-config-validator
|
- 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"
|
"value": "Ismo Vuorinen"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"masf": [
|
||||||
|
{
|
||||||
|
"key": "user.email",
|
||||||
|
"value": "ismo@masf.fi"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "user.name",
|
||||||
|
"value": "Ismo Vuorinen"
|
||||||
|
}
|
||||||
|
],
|
||||||
"work": [
|
"work": [
|
||||||
{
|
{
|
||||||
"key": "user.email",
|
"key": "user.email",
|
||||||
|
|||||||
@@ -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.
|
||||||
@@ -21,3 +19,8 @@ github.com/rhysd/actionlint/cmd/actionlint@v1.7.1
|
|||||||
github.com/doron-cohen/antidot@v0.6.3
|
github.com/doron-cohen/antidot@v0.6.3
|
||||||
// FZF is a general-purpose command-line fuzzy finder.
|
// FZF is a general-purpose command-line fuzzy finder.
|
||||||
github.com/junegunn/fzf@latest
|
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' ###
|
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
|
||||||
|
# shellcheck shell=bash
|
||||||
use_asdf() {
|
use_asdf() {
|
||||||
source_env "$(asdf direnv envrc "$@")"
|
source_env "$(asdf direnv envrc "$@")"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,3 +21,5 @@ dfm.sh
|
|||||||
.scannerwork
|
.scannerwork
|
||||||
.phpactor.json
|
.phpactor.json
|
||||||
.zsh_history
|
.zsh_history
|
||||||
|
**/.claude/settings.local.json
|
||||||
|
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
helper = cache --timeout 30000
|
helper = cache --timeout 30000
|
||||||
|
|
||||||
[core]
|
[core]
|
||||||
excludesfile = ~/.config/git/gitignore
|
excludesfile = ~/.config/git/ignore
|
||||||
|
|
||||||
[init]
|
[init]
|
||||||
defaultBranch = main
|
defaultBranch = main
|
||||||
|
|||||||
@@ -1,7 +1,22 @@
|
|||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
'rmehri01/onenord.nvim',
|
'rose-pine/neovim',
|
||||||
opts = {},
|
name = 'rose-pine',
|
||||||
|
opts = {
|
||||||
|
dim_inactive_windows = false,
|
||||||
|
extend_background_behind_borders = true,
|
||||||
|
styles = {
|
||||||
|
bold = true,
|
||||||
|
italic = true,
|
||||||
|
transparency = true,
|
||||||
|
},
|
||||||
|
enable = {
|
||||||
|
terminal = true,
|
||||||
|
legacy_highlights = true, -- Improve compatibility for previous versions of Neovim
|
||||||
|
migrations = true, -- Handle deprecated options automatically
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function() vim.cmd 'colorscheme rose-pine' end,
|
||||||
},
|
},
|
||||||
-- Automatic dark mode
|
-- Automatic dark mode
|
||||||
-- https://github.com/f-person/auto-dark-mode.nvim
|
-- https://github.com/f-person/auto-dark-mode.nvim
|
||||||
@@ -12,10 +27,12 @@ return {
|
|||||||
set_dark_mode = function()
|
set_dark_mode = function()
|
||||||
vim.api.nvim_set_option_value('background', 'dark', {})
|
vim.api.nvim_set_option_value('background', 'dark', {})
|
||||||
-- vim.cmd.colorscheme(vim.g.colors_variant_dark)
|
-- vim.cmd.colorscheme(vim.g.colors_variant_dark)
|
||||||
|
vim.cmd 'colorscheme rose-pine'
|
||||||
end,
|
end,
|
||||||
set_light_mode = function()
|
set_light_mode = function()
|
||||||
vim.api.nvim_set_option_value('background', 'light', {})
|
vim.api.nvim_set_option_value('background', 'light', {})
|
||||||
-- vim.cmd.colorscheme(vim.g.colors_variant_light)
|
-- vim.cmd.colorscheme(vim.g.colors_variant_light)
|
||||||
|
vim.cmd 'colorscheme rose-pine-dawn'
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -68,6 +85,42 @@ return {
|
|||||||
'm4xshen/hardtime.nvim',
|
'm4xshen/hardtime.nvim',
|
||||||
lazy = false,
|
lazy = false,
|
||||||
dependencies = { 'MunifTanjim/nui.nvim' },
|
dependencies = { 'MunifTanjim/nui.nvim' },
|
||||||
opts = {},
|
opts = {
|
||||||
|
restriction_mode = 'hint',
|
||||||
|
disabled_keys = {
|
||||||
|
['<Up>'] = { '', 'n' },
|
||||||
|
['<Down>'] = { '', 'n' },
|
||||||
|
['<Left>'] = { '', 'n' },
|
||||||
|
['<Right>'] = { '', 'n' },
|
||||||
|
['<C-Up>'] = { '', 'n' },
|
||||||
|
['<C-Down>'] = { '', 'n' },
|
||||||
|
['<C-Left>'] = { '', 'n' },
|
||||||
|
['<C-Right>'] = { '', 'n' },
|
||||||
|
},
|
||||||
|
disabled_filetypes = {
|
||||||
|
'TelescopePrompt',
|
||||||
|
'Trouble',
|
||||||
|
'lazy',
|
||||||
|
'mason',
|
||||||
|
'help',
|
||||||
|
'notify',
|
||||||
|
'dashboard',
|
||||||
|
'alpha',
|
||||||
|
},
|
||||||
|
hints = {
|
||||||
|
['[dcyvV][ia][%(%)]'] = {
|
||||||
|
message = function(keys)
|
||||||
|
return 'Use ' .. keys:sub(1, 2) .. 'b instead of ' .. keys
|
||||||
|
end,
|
||||||
|
length = 3,
|
||||||
|
},
|
||||||
|
['[dcyvV][ia][%{%}]'] = {
|
||||||
|
message = function(keys)
|
||||||
|
return 'Use ' .. keys:sub(1, 2) .. 'B instead of ' .. keys
|
||||||
|
end,
|
||||||
|
length = 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
|
# shellcheck shell=bash
|
||||||
export OP_PLUGIN_ALIASES_SOURCED=1
|
export OP_PLUGIN_ALIASES_SOURCED=1
|
||||||
alias gh="op plugin run -- gh"
|
alias gh="op plugin run -- gh"
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ x-path-prepend()
|
|||||||
local dir=$1
|
local dir=$1
|
||||||
case "$CURRENT_SHELL" in
|
case "$CURRENT_SHELL" in
|
||||||
fish)
|
fish)
|
||||||
set -U fish_user_paths "$dir" $fish_user_paths
|
set -U fish_user_paths "$dir" "$fish_user_paths"
|
||||||
;;
|
;;
|
||||||
sh | bash | zsh)
|
sh | bash | zsh)
|
||||||
PATH="$dir:$PATH"
|
PATH="$dir:$PATH"
|
||||||
@@ -106,7 +106,7 @@ if ! declare -f msg_done > /dev/null; then
|
|||||||
# $1 - message (string)
|
# $1 - message (string)
|
||||||
msg_done()
|
msg_done()
|
||||||
{
|
{
|
||||||
msgr done "$1"
|
msgr "done" "$1"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ yabai -m config \
|
|||||||
# > yabai -m query --windows | jq .[].app | sort | uniq
|
# > yabai -m query --windows | jq .[].app | sort | uniq
|
||||||
yabai -m rule --add app="1Password" manage=off
|
yabai -m rule --add app="1Password" manage=off
|
||||||
yabai -m rule --add app="Fork" 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="JetBrains Rider" manage=off
|
||||||
yabai -m rule --add app="Logi Options" manage=off
|
yabai -m rule --add app="Logi Options" manage=off
|
||||||
yabai -m rule --add app="MSTeams" manage=off
|
yabai -m rule --add app="MSTeams" manage=off
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"context_servers": {
|
"context_servers": {
|
||||||
"github-activity-summarizer": {
|
"github-activity-summarizer": {
|
||||||
|
"source": "extension",
|
||||||
"settings": {}
|
"settings": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -8,12 +9,13 @@
|
|||||||
"metrics": false
|
"metrics": false
|
||||||
},
|
},
|
||||||
"agent": {
|
"agent": {
|
||||||
"always_allow_tool_actions": false,
|
"always_allow_tool_actions": true,
|
||||||
|
"default_profile": "ask",
|
||||||
"default_model": {
|
"default_model": {
|
||||||
"provider": "copilot_chat",
|
"provider": "copilot_chat",
|
||||||
"model": "gpt-4.1"
|
"model": "gpt-4.1"
|
||||||
},
|
},
|
||||||
"version": "2"
|
"play_sound_when_agent_done": true
|
||||||
},
|
},
|
||||||
"languages": {
|
"languages": {
|
||||||
"PHP": {
|
"PHP": {
|
||||||
@@ -77,7 +79,7 @@
|
|||||||
"update_debounce_ms": 150
|
"update_debounce_ms": 150
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"multi_cursor_modifier": "cmd_or_ctrl", // alias: "cmd", "ctrl"
|
"multi_cursor_modifier": "cmd_or_ctrl",
|
||||||
"indent_guides": {
|
"indent_guides": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"coloring": "indent_aware"
|
"coloring": "indent_aware"
|
||||||
@@ -89,8 +91,8 @@
|
|||||||
"vim_mode": true,
|
"vim_mode": true,
|
||||||
"theme": {
|
"theme": {
|
||||||
"mode": "system",
|
"mode": "system",
|
||||||
"light": "Tomorrow",
|
"light": "Rosé Pine Dawn",
|
||||||
"dark": "Tomorrow at Midnight"
|
"dark": "Rosé Pine"
|
||||||
},
|
},
|
||||||
"inlay_hints": {
|
"inlay_hints": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
@@ -102,7 +104,6 @@
|
|||||||
"buffer_font_size": 16,
|
"buffer_font_size": 16,
|
||||||
"buffer_font_fallbacks": ["JetBrainsMono Nerd Font"],
|
"buffer_font_fallbacks": ["JetBrainsMono Nerd Font"],
|
||||||
"use_autoclose": false,
|
"use_autoclose": false,
|
||||||
"hour_format": "hour24",
|
|
||||||
"auto_install_extensions": {
|
"auto_install_extensions": {
|
||||||
"angular": true,
|
"angular": true,
|
||||||
"ansible": true,
|
"ansible": true,
|
||||||
@@ -114,9 +115,9 @@
|
|||||||
"dockerfile": true,
|
"dockerfile": true,
|
||||||
"git-firefly": true,
|
"git-firefly": true,
|
||||||
"github-activity-summarizer": true,
|
"github-activity-summarizer": true,
|
||||||
|
"go-snippets": true,
|
||||||
"golangci-lint": true,
|
"golangci-lint": true,
|
||||||
"gosum": true,
|
"gosum": true,
|
||||||
"go-snippets": true,
|
|
||||||
"html": true,
|
"html": true,
|
||||||
"ini": true,
|
"ini": true,
|
||||||
"json": true,
|
"json": true,
|
||||||
@@ -126,19 +127,20 @@
|
|||||||
"lua": true,
|
"lua": true,
|
||||||
"make": true,
|
"make": true,
|
||||||
"php": true,
|
"php": true,
|
||||||
"python-snippets": true,
|
|
||||||
"python-requirements": true,
|
"python-requirements": true,
|
||||||
|
"python-snippets": true,
|
||||||
|
"rose-pine-theme": true,
|
||||||
"ruff": true,
|
"ruff": true,
|
||||||
"scss": true,
|
"scss": true,
|
||||||
"sieve": true,
|
"sieve": true,
|
||||||
"stylelint": true,
|
|
||||||
"sql": true,
|
"sql": true,
|
||||||
|
"stylelint": true,
|
||||||
|
"templ": true,
|
||||||
"toml": true,
|
"toml": true,
|
||||||
"vue": true,
|
"vue": true,
|
||||||
"vue-snippets": true,
|
"vue-snippets": true,
|
||||||
"wakatime": true,
|
"wakatime": true,
|
||||||
"xcode-themes": true,
|
"xcode-themes": true,
|
||||||
"yaml": true,
|
"yaml": true
|
||||||
"tomorrow-theme": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ install_packages()
|
|||||||
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
|
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
|
||||||
|
|
||||||
msgr run "Installing cargo package $pkg"
|
msgr run "Installing cargo package $pkg"
|
||||||
cargo install --jobs $BUILD_JOBS "$pkg"
|
cargo install --jobs "$BUILD_JOBS" "$pkg"
|
||||||
msgr run_done "Done installing $pkg"
|
msgr run_done "Done installing $pkg"
|
||||||
echo ""
|
echo ""
|
||||||
done
|
done
|
||||||
@@ -56,13 +56,13 @@ post_install_steps()
|
|||||||
|
|
||||||
msgr run "Removing cargo cache"
|
msgr run "Removing cargo cache"
|
||||||
cargo cache --autoclean
|
cargo cache --autoclean
|
||||||
msgr done "Done removing cargo cache"
|
msgr "done" "Done removing cargo cache"
|
||||||
}
|
}
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
install_packages
|
install_packages
|
||||||
msgr done "Installed cargo packages!"
|
msgr "done" "Installed cargo packages!"
|
||||||
post_install_steps
|
post_install_steps
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ VERBOSE="${VERBOSE:-0}"
|
|||||||
|
|
||||||
# Check if ntfy is already installed
|
# Check if ntfy is already installed
|
||||||
if x-have "ntfy"; then
|
if x-have "ntfy"; then
|
||||||
msgr done "ntfy already installed"
|
msgr "done" "ntfy already installed"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ install_ntfy()
|
|||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
install_ntfy
|
install_ntfy
|
||||||
msgr done "ntfy installation complete"
|
msgr "done" "ntfy installation complete"
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user