mirror of
https://github.com/pnx/dotfiles
synced 2026-08-17 17:18:16 +02:00
Compare commits
10 commits
2af28c3050
...
191de3c0a6
| Author | SHA1 | Date | |
|---|---|---|---|
| 191de3c0a6 | |||
| 22653c5fac | |||
| ec848c9110 | |||
| a2e95936d0 | |||
| c05b98ccff | |||
| 2506bece88 | |||
| a65464dd67 | |||
| 48869bfa4a | |||
| f20a320f08 | |||
| 945e4e136e |
23 changed files with 70 additions and 177 deletions
3
fish/conf.d/android-sdk.conf
Normal file
3
fish/conf.d/android-sdk.conf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
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"
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
if [ -d "$HOME/.opencode/bin" ]
|
||||
fish_add_path $HOME/.opencode/bin
|
||||
end
|
||||
18
fonts/Ioseveka-custom.sh
Executable file
18
fonts/Ioseveka-custom.sh
Executable file
|
|
@ -0,0 +1,18 @@
|
|||
#!/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
|
||||
|
||||
|
||||
2
fonts/Iosevka/.gitignore
vendored
2
fonts/Iosevka/.gitignore
vendored
|
|
@ -1,2 +0,0 @@
|
|||
.build
|
||||
.patcher
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
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 $< $@
|
||||
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
[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"
|
||||
# ]
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
sudo dnf install ttfautohint fontforge python3-fontforge
|
||||
BIN
fonts/Iosevka/dist/IosevkaCustom-Regular.ttf
vendored
BIN
fonts/Iosevka/dist/IosevkaCustom-Regular.ttf
vendored
Binary file not shown.
BIN
fonts/Iosevka/dist/IosevkaCustom-SemiBold.ttf
vendored
BIN
fonts/Iosevka/dist/IosevkaCustom-SemiBold.ttf
vendored
Binary file not shown.
BIN
fonts/Iosevka/dist/IosevkaCustomNerdFont-Regular.ttf
vendored
BIN
fonts/Iosevka/dist/IosevkaCustomNerdFont-Regular.ttf
vendored
Binary file not shown.
Binary file not shown.
|
|
@ -1,23 +0,0 @@
|
|||
#!/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
|
||||
|
||||
|
|
@ -6,6 +6,7 @@ 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
|
||||
|
|
@ -25,6 +26,8 @@ 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
|
||||
|
|
@ -33,8 +36,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
|
||||
|
|
|
|||
2
git/conf.d/ignore
Normal file
2
git/conf.d/ignore
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
/.tmp
|
||||
**/.claude/settings.local.json
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
[user]
|
||||
email = henrik.hautakoski@gmail.com
|
||||
name = Henrik Hautakoski
|
||||
[core]
|
||||
excludesFile = ~/.config/git/ignore
|
||||
[pull]
|
||||
rebase = true
|
||||
[init]
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ $color_active_border = $color_border
|
|||
$color_inactive_border = $color_border
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = alacritty
|
||||
$terminal = ghostty
|
||||
$menu = rofi -show drun
|
||||
$run_prog = rofi -show run
|
||||
$screenshot = grim -g "$(slurp)" - | wl-copy
|
||||
|
|
@ -92,7 +92,6 @@ animations {
|
|||
}
|
||||
|
||||
dwindle {
|
||||
pseudotile = no # master switch for pseudotiling.
|
||||
preserve_split = true
|
||||
precise_mouse_move = true
|
||||
}
|
||||
|
|
@ -162,7 +161,6 @@ 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
|
||||
|
|
@ -208,7 +206,7 @@ bindm = $mainMod, mouse:273, resizewindow
|
|||
# -------------
|
||||
|
||||
# Hyprland apps
|
||||
exec-once = hypridle
|
||||
exec-once=hypridle
|
||||
|
||||
# set wallpaper
|
||||
exec-once=hyprpaper
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
splash = false
|
||||
ipc = false
|
||||
ipc = true
|
||||
|
||||
wallpaper {
|
||||
monitor =
|
||||
path = ~/.local/share/wallpapers/wallpaper.jpeg
|
||||
fit_mode = fit
|
||||
fit_mode = cover
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,36 +4,28 @@ 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 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 NEVER 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. **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**:
|
||||
1. **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
|
||||
|
||||
4. **Analyze the changes**:
|
||||
2. **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
|
||||
|
||||
5. **Generate commit message**:
|
||||
3. **Generate commit message**:
|
||||
- Create message following format: `<type>: <description>`
|
||||
- Keep description concise, clear, and in imperative mood
|
||||
- Show the proposed message to user for confirmation
|
||||
|
||||
6. **Execute the commit**:
|
||||
4. **Execute the commit**:
|
||||
- Run `git commit -m "<generated message>"`
|
||||
- Display the commit hash and confirm success
|
||||
- Provide brief summary of what was committed
|
||||
|
|
@ -90,6 +82,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
|
||||
- **Always run and push the commit**: You don't need to ask for confirmation unless there is a big issue or error `git push`.
|
||||
- **Never push the commit**: You must never under any circumstances execute `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
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@
|
|||
},
|
||||
},
|
||||
"mcp": {
|
||||
"neuron-ai-doc": {
|
||||
"linear": {
|
||||
"type": "remote",
|
||||
"url": "https://docs.neuron-ai.dev/~gitbook/mcp",
|
||||
"url": "https://mcp.linear.app/mcp",
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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!"`
|
||||
await $`notify-send -t 10000 "Opencode" "Your code is done!" &> /dev/null`
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
{
|
||||
"$schema": "https://opencode.ai/tui.json",
|
||||
"theme": "custom"
|
||||
"theme": "custom",
|
||||
"keybinds": {
|
||||
"app_exit": "<leader>q"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ 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
|
||||
|
|
|
|||
22
phpactor/templates/laravel-command/SourceCode.php.twig
Normal file
22
phpactor/templates/laravel-command/SourceCode.php.twig
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
namespace {{ prototype.namespace }};
|
||||
|
||||
use Illuminate\Console\Attributes\Description;
|
||||
use Illuminate\Console\Attributes\Signature;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
{% for class in prototype.classes %}
|
||||
#[Signature('app:{{ class.name | lower }}')]
|
||||
#[Description('Command description')]
|
||||
class {{ class.name }} extends Command
|
||||
{
|
||||
/**
|
||||
* Execute the console command.
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
{% endfor %}
|
||||
Loading…
Add table
Add a link
Reference in a new issue