Compare commits

..

No commits in common. "172702b289714543630edeb897fc33527859825b" and "59e661e620b2470b741e716ecfef6a57104c1551" have entirely different histories.

72 changed files with 13182 additions and 976 deletions

View File

@ -1,31 +0,0 @@
# dotfiles
This is my ArchLinux configuration.
Tested on Acer Travelmate X349-G2-M and Lenovo Thinkpad E14 G5.
## Install dependencies
```bash
paru -S syncthing feh bottom zellij eza bat maim vlc python-pillow i3lock-color \
vlc fd ripgrep unzip npm bacon simple-scan dunst picom \
adobe-source-han-sans-jp-fonts obs-studio git zsh wget lightdm \
lightdm-webkit2-greeter xorg-server i3-gaps xorg-xbacklight xorg-xrandr \
alsa-utils pulseaudio pulseaudio-alsa pulseaudio-bluetooth playerctl \
pavucontrol btrfs-progs udiskie blueman acpi acpid tlp conky stow openssh \
firefox veracrypt keepassxc ranger rofi chromium delta-git xdotool xclip \
neofetch
```
## Picture
[[./resources/24-03-15_16-06-52-alacritty.png]]
## Get Started
```sh
git clone https://git.tudattr.dev/tudattr/dotfiles .dotfiles
cd .dotfiles
stow config
stow vim
stow zsh
```

49
README.org Normal file
View File

@ -0,0 +1,49 @@
* .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.

View File

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

View File

@ -1,6 +1,6 @@
! urxvt ! urxvt
! Fonts ! Fonts
urxvt*font: xft:DejaVuSansM Nerd Font Mono:style=Regular:size=11:hinting=full urxvt*font: xft:Hack Nerd Font Mono:style=Regular:size=11:hinting=full, xft:DejaVu Sans Mono for Powerline:size=11, SourceHanSans-Regular
! Behavior ! Behavior
urxvt*scrollBar: false urxvt*scrollBar: false

View File

@ -0,0 +1,2 @@
set -g prefix F12
unbind-key -n C-a

15
config/.byobu/status Normal file
View File

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

View File

@ -1,5 +1,5 @@
[font] [font]
size = 12 size = 10
[font.bold] [font.bold]
style = "Bold" style = "Bold"
@ -11,7 +11,7 @@ style = "Bold Italic"
style = "Italic" style = "Italic"
[font.normal] [font.normal]
family = "DejaVuSansM Nerd Font Mono" family = "DejaVu Sans Mono for Powerline"
style = "Regular" style = "Regular"
[window] [window]

View File

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

View File

