Merge remote-tracking branch 'github/master'

This commit is contained in:
js0ny 2025-01-27 00:32:34 +00:00
commit 506f4fd54f
91 changed files with 13729 additions and 1331 deletions

View file

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

View file

@ -23,7 +23,7 @@ $linkDots = @{
"$BASE_COMMON\NuGet.Config" = "$Env:AppData\NuGet\NuGet.Config"
"$BASE_COMMON\obsidian.vimrc" = "$Env:UserProfile\Obsidian\.obsidian.vimrc"
"$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\nvim" = "$Env:XDG_CONFIG_HOME\nvim"
}

View file

@ -0,0 +1,43 @@
mkdir -p ~/.tmp
# Bat
mkdir -p "$(bat --config-dir)/themes"
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Latte.tmTheme
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Frappe.tmTheme
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Macchiato.tmTheme
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Mocha.tmTheme
bat cache --build
# Tmux
mkdir -p ~/.config/tmux/plugins/catppuccin:w
git clone -b v2.1.2 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
# Yazi
curl https://raw.githubusercontent.com/catppuccin/yazi/refs/heads/main/themes/mocha/catppuccin-mocha-lavender.toml -o ~/.config/yazi/theme.toml
# BTop
curl https://raw.githubusercontent.com/catppuccin/btop/refs/heads/main/themes/catppuccin_mocha.theme -o ~/.config/btop/themes/catppuccin_mocha.theme
curl https://raw.githubusercontent.com/catppuccin/btop/refs/heads/main/themes/catppuccin_latte.theme -o ~/.config/btop/themes/catppuccin_latte.theme
# Delta
curl https://raw.githubusercontent.com/catppuccin/delta/refs/heads/main/catppuccin.gitconfig -o ~/.config/git/catppuccin-delta.gitconfig
# Fzf
set -Ux FZF_DEFAULT_OPTS "\
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
--color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 \
--color=selected-bg:#45475a \
--multi"
# LsD
curl https://raw.githubusercontent.com/catppuccin/lsd/refs/heads/main/themes/catppuccin-mocha/colors.yaml -o ~/.config/lsd/colors.yaml
curl https://raw.githubusercontent.com/catppuccin/lsd/refs/heads/main/themes/catppuccin-latte/colors.yaml -o ~/.config/lsd/colors-light.yaml
# Midnight Commander
# Change or add skin=catppuccin in the [Midnight-Commander] section inside ~/.config/mc/ini OR Choose the skin inside Midnight Commander through F9>Options>Appearance and Save setup through F9>Options/Save setup
mkdir -p $HOME/.local/share/mc/skins
curl https://raw.githubusercontent.com/catppuccin/mc/refs/heads/main/catppuccin.ini -o $HOME/.local/share/mc/skins/catppuccin.ini
# PowerShell
pwsh -C 'git clone https://github.com/catppuccin/powershell.git (Join-Path $Env:PSModulePath.split(":")[0] Catppuccin)'
# Fish
mkdir -p ~/.config/fish/themes
curl https://raw.githubusercontent.com/catppuccin/fish/refs/heads/main/themes/Catppuccin%20Mocha.theme -o ~/.config/fish/themes/Catppuccin\ Mocha.theme
curl https://raw.githubusercontent.com/catppuccin/fish/refs/heads/main/themes/Catppuccin%20Latte.theme -o ~/.config/fish/themes/Catppuccin\ Latte.theme
# fcitx5
git clone https://github.com/catppuccin/fcitx5.git ~/.tmp/fcitx5
cd ~/.tmp/fcitx5
mkdir -p ~/.local/share/fcitx5/themes
cp -r ./src/* ~/.local/share/fcitx5/themes

View file

@ -0,0 +1,3 @@
Install-Module CompletionPredictor
Install-Module PSFzf
Install-Module Posh-Git

35
common/bat.config Normal file
View file

@ -0,0 +1,35 @@
# $DOTFILES/common/bat.config
# Date: 2025-01-26
# Author: js0ny
# Location;
# Unix: $XDG_CONFIG_HOME/bat/config
# Windows: %AppData%\bat\config
# Linking:
# ln -sf $DOTFILES/common/bat.config $XDG_CONFIG_HOME/bat/config
# This is `bat`s configuration file. Each line either contains a comment or
# a command-line option that you want to pass to `bat` by default. You can
# run `bat --help` to get a list of all possible configuration options.
# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
# for a list of all available themes
--theme="Catppuccin Mocha"
# Enable this to use italic text on the terminal. This is not supported on all
# terminal emulators (like tmux, by default):
#--italic-text=always
# Uncomment the following line to disable automatic paging:
#--paging=never
# Uncomment the following line if you are using less version >= 551 and want to
# enable mouse scrolling support in `bat` when running inside tmux. This might
# disable text selection, unless you press shift.
--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse"
# Syntax mappings: map a certain filename pattern to a language.
# Example 1: use the C++ syntax for Arduino .ino files
# Example 2: Use ".gitignore"-style highlighting for ".ignore" files
#--map-syntax "*.ino:C++"
#--map-syntax ".ignore:Git Ignore"

View file

@ -10,6 +10,7 @@
[user] # Modify the name and email
name = whoami
email = whoami@example.com
<<<<<<< HEAD
[alias]
cl = clone
clnh = clone --depth 1
@ -25,11 +26,20 @@
excludesfile = $XDG_CONFIG_HOME/git/ignore
quotePath = false # zh-CN: 解决中文路径问题
eol = lf
=======
[include]
path = ~/.config/git/catppuccin-delta.gitconfig
[core]
editor = nvim
pager = delta
autocrlf = input # Force End of Line in different platforms
>>>>>>> github/master
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
dark = true
<<<<<<< HEAD
[diff]
tool = nvimdiff
[difftool]
@ -48,13 +58,24 @@
ff = only
[init]
defaultBranch = master
=======
features = catppuccin-mocha
>>>>>>> github/master
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
<<<<<<< HEAD
# Force ssh
# [url "git@github.com:"]
# insteadOf = https://github.com/
[url "git@codeberg.org:"]
insteadOf = https://codeberg.org/
=======
[init]
defaultBranch = master
# [url "git@github.com:"] # Force ssh
# insteadOf = https://github.com/
>>>>>>> github/master

View file

@ -60,45 +60,37 @@ gui:
# Config relating to colors and styles.
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#color-attributes
theme:
# Border color of focused window
activeBorderColor:
- green
- '#b4befe'
- bold
# Border color of non-focused windows
inactiveBorderColor:
- default
# Border color of focused window when searching in that window
searchingActiveBorderColor:
- cyan
- bold
# Color of keybindings help text in the bottom line
- '#a6adc8'
optionsTextColor:
- blue
# Background color of selected line.
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#highlighting-the-selected-line
- '#89b4fa'
selectedLineBgColor:
- blue
- '#313244'
cherryPickedCommitBgColor:
- '#45475a'
cherryPickedCommitFgColor:
- '#b4befe'
unstagedChangesColor:
- '#f38ba8'
defaultFgColor:
- '#cdd6f4'
searchingActiveBorderColor:
- '#f9e2af'
authorColors:
'*': '#b4befe'
# Background color of selected line when view doesn't have focus.
inactiveViewSelectedLineBgColor:
- bold
# Foreground color of copied commit
cherryPickedCommitFgColor:
- blue
# Background color of copied commit
cherryPickedCommitBgColor:
- cyan
# Foreground color of marked base commit (for rebase)
markedBaseCommitFgColor:
- blue
# Background color of marked base commit (for rebase)
markedBaseCommitBgColor:
- yellow
# Color for file with unstaged changes
unstagedChangesColor:
- red
# Default text color
defaultFgColor:
- default
# Config relating to the commit length indicator
commitLength:
# If true, show an indicator of commit message length

151
common/lsd.yaml Normal file
View file

@ -0,0 +1,151 @@
# Location: $XDG_CONFIG_HOME/lsd/config.yaml
# Linking:
# ln -sf $DOTFILES/common/lsd.yaml $XDG_CONFIG_HOME/lsd/config.yaml
# == Classic ==
# This is a shorthand to override some of the options to be backwards compatible
# with `ls`. It affects the "color"->"when", "sorting"->"dir-grouping", "date"
# and "icons"->"when" options.
# Possible values: false, true
classic: false
# == Blocks ==
# This specifies the columns and their order when using the long and the tree
# layout.
# Possible values: permission, user, group, context, size, date, name, inode, links, git
blocks:
- permission
- user
- group
- size
- date
- name
# == Color ==
# This has various color options. (Will be expanded in the future.)
color:
# When to colorize the output.
# When "classic" is set, this is set to "never".
# Possible values: never, auto, always
when: auto
# How to colorize the output.
# When "classic" is set, this is set to "no-color".
# Possible values: default, custom
# When "custom" is set, lsd will look in the config directory for `colors.yaml`.
theme: custom
# == Date ==
# This specifies the date format for the date column. The freeform format
# accepts a strftime like string.
# When "classic" is set, this is set to "date".
# Possible values: date, locale, relative, '+<date_format>'
# `date_format` will be a `strftime` formatted value. e.g. `date: '+%d %b %y %X'` will give you a date like this: 17 Jun 21 20:14:55
date: date
# == Dereference ==
# Whether to dereference symbolic links.
# Possible values: false, true
dereference: false
# == Display ==
# What items to display. Do not specify this for the default behavior.
# Possible values: all, almost-all, directory-only
# display: all
# == Icons ==
icons:
# When to use icons.
# When "classic" is set, this is set to "never".
# Possible values: always, auto, never
when: auto
# Which icon theme to use.
# Possible values: fancy, unicode
theme: fancy
# Separator between icon and the name
# Default to 1 space
separator: " "
# == Ignore Globs ==
# A list of globs to ignore when listing.
ignore-globs:
- .git
# == Indicators ==
# Whether to add indicator characters to certain listed files.
# Possible values: false, true
indicators: false
# == Layout ==
# Which layout to use. "oneline" might be a bit confusing here and should be
# called "one-per-line". It might be changed in the future.
# Possible values: grid, tree, oneline
layout: grid
# == Recursion ==
recursion:
# Whether to enable recursion.
# Possible values: false, true
enabled: false
# How deep the recursion should go. This has to be a positive integer. Leave
# it unspecified for (virtually) infinite.
# depth: 3
# == Size ==
# Specifies the format of the size column.
# Possible values: default, short, bytes
size: default
# == Permission ==
# Specify the format of the permission column
# Possible value: rwx, octal, attributes (windows only), disable
# permission: rwx
# == Sorting ==
sorting:
# Specify what to sort by.
# Possible values: extension, name, time, size, version
column: name
# Whether to reverse the sorting.
# Possible values: false, true
reverse: false
# Whether to group directories together and where.
# When "classic" is set, this is set to "none".
# Possible values: first, last, none
dir-grouping: none
# == No Symlink ==
# Whether to omit showing symlink targets
# Possible values: false, true
no-symlink: false
# == Total size ==
# Whether to display the total size of directories.
# Possible values: false, true
total-size: false
# == Hyperlink ==
# Attach hyperlink to filenames
# Possible values: always, auto, never
hyperlink: never
# == Symlink arrow ==
# Specifies how the symlink arrow display, chars in both ascii and utf8
symlink-arrow:
# == Header ==
# Whether to display block headers.
# Possible values: false, true
header: false
# == Literal ==
# Whether to show quotes on filenames.
# Possible values: false, true
literal: false
# == Truncate owner ==
# How to truncate the username and group names for a file if they exceed a certain
# number of characters.
truncate-owner:
# Number of characters to keep. By default, no truncation is done (empty value).
after:
# String to be appended to a name if truncated.
marker: ""

394
common/starship.toml Normal file
View file

@ -0,0 +1,394 @@
# $DOTFILES/common/starship.toml
# Date: 2025-01-26
# Description: Use one starship config for all shells
# Location: $XDG_CONFIG_HOME/starship.toml
# Linking: ln -s $DOTFILES/common/starship.toml $XDG_CONFIG_HOME/starship.toml
"$schema" = 'https://starship.rs/config-schema.json'
palette = "catppuccin_mocha"
# {{{ format
format = """
$jobs\
$os\
$time\
[](bg:#DA627D fg:#9A348E)\
$username\
$hostname\
[](fg:#DA627D bg:#FCA17D)\
$directory\
$git_branch\
$git_status\
[](fg:#FCA17D bg:#86BBD8)\
$custom\
$c\
$cmake\
$cobol\
$daml\
$dart\
$deno\
$dotnet\
$elixir\
$elm\
$erlang\
$fennel\
$gleam\
$golang\
$guix_shell\
$haskell\
$haxe\
$helm\
$java\
$julia\
$kotlin\
$gradle\
$lua\
$nim\
$nodejs\
$ocaml\
$opa\
$perl\
$php\
$pulumi\
$purescript\
$python\
$quarto\
$raku\
$rlang\
$red\
$ruby\
$rust\
$scala\
$solidity\
$swift\
$terraform\
$typst\
$vlang\
$vagrant\
$zig\
[](fg:#86BBD8)
$character\
$shell\
[](fg:#06969A)\
"""
# }}}
# {{{ TODO
#
# $buf\
# $nix_shell\
# $conda\
# $meson\
# $spack\
# $memory_usage\
# $aws\
# $gcloud\
# $openstack\
# $azure\
# $nats\
# $direnv\
# $env_var\
# $crystal\
# $custom\
# $sudo\
# $cmd_duration\
# $line_break\
# $battery\
# $container\
# }}}
# Disable the blank line at the start of the prompt
# add_newline = false
# You can also replace your username with a neat symbol like  or disable this
# and use the os module below
# {{{ Part 1
[jobs]
style = "bg:#9A348E"
format = '[$symbol $number]($style)'
[os]
style = "bg:#9A348E"
format = '[ $symbol ]($style)'
disabled = false # Disabled by default
[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 = "󰍲 "
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
# style = "bg:#33658A"
style = "bg:#9A348E"
format = '[$time ]($style)'
# }}}
# {{{ Part 2
[username]
show_always = true
style_user = "bg:#DA627D"
style_root = "bg:#DA627D"
# style_user = "bg:#9A348E"
# style_root = "bg:#9A348E"
format = '[ $user ]($style)'
disabled = false
[hostname]
ssh_only = false
# format = '[$ssh_symbol](bold blue) [$hostname](bold red) '
style = "bg:#DA627D"
format = '[@ $hostname ]($style)'
trim_at = '.companyname.com'
disabled = false
# }}}
# {{{ Part 3
[directory]
style = "bg:#FCA17D fg:#035E82"
format = "[ $path ]($style)"
fish_style_pwd_dir_length = 1
# truncation_length = 100
truncation_length = 2
truncation_symbol = ":"
truncate_to_repo = true
# Here is how you can shorten some long paths by text replacementtruncation_symbol = ":"
# similar to mapped_locations in Oh My Posh:
[directory.substitutions]
# "Documents" = "󰈙 "
# "Downloads" = " "
# "Music" = " "
# "Pictures" = " "
# "Source" = " "
# ".dotfiles" = " "
# Keep in mind that the order matters. For example:
# "Important Documents" = " 󰈙 "
# will not be replaced, because "Documents" was already substituted before.
# So either put "Important Documents" before "Documents" or use the substituted version:
# "Important 󰈙 " = " 󰈙 "
[git_branch]
symbol = ""
style = "bg:#FCA17D fg:#035E82"
format = '[ $symbol $branch ]($style)'
[git_status]
style = "bg:#FCA17D fg:#035E82"
renamed = " "
modified = " "
staged = " "
deleted = " "
format = '[$all_status$ahead_behind ]($style)'
# }}}
# {{{ Part 4
[c]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[cmake]
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[dart]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[deno]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[dotnet]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
detect_extensions = [
"sln",
"csproj",
"fsproj",
"xproj",
"vbproj",
"cs",
"csx",
"fs",
"fsx",
]
[docker_context]
symbol = " "
style = "bg:#06969A"
format = '[ $symbol $context ]($style)'
[elixir]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[elm]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[golang]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[gradle]
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[haskell]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[java]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[julia]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[lua]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[nodejs]
symbol = ""
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[nim]
symbol = "󰆥 "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[rust]
symbol = ""
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
[scala]
symbol = " "
style = "bg:#86BBD8 fg:#794427"
format = '[ $symbol ($version) ]($style)'
# }}}
# {{{ Part 5
[shell]
style = "bg:#06969A"
format = '[ $indicator ]($style)'
fish_indicator = "󰈺 "
bash_indicator = '$ '
zsh_indicator = "% "
powershell_indicator = "PS"
cmd_indicator = "cm"
nu_indicator = "nu"
disabled = false
[character]
success_symbol = "[ ](bg:#33658A)[](fg:#33658A bg:#06969A)"
error_symbol = "[  ](fg:bold red bg:#33658A)[](fg:#33658A bg:#06969A)"
vimcmd_symbol = "[  ](fg:#32ff6c bg:#33658A)[](fg:#33658A bg:#06969A)"
vimcmd_visual_symbol = "[  ](fg:bold yellow bg:#33658A)[](fg:#33658A bg:#06969A)"
vimcmd_replace_symbol = "[  ](fg:bold purple bg:#33658A)[](fg:#33658A bg:#06969A)"
vimcmd_replace_one_symbol = "[  ](fg:bold purple bg:#33658A)[](fg:#33658A bg:#06969A)"
# success_symbol = "[ ](bg:#33658A)[](fg:#33658A bg:#06969A)"
# success_symbol = "[](fg:#86BBD8 bg:#33658A)"
format = "$symbol"
disabled = false
# }}}
# {{{ Misc
[palettes.catppuccin_mocha]
rosewater = "#f5e0dc"
flamingo = "#f2cdcd"
pink = "#f5c2e7"
mauve = "#cba6f7"
red = "#f38ba8"
maroon = "#eba0ac"
peach = "#fab387"
yellow = "#f9e2af"
green = "#a6e3a1"
teal = "#94e2d5"
sky = "#89dceb"
sapphire = "#74c7ec"
blue = "#89b4fa"
lavender = "#b4befe"
text = "#cdd6f4"
subtext1 = "#bac2de"
subtext0 = "#a6adc8"
overlay2 = "#9399b2"
overlay1 = "#7f849c"
overlay0 = "#6c7086"
surface2 = "#585b70"
surface1 = "#45475a"
surface0 = "#313244"
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"
# }}}
[custom.just]
detect_files = ["Justfile", "justfile", ".Justfile", ".justfile"]
style = "bg:#86BBD8 fg:#794427"
format = "[Just]($style)"

View file

@ -8,6 +8,11 @@
# Linking:
# ln -sf $DOTFILES/common/tmux.conf $XDG_CONFIG_HOME/tmux/tmux.conf
# Theme
# -----------------
set -g @catppuccin_flavor "mocha"
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
# Prefix
# -----------------
set-option -g prefix C-a
@ -61,17 +66,9 @@ bind ` resize-pane -Z
# Status Bar
# -----------------
set -g status-position top
set-option -g status-bg black
set-option -g status-fg white
set-option -g status-left '#[fg=green][#S] '
setw -g window-status-current-format '#[fg=colour236,bg=colour39] #I #W '
# set -g status-position top
# set -g @catppuccin_flavor "frappe"
# run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
# set -g status-right-length 100
# set -g status-left-length 100
# set -g status-left ""
# set -g status-right "#{E:@catppuccin_status_application}"
# set -ag status-right "#{E:@catppuccin_status_session}"
# set-option -g status-bg black
# set-option -g status-fg white
# set-option -g status-left '#[fg=green][#S] '
# setw -g window-status-current-format '#[fg=colour236,bg=colour39] #I #W '

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
if filereadable("/etc/vim/vimrc.local")
@ -97,6 +41,8 @@ set hlsearch
set incsearch
set ignorecase
set smartcase
set showcmd
set mouse=a " Enable mouse usage (all modes)
set number
set relativenumber
@ -104,3 +50,5 @@ set relativenumber
set laststatus=2
set showcmd
set statusline=%<%f\ %h%m%r\ %=\ [%l,%v]\ [%p%%]\ [\ %Y]\ [󱑉\ %{strftime('%H:%M:%S')}]
syntax on

View file

@ -1,24 +1,407 @@
// ~/.config/zellij/config.kdl
// ln -sf $DOTFILES/.config/zellij/config.kdl ~.config/zellij/config.kdl
// https://zellij.dev/documentation/configuration
// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true"
keybinds {
// keybinds are divided into modes
normal {
// bind instructions can include one or more keys (both keys will be bound separately)
// bind keys can include one or more actions (all actions will be performed with no sequential guarantees)
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl p" { SwitchToMode "pane"; }
bind "Alt n" { NewPane; }
bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; }
}
pane {
bind "h" "Left" { MoveFocus "Left"; }
bind "n" "Down" { MoveFocus "Down"; }
bind "e" "Up" { MoveFocus "Up"; }
bind "i" "Right" { MoveFocus "Right"; }
bind "p" { SwitchFocus; }
// uncomment this and adjust key if using copy_on_select=false
// bind "Alt c" { Copy; }
}
locked {
bind "Ctrl g" { SwitchToMode "normal"; }
bind "Ctrl g" { SwitchToMode "Normal"; }
}
resize {
bind "Ctrl n" { SwitchToMode "Normal"; }
bind "h" "Left" { Resize "Increase Left"; }
bind "n" "Down" { Resize "Increase Down"; }
bind "e" "Up" { Resize "Increase Up"; }
bind "i" "Right" { Resize "Increase Right"; }
bind "H" { Resize "Decrease Left"; }
bind "N" { Resize "Decrease Down"; }
bind "E" { Resize "Decrease Up"; }
bind "I" { Resize "Decrease Right"; }
bind "=" "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
}
pane {
bind "Ctrl p" { SwitchToMode "Normal"; }
bind "h" "Left" { MoveFocus "Left"; }
bind "i" "Right" { MoveFocus "Right"; }
bind "n" "Down" { MoveFocus "Down"; }
bind "e" "Up" { MoveFocus "Up"; }
bind "p" { SwitchFocus; }
bind "c" { NewPane; SwitchToMode "Normal"; }
bind "N" { NewPane "Down"; SwitchToMode "Normal"; }
bind "I" { NewPane "Right"; SwitchToMode "Normal"; }
bind "x" { CloseFocus; SwitchToMode "Normal"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
bind "z" { TogglePaneFrames; SwitchToMode "Normal"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }
bind "r" { SwitchToMode "RenamePane"; PaneNameInput 0;}
}
move {
bind "Ctrl h" { SwitchToMode "Normal"; }
bind "h" "Left" { MovePane "Left"; }
bind "n" "Down" { MovePane "Down"; }
bind "e" "Up" { MovePane "Up"; }
bind "i" "Right" { MovePane "Right"; }
}
tab {
bind "Ctrl t" { SwitchToMode "Normal"; }
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
bind "h" "Left" "Up" "e" { GoToPreviousTab; }
bind "i" "Right" "Down" "n" { GoToNextTab; }
bind "c" { NewTab; SwitchToMode "Normal"; }
bind "x" { CloseTab; SwitchToMode "Normal"; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
bind "b" { BreakPane; SwitchToMode "Normal"; }
bind "]" { BreakPaneRight; SwitchToMode "Normal"; }
bind "[" { BreakPaneLeft; SwitchToMode "Normal"; }
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
bind "Tab" { ToggleTab; }
}
scroll {
bind "Ctrl s" { SwitchToMode "Normal"; }
bind "r" { EditScrollback; SwitchToMode "Normal"; }
bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
bind "n" "Down" { ScrollDown; }
bind "e" "Up" { ScrollUp; }
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
// uncomment this and adjust key if using copy_on_select=false
// bind "Alt c" { Copy; }
}
search {
bind "Ctrl s" { SwitchToMode "Normal"; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
bind "n" "Down" { ScrollDown; }
bind "e" "Up" { ScrollUp; }
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
bind "k" { Search "down"; }
bind "K" { Search "up"; }
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "w" { SearchToggleOption "Wrap"; }
bind "o" { SearchToggleOption "WholeWord"; }
}
entersearch {
bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; }
bind "Enter" { SwitchToMode "Search"; }
}
renametab {
bind "Ctrl c" { SwitchToMode "Normal"; }
bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; }
}
renamepane {
bind "Ctrl c" { SwitchToMode "Normal"; }
bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; }
}
session {
bind "Ctrl o" { SwitchToMode "Normal"; }
bind "Ctrl s" { SwitchToMode "Scroll"; }
bind "d" { Detach; }
bind "w" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
};
SwitchToMode "Normal"
}
bind "c" {
LaunchOrFocusPlugin "configuration" {
floating true
move_to_focused_tab true
};
SwitchToMode "Normal"
}
bind "p" {
LaunchOrFocusPlugin "plugin-manager" {
floating true
move_to_focused_tab true
};
SwitchToMode "Normal"
}
}
tmux {
bind "[" { SwitchToMode "Scroll"; }
bind "Ctrl b" { Write 2; SwitchToMode "Normal"; }
bind "\"" { NewPane "Down"; SwitchToMode "Normal"; }
bind "%" { NewPane "Right"; SwitchToMode "Normal"; }
bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
bind "c" { NewTab; SwitchToMode "Normal"; }
bind "," { SwitchToMode "RenameTab"; }
bind "p" { GoToPreviousTab; SwitchToMode "Normal"; }
bind "n" { GoToNextTab; SwitchToMode "Normal"; }
bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; }
bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; }
bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; }
bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; }
bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; }
bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; }
bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; }
bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; }
bind "o" { FocusNextPane; }
bind "d" { Detach; }
bind "Space" { NextSwapLayout; }
bind "x" { CloseFocus; SwitchToMode "Normal"; }
}
shared_except "locked" {
bind "Ctrl g" { SwitchToMode "Locked"; }
bind "Ctrl q" { Quit; }
bind "Alt f" { ToggleFloatingPanes; }
bind "Alt n" { NewPane; }
bind "Alt i" { MoveTab "Left"; }
bind "Alt o" { MoveTab "Right"; }
bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; }
bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; }
bind "Alt j" "Alt Down" { MoveFocus "Down"; }
bind "Alt k" "Alt Up" { MoveFocus "Up"; }
bind "Alt =" "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
bind "Alt [" { PreviousSwapLayout; }
bind "Alt ]" { NextSwapLayout; }
}
shared_except "normal" "locked" {
bind "Enter" "Esc" { SwitchToMode "Normal"; }
}
shared_except "pane" "locked" {
bind "Ctrl p" { SwitchToMode "Pane"; }
}
shared_except "resize" "locked" {
bind "Ctrl n" { SwitchToMode "Resize"; }
}
shared_except "scroll" "locked" {
bind "Ctrl s" { SwitchToMode "Scroll"; }
}
shared_except "session" "locked" {
bind "Ctrl o" { SwitchToMode "Session"; }
}
shared_except "tab" "locked" {
bind "Ctrl t" { SwitchToMode "Tab"; }
}
shared_except "move" "locked" {
bind "Ctrl h" { SwitchToMode "Move"; }
}
shared_except "tmux" "locked" {
bind "Ctrl b" { SwitchToMode "Tmux"; }
}
}
// Plugin aliases - can be used to change the implementation of Zellij
// changing these requires a restart to take effect
plugins {
tab-bar location="zellij:tab-bar"
status-bar location="zellij:status-bar"
strider location="zellij:strider"
compact-bar location="zellij:compact-bar"
session-manager location="zellij:session-manager"
welcome-screen location="zellij:session-manager" {
welcome_screen true
}
filepicker location="zellij:strider" {
cwd "/"
}
configuration location="zellij:configuration"
plugin-manager location="zellij:plugin-manager"
}
// Plugins to load in the background when a new session starts
load_plugins {
// "file:/path/to/my-plugin.wasm"
// "https://example.com/my-plugin.wasm"
}
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// (Requires restart)
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Send a request for a simplified ui (without arrow fonts) to plugins
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Choose the path to override cwd that zellij will use for opening new panes
//
// default_cwd ""
// Toggle between having pane frames around the panes
// Options:
// - true (default)
// - false
//
// pane_frames true
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
// Options:
// - true (default)
// - false
//
// auto_layout true
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
// (Requires restart)
// Options:
// - true (default)
// - false
//
// session_serialization false
// Whether pane viewports are serialized along with the session, default is false
// (Requires restart)
// Options:
// - true
// - false (default)
//
// serialize_pane_viewport true
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
// (Requires restart)
//
// scrollback_lines_to_serialize 10000
// Define color themes for Zellij
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
//
// themes {
// dracula {
// fg 248 248 242
// bg 40 42 54
// red 255 85 85
// green 80 250 123
// yellow 241 250 140
// blue 98 114 164
// magenta 255 121 198
// orange 255 184 108
// cyan 139 233 253
// black 0 0 0
// white 255 255 255
// }
// }
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "default"
// The name of the default layout to load on startup
// Default: "default"
// (Requires restart)
//
// default_layout "compact"
// Choose the mode that zellij uses when starting up.
// Default: normal
//
// default_mode "locked"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// (Requires restart)
// Options:
// - true (default)
// - false
//
// mouse_mode false
// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// (Requires restart)
// Valid values: positive integers
// Default value: 10000
//
// scroll_buffer_size 10000
// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable or disable automatic copy (and clear) of selection when releasing mouse
// Default: true
//
// copy_on_select false
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
//
// scrollback_editor "/usr/bin/vim"
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// (Requires restart)
// Default: false
//
// mirror_session true
// The folder in which Zellij will look for layouts
// (Requires restart)
//
// layout_dir "/path/to/my/layout_dir"
// The folder in which Zellij will look for themes
// (Requires restart)
//
// theme_dir "/path/to/my/theme_dir"
// Enable or disable the rendering of styled and colored underlines (undercurl).
// May need to be disabled for certain unsupported terminals
// (Requires restart)
// Default: true
//
// styled_underlines false
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
// metadata info on this session)
// (Requires restart)
// Default: false
//
// disable_session_metadata true
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
// (Requires restart)
// Default: true (if the host terminal supports it)
//
// support_kitty_keyboard_protocol false

View file

@ -0,0 +1,604 @@
-- If LuaRocks is installed, make sure that packages installed through it are
-- found (e.g. lgi). If LuaRocks is not installed, do nothing.
pcall(require, "luarocks.loader")
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
-- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then
naughty.notify({
preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors,
})
end
-- Handle runtime errors after startup
do
local in_error = false
awesome.connect_signal("debug::error", function(err)
-- Make sure we don't go into an endless error loop
if in_error then
return
end
in_error = true
naughty.notify({
preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = tostring(err),
})
in_error = false
end)
end
-- }}}
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "wezterm"
editor = os.getenv("EDITOR") or "vim"
editor_cmd = terminal .. " -e " .. editor
-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"
-- Table of layouts to cover with awful.layout.inc, order matters.
awful.layout.layouts = {
awful.layout.suit.tile, -- Tile by default
awful.layout.suit.floating,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
awful.layout.suit.fair.horizontal,
awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
awful.layout.suit.corner.nw,
-- awful.layout.suit.corner.ne,
-- awful.layout.suit.corner.sw,
-- awful.layout.suit.corner.se,
}
-- }}}
-- {{{ Menu
-- Create a launcher widget and a main menu
myawesomemenu = {
{
"hotkeys",
function()
hotkeys_popup.show_help(nil, awful.screen.focused())
end,
},
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart },
{
"quit",
function()
awesome.quit()
end,
},
}
mymainmenu = awful.menu({
items = {
{ "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal },
},
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, menu = mymainmenu })
-- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
-- }}}
-- Keyboard map indicator and switcher
mykeyboardlayout = awful.widget.keyboardlayout()
-- {{{ Wibar
-- Create a textclock widget
mytextclock = wibox.widget.textclock()
-- Create a wibox for each screen and add it
local taglist_buttons = gears.table.join(
awful.button({}, 1, function(t)
t:view_only()
end),
awful.button({ modkey }, 1, function(t)
if client.focus then
client.focus:move_to_tag(t)
end
end),
awful.button({}, 3, awful.tag.viewtoggle),
awful.button({ modkey }, 3, function(t)
if client.focus then
client.focus:toggle_tag(t)
end
end),
awful.button({}, 4, function(t)
awful.tag.viewnext(t.screen)
end),
awful.button({}, 5, function(t)
awful.tag.viewprev(t.screen)
end)
)
local tasklist_buttons = gears.table.join(
awful.button({}, 1, function(c)
if c == client.focus then
c.minimized = true
else
c:emit_signal("request::activate", "tasklist", { raise = true })
end
end),
awful.button({}, 3, function()
awful.menu.client_list({ theme = { width = 250 } })
end),
awful.button({}, 4, function()
awful.client.focus.byidx(1)
end),
awful.button({}, 5, function()
awful.client.focus.byidx(-1)
end)
)
local function set_wallpaper(s)
-- Wallpaper
if beautiful.wallpaper then
local wallpaper = beautiful.wallpaper
-- If wallpaper is a function, call it with the screen
if type(wallpaper) == "function" then
wallpaper = wallpaper(s)
end
gears.wallpaper.maximized(wallpaper, s, true)
end
end
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
screen.connect_signal("property::geometry", set_wallpaper)
awful.screen.connect_for_each_screen(function(s)
-- Wallpaper
set_wallpaper(s)
-- Each screen has its own tag table.
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1])
-- Create a promptbox for each screen
s.mypromptbox = awful.widget.prompt()
-- Create an imagebox widget which will contain an icon indicating which layout we're using.
-- We need one layoutbox per screen.
s.mylayoutbox = awful.widget.layoutbox(s)
s.mylayoutbox:buttons(gears.table.join(
awful.button({}, 1, function()
awful.layout.inc(1)
end),
awful.button({}, 3, function()
awful.layout.inc(-1)
end),
awful.button({}, 4, function()
awful.layout.inc(1)
end),
awful.button({}, 5, function()
awful.layout.inc(-1)
end)
))
-- Create a taglist widget
s.mytaglist = awful.widget.taglist({
screen = s,
filter = awful.widget.taglist.filter.all,
buttons = taglist_buttons,
})
-- Create a tasklist widget
s.mytasklist = awful.widget.tasklist({
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons,
})
-- Create the wibox
s.mywibox = awful.wibar({ position = "top", screen = s })
-- Add widgets to the wibox
s.mywibox:setup({
layout = wibox.layout.align.horizontal,
{ -- Left widgets
layout = wibox.layout.fixed.horizontal,
mylauncher,
s.mytaglist,
s.mypromptbox,
},
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
mykeyboardlayout,
wibox.widget.systray(),
mytextclock,
s.mylayoutbox,
},
})
end)
-- }}}
-- {{{ Mouse bindings
root.buttons(gears.table.join(
awful.button({}, 3, function()
mymainmenu:toggle()
end),
awful.button({}, 4, awful.tag.viewnext),
awful.button({}, 5, awful.tag.viewprev)
))
-- }}}
-- {{{ Key bindings
globalkeys = gears.table.join(
awful.key({ modkey }, "s", hotkeys_popup.show_help, { description = "show help", group = "awesome" }),
awful.key({ modkey }, "Left", awful.tag.viewprev, { description = "view previous", group = "tag" }),
awful.key({ modkey }, "Right", awful.tag.viewnext, { description = "view next", group = "tag" }),
awful.key({ modkey }, "Escape", awful.tag.history.restore, { description = "go back", group = "tag" }),
awful.key({ modkey }, "n", function()
awful.client.focus.byidx(1)
end, { description = "focus next by index", group = "client" }),
awful.key({ modkey }, "e", function()
awful.client.focus.byidx(-1)
end, { description = "focus previous by index", group = "client" }),
awful.key({ modkey }, "w", function()
mymainmenu:show()
end, { description = "show main menu", group = "awesome" }),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "n", function()
awful.client.swap.byidx(1)
end, { description = "swap with next client by index", group = "client" }),
awful.key({ modkey, "Shift" }, "e", function()
awful.client.swap.byidx(-1)
end, { description = "swap with previous client by index", group = "client" }),
awful.key({ modkey, "Control" }, "n", function()
awful.screen.focus_relative(1)
end, { description = "focus the next screen", group = "screen" }),
awful.key({ modkey, "Control" }, "e", function()
awful.screen.focus_relative(-1)
end, { description = "focus the previous screen", group = "screen" }),
awful.key({ modkey }, "u", awful.client.urgent.jumpto, { description = "jump to urgent client", group = "client" }),
awful.key({ modkey }, "Tab", function()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end, { description = "go back", group = "client" }),
-- Standard program
awful.key({ modkey }, "Return", function()
awful.spawn(terminal)
end, { description = "open a terminal", group = "launcher" }),
awful.key({ modkey, "Control" }, "r", awesome.restart, { description = "reload awesome", group = "awesome" }),
awful.key({ modkey, "Shift" }, "q", awesome.quit, { description = "quit awesome", group = "awesome" }),
awful.key({ modkey }, "i", function()
awful.tag.incmwfact(0.05)
end, { description = "increase master width factor", group = "layout" }),
awful.key({ modkey }, "h", function()
awful.tag.incmwfact(-0.05)
end, { description = "decrease master width factor", group = "layout" }),
awful.key({ modkey, "Shift" }, "h", function()
awful.tag.incnmaster(1, nil, true)
end, { description = "increase the number of master clients", group = "layout" }),
awful.key({ modkey, "Shift" }, "i", function()
awful.tag.incnmaster(-1, nil, true)
end, { description = "decrease the number of master clients", group = "layout" }),
awful.key({ modkey, "Control" }, "h", function()
awful.tag.incncol(1, nil, true)
end, { description = "increase the number of columns", group = "layout" }),
awful.key({ modkey, "Control" }, "i", function()
awful.tag.incncol(-1, nil, true)
end, { description = "decrease the number of columns", group = "layout" }),
awful.key({ modkey }, "space", function()
awful.spawn.with_shell("albert show")
end, { description = "select next", group = "layout" }),
awful.key({ modkey, "Shift" }, "space", function()
awful.layout.inc(-1)
end, { description = "select previous", group = "layout" }),
awful.key({ modkey, "Control" }, "k", function()
local c = awful.client.restore()
-- Focus restored client
if c then
c:emit_signal("request::activate", "key.unminimize", { raise = true })
end
end, { description = "restore minimized", group = "client" }),
-- Prompt
awful.key({ modkey }, "r", function()
awful.screen.focused().mypromptbox:run()
end, { description = "run prompt", group = "launcher" }),
awful.key({ modkey }, "x", function()
awful.prompt.run({
prompt = "Run Lua code: ",
textbox = awful.screen.focused().mypromptbox.widget,
exe_callback = awful.util.eval,
history_path = awful.util.get_cache_dir() .. "/history_eval",
})
end, { description = "lua execute prompt", group = "awesome" }),
-- Menubar
awful.key({ modkey }, "p", function()
menubar.show()
end, { description = "show the menubar", group = "launcher" })
)
clientkeys = gears.table.join(
awful.key({ modkey }, "f", function(c)
c.fullscreen = not c.fullscreen
c:raise()
end, { description = "toggle fullscreen", group = "client" }),
awful.key({ modkey, "Shift" }, "c", function(c)
c:kill()
end, { description = "close", group = "client" }),
awful.key(
{ modkey, "Control" },
"space",
awful.client.floating.toggle,
{ description = "toggle floating", group = "client" }
),
awful.key({ modkey, "Control" }, "Return", function(c)
c:swap(awful.client.getmaster())
end, { description = "move to master", group = "client" }),
awful.key({ modkey }, "o", function(c)
c:move_to_screen()
end, { description = "move to screen", group = "client" }),
awful.key({ modkey }, "t", function(c)
c.ontop = not c.ontop
end, { description = "toggle keep on top", group = "client" }),
awful.key({ modkey }, "k", function(c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.
c.minimized = true
end, { description = "minimize", group = "client" }),
awful.key({ modkey }, "m", function(c)
c.maximized = not c.maximized
c:raise()
end, { description = "(un)maximize", group = "client" }),
awful.key({ modkey, "Control" }, "m", function(c)
c.maximized_vertical = not c.maximized_vertical
c:raise()
end, { description = "(un)maximize vertically", group = "client" }),
awful.key({ modkey, "Shift" }, "m", function(c)
c.maximized_horizontal = not c.maximized_horizontal
c:raise()
end, { description = "(un)maximize horizontally", group = "client" })
)
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it work on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, 9 do
globalkeys = gears.table.join(
globalkeys,
-- View tag only.
awful.key({ modkey }, "#" .. i + 9, function()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
tag:view_only()
end
end, { description = "view tag #" .. i, group = "tag" }),
-- Toggle tag display.
awful.key({ modkey, "Control" }, "#" .. i + 9, function()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
awful.tag.viewtoggle(tag)
end
end, { description = "toggle tag #" .. i, group = "tag" }),
-- Move client to tag.
awful.key({ modkey, "Shift" }, "#" .. i + 9, function()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:move_to_tag(tag)
end
end
end, { description = "move focused client to tag #" .. i, group = "tag" }),
-- Toggle tag on focused client.
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:toggle_tag(tag)
end
end
end, { description = "toggle focused client on tag #" .. i, group = "tag" })
)
end
clientbuttons = gears.table.join(
awful.button({}, 1, function(c)
c:emit_signal("request::activate", "mouse_click", { raise = true })
end),
awful.button({ modkey }, 1, function(c)
c:emit_signal("request::activate", "mouse_click", { raise = true })
awful.mouse.client.move(c)
end),
awful.button({ modkey }, 3, function(c)
c:emit_signal("request::activate", "mouse_click", { raise = true })
awful.mouse.client.resize(c)
end)
)
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Rules
-- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = {
-- All clients will match this rule.
{
rule = {},
properties = {
border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = awful.client.focus.filter,
raise = true,
keys = clientkeys,
buttons = clientbuttons,
screen = awful.screen.preferred,
placement = awful.placement.no_overlap + awful.placement.no_offscreen,
},
},
-- Floating clients.
{
rule_any = {
instance = {
"DTA", -- Firefox addon DownThemAll.
"copyq", -- Includes session name in class.
"pinentry",
},
class = {
"Arandr",
"Blueman-manager",
"Gpick",
"Kruler",
"MessageWin", -- kalarm.
"Sxiv",
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
"Wpa_gui",
"veromix",
"xtightvncviewer",
},
-- Note that the name property shown in xprop might be set slightly after creation of the client
-- and the name shown there might not match defined rules here.
name = {
"Event Tester", -- xev.
},
role = {
"AlarmWindow", -- Thunderbird's calendar.
"ConfigManager", -- Thunderbird's about:config.
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
},
},
properties = { floating = true },
},
-- Add titlebars to normal clients and dialogs
{ rule_any = { type = { "normal", "dialog" } }, properties = { titlebars_enabled = true } },
-- Set Firefox to always map on the tag named "2" on screen 1.
-- { rule = { class = "Firefox" },
-- properties = { screen = 1, tag = "2" } },
}
-- }}}
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function(c)
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
-- if not awesome.startup then awful.client.setslave(c) end
if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then
-- Prevent clients from being unreachable after screen count changes.
awful.placement.no_offscreen(c)
end
end)
-- Add a titlebar if titlebars_enabled is set to true in the rules.
client.connect_signal("request::titlebars", function(c)
-- buttons for the titlebar
local buttons = gears.table.join(
awful.button({}, 1, function()
c:emit_signal("request::activate", "titlebar", { raise = true })
awful.mouse.client.move(c)
end),
awful.button({}, 3, function()
c:emit_signal("request::activate", "titlebar", { raise = true })
awful.mouse.client.resize(c)
end)
)
awful.titlebar(c):setup({
{ -- Left
awful.titlebar.widget.iconwidget(c),
buttons = buttons,
layout = wibox.layout.fixed.horizontal,
},
{ -- Middle
{ -- Title
align = "center",
widget = awful.titlebar.widget.titlewidget(c),
},
buttons = buttons,
layout = wibox.layout.flex.horizontal,
},
{ -- Right
awful.titlebar.widget.floatingbutton(c),
awful.titlebar.widget.maximizedbutton(c),
awful.titlebar.widget.stickybutton(c),
awful.titlebar.widget.ontopbutton(c),
awful.titlebar.widget.closebutton(c),
layout = wibox.layout.fixed.horizontal(),
},
layout = wibox.layout.align.horizontal,
})
end)
-- Enable sloppy focus, so that focus follows mouse.
client.connect_signal("mouse::enter", function(c)
c:emit_signal("request::activate", "mouse_enter", { raise = false })
end)
client.connect_signal("focus", function(c)
c.border_color = beautiful.border_focus
end)
client.connect_signal("unfocus", function(c)
c.border_color = beautiful.border_normal
end)
-- }}}
--
autorun = true
autorunApps = {
"fcitx5",
"albert",
}
if autorun then
for app = 1, #autorunApps do
awful.spawn(autorunApps[app])
end
end
awful.spawn.with_shell("setxkbmap -option caps:escape")
awful.spawn.with_shell("feh --bg-fill ~/Pictures/Wallpaper/current.jpg")

View file

@ -0,0 +1,13 @@
# $DOTFILES/platforms/linux/chromium-flags.conf
# Date: 2025-01-25
# Author: js0ny
# Force chromium apps to use kwallet6 for password storage
# This solves the issue of chromium apps not being able to access passwords in non-plasma environments
# Location:
# ~/.config/chromium-flags.conf
# ~/.var/app/com.vivaldi.Vivaldi/config/vivaldi-flags.conf (For flatpak)
# Linking:
# ln -sf $DOTFILES/platforms/linux/chromium-flags.conf ~/.var/app/com.vivaldi.Vivaldi/config/vivaldi-flags.conf
--password-store=kwallet6
--enable-wayland-ime

View file

@ -5,8 +5,10 @@
# Location:
# ~/.config/electron-flags.conf
# ~/.config/code-flags.conf
# Linking:
# ln -sf $DOTFILES/platforms/linux/hyprland/electron-flags.conf ~/.config/
# ln -sf $DOTFILES/platforms/linux/electron-flags.conf ~/.config/electron-flags.conf
# ln -sf $DOTFILES/platforms/linux/electron-flags.conf ~/.config/code-flags.conf
# --enable-features=UseOzonePlatform
# --ozone-platform=wayland

View file

@ -0,0 +1,30 @@
# $DOTFILES/platforms/linux/etc/environment
# Date: 2025-01-25
# Author: js0ny
# Description: Environment variables that defines the applications and IME
#
# Location:
# /etc/environment
# Linking:
# cp $DOTFILES/platforms/linux/etc/environment /etc/environment
#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
#QT_QPA_PLATFORMTHEME=qt5ct
#QT_STYLE_OVERRIDE=kvantum
# Software
BROWSER="com.vivaldi.Vivaldi"
EDITOR=nvim
# IME
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
SDL_IM_MODULE=fcitx
XMODIFIFERS="@im=fcitx"
GLFW_IM_MODULE=fcitx
# Scaling
QT_SCALE_FACTOR=1.75
# 2 * 0.875 = 1.75
GDK_SCALE=2
GDK_DPI_SCALE=0.875

View file

@ -0,0 +1,78 @@
# Catppuccin Mocha (Dark)
$rosewater = rgb(f5e0dc)
$rosewaterAlpha = f5e0dc
$flamingo = rgb(f2cdcd)
$flamingoAlpha = f2cdcd
$pink = rgb(f5c2e7)
$pinkAlpha = f5c2e7
$mauve = rgb(cba6f7)
$mauveAlpha = cba6f7
$red = rgb(f38ba8)
$redAlpha = f38ba8
$maroon = rgb(eba0ac)
$maroonAlpha = eba0ac
$peach = rgb(fab387)
$peachAlpha = fab387
$yellow = rgb(f9e2af)
$yellowAlpha = f9e2af
$green = rgb(a6e3a1)
$greenAlpha = a6e3a1
$teal = rgb(94e2d5)
$tealAlpha = 94e2d5
$sky = rgb(89dceb)
$skyAlpha = 89dceb
$sapphire = rgb(74c7ec)
$sapphireAlpha = 74c7ec
$blue = rgb(89b4fa)
$blueAlpha = 89b4fa
$lavender = rgb(b4befe)
$lavenderAlpha = b4befe
$text = rgb(cdd6f4)
$textAlpha = cdd6f4
$subtext1 = rgb(bac2de)
$subtext1Alpha = bac2de
$subtext0 = rgb(a6adc8)
$subtext0Alpha = a6adc8
$overlay2 = rgb(9399b2)
$overlay2Alpha = 9399b2
$overlay1 = rgb(7f849c)
$overlay1Alpha = 7f849c
$overlay0 = rgb(6c7086)
$overlay0Alpha = 6c7086
$surface2 = rgb(585b70)
$surface2Alpha = 585b70
$surface1 = rgb(45475a)
$surface1Alpha = 45475a
$surface0 = rgb(313244)
$surface0Alpha = 313244
$base = rgb(1e1e2e)
$baseAlpha = 1e1e2e
$mantle = rgb(181825)
$mantleAlpha = 181825
$crust = rgb(11111b)
$crustAlpha = 11111b

View file

@ -6,7 +6,7 @@
# Location:
# $XDG_CONFIG_HOME/hypr/hyprland.conf
# Linking: (Link the whole `hypr` directory)
# ln -sf $DOTFILES/platforms/linux/hyprland/hypr $XDG_CONFIG_HOME/hypr
# ln -sf $DOTFILES/platforms/linux/hypr $XDG_CONFIG_HOME/hypr
# #######################################################################################
# AUTOGENERATED HYPRLAND CONFIG.
@ -14,6 +14,8 @@
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
source=~/.config/hypr/dark.conf
autogenerated = 0 # remove this line to remove the warning
# This is an example Hyprland config file.
@ -38,7 +40,11 @@ xwayland {
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto
#
# monitor=,preferred,auto,auto
# Format:
# MONITOR_NAME,RESOLUTION@REFRESH_RATE,OFFSET_XxOFFSET_Y,SCALE
monitor=DP-2,3840x2160@59,0x0,1.666667
###################
@ -48,9 +54,9 @@ monitor=,preferred,auto,auto
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = kitty
$terminal = wezterm-gui
$fileManager = dolphin
$menu = wofi --show drun
$menu = wofi
#################
@ -62,7 +68,15 @@ $menu = wofi --show drun
# exec-once = $terminal
# exec-once = nm-applet &
exec-once = waybar & hyprpaper & mako & systemctl --user start hyprpolkitagent & fcitx5
# exec-once = waybar & hyprpaper & mako & systemctl --user start hyprpolkitagent & fcitx5 & albert
exec-once = waybar &
exec-once = mako &
exec-once = hyprpaper &
exec-once = systemctl --user start hyprpolkitagent
exec-once = fcitx5 &
exec-once = wl-paste --watch cliphist store
# exec-once = QT_SCALE_FACTOR=1 albert &
#############################
@ -71,7 +85,7 @@ exec-once = waybar & hyprpaper & mako & systemctl --user start hyprpolkitagent &
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
# env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
@ -86,19 +100,22 @@ general {
gaps_in = 5
gaps_out = 20
border_size = 2
border_size = 3
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.active_border = $mauve
col.inactive_border = $overlay2
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
resize_on_border = true
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
no_border_on_floating = true
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
@ -113,7 +130,7 @@ decoration {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
color = $base
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
@ -193,7 +210,7 @@ input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_options = caps:escape
kb_rules =
follow_mouse = 1
@ -230,7 +247,9 @@ bind = $mainMod, R, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, F, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
bind = $mainMod SHIFT, V, togglefloating
bind = $mainMod, space, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, X, togglesplit, # dwindle

View file

@ -6,7 +6,7 @@
# Location:
# $XDG_CONFIG_HOME/hypr/hyprpaper.conf
# Linking: (Link the whole `hypr` directory)
# ln -sf $DOTFILES/platforms/linux/hyprland/hypr $XDG_CONFIG_HOME/hypr
# ln -sf $DOTFILES/platforms/linux/hypr $XDG_CONFIG_HOME/hypr
preload = ~/Pictures/Wallpaper/current.jpg
wallpaper = DP-2, ~/Pictures/Wallpaper/current.jpg

View file

@ -1,18 +1,9 @@
# $DOTFILES/platforms/linux/kde/dolphinrc
# Date: 2024-12-22
# Author: js0ny
# Dolphin - KDE File Explorer
# Location:
# $XDG_CONFIG_HOME/dolphinrc
# Linking:
# ln -sf $DOTFILES/platforms/linux/kde/dolphinrc $XDG_CONFIG_HOME/dolphinrc
[General]
Version=202
ViewPropsTimestamp=2024,12,10,0,19,35.931
[IconsMode]
PreviewSize=80
PreviewSize=48
[KFileDialog Settings]
Places Icons Auto-resize=false

View file

@ -0,0 +1,18 @@
# $DOTFILES/platforms/linux/kde/elisarc
# Date: 2024-12-22
# Author: js0ny
# Dolphin - KDE Music Player
# Location:
# $XDG_CONFIG_HOME/elisarc
# Linking:
# ln -sf $DOTFILES/platforms/linux/kde/elisarc $XDG_CONFIG_HOME/elisarc
[ElisaFileIndexer]
RootPath[$e]=$HOME/Music
[UiSettings]
ColorScheme=
[Views]
InitialFilesViewPath=/mnt/d/Media/Music

View file

@ -0,0 +1,25 @@
sort=-time
layer=overlay
background-color=#22222266
width=450
height=150
border-size=1
border-color=#d3e4c9
border-radius=12
icons=1
max-icon-size=64
default-timeout=5000
ignore-timeout=0
font=PingFangHK
margin=12
padding=12,20
[urgency=low]
border-color=#aaaaaa
[urgency=normal]
border-color=#cceeff
[urgency=critical]
border-color=#ff7777
default-timeout=0

View file

@ -0,0 +1,37 @@
{
"include": "~/.config/waybar/modules",
"name": "main-bar",
"id": "main-bar",
"layer": "top",
"mode": "dock",
"exclusive": true,
"passthrough": false,
"position": "top",
"output": "DP-2",
"height": 32,
"width": "",
"spacing": 6,
"margin": 0,
"margin-top": 0,
"margin-bottom": 0,
"margin-left": 0,
"margin-right": 0,
"fixed-center": true,
"ipc": true,
"modules-left": [
"custom/menu",
"hyprland/workspaces"
],
// "modules-center": [
// "hyprland/window",
// "mpd"
// ],
"modules-right": [
"tray",
"pulseaudio",
"custom/weather",
"battery",
"clock",
"custom/power"
]
}

View file

@ -0,0 +1,149 @@
// Waybar modules configuration
{
// waybar-backlight
"backlight": {
"interval": 2,
"align": 0,
"rotate": 0,
//"device": "amdgpu_bl0",
"format": "{icon} {percent}%",
"format-icons": [
"",
"",
"",
""
],
// Commands to execute on events
"on-click": "",
"on-click-middle": "",
"on-click-right": "",
"on-update": "",
"on-scroll-up": "light -A 5%",
"on-scroll-down": "light -U 5%",
"smooth-scrolling-threshold": 1
},
"hyprland/workspaces": {
"format": "{icon} {windows}",
"format-window-separator": " ",
"window-rewrite-default": "",
"window-rewrite": {
"title<.*youtube.*>": "",
"class<firefox>": "",
"class<.*wezterm>": "",
"class<kitty>": "",
"class<wofi>": "󱓞",
"class<firefox> title<.*github.*>": "",
"class<Vivaldi.*>": "󰰬",
"obsidian": "󱓩",
"foot": "",
"Cider": "",
"class<org.kde.dolphin>": "",
"code": "󰨞",
"class<.*telegram.*>": "",
"discord": "",
"neovide": "",
"class<org.kde.okular>": "",
"class<.*wechat.*>": "",
"QQ": "",
"class<Tor Browser>": "",
"Zotero": "",
"class<ticktick>": "",
"class<net.ankiweb.Anki>": "",
}
},
// waybar-battery
"battery": {
"interval": 60,
"align": 0,
"rotate": 0,
//"bat": "BAT1",
//"adapter": "ACAD",
"full-at": 100,
"design-capacity": false,
"states": {
"good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-full": "{icon} Full",
//"format-good": "",
"format-alt": "{icon} {time}",
"format-icons": [
"",
"",
"",
"",
""
],
"format-time": "{H}h {M}min",
"tooltip": true
},
// waybar-clock
"clock": {
"interval": 1,
"align": 0,
"rotate": 0,
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
"format": " {:%H:%M:%S}",
"format-alt": " {:%a %b %d, %G}"
},
// waybar-cpu
"cpu": {
"interval": 5,
"format": " {usage}%"
},
// waybar-custom
"custom/menu": {
"format": "󰣇 ",
"tooltip": false,
"on-click": "wofi"
},
"custom/power": {
"format": "⏻",
"tooltip": false,
"on-click": "wlogout"
},
// weather-custom
"custom/weather": {
"format": "{}",
"format-alt": "{alt}: {}",
"format-alt-click": "click-right",
"interval": 1800,
"return-type": "json",
"exec": "~/.config/hypr/scripts/weather.sh",
"exec-if": "ping wttr.in -c1"
},
// waybar-tray
"tray": {
"icon-size": 16,
"spacing": 10
},
"pulseaudio": {
"format": "{volume}% {icon}",
"format-bluetooth": "{volume}% {icon}",
"format-muted": "",
"format-icons": {
"alsa_output.pci-0000_00_1f.3.analog-stereo": "",
"alsa_output.pci-0000_00_1f.3.analog-stereo-muted": "",
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"phone-muted": "",
"portable": "",
"car": "",
"default": [
"",
""
]
},
"scroll-step": 1,
"on-click": "pavucontrol",
"ignored-sinks": [
"Easy Effects Sink"
]
}
}

View file

@ -0,0 +1,184 @@
/** ********** Fonts ********** **/
* {
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
font-size: 12px;
}
/** ********** Waybar Window ********** **/
window#waybar {
background-color: #1e1e2e;
color: #1e1e2e;
border-bottom: 2px solid #313244;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.5;
}
/** ********** Backlight ********** **/
#backlight {
background-color: #cba6f7;
}
/** ********** Battery ********** **/
#battery {
background-color: #f9e2af;
}
#battery.charging {
}
#battery.plugged {
}
@keyframes blink {
to {
color: #000000;
}
}
#battery.critical:not(.charging) {
background-color: #f38ba8;
color: #f38ba8;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
/** ********** Clock ********** **/
#clock {
background-color: #a6e3a1;
}
/** ********** CPU ********** **/
#cpu {
background-color: #89dceb;
}
/** ********** Memory ********** **/
#memory {
background-color: #eba0ac;
}
/** ********** Disk ********** **/
#disk {
background-color: #b4befe;
}
/** ********** Tray ********** **/
#tray {
background-color: #cdd6f4;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
}
#tray > .active {
}
/** ********** MPD ********** **/
#mpd {
background-color: #94e2d5;
}
#mpd.disconnected {
background-color: #f38ba8;
}
#mpd.stopped {
background-color: #f5c2e7;
}
#mpd.playing {
background-color: #74c7ec;
}
#mpd.paused {
}
/** ********** Pulseaudio ********** **/
#pulseaudio {
background-color: #fab387;
}
#pulseaudio.bluetooth {
background-color: #f5c2e7;
}
#pulseaudio.muted {
background-color: #313244;
color: #cdd6f4;
}
/** ********** Network ********** **/
#network {
background-color: #89b4fa;
}
#network.disconnected,#network.disabled {
background-color: #313244;
color: #cdd6f4;
}
#network.linked {
}
#network.ethernet {
}
#network.wifi {
}
/** ********** Custom ********** **/
#custom-menu, #custom-power, #custom-weather, #custom-updater {
border-radius: 4px;
margin: 6px 0px;
padding: 2px 8px;
}
#custom-menu {
background-color: #f5c2e7;
margin-left: 6px;
padding: 2px 6px;
font-size: 16px;
}
#custom-power {
background-color: #f38ba8;
margin-right: 6px;
padding: 2px 8px;
font-size: 16px;
}
#custom-updater {
background-color: #e6ed7b;
margin-right: 6px;
padding: 2px 8px;
font-size: 12px;
}
#custom-weather {
background-color: #cba6f7;
margin-right: 6px;
padding: 2px 8px;
font-size: 12px;
}
/** Common style **/
#backlight,
#battery,
#clock,
#cpu,
#disk,
#mode,
#memory,
#mpd,
#tray,
#pulseaudio,
#network {
border-radius: 4px;
margin: 6px 0px;
padding: 2px 8px;
}

