diff --git a/common/bat.config b/common/bat.config deleted file mode 120000 index 2de399f..0000000 --- a/common/bat.config +++ /dev/null @@ -1 +0,0 @@ -/home/js0ny/.dotfiles/common/bat.config.light \ No newline at end of file diff --git a/common/haskeline b/common/haskeline deleted file mode 100644 index 8dd3b01..0000000 --- a/common/haskeline +++ /dev/null @@ -1,4 +0,0 @@ -editMode: Vi -bind: n down -bind: e up -bind: l vi-insert diff --git a/common/lazygit.yaml b/common/lazygit.yaml deleted file mode 100644 index 952549b..0000000 --- a/common/lazygit.yaml +++ /dev/null @@ -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` ( 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` ( 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: - return: - quitWithoutChangingDirectory: Q - togglePanel: - prevItem: - nextItem: - prevItem-alt: e - nextItem-alt: "n" - prevPage: "," - nextPage: . - scrollLeft: H - scrollRight: L - gotoTop: < - gotoBottom: ">" - toggleRangeSelect: v - rangeSelectDown: - rangeSelectUp: - prevBlock: - nextBlock: - prevBlock-alt: h - nextBlock-alt: i - nextBlock-alt2: - prevBlock-alt2: - jumpToBlock: - - "1" - - "2" - - "3" - - "4" - - "5" - nextMatch: "k" - prevMatch: "K" - startSearch: / - optionMenu: - optionMenu-alt1: "?" - select: - goInto: - confirm: - confirmInEditor: - remove: d - new: "n" - edit: l - openFile: o - scrollUpMain: - scrollDownMain: - scrollUpMain-alt1: E - scrollDownMain-alt1: "N" - scrollUpMain-alt2: - scrollDownMain-alt2: - executeShellCommand: ":" - createRebaseOptionsMenu: m - # 'Files' appended for legacy reasons - pushFiles: P - # 'Files' appended for legacy reasons - pullFiles: p - refresh: R - createPatchOptionsMenu: - nextTab: "]" - prevTab: "[" - nextScreenMode: + - prevScreenMode: _ - undo: z - redo: - filteringMenu: - diffingMenu: W - diffingMenu-alt: - copyToClipboard: - openRecentRepos: - submitEditorText: - extrasMenu: "@" - toggleWhitespaceInDiffView: - increaseContextInDiffView: "}" - decreaseContextInDiffView: "{" - increaseRenameSimilarityThreshold: ) - decreaseRenameSimilarityThreshold: ( - openDiffTool: - status: - checkForUpdate: u - recentRepos: - allBranchesLogGraph: a - files: - commitChanges: c - commitChangesWithoutHook: w - amendLastCommit: A - commitChangesWithEditor: C - findBaseCommitForFixup: - confirmDiscard: x - ignoreFile: i - refreshFiles: r - stashAllChanges: s - viewStashOptions: S - toggleStagedAll: a - viewResetOptions: D - fetch: f - toggleTreeView: "t" - openMergeTool: M - openStatusFilter: - copyFileInfoToClipboard: "y" - branches: - createPullRequest: o - viewPullRequestOptions: O - copyPullRequestURL: - 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: - moveUpCommit: - amendToCommit: A - resetCommitAuthor: a - pickCommit: p - revertCommit: t - cherryPickCopy: C - pasteCommits: V - markCommitAsBaseForRebase: B - tagCommit: T - checkoutCommit: - resetCherryPick: - copyCommitAttributeToClipboard: "y" - openLogMenu: - 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: diff --git a/common/vimrc b/common/vimrc deleted file mode 100644 index 8bac7e8..0000000 --- a/common/vimrc +++ /dev/null @@ -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 = "\" -nnoremap :FZF -" Misc -syntax on diff --git a/common/bat.config.dark b/dot_config/bat/bat.config.dark similarity index 100% rename from common/bat.config.dark rename to dot_config/bat/bat.config.dark diff --git a/common/bat.config.light b/dot_config/bat/bat.config.light similarity index 100% rename from common/bat.config.light rename to dot_config/bat/bat.config.light diff --git a/dot_config/bat/symlink_bat.config b/dot_config/bat/symlink_bat.config new file mode 100644 index 0000000..51b80b1 --- /dev/null +++ b/dot_config/bat/symlink_bat.config @@ -0,0 +1 @@ +bat.config.dark diff --git a/dot_config/ideavim/ideavimrc b/dot_config/ideavim/ideavimrc new file mode 100644 index 0000000..04fb390 --- /dev/null +++ b/dot_config/ideavim/ideavimrc @@ -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 to + +""" 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 +nnoremap I :bn +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 + +"" 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 + +"" edit ideavim config v + "" +nnoremap vv :e ~/.ideavimrc +nnoremap vr :source ~/.ideavimrc + +"" NERDTree "" +nnoremap e :NERDTreeToggle + +"" EasyMotion "" +nmap s (easymotion-f) +nmap S (easymotion-F) + +"" Sneak "" +nmap f (sneak-s) +nmap F (sneak-S) + +"" Language Server Protocol "" +nnoremap gd :action GotoDeclaration +nnoremap gtd :action GotoTypeDeclaration +nnoremap gtD :action QuickTypeDefinition +nnoremap gr :action ShowUsages +nnoremap gi :action GotoImplementation +nnoremap gpi :action QuickImplementations +nnoremap gs :action GotoSuperMethod +nnoremap ga :action ShowIntentionActions +nnoremap gq :action ShowIntentionActions +nnoremap ge :action GotoNextError + +"" Collapse and Expand z + "" +nnoremap zi :action ExpandCollapseToggleAction +nnoremap zc :action CollapseRegion +nnoremap zC :action CollapseRegionRecursively +nnoremap zM :action CollapseAll +nnoremap zo :action ExpandRegion +nnoremap zO :action ExpandRegionRecursively +nnoremap zR :action ExpandAll + +"" Miscs "" +nnoremap : :action GotoAction +nnoremap :action GotoFile +nnoremap h :action PrevSplitter +nnoremap i :action NextSplitter + +"" AI Related a + "" +nnoremap ac :action copilot.chat.show +nnoremap ad :action copilot.disableCopilot +nnoremap ae :action copilot.enableCopilot +nnoremap aa :action copilot.openCopilot + +" b : +buffer +nnoremap bb :action Switcher +noremap bd :bdelete +noremap bh :bprevious +noremap bi :bnext +noremap bp :bprevious +noremap bn :bnext + +" c : +code/compile +nnoremap cr :action Run +nnoremap cf :action ReformatCode +nnoremap cs :action GotoSymbol +nnoremap cS :action GotoSymbol +nnoremap cR :action RenameElement +""" Works for Rider only +nnoremap ce :action ReSharperGotoNextErrorInSolution +nnoremap cE :action ReSharperGotoPrevErrorInSolution + +" d : +debug + +" f : +file +nnoremap ff :action GotoFile +nnoremap fF :action TextSearchAction +nnoremap fc :action ShowSettings +nnoremap fC :action ShowSettings +nnoremap fe :NERDTreeToggle +nnoremap fo :OpenInAssociatedApplication +nnoremap ft :action ActivateTerminalToolWindow +nnoremap fx :action WelcomeScreen.Plugins + +" g : +git +nnoremap gp :action Git.Pull +nnoremap gP :action Vcs.Push +nnoremap gb :action Git.Branches +nnoremap gR :action Git.Rebase +nnoremap gM :action Git.Merge +nnoremap gc :action CheckinProject +nnoremap gC :action Git.Clone +nnoremap gg :action ActivateVersionControlToolWindow +nnoremap gS :action Git.Stash + +" h : +help + +" p : +project +nnoremap pr :action Run +nnoremap pd :action Debug +nnoremap pb :action Build + +" q : +quit +nnoremap qq :action Exit +nnoremap Q :action Exit + +" r : +refactor +nnoremap ri :action Inline +nnoremap rr :action RenamElement +nnoremap rev :action IntroduceVariable +vnoremap rev :action IntroduceVariable +nnoremap rem :action ExtractMethod +vnoremap rem :action ExtractMethod +nnoremap rm :action Move +nnoremap ro :action OptimizeImports +nnoremap rG :action Generate + +" t : +test +nnoremap tt :action RiderUnitTestRunSolutionAction +nnoremap tT :action Rider.UnitTesting.MainMenu + +" u : +ui +nnoremap ui :action ChangeLaf +nnoremap uw :action EditorToggleUseSoftWraps + +" w : +write/window +nnoremap ww :write +nnoremap wa :wall +nnoremap wq :wq +nnoremap W :write +nnoremap wh :action PrevSplitter +nnoremap wi :action NextSplitter +nnoremap wH :action SplitHorizontally +nnoremap wI :action SplitHorizontally +nnoremap wN :action SplitVertically +nnoremap wE :action SplitVertically +nnoremap w- :action SplitHorizontally +nnoremap w| :action SplitVertically +nnoremap w\ :action SplitVertically + +nnoremap :action ParameterInfo +inoremap :action ParameterInfo + +""" Handling Ctrls """ + +sethandler i:ide +sethandler n-v:vim i:ide +sethandler a:ide +sethandler > a:ide diff --git a/dot_config/lazygit/empty_config.yml b/dot_config/lazygit/empty_config.yml new file mode 100644 index 0000000..e69de29 diff --git a/common/lesskey b/dot_config/lesskey similarity index 97% rename from common/lesskey rename to dot_config/lesskey index 4e7233c..c30a1cc 100644 --- a/common/lesskey +++ b/dot_config/lesskey @@ -1,27 +1,27 @@ -# $DOTFILES/common/lesskey -# Date: 2024-12-22 -# Author: js0ny -# Less the pager. - -# Location: -# *nix: $XDG_CONFIG_HOME/lesskey (Or specified by the environment variable $LESSKEYIN) -# Windows: %LESSKEYIN% (environment variable, default: %UserProfile%/_lesskey) -# $Env:LESSKEYIN = $Env:AppData\less\lesskey -# Linking: -# ln -sf $DOTFILES/common/lesskey ~/.config/lesskey -# 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 -# In Windows (current version), the default pager is `more`, should be specifed to `less` by `$Env:Pager = less` - -# Format: key action - -# Arrow Remap (hnei -> hjkl) -n forw-line -e back-line -N forw-line-force -E back-line-force - -# search with k : ne[k]st -k repeat-search -K reverse-search +# $DOTFILES/common/lesskey +# Date: 2024-12-22 +# Author: js0ny +# Less the pager. + +# Location: +# *nix: $XDG_CONFIG_HOME/lesskey (Or specified by the environment variable $LESSKEYIN) +# Windows: %LESSKEYIN% (environment variable, default: %UserProfile%/_lesskey) +# $Env:LESSKEYIN = $Env:AppData\less\lesskey +# Linking: +# ln -sf $DOTFILES/common/lesskey ~/.config/lesskey +# 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 +# In Windows (current version), the default pager is `more`, should be specifed to `less` by `$Env:Pager = less` + +# Format: key action + +# Arrow Remap (hnei -> hjkl) +n forw-line +e back-line +N forw-line-force +E back-line-force + +# search with k : ne[k]st +k repeat-search +K reverse-search diff --git a/common/lsd.yaml b/dot_config/lsd/lsd.yaml similarity index 100% rename from common/lsd.yaml rename to dot_config/lsd/lsd.yaml diff --git a/common/inputrc b/dot_config/readline/inputrc similarity index 94% rename from common/inputrc rename to dot_config/readline/inputrc index 705dcdd..4d1a231 100644 --- a/common/inputrc +++ b/dot_config/readline/inputrc @@ -5,9 +5,10 @@ # e.g. Python REPL, Lua REPL, Bash on Linux # Location: -# ~/.inputrc +# $INPUTRC +# export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc # Linking: -# ln -sf $DOTFILES/common/inputrc ~/.inputrc +# ln -sf $DOTFILES/common/inputrc $INPUTRC # Use `man readline` to see all the options # Reference: https://wiki.archlinux.org/title/Readline diff --git a/common/vimrc+qwerty.vimrc b/dot_config/vim/vimrc similarity index 100% rename from common/vimrc+qwerty.vimrc rename to dot_config/vim/vimrc diff --git a/common/zellij.config.kdl b/dot_config/zellij/zellij.config.kdl similarity index 97% rename from common/zellij.config.kdl rename to dot_config/zellij/zellij.config.kdl index 9c83644..141493d 100644 --- a/common/zellij.config.kdl +++ b/dot_config/zellij/zellij.config.kdl @@ -1,407 +1,407 @@ -// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true" -keybinds { - normal { - // uncomment this and adjust key if using copy_on_select=false - // bind "Alt c" { Copy; } - } - locked { - 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 +// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true" +keybinds { + normal { + // uncomment this and adjust key if using copy_on_select=false + // bind "Alt c" { Copy; } + } + locked { + 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 diff --git a/dot_haskeline b/dot_haskeline new file mode 100644 index 0000000..bf0b6cd --- /dev/null +++ b/dot_haskeline @@ -0,0 +1 @@ +editMode: Vi