Sync from Windows

This commit is contained in:
js0ny 2025-01-20 09:33:07 +00:00
parent 61d3539d2a
commit ae8625f3a6
14 changed files with 9606 additions and 90 deletions

View file

@ -143,7 +143,8 @@ Get-ChildItem -Force -Filter *owerShell | ForEach-Object { $_.Attributes += "Hid
# Windows Terminal # Windows Terminal
if (Get-Command wt -ErrorAction SilentlyContinue) { if (Get-Command wt -ErrorAction SilentlyContinue) {
Write-Output "Windows Terminal (wt) installed" Write-Output "Windows Terminal (wt) installed"
} else { }
else {
winget install -e --id Microsoft.WindowsTerminal winget install -e --id Microsoft.WindowsTerminal
} }
@ -185,6 +186,7 @@ scoop install extras/bandizip
scoop install main/pandoc scoop install main/pandoc
scoop install extras/sumatrapdf scoop install extras/sumatrapdf
winget install -e --id Google.GoogleDrive winget install -e --id Google.GoogleDrive
sudo scoop install nonportable/winbtrfs-np
# System Enhancements # System Enhancements
scoop install extras/fancontrol scoop install extras/fancontrol

View file

@ -9,23 +9,23 @@ $BASE_COMMON = Join-Path $DOTFILES "common"
$BASE_TOOLS = Join-Path $DOTFILES "tools" $BASE_TOOLS = Join-Path $DOTFILES "tools"
$BASE_WIN = Join-Path $DOTFILES "platforms" "win" $BASE_WIN = Join-Path $DOTFILES "platforms" "win"
$linkDots = @{ $linkDots = @{
"$BASE_WIN\wslconfig" = "$Env:UserProfile\.wslconfig" "$BASE_WIN\wslconfig" = "$Env:UserProfile\.wslconfig"
"$BASE_WIN\neovide.toml" = "$Env:AppData\neovide\config.toml" "$BASE_WIN\neovide.toml" = "$Env:AppData\neovide\config.toml"
"$BASE_WIN\vsvimrc" = "$Env:Vim\.vsvimrc" "$BASE_WIN\vsvimrc" = "$Env:Vim\.vsvimrc"
"$BASE_WIN\komorebi" = "$Env:KOMOREBI_CONFIG_HOME" "$BASE_WIN\komorebi" = "$Env:KOMOREBI_CONFIG_HOME"
"$BASE_COMMON\condarc.yaml" = "$Env:XDG_CONFIG_HOME\conda\.condarc" "$BASE_COMMON\condarc.yaml" = "$Env:XDG_CONFIG_HOME\conda\.condarc"
"$BASE_COMMON\gitconfig" = "$Env:UserProfile\.gitconfig" "$BASE_COMMON\gitconfig" = "$Env:UserProfile\.gitconfig"
"$BASE_COMMON\glow.yaml" = "$Env:AppData\glow\glow.yml" "$BASE_COMMON\glow.yaml" = "$Env:AppData\glow\glow.yml"
"$BASE_COMMON\haskeline" = "$Env:UserProfile\.haskeline" "$BASE_COMMON\haskeline" = "$Env:UserProfile\.haskeline"
"$BASE_COMMON\ideavimrc" = "$Env:XDG_CONFIG_HOME\ideavim\ideavimrc" "$BASE_COMMON\ideavimrc" = "$Env:XDG_CONFIG_HOME\ideavim\ideavimrc"
"$BASE_COMMON\lesskey" = "$Env:LessKeyIn" "$BASE_COMMON\lesskey" = "$Env:LessKeyIn"
"$BASE_COMMON\npmrc" = "$Env:NPM_CONFIG_USERCONFIG" "$BASE_COMMON\npmrc" = "$Env:NPM_CONFIG_USERCONFIG"
"$BASE_COMMON\NuGet.Config" = "$Env:AppData\NuGet\NuGet.Config" "$BASE_COMMON\NuGet.Config" = "$Env:AppData\NuGet\NuGet.Config"
"$BASE_COMMON\obsidian.vimrc" = "$Env:UserProfile\Obsidian\.obsidian.vimrc" "$BASE_COMMON\obsidian.vimrc" = "$Env:UserProfile\Obsidian\.obsidian.vimrc"
"$BASE_COMMON\pip.conf" = "$Env:AppData\pip\pip.ini" "$BASE_COMMON\pip.conf" = "$Env:AppData\pip\pip.ini"
"$BASE_COMMON\vimrc" = "$Env:Vim\_vimrc" "$BASE_COMMON\vimrc.noxdg.vimrc" = "$Env:Vim\_vimrc"
"$BASE_TOOLS\ipython" = "$Env:IPYTHONDIR" "$BASE_TOOLS\ipython" = "$Env:IPYTHONDIR"
"$BASE_TOOLS\nvim" = "$Env:XDG_CONFIG_HOME\nvim" "$BASE_TOOLS\nvim" = "$Env:XDG_CONFIG_HOME\nvim"
} }

View file

@ -24,5 +24,8 @@
smudge = git-lfs smudge -- %f smudge = git-lfs smudge -- %f
process = git-lfs filter-process process = git-lfs filter-process
required = true required = true
[init]
defaultBranch = master
# [url "git@github.com:"] # Force ssh # [url "git@github.com:"] # Force ssh
# insteadOf = https://github.com/ # insteadOf = https://github.com/

View file

@ -1,59 +1,3 @@
" $VIMRUNTIME refers to the versioned system directory where Vim stores its
" system runtime files -- /usr/share/vim/vim<version>.
"
" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
" any settings in these files.
"
" If you don't want that to happen, uncomment the below line to prevent
" defaults.vim from being loaded.
" let g:skip_defaults_vim = 1
"
" If you would rather _use_ default.vim's settings, but have the system or
" user vimrc override its settings, then uncomment the line below.
" source $VIMRUNTIME/defaults.vim
" All Debian-specific settings are defined in $VIMRUNTIME/debian.vim and
" sourced by the call to :runtime you can find below. If you wish to change
" any of those settings, you should do it in this file or
" /etc/vim/vimrc.local, since debian.vim will be overwritten everytime an
" upgrade of the vim packages is performed. It is recommended to make changes
" after sourcing debian.vim so your settings take precedence.
runtime! debian.vim
" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes
" numerous options, so any other options should be set AFTER changing
" 'compatible'.
"set compatible
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
syntax on
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark
" Uncomment the following to have Vim jump to the last position when
" reopening a file
"au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"filetype plugin indent on
" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
set incsearch " Incremental search
"set autowrite " Automatically save before commands like :next and :make
" set hidden " Hide buffers when they are abandoned
"set mouse=a " Enable mouse usage (all modes)
" Source a global configuration file if available " Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local") if filereadable("/etc/vim/vimrc.local")
@ -97,6 +41,8 @@ set hlsearch
set incsearch set incsearch
set ignorecase set ignorecase
set smartcase set smartcase
set showcmd
set mouse=a " Enable mouse usage (all modes)
set number set number
set relativenumber set relativenumber
@ -104,3 +50,5 @@ set relativenumber
set laststatus=2 set laststatus=2
set showcmd set showcmd
set statusline=%<%f\ %h%m%r\ %=\ [%l,%v]\ [%p%%]\ [\ %Y]\ [󱑉\ %{strftime('%H:%M:%S')}] set statusline=%<%f\ %h%m%r\ %=\ [%l,%v]\ [%p%%]\ [\ %Y]\ [󱑉\ %{strftime('%H:%M:%S')}]
syntax on

View file

@ -60,4 +60,11 @@ ${function:winr} = { winget uninstall $args }
${function:wins} = { winget search $args } ${function:wins} = { winget search $args }
${function:winu} = { winget upgrade $args } ${function:winu} = { winget upgrade $args }
${function:pkill} = { ps *$args* | kill -Force } ${function:pkill} = { Get-Process *$args* | Stop-Process -Force }
${function:tmux} = { wsl.exe tmux $args }
if (Get-Command "sfsu.exe" -ErrorAction SilentlyContinue) {
Invoke-Expression (&sfsu.exe hook)
}

Binary file not shown.

Binary file not shown.

View file

@ -21,7 +21,7 @@ general:
config_reload_commands: [] config_reload_commands: []
# Whether to automatically focus windows underneath the cursor. # Whether to automatically focus windows underneath the cursor.
focus_follows_cursor: true focus_follows_cursor: false
# Whether to switch back and forth between the previously focused # Whether to switch back and forth between the previously focused
# workspace when focusing the current workspace. # workspace when focusing the current workspace.
@ -89,7 +89,7 @@ window_effects:
enabled: false enabled: false
color: "#a1a1a1" color: "#a1a1a1"
hide_title_bar: hide_title_bar:
enabled: true enabled: false
corner_style: corner_style:
enabled: false enabled: false
style: "square" style: "square"

View file

@ -13,8 +13,11 @@ function Invoke-Completion {
} }
'git' { Import-Module Posh-Git } 'git' { Import-Module Posh-Git }
'hugo' { hugo completion powershell | Out-String | Invoke-Expression } 'hugo' { hugo completion powershell | Out-String | Invoke-Expression }
'just' { just --completions powershell | Out-String | Invoke-Expression }
'pip' { pip completion --powershell | Out-String | Invoke-Expression } 'pip' { pip completion --powershell | Out-String | Invoke-Expression }
'pixi' { pixi completion --shell powershell | Out-String | Invoke-Expression }
'rg' { rg --generate complete-powershell | Out-String | Invoke-Expression } 'rg' { rg --generate complete-powershell | Out-String | Invoke-Expression }
'rustup' { rustup completions powershell rustup | Out-String | Invoke-Expression }
'uv' { uv generate-shell-completion powershell | Out-String | Invoke-Expression } 'uv' { uv generate-shell-completion powershell | Out-String | Invoke-Expression }
'wezterm' { wezterm shell-completion --shell power-shell | Out-String | Invoke-Expression } 'wezterm' { wezterm shell-completion --shell power-shell | Out-String | Invoke-Expression }
'winget' { 'winget' {
@ -36,7 +39,12 @@ Set-Alias "icmp" "Invoke-Completion"
Register-ArgumentCompleter -CommandName Invoke-Completion -ParameterName 'command' -ScriptBlock { Register-ArgumentCompleter -CommandName Invoke-Completion -ParameterName 'command' -ScriptBlock {
param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter) param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter)
$cmds = @('docker', 'dotnet', 'git', 'hugo', 'pip', 'rg', 'uv', 'wezterm', 'winget') $cmds = @('docker', 'dotnet', 'git', 'hugo', 'just', 'pip', 'pixi', 'rg', 'rustup', 'uv', 'wezterm', 'winget')
$cmds | Where-Object { $_ -like "$wordToComplete*" } $cmds | Where-Object { $_ -like "$wordToComplete*" }
} }
if ($isWindows) {
Invoke-Completion winget # Enable winget tab completion by default
}

