add terminal settings

This commit is contained in:
fbachus
2024-11-08 18:52:35 +01:00
parent fae4da8315
commit 6ea752e214
16 changed files with 2742 additions and 0 deletions

View File

@@ -0,0 +1,117 @@
#custom_cursor_colors = true
#decorations = "buttonless"
import = [
"~/.config/alacritty_font.toml",
]
# Colors (One Dark)
# Default colors
[colors.primary]
background = '#2d3237'
foreground = '#abb2bf'
# Normal colors
[colors.normal]
black = '#1e2127'
red = '#e06c75'
green = '#98c379'
yellow = '#d19a66'
blue = '#61afef'
magenta = '#c678dd'
cyan = '#56b6c2'
white = '#abb2bf'
# Bright colors
[colors.bright]
black = '#5c6370'
red = '#e06c75'
green = '#98c379'
yellow = '#d19a66'
blue = '#61afef'
magenta = '#c678dd'
cyan = '#56b6c2'
white = '#ffffff'
[debug]
render_timer = false
[env]
term = "xterm-256color"
[font]
size = 13
[font.bold]
family = "Hurmit Nerd Font"
style = "Bold"
#family = "Jetbrains Mono Nerd Font"
#style = "Medium"
[font.glyph_offset]
x = 0
y = -2
[font.italic]
family = "Hurmit Nerd Font"
style = "Light Italic"
#family = "JetbrainsMonoNL Nerd Font"
#style = "Light Italic"
[font.normal]
family = "Hurmit Nerd Font"
style = "Regular"
#family = "JetbrainsMonoNL Nerd Font"
#style = "Regular"
[font.offset]
x = 0
y = -3
[[keyboard.bindings]]
action = "ToggleViMode"
key = "F7"
[scrolling]
history = 2000
[selection]
save_to_clipboard = true
[shell]
program = "/usr/bin/fish"
[window]
decorations = "none"
dynamic_padding = false
opacity = 0.30
blur = true
[window.padding]
x = 0
y = 0
# Everforest color theme
# [colors.bright]
# black = "0x475258"
# blue = "0x7fbbb3"
# cyan = "0x83c092"
# green = "0xa7c080"
# magenta = "0xd699b6"
# red = "0xe67e80"
# yellow = "0xdbbc7f"
#
# [colors.normal]
# black = "0x475258"
# blue = "0x7fbbb3"
# cyan = "0x83c092"
# green = "0xa7c080"
# magenta = "0xd699b6"
# red = "0xe67e80"
# white = "0xd3c6aa"
# yellow = "0xdbbc7f"
#
# [colors.primary]
# background = "0x2d353b"
# foreground = "0xd3c6aa"

68
.config/fish/config.fish Executable file
View File

@@ -0,0 +1,68 @@
# Configure Jump
# status --is-interactive; and source (jump shell fish | psub)
# Load all saved ssh keys
#/usr/bin/ssh-add >> &/dev/null&
eval (ssh-agent -c)
function last_history_item
echo $history[1]
end
# add abbreviations
abbr -a -- gcp git cherry-pick
abbr -a -- gs git status
abbr -a -- lgb git lgb
abbr -a !! --position anywhere --function last_history_item
abbr -a mksilent --position anywhere "&>/dev/null&"
abbr -a inbg --position anywhere "&>/dev/null& && jobs | disown"
abbr -a -- rm-orphans "sudo pacman -Qtdq | sudo pacman -Rns -"
abbr -a -- screenl "systemctl hybrid-sleep && hyprlock &>/dev/null&"
abbr -a -- tree "eza -T"
abbr -a -- trd "eza -T -D"
abbr -a -- trl "eza -T -L "
abbr -a -- trld "eza -T -D -L "
abbr -a -- trdl "eza -T -D -L "
abbr -a "packagelist-update" "pacman -Qe | sed 's/ .*//g' | tee ~/Sync/explicitly_installed"
abbr -a "nvim-headless-update" 'nvim --headless "+Lazy! sync" +qa'
abbr -a "nvim-headless-clean" 'nvim --headless "+Lazy! clean" +qa'
alias ll "eza -lh"
alias la "eza -lha"
alias ls "eza"
# Fish syntax highlighting
set -g fish_color_autosuggestion '555' 'brblack'
set -g fish_color_cancel -r
set -g fish_color_command --bold
set -g fish_color_comment red
set -g fish_color_cwd green
set -g fish_color_cwd_root red
set -g fish_color_end brmagenta
set -g fish_color_error brred
set -g fish_color_escape 'bryellow' '--bold'
set -g fish_color_history_current --bold
set -g fish_color_host normal
set -g fish_color_match --background=brblue
set -g fish_color_normal normal
set -g fish_color_operator bryellow
set -g fish_color_param cyan
set -g fish_color_quote yellow
set -g fish_color_redirection brblue
set -g fish_color_search_match 'bryellow' '--background=brblack'
set -g fish_color_selection 'white' '--bold' '--background=brblack'
set -g fish_color_user brgreen
set -g fish_color_valid_path --underline
# exports, execute only once and manually
# set -Ux RUSTC_WRAPPER sccache
# set -Ux ELECTRON_OZONE_PLATFORM_HINT wayland
starship init fish | source
zoxide init --cmd cd fish | source
# pnpm
set -gx PNPM_HOME "/home/felix/.local/share/pnpm"
if not string match -q -- $PNPM_HOME $PATH
set -gx PATH "$PNPM_HOME" $PATH
end
# pnpm end

