From 4bc389a854aa64bdb5d9dd5949695302c040802d Mon Sep 17 00:00:00 2001
From: Luna Komorebi <lunax@mlunax.com>
Date: Fri, 2 Jun 2023 12:26:16 +0200
Subject: [PATCH] Add Atuin shell integration and config file

---
 .zsh/atuin.zsh           |  5 +++
 config/atuin/config.toml | 84 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 89 insertions(+)
 create mode 100644 .zsh/atuin.zsh
 create mode 100644 config/atuin/config.toml

diff --git a/.zsh/atuin.zsh b/.zsh/atuin.zsh
new file mode 100644
index 0000000..bc4731a
--- /dev/null
+++ b/.zsh/atuin.zsh
@@ -0,0 +1,5 @@
+if iscmd atuin; then 
+  export ATUIN_NOBIND="true"
+  bindkey '^r' _atuin_search_widget
+  eval "$(atuin init zsh)"
+fi
diff --git a/config/atuin/config.toml b/config/atuin/config.toml
new file mode 100644
index 0000000..dd2f773
--- /dev/null
+++ b/config/atuin/config.toml
@@ -0,0 +1,84 @@
+## where to store your database, default is your system data directory
+## mac: ~/Library/Application Support/com.elliehuxtable.atuin/history.db
+## linux: ~/.local/share/atuin/history.db
+# db_path = "~/.history.db"
+
+## where to store your encryption key, default is your system data directory
+# key_path = "~/.key"
+
+## where to store your auth session token, default is your system data directory
+# session_path = "~/.key"
+
+## date format used, either "us" or "uk"
+# dialect = "us"
+
+## enable or disable automatic sync
+auto_sync = false
+
+## enable or disable automatic update checks
+# update_check = true
+
+## address of the sync server
+sync_address = ""
+
+## how often to sync history. note that this is only triggered when a command
+## is ran, so sync intervals may well be longer
+## set it to 0 to sync after every command
+# sync_frequency = "1h"
+
+## which search mode to use
+## possible values: prefix, fulltext, fuzzy, skim
+# search_mode = "fuzzy"
+
+## which filter mode to use
+## possible values: global, host, session, directory
+# filter_mode = "global"
+
+## which filter mode to use when atuin is invoked from a shell up-key binding
+## the accepted values are identical to those of "filter_mode"
+## leave unspecified to use same mode set in "filter_mode"
+# filter_mode_shell_up_key_binding = "global"
+
+## which style to use
+## possible values: auto, full, compact
+# style = "auto"
+
+## the maximum number of lines the interface should take up
+## set it to 0 to always go full screen
+# inline_height = 0
+
+## enable or disable showing a preview of the selected command
+## useful when the command is longer than the terminal width and is cut off
+# show_preview = false
+
+## what to do when the escape key is pressed when searching
+## possible values: return-original, return-query
+# exit_mode = "return-original"
+
+## possible values: emacs, subl
+# word_jump_mode = "emacs"
+
+## characters that count as a part of a word
+# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+## number of context lines to show when scrolling by pages
+# scroll_context_lines = 1
+
+## prevent commands matching any of these regexes from being written to history.
+## Note that these regular expressions are unanchored, i.e. if they don't start
+## with ^ or end with $, they'll match anywhere in the command.
+## For details on the supported regular expression syntax, see
+## https://docs.rs/regex/latest/regex/#syntax
+# history_filter = [
+#   "^secret-cmd",
+#   "^innocuous-cmd .*--secret=.+"
+# ]
+
+## prevent commands run with cwd matching any of these regexes from being written
+## to history. Note that these regular expressions are unanchored, i.e. if they don't
+## start with ^ or end with $, they'll match anywhere in CWD.
+## For details on the supported regular expression syntax, see
+## https://docs.rs/regex/latest/regex/#syntax
+# cwd_filter = [
+#   "^/very/secret/area"
+# ]