(feat): Added nushell config
This commit is contained in:
		
							parent
							
								
									6bb1a67713
								
							
						
					
					
						commit
						93fc906041
					
				
					 4 changed files with 1144 additions and 1 deletions
				
			
		|  | @ -115,7 +115,7 @@ echo ################### | |||
| echo # Setting up nvim # | ||||
| echo ################### | ||||
| 
 | ||||
| cp -r nvim/ ~/.config/nvim/ | ||||
| cp -r terminal/nushell/ ~/.config/ | ||||
| 
 | ||||
| echo ####################### | ||||
| echo # Cleanup and Updates # | ||||
|  |  | |||
							
								
								
									
										868
									
								
								terminal/nushell/config.nu
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										868
									
								
								terminal/nushell/config.nu
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,868 @@ | |||
| # Nushell Config File | ||||
| # | ||||
| # version = "0.92.2" | ||||
| 
 | ||||
| # 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_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 | ||||
| } | ||||
| 
 | ||||
| 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 | ||||
| } | ||||
| 
 | ||||
| # External completer example | ||||
| # let carapace_completer = {|spans| | ||||
| #     carapace $spans.0 nushell ...$spans | from json | ||||
| # } | ||||
| 
 | ||||
| # The default config record. This is where much of your global configuration is setup. | ||||
| $env.config = { | ||||
|     show_banner: false # true or false to enable or disable the welcome banner at startup | ||||
| 
 | ||||
|     ls: { | ||||
|         use_ls_colors: true # use the LS_COLORS environment variable to colorize output | ||||
|         clickable_links: true # enable or disable clickable links. Your terminal has to support links. | ||||
|     } | ||||
| 
 | ||||
|     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: {} | ||||
|         }, | ||||
|         table: { | ||||
|             split_line: { fg: "#404040" }, | ||||
|             selected_cell: { bg: light_blue }, | ||||
|             selected_row: {}, | ||||
|             selected_column: {}, | ||||
|         }, | ||||
|     } | ||||
| 
 | ||||
|     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 | ||||
|     } | ||||
| 
 | ||||
|     filesize: { | ||||
|         metric: false # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard) | ||||
|         format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto | ||||
|     } | ||||
| 
 | ||||