View File

@@ -0,0 +1,63 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR --export BAT_THEME:OneHalfDark
SETUVAR --export EDITOR:nvim
SETUVAR --export ELECTRON_OSZONE_PLATFORM_HINT:wayland
SETUVAR --export ELECTRON_OZONE_PLATFORM_HINT:wayland
SETUVAR FLASK_ENV:development
SETUVAR --export --path GODOT_ADDON_PATH:\x7e/\x2elocal/share/godot/addons
SETUVAR LANG:en_GB\x2eUTF\x2d8
SETUVAR LANGUAGE:en_GB\x2eUTF\x2d8
SETUVAR --export LAST_DIR:/home/felix/Code/CODE/tutorials/rust_web_server
SETUVAR --export MY_GITLAB_TOKEN:glpat\x2dye6rAJswy24rQcRNnmLo
SETUVAR --export RUSTC_WRAPPER:sccache
SETUVAR --export SUDO_ASKPASS:/usr/bin/ksshaskpass
SETUVAR TERMINAL_FONT_SIZE:14
SETUVAR --export VISUAL_EDITOR:nvim
SETUVAR __fish_initialized:3400
SETUVAR _fish_abbr_audio_2D_switch:\x7e/Code/scripts/alsa\x2dfp\x2dswitch\x2esh
SETUVAR _fish_abbr_clera:clear
SETUVAR _fish_abbr_current_2D_project:vim\x20Code/side/first_rust_gui
SETUVAR _fish_abbr_secscreen:\x2e/Code/scripts/act_second_monitor\x2esh
SETUVAR _fish_abbr_uin:sudo\x20pacman\x20\x2dRuscn
SETUVAR fish_color_autosuggestion:969896
SETUVAR fish_color_cancel:\x2d\x2dreverse
SETUVAR fish_color_command:b294bb
SETUVAR fish_color_comment:f0c674
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:b294bb
SETUVAR fish_color_error:cc6666
SETUVAR fish_color_escape:00a6b2
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:\x1d
SETUVAR fish_color_keyword:\x1d
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:00a6b2
SETUVAR fish_color_option:\x1d
SETUVAR fish_color_param:81a2be
SETUVAR fish_color_quote:b5bd68
SETUVAR fish_color_redirection:8abeb7
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell\x0aType\x20\x60help\x60\x20for\x20instructions\x20on\x20how\x20to\x20use\x20fish
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_background:\x1d
SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:B3A06D
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_secondary_background:\x1d
SETUVAR fish_pager_color_secondary_completion:\x1d
SETUVAR fish_pager_color_secondary_description:\x1d
SETUVAR fish_pager_color_secondary_prefix:\x1d
SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dbrblack
SETUVAR fish_pager_color_selected_completion:\x1d
SETUVAR fish_pager_color_selected_description:\x1d
SETUVAR fish_pager_color_selected_prefix:\x1d
SETUVAR fish_user_paths:/home/felix/\x2ecargo/bin

View File

@@ -0,0 +1,3 @@
function fish_greeting
fortune -a vimtips billwurtz
end

View File

@@ -0,0 +1,19 @@
function fish_prompt --description 'Informative prompt'
#Save the return status of the previous command
set -l last_pipestatus $pipestatus
switch "$USER"
case root toor
printf '%s@%s %s%s%s# ' $USER (prompt_hostname) (set -q fish_color_cwd_root
and set_color $fish_color_cwd_root
or set_color $fish_color_cwd) \
(prompt_pwd) (set_color normal)
case '*'
set -l pipestatus_string (__fish_print_pipestatus "[" "] " "|" (set_color $fish_color_status) \
(set_color --bold $fish_color_status) $last_pipestatus)
printf '[%s] %s%s@%s %s%s %s%s%s \f\r> ' (date "+%H:%M:%S") (set_color brblue) \
$USER (prompt_hostname) (set_color $fish_color_cwd) $PWD $pipestatus_string \
(set_color normal)
end
end

View File

@@ -0,0 +1,4 @@
function restart --argument x
pkill $x && $x &>/dev/null& && jobs | disown
end

View File

@@ -0,0 +1,6 @@
function setscreenb --argument x
for i in (seq 1 2)
sudo ddcutil setvcp 10 $x -d $i
end
end

View File

@@ -0,0 +1,4 @@
function silentstart --argument x
$x &>/dev/null& && sleep 1 && jobs | disown
end

View File

@@ -0,0 +1,70 @@
# vim:ft=kitty
## name: Everforest Dark Hard
## author: Sainnhe Park
## license: MIT
## upstream: https://github.com/ewal/kitty-everforest/blob/master/themes/everforest_dark_hard.conf
## blurb: A green based color scheme designed to be warm and soft
foreground #d3c6aa
background #272e33
selection_foreground #9da9a0
selection_background #464e53
cursor #d3c6aa
cursor_text_color #2e383c
url_color #7fbbb3
active_border_color #a7c080
inactive_border_color #4f5b58
bell_border_color #e69875
visual_bell_color none
wayland_titlebar_color system
macos_titlebar_color system
active_tab_background #272e33
active_tab_foreground #d3c6aa
inactive_tab_background #374145
inactive_tab_foreground #9da9a0
tab_bar_background #2e383c
tab_bar_margin_color none
mark1_foreground #272e33
mark1_background #7fbbb3
mark2_foreground #272e33
mark2_background #d3c6aa
mark3_foreground #272e33
mark3_background #d699b6
#: black
color0 #343f44
color8 #868d80
#: red
color1 #e67e80
color9 #e67e80
#: green
color2 #a7c080
color10 #a7c080
#: yellow
color3 #dbbc7f
color11 #dbbc7f
#: blue
color4 #7fbbb3
color12 #7fbbb3
#: magenta
color5 #d699b6
color13 #d699b6
#: cyan
color6 #83c092
color14 #83c092
#: white
color7 #859289
color15 #9da9a0

72
.config/kitty/kitty.conf Normal file
View File

@@ -0,0 +1,72 @@
# BEGIN_KITTY_THEME
# Everforest Dark Hard
include current-theme.conf
# END_KITTY_THEME
# BEGIN_COLOR_SCHEME
# background #1e1e1e
background_opacity 0.7
background_blur 1
background_tint 1.0
transparent_background_colors #22262D #2D313B #303030 #000
# END_COLOR_SCHEME
# BEGIN_KITTY_FONTS
font_family family='Hurmit Nerd Font' style=Light
bold_font auto
italic_font family='Hurmit Nerd Font' style='Light Italic'
bold_italic_font auto
font_size 13.0
# END_KITTY_FONTS
# BEGIN_SCROLLBACK
touch_scroll_multiplier 5.0
# END_SCROLLBACK
# BEGIN_WINDOW_LAYOUT
hide_window_decorations yes
#window_padding_width 0
placement_strategy bottom
# END_WINDOW_LAYOUT
# BEGIN_TAB_BAR
tab_bar_style powerline
tab_powerline_style slanted
tab_title_template "{index} {title}"
tab_title_max_length 20
# active_tab_background #1e1e1e
# active_tab_foreground #b4cdbe
# active_tab_font_style Light
# inactive_tab_background #1e1e1e
# inactive_tab_foreground #48736e
inactive_tab_font_style Light
# END_TAB_BAR
# BEGIN_PERFORMANCE_TUNING
repaint_delay 8
# END_PERFORMANCE_TUNING
# BEGIN_KEYBOARD_SHORTCUTS
## BEGIN_WINDOW_MANAGEMENT
map ctrl+shift+enter new_window
map ctrl+alt+enter launch --cwd=current
map ctrl+alt+1 goto_tab 1
map ctrl+alt+2 goto_tab 2
map ctrl+alt+3 goto_tab 3
map ctrl+alt+4 goto_tab 4
map ctrl+alt+5 goto_tab 5
map ctrl+alt+6 goto_tab 6
map ctrl+alt+7 goto_tab 7
map ctrl+alt+8 goto_tab 8
map ctrl+alt+9 goto_tab 9
## BEGIN_LAYOUT_MANAGEMENT
map ctrl+alt+t goto_layout tall
map ctrl+alt+s goto_layout wide
map ctrl+alt+p last_used_layout
map ctrl+alt+z toggle_layout stack
# END_KEYBOARD_SHORTCUTS
# BEGIN_LAYOUT_DEFINITION
enabled_layouts tall:bias=50;full_size=1;mirrored=false, grid, fat:bias=50;full_size=1;mirrored=false , stack, splits:split_axis=auto
# END_LAYOUT_DEFINITION

