Compare commits

...

11 Commits

Author SHA1 Message Date
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
fb97f10f64 chore(nvim): lax hardtime rules
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-08 01:34:33 +03:00
6dbbc439b3 feat(nvim): switch to rose pine
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-08 01:33:18 +03:00
16 changed files with 135 additions and 28 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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
View 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.

View File

@@ -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",

View File

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

View File

@@ -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 "$@")"
} }

View File

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

View File

@@ -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

View File

@@ -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,
},
},
},
}, },
} }

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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
} }
} }

View File

@@ -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
} }

View File

@@ -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 "$@"