mirror of
https://github.com/bgrolleman/dotfiles.git
synced 2026-06-24 22:50:44 +02:00
merge
This commit is contained in:
@@ -2,7 +2,8 @@
|
|||||||
# Bas Grolleman
|
# Bas Grolleman
|
||||||
|
|
||||||
# Some reason system boots wrong resolution
|
# Some reason system boots wrong resolution
|
||||||
exec --no-startup-id ~/bin/set_display_ultrawide
|
# exec --no-startup-id ~/bin/set_display_ultrawide
|
||||||
|
exec --no-startup-id ~/.screenlayout/dual.sh
|
||||||
|
|
||||||
# t
|
# t
|
||||||
set $mod Mod1
|
set $mod Mod1
|
||||||
@@ -53,7 +54,7 @@ bindsym $win+e exec /usr/bin/nautilus /home/bgrolleman
|
|||||||
bindsym $win+b exec /opt/helium/helium
|
bindsym $win+b exec /opt/helium/helium
|
||||||
|
|
||||||
# kill focused window
|
# kill focused window
|
||||||
bindsym $mod+Shift+q kill
|
bindsym $mod+Shift+y kill
|
||||||
|
|
||||||
# start dmenu (a program launcher)
|
# start dmenu (a program launcher)
|
||||||
#bindsym $mod+d exec --no-startup-id dmenu_run
|
#bindsym $mod+d exec --no-startup-id dmenu_run
|
||||||
@@ -90,7 +91,7 @@ bindsym $mod+y floating enable; resize set 55ppt 95ppt; move position center
|
|||||||
# change container layout (stacked, tabbed, toggle split)
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
#bindsym $mod+s layout stacking
|
#bindsym $mod+s layout stacking
|
||||||
#bindsym $mod+w layout tabbed
|
#bindsym $mod+w layout tabbed
|
||||||
#bindsym $mod+e layout toggle split
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
# toggle tiling / floating
|
# toggle tiling / floating
|
||||||
bindsym $mod+space floating toggle
|
bindsym $mod+space floating toggle
|
||||||
@@ -111,6 +112,13 @@ set $ws8 "8"
|
|||||||
set $ws9 "9"
|
set $ws9 "9"
|
||||||
set $ws10 "10"
|
set $ws10 "10"
|
||||||
|
|
||||||
|
workspace $ws1 output primary
|
||||||
|
workspace $ws2 output primary
|
||||||
|
workspace $ws3 output primary
|
||||||
|
workspace $ws4 output primary
|
||||||
|
workspace $ws5 output secondary
|
||||||
|
workspace $ws6 output secondary
|
||||||
|
|
||||||
# switch to workspace
|
# switch to workspace
|
||||||
bindsym $mod+1 workspace number $ws1
|
bindsym $mod+1 workspace number $ws1
|
||||||
bindsym $mod+2 workspace number $ws2
|
bindsym $mod+2 workspace number $ws2
|
||||||
@@ -168,8 +176,8 @@ mode "resize" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bindsym $mod+r mode "resize"
|
bindsym $mod+r mode "resize"
|
||||||
bindsym $mod+Right resize grow width 30px
|
bindsym $mod+Shift+Right resize grow width 30px
|
||||||
bindsym $mod+Left resize shrink width 30px
|
bindsym $mod+Shift+Left resize shrink width 30px
|
||||||
|
|
||||||
|
|
||||||
exec_always --no-startup-id $HOME/.config/polybar/launch.sh
|
exec_always --no-startup-id $HOME/.config/polybar/launch.sh
|
||||||
@@ -183,10 +191,10 @@ gaps inner 5px
|
|||||||
exec --no-startup-id xset dpms 600
|
exec --no-startup-id xset dpms 600
|
||||||
exec --no-startup-id /usr/bin/blueman-applet
|
exec --no-startup-id /usr/bin/blueman-applet
|
||||||
exec --no-startup-id nitrogen --restore
|
exec --no-startup-id nitrogen --restore
|
||||||
exec --no-startup-id greenclip deamon
|
#exec --no-startup-id greenclip deamon
|
||||||
exec --no-startup-id flatpak run com.core447.StreamController -b
|
#exec --no-startup-id flatpak run com.core447.StreamController -b
|
||||||
exec --no-startup-id picom
|
exec --no-startup-id picom
|
||||||
exec --no-startup-id ~/bin/stack-v5.3.1-20240731-x86_64.AppImage
|
#exec --no-startup-id ~/bin/stack-v5.3.1-20240731-x86_64.AppImage
|
||||||
|
|
||||||
bindsym $win+period exec flatpak run it.mijorus.smile
|
bindsym $win+period exec flatpak run it.mijorus.smile
|
||||||
|
|
||||||
@@ -194,3 +202,8 @@ bindsym $win+period exec flatpak run it.mijorus.smile
|
|||||||
|
|
||||||
client.focused #ffff00 #ffff00 #000000 #ffff00 #ffff00
|
client.focused #ffff00 #ffff00 #000000 #ffff00 #ffff00
|
||||||
|
|
||||||
|
|
||||||
|
# Float Windows
|
||||||
|
for_window [class="Ryujinx"] floating enable
|
||||||
|
for_window [class="steam"] floating enable
|
||||||
|
assign [class="steam"] 4
|
||||||
|
|||||||
@@ -1 +1,3 @@
|
|||||||
shell bash --login
|
shell bash --login
|
||||||
|
paste_actions replace-dangerous-control-codes
|
||||||
|
|
||||||
|
|||||||
+51
-39
@@ -6,15 +6,17 @@ binds {
|
|||||||
// ─── noctalia-shell keybinds ───
|
// ─── noctalia-shell keybinds ───
|
||||||
// https://docs.noctalia.dev/getting-started/keybinds/
|
// https://docs.noctalia.dev/getting-started/keybinds/
|
||||||
|
|
||||||
Mod+Shift+ESCAPE { show-hotkey-overlay; }
|
//Mod+Shift+ESCAPE { show-hotkey-overlay; }
|
||||||
|
|
||||||
|
Mod+h { show-hotkey-overlay; }
|
||||||
Mod+Shift+S { spawn-sh "flameshot gui"; }
|
Mod+Shift+S { spawn-sh "flameshot gui"; }
|
||||||
|
|
||||||
// ─── Applications ───
|
// ─── Applications ───
|
||||||
Mod+Return hotkey-overlay-title="Open Terminal: Alacritty" { spawn "alacritty"; }
|
Alt+Return hotkey-overlay-title="Open Terminal: Alacritty" { spawn "alacritty"; }
|
||||||
Mod+CTRL+Return hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
|
//Mod+CTRL+Return hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
|
||||||
Mod+Space hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
|
Alt+Space hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
|
||||||
Mod+B hotkey-overlay-title="Open Browser: helium" { spawn "helium-browser"; }
|
Mod+B hotkey-overlay-title="Open Browser: helium" { spawn "helium-browser"; }
|
||||||
Mod+ALT+L hotkey-overlay-title="Lock Screen: noctalia lock" { spawn-sh "qs -c noctalia-shell ipc call lockScreen lock"; }
|
Mod+L hotkey-overlay-title="Lock Screen: noctalia lock" { spawn-sh "qs -c noctalia-shell ipc call lockScreen lock"; }
|
||||||
Mod+Shift+Q hotkey-overlay-title="Session Menu: noctalia sessionMenu" { spawn-sh "qs -c noctalia-shell ipc call sessionMenu toggle"; }
|
Mod+Shift+Q hotkey-overlay-title="Session Menu: noctalia sessionMenu" { spawn-sh "qs -c noctalia-shell ipc call sessionMenu toggle"; }
|
||||||
|
|
||||||
// Please choose your own file manager.
|
// Please choose your own file manager.
|
||||||
@@ -35,25 +37,35 @@ binds {
|
|||||||
XF86MonBrightnessDown allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness decrease"; }
|
XF86MonBrightnessDown allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness decrease"; }
|
||||||
|
|
||||||
// ─── Window Movement and Focus ───
|
// ─── Window Movement and Focus ───
|
||||||
|
Alt+H { focus-column-left; }
|
||||||
|
Alt+L { focus-column-right; }
|
||||||
|
Alt+J { focus-workspace-down; }
|
||||||
|
Alt+K { focus-workspace-up; }
|
||||||
|
|
||||||
|
Alt+Shift+H { move-column-left; }
|
||||||
|
Alt+Shift+L { move-column-right; }
|
||||||
|
Alt+Shift+J { move-column-to-workspace-down; }
|
||||||
|
Alt+Shift+K { move-column-to-workspace-up; }
|
||||||
|
|
||||||
Mod+Q { close-window; }
|
Mod+Q { close-window; }
|
||||||
|
|
||||||
Mod+Left { focus-column-left; }
|
// Mod+Left { focus-column-left; }
|
||||||
Mod+H { focus-column-left; }
|
// Mod+H { focus-column-left; }
|
||||||
Mod+Right { focus-column-right; }
|
// Mod+Right { focus-column-right; }
|
||||||
Mod+L { focus-column-right; }
|
// Mod+L { focus-column-right; }
|
||||||
Mod+Up { focus-window-up; }
|
// Mod+Up { focus-window-up; }
|
||||||
Mod+K { focus-window-up; }
|
// Mod+K { focus-window-up; }
|
||||||
Mod+Down { focus-window-down; }
|
// Mod+Down { focus-window-down; }
|
||||||
Mod+J { focus-window-down; }
|
// Mod+J { focus-window-down; }
|
||||||
|
|
||||||
Mod+CTRL+Left { move-column-left; }
|
// Mod+CTRL+Left { move-column-left; }
|
||||||
Mod+CTRL+H { move-column-left; }
|
// Mod+CTRL+H { move-column-left; }
|
||||||
Mod+CTRL+Right { move-column-right; }
|
// Mod+CTRL+Right { move-column-right; }
|
||||||
Mod+CTRL+L { move-column-right; }
|
// Mod+CTRL+L { move-column-right; }
|
||||||
Mod+CTRL+UP { move-window-up; }
|
// Mod+CTRL+UP { move-window-up; }
|
||||||
Mod+CTRL+K { move-window-up; }
|
// Mod+CTRL+K { move-window-up; }
|
||||||
Mod+CTRL+Down { move-window-down; }
|
// Mod+CTRL+Down { move-window-down; }
|
||||||
Mod+CTRL+J { move-window-down; }
|
// Mod+CTRL+J { move-window-down; }
|
||||||
|
|
||||||
Mod+Home { focus-column-first; }
|
Mod+Home { focus-column-first; }
|
||||||
Mod+End { focus-column-last; }
|
Mod+End { focus-column-last; }
|
||||||
@@ -62,29 +74,29 @@ binds {
|
|||||||
|
|
||||||
Mod+Shift+Left { focus-monitor-left; }
|
Mod+Shift+Left { focus-monitor-left; }
|
||||||
Mod+Shift+Right { focus-monitor-right; }
|
Mod+Shift+Right { focus-monitor-right; }
|
||||||
Mod+Shift+UP { focus-monitor-up; }
|
Mod+Shift+Up { focus-monitor-up; }
|
||||||
Mod+Shift+Down { focus-monitor-down; }
|
Mod+Shift+Down { focus-monitor-down; }
|
||||||
|
|
||||||
Mod+Shift+CTRL+Left { move-column-to-monitor-left; }
|
// Mod+Shift+CTRL+Left { move-column-to-monitor-left; }
|
||||||
Mod+Shift+CTRL+Right { move-column-to-monitor-right; }
|
// Mod+Shift+CTRL+Right { move-column-to-monitor-right; }
|
||||||
Mod+Shift+CTRL+UP { move-column-to-monitor-up; }
|
// Mod+Shift+CTRL+UP { move-column-to-monitor-up; }
|
||||||
Mod+Shift+CTRL+Down { move-column-to-monitor-down; }
|
// Mod+Shift+CTRL+Down { move-column-to-monitor-down; }
|
||||||
|
|
||||||
// ─── Workspace Switching ───
|
// ─── Workspace Switching ───
|
||||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
// Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
// Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||||
Mod+CTRL+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
// Mod+CTRL+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||||
Mod+CTRL+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
// Mod+CTRL+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||||
|
|
||||||
Mod+WheelScrollRight { focus-column-right; }
|
// Mod+WheelScrollRight { focus-column-right; }
|
||||||
Mod+WheelScrollLeft { focus-column-left; }
|
// Mod+WheelScrollLeft { focus-column-left; }
|
||||||
Mod+CTRL+WheelScrollRight { move-column-right; }
|
// Mod+CTRL+WheelScrollRight { move-column-right; }
|
||||||
Mod+CTRL+WheelScrollLeft { move-column-left; }
|
// Mod+CTRL+WheelScrollLeft { move-column-left; }
|
||||||
|
|
||||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
// Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
// Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||||
Mod+CTRL+Shift+WheelScrollDown { move-column-right; }
|
// Mod+CTRL+Shift+WheelScrollDown { move-column-right; }
|
||||||
Mod+CTRL+Shift+WheelScrollUp { move-column-left; }
|
// Mod+CTRL+Shift+WheelScrollUp { move-column-left; }
|
||||||
|
|
||||||
Alt+1 { focus-workspace 1; }
|
Alt+1 { focus-workspace 1; }
|
||||||
Alt+2 { focus-workspace 2; }
|
Alt+2 { focus-workspace 2; }
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
layout {
|
layout {
|
||||||
gaps 16 // Gap between windows
|
gaps 16 // Gap between windows
|
||||||
center-focused-column "always" // Don’t auto-center focused column
|
center-focused-column "on-overflow" // Don’t auto-center focused column
|
||||||
|
|
||||||
background-color "transparent" // <- needed for noctalia-shell to set wallpaper
|
background-color "transparent" // <- needed for noctalia-shell to set wallpaper
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"showIconBackground": false,
|
"showIconBackground": false,
|
||||||
"sortByMostUsed": true,
|
"sortByMostUsed": true,
|
||||||
"terminalCommand": "alacritty -e",
|
"terminalCommand": "alacritty -e",
|
||||||
"viewMode": "list"
|
"viewMode": "grid"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"mprisBlacklist": [
|
"mprisBlacklist": [
|
||||||
|
|||||||
+3
-2
@@ -3,6 +3,7 @@
|
|||||||
"lazyvim.plugins.extras.coding.luasnip",
|
"lazyvim.plugins.extras.coding.luasnip",
|
||||||
"lazyvim.plugins.extras.coding.mini-comment",
|
"lazyvim.plugins.extras.coding.mini-comment",
|
||||||
"lazyvim.plugins.extras.coding.mini-snippets",
|
"lazyvim.plugins.extras.coding.mini-snippets",
|
||||||
|
"lazyvim.plugins.extras.coding.mini-surround",
|
||||||
"lazyvim.plugins.extras.coding.yanky",
|
"lazyvim.plugins.extras.coding.yanky",
|
||||||
"lazyvim.plugins.extras.editor.dial",
|
"lazyvim.plugins.extras.editor.dial",
|
||||||
"lazyvim.plugins.extras.editor.inc-rename",
|
"lazyvim.plugins.extras.editor.inc-rename",
|
||||||
@@ -31,7 +32,7 @@
|
|||||||
],
|
],
|
||||||
"install_version": 8,
|
"install_version": 8,
|
||||||
"news": {
|
"news": {
|
||||||
"NEWS.md": "10960"
|
"NEWS.md": "11866"
|
||||||
},
|
},
|
||||||
"version": 8
|
"version": 8
|
||||||
}
|
}
|
||||||
@@ -62,5 +62,5 @@ require("lazy").setup({
|
|||||||
-- colorscheme that will be used when installing plugins.
|
-- colorscheme that will be used when installing plugins.
|
||||||
install = { colorscheme = { "habamax" } },
|
install = { colorscheme = { "habamax" } },
|
||||||
-- automatically check for plugin updates
|
-- automatically check for plugin updates
|
||||||
checker = { enabled = true },
|
-- checker = { enabled = true },
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
return {
|
return {
|
||||||
"MeanderingProgrammer/render-markdown.nvim",
|
"MeanderingProgrammer/render-markdown.nvim",
|
||||||
dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.nvim" }, -- if you use the mini.nvim suite
|
dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-mini/mini.nvim" }, -- if you use the mini.nvim suite
|
||||||
---@module 'render-markdown'
|
---@module 'render-markdown'
|
||||||
---@type render.md.UserConfig
|
---@type render.md.UserConfig
|
||||||
opts = {},
|
opts = {},
|
||||||
|
|||||||
+151
@@ -0,0 +1,151 @@
|
|||||||
|
# shellcheck shell=bash
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Utility functions for zoxide.
|
||||||
|
#
|
||||||
|
|
||||||
|
# pwd based on the value of _ZO_RESOLVE_SYMLINKS.
|
||||||
|
function __zoxide_pwd() {
|
||||||
|
\builtin pwd -L
|
||||||
|
}
|
||||||
|
|
||||||
|
# cd + custom logic based on the value of _ZO_ECHO.
|
||||||
|
function __zoxide_cd() {
|
||||||
|
# shellcheck disable=SC2164
|
||||||
|
\builtin cd -- "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Hook configuration for zoxide.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Hook to add new entries to the database.
|
||||||
|
__zoxide_oldpwd="$(__zoxide_pwd)"
|
||||||
|
|
||||||
|
function __zoxide_hook() {
|
||||||
|
\builtin local -r retval="$?"
|
||||||
|
\builtin local pwd_tmp
|
||||||
|
pwd_tmp="$(__zoxide_pwd)"
|
||||||
|
if [[ ${__zoxide_oldpwd} != "${pwd_tmp}" ]]; then
|
||||||
|
__zoxide_oldpwd="${pwd_tmp}"
|
||||||
|
\command zoxide add -- "${__zoxide_oldpwd}"
|
||||||
|
fi
|
||||||
|
return "${retval}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialize hook.
|
||||||
|
if [[ ${PROMPT_COMMAND:=} != *'__zoxide_hook'* ]]; then
|
||||||
|
PROMPT_COMMAND="__zoxide_hook;${PROMPT_COMMAND#;}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Report common issues.
|
||||||
|
function __zoxide_doctor() {
|
||||||
|
[[ ${_ZO_DOCTOR:-1} -ne 0 ]] || return 0
|
||||||
|
[[ ${PROMPT_COMMAND:=} != *'__zoxide_hook'* ]] || return 0
|
||||||
|
|
||||||
|
_ZO_DOCTOR=0
|
||||||
|
\builtin printf '%s\n' \
|
||||||
|
'zoxide: detected a possible configuration issue.' \
|
||||||
|
'Please ensure that zoxide is initialized right at the end of your shell configuration file (usually ~/.bashrc).' \
|
||||||
|
'' \
|
||||||
|
'If the issue persists, consider filing an issue at:' \
|
||||||
|
'https://github.com/ajeetdsouza/zoxide/issues' \
|
||||||
|
'' \
|
||||||
|
'Disable this message by setting _ZO_DOCTOR=0.' \
|
||||||
|
'' >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# When using zoxide with --no-cmd, alias these internal functions as desired.
|
||||||
|
#
|
||||||
|
|
||||||
|
__zoxide_z_prefix='z#'
|
||||||
|
|
||||||
|
# Jump to a directory using only keywords.
|
||||||
|
function __zoxide_z() {
|
||||||
|
__zoxide_doctor
|
||||||
|
|
||||||
|
# shellcheck disable=SC2199
|
||||||
|
if [[ $# -eq 0 ]]; then
|
||||||
|
__zoxide_cd ~
|
||||||
|
elif [[ $# -eq 1 && $1 == '-' ]]; then
|
||||||
|
__zoxide_cd "${OLDPWD}"
|
||||||
|
elif [[ $# -eq 1 && -d $1 ]]; then
|
||||||
|
__zoxide_cd "$1"
|
||||||
|
elif [[ $# -eq 2 && $1 == '--' ]]; then
|
||||||
|
__zoxide_cd "$2"
|
||||||
|
elif [[ ${@: -1} == "${__zoxide_z_prefix}"?* ]]; then
|
||||||
|
# shellcheck disable=SC2124
|
||||||
|
\builtin local result="${@: -1}"
|
||||||
|
__zoxide_cd "${result:${#__zoxide_z_prefix}}"
|
||||||
|
else
|
||||||
|
\builtin local result
|
||||||
|
# shellcheck disable=SC2312
|
||||||
|
result="$(\command zoxide query --exclude "$(__zoxide_pwd)" -- "$@")" &&
|
||||||
|
__zoxide_cd "${result}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Jump to a directory using interactive search.
|
||||||
|
function __zoxide_zi() {
|
||||||
|
__zoxide_doctor
|
||||||
|
\builtin local result
|
||||||
|
result="$(\command zoxide query --interactive -- "$@")" && __zoxide_cd "${result}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Commands for zoxide. Disable these using --no-cmd.
|
||||||
|
#
|
||||||
|
|
||||||
|
\builtin unalias z &>/dev/null || \builtin true
|
||||||
|
function z() {
|
||||||
|
__zoxide_z "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
\builtin unalias zi &>/dev/null || \builtin true
|
||||||
|
function zi() {
|
||||||
|
__zoxide_zi "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Load completions.
|
||||||
|
# - Bash 4.4+ is required to use `@Q`.
|
||||||
|
# - Completions require line editing. Since Bash supports only two modes of
|
||||||
|
# line editing (`vim` and `emacs`), we check if either them is enabled.
|
||||||
|
# - Completions don't work on `dumb` terminals.
|
||||||
|
if [[ ${BASH_VERSINFO[0]:-0} -eq 4 && ${BASH_VERSINFO[1]:-0} -ge 4 || ${BASH_VERSINFO[0]:-0} -ge 5 ]] &&
|
||||||
|
[[ :"${SHELLOPTS}": =~ :(vi|emacs): && ${TERM} != 'dumb' ]]; then
|
||||||
|
# Use `printf '\e[5n'` to redraw line after fzf closes.
|
||||||
|
\builtin bind '"\e[0n": redraw-current-line' &>/dev/null
|
||||||
|
|
||||||
|
function __zoxide_z_complete() {
|
||||||
|
# Only show completions when the cursor is at the end of the line.
|
||||||
|
[[ ${#COMP_WORDS[@]} -eq $((COMP_CWORD + 1)) ]] || return
|
||||||
|
|
||||||
|
# If there is only one argument, use `cd` completions.
|
||||||
|
if [[ ${#COMP_WORDS[@]} -eq 2 ]]; then
|
||||||
|
\builtin mapfile -t COMPREPLY < <(
|
||||||
|
\builtin compgen -A directory -- "${COMP_WORDS[-1]}" || \builtin true
|
||||||
|
)
|
||||||
|
# If there is a space after the last word, use interactive selection.
|
||||||
|
elif [[ -z ${COMP_WORDS[-1]} ]] && [[ ${COMP_WORDS[-2]} != "${__zoxide_z_prefix}"?* ]]; then
|
||||||
|
\builtin local result
|
||||||
|
# shellcheck disable=SC2312
|
||||||
|
result="$(\command zoxide query --exclude "$(__zoxide_pwd)" --interactive -- "${COMP_WORDS[@]:1:${#COMP_WORDS[@]}-2}")" &&
|
||||||
|
COMPREPLY=("${__zoxide_z_prefix}${result}/")
|
||||||
|
\builtin printf '\e[5n'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
\builtin complete -F __zoxide_z_complete -o filenames -- z
|
||||||
|
\builtin complete -r zi &>/dev/null || \builtin true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# To initialize zoxide, add this to your shell configuration file (usually ~/.bashrc):
|
||||||
|
#
|
||||||
|
# eval "$(zoxide init bash)"
|
||||||
Reference in New Issue
Block a user