317 lines
7.1 KiB
Text
317 lines
7.1 KiB
Text
$env.config = {
|
|
bracketed_paste: true
|
|
buffer_editor: "hx"
|
|
datetime_format: {}
|
|
edit_mode: vi
|
|
error_style: fancy
|
|
float_precision: 2
|
|
footer_mode: 25
|
|
render_right_prompt_on_last_line: false
|
|
show_banner: false
|
|
use_ansi_coloring: true
|
|
use_kitty_protocol: true
|
|
|
|
shell_integration: {
|
|
osc2: false
|
|
osc7: true
|
|
osc8: true
|
|
osc9_9: false
|
|
osc133: true
|
|
osc633: true
|
|
reset_application_mode: true
|
|
}
|
|
}
|
|
|
|
$env.config.ls = {
|
|
clickable_links: true
|
|
use_ls_colors: true
|
|
}
|
|
|
|
$env.config.rm.always_trash = true
|
|
|
|
$env.config.table = {
|
|
header_on_separator: false
|
|
index_mode: always
|
|
mode: light
|
|
padding: { left: 1 right: 1 }
|
|
show_empty: true
|
|
trim: {
|
|
methodology: wrapping
|
|
wrapping_try_keep_words: true
|
|
truncating_suffix: "..."
|
|
}
|
|
}
|
|
|
|
$env.config.explore = {
|
|
command_bar_text: { fg: "#C4C9C6" }
|
|
highlight: { fg: black bg: yellow }
|
|
status: {
|
|
error: { fg: white bg: red }
|
|
warn: {}
|
|
info: {}
|
|
}
|
|
status_bar_background: { fg: "#1D1F21" bg: "#C4C9C6" }
|
|
table: {
|
|
split_line: { fg: "#404040" }
|
|
selected_cell: { bg: light_blue }
|
|
selected_row: {}
|
|
selected_column: {}
|
|
}
|
|
}
|
|
|
|
$env.config.history = {
|
|
file_format: sqlite
|
|
isolation: false
|
|
max_size: 100_000
|
|
sync_on_enter: true
|
|
}
|
|
|
|
$env.config.cursor_shape = {
|
|
vi_insert: line
|
|
vi_normal: block
|
|
}
|
|
|
|
$env.config.hooks = {
|
|
command_not_found: {||}
|
|
|
|
pre_execution: [
|
|
{
|
|
let prompt = commandline | str trim
|
|
|
|
if ($prompt | is-empty) {
|
|
return
|
|
}
|
|
|
|
print $"(ansi title)($prompt) — nu(char bel)"
|
|
}
|
|
]
|
|
|
|
|
|
pre_prompt: [
|
|
{
|
|
if (which direnv | is-empty) {
|
|
return
|
|
}
|
|
|
|
direnv export json | from json | default {} | load-env
|
|
# Direnv outputs $PATH as a string, but nushell silently breaks if isn't a list-like table.
|
|
# The following behemoth of Nu code turns this into nu's format while following the standards of how to handle quotes, use it if you need quote handling instead of the line below it:
|
|
# $env.PATH = $env.PATH | parse --regex ('' + `((?:(?:"(?:(?:\\[\\"])|.)*?")|(?:'.*?')|[^` + (char env_sep) + `]*)*)`) | each {|x| $x.capture0 | parse --regex `(?:"((?:(?:\\"|.))*?)")|(?:'(.*?)')|([^'"]*)` | each {|y| if ($y.capture0 != "") { $y.capture0 | str replace -ar `\\([\\"])` `$1` } else if ($y.capture1 != "") { $y.capture1 } else $y.capture2 } | str join }
|
|
$env.PATH = $env.PATH | split row (char env_sep)
|
|
}
|
|
]
|
|
}
|
|
|
|
$env.config.menus = [
|
|
{
|
|
marker: $"(ansi yellow)╋ "
|
|
name: help_menu
|
|
only_buffer_difference: true
|
|
style: {
|
|
description_text: yellow
|
|
selected_text: red_reverse
|
|
text: yellow
|
|
}
|
|
type: {
|
|
col_padding: 2
|
|
col_width: 20
|
|
columns: 4
|
|
description_rows: 10
|
|
layout: description
|
|
selection_rows: 4
|
|
}
|
|
}
|
|
]
|
|
|
|
$env.config.keybindings = [
|
|
{
|
|
name: copy_commandline
|
|
modifier: alt
|
|
keycode: char_c
|
|
mode: [ vi_normal vi_insert ]
|
|
event: {
|
|
send: executehostcommand
|
|
cmd: 'commandline | nu-highlight | $"```ansi\n($in)\n```" | wl-copy $in'
|
|
}
|
|
}
|
|
{
|
|
name: completion_menu
|
|
modifier: none
|
|
keycode: tab
|
|
mode: [ vi_normal vi_insert ]
|
|
event: {
|
|
until: [
|
|
{ send: menu name: completion_menu }
|
|
{ send: menunext }
|
|
{ edit: complete }
|
|
]
|
|
}
|
|
}
|
|
{
|
|
name: escape
|
|
modifier: none
|
|
keycode: escape
|
|
mode: [ vi_normal vi_insert ]
|
|
event: { send: esc }
|
|
}
|
|
{
|
|
name: cancel_command
|
|
modifier: control
|
|
keycode: char_c
|
|
mode: [ vi_normal vi_insert ]
|
|
event: { send: ctrlc }
|
|
}
|
|
{
|
|
name: quit_shell
|
|
modifier: control
|
|
keycode: char_d
|
|
mode: [ vi_normal vi_insert ]
|
|
event: { send: ctrld }
|
|
}
|
|
{
|
|
name: clear_screen
|
|
modifier: control
|
|
keycode: char_l
|
|
mode: [ vi_normal vi_insert ]
|
|
event: { send: clearscreen }
|
|
}
|
|
{
|
|
name: open_command_editor
|
|
modifier: control
|
|
keycode: char_o
|
|
mode: [ vi_normal vi_insert ]
|
|
event: { send: openeditor }
|
|
}
|
|
{
|
|
name: abbr
|
|
modifier: control
|
|
keycode: space
|
|
mode: [ vi_normal vi_insert ]
|
|
event: [
|
|
{ send: menu name: abbr_menu }
|
|
{ edit: insertchar, value: " " }
|
|
]
|
|
}
|
|
{
|
|
name: move_down
|
|
modifier: none
|
|
keycode: down
|
|
mode: [ vi_normal vi_insert ]
|
|
event: {
|
|
until: [
|
|
{ send: menudown }
|
|
{ send: down }
|
|
]
|
|
}
|
|
}
|
|
{
|
|
name: move_left
|
|
modifier: none
|
|
keycode: left
|
|
mode: [ vi_normal vi_insert ]
|
|
event: {
|
|
until: [
|
|
{ send: menuleft }
|
|
{ send: left }
|
|
]
|
|
}
|
|
}
|
|
{
|
|
name: move_right_or_take_history_hint
|
|
modifier: none
|
|
keycode: right
|
|
mode: [ vi_normal vi_insert ]
|
|
event: {
|
|
until: [
|
|
{ send: historyhintcomplete }
|
|
{ send: menuright }
|
|
{ send: right }
|
|
]
|
|
}
|
|
}
|
|
{
|
|
name: move_one_word_left
|
|
modifier: control
|
|
keycode: left
|
|
mode: [ vi_normal vi_insert ]
|
|
event: { edit: movewordleft }
|
|
}
|
|
{
|
|
name: move_one_word_right_or_take_history_hint
|
|
modifier: control
|
|
keycode: right
|
|
mode: [ vi_normal vi_insert ]
|
|
event: {
|
|
until: [
|
|
{ send: historyhintwordcomplete }
|
|
{ edit: movewordright }
|
|
]
|
|
}
|
|
}
|
|
{
|
|
name: move_to_line_start
|
|
modifier: control
|
|
keycode: char_a
|
|
mode: [ vi_normal vi_insert ]
|
|
event: { edit: movetolinestart }
|
|
}
|
|
{
|
|
name: move_to_line_end_or_take_history_hint
|
|
modifier: control
|
|
keycode: char_e
|
|
mode: [ vi_normal vi_insert ]
|
|
event: {
|
|
until: [
|
|
{ send: historyhintcomplete }
|
|
{ edit: movetolineend }
|
|
]
|
|
}
|
|
}
|
|
{
|
|
name: delete_one_character_backward
|
|
modifier: none
|
|
keycode: backspace
|
|
mode: vi_insert
|
|
event: { edit: backspace }
|
|
}
|
|
{
|
|
name: delete_one_word_backward
|
|
modifier: control
|
|
keycode: backspace
|
|
mode: vi_insert
|
|
event: { edit: backspaceword }
|
|
}
|
|
{
|
|
name: newline_or_run_command
|
|
modifier: none
|
|
keycode: enter
|
|
mode: vi_insert
|
|
event: { send: enter }
|
|
}
|
|
{
|
|
name: take_history_hint
|
|
modifier: control
|
|
keycode: char_f
|
|
mode: [ vi_normal vi_insert ]
|
|
event: {
|
|
until: [
|
|
{ send: historyhintcomplete }
|
|
]
|
|
}
|
|
}
|
|
]
|
|
|
|
source ./atuin.nu
|
|
source ./zoxide.nu
|
|
source ./source_profile.nu
|
|
source ./completions.nu
|
|
source ./prompt.nu
|
|
|
|
# fix sudo by prepending /run/wrappers/bin to the PATH.
|
|
$env.PATH = ($env.PATH | split row (char esep) | prepend '/run/wrappers/bin')
|
|
$env.LS_COLORS = (vivid generate lava)
|
|
$env.EDITOR = "hx"
|
|
$env.CARAPACE_BRIDGES = 'zsh,fish,bash,inshellisense'
|
|
|
|
# The prompt indicators are environmental variables that represent
|
|
# the state of the prompt.
|