mirror of
https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles.git
synced 2025-09-15 09:45:58 +03:00
Compare commits
10 Commits
a6caf5ef5e
...
main
Author | SHA1 | Date | |
---|---|---|---|
![]() |
426bad68f2 | ||
![]() |
47f66398b6 | ||
![]() |
7a4c582b85 | ||
![]() |
4845b84fc5 | ||
![]() |
6940f6d195 | ||
![]() |
76f078cd17 | ||
![]() |
4556f66ab2 | ||
![]() |
c4f4b80836 | ||
![]() |
9eb89bb59f | ||
![]() |
82aebc8cff |
158
home/.config/crush/crush.json
Normal file
158
home/.config/crush/crush.json
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://charm.land/crush.json",
|
||||||
|
"lsp": {
|
||||||
|
"typescript": {
|
||||||
|
"command": "typescript-language-server",
|
||||||
|
"args": [
|
||||||
|
"--stdio"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"javascript": {
|
||||||
|
"command": "typescript-language-server",
|
||||||
|
"args": [
|
||||||
|
"--stdio"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rust": {
|
||||||
|
"command": "rust-analyzer"
|
||||||
|
},
|
||||||
|
"nix": {
|
||||||
|
"command": "nil"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mcp": {
|
||||||
|
"context7": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"-y",
|
||||||
|
"@upstash/context7-mcp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"playwright": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"-y",
|
||||||
|
"@playwright/mcp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"shadcn": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"@heilgar/shadcn-ui-mcp-server"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"searxng": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"-y",
|
||||||
|
"mcp-searxng"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"SEARXNG_URL": "http://127.0.0.1:7777"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"git": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "uvx",
|
||||||
|
"args": [
|
||||||
|
"--python",
|
||||||
|
"/run/current-system/sw/bin/python",
|
||||||
|
"mcp-server-git"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"docker": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "uvx",
|
||||||
|
"args": [
|
||||||
|
"--python",
|
||||||
|
"/run/current-system/sw/bin/python",
|
||||||
|
"docker-mcp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "uvx",
|
||||||
|
"args": [
|
||||||
|
"--python",
|
||||||
|
"/run/current-system/sw/bin/python",
|
||||||
|
"mcp-server-time"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sequential-thinking": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"-y",
|
||||||
|
"@modelcontextprotocol/server-sequential-thinking"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nixos": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "uvx",
|
||||||
|
"args": [
|
||||||
|
"--python",
|
||||||
|
"/run/current-system/sw/bin/python",
|
||||||
|
"mcp-nixos"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"k8s": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"@strowk/mcp-k8s"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"filesystem": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"-y",
|
||||||
|
"@modelcontextprotocol/server-filesystem",
|
||||||
|
"/home/xnm"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n8n": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"n8n-mcp"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"MCP_MODE": "stdio",
|
||||||
|
"LOG_LEVEL": "error",
|
||||||
|
"DISABLE_CONSOLE_OUTPUT": "true",
|
||||||
|
"N8N_API_URL": "http://localhost:5678",
|
||||||
|
"N8N_API_KEY": "your-api-key"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"coolify": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"-y",
|
||||||
|
"@masonator/coolify-mcp"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"COOLIFY_ACCESS_TOKEN": "0|your-secret-token",
|
||||||
|
"COOLIFY_BASE_URL": "http://localhost:8000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"appwrite": {
|
||||||
|
"type": "stdio",
|
||||||
|
"command": "uvx",
|
||||||
|
"args": [
|
||||||
|
"mcp-server-appwrite",
|
||||||
|
"--all"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"APPWRITE_PROJECT_ID": "your-project-id",
|
||||||
|
"APPWRITE_API_KEY": "your-api-key",
|
||||||
|
"APPWRITE_ENDPOINT": "http://localhost:8088/v1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -39,6 +39,7 @@ set -gx VOLUME_STEP 5
|
|||||||
set -gx BRIGHTNESS_STEP 5
|
set -gx BRIGHTNESS_STEP 5
|
||||||
|
|
||||||
set -gx PATH $HOME/.cargo/bin $PATH
|
set -gx PATH $HOME/.cargo/bin $PATH
|
||||||
|
set -gx PATH $HOME/.npm-packages/bin $PATH
|
||||||
|
|
||||||
set fish_vi_force_cursor
|
set fish_vi_force_cursor
|
||||||
set fish_cursor_default block
|
set fish_cursor_default block
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
function check_night_mode
|
function check_night_mode
|
||||||
set target_process wlsunset
|
set target_process hyprsunset
|
||||||
|
|
||||||
if pgrep $target_process >/dev/null
|
if pgrep $target_process >/dev/null
|
||||||
echo "{ \"text\":\"\", \"tooltip\": \"night-mode <span color='#a6da95'>on</span>\", \"class\": \"on\" }"
|
echo "{ \"text\":\"\", \"tooltip\": \"night-mode <span color='#a6da95'>on</span>\", \"class\": \"on\" }"
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
# because of unsynchronized `commandline -f` and `commandline -C`
|
# because of unsynchronized `commandline -f` and `commandline -C`
|
||||||
|
|
||||||
function fish_helix_command
|
function fish_helix_command
|
||||||
argparse 'h/help' -- $argv
|
argparse h/help -- $argv
|
||||||
or return 1
|
or return 1
|
||||||
if test -n "$_flag_help"
|
if test -n "$_flag_help"
|
||||||
echo "Helper function to handle modal key bindings mostly outside of insert mode"
|
echo "Helper function to handle modal key bindings mostly outside of insert mode"
|
||||||
@@ -16,152 +16,153 @@ function fish_helix_command
|
|||||||
set -f count_defined $status
|
set -f count_defined $status
|
||||||
|
|
||||||
switch $command
|
switch $command
|
||||||
case {move,extend}_char_left
|
case {move,extend}_char_left
|
||||||
commandline -C (math max\(0, (commandline -C) - $count\))
|
commandline -C (math max\(0, (commandline -C) - $count\))
|
||||||
__fish_helix_extend_by_command $command
|
__fish_helix_extend_by_command $command
|
||||||
case {move,extend}_char_right
|
case {move,extend}_char_right
|
||||||
commandline -C (math (commandline -C) + $count)
|
commandline -C (math (commandline -C) + $count)
|
||||||
__fish_helix_extend_by_command $command
|
__fish_helix_extend_by_command $command
|
||||||
|
|
||||||
case char_up
|
case char_up
|
||||||
__fish_helix_char_up $fish_bind_mode $count
|
__fish_helix_char_up $fish_bind_mode $count
|
||||||
case char_down
|
case char_down
|
||||||
__fish_helix_char_down $fish_bind_mode $count
|
__fish_helix_char_down $fish_bind_mode $count
|
||||||
|
|
||||||
case next_word_start
|
case next_word_start
|
||||||
# https://regex101.com/r/KXrl1x/1
|
# https://regex101.com/r/KXrl1x/1
|
||||||
set -l regex (string join '' \
|
set -l regex (string join '' \
|
||||||
'(?:.?\\n+|' \
|
'(?:.?\\n+|' \
|
||||||
'[[:alnum:]_](?=[^[:alnum:]_\\s])|' \
|
'[[:alnum:]_](?=[^[:alnum:]_\\s])|' \
|
||||||
'[^[:alnum:]_\\s](?=[[:alnum:]_])|' \
|
'[^[:alnum:]_\\s](?=[[:alnum:]_])|' \
|
||||||
'[^\\S\\n](?=[\\S\\n])|)' \
|
'[^\\S\\n](?=[\\S\\n])|)' \
|
||||||
'((?:[[:alnum:]_]+|[^[:alnum:]_\\s]+|)[^\\S\\n]*)' \
|
'((?:[[:alnum:]_]+|[^[:alnum:]_\\s]+|)[^\\S\\n]*)' \
|
||||||
)
|
)
|
||||||
__fish_helix_next_word $fish_bind_mode $count $regex
|
__fish_helix_next_word $fish_bind_mode $count $regex
|
||||||
|
|
||||||
case next_long_word_start
|
case next_long_word_start
|
||||||
set -l regex (string join '' \
|
set -l regex (string join '' \
|
||||||
'(?:.?\\n+|' \
|
'(?:.?\\n+|' \
|
||||||
'[^\\S\\n](?=[\\S\\n])|)' \
|
'[^\\S\\n](?=[\\S\\n])|)' \
|
||||||
'(\\S*[^\\S\\n]*)' \
|
'(\\S*[^\\S\\n]*)' \
|
||||||
)
|
)
|
||||||
__fish_helix_next_word $fish_bind_mode $count $regex
|
__fish_helix_next_word $fish_bind_mode $count $regex
|
||||||
|
|
||||||
case next_word_end
|
case next_word_end
|
||||||
# https://regex101.com/r/Gl0KP2/1
|
# https://regex101.com/r/Gl0KP2/1
|
||||||
set -l regex ' (?:
|
set -l regex ' (?:
|
||||||
.?\\n+ |
|
.?\\n+ |
|
||||||
[[:alnum:]_](?=[^[:alnum:]_]) |
|
[[:alnum:]_](?=[^[:alnum:]_]) |
|
||||||
[^[:alnum:]_\\s](?=[[:alnum:]_\\s]) | )
|
[^[:alnum:]_\\s](?=[[:alnum:]_\\s]) | )
|
||||||
( [^\\S\\n]*
|
( [^\\S\\n]*
|
||||||
(?: [[:alnum:]_]+ | [^[:alnum:]_\\s]+ | ) ) '
|
(?: [[:alnum:]_]+ | [^[:alnum:]_\\s]+ | ) ) '
|
||||||
__fish_helix_next_word $fish_bind_mode $count $regex
|
__fish_helix_next_word $fish_bind_mode $count $regex
|
||||||
|
|
||||||
case next_long_word_end
|
case next_long_word_end
|
||||||
set -l regex ' (?: .?\\n+ | \\S(?=\\s) | )
|
set -l regex ' (?: .?\\n+ | \\S(?=\\s) | )
|
||||||
( [^\\S\\n]* \\S* ) '
|
( [^\\S\\n]* \\S* ) '
|
||||||
__fish_helix_next_word $fish_bind_mode $count $regex
|
__fish_helix_next_word $fish_bind_mode $count $regex
|
||||||
|
|
||||||
case prev_word_start
|
case prev_word_start
|
||||||
set -l regex ' ( (?:
|
set -l regex ' ( (?:
|
||||||
[[:alnum:]_]+ |
|
[[:alnum:]_]+ |
|
||||||
[^[:alnum:]_\\s]+ | )
|
[^[:alnum:]_\\s]+ | )
|
||||||
[^\\S\\n]* )
|
[^\\S\\n]* )
|
||||||
(?: \\n+.? |
|
(?: \\n+.? |
|
||||||
(?<=[^[:alnum:]_])[[:alnum:]_] |
|
(?<=[^[:alnum:]_])[[:alnum:]_] |
|
||||||
(?<=[[:alnum:]_\\s])[^[:alnum:]_\\s] | ) '
|
(?<=[[:alnum:]_\\s])[^[:alnum:]_\\s] | ) '
|
||||||
__fish_helix_prev_word $fish_bind_mode $count $regex
|
__fish_helix_prev_word $fish_bind_mode $count $regex
|
||||||
|
|
||||||
case prev_long_word_start
|
case prev_long_word_start
|
||||||
set -l regex '
|
set -l regex '
|
||||||
( \\S* [^\\S\\n]* )
|
( \\S* [^\\S\\n]* )
|
||||||
(?: \\n+.? | (?<=\\s)\\S | ) '
|
(?: \\n+.? | (?<=\\s)\\S | ) '
|
||||||
__fish_helix_prev_word $fish_bind_mode $count $regex
|
__fish_helix_prev_word $fish_bind_mode $count $regex
|
||||||
|
|
||||||
|
case till_next_char
|
||||||
|
__fish_helix_find_char $fish_bind_mode $count forward-jump-till forward-char
|
||||||
|
case find_next_char
|
||||||
|
__fish_helix_find_char $fish_bind_mode $count forward-jump
|
||||||
|
case till_prev_char
|
||||||
|
__fish_helix_find_char $fish_bind_mode $count backward-jump-till backward-char
|
||||||
|
case find_prev_char
|
||||||
|
__fish_helix_find_char $fish_bind_mode $count backward-jump
|
||||||
|
|
||||||
case till_next_char
|
case till_next_cr
|
||||||
__fish_helix_find_char $fish_bind_mode $count forward-jump-till forward-char
|
__fish_helix_find_next_cr $fish_bind_mode $count 2
|
||||||
case find_next_char
|
case find_next_cr
|
||||||
__fish_helix_find_char $fish_bind_mode $count forward-jump
|
__fish_helix_find_next_cr $fish_bind_mode $count 1
|
||||||
case till_prev_char
|
case till_prev_cr
|
||||||
__fish_helix_find_char $fish_bind_mode $count backward-jump-till backward-char
|
__fish_helix_find_prev_cr $fish_bind_mode $count 1
|
||||||
case find_prev_char
|
case find_prev_cr
|
||||||
__fish_helix_find_char $fish_bind_mode $count backward-jump
|
__fish_helix_find_prev_cr $fish_bind_mode $count 0
|
||||||
|
|
||||||
case till_next_cr
|
case goto_line_start
|
||||||
__fish_helix_find_next_cr $fish_bind_mode $count 2
|
commandline -f beginning-of-line
|
||||||
case find_next_cr
|
__fish_helix_extend_by_mode
|
||||||
__fish_helix_find_next_cr $fish_bind_mode $count 1
|
case goto_line_end
|
||||||
case till_prev_cr
|
__fish_helix_goto_line_end
|
||||||
__fish_helix_find_prev_cr $fish_bind_mode $count 1
|
__fish_helix_extend_by_mode
|
||||||
case find_prev_cr
|
case goto_first_nonwhitespace
|
||||||
__fish_helix_find_prev_cr $fish_bind_mode $count 0
|
__fish_helix_goto_first_nonwhitespace
|
||||||
|
__fish_helix_extend_by_mode
|
||||||
|
|
||||||
case goto_line_start
|
case goto_file_start
|
||||||
commandline -f beginning-of-line
|
|
||||||
__fish_helix_extend_by_mode
|
|
||||||
case goto_line_end
|
|
||||||
__fish_helix_goto_line_end
|
|
||||||
__fish_helix_extend_by_mode
|
|
||||||
case goto_first_nonwhitespace
|
|
||||||
__fish_helix_goto_first_nonwhitespace
|
|
||||||
__fish_helix_extend_by_mode
|
|
||||||
|
|
||||||
case goto_file_start
|
|
||||||
__fish_helix_goto_line $count
|
|
||||||
case goto_line
|
|
||||||
if test "$count_defined" = 0 # if true
|
|
||||||
__fish_helix_goto_line $count
|
__fish_helix_goto_line $count
|
||||||
end
|
case goto_line
|
||||||
case goto_last_line
|
if test "$count_defined" = 0 # if true
|
||||||
commandline -f end-of-buffer beginning-of-line
|
__fish_helix_goto_line $count
|
||||||
__fish_helix_extend_by_mode
|
end
|
||||||
|
case goto_last_line
|
||||||
|
commandline -f end-of-buffer beginning-of-line
|
||||||
|
__fish_helix_extend_by_mode
|
||||||
|
|
||||||
case insert_mode
|
case insert_mode
|
||||||
set fish_bind_mode insert
|
set fish_bind_mode insert
|
||||||
commandline -f end-selection repaint-mode
|
commandline -f end-selection repaint-mode
|
||||||
|
|
||||||
case append_mode
|
case append_mode
|
||||||
commandline -C (commandline -E)
|
commandline -C (commandline -E)
|
||||||
set fish_bind_mode insert
|
set fish_bind_mode insert
|
||||||
commandline -f end-selection repaint-mode
|
commandline -f end-selection repaint-mode
|
||||||
|
|
||||||
case prepend_to_line
|
case prepend_to_line
|
||||||
__fish_helix_goto_first_nonwhitespace
|
__fish_helix_goto_first_nonwhitespace
|
||||||
set fish_bind_mode insert
|
set fish_bind_mode insert
|
||||||
commandline -f end-selection repaint-mode
|
commandline -f end-selection repaint-mode
|
||||||
|
|
||||||
case append_to_line
|
case append_to_line
|
||||||
set fish_bind_mode insert
|
set fish_bind_mode insert
|
||||||
commandline -f end-selection end-of-line repaint-mode
|
commandline -f end-selection end-of-line repaint-mode
|
||||||
|
|
||||||
case delete_selection
|
case delete_selection
|
||||||
commandline -f kill-selection begin-selection
|
commandline -f kill-selection begin-selection
|
||||||
case delete_selection_noyank
|
case delete_selection_noyank
|
||||||
__fish_helix_delete_selection
|
__fish_helix_delete_selection
|
||||||
|
|
||||||
case yank
|
case yank
|
||||||
__fish_helix_yank
|
__fish_helix_yank
|
||||||
case paste_before
|
case paste_before
|
||||||
__fish_helix_paste_before "commandline -f yank"
|
__fish_helix_paste_before "commandline -f yank"
|
||||||
case paste_after
|
case paste_after
|
||||||
__fish_helix_paste_after "commandline -f yank"
|
__fish_helix_paste_after "commandline -f yank"
|
||||||
case replace_selection
|
case replace_selection
|
||||||
__fish_helix_replace_selection "$fish_killring[1]" "true"
|
__fish_helix_replace_selection "$fish_killring[1]" true
|
||||||
|
|
||||||
case paste_before_clip
|
case paste_before_clip
|
||||||
__fish_helix_paste_before "fish_clipboard_paste"
|
__fish_helix_paste_before fish_clipboard_paste
|
||||||
case paste_after_clip
|
case paste_after_clip
|
||||||
__fish_helix_paste_after "fish_clipboard_paste" --clip
|
__fish_helix_paste_after fish_clipboard_paste --clip
|
||||||
case replace_selection_clip
|
case replace_selection_clip
|
||||||
__fish_helix_replace_selection "" "fish_clipboard_paste" --clip
|
__fish_helix_replace_selection "" fish_clipboard_paste --clip
|
||||||
|
|
||||||
case select_all
|
case select_all
|
||||||
commandline -f beginning-of-buffer begin-selection end-of-buffer end-of-line backward-char
|
commandline -f beginning-of-buffer begin-selection end-of-buffer end-of-line backward-char
|
||||||
|
|
||||||
|
case select_line
|
||||||
|
commandline -f beginning-of-line begin-selection end-of-line
|
||||||
|
|
||||||
case '*'
|
case '*'
|
||||||
echo "[fish-helix]" Unknown command $command >&2
|
echo "[fish-helix]" Unknown command $command >&2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -192,11 +193,11 @@ end
|
|||||||
function __fish_helix_find_next_cr -a mode count skip
|
function __fish_helix_find_next_cr -a mode count skip
|
||||||
set -l cursor (commandline -C)
|
set -l cursor (commandline -C)
|
||||||
commandline | # Include endling newline intentionally
|
commandline | # Include endling newline intentionally
|
||||||
# Skip until cursor:
|
# Skip until cursor:
|
||||||
sed -z 's/^.\{'(math $cursor + $skip)'\}\(.*\)$/\\1/' |
|
sed -z 's/^.\{'(math $cursor + $skip)'\}\(.*\)$/\\1/' |
|
||||||
# Count characters up to the target newline:
|
# Count characters up to the target newline:
|
||||||
sed -z 's/^\(\([^\\n]*\\n\)\{0,'$count'\}\).*/\\1/' |
|
sed -z 's/^\(\([^\\n]*\\n\)\{0,'$count'\}\).*/\\1/' |
|
||||||
read -zl chars
|
read -zl chars
|
||||||
|
|
||||||
if test $mode = default -a -n "$chars"
|
if test $mode = default -a -n "$chars"
|
||||||
commandline -f begin-selection
|
commandline -f begin-selection
|
||||||
@@ -209,13 +210,13 @@ end
|
|||||||
function __fish_helix_find_prev_cr -a mode count skip
|
function __fish_helix_find_prev_cr -a mode count skip
|
||||||
set -l cursor (commandline -C)
|
set -l cursor (commandline -C)
|
||||||
commandline --cut-at-cursor |
|
commandline --cut-at-cursor |
|
||||||
sed -z 's/.\{'$skip'\}\n$//' |
|
sed -z 's/.\{'$skip'\}\n$//' |
|
||||||
read -zl buffer
|
read -zl buffer
|
||||||
|
|
||||||
echo -n $buffer |
|
echo -n $buffer |
|
||||||
# Drop characters up to the target newline:
|
# Drop characters up to the target newline:
|
||||||
sed -z 's/\(\(\\n[^\\n]*\)\{0,'$count'\}\)$//' |
|
sed -z 's/\(\(\\n[^\\n]*\)\{0,'$count'\}\)$//' |
|
||||||
read -zl chars
|
read -zl chars
|
||||||
set -l n_chars (math (string length -- "$buffer") - (string length -- "$chars"))
|
set -l n_chars (math (string length -- "$buffer") - (string length -- "$chars"))
|
||||||
|
|
||||||
if test $mode = default -a $n_chars != 0
|
if test $mode = default -a $n_chars != 0
|
||||||
@@ -293,11 +294,11 @@ end
|
|||||||
function __fish_helix_next_word -a mode count regex
|
function __fish_helix_next_word -a mode count regex
|
||||||
set -f cursor (commandline -C)
|
set -f cursor (commandline -C)
|
||||||
commandline |
|
commandline |
|
||||||
perl -e '
|
perl -e '
|
||||||
use open qw(:std :utf8);
|
use open qw(:std :utf8);
|
||||||
do { local $/; substr <>, '$cursor' } =~ m/(?:'$regex'){0,'$count'}/ux;
|
do { local $/; substr <>, '$cursor' } =~ m/(?:'$regex'){0,'$count'}/ux;
|
||||||
print $-[1], " ", $+[1];' |
|
print $-[1], " ", $+[1];' |
|
||||||
read -f left right
|
read -f left right
|
||||||
test "$left" = "$right" && return
|
test "$left" = "$right" && return
|
||||||
if test $mode = default
|
if test $mode = default
|
||||||
commandline -C (math $cursor + $left)
|
commandline -C (math $cursor + $left)
|
||||||
@@ -315,11 +316,11 @@ function __fish_helix_prev_word -a mode count regex
|
|||||||
set -f updated 0
|
set -f updated 0
|
||||||
for i in (seq 1 $count)
|
for i in (seq 1 $count)
|
||||||
commandline |
|
commandline |
|
||||||
perl -e '
|
perl -e '
|
||||||
use open qw(:std :utf8);
|
use open qw(:std :utf8);
|
||||||
do { local $/; substr <>, 0, '$left' } =~ /(?:'$regex')$/ux;
|
do { local $/; substr <>, 0, '$left' } =~ /(?:'$regex')$/ux;
|
||||||
print $-[1], " ", $+[1];' |
|
print $-[1], " ", $+[1];' |
|
||||||
read -l l r
|
read -l l r
|
||||||
test "$l" = "$r" -o "$l" = 0 -a "$r" = 1 && break
|
test "$l" = "$r" -o "$l" = 0 -a "$r" = 1 && break
|
||||||
set -f left $l
|
set -f left $l
|
||||||
set -f right $r
|
set -f right $r
|
||||||
@@ -341,8 +342,8 @@ function __fish_helix_delete_selection
|
|||||||
set start (commandline -B)
|
set start (commandline -B)
|
||||||
set end (commandline -E)
|
set end (commandline -E)
|
||||||
commandline |
|
commandline |
|
||||||
sed -zE 's/^(.{'$start'})(.{0,'(math $end - $start)'})(.*)\\n$/\\1\\3/' |
|
sed -zE 's/^(.{'$start'})(.{0,'(math $end - $start)'})(.*)\\n$/\\1\\3/' |
|
||||||
read -l result
|
read -l result
|
||||||
|
|
||||||
commandline "$result"
|
commandline "$result"
|
||||||
commandline -C $start
|
commandline -C $start
|
||||||
@@ -383,7 +384,7 @@ function __fish_helix_paste_after -a cmd_paste
|
|||||||
commandline -C $end
|
commandline -C $end
|
||||||
$cmd_paste
|
$cmd_paste
|
||||||
|
|
||||||
if test "$argv[2]" = "--clip"
|
if test "$argv[2]" = --clip
|
||||||
commandline -C (math $end - 1)
|
commandline -C (math $end - 1)
|
||||||
else
|
else
|
||||||
for i in (seq 0 (string length "$fish_killring[1]"))
|
for i in (seq 0 (string length "$fish_killring[1]"))
|
||||||
@@ -405,8 +406,8 @@ function __fish_helix_replace_selection -a replacement cmd_paste
|
|||||||
set start (commandline -B)
|
set start (commandline -B)
|
||||||
set end (commandline -E)
|
set end (commandline -E)
|
||||||
commandline |
|
commandline |
|
||||||
sed -zE 's/^(.{'$start'})(.{0,'(math $end - $start)'})(.*)\\n$/\\1'"$(string escape --style=regex "$replacement")"'\\3/' |
|
sed -zE 's/^(.{'$start'})(.{0,'(math $end - $start)'})(.*)\\n$/\\1'"$(string escape --style=regex "$replacement")"'\\3/' |
|
||||||
read -l result
|
read -l result
|
||||||
|
|
||||||
commandline "$result"
|
commandline "$result"
|
||||||
commandline -C $start
|
commandline -C $start
|
||||||
|
@@ -101,16 +101,15 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish
|
|||||||
bind -s --preset -M visual -m default $key repaint-mode
|
bind -s --preset -M visual -m default $key repaint-mode
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# Motion and actions in normal/select mode
|
# Motion and actions in normal/select mode
|
||||||
for mode in default visual
|
for mode in default visual
|
||||||
if test $mode = default
|
if test $mode = default
|
||||||
set -f n_begin_selection "begin-selection" # only begin-selection if current mode is Normal
|
set -f n_begin_selection begin-selection # only begin-selection if current mode is Normal
|
||||||
set -f ns_move_extend "move"
|
set -f ns_move_extend move
|
||||||
set -f commandline_v_repaint ""
|
set -f commandline_v_repaint ""
|
||||||
else
|
else
|
||||||
set -f n_begin_selection
|
set -f n_begin_selection
|
||||||
set -f ns_move_extend "extend"
|
set -f ns_move_extend extend
|
||||||
set -f commandline_v_repaint "commandline -f repaint-mode"
|
set -f commandline_v_repaint "commandline -f repaint-mode"
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -220,6 +219,8 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish
|
|||||||
|
|
||||||
bind -s --preset -M $mode % "fish_helix_command select_all"
|
bind -s --preset -M $mode % "fish_helix_command select_all"
|
||||||
|
|
||||||
|
bind -s --preset -M $mode x "fish_helix_command select_line"
|
||||||
|
|
||||||
# FIXME x X \ex
|
# FIXME x X \ex
|
||||||
# FIXME J
|
# FIXME J
|
||||||
# FIXME \cc
|
# FIXME \cc
|
||||||
@@ -238,7 +239,6 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish
|
|||||||
bind -s --preset -M replace_one -m default \r 'commandline -f delete-char; commandline -i \n; commandline -f backward-char; commandline -f repaint-mode'
|
bind -s --preset -M replace_one -m default \r 'commandline -f delete-char; commandline -i \n; commandline -f backward-char; commandline -f repaint-mode'
|
||||||
bind -s --preset -M replace_one -m default \e cancel repaint-mode
|
bind -s --preset -M replace_one -m default \e cancel repaint-mode
|
||||||
|
|
||||||
|
|
||||||
## FIXME Insert mode keys
|
## FIXME Insert mode keys
|
||||||
|
|
||||||
## Old config from vi:
|
## Old config from vi:
|
||||||
@@ -259,36 +259,27 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish
|
|||||||
bind -s --preset -M insert -k sdc backward-delete-char # shifted delete
|
bind -s --preset -M insert -k sdc backward-delete-char # shifted delete
|
||||||
bind -s --preset -M default -k sdc backward-delete-char # shifted delete
|
bind -s --preset -M default -k sdc backward-delete-char # shifted delete
|
||||||
|
|
||||||
|
# bind -s --preset '~' togglecase-char forward-single-char
|
||||||
# bind -s --preset '~' togglecase-char forward-single-char
|
# bind -s --preset gu downcase-word
|
||||||
# bind -s --preset gu downcase-word
|
# bind -s --preset gU upcase-word
|
||||||
# bind -s --preset gU upcase-word
|
#
|
||||||
#
|
# bind -s --preset J end-of-line delete-char
|
||||||
# bind -s --preset J end-of-line delete-char
|
# bind -s --preset K 'man (commandline -t) 2>/dev/null; or echo -n \a'
|
||||||
# bind -s --preset K 'man (commandline -t) 2>/dev/null; or echo -n \a'
|
#
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# same vim 'pasting' note as upper
|
# same vim 'pasting' note as upper
|
||||||
bind -s --preset '"*p' forward-char "commandline -i ( xsel -p; echo )[1]"
|
bind -s --preset '"*p' forward-char "commandline -i ( xsel -p; echo )[1]"
|
||||||
bind -s --preset '"*P' "commandline -i ( xsel -p; echo )[1]"
|
bind -s --preset '"*P' "commandline -i ( xsel -p; echo )[1]"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# visual mode
|
# visual mode
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# bind -s --preset -M visual -m insert c kill-selection end-selection repaint-mode
|
# bind -s --preset -M visual -m insert c kill-selection end-selection repaint-mode
|
||||||
# bind -s --preset -M visual -m insert s kill-selection end-selection repaint-mode
|
# bind -s --preset -M visual -m insert s kill-selection end-selection repaint-mode
|
||||||
bind -s --preset -M visual -m default '"*y' "fish_clipboard_copy; commandline -f end-selection repaint-mode"
|
bind -s --preset -M visual -m default '"*y' "fish_clipboard_copy; commandline -f end-selection repaint-mode"
|
||||||
bind -s --preset -M visual -m default '~' togglecase-selection end-selection repaint-mode
|
bind -s --preset -M visual -m default '~' togglecase-selection end-selection repaint-mode
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Set the cursor shape
|
# Set the cursor shape
|
||||||
# After executing once, this will have defined functions listening for the variable.
|
# After executing once, this will have defined functions listening for the variable.
|
||||||
# Therefore it needs to be before setting fish_bind_mode.
|
# Therefore it needs to be before setting fish_bind_mode.
|
||||||
|
@@ -1,4 +1,6 @@
|
|||||||
function fish_user_key_bindings
|
function fish_user_key_bindings
|
||||||
|
fzf_key_bindings
|
||||||
|
|
||||||
# Execute this once per mode that emacs bindings should be used in
|
# Execute this once per mode that emacs bindings should be used in
|
||||||
fish_default_key_bindings -M insert
|
fish_default_key_bindings -M insert
|
||||||
|
|
||||||
|
231
home/.config/fish/functions/fzf_key_bindings.fish
Normal file
231
home/.config/fish/functions/fzf_key_bindings.fish
Normal file
@@ -0,0 +1,231 @@
|
|||||||
|
### key-bindings.fish ###
|
||||||
|
# ____ ____
|
||||||
|
# / __/___ / __/
|
||||||
|
# / /_/_ / / /_
|
||||||
|
# / __/ / /_/ __/
|
||||||
|
# /_/ /___/_/ key-bindings.fish
|
||||||
|
#
|
||||||
|
# - $FZF_TMUX_OPTS
|
||||||
|
# - $FZF_CTRL_T_COMMAND
|
||||||
|
# - $FZF_CTRL_T_OPTS
|
||||||
|
# - $FZF_CTRL_R_OPTS
|
||||||
|
# - $FZF_ALT_C_COMMAND
|
||||||
|
# - $FZF_ALT_C_OPTS
|
||||||
|
|
||||||
|
# Key bindings
|
||||||
|
# ------------
|
||||||
|
# The oldest supported fish version is 3.1b1. To maintain compatibility, the
|
||||||
|
# command substitution syntax $(cmd) should never be used, even behind a version
|
||||||
|
# check, otherwise the source command will fail on fish versions older than 3.4.0.
|
||||||
|
function fzf_key_bindings
|
||||||
|
|
||||||
|
# Check fish version
|
||||||
|
set -l fish_ver (string match -r '^(\d+).(\d+)' $version 2> /dev/null; or echo 0\n0\n0)
|
||||||
|
if test \( "$fish_ver[2]" -lt 3 \) -o \( "$fish_ver[2]" -eq 3 -a "$fish_ver[3]" -lt 1 \)
|
||||||
|
echo "This script requires fish version 3.1b1 or newer." >&2
|
||||||
|
return 1
|
||||||
|
else if not type -q fzf
|
||||||
|
echo "fzf was not found in path." >&2
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_defaults
|
||||||
|
# $argv[1]: Prepend to FZF_DEFAULT_OPTS_FILE and FZF_DEFAULT_OPTS
|
||||||
|
# $argv[2..]: Append to FZF_DEFAULT_OPTS_FILE and FZF_DEFAULT_OPTS
|
||||||
|
test -n "$FZF_TMUX_HEIGHT"; or set -l FZF_TMUX_HEIGHT 40%
|
||||||
|
string join ' ' -- \
|
||||||
|
"--height $FZF_TMUX_HEIGHT --min-height=20+ --bind=ctrl-z:ignore" $argv[1] \
|
||||||
|
(test -r "$FZF_DEFAULT_OPTS_FILE"; and string join -- ' ' <$FZF_DEFAULT_OPTS_FILE) \
|
||||||
|
$FZF_DEFAULT_OPTS $argv[2..-1]
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzfcmd
|
||||||
|
test -n "$FZF_TMUX_HEIGHT"; or set -l FZF_TMUX_HEIGHT 40%
|
||||||
|
if test -n "$FZF_TMUX_OPTS"
|
||||||
|
echo "fzf-tmux $FZF_TMUX_OPTS -- "
|
||||||
|
else if test "$FZF_TMUX" = 1
|
||||||
|
echo "fzf-tmux -d$FZF_TMUX_HEIGHT -- "
|
||||||
|
else
|
||||||
|
echo fzf
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_parse_commandline -d 'Parse the current command line token and return split of existing filepath, fzf query, and optional -option= prefix'
|
||||||
|
set -l fzf_query ''
|
||||||
|
set -l prefix ''
|
||||||
|
set -l dir '.'
|
||||||
|
|
||||||
|
# Set variables containing the major and minor fish version numbers, using
|
||||||
|
# a method compatible with all supported fish versions.
|
||||||
|
set -l -- fish_major (string match -r -- '^\d+' $version)
|
||||||
|
set -l -- fish_minor (string match -r -- '^\d+\.(\d+)' $version)[2]
|
||||||
|
|
||||||
|
# fish v3.3.0 and newer: Don't use option prefix if " -- " is preceded.
|
||||||
|
set -l -- match_regex '(?<fzf_query>[\s\S]*?(?=\n?$)$)'
|
||||||
|
set -l -- prefix_regex '^-[^\s=]+=|^-(?!-)\S'
|
||||||
|
if test "$fish_major" -eq 3 -a "$fish_minor" -lt 3
|
||||||
|
or string match -q -v -- '* -- *' (string sub -l (commandline -Cp) -- (commandline -p))
|
||||||
|
set -- match_regex "(?<prefix>$prefix_regex)?$match_regex"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Set $prefix and expanded $fzf_query with preserved trailing newlines.
|
||||||
|
if test "$fish_major" -ge 4
|
||||||
|
# fish v4.0.0 and newer
|
||||||
|
string match -q -r -- $match_regex (commandline --current-token --tokens-expanded | string collect -N)
|
||||||
|
else if test "$fish_major" -eq 3 -a "$fish_minor" -ge 2
|
||||||
|
# fish v3.2.0 - v3.7.1 (last v3)
|
||||||
|
string match -q -r -- $match_regex (commandline --current-token --tokenize | string collect -N)
|
||||||
|
eval set -- fzf_query (string escape -n -- $fzf_query | string replace -r -a '^\\\(?=~)|\\\(?=\$\w)' '')
|
||||||
|
else
|
||||||
|
# fish older than v3.2.0 (v3.1b1 - v3.1.2)
|
||||||
|
set -l -- cl_token (commandline --current-token --tokenize | string collect -N)
|
||||||
|
set -- prefix (string match -r -- $prefix_regex $cl_token)
|
||||||
|
set -- fzf_query (string replace -- "$prefix" '' $cl_token | string collect -N)
|
||||||
|
eval set -- fzf_query (string escape -n -- $fzf_query | string replace -r -a '^\\\(?=~)|\\\(?=\$\w)|\\\n\\\n$' '')
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -n "$fzf_query"
|
||||||
|
# Normalize path in $fzf_query, set $dir to the longest existing directory.
|
||||||
|
if test \( "$fish_major" -ge 4 \) -o \( "$fish_major" -eq 3 -a "$fish_minor" -ge 5 \)
|
||||||
|
# fish v3.5.0 and newer
|
||||||
|
set -- fzf_query (path normalize -- $fzf_query)
|
||||||
|
set -- dir $fzf_query
|
||||||
|
while not path is -d $dir
|
||||||
|
set -- dir (path dirname $dir)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
# fish older than v3.5.0 (v3.1b1 - v3.4.1)
|
||||||
|
if test "$fish_major" -eq 3 -a "$fish_minor" -ge 2
|
||||||
|
# fish v3.2.0 - v3.4.1
|
||||||
|
string match -q -r -- '(?<fzf_query>^[\s\S]*?(?=\n?$)$)' \
|
||||||
|
(string replace -r -a -- '(?<=/)/|(?<!^)/+(?!\n)$' '' $fzf_query | string collect -N)
|
||||||
|
else
|
||||||
|
# fish v3.1b1 - v3.1.2
|
||||||
|
set -- fzf_query (string replace -r -a -- '(?<=/)/|(?<!^)/+(?!\n)$' '' $fzf_query | string collect -N)
|
||||||
|
eval set -- fzf_query (string escape -n -- $fzf_query | string replace -r '\\\n$' '')
|
||||||
|
end
|
||||||
|
set -- dir $fzf_query
|
||||||
|
while not test -d "$dir"
|
||||||
|
set -- dir (dirname -z -- "$dir" | string split0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not string match -q -- '.' $dir; or string match -q -r -- '^\./|^\.$' $fzf_query
|
||||||
|
# Strip $dir from $fzf_query - preserve trailing newlines.
|
||||||
|
if test "$fish_major" -ge 4
|
||||||
|
# fish v4.0.0 and newer
|
||||||
|
string match -q -r -- '^'(string escape --style=regex -- $dir)'/?(?<fzf_query>[\s\S]*)' $fzf_query
|
||||||
|
else if test "$fish_major" -eq 3 -a "$fish_minor" -ge 2
|
||||||
|
# fish v3.2.0 - v3.7.1 (last v3)
|
||||||
|
string match -q -r -- '^/?(?<fzf_query>[\s\S]*?(?=\n?$)$)' \
|
||||||
|
(string replace -- "$dir" '' $fzf_query | string collect -N)
|
||||||
|
else
|
||||||
|
# fish older than v3.2.0 (v3.1b1 - v3.1.2)
|
||||||
|
set -- fzf_query (string replace -- "$dir" '' $fzf_query | string collect -N)
|
||||||
|
eval set -- fzf_query (string escape -n -- $fzf_query | string replace -r -a '^/?|\\\n$' '')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
string escape -n -- "$dir" "$fzf_query" "$prefix"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Store current token in $dir as root for the 'find' command
|
||||||
|
function fzf-file-widget -d "List files and folders"
|
||||||
|
set -l commandline (__fzf_parse_commandline)
|
||||||
|
set -lx dir $commandline[1]
|
||||||
|
set -l fzf_query $commandline[2]
|
||||||
|
set -l prefix $commandline[3]
|
||||||
|
|
||||||
|
set -lx FZF_DEFAULT_OPTS (__fzf_defaults \
|
||||||
|
"--reverse --walker=file,dir,follow,hidden --scheme=path" \
|
||||||
|
"$FZF_CTRL_T_OPTS --multi --print0")
|
||||||
|
|
||||||
|
set -lx FZF_DEFAULT_COMMAND "$FZF_CTRL_T_COMMAND"
|
||||||
|
set -lx FZF_DEFAULT_OPTS_FILE
|
||||||
|
|
||||||
|
set -l result (eval (__fzfcmd) --walker-root=$dir --query=$fzf_query | string split0)
|
||||||
|
and commandline -rt -- (string join -- ' ' $prefix(string escape -- $result))' '
|
||||||
|
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
|
|
||||||
|
function fzf-history-widget -d "Show command history"
|
||||||
|
set -l -- command_line (commandline)
|
||||||
|
set -l -- current_line (commandline -L)
|
||||||
|
set -l -- total_lines (count $command_line)
|
||||||
|
set -l -- fzf_query (string escape -- $command_line[$current_line])
|
||||||
|
|
||||||
|
set -lx FZF_DEFAULT_OPTS (__fzf_defaults '' \
|
||||||
|
'--nth=2..,.. --scheme=history --multi --wrap-sign="\t↳ "' \
|
||||||
|
'--bind=\'shift-delete:execute-silent(eval history delete --exact --case-sensitive -- (string escape -n -- {+} | string replace -r -a "^\d*\\\\\\t|(?<=\\\\\\n)\\\\\\t" ""))+reload(eval $FZF_DEFAULT_COMMAND)\'' \
|
||||||
|
"--bind=ctrl-r:toggle-sort --highlight-line $FZF_CTRL_R_OPTS" \
|
||||||
|
'--accept-nth=2.. --read0 --print0 --with-shell='(status fish-path)\\ -c)
|
||||||
|
|
||||||
|
set -lx FZF_DEFAULT_OPTS_FILE
|
||||||
|
set -lx FZF_DEFAULT_COMMAND
|
||||||
|
|
||||||
|
if type -q perl
|
||||||
|
set -a FZF_DEFAULT_OPTS --tac
|
||||||
|
set FZF_DEFAULT_COMMAND 'builtin history -z --reverse | command perl -0 -pe \'s/^/$.\t/g; s/\n/\n\t/gm\''
|
||||||
|
else
|
||||||
|
set FZF_DEFAULT_COMMAND \
|
||||||
|
'set -l h (builtin history -z --reverse | string split0);' \
|
||||||
|
'for i in (seq (count $h) -1 1);' \
|
||||||
|
'string join0 -- $i\t(string replace -a -- \n \n\t $h[$i] | string collect);' \
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Merge history from other sessions before searching
|
||||||
|
test -z "$fish_private_mode"; and builtin history merge
|
||||||
|
|
||||||
|
if set -l result (eval $FZF_DEFAULT_COMMAND \| (__fzfcmd) --query=$fzf_query | string split0)
|
||||||
|
if test "$total_lines" -eq 1
|
||||||
|
commandline -- (string replace -a -- \n\t \n $result)
|
||||||
|
else
|
||||||
|
set -l a (math $current_line - 1)
|
||||||
|
set -l b (math $current_line + 1)
|
||||||
|
commandline -- $command_line[1..$a] (string replace -a -- \n\t \n $result)
|
||||||
|
commandline -a -- '' $command_line[$b..-1]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
|
|
||||||
|
function fzf-cd-widget -d "Change directory"
|
||||||
|
set -l commandline (__fzf_parse_commandline)
|
||||||
|
set -lx dir $commandline[1]
|
||||||
|
set -l fzf_query $commandline[2]
|
||||||
|
set -l prefix $commandline[3]
|
||||||
|
|
||||||
|
set -lx FZF_DEFAULT_OPTS (__fzf_defaults \
|
||||||
|
"--reverse --walker=dir,follow,hidden --scheme=path" \
|
||||||
|
"$FZF_ALT_C_OPTS --no-multi --print0")
|
||||||
|
|
||||||
|
set -lx FZF_DEFAULT_OPTS_FILE
|
||||||
|
set -lx FZF_DEFAULT_COMMAND "$FZF_ALT_C_COMMAND"
|
||||||
|
|
||||||
|
if set -l result (eval (__fzfcmd) --query=$fzf_query --walker-root=$dir | string split0)
|
||||||
|
cd -- $result
|
||||||
|
commandline -rt -- $prefix
|
||||||
|
end
|
||||||
|
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
|
|
||||||
|
bind \cr fzf-history-widget
|
||||||
|
bind -M insert \cr fzf-history-widget
|
||||||
|
|
||||||
|
if not set -q FZF_CTRL_T_COMMAND; or test -n "$FZF_CTRL_T_COMMAND"
|
||||||
|
bind \ct fzf-file-widget
|
||||||
|
bind -M insert \ct fzf-file-widget
|
||||||
|
end
|
||||||
|
|
||||||
|
if not set -q FZF_ALT_C_COMMAND; or test -n "$FZF_ALT_C_COMMAND"
|
||||||
|
bind \ec fzf-cd-widget
|
||||||
|
bind -M insert \ec fzf-cd-widget
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
### end: key-bindings.fish ###
|
27
home/.config/fish/functions/night_mode_temp_down.fish
Normal file
27
home/.config/fish/functions/night_mode_temp_down.fish
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
function night_mode_temp_down
|
||||||
|
set target_process hyprsunset
|
||||||
|
set temp_file ~/.cache/hyprsunset_temp
|
||||||
|
set decrement 100
|
||||||
|
|
||||||
|
if not pgrep $target_process >/dev/null
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -f $temp_file
|
||||||
|
set current_temp (cat $temp_file)
|
||||||
|
else
|
||||||
|
set current_temp 4000
|
||||||
|
end
|
||||||
|
|
||||||
|
set new_temp (math $current_temp - $decrement)
|
||||||
|
|
||||||
|
if test $new_temp -lt 2000
|
||||||
|
set new_temp 2000
|
||||||
|
end
|
||||||
|
|
||||||
|
echo $new_temp >$temp_file
|
||||||
|
|
||||||
|
killall -s SIGINT $target_process
|
||||||
|
sleep 0.5
|
||||||
|
$target_process -t $new_temp
|
||||||
|
end
|
27
home/.config/fish/functions/night_mode_temp_up.fish
Normal file
27
home/.config/fish/functions/night_mode_temp_up.fish
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
function night_mode_temp_up
|
||||||
|
set target_process hyprsunset
|
||||||
|
set temp_file ~/.cache/hyprsunset_temp
|
||||||
|
set increment 100
|
||||||
|
|
||||||
|
if not pgrep $target_process >/dev/null
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -f $temp_file
|
||||||
|
set current_temp (cat $temp_file)
|
||||||
|
else
|
||||||
|
set current_temp 4000
|
||||||
|
end
|
||||||
|
|
||||||
|
set new_temp (math $current_temp + $increment)
|
||||||
|
|
||||||
|
if test $new_temp -gt 6500
|
||||||
|
set new_temp 6500
|
||||||
|
end
|
||||||
|
|
||||||
|
echo $new_temp >$temp_file
|
||||||
|
|
||||||
|
killall -s SIGINT $target_process
|
||||||
|
sleep 0.5
|
||||||
|
$target_process -t $new_temp
|
||||||
|
end
|
@@ -1,9 +1,16 @@
|
|||||||
function night_mode_toggle
|
function night_mode_toggle
|
||||||
set target_process wlsunset
|
set target_process hyprsunset
|
||||||
|
set temp_file ~/.cache/hyprsunset_temp
|
||||||
|
|
||||||
if pgrep $target_process >/dev/null
|
if pgrep $target_process >/dev/null
|
||||||
killall -s SIGINT wlsunset
|
killall -s SIGINT $target_process
|
||||||
else
|
else
|
||||||
wlsunset
|
if test -f $temp_file
|
||||||
|
set temp (cat $temp_file)
|
||||||
|
else
|
||||||
|
set temp 4000
|
||||||
|
echo $temp >$temp_file
|
||||||
|
end
|
||||||
|
$target_process -t $temp
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@@ -1,23 +1,24 @@
|
|||||||
theme:
|
gui:
|
||||||
activeBorderColor:
|
theme:
|
||||||
- '#8bd5ca'
|
activeBorderColor:
|
||||||
- bold
|
- '#8bd5ca'
|
||||||
inactiveBorderColor:
|
- bold
|
||||||
- '#a5adcb'
|
inactiveBorderColor:
|
||||||
optionsTextColor:
|
- '#a5adcb'
|
||||||
- '#8aadf4'
|
optionsTextColor:
|
||||||
selectedLineBgColor:
|
- '#8aadf4'
|
||||||
- '#363a4f'
|
selectedLineBgColor:
|
||||||
cherryPickedCommitBgColor:
|
- '#363a4f'
|
||||||
- '#494d64'
|
cherryPickedCommitBgColor:
|
||||||
cherryPickedCommitFgColor:
|
- '#494d64'
|
||||||
- '#8bd5ca'
|
cherryPickedCommitFgColor:
|
||||||
unstagedChangesColor:
|
- '#8bd5ca'
|
||||||
- '#ed8796'
|
unstagedChangesColor:
|
||||||
defaultFgColor:
|
- '#ed8796'
|
||||||
- '#cad3f5'
|
defaultFgColor:
|
||||||
searchingActiveBorderColor:
|
- '#cad3f5'
|
||||||
- '#eed49f'
|
searchingActiveBorderColor:
|
||||||
|
- '#eed49f'
|
||||||
|
|
||||||
authorColors:
|
authorColors:
|
||||||
'*': '#b7bdf8'
|
'*': '#b7bdf8'
|
||||||
|
1
home/.config/posting/config.yaml
Normal file
1
home/.config/posting/config.yaml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
theme: "catppuccin-macchiato-teal"
|
@@ -223,7 +223,10 @@
|
|||||||
|
|
||||||
"custom/night_mode": {
|
"custom/night_mode": {
|
||||||
"return-type": "json",
|
"return-type": "json",
|
||||||
"interval": 1,
|
"restart-interval": 1,
|
||||||
|
"on-scroll-down": "fish -c night_mode_temp_up",
|
||||||
|
"on-scroll-up": "fish -c night_mode_temp_down",
|
||||||
|
"smooth-scrolling-threshold": 2.0,
|
||||||
"exec": "fish -c check_night_mode",
|
"exec": "fish -c check_night_mode",
|
||||||
"on-click": "fish -c night_mode_toggle",
|
"on-click": "fish -c night_mode_toggle",
|
||||||
},
|
},
|
||||||
|
@@ -0,0 +1,38 @@
|
|||||||
|
name: "catppuccin-macchiato-mauve"
|
||||||
|
primary: "#c6a0f6" # buttons, fixed table columns
|
||||||
|
secondary: "#c6a0f6" # method selector, some minor labels
|
||||||
|
accent: "#e3cffb" # header text, scrollbars, cursors, focus highlights
|
||||||
|
background: "#24273a" # background colors
|
||||||
|
surface: "#363a4f" # panels, etc
|
||||||
|
error: "#ed8796" # error messages
|
||||||
|
success: "#a6da95" # success messages
|
||||||
|
warning: "#eed49f" # warning messages
|
||||||
|
dark: "true"
|
||||||
|
|
||||||
|
text_area:
|
||||||
|
cursor: "reverse #f4dbd6"
|
||||||
|
cursor_line: "underline #cad3f5"
|
||||||
|
selection: "reverse #939ab7"
|
||||||
|
gutter: "bold #a6da95"
|
||||||
|
matched_bracket: "reverse #b8c0e0"
|
||||||
|
|
||||||
|
url:
|
||||||
|
base: "italic #8aadf4"
|
||||||
|
protocol: "bold #8bd5ca"
|
||||||
|
separator: "#cad3f5"
|
||||||
|
|
||||||
|
syntax:
|
||||||
|
json_key: "italic #8aadf4"
|
||||||
|
json_number: "#f5a97f"
|
||||||
|
json_string: "#a6da95"
|
||||||
|
json_boolean: "#91d7e3"
|
||||||
|
json_null: "#939ab7"
|
||||||
|
|
||||||
|
method:
|
||||||
|
get: "bold #8aadf4"
|
||||||
|
post: "bold #a6da95"
|
||||||
|
put: "bold #eed49f"
|
||||||
|
delete: "bold #ed8796"
|
||||||
|
patch: "bold #8bd5ca"
|
||||||
|
options: "bold #b7bdf8"
|
||||||
|
head: "bold #c6a0f6"
|
@@ -0,0 +1,38 @@
|
|||||||
|
name: "catppuccin-macchiato-teal"
|
||||||
|
primary: "#8bd5ca" # buttons, fixed table columns
|
||||||
|
secondary: "#8bd5ca" # method selector, some minor labels
|
||||||
|
accent: "#b1e3db" # header text, scrollbars, cursors, focus highlights
|
||||||
|
background: "#24273a" # background colors
|
||||||
|
surface: "#363a4f" # panels, etc
|
||||||
|
error: "#ed8796" # error messages
|
||||||
|
success: "#a6da95" # success messages
|
||||||
|
warning: "#eed49f" # warning messages
|
||||||
|
dark: "true"
|
||||||
|
|
||||||
|
text_area:
|
||||||
|
cursor: "reverse #f4dbd6"
|
||||||
|
cursor_line: "underline #cad3f5"
|
||||||
|
selection: "reverse #939ab7"
|
||||||
|
gutter: "bold #a6da95"
|
||||||
|
matched_bracket: "reverse #b8c0e0"
|
||||||
|
|
||||||
|
url:
|
||||||
|
base: "italic #8aadf4"
|
||||||
|
protocol: "bold #8bd5ca"
|
||||||
|
separator: "#cad3f5"
|
||||||
|
|
||||||
|
syntax:
|
||||||
|
json_key: "italic #8aadf4"
|
||||||
|
json_number: "#f5a97f"
|
||||||
|
json_string: "#a6da95"
|
||||||
|
json_boolean: "#91d7e3"
|
||||||
|
json_null: "#939ab7"
|
||||||
|
|
||||||
|
method:
|
||||||
|
get: "bold #8aadf4"
|
||||||
|
post: "bold #a6da95"
|
||||||
|
put: "bold #eed49f"
|
||||||
|
delete: "bold #ed8796"
|
||||||
|
patch: "bold #8bd5ca"
|
||||||
|
options: "bold #b7bdf8"
|
||||||
|
head: "bold #c6a0f6"
|
2
home/.npmrc
Normal file
2
home/.npmrc
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
strict-ssl=true
|
||||||
|
prefix = ${HOME}/.npm-packages
|
@@ -19,6 +19,7 @@
|
|||||||
hyprlock
|
hyprlock
|
||||||
hypridle
|
hypridle
|
||||||
hyprpaper
|
hyprpaper
|
||||||
|
hyprsunset
|
||||||
hyprpolkitagent
|
hyprpolkitagent
|
||||||
|
|
||||||
inputs.wezterm.packages.${pkgs.system}.default
|
inputs.wezterm.packages.${pkgs.system}.default
|
||||||
|
@@ -4,7 +4,6 @@
|
|||||||
programs.light.enable = true;
|
programs.light.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
wlsunset
|
|
||||||
brightnessctl
|
brightnessctl
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -9,10 +9,13 @@
|
|||||||
git
|
git
|
||||||
lazygit
|
lazygit
|
||||||
delta
|
delta
|
||||||
|
sqlx-cli
|
||||||
|
mermaid-cli
|
||||||
|
posting
|
||||||
license-generator
|
license-generator
|
||||||
git-ignore
|
git-ignore
|
||||||
gitleaks
|
gitleaks
|
||||||
git-secrets
|
# git-secrets
|
||||||
pass-git-helper
|
pass-git-helper
|
||||||
jujutsu
|
jujutsu
|
||||||
jjui
|
jjui
|
||||||
|
@@ -18,5 +18,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Change runtime directory size
|
# Change runtime directory size
|
||||||
services.logind.extraConfig = "RuntimeDirectorySize=8G";
|
services.logind.settings.Login = {
|
||||||
|
RuntimeDirectorySize="8G";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -14,7 +14,5 @@
|
|||||||
surrealdb-migrations
|
surrealdb-migrations
|
||||||
surrealist
|
surrealist
|
||||||
trunk
|
trunk
|
||||||
sqlx-cli
|
|
||||||
mermaid-cli
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user