@ -21,8 +21,9 @@ focus_follows_mouse no
# Configure # Configure
# border style <normal|1pixel|pixel xx|none|pixel> # border style <normal|1pixel|pixel xx|none|pixel>
new_window pixel 2
new_float normal
hide_edge_borders none hide_edge_borders none
default_border none
################################################################################################ ################################################################################################
###################################### Workspace Settings ###################################### ###################################### Workspace Settings ######################################
@ -79,7 +80,6 @@ bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws0; workspace $ws0 bindsym $mod+Shift+0 move container to workspace $ws0; workspace $ws0
# Open specific applications in floating mode # Open specific applications in floating mode
<<<<<<< HEAD
for_window [class="^Thunderbird$" title="^.*Event:"] floating enable for_window [class="^Thunderbird$" title="^.*Event:"] floating enable
# https://github.com/z3ntu/dotfiles/blob/master/i3/.config/i3/config # https://github.com/z3ntu/dotfiles/blob/master/i3/.config/i3/config
@ -93,53 +93,22 @@ for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable
for_window [class="^Steam$" title="^Screenshot Uploader$"] 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 [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable
for_window [title="^Steam Keyboard$"] floating enable for_window [title="^Steam Keyboard$"] floating enable
||||||| e9d53f0
for_window [class="(?i)virtualbox"] floating enable border normal
for_window [title="KeePassX$"] floating enable border normal
for_window [class="^Thunderbird$" title="^.*Event:"] floating enable
# https://github.com/z3ntu/dotfiles/blob/master/i3/.config/i3/config
# Steam
for_window [class="^Steam$" title="^Friends List$"] floating enable
for_window [class="^Steam$" title="Steam"] floating enable
for_window [class="^Steam$" title="^Settings$"] floating enable
for_window [class="^Steam$" title=".* - event started"] floating enable
for_window [class="^Steam$" title=".* CD key"] floating enable
for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable
for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enable
for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable
for_window [title="^Steam Keyboard$"] floating enable
=======
for_window [class="(?i)virtualbox"] floating enable border normal
for_window [title="KeePassX$"] floating enable border normal
>>>>>>> clean_emacs
############################################################################### ###############################################################################
############################ Startup Applications ############################# ############################ Startup Applications #############################
############################################################################### ###############################################################################
exec --no-startup-id setxkbmap eu; setxkbmap -option ctrl:nocaps; # exec --no-startup-id setxkbmap us,de; setxkbmap -option ctrl:nocaps; setxkbmap -option grp:lalt_lshift_toggle
exec --no-startup-id picom exec --no-startup-id picom
exec --no-startup-id udiskie exec --no-startup-id udiskie
exec --no-startup-id conky -c ~/.conky/syclo-crimson-bottomleft.conkyrc exec --no-startup-id conky -c ~/.conky/syclo-crimson-bottomleft.conkyrc
# exec --no-startup-id synergyc -f --no-tray --debug INFO --name genesis --enable-crypto 192.168.178.38:24800 # exec --no-startup-id synergyc -f --no-tray --debug INFO --name genesis --enable-crypto 192.168.178.38:24800
exec --no-startup-id dunst exec --no-startup-id dunst
exec --no-startup-id ~/.scripts/startup.sh exec --no-startup-id ~/.scripts/startup.sh
<<<<<<< HEAD
exec --no-startup-id ~/.scripts/battery_stats.sh exec --no-startup-id ~/.scripts/battery_stats.sh
exec --no-startup-id llk exec --no-startup-id llk
||||||| e9d53f0
exec --no-startup-id llk
exec --no-startup-id emacs --daemon
=======
>>>>>>> clean_emacs
exec --no-startup-id syncthing exec --no-startup-id syncthing
<<<<<<< HEAD
exec --no-startup-id xrandr --output eDP1 --auto --left-of HDMI1 --output HDMI1 --off --output DP1 --off exec --no-startup-id xrandr --output eDP1 --auto --left-of HDMI1 --output HDMI1 --off --output DP1 --off
||||||| e9d53f0
exec --no-startup-id xrandr --output eDP1 --auto --left-of HDMI1 --output HDMI1 --off --output DP1 --off; feh --randomize --bg-fill /home/tuan/Pictures/Wallpaper/*
=======
>>>>>>> clean_emacs
exec --no-startup-id feh --randomize --bg-fill $HOME/Pictures/Wallpaper/* exec --no-startup-id feh --randomize --bg-fill $HOME/Pictures/Wallpaper/*
############################################################################### ###############################################################################
@ -153,13 +122,13 @@ bindsym $mod+Shift+s exec poweroff
# start a terminal # start a terminal
bindsym $mod+space exec alacritty bindsym $mod+space exec alacritty
bindsym $mod+Return exec alacritty -e zellij bindsym $mod+Return exec alacritty -e nu /home/tuan/.scripts/zellij-chooser.nu
# kill focused window # kill focused window
bindsym $mod+Shift+q kill bindsym $mod+Shift+q kill
# start program launcher # start program launcher
bindsym $mod+d exec --no-startup-id $HOME/.config/rofi/launchers/type-1/launcher.sh bindsym $mod+d exec --no-startup-id /home/tuan/.config/rofi/launchers/type-1/launcher.sh
# Screen brightness controls # Screen brightness controls
bindsym XF86MonBrightnessUp exec --no-startup-id ~/.scripts/screen.sh up bindsym XF86MonBrightnessUp exec --no-startup-id ~/.scripts/screen.sh up
@ -169,30 +138,21 @@ bindsym XF86MonBrightnessDown exec --no-startup-id ~/.scripts/screen.sh down
bindsym XF86AudioLowerVolume exec --no-startup-id ~/.scripts/sound.sh down bindsym XF86AudioLowerVolume exec --no-startup-id ~/.scripts/sound.sh down
bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.scripts/sound.sh up bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.scripts/sound.sh up
bindsym XF86AudioMute exec --no-startup-id ~/.scripts/sound.sh toggle bindsym XF86AudioMute exec --no-startup-id ~/.scripts/sound.sh toggle
bindsym XF86AudioPlay exec "playerctl play-pause" bindsym XF86AudioPlay exec "playerctl play-pause; cmus-remote -u"
bindsym XF86AudioStop exec "playerctl stop" bindsym XF86AudioStop exec "playerctl stop; cmus-remote -s"
bindsym XF86AudioNext exec "playerctl next" bindsym XF86AudioNext exec "playerctl next; cmus-remote -n"
bindsym XF86AudioPrevious exec "playerctl previous" bindsym XF86AudioPrevious exec "playerctl previous; cmus-remote -r"
# Application Shortcuts # Application Shortcuts
bindsym $mod+b exec firefox bindsym $mod+b exec firefox
<<<<<<< HEAD
bindsym $mod+p exec firefox --private-window https://mos4.de bindsym $mod+p exec firefox --private-window https://mos4.de
bindsym $mod+e exec emacs bindsym $mod+e exec emacs
bindsym $mod+m exec thunderbird bindsym $mod+m exec thunderbird
||||||| e9d53f0
bindsym $mod+p exec firefox --private-window https://mos4.de
bindsym $mod+e exec emacsclient -c
bindsym $mod+m exec thunderbird
=======
bindsym $mod+p exec firefox --private-window https://tudattr.dev
>>>>>>> clean_emacs
# Whole Screen # Whole Screen
bindsym Control+Print exec --no-startup-id ~/.scripts/screenshot.sh screen bindsym Control+Print exec --no-startup-id ~/.scripts/screenshot.sh screen
# Window # Window
bindsym Mod1+Sys_Req --release exec --no-startup-id ~/.scripts/screenshot.sh window bindsym Mod1+Sys_Req --release exec --no-startup-id ~/.scripts/screenshot.sh window
# Area # Area
@ -231,7 +191,7 @@ bindsym $mod+f fullscreen toggle
bindsym $mod+Mod1+space floating toggle bindsym $mod+Mod1+space floating toggle
# change focus between tiling / floating windows # change focus between tiling / floating windows
bindsym $mod+Shift+f focus mode_toggle # bindsym $mod+space focus mode_toggle
# focus the parent container # focus the parent container
bindsym $mod+a focus parent bindsym $mod+a focus parent
@ -353,4 +313,3 @@ bindsym $mod+g mode "default"
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }

View File

@ -0,0 +1,392 @@
[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

View File

@ -16,5 +16,5 @@ theme='style-7'
## Run ## Run
rofi \ rofi \
-show run \ -show run \
-theme ${dir}/${theme}.rasi -theme ${dir}/${theme}.rasi

View File

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

View File

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

View File

@ -0,0 +1,64 @@
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)'

View File

@ -0,0 +1,46 @@
[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

View File

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

View File

@ -0,0 +1,3 @@
#back-button, #forward-button, #page-action-buttons{
display:none;
}

View File

@ -0,0 +1,14 @@
[Install4F96D1932A9F858E]
Default=2x4tnepw.default
Locked=1
[Profile0]
Name=default
IsRelative=1
Path=2x4tnepw.default
Default=1
[General]
StartWithLastProfile=1
Version=2

View File

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

View File

@ -1,21 +1,25 @@
# Services # Services
Host github.com gitlab.com git.uni-due.de Host github.com
Hostname github.com
Port 22 Port 22
User git User git
IdentityFile /mnt/veracrypt1/git IdentityFile /mnt/veracrypt1/git
Host github.com
Hostname github.com
Host gitlab.com Host gitlab.com
Hostname 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 Host git.uni-due.de
HostName git.uni-due.de HostName git.uni-due.de
Port 22
Host git.tudattr.dev
Hostname 192.168.20.12
Port 2222
User git User git
IdentityFile /mnt/veracrypt1/git IdentityFile /mnt/veracrypt1/git
@ -38,34 +42,12 @@ Host madrigal
User tudattr User tudattr
IdentityFile /mnt/veracrypt1/mikrotik_rsa IdentityFile /mnt/veracrypt1/mikrotik_rsa
Host inko inko.mii Host aya01
HostName 192.168.20.14
Host naruto naruto.mii
HostName 192.168.20.13
Host pi pi.mii
HostName 192.168.20.11
Host aya01 aya01.mii
HostName 192.168.20.12 HostName 192.168.20.12
Host behemoth behemoth.mii
User tuan
HostName 192.168.30.174
Host mii
HostName tudattr.dev
Host inko.mii pi.mii aya01.mii naruto.mii behemoth.mii
ProxyJump mii
Host mii pi aya01 inko naruto inko.mii pi.mii aya01.mii naruto.mii behemoth behemoth.mii
Port 22 Port 22
User tudattr User tudattr
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
<<<<<<< HEAD
Host inko Host inko
HostName 192.168.20.14 HostName 192.168.20.14
Port 22 Port 22
@ -75,26 +57,15 @@ Host inko
Host naruto Host naruto
HostName 192.168.20.13 HostName 192.168.20.13
Port 22 Port 22
||||||| e9d53f0
Host git.aya01
HostName 192.168.20.12
Port 23231
=======
# Work
Host mini
HostName 100.76.45.158
Port 22
>>>>>>> clean_emacs
User tudattr User tudattr
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
Host tail-pi Host pi
HostName 100.93.79.94 HostName 192.168.20.11
Port 22 Port 22
User tuant User tudattr
IdentityFile /mnt/veracrypt1/work/minis IdentityFile /mnt/veracrypt1/genesis
<<<<<<< HEAD
Host mii-root Host mii-root
HostName 202.61.207.139 HostName 202.61.207.139
Port 22 Port 22
@ -135,22 +106,13 @@ Host ncs-tailscale
User tuant User tuant
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
||||||| e9d53f0
# Work
=======
>>>>>>> clean_emacs
Host ncs-head Host ncs-head
HostName 132.252.68.50 HostName 132.252.68.50
Port 2122 Port 2122
User tuan-dat.tran User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
ForwardX11 yes ForwardX11 yes
<<<<<<< HEAD
ProxyJump ncs-tailscale ProxyJump ncs-tailscale
||||||| e9d53f0
=======
ProxyJump tail-pi
>>>>>>> clean_emacs
Host ncs-head-user Host ncs-head-user
HostName 132.252.68.50 HostName 132.252.68.50
@ -161,44 +123,62 @@ Host ncs-head-user
Host ncs2 Host ncs2
HostName 192.168.1.13 HostName 192.168.1.13
User tuan-dat.tran
Host ncs2 ncs2-user ncs-node1 ncs-node2 ncs-node2-user ncs-node3 ncs-node4 ncs-node5 ncs-node6 ncs-node7 ncs-wedge
Port 22 Port 22
User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
ProxyJump ncs-head ProxyJump ncs-head
Host ncs2-user Host ncs2-user
HostName 192.168.1.13 HostName 192.168.1.13
Port 22
User user # tuan-dat.tran User user # tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
ProxyJump ncs-head
Host ncs-node1 Host ncs-node1
HostName 192.168.1.11 HostName 192.168.1.11
Port 22
User user User user
IdentityFile /mnt/veracrypt1/tudattr
ProxyJump ncs-head
Host ncs-node2 Host ncs-node2
HostName 192.168.1.7 HostName 192.168.1.7
Port 22
User tuan-dat.tran User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
ProxyJump ncs-head
ForwardX11 yes ForwardX11 yes
Host ncs-node2-user Host ncs-node2-user
HostName 192.168.1.7 HostName 192.168.1.7
Port 22
User user User user
IdentityFile /mnt/veracrypt1/tudattr
ProxyJump ncs-head
Host ncs-node3 Host ncs-node3
Hostname 192.168.1.19 Hostname 192.168.1.19
Port 22
User tuan-dat.tran User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
ForwardX11 yes ForwardX11 yes
ProxyJump ncs-head
Host ncs-node3-user Host ncs-node3-user
Hostname 192.168.1.19 Hostname 192.168.1.19
Port 22
User user User user
IdentityFile /mnt/veracrypt1/tudattr IdentityFile /mnt/veracrypt1/tudattr
ForwardX11 yes ForwardX11 yes
ProxyJump ncs-head
Host ncs-node4 Host ncs-node4
HostName 192.168.1.9 HostName 192.168.1.9
Port 22
User tuan-dat.tran User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
ProxyJump ncs-head
Host ncs-node4-user Host ncs-node4-user
HostName 192.168.1.9 HostName 192.168.1.9
@ -209,11 +189,18 @@ Host ncs-node4-user
Host ncs-node5 Host ncs-node5
HostName 192.168.1.15 HostName 192.168.1.15
Port 22
User tuan-dat.tran User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
ProxyJump ncs-head
Host ncs-node6 Host ncs-node6
Hostname 192.168.1.17 Hostname 192.168.1.17
Port 22
User tuan-dat.tran User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
# ForwardX11 yes
ProxyJump ncs-head
Host ncs-node6-user Host ncs-node6-user
Hostname 192.168.1.17 Hostname 192.168.1.17
@ -225,53 +212,20 @@ Host ncs-node6-user
Host ncs-node7 Host ncs-node7
Hostname 192.168.1.18 Hostname 192.168.1.18
Port 22
User tuan-dat.tran User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
ForwardX11 yes ForwardX11 yes
ProxyJump ncs-head
Host ncs-wedge Host ncs-wedge
Hostname 192.168.1.5 Hostname 192.168.1.5
Port 22
User user User user
<<<<<<< HEAD
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
# ForwardX11 yes # ForwardX11 yes
ProxyJump ncs-head ProxyJump ncs-head
||||||| e9d53f0
IdentityFile /mnt/veracrypt1/genesis
# ForwardX11 yes
ProxyJump ncs-head
Host ncs-local-server
HostName 192.168.1.1
Port 22
User tuan-dat.tran
IdentityFile /mnt/veracrypt1/tudattr
StrictHostKeyChecking no
Host ncs-local-server-user
HostName 192.168.1.1
Port 22
User user
IdentityFile /mnt/veracrypt1/tudattr
StrictHostKeyChecking no
Host ncs-local-server2
HostName 192.168.2.2
Port 22
User user
IdentityFile /mnt/veracrypt1/tudattr
StrictHostKeyChecking no
ProxyJump ncs-local-server
Host phone
Hostname 192.168.30.245
Port 2222
User tuan-dat.tran
IdentityFile /mnt/veracrypt1/genesis
=======
>>>>>>> clean_emacs
Host ncs-gpu Host ncs-gpu
Hostname 192.168.1.21 Hostname 192.168.1.21
Port 22 Port 22
@ -280,29 +234,18 @@ Host ncs-gpu
ForwardX11 yes ForwardX11 yes
ProxyJump ncs-head ProxyJump ncs-head
<<<<<<< HEAD
Host ncs-aws-iperf3 Host ncs-aws-iperf3
Hostname 18.185.5.191 Hostname 18.185.5.191
Port 22 Port 22
User ec2-user User ec2-user
IdentityFile /mnt/veracrypt1/work/aws_ncs.pem IdentityFile /mnt/veracrypt1/work/aws_ncs.pem
||||||| e9d53f0
Host ncs-aws-iperf3
Hostname 18.185.5.191
Port 22
User ec2-user
IdentityFile /mnt/veracrypt1/aws_ncs.pem
=======
>>>>>>> clean_emacs
Host ami Host ami
Hostname 3.72.156.214 Hostname 3.72.156.214
Port 22 Port 22
User ubuntu User ubuntu
IdentityFile /mnt/veracrypt1/work/aws-rizk.pem IdentityFile /mnt/veracrypt1/work/aws-rizk.pem
<<<<<<< HEAD
Host 5g-mec Host 5g-mec
Hostname 192.168.100.1 Hostname 192.168.100.1
Port 22 Port 22
@ -321,25 +264,3 @@ Host minis
User tudattr User tudattr
IdentityFile /mnt/veracrypt1/genesis IdentityFile /mnt/veracrypt1/genesis
||||||| e9d53f0
=======
## 5g IANA
Host 5g-iana-mec
Hostname 192.168.100.1
Port 22
User udue
IdentityFile /mnt/veracrypt1/genesis
Host uulm-obu0 uulm-obu1
Port 22
User user
ProxyJump 5g-iana-mec
IdentityFile /mnt/veracrypt1/genesis
Host uulm-obu0
Hostname 192.168.201.7
Host uulm-obu1
Hostname 192.168.201.11
>>>>>>> clean_emacs

View File

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

145
emacs/.doom.d/config.el Normal file
View File

@ -0,0 +1,145 @@
;;; $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))

170
emacs/.doom.d/custom.el Normal file
View File

@ -0,0 +1,170 @@
(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-log-types
'((doom-first-file-hook)
(doom-first-file-hook)
(doom-first-file-hook)
(defvaralias)))
'(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.
)

216
emacs/.doom.d/init.el Normal file
View File

@ -0,0 +1,216 @@
;;; 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))

59
emacs/.doom.d/packages.el Normal file
View File

@ -0,0 +1,59 @@
;; -*- 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)

View File

@ -0,0 +1 @@
#+title: Config

1
emacs/.emacs.d Submodule

@ -0,0 +1 @@
Subproject commit 4d072ce888577b023774460f6036abefcd0a1fa6

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
Pillow==9.5.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 695 KiB

View File

@ -1,8 +0,0 @@
tt.*
.tests
doc/tags
debug
.repro
foo.*
*.log
data

View File

@ -1,15 +0,0 @@
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}

View File

@ -1,201 +0,0 @@
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.

View File

@ -1,4 +0,0 @@
# 💤 LazyVim
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.

View File

@ -1,2 +0,0 @@
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")

View File

@ -1,66 +0,0 @@
{
"LazyVim": { "branch": "main", "commit": "0107a1079be7fb92f7d5b7e2c40818f47cf425d9" },
"LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" },
"SchemaStore.nvim": { "branch": "main", "commit": "7efe039d0675f4f1b03f946cc457891d13a6495f" },
"bufferline.nvim": { "branch": "main", "commit": "64e2c5def50dfd6b6f14d96a45fa3d815a4a1eef" },
"catppuccin": { "branch": "main", "commit": "045e3499d9ec8d84635fb08877ae44fd33f6a38d" },
"clangd_extensions.nvim": { "branch": "main", "commit": "34c8eaa12be192e83cd4865ce2375e9f53e728f2" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"conform.nvim": { "branch": "master", "commit": "a605ce4b2db397c84ae6fa8bcfc85f00b985bc73" },
"crates.nvim": { "branch": "main", "commit": "b4f4987ccdb1cc3899ee541ef4375c73c48c4570" },
"dashboard-nvim": { "branch": "master", "commit": "413442b12d85315fc626c44a0ce4929b213ef604" },
"dressing.nvim": { "branch": "master", "commit": "18e5beb3845f085b6a33c24112b37988f3f93c06" },
"flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" },
"friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" },
"gitsigns.nvim": { "branch": "main", "commit": "4e348641b8206c3b8d23080999e3ddbe4ca90efc" },
"headlines.nvim": { "branch": "master", "commit": "618ef1b2502c565c82254ef7d5b04402194d9ce3" },
"indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" },
"lazy.nvim": { "branch": "main", "commit": "83493db50a434a4c5c648faf41e2ead80f96e478" },
"lualine.nvim": { "branch": "master", "commit": "26dac2fcadb6e622790ab08e36d0dba3d3765398" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "55716a879568a498fa236593c8119789054a3b8e" },
"mason.nvim": { "branch": "main", "commit": "3b5068f0fc565f337d67a2d315d935f574848ee7" },
"mini.ai": { "branch": "main", "commit": "ee9446a17c160aba6a04ff22097389c41872c878" },
"mini.bufremove": { "branch": "main", "commit": "931a3bb514147d9e812767275c4beba6b779b1d3" },
"mini.comment": { "branch": "main", "commit": "a4b7e46deb9ad2feb8902cc5dbf087eced112ee5" },
"mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" },
"mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" },
"mini.surround": { "branch": "main", "commit": "a1b590cc3b676512de507328d6bbab5e43794720" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "742db4e60c74e5fbcc596aaf9e7575e1342dfd09" },
"neoconf.nvim": { "branch": "main", "commit": "ffdeab72dc167543f9b3355baceb0918f1e81fc0" },
"neodev.nvim": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" },
"noice.nvim": { "branch": "main", "commit": "bf67d70bd7265d075191e7812d8eb42b9791f737" },
"nui.nvim": { "branch": "main", "commit": "3dc46d725f7b94bee5117c0a699b57b1902b5d65" },
"nvim-ansible": { "branch": "main", "commit": "d115cb9bb3680c990e2684f58cf333663fff03b8" },
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
"nvim-lint": { "branch": "master", "commit": "d78c8ab992f48890580653f74a362c6e5ef2eccc" },
"nvim-lspconfig": { "branch": "master", "commit": "4bdd3800b4148f670c6cf55ef65f490148eeb550" },
"nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" },
"nvim-spectre": { "branch": "master", "commit": "d1db6c1d37252b5a38f199e2f590c5a1617d9254" },
"nvim-treesitter": { "branch": "master", "commit": "f87882858438834d2fbb6379aa2be37de901751b" },
"nvim-treesitter-context": { "branch": "master", "commit": "b8b7e52c1517d401d7c519787d5dc4528c41291a" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "d2a4ffc22d9d38d44edb73da007b3cf43451e9b4" },
"nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "7ab799a9792f7cf3883cf28c6a00ad431f3d382a" },
"nvim-web-devicons": { "branch": "master", "commit": "a851380fbea4c1312d11f13d5cdc86a7a19808dd" },
"onedark.vim": { "branch": "main", "commit": "57b77747694ea5676c3ca0eeaf9567dc499730c0" },
"orgmode": { "branch": "master", "commit": "261c987345131a736066c25ea409f4d10904b0af" },
"persistence.nvim": { "branch": "main", "commit": "4982499c1636eac254b72923ab826ee7827b3084" },
"plenary.nvim": { "branch": "master", "commit": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be" },
"rustaceanvim": { "branch": "master", "commit": "69a22c2ec63ab375190006751562b62ebb318250" },
"semshi": { "branch": "master", "commit": "0182447e2ff4dfa04cd2dfe5f189e012c581ca45" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
"telescope.nvim": { "branch": "master", "commit": "67c598fdd4fca113224281c85721c4d8a6df055e" },
"todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" },
"tokyonight.nvim": { "branch": "main", "commit": "c025baf23b62f044eff1f4ef561c45de636f0e32" },
"trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" },
"venv-selector.nvim": { "branch": "main", "commit": "2ad34f36d498ff5193ea10f79c87688bd5284172" },
"vim-illuminate": { "branch": "master", "commit": "305bf07b919ac526deb5193280379e2f8b599926" },
"vim-ledger": { "branch": "master", "commit": "281346a221434574dd7f8767a352b2bf0b218b74" },
"vim-startuptime": { "branch": "master", "commit": "308b0088a864c4711a96e45b6734cf9294074f65" },
"vimtex": { "branch": "master", "commit": "9ce62bbf7ea8f6bb232bbff5549cd7745a3fd918" },
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
}

View File

@ -1,19 +0,0 @@
{
"extras": [
"lazyvim.plugins.extras.lang.ansible",
"lazyvim.plugins.extras.lang.clangd",
"lazyvim.plugins.extras.lang.docker",
"lazyvim.plugins.extras.lang.elixir",
"lazyvim.plugins.extras.lang.json",
"lazyvim.plugins.extras.lang.markdown",
"lazyvim.plugins.extras.lang.python",
"lazyvim.plugins.extras.lang.python-semshi",
"lazyvim.plugins.extras.lang.rust",
"lazyvim.plugins.extras.lang.tex",
"lazyvim.plugins.extras.lang.yaml"
],
"news": {
"NEWS.md": "2123"
},
"version": 3
}

View File

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

View File

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

View File

@ -1,46 +0,0 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
-- bootstrap lazy.nvim
-- stylua: ignore
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
end
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import any extras modules here
-- { import = "lazyvim.plugins.extras.lang.typescript" },
-- { import = "lazyvim.plugins.extras.lang.json" },
-- { import = "lazyvim.plugins.extras.ui.mini-animate" },
-- import/override with your plugins
{ import = "plugins" },
},
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 }, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})

View File

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

View File

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

View File

@ -1,4 +0,0 @@
return {
-- Add vim-ledger
{ "ledger/vim-ledger" },
}

View File

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

View File

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

View File

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

View File

@ -1,3 +0,0 @@
indent_type = "Spaces"
indent_width = 2
column_width = 120

View File

@ -0,0 +1,467 @@
" 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

2541
vim/.vim/autoload/plug.vim Normal file

File diff suppressed because it is too large Load Diff

2
vim/.vim/ftplugin/cs.vim Normal file
View File

@ -0,0 +1,2 @@
" 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>=%

23
vim/.vim/ftplugin/go.vim Normal file
View File

@ -0,0 +1,23 @@
" 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>

View File

@ -0,0 +1,2 @@
"html files
iabbrev </ </<C-X><C-O>

View File

@ -0,0 +1,13 @@
" 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>

View File

@ -0,0 +1,17 @@
" 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\+$/

3
vim/.vim/ftplugin/sh.vim Normal file
View File

@ -0,0 +1,3 @@
" Compilation
map <C-c><C-c> <Esc>:!clear&./%<CR><CR>

30
vim/.vim/ftplugin/tex.vim Normal file
View File

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

View File

@ -0,0 +1,30 @@
" 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

View File

@ -0,0 +1,76 @@
" 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:

View File

@ -0,0 +1,2 @@
autocmd BufNewFile,BufRead *.razor setf html

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -0,0 +1,28 @@
" 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>

View File

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

View File

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

846
vim/.vim/spell/de.utf-8.add Normal file
View File

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

BIN
vim/.vim/spell/de.utf-8.spl Normal file

Binary file not shown.

View File

@ -0,0 +1,6 @@
package main
import ()
func main() {
}

View File

@ -0,0 +1,5 @@
---
title: [:VIM_EVAL:]expand('%:p:h:t')[:END_EVAL:]
author: Tuan-Dat Tran
date: [:VIM_EVAL:]strftime('%Y-%m-%d')[:END_EVAL:]
...

View File

@ -0,0 +1 @@
#!/bin/sh

View File

@ -0,0 +1,32 @@
\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}

View File

@ -6,14 +6,6 @@ export PenTestTools=$HOME/Local/PenTesting/
export CTF=$HOME/Documents/CTF/ export CTF=$HOME/Documents/CTF/
export WORKSPACE=$HOME/workspace_l export WORKSPACE=$HOME/workspace_l
export ZSHRC="$HOME/.zshrc" export ZSHRC="$HOME/.zshrc"
<<<<<<< HEAD
||||||| e9d53f0
export VISUAL="emacsclient -t"
export EDITOR="emacsclient -t"
=======
export VISUAL="nvim"
export EDITOR="nvim"
>>>>>>> clean_emacs
# History # History
@ -52,8 +44,6 @@ setopt SHARE_HISTORY
# Alias # Alias
alias q="exit" alias q="exit"
alias b="byobu" alias b="byobu"
alias vim="nvim"
alias cat="bat --pager=never"
alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"' alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'
alias xsel='xsel -ib' alias xsel='xsel -ib'
alias msfconsole="msfconsole -x \"db_connect metasploit@msf\"" alias msfconsole="msfconsole -x \"db_connect metasploit@msf\""
@ -72,7 +62,6 @@ alias notify="dunstify \"ping~\""
alias ekill="pkill emacs; pkill emacsclient; ed" alias ekill="pkill emacs; pkill emacsclient; ed"
alias latexmk="latexmk -f -pdf -interaction=nonstopmode" alias latexmk="latexmk -f -pdf -interaction=nonstopmode"
alias picotik="picocom --b 115200 /dev/ttyUSB0" alias picotik="picocom --b 115200 /dev/ttyUSB0"
alias ls="eza"
## git ## git
alias gps="git push soft --all" alias gps="git push soft --all"
alias gras="add_soft_git" alias gras="add_soft_git"