Compare commits
28 Commits
38b7133cfb
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
721829d110 | ||
|
|
2de331e3c3 | ||
|
|
48f1eea33a | ||
|
|
51cf295ec1 | ||
|
|
f2ee71e3ff | ||
|
|
9a4e68d900 | ||
|
|
87a60c4a1d | ||
|
|
9793312c78 | ||
|
|
b106d0844a | ||
|
|
09459e602d | ||
|
|
767910406f | ||
|
|
40d2d85ecb | ||
|
|
400a984592 | ||
|
|
a4c28e719e | ||
|
|
e02fa7f43d | ||
|
|
c24fd84b7b | ||
|
|
1fdd8d0276 | ||
|
|
ac0d51e712 | ||
|
|
4be55c69b4 | ||
|
|
5f3703da07 | ||
|
|
172702b289 | ||
|
|
4c33229d30 | ||
|
|
6c023972ef | ||
|
|
34cda631d2 | ||
|
|
65c923108a | ||
|
|
9ceae68f52 | ||
|
|
6c2bc75f12 | ||
|
|
59e661e620 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -14,7 +14,7 @@ config/.mozilla/*
|
||||
!config/.mozilla/firefox/profiles.ini
|
||||
config/.scripts/playstate
|
||||
config/.ssh/*
|
||||
!config/.ssh/config
|
||||
!config/.ssh/config*
|
||||
emacs/.emacs.d/*
|
||||
!emacs/.emacs.d/config.org
|
||||
!emacs/.emacs.d/ledger.org
|
||||
|
||||
199
README.md
Normal file
199
README.md
Normal file
@@ -0,0 +1,199 @@
|
||||
# dotfiles
|
||||
|
||||
This is my ArchLinux configuration.
|
||||
Tested on Acer Travelmate X349-G2-M and Lenovo Thinkpad E14 G5.
|
||||
First one was a Intel machine, the current one a AMD machine, hence the changes
|
||||
towards AMD graphics.
|
||||
|
||||
## Install dependencies
|
||||
|
||||
```bash
|
||||
# System
|
||||
paru -S linux-headers wget \
|
||||
btrfs-progs udiskie blueman openssh lshw less dmidecode
|
||||
|
||||
## Audio
|
||||
paru -S alsa-utils pulseaudio pulseaudio-alsa pulseaudio-bluetooth pavucontrol bluez-utils
|
||||
|
||||
## Network
|
||||
paru -S bind systemd-resolvconf networkmanager
|
||||
|
||||
# Dotfiles
|
||||
paru -S python-pillow i3lock-color stow playerctl xdotoolxsel feh \
|
||||
conky maim picom dust dunst rofi neofetch
|
||||
|
||||
# Notebook
|
||||
paru -S acpi acpid tlp
|
||||
|
||||
# DevTools
|
||||
paru -S delta-git cargo-bloat npm bacon nvim git cargo-flamegraph tealdeer
|
||||
|
||||
# CPU/GPU
|
||||
paru -S lib32-libva-mesa-driver lib32-mesa-vdpau mesa-vdpau nvtop \
|
||||
xf86-video-amdgpu lib32-mesa libva-mesa-driver amd-ucode
|
||||
|
||||
# X11
|
||||
paru -S xorg-server i3-gaps xorg-xbacklight xorg-xrandr xclip \
|
||||
lxappearance lightdm-webkit2-greeter lightdm
|
||||
|
||||
# Terminal
|
||||
pacman -S bottom zellij eza bat fd ripgrep zsh
|
||||
|
||||
# Tools
|
||||
## Productivity
|
||||
### Browsers
|
||||
paru -S firefox chromium
|
||||
### File Browser
|
||||
paru -S ranger pcmanfm
|
||||
### Printer
|
||||
paru -S brotherconfig4 simple-scan tesseract-data-eng cups brlaser
|
||||
### Typesetting
|
||||
paru -S adobe-source-han-sans-jp-fonts pandoc-cli texlive-latexextra \
|
||||
texlive-basic texlive-latex biber adobe-source-han-sans-kr-fonts \
|
||||
texlive-fontsrecommended texlive-bibtexextra texlive-latexrecommended texlive-binextra \
|
||||
texlive-langgerman texlive-fontsextra texlive-science texlive-plaingeneric
|
||||
|
||||
### Misc
|
||||
paru -S p7zip veracrypt keepassxc syncthing vlc unzip zathura zathura-pdf-mupdf
|
||||
|
||||
## Troubleshooting
|
||||
paru -S nmap smartmontools ldns traceroute
|
||||
|
||||
## Networking
|
||||
paru -S tailscale wireshark-qt wireguard-tools ethtool iperf3
|
||||
|
||||
## obs-studio
|
||||
paru -S obs-studio v4l2loopback-dkms
|
||||
|
||||
## Docker
|
||||
paru -S docker docker-compose docker-buildx
|
||||
```
|
||||
|
||||
## Picture
|
||||
|
||||
[[./resources/24-03-15_16-06-52-alacritty.png]]
|
||||
|
||||
## Permissions
|
||||
|
||||
### sudo
|
||||
|
||||
```sh
|
||||
echo "%$SUDOGRP ALL=(ALL) ALL" >> /etc/sudoers
|
||||
```
|
||||
|
||||
### Groups
|
||||
|
||||
```sh
|
||||
usermod -a -G network $USER
|
||||
usermod -a -G video $USER
|
||||
usermod -a -G docker $USER
|
||||
usermod -a -G $SUDOGRP $USER
|
||||
```
|
||||
|
||||
## Get Started
|
||||
|
||||
```sh
|
||||
git clone https://git.tudattr.dev/tudattr/dotfiles .dotfiles
|
||||
cd .dotfiles
|
||||
stow config
|
||||
stow vim
|
||||
stow zsh
|
||||
```
|
||||
|
||||
## GUI
|
||||
|
||||
I'm using pcmanfm with [[Sweet - New Flavor](https://www.gnome-look.org/p/1253385/)].
|
||||
The downloaded file needs to be extracted into `~/.themes/`.
|
||||
The Icons are from the related icon set: [[Candy Icons](https://www.gnome-look.org/p/1305251)].
|
||||
|
||||
## ohmyzsh
|
||||
|
||||
Plugins for ohmyzsh
|
||||
|
||||
### eza
|
||||
|
||||
```sh
|
||||
git clone https://github.com/z-shell/zsh-eza ~/.oh-my-zsh/custom/plugins/zsh-eza
|
||||
```
|
||||
|
||||
## Environment
|
||||
|
||||
Add
|
||||
|
||||
```sh
|
||||
VISUAL=/usr/bin/nvim
|
||||
EDITOR=/usr/bin/nvim
|
||||
```
|
||||
|
||||
to `/etc/environment`.
|
||||
|
||||
## NeoVim
|
||||
|
||||
Since we're using NeoVim, we wanna be lazy and have our configuration done for us.
|
||||
I'm using lazyvim with the following plugins:
|
||||
|
||||
- bufferline.nvim
|
||||
- dashboard-nvim
|
||||
- flash.nvim
|
||||
- lazy.nvim
|
||||
- LazyVim
|
||||
- lualine.nvim
|
||||
- mini.ai
|
||||
- mini.pairs
|
||||
- noice.nvim
|
||||
- nui.nvim
|
||||
- nvim-notify
|
||||
- nvim-treesitter
|
||||
- nvim-treesitter-textobjects
|
||||
- onedark.vim
|
||||
- trouble.nvim
|
||||
- ts-comments.nvim
|
||||
- vim-ledger 0.25ms start
|
||||
- vimtex 0.24ms start
|
||||
- which-key.nvim
|
||||
- yanky.nvim
|
||||
|
||||
We need run nvim as sudo at least once, to startup the process of enabling to download
|
||||
additional language dictionaries.
|
||||
We can able it with `:setlocal spell spelllang=en_us,de_de`.
|
||||
|
||||
## Systemd
|
||||
|
||||
Enable:
|
||||
|
||||
- tlp
|
||||
- acpid
|
||||
- NetworkManager
|
||||
- cups
|
||||
|
||||
## Printer/Scanner MFC-L2710DW
|
||||
|
||||
I notice this is becoming more of a documentation on how to set my own laptop,
|
||||
but...
|
||||
¯\\_(ツ)_/¯
|
||||
|
||||
### Scanning
|
||||
|
||||
```sh
|
||||
sudo brsaneconfig4 -a name=MFC-L2710DW model=MFC-L2710DW nodename=192.168.50.219
|
||||
```
|
||||
|
||||
### Printing
|
||||
|
||||
You can add the printer via cups web gui on [http://localhost:631](http://localhost:631)
|
||||
with the link [http://192.168.50.219](http://192.168.50.219).
|
||||
|
||||
## Networking
|
||||
|
||||
### eduroam
|
||||
|
||||
Have to install networkmanager specifically for eduroam. Otherwise I'd stick to
|
||||
systemd-networkd.
|
||||
|
||||
## obs-studio
|
||||
|
||||
Need to run the following manually
|
||||
|
||||
```sh
|
||||
sudo modprobe v4l2loopback
|
||||
```
|
||||
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.
|
||||
9
behemoth.sh
Executable file
9
behemoth.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
#
|
||||
# This is a file to create necessary parts of this environment for behemoth
|
||||
# my desktop machine.
|
||||
#
|
||||
|
||||
ln -s /home/tuan/.dotfiles/emacs/.doom.d /home/tuan/.config/doom
|
||||
ln -s /home/tuan/.dotfiles/config/.ssh /home/tuan/.ssh
|
||||
@@ -1,6 +1,6 @@
|
||||
! urxvt
|
||||
! 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=10:hinting=full, xft:Symbola:style=Regular:pixelsize=10
|
||||
|
||||
! Behavior
|
||||
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"
|
||||
50
config/.config/alacritty/alacritty.toml
Normal file
50
config/.config/alacritty/alacritty.toml
Normal file
@@ -0,0 +1,50 @@
|
||||
[font]
|
||||
size = 12
|
||||
|
||||
[font.bold]
|
||||
style = "Bold"
|
||||
|
||||
[font.bold_italic]
|
||||
style = "Bold Italic"
|
||||
|
||||
[font.italic]
|
||||
style = "Italic"
|
||||
|
||||
[font.normal]
|
||||
family = "DejaVu Sans Code"
|
||||
style = "Regular"
|
||||
|
||||
[window]
|
||||
decorations = "none"
|
||||
opacity = 0.9
|
||||
blur = true
|
||||
|
||||
# From: https://github.com/alacritty/alacritty-theme
|
||||
# Colors (One Dark)
|
||||
|
||||
# Default colors
|
||||
[colors.primary]
|
||||
background = '#282c34'
|
||||
foreground = '#abb2bf'
|
||||
|
||||
# Normal colors
|
||||
[colors.normal]
|
||||
black = '#1e2127'
|
||||
red = '#e06c75'
|
||||
green = '#98c379'
|
||||
yellow = '#d19a66'
|
||||
blue = '#61afef'
|
||||
magenta = '#c678dd'
|
||||
cyan = '#56b6c2'
|
||||
white = '#abb2bf'
|
||||
|
||||
# Bright colors
|
||||
[colors.bright]
|
||||
black = '#5c6370'
|
||||
red = '#e06c75'
|
||||
green = '#98c379'
|
||||
yellow = '#d19a66'
|
||||
blue = '#61afef'
|
||||
magenta = '#c678dd'
|
||||
cyan = '#56b6c2'
|
||||
white = '#ffffff'
|
||||
@@ -1,895 +0,0 @@
|
||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
|
||||
# Import additional configuration files
|
||||
#
|
||||
# Imports are loaded in order, skipping all missing files, with the importing
|
||||
# file being loaded last. If a field is already present in a previous import, it
|
||||
# will be replaced.
|
||||
#
|
||||
# All imports must either be absolute paths starting with `/`, or paths relative
|
||||
# to the user's home directory starting with `~/`.
|
||||
#import:
|
||||
# - /path/to/alacritty.yml
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty itself.
|
||||
#env:
|
||||
# TERM variable
|
||||
#
|
||||
# This value is used to set the `$TERM` environment variable for
|
||||
# each instance of Alacritty. If it is not present, alacritty will
|
||||
# check the local terminfo database and use `alacritty` if it is
|
||||
# available, otherwise `xterm-256color` is used.
|
||||
#TERM: alacritty
|
||||
|
||||
window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Number of lines/columns (not pixels) in the terminal. Both lines and columns
|
||||
# must be non-zero for this to take effect. The number of columns must be at
|
||||
# least `2`, while using a value of `0` for columns and lines will fall back
|
||||
# to the window manager's recommended size
|
||||
#dimensions:
|
||||
# columns: 0
|
||||
# lines: 0
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
#padding:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Spread additional padding evenly around the terminal content.
|
||||
#dynamic_padding: false
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
# Values for `decorations`:
|
||||
# - full: Borders and title bar
|
||||
# - none: Neither borders nor title bar
|
||||
#
|
||||
# Values for `decorations` (macOS only):
|
||||
# - transparent: Title bar, transparent background and title bar buttons
|
||||
# - buttonless: Title bar, transparent background and no title bar buttons
|
||||
decorations: none
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
opacity: 0.9
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
#startup_mode: Windowed
|
||||
|
||||
# Window title
|
||||
#title: Alacritty
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
#dynamic_title: true
|
||||
|
||||
# Window class (Linux/BSD only):
|
||||
#class:
|
||||
# Application instance name
|
||||
#instance: Alacritty
|
||||
# General application class
|
||||
#general: Alacritty
|
||||
|
||||
# Decorations theme variant (Linux/BSD only)
|
||||
#
|
||||
# Override the variant of the GTK theme/Wayland client side decorations.
|
||||
# Commonly supported values are `dark` and `light`. Set this to `None` to use
|
||||
# the default theme variant.
|
||||
#decorations_theme_variant: None
|
||||
|
||||
#scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
#history: 10000
|
||||
|
||||
# Scrolling distance multiplier.
|
||||
#multiplier: 3
|
||||
|
||||
# Font configuration
|
||||
font:
|
||||
# Normal (roman) font face
|
||||
normal:
|
||||
# Font family
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) Menlo
|
||||
# - (Linux/BSD) monospace
|
||||
# - (Windows) Consolas
|
||||
family: DejaVu Sans Mono for Powerline
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Regular
|
||||
|
||||
# Bold font face
|
||||
bold:
|
||||
# Font family
|
||||
#
|
||||
# If the bold family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
# family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Bold
|
||||
|
||||
# Italic font face
|
||||
italic:
|
||||
# Font family
|
||||
#
|
||||
# If the italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
# family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Italic
|
||||
|
||||
# Bold italic font face
|
||||
bold_italic:
|
||||
# Font family
|
||||
#
|
||||
# If the bold italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
# family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Bold Italic
|
||||
|
||||
# Point size
|
||||
size: 7
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought
|
||||
# of as modifying the line spacing, and `offset.x` as modifying the letter
|
||||
# spacing.
|
||||
#offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the
|
||||
# right, increasing `y` moves the glyph upward.
|
||||
#glyph_offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Use built-in font for box drawing characters.
|
||||
#
|
||||
# If `true`, Alacritty will use a custom built-in font for box drawing
|
||||
# characters (Unicode points 2500 - 259f).
|
||||
#
|
||||
#builtin_box_drawing: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
#draw_bold_text_with_bright_colors: false
|
||||
|
||||
# Colors (Tomorrow Night)
|
||||
#colors:
|
||||
# Default colors
|
||||
#primary:
|
||||
# background: '#1d1f21'
|
||||
# foreground: '#c5c8c6'
|
||||
|
||||
# Bright and dim foreground colors
|
||||
#
|
||||
# The dimmed foreground color is calculated automatically if it is not
|
||||
# present. If the bright foreground color is not set, or
|
||||
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
|
||||
# color will be used.
|
||||
#dim_foreground: '#828482'
|
||||
#bright_foreground: '#eaeaea'
|
||||
|
||||
# Cursor colors
|
||||
#
|
||||
# Colors which should be used to draw the terminal cursor.
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#cursor:
|
||||
# text: CellBackground
|
||||
# cursor: CellForeground
|
||||
|
||||
# Vi mode cursor colors
|
||||
#
|
||||
# Colors for the cursor when the vi mode is active.
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#vi_mode_cursor:
|
||||
# text: CellBackground
|
||||
# cursor: CellForeground
|
||||
|
||||
# Search colors
|
||||
#
|
||||
# Colors used for the search bar and match highlighting.
|
||||
#search:
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#matches:
|
||||
# foreground: '#000000'
|
||||
# background: '#ffffff'
|
||||
#focused_match:
|
||||
# foreground: '#ffffff'
|
||||
# background: '#000000'
|
||||
|
||||
# Keyboard hints
|
||||
#hints:
|
||||
# First character in the hint label
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#start:
|
||||
# foreground: '#1d1f21'
|
||||
# background: '#e9ff5e'
|
||||
|
||||
# All characters after the first one in the hint label
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#end:
|
||||
# foreground: '#e9ff5e'
|
||||
# background: '#1d1f21'
|
||||
|
||||
# Line indicator
|
||||
#
|
||||
# Color used for the indicator displaying the position in history during
|
||||
# search and vi mode.
|
||||
#
|
||||
# By default, these will use the opposing primary color.
|
||||
#line_indicator:
|
||||
# foreground: None
|
||||
# background: None
|
||||
|
||||
# Footer bar
|
||||
#
|
||||
# Color used for the footer bar on the bottom, used by search regex input,
|
||||
# hyperlink URI preview, etc.
|
||||
#
|
||||
#footer_bar:
|
||||
# background: '#c5c8c6'
|
||||
# foreground: '#1d1f21'
|
||||
|
||||
# Selection colors
|
||||
#
|
||||
# Colors which should be used to draw the selection area.
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#selection:
|
||||
# text: CellBackground
|
||||
# background: CellForeground
|
||||
|
||||
# Normal colors
|
||||
#normal:
|
||||
# black: '#1d1f21'
|
||||
# red: '#cc6666'
|
||||
# green: '#b5bd68'
|
||||
# yellow: '#f0c674'
|
||||
# blue: '#81a2be'
|
||||
# magenta: '#b294bb'
|
||||
# cyan: '#8abeb7'
|
||||
# white: '#c5c8c6'
|
||||
|
||||
# Bright colors
|
||||
#bright:
|
||||
# black: '#666666'
|
||||
# red: '#d54e53'
|
||||
# green: '#b9ca4a'
|
||||
# yellow: '#e7c547'
|
||||
# blue: '#7aa6da'
|
||||
# magenta: '#c397d8'
|
||||
# cyan: '#70c0b1'
|
||||
# white: '#eaeaea'
|
||||
|
||||
# Dim colors
|
||||
#
|
||||
# If the dim colors are not set, they will be calculated automatically based
|
||||
# on the `normal` colors.
|
||||
#dim:
|
||||
# black: '#131415'
|
||||
# red: '#864343'
|
||||
# green: '#777c44'
|
||||
# yellow: '#9e824c'
|
||||
# blue: '#556a7d'
|
||||
# magenta: '#75617b'
|
||||
# cyan: '#5b7d78'
|
||||
# white: '#828482'
|
||||
|
||||
# Indexed Colors
|
||||
#
|
||||
# The indexed colors include all colors from 16 to 256.
|
||||
# When these are not set, they're filled with sensible defaults.
|
||||
#
|
||||
# Example:
|
||||
# `- { index: 16, color: '#ff00ff' }`
|
||||
#
|
||||
#indexed_colors: []
|
||||
|
||||
# Transparent cell backgrounds
|
||||
#
|
||||
# Whether or not `window.opacity` applies to all cell backgrounds or only to
|
||||
# the default background. When set to `true` all cells will be transparent
|
||||
# regardless of their background color.
|
||||
#transparent_background_colors: false
|
||||
|
||||
# Bell
|
||||
#
|
||||
# The bell is rung every time the BEL control character is received.
|
||||
#bell:
|
||||
# Visual Bell Animation
|
||||
#
|
||||
# Animation effect for flashing the screen when the visual bell is rung.
|
||||
#
|
||||
# Values for `animation`:
|
||||
# - Ease
|
||||
# - EaseOut
|
||||
# - EaseOutSine
|
||||
# - EaseOutQuad
|
||||
# - EaseOutCubic
|
||||
# - EaseOutQuart
|
||||
# - EaseOutQuint
|
||||
# - EaseOutExpo
|
||||
# - EaseOutCirc
|
||||
# - Linear
|
||||
#animation: EaseOutExpo
|
||||
|
||||
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
|
||||
# disable the visual bell animation.
|
||||
#duration: 0
|
||||
|
||||
# Visual bell animation color.
|
||||
#color: '#ffffff'
|
||||
|
||||
# Bell Command
|
||||
#
|
||||
# This program is executed whenever the bell is rung.
|
||||
#
|
||||
# When set to `command: None`, no command will be executed.
|
||||
#
|
||||
# Example:
|
||||
# command:
|
||||
# program: notify-send
|
||||
# args: ["Hello, World!"]
|
||||
#
|
||||
#command: None
|
||||
|
||||
#selection:
|
||||
# This string contains all characters that are used as separators for
|
||||
# "semantic words" in Alacritty.
|
||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
||||
|
||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||
#save_to_clipboard: false
|
||||
|
||||
#cursor:
|
||||
# Cursor style
|
||||
#style:
|
||||
# Cursor shape
|
||||
#
|
||||
# Values for `shape`:
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
#shape: Block
|
||||
|
||||
# Cursor blinking state
|
||||
#
|
||||
# Values for `blinking`:
|
||||
# - Never: Prevent the cursor from ever blinking
|
||||
# - Off: Disable blinking by default
|
||||
# - On: Enable blinking by default
|
||||
# - Always: Force the cursor to always blink
|
||||
#blinking: Off
|
||||
|
||||
# Vi mode cursor style
|
||||
#
|
||||
# If the vi mode cursor style is `None` or not specified, it will fall back to
|
||||
# the style of the active value of the normal cursor.
|
||||
#
|
||||
# See `cursor.style` for available options.
|
||||
#vi_mode_style: None
|
||||
|
||||
# Cursor blinking interval in milliseconds.
|
||||
#blink_interval: 750
|
||||
|
||||
# Time after which cursor stops blinking, in seconds.
|
||||
#
|
||||
# Specifying '0' will disable timeout for blinking.
|
||||
#blink_timeout: 5
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
#unfocused_hollow: true
|
||||
|
||||
# Thickness of the cursor relative to the cell width as floating point number
|
||||
# from `0.0` to `1.0`.
|
||||
#thickness: 0.15
|
||||
|
||||
# Live config reload (changes require restart)
|
||||
#live_config_reload: true
|
||||
|
||||
# Shell
|
||||
#
|
||||
# You can set `shell.program` to the path of your favorite shell, e.g.
|
||||
# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
|
||||
# shell.
|
||||
#
|
||||
# Default:
|
||||
# - (Linux/BSD/macOS) `$SHELL` or the user's login shell, if `$SHELL` is unset
|
||||
# - (Windows) powershell
|
||||
#shell:
|
||||
# program: /bin/bash
|
||||
# args:
|
||||
# - --login
|
||||
|
||||
# Startup directory
|
||||
#
|
||||
# Directory the shell is started in. If this is unset, or `None`, the working
|
||||
# directory of the parent process will be used.
|
||||
#working_directory: None
|
||||
|
||||
# Send ESC (\x1b) before characters when alt is pressed.
|
||||
#alt_send_esc: true
|
||||
|
||||
# Offer IPC using `alacritty msg` (unix only)
|
||||
#ipc_socket: true
|
||||
|
||||
#mouse:
|
||||
# Click settings
|
||||
#
|
||||
# The `double_click` and `triple_click` settings control the time
|
||||
# alacritty should wait for accepting multiple clicks as one double
|
||||
# or triple click.
|
||||
#double_click: { threshold: 300 }
|
||||
#triple_click: { threshold: 300 }
|
||||
|
||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||
#hide_when_typing: false
|
||||
|
||||
# Hints
|
||||
#
|
||||
# Terminal hints can be used to find text or hyperlink in the visible part of
|
||||
# the terminal and pipe it to other applications.
|
||||
#hints:
|
||||
# Keys used for the hint labels.
|
||||
#alphabet: "jfkdls;ahgurieowpq"
|
||||
|
||||
# List with all available hints
|
||||
#
|
||||
# Each hint must have any of `regex` or `hyperlinks` field and either an
|
||||
# `action` or a `command` field. The fields `mouse`, `binding` and
|
||||
# `post_processing` are optional.
|
||||
#
|
||||
# The `hyperlinks` option will cause OSC 8 escape sequence hyperlinks to be
|
||||
# highlighted.
|
||||
#
|
||||
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
|
||||
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
|
||||
#
|
||||
# The `mouse.enabled` field controls if the hint should be underlined while
|
||||
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
|
||||
#
|
||||
# If the `post_processing` field is set to `true`, heuristics will be used to
|
||||
# shorten the match if there are characters likely not to be part of the hint
|
||||
# (e.g. a trailing `.`). This is most useful for URIs and applies only to
|
||||
# `regex` matches.
|
||||
#
|
||||
# Values for `action`:
|
||||
# - Copy
|
||||
# Copy the hint's text to the clipboard.
|
||||
# - Paste
|
||||
# Paste the hint's text to the terminal or search.
|
||||
# - Select
|
||||
# Select the hint's text.
|
||||
# - MoveViModeCursor
|
||||
# Move the vi mode cursor to the beginning of the hint.
|
||||
#enabled:
|
||||
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
|
||||
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
|
||||
# hyperlinks: true
|
||||
# command: xdg-open
|
||||
# post_processing: true
|
||||
# mouse:
|
||||
# enabled: true
|
||||
# mods: None
|
||||
# binding:
|
||||
# key: U
|
||||
# mods: Control|Shift
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Mouse bindings are specified as a list of objects, much like the key
|
||||
# bindings further below.
|
||||
#
|
||||
# To trigger mouse bindings when an application running within Alacritty
|
||||
# captures the mouse, the `Shift` modifier is automatically added as a
|
||||
# requirement.
|
||||
#
|
||||
# Each mouse binding will specify a:
|
||||
#
|
||||
# - `mouse`:
|
||||
#
|
||||
# - Middle
|
||||
# - Left
|
||||
# - Right
|
||||
# - Numeric identifier such as `5`
|
||||
#
|
||||
# - `action` (see key bindings for actions not exclusive to mouse mode)
|
||||
#
|
||||
# - Mouse exclusive actions:
|
||||
#
|
||||
# - ExpandSelection
|
||||
# Expand the selection to the current mouse cursor location.
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods` (see key bindings)
|
||||
#mouse_bindings:
|
||||
# - { mouse: Right, action: ExpandSelection }
|
||||
# - { mouse: Right, mods: Control, action: ExpandSelection }
|
||||
# - { mouse: Middle, mode: ~Vi, action: PasteSelection }
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Key bindings are specified as a list of objects. For example, this is the
|
||||
# default paste binding:
|
||||
#
|
||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||
#
|
||||
# Each key binding will specify a:
|
||||
#
|
||||
# - `key`: Identifier of the key pressed
|
||||
#
|
||||
# - A-Z
|
||||
# - F1-F24
|
||||
# - Key0-Key9
|
||||
#
|
||||
# A full list with available key codes can be found here:
|
||||
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
|
||||
#
|
||||
# Instead of using the name of the keys, the `key` field also supports using
|
||||
# the scancode of the desired key. Scancodes have to be specified as a
|
||||
# decimal number. This command will allow you to display the hex scancodes
|
||||
# for certain keys:
|
||||
#
|
||||
# `showkey --scancodes`.
|
||||
#
|
||||
# Then exactly one of:
|
||||
#
|
||||
# - `chars`: Send a byte sequence to the running application
|
||||
#
|
||||
# The `chars` field writes the specified string to the terminal. This makes
|
||||
# it possible to pass escape sequences. To find escape codes for bindings
|
||||
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
|
||||
# of tmux. Note that applications use terminfo to map escape sequences back
|
||||
# to keys. It is therefore required to update the terminfo when changing an
|
||||
# escape sequence.
|
||||
#
|
||||
# - `action`: Execute a predefined action
|
||||
#
|
||||
# - ToggleViMode
|
||||
# - SearchForward
|
||||
# Start searching toward the right of the search origin.
|
||||
# - SearchBackward
|
||||
# Start searching toward the left of the search origin.
|
||||
# - Copy
|
||||
# - Paste
|
||||
# - IncreaseFontSize
|
||||
# - DecreaseFontSize
|
||||
# - ResetFontSize
|
||||
# - ScrollPageUp
|
||||
# - ScrollPageDown
|
||||
# - ScrollHalfPageUp
|
||||
# - ScrollHalfPageDown
|
||||
# - ScrollLineUp
|
||||
# - ScrollLineDown
|
||||
# - ScrollToTop
|
||||
# - ScrollToBottom
|
||||
# - ClearHistory
|
||||
# Remove the terminal's scrollback history.
|
||||
# - Hide
|
||||
# Hide the Alacritty window.
|
||||
# - Minimize
|
||||
# Minimize the Alacritty window.
|
||||
# - Quit
|
||||
# Quit Alacritty.
|
||||
# - ToggleFullscreen
|
||||
# - SpawnNewInstance
|
||||
# Spawn a new instance of Alacritty.
|
||||
# - CreateNewWindow
|
||||
# Create a new Alacritty window from the current process.
|
||||
# - ClearLogNotice
|
||||
# Clear Alacritty's UI warning and error notice.
|
||||
# - ClearSelection
|
||||
# Remove the active selection.
|
||||
# - ReceiveChar
|
||||
# - None
|
||||
#
|
||||
# - Vi mode exclusive actions:
|
||||
#
|
||||
# - Open
|
||||
# Perform the action of the first matching hint under the vi mode cursor
|
||||
# with `mouse.enabled` set to `true`.
|
||||
# - ToggleNormalSelection
|
||||
# - ToggleLineSelection
|
||||
# - ToggleBlockSelection
|
||||
# - ToggleSemanticSelection
|
||||
# Toggle semantic selection based on `selection.semantic_escape_chars`.
|
||||
# - CenterAroundViCursor
|
||||
# Center view around vi mode cursor
|
||||
#
|
||||
# - Vi mode exclusive cursor motion actions:
|
||||
#
|
||||
# - Up
|
||||
# One line up.
|
||||
# - Down
|
||||
# One line down.
|
||||
# - Left
|
||||
# One character left.
|
||||
# - Right
|
||||
# One character right.
|
||||
# - First
|
||||
# First column, or beginning of the line when already at the first column.
|
||||
# - Last
|
||||
# Last column, or beginning of the line when already at the last column.
|
||||
# - FirstOccupied
|
||||
# First non-empty cell in this terminal row, or first non-empty cell of
|
||||
# the line when already at the first cell of the row.
|
||||
# - High
|
||||
# Top of the screen.
|
||||
# - Middle
|
||||
# Center of the screen.
|
||||
# - Low
|
||||
# Bottom of the screen.
|
||||
# - SemanticLeft
|
||||
# Start of the previous semantically separated word.
|
||||
# - SemanticRight
|
||||
# Start of the next semantically separated word.
|
||||
# - SemanticLeftEnd
|
||||
# End of the previous semantically separated word.
|
||||
# - SemanticRightEnd
|
||||
# End of the next semantically separated word.
|
||||
# - WordLeft
|
||||
# Start of the previous whitespace separated word.
|
||||
# - WordRight
|
||||
# Start of the next whitespace separated word.
|
||||
# - WordLeftEnd
|
||||
# End of the previous whitespace separated word.
|
||||
# - WordRightEnd
|
||||
# End of the next whitespace separated word.
|
||||
# - Bracket
|
||||
# Character matching the bracket at the cursor's location.
|
||||
# - SearchNext
|
||||
# Beginning of the next match.
|
||||
# - SearchPrevious
|
||||
# Beginning of the previous match.
|
||||
# - SearchStart
|
||||
# Start of the match to the left of the vi mode cursor.
|
||||
# - SearchEnd
|
||||
# End of the match to the right of the vi mode cursor.
|
||||
#
|
||||
# - Search mode exclusive actions:
|
||||
# - SearchFocusNext
|
||||
# Move the focus to the next search match.
|
||||
# - SearchFocusPrevious
|
||||
# Move the focus to the previous search match.
|
||||
# - SearchConfirm
|
||||
# - SearchCancel
|
||||
# - SearchClear
|
||||
# Reset the search regex.
|
||||
# - SearchDeleteWord
|
||||
# Delete the last word in the search regex.
|
||||
# - SearchHistoryPrevious
|
||||
# Go to the previous regex in the search history.
|
||||
# - SearchHistoryNext
|
||||
# Go to the next regex in the search history.
|
||||
#
|
||||
# - macOS exclusive actions:
|
||||
# - ToggleSimpleFullscreen
|
||||
# Enter fullscreen without occupying another space.
|
||||
#
|
||||
# - Linux/BSD exclusive actions:
|
||||
#
|
||||
# - CopySelection
|
||||
# Copy from the selection buffer.
|
||||
# - PasteSelection
|
||||
# Paste from the selection buffer.
|
||||
#
|
||||
# - `command`: Fork and execute a specified command plus arguments
|
||||
#
|
||||
# The `command` field must be a map containing a `program` string and an
|
||||
# `args` array of command line parameter strings. For example:
|
||||
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods`: Key modifiers to filter binding actions
|
||||
#
|
||||
# - Command
|
||||
# - Control
|
||||
# - Option
|
||||
# - Super
|
||||
# - Shift
|
||||
# - Alt
|
||||
#
|
||||
# Multiple `mods` can be combined using `|` like this:
|
||||
# `mods: Control|Shift`.
|
||||
# Whitespace and capitalization are relevant and must match the example.
|
||||
#
|
||||
# - `mode`: Indicate a binding for only specific terminal reported modes
|
||||
#
|
||||
# This is mainly used to send applications the correct escape sequences
|
||||
# when in different modes.
|
||||
#
|
||||
# - AppCursor
|
||||
# - AppKeypad
|
||||
# - Search
|
||||
# - Alt
|
||||
# - Vi
|
||||
#
|
||||
# A `~` operator can be used before a mode to apply the binding whenever
|
||||
# the mode is *not* active, e.g. `~Alt`.
|
||||
#
|
||||
# Bindings are always filled by default, but will be replaced when a new
|
||||
# binding with the same triggers is defined. To unset a default binding, it can
|
||||
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
|
||||
# a no-op if you do not wish to receive input characters for that binding.
|
||||
#
|
||||
# If the same trigger is assigned to multiple actions, all of them are executed
|
||||
# in the order they were defined in.
|
||||
#key_bindings:
|
||||
#- { key: Paste, action: Paste }
|
||||
#- { key: Copy, action: Copy }
|
||||
#- { key: L, mods: Control, action: ClearLogNotice }
|
||||
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
||||
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp }
|
||||
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
||||
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop }
|
||||
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
||||
|
||||
# Vi Mode
|
||||
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
|
||||
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
|
||||
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
|
||||
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
|
||||
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
|
||||
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
|
||||
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
|
||||
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
|
||||
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
|
||||
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
|
||||
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
|
||||
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
|
||||
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
|
||||
#- { key: Y, mode: Vi|~Search, action: Copy }
|
||||
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
|
||||
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
|
||||
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
|
||||
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
|
||||
#- { key: Return, mode: Vi|~Search, action: Open }
|
||||
#- { key: Z, mode: Vi|~Search, action: CenterAroundViCursor }
|
||||
#- { key: K, mode: Vi|~Search, action: Up }
|
||||
#- { key: J, mode: Vi|~Search, action: Down }
|
||||
#- { key: H, mode: Vi|~Search, action: Left }
|
||||
#- { key: L, mode: Vi|~Search, action: Right }
|
||||
#- { key: Up, mode: Vi|~Search, action: Up }
|
||||
#- { key: Down, mode: Vi|~Search, action: Down }
|
||||
#- { key: Left, mode: Vi|~Search, action: Left }
|
||||
#- { key: Right, mode: Vi|~Search, action: Right }
|
||||
#- { key: Key0, mode: Vi|~Search, action: First }
|
||||
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
|
||||
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
|
||||
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
|
||||
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
|
||||
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
|
||||
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
|
||||
#- { key: W, mode: Vi|~Search, action: SemanticRight }
|
||||
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
|
||||
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
|
||||
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
|
||||
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
|
||||
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
|
||||
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
|
||||
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
|
||||
#- { key: N, mode: Vi|~Search, action: SearchNext }
|
||||
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
|
||||
|
||||
# Search Mode
|
||||
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
|
||||
#- { key: Escape, mode: Search, action: SearchCancel }
|
||||
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
|
||||
#- { key: U, mods: Control, mode: Search, action: SearchClear }
|
||||
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
|
||||
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
|
||||
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
|
||||
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
|
||||
#- { key: Down, mode: Search, action: SearchHistoryNext }
|
||||
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
|
||||
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
|
||||
|
||||
# (Windows, Linux, and BSD only)
|
||||
#- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
|
||||
#- { key: C, mods: Control|Shift, action: Copy }
|
||||
#- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
|
||||
#- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
|
||||
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Plus, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
# (Windows only)
|
||||
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
||||
|
||||
# (macOS only)
|
||||
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
|
||||
#- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
|
||||
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Plus, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: V, mods: Command, action: Paste }
|
||||
#- { key: C, mods: Command, action: Copy }
|
||||
#- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: H, mods: Command, action: Hide }
|
||||
#- { key: H, mods: Command|Alt, action: HideOtherApplications }
|
||||
#- { key: M, mods: Command, action: Minimize }
|
||||
#- { key: Q, mods: Command, action: Quit }
|
||||
#- { key: W, mods: Command, action: Quit }
|
||||
#- { key: N, mods: Command, action: SpawnNewInstance }
|
||||
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
||||
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
|
||||
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
|
||||
|
||||
#debug:
|
||||
# Display the time it takes to redraw each frame.
|
||||
#render_timer: false
|
||||
|
||||
# Keep the log file after quitting Alacritty.
|
||||
#persistent_logging: false
|
||||
|
||||
# Log level
|
||||
#
|
||||
# Values for `log_level`:
|
||||
# - Off
|
||||
# - Error
|
||||
# - Warn
|
||||
# - Info
|
||||
# - Debug
|
||||
# - Trace
|
||||
#log_level: Warn
|
||||
|
||||
# Print all received window events.
|
||||
#print_events: false
|
||||
|
||||
# Highlight window damage information.
|
||||
#highlight_damage: false
|
||||
@@ -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;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
# From https://github.com/addy-dclxvi/almighty-dotfiles
|
||||
# See dunst(5) for all configuration options
|
||||
|
||||
[global]
|
||||
### Display ###
|
||||
@@ -17,42 +17,68 @@
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = mouse
|
||||
follow = none
|
||||
|
||||
# The geometry of the window:
|
||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||
# The geometry of the message window.
|
||||
# The height is measured in number of notifications everything else
|
||||
# in pixels. If the width is omitted but the height is given
|
||||
# ("-geometry x2"), the message window expands over the whole screen
|
||||
# (dmenu-like). If width is 0, the window expands to the longest
|
||||
# message displayed. A positive x is measured from the left, a
|
||||
# negative from the right side of the screen. Y is measured from
|
||||
# the top and down respectively.
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
geometry = "250x-50-30+20"
|
||||
### Geometry ###
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
# dynamic width from 0 to 300
|
||||
# width = (0, 300)
|
||||
# constant width of 300
|
||||
width = 300
|
||||
|
||||
# The maximum height of a single notification, excluding the frame.
|
||||
height = 300
|
||||
|
||||
# Position the notification in the top right corner
|
||||
origin = top-right
|
||||
|
||||
# Offset from the origin
|
||||
offset = 10x50
|
||||
|
||||
# Scale factor. It is auto-detected if value is 0.
|
||||
scale = 0
|
||||
|
||||
# Maximum number of notification (0 means no limit)
|
||||
notification_limit = 20
|
||||
|
||||
### Progress bar ###
|
||||
|
||||
# Turn on the progess bar. It appears when a progress hint is passed with
|
||||
# for example dunstify -h int:value:12
|
||||
progress_bar = true
|
||||
|
||||
# Set the progress bar height. This includes the frame, so make sure
|
||||
# it's at least twice as big as the frame width.
|
||||
progress_bar_height = 10
|
||||
|
||||
# Set the frame width of the progress bar
|
||||
progress_bar_frame_width = 1
|
||||
|
||||
# Set the minimum width for the progress bar
|
||||
progress_bar_min_width = 150
|
||||
|
||||
# Set the maximum width for the progress bar
|
||||
progress_bar_max_width = 300
|
||||
|
||||
# Corner radius for the progress bar. 0 disables rounded corners.
|
||||
progress_bar_corner_radius = 0
|
||||
|
||||
# Corner radius for the icon image.
|
||||
icon_corner_radius = 0
|
||||
|
||||
# Show how many messages are currently hidden (because of
|
||||
# notification_limit).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = no
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.).
|
||||
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
|
||||
transparency = 0
|
||||
|
||||
# The height of the entire notification. If the height is smaller
|
||||
# than the font height and padding combined, it will be raised
|
||||
# to the font height and padding.
|
||||
notification_height = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
# If gap_size is greater than 0, this setting will be ignored.
|
||||
separator_height = 4
|
||||
|
||||
# Padding between text and separator.
|
||||
@@ -61,6 +87,9 @@
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 16
|
||||
|
||||
# Padding between text and icon.
|
||||
text_icon_padding = 0
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 2
|
||||
@@ -68,6 +97,12 @@
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#2f343f"
|
||||
|
||||
# Size of gap to display between notifications - requires a compositor.
|
||||
# If value is greater than 0, separator_height will be ignored and a border
|
||||
# of size frame_width will be drawn around each notification instead.
|
||||
# Click events on gaps do not currently propagate to applications below.
|
||||
gap_size = 0
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
@@ -76,21 +111,28 @@
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
# Sort type.
|
||||
# possible values are:
|
||||
# * id: sort by id
|
||||
# * urgency_ascending: sort by urgency (low then normal then critical)
|
||||
# * urgency_descending: sort by urgency (critical then normal then low)
|
||||
# * update: sort by update (most recent always at the top)
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
idle_threshold = 120
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
# idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
font = Roboto 8
|
||||
font = Monospace 8
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 4
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
@@ -100,7 +142,7 @@
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
@@ -124,6 +166,7 @@
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "<b>%s</b>\n%b"
|
||||
|
||||
@@ -131,40 +174,55 @@
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
vertical_alignment = center
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Split notifications into multiple lines if they don't fit into
|
||||
# geometry.
|
||||
word_wrap = yes
|
||||
# Specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Merge multiple notifications with the same content
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Sets the stack tag for the notification, notifications with the same (non-empty) stack tag will replace each-other so only the newest one is visible.
|
||||
set_stack_tag = "tag"
|
||||
|
||||
# Hide the count of merged notifications with the same content
|
||||
hide_duplicate_count = true
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = off
|
||||
# Recursive icon lookup. You can set a single theme, instead of having to
|
||||
# define all lookup paths.
|
||||
enable_recursive_icon_lookup = true
|
||||
|
||||
# Set icon theme (only used for recursive icon lookup)
|
||||
icon_theme = Adwaita
|
||||
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||
# icon_theme = "Adwaita, breeze"
|
||||
|
||||
# Align icons left/right/top/off
|
||||
icon_position = left
|
||||
|
||||
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||
# max_icon_size takes precedence over this.
|
||||
min_icon_size = 32
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 32
|
||||
max_icon_size = 128
|
||||
|
||||
# Paths to default icons.
|
||||
icon_folders = /usr/share/icons/Arc/status/16/:/usr/share/icons/Arc/devices/16/
|
||||
# Paths to default icons (only neccesary when not using recursive icon lookup)
|
||||
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||
|
||||
### History ###
|
||||
|
||||
@@ -181,7 +239,7 @@
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/firefox -new-tab
|
||||
browser = /usr/bin/xdg-open
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
@@ -192,10 +250,28 @@
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Print a notification on startup.
|
||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||
# automatically after a crash.
|
||||
startup_notification = false
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 0
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
# parameter, an application may close the notification sent before the
|
||||
# user defined timeout.
|
||||
ignore_dbusclose = false
|
||||
|
||||
### Wayland ###
|
||||
# These settings are Wayland-specific. They have no effect when using X11
|
||||
|
||||
# Uncomment this if you want to let notications appear under fullscreen
|
||||
# applications (default: overlay)
|
||||
# layer = top
|
||||
|
||||
# Set this to true to use X11 output on Wayland.
|
||||
force_xwayland = false
|
||||
|
||||
### Legacy
|
||||
|
||||
@@ -209,6 +285,25 @@
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
### mouse
|
||||
|
||||
# Defines list of actions for each mouse event
|
||||
# Possible values are:
|
||||
# * none: Don't do anything.
|
||||
# * do_action: Invoke the action determined by the action_name rule. If there is no
|
||||
# such action, open the context menu.
|
||||
# * open_url: If the notification has exactly one url, open it. If there are multiple
|
||||
# ones, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
# * context: Open context menu for the notification.
|
||||
# * context_all: Open context menu for all notifications.
|
||||
# These values can be strung together for each mouse event, and
|
||||
# will be executed in sequence.
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action, close_current
|
||||
mouse_right_click = close_all
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
@@ -219,27 +314,6 @@
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
[shortcuts]
|
||||
|
||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||
# "mod3" and "mod4" (windows-key).
|
||||
# Xev might be helpful to find names for keys.
|
||||
|
||||
# Close notification.
|
||||
close = ctrl+space
|
||||
|
||||
# Close all notifications.
|
||||
close_all = ctrl+shift+space
|
||||
|
||||
# Redisplay last message(s).
|
||||
# On the US keyboard layout "grave" is normally above TAB and left
|
||||
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||
# e.g. check output of 'xmodmap -pke'
|
||||
history = ctrl+grave
|
||||
|
||||
# Context menu.
|
||||
context = ctrl+shift+period
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
@@ -267,11 +341,50 @@
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
# Messages can be matched by "appname", "summary", "body", "icon", "category",
|
||||
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
|
||||
# "background", "new_icon" and "format".
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# set_category
|
||||
# timeout
|
||||
# urgency
|
||||
# icon_position
|
||||
# skip_display
|
||||
# history_ignore
|
||||
# action_name
|
||||
# word_wrap
|
||||
# ellipsize
|
||||
# alignment
|
||||
# hide_text
|
||||
# override_pause_level
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
|
||||
# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
|
||||
# override_pause_level = X
|
||||
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
@@ -279,11 +392,33 @@
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: if you don't want a notification to be displayed, set the format
|
||||
# to "".
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
@@ -295,13 +430,18 @@
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# format = ""
|
||||
# skip_display = true
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
@@ -322,5 +462,8 @@
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
||||
|
||||
|
||||
@@ -21,9 +21,8 @@ focus_follows_mouse no
|
||||
|
||||
# Configure
|
||||
# border style <normal|1pixel|pixel xx|none|pixel>
|
||||
new_window pixel 2
|
||||
new_float normal
|
||||
hide_edge_borders none
|
||||
default_border none
|
||||
|
||||
################################################################################################
|
||||
###################################### Workspace Settings ######################################
|
||||
@@ -80,35 +79,23 @@ bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws0; workspace $ws0
|
||||
|
||||
# Open specific applications in floating mode
|
||||
for_window [class="^Thunderbird$" title="^.*Event:"] floating enable
|
||||
|
||||
# https://github.com/z3ntu/dotfiles/blob/master/i3/.config/i3/config
|
||||
# Steam
|
||||
for_window [class="^Steam$" title="^Friends List$"] floating enable
|
||||
for_window [class="^Steam$" title="Steam"] floating enable
|
||||
for_window [class="^Steam$" title="^Settings$"] floating enable
|
||||
for_window [class="^Steam$" title=".* - event started"] floating enable
|
||||
for_window [class="^Steam$" title=".* CD key"] floating enable
|
||||
for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable
|
||||
for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enable
|
||||
for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable
|
||||
for_window [title="^Steam Keyboard$"] floating enable
|
||||
for_window [class="(?i)virtualbox"] floating enable border normal
|
||||
for_window [title="KeePassX$"] floating enable
|
||||
for_window [title="factorio.exe"] floating enable
|
||||
|
||||
###############################################################################
|
||||
############################ 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 udiskie
|
||||
exec --no-startup-id conky -c ~/.conky/syclo-crimson-bottomleft.conkyrc
|
||||
# exec --no-startup-id synergyc -f --no-tray --debug INFO --name genesis --enable-crypto 192.168.178.38:24800
|
||||
exec --no-startup-id dunst
|
||||
exec --no-startup-id ~/.scripts/startup.sh
|
||||
exec --no-startup-id llk
|
||||
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 polybar
|
||||
exec --no-startup-id syncthing serve --no-browser
|
||||
exec --no-startup-id feh --bg-fill $HOME/Pictures/Wallpaper/basic/GMzBUSpbMAAuccT.jpg
|
||||
|
||||
###############################################################################
|
||||
################################# Keybindings #################################
|
||||
@@ -116,42 +103,47 @@ exec --no-startup-id feh --randomize --bg-fill $HOME/Pictures/Wallpaper/*
|
||||
# Lock
|
||||
bindsym $mod+Shift+space exec --no-startup-id python ~/.scripts/i3lock.py
|
||||
|
||||
# shutdown
|
||||
bindsym $mod+Shift+s exec poweroff
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+space exec alacritty
|
||||
bindsym $mod+Return exec alacritty -e nu /home/tuan/.scripts/zellij-chooser.nu
|
||||
bindsym $mod+Return exec alacritty
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# 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
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id ~/.scripts/screen.sh up
|
||||
bindsym XF86MonBrightnessDown exec --no-startup-id ~/.scripts/screen.sh down
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id ~/.scripts/brightness.sh up
|
||||
bindsym XF86MonBrightnessDown exec --no-startup-id ~/.scripts/brightness.sh down
|
||||
|
||||
# Pulse Audio controls
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id ~/.scripts/sound.sh down
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.scripts/sound.sh up
|
||||
bindsym XF86AudioMute exec --no-startup-id ~/.scripts/sound.sh toggle
|
||||
bindsym XF86AudioPlay exec "playerctl play-pause; cmus-remote -u"
|
||||
bindsym XF86AudioStop exec "playerctl stop; cmus-remote -s"
|
||||
bindsym XF86AudioNext exec "playerctl next; cmus-remote -n"
|
||||
bindsym XF86AudioPrevious exec "playerctl previous; cmus-remote -r"
|
||||
# bindsym $mod+p exec ~/.scripts/monitor.sh next
|
||||
|
||||
bindsym XF86AudioPlay exec "playerctl play-pause"
|
||||
bindsym XF86AudioStop exec "playerctl stop"
|
||||
bindsym XF86AudioNext exec "playerctl next"
|
||||
bindsym XF86AudioPrevious exec "playerctl previous"
|
||||
bindsym XF86AudioMicMute exec "amixer set Capture toggle"
|
||||
|
||||
# F9-F12 on Thinkpad
|
||||
bindsym XF86Display exec autorandr --cycle
|
||||
bindsym XF86Messenger exec signal-desktop
|
||||
bindsym XF86Go exec blueman-manager
|
||||
bindsym Cancel exec dunstify -r 3 "Cancel"
|
||||
bindsym XF86Favorites exec dunstify -r 3 "Favorites"
|
||||
|
||||
|
||||
# Application Shortcuts
|
||||
bindsym $mod+b exec firefox
|
||||
bindsym $mod+p exec firefox --private-window https://mos4.de
|
||||
bindsym $mod+e exec emacs
|
||||
bindsym $mod+m exec thunderbird
|
||||
|
||||
# Whole Screen
|
||||
bindsym Control+Print exec --no-startup-id ~/.scripts/screenshot.sh screen
|
||||
|
||||
# Window
|
||||
|
||||
bindsym Mod1+Sys_Req --release exec --no-startup-id ~/.scripts/screenshot.sh window
|
||||
|
||||
# Area
|
||||
@@ -166,7 +158,7 @@ bindsym $mod+j focus down
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+l focus right
|
||||
|
||||
# move focused workspace
|
||||
# move focused workspace
|
||||
bindsym $mod+Mod1+h move workspace to output left
|
||||
bindsym $mod+Mod1+j move workspace to output down
|
||||
bindsym $mod+Mod1+k move workspace to output up
|
||||
@@ -190,7 +182,7 @@ bindsym $mod+f fullscreen toggle
|
||||
bindsym $mod+Mod1+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
# bindsym $mod+space focus mode_toggle
|
||||
bindsym $mod+Shift+f focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
@@ -200,7 +192,7 @@ bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# restart/exit i3
|
||||
bindsym $mod+Shift+r restart
|
||||
bindsym Control+Shift+e exit
|
||||
# bindsym Control+Shift+e exit
|
||||
|
||||
# Resize window (you can also use the mouse for that)
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
1
config/.config/nushell/.gitignore
vendored
1
config/.config/nushell/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
history.txt
|
||||
@@ -1,617 +0,0 @@
|
||||
# Nushell Config File
|
||||
#
|
||||
# version = 0.79.1
|
||||
|
||||
# For more information on defining custom themes, see
|
||||
# https://www.nushell.sh/book/coloring_and_theming.html
|
||||
# And here is the theme collection
|
||||
# https://github.com/nushell/nu_scripts/tree/main/themes
|
||||
let dark_theme = {
|
||||
# color for nushell primitives
|
||||
separator: white
|
||||
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||
header: green_bold
|
||||
empty: blue
|
||||
# Closures can be used to choose colors for specific values.
|
||||
# The value (in this case, a bool) is piped into the closure.
|
||||
bool: {|| if $in { 'light_cyan' } else { 'light_gray' } }
|
||||
int: white
|
||||
filesize: {|e|
|
||||
if $e == 0b {
|
||||
'white'
|
||||
} else if $e < 1mb {
|
||||
'cyan'
|
||||
} else { 'blue' }
|
||||
}
|
||||
duration: white
|
||||
date: {|| (date now) - $in |
|
||||
if $in < 1hr {
|
||||
'purple'
|
||||
} else if $in < 6hr {
|
||||
'red'
|
||||
} else if $in < 1day {
|
||||
'yellow'
|
||||
} else if $in < 3day {
|
||||
'green'
|
||||
} else if $in < 1wk {
|
||||
'light_green'
|
||||
} else if $in < 6wk {
|
||||
'cyan'
|
||||
} else if $in < 52wk {
|
||||
'blue'
|
||||
} else { 'dark_gray' }
|
||||
}
|
||||
range: white
|
||||
float: white
|
||||
string: white
|
||||
nothing: white
|
||||
binary: white
|
||||
cellpath: white
|
||||
row_index: green_bold
|
||||
record: white
|
||||
list: white
|
||||
block: white
|
||||
hints: dark_gray
|
||||
|
||||
shape_and: purple_bold
|
||||
shape_binary: purple_bold
|
||||
shape_block: blue_bold
|
||||
shape_bool: light_cyan
|
||||
shape_closure: green_bold
|
||||
shape_custom: green
|
||||
shape_datetime: cyan_bold
|
||||
shape_directory: cyan
|
||||
shape_external: cyan
|
||||
shape_externalarg: green_bold
|
||||
shape_filepath: cyan
|
||||
shape_flag: blue_bold
|
||||
shape_float: purple_bold
|
||||
# shapes are used to change the cli syntax highlighting
|
||||
shape_garbage: { fg: white bg: red attr: b}
|
||||
shape_globpattern: cyan_bold
|
||||
shape_int: purple_bold
|
||||
shape_internalcall: cyan_bold
|
||||
shape_list: cyan_bold
|
||||
shape_literal: blue
|
||||
shape_match_pattern: green
|
||||
shape_matching_brackets: { attr: u }
|
||||
shape_nothing: light_cyan
|
||||
shape_operator: yellow
|
||||
shape_or: purple_bold
|
||||
shape_pipe: purple_bold
|
||||
shape_range: yellow_bold
|
||||
shape_record: cyan_bold
|
||||
shape_redirection: purple_bold
|
||||
shape_signature: green_bold
|
||||
shape_string: green
|
||||
shape_string_interpolation: cyan_bold
|
||||
shape_table: blue_bold
|
||||
shape_variable: purple
|
||||
shape_vardecl: purple
|
||||
}
|
||||
|
||||
let light_theme = {
|
||||
# color for nushell primitives
|
||||
separator: dark_gray
|
||||
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||
header: green_bold
|
||||
empty: blue
|
||||
# Closures can be used to choose colors for specific values.
|
||||
# The value (in this case, a bool) is piped into the closure.
|
||||
bool: {|| if $in { 'dark_cyan' } else { 'dark_gray' } }
|
||||
int: dark_gray
|
||||
filesize: {|e|
|
||||
if $e == 0b {
|
||||
'dark_gray'
|
||||
} else if $e < 1mb {
|
||||
'cyan_bold'
|
||||
} else { 'blue_bold' }
|
||||
}
|
||||
duration: dark_gray
|
||||
date: {|| (date now) - $in |
|
||||
if $in < 1hr {
|
||||
'purple'
|
||||
} else if $in < 6hr {
|
||||
'red'
|
||||
} else if $in < 1day {
|
||||
'yellow'
|
||||
} else if $in < 3day {
|
||||
'green'
|
||||
} else if $in < 1wk {
|
||||
'light_green'
|
||||
} else if $in < 6wk {
|
||||
'cyan'
|
||||
} else if $in < 52wk {
|
||||
'blue'
|
||||
} else { 'dark_gray' }
|
||||
}
|
||||
range: dark_gray
|
||||
float: dark_gray
|
||||
string: dark_gray
|
||||
nothing: dark_gray
|
||||
binary: dark_gray
|
||||
cellpath: dark_gray
|
||||
row_index: green_bold
|
||||
record: white
|
||||
list: white
|
||||
block: white
|
||||
hints: dark_gray
|
||||
|
||||
shape_and: purple_bold
|
||||
shape_binary: purple_bold
|
||||
shape_block: blue_bold
|
||||
shape_bool: light_cyan
|
||||
shape_closure: green_bold
|
||||
shape_custom: green
|
||||
shape_datetime: cyan_bold
|
||||
shape_directory: cyan
|
||||
shape_external: cyan
|
||||
shape_externalarg: green_bold
|
||||
shape_filepath: cyan
|
||||
shape_flag: blue_bold
|
||||
shape_float: purple_bold
|
||||
# shapes are used to change the cli syntax highlighting
|
||||
shape_garbage: { fg: white bg: red attr: b}
|
||||
shape_globpattern: cyan_bold
|
||||
shape_int: purple_bold
|
||||
shape_internalcall: cyan_bold
|
||||
shape_list: cyan_bold
|
||||
shape_literal: blue
|
||||
shape_match_pattern: green
|
||||
shape_matching_brackets: { attr: u }
|
||||
shape_nothing: light_cyan
|
||||
shape_operator: yellow
|
||||
shape_or: purple_bold
|
||||
shape_pipe: purple_bold
|
||||
shape_range: yellow_bold
|
||||
shape_record: cyan_bold
|
||||
shape_redirection: purple_bold
|
||||
shape_signature: green_bold
|
||||
shape_string: green
|
||||
shape_string_interpolation: cyan_bold
|
||||
shape_table: blue_bold
|
||||
shape_variable: purple
|
||||
shape_vardecl: purple
|
||||
}
|
||||
|
||||
# External completer example
|
||||
# let carapace_completer = {|spans|
|
||||
# carapace $spans.0 nushell $spans | from json
|
||||
# }
|
||||
|
||||
|
||||
# The default config record. This is where much of your global configuration is setup.
|
||||
$env.config = {
|
||||
# true or false to enable or disable the welcome banner at startup
|
||||
show_banner: false
|
||||
ls: {
|
||||
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
|
||||
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
|
||||
}
|
||||
rm: {
|
||||
always_trash: false # always act as if -t was given. Can be overridden with -p
|
||||
}
|
||||
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
|
||||
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
|
||||
show_empty: true # show 'empty list' and 'empty record' placeholders for command output
|
||||
trim: {
|
||||
methodology: wrapping # wrapping or truncating
|
||||
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
|
||||
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
|
||||
}
|
||||
}
|
||||
|
||||
explore: {
|
||||
help_banner: true
|
||||
exit_esc: true
|
||||
|
||||
command_bar_text: '#C4C9C6'
|
||||
# command_bar: {fg: '#C4C9C6' bg: '#223311' }
|
||||
|
||||
status_bar_background: {fg: '#1D1F21' bg: '#C4C9C6' }
|
||||
# status_bar_text: {fg: '#C4C9C6' bg: '#223311' }
|
||||
|
||||
highlight: {bg: 'yellow' fg: 'black' }
|
||||
|
||||
status: {
|
||||
# warn: {bg: 'yellow', fg: 'blue'}
|
||||
# error: {bg: 'yellow', fg: 'blue'}
|
||||
# info: {bg: 'yellow', fg: 'blue'}
|
||||
}
|
||||
|
||||
try: {
|
||||
# border_color: 'red'
|
||||
# highlighted_color: 'blue'
|
||||
|
||||
# reactive: false
|
||||
}
|
||||
|
||||
table: {
|
||||
split_line: '#404040'
|
||||
|
||||
cursor: true
|
||||
|
||||
line_index: true
|
||||
line_shift: true
|
||||
line_head_top: true
|
||||
line_head_bottom: true
|
||||
|
||||
show_head: true
|
||||
show_index: true
|
||||
|
||||
# selected_cell: {fg: 'white', bg: '#777777'}
|
||||
# selected_row: {fg: 'yellow', bg: '#C1C2A3'}
|
||||
# selected_column: blue
|
||||
|
||||
# padding_column_right: 2
|
||||
# padding_column_left: 2
|
||||
|
||||
# padding_index_left: 2
|
||||
# padding_index_right: 1
|
||||
}
|
||||
|
||||
config: {
|
||||
cursor_color: {bg: 'yellow' fg: 'black' }
|
||||
|
||||
# border_color: white
|
||||
# list_color: green
|
||||
}
|
||||
}
|
||||
|
||||
history: {
|
||||
max_size: 10000 # Session has to be reloaded for this to take effect
|
||||
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
|
||||
file_format: "plaintext" # "sqlite" or "plaintext"
|
||||
# history_isolation: true # true enables history isolation, false disables it. true will allow the history to be isolated to the current session. false will allow the history to be shared across all sessions.
|
||||
}
|
||||
completions: {
|
||||
case_sensitive: false # set to true to enable case-sensitive completions
|
||||
quick: true # set this to false to prevent auto-selecting completions when only one remains
|
||||
partial: true # set this to false to prevent partial filling of the prompt
|
||||
algorithm: "prefix" # prefix or fuzzy
|
||||
external: {
|
||||
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
|
||||
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
||||
completer: null # check 'carapace_completer' above as an example
|
||||
}
|
||||
}
|
||||
filesize: {
|
||||
metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
|
||||
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto
|
||||
}
|
||||
cursor_shape: {
|
||||
emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line (line is the default)
|
||||
vi_insert: block # block, underscore, line , blink_block, blink_underscore, blink_line (block is the default)
|
||||
vi_normal: underscore # block, underscore, line, blink_block, blink_underscore, blink_line (underscore is the default)
|
||||
}
|
||||
color_config: $dark_theme # if you want a light theme, replace `$dark_theme` to `$light_theme`
|
||||
use_grid_icons: true
|
||||
footer_mode: "25" # always, never, number_of_rows, auto
|
||||
float_precision: 2 # the precision for displaying floats in tables
|
||||
# buffer_editor: "emacs" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
|
||||
use_ansi_coloring: true
|
||||
edit_mode: emacs # emacs, vi
|
||||
shell_integration: true # enables terminal markers and a workaround to arrow keys stop working issue
|
||||
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
||||
|
||||
hooks: {
|
||||
pre_prompt: [{||
|
||||
null # replace with source code to run before the prompt is shown
|
||||
}]
|
||||
pre_execution: [{||
|
||||
null # replace with source code to run before the repl input is run
|
||||
}]
|
||||
env_change: {
|
||||
PWD: [{|before, after|
|
||||
null # replace with source code to run if the PWD environment is different since the last repl input
|
||||
}]
|
||||
}
|
||||
display_output: {||
|
||||
if (term size).columns >= 100 { table -e } else { table }
|
||||
}
|
||||
command_not_found: {||
|
||||
null # replace with source code to return an error message when a command is not found
|
||||
}
|
||||
}
|
||||
menus: [
|
||||
# Configuration for default nushell menus
|
||||
# Note the lack of source parameter
|
||||
{
|
||||
name: completion_menu
|
||||
only_buffer_difference: false
|
||||
marker: "| "
|
||||
type: {
|
||||
layout: columnar
|
||||
columns: 4
|
||||
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||
col_padding: 2
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: green_reverse
|
||||
description_text: yellow
|
||||
}
|
||||
}
|
||||
{
|
||||
name: history_menu
|
||||
only_buffer_difference: true
|
||||
marker: "? "
|
||||
type: {
|
||||
layout: list
|
||||
page_size: 10
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: green_reverse
|
||||
description_text: yellow
|
||||
}
|
||||
}
|
||||
{
|
||||
name: help_menu
|
||||
only_buffer_difference: true
|
||||
marker: "? "
|
||||
type: {
|
||||
layout: description
|
||||
columns: 4
|
||||
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||
col_padding: 2
|
||||
selection_rows: 4
|
||||
description_rows: 10
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: green_reverse
|
||||
description_text: yellow
|
||||
}
|
||||
}
|
||||
# Example of extra menus created using a nushell source
|
||||
# Use the source field to create a list of records that populates
|
||||
# the menu
|
||||
{
|
||||
name: commands_menu
|
||||
only_buffer_difference: false
|
||||
marker: "# "
|
||||
type: {
|
||||
layout: columnar
|
||||
columns: 4
|
||||
col_width: 20
|
||||
col_padding: 2
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: green_reverse
|
||||
description_text: yellow
|
||||
}
|
||||
source: { |buffer, position|
|
||||
$nu.scope.commands
|
||||
| where name =~ $buffer
|
||||
| each { |it| {value: $it.name description: $it.usage} }
|
||||
}
|
||||
}
|
||||
{
|
||||
name: vars_menu
|
||||
only_buffer_difference: true
|
||||
marker: "# "
|
||||
type: {
|
||||
layout: list
|
||||
page_size: 10
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: green_reverse
|
||||
description_text: yellow
|
||||
}
|
||||
source: { |buffer, position|
|
||||
$nu.scope.vars
|
||||
| where name =~ $buffer
|
||||
| sort-by name
|
||||
| each { |it| {value: $it.name description: $it.type} }
|
||||
}
|
||||
}
|
||||
{
|
||||
name: commands_with_description
|
||||
only_buffer_difference: true
|
||||
marker: "# "
|
||||
type: {
|
||||
layout: description
|
||||
columns: 4
|
||||
col_width: 20
|
||||
col_padding: 2
|
||||
selection_rows: 4
|
||||
description_rows: 10
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: green_reverse
|
||||
description_text: yellow
|
||||
}
|
||||
source: { |buffer, position|
|
||||
$nu.scope.commands
|
||||
| where name =~ $buffer
|
||||
| each { |it| {value: $it.name description: $it.usage} }
|
||||
}
|
||||
}
|
||||
]
|
||||
keybindings: [
|
||||
{
|
||||
name: completion_menu
|
||||
modifier: none
|
||||
keycode: tab
|
||||
mode: [emacs vi_normal vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menu name: completion_menu }
|
||||
{ send: menunext }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: completion_previous
|
||||
modifier: shift
|
||||
keycode: backtab
|
||||
mode: [emacs, vi_normal, vi_insert] # Note: You can add the same keybinding to all modes by using a list
|
||||
event: { send: menuprevious }
|
||||
}
|
||||
{
|
||||
name: history_menu
|
||||
modifier: control
|
||||
keycode: char_r
|
||||
mode: emacs
|
||||
event: { send: menu name: history_menu }
|
||||
}
|
||||
{
|
||||
name: next_page
|
||||
modifier: control
|
||||
keycode: char_x
|
||||
mode: emacs
|
||||
event: { send: menupagenext }
|
||||
}
|
||||
{
|
||||
name: undo_or_previous_page
|
||||
modifier: control
|
||||
keycode: char_z
|
||||
mode: emacs
|
||||
event: {
|
||||
until: [
|
||||
{ send: menupageprevious }
|
||||
{ edit: undo }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: yank
|
||||
modifier: control
|
||||
keycode: char_y
|
||||
mode: emacs
|
||||
event: {
|
||||
until: [
|
||||
{edit: pastecutbufferafter}
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: unix-line-discard
|
||||
modifier: control
|
||||
keycode: char_u
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{edit: cutfromlinestart}
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: kill-line
|
||||
modifier: control
|
||||
keycode: char_k
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{edit: cuttolineend}
|
||||
]
|
||||
}
|
||||
}
|
||||
# Keybindings used to trigger the user defined menus
|
||||
{
|
||||
name: commands_menu
|
||||
modifier: control
|
||||
keycode: char_t
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: menu name: commands_menu }
|
||||
}
|
||||
{
|
||||
name: vars_menu
|
||||
modifier: alt
|
||||
keycode: char_o
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: menu name: vars_menu }
|
||||
}
|
||||
{
|
||||
name: commands_with_description
|
||||
modifier: control
|
||||
keycode: char_s
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: menu name: commands_with_description }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
def add_soft [project] { git remote add soft $"ssh://git.aya00:/($project)" }
|
||||
export def-env own_ranger [] {
|
||||
let lastdir_path = $"($env.HOME)/.rangerdir";
|
||||
^ranger $"--choosedir=($lastdir_path)";
|
||||
let lastdir = (open $lastdir_path);
|
||||
cd $lastdir
|
||||
}
|
||||
|
||||
def pwd_xsel [] {
|
||||
let path = $"(pwd)";
|
||||
$"cd `($path)`"| xsel -b;
|
||||
$"Copied `($path)`";
|
||||
}
|
||||
|
||||
alias ll = ls -la
|
||||
alias la = ls -a
|
||||
alias q = exit
|
||||
alias picotik = picocom --b 115199 /dev/ttyUSB0
|
||||
alias nmap = ^nmap -T5 --min-parallelism 100 -Pn
|
||||
alias ed = emacs --daemon
|
||||
alias eledger = emacsclient -nw ~/Documents/Finanzen/Ledger/MyBudget.ledger
|
||||
alias sshconfig = emacsclient -nw ~/.ssh/config
|
||||
alias econfig = emacsclient -nw ~/.doom.d/init.el
|
||||
alias wttr = curl wttr.in/Essen
|
||||
alias tvres = xrandr --output HDMI1 --transform 1.02,0,-20,0,1.02,-10,0,0,1
|
||||
alias defaultres = xrandr --output HDMI1 --transform 1.00,0,0,0,1.00,0,0,0,1
|
||||
alias latexmk = ^latexmk -f -pdf -interaction=nonstopmode
|
||||
alias ranger = own_ranger
|
||||
alias xselp = pwd_xsel
|
||||
|
||||
# git
|
||||
alias gpa = git push all --all
|
||||
# alias gras = add_soft
|
||||
alias gd = git diff
|
||||
alias gnd = git --no-pager diff
|
||||
alias gp = git push
|
||||
alias gcsm = git commit -s -m
|
||||
alias gaa = git add --all
|
||||
alias gco = git checkout
|
||||
alias grv = git remote -v
|
||||
# alias kubectl = minikube kubectl --
|
||||
|
||||
def completion_nmcli_connection_show [] {
|
||||
nmcli c s | lines | skip 1 | parse -r "(?P<name>.+) +\(?P<uuid>[a-z0-9-]{36}\) +\(?P<type>[a-z]+\)" | where type == wifi | get name | str trim
|
||||
}
|
||||
|
||||
extern "nmcli c u" [name: string@completion_nmcli_connection_show]
|
||||
|
||||
def completion_ssh_host [] {
|
||||
open ~/.ssh/config | parse -r "Host (?P<host>.+)" | get host | uniq | str trim
|
||||
}
|
||||
|
||||
extern "ssh" [host: string@completion_ssh_host]
|
||||
|
||||
def completion_git_branch [] {
|
||||
git --no-pager branch | str replace '\*' ' ' | lines | str trim
|
||||
}
|
||||
|
||||
extern "git branch" [host: string@completion_git_branch]
|
||||
|
||||
def completion_docker_kill [] {
|
||||
docker ps | lines | skip 1 | parse -r '^(?P<container>\w+) +(?P<image>\w+) .*' | get container | str trim
|
||||
}
|
||||
|
||||
extern "docker kill" [host: string@completion_docker_kill]
|
||||
|
||||
def completion_ip_addr [] {
|
||||
ip link | lines | parse -r '\d+: (?P<name>[\w@\.]+):' | get name | str trim
|
||||
}
|
||||
|
||||
extern "ip addr show" [host: string@completion_ip_addr]
|
||||
extern "ip a s" [host: string@completion_ip_addr]
|
||||
|
||||
$env.DOCKER_BUILDKIT = 1 # Disable for podman
|
||||
source ~/.cache/starship/init.nu
|
||||
@@ -1,89 +0,0 @@
|
||||
# Nushell Environment Config File
|
||||
#
|
||||
# version = 0.83.1
|
||||
|
||||
def create_left_prompt [] {
|
||||
mut home = ""
|
||||
try {
|
||||
if $nu.os-info.name == "windows" {
|
||||
$home = $env.USERPROFILE
|
||||
} else {
|
||||
$home = $env.HOME
|
||||
}
|
||||
}
|
||||
|
||||
let dir = ([
|
||||
($env.PWD | str substring 0..($home | str length) | str replace $home "~"),
|
||||
($env.PWD | str substring ($home | str length)..)
|
||||
] | str join)
|
||||
|
||||
let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold })
|
||||
let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold })
|
||||
let path_segment = $"($path_color)($dir)"
|
||||
|
||||
$path_segment | str replace --all (char path_sep) $"($separator_color)/($path_color)"
|
||||
}
|
||||
|
||||
def create_right_prompt [] {
|
||||
# create a right prompt in magenta with green separators and am/pm underlined
|
||||
let time_segment = ([
|
||||
(ansi reset)
|
||||
(ansi magenta)
|
||||
(date now | date format '%Y/%m/%d %r')
|
||||
] | str join | str replace --all "([/:])" $"(ansi green)${1}(ansi magenta)" |
|
||||
str replace --all "([AP]M)" $"(ansi magenta_underline)${1}")
|
||||
|
||||
let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([
|
||||
(ansi rb)
|
||||
($env.LAST_EXIT_CODE)
|
||||
] | str join)
|
||||
} else { "" }
|
||||
|
||||
([$last_exit_code, (char space), $time_segment] | str join)
|
||||
}
|
||||
|
||||
# Use nushell functions to define your right and left prompt
|
||||
$env.PROMPT_COMMAND = {|| create_left_prompt }
|
||||
# $env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
|
||||
|
||||
# The prompt indicators are environmental variables that represent
|
||||
# the state of the prompt
|
||||
$env.PROMPT_INDICATOR = {|| " > " }
|
||||
$env.PROMPT_INDICATOR_VI_INSERT = {|| " : " }
|
||||
$env.PROMPT_INDICATOR_VI_NORMAL = {|| " > " }
|
||||
$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " }
|
||||
|
||||
# Specifies how environment variables are:
|
||||
# - converted from a string to a value on Nushell startup (from_string)
|
||||
# - converted from a value back to a string when running external commands (to_string)
|
||||
# Note: The conversions happen *after* config.nu is loaded
|
||||
$env.ENV_CONVERSIONS = {
|
||||
"PATH": {
|
||||
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
|
||||
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
|
||||
}
|
||||
"Path": {
|
||||
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
|
||||
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
|
||||
}
|
||||
}
|
||||
|
||||
# Directories to search for scripts when calling source or use
|
||||
$env.NU_LIB_DIRS = [
|
||||
# ($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts
|
||||
($nu.default-config-dir | path join completions) # add <nushell-config-dir>/completions
|
||||
]
|
||||
|
||||
# Directories to search for plugin binaries when calling register
|
||||
$env.NU_PLUGIN_DIRS = [
|
||||
# ($nu.default-config-dir | path join 'plugins') # add <nushell-config-dir>/plugins
|
||||
]
|
||||
|
||||
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
|
||||
# $env.PATH = ($env.PATH | split row (char esep))
|
||||
|
||||
$env.EDITOR = "emacs -nw"
|
||||
$env.VISUAL = "bat"
|
||||
$env.PAGER = "bat --pager auto"
|
||||
|
||||
$env.KUBECONFIG = $"($env.HOME)/.kube/config"
|
||||
@@ -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
|
||||
|
||||
|
||||
187
config/.config/polybar/config.ini
Normal file
187
config/.config/polybar/config.ini
Normal file
@@ -0,0 +1,187 @@
|
||||
[colors]
|
||||
background=#1e1e2e
|
||||
background-alt = #373B41
|
||||
foreground = #C5C8C6
|
||||
primary = #F0C674
|
||||
secondary = #8ABEB7
|
||||
alert = #A54242
|
||||
disabled = #707880
|
||||
|
||||
[bar/example]
|
||||
width = 100%
|
||||
height = 24pt
|
||||
radius = 6
|
||||
|
||||
; dpi = 96
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 3pt
|
||||
|
||||
border-size = 4pt
|
||||
border-color = #00000000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 1
|
||||
|
||||
module-margin = 1
|
||||
|
||||
separator = |
|
||||
separator-foreground = ${colors.disabled}
|
||||
|
||||
font-0 = monospace;2
|
||||
|
||||
modules-left = battery xwindow
|
||||
modules-right = filesystem memory cpu wlan eth xkeyboard pulseaudio date
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
enable-ipc = true
|
||||
|
||||
; wm-restack = generic
|
||||
; wm-restack = bspwm
|
||||
; wm-restack = i3
|
||||
|
||||
; override-redirect = true
|
||||
|
||||
; This module is not active by default (to enable it, add it to one of the
|
||||
; modules-* list above).
|
||||
; Please note that only a single tray can exist at any time. If you launch
|
||||
; multiple bars with this module, only a single one will show it, the others
|
||||
; will produce a warning. Which bar gets the module is timing dependent and can
|
||||
; be quite random.
|
||||
; For more information, see the documentation page for this module:
|
||||
; https://polybar.readthedocs.io/en/stable/user/modules/tray.html
|
||||
[module/systray]
|
||||
type = internal/tray
|
||||
|
||||
format-margin = 8pt
|
||||
tray-spacing = 16pt
|
||||
|
||||
[module/xworkspaces]
|
||||
type = internal/xworkspaces
|
||||
|
||||
label-active = %name%
|
||||
label-active-background = ${colors.background-alt}
|
||||
label-active-underline= ${colors.primary}
|
||||
label-active-padding = 1
|
||||
|
||||
label-occupied = %name%
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent = %name%
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty = %name%
|
||||
label-empty-foreground = ${colors.disabled}
|
||||
label-empty-padding = 1
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:50:...%
|
||||
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
interval = 25
|
||||
|
||||
mount-0 = /
|
||||
|
||||
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
|
||||
|
||||
label-unmounted = %mountpoint% not mounted
|
||||
label-unmounted-foreground = ${colors.disabled}
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume-prefix = "VOL "
|
||||
format-volume-prefix-foreground = ${colors.primary}
|
||||
format-volume = <label-volume>
|
||||
|
||||
label-volume = %percentage%%
|
||||
|
||||
label-muted = muted
|
||||
label-muted-foreground = ${colors.disabled}
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
blacklist-0 = num lock
|
||||
|
||||
label-layout = %layout%
|
||||
label-layout-foreground = ${colors.primary}
|
||||
|
||||
label-indicator-padding = 2
|
||||
label-indicator-margin = 1
|
||||
label-indicator-foreground = ${colors.background}
|
||||
label-indicator-background = ${colors.secondary}
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = "RAM "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage_used:2%%
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = "CPU "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage:2%%
|
||||
|
||||
[network-base]
|
||||
type = internal/network
|
||||
interval = 5
|
||||
format-connected = <label-connected>
|
||||
format-disconnected = <label-disconnected>
|
||||
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
|
||||
|
||||
[module/wlan]
|
||||
inherit = network-base
|
||||
interface-type = wireless
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %essid:0:12:...% %local_ip%
|
||||
|
||||
[module/eth]
|
||||
inherit = network-base
|
||||
interface-type = wired
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date = %H:%M
|
||||
date-alt = %Y-%m-%d %H:%M:%S
|
||||
|
||||
label = %date%
|
||||
label-foreground = ${colors.primary}
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
|
||||
; This is useful in case the battery never reports 100% charge
|
||||
; Default: 100
|
||||
full-at = 99
|
||||
|
||||
; format-low once this charge percentage is reached
|
||||
; Default: 10
|
||||
; New in version 3.6.0
|
||||
low-at = 10
|
||||
|
||||
; Use the following command to list batteries and adapters:
|
||||
; $ ls -1 /sys/class/power_supply/
|
||||
battery = BAT0
|
||||
adapter = AC
|
||||
|
||||
poll-interval = 5
|
||||
label-charging = %{F#F0C674}BAT%{F-} %percentage%%
|
||||
label-discharging = %{F#F0C674}BAT%{F-} %percentage%%
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
pseudo-transparency = true
|
||||
|
||||
; vim:ft=dosini
|
||||
@@ -16,5 +16,5 @@ theme='style-7'
|
||||
|
||||
## Run
|
||||
rofi \
|
||||
-show run \
|
||||
-theme ${dir}/${theme}.rasi
|
||||
-show run \
|
||||
-theme ${dir}/${theme}.rasi
|
||||
|
||||
@@ -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,8 +1,6 @@
|
||||
// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true"
|
||||
keybinds {
|
||||
normal clear-defaults=true {
|
||||
// uncomment this and adjust key if using copy_on_select=false
|
||||
// bind "Alt c" { Copy; }
|
||||
bind "F1" {SwitchToMode "Tab"; }
|
||||
bind "F2" {SwitchToMode "Pane"; }
|
||||
bind "F5" {SwitchToMode "Session"; }
|
||||
@@ -22,6 +20,25 @@ keybinds {
|
||||
bind "Alt -" { Resize "Decrease"; }
|
||||
|
||||
}
|
||||
tab {
|
||||
bind "Ctrl t" { SwitchToMode "Normal"; }
|
||||
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
|
||||
bind "h" "Left" "Up" "k" { GoToPreviousTab; }
|
||||
bind "l" "Right" "Down" "j" { GoToNextTab; }
|
||||
bind "n" { NewTab; SwitchToMode "Normal"; }
|
||||
bind "x" { CloseTab; SwitchToMode "Normal"; }
|
||||
bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
|
||||
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
|
||||
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
|
||||
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
|
||||
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
|
||||
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
|
||||
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
|
||||
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
|
||||
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
|
||||
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
|
||||
bind "Tab" { ToggleTab; }
|
||||
}
|
||||
locked {
|
||||
bind "F12" { SwitchToMode "Normal"; }
|
||||
}
|
||||
@@ -63,25 +80,6 @@ keybinds {
|
||||
bind "k" "Up" { MovePane "Up"; }
|
||||
bind "l" "Right" { MovePane "Right"; }
|
||||
}
|
||||
tab {
|
||||
bind "Ctrl t" { SwitchToMode "Normal"; }
|
||||
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
|
||||
bind "h" "Left" "Up" "k" { GoToPreviousTab; }
|
||||
bind "l" "Right" "Down" "j" { GoToNextTab; }
|
||||
bind "n" { NewTab; SwitchToMode "Normal"; }
|
||||
bind "x" { CloseTab; SwitchToMode "Normal"; }
|
||||
bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
|
||||
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
|
||||
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
|
||||
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
|
||||
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
|
||||
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
|
||||
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
|
||||
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
|
||||
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
|
||||
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
|
||||
bind "Tab" { ToggleTab; }
|
||||
}
|
||||
scroll {
|
||||
bind "Ctrl s" { SwitchToMode "Normal"; }
|
||||
bind "e" { EditScrollback; SwitchToMode "Normal"; }
|
||||
@@ -224,6 +222,7 @@ plugins {
|
||||
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
|
||||
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
|
||||
//
|
||||
//
|
||||
themes {
|
||||
tokyo-night-dark {
|
||||
fg 169 177 214
|
||||
@@ -299,7 +298,7 @@ theme "tokyo-night-dark"
|
||||
// Path to the default editor to use to edit pane scrollbuffer
|
||||
// Default: $EDITOR or $VISUAL
|
||||
//
|
||||
// scrollback_editor "/usr/bin/vim"
|
||||
scrollback_editor "/usr/bin/nvim"
|
||||
|
||||
// When attaching to an existing session with other users,
|
||||
// should the session be mirrored (true)
|
||||
|
||||
21
config/.gitconfig
Normal file
21
config/.gitconfig
Normal file
@@ -0,0 +1,21 @@
|
||||
[user]
|
||||
email = tuan-dat.tran@tudattr.dev
|
||||
name = Tuan-Dat Tran
|
||||
|
||||
[core]
|
||||
pager = delta
|
||||
|
||||
[interactive]
|
||||
diffFilter = delta --color-only
|
||||
|
||||
[delta]
|
||||
navigate = true # use n and N to move between diff sections
|
||||
|
||||
[merge]
|
||||
conflictstyle = diff3
|
||||
|
||||
[diff]
|
||||
colorMoved = default
|
||||
|
||||
[push]
|
||||
autoSetupRemote = true
|
||||
@@ -1,19 +1,7 @@
|
||||
u:/home/tuan/Documents/Uni/Studium
|
||||
p:/home/tuan/Documents/Protokolle/FSE
|
||||
o:/home/tuan/.dotfiles/config
|
||||
m:/home/tuan/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte/04-5G_IANA/02-machine-learning/mvr
|
||||
a:/home/tuan/Documents/Arbeit/Uni-DuE_NCS_SHK
|
||||
l:/home/tuan/Local
|
||||
c:/home/tuan/Documents/CTF
|
||||
t:/home/tuan/Templates
|
||||
w:/home/tuan/workspace_l/home_lab/wiki
|
||||
k:/home/tuan/.syncthing/Documents/Uni/Studium/2022_Sommersemester/Bachelorprojekt/Implement EFCF based on libAFL/git/foundry/evm/src/executor
|
||||
q:/home/tuan/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte/04-5G_IANA/02-gps
|
||||
':/home/tuan/.dotfiles/config/.config/nushell
|
||||
e:/home/tuan/Documents/Uni/Studium/2022&2023_Wintersemester/Bachelorprojekt/LibAFL with EVM/Project/ethfuzz
|
||||
s:/home/tuan/Pictures/Screenshots
|
||||
v:/home/tuan/.aya01/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte/06-Server_Setup/ansible
|
||||
f:/home/tuan/Documents/Finanzen/Unternehmen/Rechnungen
|
||||
g:/home/tuan/workspace_l/home_lab
|
||||
r:/home/tuan/Documents/roam
|
||||
b:/home/tuan/.syncthing/Documents/Uni/Studium/2022&2023_Wintersemester/Bachelorprojekt/ethfuzz
|
||||
':/home/tudattr/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte/27-p4-experiment-setup/btcp_patrick_kuhs/experiment-scripts
|
||||
a:/home/tudattr/Documents/Arbeit/Uni-DuE_NCS_SHK/04_-_Projekte
|
||||
s:/home/tudattr/Pictures/Screenshots
|
||||
u:/home/tudattr/.genesis/Documents/Uni/Studium
|
||||
e:/home/tudattr/.genesis/Documents/Uni/Studium/2023_Sommersemester/ethfuzz
|
||||
r:/home/tudattr/.genesis/Documents/Uni/Studium/2023_Sommersemester/ethfuzz-evaluation/eval_ityfuzz/contracts/VeriSmart-benchmarks
|
||||
m:/run/media/tudattr
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
10
config/.scripts/battery_stats.sh
Executable file
10
config/.scripts/battery_stats.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
FILENAME=$(date -I)
|
||||
|
||||
while true; do
|
||||
TIMESTAMP=$(date +%s)
|
||||
STATS=$(acpi | sed "s/.*\([0-9]\{2\}\)%.*/\1/")
|
||||
echo "$TIMESTAMP,$STATS" >> ~/.scripts/battery_$FILENAME.log
|
||||
sleep 1
|
||||
done
|
||||
23
config/.scripts/brightness.sh
Executable file
23
config/.scripts/brightness.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
type xbacklight >/dev/null 2>&1 || {
|
||||
echo >&2 "I require xbacklight but it's not installed. Aborting."
|
||||
exit 1
|
||||
}
|
||||
type dunstify >/dev/null 2>&1 || {
|
||||
echo >&2 "I require dunstify but it's not installed. Aborting."
|
||||
exit 1
|
||||
}
|
||||
|
||||
case $1 in
|
||||
"up"*)
|
||||
xbacklight -inc 10 &
|
||||
currentBrightness=$(xbacklight -get)
|
||||
dunstify -r 1 'brightness up'\ \($currentBrightness%\)
|
||||
;;
|
||||
"down"*)
|
||||
xbacklight -dec 10 &
|
||||
currentBrightness=$(xbacklight -get)
|
||||
dunstify -r 1 'brightness down'\ \($currentBrightness%\)
|
||||
;;
|
||||
esac
|
||||
@@ -1,17 +0,0 @@
|
||||
# clean-nushell-db
|
||||
|
||||
#!/usr/bin/env nu
|
||||
let db = "~/dotfiles/nushell/.config/nushell/history.sqlite3"
|
||||
|
||||
def get_current_row [] {
|
||||
let current_row = (^sqlite3 $db "SELECT COUNT(*) FROM history h")
|
||||
echo $"current rows: ($current_row)"
|
||||
}
|
||||
|
||||
get_current_row
|
||||
# Remove failed commands
|
||||
sqlite3 $db "DELETE FROM history WHERE exit_status != 0"
|
||||
# Remove duplicates. But keep one.
|
||||
# https://stackoverflow.com/a/53693544/6000005
|
||||
sqlite3 $db "DELETE FROM history WHERE id NOT IN (SELECT MIN(id) FROM history h GROUP BY command_line);"
|
||||
get_current_row
|
||||
8
config/.scripts/quotes/bojack_horseman.md
Normal file
8
config/.scripts/quotes/bojack_horseman.md
Normal file
@@ -0,0 +1,8 @@
|
||||
We’re just two lonely people trying to hate ourselves a little less.
|
||||
Before I leapt, I should have seen the view from halfway down.
|
||||
Every happy ending has the day after the happy ending.
|
||||
There’s no deep down. I believe that all we are is what we do.
|
||||
It gets easier. Every day it gets a little easier. But you gotta do it every day — that’s the hard part. But it does get easier.
|
||||
Sometimes, life's a bitch and then you keep living.
|
||||
I don't understand how people live. It's amazing to me that people wake up every morning and say: "Yeah! Another day, let's do it!" How do people do it? I don't know how.
|
||||
Don't stop dancing.
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
type xbacklight >/dev/null 2>&1 || { echo >&2 "I require xbacklight but it's not installed. Aborting."; exit 1; }
|
||||
type dunstify >/dev/null 2>&1 || { echo >&2 "I require dunstify but it's not installed. Aborting."; exit 1; }
|
||||
|
||||
case $1 in
|
||||
"up"*)
|
||||
xbacklight -inc 10 &
|
||||
currentBrightness=$(xbacklight | cut -d\. -f1);
|
||||
dunstify -r 1 'brightness up'\ \($currentBrightness%\);
|
||||
;;
|
||||
"down"*)
|
||||
xbacklight -dec 10 &
|
||||
currentBrightness=$(xbacklight | cut -d\. -f1);
|
||||
dunstify -r 1 'brightness down'\ \($currentBrightness%\);
|
||||
;;
|
||||
esac
|
||||
@@ -1,38 +1,57 @@
|
||||
#!/bin/sh
|
||||
|
||||
type xset >/dev/null 2>&1 || { echo >&2 "I require xset but it's not installed. Aborting."; exit 1; }
|
||||
|
||||
lower_battery_threshold=10
|
||||
KBD="";
|
||||
oldKBD="";
|
||||
KBD=""
|
||||
oldKBD=""
|
||||
connected_monitors=""
|
||||
old_connected_monitors=""
|
||||
internal_monitor="eDP"
|
||||
|
||||
function kb_routine {
|
||||
oldKBD="$KBD";
|
||||
case "$(xset -q | grep -A 0 'LED' | cut -c59-67)" in
|
||||
"00000000")
|
||||
KBD="Europe" ;;
|
||||
"00001000")
|
||||
KBD="Deutsch" ;;
|
||||
*) KBD="unknown" ;;
|
||||
esac
|
||||
kb_routine() {
|
||||
oldKBD="$KBD"
|
||||
case "$(xset -q | grep -A 0 'LED' | cut -c59-67)" in
|
||||
"00000000")
|
||||
KBD="Europe"
|
||||
;;
|
||||
"00001000")
|
||||
KBD="Deutsch"
|
||||
;;
|
||||
*) KBD="unknown" ;;
|
||||
esac
|
||||
|
||||
if [ "$KBD" != "$oldKBD" ]; then
|
||||
dunstify -r 1 "$KBD";
|
||||
fi
|
||||
if [ "$KBD" != "$oldKBD" ]; then
|
||||
dunstify -r 1 "$KBD"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function battery_routine {
|
||||
capacity=$(< /sys/class/power_supply/BAT0/capacity)
|
||||
if [[ $capacity -lt lower_battery_threshold ]]; then
|
||||
acpi | grep -q '0: Discharging' && dunstify "Battery at $capacity%";
|
||||
sleep 60;
|
||||
fi
|
||||
battery_routine() {
|
||||
capacity="$(cat /sys/class/power_supply/BAT0/capacity)"
|
||||
if [ "$capacity" -lt $lower_battery_threshold ]; then
|
||||
acpi | grep -q '0: Discharging' && dunstify "Battery at $capacity%"
|
||||
sleep 60
|
||||
fi
|
||||
}
|
||||
|
||||
while :
|
||||
do
|
||||
kb_routine
|
||||
battery_routine
|
||||
sleep 1;
|
||||
monitors() {
|
||||
connected_monitors=$(xrandr | grep -c "\<connected\>")
|
||||
if [ "$connected_monitors" != "old_connected_monitors" ]; then
|
||||
if [ "$connected_monitors" -eq 1 ]; then
|
||||
# dunstify -r 1 "Swichting to single monitor"
|
||||
xrandr --output $internal_monitor --auto
|
||||
fi
|
||||
if [ "$connected_monitors" -gt 1 ]; then
|
||||
external_monitor=$(xrandr | grep "\<connected\>" | grep -v $internal_monitor | cut -d" " -f1)
|
||||
# dunstify -r 1 "Swichting to external monitor"
|
||||
xrandr --output $internal_monitor --off --output "$external_monitor" --auto
|
||||
fi
|
||||
old_connected_monitors=$connected_monitors
|
||||
fi
|
||||
}
|
||||
|
||||
while :; do
|
||||
kb_routine
|
||||
battery_routine
|
||||
# monitors
|
||||
sleep 1
|
||||
done
|
||||
|
||||
@@ -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,281 +1,4 @@
|
||||
# Services
|
||||
Host github.com
|
||||
Hostname github.com
|
||||
Port 22
|
||||
User git
|
||||
IdentityFile /mnt/veracrypt1/git
|
||||
|
||||
Host gitlab.com
|
||||
Hostname gitlab.com
|
||||
Port 22
|
||||
User git
|
||||
IdentityFile /mnt/veracrypt1/git
|
||||
|
||||
Host picoCTF
|
||||
HostName 2018shell4.picoctf.com
|
||||
Port 22
|
||||
User mos4
|
||||
IdentityFile "/home/tuan/Documents/CTF/picoCTF/2018/30 - ssh-keyz/picoCTF"
|
||||
|
||||
Host git.uni-due.de
|
||||
HostName git.uni-due.de
|
||||
Port 22
|
||||
User git
|
||||
IdentityFile /mnt/veracrypt1/git
|
||||
|
||||
Host git.tudattr.dev
|
||||
Hostname 192.168.20.12
|
||||
Port 2222
|
||||
User git
|
||||
IdentityFile /mnt/veracrypt1/git
|
||||
|
||||
# Homeserver
|
||||
Host madrigal
|
||||
HostName 192.168.70.1
|
||||
Port 2200
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/mikrotik_rsa
|
||||
|
||||
Host aya01
|
||||
HostName 192.168.20.12
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host naruto
|
||||
HostName 192.168.20.13
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host pi
|
||||
HostName 192.168.20.11
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host mii-root
|
||||
HostName 202.61.207.139
|
||||
Port 22
|
||||
User root
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host mii
|
||||
HostName 202.61.207.139
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host aya01.mii
|
||||
HostName 192.168.20.12
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump mii
|
||||
|
||||
Host pi.mii
|
||||
HostName 192.168.20.11
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump mii
|
||||
|
||||
Host naruto.mii
|
||||
HostName 192.168.20.13
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump mii
|
||||
|
||||
# Work
|
||||
Host ncs-head.mii
|
||||
HostName 132.252.68.50
|
||||
Port 2122
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump mii
|
||||
|
||||
Host ncs-head
|
||||
HostName 132.252.68.50
|
||||
Port 2122
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ForwardX11 yes
|
||||
|
||||
Host ncs-head-user
|
||||
HostName 132.252.68.50
|
||||
Port 2122
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
ForwardX11 yes
|
||||
|
||||
Host ncs2
|
||||
HostName 192.168.1.13
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs2-user
|
||||
HostName 192.168.1.13
|
||||
Port 22
|
||||
User user # tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node1
|
||||
HostName 192.168.1.11
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node2
|
||||
HostName 192.168.1.7
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
ForwardX11 yes
|
||||
|
||||
Host ncs-node2-user
|
||||
HostName 192.168.1.7
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node3
|
||||
Hostname 192.168.1.19
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node3-user
|
||||
Hostname 192.168.1.19
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node4
|
||||
HostName 192.168.1.9
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node4-user
|
||||
HostName 192.168.1.9
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node5
|
||||
HostName 192.168.1.15
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node6
|
||||
Hostname 192.168.1.17
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
# ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node6-user
|
||||
Hostname 192.168.1.17
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
# ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node7
|
||||
Hostname 192.168.1.18
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-wedge
|
||||
Hostname 192.168.1.5
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
# ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-local-server
|
||||
HostName 192.168.1.1
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
StrictHostKeyChecking no
|
||||
|
||||
Host ncs-local-server-user
|
||||
HostName 192.168.1.1
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
StrictHostKeyChecking no
|
||||
|
||||
Host ncs-local-server2
|
||||
HostName 192.168.2.2
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
StrictHostKeyChecking no
|
||||
ProxyJump ncs-local-server
|
||||
|
||||
Host phone
|
||||
Hostname 192.168.30.245
|
||||
Port 2222
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host ncs-gpu
|
||||
Hostname 192.168.1.21
|
||||
Port 22
|
||||
User tuan
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-aws-iperf3
|
||||
Hostname 18.185.5.191
|
||||
Port 22
|
||||
User ec2-user
|
||||
IdentityFile /mnt/veracrypt1/work/aws_ncs.pem
|
||||
|
||||
Host ami
|
||||
Hostname 3.72.156.214
|
||||
Port 22
|
||||
User ubuntu
|
||||
IdentityFile /mnt/veracrypt1/work/aws-rizk.pem
|
||||
|
||||
Host 5g-mec
|
||||
Hostname 192.168.100.1
|
||||
Port 22
|
||||
User udue
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host 5g-mec-ovpn
|
||||
Hostname 192.168.101.1
|
||||
Port 22
|
||||
User udue
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host ncs-jetson00
|
||||
Hostname 192.168.0.147
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
Include config_homelab
|
||||
Include config_services
|
||||
Include config_syssec
|
||||
Include config_work
|
||||
|
||||
99
config/.ssh/config_homelab
Normal file
99
config/.ssh/config_homelab
Normal file
@@ -0,0 +1,99 @@
|
||||
# Homeserver
|
||||
Host madrigal
|
||||
HostName 192.168.70.1
|
||||
Port 2200
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/mikrotik_rsa
|
||||
|
||||
Host inko inko.mii
|
||||
HostName 192.168.20.14
|
||||
User root
|
||||
|
||||
Host naruto naruto.mii
|
||||
HostName 192.168.20.13
|
||||
|
||||
Host pi pi.mii
|
||||
HostName 192.168.20.11
|
||||
|
||||
Host aya01 aya01.mii
|
||||
HostName 192.168.20.12
|
||||
User root
|
||||
|
||||
Host lulu lulu.mii
|
||||
HostName 192.168.20.28
|
||||
User root
|
||||
|
||||
Host k3s-loadbalancer.aya01 k3s-loadbalancer
|
||||
HostName 192.168.20.22
|
||||
ProxyJump aya01
|
||||
|
||||
Host k3s-server01.aya01 k3s-server01
|
||||
HostName 192.168.20.24
|
||||
ProxyJump aya01
|
||||
|
||||
Host k3s-server02.aya01 k3s-server02
|
||||
HostName 192.168.20.30
|
||||
ProxyJump aya01
|
||||
|
||||
Host k3s-server00.aya01 k3s-server00
|
||||
HostName 192.168.20.21
|
||||
ProxyJump aya01
|
||||
|
||||
Host k3s-agent00.aya01 k3s-agent00
|
||||
HostName 192.168.20.25
|
||||
ProxyJump aya01
|
||||
|
||||
Host k3s-agent01.aya01 k3s-agent01
|
||||
HostName 192.168.20.26
|
||||
ProxyJump aya01
|
||||
|
||||
Host k3s-agent02.aya01 k3s-agent02
|
||||
HostName 192.168.20.27
|
||||
ProxyJump aya01
|
||||
|
||||
Host k3s-longhorn02.aya01 k3s-longhorn02
|
||||
HostName 192.168.20.31
|
||||
ProxyJump aya01
|
||||
|
||||
Host k3s-longhorn00.aya01 k3s-longhorn00
|
||||
HostName 192.168.20.32
|
||||
ProxyJump aya01
|
||||
|
||||
Host docker-host00 docker-host00.aya01
|
||||
HostName 192.168.20.34
|
||||
ProxyJump aya01
|
||||
|
||||
Host docker-host01 docker-host01.aya01
|
||||
HostName 192.168.20.35
|
||||
ProxyJump aya01
|
||||
|
||||
Host docker-host02 docker-host02.aya01
|
||||
HostName 192.168.20.36
|
||||
ProxyJump aya01
|
||||
|
||||
Host docker-lb docker-lb.aya01
|
||||
HostName 192.168.20.37
|
||||
ProxyJump aya01
|
||||
|
||||
Host k3s-postgres.aya01 k3s-postgres
|
||||
HostName 192.168.20.23
|
||||
ProxyJump aya01
|
||||
|
||||
Host behemoth behemoth.pi
|
||||
User tuan
|
||||
HostName 192.168.30.174
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host behemoth.pi
|
||||
ProxyJump pi
|
||||
|
||||
Host mii
|
||||
HostName tudattr.dev
|
||||
|
||||
Host inko.mii pi.mii aya01.mii naruto.mii
|
||||
ProxyJump mii
|
||||
|
||||
Host mii pi inko naruto inko.mii pi.mii naruto.mii aya01 aya01.mii k3s-server00.aya01 k3s-server00 k3s-loadbalancer.aya01 k3s-loadbalancer k3s-postgres.aya01 k3s-postgres k3s-server01.aya01 k3s-server01 k3s-agent00.aya01 k3s-agent00 k3s-agent01.aya01 k3s-agent01 k3s-agent02.aya01 k3s-agent02 k3s-server02.aya01 k3s-server02 k3s-longhorn00.aya01 k3s-longhorn00 k3s-longhorn01.aya01 k3s-longhorn01 k3s-longhorn02.aya01 k3s-longhorn02 docker-host00 docker-host00.aya01 docker-host01 docker-host01.aya01 docker-host02 docker-host02.aya01 docker-lb docker-lb.aya01 lulu lulu.mii
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
24
config/.ssh/config_services
Normal file
24
config/.ssh/config_services
Normal file
@@ -0,0 +1,24 @@
|
||||
# Services
|
||||
Host github.com gitlab.com git.uni-due.de git.ude-syssec.de
|
||||
Port 22
|
||||
User git
|
||||
IdentityFile /mnt/veracrypt1/git
|
||||
|
||||
Host git.ude-syssec.de
|
||||
Hostname git.ude-syssec.de
|
||||
|
||||
Host github.com
|
||||
Hostname github.com
|
||||
|
||||
Host gitlab.com
|
||||
Hostname gitlab.com
|
||||
|
||||
Host git.uni-due.de
|
||||
HostName git.uni-due.de
|
||||
|
||||
Host git.tudattr.dev
|
||||
Hostname 192.168.20.36
|
||||
Port 2222
|
||||
User git
|
||||
IdentityFile /mnt/veracrypt1/git
|
||||
ProxyJump mii
|
||||
6
config/.ssh/config_syssec
Normal file
6
config/.ssh/config_syssec
Normal file
@@ -0,0 +1,6 @@
|
||||
Host tuan-ethfuzz
|
||||
HostName 132.252.68.42
|
||||
User tuan
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
Port 2207
|
||||
ForwardAgent yes
|
||||
96
config/.ssh/config_work
Normal file
96
config/.ssh/config_work
Normal file
@@ -0,0 +1,96 @@
|
||||
# Work
|
||||
Host mini
|
||||
HostName 100.76.45.158
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
# ProxyJump ncs-pi
|
||||
|
||||
Host ncs-head-user
|
||||
HostName 130.75.73.1
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/old/tudattr
|
||||
|
||||
Host ncs-node1 ncs-node2 ncs-node3 ncs-node4 ncs-node5 ncs-node6 ncs-node7 ncs-head ncs-wedge ncs-head
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host ncs-node1 ncs-node2 ncs-node3 ncs-node4 ncs-node5 ncs-node6 ncs-node7 ncs-wedge
|
||||
Port 22
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-head ncs-head-user
|
||||
Port 30022
|
||||
|
||||
Host ncs-head
|
||||
HostName 130.75.73.1
|
||||
|
||||
Host ncs-node1
|
||||
HostName 192.168.1.101
|
||||
|
||||
Host ncs-node2
|
||||
HostName 192.168.1.102
|
||||
|
||||
Host ncs-node3
|
||||
Hostname 192.168.1.103
|
||||
|
||||
Host ncs-node4
|
||||
HostName 192.168.1.104
|
||||
|
||||
Host ncs-node5
|
||||
HostName 192.168.1.105
|
||||
|
||||
Host ncs-node6
|
||||
Hostname 192.168.1.106
|
||||
|
||||
Host ncs-node7
|
||||
Hostname 192.168.1.107
|
||||
|
||||
Host ncs-wedge
|
||||
Hostname 192.168.1.5
|
||||
User user
|
||||
|
||||
Host ncs-gpu
|
||||
Hostname 192.168.1.21
|
||||
Port 22
|
||||
User tuan
|
||||
IdentityFile /mnt/veracrypt1/old/tudattr
|
||||
ProxyJump ncs-head
|
||||
|
||||
## 5g IANA
|
||||
Host 5g-iana-mec 5g-iana-mec.naruto.mii
|
||||
Hostname 192.168.100.1
|
||||
Port 22
|
||||
User udue
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host uulm-obu0 uulm-obu1 uulm-obu0.naruto.mii uulm-obu0.naruto.mii
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host uulm-obu0 uulm-obu0.naruto.mii
|
||||
Hostname 192.168.200.6
|
||||
|
||||
Host uulm-obu1 uulm-obu1.naruto.mii
|
||||
Hostname 192.168.200.11
|
||||
|
||||
Host 5g-iana-mec.naruto.mii uulm-obu1.naruto.mii uulm-obu0.naruto.mii nxw.naruto.mii
|
||||
ProxyJump naruto.mii
|
||||
|
||||
Host nxw.naruto.mii nxw
|
||||
User nxw
|
||||
Hostname 192.168.100.4
|
||||
|
||||
Host uulm-obu0 uulm-obu1
|
||||
ProxyJump 5g-iana-mec
|
||||
|
||||
Host uulm-obu0.naruto.mii uulm-obu0.naruto.mii
|
||||
ProxyJump 5g-iana-mec.naruto.mii
|
||||
|
||||
Host nextworks.naruto.mii
|
||||
ProxyJump 5g-iana-mec.naruto.mii
|
||||
|
||||
Host nextworks nextworks.naruto.mii
|
||||
Hostname 192.168.100.4
|
||||
User nxw
|
||||
@@ -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,145 +0,0 @@
|
||||
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; Place your private configuration here! Remember, you do not need to run 'doom
|
||||
;; sync' after modifying this file!
|
||||
|
||||
|
||||
;; Some functionality uses this to identify you, e.g. GPG configuration, email
|
||||
;; clients, file templates and snippets. It is optional.
|
||||
(setq user-full-name "Tuan-Dat Tran"
|
||||
user-mail-address "tuan-dat.tran@tudattr.dev")
|
||||
|
||||
;; Doom exposes five (optional) variables for controlling fonts in Doom:
|
||||
;;
|
||||
;; - `doom-font' -- the primary font to use
|
||||
;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
|
||||
;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
|
||||
;; presentations or streaming.
|
||||
;; - `doom-unicode-font' -- for unicode glyphs
|
||||
;; - `doom-serif-font' -- for the `fixed-pitch-serif' face
|
||||
;;
|
||||
;; See 'C-h v doom-font' for documentation and more examples of what they
|
||||
;; accept. For example:
|
||||
;;
|
||||
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
|
||||
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
|
||||
;;
|
||||
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
|
||||
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
||||
;; refresh your font settings. If Emacs still can't find your font, it likely
|
||||
;; wasn't installed correctly. Font issues are rarely Doom issues!
|
||||
|
||||
;; There are two ways to load a theme. Both assume the theme is installed and
|
||||
;; available. You can either set `doom-theme' or manually load a theme with the
|
||||
;; `load-theme' function. This is the default:
|
||||
(setq doom-theme 'doom-one)
|
||||
|
||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||
(setq display-line-numbers-type t)
|
||||
|
||||
;; If you use `org' and don't want your org files in the default location below,
|
||||
;; change `org-directory'. It must be set before org loads!
|
||||
(setq org-directory "~/.emacs.d/org/")
|
||||
|
||||
|
||||
;; Whenever you reconfigure a package, make sure to wrap your config in an
|
||||
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
|
||||
;;
|
||||
;; (after! PACKAGE
|
||||
;; (setq x y))
|
||||
;;
|
||||
;; The exceptions to this rule:
|
||||
;;
|
||||
;; - Setting file/directory variables (like `org-directory')
|
||||
;; - Setting variables which explicitly tell you to set them before their
|
||||
;; package is loaded (see 'C-h v VARIABLE' to look up their documentation).
|
||||
;; - Setting doom variables (which start with 'doom-' or '+').
|
||||
;;
|
||||
;; Here are some additional functions/macros that will help you configure Doom.
|
||||
;;
|
||||
;; - `load!' for loading external *.el files relative to this one
|
||||
;; - `use-package!' for configuring packages
|
||||
;; - `after!' for running code after a package has loaded
|
||||
;; - `add-load-path!' for adding directories to the `load-path', relative to
|
||||
;; this file. Emacs searches the `load-path' when you load packages with
|
||||
;; `require' or `use-package'.
|
||||
;; - `map!' for binding new keys
|
||||
;;
|
||||
;; To get information about any of these functions/macros, move the cursor over
|
||||
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
|
||||
;; This will open documentation for it, including demos of how they are used.
|
||||
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
|
||||
;; etc).
|
||||
;;
|
||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
||||
;; they are implemented.
|
||||
|
||||
; Rust
|
||||
(use-package rustic
|
||||
: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
|
||||
(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))
|
||||
|
||||
(use-package lsp-mode
|
||||
: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-rust-analyzer-server-display-inlay-hints t)
|
||||
(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
|
||||
:commands lsp-ui-mode
|
||||
:custom
|
||||
(lsp-ui-peek-always-show t)
|
||||
(lsp-ui-sideline-show-hover t)
|
||||
(lsp-ui-doc-enable nil))
|
||||
|
||||
; Latex
|
||||
(setq +latex-viewers '(zathura))
|
||||
|
||||
; Roam
|
||||
(setq org-roam-directory "~/Documents/roam/")
|
||||
(use-package! websocket
|
||||
:after org-roam)
|
||||
|
||||
(use-package! org-roam-ui
|
||||
:after org-roam ;; or :after org
|
||||
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
|
||||
;; a hookable mode anymore, you're advised to pick something yourself
|
||||
;; if you don't care about startup time, use
|
||||
;; :hook (after-init . org-roam-ui-mode)
|
||||
:config
|
||||
(setq org-roam-ui-sync-theme t
|
||||
org-roam-ui-follow t
|
||||
org-roam-ui-update-on-save t
|
||||
org-roam-ui-open-on-start t))
|
||||
@@ -1,165 +0,0 @@
|
||||
(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.
|
||||
'(org-cite-global-bibliography '("~/Documents/roam/bibliography.bib"))
|
||||
'(org-hugo-base-dir "~/Documents/hugo/")
|
||||
'(org-roam-capture-templates
|
||||
'(("d" "default" plain "* Description
|
||||
%?
|
||||
|
||||
* Resources
|
||||
- " :target
|
||||
(file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}")
|
||||
:unnarrowed t)
|
||||
("r" "Code Implementation" plain "* Description
|
||||
%?
|
||||
|
||||
* Methods
|
||||
|
||||
** TODO <Name>
|
||||
|
||||
*** Description
|
||||
|
||||
*** Code
|
||||
|
||||
* Resources
|
||||
- " :target
|
||||
(file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}
|
||||
#+filetags: code")
|
||||
:unnarrowed t)
|
||||
("t" "Rust Traits" plain "* Description
|
||||
%?
|
||||
|
||||
* Notable Implementations/Subtraits
|
||||
|
||||
|
||||
|
||||
* Methods
|
||||
|
||||
** TODO <Name>
|
||||
|
||||
*** Description
|
||||
|
||||
*** Code
|
||||
|
||||
* Resources
|
||||
- " :target
|
||||
(file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}
|
||||
#+filetags: rust-trait")
|
||||
:unnarrowed t)
|
||||
("P" "project" plain "* Project Overview
|
||||
- Type: %^{Project Type}
|
||||
- Project Partners:
|
||||
- %?
|
||||
|
||||
* Project Description
|
||||
|
||||
* Tasks
|
||||
|
||||
** TODO Add initial taks
|
||||
|
||||
* Sprints
|
||||
|
||||
**
|
||||
" :target
|
||||
(file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}
|
||||
#+filetags: project")
|
||||
:unnarrowed t)
|
||||
("i" "ieee paper" plain "
|
||||
#+title: %^{title}
|
||||
#+OPTIONS: toc:nil author:nil
|
||||
#+LaTeX_CLASS: paper
|
||||
# LaTeX_HEADER: \\documentclass[12pt,a4paper,conference,final,twoside]{IEEEtran}
|
||||
#+LaTeX_HEADER: \\title{%^{title}}
|
||||
#+LaTeX_HEADER: \\author{\\IEEEauthorblockN{Tuan-Dat Tran\\\\\\small(3030462)}\\\\\\IEEEauthorblockA{University of Duisburg-Essen\\\\tuan-dat.tran@stud.uni-due.de}}
|
||||
#+LaTeX_HEADER: \\usepackage[utf8]{inputenc}
|
||||
#+LaTeX_HEADER: \\usepackage[T1]{fontenc}
|
||||
#+LaTeX_HEADER: \\usepackage{lmodern}
|
||||
#+LaTeX_HEADER: \\usepackage[english]{babel}
|
||||
#+LaTeX_HEADER: \\usepackage[backend=biber,doi=true,url=true,block=ragged,maxnames=6]{biblatex}
|
||||
#+LaTeX_HEADER: \\renewcommand*{\\bibfont}{\\footnotesize}
|
||||
#+LaTeX_HEADER: \\pagestyle{plain}
|
||||
#+LaTeX_HEADER: \\usepackage{siunitx}
|
||||
#+LaTeX_HEADER: \\RequirePackage[usenames,dvipsnames,svgnames,table]{xcolor}
|
||||
#+LaTeX_HEADER: \\usepackage{cleveref}
|
||||
#+LaTeX_HEADER: \\usepackage{graphicx}
|
||||
#+LaTeX_HEADER: \\graphicspath{{./images/}}
|
||||
#+LaTeX_HEADER: \\usepackage{csquotes}
|
||||
#+LaTeX_HEADER: \\MakeOuterQuote{\"}
|
||||
#+LaTeX_HEADER: \\usepackage{balance}
|
||||
#+LaTeX_HEADER: \\clubpenalty10000
|
||||
#+LaTeX_HEADER: \\widowpenalty10000
|
||||
#+LaTeX_HEADER: \\usepackage{listings}
|
||||
#+LaTeX_HEADER: \\definecolor{lstgreen}{rgb}{0,0.6,0}
|
||||
#+LaTeX_HEADER: \\lstset{language=C,%basicstyle=\\scriptsize\\sourcecodepro,%basicstyle=\\scriptsize\\ttfamily,basicstyle=\\linespread{1.1}\\scriptsize\\ttfamily,commentstyle=\\color{lstgreen},keywordstyle=\\color{blue},keywordstyle=[2]\\color{SlateBlue},keywordstyle=[3]\\color{DarkCyan},keywordstyle=[4]\\color{violet},%ndkeywordstyle=\\color{violet},emphstyle=\\bfseries\\color{DarkGray},identifierstyle=\\color{black},commentstyle=\\color{purple}\\ttfamily,stringstyle=\\color{gray}\\ttfamily,%numbers=left,numbers=left,numberstyle=\\tiny,columns=fullflexible,keepspaces=true,showstringspaces=false,captionpos=b,%xleftmargin=\\parindent,%framexleftmargin=\\parindent,%xleftmargin=2cm,%linewidth=\\textwidth,%xleftmargin=2cm,xleftmargin=2em,%xleftmargin=3pt,xrightmargin=3pt,%aboveskip=\\bigskipamount,%belowskip=\\bigskipamount,%fancyvrb=true,frame=single,%frame=L,escapechar=@,}
|
||||
#+LaTeX_HEADER: \\lstdefinestyle{plain}{ numbers=none,frame=none,xleftmargin=1pt,xrightmargin=1pt,}
|
||||
#+LaTeX_HEADER: \\crefname{lstlisting}{listing}{listing}
|
||||
#+LaTeX_HEADER: \\Crefname{lstlisting}{Listing}{Listings}
|
||||
#+LaTeX_HEADER: \\usepackage{blindtext}
|
||||
#+LaTeX_HEADER: \\newcommand\\blindsection{{\\color{gray}\\subsection{Some bind text}\\blindtext}}
|
||||
|
||||
%?
|
||||
" :target
|
||||
(file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}
|
||||
#+filetags: paper")
|
||||
:unnarrowed t)
|
||||
("p" "paper notes" plain "* Authors
|
||||
- %?
|
||||
|
||||
* Index Terms
|
||||
-
|
||||
|
||||
* Short Summary
|
||||
" :target
|
||||
(file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}
|
||||
#+filetags: paper")
|
||||
:unnarrowed t)
|
||||
("l" "programming language" plain "* Description
|
||||
%?
|
||||
|
||||
* Programming Language Properties
|
||||
-
|
||||
|
||||
* Benefits
|
||||
-
|
||||
|
||||
* Examples
|
||||
** Hello World
|
||||
#+begin_src ${title}
|
||||
#+end_src
|
||||
" :target
|
||||
(file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}")
|
||||
:unnarrowed t)
|
||||
("L" "lecture" plain "- Lecture: ${title}
|
||||
- Lecturer: %^{Docent}
|
||||
- Research Group: %^{Research Group}
|
||||
* Description
|
||||
" :target
|
||||
(file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}")
|
||||
:unnarrowed t nil nil)))
|
||||
'(warning-suppress-types
|
||||
'((doom-first-file-hook)
|
||||
(doom-first-file-hook)
|
||||
(defvaralias))))
|
||||
|
||||
(require 'ox-latex)
|
||||
|
||||
(unless (boundp 'org-latex-classes)
|
||||
(setq org-latex-classes nil))
|
||||
|
||||
(add-to-list 'org-latex-classes
|
||||
'("paper"
|
||||
"\\documentclass[12pt,a4paper,conference,final,twoside]{IEEEtran}"
|
||||
("\\section{%s}" . "\\section*{%s}")
|
||||
("\\subsection{%s}" . "\\subsection*{%s}")
|
||||
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
|
||||
("\\paragraph{%s}" . "\\paragraph*{%s}")
|
||||
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
|
||||
(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.
|
||||
)
|
||||
@@ -1,216 +0,0 @@
|
||||
;;; init.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; This file controls what Doom modules are enabled and what order they load
|
||||
;; in. Remember to run 'doom sync' after modifying it!
|
||||
|
||||
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
|
||||
;; documentation. There you'll find a link to Doom's Module Index where all
|
||||
;; of our modules are listed, including what flags they support.
|
||||
|
||||
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
|
||||
;; 'C-c c k' for non-vim users) to view its documentation. This works on
|
||||
;; flags as well (those symbols that start with a plus).
|
||||
;;
|
||||
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
|
||||
;; directory (for easy access to its source code).
|
||||
|
||||
(doom! :input
|
||||
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
|
||||
;;chinese
|
||||
;;japanese
|
||||
;;layout ; auie,ctsrnm is the superior home row
|
||||
|
||||
:completion
|
||||
(company
|
||||
+childframe
|
||||
+tng
|
||||
); the ultimate code completion backend
|
||||
;;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
ivy ; a search engine for love and life
|
||||
;;vertico ; the search engine of the future
|
||||
|
||||
:ui
|
||||
;;deft ; notational velocity for Emacs
|
||||
doom ; what makes DOOM look the way it does
|
||||
doom-dashboard ; a nifty splash screen for Emacs
|
||||
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||
(emoji
|
||||
+unicode) ; 🙂
|
||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||
;;hydra
|
||||
;;indent-guides ; highlighted indent columns
|
||||
;;ligatures ; ligatures and symbols to make your code pretty again
|
||||
minimap ; show a map of the code on the side
|
||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||
;;nav-flash ; blink cursor line after big motions
|
||||
neotree ; a project drawer, like NERDTree for vim
|
||||
ophints ; highlight the region an operation acts on
|
||||
(popup
|
||||
+defaults) ; tame sudden yet inevitable temporary windows
|
||||
;;tabs ; a tab bar for Emacs
|
||||
;;treemacs ; a project drawer, like neotree but cooler
|
||||
;;unicode ; extended unicode support for various languages
|
||||
(vc-gutter
|
||||
+pretty) ; vcs diff in the fringe
|
||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||
;;window-select ; visually switch windows
|
||||
workspaces ; tab emulation, persistence & separate workspaces
|
||||
;;zen ; distraction-free coding or writing
|
||||
|
||||
:editor
|
||||
(evil
|
||||
+everywhere); come to the dark side, we have cookies
|
||||
file-templates ; auto-snippets for empty files
|
||||
fold ; (nigh) universal code folding
|
||||
;;(format +onsave) ; automated prettiness
|
||||
;;god ; run Emacs commands without modifier keys
|
||||
;;lispy ; vim for lisp, for people who don't like vim
|
||||
;;multiple-cursors ; editing in many places at once
|
||||
;;objed ; text object editing for the innocent
|
||||
;;parinfer ; turn lisp into python, sort of
|
||||
;;rotate-text ; cycle region at point between text candidates
|
||||
snippets ; my elves. They type so I don't have to
|
||||
;;word-wrap ; soft wrapping with language-aware indent
|
||||
|
||||
:emacs
|
||||
dired ; making dired pretty [functional]
|
||||
electric ; smarter, keyword-based electric-indent
|
||||
;;ibuffer ; interactive buffer management
|
||||
(undo
|
||||
+tree) ; persistent, smarter undo for your inevitable mistakes
|
||||
vc ; version-control and Emacs, sitting in a tree
|
||||
|
||||
:term
|
||||
;;eshell ; the elisp shell that works everywhere
|
||||
;;shell ; simple shell REPL for Emacs
|
||||
;;term ; basic terminal emulator for Emacs
|
||||
;;vterm ; the best terminal emulation in Emacs
|
||||
|
||||
:checkers
|
||||
syntax ; tasing you for every semicolon you forget
|
||||
;;(spell +flyspell) ; tasing you for misspelling mispelling
|
||||
;;grammar ; tasing grammar mistake every you make
|
||||
|
||||
:tools
|
||||
;;ansible
|
||||
biblio ; Writes a PhD for you (citation needed)
|
||||
debugger ; FIXME stepping through code, to help you add bugs
|
||||
;;direnv
|
||||
docker
|
||||
;;editorconfig ; let someone else argue about tabs vs spaces
|
||||
ein ; tame Jupyter notebooks with emacs
|
||||
(eval
|
||||
+overlay) ; run code, run (also, repls)
|
||||
;;gist ; interacting with github gists
|
||||
lookup ; navigate your code and its documentation
|
||||
lsp ; M-x vscode
|
||||
magit ; a git porcelain for Emacs
|
||||
;;make ; run make tasks from Emacs
|
||||
;;pass ; password manager for nerds
|
||||
pdf ; pdf enhancements
|
||||
;;prodigy ; FIXME managing external services & code builders
|
||||
;;rgb ; creating color strings
|
||||
;;taskrunner ; taskrunner for all your projects
|
||||
terraform ; infrastructure as code
|
||||
;;tmux ; an API for interacting with tmux
|
||||
;;tree-sitter ; syntax and parsing, sitting in a tree...
|
||||
;;upload ; map local to remote projects via ssh/ftp
|
||||
|
||||
:os
|
||||
(:if IS-MAC macos) ; improve compatibility with macOS
|
||||
(tty
|
||||
+osc) ; improve the terminal Emacs experience
|
||||
|
||||
:lang
|
||||
;;agda ; types of types of types of types...
|
||||
;;beancount ; mind the GAAP
|
||||
;;(cc +lsp) ; C > C++ == 1
|
||||
;;clojure ; java with a lisp
|
||||
;;common-lisp ; if you've seen one lisp, you've seen them all
|
||||
;;coq ; proofs-as-programs
|
||||
;;crystal ; ruby at the speed of c
|
||||
;;csharp ; unity, .NET, and mono shenanigans
|
||||
;;data ; config/data formats
|
||||
;;(dart +flutter) ; paint ui and not much else
|
||||
;;dhall
|
||||
;;elixir ; erlang done right
|
||||
;;elm ; care for a cup of TEA?
|
||||
emacs-lisp ; drown in parentheses
|
||||
;;erlang ; an elegant language for a more civilized age
|
||||
;;ess ; emacs speaks statistics
|
||||
;;factor
|
||||
;;faust ; dsp, but you get to keep your soul
|
||||
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
|
||||
;;fsharp ; ML stands for Microsoft's Language
|
||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||
;;gdscript ; the language you waited for
|
||||
;;(go +lsp) ; the hipster dialect
|
||||
;;(graphql +lsp) ; Give queries a REST
|
||||
;;(haskell +lsp) ; a language that's lazier than I am
|
||||
;;hy ; readability of scheme w/ speed of python
|
||||
;;idris ; a language you can depend on
|
||||
;;json ; At least it ain't XML
|
||||
;;(java +lsp) ; the poster child for carpal tunnel syndrome
|
||||
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||
;;julia ; a better, faster MATLAB
|
||||
;;kotlin ; a better, slicker Java(Script)
|
||||
(latex
|
||||
+latexmk
|
||||
+lsp) ; writing papers in Emacs has never been so fun
|
||||
;;lean ; for folks with too much to prove
|
||||
ledger ; be audit you can be
|
||||
;;lua ; one-based indices? one-based indices
|
||||
markdown ; writing docs for people to ignore
|
||||
;;nim ; python + lisp at the speed of c
|
||||
;;nix ; I hereby declare "nix geht mehr!"
|
||||
;;ocaml ; an objective camel
|
||||
(org ; organize your plain life in plain text
|
||||
+dragndrop
|
||||
+gnuplot
|
||||
+jupyter
|
||||
+pandoc
|
||||
+present
|
||||
+pretty
|
||||
+roam2)
|
||||
;;php ; perl's insecure younger brother
|
||||
;;plantuml ; diagrams for confusing people more
|
||||
;;purescript ; javascript, but functional
|
||||
python ; beautiful is better than ugly
|
||||
;;qt ; the 'cutest' gui framework ever
|
||||
;;racket ; a DSL for DSLs
|
||||
;;raku ; the artist formerly known as perl6
|
||||
;;rest ; Emacs as a REST client
|
||||
;;rst ; ReST in peace
|
||||
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||
(rust
|
||||
+lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
;;scala ; java, but good
|
||||
;;(scheme +guile) ; a fully conniving family of lisps
|
||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||
;;sml
|
||||
solidity ; do you need a blockchain? No.
|
||||
;;swift ; who asked for emoji variables?
|
||||
;;terra ; Earth and Moon in alignment for performance.
|
||||
;;web ; the tubes
|
||||
yaml ; JSON, but readable
|
||||
;;zig ; C, but simpler
|
||||
|
||||
:email
|
||||
;;(mu4e +org +gmail)
|
||||
;;notmuch
|
||||
;;(wanderlust +gmail)
|
||||
|
||||
:app
|
||||
;;calendar
|
||||
;;emms
|
||||
;;everywhere ; *leave* Emacs!? You must be joking
|
||||
;;irc ; how neckbeards socialize
|
||||
;;(rss +org) ; emacs as an RSS reader
|
||||
;;twitter ; twitter client https://twitter.com/vnought
|
||||
|
||||
:config
|
||||
;;literate
|
||||
(default
|
||||
+bindings
|
||||
+smartparens))
|
||||
@@ -1,59 +0,0 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; $DOOMDIR/packages.el
|
||||
|
||||
;; To install a package with Doom you must declare them here and run 'doom sync'
|
||||
;; on the command line, then restart Emacs for the changes to take effect -- or
|
||||
;; use 'M-x doom/reload'.
|
||||
|
||||
|
||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||
;(package! some-package)
|
||||
|
||||
;; To install a package directly from a remote git repo, you must specify a
|
||||
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
|
||||
;; https://github.com/radian-software/straight.el#the-recipe-format
|
||||
;(package! another-package
|
||||
; :recipe (:host github :repo "username/repo"))
|
||||
|
||||
;; If the package you are trying to install does not contain a PACKAGENAME.el
|
||||
;; file, or is located in a subdirectory of the repo, you'll need to specify
|
||||
;; `:files' in the `:recipe':
|
||||
;(package! this-package
|
||||
; :recipe (:host github :repo "username/repo"
|
||||
; :files ("some-file.el" "src/lisp/*.el")))
|
||||
|
||||
;; If you'd like to disable a package included with Doom, you can do so here
|
||||
;; with the `:disable' property:
|
||||
;(package! builtin-package :disable t)
|
||||
|
||||
;; You can override the recipe of a built in package without having to specify
|
||||
;; all the properties for `:recipe'. These will inherit the rest of its recipe
|
||||
;; from Doom or MELPA/ELPA/Emacsmirror:
|
||||
;(package! builtin-package :recipe (:nonrecursive t))
|
||||
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
|
||||
|
||||
;; Specify a `:branch' to install a package from a particular branch or tag.
|
||||
;; This is required for some packages whose default branch isn't 'master' (which
|
||||
;; our package manager can't deal with; see radian-software/straight.el#279)
|
||||
;(package! builtin-package :recipe (:branch "develop"))
|
||||
|
||||
;; Use `:pin' to specify a particular commit to install.
|
||||
;(package! builtin-package :pin "1a2b3c4d5e")
|
||||
|
||||
|
||||
;; Doom's packages are pinned to a specific commit and updated from release to
|
||||
;; release. The `unpin!' macro allows you to unpin single packages...
|
||||
;(unpin! pinned-package)
|
||||
;; ...or multiple packages
|
||||
;(unpin! pinned-package another-pinned-package)
|
||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||
;(unpin! t)
|
||||
|
||||
(package! rustic)
|
||||
(package! lsp-mode)
|
||||
(package! lsp-ui)
|
||||
(package! flycheck)
|
||||
(package! ledger-mode)
|
||||
|
||||
(unpin! org-roam)
|
||||
(package! org-roam-ui)
|
||||
Submodule emacs/.emacs.d deleted from 24601b300e
@@ -1 +0,0 @@
|
||||
Pillow==9.5.0
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 MiB |
BIN
resources/24-03-15_16-06-52-alacritty.png
Normal file
BIN
resources/24-03-15_16-06-52-alacritty.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 695 KiB |
8
vim/.config/nvim/.gitignore
vendored
Normal file
8
vim/.config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
||||
15
vim/.config/nvim/.neoconf.json
Normal file
15
vim/.config/nvim/.neoconf.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
201
vim/.config/nvim/LICENSE
Normal file
201
vim/.config/nvim/LICENSE
Normal file
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
4
vim/.config/nvim/README.md
Normal file
4
vim/.config/nvim/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# 💤 LazyVim
|
||||
|
||||
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
||||
2
vim/.config/nvim/init.lua
Normal file
2
vim/.config/nvim/init.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
||||
59
vim/.config/nvim/lazy-lock.json
Normal file
59
vim/.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"CopilotChat.nvim": { "branch": "main", "commit": "e0d6a5793a1faa0b88a97232bdbb09ea34744c7e" },
|
||||
"LanguageTool.nvim": { "branch": "master", "commit": "809e7d77fec834597f495fec737c59292a10025b" },
|
||||
"LazyVim": { "branch": "main", "commit": "31af2075423d0e6d3c4f10ab299498471afe4ea0" },
|
||||
"SchemaStore.nvim": { "branch": "main", "commit": "f8c2a0f5d51b800ea4625808e243d9e8f7c5e1df" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "261a72b90d6db4ed8014f7bda976bcdc9dd7ce76" },
|
||||
"catppuccin": { "branch": "main", "commit": "faf15ab0201b564b6368ffa47b56feefc92ce3f4" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-git": { "branch": "main", "commit": "ec049036e354ed8ed0215f2427112882e1ea7051" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"conform.nvim": { "branch": "master", "commit": "f4e8837878fc5712d053ba3091a73d27d96a09e2" },
|
||||
"crates.nvim": { "branch": "main", "commit": "8bf8358ee326d5d8c11dcd7ac0bcc9ff97dbc785" },
|
||||
"dial.nvim": { "branch": "master", "commit": "46b4375e84e8eb771129bff6b2b1e47746601ef9" },
|
||||
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
||||
"fzf-lua": { "branch": "main", "commit": "2b35807945413b622c72af92eb93bb59d5c405f5" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
|
||||
"grug-far.nvim": { "branch": "main", "commit": "eadd3c4d7d3edc9d6b1ddc15e3c661d830dbf2b6" },
|
||||
"inc-rename.nvim": { "branch": "main", "commit": "1871ca49ae6ee3e9ebee37955ba10c7b1425974f" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "259357fa4097e232730341fa60988087d189193a" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "7c493713bc2cb392706866eeba53aaef6c8e9fc6" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "8e46de9241d3997927af12196bd8faa0ed08c29a" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||
"mini.ai": { "branch": "main", "commit": "ebb04799794a7f94628153991e6334c3304961b8" },
|
||||
"mini.hipatterns": { "branch": "main", "commit": "f34975103a38b3f608219a1324cdfc58ea660b8b" },
|
||||
"mini.icons": { "branch": "main", "commit": "44c0160526f7ae17ca8e8eab9ab235d047fcf7a6" },
|
||||
"mini.pairs": { "branch": "main", "commit": "7e834c5937d95364cc1740e20d673afe2d034cdb" },
|
||||
"mini.surround": { "branch": "main", "commit": "aa5e245829dd12d8ff0c96ef11da28681d6049aa" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "395ce4675a54828f9fd730d78f7910c114ab0a49" },
|
||||
"noice.nvim": { "branch": "main", "commit": "eaed6cc9c06aa2013b5255349e4f26a6b17ab70f" },
|
||||
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
|
||||
"nvim-ansible": { "branch": "main", "commit": "44dabdaa8a9193b7f564a8408ed6d7107705030a" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "3403e2e9391ed0a28c3afddd8612701b647c8e26" },
|
||||
"nvim-lint": { "branch": "master", "commit": "6b46370d02cd001509a765591a3ffc481b538794" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "ffe543e171792e4e7c42f1e73c4ab5c6fe71b861" },
|
||||
"nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "33d27173876499a0f037cb9edff90d583711b6ae" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "1cca23c9da708047922d3895a71032bc0449c52d" },
|
||||
"outline.nvim": { "branch": "main", "commit": "6c44527837ff7ac1cd054dc365a721e881020a2e" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "e41b0002fe4196825450ab5a6343300c40791d51" },
|
||||
"rustaceanvim": { "branch": "master", "commit": "a244210b28f9055c2b4cfa85c92c8a71c13671c9" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "cb68df337e2098a966c02e33bdb764a9f73b6010" },
|
||||
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "b262293ef481b0d1f7a14c708ea7ca649672e200" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "46cf952fc115f4c2b98d4e208ed1e2dce08c9bf6" },
|
||||
"ts-comments.nvim": { "branch": "main", "commit": "2002692ad1d3f6518d016550c20c2a890f0cbf0e" },
|
||||
"vim-ledger": { "branch": "master", "commit": "dbc683e24bd5338b8c12540227a58b2d247e097a" },
|
||||
"vimtex": { "branch": "master", "commit": "3401dc81a14b7251bd813e2411eaf0d3b65bd2af" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "4ab3bbe976e63b5390d3fca74a52a092a041cd30" },
|
||||
"yanky.nvim": { "branch": "main", "commit": "f9b905994cccf3c55f41af3a0a1f4c76c844e411" }
|
||||
}
|
||||
29
vim/.config/nvim/lazyvim.json
Normal file
29
vim/.config/nvim/lazyvim.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"extras": [
|
||||
"lazyvim.plugins.extras.ai.copilot-chat",
|
||||
"lazyvim.plugins.extras.coding.mini-surround",
|
||||
"lazyvim.plugins.extras.coding.yanky",
|
||||
"lazyvim.plugins.extras.editor.dial",
|
||||
"lazyvim.plugins.extras.editor.fzf",
|
||||
"lazyvim.plugins.extras.editor.inc-rename",
|
||||
"lazyvim.plugins.extras.editor.outline",
|
||||
"lazyvim.plugins.extras.formatting.prettier",
|
||||
"lazyvim.plugins.extras.lang.ansible",
|
||||
"lazyvim.plugins.extras.lang.docker",
|
||||
"lazyvim.plugins.extras.lang.elixir",
|
||||
"lazyvim.plugins.extras.lang.git",
|
||||
"lazyvim.plugins.extras.lang.json",
|
||||
"lazyvim.plugins.extras.lang.markdown",
|
||||
"lazyvim.plugins.extras.lang.python",
|
||||
"lazyvim.plugins.extras.lang.rust",
|
||||
"lazyvim.plugins.extras.lang.tailwind",
|
||||
"lazyvim.plugins.extras.lang.tex",
|
||||
"lazyvim.plugins.extras.lang.toml",
|
||||
"lazyvim.plugins.extras.util.dot",
|
||||
"lazyvim.plugins.extras.util.mini-hipatterns"
|
||||
],
|
||||
"news": {
|
||||
"NEWS.md": "7429"
|
||||
},
|
||||
"version": 7
|
||||
}
|
||||
10
vim/.config/nvim/lua/config/autocmds.lua
Normal file
10
vim/.config/nvim/lua/config/autocmds.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Autocmds are automatically loaded on the VeryLazy event
|
||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||
-- Add any additional autocmds here
|
||||
|
||||
vim.api.nvim_create_autocmd({ "Filetype" }, {
|
||||
pattern = { "tex" },
|
||||
callback = function()
|
||||
vim.cmd("LanguageToolSetUp")
|
||||
end,
|
||||
})
|
||||
3
vim/.config/nvim/lua/config/keymaps.lua
Normal file
3
vim/.config/nvim/lua/config/keymaps.lua
Normal file
@@ -0,0 +1,3 @@
|
||||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
53
vim/.config/nvim/lua/config/lazy.lua
Normal file
53
vim/.config/nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
install = { colorscheme = { "tokyonight", "habamax" } },
|
||||
checker = {
|
||||
enabled = true, -- check for plugin updates periodically
|
||||
notify = false, -- notify on update
|
||||
}, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
10
vim/.config/nvim/lua/config/options.lua
Normal file
10
vim/.config/nvim/lua/config/options.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
|
||||
local opt = vim.opt
|
||||
|
||||
opt.spelllang = { "en_us", "de_de" }
|
||||
vim.api.nvim_set_option_value("colorcolumn", "79", {})
|
||||
|
||||
vim.g.languagetool_server_command = "/usr/bin/languagetool --http"
|
||||
18
vim/.config/nvim/lua/plugins/catppuccin.lua
Normal file
18
vim/.config/nvim/lua/plugins/catppuccin.lua
Normal file
@@ -0,0 +1,18 @@
|
||||
-- return {
|
||||
-- { "joshdick/onedark.vim" },
|
||||
-- {
|
||||
-- "LazyVim/LazyVim",
|
||||
-- opts = {
|
||||
-- colorscheme = "onedark",
|
||||
-- },
|
||||
-- },
|
||||
-- }
|
||||
return {
|
||||
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "catppuccin-macchiato",
|
||||
},
|
||||
},
|
||||
}
|
||||
197
vim/.config/nvim/lua/plugins/example.lua
Normal file
197
vim/.config/nvim/lua/plugins/example.lua
Normal file
@@ -0,0 +1,197 @@
|
||||
-- since this is just an example spec, don't actually load anything here and return an empty spec
|
||||
-- stylua: ignore
|
||||
if true then return {} end
|
||||
|
||||
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
|
||||
--
|
||||
-- In your plugin files, you can:
|
||||
-- * add extra plugins
|
||||
-- * disable/enabled LazyVim plugins
|
||||
-- * override the configuration of LazyVim plugins
|
||||
return {
|
||||
-- add gruvbox
|
||||
{ "ellisonleao/gruvbox.nvim" },
|
||||
|
||||
-- Configure LazyVim to load gruvbox
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "gruvbox",
|
||||
},
|
||||
},
|
||||
|
||||
-- change trouble config
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
-- opts will be merged with the parent spec
|
||||
opts = { use_diagnostic_signs = true },
|
||||
},
|
||||
|
||||
-- disable trouble
|
||||
{ "folke/trouble.nvim", enabled = false },
|
||||
|
||||
-- override nvim-cmp and add cmp-emoji
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = { "hrsh7th/cmp-emoji" },
|
||||
---@param opts cmp.ConfigSchema
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sources, { name = "emoji" })
|
||||
end,
|
||||
},
|
||||
|
||||
-- change some telescope options and a keymap to browse plugin files
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
keys = {
|
||||
-- add a keymap to browse plugin files
|
||||
-- stylua: ignore
|
||||
{
|
||||
"<leader>fp",
|
||||
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
|
||||
desc = "Find Plugin File",
|
||||
},
|
||||
},
|
||||
-- change some options
|
||||
opts = {
|
||||
defaults = {
|
||||
layout_strategy = "horizontal",
|
||||
layout_config = { prompt_position = "top" },
|
||||
sorting_strategy = "ascending",
|
||||
winblend = 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- add pyright to lspconfig
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
---@type lspconfig.options
|
||||
servers = {
|
||||
-- pyright will be automatically installed with mason and loaded with lspconfig
|
||||
pyright = {},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- add tsserver and setup with typescript.nvim instead of lspconfig
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
"jose-elias-alvarez/typescript.nvim",
|
||||
init = function()
|
||||
require("lazyvim.util").lsp.on_attach(function(_, buffer)
|
||||
-- stylua: ignore
|
||||
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
||||
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
|
||||
end)
|
||||
end,
|
||||
},
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
---@type lspconfig.options
|
||||
servers = {
|
||||
-- tsserver will be automatically installed with mason and loaded with lspconfig
|
||||
tsserver = {},
|
||||
},
|
||||
-- you can do any additional lsp server setup here
|
||||
-- return true if you don't want this server to be setup with lspconfig
|
||||
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
|
||||
setup = {
|
||||
-- example to setup with typescript.nvim
|
||||
tsserver = function(_, opts)
|
||||
require("typescript").setup({ server = opts })
|
||||
return true
|
||||
end,
|
||||
-- Specify * to use this function as a fallback for any server
|
||||
-- ["*"] = function(server, opts) end,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
|
||||
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
|
||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||
|
||||
-- add more treesitter parsers
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"html",
|
||||
"javascript",
|
||||
"json",
|
||||
"lua",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"python",
|
||||
"query",
|
||||
"regex",
|
||||
"tsx",
|
||||
"typescript",
|
||||
"vim",
|
||||
"yaml",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
|
||||
-- would overwrite `ensure_installed` with the new value.
|
||||
-- If you'd rather extend the default config, use the code below instead:
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = function(_, opts)
|
||||
-- add tsx and treesitter
|
||||
vim.list_extend(opts.ensure_installed, {
|
||||
"tsx",
|
||||
"typescript",
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- the opts function can also be used to change the default opts:
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sections.lualine_x, {
|
||||
function()
|
||||
return "😄"
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- or you can return new options to override all the defaults
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = function()
|
||||
return {
|
||||
--[[add your custom lualine config here]]
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
-- use mini.starter instead of alpha
|
||||
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
|
||||
|
||||
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
|
||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||
|
||||
-- add any tools you want to have installed below
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"stylua",
|
||||
"shellcheck",
|
||||
"shfmt",
|
||||
"flake8",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
4
vim/.config/nvim/lua/plugins/languatetool.lua
Normal file
4
vim/.config/nvim/lua/plugins/languatetool.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
-- Add vim-ledger
|
||||
{ "vigoux/LanguageTool.nvim" },
|
||||
}
|
||||
4
vim/.config/nvim/lua/plugins/ledger-cli.lua
Normal file
4
vim/.config/nvim/lua/plugins/ledger-cli.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
-- Add vim-ledger
|
||||
{ "ledger/vim-ledger" },
|
||||
}
|
||||
BIN
vim/.config/nvim/spell/de.utf-8.spl
Normal file
BIN
vim/.config/nvim/spell/de.utf-8.spl
Normal file
Binary file not shown.
BIN
vim/.config/nvim/spell/de.utf-8.sug
Normal file
BIN
vim/.config/nvim/spell/de.utf-8.sug
Normal file
Binary file not shown.
216
vim/.config/nvim/spell/en.utf-8.add
Normal file
216
vim/.config/nvim/spell/en.utf-8.add
Normal file
@@ -0,0 +1,216 @@
|
||||
Röstschmiede
|
||||
Cortado
|
||||
Kubernetes
|
||||
ARM64
|
||||
ICCS
|
||||
Jupyter
|
||||
aggnode
|
||||
gefixed
|
||||
OBUs
|
||||
disable
|
||||
markdownlint
|
||||
EthFuzz
|
||||
Ethereum
|
||||
Blockchain
|
||||
Fuzzers
|
||||
DAO
|
||||
ethFuzz
|
||||
EF/CF
|
||||
EVM
|
||||
libAFL
|
||||
Fuzzer
|
||||
revm
|
||||
Tx
|
||||
TxSeq
|
||||
fuzzer
|
||||
smartbugs
|
||||
daedaluzz
|
||||
precompiles
|
||||
Echidna
|
||||
AFL
|
||||
callees
|
||||
fuzzers
|
||||
prebuilt
|
||||
LibAFL
|
||||
code
|
||||
wieviel
|
||||
wieviele
|
||||
Cryptowährung
|
||||
Instrumentations
|
||||
Werkzeuge
|
||||
transpiliert
|
||||
gefuzzt
|
||||
Transpilierung
|
||||
reentrancies
|
||||
Fuzzings
|
||||
ityFuzz
|
||||
ItyFuzz
|
||||
gemanaged
|
||||
fuzzen
|
||||
Bytecode
|
||||
Fuzzern
|
||||
ThinkPad
|
||||
E14
|
||||
NAPP
|
||||
PQoS
|
||||
NMClient
|
||||
JSON
|
||||
ip
|
||||
CONFIG
|
||||
GNSS
|
||||
gpsd
|
||||
gps
|
||||
OBU
|
||||
webhook
|
||||
nmcli
|
||||
MEC
|
||||
nginx
|
||||
RTMP
|
||||
Tichy
|
||||
Taibi
|
||||
Davide
|
||||
Strukturorientiertes
|
||||
RWTH
|
||||
Simulink
|
||||
Stateflow
|
||||
AUTOSAR
|
||||
MSR
|
||||
lifecycle
|
||||
Wahlpflichtvorlesungen
|
||||
Proggen
|
||||
Mastern
|
||||
Präsenzlehre
|
||||
respectivly
|
||||
Annekdoten
|
||||
Walid
|
||||
Maalej
|
||||
VLs
|
||||
FSE
|
||||
W3
|
||||
Fachschaftsvorsitzenden
|
||||
Todos
|
||||
Oulu
|
||||
Coveragemessung
|
||||
IANA
|
||||
SHK
|
||||
Rizk
|
||||
Bachelorsproject
|
||||
Giesen
|
||||
bachelorproject
|
||||
Zitationsmetriken
|
||||
Lehreerfahrung
|
||||
Hasselbring
|
||||
paluno
|
||||
Vogalsang
|
||||
UC6
|
||||
EOW
|
||||
UULM
|
||||
Nehal
|
||||
Giorgos
|
||||
Thanos
|
||||
uulm
|
||||
obu0
|
||||
obu1
|
||||
orin
|
||||
dml
|
||||
dmlo
|
||||
uc6dmlarm0
|
||||
obu
|
||||
uc6dmlarm02041
|
||||
uc6dmlarm1
|
||||
uc6dmlarm12051
|
||||
uc6dmlarm2
|
||||
uc6dmlarm22061
|
||||
uc6dml
|
||||
mec
|
||||
uc6aggnode
|
||||
NmCli
|
||||
NmSender
|
||||
TODO
|
||||
uc6dmltrain0
|
||||
uc6dmltrain02031
|
||||
uc6dml90
|
||||
uc6nmcli0
|
||||
uc6nmcli2
|
||||
uc6nmcli1
|
||||
uc6pqos1841
|
||||
uc6pqos
|
||||
uc6pqos0
|
||||
uc6nmsen21831
|
||||
uc6nmsen2
|
||||
uc6nmsender
|
||||
eMBB
|
||||
uc6aggnode1781
|
||||
iana
|
||||
uc6aggnode6
|
||||
uc6dmltrain1
|
||||
uc6dmltrain1541
|
||||
us6nmclient1771
|
||||
uc6nmclient
|
||||
Monteiro
|
||||
Dextra
|
||||
DextraData
|
||||
CTO
|
||||
CompSci
|
||||
CTF
|
||||
Pentesting
|
||||
Privatly
|
||||
Monotonität
|
||||
Gehaltsrange
|
||||
inbetween
|
||||
Homelab
|
||||
Skillset
|
||||
DevOps
|
||||
ausverfrachtet
|
||||
Ansible
|
||||
IaC
|
||||
Proxmox
|
||||
Sina
|
||||
Arbeitszeitsregelung
|
||||
SRE
|
||||
SREs
|
||||
SLO
|
||||
k3s
|
||||
config
|
||||
kubernetes
|
||||
KUBECONFIG
|
||||
localhost
|
||||
gitea
|
||||
RBAC
|
||||
netcup
|
||||
proxmox
|
||||
LVM
|
||||
Infura
|
||||
Etherscan
|
||||
Hypervisor
|
||||
vCPUs
|
||||
ESXI
|
||||
finalevent
|
||||
fe
|
||||
reentrancy
|
||||
blockchain
|
||||
perf
|
||||
#eentrency
|
||||
#eentrency
|
||||
reentrency/!
|
||||
delegatecall
|
||||
CCS
|
||||
RECN
|
||||
QUIC
|
||||
P4
|
||||
bqm
|
||||
UDP
|
||||
scapy
|
||||
ARP
|
||||
bfshell
|
||||
bfrt
|
||||
namespace
|
||||
picoquic
|
||||
pre
|
||||
namespaces
|
||||
sudo
|
||||
Portshaping
|
||||
Topo
|
||||
rpecn
|
||||
Zipf
|
||||
stateful
|
||||
BIN
vim/.config/nvim/spell/en.utf-8.add.spl
Normal file
BIN
vim/.config/nvim/spell/en.utf-8.add.spl
Normal file
Binary file not shown.
3
vim/.config/nvim/stylua.toml
Normal file
3
vim/.config/nvim/stylua.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
||||
@@ -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}
|
||||
54
zsh/.zshrc
54
zsh/.zshrc
@@ -2,44 +2,44 @@
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
export PATH="$PATH:$HOME/.go/bin:$HOME/.local/bin:$HOME/.cargo/bin:$HOME/.dotnet/tools:$HOME/.emacs.d/bin"
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
export PenTestTools=$HOME/Local/PenTesting/
|
||||
export CTF=$HOME/Documents/CTF/
|
||||
export WORKSPACE=$HOME/workspace_l
|
||||
export ZSHRC="$HOME/.zshrc"
|
||||
|
||||
export VISUAL="nvim"
|
||||
export EDITOR="nvim"
|
||||
export KUBECONFIG=$HOME/.kube/config
|
||||
|
||||
# History
|
||||
export HISTSIZE=10000000
|
||||
export SAVEHIST=10000000
|
||||
export HISTSIZE=50000
|
||||
export SAVEHIST=50000
|
||||
export HISTTIMEFORMAT="[%F %T] "
|
||||
|
||||
setopt INC_APPEND_HISTORY
|
||||
setopt EXTENDED_HISTORY
|
||||
setopt HIST_EXPIRE_DUPS_FIRST
|
||||
setopt HIST_IGNORE_DUPS
|
||||
setopt HIST_IGNORE_ALL_DUPS
|
||||
setopt HIST_FIND_NO_DUPS
|
||||
setopt HIST_IGNORE_SPACE
|
||||
setopt HIST_SAVE_NO_DUPS
|
||||
setopt SHARE_HISTORY
|
||||
|
||||
# Alias
|
||||
alias kc="kubectl"
|
||||
alias kns="kubens"
|
||||
alias q="exit"
|
||||
alias b="byobu"
|
||||
alias vim="nvim"
|
||||
alias cat="bat --pager=never"
|
||||
alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'
|
||||
alias xsel='xsel -ib'
|
||||
alias msfconsole="msfconsole -x \"db_connect metasploit@msf\""
|
||||
alias nmap="nmap -T5 --min-parallelism 100 -Pn"
|
||||
alias ed="\emacs --daemon"
|
||||
alias e="open_emacs"
|
||||
alias df="df -h"
|
||||
alias picpaste="xclip -selection clipboard -t image/png -o"
|
||||
alias eledger="emacsclient -nw ~/Documents/Finanzen/Ledger/MyBudget.ledger"
|
||||
alias sshconfig="emacsclient -nw ~/.ssh/config"
|
||||
alias econfig="emacsclient -nw ~/.doom.d/init.el"
|
||||
alias wttr="curl wttr.in/Essen"
|
||||
alias tvres="xrandr --output HDMI1 --transform 1.02,0,-20,0,1.02,-10,0,0,1"
|
||||
alias defaultres="xrandr --output HDMI1 --transform 1.00,0,0,0,1.00,0,0,0,1"
|
||||
alias zshconfig="emacsclient -nw ~/.zshrc; source ~/.zshrc;"
|
||||
alias notify="dunstify \"ping~\""
|
||||
alias ekill="pkill emacs; pkill emacsclient; ed"
|
||||
alias latexmk="latexmk -f -pdf -interaction=nonstopmode"
|
||||
alias picotik="picocom --b 115200 /dev/ttyUSB0"
|
||||
## git
|
||||
alias gps="git push soft --all"
|
||||
alias gras="add_soft_git"
|
||||
alias kc="kubectl"
|
||||
alias nspeedl="curl -s -o /dev/null -w \"DNS Lookup: %{time_namelookup}\nTCP Connect: %{time_connect}\nTotal: %{time_total}\n\" http://www.tudattr.dev"
|
||||
|
||||
|
||||
# Theme
|
||||
ZSH_THEME="agnoster"
|
||||
@@ -49,17 +49,15 @@ plugins=(
|
||||
git
|
||||
history
|
||||
z
|
||||
zsh-eza
|
||||
)
|
||||
|
||||
randpw() { < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-$1};echo;};
|
||||
|
||||
autoload -U +X bashcompinit && bashcompinit
|
||||
autoload -Uz compinit && compinit
|
||||
|
||||
# Source
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
add_soft_git() { git remote add soft ssh://git.aya01:/$1 }
|
||||
open_emacs() { emacsclient -c $1 & disown; };
|
||||
|
||||
nu
|
||||
|
||||
autoload -U +X bashcompinit && bashcompinit
|
||||
complete -o nospace -C /usr/bin/terraform terraform
|
||||
eval "$(starship init zsh)"
|
||||
eval "$(atuin init zsh)"
|
||||
|
||||
Reference in New Issue
Block a user