View file

@ -1,14 +0,0 @@
# $DOTFILES/platforms/linux/hyprland/code-flags.conf
# Date: 2024-12-22
# Author: js0ny
# Force VSCode to use Wayland
# Location:
# ~/.config/code-flags.conf
# Linking:
# ln -sf $DOTFILES/platforms/linux/hyprland/code-flags.conf ~/.config/
# --enable-features=UseOzonePlatform
# --ozone-platform=wayland
--ozone-platform-hint=auto
--enable-wayland-ime

View file

@ -0,0 +1,50 @@
#!/usr/bin/env bash
## wlogout actions
# Ask for confirmation
cdialog () {
yad --title='Confirm?' --borders=15 --center --fixed --undecorated --button=Yes:0 --button=No:1 --text="Are you sure?" --text-align=center
}
if [[ "$1" == '--shutdown' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
systemctl poweroff
else
exit
fi
elif [[ "$1" == '--reboot' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
systemctl reboot
else
exit
fi
elif [[ "$1" == '--hibernate' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
systemctl hibernate
else
exit
fi
elif [[ "$1" == '--lock' ]]; then
~/.config/hypr/scripts/lockscreen
elif [[ "$1" == '--suspend' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
mpc -q pause
amixer set Master mute
~/.config/hypr/scripts/lockscreen
systemctl suspend
else
exit
fi
elif [[ "$1" == '--logout' ]]; then
cdialog
if [[ "$?" == 0 ]]; then
kill -9 -1
else
exit
fi
fi

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

View file

@ -0,0 +1,30 @@
{
"label" : "suspend",
"text" : "Suspend",
"action" : "~/.config/hypr/wlogout/actions --suspend",
"keybind" : "u"
}
{
"label" : "logout",
"text" : "Logout",
"action" : "~/.config/hypr/wlogout/actions --logout",
"keybind" : "e"
}
{
"label" : "lock",
"text" : "Lock",
"action" : "~/.config/hypr/wlogout/actions --lock",
"keybind" : "l"
}
{
"label" : "reboot",
"text" : "Reboot",
"action" : "~/.config/hypr/wlogout/actions --reboot",
"keybind" : "r"
}
{
"label" : "shutdown",
"text" : "Shutdown",
"action" : "~/.config/hypr/wlogout/actions --shutdown",
"keybind" : "s"
}

View file

@ -0,0 +1,52 @@
/** ********** Fonts ********** **/
* {
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
font-size: 14px;
font-weight: bold;
}
/** ********** Main Window ********** **/
window {
background-color: #1E1E2E;
}
/** ********** Buttons ********** **/
button {
background-color: #242434;
color: #FFFFFF;
border: 2px solid #282838;
border-radius: 20px;
background-repeat: no-repeat;
background-position: center;
background-size: 35%;
}
button:focus, button:active, button:hover {
background-color: #89B4FA;
outline-style: none;
}
/** ********** Icons ********** **/
#lock {
background-image: image(url("icons/lock.png"), url("/usr/share/wlogout/icons/lock.png"));
}
#logout {
background-image: image(url("icons/logout.png"), url("/usr/share/wlogout/icons/logout.png"));
}
#suspend {
background-image: image(url("icons/suspend.png"), url("/usr/share/wlogout/icons/suspend.png"));
}
#hibernate {
background-image: image(url("icons/hibernate.png"), url("/usr/share/wlogout/icons/hibernate.png"));
}
#shutdown {
background-image: image(url("icons/shutdown.png"), url("/usr/share/wlogout/icons/shutdown.png"));
}
#reboot {
background-image: image(url("icons/reboot.png"), url("/usr/share/wlogout/icons/reboot.png"));
}

View file

@ -16,6 +16,6 @@ vsync = true
wsl = false
[font]
normal = ["CaskaydiaCove Nerd Font"] # Will use the bundled Fira Code Nerd Font by default
normal = ["CaskaydiaCove Nerd Font", "霞鹜文楷等宽"] # Will use the bundled Fira Code Nerd Font by default
size = 14.0

View file

@ -0,0 +1,10 @@
#!/usr/bin/env bash
# make sure it's executable with:
# chmod +x ~/.config/sketchybar/plugins/aerospace.sh
if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
sketchybar --set $NAME background.drawing=on
else
sketchybar --set $NAME background.drawing=off
fi

View file

@ -100,3 +100,19 @@ sketchybar --set music \
##### Force all scripts to run the first time (never do this in a script) #####
sketchybar --update
sketchybar --add event aerospace_workspace_change
for sid in $(aerospace list-workspaces --all); do
sketchybar --add item space.$sid left \
--subscribe space.$sid aerospace_workspace_change \
--set space.$sid \
background.color=0x44ffffff \
background.corner_radius=5 \
background.height=20 \
background.drawing=off \
label="$sid" \
click_script="aerospace workspace $sid" \
script="$CONFIG_DIR/plugins/aerospace.sh $sid"
done

View file

@ -32,44 +32,44 @@
# # minimize window
# alt - m : yabai -m window --minimize
# # float / unfloat window and center on screen
# alt - f : yabai -m window --toggle float
# float / unfloat window and center on screen
ctrl - f : yabai -m window --toggle float
# # toggle window native fullscreen
# shift + alt - f : yabai -m window --toggle native-fullscreen
# toggle window native fullscreen
shift + ctrl - f : yabai -m window --toggle native-fullscreen
# # send window to a space
# shift + ctrl - 1 : yabai -m window --space 1
# shift + ctrl - 2 : yabai -m window --space 2
# shift + ctrl - 3 : yabai -m window --space 3
# shift + ctrl - 4 : yabai -m window --space 4
# shift + ctrl - 5 : yabai -m window --space 5
# shift + ctrl - 6 : yabai -m window --space 6
# shift + ctrl - 7 : yabai -m window --space 7
# shift + ctrl - 8 : yabai -m window --space 8
# shift + ctrl - 9 : yabai -m window --space 9
# shift + ctrl - 0 : yabai -m window --space 10
# send window to a space
shift + ctrl - 1 : yabai -m window --space 1
shift + ctrl - 2 : yabai -m window --space 2
shift + ctrl - 3 : yabai -m window --space 3
shift + ctrl - 4 : yabai -m window --space 4
shift + ctrl - 5 : yabai -m window --space 5
shift + ctrl - 6 : yabai -m window --space 6
shift + ctrl - 7 : yabai -m window --space 7
shift + ctrl - 8 : yabai -m window --space 8
shift + ctrl - 9 : yabai -m window --space 9
shift + ctrl - 0 : yabai -m window --space 10
# open terminal
ctrl - r : open -n -a "Kitty"
# moves focus between windows in the current focused display
alt - h : yabai -m window --focus west
alt - n : yabai -m window --focus south
alt - e : yabai -m window --focus north
alt - i : yabai -m window --focus east
ctrl - h : yabai -m window --focus west
ctrl - n : yabai -m window --focus south
ctrl - e : yabai -m window --focus north
ctrl - i : yabai -m window --focus east
# moves focus between spaces
alt - 1 : yabai -m space --focus 1
alt - 2 : yabai -m space --focus 2
alt - 3 : yabai -m space --focus 3
alt - 4 : yabai -m space --focus 4
alt - 5 : yabai -m space --focus 5
alt - 6 : yabai -m space --focus 6
alt - 7 : yabai -m space --focus 7
alt - 8 : yabai -m space --focus 8
alt - 9 : yabai -m space --focus 9
alt - 0 : yabai -m space --focus 10
ctrl - 1 : yabai -m space --focus 1
ctrl - 2 : yabai -m space --focus 2
ctrl - 3 : yabai -m space --focus 3
ctrl - 4 : yabai -m space --focus 4
ctrl - 5 : yabai -m space --focus 5
ctrl - 6 : yabai -m space --focus 6
ctrl - 7 : yabai -m space --focus 7
ctrl - 8 : yabai -m space --focus 8
ctrl - 9 : yabai -m space --focus 9
ctrl - 0 : yabai -m space --focus 10
# delete focused space
alt - q : yabai -m space --destroy

View file

@ -60,4 +60,11 @@ ${function:winr} = { winget uninstall $args }
${function:wins} = { winget search $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: []
# 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
# workspace when focusing the current workspace.
@ -89,7 +89,7 @@ window_effects:
enabled: false
color: "#a1a1a1"
hide_title_bar:
enabled: true
enabled: false
corner_style:
enabled: false
style: "square"

View file

@ -19,9 +19,12 @@ api.unmap('<ctrl-i>');
*/
// #endregion
// Settings
// #region Settings
settings.language = "zh-CN";
settings.showModeStatus = false;
// #endregion
// #region Helper
const {
aceVimMap,
@ -168,6 +171,17 @@ const _addSearchAlias = function (
parseResponse,
);
};
var q = (selector) => document.querySelector(selector);
var qs = (selector) => document.querySelectorAll(selector);
var mapkeyFeed = function (key, desc, target, options) {
mapkey(key, desc, function () {
api.Normal.feedkeys(target)
});
}
// #endregion
// #region Keymap
@ -240,6 +254,17 @@ forwardFactory.pull(mapLists);
vForwardFactory.pull(vMapLists);
// #endregion
// #region Omnibar
// api.cmap("<Ctrl-a>", "<Ctrl-ArrowUp>");
// api.cmap("<Ctrl-e>", "<Ctrl-ArrowDown>");
// api.cmap("<Ctrl-f>", "<ArrowRight>");
// api.cmap("<Ctrl-b>", "<ArrowLeft>");
// api.cmap("<Alt-f>", "<Ctrl-ArrowRight>");
// api.cmap("<Alt-b>", "<Ctrl-ArrowLeft>");
// api.cmap("<Ctrl-h>", "<Backspace>");
// api.cmap("<Ctrl-d>", "<Delete>");
// #endregion
// #region Search Alias
removeSearchAlias("s"); // StackOverflow
removeSearchAlias("d"); // DuckDuckGo
@ -324,41 +349,182 @@ _addSearchAlias("bl", "Bilibili", "https://search.bilibili.com/all?keyword=");
// #endregion
// #region Site-specific
// chatgpt.com
// #region chatgpt.com
const chatgptNewChat = function () {
var btn = document.querySelector(
var btn = q(
"div.no-draggable:nth-child(3) > span:nth-child(1) > button:nth-child(1)",
);
btn.click();
};
const chatgptStartStop = function () {
var btn = document.querySelector("button.h-8:nth-child(2)");
var btn = q("button.h-8:nth-child(2)");
btn.click();
};
api.unmap("t", /chatgpt.com/);
api.mapkey("tn", "New Chat", chatgptNewChat, { domain: /chatgpt.com/ });
api.mapkey("ts", "Start/Stop Generating", chatgptStartStop, {
domain: /chatgpt.com/,
});
api.mapkey("S", "Start/Stop Generating", chatgptStartStop, {
domain: /chatgpt.com/,
});
api.mapkey("an", "New Chat", chatgptNewChat, { domain: /chatgpt.com/ });
api.mapkey("as", "Start/Stop Generating", chatgptStartStop, {
mapkey(",n", "New Chat", chatgptNewChat, { domain: /chatgpt.com/ });
mapkey(",s", "Start/Stop Generating", chatgptStartStop, {
domain: /chatgpt.com/,
});
// #endregion
//api.mapkey('tm', 'Toggle Model', function () {
// var btn = document.querySelector('#radix -\: r2i\:');
// btn.click();
//}, { domain: /chatgpt.com/ });
// perplexity.ai
api.unmap("<Ctrl-i>", /perplexity.ai/); // allows to use perplexity web keybindings
api.mapkey("aB", "Add Perplexity Bookmark", function () {
// #region chat.deepseek.com
mapkey(",s", "Toggle Sidebar", function () {
var btn = qs("div.ds-icon-button");
btn[0].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",e", "Edit last input", function () {
var btn = qs("div.ds-icon-button");
btn[btn.length - 5].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",y", "Yank last oupput", function () {
var btn = qs("div.ds-icon-button");
btn[btn.length - 4].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",r", "Regenerate last output", function () {
var btn = qs("div.ds-icon-button");
btn[btn.length - 3].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",n", "New Chat", function () {
window.location.href = 'https://chat.deepseek.com/';
}, { domain: /chat.deepseek.com/ });
mapkey(",t", "Toggle Thinking (R1)", function () {
var btns = qs("div.ds-button");
btns[0].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",w", "Toggle Web Search", function () {
var btns = qs("div.ds-button");
btns[1].click();
}, { domain: /chat.deepseek.com/ });
// #endregion
// #region app.follow.is
mapkey(",t", "Toggle ", function () {
var btn = qs("button.no-drag-region")
btn[btn.length - 4].click();
}, { domain: /app.follow.is/ });
mapkey(",a", "Toggle AI Summary", function () {
var btn = qs("button.no-drag-region")
btn[btn.length - 3].click();
}, { domain: /app.follow.is/ });
mapkey(",o", "Toggle Original Website", function () {
var btn = qs("button.no-drag-region")
btn[btn.length - 4].click();
}, { domain: /app.follow.is/ });
// #endregion
// #region GitHub
// utils
const gh = {}
gh.repoLink = (owner, repo) => `https://github.com/${owner}/${repo}`;
gh.pageLink = (owner, repo) => `https://${owner}.github.io/${repo}/`;
gh.sourceLink = (owner, repo, path) => `${gh.repoLink(owner, repo)}/tree/${path}`;
gh.rawToSource = (url) => {
const ps = url.split('/').slice(3)
return gh.sourceLink(ps[0], ps[1], ps.slice(4).join('/'));
}
// github.com
mapkey(",e", "Use Web Editor", function () {
const url = new URL(window.location.href);
url.hostname = "github.dev";
window.location.href = url.href;
}, { domain: /github.com/ });
mapkey(",E", "Use Web Editor (New Page)", function () {
const url = new URL(window.location.href);
url.hostname = "github.dev";
tabOpenLink(url.href);
}, { domain: /github.com/ });
mapkey(",p", "Switch to GitHub Page", function () {
href = window.location.href;
owner = href.split("/")[3];
repo = href.split("/")[4];
window.location.href = gh.pageLink(owner, repo);
}, { domain: /github.com/ });
// github.dev
mapkey(",r", "Switch to GitHub Repo", function () {
const url = new URL(window.location.href);
url.hostname = "github.com";
window.location.href = url.href;
}, { domain: /github.dev/ });
// github.io
mapkey(",r", "Switch to GitHub Repo", function () {
const href = window.location.href;
owner = href.split("/")[2].split(".")[0];
repo = href.split("/")[3];
tabOpenLink(gh.repoLink(owner, repo));
}, { domain: /github.io/ });
mapkey(",R", "Go to GitHub Repo (New tab)", function () {
const href = window.location.href;
owner = href.split("/")[2].split(".")[0];
repo = href.split("/")[3];
tabOpenLink(gh.repoLink(owner, repo));
}, { domain: /github.io/ });
// raw.githubusercontent.com
mapkey(",r", "Switch to GitHub Repo", function () {
const url = new URL(window.location.href);
var owner, repo;
owner, repo = url.pathname.split('/').slice(1, 3)
window.location.href = gh.repoLink(owner, repo);
}, { domain: /raw.githubusercontent.com/ });
mapkey(",R", "Switch to GitHub Repo", function () {
const url = new URL(window.location.href);
var owner, repo;
owner, repo = url.pathname.split('/').slice(1, 3)
tabOpenLink(gh.repoLink(owner, repo));
}, { domain: /raw.githubusercontent.com/ });
mapkey(",s", "Open Source in GitHub", function () {
window.location.href = gh.rawToSource(window.location.href);
}, { domain: /raw.githubusercontent.com/ });
mapkey(",S", "Open Source in GitHub (New Page)", function () {
tabOpenLink(gh.rawToSource(window.location.href));
}, { domain: /raw.githubusercontent.com/ });
// #endregion GitHub
// #region perplexity.ai
/**
* 0 - 网络
* 1 - 学术
* 2 - 数学
* 3 - 写作
* 4 - 视频
* 5 - 社交
*/
const perplexityFocusOn = function (n) {
qs("span.grow button")[0].click()
setTimeout(() => { // Wait for the DOM to update
qs("div.shadow-subtle div.group\\/item")[n].click();
}, 100);
}
unmap("<Ctrl-i>", /perplexity.ai/); // allows to use perplexity web keybindings
mapkey(",b", "Add Perplexity Bookmark", function () {
// button.border:nth-child(2)
var btn = document.querySelector("button.border:nth-child(2)");
var btn = q("button.border:nth-child(2)");
btn.click();
});
}, { domain: /perplexity.ai/ });
mapkey(",w", "Toggle Writing/Web Search", function () {
perplexityFocusOn(3);
}, { domain: /perplexity.ai/ });
mapkey(",s", "Start Generating", function () {
var btns = qs("span.grow button")
btns[btns.length - 1].click();
}, { domain: /perplexity.ai/ });
mapkey(",y", "Yank Last Output", function () {
var toolbars = qs("div.mt-sm")
var last = toolbars[toolbars.length - 1]
var btns = last.querySelectorAll("button")
btns[4].click();
}, { domain: /perplexity.ai/ });
mapkey(",r", "Change model to regenerate last output", function () {
var toolbars = qs("div.mt-sm")
var last = toolbars[toolbars.length - 1]
var btns = last.querySelectorAll("button")
btns[1].click();
}, { domain: /perplexity.ai/ });
// #endregion
// #endregion
@ -476,4 +642,5 @@ addVimMapKey(
// #endregion
// #region Hints
api.Hints.setCharacters('qwfpgarstdcv')
// #endregion

View file

@ -1,2 +1,3 @@
fish_variables
completions
themes/

View file

@ -0,0 +1 @@
fish_config theme choose "Catppuccin Mocha"

View file

@ -8,6 +8,6 @@
# ln -sf $DOTFILES/tools/fish ~/.config/fish
if command -v starship > /dev/null
set -gx STARSHIP_CONFIG "~/.dotfiles/tools/starship/starship_fish.toml"
starship init fish | source
end

View file

@ -10,3 +10,4 @@ require("config.options")
require("config.plugins")
require("config.colorscheme")
require("config.keymaps")
require("config.diagnostics")

View file

@ -1,47 +1,54 @@
{
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
"LuaSnip": { "branch": "master", "commit": "2592b91577136dbb355a4708be1e60619456b7f6" },
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
"auto-session": { "branch": "main", "commit": "021b64ed7d4ac68a37be3ad28d8e1cba5bec582c" },
"betterTerm.nvim": { "branch": "main", "commit": "6f03af3a1ed4d054ecbcb0aa8266ddaf610aa657" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"catppuccin": { "branch": "main", "commit": "f67b886d65a029f12ffa298701fb8f1efd89295d" },
"bufferline.nvim": { "branch": "main", "commit": "261a72b90d6db4ed8014f7bda976bcdc9dd7ce76" },
"catppuccin": { "branch": "main", "commit": "faf15ab0201b564b6368ffa47b56feefc92ce3f4" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"code_runner.nvim": { "branch": "main", "commit": "65218f8f646fe61e506090522df357539642ae83" },
"conform.nvim": { "branch": "master", "commit": "70019124aa4f2e6838be9fbd2007f6d13b27a96d" },
"copilot.vim": { "branch": "release", "commit": "87038123804796ca7af20d1b71c3428d858a9124" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"gitsigns.nvim": { "branch": "main", "commit": "76d88f3b584e1f83b2aa51663a32cc6ee8d97eff" },
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
"friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" },
"gitsigns.nvim": { "branch": "main", "commit": "9541f5e8e24571723cb02a5c2bf078aeacc5a711" },
"grug-far.nvim": { "branch": "main", "commit": "635e69adf3a714621bd0a289314bc23c5848babb" },
"hover.nvim": { "branch": "main", "commit": "140c4d0ae9397b76baa46b87c574f5377de09309" },
"kanagawa.nvim": { "branch": "master", "commit": "988082eb00b845e4afbcaa4fd8e903da8a3ab3b9" },
"lazy.nvim": { "branch": "main", "commit": "d8f26efd456190241afd1b0f5235fe6fdba13d4a" },
"lazy.nvim": { "branch": "main", "commit": "56ead98e05bb37a4ec28930a54d836d033cf00f2" },
"lazydev.nvim": { "branch": "main", "commit": "a1b78b2ac6f978c72e76ea90ae92a94edf380cfc" },
"lazygit.nvim": { "branch": "main", "commit": "77a0d42943d8265271e6e6beaed72da54eeb17e7" },
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
"luasnip-latex-snippets.nvim": { "branch": "main", "commit": "cab134611eb755abe9ba95f5d86969f5cece448d" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "e942edf5c85b6a2ab74059ea566cac5b3e1514a4" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "8e46de9241d3997927af12196bd8faa0ed08c29a" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.pairs": { "branch": "main", "commit": "7e834c5937d95364cc1740e20d673afe2d034cdb" },
"nvim-cmp": { "branch": "main", "commit": "8c82d0bd31299dbff7f8e780f5e06d2283de9678" },
"nvim-lspconfig": { "branch": "master", "commit": "339ccc81e08793c3af9b83882a6ebd90c9cc0d3b" },
"nvim-tree.lua": { "branch": "master", "commit": "d529a99f88e0dff02e0aa275db2f595cd252a2c8" },
"nvim-treesitter": { "branch": "master", "commit": "f0c928dbe93533b7e35894a8f957f40150d1f663" },
"nvim-cmp": { "branch": "main", "commit": "ca4d3330d386e76967e53b85953c170658255ecb" },
"nvim-lspconfig": { "branch": "master", "commit": "7b0a2f6b14485bb5a237fc1328a487ff3e4a08c5" },
"nvim-surround": { "branch": "main", "commit": "ae298105122c87bbe0a36b1ad20b06d417c0433e" },
"nvim-tree.lua": { "branch": "master", "commit": "c7639482a1598f4756798df1b2d72f79fe5bb34f" },
"nvim-treesitter": { "branch": "master", "commit": "454354e5998edb448111574e58d5f5f2d6a940bd" },
"nvim-treesitter-context": { "branch": "master", "commit": "d0dd7ce5a9d0be1f28086e818e52fdc5c78975df" },
"nvim-web-devicons": { "branch": "master", "commit": "aafa5c187a15701a7299a392b907ec15d9a7075f" },
"nvim-web-devicons": { "branch": "master", "commit": "203da76ecfbb4b192cf830665b03eb651b635c94" },
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
"onedarkpro.nvim": { "branch": "main", "commit": "0feb5f55dd777352f2dddd7478dd13d050864ee3" },
"orgmode": { "branch": "master", "commit": "4e4a14a7dd613953eddacbc0f0ff1583817d7de1" },
"plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
"render-markdown.nvim": { "branch": "main", "commit": "f0eb5893556200e9f945c0f0ea3c83bbd20dd963" },
"telescope.nvim": { "branch": "master", "commit": "415af52339215926d705cccc08145f3782c4d132" },
"render-markdown.nvim": { "branch": "main", "commit": "634acd5da964c32f6947cd0c7802d7a116662665" },
"telescope.nvim": { "branch": "master", "commit": "2eca9ba22002184ac05eddbe47a7fe2d5a384dfc" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"trouble.nvim": { "branch": "main", "commit": "50481f414bd3c1a40122c1d759d7e424d5fafe84" },
"vim-floaterm": { "branch": "master", "commit": "4e28c8dd0271e10a5f55142fb6fe9b1599ee6160" },
"vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" },
"vim-just": { "branch": "main", "commit": "ed67f198e981f555c0f9e9ed5b69b4b06543a9e1" },
"vim-visual-multi-colemak-hnei": { "branch": "master", "commit": "2cc37d77590d6569d991ebd8d96ab5867eb5a47a" },
"vim-wakatime": { "branch": "master", "commit": "cf51327a9e08935569614d1cb24e779ee9f45519" },
"vimtex": { "branch": "master", "commit": "c8412f444bfaf447981242d685c40e45b1c96b82" },
"which-key.nvim": { "branch": "main", "commit": "1f8d414f61e0b05958c342df9b6a4c89ce268766" },
"vimtex": { "branch": "master", "commit": "a707d39e77cb27a6d02922f269875d1727860dcf" },
"which-key.nvim": { "branch": "main", "commit": "9b365a6428a9633e3eeb34dbef1b791511c54f70" },
"winbar.nvim": { "branch": "main", "commit": "13739fdb31be51a1000486189662596f07a59a31" },
"yanky.nvim": { "branch": "main", "commit": "f9b905994cccf3c55f41af3a0a1f4c76c844e411" }
}

View file

@ -0,0 +1,16 @@
local colors = {
bg = "#202328",
fg = "#bbc2cf",
yellow = "#ECBE7B",
cyan = "#008080",
darkblue = "#081633",
green = "#98be65",
orange = "#FF8800",
violet = "#a9a1e1",
magenta = "#c678dd",
purple = "#c678dd",
blue = "#51afef",
red = "#ec5f67",
}
return colors

View file

@ -1 +1 @@
vim.cmd.colorscheme("kanagawa")
vim.cmd.colorscheme("catppuccin-mocha")

View file

@ -0,0 +1,6 @@
local signs = require("config.icons").diagnostics
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
end

View file

@ -0,0 +1,19 @@
local M = {
diagnostics = {
Error = "",
Warning = "",
Hint = "",
Information = "",
},
lsp = "",
indent = "",
git = {
Change = "",
Add = "",
Delete = "",
Rename = "",
Branch = "",
},
}
return M

View file

@ -3,15 +3,30 @@
--- for available server and name
local M = {}
M.servers = {
"ast_grep",
"bashls", -- Bash
"clangd", -- C/C++
"cssls", -- CSS
"denols", -- Deno
-- "cmake", -- CMake
"eslint", -- JavaScript
"gopls", -- Go
"hls", -- Haskell
"html", -- HTML
"jsonls", -- JSON
"lua_ls", -- Lua
"markdown_oxide", -- Markdown
"omnisharp", -- C# & F#
"powershell_es", -- PowerShell
"pyright", -- Python
"rust_analyzer", -- Rust
"svelte", -- Svelte
"svlangserver", -- SystemVerilog
"tailwindcss", -- TailwindCSS
"taplo", -- TOML
"ts_ls", -- TypeScript
"vimls", -- vimscript
"yamlls", -- YAML
}
M.server_config = {

View file

@ -56,8 +56,8 @@ local keymaps_basic = { -- Modification of Original Keymap - Colemak
{ mode = mode_arrow, keys = "i", cmd = "l", opts = { desc = "Right", silent = true } },
{ keys = "H", cmd = ":bprevious<CR>", opts = { desc = "Previous Buffer" } },
{ keys = "I", cmd = ":bnext<CR>", opts = { desc = "Next Buffer" } },
{ keys = "N", cmd = "5k", opts = { desc = "Up 5 Lines" } },
{ keys = "E", cmd = "5j", opts = { desc = "Down 5 Lines" } },
{ keys = "N", cmd = "5j", opts = { desc = "Up 5 Lines" } },
{ keys = "E", cmd = "5e", opts = { desc = "Down 5 Lines" } },
{ keys = "Y", cmd = "y$", opts = { desc = "Yank to End of Line" } },
{ keys = "E", cmd = "5k" },
-- Text object implementation

View file

@ -44,5 +44,6 @@ end
-- which-key.nvim
require("keymaps.which")
require("keymaps.visual-multi")
return M

View file

@ -51,13 +51,32 @@ local leader_mappings = {
{ keys = "n", cmd = "<C-w>j", opts = { desc = "Down Window" } },
{ keys = "e", cmd = "<C-w>k", opts = { desc = "Up Window" } },
{ keys = "i", cmd = "<C-w>l", opts = { desc = "Right Window" } },
{ keys = "F", cmd = ":NvimTreeFindFileToggle<CR>", opts = { desc = "Toggle File Explorer" } },
{ keys = "<Tab>", cmd = "<Cmd>b#<CR>", opts = { desc = "Switch to last buffer" } },
{ keys = "!", cmd = ":FloatermToggle<CR>", opts = { desc = "" } },
{ keys = "!", cmd = ":FloatermToggle<CR>", opts = { desc = "Toggle Terminal" } },
{ keys = '"', cmd = ":!wezterm-gui &<CR>", pots = { desc = "Open External Terminal(wezterm)" } },
{ keys = ";", cmd = ":Telescope<CR>", pots = { desc = "Show Telescope Commands" } },
},
b = { -- +buffer
{ keys = "0", cmd = "<Cmd>b#<CR>", opts = { desc = "Switch to last buffer" } },
{ keys = "1", cmd = ":BufferLineGotoBuffer 1<CR>", opts = { desc = "Switch to Buffer #1" } },
{ keys = "2", cmd = ":BufferLineGotoBuffer 2<CR>", opts = { desc = "Switch to Buffer #2" } },
{ keys = "3", cmd = ":BufferLineGotoBuffer 3<CR>", opts = { desc = "Switch to Buffer #3" } },
{ keys = "4", cmd = ":BufferLineGotoBuffer 4<CR>", opts = { desc = "Switch to Buffer #4" } },
{ keys = "5", cmd = ":BufferLineGotoBuffer 5<CR>", opts = { desc = "Switch to Buffer #5" } },
{ keys = "6", cmd = ":BufferLineGotoBuffer 6<CR>", opts = { desc = "Switch to Buffer #6" } },
{ keys = "7", cmd = ":BufferLineGotoBuffer 7<CR>", opts = { desc = "Switch to Buffer #7" } },
{ keys = "8", cmd = ":BufferLineGotoBuffer 8<CR>", opts = { desc = "Switch to Buffer #8" } },
{ keys = "9", cmd = ":BufferLineGotoBuffer 9<CR>", opts = { desc = "Switch to Buffer #9" } },
{ keys = "a", cmd = ":Alpha<CR>", opts = { desc = "Dashboard" } },
{ keys = "b", cmd = ":Telescope buffers<CR>", opts = { desc = "List Buffers" } },
{ keys = "b", cmd = ":BufferLinePick<CR>", opts = { desc = "Quick Switch Buffers" } },
{ keys = "B", cmd = ":Telescope buffers<CR>", opts = { desc = "List Buffers" } },
{ keys = "d", cmd = ":bdelete<CR>", opts = { desc = "Delete Buffer" } },
{ keys = "D", cmd = ":BufferLineCloseOthers<CR>", opts = { desc = "Delete Other Buffers" } },
{ keys = "xx", cmd = ":BufferLineCloseOthers<CR>", opts = { desc = "Delete Other Buffers" } },
{ keys = "xh", cmd = ":BufferLineCloseLeft<CR>", opts = { desc = "Delete Buffers Left" } },
{ keys = "xi", cmd = ":BufferLineCloseRight<CR>", opts = { desc = "Delete Buffers Right" } },
{ keys = "X", cmd = ":BufferLineCloseOthers<CR>", opts = { desc = "Delete Other Buffers" } },
{ keys = "h", cmd = ":bprevious<CR>", opts = { desc = "Previous Buffer" } },
{ keys = "i", cmd = ":bnext<CR>", opts = { desc = "Next Buffer" } },
{ keys = "H", cmd = ":bfirst<CR>", opts = { desc = "First Buffer" } },
@ -65,7 +84,9 @@ local leader_mappings = {
{ keys = "0", cmd = ":bfirst<CR>", opts = { desc = "First Buffer" } },
{ keys = "^", cmd = ":bfirst<CR>", opts = { desc = "First Buffer" } },
{ keys = "$", cmd = ":blast<CR>", opts = { desc = "Last Buffer" } },
-- { keys = "s", cmd = ":Telescope buffers<CR>", opts = { desc = "Search buffers" } },
{ keys = "s", cmd = ":new<CR>", opts = { desc = "Scratch buffers" } },
{ keys = "t", cmd = ":BufferLineTogglePin<CR>", opts = { desc = "Pin Buffer" } },
{ keys = "y", cmd = ":%y+<CR>", opts = { desc = "Copy Buffer to Clipboard" } },
},
c = { -- +code/compile
{ keys = "r", cmd = ":RunCode<CR>", opts = { desc = "Run code" } },
@ -76,15 +97,44 @@ local leader_mappings = {
},
f = { -- +file/find
{ keys = "f", cmd = ":Telescope fd<CR>", opts = { desc = "Find Files" } },
{ keys = "s", cmd = ":Telescope live_grep<CR>", opts = { desc = "Grep Files" } },
{ keys = "F", cmd = ":GrugFar<CR>", opts = { desc = "Search & Replace" } },
{ keys = "l", cmd = ":set filetype=", opts = { desc = "Set Filetype to ..." } },
{ keys = "n", cmd = ":new<CR>", opts = { desc = "New File" } },
{ keys = "s", cmd = ":write<CR>", opts = { desc = "Save File" } },
{ keys = "S", cmd = ":wall<CR>", opts = { desc = "Save All Files" } },
{ keys = "b", cmd = ":Telescope buffers<CR>", opts = { desc = "List Buffers" } },
{ keys = "e", cmd = ":NvimTreeToggle<CR>", opts = { desc = "Toggle File Explorer" } },
{ keys = "t", cmd = ":FloatermToggle<CR>", opts = { desc = "toggle visibility of the float terminal" } },
{ keys = "D", cmd = "!trash-rm %<CR>", opts = { desc = "Delete current file" } },
{ keys = "t", cmd = ":NvimTreeFindFileToggle<CR>", opts = { desc = "Toggle File Tree" } },
{ keys = "T", cmd = ":FloatermNew<CR>", opts = { desc = "Spawn a float terminal" } },
{ keys = "h", cmd = ":Telescope oldfiles<CR>", opts = { desc = "Search history files" } },
{ keys = "c", cmd = ":Telescope find_files cwd=~/.config/nvim<CR>", opts = { desc = "Search Config" } },
{ keys = "o", cmd = ":!open %", opts = { desc = "Open file in default program" } },
{ keys = "o", cmd = ":!open %<CR>", opts = { desc = "Open file in default program" } },
{ keys = "R", cmd = renameCurrentBuffer, opts = { desc = "Rename current file" } },
{ keys = "x", cmd = ":Lazy<CR>", opts = { desc = "Open extension view" } },
{ keys = "yy", cmd = ":let @+ = expand('%:p')<CR>", opts = { desc = "Copy file path" } },
{ keys = "yY", cmd = ":let @+ = expand('%')<CR>", opts = { desc = "Copy relative file path" } },
{ keys = "yn", cmd = ":let @+ = expand('%:t')<CR>", opts = { desc = "Copy file name" } },
{ keys = "yN", cmd = ":let @+ = expand('%:t:r')<CR>", opts = { desc = "Copy file name without extension" } },
{ keys = "yd", cmd = ":let @+ = expand('%:p:h')<CR>", opts = { desc = "Copy directory path" } },
{
keys = "yl",
cmd = ":let @+ = expand('%:p') . ':' . line('.')<CR>",
opts = { desc = "Copy file path with line number" },
},
{
keys = "yL",
cmd = ":let @+ = expand('%') . ':' . line('.')<CR>",
opts = { desc = "Copy relative file path with line number" },
},
},
g = { -- +git/version control
{ keys = "g", cmd = ":LazyGit<CR>", opts = { desc = "Toggle LazyGit" } },
{ keys = "c", cmd = ":Telescope git_commits<CR>", opts = { desc = "Show commits" } },
{ keys = "b", cmd = ":Gitsigns blame<CR>", opts = { desc = "Blame file" } },
{ keys = "d", cmd = ":Gitsigns diffthis<CR>", opts = { desc = "Diff file" } },
{ keys = "B", cmd = ":Gitsigns toggle_current_line_blame<CR>", opts = { desc = "Toggle line blame" } },
{ keys = "s", cmd = ":Telescope git_status<CR>", opts = { desc = "Git Status" } },
{ keys = "t", cmd = ":Telescope git_branches<CR>", opts = { desc = "Git Branches" } },
},
p = { -- +project
{ keys = "p", cmd = ":Telescope projects<CR>", opts = { desc = "List all Projects" } },
@ -97,30 +147,35 @@ local leader_mappings = {
{ keys = "w", cmd = ":wq<CR>", opts = { desc = "Write and Quit" } },
{ keys = "W", cmd = ":wall<CR>:qa!<CR>", opts = { desc = "Write all and Force Quit" } },
},
t = { -- +toggle
t = { -- +toggle/test
{ keys = "f", cmd = ":NvimTreeToggle", opts = { desc = "Toggle File Explorer" } },
{ keys = "F", cmd = ":FormatToggle<CR>", opts = { desc = "Toggle autoformat-on-save" } },
{ keys = "t", cmd = ":FloatermToggle<CR>", opts = { desc = "toggle visibility of the float terminal" } },
},
u = { -- +ui
{ keys = "i", cmd = ":Telescope colorscheme<CR>", opts = { desc = "Change colorscheme" } },
{ keys = " ", cmd = ":set list!", opts = { desc = "Toggle show all symbols" } },
},
w = { -- +window
{ keys = "h", cmd = "<C-w>h", opts = { desc = "Left Window" } },
{ keys = "n", cmd = "<C-w>j", opts = { desc = "Down Window" } },
{ keys = "e", cmd = "<C-w>k", opts = { desc = "Up Window" } },
{ keys = "i", cmd = "<C-w>l", opts = { desc = "Right Window" } },
{ keys = "H", cmd = "<C-w>H", opts = { desc = "Move Window Left" } },
{ keys = "N", cmd = "<C-w>J", opts = { desc = "Move Window Down" } },
{ keys = "E", cmd = "<C-w>K", opts = { desc = "Move Window Up" } },
{ keys = "I", cmd = "<C-w>L", opts = { desc = "Move Window Right" } },
{ keys = "-", cmd = ":split<CR>", opts = { desc = "Split to down" } },
{ keys = "|", cmd = ":vsplit<CR>", opts = { desc = "Split to right" } },
{ keys = "c", cmd = "<C-w>c", opts = { desc = "Close Window" } },
{ keys = "o", cmd = "<C-w>o", opts = { desc = "Close Other Windows" } },
{ keys = "/", cmd = ":vsplit<CR>", opts = { desc = "Split to right" } },
{ keys = "d", cmd = "<C-w>c", opts = { desc = "Close Window" } },
{ keys = "D", cmd = "<C-w>o", opts = { desc = "Close Other Windows" } },
{ keys = "r", cmd = "<C-w>r", opts = { desc = "Rotate Windows" } },
{ keys = "R", cmd = "<C-w>R", opts = { desc = "Reverse Rotate Windows" } },
{ keys = "t", cmd = "<C-w>T", opts = { desc = "Move Window to New Tab" } },
{ keys = "H", cmd = ":vertical resize -5<CR>", opts = { desc = "Decrease Window Height" } },
{ keys = "N", cmd = ":resize +5<CR>", opts = { desc = "Increase Window Height" } },
{ keys = "E", cmd = ":vertical resize +5<CR>", opts = { desc = "Increase Window Width" } },
{ keys = "I", cmd = ":resize -5<CR>", opts = { desc = "Decrease Window Width" } },
{ keys = "]", cmd = ":resize +5<CR>", opts = { desc = "Increase Window Size" } },
{ keys = "[", cmd = ":resize -5<CR>", opts = { desc = "Decrease Window Size" } },
{ keys = "M", cmd = ":resize<CR>:vertical resize<CR>", opts = { desc = "Maximize window size" } },
},
}

View file

@ -2,7 +2,7 @@ local M = {}
M.global = {
{ mode = "n", keys = "<leader>E", cmd = ":NvimTreeToggle<CR>" },
{ mode = "n", keys = "<A-0>", cmd = ":NvimTreeFocus<CR>" },
{ mode = "n", keys = "<A-0>", cmd = ":NvimTreeFindFileToggle<CR>" },
}
function M.plugin(api, opts)

View file

@ -28,3 +28,9 @@ end, {
desc = "Toggle autoformat-on-save (use ! for buffer-local)",
bang = true,
})
vim.api.nvim_create_user_command("Reload", function()
vim.cmd("luafile ~/.config/nvim/init.lua")
end, {
desc = "Reload Neovim configuration",
})

View file

@ -0,0 +1,18 @@
vim.g.VM_mouse_mappings = 1
vim.g.VM_default_mappings = 0
vim.g.VM_custom_motions = {
-- https://github.com/mg979/vim-visual-multi/issues/93
h = "h",
n = "j",
e = "k",
i = "l",
j = "e",
}
vim.g.VM_maps = {
["Add Cursor Down"] = "<A-n>",
["Add Cursor Up"] = "<A-e>",
["i"] = "l",
["I"] = "L",
["n"] = "n",
}

View file

@ -25,4 +25,17 @@ return {
{ import = "plugins.mod.alpha-nvim" },
{ import = "plugins.mod.winbar-nvim" },
{ import = "plugins.mod.bufferline" },
{
"lewis6991/gitsigns.nvim",
config = function()
require("gitsigns").setup({
current_line_blame = true,
})
end,
},
{
"folke/todo-comments.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
opts = {},
},
}

View file

@ -0,0 +1,59 @@
return {
{
"folke/flash.nvim",
event = "VeryLazy",
---@type Flash.Config
opts = {},
-- stylua: ignore
keys = {
{ "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
{ "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },
{ "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" },
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
},
},
{
"js0ny/vim-visual-multi-colemak-hnei",
-- "mg979/vim-visual-multi",
},
{
"echasnovski/mini.pairs",
version = false,
config = function()
require("mini.pairs").setup()
end,
},
{
"kylechui/nvim-surround",
version = "*", -- Use for stability; omit to use `main` branch for the latest features
event = "VeryLazy",
config = function()
require("nvim-surround").setup({
-- Configuration here, or leave empty to use defaults
})
end,
},
{
"MagicDuck/grug-far.nvim",
opts = { headerMaxWidth = 80 },
cmd = "GrugFar",
keys = {
{
"<leader>fF",
function()
local grug = require("grug-far")
local ext = vim.bo.buftype == "" and vim.fn.expand("%:e")
grug.open({
transient = true,
prefills = {
filesFilter = ext and ext ~= "" and "*." .. ext or nil,
},
})
end,
mode = { "n", "v" },
desc = "Search and Replace",
},
},
},
}

View file

@ -47,9 +47,23 @@ return {
end,
},
{
"lewis6991/gitsigns.nvim",
config = function()
require("gitsigns").setup()
end,
"kdheepak/lazygit.nvim",
lazy = true,
cmd = {
"LazyGit",
"LazyGitConfig",
"LazyGitCurrentFile",
"LazyGitFilter",
"LazyGitFilterCurrentFile",
},
-- optional for floating window border decoration
dependencies = {
"nvim-lua/plenary.nvim",
},
-- setting the keybinding for LazyGit with 'keys' is recommended in
-- order to load the plugin when the command is run for the first time
keys = {
{ "<leader>gg", "<cmd>LazyGit<cr>", desc = "LazyGit" },
},
},
}

View file

@ -29,7 +29,7 @@ require("lazy").setup({
{ import = "plugins.completion" },
{ import = "plugins.fileutils" },
{ import = "plugins.lsp" },
{ import = "plugins.syntax" },
{ import = "plugins.edit" },
{ import = "plugins.misc" },
},
-- Configure any other settings here. See the documentation for more details.

View file

@ -41,29 +41,24 @@ return {
})
end,
},
{
"nvim-orgmode/orgmode",
event = "VeryLazy",
ft = { "org" },
config = function()
-- Setup orgmode
require("orgmode").setup({
org_agenda_files = "~/orgfiles/**/*",
org_default_notes_file = "~/orgfiles/refile.org",
})
-- NOTE: If you are using nvim-treesitter with ~ensure_installed = "all"~ option
-- add ~org~ to ignore_install
-- require('nvim-treesitter.configs').setup({
-- ensure_installed = 'all',
-- ignore_install = { 'org' },
-- })
end,
},
{ import = "plugins.mod.conform-nvim" },
{ "nvim-treesitter/nvim-treesitter-context" },
{
"NoahTheDuke/vim-just",
ft = { "just" },
},
{ import = "plugins.mod.trouble-nvim" },
{ import = "plugins.mod.nvim-treesitter" },
{
"folke/lazydev.nvim",
ft = "lua", -- only load on lua files
opts = {
library = {
-- See the configuration section for more details
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
},
}

View file

@ -4,6 +4,13 @@ return {
config = function()
require("bufferline").setup({
options = {
diagnostics = "nvim_lsp",
diagnostics_indicator = function(count, level, diagnostics_dict, context)
local icon = level:match("error") and "" or ""
return " " .. icon .. count
end,
show_buffer_icons = true,
numbers = "ordinal", -- 显示 buffer 序号
close_command = "bdelete! %d", -- 关闭 buffer 的命令
right_mouse_command = "bdelete! %d", -- 右键关闭

View file

@ -1,236 +0,0 @@
-- Author: shadmansaleh
-- Credit: glepnir
local lualine = require("lualine")
-- Color table for highlights
-- stylua: ignore
local colors = {
bg = '#202328',
fg = '#bbc2cf',
yellow = '#ECBE7B',
cyan = '#008080',
darkblue = '#081633',
green = '#98be65',
orange = '#FF8800',
violet = '#a9a1e1',
magenta = '#c678dd',
blue = '#51afef',
red = '#ec5f67',
}
local conditions = {
buffer_not_empty = function()
return vim.fn.empty(vim.fn.expand("%:t")) ~= 1
end,
hide_in_width = function()
return vim.fn.winwidth(0) > 80
end,
check_git_workspace = function()
local filepath = vim.fn.expand("%:p:h")
local gitdir = vim.fn.finddir(".git", filepath .. ";")
return gitdir and #gitdir > 0 and #gitdir < #filepath
end,
}
-- Config
local config = {
options = {
disabled_filetypes = {
statusline = { "NvimTree", "alpha" },
},
-- Disable sections and component separators
component_separators = "",
section_separators = "",
theme = {
-- We are going to use lualine_c an lualine_x as left and
-- right section. Both are highlighted by c theme . So we
-- are just setting default looks o statusline
normal = { c = { fg = colors.fg, bg = colors.bg } },
inactive = { c = { fg = colors.fg, bg = colors.bg } },
},
},
sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
-- These will be filled later
lualine_c = {},
lualine_x = {},
},
inactive_sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {},
},
}
-- Inserts a component in lualine_c at left section
local function ins_left(component)
table.insert(config.sections.lualine_c, component)
end
-- Inserts a component in lualine_x at right section
local function ins_right(component)
table.insert(config.sections.lualine_x, component)
end
ins_left({
function()
return ""
end,
color = { fg = colors.blue }, -- Sets highlighting of component
padding = { left = 0, right = 1 }, -- We don't need space before this
})
ins_left({
-- mode component
function()
return ""
end,
color = function()
-- auto change color according to neovims mode
local mode_color = {
n = colors.red,
i = colors.green,
v = colors.blue,
[""] = colors.blue,
V = colors.blue,
c = colors.magenta,
no = colors.red,
s = colors.orange,
S = colors.orange,
[""] = colors.orange,
ic = colors.yellow,
R = colors.violet,
Rv = colors.violet,
cv = colors.red,
ce = colors.red,
r = colors.cyan,
rm = colors.cyan,
["r?"] = colors.cyan,
["!"] = colors.red,
t = colors.red,
}
return { fg = mode_color[vim.fn.mode()] }
end,
padding = { right = 1 },
})
-- ins_left {
-- -- filesize component
-- 'filesize',
-- cond = conditions.buffer_not_empty,
-- }
-- ins_left {
-- 'filename',
-- cond = conditions.buffer_not_empty,
-- color = { fg = colors.magenta, gui = 'bold' },
-- }
-- ins_left { 'location' }
ins_right({ "progress", color = { fg = colors.fg, gui = "bold" } })
ins_left({
"diagnostics",
sources = { "nvim_diagnostic" },
symbols = { error = "", warn = "", info = "" },
diagnostics_color = {
error = { fg = colors.red },
warn = { fg = colors.yellow },
info = { fg = colors.cyan },
},
})
ins_left({
function()
return vim.bo.filetype
end,
color = { fg = colors.blue, gui = "bold" },
})
ins_left({
function()
return vim.bo.shiftwidth .. " space"
end,
})
ins_left({
-- Lsp server name .
function()
local msg = "No Active Lsp"
local buf_ft = vim.api.nvim_get_option_value("filetype", { buf = 0 })
local clients = vim.lsp.get_clients()
if next(clients) == nil then
return msg
end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
return client.name
end
end
return msg
end,
icon = "",
color = { fg = "#ffffff", gui = "bold" },
})
-- Insert mid section. You can make any number of sections in neovim :)
-- for lualine it's any number greater then 2
ins_left({
function()
return "%="
end,
})
-- Add components to right sections
ins_right({
"o:encoding", -- option component same as &encoding in viml
fmt = string.upper, -- I'm not sure why it's upper case either ;)
cond = conditions.hide_in_width,
color = { fg = colors.green, gui = "bold" },
})
ins_right({
"fileformat",
fmt = string.upper,
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
color = { fg = colors.green, gui = "bold" },
})
ins_right({
"branch",
icon = "",
color = { fg = colors.violet, gui = "bold" },
})
ins_right({
"diff",
-- Is it me or the symbol for modified us really weird
symbols = { added = "", modified = "󰝤 ", removed = "" },
diff_color = {
added = { fg = colors.green },
modified = { fg = colors.orange },
removed = { fg = colors.red },
},
cond = conditions.hide_in_width,
})
ins_right({
function()
return ""
end,
color = { fg = colors.blue },
padding = { left = 1 },
})
-- Now don't forget to initialize lualine
lualine.setup(config)

View file

@ -0,0 +1,168 @@
local M = {}
local colors = require("config.colors")
local icons = require("config.icons")
local function diff_source()
local gitsigns = vim.b.gitsigns_status_dict
if gitsigns then
return {
added = gitsigns.added,
modified = gitsigns.changed,
removed = gitsigns.removed,
}
end
end
local conditions = {
buffer_not_empty = function()
return vim.fn.empty(vim.fn.expand("%:t")) ~= 1
end,
hide_in_width = function()
return vim.fn.winwidth(0) > 80
end,
check_git_workspace = function()
local filepath = vim.fn.expand("%:p:h")
local gitdir = vim.fn.finddir(".git", filepath .. ";")
return gitdir and #gitdir > 0 and #gitdir < #filepath
end,
}
local mode_color = {
n = colors.blue,
i = colors.green,
v = colors.magenta,
[""] = colors.magenta,
V = colors.magenta,
c = colors.magenta,
no = colors.red,
s = colors.orange,
S = colors.orange,
[""] = colors.orange,
ic = colors.yellow,
R = colors.violet,
Rv = colors.violet,
cv = colors.red,
ce = colors.red,
r = colors.cyan,
rm = colors.cyan,
["r?"] = colors.cyan,
["!"] = colors.red,
t = colors.red,
}
local mode_color_bg = function()
return { fg = colors.bg, bg = mode_color[vim.fn.mode()] }
end
-- local mode_color_fg = function()
-- return { fg = mode_color[vim.fn.mode()] }
-- end
M.mode = {
function()
return ""
end,
color = mode_color_bg,
}
M.git = {
"branch",
icon = icons.git.Branch,
color = { fg = colors.violet, gui = "bold" },
}
M.diagnostics = {
"diagnostics",
sources = { "nvim_diagnostic" },
symbols = {
error = icons.diagnostics.Error .. " ",
warn = icons.diagnostics.Warning .. " ",
info = icons.diagnostics.Information .. " ",
hint = icons.diagnostics.Hint .. " ",
},
}
M.lsp = {
-- Lsp server name .
function()
local msg = "LSP Inactive"
local buf_ft = vim.api.nvim_get_option_value("filetype", { buf = 0 })
local clients = vim.lsp.get_clients()
if next(clients) == nil then
return msg
end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
return client.name
end
end
return msg
end,
icon = icons.lsp,
color = { fg = colors.yellow, gui = "italic" },
}
M.filetype = {
function()
return vim.bo.filetype
end,
color = { fg = colors.blue, gui = "bold" },
}
M.eol = {
function()
return vim.bo.eol == true and icons.eol or ""
end,
color = { fg = colors.red },
}
M.command = {
"command",
color = { fg = colors.green, gui = "bold" },
}
M.encoding = {
"o:encoding",
color = { fg = colors.green, gui = "bold" },
}
M.indent = {
function()
local shiftwidth = vim.api.nvim_get_option_value("shiftwidth", { buf = 0 })
return icons.indent .. " " .. shiftwidth
end,
padding = 1,
}
-- M.diff = {
-- "diff",
-- -- Is it me or the symbol for modified us really weird
-- symbols = { added = " ", modified = "󰝤 ", removed = " " },
-- diff_color = {
-- added = { fg = colors.green },
-- modified = { fg = colors.orange },
-- removed = { fg = colors.red },
-- },
-- cond = conditions.hide_in_width,
-- }
M.diff = {
"diff",
source = diff_source,
-- symbols = { added = " ", modified = "󰝤 ", removed = " " },
symbols = {
added = icons.git.Add .. " ",
modified = icons.git.Change .. " ",
removed = icons.git.Delete .. " ",
},
padding = { left = 2, right = 1 },
diff_color = {
added = { fg = colors.green },
modified = { fg = colors.yellow },
removed = { fg = colors.red },
},
cond = nil,
}
M.progress = { "progress", color = mode_color_bg }
return M

View file

@ -0,0 +1,73 @@
local lualine = require("lualine")
-- Color table for highlights
local colors = require("config.colors")
local components = require("plugins.mod.lualine.components")
-- Config
local config = {
options = {
disabled_filetypes = {
statusline = { "NvimTree", "alpha" },
},
-- Disable sections and component separators
component_separators = "",
section_separators = "",
theme = {
-- We are going to use lualine_c an lualine_x as left and
-- right section. Both are highlighted by c theme . So we
-- are just setting default looks o statusline
normal = { c = { fg = colors.fg, bg = colors.bg } },
inactive = { c = { fg = colors.fg, bg = colors.bg } },
},
},
sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
-- These will be filled later
lualine_c = {},
lualine_x = {},
},
inactive_sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {},
},
}
-- Inserts a component in lualine_c at left section
local function ins_left(component)
table.insert(config.sections.lualine_c, component)
end
-- Inserts a component in lualine_x at right section
local function ins_right(component)
table.insert(config.sections.lualine_x, component)
end
--[[
VSCode Style:
Remote | Git Branch | Diagnostics | Command | | MID | | Line:Column | Indent | Encoding | EOL | File Type LSP | Notifications
--]]
ins_left(components.mode)
ins_left(components.diff)
ins_left(components.git)
ins_left(components.diagnostics)
ins_left(components.command)
ins_right(components.indent)
ins_right(components.encoding)
ins_right(components.eol)
ins_right(components.filetype)
ins_right(components.lsp)
ins_right(components.progress)
lualine.setup(config)

View file

@ -43,6 +43,7 @@ return {
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "copilot" },
{ name = "lazydev", group_index = 0 },
}, {
{ name = "buffer" },
{ name = "path" },

View file

@ -0,0 +1,37 @@
return {
"folke/trouble.nvim",
opts = {}, -- for default options, refer to the configuration section for custom setup.
cmd = "Trouble",
keys = {
{
"<leader>eE",
"<cmd>Trouble diagnostics toggle<cr>",
desc = "Diagnostics (Trouble)",
},
{
"<leader>ee",
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
desc = "Buffer Diagnostics (Trouble)",
},
{
"<leader>es",
"<cmd>Trouble symbols toggle focus=false<cr>",
desc = "Symbols (Trouble)",
},
{
"<leader>el",
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
desc = "LSP Definitions / references / ... (Trouble)",
},
{
"<leader>eL",
"<cmd>Trouble loclist toggle<cr>",
desc = "Location List (Trouble)",
},
{
"<leader>ef",
"<cmd>Trouble qflist toggle<cr>",
desc = "Quickfix List (Trouble)",
},
},
}

View file

@ -7,7 +7,7 @@ return {
show_file_path = true,
show_symbols = true,
colors = {
path = "#9c1d91",
path = "",
file_name = "",
symbols = "",
},
@ -31,6 +31,7 @@ return {
"spectre_panel",
"toggleterm",
"qf",
"floaterm",
},
})
end,

View file

@ -1,10 +0,0 @@
return {
{ import = "plugins.mod.nvim-treesitter" },
{
"echasnovski/mini.pairs",
version = false,
config = function()
require("mini.pairs").setup()
end,
},
}

View file

@ -1,4 +0,0 @@
(((
This is a playground file.
{(1 + 2) * 3}
)))

View file

@ -13,8 +13,11 @@ function Invoke-Completion {
}
'git' { Import-Module Posh-Git }
'hugo' { hugo completion powershell | Out-String | Invoke-Expression }
'just' { just --completions 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 }
'rustup' { rustup completions powershell rustup | 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 }
'winget' {
@ -36,7 +39,12 @@ Set-Alias "icmp" "Invoke-Completion"
Register-ArgumentCompleter -CommandName Invoke-Completion -ParameterName 'command' -ScriptBlock {
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*" }
}
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+n" -Function NextHistory
## Use <Tab> to Invoke MenuComplete
Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete

View file

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

View file

@ -2,6 +2,50 @@
# Date: 2024-12-01
# Author: js0ny
# Use starship to set prompt
$ENV:STARSHIP_CONFIG = Join-Path $DOTFILES "tools" "starship" "starship_pwsh.toml"
Invoke-Expression (&starship init powershell)
Import-Module Catppuccin
$Flavor = $Catppuccin['Mocha']
# The following colors are used by PowerShell's formatting
# Again PS 7.2+ only
$PSStyle.Formatting.Debug = $Flavor.Sky.Foreground()
$PSStyle.Formatting.Error = $Flavor.Red.Foreground()
$PSStyle.Formatting.ErrorAccent = $Flavor.Blue.Foreground()
$PSStyle.Formatting.FormatAccent = $Flavor.Teal.Foreground()
$PSStyle.Formatting.TableHeader = $Flavor.Rosewater.Foreground()
$PSStyle.Formatting.Verbose = $Flavor.Yellow.Foreground()
$PSStyle.Formatting.Warning = $Flavor.Peach.Foreground()
$Colors = @{
# Largely based on the Code Editor style guide
# Emphasis, ListPrediction and ListPredictionSelected are inspired by the Catppuccin fzf theme
# Powershell colours
Emphasis = $Flavor.Red.Foreground()
Selection = $Flavor.Surface0.Background()
# PSReadLine prediction colours
InlinePrediction = $Flavor.Overlay0.Foreground()
ListPrediction = $Flavor.Mauve.Foreground()
ListPredictionSelected = $Flavor.Surface0.Background()
# Syntax highlighting
Command = $Flavor.Blue.Foreground()
Comment = $Flavor.Overlay0.Foreground()
Default = $Flavor.Text.Foreground()
Error = $Flavor.Red.Foreground()
Keyword = $Flavor.Mauve.Foreground()
Member = $Flavor.Rosewater.Foreground()
Number = $Flavor.Peach.Foreground()
Operator = $Flavor.Sky.Foreground()
Parameter = $Flavor.Pink.Foreground()
String = $Flavor.Green.Foreground()
Type = $Flavor.Yellow.Foreground()
Variable = $Flavor.Lavender.Foreground()
}
# Set the colours
Set-PSReadLineOption -Colors $Colors

View file

@ -1,144 +0,0 @@
format = """
[](#9A348E)\
$os\
$username\
[](bg:#DA627D fg:#9A348E)\
$directory\
[](fg:#DA627D bg:#FCA17D)\
$git_branch\
$git_status\
[](fg:#FCA17D bg:#86BBD8)\
$c\
$elixir\
$elm\
$golang\
$gradle\
$haskell\
$java\
$julia\
$nodejs\
$nim\
$rust\
$scala\
[](fg:#86BBD8 bg:#06969A)\
$docker_context\
[](fg:#06969A bg:#33658A)\
$time\
[ ](fg:#33658A)\
"""
# Disable the blank line at the start of the prompt
# add_newline = false
# You can also replace your username with a neat symbol like  or disable this
# and use the os module below
[username]
show_always = true
style_user = "bg:#9A348E"
style_root = "bg:#9A348E"
format = '[$user ]($style)'
disabled = false
# An alternative to the username module which displays a symbol that
# represents the current operating system
[os]
style = "bg:#9A348E"
disabled = true # Disabled by default
[directory]
style = "bg:#DA627D"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
# Here is how you can shorten some long paths by text replacement
# similar to mapped_locations in Oh My Posh:
[directory.substitutions]
"Documents" = "󰈙 "
"Downloads" = " "
"Music" = " "
"Pictures" = " "
# Keep in mind that the order matters. For example:
# "Important Documents" = " 󰈙 "
# will not be replaced, because "Documents" was already substituted before.
# So either put "Important Documents" before "Documents" or use the substituted version:
# "Important 󰈙 " = " 󰈙 "
[c]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[docker_context]
symbol = " "
style = "bg:#06969A"
format = '[ $symbol $context ]($style)'
[elixir]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[elm]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[git_branch]
symbol = ""
style = "bg:#FCA17D"
format = '[ $symbol $branch ]($style)'
[git_status]
style = "bg:#FCA17D"
format = '[$all_status$ahead_behind ]($style)'
[golang]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[gradle]
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[haskell]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[java]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[julia]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[nodejs]
symbol = ""
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[nim]
symbol = "󰆥 "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[rust]
symbol = ""
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[scala]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#33658A"
format = '[ ♥ $time ]($style)'

View file

@ -1,210 +0,0 @@
# 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 = '󰞉 '
# Currently vimcmd_symbol is not supported in Nu, define in `config.nu` instead
[character]
success_symbol = ""
error_symbol = ""
vimcmd_symbol = ""
[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 = " "

View file

@ -1,208 +0,0 @@
# 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 = " "

View file

@ -1,209 +0,0 @@
# 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 = ":"
fish_style_pwd_dir_length = 1
[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 = " "

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 gpt editor.action.peekTypeDefinition
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>/ workbench.action.quickTextSearch

View file

@ -4,6 +4,9 @@
" And go to vscode vim setting:
"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>
noremap <space> vspacecode.space
@ -34,18 +37,8 @@ noremap J E
" Y to yank to end of line
noremap Y y$
" Define in settings.json, since this will remap <esc> under visual mode
" noremap <esc> :nohlsearch<CR>
nnoremap <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
noremap gi editor.action.goToImplementation
@ -55,3 +48,17 @@ noremap gpd editor.action.peekDefinition
noremap gt editor.action.goToTypeDefinition
noremap gpt editor.action.peekTypeDefinition
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

View file

@ -65,9 +65,9 @@ local os_type = detect_os()
config.max_fps = 120
config.font = wezterm.font({
family = "CaskaydiaCove Nerd Font",
family = "JetBrainsMono Nerd Font",
})
config.color_scheme = "Catppuccin Frappe"
config.color_scheme = "Catppuccin Mocha"
config.font_size = 12.0
config.front_end = "WebGpu"
config.webgpu_power_preference = "HighPerformance"
@ -209,8 +209,7 @@ config.mouse_bindings = {
--#endregion
--#region Environment
config.set_environment_variables = {
}
config.set_environment_variables = {}
--#endregion
--#region Launching
@ -251,7 +250,7 @@ if os_type == "Windows" then
},
}
elseif os_type == "macOS" then
config.default_prog = { "/opt/homebrew/bin/fish", "-l"}
config.default_prog = { "/opt/homebrew/bin/fish", "-l" }
else
config.default_prog = { "fish" }
config.launch_menu = {

View file

@ -0,0 +1,750 @@
[manager]
cwd = { fg = "#94e2d5" }
hovered = { fg = "#1e1e2e", bg = "#b4befe" }
preview_hovered = { fg = "#1e1e2e", bg = "#cdd6f4" }
find_keyword = { fg = "#f9e2af", italic = true }
find_position = { fg = "#f5c2e7", bg = "reset", italic = true }
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
marker_selected = { fg = "#b4befe", bg = "#b4befe" }
tab_active = { fg = "#1e1e2e", bg = "#cdd6f4" }
tab_inactive = { fg = "#cdd6f4", bg = "#45475a" }
tab_width = 1
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
count_selected = { fg = "#1e1e2e", bg = "#b4befe" }
border_symbol = "│"
border_style = { fg = "#7f849c" }
syntect_theme = "~/.config/yazi/Catppuccin-mocha.tmTheme"
[mode]
normal_main = { fg = "#1e1e2e", bg = "#b4befe", bold = true }
normal_alt = { fg = "#b4befe", bg = "#313244"}
select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
select_alt = { fg = "#a6e3a1", bg = "#313244"}
unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
unset_alt = { fg = "#f2cdcd", bg = "#313244"}
[status]
separator_open = ""
separator_close = ""
progress_label = { fg = "#ffffff", bold = true }
progress_normal = { fg = "#89b4fa", bg = "#45475a" }
progress_error = { fg = "#f38ba8", bg = "#45475a" }
perm_type = { fg = "#89b4fa" }
perm_read = { fg = "#f9e2af" }
perm_write = { fg = "#f38ba8" }
perm_exec = { fg = "#a6e3a1" }
perm_sep = { fg = "#7f849c" }
[input]
border = { fg = "#b4befe" }
title = {}
value = {}
selected = { reversed = true }
[pick]
border = { fg = "#b4befe" }
active = { fg = "#f5c2e7" }
inactive = {}
[confirm]
border = { fg = "#b4befe" }
title = { fg = "#b4befe" }
content = {}
list = {}
btn_yes = { reversed = true }
btn_no = {}
[completion]
border = { fg = "#b4befe" }
[tasks]
border = { fg = "#b4befe" }
title = {}
hovered = { underline = true }
[which]
mask = { bg = "#313244" }
cand = { fg = "#94e2d5" }
rest = { fg = "#9399b2" }
desc = { fg = "#f5c2e7" }
separator = "  "
separator_style = { fg = "#585b70" }
[help]
on = { fg = "#94e2d5" }
run = { fg = "#f5c2e7" }
desc = { fg = "#9399b2" }
hovered = { bg = "#585b70", bold = true }
footer = { fg = "#cdd6f4", bg = "#45475a" }
[notify]
title_info = { fg = "#94e2d5" }
title_warn = { fg = "#f9e2af" }
title_error = { fg = "#f38ba8" }
[filetype]
rules = [
# Media
{ mime = "image/*", fg = "#94e2d5" },
{ mime = "{audio,video}/*", fg = "#f9e2af" },
# Archives
{ mime = "application/*zip", fg = "#f5c2e7" },
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f5c2e7" },
# Documents
{ mime = "application/{pdf,doc,rtf}", fg = "#a6e3a1" },
# Fallback
{ name = "*", fg = "#cdd6f4" },
{ name = "*/", fg = "#b4befe" }
]
[icon]
files = [
{ name = "kritadisplayrc", text = "", fg = "#cba6f7" },
{ name = ".gtkrc-2.0", text = "", fg = "#f5e0dc" },
{ name = "bspwmrc", text = "", fg = "#313244" },
{ name = "webpack", text = "󰜫", fg = "#74c7ec" },
{ name = "tsconfig.json", text = "", fg = "#74c7ec" },
{ name = ".vimrc", text = "", fg = "#a6e3a1" },
{ name = "gemfile$", text = "", fg = "#313244" },
{ name = "xmobarrc", text = "", fg = "#f38ba8" },
{ name = "avif", text = "", fg = "#7f849c" },
{ name = "fp-info-cache", text = "", fg = "#f5e0dc" },
{ name = ".zshrc", text = "", fg = "#a6e3a1" },
{ name = "robots.txt", text = "󰚩", fg = "#6c7086" },
{ name = "dockerfile", text = "󰡨", fg = "#89b4fa" },
{ name = ".git-blame-ignore-revs", text = "", fg = "#fab387" },
{ name = ".nvmrc", text = "", fg = "#a6e3a1" },
{ name = "hyprpaper.conf", text = "", fg = "#74c7ec" },
{ name = ".prettierignore", text = "", fg = "#89b4fa" },
{ name = "rakefile", text = "", fg = "#313244" },
{ name = "code_of_conduct", text = "", fg = "#f38ba8" },
{ name = "cmakelists.txt", text = "", fg = "#cdd6f4" },
{ name = ".env", text = "", fg = "#f9e2af" },
{ name = "copying.lesser", text = "", fg = "#f9e2af" },
{ name = "readme", text = "󰂺", fg = "#f5e0dc" },
{ name = "settings.gradle", text = "", fg = "#585b70" },
{ name = "gruntfile.coffee", text = "", fg = "#fab387" },
{ name = ".eslintignore", text = "", fg = "#585b70" },
{ name = "kalgebrarc", text = "", fg = "#89b4fa" },
{ name = "kdenliverc", text = "", fg = "#89b4fa" },
{ name = ".prettierrc.cjs", text = "", fg = "#89b4fa" },
{ name = "cantorrc", text = "", fg = "#89b4fa" },
{ name = "rmd", text = "", fg = "#74c7ec" },
{ name = "vagrantfile$", text = "", fg = "#6c7086" },
{ name = ".Xauthority", text = "", fg = "#fab387" },
{ name = "prettier.config.ts", text = "", fg = "#89b4fa" },
{ name = "node_modules", text = "", fg = "#f38ba8" },
{ name = ".prettierrc.toml", text = "", fg = "#89b4fa" },
{ name = "build.zig.zon", text = "", fg = "#fab387" },
{ name = ".ds_store", text = "", fg = "#45475a" },
{ name = "PKGBUILD", text = "", fg = "#89b4fa" },
{ name = ".prettierrc", text = "", fg = "#89b4fa" },
{ name = ".bash_profile", text = "", fg = "#a6e3a1" },
{ name = ".npmignore", text = "", fg = "#f38ba8" },
{ name = ".mailmap", text = "󰊢", fg = "#fab387" },
{ name = ".codespellrc", text = "󰓆", fg = "#a6e3a1" },
{ name = "svelte.config.js", text = "", fg = "#fab387" },
{ name = "eslint.config.ts", text = "", fg = "#585b70" },
{ name = "config", text = "", fg = "#7f849c" },
{ name = ".gitlab-ci.yml", text = "", fg = "#fab387" },
{ name = ".gitconfig", text = "", fg = "#fab387" },
{ name = "_gvimrc", text = "", fg = "#a6e3a1" },
{ name = ".xinitrc", text = "", fg = "#fab387" },
{ name = "checkhealth", text = "󰓙", fg = "#89b4fa" },
{ name = "sxhkdrc", text = "", fg = "#313244" },
{ name = ".bashrc", text = "", fg = "#a6e3a1" },
{ name = "tailwind.config.mjs", text = "󱏿", fg = "#74c7ec" },
{ name = "ext_typoscript_setup.txt", text = "", fg = "#fab387" },
{ name = "commitlint.config.ts", text = "󰜘", fg = "#94e2d5" },
{ name = "py.typed", text = "", fg = "#f9e2af" },
{ name = ".nanorc", text = "", fg = "#313244" },
{ name = "commit_editmsg", text = "", fg = "#fab387" },
{ name = ".luaurc", text = "", fg = "#89b4fa" },
{ name = "fp-lib-table", text = "", fg = "#f5e0dc" },
{ name = ".editorconfig", text = "", fg = "#f5e0dc" },
{ name = "justfile", text = "", fg = "#7f849c" },
{ name = "kdeglobals", text = "", fg = "#89b4fa" },
{ name = "license.md", text = "", fg = "#f9e2af" },
{ name = ".clang-format", text = "", fg = "#7f849c" },
{ name = "docker-compose.yaml", text = "󰡨", fg = "#89b4fa" },
{ name = "copying", text = "", fg = "#f9e2af" },
{ name = "go.mod", text = "", fg = "#74c7ec" },
{ name = "lxqt.conf", text = "", fg = "#89b4fa" },
{ name = "brewfile", text = "", fg = "#313244" },
{ name = "gulpfile.coffee", text = "", fg = "#f38ba8" },
{ name = ".dockerignore", text = "󰡨", fg = "#89b4fa" },
{ name = ".settings.json", text = "", fg = "#6c7086" },
{ name = "tailwind.config.js", text = "󱏿", fg = "#74c7ec" },
{ name = ".clang-tidy", text = "", fg = "#7f849c" },
{ name = ".gvimrc", text = "", fg = "#a6e3a1" },
{ name = "nuxt.config.cjs", text = "󱄆", fg = "#a6e3a1" },
{ name = "xsettingsd.conf", text = "", fg = "#fab387" },
{ name = "nuxt.config.js", text = "󱄆", fg = "#a6e3a1" },
{ name = "eslint.config.cjs", text = "", fg = "#585b70" },
{ name = "sym-lib-table", text = "", fg = "#f5e0dc" },
{ name = ".condarc", text = "", fg = "#a6e3a1" },
{ name = "xmonad.hs", text = "", fg = "#f38ba8" },
{ name = "tmux.conf", text = "", fg = "#a6e3a1" },
{ name = "xmobarrc.hs", text = "", fg = "#f38ba8" },
{ name = ".prettierrc.yaml", text = "", fg = "#89b4fa" },
{ name = ".pre-commit-config.yaml", text = "󰛢", fg = "#fab387" },
{ name = "i3blocks.conf", text = "", fg = "#f5e0dc" },
{ name = "xorg.conf", text = "", fg = "#fab387" },
{ name = ".zshenv", text = "", fg = "#a6e3a1" },
{ name = "vlcrc", text = "󰕼", fg = "#fab387" },
{ name = "license", text = "", fg = "#f9e2af" },
{ name = "unlicense", text = "", fg = "#f9e2af" },
{ name = "tmux.conf.local", text = "", fg = "#a6e3a1" },
{ name = ".SRCINFO", text = "󰣇", fg = "#89b4fa" },
{ name = "tailwind.config.ts", text = "󱏿", fg = "#74c7ec" },
{ name = "security.md", text = "󰒃", fg = "#bac2de" },
{ name = "security", text = "󰒃", fg = "#bac2de" },
{ name = ".eslintrc", text = "", fg = "#585b70" },
{ name = "gradle.properties", text = "", fg = "#585b70" },
{ name = "code_of_conduct.md", text = "", fg = "#f38ba8" },
{ name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#fab387" },
{ name = "PrusaSlicer.ini", text = "", fg = "#fab387" },
{ name = "procfile", text = "", fg = "#7f849c" },
{ name = "mpv.conf", text = "", fg = "#1e1e2e" },
{ name = ".prettierrc.json5", text = "", fg = "#89b4fa" },
{ name = "i3status.conf", text = "", fg = "#f5e0dc" },
{ name = "prettier.config.mjs", text = "", fg = "#89b4fa" },
{ name = ".pylintrc", text = "", fg = "#7f849c" },
{ name = "prettier.config.cjs", text = "", fg = "#89b4fa" },
{ name = ".luacheckrc", text = "", fg = "#89b4fa" },
{ name = "containerfile", text = "󰡨", fg = "#89b4fa" },
{ name = "eslint.config.mjs", text = "", fg = "#585b70" },
{ name = "gruntfile.js", text = "", fg = "#fab387" },
{ name = "bun.lockb", text = "", fg = "#f5e0dc" },
{ name = ".gitattributes", text = "", fg = "#fab387" },
{ name = "gruntfile.ts", text = "", fg = "#fab387" },
{ name = "pom.xml", text = "", fg = "#313244" },
{ name = "favicon.ico", text = "", fg = "#f9e2af" },
{ name = "package-lock.json", text = "", fg = "#313244" },
{ name = "build", text = "", fg = "#a6e3a1" },
{ name = "package.json", text = "", fg = "#f38ba8" },
{ name = "nuxt.config.ts", text = "󱄆", fg = "#a6e3a1" },
{ name = "nuxt.config.mjs", text = "󱄆", fg = "#a6e3a1" },
{ name = "mix.lock", text = "", fg = "#7f849c" },
{ name = "makefile", text = "", fg = "#7f849c" },
{ name = "gulpfile.js", text = "", fg = "#f38ba8" },
{ name = "lxde-rc.xml", text = "", fg = "#9399b2" },
{ name = "kritarc", text = "", fg = "#cba6f7" },
{ name = "gtkrc", text = "", fg = "#f5e0dc" },
{ name = "ionic.config.json", text = "", fg = "#89b4fa" },
{ name = ".prettierrc.mjs", text = "", fg = "#89b4fa" },
{ name = ".prettierrc.yml", text = "", fg = "#89b4fa" },
{ name = ".npmrc", text = "", fg = "#f38ba8" },
{ name = "weston.ini", text = "", fg = "#f9e2af" },
{ name = "gulpfile.babel.js", text = "", fg = "#f38ba8" },
{ name = "i18n.config.ts", text = "󰗊", fg = "#7f849c" },
{ name = "commitlint.config.js", text = "󰜘", fg = "#94e2d5" },
{ name = ".gitmodules", text = "", fg = "#fab387" },
{ name = "gradle-wrapper.properties", text = "", fg = "#585b70" },
{ name = "hypridle.conf", text = "", fg = "#74c7ec" },
{ name = "vercel.json", text = "▲", fg = "#f5e0dc" },
{ name = "hyprlock.conf", text = "", fg = "#74c7ec" },
{ name = "go.sum", text = "", fg = "#74c7ec" },
{ name = "kdenlive-layoutsrc", text = "", fg = "#89b4fa" },
{ name = "gruntfile.babel.js", text = "", fg = "#fab387" },
{ name = "compose.yml", text = "󰡨", fg = "#89b4fa" },
{ name = "i18n.config.js", text = "󰗊", fg = "#7f849c" },
{ name = "readme.md", text = "󰂺", fg = "#f5e0dc" },
{ name = "gradlew", text = "", fg = "#585b70" },
{ name = "go.work", text = "", fg = "#74c7ec" },
{ name = "gulpfile.ts", text = "", fg = "#f38ba8" },
{ name = "gnumakefile", text = "", fg = "#7f849c" },
{ name = "FreeCAD.conf", text = "", fg = "#f38ba8" },
{ name = "compose.yaml", text = "󰡨", fg = "#89b4fa" },
{ name = "eslint.config.js", text = "", fg = "#585b70" },
{ name = "hyprland.conf", text = "", fg = "#74c7ec" },
{ name = "docker-compose.yml", text = "󰡨", fg = "#89b4fa" },
{ name = "groovy", text = "", fg = "#585b70" },
{ name = "QtProject.conf", text = "", fg = "#a6e3a1" },
{ name = "platformio.ini", text = "", fg = "#fab387" },
{ name = "build.gradle", text = "", fg = "#585b70" },
{ name = ".nuxtrc", text = "󱄆", fg = "#a6e3a1" },
{ name = "_vimrc", text = "", fg = "#a6e3a1" },
{ name = ".zprofile", text = "", fg = "#a6e3a1" },
{ name = ".xsession", text = "", fg = "#fab387" },
{ name = "prettier.config.js", text = "", fg = "#89b4fa" },
{ name = ".babelrc", text = "", fg = "#f9e2af" },
{ name = "workspace", text = "", fg = "#a6e3a1" },
{ name = ".prettierrc.json", text = "", fg = "#89b4fa" },
{ name = ".prettierrc.js", text = "", fg = "#89b4fa" },
{ name = ".Xresources", text = "", fg = "#fab387" },
{ name = ".gitignore", text = "", fg = "#fab387" },
{ name = ".justfile", text = "", fg = "#7f849c" },
]
exts = [
{ name = "otf", text = "", fg = "#f5e0dc" },
{ name = "import", text = "", fg = "#f5e0dc" },
{ name = "krz", text = "", fg = "#cba6f7" },
{ name = "adb", text = "", fg = "#94e2d5" },
{ name = "ttf", text = "", fg = "#f5e0dc" },
{ name = "webpack", text = "󰜫", fg = "#74c7ec" },
{ name = "dart", text = "", fg = "#585b70" },
{ name = "vsh", text = "", fg = "#7f849c" },
{ name = "doc", text = "󰈬", fg = "#585b70" },
{ name = "zsh", text = "", fg = "#a6e3a1" },
{ name = "ex", text = "", fg = "#7f849c" },
{ name = "hx", text = "", fg = "#fab387" },
{ name = "fodt", text = "", fg = "#74c7ec" },
{ name = "mojo", text = "", fg = "#fab387" },
{ name = "templ", text = "", fg = "#f9e2af" },
{ name = "nix", text = "", fg = "#74c7ec" },
{ name = "cshtml", text = "󱦗", fg = "#585b70" },
{ name = "fish", text = "", fg = "#585b70" },
{ name = "ply", text = "󰆧", fg = "#7f849c" },
{ name = "sldprt", text = "󰻫", fg = "#a6e3a1" },
{ name = "gemspec", text = "", fg = "#313244" },
{ name = "mjs", text = "", fg = "#f9e2af" },
{ name = "csh", text = "", fg = "#585b70" },
{ name = "cmake", text = "", fg = "#cdd6f4" },
{ name = "fodp", text = "", fg = "#fab387" },
{ name = "vi", text = "", fg = "#f9e2af" },
{ name = "msf", text = "", fg = "#89b4fa" },
{ name = "blp", text = "󰺾", fg = "#89b4fa" },
{ name = "less", text = "", fg = "#45475a" },
{ name = "sh", text = "", fg = "#585b70" },
{ name = "odg", text = "", fg = "#f9e2af" },
{ name = "mint", text = "󰌪", fg = "#a6e3a1" },
{ name = "dll", text = "", fg = "#11111b" },
{ name = "odf", text = "", fg = "#f38ba8" },
{ name = "sqlite3", text = "", fg = "#f5e0dc" },
{ name = "Dockerfile", text = "󰡨", fg = "#89b4fa" },
{ name = "ksh", text = "", fg = "#585b70" },
{ name = "rmd", text = "", fg = "#74c7ec" },
{ name = "wv", text = "", fg = "#74c7ec" },
{ name = "xml", text = "󰗀", fg = "#fab387" },
{ name = "markdown", text = "", fg = "#cdd6f4" },
{ name = "qml", text = "", fg = "#a6e3a1" },
{ name = "3gp", text = "", fg = "#fab387" },
{ name = "pxi", text = "", fg = "#89b4fa" },
{ name = "flac", text = "", fg = "#6c7086" },
{ name = "gpr", text = "", fg = "#cba6f7" },
{ name = "huff", text = "󰡘", fg = "#585b70" },
{ name = "json", text = "", fg = "#f9e2af" },
{ name = "gv", text = "󱁉", fg = "#585b70" },
{ name = "bmp", text = "", fg = "#7f849c" },
{ name = "lock", text = "", fg = "#bac2de" },
{ name = "sha384", text = "󰕥", fg = "#7f849c" },
{ name = "cobol", text = "⚙", fg = "#585b70" },
{ name = "cob", text = "⚙", fg = "#585b70" },
{ name = "java", text = "", fg = "#f38ba8" },
{ name = "cjs", text = "", fg = "#f9e2af" },
{ name = "qm", text = "", fg = "#74c7ec" },
{ name = "ebuild", text = "", fg = "#45475a" },
{ name = "mustache", text = "", fg = "#fab387" },
{ name = "terminal", text = "", fg = "#a6e3a1" },
{ name = "ejs", text = "", fg = "#f9e2af" },
{ name = "brep", text = "󰻫", fg = "#a6e3a1" },
{ name = "rar", text = "", fg = "#fab387" },
{ name = "gradle", text = "", fg = "#585b70" },
{ name = "gnumakefile", text = "", fg = "#7f849c" },
{ name = "applescript", text = "", fg = "#7f849c" },
{ name = "elm", text = "", fg = "#74c7ec" },
{ name = "ebook", text = "", fg = "#fab387" },
{ name = "kra", text = "", fg = "#cba6f7" },
{ name = "tf", text = "", fg = "#585b70" },
{ name = "xls", text = "󰈛", fg = "#585b70" },
{ name = "fnl", text = "", fg = "#f9e2af" },
{ name = "kdbx", text = "", fg = "#a6e3a1" },
{ name = "kicad_pcb", text = "", fg = "#f5e0dc" },
{ name = "cfg", text = "", fg = "#7f849c" },
{ name = "ape", text = "", fg = "#74c7ec" },
{ name = "org", text = "", fg = "#94e2d5" },
{ name = "yml", text = "", fg = "#7f849c" },
{ name = "swift", text = "", fg = "#fab387" },
{ name = "eln", text = "", fg = "#7f849c" },
{ name = "sol", text = "", fg = "#74c7ec" },
{ name = "awk", text = "", fg = "#585b70" },
{ name = "7z", text = "", fg = "#fab387" },
{ name = "apl", text = "⍝", fg = "#fab387" },
{ name = "epp", text = "", fg = "#fab387" },
{ name = "app", text = "", fg = "#45475a" },
{ name = "dot", text = "󱁉", fg = "#585b70" },
{ name = "kpp", text = "", fg = "#cba6f7" },
{ name = "eot", text = "", fg = "#f5e0dc" },
{ name = "hpp", text = "", fg = "#7f849c" },
{ name = "spec.tsx", text = "", fg = "#585b70" },
{ name = "hurl", text = "", fg = "#f38ba8" },
{ name = "cxxm", text = "", fg = "#74c7ec" },
{ name = "c", text = "", fg = "#89b4fa" },
{ name = "fcmacro", text = "", fg = "#f38ba8" },
{ name = "sass", text = "", fg = "#f38ba8" },
{ name = "yaml", text = "", fg = "#7f849c" },
{ name = "xz", text = "", fg = "#fab387" },
{ name = "material", text = "󰔉", fg = "#f38ba8" },
{ name = "json5", text = "", fg = "#f9e2af" },
{ name = "signature", text = "λ", fg = "#fab387" },
{ name = "3mf", text = "󰆧", fg = "#7f849c" },
{ name = "jpg", text = "", fg = "#7f849c" },
{ name = "xpi", text = "", fg = "#fab387" },
{ name = "fcmat", text = "", fg = "#f38ba8" },
{ name = "pot", text = "", fg = "#74c7ec" },
{ name = "bin", text = "", fg = "#45475a" },
{ name = "xlsx", text = "󰈛", fg = "#585b70" },
{ name = "aac", text = "", fg = "#74c7ec" },
{ name = "kicad_sym", text = "", fg = "#f5e0dc" },
{ name = "xcstrings", text = "", fg = "#74c7ec" },
{ name = "lff", text = "", fg = "#f5e0dc" },
{ name = "xcf", text = "", fg = "#585b70" },
{ name = "azcli", text = "", fg = "#6c7086" },
{ name = "license", text = "", fg = "#f9e2af" },
{ name = "jsonc", text = "", fg = "#f9e2af" },
{ name = "xaml", text = "󰙳", fg = "#585b70" },
{ name = "md5", text = "󰕥", fg = "#7f849c" },
{ name = "xm", text = "", fg = "#74c7ec" },
{ name = "sln", text = "", fg = "#6c7086" },
{ name = "jl", text = "", fg = "#7f849c" },
{ name = "ml", text = "", fg = "#fab387" },
{ name = "http", text = "", fg = "#89b4fa" },
{ name = "x", text = "", fg = "#89b4fa" },
{ name = "wvc", text = "", fg = "#74c7ec" },
{ name = "wrz", text = "󰆧", fg = "#7f849c" },
{ name = "csproj", text = "󰪮", fg = "#585b70" },
{ name = "wrl", text = "󰆧", fg = "#7f849c" },
{ name = "wma", text = "", fg = "#74c7ec" },
{ name = "woff2", text = "", fg = "#f5e0dc" },
{ name = "woff", text = "", fg = "#f5e0dc" },
{ name = "tscn", text = "", fg = "#7f849c" },
{ name = "webmanifest", text = "", fg = "#f9e2af" },
{ name = "webm", text = "", fg = "#fab387" },
{ name = "fcbak", text = "", fg = "#f38ba8" },
{ name = "log", text = "󰌱", fg = "#cdd6f4" },
{ name = "wav", text = "", fg = "#74c7ec" },
{ name = "wasm", text = "", fg = "#585b70" },
{ name = "styl", text = "", fg = "#a6e3a1" },
{ name = "gif", text = "", fg = "#7f849c" },
{ name = "resi", text = "", fg = "#f38ba8" },
{ name = "aiff", text = "", fg = "#74c7ec" },
{ name = "sha256", text = "󰕥", fg = "#7f849c" },
{ name = "igs", text = "󰻫", fg = "#a6e3a1" },
{ name = "vsix", text = "", fg = "#6c7086" },
{ name = "vim", text = "", fg = "#a6e3a1" },
{ name = "diff", text = "", fg = "#45475a" },
{ name = "drl", text = "", fg = "#eba0ac" },
{ name = "erl", text = "", fg = "#f38ba8" },
{ name = "vhdl", text = "󰍛", fg = "#a6e3a1" },
{ name = "🔥", text = "", fg = "#fab387" },
{ name = "hrl", text = "", fg = "#f38ba8" },
{ name = "fsi", text = "", fg = "#74c7ec" },
{ name = "mm", text = "", fg = "#74c7ec" },
{ name = "bz", text = "", fg = "#fab387" },
{ name = "vh", text = "󰍛", fg = "#a6e3a1" },
{ name = "kdb", text = "", fg = "#a6e3a1" },
{ name = "gz", text = "", fg = "#fab387" },
{ name = "cpp", text = "", fg = "#74c7ec" },
{ name = "ui", text = "", fg = "#6c7086" },
{ name = "txt", text = "󰈙", fg = "#a6e3a1" },
{ name = "spec.ts", text = "", fg = "#74c7ec" },
{ name = "ccm", text = "", fg = "#f38ba8" },
{ name = "typoscript", text = "", fg = "#fab387" },
{ name = "typ", text = "", fg = "#89dceb" },
{ name = "txz", text = "", fg = "#fab387" },
{ name = "test.ts", text = "", fg = "#74c7ec" },
{ name = "tsx", text = "", fg = "#585b70" },
{ name = "mk", text = "", fg = "#7f849c" },
{ name = "webp", text = "", fg = "#7f849c" },
{ name = "opus", text = "", fg = "#6c7086" },
{ name = "bicep", text = "", fg = "#74c7ec" },
{ name = "ts", text = "", fg = "#74c7ec" },
{ name = "tres", text = "", fg = "#7f849c" },
{ name = "torrent", text = "", fg = "#94e2d5" },
{ name = "cxx", text = "", fg = "#74c7ec" },
{ name = "iso", text = "", fg = "#f2cdcd" },
{ name = "ixx", text = "", fg = "#74c7ec" },
{ name = "hxx", text = "", fg = "#7f849c" },
{ name = "gql", text = "", fg = "#f38ba8" },
{ name = "tmux", text = "", fg = "#a6e3a1" },
{ name = "ini", text = "", fg = "#7f849c" },
{ name = "m3u8", text = "󰲹", fg = "#f38ba8" },
{ name = "image", text = "", fg = "#f2cdcd" },
{ name = "tfvars", text = "", fg = "#585b70" },
{ name = "tex", text = "", fg = "#45475a" },
{ name = "cbl", text = "⚙", fg = "#585b70" },
{ name = "flc", text = "", fg = "#f5e0dc" },
{ name = "elc", text = "", fg = "#7f849c" },
{ name = "test.tsx", text = "", fg = "#585b70" },
{ name = "twig", text = "", fg = "#a6e3a1" },
{ name = "sql", text = "", fg = "#f5e0dc" },
{ name = "test.jsx", text = "", fg = "#74c7ec" },
{ name = "htm", text = "", fg = "#fab387" },
{ name = "gcode", text = "󰐫", fg = "#6c7086" },
{ name = "test.js", text = "", fg = "#f9e2af" },
{ name = "ino", text = "", fg = "#74c7ec" },
{ name = "tcl", text = "󰛓", fg = "#585b70" },
{ name = "cljs", text = "", fg = "#74c7ec" },
{ name = "tsconfig", text = "", fg = "#fab387" },
{ name = "img", text = "", fg = "#f2cdcd" },
{ name = "t", text = "", fg = "#74c7ec" },
{ name = "fcstd1", text = "", fg = "#f38ba8" },
{ name = "out", text = "", fg = "#45475a" },
{ name = "jsx", text = "", fg = "#74c7ec" },
{ name = "bash", text = "", fg = "#a6e3a1" },
{ name = "edn", text = "", fg = "#74c7ec" },
{ name = "rss", text = "", fg = "#fab387" },
{ name = "flf", text = "", fg = "#f5e0dc" },
{ name = "cache", text = "", fg = "#f5e0dc" },
{ name = "sbt", text = "", fg = "#f38ba8" },
{ name = "cppm", text = "", fg = "#74c7ec" },
{ name = "svelte", text = "", fg = "#fab387" },
{ name = "mo", text = "∞", fg = "#7f849c" },
{ name = "sv", text = "󰍛", fg = "#a6e3a1" },
{ name = "ko", text = "", fg = "#f5e0dc" },
{ name = "suo", text = "", fg = "#6c7086" },
{ name = "sldasm", text = "󰻫", fg = "#a6e3a1" },
{ name = "icalendar", text = "", fg = "#313244" },
{ name = "go", text = "", fg = "#74c7ec" },
{ name = "sublime", text = "", fg = "#fab387" },
{ name = "stl", text = "󰆧", fg = "#7f849c" },
{ name = "mobi", text = "", fg = "#fab387" },
{ name = "graphql", text = "", fg = "#f38ba8" },
{ name = "m3u", text = "󰲹", fg = "#f38ba8" },
{ name = "cpy", text = "⚙", fg = "#585b70" },
{ name = "kdenlive", text = "", fg = "#89b4fa" },
{ name = "pyo", text = "", fg = "#f9e2af" },
{ name = "po", text = "", fg = "#74c7ec" },
{ name = "scala", text = "", fg = "#f38ba8" },
{ name = "exs", text = "", fg = "#7f849c" },
{ name = "odp", text = "", fg = "#fab387" },
{ name = "dump", text = "", fg = "#f5e0dc" },
{ name = "stp", text = "󰻫", fg = "#a6e3a1" },
{ name = "step", text = "󰻫", fg = "#a6e3a1" },
{ name = "ste", text = "󰻫", fg = "#a6e3a1" },
{ name = "aif", text = "", fg = "#74c7ec" },
{ name = "strings", text = "", fg = "#74c7ec" },
{ name = "cp", text = "", fg = "#74c7ec" },
{ name = "fsscript", text = "", fg = "#74c7ec" },
{ name = "mli", text = "", fg = "#fab387" },
{ name = "bak", text = "󰁯", fg = "#7f849c" },
{ name = "ssa", text = "󰨖", fg = "#f9e2af" },
{ name = "toml", text = "", fg = "#585b70" },
{ name = "makefile", text = "", fg = "#7f849c" },
{ name = "php", text = "", fg = "#7f849c" },
{ name = "zst", text = "", fg = "#fab387" },
{ name = "spec.jsx", text = "", fg = "#74c7ec" },
{ name = "kbx", text = "󰯄", fg = "#6c7086" },
{ name = "fbx", text = "󰆧", fg = "#7f849c" },
{ name = "blend", text = "󰂫", fg = "#fab387" },
{ name = "ifc", text = "󰻫", fg = "#a6e3a1" },
{ name = "spec.js", text = "", fg = "#f9e2af" },
{ name = "so", text = "", fg = "#f5e0dc" },
{ name = "desktop", text = "", fg = "#45475a" },
{ name = "sml", text = "λ", fg = "#fab387" },
{ name = "slvs", text = "󰻫", fg = "#a6e3a1" },
{ name = "pp", text = "", fg = "#fab387" },
{ name = "ps1", text = "󰨊", fg = "#6c7086" },
{ name = "dropbox", text = "", fg = "#6c7086" },
{ name = "kicad_mod", text = "", fg = "#f5e0dc" },
{ name = "bat", text = "", fg = "#a6e3a1" },
{ name = "slim", text = "", fg = "#fab387" },
{ name = "skp", text = "󰻫", fg = "#a6e3a1" },
{ name = "css", text = "", fg = "#89b4fa" },
{ name = "xul", text = "", fg = "#fab387" },
{ name = "ige", text = "󰻫", fg = "#a6e3a1" },
{ name = "glb", text = "", fg = "#fab387" },
{ name = "ppt", text = "󰈧", fg = "#f38ba8" },
{ name = "sha512", text = "󰕥", fg = "#7f849c" },
{ name = "ics", text = "", fg = "#313244" },
{ name = "mdx", text = "", fg = "#74c7ec" },
{ name = "sha1", text = "󰕥", fg = "#7f849c" },
{ name = "f3d", text = "󰻫", fg = "#a6e3a1" },
{ name = "ass", text = "󰨖", fg = "#f9e2af" },
{ name = "godot", text = "", fg = "#7f849c" },
{ name = "ifb", text = "", fg = "#313244" },
{ name = "cson", text = "", fg = "#f9e2af" },
{ name = "lib", text = "", fg = "#11111b" },
{ name = "luac", text = "", fg = "#74c7ec" },
{ name = "heex", text = "", fg = "#7f849c" },
{ name = "scm", text = "󰘧", fg = "#f5e0dc" },
{ name = "psd1", text = "󰨊", fg = "#7f849c" },
{ name = "sc", text = "", fg = "#f38ba8" },
{ name = "scad", text = "", fg = "#f9e2af" },
{ name = "kts", text = "", fg = "#6c7086" },
{ name = "svh", text = "󰍛", fg = "#a6e3a1" },
{ name = "mts", text = "", fg = "#74c7ec" },
{ name = "nfo", text = "", fg = "#f9e2af" },
{ name = "pck", text = "", fg = "#7f849c" },
{ name = "rproj", text = "󰗆", fg = "#a6e3a1" },
{ name = "rlib", text = "", fg = "#fab387" },
{ name = "cljd", text = "", fg = "#74c7ec" },
{ name = "ods", text = "", fg = "#a6e3a1" },
{ name = "res", text = "", fg = "#f38ba8" },
{ name = "apk", text = "", fg = "#a6e3a1" },
{ name = "haml", text = "", fg = "#f5e0dc" },
{ name = "d.ts", text = "", fg = "#fab387" },
{ name = "razor", text = "󱦘", fg = "#585b70" },
{ name = "rake", text = "", fg = "#313244" },
{ name = "patch", text = "", fg = "#45475a" },
{ name = "cuh", text = "", fg = "#7f849c" },
{ name = "d", text = "", fg = "#f38ba8" },
{ name = "query", text = "", fg = "#a6e3a1" },
{ name = "psb", text = "", fg = "#74c7ec" },
{ name = "nu", text = ">", fg = "#a6e3a1" },
{ name = "mov", text = "", fg = "#fab387" },
{ name = "lrc", text = "󰨖", fg = "#f9e2af" },
{ name = "pyx", text = "", fg = "#89b4fa" },
{ name = "pyw", text = "", fg = "#89b4fa" },
{ name = "cu", text = "", fg = "#a6e3a1" },
{ name = "bazel", text = "", fg = "#a6e3a1" },
{ name = "obj", text = "󰆧", fg = "#7f849c" },
{ name = "pyi", text = "", fg = "#f9e2af" },
{ name = "pyd", text = "", fg = "#f9e2af" },
{ name = "exe", text = "", fg = "#45475a" },
{ name = "pyc", text = "", fg = "#f9e2af" },
{ name = "fctb", text = "", fg = "#f38ba8" },
{ name = "part", text = "", fg = "#94e2d5" },
{ name = "blade.php", text = "", fg = "#f38ba8" },
{ name = "git", text = "", fg = "#fab387" },
{ name = "psd", text = "", fg = "#74c7ec" },
{ name = "qss", text = "", fg = "#a6e3a1" },
{ name = "csv", text = "", fg = "#a6e3a1" },
{ name = "psm1", text = "󰨊", fg = "#7f849c" },
{ name = "dconf", text = "", fg = "#f5e0dc" },
{ name = "config.ru", text = "", fg = "#313244" },
{ name = "prisma", text = "", fg = "#6c7086" },
{ name = "conf", text = "", fg = "#7f849c" },
{ name = "clj", text = "", fg = "#a6e3a1" },
{ name = "o", text = "", fg = "#45475a" },
{ name = "mp4", text = "", fg = "#fab387" },
{ name = "cc", text = "", fg = "#f38ba8" },
{ name = "kicad_prl", text = "", fg = "#f5e0dc" },
{ name = "bz3", text = "", fg = "#fab387" },
{ name = "asc", text = "󰦝", fg = "#6c7086" },
{ name = "png", text = "", fg = "#7f849c" },
{ name = "android", text = "", fg = "#a6e3a1" },
{ name = "pm", text = "", fg = "#74c7ec" },
{ name = "h", text = "", fg = "#7f849c" },
{ name = "pls", text = "󰲹", fg = "#f38ba8" },
{ name = "ipynb", text = "", fg = "#fab387" },
{ name = "pl", text = "", fg = "#74c7ec" },
{ name = "ads", text = "", fg = "#f5e0dc" },
{ name = "sqlite", text = "", fg = "#f5e0dc" },
{ name = "pdf", text = "", fg = "#585b70" },
{ name = "pcm", text = "", fg = "#6c7086" },
{ name = "ico", text = "", fg = "#f9e2af" },
{ name = "a", text = "", fg = "#f5e0dc" },
{ name = "R", text = "󰟔", fg = "#6c7086" },
{ name = "ogg", text = "", fg = "#6c7086" },
{ name = "pxd", text = "", fg = "#89b4fa" },
{ name = "kdenlivetitle", text = "", fg = "#89b4fa" },
{ name = "jxl", text = "", fg = "#7f849c" },
{ name = "nswag", text = "", fg = "#a6e3a1" },
{ name = "nim", text = "", fg = "#f9e2af" },
{ name = "bqn", text = "⎉", fg = "#6c7086" },
{ name = "cts", text = "", fg = "#74c7ec" },
{ name = "fcparam", text = "", fg = "#f38ba8" },
{ name = "rs", text = "", fg = "#fab387" },
{ name = "mpp", text = "", fg = "#74c7ec" },
{ name = "fdmdownload", text = "", fg = "#94e2d5" },
{ name = "pptx", text = "󰈧", fg = "#f38ba8" },
{ name = "jpeg", text = "", fg = "#7f849c" },
{ name = "bib", text = "󱉟", fg = "#f9e2af" },
{ name = "vhd", text = "󰍛", fg = "#a6e3a1" },
{ name = "m", text = "", fg = "#89b4fa" },
{ name = "js", text = "", fg = "#f9e2af" },
{ name = "eex", text = "", fg = "#7f849c" },
{ name = "tbc", text = "󰛓", fg = "#585b70" },
{ name = "astro", text = "", fg = "#f38ba8" },
{ name = "sha224", text = "󰕥", fg = "#7f849c" },
{ name = "xcplayground", text = "", fg = "#fab387" },
{ name = "el", text = "", fg = "#7f849c" },
{ name = "m4v", text = "", fg = "#fab387" },
{ name = "m4a", text = "", fg = "#74c7ec" },
{ name = "cs", text = "󰌛", fg = "#585b70" },
{ name = "hs", text = "", fg = "#7f849c" },
{ name = "tgz", text = "", fg = "#fab387" },
{ name = "fs", text = "", fg = "#74c7ec" },
{ name = "luau", text = "", fg = "#89b4fa" },
{ name = "dxf", text = "󰻫", fg = "#a6e3a1" },
{ name = "download", text = "", fg = "#94e2d5" },
{ name = "cast", text = "", fg = "#fab387" },
{ name = "qrc", text = "", fg = "#a6e3a1" },
{ name = "lua", text = "", fg = "#74c7ec" },
{ name = "lhs", text = "", fg = "#7f849c" },
{ name = "md", text = "", fg = "#cdd6f4" },
{ name = "leex", text = "", fg = "#7f849c" },
{ name = "ai", text = "", fg = "#f9e2af" },
{ name = "lck", text = "", fg = "#bac2de" },
{ name = "kt", text = "", fg = "#6c7086" },
{ name = "bicepparam", text = "", fg = "#7f849c" },
{ name = "hex", text = "", fg = "#6c7086" },
{ name = "zig", text = "", fg = "#fab387" },
{ name = "bzl", text = "", fg = "#a6e3a1" },
{ name = "cljc", text = "", fg = "#a6e3a1" },
{ name = "kicad_dru", text = "", fg = "#f5e0dc" },
{ name = "fctl", text = "", fg = "#f38ba8" },
{ name = "f#", text = "", fg = "#74c7ec" },
{ name = "odt", text = "", fg = "#74c7ec" },
{ name = "conda", text = "", fg = "#a6e3a1" },
{ name = "vala", text = "", fg = "#585b70" },
{ name = "erb", text = "", fg = "#313244" },
{ name = "mp3", text = "", fg = "#74c7ec" },
{ name = "bz2", text = "", fg = "#fab387" },
{ name = "coffee", text = "", fg = "#f9e2af" },
{ name = "cr", text = "", fg = "#f5e0dc" },
{ name = "f90", text = "󱈚", fg = "#585b70" },
{ name = "jwmrc", text = "", fg = "#6c7086" },
{ name = "c++", text = "", fg = "#f38ba8" },
{ name = "fcscript", text = "", fg = "#f38ba8" },
{ name = "fods", text = "", fg = "#a6e3a1" },
{ name = "cue", text = "󰲹", fg = "#f38ba8" },
{ name = "srt", text = "󰨖", fg = "#f9e2af" },
{ name = "info", text = "", fg = "#f9e2af" },
{ name = "hh", text = "", fg = "#7f849c" },
{ name = "sig", text = "λ", fg = "#fab387" },
{ name = "html", text = "", fg = "#fab387" },
{ name = "iges", text = "󰻫", fg = "#a6e3a1" },
{ name = "kicad_wks", text = "", fg = "#f5e0dc" },
{ name = "hbs", text = "", fg = "#fab387" },
{ name = "fcstd", text = "", fg = "#f38ba8" },
{ name = "gresource", text = "", fg = "#f5e0dc" },
{ name = "sub", text = "󰨖", fg = "#f9e2af" },
{ name = "ical", text = "", fg = "#313244" },
{ name = "crdownload", text = "", fg = "#94e2d5" },
{ name = "pub", text = "󰷖", fg = "#f9e2af" },
{ name = "vue", text = "", fg = "#a6e3a1" },
{ name = "gd", text = "", fg = "#7f849c" },
{ name = "fsx", text = "", fg = "#74c7ec" },
{ name = "mkv", text = "", fg = "#fab387" },
{ name = "py", text = "", fg = "#f9e2af" },
{ name = "kicad_sch", text = "", fg = "#f5e0dc" },
{ name = "epub", text = "", fg = "#fab387" },
{ name = "env", text = "", fg = "#f9e2af" },
{ name = "magnet", text = "", fg = "#45475a" },
{ name = "elf", text = "", fg = "#45475a" },
{ name = "fodg", text = "", fg = "#f9e2af" },
{ name = "svg", text = "󰜡", fg = "#fab387" },
{ name = "dwg", text = "󰻫", fg = "#a6e3a1" },
{ name = "docx", text = "󰈬", fg = "#585b70" },
{ name = "pro", text = "", fg = "#f9e2af" },
{ name = "db", text = "", fg = "#f5e0dc" },
{ name = "rb", text = "", fg = "#313244" },
{ name = "r", text = "󰟔", fg = "#6c7086" },
{ name = "scss", text = "", fg = "#f38ba8" },
{ name = "cow", text = "󰆚", fg = "#fab387" },
{ name = "gleam", text = "", fg = "#f5c2e7" },
{ name = "v", text = "󰍛", fg = "#a6e3a1" },
{ name = "kicad_pro", text = "", fg = "#f5e0dc" },
{ name = "liquid", text = "", fg = "#a6e3a1" },
{ name = "zip", text = "", fg = "#fab387" },
]

62
tools/zed/keymap.json Executable file
View file

@ -0,0 +1,62 @@
// $DOTFILES/tools/zed/keymaps.json
// Date: 2025-01-25
// Author: js0ny
// Description: Zed keymaps
// Location:
// GNU/Linux: ~/.config/zed/keymaps.json
// Windows: %APPDATA%\Zed\keymaps.json
// Linking: (link the whole directory)
// ln -sf $DOTFILES/tools/zed ~/.config/zed
// Zed keymap
//
// For information on binding keys, see the Zed
// documentation: https://zed.dev/docs/key-bindings
//
// To see the default key bindings run `zed: open default keymap`
// from the command palette.
[
{
"context": "Workspace",
"bindings": {
// "shift shift": "file_finder::Toggle"
}
},
{
"context": "Editor",
"bindings": {
// "j k": ["workspace::SendKeystrokes", "escape"]
}
},
{
"context": "vim_mode == normal || vim_mode == visual",
"bindings": {
"N": "vim::JoinLines",
"l": "vim::InsertBefore",
"L": "vim::InsertFirstNonWhitespace"
}
},
{
"context": "vim_mode == normal || vim_mode == visual || vim_mode == operator",
"bindings": {
"n": "vim::Down",
"e": "vim::Up",
"i": "vim::Right",
"k": "search::SelectNextMatch",
"K": "search::SelectPrevMatch"
}
}
]

30
tools/zed/settings.json Normal file
View file

@ -0,0 +1,30 @@
// $DOTFILES/tools/zed/settings.json
// Date: 2025-01-25
// Author: js0ny
// Description: Zed settings (jsonc)
// Location:
// GNU/Linux: ~/.config/zed/settings.json
// Windows: %APPDATA%\Zed\settings.json
// Linking: (link the whole directory)
// ln -sf $DOTFILES/tools/zed ~/.config/zed
//
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"vim_mode": true,
"ui_font_size": 16,
"buffer_font_size": 16,
"theme": {
"mode": "dark",
"light": "Catppuccin Latte",
"dark": "Catppuccin Mocha"
},
"relative_line_numbers": true
}

28
tools/zed/snippets/c.json Executable file
View file

@ -0,0 +1,28 @@
{
"main": {
"prefix": "main",
"body": [
"int main() {",
" $1",
" return 0;",
"}"
],
"description": "Main function with no arguments"
},
"mainn": {
"prefix": "mainn",
"body": [
"",
"int main(int argc, char *argv[]) {",
" $1",
" return 0;",
"}"
],
"description": "Main function with arguments"
},
"once": {
"prefix": "#once",
"body": ["#ifndef $1", "#define $1", "", "$2", "", "#endif"],
"description": "Include guard"
}
}

View file

@ -3,7 +3,6 @@
# Author: js0ny
# Sourced by user's zshrc 在用户的 zshrc 中被引用
export STARSHIP_CONFIG=$DOTFILES/tools/starship/starship_zsh.toml
eval "$(starship init zsh)"