View file

@ -26,6 +26,5 @@ Set-PSReadLineKeyHandler -Chord "Ctrl+e" -Function EndOfLine
Set-PSReadLineKeyHandler -Chord "Ctrl+p" -Function PreviousHistory Set-PSReadLineKeyHandler -Chord "Ctrl+p" -Function PreviousHistory
Set-PSReadLineKeyHandler -Chord "Ctrl+p" -Function PreviousHistory Set-PSReadLineKeyHandler -Chord "Ctrl+p" -Function PreviousHistory
Set-PSReadLineKeyHandler -Chord "Ctrl+n" -Function NextHistory Set-PSReadLineKeyHandler -Chord "Ctrl+n" -Function NextHistory
## Use <Tab> to Invoke MenuComplete ## Use <Tab> to Invoke MenuComplete
Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete

View file

@ -7,3 +7,7 @@ if ($IsWindows) {
# WinGet # WinGet
Import-Module -Name Microsoft.WinGet.CommandNotFound #f45873b3-b655-43a6-b217-97c00aa0db58 Import-Module -Name Microsoft.WinGet.CommandNotFound #f45873b3-b655-43a6-b217-97c00aa0db58
} }
Import-Module -Name PSFzf
Set-PSReadLineKeyHandler -Chord "Ctrl-r" -ScriptBlock { Invoke-FuzzyHistory }

