Browse Source

VSCode init

vscode
Kevin Mok 2 weeks ago
parent
commit
7c55fe9d22
Signed by: Kevin-Mok GPG Key ID: FB0DA56BEB5D98F3
  1. 2
      aliases/key_aliases.tmpl
  2. 5
      aliases/key_dirs.tmpl
  3. 24
      dot_Xmodmap
  4. 39
      dot_config/Code/User/keybindings.json
  5. 243
      dot_config/Code/User/settings.json
  6. 1
      dot_config/fish/config.fish.tmpl
  7. 39
      dot_config/fish/functions/fn-progress.fish
  8. 12
      dot_config/fish/functions/test_output.txt
  9. 10
      dot_config/i3/config.tmpl
  10. 2
      dot_config/i3blocks/i3blocks-secondary.conf.tmpl
  11. 29
      dot_config/i3blocks/i3blocks.conf.tmpl
  12. 19
      dot_config/i3blocks/scripts/executable_time
  13. 9
      dot_config/kitty/kitty.conf

2
aliases/key_aliases.tmpl

@ -1043,7 +1043,7 @@ twf "watch -n300 'twitchy-game Fortnite'"
lob "lsd -F --group-dirs first 2020*.mkv"
wob "watch -n60 'lsd -lF --group-dirs first --size short 2020*.mkv'"
fnpr "t timeline FNProgress | sed -n '2p'"
#fnpr "t timeline FNProgress | sed -n '2p'"
fnu "sxiv ~/Documents/fortnite/pics/maps/upgrade.png &"
fnl "python /mnt/linux-files-3/fortnite/show-level.py"

5
aliases/key_dirs.tmpl

@ -8,7 +8,7 @@ cfg ~/.config
cfgf ~/.config/fish
ch ~/Documents/chat
dc ~/Documents/chat/discord
da /mnt/ipad/DCIM/105APPLE
da /mnt/ipad/DCIM/106APPLE
dl ~/Downloads
# dw ~/dwm
D ~/Documents
@ -186,6 +186,8 @@ sdvsvg ~/Documents/stardew-valley-sdv-saves/hevintales
snp ~/Documents/marvel-snap
snpv /mnt/linux-files-2/Videos/ipad/marvel-snap
dal /mnt/linux-files-3/ipad/106APPLE
# ]]] gaming #
# pey [[[ #
@ -297,6 +299,7 @@ kb ~/coding/kanban-calendar
ac ~/coding/astral-challenge-txt
rbc ~/coding/rbc-aml/src
cibc ~/school/job-hunt/interview-questions/cibc
# ]]] sch #

24
dot_Xmodmap

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

39
dot_config/Code/User/keybindings.json

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

243
dot_config/Code/User/settings.json

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

1
dot_config/fish/config.fish.tmpl

@ -242,6 +242,7 @@ abbr fd1 "fd --changed-within 1d"
abbr ens "enable-site"
abbr ev "evince-silent"
abbr ff "fzf-cd"
abbr fnpr "fn-progress"
# abbr fbg "find-bg"
# abbr fr "fzf-ranger"
abbr fv "fzf-vim"

39
dot_config/fish/functions/fn-progress.fish

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

12
dot_config/fish/functions/test_output.txt

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

10
dot_config/i3/config.tmpl

