chezmoi: bat, ideavim, lazygit, lsd, readline, vim, zellij, lesskey

This commit is contained in:
js0ny 2025-09-27 13:46:16 +01:00
parent 298b2290a8
commit f3f92431b2
15 changed files with 678 additions and 991 deletions

View file

@ -1 +0,0 @@
/home/js0ny/.dotfiles/common/bat.config.light

View file

@ -1,4 +0,0 @@
editMode: Vi
bind: n down
bind: e up
bind: l vi-insert

View file

@ -1,476 +0,0 @@
yaml-language-server: $schema=https://raw.githubusercontent.com/jesseduffield/lazygit/master/schema/config.json
# Config relating to the Lazygit UI
gui:
# The number of lines you scroll by when scrolling the main window
scrollHeight: 2
# If true, allow scrolling past the bottom of the content in the main window
scrollPastBottom: true
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#scroll-off-margin
scrollOffMargin: 2
# One of: 'margin' (default) | 'jump'
scrollOffBehavior: margin
# If true, capture mouse events.
# When mouse events are captured, it's a little harder to select text: e.g. requiring you to hold the option key when on macOS.
mouseEvents: true
# If true, do not show a warning when discarding changes in the staging view.
skipDiscardChangeWarning: false
# If true, do not show warning when applying/popping the stash
skipStashWarning: false
# If true, do not show a warning when attempting to commit without any staged files; instead stage all unstaged files.
skipNoStagedFilesWarning: false
# If true, do not show a warning when rewording a commit via an external editor
skipRewordInEditorWarning: false
# Fraction of the total screen width to use for the left side section. You may want to pick a small number (e.g. 0.2) if you're using a narrow screen, so that you can see more of the main section.
# Number from 0 to 1.0.
sidePanelWidth: 0.3333
# If true, increase the height of the focused side window; creating an accordion effect.
expandFocusedSidePanel: false
# The weight of the expanded side panel, relative to the other panels. 2 means
# twice as tall as the other panels. Only relevant if `expandFocusedSidePanel` is true.
expandedSidePanelWeight: 2
# Sometimes the main window is split in two (e.g. when the selected file has both staged and unstaged changes). This setting controls how the two sections are split.
# Options are:
# - 'horizontal': split the window horizontally
# - 'vertical': split the window vertically
# - 'flexible': (default) split the window horizontally if the window is wide enough, otherwise split vertically
mainPanelSplitMode: flexible
# How the window is split when in half screen mode (i.e. after hitting '+' once).
# Possible values:
# - 'left': split the window horizontally (side panel on the left, main view on the right)
# - 'top': split the window vertically (side panel on top, main view below)
enlargedSideViewLocation: left
# One of 'auto' (default) | 'en' | 'zh-CN' | 'zh-TW' | 'pl' | 'nl' | 'ja' | 'ko' | 'ru'
language: auto
# Format used when displaying time e.g. commit time.
# Uses Go's time format syntax: https://pkg.go.dev/time#Time.Format
timeFormat: 02 Jan 06
# Format used when displaying time if the time is less than 24 hours ago.
# Uses Go's time format syntax: https://pkg.go.dev/time#Time.Format
shortTimeFormat: 3:04PM
# Config relating to colors and styles.
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#color-attributes
theme:
activeBorderColor:
- "#b4befe"
- bold
inactiveBorderColor:
- "#a6adc8"
optionsTextColor:
- "#89b4fa"
selectedLineBgColor:
- "#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 marked base commit (for rebase)
markedBaseCommitFgColor:
- blue
# Background color of marked base commit (for rebase)
markedBaseCommitBgColor:
- yellow
# Config relating to the commit length indicator
commitLength:
# If true, show an indicator of commit message length
show: true
# If true, show the '5 of 20' footer at the bottom of list views
showListFooter: true
# If true, display the files in the file views as a tree. If false, display the files as a flat list.
# This can be toggled from within Lazygit with the '~' key, but that will not change the default.
showFileTree: true
# If true, show the number of lines changed per file in the Files view
showNumstatInFilesView: false
# If true, show a random tip in the command log when Lazygit starts
showRandomTip: true
# If true, show the command log
showCommandLog: true
# If true, show the bottom line that contains keybinding info and useful buttons. If false, this line will be hidden except to display a loader for an in-progress action.
showBottomLine: true
# If true, show jump-to-window keybindings in window titles.
showPanelJumps: true
# Deprecated: use nerdFontsVersion instead
showIcons: false
# Nerd fonts version to use.
# One of: '2' | '3' | empty string (default)
# If empty, do not show icons.
nerdFontsVersion: "3"
# If true (default), file icons are shown in the file views. Only relevant if NerdFontsVersion is not empty.
showFileIcons: true
# Length of author name in (non-expanded) commits view. 2 means show initials only.
commitAuthorShortLength: 2
# Length of author name in expanded commits view. 2 means show initials only.
commitAuthorLongLength: 17
# Length of commit hash in commits view. 0 shows '*' if NF icons aren't on.
commitHashLength: 8
# If true, show commit hashes alongside branch names in the branches view.
showBranchCommitHash: false
# Whether to show the divergence from the base branch in the branches view.
# One of: 'none' | 'onlyArrow' | 'arrowAndNumber'
showDivergenceFromBaseBranch: none
# Height of the command log view
commandLogSize: 8
# Whether to split the main window when viewing file changes.
# One of: 'auto' | 'always'
# If 'auto', only split the main window when a file has both staged and unstaged changes
splitDiff: auto
# Default size for focused window. Window size can be changed from within Lazygit with '+' and '_' (but this won't change the default).
# One of: 'normal' (default) | 'half' | 'full'
screenMode: normal
# Window border style.
# One of 'rounded' (default) | 'single' | 'double' | 'hidden'
border: rounded
# If true, show a seriously epic explosion animation when nuking the working tree.
animateExplosion: true
# Whether to stack UI components on top of each other.
# One of 'auto' (default) | 'always' | 'never'
portraitMode: auto
# How things are filtered when typing '/'.
# One of 'substring' (default) | 'fuzzy'
filterMode: substring
# Config relating to the spinner.
spinner:
# The frames of the spinner animation.
frames:
- "|"
- /
- "-"
- \
# The "speed" of the spinner in milliseconds.
rate: 50
# Status panel view.
# One of 'dashboard' (default) | 'allBranchesLog'
statusPanelView: dashboard
# If true, jump to the Files panel after popping a stash
switchToFilesAfterStashPop: true
# If true, jump to the Files panel after applying a stash
switchToFilesAfterStashApply: true
# If true, when using the panel jump keys (default 1 through 5) and target panel is already active, go to next tab instead
switchTabsWithPanelJumpKeys: false
# Config relating to git
git:
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md
paging:
# Value of the --color arg in the git diff command. Some pagers want this to be set to 'always' and some want it set to 'never'
colorArg: always
# e.g.
# diff-so-fancy
# delta --dark --paging=never
# ydiff -p cat -s --wrap --width={{columnWidth}}
pager: "delta --dark --paging=never"
# If true, Lazygit will use whatever pager is specified in `$GIT_PAGER`, `$PAGER`, or your *git config*. If the pager ends with something like ` | less` we will strip that part out, because less doesn't play nice with our rendering approach. If the custom pager uses less under the hood, that will also break rendering (hence the `--paging=never` flag for the `delta` pager).
useConfig: false
# e.g. 'difft --color=always'
externalDiffCommand: ""
# Config relating to committing
commit:
# If true, pass '--signoff' flag when committing
signOff: false
# Automatic WYSIWYG wrapping of the commit message as you type
autoWrapCommitMessage: true
# If autoWrapCommitMessage is true, the width to wrap to
autoWrapWidth: 72
# Config relating to merging
merging:
# If true, run merges in a subprocess so that if a commit message is required, Lazygit will not hang
# Only applicable to unix users.
manualCommit: false
# Extra args passed to `git merge`, e.g. --no-ff
args: ""
# The commit message to use for a squash merge commit. Can contain "{{selectedRef}}" and "{{currentBranch}}" placeholders.
squashMergeMessage: Squash merge {{selectedRef}} into {{currentBranch}}
# list of branches that are considered 'main' branches, used when displaying commits
mainBranches:
- master
- main
# Prefix to use when skipping hooks. E.g. if set to 'WIP', then pre-commit hooks will be skipped when the commit message starts with 'WIP'
skipHookPrefix: WIP
# If true, periodically fetch from remote
autoFetch: true
# If true, periodically refresh files and submodules
autoRefresh: true
# If true, pass the --all arg to git fetch
fetchAll: true
# If true, lazygit will automatically stage files that used to have merge
# conflicts but no longer do; and it will also ask you if you want to
# continue a merge or rebase if you've resolved all conflicts. If false, it
# won't do either of these things.
autoStageResolvedConflicts: true
# Command used when displaying the current branch git log in the main window
branchLogCmd: git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --
# If true, do not spawn a separate process when using GPG
overrideGpg: false
# If true, do not allow force pushes
disableForcePushing: false
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix
commitPrefix:
- # pattern to match on. E.g. for 'feature/AB-123' to match on the AB-123 use "^\\w+\\/(\\w+-\\w+).*"
pattern: ""
# Replace directive. E.g. for 'feature/AB-123' to start the commit message with 'AB-123 ' use "[$1] "
replace: ""
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-branch-name-prefix
branchPrefix: ""
# If true, parse emoji strings in commit messages e.g. render :rocket: as 🚀
# (This should really be under 'gui', not 'git')
parseEmoji: false
# Config for showing the log in the commits view
log:
# One of: 'date-order' | 'author-date-order' | 'topo-order' | 'default'
# 'topo-order' makes it easier to read the git log graph, but commits may not
# appear chronologically. See https://git-scm.com/docs/
#
# Deprecated: Configure this with `Log menu -> Commit sort order` (<c-l> in the commits window by default).
order: topo-order
# This determines whether the git graph is rendered in the commits panel
# One of 'always' | 'never' | 'when-maximised'
#
# Deprecated: Configure this with `Log menu -> Show git graph` (<c-l> in the commits window by default).
showGraph: always
# displays the whole git graph by default in the commits view (equivalent to passing the `--all` argument to `git log`)
showWholeGraph: false
# When copying commit hashes to the clipboard, truncate them to this
# length. Set to 40 to disable truncation.
truncateCopiedCommitHashesTo: 12
allBranchesLogCmds:
- git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium
# Periodic update checks
update:
# One of: 'prompt' (default) | 'background' | 'never'
method: prompt
# Period in days between update checks
days: 14
# Background refreshes
refresher:
# File/submodule refresh interval in seconds.
# Auto-refresh can be disabled via option 'git.autoRefresh'.
refreshInterval: 10
# Re-fetch interval in seconds.
# Auto-fetch can be disabled via option 'git.autoFetch'.
fetchInterval: 60
# If true, show a confirmation popup before quitting Lazygit
confirmOnQuit: false
# If true, exit Lazygit when the user presses escape in a context where there is nothing to cancel/close
quitOnTopLevelReturn: false
# Config relating to things outside of Lazygit like how files are opened, copying to clipboard, etc
os:
# Command for editing a file. Should contain "{{filename}}".
edit: ""
# Command for editing a file at a given line number. Should contain
# "{{filename}}", and may optionally contain "{{line}}".
editAtLine: ""
# Same as EditAtLine, except that the command needs to wait until the
# window is closed.
editAtLineAndWait: ""
# For opening a directory in an editor
openDirInEditor: ""
# A built-in preset that sets all of the above settings. Supported presets
# are defined in the getPreset function in editor_presets.go.
editPreset: "nvim"
# Command for opening a file, as if the file is double-clicked. Should
# contain "{{filename}}", but doesn't support "{{line}}".
open: ""
# Command for opening a link. Should contain "{{link}}".
openLink: ""
# EditCommand is the command for editing a file.
# Deprecated: use Edit instead. Note that semantics are different:
# EditCommand is just the command itself, whereas Edit contains a
# "{{filename}}" variable.
editCommand: ""
# EditCommandTemplate is the command template for editing a file
# Deprecated: use EditAtLine instead.
editCommandTemplate: ""
# OpenCommand is the command for opening a file
# Deprecated: use Open instead.
openCommand: ""
# OpenLinkCommand is the command for opening a link
# Deprecated: use OpenLink instead.
openLinkCommand: ""
# CopyToClipboardCmd is the command for copying to clipboard.
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-command-for-copying-to-and-pasting-from-clipboard
copyToClipboardCmd: ""
# ReadFromClipboardCmd is the command for reading the clipboard.
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-command-for-copying-to-and-pasting-from-clipboard
readFromClipboardCmd: ""
# If true, don't display introductory popups upon opening Lazygit.
disableStartupPopups: false
# What to do when opening Lazygit outside of a git repo.
# - 'prompt': (default) ask whether to initialize a new repo or open in the most recent repo
# - 'create': initialize a new repo
# - 'skip': open most recent repo
# - 'quit': exit Lazygit
notARepository: prompt
# If true, display a confirmation when subprocess terminates. This allows you to view the output of the subprocess before returning to Lazygit.
promptToReturnFromSubprocess: true
# Keybindings
keybinding:
universal:
quit: q
quit-alt1: <c-c>
return: <esc>
quitWithoutChangingDirectory: Q
togglePanel: <tab>
prevItem: <up>
nextItem: <down>
prevItem-alt: e
nextItem-alt: "n"
prevPage: ","
nextPage: .
scrollLeft: H
scrollRight: L
gotoTop: <
gotoBottom: ">"
toggleRangeSelect: v
rangeSelectDown: <s-down>
rangeSelectUp: <s-up>
prevBlock: <left>
nextBlock: <right>
prevBlock-alt: h
nextBlock-alt: i
nextBlock-alt2: <tab>
prevBlock-alt2: <backtab>
jumpToBlock:
- "1"
- "2"
- "3"
- "4"
- "5"
nextMatch: "k"
prevMatch: "K"
startSearch: /
optionMenu: <disabled>
optionMenu-alt1: "?"
select: <space>
goInto: <enter>
confirm: <enter>
confirmInEditor: <a-enter>
remove: d
new: "n"
edit: l
openFile: o
scrollUpMain: <pgup>
scrollDownMain: <pgdown>
scrollUpMain-alt1: E
scrollDownMain-alt1: "N"
scrollUpMain-alt2: <c-u>
scrollDownMain-alt2: <c-d>
executeShellCommand: ":"
createRebaseOptionsMenu: m
# 'Files' appended for legacy reasons
pushFiles: P
# 'Files' appended for legacy reasons
pullFiles: p
refresh: R
createPatchOptionsMenu: <c-p>
nextTab: "]"
prevTab: "["
nextScreenMode: +
prevScreenMode: _
undo: z
redo: <c-z>
filteringMenu: <c-s>
diffingMenu: W
diffingMenu-alt: <c-e>
copyToClipboard: <c-o>
openRecentRepos: <c-r>
submitEditorText: <enter>
extrasMenu: "@"
toggleWhitespaceInDiffView: <c-w>
increaseContextInDiffView: "}"
decreaseContextInDiffView: "{"
increaseRenameSimilarityThreshold: )
decreaseRenameSimilarityThreshold: (
openDiffTool: <c-t>
status:
checkForUpdate: u
recentRepos: <space>
allBranchesLogGraph: a
files:
commitChanges: c
commitChangesWithoutHook: w
amendLastCommit: A
commitChangesWithEditor: C
findBaseCommitForFixup: <c-f>
confirmDiscard: x
ignoreFile: i
refreshFiles: r
stashAllChanges: s
viewStashOptions: S
toggleStagedAll: a
viewResetOptions: D
fetch: f
toggleTreeView: "t"
openMergeTool: M
openStatusFilter: <c-b>
copyFileInfoToClipboard: "y"
branches:
createPullRequest: o
viewPullRequestOptions: O
copyPullRequestURL: <c-y>
checkoutBranchByName: c
forceCheckoutBranch: F
rebaseBranch: r
renameBranch: R
mergeIntoCurrentBranch: M
viewGitFlowOptions: l
fastForward: f
createTag: T
pushTag: P
setUpstream: u
fetchRemote: f
sortOrder: s
worktrees:
viewWorktreeOptions: w
commits:
squashDown: s
renameCommit: r
renameCommitWithEditor: R
viewResetOptions: g
markCommitAsFixup: f
createFixupCommit: F
squashAboveCommits: S
moveDownCommit: <c-j>
moveUpCommit: <c-k>
amendToCommit: A
resetCommitAuthor: a
pickCommit: p
revertCommit: t
cherryPickCopy: C
pasteCommits: V
markCommitAsBaseForRebase: B
tagCommit: T
checkoutCommit: <space>
resetCherryPick: <c-R>
copyCommitAttributeToClipboard: "y"
openLogMenu: <c-l>
openInBrowser: o
viewBisectOptions: b
startInteractiveRebase: I
amendAttribute:
resetAuthor: a
setAuthor: A
addCoAuthor: c
stash:
popStash: g
renameStash: r
commitFiles:
checkoutCommitFile: c
main:
toggleSelectHunk: a
pickBothHunks: b
editSelectHunk: E
submodules:
init: I
update: u
bulkMenu: b
commitMessage:
commitMenu: <c-o>

View file

@ -1,74 +0,0 @@
" $XDG_CONFIG_HOME/vim/vimrc
" This is a minimal setup of vimrc
" ln -sf $DOTFILES/.config/vim/vimrc $XDG_CONFIG_HOME/vim/vimrc
" Colemak Keys
" Arrow remap
noremap n j
noremap e k
noremap i l
nnoremap N 5j
nnoremap E 5k
vnoremap H ^
xnoremap H ^
onoremap H ^
vnoremap I $
xnoremap I $
onoremap I $
noremap I L
" Similar position to i
noremap l i
noremap L I
" ne[k]st
noremap k n
noremap K N
" [j]ump
noremap j e
noremap J E
" Normal minimal setup
noremap Y y$
set expandtab
set tabstop=4
set shiftwidth=4
set autoindent
set smartindent
set wrap
set scrolloff=3
set hlsearch
set incsearch
set ignorecase
set smartcase
set number
set relativenumber
set laststatus=2
set showcmd
set statusline=%<%f\ %h%m%r\ %=\ [%l,%v]\ [%p%%]\ [\ %Y]\ [󱑉\ %{strftime('%H:%M:%S')}]
" XDG Directory Specifications
" Reference to https://jorenar.com/blog/vim-xdg
if empty($XDG_CACHE_HOME) | let $XDG_CACHE_HOME = $HOME."/.cache" | endif
if empty($XDG_CONFIG_HOME) | let $XDG_CONFIG_HOME = $HOME."/.config" | endif
if empty($XDG_DATA_HOME) | let $XDG_DATA_HOME = $HOME."/.local/share" | endif
if empty($XDG_STATE_HOME) | let $XDG_STATE_HOME = $HOME."/.local/state" | endif
set viminfo+=n$XDG_STATE_HOME/vim/viminfo
set packpath^=$XDG_DATA_HOME/vim
set packpath+=$XDG_DATA_HOME/vim/after
set backupdir=$XDG_STATE_HOME/vim/backup
set directory=$XDG_STATE_HOME/vim/swap
set undodir=$XDG_STATE_HOME/vim/undo
set viewdir=$XDG_STATE_HOME/vim/view
" set shada+=n$XDG_STATE_HOME/vim/shada
" Leader
let mapleader = "\<Space>"
nnoremap <leader><leader> :FZF<CR>
" Misc
syntax on

View file

@ -0,0 +1 @@
bat.config.dark

View file

@ -0,0 +1,239 @@
" $DOTFILES/common/ideavimrc
" Date: 2024-12-22
" Author: js0ny
" Location:
" $XDG_CONFIG_HOME/ideavim/ideavimrc
" Linking:
" ln -sf $DOTFILES/common/ideavimrc $XDG_CONFIG_HOME/ideavim/ideavimrc
source ~/.local/share/intellimacs/spacemacs.vim
source ~/.local/share/intellimacs/extra.vim
source ~/.local/share/intellimacs/major.vim
source ~/.local/share/intellimacs/hybrid.vim
source ~/.local/share/intellimacs/which-key.vim
" """ Basic Configs """
let mapleader = " " " set <leader> to <space>
""" Colemak """
noremap n j
noremap e k
noremap i l
" Similar position to i
noremap l i
noremap L I
" ne[k]st
noremap k n
noremap K N
" [j]ump
noremap j e
noremap J E
nnoremap H :bp<CR>
nnoremap I :bn<CR>
noremap N 5j
noremap E 5k
vnoremap H ^
xnoremap H ^
onoremap H ^
vnoremap I $
xnoremap I $
onoremap I $
" Y to yank to end of line
noremap Y y$
""" Options """
" search for actions: :actionlist <patter>
"" Vim Compat ""
set clipboard=unnamedplus,unnamed,ideaput " integrate with system clipboard
set gdefault " substitute all occurrences in line per default
set history=4096 " keep x lines of command line history
set hlsearch
set ignorecase
set incsearch
set keymodel=startsel,stopsel
set matchpairs+=<:>
set showcmd
set smartcase " no ignore case when pattern is uppercase
set wrapscan " searches wrap around the end of the file
"" IDE Settings ""
set scrolloff=5
set sidescrolloff=10
"" IDE Features ""
set relativenumber " Hybrid Line Number shown
"" IdeaVim Only ""
set ideajoin
set ideastatusicon=enabled
""" Plugins """
Plug 'justinmk/vim-sneak'
Plug 'preservim/nerdtree'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-commentary'
Plug 'terryma/vim-multiple-cursors'
Plug 'machakann/vim-highlightedyank'
Plug 'easymotion/vim-easymotion'
""" Keybindings """
"" don't lose selection when indenting ""
vnoremap < <gv
vnoremap > >gv
vnoremap = =gv
"" edit ideavim config <leader>v + ""
nnoremap <leader>vv :e ~/.ideavimrc<CR>
nnoremap <leader>vr :source ~/.ideavimrc<CR>
"" NERDTree ""
nnoremap <leader>e :NERDTreeToggle<CR>
"" EasyMotion ""
nmap s <Plug>(easymotion-f)
nmap S <Plug>(easymotion-F)
"" Sneak ""
nmap f <Plug>(sneak-s)
nmap F <Plug>(sneak-S)
"" Language Server Protocol ""
nnoremap gd :action GotoDeclaration<CR>
nnoremap gtd :action GotoTypeDeclaration<CR>
nnoremap gtD :action QuickTypeDefinition<CR>
nnoremap gr :action ShowUsages<CR>
nnoremap gi :action GotoImplementation<CR>
nnoremap gpi :action QuickImplementations<CR>
nnoremap gs :action GotoSuperMethod<CR>
nnoremap ga :action ShowIntentionActions<CR>
nnoremap gq :action ShowIntentionActions<CR>
nnoremap ge :action GotoNextError<CR>
"" Collapse and Expand z + ""
nnoremap zi :action ExpandCollapseToggleAction<CR>
nnoremap zc :action CollapseRegion<CR>
nnoremap zC :action CollapseRegionRecursively<CR>
nnoremap zM :action CollapseAll<CR>
nnoremap zo :action ExpandRegion<CR>
nnoremap zO :action ExpandRegionRecursively<CR>
nnoremap zR :action ExpandAll<CR>
"" Miscs ""
nnoremap <leader>: :action GotoAction<CR>
nnoremap <leader><leader> :action GotoFile<CR>
nnoremap <leader>h :action PrevSplitter<CR>
nnoremap <leader>i :action NextSplitter<CR>
"" AI Related <leader>a + ""
nnoremap <leader>ac :action copilot.chat.show<CR>
nnoremap <leader>ad :action copilot.disableCopilot<CR>
nnoremap <leader>ae :action copilot.enableCopilot<CR>
nnoremap <leader>aa :action copilot.openCopilot<CR>
" <leader>b : +buffer
nnoremap <leader>bb :action Switcher<CR>
noremap <leader>bd :bdelete<CR>
noremap <leader>bh :bprevious<CR>
noremap <leader>bi :bnext<CR>
noremap <leader>bp :bprevious<CR>
noremap <leader>bn :bnext<CR>
" <leader>c : +code/compile
nnoremap <leader>cr :action Run<CR>
nnoremap <leader>cf :action ReformatCode<CR>
nnoremap <leader>cs :action GotoSymbol<CR>
nnoremap <leader>cS :action GotoSymbol<CR>
nnoremap <leader>cR :action RenameElement<CR>
""" Works for Rider only
nnoremap <leader>ce :action ReSharperGotoNextErrorInSolution<CR>
nnoremap <leader>cE :action ReSharperGotoPrevErrorInSolution<CR>
" <leader>d : +debug
" <leader>f : +file
nnoremap <leader>ff :action GotoFile<CR>
nnoremap <leader>fF :action TextSearchAction<CR>
nnoremap <leader>fc :action ShowSettings<CR>
nnoremap <leader>fC :action ShowSettings<CR>
nnoremap <leader>fe :NERDTreeToggle<CR>
nnoremap <leader>fo :OpenInAssociatedApplication<CR>
nnoremap <leader>ft :action ActivateTerminalToolWindow<CR>
nnoremap <leader>fx :action WelcomeScreen.Plugins<CR>
" <leader>g : +git
nnoremap <leader>gp :action Git.Pull<CR>
nnoremap <leader>gP :action Vcs.Push<CR>
nnoremap <leader>gb :action Git.Branches<CR>
nnoremap <leader>gR :action Git.Rebase<CR>
nnoremap <leader>gM :action Git.Merge<CR>
nnoremap <leader>gc :action CheckinProject<CR>
nnoremap <leader>gC :action Git.Clone<CR>
nnoremap <leader>gg :action ActivateVersionControlToolWindow<CR>
nnoremap <leader>gS :action Git.Stash<CR>
" <leader>h : +help
" <leader>p : +project
nnoremap <leader>pr :action Run<CR>
nnoremap <leader>pd :action Debug<CR>
nnoremap <leader>pb :action Build<CR>
" <leader>q : +quit
nnoremap <leader>qq :action Exit<CR>
nnoremap <leader>Q :action Exit<CR>
" <leader>r : +refactor
nnoremap <leader>ri :action Inline<CR>
nnoremap <leader>rr :action RenamElement<CR>
nnoremap <leader>rev :action IntroduceVariable<CR>
vnoremap <leader>rev :action IntroduceVariable<CR>
nnoremap <leader>rem :action ExtractMethod<CR>
vnoremap <leader>rem :action ExtractMethod<CR>
nnoremap <leader>rm :action Move<CR>
nnoremap <leader>ro :action OptimizeImports<CR>
nnoremap <leader>rG :action Generate<CR>
" <leader>t : +test
nnoremap <leader>tt :action RiderUnitTestRunSolutionAction<CR>
nnoremap <leader>tT :action Rider.UnitTesting.MainMenu<CR>
" <leader>u : +ui
nnoremap <leader>ui :action ChangeLaf<CR>
nnoremap <leader>uw :action EditorToggleUseSoftWraps<CR>
" <leader>w : +write/window
nnoremap <leader>ww :write<CR>
nnoremap <leader>wa :wall<CR>
nnoremap <leader>wq :wq<CR>
nnoremap <leader>W :write<CR>
nnoremap <leader>wh :action PrevSplitter<CR>
nnoremap <leader>wi :action NextSplitter<CR>
nnoremap <leader>wH :action SplitHorizontally<CR>
nnoremap <leader>wI :action SplitHorizontally<CR>
nnoremap <leader>wN :action SplitVertically<CR>
nnoremap <leader>wE :action SplitVertically<CR>
nnoremap <leader>w- :action SplitHorizontally<CR>
nnoremap <leader>w| :action SplitVertically<CR>
nnoremap <leader>w\ :action SplitVertically<CR>
nnoremap <C-p> :action ParameterInfo<CR>
inoremap <C-p> <C-o>:action ParameterInfo<CR>
""" Handling Ctrls """
sethandler <C-C> i:ide
sethandler <C-V> n-v:vim i:ide
sethandler <C-.> a:ide
sethandler <A-<CR>> a:ide

View file

View file

@ -1,27 +1,27 @@
# $DOTFILES/common/lesskey # $DOTFILES/common/lesskey
# Date: 2024-12-22 # Date: 2024-12-22
# Author: js0ny # Author: js0ny
# Less the pager. # Less the pager.
# Location: # Location:
# *nix: $XDG_CONFIG_HOME/lesskey (Or specified by the environment variable $LESSKEYIN) # *nix: $XDG_CONFIG_HOME/lesskey (Or specified by the environment variable $LESSKEYIN)
# Windows: %LESSKEYIN% (environment variable, default: %UserProfile%/_lesskey) # Windows: %LESSKEYIN% (environment variable, default: %UserProfile%/_lesskey)
# $Env:LESSKEYIN = $Env:AppData\less\lesskey # $Env:LESSKEYIN = $Env:AppData\less\lesskey
# Linking: # Linking:
# ln -sf $DOTFILES/common/lesskey ~/.config/lesskey # ln -sf $DOTFILES/common/lesskey ~/.config/lesskey
# New-Item -ItemType SymbolicLink -Target $DOTFILES\common\lesskey -Path $Env:LESSKEYIN # New-Item -ItemType SymbolicLink -Target $DOTFILES\common\lesskey -Path $Env:LESSKEYIN
# =========================================================== # ===========================================================
# work for less -V > 582, for mac, use brew install less to override the system less # work for less -V > 582, for mac, use brew install less to override the system less
# In Windows (current version), the default pager is `more`, should be specifed to `less` by `$Env:Pager = less` # In Windows (current version), the default pager is `more`, should be specifed to `less` by `$Env:Pager = less`
# Format: key action # Format: key action
# Arrow Remap (hnei -> hjkl) # Arrow Remap (hnei -> hjkl)
n forw-line n forw-line
e back-line e back-line
N forw-line-force N forw-line-force
E back-line-force E back-line-force
# search with k : ne[k]st # search with k : ne[k]st
k repeat-search k repeat-search
K reverse-search K reverse-search

View file

@ -5,9 +5,10 @@
# e.g. Python REPL, Lua REPL, Bash on Linux # e.g. Python REPL, Lua REPL, Bash on Linux
# Location: # Location:
# ~/.inputrc # $INPUTRC
# export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
# Linking: # Linking:
# ln -sf $DOTFILES/common/inputrc ~/.inputrc # ln -sf $DOTFILES/common/inputrc $INPUTRC
# Use `man readline` to see all the options # Use `man readline` to see all the options
# Reference: https://wiki.archlinux.org/title/Readline # Reference: https://wiki.archlinux.org/title/Readline

View file

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

1
dot_haskeline Normal file
View file

@ -0,0 +1 @@
editMode: Vi