13 changed files with 404 additions and 30 deletions
-
2aliases/key_aliases.tmpl
-
5aliases/key_dirs.tmpl
-
24dot_Xmodmap
-
39dot_config/Code/User/keybindings.json
-
243dot_config/Code/User/settings.json
-
1dot_config/fish/config.fish.tmpl
-
39dot_config/fish/functions/fn-progress.fish
-
12dot_config/fish/functions/test_output.txt
-
10dot_config/i3/config.tmpl
-
2dot_config/i3blocks/i3blocks-secondary.conf.tmpl
-
29dot_config/i3blocks/i3blocks.conf.tmpl
-
19dot_config/i3blocks/scripts/executable_time
-
9dot_config/kitty/kitty.conf
@ -1,9 +1,25 @@ |
|||
! clear Lock |
|||
|
|||
! keycode 9 = Caps_Lock |
|||
! keycode 66 = Escape |
|||
! keycode 22 = BackSpace |
|||
|
|||
! pointer = 1 2 3 6 7 4 5 10 11 12 8 9 |
|||
! side thumb button as middle click |
|||
! pointer = 1 10 3 6 7 4 5 2 11 12 8 9 |
|||
|
|||
! Clear the Caps Lock modifier logic first |
|||
clear Lock |
|||
|
|||
keycode 9 = Caps_Lock |
|||
! Map the physical Caps Lock key (66) to Escape |
|||
keycode 66 = Escape |
|||
keycode 22 = BackSpace |
|||
|
|||
! Optional: Map physical Escape (9) to Caps Lock if you really want to swap. |
|||
! If you comment out the line below, you will have two Escape keys (Safer). |
|||
! keycode 9 = Caps_Lock |
|||
|
|||
! Important: If you did swap (uncommented line above), you must add the Lock modifier back |
|||
! add Lock = Caps_Lock |
|||
|
|||
! Keep your mouse settings |
|||
pointer = 1 2 3 6 7 4 5 10 11 12 8 9 |
|||
! side thumb button as middle click |
|||
! pointer = 1 10 3 6 7 4 5 2 11 12 8 9 |
|||
@ -0,0 +1,39 @@ |
|||
[ |
|||
// Map the physical 'CapsLock' key to act as the 'Escape' key |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.terminal.sendSequence", |
|||
"args": { |
|||
"text": "\u001b" // ASCII code for Escape |
|||
}, |
|||
// Optional: you can restrict this to the terminal or use no 'when' condition |
|||
// "when": "terminalFocus" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closeMessages", |
|||
"when": "notificationVisible" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "closeCommandCenter", |
|||
"when": "commandCenterVisible" |
|||
}, |
|||
// The most important one: to exit common modes/menus/widgets |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closeAllGroups", |
|||
"when": "editorFocus" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closeActiveEditor", |
|||
"when": "editorFocus" |
|||
}, |
|||
{ |
|||
"key": "capslock", |
|||
"command": "workbench.action.closePanel", |
|||
"when": "panelFocus" |
|||
} |
|||
// ... you may need to map it to several common "escape" actions |
|||
] |
|||
@ -0,0 +1,243 @@ |
|||
{ |
|||
"keyboard.dispatch": "keyCode", |
|||
// For the code editor |
|||
"editor.fontFamily": "'Hack', 'Droid Sans Mono', monospace", |
|||
"workbench.colorTheme": "GitHub Dark Default", |
|||
|
|||
// For the integrated terminal |
|||
"terminal.integrated.fontFamily": "'Hack', monospace" |
|||
"vim.insertModeKeyBindings": [ |
|||
{ |
|||
"before": [ |
|||
"<Esc>" |
|||
], |
|||
"after": [ |
|||
"<Esc>" |
|||
], |
|||
"commands": [ |
|||
"workbench.action.files.save" |
|||
] |
|||
} |
|||
], |
|||
|
|||
// Optional: If you use the non-recursive version (recommended for most simple mappings): |
|||
"vim.insertModeKeyBindingsNonRecursive": [ |
|||
{ |
|||
"before": [ |
|||
"<Esc>" |
|||
], |
|||
"after": [ |
|||
"<Esc>" |
|||
], |
|||
"commands": [ |
|||
"workbench.action.files.save" |
|||
] |
|||
} |
|||
], |
|||
"workbench.colorCustomizations": { |
|||
"[GitHub Dark]": { |
|||
// Activity Bar (Left side) |
|||
"activityBar.background": "#1f2428", // Keep dark to blend |
|||
"activityBar.activeBorder": "#f85149", // Bright GitHub Red |
|||
"activityBar.foreground": "#f85149", |
|||
"activityBar.inactiveForeground": "#6e7681", |
|||
|
|||
// Status Bar (Bottom) |
|||
"statusBar.background": "#da3633", // Deep GitHub Red |
|||
"statusBar.foreground": "#ffffff", |
|||
|
|||
// Title Bar & Tabs |
|||
"titleBar.activeBackground": "#1f2428", |
|||
"tab.activeBorderTop": "#f85149", |
|||
|
|||
// Lists & Trees (File explorer highlights) |
|||
"list.activeSelectionForeground": "#f85149", |
|||
"textLink.foreground": "#f85149", |
|||
"progressBar.background": "#f85149" |
|||
} |
|||
}, |
|||
// Vim |
|||
{ |
|||
// --- General Editor Settings (matching 'set' commands) --- |
|||
"editor.lineNumbers": "relative", // set relativenumber |
|||
"vim.useSystemClipboard": true, // set clipboard+=unnamedplus |
|||
"editor.tabSize": 4, // set tabstop=4 shiftwidth=4 |
|||
"editor.insertSpaces": true, // set expandtab |
|||
"editor.wordWrap": "wordWrapColumn", // set tw=60 (approximate behavior) |
|||
"editor.wordWrapColumn": 60, |
|||
"editor.cursorSurroundingLines": 5, // set linespace / scrolloff behavior |
|||
"files.autoSave": "afterDelay", // Replaces vim-auto-save plugin |
|||
"files.autoSaveDelay": 1000, // set updatetime=1000 |
|||
|
|||
// --- Vim Extension Configuration --- |
|||
"vim.leader": "<space>", // let mapleader="\<Space>" |
|||
"vim.hlsearch": true, // set hlsearch |
|||
"vim.timeout": 350, // set timeoutlen=350 |
|||
|
|||
// --- Key Rebinding (Core) --- |
|||
// Handle Ctrl key conflicts so Vim handles them, not VS Code |
|||
"vim.handleKeys": { |
|||
"<C-a>": false, |
|||
"<C-f>": false, |
|||
"<C-p>": false // Let VS Code handle Quick Open (like fzf) |
|||
}, |
|||
|
|||
// --- Core Editor Settings (from 'set' commands) --- |
|||
|
|||
// set background=dark |
|||
|
|||
// set relativenumber |
|||
"editor.lineNumbers": "relative", |
|||
|
|||
// set expandtab |
|||
"editor.insertSpaces": true, |
|||
|
|||
// set tabstop=4, set shiftwidth=4 |
|||
"editor.tabSize": 4, |
|||
|
|||
// set tw=60 |
|||
"editor.wordWrap": "wordWrapColumn", |
|||
"editor.wordWrapColumn": 60, |
|||
|
|||
// set nofixendofline (this is the opposite of VS Code's default, so we disable the default) |
|||
"files.insertFinalNewline": false, |
|||
|
|||
// set mouse=a |
|||
"editor.mouseWheelZoom": true, // VS Code equivalent for mouse interaction |
|||
|
|||
// --- Language-Specific Settings (from 'autocmd FileType...') --- |
|||
|
|||
// autocmd FileType *css,...,typescriptreact,yaml set tabstop=2 shiftwidth=2 |
|||
"[css]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[scss]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[html]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[javascript]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[javascriptreact]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[json]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[typescript]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[typescriptreact]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
"[yaml]": { |
|||
"editor.tabSize": 2 |
|||
}, |
|||
|
|||
// autocmd FileType go set noexpandtab sw=4 |
|||
"[go]": { |
|||
"editor.insertSpaces": false, |
|||
"editor.tabSize": 4 |
|||
}, |
|||
|
|||
// autocmd Filetype markdown set textwidth=55, formatoptions=... |
|||
"[markdown]": { |
|||
"editor.wordWrap": "wordWrapColumn", |
|||
"editor.wordWrapColumn": 55, |
|||
// The rest of 'formatoptions' (like cjMqtvw) is handled by extensions/VSCodeVim |
|||
}, |
|||
|
|||
// autocmd Filetype groovy,Jenkinsfile,taskdata set tw=0 |
|||
"[groovy]": { |
|||
"editor.wordWrap": "off" |
|||
}, |
|||
"[jenkinsfile]": { |
|||
"editor.wordWrap": "off" |
|||
}, |
|||
|
|||
// --- VSCodeVim Settings (from 'vim.useSystemClipboard', 'let mapleader', 'nnoremap', etc.) --- |
|||
|
|||
// set clipboard+=unnamedplus |
|||
"vim.useSystemClipboard": true, |
|||
|
|||
// set hlsearch |
|||
"vim.hlsearch": true, |
|||
|
|||
// set smartcase |
|||
"vim.smartcase": true, |
|||
|
|||
// set timeoutlen=350 |
|||
"vim.timeout": 350, |
|||
|
|||
// set undofile |
|||
"vim.undofile": true, |
|||
|
|||
// let mapleader="\<Space>" |
|||
"vim.leader": " ", |
|||
|
|||
// nnoremap Q @@ |
|||
"vim.normalModeKeyBindingsNonRecursive": [ |
|||
{ |
|||
"before": ["Y"], |
|||
"after": ["y", "$"], // Changed from 'yy' to 'y$' which is more idiomatic Vim |
|||
"silent": true |
|||
}, |
|||
{ |
|||
"before": ["Q"], |
|||
"after": ["@", "@"], // Last macro |
|||
"silent": true |
|||
}, |
|||
{ |
|||
"before": [","], |
|||
"after": ["z", "a"], // Toggle fold |
|||
"silent": true |
|||
}, |
|||
{ |
|||
"before": ["'"], |
|||
"after": ["`"], // Jump to horizontal position for mark |
|||
"silent": true |
|||
}, |
|||
// nnoremap <leader>d d$ |
|||
{ |
|||
"before": ["<leader>", "d"], |
|||
"after": ["d", "$"] |
|||
}, |
|||
// nnoremap <leader>dl 0d$ |
|||
{ |
|||
"before": ["<leader>", "d", "l"], |
|||
"after": ["0", "d", "$"] |
|||
}, |
|||
// nnoremap <leader>k <C-O> (Jump back) |
|||
{ |
|||
"before": ["<leader>", "k"], |
|||
"after": ["<C-o>"] |
|||
}, |
|||
// nnoremap <leader>j <C-I> (Jump forward) |
|||
{ |
|||
"before": ["<leader>", "j"], |
|||
"after": ["<C-i>"] |
|||
}, |
|||
// nnoremap <leader>sp :sp |
|||
{ |
|||
"before": ["<leader>", "s", "p"], |
|||
"commands": [":split"] |
|||
}, |
|||
// nnoremap <leader>vs :vs |
|||
{ |
|||
"before": ["<leader>", "v", "s"], |
|||
"commands": [":vsplit"] |
|||
}, |
|||
// nnoremap <leader>vv :vsp ~/.vimrc<CR> (Translated to open settings.json) |
|||
{ |
|||
"before": ["<leader>", "v", "v"], |
|||
"commands": ["workbench.action.openSettingsJson"] |
|||
}, |
|||
// nnoremap <leader>yo :Goyo<CR> (Translated to Zen Mode) |
|||
{ |
|||
"before": ["<leader>", "y", "o"], |
|||
"commands": ["workbench.action.toggleZenMode"] |
|||
} |
|||
] |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
function fn-progress |
|||
# --- Season Dates (Fortnite Chapter 7 Season 1) --- |
|||
set SEASON_START "2025-11-29 00:00:00" |
|||
set SEASON_END "2026-03-04 00:00:00" |
|||
|
|||
# --- Calculate Unix Timestamps --- |
|||
set START_SECONDS (date -d "$SEASON_START" +%s) |
|||
set END_SECONDS (date -d "$SEASON_END" +%s) |
|||
set CURRENT_SECONDS (date +%s) |
|||
set CURRENT_DATE_TIME (date) |
|||
|
|||
# --- Check if the season is over or hasn't started --- |
|||
if test "$CURRENT_SECONDS" -lt "$START_SECONDS" |
|||
echo "🎯 Fortnite C7S1 hasn't started yet! (Starts on $SEASON_START)" |
|||
return |
|||
end |
|||
|
|||
if test "$CURRENT_SECONDS" -ge "$END_SECONDS" |
|||
echo "🎉 Fortnite C7S1 has ended! (Ended on $SEASON_END)" |
|||
return |
|||
end |
|||
|
|||
# --- Calculate Progress --- |
|||
set TOTAL_DURATION (math "$END_SECONDS - $START_SECONDS") |
|||
set TIME_PASSED (math "$CURRENT_SECONDS - $START_SECONDS") |
|||
|
|||
# --- Calculate the ceiling percentage (The Critical Change) --- |
|||
# Setting scale=0 forces bc to output only the integer part (truncation), |
|||
# and adding 0.9999 before truncation implements the ceiling logic. |
|||
set PROGRESS_PERCENT (echo "scale=0; (($TIME_PASSED * 100) / $TOTAL_DURATION) + 0.9999" | bc) |
|||
|
|||
# --- Output Result --- |
|||
echo "📅 Current Date/Time: $CURRENT_DATE_TIME" |
|||
echo "🚀 Season Start: $SEASON_START" |
|||
echo "🛑 Season End: $SEASON_END" |
|||
echo "---" |
|||
echo "✅ Fortnite C7S1 is **$PROGRESS_PERCENT%** complete!" |
|||
echo "---" |
|||
end |
|||
@ -0,0 +1,12 @@ |
|||
📅 Current Date/Time: Sat Dec 6 12:55:57 EST 2025 |
|||
🚀 Season Start: 2025-11-29 00:00:00 |
|||
🛑 Season End: 2026-03-04 00:00:00 |
|||
--- |
|||
✅ Fortnite C7S1 is **7.93%** complete! |
|||
--- |
|||
]4;0;#0B0E12\]4;1;#671D22\]4;2;#722327\]4;3;#19453B\]4;4;#1B594F\]4;5;#51554A\]4;6;#99322C\]4;7;#82bcb1\]4;8;#5b837b\]4;9;#671D22\]4;10;#722327\]4;11;#19453B\]4;12;#1B594F\]4;13;#51554A\]4;14;#99322C\]4;15;#82bcb1\]10;#82bcb1\]11;#0B0E12\]12;#82bcb1\]13;#82bcb1\]17;#82bcb1\]19;#0B0E12\]4;232;#0B0E12\]4;256;#82bcb1\]708;#0B0E12\📅 Current Date/Time: Sat Dec 6 12:55:57 EST 2025 |
|||
🚀 Season Start: 2025-11-29 00:00:00 |
|||
🛑 Season End: 2026-03-04 00:00:00 |
|||
--- |
|||
✅ Fortnite C7S1 is **7.93%** complete! |
|||
--- |
|||
@ -1,6 +1,21 @@ |
|||
#!/bin/bash |
|||
|
|||
. "/home/kevin/.cache/wal/colors.sh" |
|||
printf "$(date '+%H:%M.%a-%m-%d')\n\n%s\n" "$color7" |
|||
#. "/home/kevin/.cache/wal/colors.sh" |
|||
#printf " $(date '+%H:%M.%a-%m-%d')\n\n%s\n" "$color7" |
|||
# echo "<span foreground=\"%s\">$(date '+%H:%M.%a-%m-%d')%s</span>" "$color2" |
|||
# printf "%s" "$color2" |
|||
|
|||
# Load colors from pywal cache |
|||
. "/home/kevin/.cache/wal/colors.sh" |
|||
|
|||
# Define the date format matching the output in your screenshot (e.g., Sat 12/06 12:46) |
|||
DATE_FORMAT='+%a %m/%d %H:%M' |
|||
|
|||
# Use Pango markup to wrap the entire string, applying the color, |
|||
# and explicitly defining the icon () and the date output. |
|||
# The icon is U+F017. |
|||
printf "<span foreground=\"%s\"> %s</span>\n" "$color7" "$(date "$DATE_FORMAT")" |
|||
|
|||
# The next two lines are optional for i3blocks but usually required for color output: |
|||
printf "\n" # Short text (optional) |
|||
printf "%s\n" "$color7" # Color (optional, but good practice) |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue