Compare commits

...

8 Commits

Author SHA1 Message Date
Tuan-Dat Tran
172702b289 merge
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-03-15 16:32:15 +01:00
TuDatTr
59e661e620 Configurations and Enhancements: Added Alacritty terminal settings, adjusted Cava audio visualizer and i3 window manager configurations, updated Nushell settings, refined Ranger bookmarks, introduced a battery statistics script, updated SSH configurations, fine-tuned Emacs and Zsh settings. Also, included new files for battery statistics and Emacs-related configurations. This commit enhances the overall user experience and system configurations.
Signed-off-by: TuDatTr <tuan-dat.tran@tudattr.dev>
2024-02-15 21:19:02 +01:00
TuDatTr
38b7133cfb Removed history.txt
Signed-off-by: TuDatTr <tuan-dat.tran@tudattr.dev>
2023-10-09 01:21:40 +02:00
TuDatTr
fd2da739e8 Added nuconfig
Signed-off-by: TuDatTr <tuan-dat.tran@tudattr.dev>
2023-10-09 01:14:30 +02:00
TuDatTr
a046134f7e Added local git in gitconfig
Signed-off-by: TuDatTr <tuan-dat.tran@tudattr.dev>
2023-10-09 01:10:23 +02:00
TuDatTr
49118bbc01 Added auto completion for nmcli c u on nushell
Signed-off-by: TuDatTr <tuan-dat.tran@tudattr.dev>
2023-08-03 18:31:50 +02:00
TuDatTr
5fa0681986 Updated for nushell v0.83 and some changes in doom emacs config
Signed-off-by: TuDatTr <tuan-dat.tran@tudattr.dev>
2023-07-29 16:16:29 +02:00
TuDatTr
48eace8cee Update various configuration files
Signed-off-by: TuDatTr <tuan-dat.tran@tudattr.dev>
2023-06-01 14:06:18 +02:00
15 changed files with 1282 additions and 3 deletions

149
config/.config/cava/config Executable file
View File

@@ -0,0 +1,149 @@
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
[general]
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
; mode = normal
# Accepts only non-negative values.
; framerate = 60
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
# new as of 0.6.0 autosens of low values (dynamic range)
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
; autosens = 1
; overshoot = 20
# Manual sensitivity in %. Autosens must be turned off for this to take effect.
# 200 means double height. Accepts only non-negative values.
; sensitivity = 100
# The number of bars (0-200). 0 sets it to auto (fill up console).
# Bars' width and space between bars in number of characters.
; bars = 19
; bar_width = 2
; bar_spacing = 1
# Lower and higher cutoff frequencies for lowest and highest bars
# the bandwidth of the visualizer.
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
# Cava will automatically increase the higher cutoff if a too low band is specified.
lower_cutoff_freq = 0
higher_cutoff_freq = 20000
[input]
# Audio capturing method. Possible methods are: 'pulse', 'alsa' or 'fifo'.
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
#
# All input methods uses the same config variable 'source'
# to define where it should get the audio.
#
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
#
# For alsa 'source' will be the capture device.
# For fifo 'source' will be the path to fifo-file.
method = pulse
source = auto
; method = alsa
; source = hw:Loopback,1
; method = fifo
; source = /tmp/mpd.fifo
[output]
# Ouput method. Can be 'ncurses', 'noncurses' or 'raw'.
# 'noncurses' is for systems that does not suport ncurses.
# 'raw' is a 16 bit data stream of the bar heights that can be used to send to other applications.
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
; method = ncurses
# Visual channels. Can be 'stereo' or 'mono'.
# 'stereo' mirrors both channels with low frequencies in center.
# 'mono' averages both channels and outputs left to right lowest to highest frequencies.
; channels = stereo
# Raw output target. A fifo will be created if target does not exist.
; raw_target = /dev/stdout
# Raw data format. Can be 'binary' or 'ascii'.
; data_format = binary
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
; bit_format = 16bit
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
; ascii_max_range = 1000
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
; bar_delimiter = 59
; frame_delimiter = 10
[color]
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires a
# terminal that can change color definitions such as Gnome-terminal or rxvt.
; background = black
; foreground = blue
# Gradient mode, only hex defined colors are supported, background must also be defined in hex
# or remain commented out. 1 = on, 0 = off. Warning: for certain terminal emulators cava will
# not able to restore color definitions on exit, simply restart your terminal to restore colors.
gradient = 1
# GMK Noel
gradient_color_1 = '#FFFFFF'
gradient_color_2 = '#EEB9C1'
gradient_color_3 = '#B3DCE1'
gradient_color_4 = '#66B9D2'
# Cool Blues
; gradient_color_1 = '#2193b0'
; gradient_color_2 = '#6dd5ed'
# Quepal
; gradient_color_1 = '#11998e'
; gradient_color_2 = '#38ef7d'
# Teal Love
; gradient_color_1 = '#11FFBD'
; gradient_color_2 = '#AAFFA9'
[smoothing]
# Percentage value for integral smoothing. Takes values from 0 - 100.
# Higher values means smoother, but less precise. 0 to disable.
; integral = 70
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
; monstercat = 1
; waves = 0;
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
; gravity = 100
# In bar height, bars that would have been lower that this will not be drawn.
; ignore = 0
[eq]
# This one is tricky. You can have as much keys as you want.
# Remember to uncomment more then one key! More keys = more precision.
# Look at readme.md on github for further explanations and examples.
; 1 = 1 # bass
; 2 = 1
; 3 = 1 # midtone
; 4 = 1
; 5 = 1 # treble

