Compare commits

...

20 Commits

Author SHA1 Message Date
Tuan-Dat Tran
721829d110 fix(ssh): typo
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-12-20 09:08:19 +01:00
Tuan-Dat Tran
2de331e3c3 fix(ssh): fixed hostnames on node for ndoe config
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-12-18 17:03:08 +01:00
Tuan-Dat Tran
48f1eea33a Changed ncs-node for ips in hannover
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-12-18 17:00:59 +01:00
Tuan-Dat Tran
51cf295ec1 chore(config): update system and application configurations
- **Alacritty**:
  - Update font family from `DejaVuSansM Nerd Font Mono` to `DejaVu Sans Code`.

- **i3 Window Manager**:
  - Remove unused `poweroff` binding (`+Shift+s`).

- **Ranger**:
  - Update bookmark paths for streamlined navigation.

- **SSH Configuration**:
  - Remove obsolete hosts (`docker-02`).
  - Add new entries for `docker-host00` and `docker-host01` with `ProxyJump` through `aya01`.
  - Correct `git.tudattr.dev` hostname mapping from `192.168.20.19` to `192.168.20.34`.

- **Vim Spell Check**:
  - Add `CCS` to the custom spell file.

These changes optimize user workflows, improve configuration accuracy, and update mappings for SSH and application environments.

Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-11-15 14:44:30 +01:00
Tuan-Dat Tran
f2ee71e3ff Added ssh configs
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-10-31 21:15:39 +01:00
Tuan-Dat Tran
9a4e68d900 Add languagetool|
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-10-31 21:14:02 +01:00
Tuan-Dat Tran
87a60c4a1d 2024-10-30
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-10-30 16:39:51 +01:00
Tuan-Dat Tran
9793312c78 Split ssh config
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-10-08 02:39:32 +02:00
Tuan-Dat Tran
b106d0844a 2024-09-24
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-09-24 15:43:35 +02:00
Tuan-Dat Tran
09459e602d Removed automatic monitor detection, switched to arandr
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-08-23 19:00:23 +02:00
Tuan-Dat Tran
767910406f Added nvim spell checks, some ssh config for work, xrandr settings for monitor switching, kubernetes alias and starship
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-07-22 18:57:25 +02:00
Tuan-Dat Tran
40d2d85ecb Added bluetooth, tldr, printing, latex, dns, colorscheme and updated nvim
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-04-13 20:21:12 +02:00
Tuan-Dat Tran
400a984592 Cleanup README.md
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-03-25 11:32:28 +01:00
Tuan-Dat Tran
a4c28e719e Updated dunst and added automatic monitor switching
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-03-22 13:26:13 +01:00
Tuan-Dat Tran
e02fa7f43d zsh configs
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-03-17 21:17:46 +01:00
Tuan-Dat Tran
c24fd84b7b Added notes for pcmanfm and some other tools
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-03-15 22:17:47 +01:00
Tuan-Dat Tran
1fdd8d0276 added dust
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-03-15 16:55:30 +01:00
Tuan-Dat Tran
ac0d51e712 Fixed i3config
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-03-15 16:54:27 +01:00
Tuan-Dat Tran
4be55c69b4 Removed unused software
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-03-15 16:39:01 +01:00
Tuan-Dat Tran
5f3703da07 cleanup
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-03-15 16:37:48 +01:00
44 changed files with 1336 additions and 1874 deletions

2
.gitignore vendored
View File

