From aa827b2bd12a005013205d9ae515608ff57d6901 Mon Sep 17 00:00:00 2001 From: winston Date: Fri, 2 Aug 2024 01:02:27 +0200 Subject: [PATCH] chore(nu): cleanup --- home/apps/nu.nix | 14 +- home/apps/nu/config.nu | 8 +- home/apps/nu/config/keybindings.nu | 308 ----------------------------- home/apps/nu/keybindings.nu | 308 +++++++++++++++++++++++++++++ 4 files changed, 317 insertions(+), 321 deletions(-) delete mode 100644 home/apps/nu/config/keybindings.nu create mode 100644 home/apps/nu/keybindings.nu diff --git a/home/apps/nu.nix b/home/apps/nu.nix index f445e23..d845e0d 100644 --- a/home/apps/nu.nix +++ b/home/apps/nu.nix @@ -64,18 +64,18 @@ in extraConfig = '' - $env.config = ($env.config? | default {}) - $env.config.hooks = ($env.config.hooks? | default {}) + $env.config = $env.config? | default {} + $env.config.hooks = $env.config.hooks? | default {} $env.config.hooks.command_not_found = {|cmd_name| try { ${command-not-found} $cmd_name } } source ${nu_scripts}/aliases/git/git-aliases.nu + source ${./nu/keybindings.nu} '' - + shellAliases - + "\n" - + mkCompletions completions; + + lib.concatStringsSep "\n" [ + shellAliases + (mkCompletions completions) + ]; }; - - xdg.configFile."nushell/config".source = ./nu/config; } diff --git a/home/apps/nu/config.nu b/home/apps/nu/config.nu index 23d2b1e..71c41ee 100644 --- a/home/apps/nu/config.nu +++ b/home/apps/nu/config.nu @@ -1,5 +1,3 @@ -use ($nu.default-config-dir | path join 'config/keybindings.nu') - # use prompt indicators from starship $env.PROMPT_INDICATOR = "" $env.PROMPT_INDICATOR_VI_INSERT = "" @@ -191,7 +189,7 @@ $env.config = { # true or false to enable or disable right prompt to be rendered on last line of the prompt. render_right_prompt_on_last_line: false # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this. - use_kitty_protocol: $in_supported_termprogram, + use_kitty_protocol: (($env.TERM_PROGRAM? == "WezTerm") or ($env.TERM? == "xterm-kitty")) # true enables highlighting of external commands in the repl resolved by which. highlight_resolved_externals: false # the maximum number of times nushell allows recursion before stopping it @@ -200,7 +198,7 @@ $env.config = { hooks: { env_change: { PWD: [ - {if (".git" | path exists) { + {if ((".git" | path exists) and not (which onefetch | is-empty)) { onefetch --no-merges --no-bots --no-color-palette --true-color=never --text-colors 1 1 3 4 4 }} ] @@ -210,6 +208,4 @@ $env.config = { # return an error message when a command is not found command_not_found: { null } } - - keybindings: (keybindings) } diff --git a/home/apps/nu/config/keybindings.nu b/home/apps/nu/config/keybindings.nu deleted file mode 100644 index 572b294..0000000 --- a/home/apps/nu/config/keybindings.nu +++ /dev/null @@ -1,308 +0,0 @@ -export def main [] { - return [ - { - name: completion_menu - modifier: none - keycode: tab - mode: [vi_normal, vi_insert] - event: { - until: [ - { send: menu name: completion_menu } - { send: menunext } - { edit: complete } - ] - } - } - { - name: ide_completion_menu - modifier: control - keycode: char_j - mode: [vi_normal, vi_insert] - event: { - until: [ - { send: menu name: ide_completion_menu } - { send: menunext } - { edit: complete } - ] - } - } - { - name: completion_previous_menu - modifier: shift - keycode: backtab - mode: [vi_normal, vi_insert] - event: { send: menuprevious } - } - { - name: escape - modifier: none - keycode: escape - mode: [vi_normal, vi_insert] - # NOTE: does not appear to work - 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: search_history - modifier: control - keycode: char_q - mode: [vi_normal, vi_insert] - event: { send: searchhistory } - } - { - name: open_command_editor - modifier: control - keycode: char_o - mode: [vi_normal, vi_insert] - event: { send: openeditor } - } - { - name: move_up - modifier: none - keycode: up - mode: [vi_normal, vi_insert] - event: { - until: [ - { send: menuup } - { send: up } - ] - } - } - { - 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: none - keycode: home - mode: [vi_normal, vi_insert] - event: { edit: movetolinestart } - } - { - 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: none - keycode: end - mode: [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: [vi_normal, vi_insert] - event: { - until: [ - { send: historyhintcomplete } - { edit: movetolineend } - ] - } - } - { - name: move_to_line_start - modifier: control - keycode: home - mode: [vi_normal, vi_insert] - event: { edit: movetolinestart } - } - { - name: move_to_line_end - modifier: control - keycode: end - mode: [vi_normal, vi_insert] - event: { edit: movetolineend } - } - { - name: move_up - modifier: control - keycode: char_p - mode: [vi_normal, vi_insert] - event: { - until: [ - { send: menuup } - { send: up } - ] - } - } - { - name: move_down - modifier: control - keycode: char_n - mode: [vi_normal, vi_insert] - event: { - until: [ - { send: menudown } - { send: down } - ] - } - } - { - 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: delete_one_character_forward - modifier: none - keycode: delete - mode: [vi_insert] - event: { edit: delete } - } - { - name: delete_one_character_forward - modifier: control - keycode: delete - mode: [vi_insert] - event: { edit: delete } - } - { - name: delete_one_character_backward - modifier: control - keycode: char_h - mode: [vi_insert] - event: { edit: backspace } - } - { - name: delete_one_word_backward - modifier: control - keycode: char_w - mode: [vi_insert] - event: { edit: backspaceword } - } - { - name: move_left - modifier: none - keycode: backspace - mode: vi_normal - event: { edit: moveleft } - } - { - name: cut_line_from_start - modifier: control - keycode: char_u - mode: [vi_normal, vi_insert] - event: { edit: cutfromstart } - } - { - name: copy_selection - modifier: control_shift - keycode: char_c - mode: emacs - event: { edit: copyselectionsystem } - } - { - name: cut_selection - modifier: control_shift - keycode: char_x - mode: emacs - 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 } - } - ] -} diff --git a/home/apps/nu/keybindings.nu b/home/apps/nu/keybindings.nu new file mode 100644 index 0000000..e4af785 --- /dev/null +++ b/home/apps/nu/keybindings.nu @@ -0,0 +1,308 @@ +$env.config = $env.config? | default {} + +$env.config.keybindings = [ + { + name: completion_menu + modifier: none + keycode: tab + mode: [vi_normal, vi_insert] + event: { + until: [ + { send: menu name: completion_menu } + { send: menunext } + { edit: complete } + ] + } + } + { + name: ide_completion_menu + modifier: control + keycode: char_j + mode: [vi_normal, vi_insert] + event: { + until: [ + { send: menu name: ide_completion_menu } + { send: menunext } + { edit: complete } + ] + } + } + { + name: completion_previous_menu + modifier: shift + keycode: backtab + mode: [vi_normal, vi_insert] + event: { send: menuprevious } + } + { + name: escape + modifier: none + keycode: escape + mode: [vi_normal, vi_insert] + # NOTE: does not appear to work + 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: search_history + modifier: control + keycode: char_q + mode: [vi_normal, vi_insert] + event: { send: searchhistory } + } + { + name: open_command_editor + modifier: control + keycode: char_o + mode: [vi_normal, vi_insert] + event: { send: openeditor } + } + { + name: move_up + modifier: none + keycode: up + mode: [vi_normal, vi_insert] + event: { + until: [ + { send: menuup } + { send: up } + ] + } + } + { + 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: none + keycode: home + mode: [vi_normal, vi_insert] + event: { edit: movetolinestart } + } + { + 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: none + keycode: end + mode: [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: [vi_normal, vi_insert] + event: { + until: [ + { send: historyhintcomplete } + { edit: movetolineend } + ] + } + } + { + name: move_to_line_start + modifier: control + keycode: home + mode: [vi_normal, vi_insert] + event: { edit: movetolinestart } + } + { + name: move_to_line_end + modifier: control + keycode: end + mode: [vi_normal, vi_insert] + event: { edit: movetolineend } + } + { + name: move_up + modifier: control + keycode: char_p + mode: [vi_normal, vi_insert] + event: { + until: [ + { send: menuup } + { send: up } + ] + } + } + { + name: move_down + modifier: control + keycode: char_n + mode: [vi_normal, vi_insert] + event: { + until: [ + { send: menudown } + { send: down } + ] + } + } + { + 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: delete_one_character_forward + modifier: none + keycode: delete + mode: [vi_insert] + event: { edit: delete } + } + { + name: delete_one_character_forward + modifier: control + keycode: delete + mode: [vi_insert] + event: { edit: delete } + } + { + name: delete_one_character_backward + modifier: control + keycode: char_h + mode: [vi_insert] + event: { edit: backspace } + } + { + name: delete_one_word_backward + modifier: control + keycode: char_w + mode: [vi_insert] + event: { edit: backspaceword } + } + { + name: move_left + modifier: none + keycode: backspace + mode: vi_normal + event: { edit: moveleft } + } + { + name: cut_line_from_start + modifier: control + keycode: char_u + mode: [vi_normal, vi_insert] + event: { edit: cutfromstart } + } + { + name: copy_selection + modifier: control_shift + keycode: char_c + mode: emacs + event: { edit: copyselectionsystem } + } + { + name: cut_selection + modifier: control_shift + keycode: char_x + mode: emacs + 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 } + } +]