diff --git a/fish/conf.d/android-sdk.conf b/fish/conf.d/android-sdk.conf deleted file mode 100644 index 5f30e73..0000000 --- a/fish/conf.d/android-sdk.conf +++ /dev/null @@ -1,3 +0,0 @@ -set -x ANDROID_HOME "$HOME/Android/Sdk" -set -x ANDROID_SDK_ROOT "$ANDROID_HOME" -fish_add_path "$ANDROID_HOME/platform-tools" "$ANDROID_HOME/cmdline-tools/latest/bin" "$ANDROID_HOME/emulator" diff --git a/fish/conf.d/opencode.fish b/fish/conf.d/opencode.fish new file mode 100644 index 0000000..5c2a39d --- /dev/null +++ b/fish/conf.d/opencode.fish @@ -0,0 +1,3 @@ +if [ -d "$HOME/.opencode/bin" ] + fish_add_path $HOME/.opencode/bin +end diff --git a/fonts/Ioseveka-custom.sh b/fonts/Ioseveka-custom.sh deleted file mode 100755 index a92c0a1..0000000 --- a/fonts/Ioseveka-custom.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -BASE_URL=https://raw.githubusercontent.com/pnx/Iosevka-custom/main/dist -INSTALL_DIR=~/.local/share/fonts - -FONTS=( - IosevkaCustom-Regular.ttf - IosevkaCustom-SemiBold.ttf - IosevkaCustomNerdFont-Regular.ttf - IosevkaCustomNerdFont-SemiBold.ttf -) - -for font in ${FONTS[@]}; do - echo "Installing ${font} to '${INSTALL_DIR}/${font}'" - curl -L -o "${INSTALL_DIR}/${font}" "${BASE_URL}/${font}" -done - - diff --git a/fonts/Iosevka/.gitignore b/fonts/Iosevka/.gitignore new file mode 100644 index 0000000..99ee1f1 --- /dev/null +++ b/fonts/Iosevka/.gitignore @@ -0,0 +1,2 @@ +.build +.patcher diff --git a/fonts/Iosevka/Makefile b/fonts/Iosevka/Makefile new file mode 100644 index 0000000..832a1de --- /dev/null +++ b/fonts/Iosevka/Makefile @@ -0,0 +1,26 @@ +IOSEVKA_GIT=https://github.com/be5invis/Iosevka.git +FONT_NAME=IosevkaCustom +BUILD_DIR=.build +INSTALL_DIR ?= ~/.local/share/fonts + +.phony = install + +build: $(BUILD_DIR) \ + $(BUILD_DIR)/node_modules \ + $(BUILD_DIR)/private-build-plans.toml + cd $(BUILD_DIR); npm run build -- ttf::$(FONT_NAME) + install -m 644 $(BUILD_DIR)/dist/$(FONT_NAME)/TTF/*.ttf dist + +install: + mkdir -p $(INSTALL_DIR) + install -m 644 dist/*.ttf $(INSTALL_DIR) + +$(BUILD_DIR) : + git clone --depth 1 $(IOSEVKA_GIT) $(BUILD_DIR) + +$(BUILD_DIR)/node_modules : + cd $(BUILD_DIR); npm install + +$(BUILD_DIR)/private-build-plans.toml : config.toml + cp $< $@ + diff --git a/fonts/Iosevka/config.toml b/fonts/Iosevka/config.toml new file mode 100644 index 0000000..b0e7c37 --- /dev/null +++ b/fonts/Iosevka/config.toml @@ -0,0 +1,94 @@ +[buildPlans.IosevkaCustom] +family = "IosevkaCustom" +spacing = "term" +serifs = "sans" +noCvSs = true +exportGlyphNames = false +noLigation = true + +[buildPlans.IosevkaCustom.variants] +inherits = "ss12" + +[buildPlans.IosevkaCustom.variants.design] +one = "base" +two = "straight-neck-serifless" +five = "upright-arched-serifless" +six = "closed-contour" +eight = "crossing" +nine = "straight-bar" +zero = "slashed" +capital-d = "standard-serifless" +capital-g = "toothless-corner-serifless-hooked" +capital-m = "flat-bottom-serifless" +capital-q = "crossing" +capital-r = "straight-serifless" +capital-w = "straight-flat-top-serifless" +a = "single-storey-earless-corner-serifless" +f = "flat-hook-serifless-crossbar-at-x-height" +g = "single-storey-flat-hook-earless-corner" +i = "serifed" +j = "flat-hook-serifless" +l = "serifed" +m = "earless-corner-double-arch-serifless" +t = "flat-hook" +w = "straight-flat-top-serifless" +y = "straight-serifless" +lower-eth = "straight-bar" +tittle = "square" +diacritic-dot = "square" +punctuation-dot = "square" +braille-dot = "square" +asterisk = "turn-hex-low" +underscore = "above-baseline" +brace = "curly" +number-sign = "upright" +dollar = "interrupted" +question = "corner-flat-hooked" +pilcrow = "high" +lig-ltgteq = "slanted" +lig-equal-chain = "without-notch" +lig-hyphen-chain = "without-notch" + +[buildPlans.IosevkaCustom.weights.Regular] +shape = 400 +menu = 400 +css = 400 + +[buildPlans.IosevkaCustom.weights.SemiBold] +shape = 600 +menu = 600 +css = 600 + +[buildPlans.IosevkaCustom.widths.Normal] +shape = 500 +menu = 5 +css = "normal" + +[buildPlans.IosevkaCustom.slopes.Upright] +angle = 0 +shape = "upright" +menu = "upright" +css = "normal" + +[buildPlans.IosevkaCustom.ligations] +disables = [ + "slash-asterisk", + "trig" +] +# enables = [ +# "arrow-l", +# "arrow-r", +# "eqeq", +# "eqeqeq", +# "exeq", +# "exeqeq", +# "exeqeqeq", +# "lteq", +# "gteq", +# "ltgt-ne", +# "llgg", +# "llggeq", +# # "kern-dotty", +# # "kern-bars", +# "html-comment" +# ] diff --git a/fonts/Iosevka/deps.sh b/fonts/Iosevka/deps.sh new file mode 100755 index 0000000..6c074bd --- /dev/null +++ b/fonts/Iosevka/deps.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +sudo dnf install ttfautohint fontforge python3-fontforge diff --git a/fonts/Iosevka/dist/IosevkaCustom-Regular.ttf b/fonts/Iosevka/dist/IosevkaCustom-Regular.ttf new file mode 100644 index 0000000..12c68d4 Binary files /dev/null and b/fonts/Iosevka/dist/IosevkaCustom-Regular.ttf differ diff --git a/fonts/Iosevka/dist/IosevkaCustom-SemiBold.ttf b/fonts/Iosevka/dist/IosevkaCustom-SemiBold.ttf new file mode 100644 index 0000000..a365333 Binary files /dev/null and b/fonts/Iosevka/dist/IosevkaCustom-SemiBold.ttf differ diff --git a/fonts/Iosevka/dist/IosevkaCustomNerdFont-Regular.ttf b/fonts/Iosevka/dist/IosevkaCustomNerdFont-Regular.ttf new file mode 100644 index 0000000..d73dbb3 Binary files /dev/null and b/fonts/Iosevka/dist/IosevkaCustomNerdFont-Regular.ttf differ diff --git a/fonts/Iosevka/dist/IosevkaCustomNerdFont-SemiBold.ttf b/fonts/Iosevka/dist/IosevkaCustomNerdFont-SemiBold.ttf new file mode 100644 index 0000000..3192653 Binary files /dev/null and b/fonts/Iosevka/dist/IosevkaCustomNerdFont-SemiBold.ttf differ diff --git a/fonts/Iosevka/patcher.sh b/fonts/Iosevka/patcher.sh new file mode 100755 index 0000000..037ceaf --- /dev/null +++ b/fonts/Iosevka/patcher.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +BASE_PATH=$(dirname $(readlink -f $BASH_SOURCE)) + +TMP_DIR=${BASE_PATH}/.patcher +SCRIPT_FILE="$TMP_DIR/font-patcher" +URL=https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FontPatcher.zip +ZIP_FILE=patcher.zip + +if [ ! -f $SCRIPT_FILE ];then + mkdir $TMP_DIR + + if [ ! -f "$TMP_DIR/$ZIP_FILE" ]; then + curl -L -o "$TMP_DIR/$ZIP_FILE" ${URL} + fi + + unzip "$TMP_DIR/$ZIP_FILE" -d $TMP_DIR +fi + +for font in ${BASE_PATH}/dist/IosevkaCustom-*.ttf; do + $SCRIPT_FILE -out ${BASE_PATH}/dist -c $font +done + diff --git a/ghostty/config.ghostty b/ghostty/config.ghostty index e25d482..207f3bc 100644 --- a/ghostty/config.ghostty +++ b/ghostty/config.ghostty @@ -6,7 +6,6 @@ font-family = "IosevkaCustom Nerd Font" font-style-bold = "SemiBold" font-style = "" font-size = 15 -font-feature = -dlig, -liga, -calt adjust-cell-width = 1 adjust-cell-height = 8 @@ -26,8 +25,6 @@ cursor-style-blink = false theme = skift # Behavior -working-directory = home -window-inherit-working-directory = false copy-on-select=clipboard right-click-action=paste clipboard-trim-trailing-spaces=true @@ -36,8 +33,8 @@ desktop-notifications=false # Keybinds -# keybind = ctrl+click=ignore -# keybind = shift+click=open_url +keybind = "ctrl+click" = ignore +keybind = "shift+click" = open_url # keybind = performable:ctrl+c=copy_to_clipboard # keybind = performable:ctrl+v=paste_from_clipboard diff --git a/git/conf.d/ignore b/git/conf.d/ignore deleted file mode 100644 index e24e880..0000000 --- a/git/conf.d/ignore +++ /dev/null @@ -1,2 +0,0 @@ -/.tmp -**/.claude/settings.local.json diff --git a/git/config b/git/config index 0195ddd..65ae0b8 100644 --- a/git/config +++ b/git/config @@ -1,8 +1,6 @@ [user] email = henrik.hautakoski@gmail.com name = Henrik Hautakoski -[core] - excludesFile = ~/.config/git/ignore [pull] rebase = true [init] diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index ad4af35..c54edcd 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -12,7 +12,7 @@ $color_active_border = $color_border $color_inactive_border = $color_border # Set programs that you use -$terminal = ghostty +$terminal = alacritty $menu = rofi -show drun $run_prog = rofi -show run $screenshot = grim -g "$(slurp)" - | wl-copy @@ -92,6 +92,7 @@ animations { } dwindle { + pseudotile = no # master switch for pseudotiling. preserve_split = true precise_mouse_move = true } @@ -161,6 +162,7 @@ bind = $mainMod, S, exec, $screenshot # Windows bind = $mainMod, X, killactive, bind = $mainMod, F, togglefloating, +bind = $mainMod, V, togglesplit, # dwindle # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l @@ -206,7 +208,7 @@ bindm = $mainMod, mouse:273, resizewindow # ------------- # Hyprland apps -exec-once=hypridle +exec-once = hypridle # set wallpaper exec-once=hyprpaper diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf index c39d8d8..8663efc 100644 --- a/hypr/hyprpaper.conf +++ b/hypr/hyprpaper.conf @@ -1,8 +1,8 @@ splash = false -ipc = true +ipc = false wallpaper { monitor = path = ~/.local/share/wallpapers/wallpaper.jpeg - fit_mode = cover + fit_mode = fit } diff --git a/opencode/command/commit.md b/opencode/command/commit.md index 75b5367..5097752 100644 --- a/opencode/command/commit.md +++ b/opencode/command/commit.md @@ -4,28 +4,36 @@ description: Create well-formatted commits with conventional commit messages # Commit Command -You are an AI agent that helps create well-formatted git commits with conventional commit messages, follow these instructions exactly. Always run and NEVER push the commit, you don't need to ask for confirmation unless there is a big issue or error. +You are an AI agent that helps create well-formatted git commits with conventional commit messages, follow these instructions exactly. Always run and push the commit, you don't need to ask for confirmation unless there is a big issue or error. ## Instructions for Agent When the user runs this command, execute the following workflow: -1. **Analyze git status**: +1. **Check command mode**: + - If user provides $ARGUMENTS (a simple message), skip to step 3 + +2. **Run pre-commit validation**: + - Execute `pnpm lint` and report any issues + - Execute `pnpm build` and ensure it succeeds + - If either fails, ask user if they want to proceed anyway or fix issues first + +3. **Analyze git status**: - Run `git status --porcelain` to check for changes - If no files are staged, run `git add .` to stage all modified files - If files are already staged, proceed with only those files -2. **Analyze the changes**: +4. **Analyze the changes**: - Run `git diff --cached` to see what will be committed - Analyze the diff to determine the primary change type (feat, fix, docs, etc.) - Identify the main scope and purpose of the changes -3. **Generate commit message**: +5. **Generate commit message**: - Create message following format: `: ` - Keep description concise, clear, and in imperative mood - Show the proposed message to user for confirmation -4. **Execute the commit**: +6. **Execute the commit**: - Run `git commit -m ""` - Display the commit hash and confirm success - Provide brief summary of what was committed @@ -82,6 +90,6 @@ Example commit sequence: - **Error handling**: If validation fails, give user option to proceed or fix issues first - **Auto-staging**: If no files are staged, automatically stage all changes with `git add .` - **File priority**: If files are already staged, only commit those specific files -- **Never push the commit**: You must never under any circumstances execute `git push`. +- **Always run and push the commit**: You don't need to ask for confirmation unless there is a big issue or error `git push`. - **Message quality**: Ensure commit messages are clear, concise, and follow conventional format - **Success feedback**: After successful commit, show commit hash and brief summary diff --git a/opencode/opencode.json b/opencode/opencode.json index 599fab5..a8b3f25 100644 --- a/opencode/opencode.json +++ b/opencode/opencode.json @@ -16,9 +16,9 @@ }, }, "mcp": { - "linear": { + "neuron-ai-doc": { "type": "remote", - "url": "https://mcp.linear.app/mcp", + "url": "https://docs.neuron-ai.dev/~gitbook/mcp", "enabled": true } } diff --git a/opencode/plugin/notify.ts b/opencode/plugin/notify.ts index 4146c88..f99ff27 100644 --- a/opencode/plugin/notify.ts +++ b/opencode/plugin/notify.ts @@ -10,7 +10,7 @@ export const Notify: Plugin = async ({ $ }) => { return { async event(input) { if (input.event.type === "session.idle") { - await $`notify-send -t 10000 "Opencode" "Your code is done!" &> /dev/null` + await $`notify-send t 10000 "Opencode" "Your code is done!"` } }, } diff --git a/opencode/tui.json b/opencode/tui.json index a2004a1..abdf4d1 100644 --- a/opencode/tui.json +++ b/opencode/tui.json @@ -1,7 +1,4 @@ { "$schema": "https://opencode.ai/tui.json", - "theme": "custom", - "keybinds": { - "app_exit": "q" - } + "theme": "custom" } diff --git a/phpactor/phpactor.yml b/phpactor/phpactor.yml index d77e9dd..7275b53 100644 --- a/phpactor/phpactor.yml +++ b/phpactor/phpactor.yml @@ -7,7 +7,6 @@ phpunit.enabled: true code_transform.class_new.variants: laravel-model: laravel-model laravel-provider: laravel-provider - laravel-command: laravel-command laravel-facade: laravel-facade laravel-phpunit-test: laravel-phpunit-test phpunit-test: phpunit-test diff --git a/phpactor/templates/laravel-command/SourceCode.php.twig b/phpactor/templates/laravel-command/SourceCode.php.twig deleted file mode 100644 index aa16e5a..0000000 --- a/phpactor/templates/laravel-command/SourceCode.php.twig +++ /dev/null @@ -1,22 +0,0 @@ -