From 1b66571411df514c4fc741a0306650422be0b6d8 Mon Sep 17 00:00:00 2001 From: js0ny Date: Tue, 12 Nov 2024 15:28:44 +0000 Subject: [PATCH] Use starship --- .config/starship/starship.toml | 15 +- .config/starship/starship_pwsh.toml | 208 ++++++++++++++++ .config/starship/starship_zsh.toml | 208 ++++++++++++++++ .gitignore | 2 +- desktop.ini | 2 +- powershell/Keymap.ps1 | 4 +- powershell/Navigation.ps1 | 4 +- powershell/Prompt.ps1 | 176 +++++++------- powershell/readme.md | 23 ++ win/WindowsTerminal.json | 359 ++++++++++++++++++++++++++++ win/readme.md | 51 +++- win/setup_win.ps1 | 7 +- zsh/navi.zsh | 4 +- zsh/prompt.zsh | 1 + 14 files changed, 967 insertions(+), 97 deletions(-) create mode 100644 .config/starship/starship_pwsh.toml create mode 100644 .config/starship/starship_zsh.toml create mode 100644 powershell/readme.md create mode 100644 win/WindowsTerminal.json create mode 100644 zsh/prompt.zsh diff --git a/.config/starship/starship.toml b/.config/starship/starship.toml index 2694029..d0c4e98 100644 --- a/.config/starship/starship.toml +++ b/.config/starship/starship.toml @@ -1,6 +1,7 @@ # starship.toml # ~/.config/starship.toml format = '''$os$time $username @ $hostname $directory $all$character''' +continuation_prompt = "[$ ](bold cyan) " add_newline = true @@ -18,9 +19,9 @@ ssh_only = false ssh_symbol = '󰞉 ' [character] -success_symbol = "[PS > ](bold green)" -error_symbol = "[PS > ](bold red)" -vimcmd_symbol = "[Vi > ](bold green)" +success_symbol = "[$ ](bold green)" +error_symbol = "[$ ](bold red)" +vimcmd_symbol = "[: ](bold green)" [directory] truncation_length = 2 @@ -29,6 +30,14 @@ read_only = " 󰌾" style ="bold cyan" truncation_symbol = ".../" +[directory.substitutions] +"~/Documents" = "󰈙 " +"~/Downloads" = " " +"~/Music" = " " +"~/Pictures" = " " +"Source" = " " +"src" = " " + [aws] symbol = " " diff --git a/.config/starship/starship_pwsh.toml b/.config/starship/starship_pwsh.toml new file mode 100644 index 0000000..e20e2e9 --- /dev/null +++ b/.config/starship/starship_pwsh.toml @@ -0,0 +1,208 @@ +# starship.toml +# ~/.config/starship.toml +format = '''$os$time $username @ $hostname $directory $all$character''' +continuation_prompt = "[CR > ](bold cyan) " + +add_newline = true + +[time] +disabled = false +format = '[\[$time\]](purple)' +time_format = '%H:%M' + +[username] +format = '[$user](bold)' +show_always = true + +[hostname] +ssh_only = false +ssh_symbol = '󰞉 ' + +[character] +success_symbol = "[PS > ](bold green)" +error_symbol = "[PS > ](bold red)" +vimcmd_symbol = "[Vi < ](bold green)" + +[directory] +truncation_length = 2 +truncate_to_repo = true +read_only = " 󰌾" +style ="bold cyan" +truncation_symbol = ".../" + +[directory.substitutions] +"~/Documents" = "󰈙 " +"~/Downloads" = " " +"~/Music" = " " +"~/Pictures" = " " +"Source" = " " +"src" = " " + +[aws] +symbol = " " + +[buf] +symbol = " " + +[c] +symbol = " " + +[conda] +symbol = " " + +[crystal] +symbol = " " + +[dart] +symbol = " " + + +[docker_context] +symbol = " " + +[elixir] +symbol = " " + +[elm] +symbol = " " + +[fennel] +symbol = " " + +[fossil_branch] +symbol = " " + +[git_branch] +symbol = " " + +[git_commit] +tag_symbol = '  ' + +[golang] +symbol = " " + +[guix_shell] +symbol = " " + +[haskell] +symbol = " " + +[haxe] +symbol = " " + +[hg_branch] +symbol = " " + +[java] +symbol = " " + +[julia] +symbol = " " + +[kotlin] +symbol = " " + +[lua] +symbol = " " + +[memory_usage] +symbol = "󰍛 " + +[meson] +symbol = "󰔷 " + +[nim] +symbol = "󰆥 " + +[nix_shell] +symbol = " " + +[nodejs] +symbol = " " + +[ocaml] +symbol = " " + +[os] +disabled = false + +[os.symbols] +Alpaquita = " " +Alpine = " " +AlmaLinux = " " +Amazon = " " +Android = " " +Arch = " " +Artix = " " +CentOS = " " +Debian = " " +DragonFly = " " +Emscripten = " " +EndeavourOS = " " +Fedora = " " +FreeBSD = " " +Garuda = "󰛓 " +Gentoo = " " +HardenedBSD = "󰞌 " +Illumos = "󰈸 " +Kali = " " +Linux = " " +Mabox = " " +Macos = " " +Manjaro = " " +Mariner = " " +MidnightBSD = " " +Mint = " " +NetBSD = " " +NixOS = " " +OpenBSD = "󰈺 " +openSUSE = " " +OracleLinux = "󰌷 " +Pop = " " +Raspbian = " " +Redhat = " " +RedHatEnterprise = " " +RockyLinux = " " +Redox = "󰀘 " +Solus = "󰠳 " +SUSE = " " +Ubuntu = " " +Unknown = " " +Void = " " +Windows = "󰍲 " + +[package] +symbol = "󰏗 " + +[perl] +symbol = " " + +[php] +symbol = " " + +[pijul_channel] +symbol = " " + +[python] +symbol = " " + +[rlang] +symbol = "󰟔 " + +[ruby] +symbol = " " + +[rust] +symbol = "󱘗 " + +[scala] +symbol = " " + +[swift] +symbol = " " + +[zig] +symbol = " " + +[gradle] +symbol = " " diff --git a/.config/starship/starship_zsh.toml b/.config/starship/starship_zsh.toml new file mode 100644 index 0000000..2594f58 --- /dev/null +++ b/.config/starship/starship_zsh.toml @@ -0,0 +1,208 @@ +# starship.toml +# ~/.config/starship.toml +format = '''$os$time $username @ $hostname $directory $all$character''' +continuation_prompt = "[r % ](bold cyan) " + +add_newline = true + +[time] +disabled = false +format = '[\[$time\]](purple)' +time_format = '%H:%M' + +[username] +format = '[$user](bold)' +show_always = true + +[hostname] +ssh_only = false +ssh_symbol = '󰞉 ' + +[character] +success_symbol = "[z % ](bold green)" +error_symbol = "[z % ](bold red)" +vimcmd_symbol = "[v ! ](bold green)" + +[directory] +truncation_length = 2 +truncate_to_repo = true +read_only = " 󰌾" +style ="bold cyan" +truncation_symbol = ".../" + +[directory.substitutions] +"~/Documents" = "󰈙 " +"~/Downloads" = " " +"~/Music" = " " +"~/Pictures" = " " +"Source" = " " +"src" = " " + +[aws] +symbol = " " + +[buf] +symbol = " " + +[c] +symbol = " " + +[conda] +symbol = " " + +[crystal] +symbol = " " + +[dart] +symbol = " " + + +[docker_context] +symbol = " " + +[elixir] +symbol = " " + +[elm] +symbol = " " + +[fennel] +symbol = " " + +[fossil_branch] +symbol = " " + +[git_branch] +symbol = " " + +[git_commit] +tag_symbol = '  ' + +[golang] +symbol = " " + +[guix_shell] +symbol = " " + +[haskell] +symbol = " " + +[haxe] +symbol = " " + +[hg_branch] +symbol = " " + +[java] +symbol = " " + +[julia] +symbol = " " + +[kotlin] +symbol = " " + +[lua] +symbol = " " + +[memory_usage] +symbol = "󰍛 " + +[meson] +symbol = "󰔷 " + +[nim] +symbol = "󰆥 " + +[nix_shell] +symbol = " " + +[nodejs] +symbol = " " + +[ocaml] +symbol = " " + +[os] +disabled = false + +[os.symbols] +Alpaquita = " " +Alpine = " " +AlmaLinux = " " +Amazon = " " +Android = " " +Arch = " " +Artix = " " +CentOS = " " +Debian = " " +DragonFly = " " +Emscripten = " " +EndeavourOS = " " +Fedora = " " +FreeBSD = " " +Garuda = "󰛓 " +Gentoo = " " +HardenedBSD = "󰞌 " +Illumos = "󰈸 " +Kali = " " +Linux = " " +Mabox = " " +Macos = " " +Manjaro = " " +Mariner = " " +MidnightBSD = " " +Mint = " " +NetBSD = " " +NixOS = " " +OpenBSD = "󰈺 " +openSUSE = " " +OracleLinux = "󰌷 " +Pop = " " +Raspbian = " " +Redhat = " " +RedHatEnterprise = " " +RockyLinux = " " +Redox = "󰀘 " +Solus = "󰠳 " +SUSE = " " +Ubuntu = " " +Unknown = " " +Void = " " +Windows = "󰍲 " + +[package] +symbol = "󰏗 " + +[perl] +symbol = " " + +[php] +symbol = " " + +[pijul_channel] +symbol = " " + +[python] +symbol = " " + +[rlang] +symbol = "󰟔 " + +[ruby] +symbol = " " + +[rust] +symbol = "󱘗 " + +[scala] +symbol = " " + +[swift] +symbol = " " + +[zig] +symbol = " " + +[gradle] +symbol = " " diff --git a/.gitignore b/.gitignore index 7a08a9b..c989508 100644 --- a/.gitignore +++ b/.gitignore @@ -17,5 +17,5 @@ test.* *.tar *.zip *.tgz -WindowsTerminal.json +# WindowsTerminal.json PowerToys/ \ No newline at end of file diff --git a/desktop.ini b/desktop.ini index ba370e8..2db53c7 100644 --- a/desktop.ini +++ b/desktop.ini @@ -1,5 +1,5 @@ [.ShellClassInfo] -IconResource=C:\Windows\System32\SHELL32.dll,137 +IconResource=D:\Assets\Folder11-Ico\ico\bash.ico,0 [ViewState] Mode= Vid= diff --git a/powershell/Keymap.ps1 b/powershell/Keymap.ps1 index f11c153..995d46e 100644 --- a/powershell/Keymap.ps1 +++ b/powershell/Keymap.ps1 @@ -1,9 +1,9 @@ # aka PSReadLine # PSReadLineOptions -Set-PSReadLineOption -EditMode vi # Vi Keybindings +Set-PSReadLineOption -EditMode Vi # Vi Keybindings Set-PSReadLineOption -PredictionViewStyle ListView Set-PSReadLineOption -PredictionSource HistoryAndPlugin -Set-PSReadLineOption -ContinuationPrompt "`e[36m CR > " +# Set-PSReadLineOption -ContinuationPrompt "`e[36m CR > " # Use Starship instead # PSReadLineKeyHandlers ## Colemak hnei Set-PSReadLineKeyHandler -Chord "n" -Function NextHistory -ViMode Command diff --git a/powershell/Navigation.ps1 b/powershell/Navigation.ps1 index 67e9f19..149cc31 100644 --- a/powershell/Navigation.ps1 +++ b/powershell/Navigation.ps1 @@ -10,4 +10,6 @@ ${function:down} = { Set-Location -Path ~/Downloads } ${function:dt} = { Set-Location -Path ~/Desktop } ${function:mytmp} = { Set-Location -Path ~/Temp } ${function:one} = { Set-Location -Path ~/OneDrive } -${function:doku} = { Set-Location -Path ~/doku && Get-ChildItem } \ No newline at end of file +${function:doku} = { Set-Location -Path ~/doku && Get-ChildItem } + +Invoke-Expression (& { (zoxide init powershell | Out-String) }) \ No newline at end of file diff --git a/powershell/Prompt.ps1 b/powershell/Prompt.ps1 index 62f79c0..2933558 100644 --- a/powershell/Prompt.ps1 +++ b/powershell/Prompt.ps1 @@ -1,86 +1,92 @@ -$promptTime = $true -# $promptWeather = $false +# Use starship to set prompt +$ENV:STARSHIP_CONFIG = "$DOTFILES/.config/starship/starship_pwsh.toml" -function prompt { - $prompt = "`e[35m" - # Time - if ($promptTime) { - $promptTime = Get-Date -Format HH:mm - $prompt += "`[$promptTime]" - } - # UserInfo - $prompt += " $Env:Username @ $Env:Userdomain" - # Directory - $promptCurrentDirectory = $(PWD).Path - $promptCurrentDirectory = $promptCurrentDirectory.Replace("$HOME", "~") - $prompt += "`e[0m in `e[33m$promptCurrentDirectory " - # Git - if ($(git rev-parse --is-inside-work-tree 2> $null) -eq "true") { - $prompt += "`e[32m`u{e702} $(git branch --show-current)" - } - # Conda - if ( $Env:CONDA_PROMPT_MODIFIER ) { - $promptConda = $Env:CONDA_PROMPT_MODIFIER.Replace("`(","").Replace(")","") - $pythonVersion = $(python --version).Split(" ")[1] - $prompt += " `e[33m`u{e73c} $promptConda $pythonVersion" - } - # Programming Language (by Get-ChildItem) - ## Python - if (Test-Path -Path "$PWD\pyproject.toml") { - $pythonVersion = $(python --version).Split(" ")[1] - $prompt += " `e[33m`u{e73c} $pythonVersion" - } - ## Node.js - if (Test-Path -Path "$PWD\package.json") { - $nodeVersion = $(node --version) - $prompt += " `e[32m`u{e3a0} $nodeVersion" - # Locked - if (Test-Path -Path "$PWD\yarn.lock" || Test-Path -Path "$PWD\package-lock.json") { - $prompt += "`u{f023}" - } - } - ## .NET - ### C Sharp - if (Test-Path -Path "$PWD\*.csproj") { - $dotnetVersion = $(dotnet --version) - $prompt += " `e[34m`u{e648} $dotnetVersion" - } - ### F Sharp - if (Test-Path -Path "$PWD\*.fsproj") { - $dotnetVersion = $(dotnet --version) - $prompt += " `e[35m`u{e65a} $dotnetVersion" - } - ## Rust - if (Test-Path -Path "$PWD\Cargo.toml") { - $rustVersion = $(cargo --version).Split(" ")[1] - $prompt += " `e[31m`u{e7a8} $rustVersion" - } - ## Java - if (Test-Path -Path "$PWD\pom.xml" || Test-Path -Path "$PWD\build.gradle") { - $javaVersion = $(java --version).Split(" ")[1] - $prompt += " `e[31m`u{e738} $javaVersion" - } - ## Makefile - if (Test-Path -Path "$PWD\Makefile") { - $prompt += " `e[32m`u{e673}" - } - if (Test-Path -Path "$PWD\CMakeLists.txt") { - $prompt += " `e[32m `u{e61d}" - } - # Docker - if (Test-Path -Path "$PWD\Dockerfile" || Test-Path -Path "$PWD\docker-compose.yml") { - $prompt += " `e[33m`u{f21f}" - } - # Weather - # if ( $global:promptWeather ) { - # $prompt += $(Write-WeatherCurrent -City "Edinburgh" -Country "UK" -Unit "metric" -Inline -Apikey $Env:WEATHER_API_KEY) - # } - # Error on last command - ## TODO: Seems does not work - if ($?) { - $prompt += "`n`e[32m PS > `e[0m" - } else { - $prompt += "`n`e[31m PS > `e[0m" - } - return $prompt -} \ No newline at end of file +Invoke-Expression (&starship init powershell) + +# Below is the backup of original prompt function +# $promptTime = $true +# # $promptWeather = $false + +# function prompt { +# $prompt = "`e[35m" +# # Time +# if ($promptTime) { +# $promptTime = Get-Date -Format HH:mm +# $prompt += "`[$promptTime]" +# } +# # UserInfo +# $prompt += " $Env:Username @ $Env:Userdomain" +# # Directory +# $promptCurrentDirectory = $(PWD).Path +# $promptCurrentDirectory = $promptCurrentDirectory.Replace("$HOME", "~") +# $prompt += "`e[0m in `e[33m$promptCurrentDirectory " +# # Git +# if ($(git rev-parse --is-inside-work-tree 2> $null) -eq "true") { +# $prompt += "`e[32m`u{e702} $(git branch --show-current)" +# } +# # Conda +# if ( $Env:CONDA_PROMPT_MODIFIER ) { +# $promptConda = $Env:CONDA_PROMPT_MODIFIER.Replace("`(","").Replace(")","") +# $pythonVersion = $(python --version).Split(" ")[1] +# $prompt += " `e[33m`u{e73c} $promptConda $pythonVersion" +# } +# # Programming Language (by Get-ChildItem) +# ## Python +# if (Test-Path -Path "$PWD\pyproject.toml") { +# $pythonVersion = $(python --version).Split(" ")[1] +# $prompt += " `e[33m`u{e73c} $pythonVersion" +# } +# ## Node.js +# if (Test-Path -Path "$PWD\package.json") { +# $nodeVersion = $(node --version) +# $prompt += " `e[32m`u{e3a0} $nodeVersion" +# # Locked +# if (Test-Path -Path "$PWD\yarn.lock" || Test-Path -Path "$PWD\package-lock.json") { +# $prompt += "`u{f023}" +# } +# } +# ## .NET +# ### C Sharp +# if (Test-Path -Path "$PWD\*.csproj") { +# $dotnetVersion = $(dotnet --version) +# $prompt += " `e[34m`u{e648} $dotnetVersion" +# } +# ### F Sharp +# if (Test-Path -Path "$PWD\*.fsproj") { +# $dotnetVersion = $(dotnet --version) +# $prompt += " `e[35m`u{e65a} $dotnetVersion" +# } +# ## Rust +# if (Test-Path -Path "$PWD\Cargo.toml") { +# $rustVersion = $(cargo --version).Split(" ")[1] +# $prompt += " `e[31m`u{e7a8} $rustVersion" +# } +# ## Java +# if (Test-Path -Path "$PWD\pom.xml" || Test-Path -Path "$PWD\build.gradle") { +# $javaVersion = $(java --version).Split(" ")[1] +# $prompt += " `e[31m`u{e738} $javaVersion" +# } +# ## Makefile +# if (Test-Path -Path "$PWD\Makefile") { +# $prompt += " `e[32m`u{e673}" +# } +# if (Test-Path -Path "$PWD\CMakeLists.txt") { +# $prompt += " `e[32m `u{e61d}" +# } +# # Docker +# if (Test-Path -Path "$PWD\Dockerfile" || Test-Path -Path "$PWD\docker-compose.yml") { +# $prompt += " `e[33m`u{f21f}" +# } +# # Weather +# # if ( $global:promptWeather ) { +# # $prompt += $(Write-WeatherCurrent -City "Edinburgh" -Country "UK" -Unit "metric" -Inline -Apikey $Env:WEATHER_API_KEY) +# # } +# # Error on last command +# ## TODO: Seems does not work +# if ($?) { +# $prompt += "`n`e[32m PS > `e[0m" +# } else { +# $prompt += "`n`e[31m PS > `e[0m" +# } +# return $prompt +# } \ No newline at end of file diff --git a/powershell/readme.md b/powershell/readme.md new file mode 100644 index 0000000..ec682bd --- /dev/null +++ b/powershell/readme.md @@ -0,0 +1,23 @@ +# PowerShell Profile + +This is the cross-platform PowerShell profile for PowerShell Core + +```text +. +├── Aliases.ps1 +├── Keymap.ps1 # keymaps, optimize for Vi-Mode and Colemak +├── Modules.ps1 +├── Navigation.ps1 +├── Prompt.ps1 +├── readme.md +└── Scripts.ps1 + +1 directory, 7 files +``` + +| Keymap | Action | Mode | +| --- | --- | --- | +| `^a` | To Beginning of Line | All | +| `^e` | To End of Line | All | +| `^[` | To Normal Mode | Insert | + diff --git a/win/WindowsTerminal.json b/win/WindowsTerminal.json new file mode 100644 index 0000000..83acada --- /dev/null +++ b/win/WindowsTerminal.json @@ -0,0 +1,359 @@ +{ + "$help": "https://aka.ms/terminal-documentation", + "$schema": "https://aka.ms/terminal-profiles-schema", + "actions": + [ + { + "command": + { + "action": "copy", + "singleLine": false + }, + "id": "User.copy.644BA8F2", + "keys": "ctrl+c" + }, + { + "command": "paste", + "id": "User.paste", + "keys": "ctrl+v" + }, + { + "command": "find", + "id": "User.find", + "keys": "ctrl+shift+f" + }, + { + "command": + { + "action": "splitPane", + "split": "auto", + "splitMode": "duplicate" + }, + "id": "User.splitPane.A6751878", + "keys": "alt+shift+d" + } + ], + "alwaysShowNotificationIcon": true, + "copyFormatting": "none", + "copyOnSelect": false, + "defaultInputScope": "alphanumericHalfWidth", + "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", + "focusFollowMouse": false, + "language": "zh-Hans", + "minimizeToNotificationArea": false, + "newTabMenu": + [ + { + "type": "remainingProfiles" + } + ], + "profiles": + { + "defaults": + { + "adjustIndistinguishableColors": "always", + "antialiasingMode": "cleartype", + "autoMarkPrompts": true, + "backgroundImageOpacity": 0.3, + "colorScheme": "Catppuccin Mocha", + "compatibility.reloadEnvironmentVariables": false, + "experimental.retroTerminalEffect": false, + "font": + { + "colorGlyphs": true, + "face": "CaskaydiaCove Nerd Font", + "features": + { + "rlig": 1 + } + }, + "opacity": 40, + "scrollbarState": "visible", + "showMarksOnScrollbar": true, + "useAcrylic": true + }, + "list": + [ + { + "colorScheme": "Catppuccin Frappe", + "commandline": "\"C:\\Program Files\\WindowsApps\\Microsoft.PowerShell_7.4.6.0_x64__8wekyb3d8bbwe\\pwsh.exe\"", + "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", + "hidden": false, + "name": "PowerShell", + "opacity": 50, + "source": "Windows.Terminal.PowershellCore", + "tabTitle": "PS" + }, + { + "colorScheme": "Tokyo Night", + "commandline": "C:\\WINDOWS\\system32\\wsl.exe -d Arch", + "guid": "{a5a97cb8-8961-5535-816d-772efe0c6a3f}", + "hidden": false, + "icon": "D:\\Assets\\Icons\\arch.png", + "name": "Arch", + "source": "Windows.Terminal.Wsl" + }, + { + "colorScheme": "Catppuccin Macchiato", + "commandline": "\"C:\\Program Files\\WindowsApps\\Microsoft.PowerShell_7.4.6.0_x64__8wekyb3d8bbwe\\pwsh.exe\"", + "elevate": true, + "guid": "{ed7f021f-014d-4ca8-b3f2-811f745950db}", + "hidden": false, + "icon": "ms-appx:///ProfileIcons/pwsh.png", + "name": "Admin", + "opacity": 100, + "startingDirectory": "%USERPROFILE%", + "tabTitle": "Root" + }, + { + "colorScheme": "Ubuntu-ColorScheme", + "commandline": "C:\\WINDOWS\\system32\\wsl.exe -d Ubuntu-22.04", + "font": + { + "face": "CaskaydiaCove Nerd Font" + }, + "guid": "{c1061641-0172-4aec-b52d-dfc2b991553a}", + "hidden": false, + "icon": "D:\\Assets\\Icons\\ubuntu.png", + "name": "Ubuntu", + "startingDirectory": "~" + }, + { + "guid": "{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}", + "hidden": false, + "name": "Git Bash", + "source": "Git" + }, + { + "colorScheme": "Solarized Light", + "commandline": "\"C:\\Program Files\\WindowsApps\\Microsoft.PowerShell_7.4.6.0_x64__8wekyb3d8bbwe\\pwsh.exe\"", + "guid": "{39030c99-17fd-4feb-913f-c149a2826247}", + "hidden": false, + "icon": "ms-appx:///ProfileIcons/pwsh.png", + "name": "Light", + "opacity": 100, + "startingDirectory": "%USERPROFILE%", + "tabTitle": "PS", + "useAcrylic": true + } + ] + }, + "schemes": + [ + { + "background": "#303446", + "black": "#51576D", + "blue": "#8CAAEE", + "brightBlack": "#626880", + "brightBlue": "#8CAAEE", + "brightCyan": "#81C8BE", + "brightGreen": "#A6D189", + "brightPurple": "#F4B8E4", + "brightRed": "#E78284", + "brightWhite": "#A5ADCE", + "brightYellow": "#E5C890", + "cursorColor": "#F2D5CF", + "cyan": "#81C8BE", + "foreground": "#C6D0F5", + "green": "#A6D189", + "name": "Catppuccin Frappe", + "purple": "#F4B8E4", + "red": "#E78284", + "selectionBackground": "#626880", + "white": "#B5BFE2", + "yellow": "#E5C890" + }, + { + "background": "#EFF1F5", + "black": "#5C5F77", + "blue": "#1E66F5", + "brightBlack": "#ACB0BE", + "brightBlue": "#1E66F5", + "brightCyan": "#179299", + "brightGreen": "#40A02B", + "brightPurple": "#EA76CB", + "brightRed": "#D20F39", + "brightWhite": "#BCC0CC", + "brightYellow": "#DF8E1D", + "cursorColor": "#DC8A78", + "cyan": "#179299", + "foreground": "#4C4F69", + "green": "#40A02B", + "name": "Catppuccin Latte", + "purple": "#EA76CB", + "red": "#D20F39", + "selectionBackground": "#ACB0BE", + "white": "#ACB0BE", + "yellow": "#DF8E1D" + }, + { + "background": "#24273A", + "black": "#494D64", + "blue": "#8AADF4", + "brightBlack": "#5B6078", + "brightBlue": "#8AADF4", + "brightCyan": "#8BD5CA", + "brightGreen": "#A6DA95", + "brightPurple": "#F5BDE6", + "brightRed": "#ED8796", + "brightWhite": "#A5ADCB", + "brightYellow": "#EED49F", + "cursorColor": "#F4DBD6", + "cyan": "#8BD5CA", + "foreground": "#CAD3F5", + "green": "#A6DA95", + "name": "Catppuccin Macchiato", + "purple": "#F5BDE6", + "red": "#ED8796", + "selectionBackground": "#5B6078", + "white": "#B8C0E0", + "yellow": "#EED49F" + }, + { + "background": "#1E1E2E", + "black": "#45475A", + "blue": "#89B4FA", + "brightBlack": "#585B70", + "brightBlue": "#89B4FA", + "brightCyan": "#94E2D5", + "brightGreen": "#A6E3A1", + "brightPurple": "#F5C2E7", + "brightRed": "#F38BA8", + "brightWhite": "#A6ADC8", + "brightYellow": "#F9E2AF", + "cursorColor": "#F5E0DC", + "cyan": "#94E2D5", + "foreground": "#CDD6F4", + "green": "#A6E3A1", + "name": "Catppuccin Mocha", + "purple": "#F5C2E7", + "red": "#F38BA8", + "selectionBackground": "#585B70", + "white": "#BAC2DE", + "yellow": "#F9E2AF" + }, + { + "background": "#1A1B2C", + "black": "#414868", + "blue": "#7AA2F7", + "brightBlack": "#414868", + "brightBlue": "#7AA2F7", + "brightCyan": "#7DCFFF", + "brightGreen": "#73DACA", + "brightPurple": "#BB9AF7", + "brightRed": "#F7768E", + "brightWhite": "#C0CAF5", + "brightYellow": "#E0AF68", + "cursorColor": "#C0CAF5", + "cyan": "#7DCFFF", + "foreground": "#A9B1DC", + "green": "#73DACA", + "name": "Tokyo Night", + "purple": "#BB9AF7", + "red": "#F7768E", + "selectionBackground": "#28344A", + "white": "#C0CAF5", + "yellow": "#E0AF68" + } + ], + "showTabsInTitlebar": true, + "startOnUserLogin": true, + "tabWidthMode": "titleLength", + "theme": "Catppuccin Macchiato", + "themes": + [ + { + "name": "Catppuccin Frappe", + "tab": + { + "background": "#303446FF", + "iconStyle": "default", + "showCloseButton": "always", + "unfocusedBackground": null + }, + "tabRow": + { + "background": "#292C3CFF", + "unfocusedBackground": "#232634FF" + }, + "window": + { + "applicationTheme": "dark", + "experimental.rainbowFrame": false, + "frame": null, + "unfocusedFrame": null, + "useMica": false + } + }, + { + "name": "Catppuccin Latte", + "tab": + { + "background": "#EFF1F5FF", + "iconStyle": "default", + "showCloseButton": "always", + "unfocusedBackground": null + }, + "tabRow": + { + "background": "#E6E9EFFF", + "unfocusedBackground": "#DCE0E8FF" + }, + "window": + { + "applicationTheme": "light", + "experimental.rainbowFrame": false, + "frame": null, + "unfocusedFrame": null, + "useMica": false + } + }, + { + "name": "Catppuccin Macchiato", + "tab": + { + "background": "#24273AFF", + "iconStyle": "default", + "showCloseButton": "always", + "unfocusedBackground": null + }, + "tabRow": + { + "background": "#1E2030FF", + "unfocusedBackground": "#181926FF" + }, + "window": + { + "applicationTheme": "dark", + "experimental.rainbowFrame": false, + "frame": null, + "unfocusedFrame": null, + "useMica": false + } + }, + { + "name": "Catppuccin Mocha", + "tab": + { + "background": "#1E1E2EFF", + "iconStyle": "default", + "showCloseButton": "always", + "unfocusedBackground": null + }, + "tabRow": + { + "background": "#181825FF", + "unfocusedBackground": "#11111BFF" + }, + "window": + { + "applicationTheme": "dark", + "experimental.rainbowFrame": false, + "frame": null, + "unfocusedFrame": null, + "useMica": false + } + } + ], + "useAcrylicInTabRow": true +} \ No newline at end of file diff --git a/win/readme.md b/win/readme.md index 7f2740a..f53bfb0 100644 --- a/win/readme.md +++ b/win/readme.md @@ -1 +1,50 @@ -# Windows dotfiles \ No newline at end of file +# Windows dotfiles + +By following the Windows Directory Standard, assign the following directories corresponding to `$XDG_CONFIG` in Unix: + +- `%APPDATA%` - `$XDG_CONFIG_HOME` (default: `%USERPROFILE%\AppData\Roaming`) + + +## PowerShell Profile + +This is the *[PowerShell Core](https://github.com/PowerShell/PowerShell)* profile, not the legacy *Windows PowerShell* profile. + +By default, PowerShell profile is stored in `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1`. + +It is convenient to use `$PROFILE` to locate the profile file. + +```pwsh +Test-Path $PROFILE +``` + +To link the profile file: + +```pwsh +New-Item -ItemType SymbolicLink -Path $PROFILE -Target "$DOTFILES\win\Microsoft.PowerShell_profile.ps1" -Force +``` + +I use [starship](https://starship.rs/) to customize the prompt, which is located in [`.dotfiles/.config/starship/starship_pwsh.toml`](../.config/starship/starship_pwsh.toml). This prompt config is cross-platform for powershell core, since I use the promp to identify the shell. + +## `.wslconfig` - WSL Configuration + +`.wslconfig` only supports `~/.wslconfig` as the configuration path + +```pwsh +New-Item -ItemType SymbolicLink -Path "~\.wslconfig" -Target "$DOTFILES\win\.wslconfig" -Force +``` + +## Windows Terminal + +Use Hard Link to sync Windows Terminal Settings since it doesn't support symlink. + +```pwsh +New-Item -ItemType HardLink -Path "$Env:LocalAppData\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json" -Target "$DOTFILES\win\WindowsTerminal.json" -Force +``` + +## Neovide + +Neovide configuration is (only) stored in `%APPDATA%\neovide\config.toml` + +```pwsh +New-Item -ItemType SymbolicLink -Path "$Env:AppData\neovide\config.toml" -Target "$DOTFILES\win\neovide.toml" -Force +``` \ No newline at end of file diff --git a/win/setup_win.ps1 b/win/setup_win.ps1 index 1e61620..78097c5 100644 --- a/win/setup_win.ps1 +++ b/win/setup_win.ps1 @@ -57,6 +57,9 @@ scoop install main/ripgrep scoop install main/wget scoop install main/wget2 scoop install main/cmake +scoop install main/bat +scoop install main/zoxide +scoop install main/dos2unix # File Management scoop install extras/everything @@ -89,8 +92,8 @@ scoop install extras/neovide # Security -scoop install main/bitwarden-cli -scoop install extras/bitwarden +scoop bucket add keyguard https://github.com/AChep/keyguard-repo-scoop +scoop install keyguard/keyguard # PKM scoop install extras/obsidian diff --git a/zsh/navi.zsh b/zsh/navi.zsh index f19eef6..27e008f 100644 --- a/zsh/navi.zsh +++ b/zsh/navi.zsh @@ -4,4 +4,6 @@ alias ..="cd .." alias ...="cd ../.." alias ....="cd ../../.." alias .....="cd ../../../.." -alias ......="cd ../../../../.." \ No newline at end of file +alias ......="cd ../../../../.." + +eval "$(zoxide init zsh)" \ No newline at end of file diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh new file mode 100644 index 0000000..8a2de14 --- /dev/null +++ b/zsh/prompt.zsh @@ -0,0 +1 @@ +eval "$(starship init zsh)" \ No newline at end of file