View File

@@ -0,0 +1,79 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
{
//create color based on fraction of this color and next color
float yr = (y - y_min) / (y_max - y_min);
return col_1 * (1.0 - yr) + col_2 * yr;
}
void main()
{
// find which bar to use based on where we are on the x axis
float x = u_resolution.x * fragCoord.x;
int bar = int(bars_count * fragCoord.x);
//calculate a bar size
float bar_size = u_resolution.x / bars_count;
//the y coordinate and bar values are the same
float y = bars[bar];
// make sure there is a thin line at bottom
if (y * u_resolution.y < 1.0)
{
y = 1.0 / u_resolution.y;
}
//draw the bar up to current height
if (y > fragCoord.y)
{
//make some space between bars basen on settings
if (x > (bar + 1) * (bar_size) - bar_spacing)
{
fragColor = vec4(bg_color,1.0);
}
else
{
if (gradient_count == 0)
{
fragColor = vec4(fg_color,1.0);
}
else
{
//find which color in the configured gradient we are at
int color = int((gradient_count - 1) * fragCoord.y);
//find where on y this and next color is supposed to be
float y_min = color / (gradient_count - 1.0);
float y_max = (color + 1.0) / (gradient_count - 1.0);
//make color
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
}
}
}
else
{
fragColor = vec4(bg_color,1.0);
}
}

View File

@@ -0,0 +1,34 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform vec3 u_resolution; // window resolution, not used here
//colors, configurable in cava config file
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
uniform vec3 fg_color; // foreground color, not used here
void main()
{
// find which bar to use based on where we are on the x axis
int bar = int(bars_count * fragCoord.x);
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
float y = (bars[bar]) * bar_y;
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
bar_r = bar_r * bar_r * 2;
// set color
fragColor.r = fg_color.x * y * bar_r;
fragColor.g = fg_color.y * y * bar_r;
fragColor.b = fg_color.z * y * bar_r;
}

View File

@@ -0,0 +1,14 @@
#version 330
// Input vertex data, different for all executions of this shader.
layout(location = 0) in vec3 vertexPosition_modelspace;
// Output data ; will be interpolated for each fragment.
out vec2 fragCoord;
void main()
{
gl_Position = vec4(vertexPosition_modelspace,1);
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
}

View File

