summaryrefslogtreecommitdiff
path: root/.config/fish/conf.d
diff options
context:
space:
mode:
authorMica White <botahamec@outlook.com>2026-01-31 16:03:57 -0500
committerMica White <botahamec@outlook.com>2026-01-31 16:03:57 -0500
commit73a217ffa13aa728f1903b782428f7f522b4539a (patch)
treefde1ef460fed0cc6023f8aacebf3d5fb3043b700 /.config/fish/conf.d
Initial dotfile stuff
Diffstat (limited to '.config/fish/conf.d')
-rw-r--r--.config/fish/conf.d/fish_frozen_key_bindings.fish14
-rw-r--r--.config/fish/conf.d/fzf.fish28
2 files changed, 42 insertions, 0 deletions
diff --git a/.config/fish/conf.d/fish_frozen_key_bindings.fish b/.config/fish/conf.d/fish_frozen_key_bindings.fish
new file mode 100644
index 0000000..495aee9
--- /dev/null
+++ b/.config/fish/conf.d/fish_frozen_key_bindings.fish
@@ -0,0 +1,14 @@
+# This file was created by fish when upgrading to version 4.3, to migrate
+# the 'fish_key_bindings' variable from its old default scope (universal)
+# to its new default scope (global). We recommend you delete this file
+# and configure key bindings in ~/.config/fish/config.fish if needed.
+
+# set --global fish_key_bindings fish_default_key_bindings
+
+# Prior to version 4.3, fish shipped an event handler that runs
+# `set --universal fish_key_bindings fish_default_key_bindings`
+# whenever the fish_key_bindings variable is erased.
+# This means that as long as any fish < 4.3 is still running on this system,
+# we cannot complete the migration.
+# As a workaround, erase the universal variable at every shell startup.
+set --erase --universal fish_key_bindings
diff --git a/.config/fish/conf.d/fzf.fish b/.config/fish/conf.d/fzf.fish
new file mode 100644
index 0000000..8156c11
--- /dev/null
+++ b/.config/fish/conf.d/fzf.fish
@@ -0,0 +1,28 @@
+# fzf.fish is only meant to be used in interactive mode. If not in interactive mode and not in CI, skip the config to speed up shell startup
+if not status is-interactive && test "$CI" != true
+ exit
+end
+
+# Because of scoping rules, to capture the shell variables exactly as they are, we must read
+# them before even executing _fzf_search_variables. We use psub to store the
+# variables' info in temporary files and pass in the filenames as arguments.
+# This variable is global so that it can be referenced by fzf_configure_bindings and in tests
+set --global _fzf_search_vars_command '_fzf_search_variables (set --show | psub) (set --names | psub)'
+
+
+# Install the default bindings, which are mnemonic and minimally conflict with fish's preset bindings
+fzf_configure_bindings
+
+# Doesn't erase autoloaded _fzf_* functions because they are not easily accessible once key bindings are erased
+function _fzf_uninstall --on-event fzf_uninstall
+ _fzf_uninstall_bindings
+
+ set --erase _fzf_search_vars_command
+ functions --erase _fzf_uninstall _fzf_migration_message _fzf_uninstall_bindings fzf_configure_bindings
+ complete --erase fzf_configure_bindings
+
+ set_color cyan
+ echo "fzf.fish uninstalled."
+ echo "You may need to manually remove fzf_configure_bindings from your config.fish if you were using custom key bindings."
+ set_color normal
+end