File diff suppressed because it is too large Load diff

View file

@ -52,6 +52,10 @@ noremap gpd editor.action.peekDefinition
noremap gt editor.action.goToTypeDefinition noremap gt editor.action.goToTypeDefinition
noremap gpt editor.action.peekTypeDefinition noremap gpt editor.action.peekTypeDefinition
noremap gh editor.action.showDefinitionPreviewHover noremap gh editor.action.showDefinitionPreviewHover
noremap gr editor.action.goToReferences
noremap gpr editor.action.referenceSearch.trigger
noremap zR editor.foldAll
noremap <leader><leader> workbench.action.quickOpen noremap <leader><leader> workbench.action.quickOpen
noremap <leader>/ workbench.action.quickTextSearch noremap <leader>/ workbench.action.quickTextSearch

View file

@ -4,6 +4,9 @@
" And go to vscode vim setting: " And go to vscode vim setting:
"vim.vimrc.path": "$HOME/.config/vscode/vscode.vimrc", "vim.vimrc.path": "$HOME/.config/vscode/vscode.vimrc",
" For all available options see
" https://github.com/VSCodeVim/Vim/blob/d41e286e9238b004f02b425d082d3b4181d83368/src/configuration/vimrc.ts#L120-L407
" Use VSpaceCode instead of <leader> " Use VSpaceCode instead of <leader>
noremap <space> vspacecode.space noremap <space> vspacecode.space
@ -34,18 +37,8 @@ noremap J E
" Y to yank to end of line " Y to yank to end of line
noremap Y y$ noremap Y y$
" Define in settings.json, since this will remap <esc> under visual mode nnoremap <esc> :nohlsearch<CR>
" noremap <esc> :nohlsearch<CR>
" 分词版本的w和b支持中文需要插件
" 为了保证递归解析,而不是打断,使用 `nmap` 而不是 `nnoremap`
" Comment if you don't use cjk or the plugin
nmap w cjkWordHandler.cursorWordEndRight
nmap b cjkWordHandler.cursorWordStartLeft
" keep selection after indent (define in settings.json)
" voremap < <gv
" voremap > >gv
" lsp " lsp
noremap gi editor.action.goToImplementation noremap gi editor.action.goToImplementation
@ -55,3 +48,17 @@ noremap gpd editor.action.peekDefinition
noremap gt editor.action.goToTypeDefinition noremap gt editor.action.goToTypeDefinition
noremap gpt editor.action.peekTypeDefinition noremap gpt editor.action.peekTypeDefinition
noremap gh editor.action.showDefinitionPreviewHover noremap gh editor.action.showDefinitionPreviewHover
noremap gr editor.action.goToReferences
noremap gpr editor.action.referenceSearch.trigger
noremap zR editor.foldAll
" keep selection after indent (define in settings.json)
vnoremap < editor.action.outdentLines
vnoremap > editor.action.indentLines
" 分词版本的w和b支持中文需要插件
" 为了保证递归解析,而不是打断,使用 `nmap` 而不是 `nnoremap`
" Comment if you don't use cjk or the plugin
nmap w cjkWordHandler.cursorWordEndRight
nmap b cjkWordHandler.cursorWordStartLeft