@@ -79,8 +79,40 @@ bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws0; workspace $ws0 bindsym $mod+Shift+0 move container to workspace $ws0; workspace $ws0
# Open specific applications in floating mode # Open specific applications in floating mode
<<<<<<< HEAD
for_window [class="^Thunderbird$" title="^.*Event:"] floating enable
# https://github.com/z3ntu/dotfiles/blob/master/i3/.config/i3/config
# Steam
for_window [class="^Steam$" title="^Friends List$"] floating enable
for_window [class="^Steam$" title="Steam"] floating enable
for_window [class="^Steam$" title="^Settings$"] floating enable
for_window [class="^Steam$" title=".* - event started"] floating enable
for_window [class="^Steam$" title=".* CD key"] floating enable
for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable
for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enable
for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable
for_window [title="^Steam Keyboard$"] floating enable
||||||| e9d53f0
for_window [class="(?i)virtualbox"] floating enable border normal for_window [class="(?i)virtualbox"] floating enable border normal
for_window [title="KeePassX$"] floating enable border normal for_window [title="KeePassX$"] floating enable border normal
for_window [class="^Thunderbird$" title="^.*Event:"] floating enable
# https://github.com/z3ntu/dotfiles/blob/master/i3/.config/i3/config
# Steam
for_window [class="^Steam$" title="^Friends List$"] floating enable
for_window [class="^Steam$" title="Steam"] floating enable
for_window [class="^Steam$" title="^Settings$"] floating enable
for_window [class="^Steam$" title=".* - event started"] floating enable
for_window [class="^Steam$" title=".* CD key"] floating enable
for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable
for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enable
for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable
for_window [title="^Steam Keyboard$"] floating enable
=======
for_window [class="(?i)virtualbox"] floating enable border normal
for_window [title="KeePassX$"] floating enable border normal
>>>>>>> clean_emacs
############################################################################### ###############################################################################
############################ Startup Applications ############################# ############################ Startup Applications #############################
@@ -93,7 +125,21 @@ exec --no-startup-id conky -c ~/.conky/syclo-crimson-bottomleft.conkyrc
# exec --no-startup-id synergyc -f --no-tray --debug INFO --name genesis --enable-crypto 192.168.178.38:24800 # exec --no-startup-id synergyc -f --no-tray --debug INFO --name genesis --enable-crypto 192.168.178.38:24800
exec --no-startup-id dunst exec --no-startup-id dunst
exec --no-startup-id ~/.scripts/startup.sh exec --no-startup-id ~/.scripts/startup.sh
<<<<<<< HEAD
exec --no-startup-id ~/.scripts/battery_stats.sh
exec --no-startup-id llk
||||||| e9d53f0
exec --no-startup-id llk
exec --no-startup-id emacs --daemon
=======
>>>>>>> clean_emacs
exec --no-startup-id syncthing exec --no-startup-id syncthing
<<<<<<< HEAD
exec --no-startup-id xrandr --output eDP1 --auto --left-of HDMI1 --output HDMI1 --off --output DP1 --off
||||||| e9d53f0
exec --no-startup-id xrandr --output eDP1 --auto --left-of HDMI1 --output HDMI1 --off --output DP1 --off; feh --randomize --bg-fill /home/tuan/Pictures/Wallpaper/*
=======
>>>>>>> clean_emacs
exec --no-startup-id feh --randomize --bg-fill $HOME/Pictures/Wallpaper/* exec --no-startup-id feh --randomize --bg-fill $HOME/Pictures/Wallpaper/*
############################################################################### ###############################################################################
@@ -130,7 +176,17 @@ bindsym XF86AudioPrevious exec "playerctl previous"
# Application Shortcuts # Application Shortcuts
bindsym $mod+b exec firefox bindsym $mod+b exec firefox
<<<<<<< HEAD
bindsym $mod+p exec firefox --private-window https://mos4.de
bindsym $mod+e exec emacs
bindsym $mod+m exec thunderbird
||||||| e9d53f0
bindsym $mod+p exec firefox --private-window https://mos4.de
bindsym $mod+e exec emacsclient -c
bindsym $mod+m exec thunderbird
=======
bindsym $mod+p exec firefox --private-window https://tudattr.dev bindsym $mod+p exec firefox --private-window https://tudattr.dev
>>>>>>> clean_emacs
# Whole Screen # Whole Screen
bindsym Control+Print exec --no-startup-id ~/.scripts/screenshot.sh screen bindsym Control+Print exec --no-startup-id ~/.scripts/screenshot.sh screen
@@ -297,3 +353,4 @@ bindsym $mod+g mode "default"
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }

1
config/.config/nushell/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
history.txt

View File

@@ -0,0 +1,614 @@
# Nushell Config File
#
# version = 0.79.1
# 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.
bool: {|| if $in { 'light_cyan' } else { 'light_gray' } }
int: white
filesize: {|e|
if $e == 0b {
'white'
} else if $e < 1mb {
'cyan'
} else { 'blue' }
}
duration: white
date: {|| (date now) - $in |
if $in < 1hr {
'purple'
} else if $in < 6hr {
'red'
} else if $in < 1day {
'yellow'
} else if $in < 3day {
'green'
} else if $in < 1wk {
'light_green'
} else if $in < 6wk {
'cyan'
} else if $in < 52wk {
'blue'
} else { 'dark_gray' }
}
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
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.
bool: {|| if $in { 'dark_cyan' } else { 'dark_gray' } }
int: dark_gray
filesize: {|e|
if $e == 0b {
'dark_gray'
} else if $e < 1mb {
'cyan_bold'
} else { 'blue_bold' }
}
duration: dark_gray
date: {|| (date now) - $in |
if $in < 1hr {
'purple'
} else if $in < 6hr {
'red'
} else if $in < 1day {
'yellow'
} else if $in < 3day {
'green'
} else if $in < 1wk {
'light_green'
} else if $in < 6wk {
'cyan'
} else if $in < 52wk {
'blue'
} else { 'dark_gray' }
}
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
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 = {
# true or false to enable or disable the welcome banner at startup
show_banner: false
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
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
}
}
explore: {
help_banner: true
exit_esc: true
command_bar_text: '#C4C9C6'
# command_bar: {fg: '#C4C9C6' bg: '#223311' }
status_bar_background: {fg: '#1D1F21' bg: '#C4C9C6' }
# status_bar_text: {fg: '#C4C9C6' bg: '#223311' }
highlight: {bg: 'yellow' fg: 'black' }
status: {
# warn: {bg: 'yellow', fg: 'blue'}
# error: {bg: 'yellow', fg: 'blue'}
# info: {bg: 'yellow', fg: 'blue'}
}
try: {
# border_color: 'red'
# highlighted_color: 'blue'
# reactive: false
}
table: {
split_line: '#404040'
cursor: true
line_index: true
line_shift: true
line_head_top: true
line_head_bottom: true
show_head: true
show_index: true
# selected_cell: {fg: 'white', bg: '#777777'}
# selected_row: {fg: 'yellow', bg: '#C1C2A3'}
# selected_column: blue
# padding_column_right: 2
# padding_column_left: 2
# padding_index_left: 2
# padding_index_right: 1
}
config: {
cursor_color: {bg: 'yellow' fg: 'black' }
# border_color: white
# list_color: green
}
}
history: {
max_size: 10000 # 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"
# history_isolation: true # true enables history isolation, false disables it. true will allow the history to be isolated to the current session. 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 my 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, zb, zib, 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 light theme, replace `$dark_theme` to `$light_theme`
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: "emacs" # 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
edit_mode: emacs # emacs, vi
shell_integration: true # enables terminal markers and a workaround to arrow keys stop working issue
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 # replace with source code to run before the prompt is shown
}]
pre_execution: [{||
null # replace with source code to run before the repl input is run
}]
env_change: {
PWD: [{|before, after|
null # replace with source code to run if the PWD environment is different since the last repl input
}]
}
display_output: {||
if (term size).columns >= 100 { table -e } else { table }
}
command_not_found: {||
null # replace with source code to 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
}
}
# Example of extra menus created using a nushell source
# Use the source field to create a list of records that populates
# the menu
{
name: commands_menu
only_buffer_difference: false
marker: "# "
type: {
layout: columnar
columns: 4
col_width: 20
col_padding: 2
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
source: { |buffer, position|
$nu.scope.commands
| where name =~ $buffer
| each { |it| {value: $it.name description: $it.usage} }
}
}
{
name: vars_menu
only_buffer_difference: true
marker: "# "
type: {
layout: list
page_size: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
source: { |buffer, position|
$nu.scope.vars
| where name =~ $buffer
| sort-by name
| each { |it| {value: $it.name description: $it.type} }
}
}
{
name: commands_with_description
only_buffer_difference: true
marker: "# "
type: {
layout: description
columns: 4
col_width: 20
col_padding: 2
selection_rows: 4
description_rows: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
source: { |buffer, position|
$nu.scope.commands
| where name =~ $buffer
| each { |it| {value: $it.name description: $it.usage} }
}
}
]
keybindings: [
{
name: completion_menu
modifier: none
keycode: tab
mode: [emacs vi_normal vi_insert]
event: {
until: [
{ send: menu name: completion_menu }
{ send: menunext }
]
}
}
{
name: completion_previous
modifier: shift
keycode: backtab
mode: [emacs, vi_normal, vi_insert] # Note: You can add the same keybinding to all modes by using a list
event: { send: menuprevious }
}
{
name: history_menu
modifier: control
keycode: char_r
mode: emacs
event: { send: menu name: history_menu }
}
{
name: next_page
modifier: control
keycode: char_x
mode: emacs
event: { send: menupagenext }
}
{
name: undo_or_previous_page
modifier: control
keycode: char_z
mode: emacs
event: {
until: [
{ send: menupageprevious }
{ edit: undo }
]
}
}
{
name: yank
modifier: control
keycode: char_y
mode: emacs
event: {
until: [
{edit: pastecutbufferafter}
]
}
}
{
name: unix-line-discard
modifier: control
keycode: char_u
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{edit: cutfromlinestart}
]
}
}
{
name: kill-line
modifier: control
keycode: char_k
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{edit: cuttolineend}
]
}
}
# Keybindings used to trigger the user defined menus
{
name: commands_menu
modifier: control
keycode: char_t
mode: [emacs, vi_normal, vi_insert]
event: { send: menu name: commands_menu }
}
{
name: vars_menu
modifier: alt
keycode: char_o
mode: [emacs, vi_normal, vi_insert]
event: { send: menu name: vars_menu }
}
{
name: commands_with_description
modifier: control
keycode: char_s
mode: [emacs, vi_normal, vi_insert]
event: { send: menu name: commands_with_description }
}
]
}
def add_soft [project] { git remote add soft $"ssh://git.aya00:/($project)" }
export def --env own_ranger [] {
let lastdir_path = $"($env.HOME)/.rangerdir";
^ranger $"--choosedir=($lastdir_path)";
let lastdir = (open $lastdir_path);
cd $lastdir
}
def pwd_xsel [] {
let path = $"(pwd)";
$"cd \"($path)\"; nu;"| xsel -b;
$"Copied \"($path)\"; nu;";
}
alias ll = ls -la
alias la = ls -a
alias q = exit
alias picotik = picocom --b 115199 /dev/ttyUSB0
alias nmap = ^nmap -T5 --min-parallelism 100 -Pn
alias ed = emacs --daemon
alias eledger = emacsclient -nw ~/Documents/Finanzen/Ledger/MyBudget.ledger
alias sshconfig = emacsclient -nw ~/.ssh/config
alias econfig = emacsclient -nw ~/.doom.d/init.el
alias wttr = curl wttr.in/Essen
alias tvres = xrandr --output HDMI1 --transform 1.02,0,-20,0,1.02,-10,0,0,1
alias defaultres = xrandr --output HDMI1 --transform 1.00,0,0,0,1.00,0,0,0,1
alias latexmk = ^latexmk -f -pdf -interaction=nonstopmode
alias ranger = own_ranger
alias xselp = pwd_xsel
# git
alias gpa = git push all --all
# alias gras = add_soft
alias gd = git diff
alias gnd = git --no-pager diff
alias gp = git push
alias gcsm = git commit -s -m
alias gaa = git add --all
alias gco = git checkout
alias grv = git remote -v
# alias kubectl = minikube kubectl --
def completion_nmcli_connection_show [] {
nmcli c s | lines | skip 1 | parse -r "(?P<name>.+) +\(?P<uuid>[a-z0-9-]{36}\) +\(?P<type>[a-z]+\)" | where type == wifi | get name | str trim
}
extern "nmcli c u" [name: string@completion_nmcli_connection_show]
def completion_ssh_host [] {
open ~/.ssh/config | parse -r "Host (?P<host>.+)" | get host | uniq | str trim
}
extern "ssh" [host: string@completion_ssh_host]
def completion_git_branch [] {
git --no-pager branch | str replace '\*' ' ' | lines | str trim
}
extern "git branch" [host: string@completion_git_branch]
def completion_docker_kill [] {
docker ps | lines | skip 1 | parse -r '^(?P<container>\w+) +(?P<image>\w+) .*' | get container | str trim
}
extern "docker kill" [host: string@completion_docker_kill]
def completion_ip_addr [] {
ip link | lines | parse -r '\d+: (?P<name>[\w@\.]+):' | get name | str trim
}
extern "ip addr show" [host: string@completion_ip_addr]
extern "ip a s" [host: string@completion_ip_addr]
$env.DOCKER_BUILDKIT = 1 # Disable for podman
source ~/.cache/starship/init.nu

View File

@@ -0,0 +1,85 @@
# Nushell Environment Config File
#
# version = 0.83.1
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 | date format '%Y/%m/%d %r')
] | str join | str replace --all "([/:])" $"(ansi green)${1}(ansi magenta)" |
str replace --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
($nu.default-config-dir | path join completions) # add <nushell-config-dir>/completions
]
# 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))
$env.KUBECONFIG = $"($env.HOME)/.kube/config"

View File

@@ -17,6 +17,7 @@ keybinds {
bind "Alt k" "Alt Up" { MoveFocus "Up"; } bind "Alt k" "Alt Up" { MoveFocus "Up"; }
bind "Alt n" { NewPane; } bind "Alt n" { NewPane; }
bind "Alt t" { NewTab; } bind "Alt t" { NewTab; }
bind "Alt w" { ToggleFloatingPanes; }
bind "Alt =" "Alt +" { Resize "Increase"; } bind "Alt =" "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; } bind "Alt -" { Resize "Decrease"; }

View File

@@ -0,0 +1,19 @@
u:/home/tuan/Documents/Uni/Studium
p:/home/tuan/Documents/Protokolle/FSE
o:/home/tuan/.dotfiles/config
m:/home/tuan/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte/04-5G_IANA/02-machine-learning/mvr
a:/home/tuan/Documents/Arbeit/Uni-DuE_NCS_SHK
l:/home/tuan/Local
c:/home/tuan/Documents/CTF
t:/home/tuan/Templates
w:/home/tuan/workspace_l/home_lab/wiki
k:/home/tuan/.syncthing/Documents/Uni/Studium/2022_Sommersemester/Bachelorprojekt/Implement EFCF based on libAFL/git/foundry/evm/src/executor
q:/home/tuan/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte/04-5G_IANA/02-gps
':/home/tuan/workspace_l/rust/LibAFL/fuzzers
e:/home/tuan/Documents/Uni/Studium/2022&2023_Wintersemester/Bachelorprojekt/ethfuzz
s:/home/tuan/Pictures/Screenshots
v:/home/tuan/.aya01/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte/06-Server_Setup/ansible
f:/home/tuan/Documents/Finanzen/Unternehmen/Rechnungen
g:/home/tuan/workspace_l/home_lab
r:/home/tuan/Documents/roam
b:/home/tuan/.syncthing/Documents/Uni/Studium/2022&2023_Wintersemester/Bachelorprojekt/ethfuzz

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env nu
let filename = (date now | date format "%s")
while 1 == 1 {
(sudo tlp-stat -b | grep Charge | split column '=' | str trim ) | insert a (date now | date format "%s") | reject column1 | rename Charge Timestamp | to csv -n | str replace " \\[%\\]" "" | save -a $"($filename).csv";
sleep 50ms;
}

View File

@@ -0,0 +1,10 @@
#!/bin/bash
FILENAME=$(date -I)
while true; do
TIMESTAMP=$(date +%s)
STATS=$(acpi | sed "s/.*\([0-9]\{2\}\)%.*/\1/")
echo "$TIMESTAMP,$STATS" >> ~/.scripts/battery_$FILENAME.log
sleep 1
done

