added atuin, changes in kanata, added wezterm
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
{"binaries":["atuin"],"binary_aliases":{},"cdylibs":[],"cstaticlibs":[],"install_layout":"flat","install_prefix":"/home/liph/.atuin/bin","modify_path":true,"provider":{"source":"cargo-dist","version":"0.31.0"},"source":{"app_name":"atuin","name":"atuin","owner":"atuinsh","release_type":"github"},"version":"18.13.3"}
|
||||||
@@ -0,0 +1,372 @@
|
|||||||
|
## Base directory for Atuin data files (databases, keys, session, etc.)
|
||||||
|
## All data file paths default to being relative to this directory.
|
||||||
|
## linux/mac: ~/.local/share/atuin (or XDG_DATA_HOME/atuin)
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin
|
||||||
|
# data_dir = "~/.local/share/atuin"
|
||||||
|
|
||||||
|
## where to store your database, default is your system data directory
|
||||||
|
## linux/mac: ~/.local/share/atuin/history.db
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin/history.db
|
||||||
|
# db_path = "~/.history.db"
|
||||||
|
|
||||||
|
## where to store your encryption key, default is your system data directory
|
||||||
|
## linux/mac: ~/.local/share/atuin/key
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin/key
|
||||||
|
# key_path = "~/.key"
|
||||||
|
|
||||||
|
## where to store your auth session token, default is your system data directory
|
||||||
|
## linux/mac: ~/.local/share/atuin/session
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin/session
|
||||||
|
# session_path = "~/.session"
|
||||||
|
|
||||||
|
## date format used, either "us" or "uk"
|
||||||
|
# dialect = "us"
|
||||||
|
|
||||||
|
## default timezone to use when displaying time
|
||||||
|
## either "l", "local" to use the system's current local timezone, or an offset
|
||||||
|
## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]"
|
||||||
|
## for example: "+9", "-05", "+03:30", "-01:23:45", etc.
|
||||||
|
# timezone = "local"
|
||||||
|
|
||||||
|
## enable or disable automatic sync
|
||||||
|
# auto_sync = true
|
||||||
|
|
||||||
|
## enable or disable automatic update checks
|
||||||
|
# update_check = true
|
||||||
|
|
||||||
|
## address of the sync server
|
||||||
|
# sync_address = "https://api.atuin.sh"
|
||||||
|
|
||||||
|
## 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 = "10m"
|
||||||
|
|
||||||
|
## which search mode to use
|
||||||
|
## possible values: prefix, fulltext, fuzzy, skim
|
||||||
|
# search_mode = "daemon-fuzzy"
|
||||||
|
|
||||||
|
## which filter mode to use by default
|
||||||
|
## possible values: "global", "host", "session", "session-preload", "directory", "workspace"
|
||||||
|
## consider using search.filters to customize the enablement and order of filter modes
|
||||||
|
# filter_mode = "global"
|
||||||
|
|
||||||
|
## With workspace filtering enabled, Atuin will filter for commands executed
|
||||||
|
## in any directory within a git repository tree (default: false).
|
||||||
|
##
|
||||||
|
## To use workspace mode by default when available, set this to true and
|
||||||
|
## set filter_mode to "workspace" or leave it unspecified and
|
||||||
|
## set search.filters to include "workspace" before other filter modes.
|
||||||
|
# workspaces = false
|
||||||
|
|
||||||
|
## 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 search mode to use when atuin is invoked from a shell up-key binding
|
||||||
|
## the accepted values are identical to those of "search_mode"
|
||||||
|
## leave unspecified to use same mode set in "search_mode"
|
||||||
|
# search_mode_shell_up_key_binding = "fuzzy"
|
||||||
|
|
||||||
|
## 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 = 20
|
||||||
|
|
||||||
|
## the maximum number of lines the interface should take up
|
||||||
|
## when atuin is invoked from a shell up-key binding
|
||||||
|
## the accepted values are identical to those of "inline_height"
|
||||||
|
# inline_height_shell_up_key_binding = 0
|
||||||
|
|
||||||
|
## Invert the UI - put the search bar at the top , Default to `false`
|
||||||
|
# invert = false
|
||||||
|
|
||||||
|
## 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 = true
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
|
||||||
|
## alt-0 .. alt-9
|
||||||
|
# ctrl_n_shortcuts = false
|
||||||
|
|
||||||
|
## Show numeric shortcuts (1..9) beside list items in the TUI
|
||||||
|
## set to false to hide the moving numbers if you find them distracting
|
||||||
|
show_numeric_shortcuts = false
|
||||||
|
|
||||||
|
## default history list format - can also be specified with the --format arg
|
||||||
|
# history_format = "{time}\t{command}\t{duration}"
|
||||||
|
|
||||||
|
## 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",
|
||||||
|
# ]
|
||||||
|
|
||||||
|
## Configure the maximum height of the preview to show.
|
||||||
|
## Useful when you have long scripts in your history that you want to distinguish
|
||||||
|
## by more than the first few lines.
|
||||||
|
# max_preview_height = 4
|
||||||
|
|
||||||
|
## Configure whether or not to show the help row, which includes the current Atuin
|
||||||
|
## version (and whether an update is available), a keymap hint, and the total
|
||||||
|
## amount of commands in your history.
|
||||||
|
# show_help = true
|
||||||
|
|
||||||
|
## Configure whether or not to show tabs for search and inspect
|
||||||
|
# show_tabs = true
|
||||||
|
|
||||||
|
## Configure whether or not the tabs row may be auto-hidden, which includes the current Atuin
|
||||||
|
## tab, such as Search or Inspector, and other tabs you may wish to see. This will
|
||||||
|
## only be hidden if there are fewer than this count of lines available, and does not affect the use
|
||||||
|
## of keyboard shortcuts to switch tab. 0 to never auto-hide, default is 8 (lines).
|
||||||
|
## This is ignored except in `compact` mode.
|
||||||
|
# auto_hide_height = 8
|
||||||
|
|
||||||
|
## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
|
||||||
|
## 1. AWS key id
|
||||||
|
## 2. Github pat (old and new)
|
||||||
|
## 3. Slack oauth tokens (bot, user)
|
||||||
|
## 4. Slack webhooks
|
||||||
|
## 5. Stripe live/test keys
|
||||||
|
# secrets_filter = true
|
||||||
|
|
||||||
|
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command,
|
||||||
|
## whereas tab will put the command in the prompt for editing.
|
||||||
|
## If set to false, both enter and tab will place the command in the prompt for editing.
|
||||||
|
## This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
|
||||||
|
enter_accept = true
|
||||||
|
search_mode = "fuzzy"
|
||||||
|
|
||||||
|
## Defaults to false. If enabled, when triggered after &&, || or |, Atuin will complete commands to chain rather than replace the current line.
|
||||||
|
# command_chaining = false
|
||||||
|
|
||||||
|
## Defaults to "emacs". This specifies the keymap on the startup of `atuin
|
||||||
|
## search`. If this is set to "auto", the startup keymap mode in the Atuin
|
||||||
|
## search is automatically selected based on the shell's keymap where the
|
||||||
|
## keybinding is defined. If this is set to "emacs", "vim-insert", or
|
||||||
|
## "vim-normal", the startup keymap mode in the Atuin search is forced to be
|
||||||
|
## the specified one.
|
||||||
|
# keymap_mode = "auto"
|
||||||
|
|
||||||
|
## Cursor style in each keymap mode. If specified, the cursor style is changed
|
||||||
|
## in entering the cursor shape. Available values are "default" and
|
||||||
|
## "{blink,steady}-{block,underline,bar}".
|
||||||
|
# keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" }
|
||||||
|
|
||||||
|
# network_connect_timeout = 5
|
||||||
|
# network_timeout = 5
|
||||||
|
|
||||||
|
## Timeout (in seconds) for acquiring a local database connection (sqlite)
|
||||||
|
# local_timeout = 5
|
||||||
|
|
||||||
|
## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
|
||||||
|
## Alternatively, set env NO_MOTION=true
|
||||||
|
# prefers_reduced_motion = false
|
||||||
|
|
||||||
|
[stats]
|
||||||
|
## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
|
||||||
|
# common_subcommands = [
|
||||||
|
# "apt",
|
||||||
|
# "cargo",
|
||||||
|
# "composer",
|
||||||
|
# "dnf",
|
||||||
|
# "docker",
|
||||||
|
# "dotnet",
|
||||||
|
# "git",
|
||||||
|
# "go",
|
||||||
|
# "ip",
|
||||||
|
# "jj",
|
||||||
|
# "kubectl",
|
||||||
|
# "nix",
|
||||||
|
# "nmcli",
|
||||||
|
# "npm",
|
||||||
|
# "pecl",
|
||||||
|
# "pnpm",
|
||||||
|
# "podman",
|
||||||
|
# "port",
|
||||||
|
# "systemctl",
|
||||||
|
# "tmux",
|
||||||
|
# "yarn",
|
||||||
|
# ]
|
||||||
|
|
||||||
|
## Set commands that should be totally stripped and ignored from stats
|
||||||
|
# common_prefix = ["sudo"]
|
||||||
|
|
||||||
|
## Set commands that will be completely ignored from stats
|
||||||
|
# ignored_commands = [
|
||||||
|
# "cd",
|
||||||
|
# "ls",
|
||||||
|
# "vi"
|
||||||
|
# ]
|
||||||
|
|
||||||
|
[keys]
|
||||||
|
# Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry.
|
||||||
|
# scroll_exits = true
|
||||||
|
|
||||||
|
# Defaults to true. The left arrow key will exit the TUI when scrolling before the first character
|
||||||
|
# exit_past_line_start = true
|
||||||
|
|
||||||
|
# Defaults to true. The right arrow key performs the same functionality as Tab and copies the selected line to the command line to be modified.
|
||||||
|
# accept_past_line_end = true
|
||||||
|
|
||||||
|
# Defaults to false. The left arrow key performs the same functionality as Tab and copies the selected line to the command line to be modified.
|
||||||
|
# accept_past_line_start = false
|
||||||
|
|
||||||
|
# Defaults to false. The backspace key performs the same functionality as Tab and copies the selected line to the command line to be modified when at the start of the line.
|
||||||
|
# accept_with_backspace = false
|
||||||
|
|
||||||
|
[sync]
|
||||||
|
# Enable sync v2 by default
|
||||||
|
# This ensures that sync v2 is enabled for new installs only
|
||||||
|
# In a later release it will become the default across the board
|
||||||
|
records = true
|
||||||
|
|
||||||
|
[preview]
|
||||||
|
## which preview strategy to use to calculate the preview height (respects max_preview_height).
|
||||||
|
## possible values: auto, static
|
||||||
|
## auto: length of the selected command.
|
||||||
|
## static: length of the longest command stored in the history.
|
||||||
|
## fixed: use max_preview_height as fixed height.
|
||||||
|
# strategy = "auto"
|
||||||
|
|
||||||
|
[daemon]
|
||||||
|
enabled = true
|
||||||
|
autostart = true
|
||||||
|
## Enables using the daemon to sync.
|
||||||
|
# enabled = false
|
||||||
|
|
||||||
|
## Automatically start and manage the daemon when needed.
|
||||||
|
## Not compatible with `systemd_socket = true`.
|
||||||
|
# autostart = false
|
||||||
|
|
||||||
|
## How often the daemon should sync in seconds
|
||||||
|
# sync_frequency = 300
|
||||||
|
|
||||||
|
## The path to the unix socket used by the daemon (on unix systems)
|
||||||
|
## linux/mac: ~/.local/share/atuin/atuin.sock
|
||||||
|
## windows: Not Supported
|
||||||
|
# socket_path = "~/.local/share/atuin/atuin.sock"
|
||||||
|
|
||||||
|
## The daemon pidfile used for lifecycle management.
|
||||||
|
## Defaults to the Atuin data directory.
|
||||||
|
# pidfile_path = "~/.local/share/atuin/atuin-daemon.pid"
|
||||||
|
|
||||||
|
## Use systemd socket activation rather than opening the given path (the path must still be correct for the client)
|
||||||
|
## linux: false
|
||||||
|
## mac/windows: Not Supported
|
||||||
|
# systemd_socket = false
|
||||||
|
|
||||||
|
## The port that should be used for TCP on non unix systems
|
||||||
|
# tcp_port = 8889
|
||||||
|
|
||||||
|
# [theme]
|
||||||
|
## Color theme to use for rendering in the terminal.
|
||||||
|
## There are some built-in themes, including the base theme ("default"),
|
||||||
|
## "autumn" and "marine". You can add your own themes to the "./themes" subdirectory of your
|
||||||
|
## Atuin config (or ATUIN_THEME_DIR, if provided) as TOML files whose keys should be one or
|
||||||
|
## more of AlertInfo, AlertWarn, AlertError, Annotation, Base, Guidance, Important, and
|
||||||
|
## the string values as lowercase entries from this list:
|
||||||
|
## https://ogeon.github.io/docs/palette/master/palette/named/index.html
|
||||||
|
## If you provide a custom theme file, it should be called "NAME.toml" and the theme below
|
||||||
|
## should be the stem, i.e. `theme = "NAME"` for your chosen NAME.
|
||||||
|
# name = "autumn"
|
||||||
|
|
||||||
|
## Whether the theme manager should output normal or extra information to help fix themes.
|
||||||
|
## Boolean, true or false. If unset, left up to the theme manager.
|
||||||
|
# debug = true
|
||||||
|
|
||||||
|
[search]
|
||||||
|
## The list of enabled filter modes, in order of priority.
|
||||||
|
## The "workspace" mode is skipped when not in a workspace or workspaces = false.
|
||||||
|
## Default filter mode can be overridden with the filter_mode setting.
|
||||||
|
# filters = [ "global", "host", "session", "session-preload", "workspace", "directory" ]
|
||||||
|
|
||||||
|
[tmux]
|
||||||
|
## Enable using atuin with tmux popup (requires tmux >= 3.2)
|
||||||
|
## When enabled and running inside tmux, Atuin will use a popup window for interactive search.
|
||||||
|
## Set to false to disable the popup.
|
||||||
|
## This can also be controlled with the ATUIN_TMUX_POPUP environment variable.
|
||||||
|
## Note: The tmux popup is currently supported in zsh, bash, and fish shells. This currently doesn't work with iTerm native tmux integration.
|
||||||
|
# enabled = false
|
||||||
|
|
||||||
|
## Width of the tmux popup window
|
||||||
|
## Can be a percentage, or integer (e.g. "100" means 100 characters wide)
|
||||||
|
# width = "80%"
|
||||||
|
|
||||||
|
## Height of the tmux popup window
|
||||||
|
## Can be a percentage, or integer (e.g. "100" means 100 lines tall)
|
||||||
|
# height = "60%"
|
||||||
|
|
||||||
|
[ui]
|
||||||
|
|
||||||
|
[ai]
|
||||||
|
enabled = true
|
||||||
|
## Columns to display in the interactive search, from left to right.
|
||||||
|
## The selection indicator (" > ") is always shown first implicitly.
|
||||||
|
##
|
||||||
|
## Each column can be specified as a simple string (uses default width)
|
||||||
|
## or as an object with type, width, and expand:
|
||||||
|
## { type = "directory", width = 30, expand = true }
|
||||||
|
##
|
||||||
|
## Available column types (with default widths):
|
||||||
|
## duration (5) - Command execution duration (e.g., "123ms")
|
||||||
|
## time (8) - Relative time since execution (e.g., "59m ago")
|
||||||
|
## datetime (16) - Absolute timestamp (e.g., "2025-01-22 14:35")
|
||||||
|
## directory (20) - Working directory (truncated if too long)
|
||||||
|
## host (15) - Hostname where command was run
|
||||||
|
## user (10) - Username
|
||||||
|
## exit (3) - Exit code (colored by success/failure)
|
||||||
|
## command (*) - The command itself (expands by default)
|
||||||
|
##
|
||||||
|
## The "expand" option (default: true for command, false for others) makes a
|
||||||
|
## column fill remaining space. Only one column should have expand = true.
|
||||||
|
##
|
||||||
|
## Default:
|
||||||
|
# columns = ["duration", "time", "command"]
|
||||||
|
##
|
||||||
|
## Examples:
|
||||||
|
##
|
||||||
|
## Minimal - more space for commands:
|
||||||
|
# columns = ["duration", "command"]
|
||||||
|
##
|
||||||
|
## With wider directory column:
|
||||||
|
# columns = ["duration", { type = "directory", width = 30 }, "command"]
|
||||||
|
##
|
||||||
|
## Show host for multi-machine sync users:
|
||||||
|
# columns = ["duration", "time", "host", "command"]
|
||||||
|
##
|
||||||
|
## Show exit codes prominently:
|
||||||
|
# columns = ["exit", "duration", "command"]
|
||||||
|
##
|
||||||
|
## Make directory expand instead of command:
|
||||||
|
# columns = ["duration", "time", { type = "directory", expand = true }, { type = "command", expand = false }]
|
||||||
@@ -13,14 +13,14 @@
|
|||||||
|
|
||||||
(defalias
|
(defalias
|
||||||
escctrl (tap-hold 250 250 esc lctrl)
|
escctrl (tap-hold 250 250 esc lctrl)
|
||||||
a (multi f24 (tap-hold $tap-time $hold-time a lmet))
|
a (tap-hold $tap-time $hold-time a lmet)
|
||||||
s (multi f24 (tap-hold $tap-time $hold-time s lalt))
|
s (tap-hold $tap-time $hold-time s lalt)
|
||||||
d (multi f24 (tap-hold $tap-time $hold-time d lsft))
|
d (tap-hold $tap-time $hold-time d lsft)
|
||||||
f (multi f24 (tap-hold $tap-time $hold-time f lctl))
|
f (tap-hold $tap-time $hold-time f lctl)
|
||||||
j (multi f24 (tap-hold $tap-time $hold-time j rctl))
|
j (tap-hold $tap-time $hold-time j rctl)
|
||||||
k (multi f24 (tap-hold $tap-time $hold-time k rsft))
|
k (tap-hold $tap-time $hold-time k rsft)
|
||||||
l (multi f24 (tap-hold $tap-time $hold-time l ralt))
|
l (tap-hold $tap-time $hold-time l ralt)
|
||||||
; (multi f24 (tap-hold $tap-time $hold-time ; rmet))
|
; (tap-hold $tap-time $hold-time ; rmet)
|
||||||
)
|
)
|
||||||
|
|
||||||
(deflayer base
|
(deflayer base
|
||||||
|
|||||||
@@ -76,14 +76,15 @@ layout {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
spawn-at-startup "bash" "/mnt/tank/scripts/fix-bitwarden.sh"
|
||||||
spawn-at-startup "waybar" "-c" "/home/liph/.config/niri/waybar-niri/config.jsonc" "-s" "/home/liph/.config/niri/waybar-niri/style.css"
|
spawn-at-startup "waybar" "-c" "/home/liph/.config/niri/waybar-niri/config.jsonc" "-s" "/home/liph/.config/niri/waybar-niri/style.css"
|
||||||
spawn-at-startup "swaync"
|
spawn-at-startup "swaync"
|
||||||
// spawn-at-startup "kanshi"
|
// spawn-at-startup "kanshi"
|
||||||
spawn-at-startup "swww-daemon"
|
spawn-at-startup "swww-daemon"
|
||||||
spawn-at-startup "xwayland-satellite"
|
spawn-at-startup "xwayland-satellite"
|
||||||
spawn-at-startup "gammastep" "-l" "47.38:8.54" "-t" "6000:4000"
|
spawn-at-startup "gammastep" "-l" "47.38:8.54" "-t" "6000:4000"
|
||||||
spawn-at-startup "kitty"
|
spawn-at-startup "wezterm"
|
||||||
spawn-at-startup "kanshi"
|
// spawn-at-startup "kanshi"
|
||||||
spawn-at-startup "librewolf"
|
spawn-at-startup "librewolf"
|
||||||
spawn-at-startup "sh" "-c" "sleep 5 && exec swayidle -w timeout 300 hyprlock timeout 600 'niri msg action power-off-monitors' resume 'niri msg action power-on-monitors' timeout 3600 'systemctl suspend'"
|
spawn-at-startup "sh" "-c" "sleep 5 && exec swayidle -w timeout 300 hyprlock timeout 600 'niri msg action power-off-monitors' resume 'niri msg action power-on-monitors' timeout 3600 'systemctl suspend'"
|
||||||
prefer-no-csd
|
prefer-no-csd
|
||||||
@@ -124,25 +125,15 @@ window-rule {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
window-rule {
|
window-rule {
|
||||||
match at-startup=true app-id="kitty"
|
match at-startup=true app-id="wezterm"
|
||||||
open-on-workspace "1"
|
open-on-workspace "1"
|
||||||
clip-to-geometry true
|
open-floating false
|
||||||
|
// clip-to-geometry true
|
||||||
}
|
}
|
||||||
window-rule {
|
window-rule {
|
||||||
match at-startup=false app-id="kitty"
|
match at-startup=false app-id="wezterm"
|
||||||
clip-to-geometry true
|
open-floating false
|
||||||
}
|
// clip-to-geometry true
|
||||||
// browser window-rules
|
|
||||||
window-rule {
|
|
||||||
match at-startup=true app-id="librewolf"
|
|
||||||
open-on-workspace "2"
|
|
||||||
open-maximized true
|
|
||||||
// geometry-corner-radius 5
|
|
||||||
clip-to-geometry true
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
match at-startup=false app-id="librewolf"
|
|
||||||
clip-to-geometry true
|
|
||||||
}
|
}
|
||||||
window-rule {
|
window-rule {
|
||||||
match app-id="Claude"
|
match app-id="Claude"
|
||||||
@@ -152,6 +143,19 @@ window-rule {
|
|||||||
}
|
}
|
||||||
clip-to-geometry true
|
clip-to-geometry true
|
||||||
}
|
}
|
||||||
|
// 1. Generic rule for all LibreWolf windows
|
||||||
|
window-rule {
|
||||||
|
match app-id="librewolf"
|
||||||
|
open-maximized true
|
||||||
|
clip-to-geometry true
|
||||||
|
open-floating false
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. Specific rule for windows opening at startup
|
||||||
|
window-rule {
|
||||||
|
match at-startup=true app-id="librewolf"
|
||||||
|
open-on-workspace "2"
|
||||||
|
}
|
||||||
window-rule {
|
window-rule {
|
||||||
match app-id="floating_btop"
|
match app-id="floating_btop"
|
||||||
default-column-width {
|
default-column-width {
|
||||||
@@ -229,7 +233,7 @@ binds {
|
|||||||
spawn "librewolf"
|
spawn "librewolf"
|
||||||
}
|
}
|
||||||
Mod+Alt+Return hotkey-overlay-title="Open Kitty" {
|
Mod+Alt+Return hotkey-overlay-title="Open Kitty" {
|
||||||
spawn "kitty"
|
spawn "wezterm"
|
||||||
}
|
}
|
||||||
Mod+Alt+Space hotkey-overlay-title="Open Wofi" {
|
Mod+Alt+Space hotkey-overlay-title="Open Wofi" {
|
||||||
spawn "wofi" "--show" "drun"
|
spawn "wofi" "--show" "drun"
|
||||||
@@ -243,7 +247,7 @@ binds {
|
|||||||
Mod+Mod5+E hotkey-overlay-title="Open Pulsemixer" {
|
Mod+Mod5+E hotkey-overlay-title="Open Pulsemixer" {
|
||||||
spawn "kitty" "--class" "floating_pulsemixer" "-e" "pulsemixer"
|
spawn "kitty" "--class" "floating_pulsemixer" "-e" "pulsemixer"
|
||||||
}
|
}
|
||||||
Mod+Mod5+R hotkey-overlay-title="Open Bluetui" {
|
Mod+Mod5+R allow-inhibiting=false hotkey-overlay-title="Open Bluetui" {
|
||||||
spawn "kitty" "--class" "floating_bluetui" "-e" "bluetui"
|
spawn "kitty" "--class" "floating_bluetui" "-e" "bluetui"
|
||||||
}
|
}
|
||||||
Mod+Mod5+T hotkey-overlay-title="Open Wavemon" {
|
Mod+Mod5+T hotkey-overlay-title="Open Wavemon" {
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
alias cl = clear
|
||||||
|
alias y = yazi
|
||||||
|
alias neo = neofetch
|
||||||
|
alias a = aerc
|
||||||
|
alias oc = opencode
|
||||||
|
|
||||||
|
# nvim
|
||||||
|
alias n = nvim
|
||||||
|
alias nv = nvim
|
||||||
|
alias nano = nvim
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
def --env cld [path: path = "~"] { clear; cd $path }
|
||||||
@@ -0,0 +1,954 @@
|
|||||||
|
# Nushell Config File
|
||||||
|
#
|
||||||
|
# version = "0.95.0"
|
||||||
|
|
||||||
|
# For more information on defining custom themes, see
|
||||||
|
# https://www.nushell.sh/book/coloring_and_theming.html
|
||||||
|
# And here is the theme collection
|
||||||
|
# https://github.com/nushell/nu_scripts/tree/main/themes
|
||||||
|
let dark_theme = {
|
||||||
|
# color for nushell primitives
|
||||||
|
separator: white
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
|
header: green_bold
|
||||||
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
# eg) {|| if $in { 'light_cyan' } else { 'light_gray' } }
|
||||||
|
bool: light_cyan
|
||||||
|
int: white
|
||||||
|
filesize: cyan
|
||||||
|
duration: white
|
||||||
|
date: purple
|
||||||
|
range: white
|
||||||
|
float: white
|
||||||
|
string: white
|
||||||
|
nothing: white
|
||||||
|
binary: white
|
||||||
|
cell-path: white
|
||||||
|
row_index: green_bold
|
||||||
|
record: white
|
||||||
|
list: white
|
||||||
|
block: white
|
||||||
|
hints: dark_gray
|
||||||
|
search_result: { bg: red fg: white }
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_external_resolved: light_yellow_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b}
|
||||||
|
shape_glob_interpolation: cyan_bold
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_keyword: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
shape_raw_string: light_purple
|
||||||
|
}
|
||||||
|
|
||||||
|
let light_theme = {
|
||||||
|
# color for nushell primitives
|
||||||
|
separator: dark_gray
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
|
header: green_bold
|
||||||
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
# eg) {|| if $in { 'dark_cyan' } else { 'dark_gray' } }
|
||||||
|
bool: dark_cyan
|
||||||
|
int: dark_gray
|
||||||
|
filesize: cyan_bold
|
||||||
|
duration: dark_gray
|
||||||
|
date: purple
|
||||||
|
range: dark_gray
|
||||||
|
float: dark_gray
|
||||||
|
string: dark_gray
|
||||||
|
nothing: dark_gray
|
||||||
|
binary: dark_gray
|
||||||
|
cell-path: dark_gray
|
||||||
|
row_index: green_bold
|
||||||
|
record: dark_gray
|
||||||
|
list: dark_gray
|
||||||
|
block: dark_gray
|
||||||
|
hints: dark_gray
|
||||||
|
search_result: { fg: white bg: red }
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_external_resolved: light_purple_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b}
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_keyword: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
shape_raw_string: light_purple
|
||||||
|
}
|
||||||
|
|
||||||
|
$env.config = {
|
||||||
|
show_banner: false
|
||||||
|
|
||||||
|
ls: {
|
||||||
|
use_ls_colors: true
|
||||||
|
}
|
||||||
|
|
||||||
|
rm: {
|
||||||
|
always_trash: false # always act as if -t was given. Can be overridden with -p
|
||||||
|
}
|
||||||
|
|
||||||
|
table: {
|
||||||
|
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
|
||||||
|
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
|
||||||
|
show_empty: true # show 'empty list' and 'empty record' placeholders for command output
|
||||||
|
padding: { left: 1, right: 1 } # a left right padding of each column in a table
|
||||||
|
trim: {
|
||||||
|
methodology: wrapping # wrapping or truncating
|
||||||
|
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
|
||||||
|
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
|
||||||
|
}
|
||||||
|
header_on_separator: false # show header text on separator/border line
|
||||||
|
# abbreviated_row_count: 10 # limit data rows from top and bottom after reaching a set point
|
||||||
|
}
|
||||||
|
|
||||||
|
error_style: "fancy" # "fancy" or "plain" for screen reader-friendly error messages
|
||||||
|
|
||||||
|
# datetime_format determines what a datetime rendered in the shell would look like.
|
||||||
|
# Behavior without this configuration point will be to "humanize" the datetime display,
|
||||||
|
# showing something like "a day ago."
|
||||||
|
datetime_format: {
|
||||||
|
# normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables
|
||||||
|
# table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format
|
||||||
|
}
|
||||||
|
|
||||||
|
explore: {
|
||||||
|
status_bar_background: { fg: "#1D1F21", bg: "#C4C9C6" },
|
||||||
|
command_bar_text: { fg: "#C4C9C6" },
|
||||||
|
highlight: { fg: "black", bg: "yellow" },
|
||||||
|
status: {
|
||||||
|
error: { fg: "white", bg: "red" },
|
||||||
|
warn: {}
|
||||||
|
info: {}
|
||||||
|
},
|
||||||
|
selected_cell: { bg: light_blue },
|
||||||
|
}
|
||||||
|
|
||||||
|
history: {
|
||||||
|
max_size: 100_000 # Session has to be reloaded for this to take effect
|
||||||
|
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
|
||||||
|
file_format: "plaintext" # "sqlite" or "plaintext"
|
||||||
|
isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions.
|
||||||
|
}
|
||||||
|
|
||||||
|
completions: {
|
||||||
|
case_sensitive: false # set to true to enable case-sensitive completions
|
||||||
|
quick: true # set this to false to prevent auto-selecting completions when only one remains
|
||||||
|
partial: true # set this to false to prevent partial filling of the prompt
|
||||||
|
algorithm: "prefix" # prefix or fuzzy
|
||||||
|
external: {
|
||||||
|
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow
|
||||||
|
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
||||||
|
completer: null # check 'carapace_completer' above as an example
|
||||||
|
}
|
||||||
|
use_ls_colors: true # set this to true to enable file/path/directory completions using LS_COLORS
|
||||||
|
}
|
||||||
|
|
||||||
|
cursor_shape: {
|
||||||
|
emacs: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default)
|
||||||
|
vi_insert: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default)
|
||||||
|
vi_normal: underscore # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default)
|
||||||
|
}
|
||||||
|
|
||||||
|
color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record
|
||||||
|
footer_mode: 25 # always, never, number_of_rows, auto
|
||||||
|
float_precision: 2 # the precision for displaying floats in tables
|
||||||
|
buffer_editor: "" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
|
||||||
|
use_ansi_coloring: true
|
||||||
|
bracketed_paste: true # enable bracketed paste, currently useless on windows
|
||||||
|
edit_mode: vi # emacs, vi
|
||||||
|
shell_integration: {
|
||||||
|
# osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title
|
||||||
|
osc2: true
|
||||||
|
# osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory
|
||||||
|
osc7: true
|
||||||
|
# osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8
|
||||||
|
osc8: true
|
||||||
|
# osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal
|
||||||
|
osc9_9: false
|
||||||
|
# osc133 is several escapes invented by Final Term which include the supported ones below.
|
||||||
|
# 133;A - Mark prompt start
|
||||||
|
# 133;B - Mark prompt end
|
||||||
|
# 133;C - Mark pre-execution
|
||||||
|
# 133;D;exit - Mark execution finished with exit code
|
||||||
|
# This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is
|
||||||
|
osc133: true
|
||||||
|
# osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features
|
||||||
|
# 633;A - Mark prompt start
|
||||||
|
# 633;B - Mark prompt end
|
||||||
|
# 633;C - Mark pre-execution
|
||||||
|
# 633;D;exit - Mark execution finished with exit code
|
||||||
|
# 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce
|
||||||
|
# 633;P;Cwd=<path> - Mark the current working directory and communicate it to the terminal
|
||||||
|
# and also helps with the run recent menu in vscode
|
||||||
|
osc633: true
|
||||||
|
# reset_application_mode is escape \x1b[?1l and was added to help ssh work better
|
||||||
|
reset_application_mode: true
|
||||||
|
}
|
||||||
|
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
||||||
|
use_kitty_protocol: false # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this.
|
||||||
|
highlight_resolved_externals: false # true enables highlighting of external commands in the repl resolved by which.
|
||||||
|
recursion_limit: 50 # the maximum number of times nushell allows recursion before stopping it
|
||||||
|
|
||||||
|
plugins: {} # Per-plugin configuration. See https://www.nushell.sh/contributor-book/plugins.html#configuration.
|
||||||
|
|
||||||
|
plugin_gc: {
|
||||||
|
# Configuration for plugin garbage collection
|
||||||
|
default: {
|
||||||
|
enabled: true # true to enable stopping of inactive plugins
|
||||||
|
stop_after: 10sec # how long to wait after a plugin is inactive to stop it
|
||||||
|
}
|
||||||
|
plugins: {
|
||||||
|
# alternate configuration for specific plugins, by name, for example:
|
||||||
|
#
|
||||||
|
# gstat: {
|
||||||
|
# enabled: false
|
||||||
|
# }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hooks: {
|
||||||
|
pre_prompt: [{||
|
||||||
|
if (which direnv | is-empty) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
direnv export json | from json | default {} | load-env
|
||||||
|
if 'PATH' in $env {
|
||||||
|
$env.PATH = ($env.PATH | split row (char esep))
|
||||||
|
}
|
||||||
|
} catch {}
|
||||||
|
}]
|
||||||
|
pre_execution: [{ null }] # run before the repl input is run
|
||||||
|
env_change: {
|
||||||
|
PWD: [] # run if the PWD environment is different since the last repl input
|
||||||
|
}
|
||||||
|
display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline
|
||||||
|
command_not_found: { null } # return an error message when a command is not found
|
||||||
|
}
|
||||||
|
|
||||||
|
menus: [
|
||||||
|
# Configuration for default nushell menus
|
||||||
|
# Note the lack of source parameter
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: columnar
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: { attr: r }
|
||||||
|
description_text: yellow
|
||||||
|
match_text: { attr: u }
|
||||||
|
selected_match_text: { attr: ur }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: ide_completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: ide
|
||||||
|
min_completion_width: 0,
|
||||||
|
max_completion_width: 50,
|
||||||
|
max_completion_height: 10, # will be limited by the available lines in the terminal
|
||||||
|
padding: 0,
|
||||||
|
border: true,
|
||||||
|
cursor_offset: 0,
|
||||||
|
description_mode: "prefer_right"
|
||||||
|
min_description_width: 0
|
||||||
|
max_description_width: 50
|
||||||
|
max_description_height: 10
|
||||||
|
description_offset: 1
|
||||||
|
# If true, the cursor pos will be corrected, so the suggestions match up with the typed text
|
||||||
|
#
|
||||||
|
# C:\> str
|
||||||
|
# str join
|
||||||
|
# str trim
|
||||||
|
# str split
|
||||||
|
correct_cursor_pos: false
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: { attr: r }
|
||||||
|
description_text: yellow
|
||||||
|
match_text: { attr: u }
|
||||||
|
selected_match_text: { attr: ur }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: list
|
||||||
|
page_size: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: description
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
selection_rows: 4
|
||||||
|
description_rows: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
keybindings: [
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {edit: backspaceword}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: tab
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
{ edit: complete }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: ide_completion_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_n
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: ide_completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
{ edit: complete }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_r
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: history_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: f1
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: help_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: completion_previous_menu
|
||||||
|
modifier: shift
|
||||||
|
keycode: backtab
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: menuprevious }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: next_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { send: menupagenext }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: undo_or_previous_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menupageprevious }
|
||||||
|
{ edit: undo }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: escape
|
||||||
|
modifier: none
|
||||||
|
keycode: escape
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: esc } # NOTE: does not appear to work
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cancel_command
|
||||||
|
modifier: control
|
||||||
|
keycode: char_c
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrlc }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: quit_shell
|
||||||
|
modifier: control
|
||||||
|
keycode: char_d
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrld }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: clear_screen
|
||||||
|
modifier: control
|
||||||
|
keycode: char_l
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: clearscreen }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: search_history
|
||||||
|
modifier: control
|
||||||
|
keycode: char_q
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: searchhistory }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: open_command_editor
|
||||||
|
modifier: control
|
||||||
|
keycode: char_o
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: openeditor }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: none
|
||||||
|
keycode: up
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuup }
|
||||||
|
{ send: up }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: none
|
||||||
|
keycode: down
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menudown }
|
||||||
|
{ send: down }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuleft }
|
||||||
|
{ send: left }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ send: menuright }
|
||||||
|
{ send: right }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: none
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_a
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ edit: movetolineend }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_e
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ edit: movetolineend }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end
|
||||||
|
modifier: control
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolineend }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: control
|
||||||
|
keycode: char_p
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuup }
|
||||||
|
{ send: up }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menudown }
|
||||||
|
{ send: down }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_backward
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspace }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: none
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: delete }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: control
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: delete }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_h
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspace }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: vi_normal
|
||||||
|
event: { edit: moveleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: newline_or_run_command
|
||||||
|
modifier: none
|
||||||
|
keycode: enter
|
||||||
|
mode: emacs
|
||||||
|
event: { send: enter }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuleft }
|
||||||
|
{ send: left }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ send: menuright }
|
||||||
|
{ send: right }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: redo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_g
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: redo }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: undo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: undo }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: paste_before
|
||||||
|
modifier: control
|
||||||
|
keycode: char_y
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: pastecutbufferbefore }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutwordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_line_to_end
|
||||||
|
modifier: control
|
||||||
|
keycode: char_k
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cuttoend }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_line_from_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutfromstart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: swap_graphemes
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: swapgraphemes }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: left
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: right
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_forward
|
||||||
|
modifier: alt
|
||||||
|
keycode: delete
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: deleteword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: backspace
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_m
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_word_to_right
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_d
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutwordright }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: upper_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: uppercaseword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: lower_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_l
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: lowercaseword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: capitalize_char
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_c
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: capitalizechar }
|
||||||
|
}
|
||||||
|
# The following bindings with `*system` events require that Nushell has
|
||||||
|
# been compiled with the `system-clipboard` feature.
|
||||||
|
# This should be the case for Windows, macOS, and most Linux distributions
|
||||||
|
# Not available for example on Android (termux)
|
||||||
|
# If you want to use the system clipboard for visual selection or to
|
||||||
|
# paste directly, uncomment the respective lines and replace the version
|
||||||
|
# using the internal clipboard.
|
||||||
|
{
|
||||||
|
name: copy_selection
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_c
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: copyselection }
|
||||||
|
# event: { edit: copyselectionsystem }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_selection
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutselection }
|
||||||
|
# event: { edit: cutselectionsystem }
|
||||||
|
}
|
||||||
|
# {
|
||||||
|
# name: paste_system
|
||||||
|
# modifier: control_shift
|
||||||
|
# keycode: char_v
|
||||||
|
# mode: emacs
|
||||||
|
# event: { edit: pastesystem }
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
name: select_all
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_a
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: selectall }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
def --env cx [arg] {
|
||||||
|
cd $arg
|
||||||
|
ls -l
|
||||||
|
}
|
||||||
|
|
||||||
|
alias l = ls --all
|
||||||
|
alias c = clear
|
||||||
|
alias ll = ls -l
|
||||||
|
alias lt = eza --tree --level=2 --long --icons --git
|
||||||
|
alias v = nvim
|
||||||
|
alias as = aerospace
|
||||||
|
alias asr = atuin scripts run
|
||||||
|
|
||||||
|
def ff [] {
|
||||||
|
aerospace list-windows --all | fzf --bind 'enter:execute(bash -c "aerospace focus --window-id {1}")+abort'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Git
|
||||||
|
alias gc = git commit -m
|
||||||
|
alias gca = git commit -a -m
|
||||||
|
alias gp = git push origin HEAD
|
||||||
|
alias gpu = git pull origin
|
||||||
|
alias gst = git status
|
||||||
|
alias glog = git log --graph --topo-order --pretty='%w(100,0,6)%C(yellow)%h%C(bold)%C(black)%d %C(cyan)%ar %C(green)%an%n%C(bold)%C(white)%s %N' --abbrev-commit
|
||||||
|
alias gdiff = git diff
|
||||||
|
alias gco = git checkout
|
||||||
|
alias gb = git branch
|
||||||
|
alias gba = git branch -a
|
||||||
|
alias gadd = git add
|
||||||
|
alias ga = git add -p
|
||||||
|
alias gcoall = git checkout -- .
|
||||||
|
alias gr = git remote
|
||||||
|
alias gre = git reset
|
||||||
|
|
||||||
|
# K8s
|
||||||
|
alias k = kubectl
|
||||||
|
alias ka = kubectl apply -f
|
||||||
|
alias kg = kubectl get
|
||||||
|
alias kd = kubectl describe
|
||||||
|
alias kdel = kubectl delete
|
||||||
|
alias kl = kubectl logs
|
||||||
|
alias kgpo = kubectl get pod
|
||||||
|
alias kgd = kubectl get deployments
|
||||||
|
alias kc = kubectx
|
||||||
|
alias kns = kubens
|
||||||
|
alias kl = kubectl logs -f
|
||||||
|
alias ke = kubectl exec -it
|
||||||
|
|
||||||
|
# source ~/.zoxide.nu
|
||||||
|
source ~/.cache/carapace/init.nu
|
||||||
|
source ~/.local/share/atuin/init.nu
|
||||||
|
use ~/.cache/starship/init.nu
|
||||||
|
use ~/.cache/mise/init.nu
|
||||||
|
|
||||||
|
|
||||||
|
$env.DIRENV_LOG_FORMAT = ""
|
||||||
|
|
||||||
|
source ~/.config/nushell/vendor/autoload/wt.nu
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
# config.nu
|
# config.nu
|
||||||
#
|
def --env cld [path: path = "~"] { clear; cd $path }
|
||||||
# Installed by:
|
# Installed by:
|
||||||
# version = "0.103.0"
|
# version = "0.103.0"
|
||||||
#
|
#
|
||||||
@@ -151,28 +151,9 @@ let light_theme = {
|
|||||||
shape_raw_string: light_purple
|
shape_raw_string: light_purple
|
||||||
}
|
}
|
||||||
|
|
||||||
# Example prompt with Nerd Font icons
|
|
||||||
def create_left_prompt [] {
|
|
||||||
let dir = ([
|
|
||||||
(char -u "e0b1"),
|
|
||||||
($env.PWD | str replace $nu.home-path "~")
|
|
||||||
] | str join)
|
|
||||||
|
|
||||||
let git_branch = (do -i { git rev-parse --abbrev-ref HEAD } | default "")
|
|
||||||
|
|
||||||
$"(ansi green)($dir)(ansi reset) (ansi purple) ($git_branch)(ansi reset)"
|
|
||||||
}
|
|
||||||
|
|
||||||
$env.PROMPT_COMMAND = { create_left_prompt }
|
|
||||||
|
|
||||||
$env.GIT_DISCOVERY_ACROSS_FILESYSTEM = "1" # Allows Git to check parent dirs
|
|
||||||
|
|
||||||
def --wrapped git [...args] {
|
|
||||||
^git ...$args err> /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
## Alias
|
## Alias
|
||||||
source ~/.alias.nu
|
source ~/.config/nushell/.alias.nu
|
||||||
|
source ~/.config/nushell/.calias.nu
|
||||||
|
|
||||||
### autocompletion
|
### autocompletion
|
||||||
## zoxide
|
## zoxide
|
||||||
|
|||||||
@@ -361,3 +361,156 @@ cld
|
|||||||
exit
|
exit
|
||||||
bat ~/.ssh/id_ed25519.pub
|
bat ~/.ssh/id_ed25519.pub
|
||||||
exit
|
exit
|
||||||
|
ls ~/.config
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
cd ~/.config/nushell
|
||||||
|
ls
|
||||||
|
nvim config.nu
|
||||||
|
touch config-om.nu
|
||||||
|
nvim config-om.nu
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
ls
|
||||||
|
q
|
||||||
|
cd ~/.config/nushell
|
||||||
|
touch om.env
|
||||||
|
nvim om.env
|
||||||
|
exit
|
||||||
|
cd ~/.config/nushell
|
||||||
|
nvim config-om.nu
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
exit
|
||||||
|
nvim ~/.config/nushell/config-om.nu
|
||||||
|
nvim ~/.config/nushell/config.nu
|
||||||
|
cd ~/.config/nushell
|
||||||
|
touch .alias.nu
|
||||||
|
nvim ~/.config/nushell/config.nu
|
||||||
|
nvim .alias.nu
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
y
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
nvim ~/.config/nushell/config-om.nu
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
gcc
|
||||||
|
n
|
||||||
|
nvim ~/.config/nushell/config.nu
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
n
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
nvim .alias.nu
|
||||||
|
y
|
||||||
|
yazi
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
nv
|
||||||
|
mv
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
nvim ~/.config/nushell/config.nu
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
exit
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
nvim ~/.config/nushell/config.nu
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
n
|
||||||
|
ls dotfiles/
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
exit
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
cld
|
||||||
|
cd dotfiles/
|
||||||
|
cld
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
exit
|
||||||
|
cld
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
exit
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cld
|
||||||
|
cd
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cld
|
||||||
|
nvim ~/.config/nushell/.alias.nu
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cld
|
||||||
|
exit
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cd
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cld
|
||||||
|
y
|
||||||
|
eix
|
||||||
|
exit
|
||||||
|
y
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cld
|
||||||
|
y
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cld
|
||||||
|
y
|
||||||
|
exit
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cld
|
||||||
|
cd
|
||||||
|
cd ~/.config/nushell
|
||||||
|
y
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cld
|
||||||
|
y
|
||||||
|
source ~/.config/nushell/config.nu
|
||||||
|
cd ~/.config/nushell
|
||||||
|
cld
|
||||||
|
y
|
||||||
|
source ~/.config/nushell/.alias.nu
|
||||||
|
n ~/.config/nushell/.alias.nu
|
||||||
|
source ~/.config/nushell/.alias.nu
|
||||||
|
n
|
||||||
|
cld
|
||||||
|
exit
|
||||||
|
ls dotfiles
|
||||||
|
cld
|
||||||
|
ls -la ~/dotfiles/
|
||||||
|
ls ~/dotfiles/
|
||||||
|
exit
|
||||||
|
|||||||
@@ -0,0 +1,116 @@
|
|||||||
|
#
|
||||||
|
# Nushell Environment Config File
|
||||||
|
#
|
||||||
|
# version = "0.95.0"
|
||||||
|
|
||||||
|
def create_left_prompt [] {
|
||||||
|
let dir = match (do -i { $env.PWD | path relative-to $nu.home-path }) {
|
||||||
|
null => $env.PWD
|
||||||
|
'' => '~'
|
||||||
|
$relative_pwd => ([~ $relative_pwd] | path join)
|
||||||
|
}
|
||||||
|
|
||||||
|
let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold })
|
||||||
|
let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold })
|
||||||
|
let path_segment = $"($path_color)($dir)"
|
||||||
|
|
||||||
|
$path_segment | str replace --all (char path_sep) $"($separator_color)(char path_sep)($path_color)"
|
||||||
|
}
|
||||||
|
|
||||||
|
def create_right_prompt [] {
|
||||||
|
# create a right prompt in magenta with green separators and am/pm underlined
|
||||||
|
let time_segment = ([
|
||||||
|
(ansi reset)
|
||||||
|
(ansi magenta)
|
||||||
|
(date now | format date '%x %X') # try to respect user's locale
|
||||||
|
] | str join | str replace --regex --all "([/:])" $"(ansi green)${1}(ansi magenta)" |
|
||||||
|
str replace --regex --all "([AP]M)" $"(ansi magenta_underline)${1}")
|
||||||
|
|
||||||
|
let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([
|
||||||
|
(ansi rb)
|
||||||
|
($env.LAST_EXIT_CODE)
|
||||||
|
] | str join)
|
||||||
|
} else { "" }
|
||||||
|
|
||||||
|
([$last_exit_code, (char space), $time_segment] | str join)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Use nushell functions to define your right and left prompt
|
||||||
|
$env.PROMPT_COMMAND = {|| create_left_prompt }
|
||||||
|
# FIXME: This default is not implemented in rust code as of 2023-09-08.
|
||||||
|
$env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
|
||||||
|
|
||||||
|
# The prompt indicators are environmental variables that represent
|
||||||
|
# the state of the prompt
|
||||||
|
$env.PROMPT_INDICATOR = {|| "> " }
|
||||||
|
$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " }
|
||||||
|
$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " }
|
||||||
|
$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " }
|
||||||
|
|
||||||
|
# If you want previously entered commands to have a different prompt from the usual one,
|
||||||
|
# you can uncomment one or more of the following lines.
|
||||||
|
# This can be useful if you have a 2-line prompt and it's taking up a lot of space
|
||||||
|
# because every command entered takes up 2 lines instead of 1. You can then uncomment
|
||||||
|
# the line below so that previously entered commands show with a single `🚀`.
|
||||||
|
# $env.TRANSIENT_PROMPT_COMMAND = {|| "🚀 " }
|
||||||
|
# $env.TRANSIENT_PROMPT_INDICATOR = {|| "" }
|
||||||
|
# $env.TRANSIENT_PROMPT_INDICATOR_VI_INSERT = {|| "" }
|
||||||
|
# $env.TRANSIENT_PROMPT_INDICATOR_VI_NORMAL = {|| "" }
|
||||||
|
# $env.TRANSIENT_PROMPT_MULTILINE_INDICATOR = {|| "" }
|
||||||
|
# $env.TRANSIENT_PROMPT_COMMAND_RIGHT = {|| "" }
|
||||||
|
|
||||||
|
# Specifies how environment variables are:
|
||||||
|
# - converted from a string to a value on Nushell startup (from_string)
|
||||||
|
# - converted from a value back to a string when running external commands (to_string)
|
||||||
|
# Note: The conversions happen *after* config.nu is loaded
|
||||||
|
$env.ENV_CONVERSIONS = {
|
||||||
|
"PATH": {
|
||||||
|
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
|
||||||
|
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
|
||||||
|
}
|
||||||
|
"Path": {
|
||||||
|
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
|
||||||
|
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Directories to search for scripts when calling source or use
|
||||||
|
# The default for this is $nu.default-config-dir/scripts
|
||||||
|
$env.NU_LIB_DIRS = [
|
||||||
|
($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts
|
||||||
|
($nu.data-dir | path join 'completions') # default home for nushell completions
|
||||||
|
]
|
||||||
|
|
||||||
|
# Directories to search for plugin binaries when calling register
|
||||||
|
# The default for this is $nu.default-config-dir/plugins
|
||||||
|
$env.NU_PLUGIN_DIRS = [
|
||||||
|
($nu.default-config-dir | path join 'plugins') # add <nushell-config-dir>/plugins
|
||||||
|
]
|
||||||
|
|
||||||
|
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
|
||||||
|
# $env.PATH = ($env.PATH | split row (char esep) | prepend '/some/path')
|
||||||
|
# An alternate way to add entries to $env.PATH is to use the custom command `path add`
|
||||||
|
# which is built into the nushell stdlib:
|
||||||
|
use std "path add"
|
||||||
|
path add "/opt/homebrew/bin"
|
||||||
|
path add "/opt/homebrew/sbin"
|
||||||
|
path add ($env.HOME | path join ".turso")
|
||||||
|
path add ($env.HOME | path join ".local/share/mise/shims")
|
||||||
|
path add "/Users/omerxx/.local/bin"
|
||||||
|
|
||||||
|
|
||||||
|
# To load from a custom file you can use:
|
||||||
|
# source ($nu.default-config-dir | path join 'custom.nu')
|
||||||
|
|
||||||
|
mkdir ~/.cache/starship
|
||||||
|
starship init nu | save -f ~/.cache/starship/init.nu
|
||||||
|
zoxide init nushell | save -f ~/.zoxide.nu
|
||||||
|
mkdir ~/.cache/mise
|
||||||
|
^mise activate nu | save -f ~/.cache/mise/init.nu
|
||||||
|
|
||||||
|
$env.STARSHIP_CONFIG = "/Users/omerxx/.config/starship/starship.toml"
|
||||||
|
$env.CARAPACE_BRIDGES = 'zsh,fish,bash,inshellisense' # optional
|
||||||
|
mkdir ~/.cache/carapace
|
||||||
|
carapace _carapace nushell | save --force ~/.cache/carapace/init.nu
|
||||||
|
|
||||||
|
$env.EDITOR = "nvim"
|
||||||
@@ -41,11 +41,11 @@ return {
|
|||||||
"stylelint",
|
"stylelint",
|
||||||
"htmlhint",
|
"htmlhint",
|
||||||
"hadolint",
|
"hadolint",
|
||||||
"eslint_d",
|
-- "eslint_d",
|
||||||
"rubocop",
|
"rubocop",
|
||||||
"markdownlint",
|
"markdownlint",
|
||||||
-- formatters (optional)
|
-- formatters (optional)
|
||||||
"black",
|
-- "black",
|
||||||
"stylua",
|
"stylua",
|
||||||
"shfmt",
|
"shfmt",
|
||||||
"prettier",
|
"prettier",
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
-- Pull the wezterm API
|
||||||
|
local wezterm = require("wezterm")
|
||||||
|
-- This will hold the configuration.
|
||||||
|
local config = wezterm.config_builder()
|
||||||
|
|
||||||
|
-- General
|
||||||
|
config.font_size = 11
|
||||||
|
config.line_height = 1.22
|
||||||
|
config.font = wezterm.font("JetBrainsMono Nerd Font")
|
||||||
|
config.color_scheme = "Gruvbox Material (Gogh)"
|
||||||
|
|
||||||
|
config.colors = {
|
||||||
|
cursor_bg = "#89B482",
|
||||||
|
cursor_border = "#89B482",
|
||||||
|
}
|
||||||
|
|
||||||
|
config.inactive_pane_hsb = {
|
||||||
|
saturation = 1.0,
|
||||||
|
brightness = 1.0,
|
||||||
|
}
|
||||||
|
|
||||||
|
config.window_background_opacity = 0.9
|
||||||
|
|
||||||
|
config.window_decorations = "NONE"
|
||||||
|
config.enable_tab_bar = false
|
||||||
|
|
||||||
|
-- Key bindings
|
||||||
|
config.keys = {
|
||||||
|
{
|
||||||
|
key = "w",
|
||||||
|
mods = "CMD",
|
||||||
|
action = wezterm.action.CloseCurrentPane({ confirm = false }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = "d",
|
||||||
|
mods = "CMD",
|
||||||
|
action = wezterm.action.SplitHorizontal({ domain = "CurrentPaneDomain" }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = "d",
|
||||||
|
mods = "CMD|SHIFT",
|
||||||
|
action = wezterm.action.SplitVertical({ domain = "CurrentPaneDomain" }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = "k",
|
||||||
|
mods = "CMD",
|
||||||
|
action = wezterm.action.SendString("clear\n"),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return config
|
||||||
@@ -557,6 +557,7 @@ local EXTS = {
|
|||||||
nsc = "application/conference",
|
nsc = "application/conference",
|
||||||
nsf = "application/lotus-notes",
|
nsf = "application/lotus-notes",
|
||||||
ntf = "application/nitf",
|
ntf = "application/nitf",
|
||||||
|
nu = "text/nu",
|
||||||
nzb = "application/nzb",
|
nzb = "application/nzb",
|
||||||
oa2 = "application/fujitsu.oasys2",
|
oa2 = "application/fujitsu.oasys2",
|
||||||
oa3 = "application/fujitsu.oasys3",
|
oa3 = "application/fujitsu.oasys3",
|
||||||
@@ -689,7 +690,7 @@ local EXTS = {
|
|||||||
ram = "audio/pn-realaudio",
|
ram = "audio/pn-realaudio",
|
||||||
rar = "application/rar",
|
rar = "application/rar",
|
||||||
ras = "image/cmu-raster",
|
ras = "image/cmu-raster",
|
||||||
rb = "text/ruby",
|
rb = "text/nu",
|
||||||
rcprofile = "application/ipunplugged.rcprofile",
|
rcprofile = "application/ipunplugged.rcprofile",
|
||||||
rdf = "application/rdf+xml",
|
rdf = "application/rdf+xml",
|
||||||
rdz = "application/data-vision.rdz",
|
rdz = "application/data-vision.rdz",
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
zshrc /home/liph/dotfiles/zshrc z
|
zshrc /home/liph/dotfiles/zshrc z
|
||||||
yazi /home/liph/dotfiles/yazi/.config/yazi y
|
yazi /home/liph/dotfiles/yazi/.config/yazi y
|
||||||
|
wezterm /home/liph/dotfiles/wezterm/.config/wezterm d,w
|
||||||
tmux /home/liph/dotfiles/tmux d,t
|
tmux /home/liph/dotfiles/tmux d,t
|
||||||
tex /home/liph/Documents/tex D,t
|
tex /home/liph/Documents/tex D,t
|
||||||
tank /mnt/tank t,t
|
tank /mnt/tank t,t
|
||||||
@@ -21,4 +22,5 @@ Downloads /home/liph/Downloads D,d
|
|||||||
dotfiles /home/liph/dotfiles d,d
|
dotfiles /home/liph/dotfiles d,d
|
||||||
Documents /home/liph/Documents D,D
|
Documents /home/liph/Documents D,D
|
||||||
.config /home/liph/.config c
|
.config /home/liph/.config c
|
||||||
|
cloud /home/liph/cloud C
|
||||||
aerc /home/liph/dotfiles/aerc/.config/aerc d,a
|
aerc /home/liph/dotfiles/aerc/.config/aerc d,a
|
||||||
|
|||||||
+12
-6
@@ -114,12 +114,18 @@ alias ripp='rip search tidal album'
|
|||||||
alias ripc='nvim ~/.config/streamrip/config.toml'
|
alias ripc='nvim ~/.config/streamrip/config.toml'
|
||||||
|
|
||||||
# paru
|
# paru
|
||||||
alias ys='$AUR_HELPER -S' # install packoz
|
alias ys='paru -S' # install packoz
|
||||||
alias yr='$AUR_HELPER -Rn' # remove package
|
alias yr='paru -Rn' # remove package
|
||||||
alias yy='$AUR_HELPER -Ss' # paru search for package
|
alias yy='paru -Ss' # paru search for package
|
||||||
alias yay='$AUR_HELPER'
|
alias yay='paru'
|
||||||
alias yi='$AUR_HELPER -Si' # aur info
|
alias yi='paru -Si' # aur info
|
||||||
alias which-aur="echo 'Currently using: $AUR_HELPER'"
|
# alias which-aur="echo 'Currently using: paru'"
|
||||||
|
# alias ys='$AUR_HELPER -S' # install packoz
|
||||||
|
# alias yr='$AUR_HELPER -Rn' # remove package
|
||||||
|
# alias yy='$AUR_HELPER -Ss' # paru search for package
|
||||||
|
# alias yay='$AUR_HELPER'
|
||||||
|
# alias yi='$AUR_HELPER -Si' # aur info
|
||||||
|
# alias which-aur="echo 'Currently using: $AUR_HELPER'"
|
||||||
|
|
||||||
# trash-cli
|
# trash-cli
|
||||||
alias te='trash-empty'
|
alias te='trash-empty'
|
||||||
|
|||||||
+6
-3
@@ -2,17 +2,20 @@
|
|||||||
#zinit ice depth=1; zinit light romkatv/powerlevel10k
|
#zinit ice depth=1; zinit light romkatv/powerlevel10k
|
||||||
|
|
||||||
# Add in plugins
|
# Add in plugins
|
||||||
zinit light zsh-users/zsh-syntax-highlighting
|
# zinit light zsh-users/zsh-syntax-highlighting
|
||||||
# zinit light zdharma-continuum/fast-syntax-highlighting
|
zinit light Aloxaf/fzf-tab
|
||||||
|
zinit light zdharma-continuum/fast-syntax-highlighting
|
||||||
zinit light zsh-users/zsh-completions
|
zinit light zsh-users/zsh-completions
|
||||||
zinit light zsh-users/zsh-autosuggestions
|
zinit light zsh-users/zsh-autosuggestions
|
||||||
zinit light Aloxaf/fzf-tab
|
|
||||||
zinit light hlissner/zsh-autopair
|
zinit light hlissner/zsh-autopair
|
||||||
zinit light ajeetdsouza/zoxide
|
zinit light ajeetdsouza/zoxide
|
||||||
zinit ice lucid wait as"completion"
|
zinit ice lucid wait as"completion"
|
||||||
zinit snippet https://github.com/eza-community/eza/blob/main/completions/zsh/_eza
|
zinit snippet https://github.com/eza-community/eza/blob/main/completions/zsh/_eza
|
||||||
zinit light MichaelAquilina/zsh-you-should-use
|
zinit light MichaelAquilina/zsh-you-should-use
|
||||||
zinit light wfxr/forgit
|
zinit light wfxr/forgit
|
||||||
|
zinit load atuinsh/atuin
|
||||||
|
zinit load 'zsh-users/zsh-history-substring-search'
|
||||||
|
|
||||||
# zinit light trapd00r/zsh-syntax-highlighting-filetypes
|
# zinit light trapd00r/zsh-syntax-highlighting-filetypes
|
||||||
|
|
||||||
# Add in snippets from "OhMyZsh“
|
# Add in snippets from "OhMyZsh“
|
||||||
|
|||||||
+32
-73
@@ -1,99 +1,56 @@
|
|||||||
# set the directory we want to store zinit and plugins
|
# Set the directory to store zinit and plugins
|
||||||
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.locale/share}/zinit/zinit.git"
|
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.locale/share}/zinit/zinit.git"
|
||||||
|
|
||||||
# Download Zinit
|
# Download Zinit if not present
|
||||||
if [ ! -d "$ZINIT_HOME" ]; then
|
if [ ! -d "$ZINIT_HOME" ]; then
|
||||||
mkdir -p "$(dirname $ZINIT_HOME)"
|
mkdir -p "$(dirname $ZINIT_HOME)"
|
||||||
git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
|
git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Initialization settings for zsh-vi-mode
|
||||||
ZVM_INIT_MODE=sourcing
|
ZVM_INIT_MODE=sourcing
|
||||||
# Fix zsh-vi-mode conflicts with fzf
|
|
||||||
|
# CONSOLIDATED FUNCTION: All zsh-vi-mode logic must be in one place [2]
|
||||||
function zvm_after_init() {
|
function zvm_after_init() {
|
||||||
|
# Fix fzf interaction
|
||||||
source <(fzf --zsh)
|
source <(fzf --zsh)
|
||||||
|
|
||||||
|
# Bind Atuin search for both Insert and Normal modes [9]
|
||||||
|
zvm_bindkey viins '^R' atuin-search
|
||||||
|
zvm_bindkey vicmd '^R' atuin-search
|
||||||
|
|
||||||
|
# Re-bind autosuggest-accept
|
||||||
|
bindkey '^@' autosuggest-accept
|
||||||
}
|
}
|
||||||
|
|
||||||
# Source zsh, alias
|
|
||||||
source "${ZINIT_HOME}/zinit.zsh"
|
|
||||||
source ~/.aliases.zsh
|
|
||||||
source ~/.plugins.zsh
|
|
||||||
source ~/.export.zsh
|
|
||||||
# https://github.com/jungunn/fzf-git.sh
|
|
||||||
# source ~/scripts/fzf-git.sh
|
|
||||||
# you should unse
|
|
||||||
# source /usr/share/zsh/plugins/zsh-you-should-use/you-should-use.plugin.zsh
|
|
||||||
# Set up fzf key bindings and fuzzy completion
|
|
||||||
## hydroxide
|
|
||||||
#source ~/scripts/hydroxide.sh
|
|
||||||
|
|
||||||
# env aur helper
|
|
||||||
if command -v paru &> /dev/null; then
|
|
||||||
export AUR_HELPER="paru"
|
|
||||||
elif command -v yay &> /dev/null; then
|
|
||||||
export AUR_HELPER="yay"
|
|
||||||
else
|
|
||||||
export AUR_HELPER="pacman" # Fallback to pacman
|
|
||||||
fi
|
|
||||||
#export AUR_HELPER="paru"
|
|
||||||
|
|
||||||
# Load completions
|
# Load completions
|
||||||
autoload -U compinit && compinit
|
autoload -U compinit && compinit
|
||||||
|
|
||||||
## zinit cdreplay -q
|
# Oh My Posh initialization
|
||||||
eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/zen.toml)"
|
eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/zen.toml)"
|
||||||
|
|
||||||
#eval "$(ssh-agent -s)"
|
# Pyenv setup
|
||||||
#if ! pgrep -u "$USER" ssh-agent > /dev/null; then
|
|
||||||
# ssh-agent > ~/.ssh-agent.env
|
|
||||||
#fi
|
|
||||||
#if [[ -z "$SSH_AUTH_SOCK" ]]; then
|
|
||||||
# source ~/.ssh-agent.env > /dev/null
|
|
||||||
#fi
|
|
||||||
|
|
||||||
# pyenv
|
|
||||||
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
|
|
||||||
# Bindkey
|
# Custom Keybinds
|
||||||
# bindkey -e
|
|
||||||
# bindkey '^p' history-search-backward
|
|
||||||
# bindkey '^n' history-search-forward
|
|
||||||
bindkey -s '^T' ' tea^M ^M'
|
bindkey -s '^T' ' tea^M ^M'
|
||||||
|
|
||||||
# History
|
|
||||||
HISTSIZE=5000
|
|
||||||
HISTFILE=~/.zsh_history
|
|
||||||
SAVEHIST=$HISTSIZE
|
|
||||||
HISTDUP=erase
|
|
||||||
setopt appendhistory
|
|
||||||
setopt sharehistory
|
|
||||||
setopt hist_ignore_space
|
|
||||||
setopt hist_ignore_all_dups
|
|
||||||
setopt hist_save_no_dups
|
|
||||||
setopt hist_ignore_dups
|
|
||||||
setopt hist_find_no_dups
|
|
||||||
|
|
||||||
# Completion styling
|
# Completion styling
|
||||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
||||||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
||||||
zstyle ':completion:*' menu no
|
|
||||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
||||||
|
|
||||||
# Shell integration
|
# Tool initializations
|
||||||
eval "$(fzf --zsh)"
|
eval "$(fzf --zsh)"
|
||||||
eval "$(zoxide init --cmd cd zsh)"
|
eval "$(zoxide init --cmd cd zsh)"
|
||||||
eval "$(thefuck --alias)"
|
eval "$(thefuck --alias)"
|
||||||
eval "$(navi widget zsh)"
|
eval "$(navi widget zsh)"
|
||||||
# pyenv https://github.com/pyenv/pyenv-virtualenv
|
|
||||||
# eval "$(pyenv init --path)"
|
|
||||||
eval "$(pyenv init -)"
|
eval "$(pyenv init -)"
|
||||||
# eval "$(pyenv virtualenv-init -)"
|
|
||||||
# starship
|
|
||||||
# eval "$(starship init zsh)"
|
|
||||||
|
|
||||||
|
# FZF Run command customizations
|
||||||
_fzf_comprun() {
|
_fzf_comprun() {
|
||||||
local command=$1
|
local command=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
case "$command" in
|
case "$command" in
|
||||||
cd) fzf --preview 'eza --tree --color=always {} | head -200' "$@" ;;
|
cd) fzf --preview 'eza --tree --color=always {} | head -200' "$@" ;;
|
||||||
export|unset) fzf --preview "eval 'echo \$' {}" "$@" ;;
|
export|unset) fzf --preview "eval 'echo \$' {}" "$@" ;;
|
||||||
@@ -102,6 +59,7 @@ _fzf_comprun() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Yazi function
|
||||||
function y() {
|
function y() {
|
||||||
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
|
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
|
||||||
yazi "$@" --cwd-file="$tmp"
|
yazi "$@" --cwd-file="$tmp"
|
||||||
@@ -111,23 +69,24 @@ function y() {
|
|||||||
rm -f -- "$tmp"
|
rm -f -- "$tmp"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Load a few important annexes, without Turbo
|
# Zinit Annexes
|
||||||
# (this is currently required for annexes)
|
|
||||||
zinit light-mode for \
|
zinit light-mode for \
|
||||||
zdharma-continuum/zinit-annex-as-monitor \
|
zdharma-continuum/zinit-annex-as-monitor \
|
||||||
zdharma-continuum/zinit-annex-bin-gem-node \
|
zdharma-continuum/zinit-annex-bin-gem-node \
|
||||||
zdharma-continuum/zinit-annex-patch-dl \
|
zdharma-continuum/zinit-annex-patch-dl \
|
||||||
zdharma-continuum/zinit-annex-rust
|
zdharma-continuum/zinit-annex-rust
|
||||||
|
|
||||||
### End of Zinit's installer chunk
|
# Path exports
|
||||||
|
|
||||||
# . "$HOME/.local/bin/env"
|
|
||||||
# In .zshrc, after zinit loads
|
|
||||||
function zvm_after_init() {
|
|
||||||
# Re-bind ctrl+space for autosuggestions if needed
|
|
||||||
bindkey '^@' autosuggest-accept
|
|
||||||
}
|
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
|
||||||
# opencode
|
|
||||||
export PATH=/home/liph/.opencode/bin:$PATH
|
export PATH=/home/liph/.opencode/bin:$PATH
|
||||||
|
|
||||||
|
# Source Zinit and your other configuration files
|
||||||
|
source "${ZINIT_HOME}/zinit.zsh"
|
||||||
|
source ~/.aliases.zsh
|
||||||
|
source ~/.plugins.zsh
|
||||||
|
source ~/.export.zsh
|
||||||
|
|
||||||
|
# Atuin Initialization [10]
|
||||||
|
# Must be at the very end to ensure hooks are applied correctly [1]
|
||||||
|
. "$HOME/.atuin/bin/env"
|
||||||
|
eval "$(atuin init zsh)"
|
||||||
|
|||||||
Reference in New Issue
Block a user