From 74d3a643c16c4771b369bb06a1a768d3f03bb242 Mon Sep 17 00:00:00 2001 From: Anthony Oteri Date: Thu, 18 Jan 2024 15:51:29 -0500 Subject: [PATCH] Some updates to configuration --- .config/gh/config.yml | 1 + .config/nushell/config.nu | 883 ++++++++++++++++++++++++++++++++++++++ .config/nushell/env.nu | 105 +++++ .config/tmux/tmux.conf | 5 +- .fish_profile | 127 +++++- .ssh/config | 6 +- .zshrc | 8 +- 7 files changed, 1124 insertions(+), 11 deletions(-) create mode 100644 .config/nushell/config.nu create mode 100644 .config/nushell/env.nu diff --git a/.config/gh/config.yml b/.config/gh/config.yml index f32ba6a..97cf17c 100755 --- a/.config/gh/config.yml +++ b/.config/gh/config.yml @@ -13,3 +13,4 @@ aliases: http_unix_socket: # What web browser gh should use when opening URLs. If blank, will refer to environment. browser: +version: "1" diff --git a/.config/nushell/config.nu b/.config/nushell/config.nu new file mode 100644 index 0000000..ba8962c --- /dev/null +++ b/.config/nushell/config.nu @@ -0,0 +1,883 @@ +# Nushell Config File +# +# version = "0.89.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_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: true # 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 + } + } + + 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: "/usr/bin/nvim" # 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: 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. + + 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: green_reverse + description_text: yellow + } + } + { + 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: 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_forward + 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} + } + ] +} + +use ~/.cache/starship/init.nu + + + +alias lg = lazygit +alias cat = bat +alias vim = nvim +alias vi = nvim + +alias arch = coreutils arch +alias b2sum = coreutils b2sum +alias b2sum = coreutils b3sum +alias base32 = coreutils base32 +alias base64 = coreutils base64 +alias basename = coreutils basename +alias basenc = coreutils basenc +alias chgrp = coreutils chgrp +alias chmod = coreutils chmod +alias chown = coreutils chown +alias chroot = coreutils chroot +alias 384sum = coreutils 384sum +alias cksum = coreutils cksum +alias comm = coreutils comm +alias cp = coreutils cp +alias csplit = coreutils csplit +alias cut = coreutils cut +alias date = coreutils date +alias dd = coreutils dd +alias df = coreutils df +alias dir = coreutils dir +alias dircolors = coreutils dircolors +alias dirname = coreutils dirname +alias du = coreutils du +alias echo = coreutils echo +alias env = coreutils env +alias expand = coreutils expand +alias expr = coreutils expr +alias factor = coreutils factor +alias fmt = coreutils fmt +alias fold = coreutils fold +alias groups = coreutils groups +alias hashsum = coreutils hashsum +alias head = coreutils head +alias hostid = coreutils hostid +alias hostname = coreutils hostname +alias id = coreutils id +alias install = coreutils install +alias join = coreutils join +alias kill = coreutils kill +alias link = coreutils link +alias ln = coreutils ln +alias logname = coreutils logname +alias md5sum = coreutils md5sum +alias mkdir = coreutils mkdir +alias mkfifo = coreutils mkfifo +alias mknod = coreutils mknod +alias mktemp = coreutils mktemp +alias more = coreutils more +alias mv = coreutils mv +alias nice = coreutils nice +alias nl = coreutils nl +alias nohup = coreutils nohup +alias nproc = coreutils nproc +alias numfmt = coreutils numfmt +alias od = coreutils od +alias paste = coreutils paste +alias pathchk = coreutils pathchk +alias pinky = coreutils pinky +alias pr = coreutils pr +alias printenv = coreutils printenv +alias printf = coreutils printf +alias ptx = coreutils ptx +alias pwd = coreutils pwd +alias readlink = coreutils readlink +alias realpath = coreutils realpath +alias rm = coreutils rm +alias rmdir = coreutils rmdir +alias seq = coreutils seq +alias sha1sum = coreutils sha1sum +alias sha224sum = coreutils sha224sum +alias sha256sum = coreutils sha256sum +alias sha3- = coreutils sha3- +alias sha3-224sum = coreutils sha3-224sum +alias sha3-256sum = coreutils sha3-256sum +alias sha3-512sum = coreutils sha3-512sum +alias sha384sum = coreutils sha384sum +alias sha3sum = coreutils sha3sum +alias sha512sum = coreutils sha512sum +alias shake128sum = coreutils shake128sum +alias shake256sum = coreutils shake256sum +alias shred = coreutils shred +alias shuf = coreutils shuf +alias sleep = coreutils sleep +alias sort = coreutils sort +alias split = coreutils split +alias stat = coreutils stat +alias stdbuf = coreutils stdbuf +alias stty = coreutils stty +alias sum = coreutils sum +alias sync = coreutils sync +alias tac = coreutils tac +alias tail = coreutils tail +alias tee = coreutils tee +alias timeout = coreutils timeout +alias touch = coreutils touch +alias tr = coreutils tr +alias truncate = coreutils truncate +alias tsort = coreutils tsort +alias tty = coreutils tty +alias uname = coreutils uname +alias unexpand = coreutils unexpand +alias uniq = coreutils uniq +alias unlink = coreutils unlink +alias uptime = coreutils uptime +alias users = coreutils users +alias vdir = coreutils vdir +alias wc = coreutils wc +alias who = coreutils who +alias whoami = coreutils whoami +alias yes = coreutils yes diff --git a/.config/nushell/env.nu b/.config/nushell/env.nu new file mode 100644 index 0000000..ee96b0d --- /dev/null +++ b/.config/nushell/env.nu @@ -0,0 +1,105 @@ +# Nushell Environment Config File +# +# version = "0.89.0" + +def create_left_prompt [] { + let home = $nu.home-path + + # Perform tilde substitution on dir + # To determine if the prefix of the path matches the home dir, we split the current path into + # segments, and compare those with the segments of the home dir. In cases where the current dir + # is a parent of the home dir (e.g. `/home`, homedir is `/home/user`), this comparison will + # also evaluate to true. Inside the condition, we attempt to str replace `$home` with `~`. + # Inside the condition, either: + # 1. The home prefix will be replaced + # 2. The current dir is a parent of the home dir, so it will be uneffected by the str replace + let dir = ( + if ($env.PWD | path split | zip ($home | path split) | all { $in.0 == $in.1 }) { + ($env.PWD | str replace $home "~") + } else { + $env.PWD + } + ) + + 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 %p') # 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 /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 /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') + +mkdir ~/.cache/starship +starship init nu | save -f ~/.cache/starship/init.nu + diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf index 8403fee..51a1d3d 100644 --- a/.config/tmux/tmux.conf +++ b/.config/tmux/tmux.conf @@ -10,7 +10,8 @@ set -sg repeat-time 600 set -q -g status-utf8 on setw -q -g utf8 on -set-option -g default-shell /usr/bin/fish +#set-option -g default-shell /usr/bin/fish +set-option -g default-shell /home/anthony/.cargo/bin/nu set -g set-clipboard on @@ -18,7 +19,7 @@ set -g set-clipboard on set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' -set -g @plugin 'christoomey/vim-tmux-navigator' +#set -g @plugin 'christoomey/vim-tmux-navigator' set -g @plugin 'catppuccin/tmux' set -g @plugin 'tmux-plugins/tmux-yank' set -g @plugin 'tmux-plugins/tmux-pain-control' diff --git a/.fish_profile b/.fish_profile index e51908b..6f568c4 100644 --- a/.fish_profile +++ b/.fish_profile @@ -5,18 +5,137 @@ set -x BAT_CONFIG_PATH $HOME/.config/bat/config.conf alias vim=/usr/bin/nvim alias vimdiff='/usr/bin/nvim -d' alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' -alias sudo='doas' +#alias sudo='doas' alias lg=/usr/bin/lazygit -set -x EDITOR /usr/bin/nvim -set -x AWS_PROFILE streampilot-dev - if test -d ~/.cargo/bin if not contains -- ~/.cargo/bin $PATH set -p PATH ~/.cargo/bin end end +# Coreutils aliases + +alias arch='coreutils arch' +alias b2sum='coreutils b2sum' +alias b2sum='coreutils b3sum' +alias base32='coreutils base32' +alias base64='coreutils base64' +alias basename='coreutils basename' +alias basenc='coreutils basenc' +# alias cat='coreutils cat' +alias chgrp='coreutils chgrp' +alias chmod='coreutils chmod' +alias chown='coreutils chown' +alias chroot='coreutils chroot' +alias 384sum='coreutils 384sum' +alias cksum='coreutils cksum' +alias comm='coreutils comm' +alias cp='coreutils cp' +alias csplit='coreutils csplit' +alias cut='coreutils cut' +alias date='coreutils date' +alias dd='coreutils dd' +alias df='coreutils df' +alias dir='coreutils dir' +alias dircolors='coreutils dircolors' +alias dirname='coreutils dirname' +alias du='coreutils du' +alias echo='coreutils echo' +alias env='coreutils env' +alias expand='coreutils expand' +alias expr='coreutils expr' +alias factor='coreutils factor' +alias false='coreutils false' +alias fmt='coreutils fmt' +alias fold='coreutils fold' +alias groups='coreutils groups' +alias hashsum='coreutils hashsum' +alias head='coreutils head' +alias hostid='coreutils hostid' +alias hostname='coreutils hostname' +alias id='coreutils id' +alias install='coreutils install' +alias join='coreutils join' +alias kill='coreutils kill' +alias link='coreutils link' +alias ln='coreutils ln' +alias logname='coreutils logname' +# alias ls='coreutils ls' +alias md5sum='coreutils md5sum' +alias mkdir='coreutils mkdir' +alias mkfifo='coreutils mkfifo' +alias mknod='coreutils mknod' +alias mktemp='coreutils mktemp' +alias more='coreutils more' +alias mv='coreutils mv' +alias nice='coreutils nice' +alias nl='coreutils nl' +alias nohup='coreutils nohup' +alias nproc='coreutils nproc' +alias numfmt='coreutils numfmt' +alias od='coreutils od' +alias paste='coreutils paste' +alias pathchk='coreutils pathchk' +alias pinky='coreutils pinky' +alias pr='coreutils pr' +alias printenv='coreutils printenv' +alias printf='coreutils printf' +alias ptx='coreutils ptx' +alias pwd='coreutils pwd' +alias readlink='coreutils readlink' +alias realpath='coreutils realpath' +alias rm='coreutils rm' +alias rmdir='coreutils rmdir' +alias seq='coreutils seq' +alias sha1sum='coreutils sha1sum' +alias sha224sum='coreutils sha224sum' +alias sha256sum='coreutils sha256sum' +alias sha3-='coreutils sha3-' +alias sha3-224sum='coreutils sha3-224sum' +alias sha3-256sum='coreutils sha3-256sum' +alias sha3-512sum='coreutils sha3-512sum' +alias sha384sum='coreutils sha384sum' +alias sha3sum='coreutils sha3sum' +alias sha512sum='coreutils sha512sum' +alias shake128sum='coreutils shake128sum' +alias shake256sum='coreutils shake256sum' +alias shred='coreutils shred' +alias shuf='coreutils shuf' +alias sleep='coreutils sleep' +alias sort='coreutils sort' +alias split='coreutils split' +alias stat='coreutils stat' +alias stdbuf='coreutils stdbuf' +alias stty='coreutils stty' +alias sum='coreutils sum' +alias sync='coreutils sync' +alias tac='coreutils tac' +alias tail='coreutils tail' +alias tee='coreutils tee' +alias timeout='coreutils timeout' +alias touch='coreutils touch' +alias tr='coreutils tr' +alias true='coreutils true' +alias truncate='coreutils truncate' +alias tsort='coreutils tsort' +alias tty='coreutils tty' +alias uname='coreutils uname' +alias unexpand='coreutils unexpand' +alias uniq='coreutils uniq' +alias unlink='coreutils unlink' +alias uptime='coreutils uptime' +alias users='coreutils users' +alias vdir='coreutils vdir' +alias wc='coreutils wc' +alias who='coreutils who' +alias whoami='coreutils whoami' +alias yes='coreutils yes' + + +set -x EDITOR /usr/bin/nvim +set -x AWS_PROFILE streampilot-dev + # Faster Docker Builds set -x DOCKER_BUILDKIT 1 diff --git a/.ssh/config b/.ssh/config index 6075d70..8369c8e 100644 --- a/.ssh/config +++ b/.ssh/config @@ -1,3 +1,7 @@ +Host ol8-dev + HostName ol8-dev + User anthony + Host hyper* User=root @@ -26,5 +30,5 @@ Host 192.168.11.13, anthony-dev Compression=yes ForwardAgent=yes -host newenglandsalts.com +Host newenglandsalts.com User=root diff --git a/.zshrc b/.zshrc index b447171..3e056f1 100644 --- a/.zshrc +++ b/.zshrc @@ -2,9 +2,9 @@ neofetch # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. -if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then - source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" -fi +#if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then +# source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" +#fi # If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin:$PATH @@ -84,7 +84,7 @@ zstyle ':omz:update' frequency 13 # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. -plugins=(git aliases archlinux branch github zsh-autosuggestions zsh-syntax-highlighting zsh-completions zsh-interactive-cd zsh-navigation-tools pyenv) +plugins=(git aliases archlinux branch github starship zsh-autosuggestions zsh-syntax-highlighting zsh-completions zsh-interactive-cd zsh-navigation-tools pyenv) source $ZSH/oh-my-zsh.sh