View File

@@ -0,0 +1,17 @@
# clean-nushell-db
#!/usr/bin/env nu
let db = "~/dotfiles/nushell/.config/nushell/history.sqlite3"
def get_current_row [] {
let current_row = (^sqlite3 $db "SELECT COUNT(*) FROM history h")
echo $"current rows: ($current_row)"
}
get_current_row
# Remove failed commands
sqlite3 $db "DELETE FROM history WHERE exit_status != 0"
# Remove duplicates. But keep one.
# https://stackoverflow.com/a/53693544/6000005
sqlite3 $db "DELETE FROM history WHERE id NOT IN (SELECT MIN(id) FROM history h GROUP BY command_line);"
get_current_row

View File

@@ -19,7 +19,19 @@ Host git.tudattr.dev
User git User git
IdentityFile /mnt/veracrypt1/git IdentityFile /mnt/veracrypt1/git
Host git.tudattr.dev
Hostname 192.168.20.12
Port 2222
User git
IdentityFile /mnt/veracrypt1/git
# Homeserver # Homeserver
Host behemoth
HostName 192.168.30.80
Port 22
User tuan
IdentityFile /mnt/veracrypt1/genesis
Host madrigal Host madrigal
HostName 192.168.70.1 HostName 192.168.70.1
Port 2200 Port 2200
@@ -53,10 +65,26 @@ Host mii pi aya01 inko naruto inko.mii pi.mii aya01.mii naruto.mii behemoth behe
User tudattr User tudattr
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
<<<<<<< HEAD
Host inko
HostName 192.168.20.14
Port 22
User tudattr
IdentityFile /mnt/veracrypt1/genesis
Host naruto
HostName 192.168.20.13
Port 22
||||||| e9d53f0
Host git.aya01
HostName 192.168.20.12
Port 23231
=======
# Work # Work
Host mini Host mini
HostName 100.76.45.158 HostName 100.76.45.158
Port 22 Port 22
>>>>>>> clean_emacs
User tudattr User tudattr
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
@@ -66,13 +94,63 @@ Host tail-pi
User tuant User tuant
IdentityFile /mnt/veracrypt1/work/minis IdentityFile /mnt/veracrypt1/work/minis
<<<<<<< HEAD
Host mii-root
HostName 202.61.207.139
Port 22
User root
IdentityFile /mnt/veracrypt1/genesis
Host mii
HostName 202.61.207.139
Port 22
User tudattr
IdentityFile /mnt/veracrypt1/genesis
Host aya01.mii
HostName 192.168.20.12
Port 22
User tudattr
IdentityFile /mnt/veracrypt1/genesis
ProxyJump mii
Host pi.mii
HostName 192.168.20.11
Port 22
User tudattr
IdentityFile /mnt/veracrypt1/genesis
ProxyJump mii
Host naruto.mii
HostName 192.168.20.13
Port 22
User tudattr
IdentityFile /mnt/veracrypt1/genesis
ProxyJump mii
# Work
Host ncs-tailscale
HostName 100.93.79.94
Port 22
User tuant
IdentityFile /mnt/veracrypt1/genesis
||||||| e9d53f0
# Work
=======
>>>>>>> clean_emacs
Host ncs-head Host ncs-head
HostName 132.252.68.50 HostName 132.252.68.50
Port 2122 Port 2122
User tuan-dat.tran User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
ForwardX11 yes ForwardX11 yes
<<<<<<< HEAD
ProxyJump ncs-tailscale
||||||| e9d53f0
=======
ProxyJump tail-pi ProxyJump tail-pi
>>>>>>> clean_emacs
Host ncs-head-user Host ncs-head-user
HostName 132.252.68.50 HostName 132.252.68.50
@@ -153,7 +231,47 @@ Host ncs-node7
Host ncs-wedge Host ncs-wedge
Hostname 192.168.1.5 Hostname 192.168.1.5
User user User user
<<<<<<< HEAD
IdentityFile /mnt/veracrypt1/genesis
# ForwardX11 yes
ProxyJump ncs-head
||||||| e9d53f0
IdentityFile /mnt/veracrypt1/genesis
# ForwardX11 yes
ProxyJump ncs-head
Host ncs-local-server
HostName 192.168.1.1
Port 22
User tuan-dat.tran
IdentityFile /mnt/veracrypt1/tudattr
StrictHostKeyChecking no
Host ncs-local-server-user
HostName 192.168.1.1
Port 22
User user
IdentityFile /mnt/veracrypt1/tudattr
StrictHostKeyChecking no
Host ncs-local-server2
HostName 192.168.2.2
Port 22
User user
IdentityFile /mnt/veracrypt1/tudattr
StrictHostKeyChecking no
ProxyJump ncs-local-server
Host phone
Hostname 192.168.30.245
Port 2222
User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
=======
>>>>>>> clean_emacs
Host ncs-gpu Host ncs-gpu
Hostname 192.168.1.21 Hostname 192.168.1.21
Port 22 Port 22
@@ -162,12 +280,49 @@ Host ncs-gpu
ForwardX11 yes ForwardX11 yes
ProxyJump ncs-head ProxyJump ncs-head
<<<<<<< HEAD
Host ncs-aws-iperf3
Hostname 18.185.5.191
Port 22
User ec2-user
IdentityFile /mnt/veracrypt1/work/aws_ncs.pem
||||||| e9d53f0
Host ncs-aws-iperf3
Hostname 18.185.5.191
Port 22
User ec2-user
IdentityFile /mnt/veracrypt1/aws_ncs.pem
=======
>>>>>>> clean_emacs
Host ami Host ami
Hostname 3.72.156.214 Hostname 3.72.156.214
Port 22 Port 22
User ubuntu User ubuntu
IdentityFile /mnt/veracrypt1/work/aws-rizk.pem IdentityFile /mnt/veracrypt1/work/aws-rizk.pem
<<<<<<< HEAD
Host 5g-mec
Hostname 192.168.100.1
Port 22
User udue
IdentityFile /mnt/veracrypt1/genesis
Host 5g-mec-ovpn
Hostname 192.168.101.1
Port 22
User udue
IdentityFile /mnt/veracrypt1/genesis
Host minis
Hostname 192.168.0.115
Port 22
User tudattr
IdentityFile /mnt/veracrypt1/genesis
||||||| e9d53f0
=======
## 5g IANA ## 5g IANA
Host 5g-iana-mec Host 5g-iana-mec
@@ -187,3 +342,4 @@ Host uulm-obu0
Host uulm-obu1 Host uulm-obu1
Hostname 192.168.201.11 Hostname 192.168.201.11
>>>>>>> clean_emacs