|     cursor_shape: { | ||||
|         emacs: line # 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 | ||||
|     use_grid_icons: true | ||||
|     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: emacs # emacs, vi | ||||
|     shell_integration: false # enables terminal shell integration. Off by default, as some terminals have issues with this. | ||||
|     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: [{ null }] # run before the prompt is shown | ||||
|         pre_execution: [{ null }] # run before the repl input is run | ||||
|         env_change: { | ||||
|             PWD: [{|before, after| null }] # 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: 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 } | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| 
 | ||||
| use ~/.cache/starship/init.nu | ||||
							
								
								
									
										107
									
								
								terminal/nushell/env.nu
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								terminal/nushell/env.nu
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,107 @@ | |||
| # Nushell Environment Config File | ||||
| # | ||||
| # version = "0.92.2" | ||||
| 
 | ||||
| def create_left_prompt [] { | ||||
|     let dir = match (do --ignore-shell-errors { $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 | ||||
| ] | ||||
| 
 | ||||
| # 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" | ||||
| # $env.PATH = ($env.PATH | split row (char esep)) | ||||
| # path add /some/path | ||||
| # path add ($env.CARGO_HOME | path join "bin") | ||||
| # path add ($env.HOME | path join ".local" "bin") | ||||
| 
 | ||||
| $env.PATH = ( | ||||
|         $env.PATH | | ||||
|         split row (char esep) | | ||||
|         prepend '~/.cargo/bin' | | ||||
|         prepend '/usr/local/bin' | ||||
| ) | ||||
| 
 | ||||
| 
 | ||||
| # To load from a custom file you can use: | ||||
| # source ($nu.default-config-dir | path join 'custom.nu') | ||||
							
								
								
									
										168
									
								
								terminal/nushell/history.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								terminal/nushell/history.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,168 @@ | |||
| mkdir ~/.cache/starship | ||||
| starship init nu | save -f ~/.cache/starship/init.nu | ||||
| use ~/.cache/starship/init.nu | ||||
| starship preset gruvbox-rainbow -o ~/.config/starship.toml | ||||
| use ~/.cache/starship/init.nu | ||||
| micro ~/.config/starship.toml | ||||
| zshreload | ||||
| exit | ||||
| exit | ||||
| use ~/.cache/starship/init.nu | ||||
| micro ~/.config/starship.toml | ||||
| use ~/.cache/starship/init.nu | ||||
| ] | ||||
| cat dotfiles/terminal/starship.toml | ||||
| cat dotfiles/post_install.sh | ||||
| cp terminal/starship.toml ~/.config/starship.toml<\n> | ||||
| cat .config/starship.toml | ||||
| cp dotfiles/terminal/starship.toml ~/.config/starship.toml<\n> | ||||
| micro ~/.config/starship.toml | ||||
| micro dotfiles/terminal/starship.toml | ||||
| git status | ||||
| cd dotfiles/ | ||||
| git status | ||||
| git add . | ||||
| git commit -m "(feat): Changed to Tux from Fedora Logo" | ||||
| gp | ||||
| git push | ||||
| ls | ||||
| cd .. | ||||
| git clone http://172.16.5.30:3000/blake/debian-scripts.git | ||||
| cd debian-scripts/ | ||||
| ls | ||||
| ./install-discord.sh | ||||
| sudo ./install-discord.sh | ||||
| ls | ||||
| cat setup-dotfiles.sh | ||||
| cd | ||||
| ls | ||||
| mkdir Data | ||||
| cd Data/ | ||||
| mkdir 500GB | ||||
| mkdir {1TB,5TB} | ||||
| mkdir [1TB,5TB] | ||||
| ;s | ||||
| ls | ||||
| rm -r '[1TB,5TB]/' | ||||
| mkdir -v 1tb 5tb | ||||
| ls | ||||
| pwd | ||||
| ls 500GB/ | ||||
| $nu.config-path | ||||
| mico ~/.config/nushell/config.nu | ||||
| micro ~/.config/nushell/config.nu | ||||
| exit | ||||
| micro ~/.config/nushell/config.nu | ||||
| ls | ||||
| micro ~/.steam/steam/steam_dev.cfg | ||||
| cd dotfiles/ | ||||
| ls | ||||
| git checkout -b refresh_somethings | ||||
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh | ||||
| cargo check nu | ||||
| . "$HOME/.cargo/env" | ||||
| alacritty) | ||||
| for cargo_name in ${CARGO_LIST[@]}; do | ||||
| cargo install "$cargo_name"done | ||||
| cargo install nu | ||||
| vim test.sh | ||||
| micro test.sh | ||||
| chmod +x test.sh | ||||
| ./test.sh | ||||
| chmod +x test.sh | ||||
| micro test.sh | ||||
| chmod +x test.sh | ||||
| ./test.sh | ||||
| sudo apt install cmake | ||||
| ls | ||||
| ./test.sh | ||||
| micro post_install.sh | ||||
| git add . | ||||
| git commit -m "(feat): Rewriting install script, removed hack stuff" | ||||
| gp | ||||
| git push | ||||
| ls | ||||
| git push --set-upstream origin refresh_somethings | ||||
| cargo | ||||
| exit | ||||
| bash | ||||
| exit | ||||
| bash | ||||
| exit | ||||
| bash | ||||
| exit | ||||
| cargo | ||||
| $CARGO_PATH | ||||
| echo $CARGO_PATH | ||||
| echo $CARGO_HOME | ||||
| config nu | ||||
| $env.PATH | ||||
| env.CARGO_HOME | ||||
| $env.CARGO_HOME | ||||
| $env.HOME  | ||||
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh | ||||
| $env.CARGO_HOME | ||||
| which cargo | ||||
| which rustc | ||||
| ls /usr/local/bin/cargo | ||||
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh | ||||
| ls | ||||
| cd .config/nushell/ | ||||
| ls | ||||
| vim env.nu | ||||
| micro env.nu | ||||
| exit | ||||
| micro /home/blake/.config/nushell/env.nu | ||||
| exit | ||||
| micro /home/blake/.config/nushell/env.nu | ||||
| exit | ||||
| $HOME | ||||
| micro /home/blake/.config/nushell/env.nu | ||||
| config | ||||
| fonfig env | ||||
| config env | ||||
| config nu | ||||
| env | ||||
| which nu | ||||
| which brew | ||||
| which home | ||||
| which | ||||
| which * | ||||
| micro /home/blake/.config/nushell/env.nu | ||||
| which * | ||||
| cargo | ||||
| exit | ||||
| bash | ||||
| exit | ||||
| cargo | ||||
| which cargo | ||||
| cargo | ||||
| micro /home/blake/.config/nushell/env.nu | ||||
| cargo | ||||
| bash | ||||
| cargo | ||||
| micro /home/blake/.config/nushell/env.nu | ||||
| exit | ||||
| micro /home/blake/.config/nushell/env.nu | ||||
| exit | ||||
| cargo | ||||
| which cargo | ||||
| micro /home/blake/.config/nushell/env.nu | ||||
| sudo apt remove rustup | ||||
| sudo apt remove rust | ||||
| sudo apt remove rustc | ||||
| sudo apt remove cargo | ||||
| rustup default system | ||||
| sudo apt install rustup | ||||
| micro /home/blake/.config/nushell/env.nu | ||||
| exit | ||||
| cargo | ||||
| ./test.sh | ||||
| cargo install alacritty | ||||
| cargo install alacritty --force | ||||
| cargo | ||||
| ping 172.16.5.30 | ||||
| ping 172.16.0.43 | ||||
| ping 172.16.5.30 | ||||
| ls | ||||
| ls .config/ | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Blake Ridgway
						Blake Ridgway