View File

@@ -0,0 +1,73 @@
# BEGIN_KITTY_THEME
# One Half Dark
include current-theme.conf
# END_KITTY_THEME
# BEGIN_COLOR_SCHEME
background #1e1e1e
#background_opacity 0.4
background_blur 1
background_tint 1.0
transparent_background_colors #22262D #2D313B #303030 #000
# END_COLOR_SCHEME
# BEGIN_KITTY_FONTS
font_family family='Hurmit Nerd Font' style=Light
bold_font auto
italic_font family='Hurmit Nerd Font' style='Light Italic'
bold_italic_font auto
font_size 13.0
# END_KITTY_FONTS
# BEGIN_SCROLLBACK
touch_scroll_multiplier 5.0
# END_SCROLLBACK
# BEGIN_WINDOW_LAYOUT
hide_window_decorations yes
#window_padding_width 0
placement_strategy bottom
# END_WINDOW_LAYOUT
# BEGIN_TAB_BAR
tab_bar_style powerline
tab_powerline_style slanted
tab_title_template "{index} {title}"
tab_title_max_length 20
active_tab_background #1e1e1e
active_tab_foreground #b4cdbe
# active_tab_font_style Light
inactive_tab_background #1e1e1e
inactive_tab_foreground #48736e
inactive_tab_font_style Light
# END_TAB_BAR
# BEGIN_PERFORMANCE_TUNING
repaint_delay 8
# END_PERFORMANCE_TUNING
# BEGIN_KEYBOARD_SHORTCUTS
## BEGIN_WINDOW_MANAGEMENT
map ctrl+shift+enter new_window
map ctrl+alt+1 goto_tab 1
map ctrl+alt+2 goto_tab 2
map ctrl+alt+3 goto_tab 3
map ctrl+alt+4 goto_tab 4
map ctrl+alt+5 goto_tab 5
map ctrl+alt+6 goto_tab 6
map ctrl+alt+7 goto_tab 7
map ctrl+alt+8 goto_tab 8
map ctrl+alt+9 goto_tab 9
## BEGIN_LAYOUT_MANAGEMENT
map ctrl+alt+t goto_layout tall
map ctrl+alt+s goto_layout wide
map ctrl+alt+p last_used_layout
map ctrl+alt+z toggle_layout stack
# END_KEYBOARD_SHORTCUTS
# BEGIN_LAYOUT_DEFINITION
enabled_layouts tall:bias=50;full_size=1;mirrored=false, grid, fat:bias=50;full_size=1;mirrored=false , stack, splits:split_axis=auto
# END_LAYOUT_DEFINITION

767
.config/nushell/config.nu Normal file
View File

@@ -0,0 +1,767 @@
# Nushell Config File
#
# version = "0.84.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
cellpath: 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_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_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
cellpath: dark_gray
row_index: green_bold
record: white
list: white
block: white
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_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_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
}
# 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: {
try: {
border_color: {fg: "white"}
},
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: {},
selected_row: {},
selected_column: {},
show_cursor: true,
line_head_top: true,
line_head_bottom: true,
line_shift: true,
line_index: true,
},
config: {
border_color: {fg: "white"}
cursor_color: {fg: "black", bg: "light_yellow"}
},
}
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: true # 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 (line is the default)
vi_insert: block # block, underscore, line , blink_block, blink_underscore, blink_line (block is the default)
vi_normal: underscore # block, underscore, line, blink_block, blink_underscore, blink_line (underscore is the default)
}
color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record
footer_mode: always # 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: kitty # 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.
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 }
]
}
}
{
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

88
.config/nushell/env.nu Normal file
View File

@@ -0,0 +1,88 @@
# Nushell Environment Config File
#
# version = "0.84.0"
def create_left_prompt [] {
mut home = ""
try {
if $nu.os-info.name == "windows" {
$home = $env.USERPROFILE
} else {
$home = $env.HOME
}
}
let dir = ([
($env.PWD | str substring 0..($home | str length) | str replace $home "~"),
($env.PWD | str substring ($home | str length)..)
] | str 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)/($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 '%Y/%m/%d %r')
] | 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 }
# $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 = {|| "::: " }
# 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
$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
$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')
mkdir ~/.cache/starship
starship init nu | save -f ~/.cache/starship/init.nu
$env.HOSTNAME = "Dvergr"
$env.STARSHIP_SHELL = "nu"