View File

@@ -6,17 +6,49 @@ export PenTestTools=$HOME/Local/PenTesting/
export CTF=$HOME/Documents/CTF/ export CTF=$HOME/Documents/CTF/
export WORKSPACE=$HOME/workspace_l export WORKSPACE=$HOME/workspace_l
export ZSHRC="$HOME/.zshrc" export ZSHRC="$HOME/.zshrc"
<<<<<<< HEAD
||||||| e9d53f0
export VISUAL="emacsclient -t"
export EDITOR="emacsclient -t"
=======
export VISUAL="nvim" export VISUAL="nvim"
export EDITOR="nvim" export EDITOR="nvim"
>>>>>>> clean_emacs
# History # History
export HISTSIZE=10000000 export HISTSIZE=50000
export SAVEHIST=10000000 export SAVEHIST=50000
export HISTTIMEFORMAT="[%F %T] " export HISTTIMEFORMAT="[%F %T] "
# Following commands from: https://registerspill.thorstenball.com/p/which-command-did-you-run-1731-days
# Immediately append to history file:
setopt INC_APPEND_HISTORY
# Record timestamp in history:
setopt EXTENDED_HISTORY setopt EXTENDED_HISTORY
# Expire duplicate entries first when trimming history:
setopt HIST_EXPIRE_DUPS_FIRST
# Dont record an entry that was just recorded again:
setopt HIST_IGNORE_DUPS
# Delete old recorded entry if new entry is a duplicate:
setopt HIST_IGNORE_ALL_DUPS
# Do not display a line previously found:
setopt HIST_FIND_NO_DUPS setopt HIST_FIND_NO_DUPS
# Dont record an entry starting with a space:
setopt HIST_IGNORE_SPACE
# Dont write duplicate entries in the history file:
setopt HIST_SAVE_NO_DUPS
# Share history between all sessions:
setopt SHARE_HISTORY
# Alias # Alias
alias q="exit" alias q="exit"
alias b="byobu" alias b="byobu"
@@ -25,7 +57,6 @@ alias cat="bat --pager=never"
alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"' alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'
alias xsel='xsel -ib' alias xsel='xsel -ib'
alias msfconsole="msfconsole -x \"db_connect metasploit@msf\"" alias msfconsole="msfconsole -x \"db_connect metasploit@msf\""
alias nmap="nmap -T5 --min-parallelism 100 -Pn"
alias ed="\emacs --daemon" alias ed="\emacs --daemon"
alias e="open_emacs" alias e="open_emacs"
alias df="df -h" alias df="df -h"
@@ -63,3 +94,8 @@ source $ZSH/oh-my-zsh.sh
add_soft_git() { git remote add soft ssh://git.aya01:/$1 } add_soft_git() { git remote add soft ssh://git.aya01:/$1 }
open_emacs() { emacsclient -c $1 & disown; }; open_emacs() { emacsclient -c $1 & disown; };
autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C /usr/bin/terraform terraform
# echo "rm -rf braincells/*"