parent
34cda631d2
commit
6c023972ef
21
README.md
21
README.md
|
@ -1,12 +1,11 @@
|
||||||
# .dotfiles
|
# Install dependencies
|
||||||
|
|
||||||
These are my personal dotfiles.
|
|
||||||
|
|
||||||
Main tools I am currently using are:
|
|
||||||
|
|
||||||
- i3-gaps
|
|
||||||
- nushell (although its not stable yet)
|
|
||||||
- (doom)emacs
|
|
||||||
- zellij
|
|
||||||
- alacritty
|
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
49
README.org
49
README.org
|
@ -1,49 +0,0 @@
|
||||||
* .dotfiles
|
|
||||||
|
|
||||||
These are the personal dotfiles for my laptop.
|
|
||||||
|
|
||||||
Main tools I am currently using are (may be out of date):
|
|
||||||
- alacritty
|
|
||||||
- emacs (Doom Emacs)
|
|
||||||
- vim
|
|
||||||
- nu
|
|
||||||
- starship
|
|
||||||
- picom
|
|
||||||
- i3wm
|
|
||||||
- zellij
|
|
||||||
- synthing (as my home directory)
|
|
||||||
|
|
||||||
#+CAPTION: Neofetch
|
|
||||||
#+ATTR_HTML: :width 960px
|
|
||||||
[[./resources/23-04-10_10-30-18-alacritty.png]]
|
|
||||||
|
|
||||||
** Getting started
|
|
||||||
|
|
||||||
*** Font setup
|
|
||||||
|
|
||||||
Since we're using a powerline font we need to install them first.
|
|
||||||
|
|
||||||
#+begin_src shell
|
|
||||||
git clone https://github.com/powerline/fonts.git --depth=1
|
|
||||||
./fonts/install.sh
|
|
||||||
rm -rf fonts/
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** Installing the dotfiles
|
|
||||||
|
|
||||||
To deploy the .dotfiles we use the tool stow.
|
|
||||||
|
|
||||||
#+begin_src shell
|
|
||||||
git clone https://github.com/TuDatTr/dotfiles .dotfiles && cd .dotfiles
|
|
||||||
stow emacs
|
|
||||||
stow zsh
|
|
||||||
stow config
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Author
|
|
||||||
|
|
||||||
- Tuan-Dat Tran - [[https://gitlab.com/TuDatTr/][TuDatTr]]
|
|
||||||
|
|
||||||
** License
|
|
||||||
|
|
||||||
This project is licensed under the GPL-3.0 License - see LICENSE file for details.
|
|
|
@ -1,6 +1,6 @@
|
||||||
! urxvt
|
! urxvt
|
||||||
! Fonts
|
! Fonts
|
||||||
urxvt*font: xft:Hack Nerd Font Mono:style=Regular:size=11:hinting=full, xft:DejaVu Sans Mono for Powerline:size=11, SourceHanSans-Regular
|
urxvt*font: xft:DejaVuSansM Nerd Font Mono:style=Regular:size=11:hinting=full
|
||||||
|
|
||||||
! Behavior
|
! Behavior
|
||||||
urxvt*scrollBar: false
|
urxvt*scrollBar: false
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
set -g prefix F12
|
|
||||||
unbind-key -n C-a
|
|
|
@ -1,15 +0,0 @@
|
||||||
# Status bar for tmux and screen
|
|
||||||
|
|
||||||
# Status beginning with '#' are disabled.
|
|
||||||
|
|
||||||
# Screen has two status lines, with 4 quadrants for status
|
|
||||||
screen_upper_left="color"
|
|
||||||
screen_upper_right="color whoami hostname ip_address menu"
|
|
||||||
screen_lower_left="color logo distro release #arch session"
|
|
||||||
screen_lower_right="color network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #fan_speed #cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap disk #time_utc date time"
|
|
||||||
|
|
||||||
|
|
||||||
# Tmux has one status line, with 2 halves for status
|
|
||||||
tmux_left=" logo #distro #release #arch #session"
|
|
||||||
# You can have as many tmux right lines below here, and cycle through them using Shift-F5
|
|
||||||
tmux_right="#network #disk_io #custom #entropy #raid #reboot_required #updates_available #apport #services #mail #users #uptime #fan_speed #cpu_temp battery #wifi_quality #processes #load_average #cpu_count #cpu_freq #memory #swap #disk #whoami #hostname ip_address #time_utc date time"
|
|
|
@ -11,7 +11,7 @@ style = "Bold Italic"
|
||||||
style = "Italic"
|
style = "Italic"
|
||||||
|
|
||||||
[font.normal]
|
[font.normal]
|
||||||
family = "DejaVu Sans Mono for Powerline"
|
family = "DejaVuSansM Nerd Font Mono"
|
||||||
style = "Regular"
|
style = "Regular"
|
||||||
|
|
||||||
[window]
|
[window]
|
||||||
|
|
|
@ -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 = 0
|
|
||||||
; 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 = 50
|
|
||||||
; higher_cutoff_freq = 10000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[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
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -86,17 +86,14 @@ for_window [title="KeePassX$"] floating enable border normal
|
||||||
############################ Startup Applications #############################
|
############################ Startup Applications #############################
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# exec --no-startup-id setxkbmap us,de; setxkbmap -option ctrl:nocaps; setxkbmap -option grp:lalt_lshift_toggle
|
exec --no-startup-id setxkbmap eu; setxkbmap -option ctrl:nocaps;
|
||||||
exec --no-startup-id picom
|
exec --no-startup-id picom
|
||||||
exec --no-startup-id udiskie
|
exec --no-startup-id udiskie
|
||||||
exec --no-startup-id conky -c ~/.conky/syclo-crimson-bottomleft.conkyrc
|
exec --no-startup-id conky -c ~/.conky/syclo-crimson-bottomleft.conkyrc
|
||||||
# exec --no-startup-id synergyc -f --no-tray --debug INFO --name genesis --enable-crypto 192.168.178.38:24800
|
# exec --no-startup-id synergyc -f --no-tray --debug INFO --name genesis --enable-crypto 192.168.178.38:24800
|
||||||
exec --no-startup-id dunst
|
exec --no-startup-id dunst
|
||||||
exec --no-startup-id ~/.scripts/startup.sh
|
exec --no-startup-id ~/.scripts/startup.sh
|
||||||
exec --no-startup-id llk
|
|
||||||
exec --no-startup-id emacs --daemon
|
|
||||||
exec --no-startup-id syncthing
|
exec --no-startup-id syncthing
|
||||||
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/*
|
|
||||||
exec --no-startup-id feh --randomize --bg-fill $HOME/Pictures/Wallpaper/*
|
exec --no-startup-id feh --randomize --bg-fill $HOME/Pictures/Wallpaper/*
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -110,13 +107,13 @@ bindsym $mod+Shift+s exec poweroff
|
||||||
|
|
||||||
# start a terminal
|
# start a terminal
|
||||||
bindsym $mod+space exec alacritty
|
bindsym $mod+space exec alacritty
|
||||||
bindsym $mod+Return exec alacritty -e nu /home/tuan/.scripts/zellij-chooser.nu
|
bindsym $mod+Return exec alacritty -e zellij
|
||||||
|
|
||||||
# kill focused window
|
# kill focused window
|
||||||
bindsym $mod+Shift+q kill
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
# start program launcher
|
# start program launcher
|
||||||
bindsym $mod+d exec --no-startup-id /home/tuan/.config/rofi/launchers/type-1/launcher.sh
|
bindsym $mod+d exec --no-startup-id $HOME/.config/rofi/launchers/type-1/launcher.sh
|
||||||
|
|
||||||
# Screen brightness controls
|
# Screen brightness controls
|
||||||
bindsym XF86MonBrightnessUp exec --no-startup-id ~/.scripts/screen.sh up
|
bindsym XF86MonBrightnessUp exec --no-startup-id ~/.scripts/screen.sh up
|
||||||
|
@ -133,9 +130,7 @@ bindsym XF86AudioPrevious exec "playerctl previous"
|
||||||
|
|
||||||
# Application Shortcuts
|
# Application Shortcuts
|
||||||
bindsym $mod+b exec firefox
|
bindsym $mod+b exec firefox
|
||||||
bindsym $mod+p exec firefox --private-window https://mos4.de
|
bindsym $mod+p exec firefox --private-window https://tudattr.dev
|
||||||
bindsym $mod+e exec emacsclient -c
|
|
||||||
bindsym $mod+m exec thunderbird
|
|
||||||
|
|
||||||
# Whole Screen
|
# Whole Screen
|
||||||
bindsym Control+Print exec --no-startup-id ~/.scripts/screenshot.sh screen
|
bindsym Control+Print exec --no-startup-id ~/.scripts/screenshot.sh screen
|
||||||
|
|
|
@ -1,556 +0,0 @@
|
||||||
# Nushell Config File
|
|
||||||
|
|
||||||
# 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 {
|
|
||||||
'red3b'
|
|
||||||
} else if $in < 6hr {
|
|
||||||
'orange3'
|
|
||||||
} else if $in < 1day {
|
|
||||||
'yellow3b'
|
|
||||||
} else if $in < 3day {
|
|
||||||
'chartreuse2b'
|
|
||||||
} else if $in < 1wk {
|
|
||||||
'green3b'
|
|
||||||
} else if $in < 6wk {
|
|
||||||
'darkturquoise'
|
|
||||||
} else if $in < 52wk {
|
|
||||||
'deepskyblue3b'
|
|
||||||
} 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_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: "#FFFFFF" bg: "#FF0000" attr: b}
|
|
||||||
shape_globpattern: cyan_bold
|
|
||||||
shape_int: purple_bold
|
|
||||||
shape_internalcall: cyan_bold
|
|
||||||
shape_list: cyan_bold
|
|
||||||
shape_literal: blue
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
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 {
|
|
||||||
'red3b'
|
|
||||||
} else if $in < 6hr {
|
|
||||||
'orange3'
|
|
||||||
} else if $in < 1day {
|
|
||||||
'yellow3b'
|
|
||||||
} else if $in < 3day {
|
|
||||||
'chartreuse2b'
|
|
||||||
} else if $in < 1wk {
|
|
||||||
'green3b'
|
|
||||||
} else if $in < 6wk {
|
|
||||||
'darkturquoise'
|
|
||||||
} else if $in < 52wk {
|
|
||||||
'deepskyblue3b'
|
|
||||||
} 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_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: "#FFFFFF" bg: "#FF0000" attr: b}
|
|
||||||
shape_globpattern: cyan_bold
|
|
||||||
shape_int: purple_bold
|
|
||||||
shape_internalcall: cyan_bold
|
|
||||||
shape_list: cyan_bold
|
|
||||||
shape_literal: blue
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
let-env config = {
|
|
||||||
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
|
|
||||||
}
|
|
||||||
cd: {
|
|
||||||
abbreviations: false # allows `cd s/o/f` to expand to `cd some/other/folder`
|
|
||||||
}
|
|
||||||
table: {
|
|
||||||
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
|
|
||||||
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"
|
|
||||||
}
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
# true or false to enable or disable the welcome banner at startup
|
|
||||||
show_banner: false
|
|
||||||
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 }
|
|
||||||
# }
|
|
||||||
#}
|
|
||||||
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)" }
|
|
||||||
|
|
||||||
alias ll = ls -la
|
|
||||||
alias la = ls -a
|
|
||||||
alias q = exit
|
|
||||||
alias e = emacsclient -t
|
|
||||||
alias ekill = (pkill emacs;pkill emacsclient;emacs --daemon)
|
|
||||||
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
|
|
||||||
|
|
||||||
# git
|
|
||||||
alias gpa = git push all --all
|
|
||||||
alias gras = add_soft
|
|
||||||
alias gd = git 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
|
|
||||||
|
|
||||||
let-env DOCKER_BUILDKIT = 1 # Disable for podman
|
|
||||||
source ~/.cache/starship/init.nu
|
|
||||||
|
|
|
@ -1,70 +0,0 @@
|
||||||
# Nushell Environment Config File
|
|
||||||
|
|
||||||
def create_left_prompt [] {
|
|
||||||
let home = ($env | get -i (if $nu.os-info.name == "windows" { "USERPROFILE" } else { "HOME" }) | into string)
|
|
||||||
let dir = ([
|
|
||||||
($env.PWD | str substring 0..($home | str length) | str replace -s $home "~"),
|
|
||||||
($env.PWD | str substring ($home | str length)..)
|
|
||||||
] | str join)
|
|
||||||
|
|
||||||
let path_segment = if (is-admin) {
|
|
||||||
$"(ansi red_bold)($dir)"
|
|
||||||
} else {
|
|
||||||
$"(ansi green_bold)($dir)"
|
|
||||||
}
|
|
||||||
|
|
||||||
$path_segment
|
|
||||||
}
|
|
||||||
|
|
||||||
def create_right_prompt [] {
|
|
||||||
let time_segment = ([
|
|
||||||
(date now | date format '%m/%d/%Y %r')
|
|
||||||
] | str join)
|
|
||||||
|
|
||||||
$time_segment
|
|
||||||
}
|
|
||||||
|
|
||||||
# Use nushell functions to define your right and left prompt
|
|
||||||
let-env PROMPT_COMMAND = { || create_left_prompt }
|
|
||||||
let-env PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
|
|
||||||
|
|
||||||
# The prompt indicators are environmental variables that represent
|
|
||||||
# the state of the prompt
|
|
||||||
let-env PROMPT_INDICATOR = { || "〉" }
|
|
||||||
let-env PROMPT_INDICATOR_VI_INSERT = { || ": " }
|
|
||||||
let-env PROMPT_INDICATOR_VI_NORMAL = { || "〉" }
|
|
||||||
let-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
|
|
||||||
let-env ENV_CONVERSIONS = {
|
|
||||||
"PATH": {
|
|
||||||
from_string: { |s| $s | split row (char esep) | path expand -n }
|
|
||||||
to_string: { |v| $v | path expand -n | str join (char esep) }
|
|
||||||
}
|
|
||||||
"Path": {
|
|
||||||
from_string: { |s| $s | split row (char esep) | path expand -n }
|
|
||||||
to_string: { |v| $v | path expand -n | str join (char esep) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Directories to search for scripts when calling source or use
|
|
||||||
#
|
|
||||||
# By default, <nushell-config-dir>/scripts is added
|
|
||||||
let-env NU_LIB_DIRS = [
|
|
||||||
($nu.config-path | path dirname | path join 'scripts')
|
|
||||||
]
|
|
||||||
|
|
||||||
# Directories to search for plugin binaries when calling register
|
|
||||||
#
|
|
||||||
# By default, <nushell-config-dir>/plugins is added
|
|
||||||
let-env NU_PLUGIN_DIRS = [
|
|
||||||
($nu.config-path | path dirname | path join 'plugins')
|
|
||||||
]
|
|
||||||
|
|
||||||
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
|
|
||||||
# let-env PATH = ($env.PATH | split row (char esep) | prepend '/some/path')
|
|
||||||
let-env VISUAL = 'emacsclient -t'
|
|
||||||
let-env EDITOR = 'emacsclient -t'
|
|
|
@ -1,392 +0,0 @@
|
||||||
[colors]
|
|
||||||
background = ${xrdb:color0:#22300}
|
|
||||||
background-alt = ${xrdb:color8:#fa400}
|
|
||||||
foreground = ${xrdb:color7:#cdd}
|
|
||||||
foreground-alt = ${xrdb:color15:#eef}
|
|
||||||
black = ${xrdb:color0:#233}
|
|
||||||
red = ${xrdb:color1:#f90}
|
|
||||||
green = ${xrdb:color2:#8c4}
|
|
||||||
yellow = ${xrdb:color3:#fc0}
|
|
||||||
blue = ${xrdb:color4:#0af}
|
|
||||||
magenta = ${xrdb:color5:#e16}
|
|
||||||
cyan = ${xrdb:color6:#098}
|
|
||||||
white = ${xrdb:color7:#cdd}
|
|
||||||
|
|
||||||
[bar/systray]
|
|
||||||
width = 100%
|
|
||||||
height = 25
|
|
||||||
|
|
||||||
radius = 6.0
|
|
||||||
fixed-center = true
|
|
||||||
|
|
||||||
tray-position = right
|
|
||||||
tray-padding = 0
|
|
||||||
|
|
||||||
background = #00000000
|
|
||||||
foreground = ${colors.foreground}
|
|
||||||
|
|
||||||
module-margin-left = 1
|
|
||||||
module-margin-right = 1
|
|
||||||
|
|
||||||
font-0 = DejaVu Sans Mono for Powerline:pixelsize=10;1
|
|
||||||
# font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
|
||||||
# font-2 = siji:pixelsize=10;1
|
|
||||||
# font-3 = FontAwesome:style=Regular:pixelsize=10
|
|
||||||
|
|
||||||
modules-left =
|
|
||||||
modules-center = i3
|
|
||||||
modules-right =
|
|
||||||
|
|
||||||
cursor-click = pointer
|
|
||||||
cursor-scroll = ns-resize
|
|
||||||
|
|
||||||
|
|
||||||
[bar/beep]
|
|
||||||
width = 100%
|
|
||||||
height = 25
|
|
||||||
|
|
||||||
radius = 6.0
|
|
||||||
fixed-center = true
|
|
||||||
|
|
||||||
tray-position = right
|
|
||||||
tray-padding = 2
|
|
||||||
|
|
||||||
background = #00000000
|
|
||||||
foreground = ${colors.foreground}
|
|
||||||
|
|
||||||
module-margin-left = 1
|
|
||||||
module-margin-right = 1
|
|
||||||
|
|
||||||
font-0 = fixed:pixelsize=10;1
|
|
||||||
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
|
||||||
font-2 = siji:pixelsize=10;1
|
|
||||||
font-3 = FontAwesome:style=Regular:pixelsize=10
|
|
||||||
|
|
||||||
modules-left = volume xkeyboard
|
|
||||||
modules-center = date
|
|
||||||
modules-right =
|
|
||||||
|
|
||||||
cursor-click = pointer
|
|
||||||
cursor-scroll = ns-resize
|
|
||||||
|
|
||||||
[bar/boop]
|
|
||||||
width = 100%
|
|
||||||
height = 2%
|
|
||||||
bottom = true
|
|
||||||
radius = 6.0
|
|
||||||
fixed-center = true
|
|
||||||
|
|
||||||
background = #00000000
|
|
||||||
foreground = ${colors.foreground}
|
|
||||||
|
|
||||||
line-size = 0
|
|
||||||
|
|
||||||
line-color = ${colors.blue}
|
|
||||||
|
|
||||||
border-size = 0
|
|
||||||
border-color = #00000000
|
|
||||||
|
|
||||||
padding-left = 0
|
|
||||||
padding-right = 2
|
|
||||||
|
|
||||||
module-margin-left = 1
|
|
||||||
module-margin-right = 2
|
|
||||||
|
|
||||||
font-0 = fixed:pixelsize=10;1
|
|
||||||
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
|
||||||
font-2 = siji:pixelsize=10;1
|
|
||||||
font-3 = FontAwesome:style=Regular:pixelsize=10
|
|
||||||
|
|
||||||
modules-left = airvpn
|
|
||||||
modules-center = i3
|
|
||||||
modules-right = xbacklight wlan eth battery1 powermenu
|
|
||||||
|
|
||||||
cursor-click = pointer
|
|
||||||
cursor-scroll = ns-resize
|
|
||||||
|
|
||||||
[module/xkeyboard]
|
|
||||||
type = internal/xkeyboard
|
|
||||||
blacklist-0 = num lock
|
|
||||||
|
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-prefix-underline = ${colors.magenta}
|
|
||||||
|
|
||||||
label-layout = %layout%
|
|
||||||
label-layout-underline = ${colors.magenta}
|
|
||||||
|
|
||||||
label-indicator-padding = 2
|
|
||||||
label-indicator-margin = 1
|
|
||||||
label-indicator-background = ${colors.magenta}
|
|
||||||
label-indicator-underline = ${colors.magenta}
|
|
||||||
|
|
||||||
[module/spotify]
|
|
||||||
type = custom/script
|
|
||||||
exec-if = pgrep -x spotify
|
|
||||||
exec = echo "$(playerctl metadata xesam:artist) - $(playerctl metadata xesam:title)"
|
|
||||||
|
|
||||||
[module/spotify-prev]
|
|
||||||
type = custom/script
|
|
||||||
exec-if = pgrep -x spotify
|
|
||||||
exec = echo ""
|
|
||||||
click-left = bash -c "playerctl previous"
|
|
||||||
|
|
||||||
[module/spotify-next]
|
|
||||||
type = custom/script
|
|
||||||
exec-if = pgrep -x spotify
|
|
||||||
exec = echo ""
|
|
||||||
click-left = bash -c "playerctl next"
|
|
||||||
|
|
||||||
[module/spotify-play]
|
|
||||||
type = custom/script
|
|
||||||
exec-if = pgrep -x spotify
|
|
||||||
exec = ~/.scripts/spotify-play.out
|
|
||||||
tail = true
|
|
||||||
click-left = bash -c "if [ `cat /home/$USER/.scripts/playstate` = 0 ]; then echo '1'>/home/$USER/.scripts/playstate;else echo '0'>/home/$USER/.scripts/playstate;fi"
|
|
||||||
|
|
||||||
[module/spotify-stop]
|
|
||||||
type = custom/script
|
|
||||||
exec-if = pgrep -x spotify
|
|
||||||
exec = echo ""
|
|
||||||
tail = true
|
|
||||||
click-left = bash -c "playerctl stop && echo '0'>/home/$USER/.scripts/playstate"
|
|
||||||
|
|
||||||
[module/airvpn]
|
|
||||||
type = custom/script
|
|
||||||
exec-if =
|
|
||||||
exec = "if [[ $(ip addr | grep tun) ]]; then echo 'VPN: connected'; else echo 'VPN: disconnectd'; fi"
|
|
||||||
tail = true
|
|
||||||
|
|
||||||
|
|
||||||
[module/i3]
|
|
||||||
type = internal/i3
|
|
||||||
|
|
||||||
pin-workspaces = true
|
|
||||||
|
|
||||||
strip-wsnumbers = true
|
|
||||||
|
|
||||||
index-sort = false
|
|
||||||
|
|
||||||
enable-click = false
|
|
||||||
|
|
||||||
enable-scroll = false
|
|
||||||
|
|
||||||
wrapping-scroll = false
|
|
||||||
|
|
||||||
reverse-scroll = false
|
|
||||||
|
|
||||||
fuzzy-match = true
|
|
||||||
|
|
||||||
ws-icon-0 = 1;
|
|
||||||
ws-icon-1 = 2;
|
|
||||||
ws-icon-2 = 3;
|
|
||||||
ws-icon-3 = 4;
|
|
||||||
ws-icon-4 = 5;
|
|
||||||
ws-icon-5 = 6;
|
|
||||||
ws-icon-6 = 7;
|
|
||||||
ws-icon-7 = 8;
|
|
||||||
ws-icon-8 = 9;
|
|
||||||
ws-icon-default =
|
|
||||||
|
|
||||||
format = <label-state>
|
|
||||||
|
|
||||||
label-mode = %mode%
|
|
||||||
label-mode-padding = 2
|
|
||||||
label-mode-background = ${colors.black}
|
|
||||||
|
|
||||||
label-focused = %name%
|
|
||||||
label-focused-foreground = ${colors.foreground}
|
|
||||||
label-focused-background = ${colors.background}
|
|
||||||
label-focused-underline = ${colors.blue}
|
|
||||||
label-focused-padding = 4
|
|
||||||
|
|
||||||
label-unfocused = %name%
|
|
||||||
label-unfocused-padding = 4
|
|
||||||
|
|
||||||
label-visible = %name%
|
|
||||||
label-visible-underline = ${colors.red}
|
|
||||||
label-visible-padding = 4
|
|
||||||
|
|
||||||
label-urgent = %name%
|
|
||||||
label-urgent-foreground = ${colors.black}
|
|
||||||
label-urgent-background = ${colors.red}
|
|
||||||
label-urgent-padding = 4
|
|
||||||
|
|
||||||
[module/xbacklight]
|
|
||||||
type = internal/xbacklight
|
|
||||||
|
|
||||||
format = <label>
|
|
||||||
label = %percentage%%
|
|
||||||
label-underline = ${colors.yellow}
|
|
||||||
|
|
||||||
[module/backlight-acpi]
|
|
||||||
inherit = module/xbacklight
|
|
||||||
type = internal/backlight
|
|
||||||
card = intel_backlight
|
|
||||||
|
|
||||||
[module/wlan]
|
|
||||||
type = internal/network
|
|
||||||
interface = wlp2s0
|
|
||||||
interval = 3.0
|
|
||||||
|
|
||||||
format-connected = <label-connected>
|
|
||||||
format-connected-underline = ${colors.cyan}
|
|
||||||
label-connected = %essid%
|
|
||||||
|
|
||||||
format-disconnected =
|
|
||||||
;format-disconnected = <label-disconnected>
|
|
||||||
;format-disconnected-underline = ${self.format-connected-underline}
|
|
||||||
;label-disconnected = %ifname% disconnected
|
|
||||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
|
|
||||||
[module/date]
|
|
||||||
type = internal/date
|
|
||||||
interval = 1
|
|
||||||
|
|
||||||
date =
|
|
||||||
date-alt = " %Y-%m-%d"
|
|
||||||
|
|
||||||
time = " %H:%M:%S"
|
|
||||||
time-alt =
|
|
||||||
|
|
||||||
format-prefix =
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-underline = ${colors.magenta}
|
|
||||||
|
|
||||||
label = %date% %time%
|
|
||||||
|
|
||||||
[module/volume]
|
|
||||||
type = internal/volume
|
|
||||||
|
|
||||||
format-volume = <label-volume> <bar-volume>
|
|
||||||
label-volume =
|
|
||||||
label-volume-foreground = ${root.foreground}
|
|
||||||
format-volume-underline = ${colors.green}
|
|
||||||
|
|
||||||
|
|
||||||
format-muted-foreground = ${colors.foreground-alt}
|
|
||||||
label-muted = Muted
|
|
||||||
label-muted-underline = ${colors.red}
|
|
||||||
|
|
||||||
bar-volume-width = 10
|
|
||||||
bar-volume-foreground-0 = ${colors.green}
|
|
||||||
bar-volume-foreground-1 = ${colors.green}
|
|
||||||
bar-volume-foreground-2 = ${colors.green}
|
|
||||||
bar-volume-foreground-3 = ${colors.green}
|
|
||||||
bar-volume-foreground-4 = ${colors.green}
|
|
||||||
bar-volume-foreground-5 = ${colors.yellow}
|
|
||||||
bar-volume-foreground-6 = ${colors.red}
|
|
||||||
bar-volume-gradient = true
|
|
||||||
bar-volume-indicator = |
|
|
||||||
bar-volume-indicator-font = 2
|
|
||||||
bar-volume-fill = ─
|
|
||||||
bar-volume-fill-font = 2
|
|
||||||
bar-volume-empty = ─
|
|
||||||
bar-volume-empty-font = 2
|
|
||||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/battery1]
|
|
||||||
type = internal/battery
|
|
||||||
battery = BAT0
|
|
||||||
adapter = AC0
|
|
||||||
full-at = 98
|
|
||||||
|
|
||||||
format-charging = <animation-charging> <label-charging>
|
|
||||||
format-charging-underline = ${colors.yellow}
|
|
||||||
|
|
||||||
format-discharging = <ramp-capacity> <label-discharging>
|
|
||||||
format-discharging-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
format-full-prefix =
|
|
||||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-full-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
ramp-capacity-0 =
|
|
||||||
ramp-capacity-1 =
|
|
||||||
ramp-capacity-2 =
|
|
||||||
ramp-capacity-3 =
|
|
||||||
ramp-capacity-4 =
|
|
||||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
animation-charging-0 =
|
|
||||||
animation-charging-1 =
|
|
||||||
animation-charging-2 =
|
|
||||||
animation-charging-3 =
|
|
||||||
animation-charging-4 =
|
|
||||||
animation-charging-foreground = ${colors.foreground-alt}
|
|
||||||
animation-charging-framerate = 750
|
|
||||||
|
|
||||||
[module/battery2]
|
|
||||||
type = internal/battery
|
|
||||||
battery = BAT1
|
|
||||||
adapter = ACP0
|
|
||||||
full-at = 98
|
|
||||||
|
|
||||||
format-charging = <animation-charging> <label-charging>
|
|
||||||
format-charging-underline = ${colors.yellow}
|
|
||||||
|
|
||||||
format-discharging = <ramp-capacity> <label-discharging>
|
|
||||||
format-discharging-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
format-full-prefix =
|
|
||||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-full-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
ramp-capacity-0 =
|
|
||||||
ramp-capacity-1 =
|
|
||||||
ramp-capacity-2 =
|
|
||||||
ramp-capacity-3 =
|
|
||||||
ramp-capacity-4 =
|
|
||||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
animation-charging-0 =
|
|
||||||
animation-charging-1 =
|
|
||||||
animation-charging-2 =
|
|
||||||
animation-charging-3 =
|
|
||||||
animation-charging-4 =
|
|
||||||
animation-charging-foreground = ${colors.foreground-alt}
|
|
||||||
animation-charging-framerate = 750
|
|
||||||
|
|
||||||
# [module/powermenu]
|
|
||||||
# type = custom/menu
|
|
||||||
# expand-right = true
|
|
||||||
# format-spacing = 1
|
|
||||||
#
|
|
||||||
# label-open =
|
|
||||||
# label-open-foreground = ${colors.magenta}
|
|
||||||
# label-close = cancel
|
|
||||||
# label-close-foreground = ${colors.magenta}
|
|
||||||
# label-separator = |
|
|
||||||
# label-separator-foreground = ${colors.foreground-alt}
|
|
||||||
#
|
|
||||||
# menu-0-0 = power off
|
|
||||||
# menu-0-0-exec = poweroff
|
|
||||||
# menu-0-1 = reboot
|
|
||||||
# menu-0-1-exec = reboot
|
|
||||||
# menu-0-2 = logout
|
|
||||||
# menu-0-2-exec = dm-tool lock
|
|
||||||
|
|
||||||
;; Power Menu Module
|
|
||||||
[module/powermenu]
|
|
||||||
type = custom/text
|
|
||||||
|
|
||||||
content = aaa
|
|
||||||
content-background = ${colors.magenta}
|
|
||||||
content-foreground = ${colors.magenta}
|
|
||||||
|
|
||||||
click-left = ~/.config/rofi/powermenu/type-1/powermenu.sh
|
|
||||||
click-right = powermenu_t1
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
;screenchange-reload = true
|
|
||||||
;compositing-background = xor
|
|
||||||
;compositing-background = screen
|
|
||||||
;compositing-foreground = source
|
|
||||||
;compositing-border = over
|
|
||||||
|
|
||||||
[global/wm]
|
|
||||||
margin-top = 5
|
|
||||||
margin-bottom = 5
|
|
||||||
|
|
||||||
|
|
|
@ -1,208 +0,0 @@
|
||||||
|
|
||||||
# you can edit this file to change keybindings lines that start with '#' are comments
|
|
||||||
# the syntax is pretty simple. Some examples:
|
|
||||||
#command k (command is executed when k is pressed)
|
|
||||||
#command <C-k> (command is executed when k is pressed while holding control)
|
|
||||||
#command <S-k> (command is executed when k is pressed while holding shift)
|
|
||||||
#command <A-k> (command is executed when k is pressed while holding alt)
|
|
||||||
#command <S-+> (command is executed when = is pressed while holding shift.
|
|
||||||
# Note that <S-=> would not work because of a bug in the command system so
|
|
||||||
# when prefixing non-ascii keys with shift, you have to specify the shift
|
|
||||||
# modified key in addition to the shift modifier)
|
|
||||||
#command <C-S-k> (command is executed when k is pressed while holding control and shift)
|
|
||||||
#command gg (command is executed when g is pressed twice)
|
|
||||||
#command gt (command is executed when g is pressed and then t is pressed)
|
|
||||||
#command g<C-n><S-d>t (command is executed when g is pressed and then n is pressed while holding\
|
|
||||||
# control and then d is pressed while holding shift and then t is pressed)
|
|
||||||
|
|
||||||
|
|
||||||
# ---------- NAVIGATION AND ZOOM ----------
|
|
||||||
|
|
||||||
# Goto the begining of document. If prefixed with a number, it will go to that page.
|
|
||||||
# for example 150gg goes to page 150.
|
|
||||||
goto_begining gg
|
|
||||||
goto_begining <C-<home>>
|
|
||||||
|
|
||||||
# Opens a prompt to enter page number and jump to that page
|
|
||||||
goto_page_with_page_number <home>
|
|
||||||
|
|
||||||
# Goto the end of the document
|
|
||||||
goto_end <end>
|
|
||||||
goto_end <S-g>
|
|
||||||
|
|
||||||
# movement (can be prefixed with a number)
|
|
||||||
move_down <down>
|
|
||||||
move_up <up>
|
|
||||||
move_left <right>
|
|
||||||
move_right <left>
|
|
||||||
move_down j
|
|
||||||
move_up k
|
|
||||||
move_left l
|
|
||||||
move_right h
|
|
||||||
|
|
||||||
# Goto forward for one page width. (can be prefixed with a number)
|
|
||||||
# (note that going forward for one page width is not usually what you want becaue if
|
|
||||||
# the page is larger than the screen you will miss some content. What you usually want is screen_down)
|
|
||||||
next_page <C-<pagedown>>
|
|
||||||
previous_page <C-<pageup>>
|
|
||||||
|
|
||||||
# Go down one screen width (can be prefixed with a number which tells how many screen widths should we go down)
|
|
||||||
screen_down <space>
|
|
||||||
screen_up <S-space>
|
|
||||||
screen_down <pagedown>
|
|
||||||
screen_up <pageup>
|
|
||||||
|
|
||||||
# Goto the next/prev chapter
|
|
||||||
next_chapter gc
|
|
||||||
prev_chapter g<S-c>
|
|
||||||
|
|
||||||
# Goto previous viewing state and delete the current (and future) state(s).
|
|
||||||
pop_state w
|
|
||||||
|
|
||||||
# if we are not at the end of viewing history, goto the next history point
|
|
||||||
next_state <l>
|
|
||||||
# goto the previous history point
|
|
||||||
prev_state <h>
|
|
||||||
prev_state <backspace>
|
|
||||||
next_state <C-<right>>
|
|
||||||
prev_state <C-<left>>
|
|
||||||
|
|
||||||
# Open table of contents.
|
|
||||||
goto_toc t
|
|
||||||
|
|
||||||
# zoom
|
|
||||||
zoom_in <S-+>
|
|
||||||
zoom_in =
|
|
||||||
zoom_out -
|
|
||||||
|
|
||||||
# Automatically set the zoom level and horizontal offset such that the current page is centered horizontally and
|
|
||||||
# it fills the screen width
|
|
||||||
fit_to_page_width <f9>
|
|
||||||
# same as fit_to_page_with but ignores page margins
|
|
||||||
fit_to_page_width_smart <f10>
|
|
||||||
|
|
||||||
# Open a file dialog to select a document.
|
|
||||||
open_document o
|
|
||||||
open_document_embedded <C-o>
|
|
||||||
open_document_embedded_from_current_path <C-S-o>
|
|
||||||
|
|
||||||
# Open a searchable list of previously opened documents.
|
|
||||||
open_prev_doc <S-o>
|
|
||||||
|
|
||||||
|
|
||||||
# ---------- SEARCH ----------
|
|
||||||
|
|
||||||
# search the document.
|
|
||||||
# example: /something (searches the document for 'something')
|
|
||||||
# you can also specify a page range to search:
|
|
||||||
# example: /<110,135>something (searches pages 110 to 135 (inclusive) for 'something')
|
|
||||||
search <C-f>
|
|
||||||
search /
|
|
||||||
|
|
||||||
# this is the same as search.
|
|
||||||
ranged_search r<C-f>
|
|
||||||
ranged_search r/
|
|
||||||
|
|
||||||
# searches the current chapter. This is essentially the same as search but the range prefix is autofilled
|
|
||||||
# with the range of the current lowest level subchapter.
|
|
||||||
chapter_search c<C-f>
|
|
||||||
chapter_search c/
|
|
||||||
|
|
||||||
# Goto the next search item. Can be prefixed with a number which is the same as performing the command n times
|
|
||||||
# for example if we are on the 10th search result and we input 15n, we go to the 25th search result.
|
|
||||||
next_item n
|
|
||||||
# Goto the previous search result. Can be prefixed with a number with similar rules as next_item.
|
|
||||||
previous_item <S-n>
|
|
||||||
|
|
||||||
# ---------- BOOKMARKS ----------
|
|
||||||
# Add a bookmark in the current location (opens a text input where you can specify the bookmark text)
|
|
||||||
add_bookmark b
|
|
||||||
delete_bookmark db
|
|
||||||
|
|
||||||
# Open bookmarks menu of the current document.
|
|
||||||
goto_bookmark gb
|
|
||||||
|
|
||||||
# Open bookmarks menu of all documents.
|
|
||||||
goto_bookmark_g g<S-b>
|
|
||||||
|
|
||||||
# ---------- HIGHLIGHTS ----------
|
|
||||||
# you can select a piece of text and press the `add_highlight` shortcut followed by a symbol (a character from a-z) to highlight
|
|
||||||
# the text
|
|
||||||
add_highlight h
|
|
||||||
# search in highlights of current document
|
|
||||||
goto_highlight gh
|
|
||||||
# search in highlights of all documents
|
|
||||||
goto_highlight_g g<S-h>
|
|
||||||
# click on a highlight and then press the `delete_highlight` shortcut to delete it.
|
|
||||||
delete_highlight dh
|
|
||||||
|
|
||||||
# ---------- MARKS ----------
|
|
||||||
|
|
||||||
# Mark the current location. After pressing the mark button, you must enter a symbol (a letter from a-z or A-Z).
|
|
||||||
# this marks the current location in the file with the entered symbol. Afterwards you will be able to return to
|
|
||||||
# the locations of the marks using goto_mark command.
|
|
||||||
# example: mm (marks the current location in the file with a mark named 'm')
|
|
||||||
set_mark m
|
|
||||||
# Goto a previously set mark. After pressing goto_mark you must enter a symbol associated with a previously set mark.
|
|
||||||
# example: `m (goes to the location of the mark named m)
|
|
||||||
goto_mark `
|
|
||||||
|
|
||||||
|
|
||||||
# ---------- PORTALS ----------
|
|
||||||
# If we are in default state, goto portal state with the current location in document as the portal source
|
|
||||||
# if we are already in the portal state, create the portal with the current location as destination.
|
|
||||||
link p
|
|
||||||
|
|
||||||
# Delete the portal with the closest source to current location
|
|
||||||
delete_link dp
|
|
||||||
|
|
||||||
# Goto the position of the portal with the closest source to current location
|
|
||||||
goto_link <tab>
|
|
||||||
|
|
||||||
# Similar to goto_link, except when prev_state is called, the destination of the link is update to be the state
|
|
||||||
# on which prev_state is called
|
|
||||||
edit_link <S-p>
|
|
||||||
edit_link <S-<tab>>
|
|
||||||
|
|
||||||
# Open/Close the helper window for portals
|
|
||||||
toggle_one_window <f12>
|
|
||||||
|
|
||||||
# ---------- MISC ----------
|
|
||||||
|
|
||||||
# copy selected text
|
|
||||||
copy y
|
|
||||||
|
|
||||||
toggle_fullscreen <f11>
|
|
||||||
|
|
||||||
# Toggles whether we highlight pdf links or not
|
|
||||||
toggle_highlight <f1>
|
|
||||||
|
|
||||||
# open command line
|
|
||||||
command <S-:>
|
|
||||||
|
|
||||||
# seach the selected text using one of the search engines defined using search_url_* settings in prefs.config (* can be any letter between 'a' and 'z')
|
|
||||||
external_search s
|
|
||||||
|
|
||||||
#search_selected_text_in_google_scholar ss
|
|
||||||
#search_selected_text_in_libgen sl
|
|
||||||
|
|
||||||
open_selected_url <S-q>
|
|
||||||
|
|
||||||
toggle_dark_mode <f8>
|
|
||||||
|
|
||||||
# toggle synctex mode. When in synctex mode, right clicking on a pdf launches the corresponding latex page.
|
|
||||||
toggle_synctex <f4>
|
|
||||||
|
|
||||||
# while in mouse drag mode, instead of selecting text you can pan the screen using mouse
|
|
||||||
toggle_mouse_drag_mode <f6>
|
|
||||||
|
|
||||||
# command the move the visual mark to the next/previous line
|
|
||||||
#move_visual_mark_up k
|
|
||||||
#move_visual_mark_down j
|
|
||||||
|
|
||||||
# In visual scroll mode, mouse wheel performs `move_visual_mark_up` and `move_visual_mark_down` commands
|
|
||||||
toggle_visual_scroll <f7>
|
|
||||||
|
|
||||||
toggle_presentation_mode <f5>
|
|
||||||
|
|
||||||
quit q
|
|
|
@ -1,137 +0,0 @@
|
||||||
# (can be 0 or 1) if set, shows a notification on startup if a new version of sioyek is available
|
|
||||||
check_for_updates_on_startup 0
|
|
||||||
|
|
||||||
# The color with which the screen is cleared before rendering the pdf
|
|
||||||
background_color 1.0 1.0 1.0
|
|
||||||
dark_mode_background_color 0.0 0.0 0.0
|
|
||||||
|
|
||||||
# Showing full white text on black background can be irritating for the eye, we can dim the whites a little bit using the contrast option
|
|
||||||
dark_mode_contrast 0.8
|
|
||||||
|
|
||||||
# Highlight color when text is selected using mouse
|
|
||||||
text_highlight_color 1.0 1.0 0.0
|
|
||||||
|
|
||||||
# The color of highlight bar which is displayed when right click is pressed
|
|
||||||
vertical_line_color 0.0 0.0 0.0 0.1
|
|
||||||
|
|
||||||
# Highlight color when text is a search match
|
|
||||||
search_highlight_color 0.0 1.0 0.0
|
|
||||||
|
|
||||||
# Hihglight color for PDF links (note that highlight is off by default
|
|
||||||
# and can only be seen by performing a toggle_highlight command. See keys.config for more details)
|
|
||||||
link_highlight_color 0.0 0.0 1.0
|
|
||||||
|
|
||||||
# Hihglight color for synctex forward search highlights
|
|
||||||
synctex_highlight_color 1.0 0.0 1.0
|
|
||||||
|
|
||||||
# urls to use when executing external_search commands
|
|
||||||
search_url_s https://scholar.google.com/scholar?q=
|
|
||||||
search_url_l http://gen.lib.rus.ec/scimag/?q=
|
|
||||||
search_url_g https://www.google.com/search?q=
|
|
||||||
|
|
||||||
# which search url to choose when middle clicking or shift middle clicking on text (the values are the letters of corresponding search_url_* )
|
|
||||||
# for example if i set `middle_click_search_engine s`, then we use the url associated with `search_url_s` to handle middle click searches
|
|
||||||
middle_click_search_engine s
|
|
||||||
shift_middle_click_search_engine l
|
|
||||||
|
|
||||||
# The factor by which we increase/decrease zoom when performing zoom_in or zoom_out
|
|
||||||
zoom_inc_factor 1.2
|
|
||||||
|
|
||||||
# How many inches we move vertically/horizontally when performing move_* commands
|
|
||||||
vertical_move_amount 1.0
|
|
||||||
horizontal_move_amount 1.0
|
|
||||||
|
|
||||||
# When performing screen_down/screen_up we usually don't move a full screen because it causes the user to lose context
|
|
||||||
# Here we specify the fraction of the screen width by which we move when performing these commands
|
|
||||||
move_screen_percentage 0.5
|
|
||||||
|
|
||||||
# If 0, Table of Contents is shown in a hierarchial tree, otherwise it is a flat list (can improve performance for extremely large table of contents)
|
|
||||||
flat_toc 0
|
|
||||||
|
|
||||||
# If it is 1, when launching the application if we detect multiple monitors, we automatically launch the helper window in second monitor
|
|
||||||
should_use_multiple_monitors 0
|
|
||||||
|
|
||||||
# if the last opened document is empty, load the tutorial pdf instead
|
|
||||||
should_load_tutorial_when_no_other_file 1
|
|
||||||
|
|
||||||
# if it is 0, then we use the previous instance of sioyek when launching a new file.
|
|
||||||
# otherwise a new instance is launched every time we open a new file.
|
|
||||||
should_launch_new_instance 0
|
|
||||||
|
|
||||||
# the command to use when trying to do inverse search into a LaTeX document. Uncomment and provide your own command.
|
|
||||||
# %1 expands to the name of the file and %2 expans to the line number.
|
|
||||||
#inverse_search_command "C:\path\to\vscode\Code.exe" -r -g %1:%2
|
|
||||||
|
|
||||||
# you can specify the exact highlight color for each of 26 different highlight types
|
|
||||||
|
|
||||||
# when moving to the next line using visual marker, this setting specifies the distance of the market to the top of the screen in fractions of screen size
|
|
||||||
visual_mark_next_page_fraction 0.25
|
|
||||||
|
|
||||||
# when moving to the next line using visual marker, this setting determines at which point we move the screen
|
|
||||||
visual_mark_next_page_fraction 0.2
|
|
||||||
|
|
||||||
#Amethyst
|
|
||||||
highlight_color_a 0.94 0.64 1.00
|
|
||||||
#Blue
|
|
||||||
highlight_color_b 0.00 0.46 0.86
|
|
||||||
#Caramel
|
|
||||||
highlight_color_c 0.60 0.25 0.00
|
|
||||||
#Damson
|
|
||||||
highlight_color_d 0.30 0.00 0.36
|
|
||||||
#Ebony
|
|
||||||
highlight_color_e 0.10 0.10 0.10
|
|
||||||
#Forest
|
|
||||||
highlight_color_f 0.00 0.36 0.19
|
|
||||||
#Green
|
|
||||||
highlight_color_g 0.17 0.81 0.28
|
|
||||||
#Honeydew
|
|
||||||
highlight_color_h 1.00 0.80 0.60
|
|
||||||
#Iron
|
|
||||||
highlight_color_i 0.50 0.50 0.50
|
|
||||||
#Jade
|
|
||||||
highlight_color_j 0.58 1.00 0.71
|
|
||||||
#Khaki
|
|
||||||
highlight_color_k 0.56 0.49 0.00
|
|
||||||
#Lime
|
|
||||||
highlight_color_l 0.62 0.80 0.00
|
|
||||||
#Mallow
|
|
||||||
highlight_color_m 0.76 0.00 0.53
|
|
||||||
#Navy
|
|
||||||
highlight_color_n 0.00 0.20 0.50
|
|
||||||
#Orpiment
|
|
||||||
highlight_color_o 1.00 0.64 0.02
|
|
||||||
#Pink
|
|
||||||
highlight_color_p 1.00 0.66 0.73
|
|
||||||
#Quagmire
|
|
||||||
highlight_color_q 0.26 0.40 0.00
|
|
||||||
#Red
|
|
||||||
highlight_color_r 1.00 0.00 0.06
|
|
||||||
#Sky
|
|
||||||
highlight_color_s 0.37 0.95 0.95
|
|
||||||
#Turquoise
|
|
||||||
highlight_color_t 0.00 0.60 0.56
|
|
||||||
#Uranium
|
|
||||||
highlight_color_u 0.88 1.00 0.40
|
|
||||||
#Violet
|
|
||||||
highlight_color_v 0.45 0.04 1.00
|
|
||||||
#Wine
|
|
||||||
highlight_color_w 0.60 0.00 0.00
|
|
||||||
#Xanthin
|
|
||||||
highlight_color_x 1.00 1.00 0.50
|
|
||||||
#Yellow
|
|
||||||
highlight_color_y 1.00 1.00 0.00
|
|
||||||
#Zinnia
|
|
||||||
highlight_color_z 1.00 0.31 0.02
|
|
||||||
|
|
||||||
|
|
||||||
# if set, we display a checkerboard pattern for unrendered pages (by default we display nothing)
|
|
||||||
should_draw_unrendered_pages 0
|
|
||||||
|
|
||||||
# displays an overview of destination when hovering over a link with mouse
|
|
||||||
hover_overview 0
|
|
||||||
|
|
||||||
# Use dark mode by default
|
|
||||||
default_dark_mode 0
|
|
||||||
|
|
||||||
# if set, we sort the bookmarks by their location instead of their creation time
|
|
||||||
sort_bookmarks_by_location 0
|
|
|
@ -1,64 +0,0 @@
|
||||||
format = """
|
|
||||||
[░▒▓](#a3aed2)\
|
|
||||||
[ ](bg:#a3aed2 fg:#090c0c)\
|
|
||||||
[](bg:#769ff0 fg:#a3aed2)\
|
|
||||||
$directory\
|
|
||||||
[](fg:#769ff0 bg:#394260)\
|
|
||||||
$git_branch\
|
|
||||||
$git_status\
|
|
||||||
[](fg:#394260 bg:#212736)\
|
|
||||||
$nodejs\
|
|
||||||
$rust\
|
|
||||||
$golang\
|
|
||||||
$php\
|
|
||||||
[](fg:#212736 bg:#1d2230)\
|
|
||||||
$time\
|
|
||||||
[ ](fg:#1d2230)\
|
|
||||||
\n$character"""
|
|
||||||
|
|
||||||
[directory]
|
|
||||||
style = "fg:#e3e5e5 bg:#769ff0"
|
|
||||||
format = "[ $path ]($style)"
|
|
||||||
truncation_length = 3
|
|
||||||
truncation_symbol = "…/"
|
|
||||||
|
|
||||||
[directory.substitutions]
|
|
||||||
"Documents" = " "
|
|
||||||
"Downloads" = " "
|
|
||||||
"Music" = " "
|
|
||||||
"Pictures" = " "
|
|
||||||
|
|
||||||
[git_branch]
|
|
||||||
symbol = ""
|
|
||||||
style = "bg:#394260"
|
|
||||||
format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)'
|
|
||||||
|
|
||||||
[git_status]
|
|
||||||
style = "bg:#394260"
|
|
||||||
format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)'
|
|
||||||
|
|
||||||
[nodejs]
|
|
||||||
symbol = ""
|
|
||||||
style = "bg:#212736"
|
|
||||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
|
||||||
|
|
||||||
[rust]
|
|
||||||
symbol = ""
|
|
||||||
style = "bg:#212736"
|
|
||||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
|
||||||
|
|
||||||
[golang]
|
|
||||||
symbol = "ﳑ"
|
|
||||||
style = "bg:#212736"
|
|
||||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
|
||||||
|
|
||||||
[php]
|
|
||||||
symbol = ""
|
|
||||||
style = "bg:#212736"
|
|
||||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
|
||||||
|
|
||||||
[time]
|
|
||||||
disabled = false
|
|
||||||
time_format = "%R" # Hour:Minute Format
|
|
||||||
style = "bg:#1d2230"
|
|
||||||
format = '[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)'
|
|
|
@ -1,46 +0,0 @@
|
||||||
[options]
|
|
||||||
font = Hack Nerd Font Monoo 11
|
|
||||||
font = DejaVu Sans Mono for Powerline 11
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
|
|
||||||
# special
|
|
||||||
foreground = #98abb2
|
|
||||||
foreground_bold = #98abb2
|
|
||||||
cursor = #98abb2
|
|
||||||
background = rgba(0,0,0,0.9)
|
|
||||||
|
|
||||||
# black
|
|
||||||
color0 = #000000
|
|
||||||
color8 = #0c0e14
|
|
||||||
|
|
||||||
# red
|
|
||||||
color1 = #e84f4f
|
|
||||||
color9 = #d23d3d
|
|
||||||
|
|
||||||
# green
|
|
||||||
color2 = #00ffaf
|
|
||||||
color10 = #237885
|
|
||||||
|
|
||||||
# yellow
|
|
||||||
color3 = #ffbb24
|
|
||||||
color11 = #f8ec09
|
|
||||||
|
|
||||||
# blue
|
|
||||||
color4 = #007fff
|
|
||||||
color12 = #00c4ff
|
|
||||||
|
|
||||||
# magenta
|
|
||||||
color5 = #8c00fd
|
|
||||||
color13 = #cd00df
|
|
||||||
|
|
||||||
# cyan
|
|
||||||
color6 = #00e8b7
|
|
||||||
color14 = #00d3a7
|
|
||||||
|
|
||||||
# white
|
|
||||||
color7 = #98abb2
|
|
||||||
color15 = #c0bfbc
|
|
||||||
|
|
|
@ -1,173 +0,0 @@
|
||||||
--[[
|
|
||||||
#=====================================================================================
|
|
||||||
# Date : package-date
|
|
||||||
# Author : Nicola Bicocchi
|
|
||||||
# Version : package-version
|
|
||||||
# License : Distributed under the terms of GNU GPL version 2 or later
|
|
||||||
#======================================================================================
|
|
||||||
# CONKY
|
|
||||||
# For commands in conky.config section:
|
|
||||||
# http://conky.sourceforge.net/config_settings.html
|
|
||||||
#
|
|
||||||
# For commands in conky.text section:
|
|
||||||
# http://conky.sourceforge.net/variables.html
|
|
||||||
#
|
|
||||||
# A PDF with all variables is provided
|
|
||||||
#=====================================================================================
|
|
||||||
# FONTS
|
|
||||||
# To avoid copyright infringements you will have to download
|
|
||||||
# and install the fonts yourself sometimes.
|
|
||||||
#=====================================================================================
|
|
||||||
# GENERAL INFO ABOUT FONTS
|
|
||||||
# Go and look for a nice font on sites like http://www.dafont.com/
|
|
||||||
# Download and unzip - double click the font to install it (font-manager must be installed)
|
|
||||||
# No font-manager then put fonts in ~/.fonts
|
|
||||||
# Change the font name in the conky
|
|
||||||
# The name can be known with a command in the terminal: fc-list | grep "part of name"
|
|
||||||
# Change width and height of the conky according to font
|
|
||||||
# Reboot your system or fc-cache -fv in terminal
|
|
||||||
# Enjoy
|
|
||||||
#=====================================================================================
|
|
||||||
]]
|
|
||||||
|
|
||||||
conky.config = {
|
|
||||||
|
|
||||||
--Various settings
|
|
||||||
|
|
||||||
background = true, -- forked to background
|
|
||||||
cpu_avg_samples = 2, -- The number of samples to average for CPU monitoring.
|
|
||||||
diskio_avg_samples = 10, -- The number of samples to average for disk I/O monitoring.
|
|
||||||
double_buffer = true, -- Use the Xdbe extension? (eliminates flicker)
|
|
||||||
if_up_strictness = 'address', -- how strict if testing interface is up - up, link or address
|
|
||||||
net_avg_samples = 2, -- The number of samples to average for net data
|
|
||||||
no_buffers = true, -- Subtract (file system) buffers from used memory?
|
|
||||||
temperature_unit = 'celsius', -- fahrenheit or celsius
|
|
||||||
text_buffer_size = 2048, -- size of buffer for display of content of large variables - default 256
|
|
||||||
update_interval = 2, -- update interval
|
|
||||||
imlib_cache_size = 0, -- disable image cache to get a new spotify cover per song
|
|
||||||
|
|
||||||
|
|
||||||
--Placement
|
|
||||||
|
|
||||||
alignment = 'top_right', -- top_left,top_middle,top_right,bottom_left,bottom_middle,bottom_right,
|
|
||||||
-- middle_left,middle_middle,middle_right,none
|
|
||||||
--Arch Duoscreen
|
|
||||||
--gap_x = -1910,
|
|
||||||
gap_x = 15, -- pixels between right or left border
|
|
||||||
gap_y = 0, -- pixels between bottom or left border
|
|
||||||
minimum_height = 1000, -- minimum height of window
|
|
||||||
minimum_width = 500, -- minimum width of window
|
|
||||||
maximum_width = 600, -- maximum width of window
|
|
||||||
|
|
||||||
--Graphical
|
|
||||||
|
|
||||||
border_inner_margin = 10, -- margin between border and text
|
|
||||||
border_outer_margin = 10, -- margin between border and edge of window
|
|
||||||
border_width = 0, -- border width in pixels
|
|
||||||
default_bar_width = 0, -- default is 0 - full width
|
|
||||||
default_bar_height = 25, -- default is 6
|
|
||||||
default_gauge_height = 25, -- default is 25
|
|
||||||
default_gauge_width = 0, -- default is 40
|
|
||||||
default_graph_height = 80, -- default is 25
|
|
||||||
default_graph_width = 0, -- default is 0 - full width
|
|
||||||
default_shade_color = '#000000', -- default shading colour
|
|
||||||
default_outline_color = '#000000', -- default outline colour
|
|
||||||
draw_borders = false, -- draw borders around text
|
|
||||||
draw_graph_borders = true, -- draw borders around graphs
|
|
||||||
draw_shades = false, -- draw shades
|
|
||||||
draw_outline = false, -- draw outline
|
|
||||||
stippled_borders = 0, -- dashing the border
|
|
||||||
|
|
||||||
--Textual
|
|
||||||
|
|
||||||
extra_newline = false, -- extra newline at the end - for asesome's wiboxes
|
|
||||||
format_human_readable = true, -- KiB, MiB rather then number of bytes
|
|
||||||
font = 'Roboto Mono:size=15', -- font for complete conky unless in code defined
|
|
||||||
max_text_width = 0, -- 0 will make sure line does not get broken if width too smal
|
|
||||||
max_user_text = 16384, -- max text in conky default 16384
|
|
||||||
override_utf8_locale = true, -- force UTF8 requires xft
|
|
||||||
short_units = true, -- shorten units from KiB to k
|
|
||||||
top_name_width = 21, -- width for $top name value default 15
|
|
||||||
top_name_verbose = false, -- If true, top name shows the full command line of each process - Default value is false.
|
|
||||||
uppercase = false, -- uppercase or not
|
|
||||||
use_spacer = 'none', -- adds spaces around certain objects to align - default none
|
|
||||||
use_xft = true, -- xft font - anti-aliased font
|
|
||||||
xftalpha = 1, -- alpha of the xft font - between 0-1
|
|
||||||
|
|
||||||
--Windows
|
|
||||||
|
|
||||||
own_window = true, -- create your own window to draw
|
|
||||||
own_window_argb_value = 100, -- real transparency - composite manager required 0-255
|
|
||||||
own_window_argb_visual = true, -- use ARGB - composite manager required
|
|
||||||
own_window_colour = '#000000', -- set colour if own_window_transparent no
|
|
||||||
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', -- if own_window true - just hints - own_window_type sets it
|
|
||||||
own_window_transparent = false, -- if own_window_argb_visual is true sets background opacity 0%
|
|
||||||
own_window_title = 'system_conky', -- set the name manually - default conky "hostname"
|
|
||||||
own_window_type = 'normal', -- if own_window true options are: normal/override/dock/desktop/panel
|
|
||||||
|
|
||||||
|
|
||||||
--Colours
|
|
||||||
default_color = '#D9FFE2',
|
|
||||||
color1 = '#FF0000',
|
|
||||||
color2 = '#3E5570',
|
|
||||||
color3 = '#CCCCCC',
|
|
||||||
color4 = '#BBBBBB',
|
|
||||||
color5 = '#C0FF00',
|
|
||||||
color6 = '#FFFFFF',
|
|
||||||
|
|
||||||
--Signal Colours
|
|
||||||
color7 = '#C0FF00', --green
|
|
||||||
color8 = '#FFA726', --orange
|
|
||||||
color9 = '#F1544B', --firebrick
|
|
||||||
};
|
|
||||||
|
|
||||||
conky.text = [[
|
|
||||||
${color6}${font Roboto:size=140}${alignc}${time %H}:${time %M}${font}
|
|
||||||
|
|
||||||
${color6}${font Roboto:size=25}${alignc}${time %A} ${time %B} ${time %e}, ${time %Y}${font}
|
|
||||||
|
|
||||||
${color5}${font Roboto:style=Bold:size=17}S Y S T E M ${hr 2}${font}
|
|
||||||
${color6}Hostname:${color}${alignr}${nodename}
|
|
||||||
${color6}OS:${color}${alignr}${texeci 3600 lsb_release -d | awk '{$1=""; print $0}'}
|
|
||||||
${color6}Kernel:${color}${alignr}${kernel}
|
|
||||||
${color6}Uptime:${color}${alignr}${uptime}
|
|
||||||
${color6}Processes:${color}${alignr}${processes}
|
|
||||||
|
|
||||||
${color5}${font Roboto:style=Bold:size=17}C P U ${hr 2}${font}
|
|
||||||
${color6}CPU Frequency:${color}${alignr}${freq}MHz
|
|
||||||
${color6}CPU Temperature:${color}${alignr}${texeci 30 sensors | grep "Package id 0" | cut -d ':' -f 2 | cut -d '(' -f 1 | tr -d ' '}
|
|
||||||
${color6}CPU Usage:${color}${alignr}${cpu}%
|
|
||||||
${cpugraph cpu0}
|
|
||||||
${color6}Top Processes ${alignr}${offset -40}PID ${alignr}${offset -20}CPU% ${alignr}Mem%
|
|
||||||
${color}${top name 1} ${alignr}${offset -75}${top pid 1}${alignr}${offset -45}${top cpu 1}${alignr}${top mem 1}
|
|
||||||
${color}${top name 2} ${alignr}${offset -75}${top pid 2}${alignr}${offset -45}${top cpu 2}${alignr}${top mem 2}
|
|
||||||
${color}${top name 3} ${alignr}${offset -75}${top pid 3}${alignr}${offset -45}${top cpu 3}${alignr}${top mem 3}
|
|
||||||
|
|
||||||
${color5}${font Roboto:style=Bold:size=17}M E M O R Y ${hr 2}${font}
|
|
||||||
${color6}Swap Usage:${color}${alignr}${swap}/${swapmax}
|
|
||||||
${color6}Memory Usage:${color}${alignr}${mem}/${memmax}
|
|
||||||
${memgraph}
|
|
||||||
${color6}Top Processes ${alignr}${offset -40}PID ${alignr}${offset -20}CPU% ${alignr}Mem%
|
|
||||||
${color}${top_mem name 1} ${alignr}${offset -75}${top_mem pid 1}${alignr}${offset -45}${top_mem cpu 1}${alignr}${top_mem mem 1}
|
|
||||||
${color}${top_mem name 2} ${alignr}${offset -75}${top_mem pid 2}${alignr}${offset -45}${top_mem cpu 2}${alignr}${top_mem mem 2}
|
|
||||||
${color}${top_mem name 3} ${alignr}${offset -75}${top_mem pid 3}${alignr}${offset -45}${top_mem cpu 3}${alignr}${top_mem mem 3}
|
|
||||||
|
|
||||||
${color5}${font Roboto:style=Bold:size=17}D I S K ${hr 2}${font}
|
|
||||||
${color6}Disk Usage:${color}${alignr}${fs_used /}/${fs_size /}
|
|
||||||
${color6}IO Read / Write:${color}${alignr}${diskio_read /dev/nvme0n1p2} / ${diskio_write /dev/nvme0n1p2}
|
|
||||||
${diskiograph_read nvme0n1p2}
|
|
||||||
${diskiograph_write nvme0n1p2}
|
|
||||||
${color6}Top Processes ${alignr}${offset -40}PID ${alignr}${offset -20}CPU% ${alignr}Mem%
|
|
||||||
${color}${top_io name 1} ${alignr}${offset -75}${top_io pid 1}${alignr}${offset -45}${top_io cpu 1}${alignr}${top_io mem 1}
|
|
||||||
${color}${top_io name 2} ${alignr}${offset -75}${top_io pid 2}${alignr}${offset -45}${top_io cpu 2}${alignr}${top_io mem 2}
|
|
||||||
${color}${top_io name 3} ${alignr}${offset -75}${top_io pid 3}${alignr}${offset -45}${top_io cpu 3}${alignr}${top_io mem 3}
|
|
||||||
|
|
||||||
${color5}${font Roboto:style=Bold:size=17}N E T W O R K ${hr 2}${font}
|
|
||||||
${color6}Default Gateway:${color}${alignr}${gw_ip}
|
|
||||||
${color6}Internal IP Address:${color}${alignr}${addrs enp6s0}
|
|
||||||
${color6}External IP Address:${color}${alignr}${texeci 3600 wget -q -O- https://ipecho.net/plain}
|
|
||||||
${color6}Upload / Download Total:${color}${alignr}${totalup enp6s0} / ${totaldown enp6s0}
|
|
||||||
${color6}Upload / Download Speed:${color}${alignr}${upspeed enp6s0} / ${downspeed enp6s0}
|
|
||||||
${upspeedgraph enp6s0}
|
|
||||||
${downspeedgraph enp6s0}
|
|
||||||
]];
|
|
|
@ -1,80 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# vim: ft=sh:ts=4:sw=4:et:ai:cin
|
|
||||||
|
|
||||||
conky_bin="conky"
|
|
||||||
config_file=$(dirname $0)/"conky.conf"
|
|
||||||
magic_id=$(md5sum "$config_file" | cut -c -12)
|
|
||||||
toggle_mode="N"
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
echo "USAGE: $(basename $0) [-t] [-p]"
|
|
||||||
}
|
|
||||||
|
|
||||||
start_conky() {
|
|
||||||
"$conky_bin" --daemonize --quiet --config="$config_file" -- "$magic_id"
|
|
||||||
return $?
|
|
||||||
}
|
|
||||||
|
|
||||||
stop_conky() {
|
|
||||||
pkill --signal kill --full "conky.*\s-- $magic_id"
|
|
||||||
return $?
|
|
||||||
}
|
|
||||||
|
|
||||||
toggle_conky() {
|
|
||||||
if stop_conky; then
|
|
||||||
true
|
|
||||||
else
|
|
||||||
start_conky
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
restart_conky() {
|
|
||||||
stop_conky
|
|
||||||
sleep 1
|
|
||||||
start_conky
|
|
||||||
}
|
|
||||||
|
|
||||||
while getopts "tp:h" opt; do
|
|
||||||
case $opt in
|
|
||||||
t) # toggle mode on
|
|
||||||
toggle_mode="Y"
|
|
||||||
;;
|
|
||||||
p) # path to conky binary
|
|
||||||
conky_bin=$(realpath -- "$OPTARG")
|
|
||||||
if [ -x "$conky_bin" ]; then
|
|
||||||
echo "Conky binary path: ${conky_bin}"
|
|
||||||
else
|
|
||||||
echo "ERROR: ${conky_bin} is not executable, path to Conky binary needed\n" >&2
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
h) # help
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
\?)
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift "$((OPTIND - 1))"
|
|
||||||
|
|
||||||
if [ "$toggle_mode" == "Y" ]; then
|
|
||||||
toggle_conky
|
|
||||||
else
|
|
||||||
restart_conky
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
[core]
|
||||||
|
pager = delta
|
||||||
|
|
||||||
|
[interactive]
|
||||||
|
diffFilter = delta --color-only
|
||||||
|
|
||||||
|
[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
|
|
@ -1,18 +0,0 @@
|
||||||
u:/home/tuan/Documents/Uni/Studium
|
|
||||||
p:/home/tuan/Documents/Protokolle/FSE
|
|
||||||
o:/home/tuan/.dotfiles/config
|
|
||||||
m:/run/media/tuan
|
|
||||||
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/.syncthing/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte/04-5G_IANA/03-demonstration_23-10-31/state 24-01-22/5g-uulm-network-monitoring
|
|
||||||
e:/home/tuan/Documents/CTF/TryHackMe/Ice/2_Recon
|
|
||||||
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
|
|
|
@ -1,3 +0,0 @@
|
||||||
#back-button, #forward-button, #page-action-buttons{
|
|
||||||
display:none;
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
[Install4F96D1932A9F858E]
|
|
||||||
Default=2x4tnepw.default
|
|
||||||
Locked=1
|
|
||||||
|
|
||||||
[Profile0]
|
|
||||||
Name=default
|
|
||||||
IsRelative=1
|
|
||||||
Path=2x4tnepw.default
|
|
||||||
Default=1
|
|
||||||
|
|
||||||
[General]
|
|
||||||
StartWithLastProfile=1
|
|
||||||
Version=2
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
#!/usr/bin/env nu
|
|
||||||
|
|
||||||
let zellij_session_table = (zellij ls | lines);
|
|
||||||
let zellij_session_count = ($zellij_session_table | length);
|
|
||||||
|
|
||||||
if $zellij_session_count == 0 {
|
|
||||||
zellij
|
|
||||||
} else if $zellij_session_count == 1 {
|
|
||||||
zellij attach
|
|
||||||
} else {
|
|
||||||
let prompt = $" zellij sessions:
|
|
||||||
|
|
||||||
($zellij_session_table|table)
|
|
||||||
|
|
||||||
Choose session 0-($zellij_session_count - 1): ";
|
|
||||||
|
|
||||||
let user_input = (input $"($prompt)");
|
|
||||||
|
|
||||||
try {
|
|
||||||
"Into Try"
|
|
||||||
let user_input = ($user_input | into int);
|
|
||||||
"Converted"
|
|
||||||
$"User Input: ($user_input)";
|
|
||||||
$"Threshold: 0-($zellij_session_count - 0)";
|
|
||||||
$"UserInput in Threshold? (0 < $user_input or $user_input < $zellij_session_count - 1)"
|
|
||||||
if (0 < $user_input or $user_input < $zellij_session_count - 1) {
|
|
||||||
"Valid Input"
|
|
||||||
let table_entry = ($zellij_session_table | select $user_input);
|
|
||||||
zellij attach $table_entry;
|
|
||||||
} else {
|
|
||||||
"Invalid Input"
|
|
||||||
zellij;
|
|
||||||
}
|
|
||||||
} catch {
|
|
||||||
"Catch"
|
|
||||||
zellij;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,606 +0,0 @@
|
||||||
#! perl -w
|
|
||||||
# Author: Bert Muennich
|
|
||||||
# Website: http://www.github.com/muennich/urxvt-perls
|
|
||||||
# License: GPLv2
|
|
||||||
|
|
||||||
# Use keyboard shortcuts to select and copy text.
|
|
||||||
|
|
||||||
# Usage: put the following lines in your .Xdefaults/.Xresources:
|
|
||||||
# URxvt.perl-ext-common: ...,keyboard-select
|
|
||||||
# URxvt.keysym.M-Escape: perl:keyboard-select:activate
|
|
||||||
# The following line overwrites the default Meta-s binding and allows to
|
|
||||||
# activate keyboard-select directly in backward search mode:
|
|
||||||
# URxvt.keysym.M-s: perl:keyboard-select:search
|
|
||||||
|
|
||||||
# Use Meta-Escape to activate selection mode, then use the following keys:
|
|
||||||
# h/j/k/l: Move cursor left/down/up/right (also with arrow keys)
|
|
||||||
# g/G/0/^/$/H/M/L/f/F/;/,/w/W/b/B/e/E: More vi-like cursor movement keys
|
|
||||||
# '/'/?: Start forward/backward search
|
|
||||||
# n/N: Repeat last search, N: in reverse direction
|
|
||||||
# Ctrl-f/b: Scroll down/up one screen
|
|
||||||
# Ctrl-d/u: Scroll down/up half a screen
|
|
||||||
# v/V/Ctrl-v: Toggle normal/linewise/blockwise selection
|
|
||||||
# y/Return: Copy selection to primary buffer, Return: quit afterwards
|
|
||||||
# Y: Copy selected lines to primary buffer or cursor line and quit
|
|
||||||
# q/Escape: Quit keyboard selection mode
|
|
||||||
|
|
||||||
# Options:
|
|
||||||
# URxvt.keyboard-select.clipboard: If true, copy to clipboard too
|
|
||||||
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
sub on_start{
|
|
||||||
my ($self) = @_;
|
|
||||||
|
|
||||||
$self->{clipboard} = $self->x_resource_boolean('keyboard-select.clipboard');
|
|
||||||
|
|
||||||
$self->{patterns}{'w'} = qr/\w[^\w\s]|\W\w|\s\S/;
|
|
||||||
$self->{patterns}{'W'} = qr/\s\S/;
|
|
||||||
$self->{patterns}{'b'} = qr/.*(?:\w[^\w\s]|\W\w|\s\S)/;
|
|
||||||
$self->{patterns}{'B'} = qr/.*\s\S/;
|
|
||||||
$self->{patterns}{'e'} = qr/[^\w\s](?=\w)|\w(?=\W)|\S(?=\s|$)/;
|
|
||||||
$self->{patterns}{'E'} = qr/\S(?=\s|$)/;
|
|
||||||
|
|
||||||
()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub on_action {
|
|
||||||
my ($self, $action) = @_;
|
|
||||||
|
|
||||||
on_user_command($self, "keyboard-select:" . $action);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub on_user_command {
|
|
||||||
my ($self, $cmd) = @_;
|
|
||||||
|
|
||||||
if (not $self->{active}) {
|
|
||||||
if ($cmd eq 'keyboard-select:activate') {
|
|
||||||
activate($self);
|
|
||||||
} elsif ($cmd eq 'keyboard-select:search') {
|
|
||||||
activate($self, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub key_press {
|
|
||||||
my ($self, $event, $keysym, $char) = @_;
|
|
||||||
my $key = chr($keysym);
|
|
||||||
|
|
||||||
if (lc($key) eq 'c' && $event->{state} & urxvt::ControlMask) {
|
|
||||||
deactivate($self);
|
|
||||||
} elsif ($self->{search}) {
|
|
||||||
if ($keysym == 0xff1b) {
|
|
||||||
if ($self->{search_mode}) {
|
|
||||||
deactivate($self);
|
|
||||||
} else {
|
|
||||||
$self->{search} = '';
|
|
||||||
status_area($self);
|
|
||||||
}
|
|
||||||
} elsif ($keysym == 0xff08) {
|
|
||||||
$self->{search} = substr($self->{search}, 0, -1);
|
|
||||||
if (not $self->{search} and $self->{search_mode}) {
|
|
||||||
deactivate($self);
|
|
||||||
} else {
|
|
||||||
status_area($self);
|
|
||||||
}
|
|
||||||
} elsif ($keysym == 0xff0d ||
|
|
||||||
(lc($key) eq 'm' && $event->{state} & urxvt::ControlMask)) {
|
|
||||||
my $txt = substr($self->{search}, 1);
|
|
||||||
if ($txt) {
|
|
||||||
$self->{pattern} = ($txt =~ m/[[:upper:]]/) ? qr/\Q$txt\E/ :
|
|
||||||
qr/\Q$txt\E/i;
|
|
||||||
} elsif ($self->{pattern}) {
|
|
||||||
delete $self->{pattern};
|
|
||||||
}
|
|
||||||
$self->{search} = '';
|
|
||||||
$self->screen_cur($self->{srhcr}, $self->{srhcc});
|
|
||||||
if (not find_next($self)) {
|
|
||||||
if ($self->{search_mode}) {
|
|
||||||
deactivate($self);
|
|
||||||
} else {
|
|
||||||
status_area($self);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elsif (length($char) > 0) {
|
|
||||||
$self->{search} .= $self->locale_decode($char);
|
|
||||||
my $txt = substr($self->{search}, 1);
|
|
||||||
if ($txt) {
|
|
||||||
$self->{pattern} = ($txt =~ m/[[:upper:]]/) ? qr/\Q$txt\E/ :
|
|
||||||
qr/\Q$txt\E/i;
|
|
||||||
} elsif ($self->{pattern}) {
|
|
||||||
delete $self->{pattern};
|
|
||||||
}
|
|
||||||
$self->screen_cur($self->{srhcr}, $self->{srhcc});
|
|
||||||
find_next($self);
|
|
||||||
status_area($self);
|
|
||||||
}
|
|
||||||
} elsif ($self->{move_to}) {
|
|
||||||
if ($keysym == 0xff1b) {
|
|
||||||
$self->{move_to} = 0;
|
|
||||||
status_area($self);
|
|
||||||
} elsif (length($char) > 0) {
|
|
||||||
$self->{move_to} = 0;
|
|
||||||
$self->{patterns}{'f-1'} = qr/^.*\Q$key\E/;
|
|
||||||
$self->{patterns}{'f+1'} = qr/^.+?\Q$key\E/;
|
|
||||||
move_to($self, ';');
|
|
||||||
status_area($self);
|
|
||||||
}
|
|
||||||
} elsif ($keysym == 0xff1b || lc($key) eq 'q') {
|
|
||||||
deactivate($self);
|
|
||||||
} elsif (lc($key) eq 'y' || $keysym == 0xff0d ||
|
|
||||||
(lc($key) eq 'm' && $event->{state} & urxvt::ControlMask)) {
|
|
||||||
my $quit = 0;
|
|
||||||
if ($key eq 'Y' && $self->{select} ne 'l') {
|
|
||||||
$quit = !$self->{select};
|
|
||||||
toggle_select($self, 'l');
|
|
||||||
}
|
|
||||||
if ($self->{select}) {
|
|
||||||
my ($br, $bc, $er, $ec) = calc_span($self);
|
|
||||||
$ec = $self->line($er)->l if $self->{select} eq 'l';
|
|
||||||
$self->selection_beg($br, $bc);
|
|
||||||
$self->selection_end($er, $ec);
|
|
||||||
$self->selection_make($event->{time}, $self->{select} eq 'b');
|
|
||||||
if ($self->{clipboard}) {
|
|
||||||
$self->selection($self->selection(), 1);
|
|
||||||
$self->selection_grab($event->{time}, 1);
|
|
||||||
}
|
|
||||||
if (lc($key) eq 'y') {
|
|
||||||
$self->selection_beg(1, 0);
|
|
||||||
$self->selection_end(1, 0);
|
|
||||||
$self->{select} = '';
|
|
||||||
status_area($self);
|
|
||||||
$self->want_refresh();
|
|
||||||
} else {
|
|
||||||
$quit = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($quit) {
|
|
||||||
deactivate($self);
|
|
||||||
}
|
|
||||||
} elsif ($key eq 'V') {
|
|
||||||
toggle_select($self, 'l');
|
|
||||||
} elsif ($key eq 'v') {
|
|
||||||
if ($event->{state} & urxvt::ControlMask) {
|
|
||||||
toggle_select($self, 'b');
|
|
||||||
} else {
|
|
||||||
toggle_select($self, 'n');
|
|
||||||
}
|
|
||||||
} elsif ($key eq 'k' || $keysym == 0xff52) {
|
|
||||||
move_cursor($self, 'k');
|
|
||||||
} elsif ($key eq 'j' || $keysym == 0xff54) {
|
|
||||||
move_cursor($self, 'j');
|
|
||||||
} elsif ($key eq 'h' || $keysym == 0xff51) {
|
|
||||||
move_cursor($self, 'h');
|
|
||||||
} elsif ($key eq 'l' || $keysym == 0xff53) {
|
|
||||||
move_cursor($self, 'l');
|
|
||||||
} elsif ($keysym == 0xff57) {
|
|
||||||
move_cursor($self, '$');
|
|
||||||
} elsif ($keysym == 0xff50) {
|
|
||||||
move_cursor($self, '^');
|
|
||||||
} elsif ('gG0^$HML' =~ m/\Q$key\E/ ||
|
|
||||||
('fbdu' =~ m/\Q$key\E/ && $event->{state} & urxvt::ControlMask)) {
|
|
||||||
move_cursor($self, $key);
|
|
||||||
} elsif (lc($key) eq 'f') {
|
|
||||||
$self->{move_to} = 1;
|
|
||||||
$self->{move_dir} = $key eq 'F' ? -1 : 1;
|
|
||||||
status_area($self, $key);
|
|
||||||
} elsif (';,wWbBeE' =~ m/\Q$key\E/) {
|
|
||||||
move_to($self, $key);
|
|
||||||
} elsif ($key eq '/' || $key eq '?') {
|
|
||||||
$self->{search} = $key;
|
|
||||||
$self->{search_dir} = $key eq '?' ? -1 : 1;
|
|
||||||
($self->{srhcr}, $self->{srhcc}) = $self->screen_cur();
|
|
||||||
status_area($self);
|
|
||||||
} elsif (lc($key) eq 'n') {
|
|
||||||
find_next($self, $self->{search_dir} * ($key eq 'N' ? -1 : 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub move_cursor {
|
|
||||||
my ($self, $key) = @_;
|
|
||||||
my ($cr, $cc) = $self->screen_cur();
|
|
||||||
my $line = $self->line($cr);
|
|
||||||
|
|
||||||
if ($key eq 'k' && $line->beg > $self->top_row) {
|
|
||||||
$cr = $line->beg - 1;
|
|
||||||
} elsif ($key eq 'j' && $line->end < $self->nrow - 1) {
|
|
||||||
$cr = $line->end + 1;
|
|
||||||
} elsif ($key eq 'h' && $self->{offset} > 0) {
|
|
||||||
$self->{offset} = $line->offset_of($cr, $cc) - 1;
|
|
||||||
$self->{dollar} = 0;
|
|
||||||
} elsif ($key eq 'l' && $self->{offset} < $line->l - 1) {
|
|
||||||
++$self->{offset};
|
|
||||||
} elsif ($key eq 'f' || $key eq 'd') {
|
|
||||||
my $vs = $self->view_start() +
|
|
||||||
($key eq 'd' ? $self->nrow / 2 : $self->nrow - 1);
|
|
||||||
$vs = 0 if $vs > 0;
|
|
||||||
$cr += $vs - $self->view_start($vs);
|
|
||||||
} elsif ($key eq 'b' || $key eq 'u') {
|
|
||||||
my $vs = $self->view_start() -
|
|
||||||
($key eq 'u' ? $self->nrow / 2 : $self->nrow - 1);
|
|
||||||
$vs = $self->top_row if $vs < $self->top_row;
|
|
||||||
$cr += $vs - $self->view_start($vs);
|
|
||||||
} elsif ($key eq 'g') {
|
|
||||||
($cr, $self->{offset}) = ($self->top_row, 0);
|
|
||||||
$self->{dollar} = 0;
|
|
||||||
} elsif ($key eq 'G') {
|
|
||||||
($cr, $self->{offset}) = ($self->nrow - 1, 0);
|
|
||||||
$self->{dollar} = 0;
|
|
||||||
} elsif ($key eq '0') {
|
|
||||||
$self->{offset} = 0;
|
|
||||||
$self->{dollar} = 0;
|
|
||||||
} elsif ($key eq '^') {
|
|
||||||
my $ltxt = $self->special_decode($line->t);
|
|
||||||
while ($ltxt =~ s/^( *)\t/$1 . " " x (8 - length($1) % 8)/e) {}
|
|
||||||
$self->{offset} = $ltxt =~ m/^ +/ ? $+[0] : 0;
|
|
||||||
$self->{dollar} = 0;
|
|
||||||
} elsif ($key eq '$') {
|
|
||||||
my $co = $line->offset_of($cr, $cc);
|
|
||||||
$self->{dollar} = $co + 1;
|
|
||||||
$self->{offset} = $line->l - 1;
|
|
||||||
} elsif ($key eq 'H') {
|
|
||||||
$cr = $self->view_start();
|
|
||||||
} elsif ($key eq 'M') {
|
|
||||||
$cr = $self->view_start() + $self->nrow / 2;
|
|
||||||
} elsif ($key eq 'L') {
|
|
||||||
$cr = $self->view_start() + $self->nrow - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
$line = $self->line($cr);
|
|
||||||
$cc = $self->{dollar} || $self->{offset} >= $line->l ? $line->l - 1 :
|
|
||||||
$self->{offset};
|
|
||||||
$self->screen_cur($line->coord_of($cc));
|
|
||||||
|
|
||||||
status_area($self);
|
|
||||||
$self->want_refresh();
|
|
||||||
|
|
||||||
()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub move_to {
|
|
||||||
my ($self, $key) = @_;
|
|
||||||
my ($cr, $cc) = $self->screen_cur();
|
|
||||||
my $line = $self->line($cr);
|
|
||||||
my $offset = $self->{offset};
|
|
||||||
my ($dir, $pattern);
|
|
||||||
my ($wrap, $found) = (0, 0);
|
|
||||||
|
|
||||||
if ($key eq ';' || $key eq ',') {
|
|
||||||
$dir = $self->{move_dir} * ($key eq ',' ? -1 : 1);
|
|
||||||
$pattern = $self->{patterns}{sprintf('f%+d', $dir)};
|
|
||||||
return if not $pattern;
|
|
||||||
} else {
|
|
||||||
if (lc($key) eq 'b') {
|
|
||||||
$dir = -1;
|
|
||||||
} else {
|
|
||||||
$dir = 1;
|
|
||||||
++$offset if lc($key) eq 'e';
|
|
||||||
}
|
|
||||||
$pattern = $self->{patterns}{$key};
|
|
||||||
$wrap = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($dir > 0) {
|
|
||||||
NEXTDOWN: my $text = substr($line->t, $offset);
|
|
||||||
if ($text =~ m/$pattern/) {
|
|
||||||
$offset += $+[0] - 1;
|
|
||||||
$found = 1;
|
|
||||||
} elsif ($wrap && $line->end + 1 < $self->nrow) {
|
|
||||||
$cr = $line->end + 1;
|
|
||||||
$line = $self->line($cr);
|
|
||||||
$offset = 0;
|
|
||||||
if (lc($key) eq 'e') {
|
|
||||||
goto NEXTDOWN;
|
|
||||||
} else {
|
|
||||||
$found = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elsif ($dir < 0) {
|
|
||||||
NEXTUP: my $text = substr($line->t, 0, $offset);
|
|
||||||
if ($text =~ m/$pattern/) {
|
|
||||||
$offset += $+[0] - length($text) - 1;
|
|
||||||
$found = 1;
|
|
||||||
} elsif ($wrap) {
|
|
||||||
if ($offset > 0) {
|
|
||||||
$offset = 0;
|
|
||||||
$found = 1;
|
|
||||||
} elsif ($line->beg > $self->top_row) {
|
|
||||||
$cr = $line->beg - 1;
|
|
||||||
$line = $self->line($cr);
|
|
||||||
$offset = $line->l;
|
|
||||||
goto NEXTUP;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($found) {
|
|
||||||
$self->{dollar} = 0;
|
|
||||||
$self->{offset} = $offset;
|
|
||||||
$self->screen_cur($line->coord_of($offset));
|
|
||||||
$self->want_refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub find_next {
|
|
||||||
my ($self, $dir) = @_;
|
|
||||||
|
|
||||||
return if not $self->{pattern};
|
|
||||||
$dir = $self->{search_dir} if not $dir;
|
|
||||||
|
|
||||||
my ($cr, $cc) = $self->screen_cur();
|
|
||||||
my $line = $self->line($cr);
|
|
||||||
my $offset = $line->offset_of($cr, $cc);
|
|
||||||
my $text;
|
|
||||||
my $found = 0;
|
|
||||||
|
|
||||||
++$offset if $dir > 0;
|
|
||||||
|
|
||||||
while (not $found) {
|
|
||||||
if ($dir > 0) {
|
|
||||||
$text = substr($line->t, $offset);
|
|
||||||
if ($text =~ m/$self->{pattern}/) {
|
|
||||||
$found = 1;
|
|
||||||
$offset += $-[0];
|
|
||||||
} else {
|
|
||||||
last if $line->end >= $self->nrow;
|
|
||||||
$line = $self->line($line->end + 1);
|
|
||||||
$offset = 0;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$text = substr($line->t, 0, $offset);
|
|
||||||
if ($text =~ m/$self->{pattern}/) {
|
|
||||||
$found = 1;
|
|
||||||
$offset = $-[0] while $text =~ m/$self->{pattern}/g;
|
|
||||||
} else {
|
|
||||||
last if $line->beg <= $self->top_row;
|
|
||||||
$line = $self->line($line->beg - 1);
|
|
||||||
$offset = $line->l;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($found) {
|
|
||||||
$self->{dollar} = 0;
|
|
||||||
$self->{offset} = $offset;
|
|
||||||
$self->screen_cur($line->coord_of($offset));
|
|
||||||
status_area($self);
|
|
||||||
$self->want_refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $found;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub tt_write {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub refresh {
|
|
||||||
my ($self) = @_;
|
|
||||||
my ($cr, $cc) = $self->screen_cur();
|
|
||||||
|
|
||||||
# scroll the current cursor position into visible area
|
|
||||||
if ($cr < $self->view_start()) {
|
|
||||||
$self->view_start($cr);
|
|
||||||
} elsif ($cr >= $self->view_start() + $self->nrow) {
|
|
||||||
$self->view_start($cr - $self->nrow + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($self->{select}) {
|
|
||||||
my ($hl, $reverse_cursor);
|
|
||||||
my ($br, $bc, $er, $ec) = calc_span($self);
|
|
||||||
|
|
||||||
if ($self->x_resource('highlightColor')) {
|
|
||||||
$hl = urxvt::RS_Sel;
|
|
||||||
$reverse_cursor = 0;
|
|
||||||
} else {
|
|
||||||
$hl = urxvt::RS_RVid;
|
|
||||||
$reverse_cursor = $self->{select} ne 'l';
|
|
||||||
}
|
|
||||||
if ($self->{select} eq 'b') {
|
|
||||||
my $co = $self->line($cr)->offset_of($cr, $cc);
|
|
||||||
my $dollar = $self->{dollar} && $co >= $self->{dollar} - 1;
|
|
||||||
|
|
||||||
my $r = $br;
|
|
||||||
while ($r <= $er) {
|
|
||||||
my $line = $self->line($r);
|
|
||||||
if ($bc < $line->l) {
|
|
||||||
$ec = $line->l if $dollar;
|
|
||||||
my ($br, $bc) = $line->coord_of($bc);
|
|
||||||
my ($er, $ec) = $line->coord_of($ec <= $line->l ? $ec : $line->l);
|
|
||||||
$self->scr_xor_span($br, $bc, $er, $ec, $hl);
|
|
||||||
} elsif ($r == $cr) {
|
|
||||||
$reverse_cursor = 0;
|
|
||||||
}
|
|
||||||
$r = $line->end + 1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$self->scr_xor_span($br, $bc, $er, $ec, $hl);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($reverse_cursor) {
|
|
||||||
# make the cursor visible again
|
|
||||||
$self->scr_xor_span($cr, $cc, $cr, $cc + 1, $hl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub activate {
|
|
||||||
my ($self, $search) = @_;
|
|
||||||
|
|
||||||
$self->{active} = 1;
|
|
||||||
|
|
||||||
$self->{select} = '';
|
|
||||||
$self->{dollar} = 0;
|
|
||||||
$self->{move_to} = 0;
|
|
||||||
|
|
||||||
if ($search) {
|
|
||||||
$self->{search} = '?';
|
|
||||||
$self->{search_dir} = -1;
|
|
||||||
$self->{search_mode} = 1;
|
|
||||||
} else {
|
|
||||||
$self->{search} = '';
|
|
||||||
$self->{search_mode} = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
($self->{oldcr}, $self->{oldcc}) = $self->screen_cur();
|
|
||||||
($self->{srhcr}, $self->{srhcc}) = $self->screen_cur();
|
|
||||||
$self->{old_view_start} = $self->view_start();
|
|
||||||
$self->{old_pty_ev_events} = $self->pty_ev_events(urxvt::EV_NONE);
|
|
||||||
|
|
||||||
my $line = $self->line($self->{oldcr});
|
|
||||||
$self->{offset} = $line->offset_of($self->{oldcr}, $self->{oldcc});
|
|
||||||
|
|
||||||
$self->selection_beg(1, 0);
|
|
||||||
$self->selection_end(1, 0);
|
|
||||||
|
|
||||||
$self->enable(
|
|
||||||
key_press => \&key_press,
|
|
||||||
refresh_begin => \&refresh,
|
|
||||||
refresh_end => \&refresh,
|
|
||||||
tt_write => \&tt_write,
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($self->{offset} >= $line->l) {
|
|
||||||
$self->{offset} = $line->l > 0 ? $line->l - 1 : 0;
|
|
||||||
$self->screen_cur($line->coord_of($self->{offset}));
|
|
||||||
$self->want_refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
$self->{overlay_len} = 0;
|
|
||||||
status_area($self);
|
|
||||||
|
|
||||||
()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub deactivate {
|
|
||||||
my ($self) = @_;
|
|
||||||
|
|
||||||
$self->selection_beg(1, 0);
|
|
||||||
$self->selection_end(1, 0);
|
|
||||||
|
|
||||||
delete $self->{overlay} if $self->{overlay};
|
|
||||||
|
|
||||||
$self->disable("key_press", "refresh_begin", "refresh_end", "tt_write");
|
|
||||||
$self->screen_cur($self->{oldcr}, $self->{oldcc});
|
|
||||||
$self->view_start($self->{old_view_start});
|
|
||||||
$self->pty_ev_events($self->{old_pty_ev_events});
|
|
||||||
|
|
||||||
$self->want_refresh();
|
|
||||||
|
|
||||||
$self->{active} = 0;
|
|
||||||
|
|
||||||
()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub status_area {
|
|
||||||
my ($self, $extra) = @_;
|
|
||||||
my ($stat, $stat_len);
|
|
||||||
|
|
||||||
if ($self->{search}) {
|
|
||||||
$stat_len = $self->ncol;
|
|
||||||
$stat = $self->{search} . ' ' x ($stat_len - length($self->{search}));
|
|
||||||
} else {
|
|
||||||
if ($self->{select}) {
|
|
||||||
$stat = "-V" . ($self->{select} ne 'n' ? uc($self->{select}) : "") . "- ";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($self->top_row == 0) {
|
|
||||||
$stat .= "All";
|
|
||||||
} elsif ($self->view_start() == $self->top_row) {
|
|
||||||
$stat .= "Top";
|
|
||||||
} elsif ($self->view_start() == 0) {
|
|
||||||
$stat .= "Bot";
|
|
||||||
} else {
|
|
||||||
$stat .= sprintf("%2d%%",
|
|
||||||
($self->top_row - $self->view_start) * 100 / $self->top_row);
|
|
||||||
}
|
|
||||||
|
|
||||||
$stat = "$extra $stat" if $extra;
|
|
||||||
$stat_len = length($stat);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$self->{overlay} || $self->{overlay_len} != $stat_len) {
|
|
||||||
delete $self->{overlay} if $self->{overlay};
|
|
||||||
$self->{overlay} = $self->overlay(-1, -1, $stat_len, 1,
|
|
||||||
urxvt::OVERLAY_RSTYLE, 0);
|
|
||||||
$self->{overlay_len} = $stat_len;
|
|
||||||
}
|
|
||||||
|
|
||||||
$self->{overlay}->set(0, 0, $self->special_encode($stat));
|
|
||||||
$self->{overlay}->show();
|
|
||||||
|
|
||||||
()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub toggle_select {
|
|
||||||
my ($self, $mode) = @_;
|
|
||||||
|
|
||||||
if ($self->{select} eq $mode) {
|
|
||||||
$self->{select} = '';
|
|
||||||
} else {
|
|
||||||
if (not $self->{select}) {
|
|
||||||
($self->{ar}, $self->{ac}) = $self->screen_cur();
|
|
||||||
}
|
|
||||||
$self->{select} = $mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
status_area($self);
|
|
||||||
$self->want_refresh();
|
|
||||||
|
|
||||||
()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub calc_span {
|
|
||||||
my ($self) = @_;
|
|
||||||
my ($cr, $cc) = $self->screen_cur();
|
|
||||||
my ($br, $bc, $er, $ec);
|
|
||||||
|
|
||||||
if ($self->{select} eq 'b') {
|
|
||||||
$br = $self->line($cr)->beg;
|
|
||||||
$bc = $self->line($cr)->offset_of($cr, $cc);
|
|
||||||
$er = $self->line($self->{ar})->beg;
|
|
||||||
$ec = $self->line($self->{ar})->offset_of($self->{ar}, $self->{ac});
|
|
||||||
($br, $er) = ($er, $br) if $br > $er;
|
|
||||||
($bc, $ec) = ($ec, $bc) if $bc > $ec;
|
|
||||||
} else {
|
|
||||||
if ($cr < $self->{ar}) {
|
|
||||||
($br, $bc, $er, $ec) = ($cr, $cc, $self->{ar}, $self->{ac});
|
|
||||||
} elsif ($cr > $self->{ar}) {
|
|
||||||
($br, $bc, $er, $ec) = ($self->{ar}, $self->{ac}, $cr, $cc);
|
|
||||||
} else {
|
|
||||||
($br, $er) = ($cr, $cr);
|
|
||||||
($bc, $ec) = $cc < $self->{ac} ? ($cc, $self->{ac}) : ($self->{ac}, $cc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($self->{select} eq 'l') {
|
|
||||||
($br, $er) = ($self->line($br)->beg, $self->line($er)->end);
|
|
||||||
($bc, $ec) = (0, $self->ncol);
|
|
||||||
} else {
|
|
||||||
++$ec;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ($br, $bc, $er, $ec);
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
*
|
|
||||||
!.gitignore
|
|
||||||
!config.org
|
|
||||||
!init.el
|
|
|
@ -1,227 +0,0 @@
|
||||||
* Packet
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(require 'package)
|
|
||||||
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
|
||||||
("gnu" . "https://elpa.gnu.org/packages/")))
|
|
||||||
(package-initialize)
|
|
||||||
(package-refresh-contents)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
* Use Package
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(unless (package-installed-p 'use-package)
|
|
||||||
(package-refresh-contents)
|
|
||||||
(package-install 'use-package))
|
|
||||||
|
|
||||||
(require 'use-package)
|
|
||||||
(setq use-package-always-ensure t)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
* Plugins
|
|
||||||
** Quick online installs
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package no-littering)
|
|
||||||
(use-package org-bullets)
|
|
||||||
(use-package rainbow-delimiters)
|
|
||||||
(use-package flycheck :ensure)
|
|
||||||
(use-package solidity-mode)
|
|
||||||
(use-package undo-tree)
|
|
||||||
(use-package yaml-mode
|
|
||||||
:config
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode)))
|
|
||||||
(use-package org-roam)
|
|
||||||
(use-package consult)
|
|
||||||
(use-package dockerfile-mode)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Evil
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package evil
|
|
||||||
:init
|
|
||||||
(setq evil-want-keybinding nil)
|
|
||||||
:config
|
|
||||||
(evil-mode 1)
|
|
||||||
(setq evil-search-module 'evil-search)
|
|
||||||
(setq evil-undo-system 'undo-redo))
|
|
||||||
|
|
||||||
(use-package evil-collection
|
|
||||||
:config
|
|
||||||
(evil-collection-init))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** projectile
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package projectile
|
|
||||||
:ensure t
|
|
||||||
:init
|
|
||||||
(projectile-mode +1)
|
|
||||||
:bind (:map projectile-mode-map
|
|
||||||
("s-p" . projectile-command-map)
|
|
||||||
("C-c p" . projectile-command-map)))
|
|
||||||
#+end_src
|
|
||||||
** ledger-mode
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package ledger-mode
|
|
||||||
:mode ("\\.ledger\\'")
|
|
||||||
:config
|
|
||||||
(autoload 'ledger-mode "ledger-mode" "A major mode for Ledger" t)
|
|
||||||
(add-to-list 'load-path
|
|
||||||
(expand-file-name "~/Documents/paisa/"))
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.ledger$" . ledger-mode)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
* Global
|
|
||||||
** emacs-one-themes
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package one-themes
|
|
||||||
:init
|
|
||||||
(load-theme 'one-dark t))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Menubar
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(menu-bar-mode -1)
|
|
||||||
(tool-bar-mode -1)
|
|
||||||
(scroll-bar-mode -1)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Symlinks
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(setq vc-follow-symlinks t)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** spaces>tabs
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(setq-default indent-tabs-mode nil)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** lsp inlay hints globally
|
|
||||||
#+begin_src
|
|
||||||
(setq-local lsp-inlay-hint-enable t)
|
|
||||||
#+end_src
|
|
||||||
* Org-mode
|
|
||||||
** hook
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(add-hook 'org-mode-hook
|
|
||||||
(lambda ()
|
|
||||||
(org-bullets-mode 1)
|
|
||||||
(setq org-pretty-entities f)
|
|
||||||
(setq org-src-fontify-natively 1)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
* Rust
|
|
||||||
** Rustic
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package rustic
|
|
||||||
:ensure
|
|
||||||
:bind (:map rustic-mode-map
|
|
||||||
("M-j" . lsp-ui-imenu)
|
|
||||||
("M-?" . lsp-find-references)
|
|
||||||
("C-c C-c l" . flycheck-list-errors)
|
|
||||||
("C-c C-c a" . lsp-execute-code-action)
|
|
||||||
("C-c C-c r" . lsp-rename)
|
|
||||||
("C-c C-c q" . lsp-workspace-restart)
|
|
||||||
("C-c C-c Q" . lsp-workspace-shutdown)
|
|
||||||
("C-c C-c s" . lsp-rust-analyzer-status))
|
|
||||||
:config
|
|
||||||
;; uncomment for less flashiness
|
|
||||||
;; (setq lsp-eldoc-hook nil)
|
|
||||||
;; (setq lsp-enable-symbol-highlighting nil)
|
|
||||||
;; (setq lsp-signature-auto-activate nil)
|
|
||||||
|
|
||||||
;; comment to disable rustfmt on save
|
|
||||||
(setq rustic-format-on-save t)
|
|
||||||
(add-hook 'rustic-mode-hook 'rk/rustic-mode-hook))
|
|
||||||
|
|
||||||
(defun rk/rustic-mode-hook ()
|
|
||||||
;; so that run C-c C-c C-r works without having to confirm, but don't try to
|
|
||||||
;; save rust buffers that are not file visiting. Once
|
|
||||||
;; https://github.com/brotzeit/rustic/issues/253 has been resolved this should
|
|
||||||
;; no longer be necessary.
|
|
||||||
(when buffer-file-name
|
|
||||||
(setq-local buffer-save-without-query t))
|
|
||||||
(add-hook 'before-save-hook 'lsp-format-buffer nil t))
|
|
||||||
#+end_src
|
|
||||||
** LSP
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package lsp-mode
|
|
||||||
:ensure
|
|
||||||
:commands lsp
|
|
||||||
:custom
|
|
||||||
;; what to use when checking on-save. "check" is default, I prefer clippy
|
|
||||||
(lsp-rust-analyzer-cargo-watch-command "clippy")
|
|
||||||
(lsp-eldoc-render-all t)
|
|
||||||
(lsp-idle-delay 0.6)
|
|
||||||
;; enable / disable the hints as you prefer:
|
|
||||||
(lsp-inlay-hint-enable t)
|
|
||||||
;; These are optional configurations. See https://emacs-lsp.github.io/lsp-mode/page/lsp-rust-analyzer/#lsp-rust-analyzer-display-chaining-hints for a full list
|
|
||||||
(lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
|
|
||||||
(lsp-rust-analyzer-display-chaining-hints t)
|
|
||||||
(lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
|
|
||||||
(lsp-rust-analyzer-display-closure-return-type-hints t)
|
|
||||||
(lsp-rust-analyzer-display-parameter-hints nil)
|
|
||||||
(lsp-rust-analyzer-display-reborrow-hints nil)
|
|
||||||
:config
|
|
||||||
(add-hook 'lsp-mode-hook 'lsp-ui-mode))
|
|
||||||
|
|
||||||
(use-package lsp-ui
|
|
||||||
:ensure
|
|
||||||
:commands lsp-ui-mode
|
|
||||||
:custom
|
|
||||||
(lsp-ui-peek-always-show t)
|
|
||||||
(lsp-ui-sideline-show-hover t)
|
|
||||||
(lsp-ui-doc-enable nil))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** company
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package company
|
|
||||||
:ensure
|
|
||||||
:custom
|
|
||||||
(company-idle-delay 0.5) ;; how long to wait until popup
|
|
||||||
;; (company-begin-commands nil) ;; uncomment to disable popup
|
|
||||||
:bind
|
|
||||||
(:map company-active-map
|
|
||||||
("C-n". company-select-next)
|
|
||||||
("C-p". company-select-previous)
|
|
||||||
("M-<". company-select-first)
|
|
||||||
("M->". company-select-last)
|
|
||||||
("<tab>". tab-indent-or-complete)
|
|
||||||
("TAB". tab-indent-or-complete)))
|
|
||||||
|
|
||||||
(use-package yasnippet
|
|
||||||
:ensure
|
|
||||||
:config
|
|
||||||
(yas-reload-all)
|
|
||||||
(add-hook 'prog-mode-hook 'yas-minor-mode)
|
|
||||||
(add-hook 'text-mode-hook 'yas-minor-mode))
|
|
||||||
(defun company-yasnippet-or-completion ()
|
|
||||||
(interactive)
|
|
||||||
(or (do-yas-expand)
|
|
||||||
(company-complete-common)))
|
|
||||||
|
|
||||||
(defun check-expansion ()
|
|
||||||
(save-excursion
|
|
||||||
(if (looking-at "\\_>") t
|
|
||||||
(backward-char 1)
|
|
||||||
(if (looking-at "\\.") t
|
|
||||||
(backward-char 1)
|
|
||||||
(if (looking-at "::") t nil)))))
|
|
||||||
|
|
||||||
(defun do-yas-expand ()
|
|
||||||
(let ((yas/fallback-behavior 'return-nil))
|
|
||||||
(yas/expand)))
|
|
||||||
|
|
||||||
(defun tab-indent-or-complete ()
|
|
||||||
(interactive)
|
|
||||||
(if (minibufferp)
|
|
||||||
(minibuffer-complete)
|
|
||||||
(if (or (not yas/minor-mode)
|
|
||||||
(null (do-yas-expand)))
|
|
||||||
(if (check-expansion)
|
|
||||||
(company-complete-common)
|
|
||||||
(indent-for-tab-command)))))
|
|
||||||
#+end_src
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
(org-babel-load-file "~/.emacs.d/config.org")
|
|
||||||
(custom-set-variables
|
|
||||||
;; custom-set-variables was added by Custom.
|
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
|
||||||
;; Your init file should contain only one such instance.
|
|
||||||
;; If there is more than one, they won't work right.
|
|
||||||
'(package-selected-packages '(consult org-roam evil-collection evil use-package)))
|
|
||||||
(custom-set-faces
|
|
||||||
;; custom-set-faces was added by Custom.
|
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
|
||||||
;; Your init file should contain only one such instance.
|
|
||||||
;; If there is more than one, they won't work right.
|
|
||||||
)
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.1 MiB |
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"LazyVim": { "branch": "main", "commit": "c0ad2209b67f125a1f1a1ae3ccd6e89b7ffc8946" },
|
"LazyVim": { "branch": "main", "commit": "0107a1079be7fb92f7d5b7e2c40818f47cf425d9" },
|
||||||
"LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" },
|
"LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" },
|
||||||
"SchemaStore.nvim": { "branch": "main", "commit": "6eb5d8d9ec9f81b75aaa6d15d0f6dc12a066fd3f" },
|
"SchemaStore.nvim": { "branch": "main", "commit": "7efe039d0675f4f1b03f946cc457891d13a6495f" },
|
||||||
"bufferline.nvim": { "branch": "main", "commit": "64e2c5def50dfd6b6f14d96a45fa3d815a4a1eef" },
|
"bufferline.nvim": { "branch": "main", "commit": "64e2c5def50dfd6b6f14d96a45fa3d815a4a1eef" },
|
||||||
"catppuccin": { "branch": "main", "commit": "045e3499d9ec8d84635fb08877ae44fd33f6a38d" },
|
"catppuccin": { "branch": "main", "commit": "045e3499d9ec8d84635fb08877ae44fd33f6a38d" },
|
||||||
"clangd_extensions.nvim": { "branch": "main", "commit": "34c8eaa12be192e83cd4865ce2375e9f53e728f2" },
|
"clangd_extensions.nvim": { "branch": "main", "commit": "34c8eaa12be192e83cd4865ce2375e9f53e728f2" },
|
||||||
|
@ -9,19 +9,19 @@
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||||
"conform.nvim": { "branch": "master", "commit": "5a15cc46e75cad804fd51ec5af9227aeb1d1bdaa" },
|
"conform.nvim": { "branch": "master", "commit": "a605ce4b2db397c84ae6fa8bcfc85f00b985bc73" },
|
||||||
"crates.nvim": { "branch": "main", "commit": "535773ed3b321d68ddd6ef8cd5a1e07b345026a6" },
|
"crates.nvim": { "branch": "main", "commit": "b4f4987ccdb1cc3899ee541ef4375c73c48c4570" },
|
||||||
"dashboard-nvim": { "branch": "master", "commit": "413442b12d85315fc626c44a0ce4929b213ef604" },
|
"dashboard-nvim": { "branch": "master", "commit": "413442b12d85315fc626c44a0ce4929b213ef604" },
|
||||||
"dressing.nvim": { "branch": "master", "commit": "6f212262061a2120e42da0d1e87326e8a41c0478" },
|
"dressing.nvim": { "branch": "master", "commit": "18e5beb3845f085b6a33c24112b37988f3f93c06" },
|
||||||
"flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" },
|
"flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" },
|
"friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" },
|
"gitsigns.nvim": { "branch": "main", "commit": "4e348641b8206c3b8d23080999e3ddbe4ca90efc" },
|
||||||
"headlines.nvim": { "branch": "master", "commit": "618ef1b2502c565c82254ef7d5b04402194d9ce3" },
|
"headlines.nvim": { "branch": "master", "commit": "618ef1b2502c565c82254ef7d5b04402194d9ce3" },
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "821a7acd88587d966f7e464b0b3031dfe7f5680c" },
|
"indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "83493db50a434a4c5c648faf41e2ead80f96e478" },
|
"lazy.nvim": { "branch": "main", "commit": "83493db50a434a4c5c648faf41e2ead80f96e478" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "8b56462bfb746760465264de41b4907310f113ec" },
|
"lualine.nvim": { "branch": "master", "commit": "26dac2fcadb6e622790ab08e36d0dba3d3765398" },
|
||||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "21d33d69a81f6351e5a5f49078b2e4f0075c8e73" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "55716a879568a498fa236593c8119789054a3b8e" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "3b5068f0fc565f337d67a2d315d935f574848ee7" },
|
"mason.nvim": { "branch": "main", "commit": "3b5068f0fc565f337d67a2d315d935f574848ee7" },
|
||||||
"mini.ai": { "branch": "main", "commit": "ee9446a17c160aba6a04ff22097389c41872c878" },
|
"mini.ai": { "branch": "main", "commit": "ee9446a17c160aba6a04ff22097389c41872c878" },
|
||||||
"mini.bufremove": { "branch": "main", "commit": "931a3bb514147d9e812767275c4beba6b779b1d3" },
|
"mini.bufremove": { "branch": "main", "commit": "931a3bb514147d9e812767275c4beba6b779b1d3" },
|
||||||
|
@ -29,38 +29,38 @@
|
||||||
"mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" },
|
"mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" },
|
||||||
"mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" },
|
"mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" },
|
||||||
"mini.surround": { "branch": "main", "commit": "a1b590cc3b676512de507328d6bbab5e43794720" },
|
"mini.surround": { "branch": "main", "commit": "a1b590cc3b676512de507328d6bbab5e43794720" },
|
||||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "459c60317cc1d251f6eb3b6f010d015d5d24b806" },
|
"neo-tree.nvim": { "branch": "v3.x", "commit": "742db4e60c74e5fbcc596aaf9e7575e1342dfd09" },
|
||||||
"neoconf.nvim": { "branch": "main", "commit": "db1d1bd45f4e91da6abc898281711fa47eda0ece" },
|
"neoconf.nvim": { "branch": "main", "commit": "ffdeab72dc167543f9b3355baceb0918f1e81fc0" },
|
||||||
"neodev.nvim": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" },
|
"neodev.nvim": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" },
|
||||||
"noice.nvim": { "branch": "main", "commit": "bf67d70bd7265d075191e7812d8eb42b9791f737" },
|
"noice.nvim": { "branch": "main", "commit": "bf67d70bd7265d075191e7812d8eb42b9791f737" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "756c59f46057cd2d43619cd3a6d4e01b2aa60295" },
|
"nui.nvim": { "branch": "main", "commit": "3dc46d725f7b94bee5117c0a699b57b1902b5d65" },
|
||||||
"nvim-ansible": { "branch": "main", "commit": "d115cb9bb3680c990e2684f58cf333663fff03b8" },
|
"nvim-ansible": { "branch": "main", "commit": "d115cb9bb3680c990e2684f58cf333663fff03b8" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
|
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
|
||||||
"nvim-lint": { "branch": "master", "commit": "e824adb9bc01647f71e55457353a68f0f37f9931" },
|
"nvim-lint": { "branch": "master", "commit": "d78c8ab992f48890580653f74a362c6e5ef2eccc" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "e172dd599cff2ae5267871b5e33fb42934c4df43" },
|
"nvim-lspconfig": { "branch": "master", "commit": "4bdd3800b4148f670c6cf55ef65f490148eeb550" },
|
||||||
"nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" },
|
"nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" },
|
||||||
"nvim-spectre": { "branch": "master", "commit": "3712ff0cdf4f9f877d9ca708d835a877d9a0abaf" },
|
"nvim-spectre": { "branch": "master", "commit": "d1db6c1d37252b5a38f199e2f590c5a1617d9254" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "9775d5d7c724f81acdd441e7e9edefc4514e990b" },
|
"nvim-treesitter": { "branch": "master", "commit": "f87882858438834d2fbb6379aa2be37de901751b" },
|
||||||
"nvim-treesitter-context": { "branch": "master", "commit": "b8b7e52c1517d401d7c519787d5dc4528c41291a" },
|
"nvim-treesitter-context": { "branch": "master", "commit": "b8b7e52c1517d401d7c519787d5dc4528c41291a" },
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "b7a0bfa3e93697ca5b61b15df633404bf8f45883" },
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "d2a4ffc22d9d38d44edb73da007b3cf43451e9b4" },
|
||||||
"nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" },
|
"nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" },
|
||||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "7ab799a9792f7cf3883cf28c6a00ad431f3d382a" },
|
"nvim-ts-context-commentstring": { "branch": "main", "commit": "7ab799a9792f7cf3883cf28c6a00ad431f3d382a" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "4adea17610d140a99c313e3f79a9dc01825d59ae" },
|
"nvim-web-devicons": { "branch": "master", "commit": "a851380fbea4c1312d11f13d5cdc86a7a19808dd" },
|
||||||
"onedark.vim": { "branch": "main", "commit": "57b77747694ea5676c3ca0eeaf9567dc499730c0" },
|
"onedark.vim": { "branch": "main", "commit": "57b77747694ea5676c3ca0eeaf9567dc499730c0" },
|
||||||
"orgmode": { "branch": "master", "commit": "18734589e5807074f57a5228ce06b52ea898b802" },
|
"orgmode": { "branch": "master", "commit": "261c987345131a736066c25ea409f4d10904b0af" },
|
||||||
"persistence.nvim": { "branch": "main", "commit": "4982499c1636eac254b72923ab826ee7827b3084" },
|
"persistence.nvim": { "branch": "main", "commit": "4982499c1636eac254b72923ab826ee7827b3084" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be" },
|
"plenary.nvim": { "branch": "master", "commit": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be" },
|
||||||
"rustaceanvim": { "branch": "master", "commit": "387ca846d632f8c90631536341ca1778b4c2c497" },
|
"rustaceanvim": { "branch": "master", "commit": "69a22c2ec63ab375190006751562b62ebb318250" },
|
||||||
"semshi": { "branch": "master", "commit": "0182447e2ff4dfa04cd2dfe5f189e012c581ca45" },
|
"semshi": { "branch": "master", "commit": "0182447e2ff4dfa04cd2dfe5f189e012c581ca45" },
|
||||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
|
||||||
"telescope.nvim": { "branch": "master", "commit": "7472420f8734c710bd7009081cef9b97f08a3821" },
|
"telescope.nvim": { "branch": "master", "commit": "67c598fdd4fca113224281c85721c4d8a6df055e" },
|
||||||
"todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" },
|
"todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" },
|
||||||
"tokyonight.nvim": { "branch": "main", "commit": "610179f7f12db3d08540b6cc61434db2eaecbcff" },
|
"tokyonight.nvim": { "branch": "main", "commit": "c025baf23b62f044eff1f4ef561c45de636f0e32" },
|
||||||
"trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" },
|
"trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" },
|
||||||
"venv-selector.nvim": { "branch": "main", "commit": "2ad34f36d498ff5193ea10f79c87688bd5284172" },
|
"venv-selector.nvim": { "branch": "main", "commit": "2ad34f36d498ff5193ea10f79c87688bd5284172" },
|
||||||
"vim-illuminate": { "branch": "master", "commit": "305bf07b919ac526deb5193280379e2f8b599926" },
|
"vim-illuminate": { "branch": "master", "commit": "305bf07b919ac526deb5193280379e2f8b599926" },
|
||||||
"vim-ledger": { "branch": "master", "commit": "281346a221434574dd7f8767a352b2bf0b218b74" },
|
"vim-ledger": { "branch": "master", "commit": "281346a221434574dd7f8767a352b2bf0b218b74" },
|
||||||
"vim-startuptime": { "branch": "master", "commit": "308b0088a864c4711a96e45b6734cf9294074f65" },
|
"vim-startuptime": { "branch": "master", "commit": "308b0088a864c4711a96e45b6734cf9294074f65" },
|
||||||
"vimtex": { "branch": "master", "commit": "a77d14b2e4391c0d3e860708bb1fd56161ab68eb" },
|
"vimtex": { "branch": "master", "commit": "9ce62bbf7ea8f6bb232bbff5549cd7745a3fd918" },
|
||||||
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
|
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
|
||||||
}
|
}
|
|
@ -15,5 +15,5 @@
|
||||||
"news": {
|
"news": {
|
||||||
"NEWS.md": "2123"
|
"NEWS.md": "2123"
|
||||||
},
|
},
|
||||||
"version": 2
|
"version": 3
|
||||||
}
|
}
|
|
@ -1,467 +0,0 @@
|
||||||
" colorizer.vim Colorize all text in the form #rrggbb or #rgb; autoload functions
|
|
||||||
" Maintainer: lilydjwg <lilydjwg@gmail.com>
|
|
||||||
" Version: 1.4.2
|
|
||||||
" License: Vim License (see vim's :help license)
|
|
||||||
"
|
|
||||||
" See plugin/colorizer.vim for more info.
|
|
||||||
|
|
||||||
let s:keepcpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
function! s:FGforBG(bg) "{{{1
|
|
||||||
" takes a 6hex color code and returns a matching color that is visible
|
|
||||||
let pure = substitute(a:bg,'^#','','')
|
|
||||||
let r = str2nr(pure[0:1], 16)
|
|
||||||
let g = str2nr(pure[2:3], 16)
|
|
||||||
let b = str2nr(pure[4:5], 16)
|
|
||||||
let fgc = g:colorizer_fgcontrast
|
|
||||||
if r*30 + g*59 + b*11 > 12000
|
|
||||||
return s:predefined_fgcolors['dark'][fgc]
|
|
||||||
else
|
|
||||||
return s:predefined_fgcolors['light'][fgc]
|
|
||||||
end
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:Rgb2xterm(color) "{{{1
|
|
||||||
" selects the nearest xterm color for a rgb value like #FF0000
|
|
||||||
let best_match=0
|
|
||||||
let smallest_distance = 10000000000
|
|
||||||
let r = str2nr(a:color[1:2], 16)
|
|
||||||
let g = str2nr(a:color[3:4], 16)
|
|
||||||
let b = str2nr(a:color[5:6], 16)
|
|
||||||
let colortable = s:GetXterm2rgbTable()
|
|
||||||
for c in range(0,254)
|
|
||||||
let d = pow(colortable[c][0]-r,2) + pow(colortable[c][1]-g,2) + pow(colortable[c][2]-b,2)
|
|
||||||
if d<smallest_distance
|
|
||||||
let smallest_distance = d
|
|
||||||
let best_match = c
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
return best_match
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"" the 6 value iterations in the xterm color cube {{{1
|
|
||||||
let s:valuerange = [0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF]
|
|
||||||
|
|
||||||
"" 16 basic colors {{{1
|
|
||||||
let s:basic16 = [
|
|
||||||
\ [0x00, 0x00, 0x00], [0xCD, 0x00, 0x00],
|
|
||||||
\ [0x00, 0xCD, 0x00], [0xCD, 0xCD, 0x00],
|
|
||||||
\ [0x00, 0x00, 0xEE], [0xCD, 0x00, 0xCD],
|
|
||||||
\ [0x00, 0xCD, 0xCD], [0xE5, 0xE5, 0xE5],
|
|
||||||
\ [0x7F, 0x7F, 0x7F], [0xFF, 0x00, 0x00],
|
|
||||||
\ [0x00, 0xFF, 0x00], [0xFF, 0xFF, 0x00],
|
|
||||||
\ [0x5C, 0x5C, 0xFF], [0xFF, 0x00, 0xFF],
|
|
||||||
\ [0x00, 0xFF, 0xFF], [0xFF, 0xFF, 0xFF]]
|
|
||||||
|
|
||||||
function! s:Xterm2rgb(color) "{{{1
|
|
||||||
" 16 basic colors
|
|
||||||
let r = 0
|
|
||||||
let g = 0
|
|
||||||
let b = 0
|
|
||||||
if a:color<16
|
|
||||||
let r = s:basic16[a:color][0]
|
|
||||||
let g = s:basic16[a:color][1]
|
|
||||||
let b = s:basic16[a:color][2]
|
|
||||||
endif
|
|
||||||
|
|
||||||
" color cube color
|
|
||||||
if a:color>=16 && a:color<=232
|
|
||||||
let l:color=a:color-16
|
|
||||||
let r = s:valuerange[(l:color/36)%6]
|
|
||||||
let g = s:valuerange[(l:color/6)%6]
|
|
||||||
let b = s:valuerange[l:color%6]
|
|
||||||
endif
|
|
||||||
|
|
||||||
" gray tone
|
|
||||||
if a:color>=233 && a:color<=253
|
|
||||||
let r=8+(a:color-232)*0x0a
|
|
||||||
let g=r
|
|
||||||
let b=r
|
|
||||||
endif
|
|
||||||
let rgb=[r,g,b]
|
|
||||||
return rgb
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:SetMatcher(color, pat) "{{{1
|
|
||||||
" "color" is the converted color and "pat" is what to highlight
|
|
||||||
let group = 'Color' . strpart(a:color, 1)
|
|
||||||
if !hlexists(group) || s:force_group_update
|
|
||||||
let fg = g:colorizer_fgcontrast < 0 ? a:color : s:FGforBG(a:color)
|
|
||||||
if &t_Co == 256
|
|
||||||
exe 'hi '.group.' ctermfg='.s:Rgb2xterm(fg).' ctermbg='.s:Rgb2xterm(a:color)
|
|
||||||
endif
|
|
||||||
" Always set gui* as user may switch to GUI version and it's cheap
|
|
||||||
exe 'hi '.group.' guifg='.fg.' guibg='.a:color
|
|
||||||
endif
|
|
||||||
if !exists("w:colormatches[a:pat]")
|
|
||||||
let w:colormatches[a:pat] = matchadd(group, a:pat)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Color Converters {{{1
|
|
||||||
function! s:RgbBgColor() "{{{2
|
|
||||||
let bg = synIDattr(synIDtrans(hlID("Normal")), "bg")
|
|
||||||
let r = str2nr(bg[1:2], 16)
|
|
||||||
let g = str2nr(bg[3:4], 16)
|
|
||||||
let b = str2nr(bg[5:6], 16)
|
|
||||||
return [r,g,b]
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:Hexa2Rgba(hex,alpha) "{{{2
|
|
||||||
let r = str2nr(a:hex[1:2], 16)
|
|
||||||
let g = str2nr(a:hex[3:4], 16)
|
|
||||||
let b = str2nr(a:hex[5:6], 16)
|
|
||||||
let alpha = printf("%.2f", str2float(str2nr(a:alpha,16)) / 255.0)
|
|
||||||
return [r,g,b,alpha]
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:Rgba2Rgb(r,g,b,alpha,percent,rgb_bg) "{{{2
|
|
||||||
" converts matched r,g,b values and percentages to [0:255]
|
|
||||||
" if possible, overlays r,g,b with alpha on given rgb_bg color
|
|
||||||
if a:percent
|
|
||||||
let r = a:r * 255 / 100
|
|
||||||
let g = a:g * 255 / 100
|
|
||||||
let b = a:b * 255 / 100
|
|
||||||
else
|
|
||||||
let r = a:r
|
|
||||||
let g = a:g
|
|
||||||
let b = a:b
|
|
||||||
endif
|
|
||||||
if r > 255 || g > 255 || b > 255
|
|
||||||
return []
|
|
||||||
endif
|
|
||||||
if empty(a:rgb_bg)
|
|
||||||
return [r,g,b]
|
|
||||||
endif
|
|
||||||
let alpha = str2float(a:alpha)
|
|
||||||
if alpha < 0
|
|
||||||
let alpha = 0.0
|
|
||||||
elseif alpha > 1
|
|
||||||
let alpha = 1.0
|
|
||||||
endif
|
|
||||||
if alpha == 1.0
|
|
||||||
return [r,g,b]
|
|
||||||
endif
|
|
||||||
let r = float2nr(ceil(r * alpha) + ceil(a:rgb_bg[0] * (1 - alpha)))
|
|
||||||
let g = float2nr(ceil(g * alpha) + ceil(a:rgb_bg[1] * (1 - alpha)))
|
|
||||||
let b = float2nr(ceil(b * alpha) + ceil(a:rgb_bg[2] * (1 - alpha)))
|
|
||||||
if r > 255
|
|
||||||
let r = 255
|
|
||||||
endif
|
|
||||||
if g > 255
|
|
||||||
let g = 255
|
|
||||||
endif
|
|
||||||
if b > 255
|
|
||||||
let b = 255
|
|
||||||
endif
|
|
||||||
return [r,g,b]
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"ColorFinders {{{1
|
|
||||||
function! s:HexCode(str, lineno) "{{{2
|
|
||||||
" finds RGB: #00f #0000ff and RGBA: #00f8 #0000ff88 (or ARGB: #800f #880000ff)
|
|
||||||
if has("gui_running")
|
|
||||||
let rgb_bg = s:RgbBgColor()
|
|
||||||
else
|
|
||||||
" translucent colors would display incorrectly, so ignore the alpha value
|
|
||||||
let rgb_bg = []
|
|
||||||
endif
|
|
||||||
let ret = []
|
|
||||||
let place = 0
|
|
||||||
let colorpat = '#[0-9A-Fa-f]\{3\}\>\|#[0-9A-Fa-f]\{6\}\>\|#[0-9A-Fa-f]\{8\}\>\|#[0-9A-Fa-f]\{4\}\>'
|
|
||||||
while 1
|
|
||||||
let foundcolor = matchstr(a:str, colorpat, place)
|
|
||||||
if foundcolor == ''
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let place = matchend(a:str, colorpat, place)
|
|
||||||
let pat = foundcolor . '\>'
|
|
||||||
let colorlen = len(foundcolor)
|
|
||||||
if get(g:, 'colorizer_hex_alpha_first') == 1
|
|
||||||
if colorlen == 4 || colorlen == 5
|
|
||||||
let ha = tolower(foundcolor[1])
|
|
||||||
let hr = tolower(foundcolor[2])
|
|
||||||
let hg = tolower(foundcolor[3])
|
|
||||||
let hb = tolower(foundcolor[4])
|
|
||||||
let foundcolor = substitute(foundcolor, '[[:xdigit:]]', '&&', 'g')
|
|
||||||
else
|
|
||||||
let ha = tolower(foundcolor[1:2])
|
|
||||||
let hr = tolower(foundcolor[3:4])
|
|
||||||
let hg = tolower(foundcolor[5:6])
|
|
||||||
let hb = tolower(foundcolor[7:8])
|
|
||||||
endif
|
|
||||||
if len(foundcolor) == 9
|
|
||||||
let alpha = foundcolor[1:2]
|
|
||||||
let foundcolor = '#'.foundcolor[3:8]
|
|
||||||
else
|
|
||||||
let alpha = 'ff'
|
|
||||||
endif
|
|
||||||
if empty(rgb_bg)
|
|
||||||
if colorlen == 5
|
|
||||||
let pat = printf('\c#\x\zs%s%s%s\ze\>', hr,hg,hb)
|
|
||||||
elseif colorlen == 9
|
|
||||||
let pat = printf('\c#\x\x\zs%s%s%s\ze\>', hr,hg,hb)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
if colorlen == 4 || colorlen == 5
|
|
||||||
let hr = tolower(foundcolor[1])
|
|
||||||
let hg = tolower(foundcolor[2])
|
|
||||||
let hb = tolower(foundcolor[3])
|
|
||||||
let ha = tolower(foundcolor[4])
|
|
||||||
let foundcolor = substitute(foundcolor, '[[:xdigit:]]', '&&', 'g')
|
|
||||||
else
|
|
||||||
let hr = tolower(foundcolor[1:2])
|
|
||||||
let hg = tolower(foundcolor[3:4])
|
|
||||||
let hb = tolower(foundcolor[5:6])
|
|
||||||
let ha = tolower(foundcolor[7:8])
|
|
||||||
endif
|
|
||||||
if len(foundcolor) == 9
|
|
||||||
let alpha = foundcolor[7:8]
|
|
||||||
let foundcolor = foundcolor[0:6]
|
|
||||||
else
|
|
||||||
let alpha = 'ff'
|
|
||||||
endif
|
|
||||||
if empty(rgb_bg)
|
|
||||||
if colorlen == 5
|
|
||||||
let pat = printf('\c#%s%s%s\ze\x\>', hr,hg,hb)
|
|
||||||
elseif colorlen == 9
|
|
||||||
let pat = printf('\c#%s%s%s\ze\x\x\>', hr,hg,hb)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
if empty(rgb_bg) || tolower(alpha) == 'ff'
|
|
||||||
call add(ret, [foundcolor, pat])
|
|
||||||
else
|
|
||||||
let rgba = s:Hexa2Rgba(foundcolor, alpha)
|
|
||||||
let rgb = s:Rgba2Rgb(rgba[0], rgba[1], rgba[2], rgba[3], 0, rgb_bg)
|
|
||||||
let l:color = printf('#%02x%02x%02x', rgb[0], rgb[1], rgb[2])
|
|
||||||
call add(ret, [l:color, pat])
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
return ret
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:RgbColor(str, lineno) "{{{2
|
|
||||||
let ret = []
|
|
||||||
let place = 0
|
|
||||||
let colorpat = '\<rgb(\v\s*(\d+(\%)?)\s*,\s*(\d+%(\2))\s*,\s*(\d+%(\2))\s*\)'
|
|
||||||
while 1
|
|
||||||
let foundcolor = matchlist(a:str, colorpat, place)
|
|
||||||
if empty(foundcolor)
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let place = matchend(a:str, colorpat, place)
|
|
||||||
if foundcolor[2] == '%'
|
|
||||||
let r = foundcolor[1] * 255 / 100
|
|
||||||
let g = foundcolor[3] * 255 / 100
|
|
||||||
let b = foundcolor[4] * 255 / 100
|
|
||||||
else
|
|
||||||
let r = foundcolor[1]
|
|
||||||
let g = foundcolor[3]
|
|
||||||
let b = foundcolor[4]
|
|
||||||
endif
|
|
||||||
if r > 255 || g > 255 || b > 255
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let pat = printf('\<rgb(\v\s*%s\s*,\s*%s\s*,\s*%s\s*\)', foundcolor[1], foundcolor[3], foundcolor[4])
|
|
||||||
if foundcolor[2] == '%'
|
|
||||||
let pat = substitute(pat, '%', '\\%', 'g')
|
|
||||||
endif
|
|
||||||
let l:color = printf('#%02x%02x%02x', r, g, b)
|
|
||||||
call add(ret, [l:color, pat])
|
|
||||||
endwhile
|
|
||||||
return ret
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:RgbaColor(str, lineno) "{{{2
|
|
||||||
if has("gui_running")
|
|
||||||
let rgb_bg = s:RgbBgColor()
|
|
||||||
else
|
|
||||||
" translucent colors would display incorrectly, so ignore the alpha value
|
|
||||||
let rgb_bg = []
|
|
||||||
endif
|
|
||||||
let ret = []
|
|
||||||
let place = 0
|
|
||||||
let percent = 0
|
|
||||||
let colorpat = '\<rgba(\v\s*(\d+(\%)?)\s*,\s*(\d+%(\2))\s*,\s*(\d+%(\2))\s*,\s*(-?[.[:digit:]]+)\s*\)'
|
|
||||||
while 1
|
|
||||||
let foundcolor = matchlist(a:str, colorpat, place)
|
|
||||||
if empty(foundcolor)
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
if foundcolor[2] == '%'
|
|
||||||
let percent = 1
|
|
||||||
endif
|
|
||||||
let rgb = s:Rgba2Rgb(foundcolor[1], foundcolor[3], foundcolor[4], foundcolor[5], percent, rgb_bg)
|
|
||||||
if empty(rgb)
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let place = matchend(a:str, colorpat, place)
|
|
||||||
if empty(rgb_bg)
|
|
||||||
let pat = printf('\<rgba(\v\s*%s\s*,\s*%s\s*,\s*%s\s*,\ze\s*(-?[.[:digit:]]+)\s*\)', foundcolor[1], foundcolor[3], foundcolor[4])
|
|
||||||
else
|
|
||||||
let pat = printf('\<rgba(\v\s*%s\s*,\s*%s\s*,\s*%s\s*,\s*%s0*\s*\)', foundcolor[1], foundcolor[3], foundcolor[4], foundcolor[5])
|
|
||||||
endif
|
|
||||||
if percent
|
|
||||||
let pat = substitute(pat, '%', '\\%', 'g')
|
|
||||||
endif
|
|
||||||
let l:color = printf('#%02x%02x%02x', rgb[0], rgb[1], rgb[2])
|
|
||||||
call add(ret, [l:color, pat])
|
|
||||||
endwhile
|
|
||||||
return ret
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:PreviewColorInLine(where) "{{{1
|
|
||||||
let line = getline(a:where)
|
|
||||||
for Func in s:ColorFinder
|
|
||||||
let ret = Func(line, a:where)
|
|
||||||
" returned a list of a list: color as #rrggbb, text pattern to highlight
|
|
||||||
for r in ret
|
|
||||||
call s:SetMatcher(r[0], r[1])
|
|
||||||
endfor
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:CursorMoved() "{{{1
|
|
||||||
if !exists('w:colormatches')
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
if exists('b:colorizer_last_update')
|
|
||||||
if b:colorizer_last_update == b:changedtick
|
|
||||||
" Nothing changed
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
call s:PreviewColorInLine('.')
|
|
||||||
let b:colorizer_last_update = b:changedtick
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:TextChanged() "{{{1
|
|
||||||
if !exists('w:colormatches')
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
echomsg "TextChanged"
|
|
||||||
call s:PreviewColorInLine('.')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! colorizer#ColorHighlight(update, ...) "{{{1
|
|
||||||
if exists('w:colormatches')
|
|
||||||
if !a:update
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
call s:ClearMatches()
|
|
||||||
endif
|
|
||||||
if (g:colorizer_maxlines > 0) && (g:colorizer_maxlines <= line('$'))
|
|
||||||
return
|
|
||||||
end
|
|
||||||
let w:colormatches = {}
|
|
||||||
if g:colorizer_fgcontrast != s:saved_fgcontrast || (exists("a:1") && a:1 == '!')
|
|
||||||
let s:force_group_update = 1
|
|
||||||
endif
|
|
||||||
for i in range(1, line("$"))
|
|
||||||
call s:PreviewColorInLine(i)
|
|
||||||
endfor
|
|
||||||
let s:force_group_update = 0
|
|
||||||
let s:saved_fgcontrast = g:colorizer_fgcontrast
|
|
||||||
augroup Colorizer
|
|
||||||
au!
|
|
||||||
if exists('##TextChanged')
|
|
||||||
autocmd TextChanged * silent call s:TextChanged()
|
|
||||||
if v:version > 704 || v:version == 704 && has('patch143')
|
|
||||||
autocmd TextChangedI * silent call s:TextChanged()
|
|
||||||
else
|
|
||||||
" TextChangedI does not work as expected
|
|
||||||
autocmd CursorMovedI * silent call s:CursorMoved()
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
autocmd CursorMoved,CursorMovedI * silent call s:CursorMoved()
|
|
||||||
endif
|
|
||||||
" rgba handles differently, so need updating
|
|
||||||
autocmd GUIEnter * silent call colorizer#ColorHighlight(1)
|
|
||||||
autocmd BufEnter * silent call colorizer#ColorHighlight(1)
|
|
||||||
autocmd WinEnter * silent call colorizer#ColorHighlight(1)
|
|
||||||
autocmd ColorScheme * let s:force_group_update=1 | silent call colorizer#ColorHighlight(1)
|
|
||||||
augroup END
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! colorizer#ColorClear() "{{{1
|
|
||||||
augroup Colorizer
|
|
||||||
au!
|
|
||||||
augroup END
|
|
||||||
augroup! Colorizer
|
|
||||||
let save_tab = tabpagenr()
|
|
||||||
let save_win = winnr()
|
|
||||||
tabdo windo call s:ClearMatches()
|
|
||||||
exe 'tabn '.save_tab
|
|
||||||
exe save_win . 'wincmd w'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:ClearMatches() "{{{1
|
|
||||||
if !exists('w:colormatches')
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
for i in values(w:colormatches)
|
|
||||||
try
|
|
||||||
call matchdelete(i)
|
|
||||||
catch /.*/
|
|
||||||
" matches have been cleared in other ways, e.g. user has called clearmatches()
|
|
||||||
endtry
|
|
||||||
endfor
|
|
||||||
unlet w:colormatches
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! colorizer#ColorToggle() "{{{1
|
|
||||||
if exists('#Colorizer')
|
|
||||||
call colorizer#ColorClear()
|
|
||||||
echomsg 'Disabled color code highlighting.'
|
|
||||||
else
|
|
||||||
call colorizer#ColorHighlight(0)
|
|
||||||
echomsg 'Enabled color code highlighting.'
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! colorizer#AlphaPositionToggle() "{{{1
|
|
||||||
if exists('#Colorizer')
|
|
||||||
if get(g:, 'colorizer_hex_alpha_first') == 1
|
|
||||||
let g:colorizer_hex_alpha_first = 0
|
|
||||||
else
|
|
||||||
let g:colorizer_hex_alpha_first = 1
|
|
||||||
endif
|
|
||||||
call colorizer#ColorHighlight(1)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:GetXterm2rgbTable() "{{{1
|
|
||||||
if !exists('s:table_xterm2rgb')
|
|
||||||
let s:table_xterm2rgb = []
|
|
||||||
for c in range(0, 254)
|
|
||||||
let s:color = s:Xterm2rgb(c)
|
|
||||||
call add(s:table_xterm2rgb, s:color)
|
|
||||||
endfor
|
|
||||||
endif
|
|
||||||
return s:table_xterm2rgb
|
|
||||||
endfun
|
|
||||||
|
|
||||||
" Setups {{{1
|
|
||||||
let s:ColorFinder = [function('s:HexCode'), function('s:RgbColor'), function('s:RgbaColor')]
|
|
||||||
let s:force_group_update = 0
|
|
||||||
let s:predefined_fgcolors = {}
|
|
||||||
let s:predefined_fgcolors['dark'] = ['#444444', '#222222', '#000000']
|
|
||||||
let s:predefined_fgcolors['light'] = ['#bbbbbb', '#dddddd', '#ffffff']
|
|
||||||
if !exists("g:colorizer_fgcontrast")
|
|
||||||
" Default to black / white
|
|
||||||
let g:colorizer_fgcontrast = len(s:predefined_fgcolors['dark']) - 1
|
|
||||||
elseif g:colorizer_fgcontrast >= len(s:predefined_fgcolors['dark'])
|
|
||||||
echohl WarningMsg
|
|
||||||
echo "g:colorizer_fgcontrast value invalid, using default"
|
|
||||||
echohl None
|
|
||||||
let g:colorizer_fgcontrast = len(s:predefined_fgcolors['dark']) - 1
|
|
||||||
endif
|
|
||||||
let s:saved_fgcontrast = g:colorizer_fgcontrast
|
|
||||||
|
|
||||||
" Restoration and modelines {{{1
|
|
||||||
let &cpo = s:keepcpo
|
|
||||||
unlet s:keepcpo
|
|
||||||
" vim:ft=vim:fdm=marker:fmr={{{,}}}:ts=8:sw=2:sts=2:et
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,2 +0,0 @@
|
||||||
" Exception Abbrev
|
|
||||||
nnoremap <C-j> ostring funcName = MethodBase.GetCurrentMethod().ReflectedType.ToString() + "." + MethodBase.GetCurrentMethod().Name;<CR>try {<CR><Esc>k$%ocatch (Exception ex) {<CR>Log(1, MessageType.Error, funcName, String.Format("{0}:\n\n{1}\n", funcName, ex));<CR>}<CR>}<Esc>=%
|
|
|
@ -1,23 +0,0 @@
|
||||||
" Basics
|
|
||||||
set autoindent noexpandtab tabstop=4 shiftwidth=4
|
|
||||||
" Shortcuts
|
|
||||||
abbrev funct func Test(t *testing.T) {<CR>}<Esc>kwwi
|
|
||||||
abbrev trun t.Run("", func(t *testing.T) {<CR>})<Esc>%la
|
|
||||||
abbrev terr t.Errorf("got %v, want %v", got, want)<Esc>02f,lcaw
|
|
||||||
abbrev thelp func(t *testing.T) {<CR>t.Helper()<CR>}<Esc>ko
|
|
||||||
abbrev fori for i := 0; i <; i++{<CR>}<Esc>k2f;i
|
|
||||||
abbrev fore for i, c := range{<CR>}<Esc>kf{i
|
|
||||||
|
|
||||||
" Compiling
|
|
||||||
nnoremap <C-c><C-f> <Esc>:GoFmt<CR>
|
|
||||||
nnoremap <C-c><C-c> <Esc>:!clear<CR><CR>:GoRun<CR>
|
|
||||||
nnoremap <C-c><C-b> <CR>:GoBuild<CR>
|
|
||||||
nnoremap <C-c><C-t> <CR>:GoTest<CR>
|
|
||||||
nnoremap <F9> <CR>:GoImports<CR>
|
|
||||||
nnoremap <C-c><C-d> <CR>:GoDebugStart<CR>
|
|
||||||
nnoremap gd <Esc>:GoDef
|
|
||||||
nnoremap <F1> <Esc>:GoDoc<CR>
|
|
||||||
|
|
||||||
map <C-c><C-w> <Esc>:!clear; GOOS=windows GOARCH=386 go build -o %<.exe %<CR><CR>
|
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
"html files
|
|
||||||
iabbrev </ </<C-X><C-O>
|
|
|
@ -1,13 +0,0 @@
|
||||||
" setlocal spell spelllang=de_de
|
|
||||||
" set nospell
|
|
||||||
|
|
||||||
" Abbrevs
|
|
||||||
abbrev iff Leftrightarrow
|
|
||||||
|
|
||||||
" Begin Shortcuts
|
|
||||||
inoremap $$ $<Esc>bi$\<Esc>f$a
|
|
||||||
vnoremap <C-l> da\overline{<C-o>p}<Esc>
|
|
||||||
|
|
||||||
" Compilation
|
|
||||||
map <C-c><C-c> <Esc>:!pandoc <C-r>% -o <C-r>%<Del><Del>pdf --from markdown+tex_math_dollars+yaml_metadata_block+hard_line_breaks --template $HOME/Templates/Pandoc/eisvogel --listings &>/dev/null & disown <CR><CR>
|
|
||||||
map <C-c><C-d> <Esc>:!zathura <C-r>%<Del><Del>pdf &>/dev/null & disown <CR><CR>
|
|
|
@ -1,17 +0,0 @@
|
||||||
" Python settings
|
|
||||||
|
|
||||||
|
|
||||||
" Shortcuts
|
|
||||||
imap <leader>ifm if<Space>__name__<Space>==<Space>'__main__':<CR>
|
|
||||||
|
|
||||||
" Compiling
|
|
||||||
map <C-c><C-c> <Esc>:!clear; python %<CR><CR>
|
|
||||||
|
|
||||||
" Use the below highlight group when displaying bad whitespace is desired.
|
|
||||||
highlight BadWhitespace ctermbg=red guibg=red
|
|
||||||
|
|
||||||
" Display tabs at the beginning of a line in Python mode as bad.
|
|
||||||
au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/
|
|
||||||
|
|
||||||
" Make trailing whitespace be flagged as bad.
|
|
||||||
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
|
|
|
@ -1,3 +0,0 @@
|
||||||
" Compilation
|
|
||||||
map <C-c><C-c> <Esc>:!clear&./%<CR><CR>
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
setlocal spell spelllang=de_de
|
|
||||||
|
|
||||||
" Begin Shortcuts
|
|
||||||
noremap <C-B> YpkI\begin{<Esc>A}<Esc>jI\end{<Esc>A}<Esc>ko
|
|
||||||
noremap! <C-B> <Esc>YpkI\begin{<Esc>A}<Esc>jI\end{<Esc>A}<Esc>ko
|
|
||||||
|
|
||||||
inoremap ;it \begin{itemize}<CR>\end{itemize}<Esc>k
|
|
||||||
inoremap ;i \item{}<Space>
|
|
||||||
inoremap "" "`"'<Esc>hha
|
|
||||||
inoremap ;fp \begin{tabular}{ccc}<CR>\toprule<CR>Ja & Nein & Enthaltung \\ <CR> \midrule<CR> <x_x> & <x_x> & <x_x> \\<CR>\bottomrule<CR>\end{tabular}<Esc>0kk<Space><Tab>
|
|
||||||
inoremap ;sec \section{}<Esc>i
|
|
||||||
inoremap ;ssec \subsection{}<Esc>i
|
|
||||||
inoremap ;sssec \subsubsection{}<Esc>i
|
|
||||||
|
|
||||||
" Surround stuff
|
|
||||||
vnoremap <C-B> da\textbf{<C-R>"}<Esc>
|
|
||||||
vnoremap <C-L> da\underline{<C-R>"}<Esc>
|
|
||||||
vnoremap <C-I> da\textit{<C-R>"}<Esc>
|
|
||||||
vnoremap <C-E> da\emph{<C-R>"}<Esc>
|
|
||||||
vnoremap ( da(<C-R>")<Esc>
|
|
||||||
vnoremap "" da"`<C-R>""'<Esc>
|
|
||||||
|
|
||||||
|
|
||||||
":command! -complete=file -nargs=1 Rpdf :r !pdftotext -nopgbrk <q-args> -
|
|
||||||
":command! -complete=file -nargs=1 Rpdf :r !pdftotext -nopgbrk <q-args> - | fmt -csw78
|
|
||||||
" Compilation
|
|
||||||
noremap <C-c><C-c> <Esc>:!latexmk -pdf -silent "<C-r>%" &>/dev/null & disown <CR>:redraw!<CR><CR>
|
|
||||||
noremap <C-c><C-v> <Esc>:!latexmk -c &>/dev/null & disown <CR><CR>
|
|
||||||
noremap <C-c><C-d> <Esc>:!zathura <C-r>%<Del><Del><Del>pdf &>/dev/null & disown <CR><CR>
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
" Basics
|
|
||||||
syntax on
|
|
||||||
filetype indent plugin on
|
|
||||||
set background=light
|
|
||||||
set encoding=utf-8
|
|
||||||
set smartcase
|
|
||||||
set incsearch
|
|
||||||
set hlsearch
|
|
||||||
set nospell
|
|
||||||
set hidden
|
|
||||||
|
|
||||||
" Tab behavior
|
|
||||||
set expandtab
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
set softtabstop=4
|
|
||||||
|
|
||||||
" New window positions
|
|
||||||
set splitbelow
|
|
||||||
set splitright
|
|
||||||
|
|
||||||
" Statusbar
|
|
||||||
set statusline=%F%m%r%h%w[%L][%{&ff}]%y[%p%%][%04l,%04v]
|
|
||||||
|
|
||||||
" Window Management
|
|
||||||
let &winheight = &lines * 7 / 10
|
|
||||||
|
|
||||||
" Path
|
|
||||||
set path+=**
|
|
||||||
set wildmenu
|
|
|
@ -1,76 +0,0 @@
|
||||||
" colorizer.vim Colorize all text in the form #rrggbb or #rgb; entrance
|
|
||||||
" Maintainer: lilydjwg <lilydjwg@gmail.com>
|
|
||||||
" Version: 1.4.2
|
|
||||||
" Licence: Vim license. See ':help license'
|
|
||||||
" Derived From: css_color.vim
|
|
||||||
" http://www.vim.org/scripts/script.php?script_id=2150
|
|
||||||
" Thanks To: Niklas Hofer (Author of css_color.vim), Ingo Karkat, rykka,
|
|
||||||
" KrzysztofUrban, blueyed, shanesmith, UncleBill
|
|
||||||
" Usage:
|
|
||||||
"
|
|
||||||
" This plugin defines three commands:
|
|
||||||
"
|
|
||||||
" ColorHighlight - start/update highlighting
|
|
||||||
" ColorClear - clear all highlights
|
|
||||||
" ColorToggle - toggle highlights
|
|
||||||
"
|
|
||||||
" By default, <leader>tc is mapped to ColorToggle. If you want to use another
|
|
||||||
" key map, do like this:
|
|
||||||
" nmap ,tc <Plug>Colorizer
|
|
||||||
"
|
|
||||||
" If you want completely not to map it, set the following in your vimrc:
|
|
||||||
" let g:colorizer_nomap = 1
|
|
||||||
"
|
|
||||||
" To use solid color highlight, set this in your vimrc (later change won't
|
|
||||||
" probably take effect unless you use ':ColorHighlight!' to force update):
|
|
||||||
" let g:colorizer_fgcontrast = -1
|
|
||||||
" set it to 0 or 1 to use a softened foregroud color.
|
|
||||||
"
|
|
||||||
" If you don't want to enable colorizer at startup, set the following:
|
|
||||||
" let g:colorizer_startup = 0
|
|
||||||
"
|
|
||||||
" You can disable it on long buffers, for example if more than 1000 lines:
|
|
||||||
" let g:colorizer_maxlines = 1000
|
|
||||||
" -1 means unlimited number of lines
|
|
||||||
"
|
|
||||||
" There are color strings in the format #RRGGBBAA and #AARRGGBB. The former is
|
|
||||||
" more common so it's the default. If you want the latter, set the following:
|
|
||||||
" let g:colorizer_hex_alpha_first = 1
|
|
||||||
"
|
|
||||||
" You can toggle the recognized alpha position by
|
|
||||||
" call colorizer#AlphaPositionToggle()
|
|
||||||
"
|
|
||||||
" Note: if you modify a color string in normal mode, if the cursor is still on
|
|
||||||
" that line, it'll take 'updatetime' seconds to update. You can use
|
|
||||||
" :ColorHighlight (or your key mapping) again to force update.
|
|
||||||
"
|
|
||||||
" Performance Notice: In terminal, it may take several seconds to highlight 240
|
|
||||||
" different colors. GUI version is much quicker.
|
|
||||||
|
|
||||||
" Reload guard and 'compatible' handling {{{1
|
|
||||||
if exists("loaded_colorizer") || v:version < 700 || !(has("gui_running") || &t_Co == 256)
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
let loaded_colorizer = 1
|
|
||||||
|
|
||||||
let s:save_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
"Define commands {{{1
|
|
||||||
if !exists('g:colorizer_maxlines')
|
|
||||||
let g:colorizer_maxlines = -1
|
|
||||||
endif
|
|
||||||
command! -bar -bang ColorHighlight call colorizer#ColorHighlight(1, "<bang>")
|
|
||||||
command! -bar ColorClear call colorizer#ColorClear()
|
|
||||||
command! -bar ColorToggle call colorizer#ColorToggle()
|
|
||||||
nnoremap <silent> <Plug>Colorizer :ColorToggle<CR>
|
|
||||||
if !hasmapto("<Plug>Colorizer") && (!exists("g:colorizer_nomap") || g:colorizer_nomap == 0)
|
|
||||||
nmap <unique> <Leader>tc <Plug>Colorizer
|
|
||||||
endif
|
|
||||||
if !exists('g:colorizer_startup') || g:colorizer_startup
|
|
||||||
call colorizer#ColorHighlight(0)
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Cleanup and modelines {{{1
|
|
||||||
let &cpo = s:save_cpo
|
|
||||||
" vim:ft=vim:fdm=marker:fmr={{{,}}}:ts=8:sw=2:sts=2:
|
|
|
@ -1,2 +0,0 @@
|
||||||
autocmd BufNewFile,BufRead *.razor setf html
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,17 +0,0 @@
|
||||||
runtime macros/matchit.vim
|
|
||||||
filetype on
|
|
||||||
|
|
||||||
call plug#begin()
|
|
||||||
Plug 'lervag/vimtex'
|
|
||||||
Plug 'sheerun/vim-polyglot'
|
|
||||||
Plug 'fatih/vim-go'
|
|
||||||
call plug#end()
|
|
||||||
|
|
||||||
let g:match_ignorecase = 1
|
|
||||||
|
|
||||||
let g:polyglot_disabled = ['latex']
|
|
||||||
|
|
||||||
let g:UltiSnipsExpandTrigger="<tab>"
|
|
||||||
let g:UltiSnipsJumpForwardTrigger="<c-b>"
|
|
||||||
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
" Remaps
|
|
||||||
nnoremap <C-J> <C-W><C-J>
|
|
||||||
nnoremap <C-K> <C-W><C-K>
|
|
||||||
nnoremap <C-L> <C-W><C-L>
|
|
||||||
nnoremap <C-H> <C-W><C-H>
|
|
||||||
nnoremap J :bn<CR>
|
|
||||||
nnoremap K :bp<CR>
|
|
||||||
map <C-B> <Esc>:b<space>
|
|
||||||
nnoremap <C-u> :earlier<CR>
|
|
||||||
nnoremap <C-U> :later<CR>
|
|
||||||
noremap Y "+y
|
|
||||||
noremap <C-E> :e **/*
|
|
||||||
noremap <F12> :tabedit<CR>:ter<CR><C-w><C-w>:q<CR>
|
|
||||||
noremap <F12> <Esc>:syntax sync fromstart<CR>
|
|
||||||
inoremap <F12> <C-o>:syntax sync fromstart<CR>
|
|
||||||
noremap == ==j
|
|
||||||
nmap 0 ^
|
|
||||||
nmap ' `
|
|
||||||
|
|
||||||
" Diaeresis for e.g. german
|
|
||||||
inoremap a<leader> ä
|
|
||||||
inoremap o<leader> ö
|
|
||||||
inoremap u<leader> ü
|
|
||||||
inoremap A<leader> Ä
|
|
||||||
inoremap U<leader> Ü
|
|
||||||
inoremap O<leader> Ö
|
|
||||||
inoremap s<leader> ß
|
|
||||||
inoremap e<leader> €
|
|
|
@ -1,14 +0,0 @@
|
||||||
" Vim Settings
|
|
||||||
"" Move the swap file location to protect against CVE-2017-1000382
|
|
||||||
if exists('$XDG_CACHE_HOME')
|
|
||||||
let &g:directory=$XDG_CACHE_HOME
|
|
||||||
else
|
|
||||||
let &g:directory=$HOME . '/.cache'
|
|
||||||
endif
|
|
||||||
let &g:directory.='/vim/swap//'
|
|
||||||
"" Create swap directory if it doesn't exist
|
|
||||||
if ! isdirectory(expand(&g:directory))
|
|
||||||
silent! call mkdir(expand(&g:directory), 'p', 0700)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
augroup templates
|
|
||||||
au!
|
|
||||||
" read in template files
|
|
||||||
autocmd BufNewFile *.* silent! execute '0r $HOME/.vim/templates/skeleton.'.expand("<afile>:e")
|
|
||||||
|
|
||||||
" parse special text in the templates after the read
|
|
||||||
autocmd BufNewFile * %s#\[:VIM_EVAL:\]\(.\{-\}\)\[:END_EVAL:\]#\=eval(submatch(1))#ge
|
|
||||||
augroup END
|
|
|
@ -1,846 +0,0 @@
|
||||||
#
|
|
||||||
#a
|
|
||||||
a
|
|
||||||
A2
|
|
||||||
Abdallah
|
|
||||||
Abdifitah
|
|
||||||
absFSR
|
|
||||||
#achschaftbezahlten
|
|
||||||
Active
|
|
||||||
Adomas
|
|
||||||
#affemschinen
|
|
||||||
Ahlemann
|
|
||||||
AirSniff
|
|
||||||
Akduell
|
|
||||||
Akyüz
|
|
||||||
Alanah
|
|
||||||
Aledia
|
|
||||||
Aline
|
|
||||||
Almeida
|
|
||||||
Ambient
|
|
||||||
Ambilights
|
|
||||||
Ambrosius
|
|
||||||
anderer
|
|
||||||
Andert
|
|
||||||
Anil
|
|
||||||
#ansponderschloss
|
|
||||||
Anwendungsentwickler
|
|
||||||
Anwendungsntwicklung
|
|
||||||
anwHelper
|
|
||||||
App
|
|
||||||
Ashef
|
|
||||||
Aslan
|
|
||||||
ASP
|
|
||||||
AStAs
|
|
||||||
asyncio
|
|
||||||
Athanasiadis
|
|
||||||
Aufderlandwehr
|
|
||||||
außeinanderzusetzen
|
|
||||||
Außenaktivitäten
|
|
||||||
auswertung
|
|
||||||
Aylin
|
|
||||||
#b
|
|
||||||
b
|
|
||||||
B1
|
|
||||||
Bachelorarbeit
|
|
||||||
Bachelorarbeitsnote
|
|
||||||
Bachelorstudiengang
|
|
||||||
Bakir
|
|
||||||
Banas
|
|
||||||
Bandalphabets
|
|
||||||
bandbeschränkt
|
|
||||||
Bangel
|
|
||||||
Bärserker
|
|
||||||
Bathon
|
|
||||||
Batuhan
|
|
||||||
Bauingeneurwesen
|
|
||||||
Baumert
|
|
||||||
Beamerfläche
|
|
||||||
Beckerpape
|
|
||||||
BEGINNING
|
|
||||||
Beitragsvorlage
|
|
||||||
Bektas
|
|
||||||
Bereska
|
|
||||||
Berichtspunkte
|
|
||||||
Bernemann
|
|
||||||
Berufungskomission
|
|
||||||
Beschaffungsantrag
|
|
||||||
Besetzungskommmission
|
|
||||||
Bestgen
|
|
||||||
besuch
|
|
||||||
Betriebsysteme
|
|
||||||
Beyer
|
|
||||||
Biebeck
|
|
||||||
Bildungsaspekt
|
|
||||||
Bittner
|
|
||||||
Bittners
|
|
||||||
Bojahr
|
|
||||||
Bookstack
|
|
||||||
Bookstacks
|
|
||||||
boolean
|
|
||||||
Bootstrap
|
|
||||||
Boscheck
|
|
||||||
Boßeler
|
|
||||||
Boxes
|
|
||||||
Brauerreitour
|
|
||||||
Brinda
|
|
||||||
Brökelschen
|
|
||||||
Bruns
|
|
||||||
Bsp
|
|
||||||
Buciunes
|
|
||||||
Buddenbohm
|
|
||||||
Buildcount
|
|
||||||
Bulavintseva
|
|
||||||
Buono
|
|
||||||
Burczyk
|
|
||||||
Burgmann
|
|
||||||
Busanbindung
|
|
||||||
Bushran
|
|
||||||
Busse
|
|
||||||
Busticket
|
|
||||||
c
|
|
||||||
C2
|
|
||||||
Campusse
|
|
||||||
Campussen
|
|
||||||
Cansu
|
|
||||||
CaSchü
|
|
||||||
Ceyda
|
|
||||||
Challenges
|
|
||||||
chart
|
|
||||||
Christos
|
|
||||||
Cirriculum
|
|
||||||
cloud
|
|
||||||
Concurrency
|
|
||||||
Correct
|
|
||||||
Credit
|
|
||||||
Creditpunkte
|
|
||||||
CSS
|
|
||||||
CTF
|
|
||||||
d
|
|
||||||
Darleen
|
|
||||||
Dat
|
|
||||||
Datenbankmanagementsystem
|
|
||||||
Datenbanktabelle
|
|
||||||
Datenschutzgrundverordnung
|
|
||||||
Davi
|
|
||||||
david
|
|
||||||
DBMS
|
|
||||||
Debian
|
|
||||||
Dechenstraße
|
|
||||||
Deckenhalterung
|
|
||||||
Deligierter
|
|
||||||
Desktopanwendungen
|
|
||||||
Dette
|
|
||||||
Deutschtest
|
|
||||||
Dewert
|
|
||||||
Diskussionszentren
|
|
||||||
Disziplinator
|
|
||||||
Dittler
|
|
||||||
docker
|
|
||||||
Docs
|
|
||||||
Dogan
|
|
||||||
Dogs
|
|
||||||
Dolshanski
|
|
||||||
Dömckes
|
|
||||||
Dorit
|
|
||||||
Dreizehnlindenhalle
|
|
||||||
dringstens
|
|
||||||
Drittveranstaltungen
|
|
||||||
Druckerpapier
|
|
||||||
DSGVO
|
|
||||||
due
|
|
||||||
durchzuplanen
|
|
||||||
e
|
|
||||||
Easteregg
|
|
||||||
Echtle
|
|
||||||
edge
|
|
||||||
EDITABLE
|
|
||||||
eduroam
|
|
||||||
eduroams
|
|
||||||
Eikemper
|
|
||||||
#eilnahmergebühren
|
|
||||||
Eingabewort
|
|
||||||
Einschreibezahlen
|
|
||||||
Einwurfschlitz
|
|
||||||
Eirich
|
|
||||||
#eitereführen
|
|
||||||
#elbstbewirtschaftlung
|
|
||||||
Elif
|
|
||||||
emacs
|
|
||||||
Entschuldigungsstatus
|
|
||||||
Erdmann
|
|
||||||
#ergleisweis
|
|
||||||
erp4students
|
|
||||||
Ersatzschlüssel
|
|
||||||
Ersti
|
|
||||||
Erstifahrt
|
|
||||||
Erstis
|
|
||||||
Erstitüten
|
|
||||||
Erstsemestereinführung
|
|
||||||
Erstsemesterfahrt
|
|
||||||
Erstsemster
|
|
||||||
Erstsemstern
|
|
||||||
Ertas
|
|
||||||
#ertiefungsbereic
|
|
||||||
ESE
|
|
||||||
Essensflatrate
|
|
||||||
Evaluierungskomission
|
|
||||||
Evaluierungskomissionen
|
|
||||||
Excel
|
|
||||||
Exmatrikulierung
|
|
||||||
exterene
|
|
||||||
f
|
|
||||||
fachchaftsnahe
|
|
||||||
Fachschaftenkonferenz
|
|
||||||
Fachschafts
|
|
||||||
Fachschaftsrat
|
|
||||||
Fachschaftsräte
|
|
||||||
Fachschaftsrates
|
|
||||||
Fachschaftsrathelfer
|
|
||||||
Fachschaftsratsmitglied
|
|
||||||
Fachschaftsratsmitglieder
|
|
||||||
Fachschaftsratssitzung
|
|
||||||
Fachschaftsraum
|
|
||||||
Fachschaftsraums
|
|
||||||
Fachschaftstreffen
|
|
||||||
Fachschaftsveranstaltungen
|
|
||||||
Fachschaftsvollversammlung
|
|
||||||
Fahrradreperaturstation
|
|
||||||
Fahrscheinkontrolle
|
|
||||||
Fakultätsratssitzung
|
|
||||||
Fakultätszusammenlegung
|
|
||||||
false
|
|
||||||
Fanke
|
|
||||||
Filipp
|
|
||||||
Finanzreferat
|
|
||||||
flag
|
|
||||||
Flunkyballturnier
|
|
||||||
Folke
|
|
||||||
Formating
|
|
||||||
formatting
|
|
||||||
Forms
|
|
||||||
Fotoboxen
|
|
||||||
Framework
|
|
||||||
Frameworks
|
|
||||||
Frederik
|
|
||||||
Freefloating
|
|
||||||
Freiverzehrkarte
|
|
||||||
Fremdbibliotheken
|
|
||||||
Frese
|
|
||||||
Freundel
|
|
||||||
Fritsch
|
|
||||||
fse
|
|
||||||
FSE
|
|
||||||
FSK
|
|
||||||
FSKs
|
|
||||||
fsr
|
|
||||||
FSR
|
|
||||||
FSRs
|
|
||||||
FSVV
|
|
||||||
Funkenberg
|
|
||||||
Fürstimmen
|
|
||||||
FZS
|
|
||||||
Gamenight
|
|
||||||
Gästeliste
|
|
||||||
Gästelistenplatz
|
|
||||||
Gästelistenplätzen
|
|
||||||
Gebäudemanagement
|
|
||||||
Gebäudemanagements
|
|
||||||
Gebäudezugang
|
|
||||||
gefeba
|
|
||||||
gegendert
|
|
||||||
Gegenstandsverzeichnis
|
|
||||||
Gegenstandsverzeichnisses
|
|
||||||
Geochaching
|
|
||||||
Gesundheitsbelehrung
|
|
||||||
Gesundheitsbelehrungen
|
|
||||||
Geurtz
|
|
||||||
Giebeler
|
|
||||||
Git
|
|
||||||
GitLab
|
|
||||||
Gladbeck
|
|
||||||
Glaspavillion
|
|
||||||
Gleichstellungsbeauftragten
|
|
||||||
Gleistellungsbeauftragte
|
|
||||||
Goedicke
|
|
||||||
Golenia
|
|
||||||
GoogleCTF
|
|
||||||
Gördes
|
|
||||||
Görgens
|
|
||||||
Görges
|
|
||||||
GOTO
|
|
||||||
GOTOSTART
|
|
||||||
Grei
|
|
||||||
Gremienmails
|
|
||||||
Gremienplätze
|
|
||||||
Gremienwahlen
|
|
||||||
Gremzo
|
|
||||||
Grinewitschus
|
|
||||||
Gritzner
|
|
||||||
Günes
|
|
||||||
h
|
|
||||||
Häckner
|
|
||||||
Haefs
|
|
||||||
Hallekamp
|
|
||||||
Han
|
|
||||||
Hardening
|
|
||||||
Hartnagel
|
|
||||||
Hasselhuhn
|
|
||||||
Hauptcampus
|
|
||||||
Hauptverantwortlicher
|
|
||||||
Heckschen
|
|
||||||
Heghmanns
|
|
||||||
Heitmann
|
|
||||||
Helferantrag
|
|
||||||
Henscheid
|
|
||||||
Herbrich
|
|
||||||
Herrn
|
|
||||||
Heßeling
|
|
||||||
Hesselmann
|
|
||||||
Hetkämper
|
|
||||||
Hetmank
|
|
||||||
Hetzel
|
|
||||||
Heyermann
|
|
||||||
HG
|
|
||||||
HHJ
|
|
||||||
HHP
|
|
||||||
Hilal
|
|
||||||
Hißmann
|
|
||||||
Hochschulpolitik
|
|
||||||
Högden
|
|
||||||
Hondar
|
|
||||||
hopo
|
|
||||||
HoPo
|
|
||||||
Horlemann
|
|
||||||
Hoßfeld
|
|
||||||
How2Rat
|
|
||||||
Hülsmann
|
|
||||||
Hülzevoort
|
|
||||||
Hygienedienst
|
|
||||||
Hyperthreading
|
|
||||||
i
|
|
||||||
ICB
|
|
||||||
if
|
|
||||||
IF
|
|
||||||
#igitalisierung
|
|
||||||
Immel
|
|
||||||
Inf
|
|
||||||
info
|
|
||||||
Inforeferat
|
|
||||||
Infragistics
|
|
||||||
Infrastrukturreferats
|
|
||||||
Ingrun
|
|
||||||
Instagram
|
|
||||||
IoT
|
|
||||||
Ipek
|
|
||||||
Isabell
|
|
||||||
ISE
|
|
||||||
Isidorovic
|
|
||||||
itemize
|
|
||||||
j
|
|
||||||
Janke
|
|
||||||
Janzik
|
|
||||||
Jarno
|
|
||||||
Jeske
|
|
||||||
Jessie
|
|
||||||
Jian
|
|
||||||
Joey
|
|
||||||
Johannimloh
|
|
||||||
Jöran
|
|
||||||
Josie
|
|
||||||
Juniorprofessorenevaluierungskomissionen
|
|
||||||
Jurij
|
|
||||||
Justizariat
|
|
||||||
k
|
|
||||||
Kaczmarek
|
|
||||||
Kaffemaschinen
|
|
||||||
Kaldewey
|
|
||||||
Kalkowsky
|
|
||||||
Kampmann
|
|
||||||
Kandidaturaufstellung
|
|
||||||
Kara
|
|
||||||
Karas
|
|
||||||
Karbe
|
|
||||||
Kassenprüferin
|
|
||||||
Katha
|
|
||||||
Kelm
|
|
||||||
Kimmeskamp
|
|
||||||
KKC
|
|
||||||
Klausurbeaufsichtigung
|
|
||||||
Klausurrunde
|
|
||||||
Kleingruppen
|
|
||||||
klingonischer
|
|
||||||
Klinikmensa
|
|
||||||
KN1
|
|
||||||
Koczian
|
|
||||||
Kolfenbach
|
|
||||||
Komedia
|
|
||||||
Komnick
|
|
||||||
Konteneröffnung
|
|
||||||
Kontowski
|
|
||||||
Kopka
|
|
||||||
krankheitsbedingt
|
|
||||||
Kretzschmar
|
|
||||||
Kristof
|
|
||||||
Kulturanteil
|
|
||||||
Kundennummer
|
|
||||||
l
|
|
||||||
Ladezeiten
|
|
||||||
Lampret
|
|
||||||
Landeslehrendenpreis
|
|
||||||
#lankboxes
|
|
||||||
Lärmquellekatalog
|
|
||||||
LaSoWi
|
|
||||||
Lastenfahrräder
|
|
||||||
Latza
|
|
||||||
Lehnert
|
|
||||||
Lehramter
|
|
||||||
Lehramtlern
|
|
||||||
Lehramtsstudierende
|
|
||||||
Lehramtsstudierenden
|
|
||||||
Lehramtsstudierender
|
|
||||||
Lehramtsstudierenenden
|
|
||||||
Lehrauslastung
|
|
||||||
Lehrräume
|
|
||||||
Leistungszeitraum
|
|
||||||
Lern
|
|
||||||
Lerngruppen
|
|
||||||
Lernnacht
|
|
||||||
Lernnächte
|
|
||||||
Lernraum
|
|
||||||
Lernraumes
|
|
||||||
Lights
|
|
||||||
linkslinear
|
|
||||||
LINQ
|
|
||||||
Lipfert
|
|
||||||
Ljubisav
|
|
||||||
Löppenberg
|
|
||||||
LSB
|
|
||||||
Lückenjans
|
|
||||||
LuDi
|
|
||||||
LuDI
|
|
||||||
LuDis
|
|
||||||
LUDIs
|
|
||||||
#m
|
|
||||||
M1
|
|
||||||
M2
|
|
||||||
Mahngelder
|
|
||||||
Manske
|
|
||||||
Manthey
|
|
||||||
Marecel
|
|
||||||
Maruan
|
|
||||||
Masterstudiengang
|
|
||||||
Masterstudiengangssystems
|
|
||||||
Masterzulassungen
|
|
||||||
Mech
|
|
||||||
Medienschrank
|
|
||||||
MediTech
|
|
||||||
Medizintechik
|
|
||||||
Meilan
|
|
||||||
Meisner
|
|
||||||
Mensastammtisch
|
|
||||||
Merch
|
|
||||||
Mettbach
|
|
||||||
Micha
|
|
||||||
Michèle
|
|
||||||
Michen
|
|
||||||
Microcontroller
|
|
||||||
Miera
|
|
||||||
Mikulicz
|
|
||||||
Miltner
|
|
||||||
mit
|
|
||||||
mitbeworben
|
|
||||||
mitüberprüft
|
|
||||||
mktitle
|
|
||||||
mod
|
|
||||||
Modulhandbuch
|
|
||||||
Mohamed
|
|
||||||
Mölders
|
|
||||||
Mommertz
|
|
||||||
Monsees
|
|
||||||
Montoringprogramm
|
|
||||||
Moodle
|
|
||||||
Moreno
|
|
||||||
Mrzyk
|
|
||||||
Multicores
|
|
||||||
Multithreading
|
|
||||||
Murad
|
|
||||||
Muschalik
|
|
||||||
Musebrink
|
|
||||||
Museumsbesuch
|
|
||||||
Musikpark
|
|
||||||
MVC
|
|
||||||
Myriam
|
|
||||||
myUDE
|
|
||||||
n
|
|
||||||
Nachtermin
|
|
||||||
Nachterminklausuren
|
|
||||||
nanoengineering
|
|
||||||
NanoEngineering
|
|
||||||
Nashed
|
|
||||||
Nebenläufiger
|
|
||||||
Necker
|
|
||||||
Nedzhati
|
|
||||||
Nendrup
|
|
||||||
Networking
|
|
||||||
Neustudierende
|
|
||||||
Neustudierenden
|
|
||||||
Neuwirth
|
|
||||||
Nextbike
|
|
||||||
ng2
|
|
||||||
Nguyen
|
|
||||||
nichtterminalsymbole
|
|
||||||
night
|
|
||||||
Nikolaos
|
|
||||||
Ninian
|
|
||||||
Nohman
|
|
||||||
Nuevo
|
|
||||||
Nutzungsregeln
|
|
||||||
O
|
|
||||||
#oche
|
|
||||||
of
|
|
||||||
Oktoberwochenende
|
|
||||||
Olligs
|
|
||||||
Ömer
|
|
||||||
optimalerweise
|
|
||||||
Oracle
|
|
||||||
Orhan
|
|
||||||
Orientierungswoche
|
|
||||||
Orientierungswochen
|
|
||||||
#orran
|
|
||||||
Ortabas
|
|
||||||
#osh
|
|
||||||
Ostasienwissenschaften
|
|
||||||
Ostkamp
|
|
||||||
OwnCloud
|
|
||||||
Özlem
|
|
||||||
p1
|
|
||||||
p2
|
|
||||||
paassen
|
|
||||||
Paaßen
|
|
||||||
PACKAGES
|
|
||||||
Pannhausen
|
|
||||||
Papierpakete
|
|
||||||
pdf
|
|
||||||
Personalkarten
|
|
||||||
Personenbeförderungsschein
|
|
||||||
Pflichtterminen
|
|
||||||
Philip
|
|
||||||
Phish
|
|
||||||
picoCTF
|
|
||||||
PicoCTF
|
|
||||||
Pinar
|
|
||||||
Planungstreffen
|
|
||||||
Plewa
|
|
||||||
Ploog
|
|
||||||
Podday
|
|
||||||
Points
|
|
||||||
Poos
|
|
||||||
Pöss
|
|
||||||
Posts
|
|
||||||
Postvorlage
|
|
||||||
Powerpoint
|
|
||||||
presBear
|
|
||||||
presFSR
|
|
||||||
presGuest
|
|
||||||
presHelper
|
|
||||||
print
|
|
||||||
Prochazka
|
|
||||||
Prochazkas
|
|
||||||
Produktionsregel
|
|
||||||
Produktionsregeln
|
|
||||||
Professorengespräche
|
|
||||||
Profiling
|
|
||||||
Programmier
|
|
||||||
Programmierclub
|
|
||||||
Programmierungvorlesung
|
|
||||||
Proxmox
|
|
||||||
Prozessdokumentation
|
|
||||||
Prüfungsamt
|
|
||||||
Prüfungsauschüsse
|
|
||||||
prüfungsfähig
|
|
||||||
Prüfungsleistung
|
|
||||||
prüfungsunfähig
|
|
||||||
Pseudonymisierung
|
|
||||||
Pseudonymklausur
|
|
||||||
Putzdienstes
|
|
||||||
Pytlik
|
|
||||||
q
|
|
||||||
q1
|
|
||||||
q2
|
|
||||||
q3
|
|
||||||
Qualitätsverbesserungskomission
|
|
||||||
Qualitätsverbesserungskommission
|
|
||||||
Qualitätsverbesserungskonferenz
|
|
||||||
Qualitätsverbesserungsmittel
|
|
||||||
Quartalstreffen
|
|
||||||
Quartalstreffens
|
|
||||||
Quittungsnummern
|
|
||||||
QVK
|
|
||||||
Rachul
|
|
||||||
Rademaker
|
|
||||||
Rahmatullah
|
|
||||||
Rahmenordnungen
|
|
||||||
Rathgeb
|
|
||||||
Rathofer
|
|
||||||
Ratnere
|
|
||||||
Ratsarbeit
|
|
||||||
Ratsvorstellung
|
|
||||||
Ratswahl
|
|
||||||
Rauls
|
|
||||||
Raumplan
|
|
||||||
Raumzugang
|
|
||||||
Rechnerstrukturen
|
|
||||||
Rechnungs
|
|
||||||
rechtslinear
|
|
||||||
Regularia
|
|
||||||
Reinigungskosten
|
|
||||||
Reisebusse
|
|
||||||
Reistorff
|
|
||||||
Rektoratsgesprächen
|
|
||||||
Rektoratssitzung
|
|
||||||
Requests
|
|
||||||
reverse
|
|
||||||
Riemk
|
|
||||||
Riesner
|
|
||||||
Robeck
|
|
||||||
Rößing
|
|
||||||
Röttges
|
|
||||||
#rschritten
|
|
||||||
Rümeysa
|
|
||||||
s
|
|
||||||
#S
|
|
||||||
Salhi
|
|
||||||
Samir
|
|
||||||
Samsung
|
|
||||||
Sarina
|
|
||||||
Sauerbrei
|
|
||||||
Schagen
|
|
||||||
Scheiermann
|
|
||||||
Scheiler
|
|
||||||
Schendel
|
|
||||||
Schendzielorz
|
|
||||||
Scheychon
|
|
||||||
Scheyon
|
|
||||||
Schlautmann
|
|
||||||
Schleifenbeginn
|
|
||||||
Schleifenende
|
|
||||||
Schlittenhardt
|
|
||||||
Schlottmann
|
|
||||||
Schlung
|
|
||||||
Schlüsselanhänger
|
|
||||||
Schlüsselentzug
|
|
||||||
Schlüsselrecht
|
|
||||||
Schmiedtchen
|
|
||||||
Schneegaß
|
|
||||||
Schnupperuni
|
|
||||||
schonmal
|
|
||||||
Schönrath
|
|
||||||
Schülerpraktikum
|
|
||||||
Schulungstermine
|
|
||||||
Schuppert
|
|
||||||
Schützenbahn
|
|
||||||
Science
|
|
||||||
Scraping
|
|
||||||
scripting
|
|
||||||
Scripting
|
|
||||||
SCSS
|
|
||||||
Security
|
|
||||||
Seier
|
|
||||||
selbstbewirtschaftet
|
|
||||||
Selbstbewirtschaftung
|
|
||||||
Sellerbeck
|
|
||||||
Senatsleute
|
|
||||||
Senatswahlen
|
|
||||||
SEP
|
|
||||||
Serververwaltung
|
|
||||||
Sever
|
|
||||||
Shashi
|
|
||||||
shell
|
|
||||||
SHORTCUTS
|
|
||||||
Sicherheits
|
|
||||||
Sicherheitschallenegs
|
|
||||||
Sicking
|
|
||||||
Siegmann
|
|
||||||
Sitzungsdisziplin
|
|
||||||
Sitzungskodex
|
|
||||||
Sitzungsordnung
|
|
||||||
Sitzungstermin
|
|
||||||
Sitzungstermine
|
|
||||||
SKIP
|
|
||||||
Skubski
|
|
||||||
SM
|
|
||||||
Smartboard
|
|
||||||
Smartboards
|
|
||||||
SME
|
|
||||||
Smets
|
|
||||||
SNE
|
|
||||||
Snippets
|
|
||||||
Softgetränke
|
|
||||||
SommerUni
|
|
||||||
source
|
|
||||||
SoWi
|
|
||||||
sponsored
|
|
||||||
Sprachverwendung
|
|
||||||
spreadshirt
|
|
||||||
Spyrou
|
|
||||||
SS20
|
|
||||||
SSL
|
|
||||||
Startzustand
|
|
||||||
Statusm0n
|
|
||||||
Stauder
|
|
||||||
Sterzing
|
|
||||||
Stoppanweisung
|
|
||||||
Stottrop
|
|
||||||
Stritzel
|
|
||||||
Studienalltag
|
|
||||||
Studienbeirat
|
|
||||||
Studienbeirates
|
|
||||||
Studienbeirats
|
|
||||||
Studienbeiratssitzung
|
|
||||||
Studienrelevantes
|
|
||||||
Studierendenberatung
|
|
||||||
Studierendenparlament
|
|
||||||
Studierendenparlementssitzung
|
|
||||||
Studierendenschaft
|
|
||||||
Studierendenwerk
|
|
||||||
Studiumverlaufsplan
|
|
||||||
StuPa
|
|
||||||
Südholt
|
|
||||||
SVN
|
|
||||||
Sygulla
|
|
||||||
Systemadministration
|
|
||||||
t
|
|
||||||
T01
|
|
||||||
tabbing
|
|
||||||
Tagesordnugnspunkte
|
|
||||||
Teambildende
|
|
||||||
Teilnahmebeitrag
|
|
||||||
Teilnahmegebühren
|
|
||||||
Tekaat
|
|
||||||
Tellbüscher
|
|
||||||
Tepper
|
|
||||||
Terdin
|
|
||||||
Teriete
|
|
||||||
Terminfindung
|
|
||||||
testweise
|
|
||||||
Tetos
|
|
||||||
textbasierte
|
|
||||||
Textnachricht
|
|
||||||
THEN
|
|
||||||
Thiele
|
|
||||||
Thiemann
|
|
||||||
Thom
|
|
||||||
Thuy
|
|
||||||
Tinoco
|
|
||||||
Tischmülleimer
|
|
||||||
To
|
|
||||||
Todenhöfer
|
|
||||||
Tonkel
|
|
||||||
Trampnau
|
|
||||||
Trang
|
|
||||||
Transaktionsmanagement
|
|
||||||
Transponderschloss
|
|
||||||
Triquart
|
|
||||||
TS3
|
|
||||||
Tsafos
|
|
||||||
Tuan
|
|
||||||
Turman
|
|
||||||
Tutorenprogramm
|
|
||||||
TypeScript
|
|
||||||
Ü2
|
|
||||||
Überführungsfunktionen
|
|
||||||
Übungsblatt
|
|
||||||
Ullrich
|
|
||||||
unbenotet
|
|
||||||
unbenoteten
|
|
||||||
Ungleichverteilung
|
|
||||||
Unipolitik
|
|
||||||
#urchzufuHren
|
|
||||||
Ursprungsstelle
|
|
||||||
Utz
|
|
||||||
Valeriya
|
|
||||||
VCS
|
|
||||||
Vennemann
|
|
||||||
verarbeitung
|
|
||||||
vergleisweise
|
|
||||||
Versorgungsbudget
|
|
||||||
Vertiefungsbereich
|
|
||||||
Vertiefungsbereiche
|
|
||||||
Vertrauenskasse
|
|
||||||
Veseljak
|
|
||||||
Vierheilig
|
|
||||||
vim
|
|
||||||
Visio
|
|
||||||
Vivien
|
|
||||||
Vollzugriff
|
|
||||||
vorfomuliert
|
|
||||||
vorgeglüht
|
|
||||||
Vorjohann
|
|
||||||
Vorlesungsbeginn
|
|
||||||
Vorterminen
|
|
||||||
Vorverarbeitungsfunktion
|
|
||||||
Voteller
|
|
||||||
#VS
|
|
||||||
VV
|
|
||||||
VVK
|
|
||||||
w
|
|
||||||
Waas
|
|
||||||
Waasmann
|
|
||||||
Wahlauschuss
|
|
||||||
Wahlauschusses
|
|
||||||
Wahlmodalitäten
|
|
||||||
Waltmann
|
|
||||||
Water
|
|
||||||
Webentwicklung
|
|
||||||
Wegenaer
|
|
||||||
wegklicken
|
|
||||||
Weihnachts
|
|
||||||
Weinz
|
|
||||||
Werbeposter
|
|
||||||
Whatsapp
|
|
||||||
while
|
|
||||||
white
|
|
||||||
Whiteboard
|
|
||||||
Whiteboards
|
|
||||||
widerprüchliche
|
|
||||||
WinForms
|
|
||||||
Wirtschaftsinformatik
|
|
||||||
Wirtschaftsinformatiker
|
|
||||||
WirtschaftsIng
|
|
||||||
Wirtschaftspädagogik
|
|
||||||
Wißmann
|
|
||||||
WiWi
|
|
||||||
Wolfssee
|
|
||||||
Wollatz
|
|
||||||
Workload
|
|
||||||
Wronna
|
|
||||||
WS21
|
|
||||||
Wunschtag
|
|
||||||
Wurzalla
|
|
||||||
x
|
|
||||||
y
|
|
||||||
Yilmaz
|
|
||||||
Z
|
|
||||||
z1
|
|
||||||
z2
|
|
||||||
z3
|
|
||||||
Zahlungsbereitschaft
|
|
||||||
Zahlungshinweis
|
|
||||||
zeitbeschränkt
|
|
||||||
Zentralübung
|
|
||||||
Zhang
|
|
||||||
Zhou
|
|
||||||
ZIM
|
|
||||||
Zirger
|
|
||||||
Zöller
|
|
||||||
Zugangsgenehmigung
|
|
||||||
Zugangskarten
|
|
||||||
Zulassungsgrenze
|
|
||||||
Zulassungskriterien
|
|
||||||
Zulassungsordnung
|
|
||||||
Zulassungssystem
|
|
||||||
Zusammlegung
|
|
||||||
Zutter
|
|
||||||
Zweitfächer
|
|
||||||
zweitsprachig
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,6 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import ()
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
---
|
|
||||||
title: [:VIM_EVAL:]expand('%:p:h:t')[:END_EVAL:]
|
|
||||||
author: Tuan-Dat Tran
|
|
||||||
date: [:VIM_EVAL:]strftime('%Y-%m-%d')[:END_EVAL:]
|
|
||||||
...
|
|
|
@ -1 +0,0 @@
|
||||||
#!/bin/sh
|
|
|
@ -1,32 +0,0 @@
|
||||||
\documentclass[12pt,a4paper,ngerman,notitlepage]{article}
|
|
||||||
|
|
||||||
% PACKAGES
|
|
||||||
\usepackage[ngerman]{babel}
|
|
||||||
\usepackage{datetime} % Correct Date Formating
|
|
||||||
\usepackage[a4paper, left=2.5cm, right=2cm, top=2cm, bottom=2cm]{geometry}
|
|
||||||
\usepackage{graphicx}
|
|
||||||
\usepackage{latexsym} % Blankboxes
|
|
||||||
\usepackage{listings}
|
|
||||||
\usepackage{mathtools}
|
|
||||||
\usepackage[onehalfspacing]{setspace}
|
|
||||||
\usepackage{tabularx}
|
|
||||||
\usepackage{tikz}
|
|
||||||
\usepackage{titling} % mktitleformatting
|
|
||||||
|
|
||||||
% SHORTCUTS
|
|
||||||
\newcommand{\module}{Platzhalter}
|
|
||||||
\newcommand{\blattnr}{PlatzhalterNr}
|
|
||||||
|
|
||||||
% INFO
|
|
||||||
\author{Tuan-Dat Tran}
|
|
||||||
\title{\module\\\blattnr}
|
|
||||||
|
|
||||||
% FORMATTING
|
|
||||||
\setlength{\droptitle}{-3cm}
|
|
||||||
\DeclareRobustCommand{\rchi}{{\mathpalette\irchi\relax}}
|
|
||||||
\newcommand{\irchi}[2]{\raisebox{\depth}{$#1\chi$}}
|
|
||||||
|
|
||||||
% BEGINNING
|
|
||||||
\begin{document}
|
|
||||||
\maketitle
|
|
||||||
\end{document}
|
|
Loading…
Reference in New Issue