1210
.config/nushell/history.txt Normal file

File diff suppressed because it is too large Load Diff

142
.config/starship.toml Normal file
View File

@@ -0,0 +1,142 @@
#format = """
#[╭─user───](bold blue) $username
#[┣─system─](bold yellow) $hostname
#[┣─project](bold red) $directory$rust$git_branch$git_status$package$golang$terraform$docker_context$python$docker_context$nodejs
#[╰─cmd────](bold green)
#"""
add_newline = false
#format = """
#$time\
#$user\
#$hostname\
#$directory\
#$cmd_time\
#$line_break\
#$character\
#"""
[time]
format = '[\[ $time \]]($style) '#🕙
disabled = false
[username]
style_user = "green bold"
style_root = "red bold"
format = "[$user]($style) "
disabled = false
show_always = true
[hostname]
ssh_only = false
format = 'on [$hostname](bold yellow) '
trim_at = "."
disabled = false
# Replace the "" symbol in the prompt with "➜"
[character] # The name of the module we are configuring is "character"
success_symbol = "[](bold green)" # The "success_symbol" segment is being set to "➜" with the color "bold green"
error_symbol = "[✗](bold red)"
#  
# configure directory
[directory]
read_only = " "
truncation_length = 10
truncate_to_repo = true # truncates directory to root folder if in github repo
style = "bold italic blue"
[cmd_duration]
min_time = 4
show_milliseconds = false
disabled = false
style = "bold italic red"
[aws]
symbol = " "
[conda]
symbol = " "
[dart]
symbol = " "
#[directory]
#read_only = " "
[docker_context]
symbol = " "
format = "via [$symbol$context]($style) "
style = "blue bold"
only_with_files = true
detect_files = ["docker-compose.yml", "docker-compose.yaml", "Dockerfile"]
detect_folders = []
disabled = false
[elixir]
symbol = " "
[elm]
symbol = " "
[git_branch]
symbol = " "
[golang]
symbol = " "
[hg_branch]
symbol = " "
[java]
symbol = " "
[julia]
symbol = " "
[memory_usage]
symbol = " "
[nim]
symbol = " "
[nix_shell]
symbol = " "
[package]
symbol = " "
[perl]
symbol = " "
[php]
symbol = " "
[python]
symbol = " "
#pyenv_version_name = true
format = 'via [${symbol}python (${version} )(\($virtualenv\) )]($style)'
style = "bold yellow"
pyenv_prefix = "venv "
python_binary = ["./venv/bin/python", "python", "python3", "python2"]
detect_extensions = ["py"]
version_format = "v${raw}"
[ruby]
symbol = " "
[rust]
#symbol = " "
[scala]
symbol = " "
[shlvl]
symbol = " "
[swift]
symbol = "ﯣ "
[nodejs]
format = "via [ Node.js $version](bold green) "
detect_files = ["package.json", ".node-version"]
detect_folders = ["node_modules"]

36
.config/tmux/tmux.conf Normal file
View File

@@ -0,0 +1,36 @@
# set true color
set-option -g default-terminal "$TERM"
set-option -ag terminal-overrides ",$TERM:Tc"
set -g mouse on
# set transparent background
set -g status-style bg=default
# start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# set prefix
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# set -g @plugin 'bobcats/everforest-tmux'
set -g @plugin 'odedlaz/tmux-onedark-theme'
# set -g @plugin 'dreamsofcode-io/catppuccin-tmux'
# set -g @everforest_theme 'dark-hard'
# set vi mode
# bind-key -T copy-mode-vi v send-keys -X begin-selection
# bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
# bind-key -T copy mode-vi C-v send-keys-X rectangle-toggle
# Open pane sin current directory
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
run '/usr/share/tmux-plugin-manager/tpm'