@@ -14,7 +14,7 @@ config/.mozilla/*
!config/.mozilla/firefox/profiles.ini
config/.scripts/playstate
config/.ssh/*
!config/.ssh/config
!config/.ssh/config*
emacs/.emacs.d/*
!emacs/.emacs.d/config.org
!emacs/.emacs.d/ledger.org

184
README.md
View File

@@ -2,24 +2,94 @@
This is my ArchLinux configuration.
Tested on Acer Travelmate X349-G2-M and Lenovo Thinkpad E14 G5.
First one was a Intel machine, the current one a AMD machine, hence the changes
towards AMD graphics.
## Install dependencies
```bash
paru -S syncthing feh bottom zellij eza bat maim vlc python-pillow i3lock-color \
vlc fd ripgrep unzip npm bacon simple-scan dunst picom \
adobe-source-han-sans-jp-fonts obs-studio git zsh wget lightdm \
lightdm-webkit2-greeter xorg-server i3-gaps xorg-xbacklight xorg-xrandr \
alsa-utils pulseaudio pulseaudio-alsa pulseaudio-bluetooth playerctl \
pavucontrol btrfs-progs udiskie blueman acpi acpid tlp conky stow openssh \
firefox veracrypt keepassxc ranger rofi chromium delta-git xdotool xclip \
neofetch
# System
paru -S linux-headers wget \
btrfs-progs udiskie blueman openssh lshw less dmidecode
## Audio
paru -S alsa-utils pulseaudio pulseaudio-alsa pulseaudio-bluetooth pavucontrol bluez-utils
## Network
paru -S bind systemd-resolvconf networkmanager
# Dotfiles
paru -S python-pillow i3lock-color stow playerctl xdotoolxsel feh \
conky maim picom dust dunst rofi neofetch
# Notebook
paru -S acpi acpid tlp
# DevTools
paru -S delta-git cargo-bloat npm bacon nvim git cargo-flamegraph tealdeer
# CPU/GPU
paru -S lib32-libva-mesa-driver lib32-mesa-vdpau mesa-vdpau nvtop \
xf86-video-amdgpu lib32-mesa libva-mesa-driver amd-ucode
# X11
paru -S xorg-server i3-gaps xorg-xbacklight xorg-xrandr xclip \
lxappearance lightdm-webkit2-greeter lightdm
# Terminal
pacman -S bottom zellij eza bat fd ripgrep zsh
# Tools
## Productivity
### Browsers
paru -S firefox chromium
### File Browser
paru -S ranger pcmanfm
### Printer
paru -S brotherconfig4 simple-scan tesseract-data-eng cups brlaser
### Typesetting
paru -S adobe-source-han-sans-jp-fonts pandoc-cli texlive-latexextra \
texlive-basic texlive-latex biber adobe-source-han-sans-kr-fonts \
texlive-fontsrecommended texlive-bibtexextra texlive-latexrecommended texlive-binextra \
texlive-langgerman texlive-fontsextra texlive-science texlive-plaingeneric
### Misc
paru -S p7zip veracrypt keepassxc syncthing vlc unzip zathura zathura-pdf-mupdf
## Troubleshooting
paru -S nmap smartmontools ldns traceroute
## Networking
paru -S tailscale wireshark-qt wireguard-tools ethtool iperf3
## obs-studio
paru -S obs-studio v4l2loopback-dkms
## Docker
paru -S docker docker-compose docker-buildx
```
## Picture
[[./resources/24-03-15_16-06-52-alacritty.png]]
## Permissions
### sudo
```sh
echo "%$SUDOGRP ALL=(ALL) ALL" >> /etc/sudoers
```
### Groups
```sh
usermod -a -G network $USER
usermod -a -G video $USER
usermod -a -G docker $USER
usermod -a -G $SUDOGRP $USER
```
## Get Started
```sh
@@ -29,3 +99,101 @@ stow config
stow vim
stow zsh
```
## GUI
I'm using pcmanfm with [[Sweet - New Flavor](https://www.gnome-look.org/p/1253385/)].
The downloaded file needs to be extracted into `~/.themes/`.
The Icons are from the related icon set: [[Candy Icons](https://www.gnome-look.org/p/1305251)].
## ohmyzsh
Plugins for ohmyzsh
### eza
```sh
git clone https://github.com/z-shell/zsh-eza ~/.oh-my-zsh/custom/plugins/zsh-eza
```
## Environment
Add
```sh
VISUAL=/usr/bin/nvim
EDITOR=/usr/bin/nvim
```
to `/etc/environment`.
## NeoVim
Since we're using NeoVim, we wanna be lazy and have our configuration done for us.
I'm using lazyvim with the following plugins:
- bufferline.nvim
- dashboard-nvim
- flash.nvim
- lazy.nvim
- LazyVim
- lualine.nvim
- mini.ai
- mini.pairs
- noice.nvim
- nui.nvim
- nvim-notify
- nvim-treesitter
- nvim-treesitter-textobjects
- onedark.vim
- trouble.nvim
- ts-comments.nvim
- vim-ledger 0.25ms  start
- vimtex 0.24ms  start
- which-key.nvim
- yanky.nvim
We need run nvim as sudo at least once, to startup the process of enabling to download
additional language dictionaries.
We can able it with `:setlocal spell spelllang=en_us,de_de`.
## Systemd
Enable:
- tlp
- acpid
- NetworkManager
- cups
## Printer/Scanner MFC-L2710DW
I notice this is becoming more of a documentation on how to set my own laptop,
but...
¯\\_(ツ)_/¯
### Scanning
```sh
sudo brsaneconfig4 -a name=MFC-L2710DW model=MFC-L2710DW nodename=192.168.50.219
```
### Printing
You can add the printer via cups web gui on [http://localhost:631](http://localhost:631)
with the link [http://192.168.50.219](http://192.168.50.219).
## Networking
### eduroam
Have to install networkmanager specifically for eduroam. Otherwise I'd stick to
systemd-networkd.
## obs-studio
Need to run the following manually
```sh
sudo modprobe v4l2loopback
```

View File

@@ -1,6 +1,6 @@
! urxvt
! Fonts
urxvt*font: xft:DejaVuSansM Nerd Font Mono:style=Regular:size=11:hinting=full
urxvt*font: xft:DejaVuSansM Nerd Font Mono:style=Regular:size=10:hinting=full, xft:Symbola:style=Regular:pixelsize=10
! Behavior
urxvt*scrollBar: false

View File

@@ -11,9 +11,40 @@ style = "Bold Italic"
style = "Italic"
[font.normal]
family = "DejaVuSansM Nerd Font Mono"
family = "DejaVu Sans Code"
style = "Regular"
[window]
decorations = "none"
opacity = 0.9
blur = true
# From: https://github.com/alacritty/alacritty-theme
# Colors (One Dark)
# Default colors
[colors.primary]
background = '#282c34'
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'

View File

@@ -1,149 +0,0 @@
## 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

@@ -1,79 +0,0 @@
#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

@@ -1,34 +0,0 @@
#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

@@ -1,14 +0,0 @@
#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

@@ -1,4 +1,4 @@
# From https://github.com/addy-dclxvi/almighty-dotfiles
# See dunst(5) for all configuration options
[global]
### Display ###
@@ -17,42 +17,68 @@
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
follow = none
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "250x-50-30+20"
### Geometry ###
# Show how many messages are currently hidden (because of geometry).
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = 300
# The maximum height of a single notification, excluding the frame.
height = 300
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
offset = 10x50
# Scale factor. It is auto-detected if value is 0.
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 20
### Progress bar ###
# Turn on the progess bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 300
# Corner radius for the progress bar. 0 disables rounded corners.
progress_bar_corner_radius = 0
# Corner radius for the icon image.
icon_corner_radius = 0
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
# If gap_size is greater than 0, this setting will be ignored.
separator_height = 4
# Padding between text and separator.
@@ -61,6 +87,9 @@
# Horizontal padding.
horizontal_padding = 16
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 2
@@ -68,6 +97,12 @@
# Defines color of the frame around the notification window.
frame_color = "#2f343f"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
# of size frame_width will be drawn around each notification instead.
# Click events on gaps do not currently propagate to applications below.
gap_size = 0
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
@@ -76,21 +111,28 @@
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
# Sort type.
# possible values are:
# * id: sort by id
# * urgency_ascending: sort by urgency (low then normal then critical)
# * urgency_descending: sort by urgency (critical then normal then low)
# * update: sort by update (most recent always at the top)
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
idle_threshold = 120
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
# idle_threshold = 120
### Text ###
font = Roboto 8
font = Monospace 8
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 4
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
@@ -100,7 +142,7 @@
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
@@ -124,6 +166,7 @@
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
@@ -131,40 +174,55 @@
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Merge multiple notifications with the same content
# Stack together notifications with the same content
stack_duplicates = true
# Sets the stack tag for the notification, notifications with the same (non-empty) stack tag will replace each-other so only the newest one is visible.
set_stack_tag = "tag"
# Hide the count of merged notifications with the same content
hide_duplicate_count = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = off
# Recursive icon lookup. You can set a single theme, instead of having to
# define all lookup paths.
enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup)
icon_theme = Adwaita
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
# Align icons left/right/top/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 32
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
max_icon_size = 128
# Paths to default icons.
icon_folders = /usr/share/icons/Arc/status/16/:/usr/share/icons/Arc/devices/16/
# Paths to default icons (only neccesary when not using recursive icon lookup)
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
@@ -181,7 +239,7 @@
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
browser = /usr/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
@@ -192,10 +250,28 @@
# Define the class of the windows spawned by dunst
class = Dunst
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
@@ -209,6 +285,25 @@
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
@@ -219,27 +314,6 @@
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = ctrl+space
# Close all notifications.
close_all = ctrl+shift+space
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1". Make sure this key actually exists on your keyboard layout,
# e.g. check output of 'xmodmap -pke'
history = ctrl+grave
# Context menu.
context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
@@ -267,11 +341,50 @@
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
# Messages can be matched by "appname", "summary", "body", "icon", "category",
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
# "background", "new_icon" and "format".
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
# override_pause_level
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
# override_pause_level = X
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
@@ -279,11 +392,33 @@
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
@@ -295,13 +430,18 @@
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
@@ -322,5 +462,8 @@
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View File

@@ -79,40 +79,9 @@ bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws0; workspace $ws0
# 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 [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
for_window [title="KeePassX$"] floating enable
for_window [title="factorio.exe"] floating enable
###############################################################################
############################ Startup Applications #############################
@@ -122,25 +91,11 @@ exec --no-startup-id setxkbmap eu; setxkbmap -option ctrl:nocaps;
exec --no-startup-id picom
exec --no-startup-id udiskie
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 dunst
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
<<<<<<< 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 polybar
exec --no-startup-id syncthing serve --no-browser
exec --no-startup-id feh --bg-fill $HOME/Pictures/Wallpaper/basic/GMzBUSpbMAAuccT.jpg
###############################################################################
################################# Keybindings #################################
@@ -148,12 +103,8 @@ exec --no-startup-id feh --randomize --bg-fill $HOME/Pictures/Wallpaper/*
# Lock
bindsym $mod+Shift+space exec --no-startup-id python ~/.scripts/i3lock.py
# shutdown
bindsym $mod+Shift+s exec poweroff
# start a terminal
bindsym $mod+space exec alacritty
bindsym $mod+Return exec alacritty -e zellij
bindsym $mod+Return exec alacritty
# kill focused window
bindsym $mod+Shift+q kill
@@ -162,31 +113,31 @@ bindsym $mod+Shift+q kill
bindsym $mod+d exec --no-startup-id $HOME/.config/rofi/launchers/type-1/launcher.sh
# Screen brightness controls
bindsym XF86MonBrightnessUp exec --no-startup-id ~/.scripts/screen.sh up
bindsym XF86MonBrightnessDown exec --no-startup-id ~/.scripts/screen.sh down
bindsym XF86MonBrightnessUp exec --no-startup-id ~/.scripts/brightness.sh up
bindsym XF86MonBrightnessDown exec --no-startup-id ~/.scripts/brightness.sh down
# Pulse Audio controls
bindsym XF86AudioLowerVolume exec --no-startup-id ~/.scripts/sound.sh down
bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.scripts/sound.sh up
bindsym XF86AudioMute exec --no-startup-id ~/.scripts/sound.sh toggle
# bindsym $mod+p exec ~/.scripts/monitor.sh next
bindsym XF86AudioPlay exec "playerctl play-pause"
bindsym XF86AudioStop exec "playerctl stop"
bindsym XF86AudioNext exec "playerctl next"
bindsym XF86AudioPrevious exec "playerctl previous"
bindsym XF86AudioMicMute exec "amixer set Capture toggle"
# F9-F12 on Thinkpad
bindsym XF86Display exec autorandr --cycle
bindsym XF86Messenger exec signal-desktop
bindsym XF86Go exec blueman-manager
bindsym Cancel exec dunstify -r 3 "Cancel"
bindsym XF86Favorites exec dunstify -r 3 "Favorites"
# Application Shortcuts
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
>>>>>>> clean_emacs
# Whole Screen
bindsym Control+Print exec --no-startup-id ~/.scripts/screenshot.sh screen
@@ -207,7 +158,7 @@ bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# move focused workspace
# move focused workspace
bindsym $mod+Mod1+h move workspace to output left
bindsym $mod+Mod1+j move workspace to output down
bindsym $mod+Mod1+k move workspace to output up
@@ -241,7 +192,7 @@ bindsym $mod+Shift+minus move scratchpad
# restart/exit i3
bindsym $mod+Shift+r restart
bindsym Control+Shift+e exit
# bindsym Control+Shift+e exit
# Resize window (you can also use the mouse for that)
bindsym $mod+r mode "resize"
@@ -353,4 +304,3 @@ bindsym $mod+g mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
}

View File

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

View File

@@ -1,614 +0,0 @@
# 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

@@ -1,85 +0,0 @@
# 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

@@ -0,0 +1,187 @@
[colors]
background=#1e1e2e
background-alt = #373B41
foreground = #C5C8C6
primary = #F0C674
secondary = #8ABEB7
alert = #A54242
disabled = #707880
[bar/example]
width = 100%
height = 24pt
radius = 6
; dpi = 96
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3pt
border-size = 4pt
border-color = #00000000
padding-left = 0
padding-right = 1
module-margin = 1
separator = |
separator-foreground = ${colors.disabled}
font-0 = monospace;2
modules-left = battery xwindow
modules-right = filesystem memory cpu wlan eth xkeyboard pulseaudio date
cursor-click = pointer
cursor-scroll = ns-resize
enable-ipc = true
; wm-restack = generic
; wm-restack = bspwm
; wm-restack = i3
; override-redirect = true
; This module is not active by default (to enable it, add it to one of the
; modules-* list above).
; Please note that only a single tray can exist at any time. If you launch
; multiple bars with this module, only a single one will show it, the others
; will produce a warning. Which bar gets the module is timing dependent and can
; be quite random.
; For more information, see the documentation page for this module:
; https://polybar.readthedocs.io/en/stable/user/modules/tray.html
[module/systray]
type = internal/tray
format-margin = 8pt
tray-spacing = 16pt
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
[module/xwindow]
type = internal/xwindow
label = %title:0:50:...%
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
label-layout = %layout%
label-layout-foreground = ${colors.primary}
label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-foreground = ${colors.background}
label-indicator-background = ${colors.secondary}
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %percentage_used:2%%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected = %{F#F0C674}%ifname%%{F-} %essid:0:12:...% %local_ip%
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
[module/date]
type = internal/date
interval = 1
date = %H:%M
date-alt = %Y-%m-%d %H:%M:%S
label = %date%
label-foreground = ${colors.primary}
[module/battery]
type = internal/battery
; This is useful in case the battery never reports 100% charge
; Default: 100
full-at = 99
; format-low once this charge percentage is reached
; Default: 10
; New in version 3.6.0
low-at = 10
; Use the following command to list batteries and adapters:
; $ ls -1 /sys/class/power_supply/
battery = BAT0
adapter = AC
poll-interval = 5
label-charging = %{F#F0C674}BAT%{F-} %percentage%%
label-discharging = %{F#F0C674}BAT%{F-} %percentage%%
[settings]
screenchange-reload = true
pseudo-transparency = true
; vim:ft=dosini

View File

@@ -1,8 +1,6 @@
// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true"
keybinds {
normal clear-defaults=true {
// uncomment this and adjust key if using copy_on_select=false
// bind "Alt c" { Copy; }
bind "F1" {SwitchToMode "Tab"; }
bind "F2" {SwitchToMode "Pane"; }
bind "F5" {SwitchToMode "Session"; }
@@ -22,6 +20,25 @@ keybinds {
bind "Alt -" { Resize "Decrease"; }
}
tab {
bind "Ctrl t" { SwitchToMode "Normal"; }
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
bind "h" "Left" "Up" "k" { GoToPreviousTab; }
bind "l" "Right" "Down" "j" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "Normal"; }
bind "x" { CloseTab; SwitchToMode "Normal"; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
bind "Tab" { ToggleTab; }
}
locked {
bind "F12" { SwitchToMode "Normal"; }
}
@@ -63,25 +80,6 @@ keybinds {
bind "k" "Up" { MovePane "Up"; }
bind "l" "Right" { MovePane "Right"; }
}
tab {
bind "Ctrl t" { SwitchToMode "Normal"; }
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
bind "h" "Left" "Up" "k" { GoToPreviousTab; }
bind "l" "Right" "Down" "j" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "Normal"; }
bind "x" { CloseTab; SwitchToMode "Normal"; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
bind "Tab" { ToggleTab; }
}
scroll {
bind "Ctrl s" { SwitchToMode "Normal"; }
bind "e" { EditScrollback; SwitchToMode "Normal"; }
@@ -224,6 +222,7 @@ plugins {
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
//
//
themes {
tokyo-night-dark {
fg 169 177 214
@@ -299,7 +298,7 @@ theme "tokyo-night-dark"
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
//
// scrollback_editor "/usr/bin/vim"
scrollback_editor "/usr/bin/nvim"
// When attaching to an existing session with other users,
// should the session be mirrored (true)

View File

@@ -1,3 +1,7 @@
[user]
email = tuan-dat.tran@tudattr.dev
name = Tuan-Dat Tran
[core]
pager = delta
@@ -6,13 +10,12 @@
[delta]
navigate = true # use n and N to move between diff sections
light = false # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)
[merge]
conflictstyle = diff3
[diff]
colorMoved = default
[user]
email = tuan-dat.tran@tudattr.dev
name = Tuan-Dat Tran
[push]
autoSetupRemote = true

View File

@@ -1,19 +1,7 @@
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
':/home/tudattr/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte/27-p4-experiment-setup/btcp_patrick_kuhs/experiment-scripts
a:/home/tudattr/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte
s:/home/tudattr/Pictures/Screenshots
u:/home/tudattr/.genesis/Documents/Uni/Studium
e:/home/tudattr/.genesis/Documents/Uni/Studium/2023_Sommersemester/ethfuzz
r:/home/tudattr/.genesis/Documents/Uni/Studium/2023_Sommersemester/ethfuzz-evaluation/eval_ityfuzz/contracts/VeriSmart-benchmarks
m:/run/media/tudattr

View File

@@ -1,7 +0,0 @@
#!/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;
}

23
config/.scripts/brightness.sh Executable file
View File

@@ -0,0 +1,23 @@
#!/bin/sh
type xbacklight >/dev/null 2>&1 || {
echo >&2 "I require xbacklight but it's not installed. Aborting."
exit 1
}
type dunstify >/dev/null 2>&1 || {
echo >&2 "I require dunstify but it's not installed. Aborting."
exit 1
}
case $1 in
"up"*)
xbacklight -inc 10 &
currentBrightness=$(xbacklight -get)
dunstify -r 1 'brightness up'\ \($currentBrightness%\)
;;
"down"*)
xbacklight -dec 10 &
currentBrightness=$(xbacklight -get)
dunstify -r 1 'brightness down'\ \($currentBrightness%\)
;;
esac

View File

@@ -1,17 +0,0 @@
# 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

@@ -0,0 +1,8 @@
Were just two lonely people trying to hate ourselves a little less.
Before I leapt, I should have seen the view from halfway down.
Every happy ending has the day after the happy ending.
Theres no deep down. I believe that all we are is what we do.
It gets easier. Every day it gets a little easier. But you gotta do it every day — thats the hard part. But it does get easier.
Sometimes, life's a bitch and then you keep living.
I don't understand how people live. It's amazing to me that people wake up every morning and say: "Yeah! Another day, let's do it!" How do people do it? I don't know how.
Don't stop dancing.

View File

@@ -1,17 +0,0 @@
#!/bin/sh
type xbacklight >/dev/null 2>&1 || { echo >&2 "I require xbacklight but it's not installed. Aborting."; exit 1; }
type dunstify >/dev/null 2>&1 || { echo >&2 "I require dunstify but it's not installed. Aborting."; exit 1; }
case $1 in
"up"*)
xbacklight -inc 10 &
currentBrightness=$(xbacklight | cut -d\. -f1);
dunstify -r 1 'brightness up'\ \($currentBrightness%\);
;;
"down"*)
xbacklight -dec 10 &
currentBrightness=$(xbacklight | cut -d\. -f1);
dunstify -r 1 'brightness down'\ \($currentBrightness%\);
;;
esac

View File

@@ -1,38 +1,57 @@
#!/bin/sh
type xset >/dev/null 2>&1 || { echo >&2 "I require xset but it's not installed. Aborting."; exit 1; }
lower_battery_threshold=10
KBD="";
oldKBD="";
KBD=""
oldKBD=""
connected_monitors=""
old_connected_monitors=""
internal_monitor="eDP"
function kb_routine {
oldKBD="$KBD";
case "$(xset -q | grep -A 0 'LED' | cut -c59-67)" in
"00000000")
KBD="Europe" ;;
"00001000")
KBD="Deutsch" ;;
*) KBD="unknown" ;;
esac
kb_routine() {
oldKBD="$KBD"
case "$(xset -q | grep -A 0 'LED' | cut -c59-67)" in
"00000000")
KBD="Europe"
;;
"00001000")
KBD="Deutsch"
;;
*) KBD="unknown" ;;
esac
if [ "$KBD" != "$oldKBD" ]; then
dunstify -r 1 "$KBD";
fi
if [ "$KBD" != "$oldKBD" ]; then
dunstify -r 1 "$KBD"
fi
}
function battery_routine {
capacity=$(< /sys/class/power_supply/BAT0/capacity)
if [[ $capacity -lt lower_battery_threshold ]]; then
acpi | grep -q '0: Discharging' && dunstify "Battery at $capacity%";
sleep 60;
fi
battery_routine() {
capacity="$(cat /sys/class/power_supply/BAT0/capacity)"
if [ "$capacity" -lt $lower_battery_threshold ]; then
acpi | grep -q '0: Discharging' && dunstify "Battery at $capacity%"
sleep 60
fi
}
while :
do
kb_routine
battery_routine
sleep 1;
monitors() {
connected_monitors=$(xrandr | grep -c "\<connected\>")
if [ "$connected_monitors" != "old_connected_monitors" ]; then
if [ "$connected_monitors" -eq 1 ]; then
# dunstify -r 1 "Swichting to single monitor"
xrandr --output $internal_monitor --auto
fi
if [ "$connected_monitors" -gt 1 ]; then
external_monitor=$(xrandr | grep "\<connected\>" | grep -v $internal_monitor | cut -d" " -f1)
# dunstify -r 1 "Swichting to external monitor"
xrandr --output $internal_monitor --off --output "$external_monitor" --auto
fi
old_connected_monitors=$connected_monitors
fi
}
while :; do
kb_routine
battery_routine
# monitors
sleep 1
done

View File

@@ -1,345 +1,4 @@
# Services
Host github.com gitlab.com git.uni-due.de
Port 22
User git
IdentityFile /mnt/veracrypt1/git
Host github.com
Hostname github.com
Host gitlab.com
Hostname gitlab.com
Host git.uni-due.de
HostName git.uni-due.de
Host git.tudattr.dev
Hostname 192.168.20.12
Port 2222
User git
IdentityFile /mnt/veracrypt1/git
Host git.tudattr.dev
Hostname 192.168.20.12
Port 2222
User git
IdentityFile /mnt/veracrypt1/git
# Homeserver
Host behemoth
HostName 192.168.30.80
Port 22
User tuan
IdentityFile /mnt/veracrypt1/genesis
Host madrigal
HostName 192.168.70.1
Port 2200
User tudattr
IdentityFile /mnt/veracrypt1/mikrotik_rsa
Host inko inko.mii
HostName 192.168.20.14
Host naruto naruto.mii
HostName 192.168.20.13
Host pi pi.mii
HostName 192.168.20.11
Host aya01 aya01.mii
HostName 192.168.20.12
Host behemoth behemoth.mii
User tuan
HostName 192.168.30.174
Host mii
HostName tudattr.dev
Host inko.mii pi.mii aya01.mii naruto.mii behemoth.mii
ProxyJump mii
Host mii pi aya01 inko naruto inko.mii pi.mii aya01.mii naruto.mii behemoth behemoth.mii
Port 22
User tudattr
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
Host mini
HostName 100.76.45.158
Port 22
>>>>>>> clean_emacs
User tudattr
IdentityFile /mnt/veracrypt1/genesis
Host tail-pi
HostName 100.93.79.94
Port 22
User tuant
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
HostName 132.252.68.50
Port 2122
User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
ForwardX11 yes
<<<<<<< HEAD
ProxyJump ncs-tailscale
||||||| e9d53f0
=======
ProxyJump tail-pi
>>>>>>> clean_emacs
Host ncs-head-user
HostName 132.252.68.50
Port 2122
User user
IdentityFile /mnt/veracrypt1/tudattr
ForwardX11 yes
Host ncs2
HostName 192.168.1.13
User tuan-dat.tran
Host ncs2 ncs2-user ncs-node1 ncs-node2 ncs-node2-user ncs-node3 ncs-node4 ncs-node5 ncs-node6 ncs-node7 ncs-wedge
Port 22
IdentityFile /mnt/veracrypt1/genesis
ProxyJump ncs-head
Host ncs2-user
HostName 192.168.1.13
User user # tuan-dat.tran
Host ncs-node1
HostName 192.168.1.11
User user
Host ncs-node2
HostName 192.168.1.7
User tuan-dat.tran
ForwardX11 yes
Host ncs-node2-user
HostName 192.168.1.7
User user
Host ncs-node3
Hostname 192.168.1.19
User tuan-dat.tran
ForwardX11 yes
Host ncs-node3-user
Hostname 192.168.1.19
User user
IdentityFile /mnt/veracrypt1/tudattr
ForwardX11 yes
Host ncs-node4
HostName 192.168.1.9
User tuan-dat.tran
Host ncs-node4-user
HostName 192.168.1.9
Port 22
User user
IdentityFile /mnt/veracrypt1/tudattr
ProxyJump ncs-head
Host ncs-node5
HostName 192.168.1.15
User tuan-dat.tran
Host ncs-node6
Hostname 192.168.1.17
User tuan-dat.tran
Host ncs-node6-user
Hostname 192.168.1.17
Port 22
User user
IdentityFile /mnt/veracrypt1/tudattr
# ForwardX11 yes
ProxyJump ncs-head
Host ncs-node7
Hostname 192.168.1.18
User tuan-dat.tran
ForwardX11 yes
Host ncs-wedge
Hostname 192.168.1.5
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
Hostname 192.168.1.21
Port 22
User tuan
IdentityFile /mnt/veracrypt1/tudattr
ForwardX11 yes
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
Hostname 3.72.156.214
Port 22
User ubuntu
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
Host 5g-iana-mec
Hostname 192.168.100.1
Port 22
User udue
IdentityFile /mnt/veracrypt1/genesis
Host uulm-obu0 uulm-obu1
Port 22
User user
ProxyJump 5g-iana-mec
IdentityFile /mnt/veracrypt1/genesis
Host uulm-obu0
Hostname 192.168.201.7
Host uulm-obu1
Hostname 192.168.201.11
>>>>>>> clean_emacs
Include config_homelab
Include config_services
Include config_syssec
Include config_work

View File

@@ -0,0 +1,99 @@
# Homeserver
Host madrigal
HostName 192.168.70.1
Port 2200
User tudattr
IdentityFile /mnt/veracrypt1/mikrotik_rsa
Host inko inko.mii
HostName 192.168.20.14
User root
Host naruto naruto.mii
HostName 192.168.20.13
Host pi pi.mii
HostName 192.168.20.11
Host aya01 aya01.mii
HostName 192.168.20.12
User root
Host lulu lulu.mii
HostName 192.168.20.28
User root
Host k3s-loadbalancer.aya01 k3s-loadbalancer
HostName 192.168.20.22
ProxyJump aya01
Host k3s-server01.aya01 k3s-server01
HostName 192.168.20.24
ProxyJump aya01
Host k3s-server02.aya01 k3s-server02
HostName 192.168.20.30
ProxyJump aya01
Host k3s-server00.aya01 k3s-server00
HostName 192.168.20.21
ProxyJump aya01
Host k3s-agent00.aya01 k3s-agent00
HostName 192.168.20.25
ProxyJump aya01
Host k3s-agent01.aya01 k3s-agent01
HostName 192.168.20.26
ProxyJump aya01
Host k3s-agent02.aya01 k3s-agent02
HostName 192.168.20.27
ProxyJump aya01
Host k3s-longhorn02.aya01 k3s-longhorn02
HostName 192.168.20.31
ProxyJump aya01
Host k3s-longhorn00.aya01 k3s-longhorn00
HostName 192.168.20.32
ProxyJump aya01
Host docker-host00 docker-host00.aya01
HostName 192.168.20.34
ProxyJump aya01
Host docker-host01 docker-host01.aya01
HostName 192.168.20.35
ProxyJump aya01
Host docker-host02 docker-host02.aya01
HostName 192.168.20.36
ProxyJump aya01
Host docker-lb docker-lb.aya01
HostName 192.168.20.37
ProxyJump aya01
Host k3s-postgres.aya01 k3s-postgres
HostName 192.168.20.23
ProxyJump aya01
Host behemoth behemoth.pi
User tuan
HostName 192.168.30.174
IdentityFile /mnt/veracrypt1/genesis
Host behemoth.pi
ProxyJump pi
Host mii
HostName tudattr.dev
Host inko.mii pi.mii aya01.mii naruto.mii
ProxyJump mii
Host mii pi inko naruto inko.mii pi.mii naruto.mii aya01 aya01.mii k3s-server00.aya01 k3s-server00 k3s-loadbalancer.aya01 k3s-loadbalancer k3s-postgres.aya01 k3s-postgres k3s-server01.aya01 k3s-server01 k3s-agent00.aya01 k3s-agent00 k3s-agent01.aya01 k3s-agent01 k3s-agent02.aya01 k3s-agent02 k3s-server02.aya01 k3s-server02 k3s-longhorn00.aya01 k3s-longhorn00 k3s-longhorn01.aya01 k3s-longhorn01 k3s-longhorn02.aya01 k3s-longhorn02 docker-host00 docker-host00.aya01 docker-host01 docker-host01.aya01 docker-host02 docker-host02.aya01 docker-lb docker-lb.aya01 lulu lulu.mii
Port 22
User tudattr
IdentityFile /mnt/veracrypt1/genesis

View File

@@ -0,0 +1,24 @@
# Services
Host github.com gitlab.com git.uni-due.de git.ude-syssec.de
Port 22
User git
IdentityFile /mnt/veracrypt1/git
Host git.ude-syssec.de
Hostname git.ude-syssec.de
Host github.com
Hostname github.com
Host gitlab.com
Hostname gitlab.com
Host git.uni-due.de
HostName git.uni-due.de
Host git.tudattr.dev
Hostname 192.168.20.36
Port 2222
User git
IdentityFile /mnt/veracrypt1/git
ProxyJump mii

View File

@@ -0,0 +1,6 @@
Host tuan-ethfuzz
HostName 132.252.68.42
User tuan
IdentityFile /mnt/veracrypt1/genesis
Port 2207
ForwardAgent yes

96
config/.ssh/config_work Normal file
View File

@@ -0,0 +1,96 @@
# Work
Host mini
HostName 100.76.45.158
Port 22
User tudattr
IdentityFile /mnt/veracrypt1/genesis
# ProxyJump ncs-pi
Host ncs-head-user
HostName 130.75.73.1
User user
IdentityFile /mnt/veracrypt1/old/tudattr
Host ncs-node1 ncs-node2 ncs-node3 ncs-node4 ncs-node5 ncs-node6 ncs-node7 ncs-head ncs-wedge ncs-head
User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
Host ncs-node1 ncs-node2 ncs-node3 ncs-node4 ncs-node5 ncs-node6 ncs-node7 ncs-wedge
Port 22
ProxyJump ncs-head
Host ncs-head ncs-head-user
Port 30022
Host ncs-head
HostName 130.75.73.1
Host ncs-node1
HostName 192.168.1.101
Host ncs-node2
HostName 192.168.1.102
Host ncs-node3
Hostname 192.168.1.103
Host ncs-node4
HostName 192.168.1.104
Host ncs-node5
HostName 192.168.1.105
Host ncs-node6
Hostname 192.168.1.106
Host ncs-node7
Hostname 192.168.1.107
Host ncs-wedge
Hostname 192.168.1.5
User user
Host ncs-gpu
Hostname 192.168.1.21
Port 22
User tuan
IdentityFile /mnt/veracrypt1/old/tudattr
ProxyJump ncs-head
## 5g IANA
Host 5g-iana-mec 5g-iana-mec.naruto.mii
Hostname 192.168.100.1
Port 22
User udue
IdentityFile /mnt/veracrypt1/genesis
Host uulm-obu0 uulm-obu1 uulm-obu0.naruto.mii uulm-obu0.naruto.mii
Port 22
User user
IdentityFile /mnt/veracrypt1/genesis
Host uulm-obu0 uulm-obu0.naruto.mii
Hostname 192.168.200.6
Host uulm-obu1 uulm-obu1.naruto.mii
Hostname 192.168.200.11
Host 5g-iana-mec.naruto.mii uulm-obu1.naruto.mii uulm-obu0.naruto.mii nxw.naruto.mii
ProxyJump naruto.mii
Host nxw.naruto.mii nxw
User nxw
Hostname 192.168.100.4
Host uulm-obu0 uulm-obu1
ProxyJump 5g-iana-mec
Host uulm-obu0.naruto.mii uulm-obu0.naruto.mii
ProxyJump 5g-iana-mec.naruto.mii
Host nextworks.naruto.mii
ProxyJump 5g-iana-mec.naruto.mii
Host nextworks nextworks.naruto.mii
Hostname 192.168.100.4
User nxw

View File

@@ -1,66 +1,59 @@
{
"LazyVim": { "branch": "main", "commit": "0107a1079be7fb92f7d5b7e2c40818f47cf425d9" },
"LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" },
"SchemaStore.nvim": { "branch": "main", "commit": "7efe039d0675f4f1b03f946cc457891d13a6495f" },
"bufferline.nvim": { "branch": "main", "commit": "64e2c5def50dfd6b6f14d96a45fa3d815a4a1eef" },
"catppuccin": { "branch": "main", "commit": "045e3499d9ec8d84635fb08877ae44fd33f6a38d" },
"clangd_extensions.nvim": { "branch": "main", "commit": "34c8eaa12be192e83cd4865ce2375e9f53e728f2" },
"CopilotChat.nvim": { "branch": "main", "commit": "e0d6a5793a1faa0b88a97232bdbb09ea34744c7e" },
"LanguageTool.nvim": { "branch": "master", "commit": "809e7d77fec834597f495fec737c59292a10025b" },
"LazyVim": { "branch": "main", "commit": "31af2075423d0e6d3c4f10ab299498471afe4ea0" },
"SchemaStore.nvim": { "branch": "main", "commit": "f8c2a0f5d51b800ea4625808e243d9e8f7c5e1df" },
"bufferline.nvim": { "branch": "main", "commit": "261a72b90d6db4ed8014f7bda976bcdc9dd7ce76" },
"catppuccin": { "branch": "main", "commit": "faf15ab0201b564b6368ffa47b56feefc92ce3f4" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
"cmp-git": { "branch": "main", "commit": "ec049036e354ed8ed0215f2427112882e1ea7051" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"conform.nvim": { "branch": "master", "commit": "a605ce4b2db397c84ae6fa8bcfc85f00b985bc73" },
"crates.nvim": { "branch": "main", "commit": "b4f4987ccdb1cc3899ee541ef4375c73c48c4570" },
"dashboard-nvim": { "branch": "master", "commit": "413442b12d85315fc626c44a0ce4929b213ef604" },
"dressing.nvim": { "branch": "master", "commit": "18e5beb3845f085b6a33c24112b37988f3f93c06" },
"flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" },
"friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" },
"gitsigns.nvim": { "branch": "main", "commit": "4e348641b8206c3b8d23080999e3ddbe4ca90efc" },
"headlines.nvim": { "branch": "master", "commit": "618ef1b2502c565c82254ef7d5b04402194d9ce3" },
"indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" },
"lazy.nvim": { "branch": "main", "commit": "83493db50a434a4c5c648faf41e2ead80f96e478" },
"lualine.nvim": { "branch": "master", "commit": "26dac2fcadb6e622790ab08e36d0dba3d3765398" },
"conform.nvim": { "branch": "master", "commit": "f4e8837878fc5712d053ba3091a73d27d96a09e2" },
"crates.nvim": { "branch": "main", "commit": "8bf8358ee326d5d8c11dcd7ac0bcc9ff97dbc785" },
"dial.nvim": { "branch": "master", "commit": "46b4375e84e8eb771129bff6b2b1e47746601ef9" },
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"fzf-lua": { "branch": "main", "commit": "2b35807945413b622c72af92eb93bb59d5c405f5" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
"grug-far.nvim": { "branch": "main", "commit": "eadd3c4d7d3edc9d6b1ddc15e3c661d830dbf2b6" },
"inc-rename.nvim": { "branch": "main", "commit": "1871ca49ae6ee3e9ebee37955ba10c7b1425974f" },
"indent-blankline.nvim": { "branch": "master", "commit": "259357fa4097e232730341fa60988087d189193a" },
"lazy.nvim": { "branch": "main", "commit": "7c493713bc2cb392706866eeba53aaef6c8e9fc6" },
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "55716a879568a498fa236593c8119789054a3b8e" },
"mason.nvim": { "branch": "main", "commit": "3b5068f0fc565f337d67a2d315d935f574848ee7" },
"mini.ai": { "branch": "main", "commit": "ee9446a17c160aba6a04ff22097389c41872c878" },
"mini.bufremove": { "branch": "main", "commit": "931a3bb514147d9e812767275c4beba6b779b1d3" },
"mini.comment": { "branch": "main", "commit": "a4b7e46deb9ad2feb8902cc5dbf087eced112ee5" },
"mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" },
"mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" },
"mini.surround": { "branch": "main", "commit": "a1b590cc3b676512de507328d6bbab5e43794720" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "742db4e60c74e5fbcc596aaf9e7575e1342dfd09" },
"neoconf.nvim": { "branch": "main", "commit": "ffdeab72dc167543f9b3355baceb0918f1e81fc0" },
"neodev.nvim": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" },
"noice.nvim": { "branch": "main", "commit": "bf67d70bd7265d075191e7812d8eb42b9791f737" },
"nui.nvim": { "branch": "main", "commit": "3dc46d725f7b94bee5117c0a699b57b1902b5d65" },
"nvim-ansible": { "branch": "main", "commit": "d115cb9bb3680c990e2684f58cf333663fff03b8" },
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
"nvim-lint": { "branch": "master", "commit": "d78c8ab992f48890580653f74a362c6e5ef2eccc" },
"nvim-lspconfig": { "branch": "master", "commit": "4bdd3800b4148f670c6cf55ef65f490148eeb550" },
"nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" },
"nvim-spectre": { "branch": "master", "commit": "d1db6c1d37252b5a38f199e2f590c5a1617d9254" },
"nvim-treesitter": { "branch": "master", "commit": "f87882858438834d2fbb6379aa2be37de901751b" },
"nvim-treesitter-context": { "branch": "master", "commit": "b8b7e52c1517d401d7c519787d5dc4528c41291a" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "d2a4ffc22d9d38d44edb73da007b3cf43451e9b4" },
"nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "7ab799a9792f7cf3883cf28c6a00ad431f3d382a" },
"nvim-web-devicons": { "branch": "master", "commit": "a851380fbea4c1312d11f13d5cdc86a7a19808dd" },
"onedark.vim": { "branch": "main", "commit": "57b77747694ea5676c3ca0eeaf9567dc499730c0" },
"orgmode": { "branch": "master", "commit": "261c987345131a736066c25ea409f4d10904b0af" },
"persistence.nvim": { "branch": "main", "commit": "4982499c1636eac254b72923ab826ee7827b3084" },
"plenary.nvim": { "branch": "master", "commit": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be" },
"rustaceanvim": { "branch": "master", "commit": "69a22c2ec63ab375190006751562b62ebb318250" },
"semshi": { "branch": "master", "commit": "0182447e2ff4dfa04cd2dfe5f189e012c581ca45" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
"telescope.nvim": { "branch": "master", "commit": "67c598fdd4fca113224281c85721c4d8a6df055e" },
"todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" },
"tokyonight.nvim": { "branch": "main", "commit": "c025baf23b62f044eff1f4ef561c45de636f0e32" },
"trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" },
"venv-selector.nvim": { "branch": "main", "commit": "2ad34f36d498ff5193ea10f79c87688bd5284172" },
"vim-illuminate": { "branch": "master", "commit": "305bf07b919ac526deb5193280379e2f8b599926" },
"vim-ledger": { "branch": "master", "commit": "281346a221434574dd7f8767a352b2bf0b218b74" },
"vim-startuptime": { "branch": "master", "commit": "308b0088a864c4711a96e45b6734cf9294074f65" },
"vimtex": { "branch": "master", "commit": "9ce62bbf7ea8f6bb232bbff5549cd7745a3fd918" },
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
}
"mason-lspconfig.nvim": { "branch": "main", "commit": "8e46de9241d3997927af12196bd8faa0ed08c29a" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.ai": { "branch": "main", "commit": "ebb04799794a7f94628153991e6334c3304961b8" },
"mini.hipatterns": { "branch": "main", "commit": "f34975103a38b3f608219a1324cdfc58ea660b8b" },
"mini.icons": { "branch": "main", "commit": "44c0160526f7ae17ca8e8eab9ab235d047fcf7a6" },
"mini.pairs": { "branch": "main", "commit": "7e834c5937d95364cc1740e20d673afe2d034cdb" },
"mini.surround": { "branch": "main", "commit": "aa5e245829dd12d8ff0c96ef11da28681d6049aa" },
"neo-tree.nvim": { "branch": "main", "commit": "395ce4675a54828f9fd730d78f7910c114ab0a49" },
"noice.nvim": { "branch": "main", "commit": "eaed6cc9c06aa2013b5255349e4f26a6b17ab70f" },
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
"nvim-ansible": { "branch": "main", "commit": "44dabdaa8a9193b7f564a8408ed6d7107705030a" },
"nvim-cmp": { "branch": "main", "commit": "3403e2e9391ed0a28c3afddd8612701b647c8e26" },
"nvim-lint": { "branch": "master", "commit": "6b46370d02cd001509a765591a3ffc481b538794" },
"nvim-lspconfig": { "branch": "master", "commit": "ffe543e171792e4e7c42f1e73c4ab5c6fe71b861" },
"nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" },
"nvim-treesitter": { "branch": "master", "commit": "33d27173876499a0f037cb9edff90d583711b6ae" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" },
"nvim-ts-autotag": { "branch": "main", "commit": "1cca23c9da708047922d3895a71032bc0449c52d" },
"outline.nvim": { "branch": "main", "commit": "6c44527837ff7ac1cd054dc365a721e881020a2e" },
"persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"render-markdown.nvim": { "branch": "main", "commit": "e41b0002fe4196825450ab5a6343300c40791d51" },
"rustaceanvim": { "branch": "master", "commit": "a244210b28f9055c2b4cfa85c92c8a71c13671c9" },
"snacks.nvim": { "branch": "main", "commit": "cb68df337e2098a966c02e33bdb764a9f73b6010" },
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" },
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
"tokyonight.nvim": { "branch": "main", "commit": "b262293ef481b0d1f7a14c708ea7ca649672e200" },
"trouble.nvim": { "branch": "main", "commit": "46cf952fc115f4c2b98d4e208ed1e2dce08c9bf6" },
"ts-comments.nvim": { "branch": "main", "commit": "2002692ad1d3f6518d016550c20c2a890f0cbf0e" },
"vim-ledger": { "branch": "master", "commit": "dbc683e24bd5338b8c12540227a58b2d247e097a" },
"vimtex": { "branch": "master", "commit": "3401dc81a14b7251bd813e2411eaf0d3b65bd2af" },
"which-key.nvim": { "branch": "main", "commit": "4ab3bbe976e63b5390d3fca74a52a092a041cd30" },
"yanky.nvim": { "branch": "main", "commit": "f9b905994cccf3c55f41af3a0a1f4c76c844e411" }
}

View File

@@ -1,19 +1,29 @@
{
"extras": [
"lazyvim.plugins.extras.ai.copilot-chat",
"lazyvim.plugins.extras.coding.mini-surround",
"lazyvim.plugins.extras.coding.yanky",
"lazyvim.plugins.extras.editor.dial",
"lazyvim.plugins.extras.editor.fzf",
"lazyvim.plugins.extras.editor.inc-rename",
"lazyvim.plugins.extras.editor.outline",
"lazyvim.plugins.extras.formatting.prettier",
"lazyvim.plugins.extras.lang.ansible",
"lazyvim.plugins.extras.lang.clangd",
"lazyvim.plugins.extras.lang.docker",
"lazyvim.plugins.extras.lang.elixir",
"lazyvim.plugins.extras.lang.git",
"lazyvim.plugins.extras.lang.json",
"lazyvim.plugins.extras.lang.markdown",
"lazyvim.plugins.extras.lang.python",
"lazyvim.plugins.extras.lang.python-semshi",
"lazyvim.plugins.extras.lang.rust",
"lazyvim.plugins.extras.lang.tailwind",
"lazyvim.plugins.extras.lang.tex",
"lazyvim.plugins.extras.lang.yaml"
"lazyvim.plugins.extras.lang.toml",
"lazyvim.plugins.extras.util.dot",
"lazyvim.plugins.extras.util.mini-hipatterns"
],
"news": {
"NEWS.md": "2123"
"NEWS.md": "7429"
},
"version": 3
"version": 7
}

View File

@@ -1,3 +1,10 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
-- Add any additional autocmds here
vim.api.nvim_create_autocmd({ "Filetype" }, {
pattern = { "tex" },
callback = function()
vim.cmd("LanguageToolSetUp")
end,
})

View File

@@ -1,19 +1,23 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
-- bootstrap lazy.nvim
-- stylua: ignore
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import any extras modules here
-- { import = "lazyvim.plugins.extras.lang.typescript" },
-- { import = "lazyvim.plugins.extras.lang.json" },
-- { import = "lazyvim.plugins.extras.ui.mini-animate" },
-- import/override with your plugins
{ import = "plugins" },
},
@@ -27,7 +31,10 @@ require("lazy").setup({
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "tokyonight", "habamax" } },
checker = { enabled = true }, -- automatically check for plugin updates
checker = {
enabled = true, -- check for plugin updates periodically
notify = false, -- notify on update
}, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins

View File

@@ -1,3 +1,10 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
local opt = vim.opt
opt.spelllang = { "en_us", "de_de" }
vim.api.nvim_set_option_value("colorcolumn", "79", {})
vim.g.languagetool_server_command = "/usr/bin/languagetool --http"

View File

@@ -0,0 +1,18 @@
-- return {
-- { "joshdick/onedark.vim" },
-- {
-- "LazyVim/LazyVim",
-- opts = {
-- colorscheme = "onedark",
-- },
-- },
-- }
return {
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
{
"LazyVim/LazyVim",
opts = {
colorscheme = "catppuccin-macchiato",
},
},
}

View File

@@ -30,14 +30,6 @@ return {
-- disable trouble
{ "folke/trouble.nvim", enabled = false },
-- add symbols-outline
{
"simrat39/symbols-outline.nvim",
cmd = "SymbolsOutline",
keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
config = true,
},
-- override nvim-cmp and add cmp-emoji
{
"hrsh7th/nvim-cmp",
@@ -71,18 +63,6 @@ return {
},
},
-- add telescope-fzf-native
{
"telescope.nvim",
dependencies = {
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
config = function()
require("telescope").load_extension("fzf")
end,
},
},
-- add pyright to lspconfig
{
"neovim/nvim-lspconfig",
@@ -177,7 +157,11 @@ return {
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, "😄")
table.insert(opts.sections.lualine_x, {
function()
return "😄"
end,
})
end,
},
@@ -210,56 +194,4 @@ return {
},
},
},
-- Use <tab> for completion and snippets (supertab)
-- first: disable default <tab> and <s-tab> behavior in LuaSnip
{
"L3MON4D3/LuaSnip",
keys = function()
return {}
end,
},
-- then: setup supertab in cmp
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-emoji",
},
---@param opts cmp.ConfigSchema
opts = function(_, opts)
local has_words_before = function()
unpack = unpack or table.unpack
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local luasnip = require("luasnip")
local cmp = require("cmp")
opts.mapping = vim.tbl_extend("force", opts.mapping, {
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
-- this way you will only jump inside the snippet region
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
})
end,
},
}

View File

@@ -0,0 +1,4 @@
return {
-- Add vim-ledger
{ "vigoux/LanguageTool.nvim" },
}

View File

@@ -1,9 +0,0 @@
return {
{ "joshdick/onedark.vim" },
{
"LazyVim/LazyVim",
opts = {
colorscheme = "onedark",
},
},
}

View File

@@ -1,27 +0,0 @@
return {
{
"nvim-orgmode/orgmode",
dependencies = {
{ "nvim-treesitter/nvim-treesitter", lazy = true },
},
event = "VeryLazy",
config = function()
-- Load treesitter grammar for org
require("orgmode").setup_ts_grammar()
-- Setup treesitter
require("nvim-treesitter.configs").setup({
highlight = {
enable = true,
},
ensure_installed = { "org" },
})
-- Setup orgmode
require("orgmode").setup({
org_agenda_files = "~/orgfiles/**/*",
org_default_notes_file = "~/orgfiles/refile.org",
})
end,
},
}