@ -23,6 +23,7 @@ exec wal -i $(/home/kevin/scripts/shuffler "$HOME/Pictures/Backgrounds/dim/editi
# exec --no-startup-id i3-msg 'workspace $ws2; exec $term -e fish -c "tmux-attach fortnite"'
exec --no-startup-id i3-msg 'workspace $ws3; exec $browser'
exec --no-startup-id i3-msg 'workspace $ws6; exec vesktop'
exec --no-startup-id i3-msg 'workspace $ws6; exec signal-desktop'
# exec --no-startup-id i3-msg 'workspace $ws5; exec $term -e twitchy'
# exec --no-startup-id i3-msg 'workspace $ws5; exec firefox -P nft'
#exec --no-startup-id i3-msg workspace $ws6; exec discord
@ -362,8 +363,8 @@ bindsym $mod+Shift+F2 workspace $ws2; exec $term -e mosh kmok@$work_laptop_ip --
# ws3 [[[ #
set $ws3 "3  "
# set $ws3 "3 "
#set $ws3 "3  "
set $ws3 "3 "
# workspace $ws3 output $main
# bindsym $mod+F3 workspace $ws3; exec $browser
# bindsym $mod+F3 exec $browser; move container to workspace $ws3; workspace $ws3
@ -428,7 +429,7 @@ for_window [class="ada-mario"] move absolute position 640 0
set $ws6 "6  "
workspace $ws6 output $secondary
assign [class="Slack"] $ws6
bindsym Mod4+d workspace $ws6; exec discord
bindsym Mod4+d workspace $ws6; exec vesktop
bindsym Mod4+$mod+d workspace $ws6; exec element-desktop
bindsym Mod4+i workspace $ws6; exec signal-desktop
# bindsym Mod4+d workspace $ws6; exec firefox -new-window https://riot.im/app
@ -485,7 +486,7 @@ workspace $ws11 output $secondary
bindsym $mod+F11 workspace $ws11; exec $term -e btop
# bindsym Mod4+$mod+F11 workspace $ws11; exec $term -e fish -c 'tmux-attach backup'
bindsym Control+Shift+F11 workspace $ws11; exec $term -e fish -c 'tmux-attach backup'
bindsym Mod4+t workspace $ws11; exec nordvpn connect && transmission-gtk
#bindsym Mod4+t workspace $ws11; exec nordvpn connect && transmission-gtk
# bindsym $mod+F11 workspace $ws11; exec $term -e gotop -m
# bindsym Mod4+a workspace $ws11; exec antimicro
@ -592,6 +593,7 @@ bar {
font pango:$sb_font 17
{{ else }}
# font pango:$sb_font 17
#font pango:$sb_font 16:pixelsize=5
font pango:$sb_font 16
{{ end }}
colors {

2
dot_config/i3blocks/i3blocks-secondary.conf.tmpl

@ -65,7 +65,7 @@ interval=60
[calendar]
interval=1
label=
#label=
# DATEFMT=+%H:%M.%a-%m-%d
# DATEFMT=+%H:%M
#DATEFMT=+%H:%M

29
dot_config/i3blocks/i3blocks.conf.tmpl

@ -30,17 +30,12 @@ color=#cbe4ff
# TICKER=ARBUSD
# interval=30
# [ticker]
# label=ETH
# TICKER=ETH-USD
# interval=30
[dexscreener]
label=HERO
#CHAIN=solana
#PAIR=B4Vwozy1FGtp8SELXSXydWSzavPUGnJ77DURV2k4MhUV
command=/home/kevin/.config/i3blocks/scripts/dexscreener abstract 0x3771b51b5a705338fa19702f249afcaa94b0cd8c
interval=5
#[dexscreener]
#label=HERO
##CHAIN=solana
##PAIR=B4Vwozy1FGtp8SELXSXydWSzavPUGnJ77DURV2k4MhUV
#command=/home/kevin/.config/i3blocks/scripts/dexscreener abstract 0x3771b51b5a705338fa19702f249afcaa94b0cd8c
#interval=5
#[kraken]
#label=BTC
@ -49,11 +44,11 @@ interval=5
#command=/home/kevin/.config/i3blocks/scripts/kraken BTCUSDC
#interval=30
#[kraken]
#label=ETH
##TICKER=ETHUSDC
#command=/home/kevin/.config/i3blocks/scripts/kraken ETHUSDC
#interval=30
[kraken]
label=ETH
#TICKER=ETHUSDC
command=/home/kevin/.config/i3blocks/scripts/kraken ETHUSDC
interval=30
## [ticker]
## label=btc 
@ -178,7 +173,7 @@ interval=5
[calendar]
interval=1
label=
#label=
# DATEFMT=+%H:%M
# DATEFMT=+%H:%M.%a-%m-%d
# SHORTFMT=+%H:%M:%S

19
dot_config/i3blocks/scripts/executable_time

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

9
dot_config/kitty/kitty.conf

@ -18,3 +18,12 @@ font_size 12
map ctrl+alt+up change_font_size all +1.0
map ctrl+alt+down change_font_size all -1.0
font_family Hack Nerd Font Mono
bold_font Hack Nerd Font Mono Bold
# Map PUA ranges to the Symbols Nerd Font (or your main Nerd Font)
# The Firefox icon (U+E2E9) is often in the Pomicons or Devicons range
symbol_map U+E000-U+EFFF Hack Nerd Font Mono
symbol_map U+F000-U+FFFF Hack Nerd Font Mono
symbol_map U+23FB-U+23FE,U+2B58,U+2EFE-U+3000 Hack Nerd Font Mono
# You can also use the symbols-only font if you have it installed:
# symbol_map U+E000-U+F8FF Symbols Nerd Font Mono
Loading…
Cancel
Save