View File

@@ -1,44 +0,0 @@
return {
"mrcjkb/rustaceanvim",
version = "^4", -- Recommended
ft = { "rust" },
opts = {
server = {
on_attach = function(_, bufnr)
vim.keymap.set("n", "<leader>cR", function()
vim.cmd.RustLsp("codeAction")
end, { desc = "Code Action", buffer = bufnr })
vim.keymap.set("n", "<leader>dr", function()
vim.cmd.RustLsp("debuggables")
end, { desc = "Rust debuggables", buffer = bufnr })
end,
default_settings = {
-- rust-analyzer language server configuration
["rust-analyzer"] = {
cargo = {
allFeatures = true,
loadOutDirsFromCheck = true,
runBuildScripts = true,
},
-- Add clippy lints for Rust.
checkOnSave = {
allFeatures = true,
command = "clippy",
extraArgs = { "--no-deps" },
},
procMacro = {
enable = true,
ignored = {
["async-trait"] = { "async_trait" },
["napi-derive"] = { "napi" },
["async-recursion"] = { "async_recursion" },
},
},
},
},
},
},
config = function(_, opts)
vim.g.rustaceanvim = vim.tbl_deep_extend("force", {}, opts or {})
end,
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,216 @@
Röstschmiede
Cortado
Kubernetes
ARM64
ICCS
Jupyter
aggnode
gefixed
OBUs
disable
markdownlint
EthFuzz
Ethereum
Blockchain
Fuzzers
DAO
ethFuzz
EF/CF
EVM
libAFL
Fuzzer
revm
Tx
TxSeq
fuzzer
smartbugs
daedaluzz
precompiles
Echidna
AFL
callees
fuzzers
prebuilt
LibAFL
code
wieviel
wieviele
Cryptowährung
Instrumentations
Werkzeuge
transpiliert
gefuzzt
Transpilierung
reentrancies
Fuzzings
ityFuzz
ItyFuzz
gemanaged
fuzzen
Bytecode
Fuzzern
ThinkPad
E14
NAPP
PQoS
NMClient
JSON
ip
CONFIG
GNSS
gpsd
gps
OBU
webhook
nmcli
MEC
nginx
RTMP
Tichy
Taibi
Davide
Strukturorientiertes
RWTH
Simulink
Stateflow
AUTOSAR
MSR
lifecycle
Wahlpflichtvorlesungen
Proggen
Mastern
Präsenzlehre
respectivly
Annekdoten
Walid
Maalej
VLs
FSE
W3
Fachschaftsvorsitzenden
Todos
Oulu
Coveragemessung
IANA
SHK
Rizk
Bachelorsproject
Giesen
bachelorproject
Zitationsmetriken
Lehreerfahrung
Hasselbring
paluno
Vogalsang
UC6
EOW
UULM
Nehal
Giorgos
Thanos
uulm
obu0
obu1
orin
dml
dmlo
uc6dmlarm0
obu
uc6dmlarm02041
uc6dmlarm1
uc6dmlarm12051
uc6dmlarm2
uc6dmlarm22061
uc6dml
mec
uc6aggnode
NmCli
NmSender
TODO
uc6dmltrain0
uc6dmltrain02031
uc6dml90
uc6nmcli0
uc6nmcli2
uc6nmcli1
uc6pqos1841
uc6pqos
uc6pqos0
uc6nmsen21831
uc6nmsen2
uc6nmsender
eMBB
uc6aggnode1781
iana
uc6aggnode6
uc6dmltrain1
uc6dmltrain1541
us6nmclient1771
uc6nmclient
Monteiro
Dextra
DextraData
CTO
CompSci
CTF
Pentesting
Privatly
Monotonität
Gehaltsrange
inbetween
Homelab
Skillset
DevOps
ausverfrachtet
Ansible
IaC
Proxmox
Sina
Arbeitszeitsregelung
SRE
SREs
SLO
k3s
config
kubernetes
KUBECONFIG
localhost
gitea
RBAC
netcup
proxmox
LVM
Infura
Etherscan
Hypervisor
vCPUs
ESXI
finalevent
fe
reentrancy
blockchain
perf
#eentrency
#eentrency
reentrency/!
delegatecall
CCS
RECN
QUIC
P4
bqm
UDP
scapy
ARP
bfshell
bfrt
namespace
picoquic
pre
namespaces
sudo
Portshaping
Topo
rpecn
Zipf
stateful

Binary file not shown.

View File

@@ -2,80 +2,44 @@
export ZSH="$HOME/.oh-my-zsh"
export PATH="$PATH:$HOME/.go/bin:$HOME/.local/bin:$HOME/.cargo/bin:$HOME/.dotnet/tools:$HOME/.emacs.d/bin"
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export PenTestTools=$HOME/Local/PenTesting/
export CTF=$HOME/Documents/CTF/
export WORKSPACE=$HOME/workspace_l
export ZSHRC="$HOME/.zshrc"
<<<<<<< HEAD
||||||| e9d53f0
export VISUAL="emacsclient -t"
export EDITOR="emacsclient -t"
=======
export VISUAL="nvim"
export EDITOR="nvim"
>>>>>>> clean_emacs
export KUBECONFIG=$HOME/.kube/config
# History
export HISTSIZE=50000
export SAVEHIST=50000
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
# 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
# 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 kc="kubectl"
alias kns="kubens"
alias q="exit"
alias b="byobu"
alias vim="nvim"
alias cat="bat --pager=never"
alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'
alias xsel='xsel -ib'
alias msfconsole="msfconsole -x \"db_connect metasploit@msf\""
alias ed="\emacs --daemon"
alias e="open_emacs"
alias df="df -h"
alias picpaste="xclip -selection clipboard -t image/png -o"
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 zshconfig="emacsclient -nw ~/.zshrc; source ~/.zshrc;"
alias notify="dunstify \"ping~\""
alias ekill="pkill emacs; pkill emacsclient; ed"
alias latexmk="latexmk -f -pdf -interaction=nonstopmode"
alias picotik="picocom --b 115200 /dev/ttyUSB0"
alias ls="eza"
## git
alias gps="git push soft --all"
alias gras="add_soft_git"
alias kc="kubectl"
alias nspeedl="curl -s -o /dev/null -w \"DNS Lookup: %{time_namelookup}\nTCP Connect: %{time_connect}\nTotal: %{time_total}\n\" http://www.tudattr.dev"
# Theme
ZSH_THEME="agnoster"
@@ -85,17 +49,15 @@ plugins=(
git
history
z
zsh-eza
)
randpw() { < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-$1};echo;};
autoload -U +X bashcompinit && bashcompinit
autoload -Uz compinit && compinit
# Source
source $ZSH/oh-my-zsh.sh
add_soft_git() { git remote add soft ssh://git.aya01:/$1 }
open_emacs() { emacsclient -c $1 & disown; };
autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C /usr/bin/terraform terraform
# echo "rm -rf braincells/*"
eval "$(starship init zsh)"
eval "$(atuin init zsh)"