summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSlendi <slendi@socopon.com>2023-10-20 18:50:10 +0300
committerSlendi <slendi@socopon.com>2023-10-20 18:51:31 +0300
commit02e7f82389f0287c2dd94414d6681a8f9c9db796 (patch)
treebcece21fcce76f229244ae176e120a58a18d3a2f
Initial commit.
Signed-off-by: Slendi <slendi@socopon.com>
-rw-r--r--.gitignore1
-rw-r--r--Pictures/wal/IMG_20231019_235112_mod.jpgbin0 -> 108601 bytes
-rw-r--r--Pictures/wal/g6kykcbhf1v71-01.jpgbin0 -> 217952 bytes
-rw-r--r--Pictures/wal/tumblr_o64e3vdvCB1u438yjo1_1280.pngbin0 -> 189089 bytes
-rwxr-xr-xbin/bspwmbarbin0 -> 51896 bytes
-rwxr-xr-xbin/dmenubin0 -> 42872 bytes
-rwxr-xr-xbin/dmenu_path13
-rwxr-xr-xbin/dmenu_run2
-rwxr-xr-xbin/pulse-volume-watcher.py40
-rwxr-xr-xbin/slockbin0 -> 23056 bytes
-rwxr-xr-xbin/stestbin0 -> 21368 bytes
-rwxr-xr-xbin/xmouselessbin0 -> 32192 bytes
-rwxr-xr-xdotconfig/bspwm/bspwmrc61
-rw-r--r--dotconfig/dircolors233
-rw-r--r--dotconfig/mimeapps.list20
-rw-r--r--dotconfig/neofetch/config.conf864
-rw-r--r--dotconfig/nvim/after/syntax/holyc.vim71
-rw-r--r--dotconfig/nvim/init.lua2
-rw-r--r--dotconfig/nvim/lua/slendi/after/fun.lua4
-rw-r--r--dotconfig/nvim/lua/slendi/after/init.lua5
-rw-r--r--dotconfig/nvim/lua/slendi/after/lsp.lua97
-rw-r--r--dotconfig/nvim/lua/slendi/after/telescope.lua25
-rw-r--r--dotconfig/nvim/lua/slendi/after/toggleterm.lua7
-rw-r--r--dotconfig/nvim/lua/slendi/after/treesitter.lua11
-rw-r--r--dotconfig/nvim/lua/slendi/autoclose.lua26
-rw-r--r--dotconfig/nvim/lua/slendi/init.lua15
-rw-r--r--dotconfig/nvim/lua/slendi/lol.7zbin0 -> 215 bytes
-rw-r--r--dotconfig/nvim/lua/slendi/opt.lua63
-rw-r--r--dotconfig/nvim/lua/slendi/packer.lua105
-rw-r--r--dotconfig/nvim/lua/slendi/remap.lua39
-rw-r--r--dotconfig/nvim/lua/slendi/theme.lua252
-rw-r--r--dotconfig/nvim/plugin/packer_compiled.lua240
-rw-r--r--dotconfig/nvim/theme.lua34
-rw-r--r--dotconfig/nvim/theme.vim51
-rw-r--r--dotconfig/picom/picom.conf19
-rw-r--r--dotconfig/sxhkd/sxhkdrc201
-rw-r--r--dotconfig/wezterm/wezterm.lua56
-rw-r--r--dotconfig/xclicker.conf3
-rw-r--r--dotconfig/zathura/zathurarc2
-rwxr-xr-xdotconfig/zsh/antigen.zsh2057
-rw-r--r--dotconfig/zsh/zoxide.zsh104
-rwxr-xr-xdotlocal/bin/RedSeaGenbin0 -> 38675748 bytes
-rwxr-xr-xdotlocal/bin/cc113
-rwxr-xr-xdotlocal/bin/fp48
-rwxr-xr-xdotlocal/bin/nv_vsync4
-rwxr-xr-xdotlocal/bin/prtscr60
-rwxr-xr-xdotlocal/bin/setbg2
-rwxr-xr-xdotlocal/bin/zz5
-rwxr-xr-xinstall.sh28
49 files changed, 4883 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a69c970
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+dotconfig/plugin
diff --git a/Pictures/wal/IMG_20231019_235112_mod.jpg b/Pictures/wal/IMG_20231019_235112_mod.jpg
new file mode 100644
index 0000000..cbf8e43
--- /dev/null
+++ b/Pictures/wal/IMG_20231019_235112_mod.jpg
Binary files differ
diff --git a/Pictures/wal/g6kykcbhf1v71-01.jpg b/Pictures/wal/g6kykcbhf1v71-01.jpg
new file mode 100644
index 0000000..a86a4e2
--- /dev/null
+++ b/Pictures/wal/g6kykcbhf1v71-01.jpg
Binary files differ
diff --git a/Pictures/wal/tumblr_o64e3vdvCB1u438yjo1_1280.png b/Pictures/wal/tumblr_o64e3vdvCB1u438yjo1_1280.png
new file mode 100644
index 0000000..4a4d73c
--- /dev/null
+++ b/Pictures/wal/tumblr_o64e3vdvCB1u438yjo1_1280.png
Binary files differ
diff --git a/bin/bspwmbar b/bin/bspwmbar
new file mode 100755
index 0000000..943b8da
--- /dev/null
+++ b/bin/bspwmbar
Binary files differ
diff --git a/bin/dmenu b/bin/dmenu
new file mode 100755
index 0000000..3e100af
--- /dev/null
+++ b/bin/dmenu
Binary files differ
diff --git a/bin/dmenu_path b/bin/dmenu_path
new file mode 100755
index 0000000..3a7cda7
--- /dev/null
+++ b/bin/dmenu_path
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+cachedir="${XDG_CACHE_HOME:-"$HOME/.cache"}"
+cache="$cachedir/dmenu_run"
+
+[ ! -e "$cachedir" ] && mkdir -p "$cachedir"
+
+IFS=:
+if stest -dqr -n "$cache" $PATH; then
+ stest -flx $PATH | sort -u | tee "$cache"
+else
+ cat "$cache"
+fi
diff --git a/bin/dmenu_run b/bin/dmenu_run
new file mode 100755
index 0000000..834ede5
--- /dev/null
+++ b/bin/dmenu_run
@@ -0,0 +1,2 @@
+#!/bin/sh
+dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} &
diff --git a/bin/pulse-volume-watcher.py b/bin/pulse-volume-watcher.py
new file mode 100755
index 0000000..6e117cd
--- /dev/null
+++ b/bin/pulse-volume-watcher.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+from pulsectl import Pulse, PulseLoopStop
+import sys
+
+with Pulse() as pulse:
+ def callback(ev):
+ if ev.index == sink_index: raise PulseLoopStop
+ def current_status(sink):
+ return round(sink.volume.value_flat * 100), sink.mute == 1
+ try:
+ sinks = {s.index:s for s in pulse.sink_list()}
+ if len(sys.argv) > 1:
+ # Sink index from command line argument if provided
+ sink_index = int(sys.argv[1])
+ if not sink_index in sinks:
+ raise KeyError(f"Sink index {sink_index} not found in list of sinks.")
+ else:
+ # Automatic determination of default sink otherwise
+ default_sink_name = pulse.server_info().default_sink_name
+ try:
+ sink_index = next(index for index, sink in sinks.items()
+ if sink.name == default_sink_name)
+ except StopIteration: raise StopIteration("No default sink was found.")
+
+ pulse.event_mask_set('sink')
+ pulse.event_callback_set(callback)
+ last_value, last_mute = current_status(sinks[sink_index])
+
+ while True:
+ pulse.event_listen()
+ sinks = {s.index:s for s in pulse.sink_list()}
+ value, mute = current_status(sinks[sink_index])
+ if value != last_value or mute != last_mute:
+ print(str(value) + ('!' if mute else ''))
+ last_value, last_mute = value, mute
+ sys.stdout.flush()
+
+ except Exception as e:
+ print(f"ERROR: {e}", file=sys.stderr)
+
diff --git a/bin/slock b/bin/slock
new file mode 100755
index 0000000..7c51b1d
--- /dev/null
+++ b/bin/slock
Binary files differ
diff --git a/bin/stest b/bin/stest
new file mode 100755
index 0000000..fd35c32
--- /dev/null
+++ b/bin/stest
Binary files differ
diff --git a/bin/xmouseless b/bin/xmouseless
new file mode 100755
index 0000000..b815596
--- /dev/null
+++ b/bin/xmouseless
Binary files differ
diff --git a/dotconfig/bspwm/bspwmrc b/dotconfig/bspwm/bspwmrc
new file mode 100755
index 0000000..ea67e82
--- /dev/null
+++ b/dotconfig/bspwm/bspwmrc
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# Hotkey daemon
+pgrep -x sxhkd > /dev/null || sxhkd &
+
+pgrep -x xcmenu > /dev/null || xcmenu &
+pgrep -x lxpolkit > /dev/null || lxpolkit &
+pgrep -x nm-applet > /dev/null || nm-applet &
+pgrep -x blueman-applet > /dev/null || blueman-applet &
+pgrep -x dunst > /dev/null || dunst &
+pgrep -x picom > /dev/null || picom --fade-in-step=1 --fade-out-step=1 &
+pgrep -x cc1 > /dev/null || cc1 &
+
+setbg &
+
+# Saner mouse sensitivity
+xset mouse 1 0
+
+# Faster key repeat
+xset r rate 400 50
+
+# Make the default cursor be the normal one instead of the default X one
+xsetroot -cursor_name left_ptr &
+
+# Swap escape and caps lock
+setxkbmap ro
+#setxkbmap -option caps:swapescape
+
+bspc monitor -d I II III IV V VI VII VIII IX X
+
+bspc config border_width 1
+bspc config window_gap 0
+
+bspc config split_ratio 0.52
+bspc config borderless_monocle true
+bspc config gapless_monocle true
+
+bspc rule -a Gimp desktop='^8' state=floating follow=on
+bspc rule -a Chromium desktop='^2'
+bspc rule -a mplayer2 state=floating
+bspc rule -a Qemu-system-x86_64 state=floating
+bspc rule -a qemu state=floating
+bspc rule -a Kupfer.py focus=on
+bspc rule -a Screenkey manage=off
+bspc rule -a Zathura state=tiled
+
+xinput --set-prop $(xinput list | grep 'Touchpad' | awk '{print $6}' | cut -f2 -d'=') 'libinput Accel Profile Enabled' 0, 1
+
+do_pipewire() {
+ pgrep -x pipewire > /dev/null || pipewire &
+ sleep 0.2
+ pgrep -x pipewire-pulse > /dev/null || pipewire-pulse &
+ sleep 0.2
+ pgrep -x wireplumber > /dev/null || wireplumber &
+}
+
+do_pipewire &
+
+pgrep -x bspwmbar > /dev/null || bspwmbar &
+sleep 0.2
+pgrep -x xob > /dev/null || (pulse-volume-watcher.py | xob) &
diff --git a/dotconfig/dircolors b/dotconfig/dircolors
new file mode 100644
index 0000000..4325f12
--- /dev/null
+++ b/dotconfig/dircolors
@@ -0,0 +1,233 @@
+# Configuration file for dircolors, a utility to help you set the
+# LS_COLORS environment variable used by GNU ls with the --color option.
+# Copyright (C) 1996-2023 Free Software Foundation, Inc.
+# Copying and distribution of this file, with or without modification,
+# are permitted provided the copyright notice and this notice are preserved.
+#
+# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
+# slackware version of dircolors) are recognized but ignored.
+# Global config options can be specified before TERM or COLORTERM entries
+# ===================================================================
+# Terminal filters
+# ===================================================================
+# Below are TERM or COLORTERM entries, which can be glob patterns, which
+# restrict following config to systems with matching environment variables.
+COLORTERM ?*
+TERM Eterm
+TERM ansi
+TERM *color*
+TERM con[0-9]*x[0-9]*
+TERM cons25
+TERM console
+TERM cygwin
+TERM *direct*
+TERM dtterm
+TERM gnome
+TERM hurd
+TERM jfbterm
+TERM konsole
+TERM kterm
+TERM linux
+TERM linux-c
+TERM mlterm
+TERM putty
+TERM rxvt*
+TERM screen*
+TERM st
+TERM terminator
+TERM tmux*
+TERM vt100
+TERM xterm*
+# ===================================================================
+# Basic file attributes
+# ===================================================================
+# Below are the color init strings for the basic file types.
+# One can use codes for 256 or more colors supported by modern terminals.
+# The default color codes use the capabilities of an 8 color terminal
+# with some additional attributes as per the following codes:
+# Attribute codes:
+# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
+# Text color codes:
+# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
+# Background color codes:
+# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
+#NORMAL 00 # no color code at all
+#FILE 00 # regular file: use no color at all
+RESET 0 # reset to "normal" color
+DIR 00 # directory
+LINK 00 # symbolic link. (If you set this to 'target' instead of a
+ # numerical value, the color is as for the file pointed to.)
+MULTIHARDLINK 00 # regular file with more than one link
+FIFO 00 # pipe
+SOCK 00 # socket
+DOOR 00 # door
+BLK 00 # block device driver
+CHR 00 # character device driver
+ORPHAN 0 # symlink to nonexistent file, or non-stat'able file ...
+MISSING 00 # ... and the files they point to
+SETUID 0 # file that is setuid (u+s)
+SETGID 0 # file that is setgid (g+s)
+CAPABILITY 00 # file with capability (very expensive to lookup)
+STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
+OTHER_WRITABLE 0 # dir that is other-writable (o+w) and not sticky
+STICKY 0 # dir with the sticky bit set (+t) and not other-writable
+# This is for files with execute permission:
+EXEC 0
+# ===================================================================
+# File extension attributes
+# ===================================================================
+# List any file extensions like '.gz' or '.tar' that you would like ls
+# to color below. Put the suffix, a space, and the color init string.
+# (and any comments you want to add after a '#').
+# Suffixes are matched case insensitively, but if you define different
+# init strings for separate cases, those will be honored.
+#
+# If you use DOS-style suffixes, you may want to uncomment the following:
+#.cmd 0 # executables (bright green)
+#.exe 0
+#.com 0
+#.btm 0
+#.bat 0
+# Or if you want to color scripts even if they do not have the
+# executable bit actually set.
+#.sh 01;32
+#.csh 01;32
+# archives or compressed (bright red)
+.tar 0
+.tgz 0
+.arc 0
+.arj 0
+.taz 0
+.lha 0
+.lz4 0
+.lzh 0
+.lzma 0
+.tlz 0
+.txz 0
+.tzo 0
+.t7z 0
+.zip 0
+.z 0
+.dz 0
+.gz 0
+.lrz 0
+.lz 0
+.lzo 0
+.xz 0
+.zst 0
+.tzst 0
+.bz2 0
+.bz 0
+.tbz 0
+.tbz2 0
+.tz 0
+.deb 0
+.rpm 0
+.jar 0
+.war 0
+.ear 0
+.sar 0
+.rar 0
+.alz 0
+.ace 0
+.zoo 0
+.cpio 0
+.7z 0
+.rz 0
+.cab 0
+.wim 0
+.swm 0
+.dwm 0
+.esd 0
+# image formats
+.avif 0
+.jpg 0
+.jpeg 0
+.mjpg 0
+.mjpeg 0
+.gif 0
+.bmp 0
+.pbm 0
+.pgm 0
+.ppm 0
+.tga 0
+.xbm 0
+.xpm 0
+.tif 0
+.tiff 0
+.png 0
+.svg 0
+.svgz 0
+.mng 0
+.pcx 0
+.mov 0
+.mpg 0
+.mpeg 0
+.m2v 0
+.mkv 0
+.webm 0
+.webp 0
+.ogm 0
+.mp4 0
+.m4v 0
+.mp4v 0
+.vob 0
+.qt 0
+.nuv 0
+.wmv 0
+.asf 0
+.rm 0
+.rmvb 0
+.flc 0
+.avi 0
+.fli 0
+.flv 0
+.gl 0
+.dl 0
+.xcf 0
+.xwd 0
+.yuv 0
+.cgm 0
+.emf 0
+# https://wiki.xiph.org/MIME_Types_and_File_Extensions
+.ogv 0
+.ogx 0
+# audio formats
+.aac 0
+.au 0
+.flac 0
+.m4a 0
+.mid 0
+.midi 0
+.mka 0
+.mp3 0
+.mpc 0
+.ogg 0
+.ra 0
+.wav 0
+# https://wiki.xiph.org/MIME_Types_and_File_Extensions
+.oga 0
+.opus 0
+.spx 0
+.xspf 0
+# backup files
+*~ 0
+*# 0
+.bak 0
+.old 0
+.orig 0
+.part 0
+.rej 0
+.swp 0
+.tmp 0
+.dpkg-dist 0
+.dpkg-old 0
+.ucf-dist 0
+.ucf-new 0
+.ucf-old 0
+.rpmnew 0
+.rpmorig 0
+.rpmsave 0
+#
+# Subsequent TERM or COLORTERM entries, can be used to add / override
+# config specific to those matching environment variables.
diff --git a/dotconfig/mimeapps.list b/dotconfig/mimeapps.list
new file mode 100644
index 0000000..95a741e
--- /dev/null
+++ b/dotconfig/mimeapps.list
@@ -0,0 +1,20 @@
+[Default Applications]
+x-scheme-handler/discord-378543094531883009=discord-378543094531883009.desktop
+x-scheme-handler/mailto=userapp-Thunderbird-CU3O81.desktop;
+message/rfc822=userapp-Thunderbird-CU3O81.desktop;
+x-scheme-handler/mid=userapp-Thunderbird-CU3O81.desktop;
+x-scheme-handler/discord-514489760568573952=discord-514489760568573952.desktop
+text/html=firefoxdeveloperedition.desktop
+x-scheme-handler/http=firefoxdeveloperedition.desktop
+x-scheme-handler/https=firefoxdeveloperedition.desktop
+x-scheme-handler/about=firefoxdeveloperedition.desktop
+x-scheme-handler/unknown=firefoxdeveloperedition.desktop
+
+[Added Associations]
+x-scheme-handler/mailto=userapp-Thunderbird-CU3O81.desktop;
+x-scheme-handler/mid=userapp-Thunderbird-CU3O81.desktop;
+
+[Added Applications]
+
+[Removed Applications]
+
diff --git a/dotconfig/neofetch/config.conf b/dotconfig/neofetch/config.conf
new file mode 100644
index 0000000..c7f455a
--- /dev/null
+++ b/dotconfig/neofetch/config.conf
@@ -0,0 +1,864 @@
+# See this wiki page for more info:
+# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
+print_info() {
+ info title
+ info underline
+
+ info "OS" distro
+ info "Host" model
+ info "Kernel" kernel
+ info "Uptime" uptime
+ info "Packages" packages
+ info "Shell" shell
+ info "Resolution" resolution
+ info "DE" de
+ info "WM" wm
+ info "WM Theme" wm_theme
+ info "Theme" theme
+ info "Icons" icons
+ info "Terminal" term
+ info "Terminal Font" term_font
+ info "CPU" cpu
+ info "GPU" gpu
+ info "Memory" memory
+
+ # info "GPU Driver" gpu_driver # Linux/macOS only
+ # info "CPU Usage" cpu_usage
+ # info "Disk" disk
+ # info "Battery" battery
+ # info "Font" font
+ # info "Song" song
+ # [[ "$player" ]] && prin "Music Player" "$player"
+ # info "Local IP" local_ip
+ # info "Public IP" public_ip
+ # info "Users" users
+ # info "Locale" locale # This only works on glibc systems.
+
+ info cols
+}
+
+# Title
+
+
+# Hide/Show Fully qualified domain name.
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --title_fqdn
+title_fqdn="off"
+
+
+# Kernel
+
+
+# Shorten the output of the kernel function.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --kernel_shorthand
+# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
+#
+# Example:
+# on: '4.8.9-1-ARCH'
+# off: 'Linux 4.8.9-1-ARCH'
+kernel_shorthand="on"
+
+
+# Distro
+
+
+# Shorten the output of the distro function
+#
+# Default: 'off'
+# Values: 'on', 'tiny', 'off'
+# Flag: --distro_shorthand
+# Supports: Everything except Windows and Haiku
+distro_shorthand="off"
+
+# Show/Hide OS Architecture.
+# Show 'x86_64', 'x86' and etc in 'Distro:' output.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --os_arch
+#
+# Example:
+# on: 'Arch Linux x86_64'
+# off: 'Arch Linux'
+os_arch="on"
+
+
+# Uptime
+
+
+# Shorten the output of the uptime function
+#
+# Default: 'on'
+# Values: 'on', 'tiny', 'off'
+# Flag: --uptime_shorthand
+#
+# Example:
+# on: '2 days, 10 hours, 3 mins'
+# tiny: '2d 10h 3m'
+# off: '2 days, 10 hours, 3 minutes'
+uptime_shorthand="on"
+
+
+# Memory
+
+
+# Show memory pecentage in output.
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --memory_percent
+#
+# Example:
+# on: '1801MiB / 7881MiB (22%)'
+# off: '1801MiB / 7881MiB'
+memory_percent="off"
+
+# Change memory output unit.
+#
+# Default: 'mib'
+# Values: 'kib', 'mib', 'gib'
+# Flag: --memory_unit
+#
+# Example:
+# kib '1020928KiB / 7117824KiB'
+# mib '1042MiB / 6951MiB'
+# gib: ' 0.98GiB / 6.79GiB'
+memory_unit="mib"
+
+
+# Packages
+
+
+# Show/Hide Package Manager names.
+#
+# Default: 'tiny'
+# Values: 'on', 'tiny' 'off'
+# Flag: --package_managers
+#
+# Example:
+# on: '998 (pacman), 8 (flatpak), 4 (snap)'
+# tiny: '908 (pacman, flatpak, snap)'
+# off: '908'
+package_managers="on"
+
+
+# Shell
+
+
+# Show the path to $SHELL
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --shell_path
+#
+# Example:
+# on: '/bin/bash'
+# off: 'bash'
+shell_path="off"
+
+# Show $SHELL version
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --shell_version
+#
+# Example:
+# on: 'bash 4.4.5'
+# off: 'bash'
+shell_version="on"
+
+
+# CPU
+
+
+# CPU speed type
+#
+# Default: 'bios_limit'
+# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
+# Flag: --speed_type
+# Supports: Linux with 'cpufreq'
+# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
+speed_type="bios_limit"
+
+# CPU speed shorthand
+#
+# Default: 'off'
+# Values: 'on', 'off'.
+# Flag: --speed_shorthand
+# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
+#
+# Example:
+# on: 'i7-6500U (4) @ 3.1GHz'
+# off: 'i7-6500U (4) @ 3.100GHz'
+speed_shorthand="off"
+
+# Enable/Disable CPU brand in output.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --cpu_brand
+#
+# Example:
+# on: 'Intel i7-6500U'
+# off: 'i7-6500U (4)'
+cpu_brand="on"
+
+# CPU Speed
+# Hide/Show CPU speed.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --cpu_speed
+#
+# Example:
+# on: 'Intel i7-6500U (4) @ 3.1GHz'
+# off: 'Intel i7-6500U (4)'
+cpu_speed="on"
+
+# CPU Cores
+# Display CPU cores in output
+#
+# Default: 'logical'
+# Values: 'logical', 'physical', 'off'
+# Flag: --cpu_cores
+# Support: 'physical' doesn't work on BSD.
+#
+# Example:
+# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
+# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
+# off: 'Intel i7-6500U @ 3.1GHz'
+cpu_cores="logical"
+
+# CPU Temperature
+# Hide/Show CPU temperature.
+# Note the temperature is added to the regular CPU function.
+#
+# Default: 'off'
+# Values: 'C', 'F', 'off'
+# Flag: --cpu_temp
+# Supports: Linux, BSD
+# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
+# coretemp kernel module. This only supports newer Intel processors.
+#
+# Example:
+# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
+# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
+# off: 'Intel i7-6500U (4) @ 3.1GHz'
+cpu_temp="off"
+
+
+# GPU
+
+
+# Enable/Disable GPU Brand
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --gpu_brand
+#
+# Example:
+# on: 'AMD HD 7950'
+# off: 'HD 7950'
+gpu_brand="on"
+
+# Which GPU to display
+#
+# Default: 'all'
+# Values: 'all', 'dedicated', 'integrated'
+# Flag: --gpu_type
+# Supports: Linux
+#
+# Example:
+# all:
+# GPU1: AMD HD 7950
+# GPU2: Intel Integrated Graphics
+#
+# dedicated:
+# GPU1: AMD HD 7950
+#
+# integrated:
+# GPU1: Intel Integrated Graphics
+gpu_type="all"
+
+
+# Resolution
+
+
+# Display refresh rate next to each monitor
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --refresh_rate
+# Supports: Doesn't work on Windows.
+#
+# Example:
+# on: '1920x1080 @ 60Hz'
+# off: '1920x1080'
+refresh_rate="off"
+
+
+# Gtk Theme / Icons / Font
+
+
+# Shorten output of GTK Theme / Icons / Font
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --gtk_shorthand
+#
+# Example:
+# on: 'Numix, Adwaita'
+# off: 'Numix [GTK2], Adwaita [GTK3]'
+gtk_shorthand="off"
+
+
+# Enable/Disable gtk2 Theme / Icons / Font
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --gtk2
+#
+# Example:
+# on: 'Numix [GTK2], Adwaita [GTK3]'
+# off: 'Adwaita [GTK3]'
+gtk2="on"
+
+# Enable/Disable gtk3 Theme / Icons / Font
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --gtk3
+#
+# Example:
+# on: 'Numix [GTK2], Adwaita [GTK3]'
+# off: 'Numix [GTK2]'
+gtk3="on"
+
+
+# IP Address
+
+
+# Website to ping for the public IP
+#
+# Default: 'http://ident.me'
+# Values: 'url'
+# Flag: --ip_host
+public_ip_host="http://ident.me"
+
+# Public IP timeout.
+#
+# Default: '2'
+# Values: 'int'
+# Flag: --ip_timeout
+public_ip_timeout=2
+
+
+# Desktop Environment
+
+
+# Show Desktop Environment version
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --de_version
+de_version="on"
+
+
+# Disk
+
+
+# Which disks to display.
+# The values can be any /dev/sdXX, mount point or directory.
+# NOTE: By default we only show the disk info for '/'.
+#
+# Default: '/'
+# Values: '/', '/dev/sdXX', '/path/to/drive'.
+# Flag: --disk_show
+#
+# Example:
+# disk_show=('/' '/dev/sdb1'):
+# 'Disk (/): 74G / 118G (66%)'
+# 'Disk (/mnt/Videos): 823G / 893G (93%)'
+#
+# disk_show=('/'):
+# 'Disk (/): 74G / 118G (66%)'
+#
+disk_show=('/')
+
+# Disk subtitle.
+# What to append to the Disk subtitle.
+#
+# Default: 'mount'
+# Values: 'mount', 'name', 'dir', 'none'
+# Flag: --disk_subtitle
+#
+# Example:
+# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
+# 'Disk (/dev/sdb2): 74G / 118G (66%)'
+#
+# mount: 'Disk (/): 74G / 118G (66%)'
+# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
+# 'Disk (/mnt/Videos): 74G / 118G (66%)'
+#
+# dir: 'Disk (/): 74G / 118G (66%)'
+# 'Disk (Local Disk): 74G / 118G (66%)'
+# 'Disk (Videos): 74G / 118G (66%)'
+#
+# none: 'Disk: 74G / 118G (66%)'
+# 'Disk: 74G / 118G (66%)'
+# 'Disk: 74G / 118G (66%)'
+disk_subtitle="mount"
+
+# Disk percent.
+# Show/Hide disk percent.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --disk_percent
+#
+# Example:
+# on: 'Disk (/): 74G / 118G (66%)'
+# off: 'Disk (/): 74G / 118G'
+disk_percent="on"
+
+
+# Song
+
+
+# Manually specify a music player.
+#
+# Default: 'auto'
+# Values: 'auto', 'player-name'
+# Flag: --music_player
+#
+# Available values for 'player-name':
+#
+# amarok
+# audacious
+# banshee
+# bluemindo
+# clementine
+# cmus
+# deadbeef
+# deepin-music
+# dragon
+# elisa
+# exaile
+# gnome-music
+# gmusicbrowser
+# gogglesmm
+# guayadeque
+# io.elementary.music
+# iTunes
+# juk
+# lollypop
+# mocp
+# mopidy
+# mpd
+# muine
+# netease-cloud-music
+# olivia
+# playerctl
+# pogo
+# pragha
+# qmmp
+# quodlibet
+# rhythmbox
+# sayonara
+# smplayer
+# spotify
+# strawberry
+# tauonmb
+# tomahawk
+# vlc
+# xmms2d
+# xnoise
+# yarock
+music_player="auto"
+
+# Format to display song information.
+#
+# Default: '%artist% - %album% - %title%'
+# Values: '%artist%', '%album%', '%title%'
+# Flag: --song_format
+#
+# Example:
+# default: 'Song: Jet - Get Born - Sgt Major'
+song_format="%artist% - %album% - %title%"
+
+# Print the Artist, Album and Title on separate lines
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --song_shorthand
+#
+# Example:
+# on: 'Artist: The Fratellis'
+# 'Album: Costello Music'
+# 'Song: Chelsea Dagger'
+#
+# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
+song_shorthand="off"
+
+# 'mpc' arguments (specify a host, password etc).
+#
+# Default: ''
+# Example: mpc_args=(-h HOST -P PASSWORD)
+mpc_args=()
+
+
+# Text Colors
+
+
+# Text Colors
+#
+# Default: 'distro'
+# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
+# Flag: --colors
+#
+# Each number represents a different part of the text in
+# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
+#
+# Example:
+# colors=(distro) - Text is colored based on Distro colors.
+# colors=(4 6 1 8 8 6) - Text is colored in the order above.
+colors=(distro)
+
+
+# Text Options
+
+
+# Toggle bold text
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --bold
+bold="on"
+
+# Enable/Disable Underline
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --underline
+underline_enabled="on"
+
+# Underline character
+#
+# Default: '-'
+# Values: 'string'
+# Flag: --underline_char
+underline_char="-"
+
+
+# Info Separator
+# Replace the default separator with the specified string.
+#
+# Default: ':'
+# Flag: --separator
+#
+# Example:
+# separator="->": 'Shell-> bash'
+# separator=" =": 'WM = dwm'
+separator=":"
+
+
+# Color Blocks
+
+
+# Color block range
+# The range of colors to print.
+#
+# Default: '0', '15'
+# Values: 'num'
+# Flag: --block_range
+#
+# Example:
+#
+# Display colors 0-7 in the blocks. (8 colors)
+# neofetch --block_range 0 7
+#
+# Display colors 0-15 in the blocks. (16 colors)
+# neofetch --block_range 0 15
+block_range=(0 15)
+
+# Toggle color blocks
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --color_blocks
+color_blocks="on"
+
+# Color block width in spaces
+#
+# Default: '3'
+# Values: 'num'
+# Flag: --block_width
+block_width=3
+
+# Color block height in lines
+#
+# Default: '1'
+# Values: 'num'
+# Flag: --block_height
+block_height=1
+
+# Color Alignment
+#
+# Default: 'auto'
+# Values: 'auto', 'num'
+# Flag: --col_offset
+#
+# Number specifies how far from the left side of the terminal (in spaces) to
+# begin printing the columns, in case you want to e.g. center them under your
+# text.
+# Example:
+# col_offset="auto" - Default behavior of neofetch
+# col_offset=7 - Leave 7 spaces then print the colors
+col_offset="auto"
+
+# Progress Bars
+
+
+# Bar characters
+#
+# Default: '-', '='
+# Values: 'string', 'string'
+# Flag: --bar_char
+#
+# Example:
+# neofetch --bar_char 'elapsed' 'total'
+# neofetch --bar_char '-' '='
+bar_char_elapsed="-"
+bar_char_total="="
+
+# Toggle Bar border
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --bar_border
+bar_border="on"
+
+# Progress bar length in spaces
+# Number of chars long to make the progress bars.
+#
+# Default: '15'
+# Values: 'num'
+# Flag: --bar_length
+bar_length=15
+
+# Progress bar colors
+# When set to distro, uses your distro's logo colors.
+#
+# Default: 'distro', 'distro'
+# Values: 'distro', 'num'
+# Flag: --bar_colors
+#
+# Example:
+# neofetch --bar_colors 3 4
+# neofetch --bar_colors distro 5
+bar_color_elapsed="distro"
+bar_color_total="distro"
+
+
+# Info display
+# Display a bar with the info.
+#
+# Default: 'off'
+# Values: 'bar', 'infobar', 'barinfo', 'off'
+# Flags: --cpu_display
+# --memory_display
+# --battery_display
+# --disk_display
+#
+# Example:
+# bar: '[---=======]'
+# infobar: 'info [---=======]'
+# barinfo: '[---=======] info'
+# off: 'info'
+cpu_display="off"
+memory_display="off"
+battery_display="off"
+disk_display="off"
+
+
+# Backend Settings
+
+
+# Image backend.
+#
+# Default: 'ascii'
+# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
+# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
+# Flag: --backend
+image_backend="ascii"
+
+# Image Source
+#
+# Which image or ascii file to display.
+#
+# Default: 'auto'
+# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
+# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
+# Flag: --source
+#
+# NOTE: 'auto' will pick the best image source for whatever image backend is used.
+# In ascii mode, distro ascii art will be used and in an image mode, your
+# wallpaper will be used.
+image_source="/home/slendi/Downloads/1242px-Void_Linux_logo.svg.png"
+
+
+# Ascii Options
+
+
+# Ascii distro
+# Which distro's ascii art to display.
+#
+# Default: 'auto'
+# Values: 'auto', 'distro_name'
+# Flag: --ascii_distro
+# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS",
+# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs,
+# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock,
+# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
+# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
+# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
+# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
+# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary,
+# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
+# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
+# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
+# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
+# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
+# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
+# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
+# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
+# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba,
+# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD,
+# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint,
+# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
+# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
+# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
+# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
+# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
+# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
+# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
+# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
+# and IRIX have ascii logos
+# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
+# Use '{distro name}_old' to use the old logos.
+# NOTE: Ubuntu has flavor variants.
+# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
+# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
+# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
+# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
+# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
+# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
+# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
+# postmarketOS, and Void have a smaller logo variant.
+# Use '{distro name}_small' to use the small variants.
+ascii_distro="auto"
+
+# Ascii Colors
+#
+# Default: 'distro'
+# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
+# Flag: --ascii_colors
+#
+# Example:
+# ascii_colors=(distro) - Ascii is colored based on Distro colors.
+# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
+ascii_colors=(distro)
+
+# Bold ascii logo
+# Whether or not to bold the ascii logo.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --ascii_bold
+ascii_bold="on"
+
+
+# Image Options
+
+
+# Image loop
+# Setting this to on will make neofetch redraw the image constantly until
+# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --loop
+image_loop="off"
+
+# Thumbnail directory
+#
+# Default: '~/.cache/thumbnails/neofetch'
+# Values: 'dir'
+thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
+
+# Crop mode
+#
+# Default: 'normal'
+# Values: 'normal', 'fit', 'fill'
+# Flag: --crop_mode
+#
+# See this wiki page to learn about the fit and fill options.
+# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
+crop_mode="normal"
+
+# Crop offset
+# Note: Only affects 'normal' crop mode.
+#
+# Default: 'center'
+# Values: 'northwest', 'north', 'northeast', 'west', 'center'
+# 'east', 'southwest', 'south', 'southeast'
+# Flag: --crop_offset
+crop_offset="center"
+
+# Image size
+# The image is half the terminal width by default.
+#
+# Default: 'auto'
+# Values: 'auto', '00px', '00%', 'none'
+# Flags: --image_size
+# --size
+image_size="120px"
+
+# Gap between image and text
+#
+# Default: '3'
+# Values: 'num', '-num'
+# Flag: --gap
+gap=3
+
+# Image offsets
+# Only works with the w3m backend.
+#
+# Default: '0'
+# Values: 'px'
+# Flags: --xoffset
+# --yoffset
+yoffset=0
+xoffset=0
+
+# Image background color
+# Only works with the w3m backend.
+#
+# Default: ''
+# Values: 'color', 'blue'
+# Flag: --bg_color
+background_color=
+
+
+# Misc Options
+
+# Stdout mode
+# Turn off all colors and disables image backend (ASCII/Image).
+# Useful for piping into another command.
+# Default: 'off'
+# Values: 'on', 'off'
+stdout="off"
diff --git a/dotconfig/nvim/after/syntax/holyc.vim b/dotconfig/nvim/after/syntax/holyc.vim
new file mode 100644
index 0000000..ba2366e
--- /dev/null
+++ b/dotconfig/nvim/after/syntax/holyc.vim
@@ -0,0 +1,71 @@
+" Vim syntax file for holyc
+" Made by: Slendi <slendi@socopon.com>
+
+" Filetypes
+au BufRead,BufNewFile *.HC,*.hc,*.ZC,*.zc set filetype=holyc
+
+" Types
+syn keyword holycType U0 I0 U8 I8 U16 I16 U32 I32 U64 I64 Bool
+
+" Keywords
+syn keyword holycKeyword if else do while for return break continue switch class public case start end default goto
+syn keyword holycKeyword asm
+
+syn keyword holycConstant PSMTT_BOX_TOOL PSMTT_PTR_TOOL JB_RUN_LEVEL_NULL JB_RUN_LEVEL_ONE JB_RUN_LEVEL_TWO PSMT_HEAD PSMT_NOTE PSMT_METER PSMf_SEL PSMF_SEL PSMf_SHARP PSMf_FLAT PSMf_TIE TEMPO_SPACING TEMPO_RANGE TEMPO_BORDER PSM_METERS_NUM PSM_NOTE_BOX_Y PSM_NOTE_BOX_X PSM_B_W PSM_B_H PSM_METER_W PSM_W_H PSM_METER_Y PSM_METER_X PSM_TOOLS_X PSM_TOOLS_Y PSM_W_W PSM_KEYS_NUM DD_TEMPLEOS_ULTRA_K_SIZE0KB PSM_DURATIONS_NUM PSM_NOTE_SPACING DOCET_LINK_UNDERLINE0x20000000 DOCET_UNDEF_COLOR PSMF_INCOMPLETE PSMF_CD DD_TEMPLEOSCD_SIZE MAKE_STD MAKE_STD_RS MAKE_ULTRA MAKE_ULTRA_RS MAKE_SUP1 MAKE_WEB MAKE_BOOKS2 MAKE_BOOKS1 MAKE_DBG MAKE_STAFF NIST_TIME_OFFSET NIST_TIME_TO_SWITCH GSRC_NIST_BEACON GSRC_HOTBITS GSRC_ANU_NIST GSRC_GOOGLE GSRC_RANDOM_ORG GSRC_RANDOM_NUMBERS_INFO5 GSRC_PASSWORD GSRC_GENERATE_DATA GSRC_VIRTUAL_NOTARY GSRC_TIMER GBP_SHORT GBP_MEDIUM GBP_LONG ST_FAMLY_PHOTOS DD_TEMPLEOS_ULTRA_SIZEDownload CFG_HARD_DRVS CFG_DVD_DRVS CFG_DSK_CACHE TOS_HDS TOS_MASTER_BOOT_DRVS PERSONAL_WEB BLOG_SRC BLOG_DST DAILY_SRC DAILY_DST BLOG_LOCAL_SRC BLOG_WEB_DST SLOP CFG_DBG_DISTRO CFG_DBG_DISTRO_FILE TOS_DBG_DISTRO TOS_DBG_DISTRO_END CFG_DBG_DISTRO_START TOS_DVD_DBG_CFG TOS_CFG TOS_DVD_CFG CFG_DBG_OPTS CFG_DBGZ_OPTS TOS_DISTRO_DIR CFG_OPTS TOS_ISO_NAME TOS_ISO_C_NAME CFG_RAM_DRVS FG_RAM_DRV PSMR_SET_WORD PSMR_DELETE_NOTE PSMR_INS_NOTE PSMR_REST PSMR_TIE PSMR_SHARP PSMR_FLAT FG_JUST_AUDIO VIDEO_FRAME_RATE FG_BOOT_DRV MEM_TEST_SIZE BOOT_HIGH_LOC_MHD2 DD_BOOT_HIGH_LOC_MHD200096A00 DS_USE_FILE1 HDR_NUM DD_KERNEL DD_KERNEL_END DD_TEMPLEOS_LOC DD_TEMPLEOS_LOC_OFFICIAL DD_MP_VECT_END DD_MP_VECT DD_BOOT_HIGH_LOC_MHD00096C00 BHD_START DD_BOOT_HIGH_LOC_HD BOOT_DIR BOOT_DIR_KERNEL_BIN_CBOOT_DIR ST_RHYTHM_COMPLEXITYSimple ST_BIBLE_BOOK_LINES ST_BIBLE_BOOKS ST_BIBLE_LINES MODULE_SIZE BOOT_HIGH_LOC_HD DF_ABORT_ALL_FILES DF_ABORT_FILE DF_REMAINDER_ALL_FILE20x08 DF_REMAINDER_ALL_FILE10x04 WIN_SCROLL_BORDER_BONUS4 WIN_SCROLL_SIZE VIEWANGLES_SNAP VIEWANGLES_BORDER VIEWANGLES_RANGE VIEWANGLES_SPACING DD_SYS_FIXED_AREA_BASE00100000 DD_SYS_FIXED_AREA_END00101FFF DD_MEM_HEAP_BASE DD_MEM_HEAP_LIMIT DD_MEM_MIN_MEG DD_UNCACHED_ALIAS DD_PHYSICAL_SPACE_END00FFFFFFFF DD_MAPPED_SPACE_END DD_JIFFY_HZ ST_HOST_OSES MODULE_SIZE BOOT_DIR_BOOTMHD2_BIN_CBOOT_DIR DS_USE_FILE2 PCI_DEV_FILE DF_DONT_MODIFIED DF_MODIFIED DS_ABORT_FILE DS_REMAINDER_2 DS_REMAINDER_1 MODULE_SIZE BOOT_HIGH_LOC_MHD BTTN_BORDER BTF_DONT_FREE DD_TEMPLEOS_AGE DD_OS_NAME_VERSION PF_ARRAY_CNT PROFANITY_CHK DD_BOOT_HIGH_LOC_DVD_END00096FFF DD_BOOT_HIGH_LOC_DVD00096600 BOOT_DIR_OLDMBR_BIN_CBOOT_DIR ST_HOST_VMS RR_REGISTER RR_UNREGISTER RR_REREGISTER REGISTRY_FILENAME HL_HASH_SIZE HL_CALLER_DEPTH FILEMASK_OFF_LIMITS KERNEL_BIN_C RIGHT_PLAIN RIGHT_INFILE RIGHT_COPY RIGHT_AINCLUDE RIGHT_INCLUDE C_INDENT_SPACES ASM_RENUM_SPACING EF_REINDENT DD_TEMPLEOSCD_K_SIZE0KB EF_CMP_CHK EF_RENUM_ASM EF_CTRL_SLIDER EF_CH_SC RIGHT_MOUNT RIGHT_ED RIGHT_DELETE RIGHT_TYPE RIGHT_MOVE LK_PLACE_ANCHOR SM_INS SM_PLAY SM_REPEAT_N PU_SPACING LK_DOC_LINE LK_DOC_FIND LK_DOC_ANCHOR LK_DOC LK_ADDR LK_HELP_INDEX DFT_ADDR_LINK_BIN_SIZE64 SM_STOP LK_FILE_FIND LK_FILE_ANCHOR LK_FILE MT_MSG SM_RECORD LK_FILE_LINE LK_PLAIN_LINE LK_PLAIN_FIND LK_DEF LK_PLAIN LK_BIBLE_FIND LK_MAN_PAGE MT_NULL RSAC_REPLACE RSAC_SKIP RSAC_ALL MT_CHAR EST_SPRITE_SIZE EST_DUP_SPRITE EST_SPRITE_PTR EST_SPRITE WIZ_HIGHLIGHT_OFF WIZ_HIGHLIGHT_ON EST_SPRITE_MENU EST_SPRITE_MACRO EST_SPRITE_LINK DF_NO_MORE_PMTS_THIS_FILE0x40 BOOT_DIR FND_REPLACE FND_SKIP FND_ALL FND_ED FND_ABORT_FILE FND_SKIP_FILE DUR_16_16_8 DUR_8_16_16 DUR_8DOT_16 FMR_MOUNT_REDSEA_ISO_C9 ST_SPRITE_BITMAP_MENUExit SPBM_SAVE_GR SPBM_UNDO SPBM_ETCH SPBM_ADD_OUTLINE SPBM_TRIM_TO_EXTENTS22 SPBM_FIND_AND_REPLACE21 SPBM_DELETE SPBM_COPY SPBM_POLYPT SPBM_POLYLINE SPBM_FLOOD_FILL_NOT SPBM_FLOOD_FILL SPBM_TEXT_DIAMOND SPBM_TEXT_BOX SPBM_TEXT SPBM_PASTE SPBM_PASTE_TRANSPARENT20 DUR_16_16_16_16 DUR_3_3_3 DUR_8_8 SPE_EXIT SPE_CONT DIAMOND_SLOPE_MAX ST_DOC_CMDS DUR_4 SE_NOISE SE_SWEEP GOD_BAD_BITS GOD_GOOD_BITS ROUND_DRV_TO DRV_HEADER DHT_COLOR DHT_DOC_CMD FM_PICK_FILE FMR_DELETE FMR_RENAME DHT_DOC_FLAG FM_PICK_DIR DEF2_PROCESSED BIBLE_FILENAME SPED_SEL SPED_SEL_RECTS SPED_UNSEL SPED_SEL_UNSEL_ALL ST_SPRITE_ED_MENU SPT_INS_TRANSPARENT_SCRN_BITMAP SPED_UNSEL_RECTS SPED_SHIFT_PTS SPED_SHIFT_RECTS SPED_EXIT SPED_MAIN_MENU SPED_INS_CLIP BOOT_HIGH_LOC_DVD ST_DOC_FLAGS PROGRESS_BAR_HEIGHT SPT_EXIT SPT_ED_MENU SPEDT_SIMPLE_PT SPEDT_WIDTH_HEIGHT SPEDF_SEL SPT_MENU DEF2_NOT_INITIALIZED2 SPT_INS_SCRN_BITMAP FMR_MKDIR FM_NORMAL FMR_MAKE_REDSEA_ISO_C11 FMR_PLAIN FMR_INCLUDE PROGRESS_BAR_WIDTH FMR_PASTE ST_LINK_TYPES MV_FILE_MAX SEL_MESH_AND SPE_ABORT TF_COPIED FMR_CHG_DSK FMR_ADAM_INCLUDE FMR_FORMAT GR_SCALE1_BITS SEL_MESH_OR SEL_MESH_EQU VF_IGNORE SPBM_MAIN_MENU SPED_SHIFT_SUB_ORIGIN11 SPBM_COLOR SPBM_DITHER_COLOR VF_SEL CC_BOTTOM CC_TOP CC_LEFT VF_COPIED CC_RIGHT GR_SCALE2_BITS SPED_TEXT_ED FMR_BURN_ISO FMR_HELP SPED_TRANSFORM_SEL KERNEL_BIN_C SPBM_EXIT SPED_SHIFT_SEL SPBM_ARROW SPBM_LINE SPED_SET_ORIGIN FMR_UNMOUNT MESH_WORKSPACE_SIZE GR_FILE_MAX ST_RAINBOW_10 SPBM_PT TF_SEL SPBM_WIDTH GR_SCALE SPBM_RECT SPBM_CIRCLE GR_SCRN_ZOOM_MAX GR_PEN_BRUSHES_NUM SPHT_ELEM_CODE SPT_TEXT_DIAMOND SPT_TEXT_BOX SPT_END SPF_SEL SPf_SEL ST_SPRITE_ELEM_TYPESEnd ST_SPRITE_ELEM_CODESEnd SPT_COLOR SPT_DITHER_COLOR SPT_THICK SPT_PLANAR_SYMMETRY SPT_TRANSFORM_ON SPT_TRANSFORM_OFF SPT_SHIFT SPT_PT SPT_POLYPT SPT_LINE SPT_ELLIPSE SPT_POLYGON ERRCON PSHRNK PGROW SAFETY SPT_TYPES_NUM SPG_TYPE_MASK SPT_BSPLINE2 SPT_BSPLINE2_CLOSED SPT_BSPLINE3 SPT_BSPLINE3_CLOSED SPT_FLOOD_FILL SPT_POLYLINE ODEdc6 ODEdc5 ODEdc4 ODEdc3 ODEdc1 ODEc6 ODEc4 ODEc3 ODEc1 ODEb65 ODEb64 ODEb63 ODEb62 ODEb61 SPT_RECT SPT_CIRCLE ODEa2 ODEa3 SPT_ROTATED_RECT ODEa5 ODEb31 ODEb21 ODEa4 ODEa6 SPT_ARROW SPT_TEXT SPT_SHIFTABLE_MESH ODEb54 ODEb53 SPT_BITMAP SPT_FLOOD_FILL_NOT ODEb32 ODEb41 SPT_MESH ODEb43 ODEb52 ODEb51 ODEb42 CMPF_PRS_SEMICOLON CMPF_LEX_FIRST CMPF_ONE_ASM_INS CMPF_ASM_BLK PRSF_UNION PRS1_NOT_REALLY__EXTERN0x000500 PRS1B__EXTERN_IMPORT5 PRS1_STATIC_LOCAL_VAR0x000400 PRS1B_STATIC_LOCAL_VAR4 PRS1_CLASS PRS1B_CLASS PRS1_FUN_ARG PRS1B_FUN_ARG PRS1_LOCAL_VAR PRS1B_LOCAL_VAR PRS1_NULL PRS1B_NULL PRS0_TYPECAST PRS0_IMPORT PRS0_EXTERN PRS0__IMPORT PRS0__INTERN PRS0__EXTERN PRS0_NULL FSG_FUN_FLAGS2 FSG_FUN_FLAGS1 FSF_NOARGPOP FSF_ARGPOP FSF_HASERRCODE FSF_INTERRUPT FSF__ FSF_STATIC FSF_ASM FSF_PUBLIC PREC_MAX PREC_ASSIGN PREC_OR_OR PREC_XOR_XOR PREC_AND_AND PREC_CMP2 PREC_CMP PREC_ADD PREC_OR PREC_XOR PREC_AND PREC_MUL PREC_EXP PREC_UNARY_PRE PREC_UNARY_POST PREC_TERM PREC_NULL ASSOC_MASK ASSOCF_RIGHT ASSOCF_LEFT CMP_TEMPLATE_ATAN CMP_TEMPLATE_TAN CMP_TEMPLATE_COS CMP_TEMPLATE_SIN CMP_TEMPLATE_SQRT CMP_TEMPLATE_ABS CMP_TEMPLATE_SQR CMP_TEMPLATE_FLD CMP_TEMPLATE_FSTP CMP_TEMPLATE_SIGN_I640x09 CMP_TEMPLATE_RDTSC CMP_TEMPLATE_STRLEN CMP_TEMPLATE_GREATER_EQU0x06 CMP_TEMPLATE_LESS_EQU0x05 CMP_TEMPLATE_GREATER0x04 CMP_TEMPLATE_LESS CMP_TEMPLATE_MOD CMP_TEMPLATE_DEC CMP_TEMPLATE_INC KW_KWS_NUM AKW_BINFILE AKW_NOLIST AKW_LIST AKW_IMPORT AKW_USE64 AKW_USE32 AKW_USE16 AKW_DUP AKW_DU64 AKW_DU32 AKW_DU16 AKW_DU8 AKW_F64 AKW_U64 AKW_U32 AKW_U16 AKW_U8 AKW_U0 AKW_I64 AKW_I32 AKW_I16 AKW_I8 AKW_I0 AKW_ORG AKW_ALIGN KW_NOARGPOP KW_ARGPOP KW_HASERRCODE KW_INTERRUPT KW_DEFINED KW_LOCK KW_STATIC KW_HELP_FILE KW_HELP_INDEX KW_NO_WARN KW_LASTCLASS KW_NOREG KW_REG KW_ASSERT KW_ENDIF KW_IFJIT KW_IFAOT KW_IFNDEF KW_IFDEF KW__IMPORT KW_IMPORT KW_OFFSET KW_PUBLIC KW_DFT KW_CASE KW_END KW_START KW_SWITCH KW_BREAK KW_EXE KW_GOTO KW_ASM KW_DO KW__INTERN KW_SIZEOF KW_RETURN KW__EXTERN KW_EXTERN KW_WHILE KW_FOR KW_ELSE KW_IF KW_TRY KW_CLASS KW_CATCH KW_UNION KW_DEFINE KW_INCLUDE IC_ICS_NUM IC_ATAN IC_TAN IC_COS IC_SIN IC_SQRT IC_ABS IC_SQR IC_SQR_U64 IC_SQR_I64 IC_MOD_U64 IC_MAX_U64 IC_MAX_I64 IC_MIN_U64 IC_MIN_I64 IC_SIGN_I64 IC_ABS_I64 IC_SWAP_I64 IC_SWAP_U32 IC_SWAP_U16 IC_SWAP_U8 IC_BR_NOT_BTC IC_BR_NOT_BTR IC_BR_NOT_BTS IC_BR_NOT_BT IC_BR_BTC IC_BR_BTR IC_BR_BTS IC_BR_BT IC_BR_OR_OR_NOT_ZERO0x9C IC_BR_OR_OR_ZERO IC_BR_AND_AND_NOT_ZERO0x9A IC_BR_AND_AND_ZERO IC_BR_MM_NOT_ZERO IC_BR_MM_ZERO IC_BR_AND_NOT_ZERO IC_BR_AND_ZERO IC_BR_LESS_EQU2 IC_BR_GREATER2 IC_BR_GREATER_EQU2 IC_BR_LESS2 IC_BR_NOT_EQU2 IC_BR_EQU_EQU2 IC_BR_LESS_EQU IC_BR_GREATER IC_BR_GREATER_EQU IC_BR_LESS IC_BR_NOT_EQU IC_BR_EQU_EQU IC_BR_NOT_CARRY IC_BR_CARRY IC_BR_NOT_ZERO IC_BR_ZERO IC_STRLEN IC_QUE_REM IC_QUE_INS_REV IC_QUE_INS IC_QUE_INIT IC_BSR IC_BSF IC_LBTC IC_LBTR IC_LBTS IC_BTC IC_BTR IC_BTS IC_BT IC_RDTSC IC_RIP IC_SET_RSP IC_GET_RSP IC_SET_RBP IC_GET_RBP IC_SET_RAX IC_GET_RAX IC_SET_RFLAGS IC_CARRY IC_GET_RFLAGS IC_OUT_U32 IC_OUT_U16 IC_OUT_U8 IC_IN_U32 IC_IN_U16 IC_IN_U8 IC_INVLPG IC_CLFLUSH IC_POP IC_PUSH IC_ASM IC_CALL_EXTERN IC_CALL_IMPORT IC_CALL_INDIRECT2 IC_CALL_INDIRECT IC_CALL IC_RET IC_LEAVE IC_POP_REGS IC_PUSH_REGS IC_ENTER IC_ADD_RSP1 IC_ADD_RSP IC_NOBOUND_SWITCH IC_SWITCH IC_SUB_CALL IC_JMP IC_SUB_EQU IC_ADD_EQU IC_XOR_EQU IC_OR_EQU IC_AND_EQU IC_MOD_EQU IC_DIV_EQU IC_MUL_EQU IC_SHR_EQU IC_SHL_EQU IC_ASSIGN_MM IC_ASSIGN_PP IC_ASSIGN IC_XOR_XOR IC_OR_OR IC_AND_AND IC_PUSH_CMP IC_LESS_EQU IC_GREATER IC_GREATER_EQU IC_LESS IC_NOT_EQU IC_EQU_EQU IC_SUB_CONST IC_ADD_CONST IC_SUB IC_ADD IC_XOR IC_OR IC_AND IC_MOD IC_DIV IC_MUL IC_POWER IC_SHR_CONST IC_SHL_CONST IC_SHR IC_SHL IC_MM_ IC_PP_ IC__MM IC__PP IC_DEREF_MM IC_DEREF_PP IC_DEREF IC_UNARY_MINUS IC_NOT IC_COM IC_ADDR IC_HOLYC_TYPECAST IC_TOUPPER IC_TO_BOOL IC_TO_F64 IC_TO_I64 IC_MOV IC_LEA IC_MOV_GS IC_GS IC_MOV_FS IC_FS IC_REG IC_RBP IC_GET_LABEL IC_TYPE IC_SIZEOF IC_HEAP_GLBL IC_ADDR_IMPORT IC_ABS_ADDR IC_STR_CONST IC_IMM_F64 IC_IMM_I64 IC_RETURN_VAL2 IC_RETURN_VAL IC_CALL_END2 IC_CALL_END IC_CALL_START IC_LABEL IC_NOP2 IC_END_EXP IC_NOP1 IC_END IST_CMP IST_ASSIGN IST_DEREF IST_NULL IS_V_ARG IS_2_ARG IS_1_ARG IS_0_ARG VM_VIRTUALBOX VM_QEMU VM_VMWARE VM_NATIVE VM_OTHER OS_WINDOWS OS_LINUX OS_NATIVE OS_OTHER PRTF_NEG_AUX_FMT_NUM0x800 PRTF_NEG_E PRTF_NEG PRTF_DECIMAL PRTF_AUX_FMT_NUM PRTF_QUESTION PRTF_SLASH PRTF_DOLLAR PRTF_COMMA PRTF_TRUNCATE PRTF_LEFT_JUSTIFY PRTF_PAD_ZERO PROGRESS_DESC_LEN PROGRESS_BARS_NUM ARf_MANAGE_SLIDER ARf_CSPRITE_PTS_RECTANGLES5 ARf_MESH_ED ARf_PSALMODY_JUKEBOX3 ARf_PLANAR_SYMMETRY ARf_CSPRITE_INS_CLIP1 ARf_FLOODFILL STD_DISTRO_DVD_CFG BOOT_SRC_DVD BOOT_SRC_RAM BOOT_SRC_ROM BOOT_SRC_NULL BOOT_STK_SIZE BOOT_RAM_LIMIT BOOT_RAM_BASE FUN_SEG_CACHE_STR_LEN CF FUN_SEG_CACHE_SIZE BOOT_SRC_HARDDRV KDF_HAS_DESCS LMF_EXACT LMF_IGNORE_CASE SFG_WHOLE_LABELS SFF_WHOLE_LABELS_AFTER4 SFF_WHOLE_LABELS_BEFORE2 SFF_IGNORE_CASE SUF_SAFE_DOLLAR SUF_SCALE_INDENT SUF_T2S SUF_S2T SUF_TO_LOWER SUF_TO_UPPER SUF_SINGLE_SPACE SUF_REM_SPACES SUF_REM_TRAILING SUF_REM_LEADING SUF_REM_CTRL_CHARS GSF_WITH_NEW_LINE GSF_SHIFT_ESC_EXIT VGAP_CRTC_INDEX VGAP_PALETTE_DATA VGAP_REG_WRITE VGAP_REG_READ VGAP_PALETTE_MASK VGAP_DATA VGAP_IDX VGAP_MISC_OUTPUT VGAP_ATTR_DATA_READ VGAP_ATTR_DATA_WRITE0x03C0 VGAP_ATTR_INDEX VGAM_TEXT VGAM_GRAPHICS VGAR_MAP_MASK VGAP_INPUT_STAT VGAP_CRTC_DATA CT_NONE ARC_BITS_MAX DCS_SIGNATURE_VAL DCSF_PALETTE_GET DCSF_COMPRESSED DCF_ON_TOP DCF_RECORD_EXTENTS DCF_FILL_NOT_COLOR DCF_SCRN_BITMAP DCF_ALIAS DCF_DONT_DRAW DCF_LOCATE_NEAREST DCF_JUST_MIRROR DCF_SYMMETRY DCF_TRANSFORMATION DCF_NO_TRANSPARENTS DCF_PALETTE DCF_COMPRESSED GR_Z_ALL FONT_HEIGHT FONT_WIDTH CT_8_BIT CT_7_BIT RWF_SCROLL RWF_SHOW_DOLLAR RWF_LAST_DOLLAR RWF_IN_DOLLAR SC_PRTSCRN2 SC_PRTSCRN1 SC_GUI SC_PAUSE SC_F12 SC_F11 SC_F10 SC_F9 SC_F8 SC_F7 SC_F6 SC_F5 SC_F4 SC_F3 SC_F2 SC_F1 SC_DELETE SC_INS SC_END SC_HOME SC_PAGE_DOWN SC_PAGE_UP SC_CURSOR_RIGHT SC_CURSOR_LEFT SC_CURSOR_DOWN SC_CURSOR_UP SC_SCROLL SC_NUM SC_CAPS SC_ALT SC_CTRL SC_SHIFT SC_ENTER SC_TAB SC_BACKSPACE SC_ESC SCF_KEY_DESC SCF_NO_SHIFT SCF_INS SCF_DELETE SCF_MS_R_DOWN SCF_MS_L_DOWN SCF_NEW_KEY SCF_SCROLL SCF_NUM SCF_CAPS SCF_ALT SCF_CTRL SCF_SHIFT SCF_KEY_UP SCF_E0_PREFIX SCf_KEY_DESC SCf_NO_SHIFT SCf_INS SCf_DELETE SCf_MS_R_DOWN SCf_MS_L_DOWN SCf_NEW_KEY SCf_SCROLL SCf_NUM SCf_CAPS SCf_ALT SCf_CTRL SCf_SHIFT SCf_KEY_UP SCf_E0_PREFIX ST_WARN_ST ST_ERR_ST CH_SPACE CH_SHIFT_SPACE CH_SHIFT_ESC CH_ESC CH_BACKSPACE CH_CURSOR CH_CTRLZ CH_CTRLY CH_CTRLX CH_CTRLW CH_CTRLV CH_CTRLU CH_CTRLT CH_CTRLS CH_CTRLR CH_CTRLQ CH_CTRLP CH_CTRLO CH_CTRLN CH_CTRLM CH_CTRLL CH_CTRLK CH_CTRLJ CH_CTRLI CH_CTRLH CH_CTRLG CH_CTRLF CH_CTRLE CH_CTRLD CH_CTRLC CH_CTRLA SYS_16MEG_AREA_LIMIT0x1000000 SYS_FIXED_AREA MEM_MIN_MEG CPUf_DYING_TASK_QUE CPUf_RAN_A_TASK _R15 _R14 _R13 _R12 _R11 _R10 _R9 _R8 _RIP _RSP _RBP _RDI _RSI _RDX _RCX _RBX _RAX ansf ans CH_CTRLB DYING_JIFFIES TASK_EXCEPT_CALLERS TASK_NAME_LEN TASK_SIGNATURE_VAL DISPLAYf_CHILDREN_NOT_ON_TOP5 DISPLAYf_WIN_ON_TOP DISPLAYf_NO_BORDER DISPLAYf_SILENT DISPLAYf_NOT_RAW DISPLAYf_SHOW TASKf_NONTIMER_RAND TASKf_KILL_AFTER_DBG13 TASKf_BREAK_TO_SHIFT_ESC12 TASKf_PENDING_BREAK TASKf_BREAK_LOCKED TASKf_AWAITING_MSG TASKf_DISABLE_BPTS TASKf_HAS_SONG TASKf_FILTER_INPUT TASKf_INPUT_FILTER_TASK5 TASKf_CMD_LINE_PMT TASKf_IDLE TASKf_SUSPENDED TASKf_KILL_TASK TASKf_TASK_LOCK TTS_CUR_LEX TTS_ED_FILENAME TTS_LOCKED_CONST TTS_CONST BDS_ED_FILENAME_DRV BDS_CUR_DRV BDS_CONST TSF_SAME_SONG MSG_MS_R_D_DOWN_UP MSG_MS_R_DOWN_UP MSG_MS_L_D_DOWN_UP MSG_MS_L_DOWN_UP MSG_KEY_DOWN_UP MSG_MS_R_D_UP MSG_MS_R_D_DOWN MSG_MS_R_UP MSG_MS_R_DOWN MSG_MS_L_D_UP MSG_MS_L_D_DOWN MSG_MS_L_UP MSG_MS_L_DOWN MSG_MS_MOVE MSG_KEY_UP MSG_KEY_DOWN MSG_CMD MSG_NULL JOBCf_LOCKED JOBT_SPAWN_TASK JOBT_CALL JOBT_EXE_STR JOBT_MSG JOBT_TEXT_INPUT JOBf_ADD_TO_QUE JOBf_FREE_ON_COMPLETE7 JOBf_DISPATCHED JOBf_DONE JOBf_HIGHEST_PRIORITY4 JOBf_DONT_FILTER JOBf_EXIT_ON_COMPLETE2 JOBf_FOCUS_MASTER JOBf_WAKE_MASTER TTS_TASK_NAME WSSf_SET_TO_POS CTRLF_CLICKED CTRLF_CAPTURE_RIGHT_MS8 CTRLF_CAPTURE_LEFT_MS4 CTRLF_BORDER CTRLF_SHOW CTRLT_VIEWING_ANGLES3 CTRLT_WIN_VSCROLL CTRLT_WIN_HSCROLL CTRLT_GENERIC KBD_CTRL KBD_PORT COLORROP_BITS COLORROP_NO_ROP0_MASK0xFFFF00FF COLORROP_COLORS_MASK0x00FF00FF COLOR_MONO COLOR_INVALID COLORS_NUM WHITE YELLOW LTPURPLE LTRED LTCYAN LTGREEN LTBLUE DKGRAY LTGRAY BROWN PURPLE RED CYAN GREEN BLUE BLACK TRANSPARENT ROPF_PROBABILITY_DITHER0x80000000 ROPF_DITHER ROPF_TWO_SIDED ROPF_HALF_RANGE_COLOR0x1000 ROP_MONO ROP_COLLISION ROP_XOR ROP_EQU ROPBF_PROBABILITY_DITHER0x80 ROPBF_DITHER ROPBF_TWO_SIDED ROPBF_HALF_RANGE_COLOR0x10 ROPB_MONO ROPB_COLLISION ROPB_XOR ROPB_EQU HEAP_CTRL_SIGNATURE_VAL BPlf_LOCKED TASK_HASH_TABLE_SIZE MEM_DFT_STK MEM_INTERRUPT_STK MEM_SETH_STK MEM_ADAM_STK MEM_EXTRA_HASH2_PAGS2 MEM_FREE_PAG_HASH_SIZE0x100 MEM_HEAP_HASH_SIZE MEM_PAG_SIZE MEM_PAG_BITS MRT_DEV MRT_RAM MRT_UNUSED HClf_LOCKED MBS_UNUSED_SIGNATURE_VAL MBS_USED_SIGNATURE_VAL _CFG_HEAP_DBG FF_USE_OLD_DATETIME FF_CONTIGUOUS FF_NEEDS_WRITE FF_BUF_DIRTY FF_NEW_FILE FFB_NEXT_BLK DFT_ISO_C_FILENAME DFT_ISO_FILENAME FF_WRITE DSK_CACHE_HASH_SIZE DRV_SIGNATURE_VAL DRVS_NUM MBR_PT_REDSEA MBR_PT_NTFS MBR_PT_FAT32f MBR_PT_FAT32e MBR_PT_FAT32d MBR_PT_FAT32c MBR_PT_FAT32b MBR_PT_FAT32a MBR_PT_FAT12 FStf_DISABLE FSG_TYPE_MASK FSt_TYPES_NUM FSt_UNKNOWN FSt_NTFS FSt_ISO9660 FSt_FAT32 FSt_REDSEA FSt_NULL DVlf_LOCKED BD_SIGNATURE_VAL BLKDEVS_NUM BDlf_LOCKED BDf_EXT_SIZE BDf_INIT_IN_PROGRESS7 BDf_FMT BDf_READ_CACHE BDf_LAST_WAS_WRITE BDf_READ_ONLY_OVERRIDE3 BDf_READ_ONLY BDf_INITIALIZED BDf_REMOVABLE BDF_EXT_SIZE BDF_INIT_IN_PROGRESS0x080 BDF_FMT BDF_READ_CACHE BDF_LAST_WAS_WRITE BDF_READ_ONLY_OVERRIDE0x008 BDF_READ_ONLY BDF_INITIALIZED BDF_REMOVABLE BDT_TYPES_NUM BDT_ATAPI BDT_ISO_FILE_WRITE BDT_ISO_FILE_READ BDT_ATA BDT_RAM BDT_NULL FUG_FILE_FIND FUG_FILES_FIND FUF_WHOLE_LABELS_AFTER0x1000000 FUF_WHOLE_LABELS_BEFORE0x0800000 FUF_WHOLE_LABELS FUF_FLATTEN_TREE FUF_SCAN_PARENTS FUF_CLUS_ORDER FUF_Z_OR_NOT_Z FUF_JUST_GR FUF_JUST_JIT FUF_JUST_AOT FUF_JUST_SRC FUF_JUST_DD FUF_JUST_TXT FUF_JUST_FILES FUF_JUST_DIRS FUF_SINGLE FUF_EXPAND FUF_MAP FUF_PUBLIC FUF_RISKY FUF_REPLACE FUF_CANCEL FUF_ALL FUF_IGNORE FUF_DEL FUF_DIFF FUF_RECURSE FUf_WHOLE_LABELS_AFTER24 FUf_WHOLE_LABELS_BEFORE23 FUf_WHOLE_LABELS FUf_FLATTEN_TREE FUf_Z_OR_NOT_Z FUf_JUST_GR FUf_JUST_JIT FUf_JUST_AOT FUf_JUST_SRC FUf_JUST_DD FUf_JUST_TXT FUf_JUST_FILES FUf_JUST_DIRS FUf_SINGLE FUf_EXPAND FUf_MAP FUf_PUBLIC FUf_RISKY FUf_REPLACE FUf_CANCEL FUf_ALL FUf_IGNORE FUf_DEL FUf_DIFF FUf_RECURSE CDIR_SIZE RS_ATTR_FIXED RS_ATTR_CONTIGUOUS RS_ATTR_COMPRESSED RS_ATTR_RESIDENT RS_ATTR_DELETED RS_ATTR_LONG_NAME_MASK RS_ATTR_L RS_ATTR_LONG_NAME RS_ATTR_ARCHIVE RS_ATTR_DIR RS_ATTR_VOL_ID RS_ATTR_SYSTEM RS_ATTR_HIDDEN RS_ATTR_READ_ONLY MT_DVD MT_CD ISOT_TERMINATOR ISOT_VOL_DRV_DESC ISOT_SUPPLEMENTARY_DESC2 ISOT_PRI_VOL_DESC ISOT_BOOT_RECORD FUf_SCAN_PARENTS FUf_CLUS_ORDER CDIR_FILENAME_LEN FAT32_ENTRIES_BITS FAT32_ENTRIES_PER_BLK BLK_SIZE INVALID_CLUS DVD_BOOT_LOADER_SIZEDVD_BLK_SI DVD_BLK_SIZE BLK_SIZE BLK_SIZE_BITS FILEMASK_GR FILEMASK_TXT FILEMASK_DD FILEMASK_SRC FILEMASK_AOT FILEMASK_JIT ATAR1_CTRL ATAR0_CMD ATAR0_STAT ATAR0_SEL ATAR0_HCYL ATAR0_LCYL ATAR0_SECT ATAR0_NSECT ATAR0_FEAT ATAR0_DATA ATAS_BSY ATAS_DRDY ATAS_DF ATAS_DRQ ATAS_ERR ATA_ID_DEV ATA_WRITE_MULTI_EXT ATA_WRITE_MULTI ATA_READ_MULTI_EXT ATA_READ_MULTI ATA_SET_MAX_EXT ATA_SET_MAX ATA_READ_NATIVE_MAX_EXT0x27 ATA_READ_NATIVE_MAX ATA_PACKET ATA_DEV_RST ATA_NOP CCF_DONT_MAKE_RES CCF_CLASS_DOL_OFFSET0x40000000 CCf_PAREN CCF_PAREN CCF_NO_ABSS CCf_AOT_COMPILE CCF_AOT_COMPILE CCF_LAST_WAS_DOT CCf_USE_LAST_U16 CCF_USE_LAST_U16 CCF_RAX CCF_ARRAY CCF_PREDEC CCF_PREINC CCF_POSTDEC CCF_POSTINC CCf_FUN_EXP CCF_FUN_EXP CCF_LOCAL CCF_UNRESOLVED CCF_ASM_EXPRESSIONS CCF_HAS_RETURN CCF_HAS_MISC_DATA CCF_EXE_BLK CCF_IN_QUOTES CCF_NO_REG_OPT CCF_NOT_CONST CCf_PASS_TRACE_PRESENT12 CCF_NO_CHAR_CONST CCF_KEEP_AT_SIGN CCF_KEEP_SIGN_NUM CCF_KEEP_DOT CCF_KEEP_NEW_LINES CCF_JUST_LOAD CCF_IN_IF CCF_NO_DEFINES CCF_DONT_FREE_BUF CCF_QUESTION_HELP CCf_PMT CCF_PMT CCF_CMD_LINE TK_TKS_NUM TK_INS_BIN_SIZE TK_INS_BIN TK_ELLIPSIS TK_DOT_DOT TK_MOD_EQU TK_ELSE TK_ENDIF TK_IFJIT TK_IFAOT TK_IFNDEF TK_IFDEF TK_IF TK_SUB_EQU TK_ADD_EQU TK_XOR_EQU TK_OR_EQU TK_AND_EQU TK_DIV_EQU TK_MUL_EQU TK_SHR_EQU TK_SHL_EQU TK_XOR_XOR TK_OR_OR TK_AND_AND TK_GREATER_EQU TK_LESS_EQU TK_NOT_EQU TK_EQU_EQU TK_SHR TK_SHL TK_DBL_COLON TK_DEREFERENCE TK_MINUS_MINUS TK_PLUS_PLUS TK_F64 TK_CHAR_CONST TK_I64 TK_STR TK_IDENT TK_NORMALSCRIPT TK_SUBSCRIPT TK_SUPERSCRIPT TK_EOF LFSF_DEFINE LFSF_DOC __DIR__ __FILE__ __CMD_LINE__ __LINE__ __TIME__ __DATE__ AAT_SUB_U64 AAT_ADD_U64 AAT_SUB_U32 AAT_ADD_U32 AAT_SUB_U16 AAT_ADD_U16 AAT_SUB_U8 AAT_ADD_U8 IEF_GOTO_LABEL OCF_ALIAS ARGT_XMM0 ARGT_XMM128 ARGT_XMM64 ARGT_XMM32 ARGT_XMM ARGT_MM64 ARGT_MM32 ARGT_MM ARGT_STI ARGT_ST0 ARGT_CS ARGT_GS ARGT_FS ARGT_ES ARGT_DS ARGT_SS ARGT_SREG ARGT_DX ARGT_CL ARGT_RAX ARGT_EAX ARGT_AX ARGT_AL ARGT_MOFFS64 ARGT_MOFFS32 ARGT_MOFFS16 ARGT_MOFFS8 ARGT_M32N32 ARGT_M16N16 ARGT_M16N32 ARGT_M1632 ARGT_M64 ARGT_M32 ARGT_M16 ARGT_M8 ARGT_RM64 ARGT_RM32 ARGT_RM16 ARGT_RM8 ARGT_R64 ARGT_R32 ARGT_R16 ARGT_R8 ARGT_UIMM64 ARGT_UIMM32 ARGT_UIMM16 ARGT_UIMM8 ARGT_IMM64 ARGT_IMM32 ARGT_IMM16 ARGT_IMM8 ARGT_REL32 ARGT_REL16 ARGT_REL8 ARGT_NONE OM_ID OM_IW OM_IB OM_CP OM_CD OM_CW OM_CB OM_NO AOT_BIN_BLK_SIZE AOT_BIN_BLK_BITS REGG_LOCAL_NON_PTR_VARS0x3000 REGG_LOCAL_VARS REGG_STK_TMP REGG_SAVED REGG_CLOBBERED REG_UNDEF REG_ALLOC REG_NONE REG_RIP REG_REGS_NUM REG_R8 REG_RDI REG_RSI REG_RBP REG_RSP REG_RBX REG_RDX REG_RCX REG_RAX POP_REGS PUSH_REGS POP_C_REGS PUSH_C_REGS OC_NOP2 OC_JMP_REL8 OC_CALL OC_BPT OC_NOP OC_LOCK_PREFIX OC_ADDR_SIZE_PREFIX OC_OP_SIZE_PREFIX SV_NONE SV_STI_LIKE SV_I_REG SV_R_REG IEF_ENDING_ZERO IEF_STI_LIKE IEF_REX_XOR_LIKE IEF_REX_ONLY_R8_R15 IEF_48_REX IEF_NOT_IN_64_BIT IEF_DFT IEF_DONT_SWITCH_MODES0x008 IEF_PLUS_OPCODE IEF_OP_SIZE32 IEF_OP_SIZE16 CM_CONSTS_NUM CMF_U16_JMP_TABLE CMF_I16_JMP_TABLE CMF_U8_JMP_TABLE CMF_I8_JMP_TABLE CMF_DEFINED CMF_POP_CMP CMT_HASH_ENTRY CMT_ARRAY_DIM CMT_FLOAT_CONSTS CMT_JMP_TABLE CMT_STR_CONST CMT_GOTO_LABEL CMT_ASM_LABEL CMT_LABEL ECF_HAS_PUSH_CMP IC_BODY_SIZE ICG_NO_CVT_MASK ICF_DONT_RESTORE ICF_PREV_DELETED ICF_DEL_PREV_INS ICF_NO_RIP ICf_LOCK ICF_LOCK ICF_ALT_TEMPLATE ICf_DONT_POP_FLOAT0 ICf_DONT_PUSH_FLOAT021 ICF_SWAP ICF_POP_CMP ICF_PUSH_CMP ICF_ARG2_WAS_STK ICF_ARG1_WAS_STK ICF_RES_WAS_STK ICF_PASS_TRACE ICF_PUSH_RES ICF_SHORT_JMP ICF_BY_VAL ICF_CODE_FINAL ICF_RES_NOT_USED ICF_USE_INT ICF_USE_UNSIGNED ICF_USE_F64 ICF_ARG2_TO_INT ICF_ARG2_TO_F64 ICF_ARG1_TO_INT ICF_ARG1_TO_F64 ICF_RES_TO_INT ICF_RES_TO_F64 MDG_REG_DISP_SIB_RIP MDF_REG MDG_DISP_SIB_RIP MDG_REG_DISP_SIB MDG_MASK MDF_RIP_DISP32 MDF_SIB MDF_DISP MDF_REG MDF_IMM MDF_STK MDF_NULL MDf_RIP_DISP32 MDf_SIB MDf_DISP MDf_REG MDf_IMM MDf_STK RTG_MASK RTF_UNSIGNED RT_RTS_NUM RT_UF64 RT_F64 RT_UF32 RT_F32 RT_U64 RT_PTR RT_I64 RT_U32 RT_I32 RT_U16 RT_I16 RT_U8 RT_I8 RT_U0 RT_I0 OPTF_ECHO OPTf_USE_IMM64 OPTf_NO_BUILTIN_CONST0x24 OPTf_GLBLS_ON_DATA_HEAP0x23 OPTf_NO_REG_VAR OPTf_KEEP_PRIVATE OPTf_EXTERNS_TO_IMPORTS0x20 OPTf_WARN_HEADER_MISMATCH0x13 OPTf_WARN_DUP_TYPES OPTf_WARN_PAREN OPTf_WARN_UNUSED_VAR0x10 OPTf_TRACE OPTf_ECHO ACD_FILLINS_NUM ACD_EXTRA_CHAR ACD_POS_CHAR ACD_PRONUNCIATION_CHAR0x03 ACD_DEF_CHAR ACD_WORD_CHAR ACD_END_CHAR ACD_BLK_SIZE ACD_EXTRA_END ACD_EXTRA ACD_POS_END ACD_POS ACD_PRONUNCIATION_END5 ACD_PRONUNCIATION ACD_DEF_END ACD_DEF ACD_H1_END ACD_H1 ACD_DEF_FILENAME_Z ACD_DEF_FILENAME ACD_WORD_FILENAME AC_FILLINS_NUM ACf_INIT_IN_PROGRESS0 WINMGR_PERIOD WINMGR_FPS WIf_FOCUS_TASK_GRAB_SCROLL25 WIf_FOCUS_TASK_BORDER24 WIf_FOCUS_TASK_MS_WHEEL23 WIf_FOCUS_TASK_MS_R_D22 WIf_FOCUS_TASK_MS_R WIf_FOCUS_TASK_MS_L_D20 WIf_FOCUS_TASK_MS_L WIf_FOCUS_TASK_CTRLS18 WIf_FOCUS_TASK_MENU WIf_SELF_KEY_DESC WIf_SELF_ODE WIf_SELF_DOC WIf_SELF_GRAB_SCROLL9 WIf_SELF_BORDER WIf_SELF_MS_WHEEL WIf_SELF_MS_R WIf_SELF_MS_L WIf_SELF_CTRLS WIf_SELF_FOCUS WIG_USER_TASK_DFT WIG_NO_FOCUS_TASK_DFT WIG_TASK_ WIG_TASK_DFT WIG_DBL_CLICK WIF_FOCUS_TASK_GRAB_SCROLL0x02000000 WIF_FOCUS_TASK_BORDER0x01000000 WIF_FOCUS_TASK_MS_WHEEL0x00800000 WIF_FOCUS_TASK_MS_R_D0x00400000 WIF_FOCUS_TASK_MS_R WIF_FOCUS_TASK_MS_L_D0x00100000 WIF_FOCUS_TASK_MS_L WIF_FOCUS_TASK_CTRLS0x00040000 WIF_FOCUS_TASK_MENU WIF_SELF_KEY_DESC WIF_SELF_ODE WIF_SELF_DOC WIF_SELF_GRAB_SCROLL0x0200 WIF_SELF_BORDER WIF_SELF_MS_WHEEL WIF_SELF_MS_R WIF_SELF_MS_L WIF_SELF_CTRLS WIF_SELF_FOCUS RECALCF_TO_HTML RECALCF_ADD_CURSOR RECALCF_HAS_CURSOR RECALCG_MASK RECALCt_TO_SCRN RECALCt_FIND_CURSOR RECALCt_NORMAL DOC_SIGNATURE_VAL DOCM_CANCEL DOClf_LOCKED DOCf_UNDO_DIRTY DOCf_SUBSCRIPT_MODE DOCf_SUPERSCRIPT_MODE34 DOCf_IN_DOLLAR DOCf_OVERSTRIKE DOCf_UNDERLINE DOCf_SEL DOCf_INVERT DOCf_BLINK DOCf_WORD_WRAP DOCf_HIGHLIGHT DOCf_BREAK_UNLOCKED DOCf_DO_FULL_REFRESH21 DOCf_DONT_SWAP_OUT DOCf_NULL_GRAB_SCROLL19 DOCf_BWD_MOVEMENT DOCf_MORE DOCf_HAS_SONG DOCf_DONT_SHOW DOCf_ALLOW_UNDO DOCf_NO_SCROLL_BARS DOCf_DONT_HIGHLIGHT_CURSOR12 DOCf_HIDE_CURSOR DOCf_SIZE_MIN DOCf_FORM DOCf_BORDER_DOC DOCf_COLOR_NAMES DOCf_DBL_DOLLARS DOCf_CARRIAGE_RETURN4 DOCf_NO_CURSOR DOCf_AUTO_SAVE DOCf_PLAIN_TEXT_TABS1 DOCf_PLAIN_TEXT DOCF_UNDO_DIRTY DOCF_SUBSCRIPT_MODE DOCF_SUPERSCRIPT_MODE0x40000000 DOCF_IN_DOLLAR DOCF_OVERSTRIKE DOCF_UNDERLINE DOCF_SEL DOCF_INVERT DOCF_BLINK DOCF_WORD_WRAP DOCF_HIGHLIGHT DOCF_BREAK_UNLOCKED DOCF_DO_FULL_REFRESH0x200000 DOCF_DONT_SWAP_OUT DOCF_NULL_GRAB_SCROLL0x80000 DOCF_BWD_MOVEMENT DOCF_MORE DOCF_HAS_SONG DOCF_DONT_SHOW DOCF_ALLOW_UNDO DOCF_NO_SCROLL_BARS DOCF_DONT_HIGHLIGHT_CURSOR0x1000 DOCF_HIDE_CURSOR DOCF_SIZE_MIN DOCF_FORM DOCF_BORDER_DOC DOCF_COLOR_NAMES DOCF_DBL_DOLLARS DOCF_CARRIAGE_RETURN0x10 DOCF_NO_CURSOR DOCF_AUTO_SAVE DOCF_PLAIN_TEXT_TABS0x2 DOCF_PLAIN_TEXT EDf_WAS_WRITE EDf_UNCOLLAPSE EDf_COLLAPSE EDf_BAIL EDF_WAS_WRITE EDF_UNCOLLAPSE EDF_COLLAPSE EDF_BAIL DOF_DONT_SHOW DOF_DONT_WINMGR_SYNC0x20 DOF_INTERCEPT_TASK_END0x02 DOF_SIZE_MIN DOF_WIN_MAX DOF_DONT_HOME DOCE_LEN_DFT DOC_DFT DOF_DONT_TEXT_ATTR DOC_COLOR_REG DOC_COLOR_KEYWORD DOC_COLOR_FUN DOC_COLOR_CLASS DOC_COLOR_GLBL_VAR DOC_COLOR_DEFINE_STRCYAN DOC_COLOR_EXPORT_SYS_SYMLTPURPLE DOC_COLOR_CHAR_CONSTBROWN DOC_COLOR_STR DOC_COLOR_BIN DOC_COLOR_COMMENT DOC_COLOR_PMT DOC_COLOR_TREE DOC_COLOR_ANCHOR DOC_COLOR_MACRO DOC_COLOR_LINK DOC_COLOR_ALT_TEXT DOC_ATTR_DFT_TEXT DOCSS_CPP_Z_COMMENT DOCSS_COMMENT DOCSS_DBL_QUOTE DOCSS_SINGLE_QUOTE DOCSS_NORMAL DOC_SCROLL_SPEED DOCEf_FLAGS_NUM DOCEf_DFT_RAW_TYPE DOCEf_DFT_LEN DOCEf_DONT_DRAW DOCEf_NO_CLICK_ON DOCEf_FILTER_SKIP DOCEf_SKIP_IN_FORM DOCEf_POPUP DOCEf_SKIP DOCEf_LST DOCEf_TREE DOCEf_HOLD DOCEf_ZERO_BASED DOCEf_HAS_TERMINATOR49 DOCEf_REMALLOC_DATA DOCEf_DEREF_DATA DOCEf_UPDATE_DATA DOCEf_REFRESH_DATA DOCEf_CHECK_COLLAPSABLE44 DOCEf_CHECKED_COLLAPSED43 DOCEf_BORDER_PLOT DOCEf_SOLID_BORDER DOCEf_HAS_BORDER DOCEf_FROM_START DOCEf_QUIT DOCEf_ESC DOCEf_LINK DOCEf_WIN_REL DOCEf_MARGIN_REL_X DOCEf_PAGE_REL_Y DOCEf_TAG_CB DOCEf_BOTTOM_Y DOCEf_CENTER_Y DOCEf_TOP_Y DOCEf_RIGHT_X DOCEf_CENTER_X DOCEf_LEFT_X DOCEf_RIGHT_IN_STR DOCEf_RIGHT_CB DOCEf_LEFT_IN_STR DOCEf_LEFT_CB DOCEf_USER_DATA DOCEf_SCROLLING_X DOCEf_SHIFTED_Y DOCEf_SHIFTED_X DOCEf_RAW_TYPE DOCEf_BIN_PTR_LINK DOCEf_HAS_BIN DOCEf_RIGHT_MACRO DOCEf_RIGHT_EXP DOCEf_LEFT_MACRO DOCEf_LEFT_EXP DOCEf_HTML_LINK DOCEf_DEFINE DOCEf_AUX_STR DOCEf_LEN DOCEf_TAG DOCEf_UNDERLINE DOCEf_SEL DOCEf_INVERT DOCEf_BLINK DOCEf_WORD_WRAP DOCEf_HIGHLIGHT DOCEF_UNDERLINE DOCEF_SEL DOCEF_INVERT DOCEF_BLINK DOCEF_WORD_WRAP DOCEF_HIGHLIGHT DOCEG_DONT_EDIT DOCEG_HAS_ARG DOCEG_HAS_ALLOC DOCEF_DFT_RAW_TYPE DOCEF_DFT_LEN DOCEF_DONT_DRAW DOCEF_NO_CLICK_ON DOCEF_FILTER_SKIP DOCEF_SKIP_IN_FORM DOCEF_POPUP DOCEF_SKIP DOCEF_LST DOCEF_TREE DOCEF_HOLD DOCEF_ZERO_BASED DOCEF_HAS_TERMINATOR0x20000000 DOCEF_REMALLOC_DATA DOCEF_DEREF_DATA DOCEF_UPDATE_DATA DOCEF_REFRESH_DATA DOCEF_CHECK_COLLAPSABLE0x10000000 DOCEF_CHECKED_COLLAPSED0x80000000 DOCEF_BORDER_PLOT DOCEF_SOLID_BORDER DOCEF_HAS_BORDER DOCEF_FROM_START DOCEF_QUIT DOCEF_ESC DOCEF_LINK DOCEF_WIN_REL DOCEF_MARGIN_REL_X DOCEF_PAGE_REL_Y DOCEF_TAG_CB DOCEF_BOTTOM_Y DOCEF_CENTER_Y DOCEF_TOP_Y DOCEF_RIGHT_X DOCEF_CENTER_X DOCEF_LEFT_X DOCEF_RIGHT_IN_STR DOCEF_RIGHT_CB DOCEF_LEFT_IN_STR DOCEF_LEFT_CB DOCEF_USER_DATA DOCEF_SCROLLING_X DOCEF_SHIFTED_Y DOCEF_SHIFTED_X DOCEF_RAW_TYPE DOCEF_BIN_PTR_LINK DOCEF_HAS_BIN DOCEF_RIGHT_MACRO DOCEF_RIGHT_EXP DOCEF_LEFT_MACRO DOCEF_LEFT_EXP DOCEF_HTML_LINK DOCEF_DEFINE DOCEF_AUX_STR DOCEF_LEN DOCEF_TAG DOCG_DBL_BUF_FLAGS DOCEt_UNDERLINE DOCEt_SEL DOCEt_INVERT DOCEt_BLINK DOCG_BL_IV_UL DOCET_UNDERLINE DOCET_SEL DOCET_INVERT DOCET_BLINK DOCT_TYPES_NUM DOCT_ERROR DOCT_HTML_CODE DOCT_SONG DOCT_INS_BIN_SIZE DOCT_INS_BIN DOCT_SPRITE DOCT_TREE DOCT_HEX_ED DOCT_MENU_VAL DOCT_MACRO DOCT_LST DOCT_CHECK_BOX DOCT_DATA DOCT_BTTN DOCT_LINK DOCT_ANCHOR DOCT_CURSOR_MOVEMENT26 DOCT_SHIFTED_Y DOCT_SHIFTED_X DOCT_UNDERLINE DOCT_INVERT DOCT_BLINK DOCT_HIGHLIGHT DOCT_WORD_WRAP DOCT_DFT_BACKGROUND DOCT_DFT_FOREGROUND DOCT_BACKGROUND DOCT_FOREGROUND DOCT_INDENT DOCT_FOOTER DOCT_HEADER DOCT_RIGHT_MARGIN DOCT_LEFT_MARGIN DOCT_PAGE_LEN DOCT_CLEAR DOCT_PMT DOCT_MARKER DOCT_CURSOR DOCT_PAGE_BREAK DOCT_TAB DOCT_SOFT_NEW_LINE DOCT_NEW_LINE DOCT_TEXT ATTRf_UNDERLINE ATTRf_SEL ATTRf_INVERT ATTRf_BLINK ATTRF_UNDERLINE ATTRF_SEL ATTRF_INVERT ATTRF_BLINK GVF_ALIAS GVF_DATA_HEAP GVF_EXTERN GVF_IMPORT GVF_FUN Ff_RET1 Ff_DOT_DOT_DOT Ff__EXTERN Ff_INTERNAL Ff_NOARGPOP Ff_ARGPOP Ff_HASERRCODE Ff_INTERRUPT Cf_INTERNAL_TYPE Cf_EXTERN MLMF_IS_STR GVF_ARRAY MLF_STATIC MLF_NO_UNUSED_WARN MLF_DOT_DOT_DOT MLF_FUN MLF_STR_DFT_AVAILABLE4 MLF_LASTCLASS MLF_DFT_AVAILABLE PTR_STARS_NUM REGT_XMM REGT_MM REGT_FSTK REGT_SEG REGT_R64 REGT_R32 REGT_R16 REGT_R8 REGT_NONE KERNEL_MODULE_NAME HTG_ALL HTG_SRC_SYM HTG_FLAGS_MASK HTF_LOCAL HTF_UNRESOLVED HTF_RESOLVE HTF_GOTO_LABEL HTF_IMM HTF_IMPORT HTF_EXPORT HTF_PUBLIC HTF_PRIVATE HTG_TYPE_MASK HTT_FRAME_PTR HTT_HELP_FILE HTT_MODULE HTT_FILE HTT_REG HTT_OPCODE HTT_ASM_KEYWORD HTT_KEYWORD HTT_DICT_WORD HTT_WORD HTT_FUN HTT_INTERNAL_TYPE HTT_CLASS HTT_GLBL_VAR HTT_DEFINE_STR HTT_IMPORT_SYS_SYM HTT_EXPORT_SYS_SYM HTT_INVALID HTf_LOCAL HTf_UNRESOLVED HTf_RESOLVED HTf_GOTO_LABEL HTf_IMM HTf_IMPORT HTf_EXPORT HTf_PUBLIC HTf_PRIVATE HTt_TYPES_NUM HTt_FRAME_PTR HTt_HELP_FILE HTt_MODULE HTt_FILE HTt_REG HTt_OPCODE HTt_ASM_KEYWORD HTt_KEYWORD HTt_DICT_WORD HTt_WORD HTt_FUN HTt_INTERNAL_TYPE HTt_CLASS HTt_GLBL_VAR HTt_DEFINE_STR HTt_IMPORT_SYS_SYM HTt_EXPORT_SYS_SYM CTRL_ALT_TAB CTRL_ALT_X CTRL_ALT_C CTRL_ALT_DEL SEMA_SEMAS_NUM SEMA_FIX SEMA_TMBEAT SEMA_JUST_PUMP_MSGS SEMA_MUTE SEMA_TT SEMA_UPDATE_WIN_Z_BUF15 SEMA_VGA SEMA_DEV_MEM SEMA_FAR_CALL32 SEMA_DSK_CACHE SEMA_SINGLE_USER SEMA_FLUSH_VGA_IMAGE9 SEMA_REFRESH_IN_PROGRESS8 SEMA_HEAPLOG_LOCK SEMA_HEAPLOG_ACTIVE SEMA_SND SEMA_DBG_MODE SEMA_SYS_DATE SEMA_SYS_TIMER SEMA_RECORD_MACRO SEMA_DEBUG DFT_CACHE_LINE_WIDTH128 EXT_EXTS_NUM EXT_DBG_RESUME EXT_HEAPLOG_FREE EXT_HEAPLOG_MALLOC EXT_WIN_FOCUS EXT_WIN_TO_TOP SF_ARG8 SF_ARG7 SF_ARG6 SF_ARG5 SF_ARG4 SF_ARG3 SF_ARG2 SF_ARG1 SF_RIP SF_RBP SYS_TIMER0_PERIOD SYS_TIMER_FREQ CDATE_FREQ JIFFY_FREQ HPET_MAIN_CNT HPET_GEN_CONF HPET_GCAP_ID IA32_GS_BASE IA32_FS_BASE IA32_EFER IA32_LAPIC_BASE IA32F_LME IA32F_SCE IOREDTAB IOAPICARB IOAPICVER IOAPICID IOAPIC_DATA IOAPIC_REG MP_VECT_ADDR MPN_VECT LAPIC_LVT_ERR LAPIC_LVT_LINT1 LAPIC_LVT_LINT0 LAPIC_LVT_PERF LAPIC_LVT_THERMAL LAPIC_LVT_TIMER LAPIC_ICR_HIGH LAPIC_ICR_LOW LAPIC_IRR LAPIC_TMR LAPIC_ISR LAPIC_SVR LAPICF_APIC_ENABLED LAPIC_LDR LAPIC_DFR LAPIC_LOG_DST LAPIC_EOI LAPIC_PROCESSOR_PRIORITY LAPIC_BAS LAPIC_ARIBITRATION_PRIORITY LAPIC_BAS LAPIC_TASK_PRIORITY LAPIC_APIC_VERSION LAPIC_APIC_ID LAPIC_BASE RLF_ONCE_USER RLF_ONCE_ADAM RLF_ADAM_SERVER RLF_AUTO_COMPLETE RLF_HOME RLF_REGISTRY RLF_WINMGR RLF_DOC RLF_COMPILER RLF_MP RLF_BLKDEV RLF_INTERRUPTS RLF_RAW RLF_FULL_HEAPS RLF_16MEG_ADAM_HEAP_CTRL0x000040 RLF_64BIT RLF_16MEG_SYS_CODE_BP0x000010 RLF_PATCHED RLF_32BIT RLF_VGA RLF_16BIT RLf_ONCE_USER RLf_ONCE_ADAM RLf_ADAM_SERVER RLf_AUTO_COMPLETE RLf_HOME RLf_REGISTRY RLf_WINMGR RLf_DOC RLf_COMPILER RLf_MP RLf_BLKDEV RLf_INTERRUPTS RLf_RAW RLf_FULL_HEAPS RLf_16MEG_ADAM_HEAP_CTRL6 RLf_64BIT RLf_16MEG_SYS_CODE_BP4 RLf_PATCHED RLf_32BIT RLf_VGA RLf_16BIT IET_MAIN IET_ZEROED_DATA_HEAP24 IET_DATA_HEAP IET_ZEROED_CODE_HEAP22 IET_CODE_HEAP IET_ABS_ADDR IET_IMM64_EXPORT IET_REL64_EXPORT IET_IMM32_EXPORT IET_REL32_EXPORT IEF_IMM_NOT_REL IET_IMM_I64 IET_REL_I64 IET_IMM_U32 IET_REL_I32 IET_IMM_U16 IET_REL_I16 IET_IMM_U8 IET_REL_I8 IET_IMM_U0 IET_REL_I0 IET_END BIN_SIGNATURE_VAL LDF_SILENT LDF_JUST_LOAD LDF_NO_ABSS MEM_E820_ENTRIES_NUM48 RFLAGG_NORMAL RFLAGG_START RFLAGf_ID RFLAGf_VINT_PENDING RFLAGf_ALIGN_CHECK RFLAGf_V8086 RFLAGf_RESUME RFLAGf_NESTED_TASK RFLAGf_IOPL1 RFLAGf_IOPL0 RFLAGf_OVERFLOW RFLAGf_DIR RFLAGf_INT RFLAGf_TRAP RFLAGf_SIGN RFLAGf_ZERO RFLAGf_AUX_CARRY RFLAGf_PARITY RFLAGf_CARRY SYS_START_CR0 MP_PROCESSORS_NUM I_USER I_DBG I_WAKE I_MP_CRASH I_TIMER I_PAGE_FAULT I_BPT I_NMI I_SINGLE_STEP I_DIV_ZERO IDTET_TRAP IDTET_IRQ IDTET_TASK ODEf_BUSY ODEf_STARTED ODEf_PAUSED ODEf_HAS_MASSES ODEF_BUSY ODEF_STARTED ODEF_PAUSED ODEF_HAS_MASSES SSF_NO_TENSION SSF_NO_COMPRESSION SSF_INACTIVE MSF_FIXED MSF_INACTIVE CDATE_BASE_DAY_OF_WEEK0 CDATE_YEAR_DAYS_INT CDATE_YEAR_DAYS QUE_VECT_U8_CNT RFLAGf_VINT eps sqrt2 loge_2 log10_2 log2_e log2_10 exp_1 pi pi inf inf F64_MIN F64_MAX U64_F64_MAX STR_LEN INVALID_PTR U64_MAX I64_MIN U32_MAX U32_MIN I32_MAX I32_MIN U16_MAX U16_MIN I16_MAX I16_MIN U8_MAX U8_MIN I8_MAX I8_MIN OFF ON FALSE TRUE NULL U64_MIN I64_MAX ST_FSTK_REGS ST_SEG_REGS ST_ARG_TYPES ST_XMM_REGS ST_MM_REGS ST_U64_REGS ST_U32_REGS ST_U16_REGS ST_U8_REX_REGS ST_U8_REGS ST_TY_TYPES ST_INT_SIZE_TYPES ST_NATURAL_TYPES ST_RAW_TYPES ST_INT_NAMES ST_COLORS ST_DRV_TYPES ST_BLKDEV_TYPES ST_FILE_UTIL_FLAGS ST_FILE_ATTRS ST_MONTHS ST_DAYS_OF_WEEK ST_HTT_TYPES ST_OFF_ON
+
+syn keyword holycFunction Fs Gs ToI64 ToF64 ToBool ToUpper Push Pop CLFlush InvlPg InU8 InU16 InU32 OutU8 OutU16 OutU32 GetRFlags Carry SetRFlags GetRAX SetRAX GetRBP SetRBP GetRSP SetRSP GetTSC Bt Bts Btr Btc LBts LBtr LBtc Bsf Bsr QueInit QueIns QueInsRev QueRem StrLen SwapU8 SwapU16 SwapU32 SwapI64 AbsI64 SignI64 MinI64 MinU64 MaxI64 MaxU64 ModU64 SqrI64 SqrU64 Sqr Abs Sqrt Sin Cos Tan ATan D3Norm D3NormSqr D3Dist D3DistSqr D3Cross D3Dot D3Add D3Sub D3Mul D3Div D3Zero D3Copy D3Equ D3AddEqu D3SubEqu D3MulEqu D3DivEqu D3Unit Sign Arg Round Trunc Floor Ceil Pow Pow10 Exp Log10 Log2 Ln MemSet MemSetU8 MemSetU16 MemSetU32 MemSetI64 MemCpy MemCmp BEqu LBEqu ClampI64 ClampU64 Call BFieldOrU32 BFieldExtU32 XchgI64 XchgU32 XchgU16 XchgU8 LXchgI64 LXchgU32 LXchgU16 LXchgU8 RepInU32 RepInU16 RepInU8 RepOutU32 RepOutU16 RepOutU8 CPUId CallInd CallExtNum CallExtStr SetMSR SysHlt StrCpy StrCmp StrICmp StrNCmp StrNICmp StrMatch StrIMatch LstSub LstMatch StrOcc Spaces2Tabs StrUtil StrFirstOcc StrFirstRem StrLastOcc StrLastRem StrFind WildMatch Clamp Min Max Pow10I64 FloorU64 CeilU64 RoundI64 FloorI64 CeilI64 RandI16 RandU16 RandI32 RandU32 RandI64 RandU64 Rand Seed Yield TaskQueIns TaskQueRem MemPageTable MemPagAlloc MemPagFree BlkPoolAdd BlkPoolInit MAlloc Free MSize MSize2 MHeapCtrl AMAlloc CAlloc ACAlloc MAllocIdent AMAllocIdent MAllocAligned CAllocAligned StrNew AStrNew HeapCtrlInit HeapCtrlDel Mem32DevAlloc Mem32DevFree Mem64DevAlloc Mem64DevFree Scale2Mem Tabs2Spaces ScaleIndent MStrUtil GetOutOfDollar YorN PressAKey AreYouSure Help ScanFlags StrPrintFlags HashStr HashFind HashSingleTableFind HashBucketFind HashAdd HashAddAfter HashRemDel IntEntryGet IntEntrySet LinkedLstDel LinkedLstCopy LinkedLstCnt LinkedLstSize QueDel QueCopy QueCnt QueSize QueVectU8New QueVectU8Put QueVectU8Del QueVectU8Get FifoU8New FifoU8Del FifoU8Ins FifoU8Rem FifoU8Peek FifoU8Flush FifoU8Cnt FifoI64New FifoI64Del FifoI64Ins FifoI64Rem FifoI64Peek FifoI64Flush FifoI64Cnt ArcCompressBuf ArcFinishCompression000001089B ArcExpandBuf ArcCtrlNew ArcCtrlDel ExpandBuf CompressBuf HashTypeNum HashVal HashTableNew HashDel HashTableDel HashTablePurge HashGenericAdd HashSrcFileSet HashPublic HashLstAdd HashDefineLstAdd FramePtr FramePtrAdd FramePtrSet FramePtrDel YearStartDate Struct2Date DayOfWeek Date2Struct FirstDayOfMon LastDayOfMon FirstDayOfYear LastDayOfYear Now StrPrintJoin StrPrint CatPrint Print MStrPrint PrintErr PrintWarn Str2I64 Str2F64 Str2Date StrScan DefineLoad DefineLstLoad Define DefineSub DefineCnt DefineMatch DefinePrint Color2Str Str2ColorU16 Str2ColorU32 RawPutChar VGAFlush WinDerivedValsUpdate000001650E WinInside PortNop EndianU16 EndianU32 EndianI64 BCnt SysTimerRead HPET tS Blink Busy SleepUntil Sleep Ona2Freq Freq2Ona Snd ScrnCast SndRst Beep Mute IsMute Silent IsSilent SysDbg IsSysDbg Raw IsRaw SingleUser IsSingleUser DbgMode IsDbgMode ProgressBarsRst ChkPtr ChkCodePtr ChkOnStk UnusedStk Caller TaskCaller StkRep CallerRep D Dm Da RawPrint RawD RawDm Dr BptS BptR B B2 G G2 S Panic Dbg PutKey PutChars KeyDescSet KeyDevRem KeyDevAdd CtrlAltCBSet PutExcept throw Break BreakLock BreakUnlock KbdTypeMatic Char2ScanCode ScanCode2Char Char2KeyName ScanCode2KeyName KbdMsEvtTime GridInit MsSet ScanMsg FlushMsgs GetMsg ScanChar ScanKey GetKey GetChar GetStr GetS QSortI64 QSort Exit TaskValidate BirthWait DeathWait Kill Suspend IsSuspended CallStkGrow Spawn TaskDerivedValsUpdate000001D72B ExeCmdLine SrvTaskCont UserTaskCont UserCmdLine User JobDel TaskRstAwaitingMsg TaskExe TaskText TaskMsg JobResScan JobResGet TaskWait PostMsg PostMsgWait Msg JobsHndlr PopUp PopUpPrint Adam AdamLog AdamErr XTalk XTalkWait InStr InFile In XTalkStr XTalkStrWait FarCall32 PCIReadU8 PCIReadU16 PCIReadU32 PCIWriteU8 PCIWriteU16 PCIWriteU32 PCIClassFind TSSBusy MPInt MPIntAll MPNMInt MPHalt JobQue EdLite ToFileLine FixSet Fix FileExtDot FileExtRem IsDotZ IsDotC FilesFindMatch DirNameAbs FileNameAbs ExtChg ExtDft FileNameChk ToggleZorNotZ FileNameTmpTxt DirCur DirFile ATARep ATAIDDrvs MountIDEAuto BlkDevLock BlkDevUnlock BlkDevsRelease BlkDevNextFreeSlot BlkDevDel BlkDevChk Let2BlkDev DrvLock DrvUnlock DrvsRelease DrvMakeFreeSlot DrvNextFreeLet DrvDel DrvChk Drv2Let Let2Let Let2BlkDevType Let2Drv DrvIsWritable DskCacheInvalidate DskChg DrvMap Drv DrvSerialNum DrvModelNum DrvTextAttrGet DrvRep BlkWriteZero BlkRead BlkWrite ClusNumNext Clus2Blk ClusBlkRead ClusRead ClusBlkWrite ClusWrite ClusAlloc DrvEnable DirNew DirEntryDel DirEntryDel2 DirTreeDel DirTreeDel2 PutFileLink PutDirLink DirContextDel DirContextNew FilesFind FileFind HomeSet Cd IsDir Dir DirMk FileRead FileWrite FSize FOpen FClose FBlkRead FBlkWrite Del DVDImageRead DVDImageWrite Fmt FunSegFind SrcLineNum SrcFileName SrcEdLink PutSrcLink E Man Reboot GodBooksPassageU32 Blog BlogDCImgWrite BlogWebFile BlogLocalFile BlogLocalDir NISTBeaconSync TOSBlogAbs BlogWebDir BlogScrnShot FreshenBlog TOSBootHDIns TOSPmtAndCopyDrv TOSHomeIn TOSRegen TOSHomeOut TOSGetDrv DC2Doc JukeLines Doc2Html TOSCopyDrv TOSSongsIn GodCodeJmp FileNameNumNext FrameGrabberToggle TOSPreRegen TOSToHtml JukeBox JukeSongsPuppet Profanity BMP2Doc DskChkAll TOSChgLog IsTOSBlog JukeSong Unix2CDate CDate2Unix RD TOSStdIns ToTXT Doc2TXT ToDolDoc R Sort ProfRep F FD2 Merge MemRep F2 FD DocOpt SU LineRep HeapLogAddrRep HeapLog Words BootMHDIns BootRAM Find BootDVDIns BootMHDOldWrite RedSeaISO BootHDIns Prof S2T FreshenSite GodIns FileOcc LongLines HostChgDsk MemPageRep MemBIOSRep MapFileLoad PopUpHelpIndex DocHelpIdx BootMHDOldRead CPURep GodBits GodSongStr BibleDoc BibleLine2Verse SettingsPush ACDWordsLoad BookLines GodWord GodWordStr GodBitsIns LinkChk GodDoodleSprite OnceExe OnceDrv OnceFlush InsRereg RegCnt InGetChar InSetMs HashDepthRep ACDDefGet SizeRep OneTimePopUp CtrlBttnNew AOnceFlush GodBiblePassage BibleView AOnce InPrint Once GodHexIns CtrlInside SettingsPop Collapse AOnceDrv InView InUntilChar ViewAnglesDel BootMHDZero CtrlBttnDel DrawGrabMs InUntilKey GodInit DocBorderNew DocTreeFExe DocTreeExe ExeDoc DocTreeFAppend DocTreeFWrite DocTreeMake Who ACDDefsGet PCIRep DocTreeAppend DocTreeWrite GodDoodle DocD DocDm DocPutLine DocPutKey RegExe InsUnreg InGetKey HeapLogSizeRep BibleVerse InGetStr RegDft DocPrint ACDWordPtAt PopUpColorLighting PopUpColor PopUpRunFile PopUpFile PopUpRangeF64Log PopUpRangeF64Exp PopUpRangeF64 PopUpRangeI64 PopUpGetF64 PopUpGetI64 PopUpNoYes PopUp2 PopUp1 PopUpPickLst PopUpFileName PopUpPickFile ACDDefsPut ACInit PopUpOk PopUpViewPrint PopUpViewDoc PopUpEd EdLinkCvt DocLinkFile DocLinkChk PopUpTransform EdGoToFun EdSelFun EdFindPaired EdFindNext PopUpGetStr DocFind Plain EdLineDown EdCursorLeft EdCurU8 DocAnchorFind AdamFile GetI64 DocCopy DocCut ClipCut ClipCopy StreamDoc DocInsDoc DocWrite DocRead DocEntryLink ViewAnglesNew FileNameForm DocTermNew PopUpPickDir NewFiles GodSong PopUpColorDither GetDate AutoComplete DocLineWrite TOSSongsOut DocGetKey DocPrintAtomic View DocGoToLine DocLoad EdSelAll DocMax DocCollapse ClipPaste DocCenter DocTop DocEntryRun DocDblBufSwap DocDblBufEnd DocDblBufStart GetF64 DocMenu DocForm DocClear DocNew DocLineRead DocInsEntry DocDel DocEntrySize DocEntryDel DocUnlock DocEd Type Uf DocRst FunRep ClassRepD ClassRep DocPut Refresh WinTileVert WinVert WinHorz WinFocus WinBorder WinScrollRestore PopUpForm WinTileHorz MenuPop MenuFile MenuNew MenuEntryFind MenuSubEntryFind EdReplace WinToTop DocSize DrvUnused FileMgr Unmount DocSave Unzip FF Size MenuDel Touch CopyTree DClus Note2Ona Beat Tri FullSaw Saw Move Copy DocType Dump FullTri SndTaskEndCB Zip DBlk tM Play FullCaw Caw DskPrt DskView MountFile Ona2Note EdCursorRight DocEntryCopy Ona2Octave DocScanLine DskChk Sprite2Code InsReg DocPrintPartial Diff DocTreeFind DirTreeUnserialize Sprite SpriteExtents Sprite3ZB Sprite3YB Sprite3XB Sprite3Mat4x4B Sprite3B EdLineUp SndShift SpriteInterpolate Gr3Mesh GrTextDiamond3 DC2Sprite GrTextBox3 SpriteElem2Summary GrBorder GrFillTri0 GrFillPoly3 Gr3BSpline3 Gr2BSpline3 GrEllipse3 GrRect3 GrVPrint3 GrPrint3 GrLine3 Gr3Bezier Gr2Bezier GrRegPoly GrEllipse GrLine GrPlot3 GrRectB GrPlot3B GRScrnCaptureRead GrPeek GrPlot GrVLine Sprite3 GrHLine Sprite2DC ZipRep GrRect GrVPrint GrPrint Code2Sprite Gr2Bezier3 DCDiff DCExt Sweep DrawWaitMs Noise GrFloodFill3 DrawStdMs DelTree WinRefocus DrvView WinMax DocLock WinScrollNull SpriteTransform GR2MV GrArrow3 GrScaleZoom GrPutChar GrPlot0 Gr2BSpline D3I32Norm D3I32Dist DCReflect GrRegPoly3 DCSymmetry3Set Ellipse GrCircle DCSymmetrySet DCThickScale Mat4x4RotZ Mat4x4RotY GrPeek0 Mat4x4New Mat4x4MulMat4x4Equ Line Bezier2 Mat4x4MulMat4x4New D3I32NormSqr Mat4x4Equ Mat4x4TranslationEqu00579D65E0 Mat4x4TranslationAdd00579D6FF8 DocHighlightCursor DocScroll DocBottom WinZBufUpdate Mat4x4Scale DocCursor DCScrnCapture DocGR GRRead GRWrite DCSave DCColorChg DCMono Mat4x4RotX DCCopy DCDepthBufRst DCDel DCAlias DCClear DCLighting Mat4x4NormSqr65536 Mat4x4IdentNew DCTransform PaletteSetStd Bezier3 IsPixCovered0 Gr3BSpline DCExtentsInit GrBlot DCMat4x4Set TextBorder GrPaletteSet GrPutChar3 DCSize Mat4x4MulXYZ Mat4x4IdentEqu TextRect DCFill GrClamp DCRst TextPrint GrPaletteColorSet GrPaletteColorGet MassFindNum SpringFind MassFind ODEDel ODESize AUWrite IsInHeap HeapCtrlWalk HeapWalk ODERenum TaskRep TaskMemUsed TaskMemAlloced CursorRem KeyMap CPoly GrPaletteGet CEqu CCopy CScale DCNew ODEPause ACos Wrap DistSqrI64 P2R BSpline2 CMul DCLoad DocSprite Mount PopUpPickDefineSub R2P Cosh BSpline3 TipOfDay MassOrSpringFind TextChar TextLenStr TextLenAttrStr TextLenAttr ASin RegPoly IsInHeapCtrl ODENew HeapRep ClipLine Circle GrFloodFill CDiv DocRecalc Sinh GrCircle3 GrFillCircle MenuFilePush MenuPush DocBorder RegAppend LexPutToken LexPutLine LexPutPos LexWarn LexExcept LexPush LexPopRestore LexPopNoRestore MemberMetaData MemberMetaFind MemberFind LexExtStr CmpCtrlNew CmpCtrlDel CmpCtrlSize LexGetChar LexSkipEol LexFirstRem LexAttachDoc Lex HashEntrySize HashEntrySize2 HashTableSize2 Ui U Un PrsKeyWord OptClassFwd LexExpression2Bin IsLexExpression2Bin LexExpressionI64 LexExpressionF64 LexExpression Option GetOption LastFun PassTrace Trace Echo StreamPrint LexD2I32 LexD3I32 LexStmt2Bin ExePutS ExePrint ExeFile RunFile ExePutS2 ExePrint2 ExeFile2 RunFile2 StreamExePrint GrBlot3 Ed Gr3Bezier3 CAdd CSub ODERstInactive DCDepthBufAlloc D3I32DistSqr GRScrnCaptureWrite SpriteSize ClipDel DirTreeSerialize FileCnt PopUpMenu DocDisplay PopUpCancelOk DocTreeFFind RegWrite CtrlFindUnique
+
+" Variables
+syn match holycVariable "[A-Za-z_][A-Za-z0-9_]*"
+
+" Preproc
+syn match holycPreProc "\#.*"
+
+" Operator
+syn match holycOperator "[-+*/%=<>!&|^~?:]+"
+
+" Delimiters
+syn match holycDelimiter "[()|&~]"
+
+" Strings
+syn region holycString start=/"/ skip=/\\[\\"]/ end=/"/
+syn region holycString start=/'/ skip=/\\[\\"]/ end=/'/
+
+" Numbers
+syn case ignore
+syn match holycNumber "-?(?:0x[\da-fA-F]+|0b[01]+|(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?)\b"
+syn case match
+
+syn match holycNumber display transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctalError,cOctal
+syn match holycNumber display contained "\d\+\%(u\=l\{0,2}\|ll\=u\)\>"
+syn match holycNumber display contained "0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>"
+syn match holycNumber display contained "0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero
+syn match holycNumber display contained "\<0"
+syn match holycNumber display contained "\d\+\.\d*\%(e[-+]\=\d\+\)\=[fl]\="
+syn match holycNumber display contained "\.\d\+\%(e[-+]\=\d\+\)\=[fl]\=\>"
+syn match holycNumber display contained "\d\+e[-+]\=\d\+[fl]\=\>"
+
+" Comments
+syn match holycCommentL "\/\/.*$"
+syn region holycComment start="/\*" end="\*/"
+
+" Highlighting
+hi def link holycType Type
+hi def link holycKeyword Statement
+hi def link holycConstant Constant
+hi def link holycFunction Function
+hi def link holycVariable Identifier
+hi def link holycDelimiter Delimiter
+hi def link holycString String
+hi def link holycNumber Number
+hi def link holycCommentL Comment
+hi def link holycComment Comment
+hi def link holycPreProc PreCondit
+hi def link holycPreProcExe PreCondit
+hi def link holycOperator Operator
+
+" File extensions
+augroup holycFileType
+ au!
+ au BufRead,BufNewFile *.HC,*.hc,*.ZC,*.zc setfiletype holyc
+augroup END
diff --git a/dotconfig/nvim/init.lua b/dotconfig/nvim/init.lua
new file mode 100644
index 0000000..7635b10
--- /dev/null
+++ b/dotconfig/nvim/init.lua
@@ -0,0 +1,2 @@
+require('slendi')
+
diff --git a/dotconfig/nvim/lua/slendi/after/fun.lua b/dotconfig/nvim/lua/slendi/after/fun.lua
new file mode 100644
index 0000000..a6ca274
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/after/fun.lua
@@ -0,0 +1,4 @@
+require'presence':setup{} -- Discord presence
+
+-- <Leader>fml - <Leader> fuck my life, when you just need a break.
+vim.keymap.set("n", "<leader>fml", "<cmd>CellularAutomaton make_it_rain<CR>")
diff --git a/dotconfig/nvim/lua/slendi/after/init.lua b/dotconfig/nvim/lua/slendi/after/init.lua
new file mode 100644
index 0000000..1412130
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/after/init.lua
@@ -0,0 +1,5 @@
+require'slendi.after.treesitter'
+require'slendi.after.telescope'
+require'slendi.after.fun'
+require'slendi.after.lsp'
+require'slendi.after.toggleterm'
diff --git a/dotconfig/nvim/lua/slendi/after/lsp.lua b/dotconfig/nvim/lua/slendi/after/lsp.lua
new file mode 100644
index 0000000..25f5979
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/after/lsp.lua
@@ -0,0 +1,97 @@
+require"mason".setup()
+require'mason-lspconfig'.setup()
+
+vim.api.nvim_create_autocmd(
+ 'BufWritePre',
+ {
+ command = 'lua vim.lsp.buf.format()',
+ pattern = '*'
+ }
+)
+
+local lspconfig = require'lspconfig'
+require'grammar-guard'.init()
+
+local function config(_config)
+ local cap = vim.lsp.protocol.make_client_capabilities()
+ cap.textDocument.completion.completionItem.snippetSupport = true
+ return vim.tbl_deep_extend("force", {
+ capabilities = require"cmp_nvim_lsp".default_capabilities(cap),
+ on_attach = function(client, bufnr)
+ --client.server_capabilities.semanticTokensProvider = nil
+ vim.keymap.set('n', "gd", function() vim.lsp.buf.definition() end, { silent = true })
+ vim.keymap.set('n', "K", function() vim.lsp.buf.hover() end, { silent = true })
+ vim.keymap.set('n', "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, { silent = true })
+ vim.keymap.set('n', "[d", function() vim.diagnostic.goto_next() end, { silent = true })
+ vim.keymap.set('n', "]d", function() vim.diagnostic.goto_prev() end, { silent = true })
+ vim.keymap.set('n', "<leader>vca", function() vim.lsp.buf.code_action() end, { silent = true })
+ vim.keymap.set('n', "<leader>vrr", function() vim.lsp.buf.references() end, { silent = true })
+ vim.keymap.set('n', "<leader>vrn", function() vim.lsp.buf.rename() end, { silent = true })
+ vim.keymap.set('i', "<C-h>", function() vim.lsp.buf.signature_help() end, { silent = true })
+ end,
+ }, _config or {})
+end
+
+-- Enable some language servers with the additional completion capabilities offered by nvim-cmp
+local servers = { 'clangd', 'rust_analyzer', 'pyright', 'tsserver', 'grammar_guard', 'emmet_ls', 'eslint', 'gopls', 'ols', 'jdtls', 'zls', 'svelte' }
+for _, lsp in ipairs(servers) do
+ local conf = config()
+ if lsp == 'emmet_ls' then
+ conf.filetypes = { 'html', 'typescriptreact', 'javascriptreact', 'css', 'sass', 'scss', 'less' }
+ elseif lsp == 'grammar_guard' then
+ conf.cmd = { '/home/slendi/.local/share/nvim/mason/bin/ltex-ls' }
+ end
+ lspconfig[lsp].setup(conf)
+end
+
+-- luasnip setup
+local luasnip = require'luasnip'
+
+-- nvim-cmp setup
+local cmp = require'cmp'
+cmp.setup {
+ snippet = {
+ expand = function(args)
+ luasnip.lsp_expand(args.body)
+ end,
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-d>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<CR>'] = cmp.mapping.confirm {
+ behavior = cmp.ConfirmBehavior.Replace,
+ select = true,
+ },
+ ['<Tab>'] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_next_item()
+ elseif luasnip.expand_or_jumpable() then
+ luasnip.expand_or_jump()
+ 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' }),
+ }),
+ sources = {
+ { name = 'nvim_lsp' },
+ { name = 'luasnip' },
+ },
+}
+
+vim.keymap.set('n', '<Leader>R', '<cmd>lua vim.lsp.buf.rename()<cr>')
+
+vim.cmd('sign define DiagnosticSignError text=☢ texthl=DiagnosticSignError')
+vim.cmd('sign define DiagnosticSignWarn text=☢ texthl=DiagnosticSignWarn')
+vim.cmd('sign define DiagnosticSignInfo text=☢ texthl=DiagnosticSignInfo')
+vim.cmd('sign define DiagnosticSignHint text=☢ texthl=DiagnosticSignHint')
+
diff --git a/dotconfig/nvim/lua/slendi/after/telescope.lua b/dotconfig/nvim/lua/slendi/after/telescope.lua
new file mode 100644
index 0000000..46eb611
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/after/telescope.lua
@@ -0,0 +1,25 @@
+local tel = require'telescope.builtin'
+local telescope = require'telescope'
+
+require'telescope'.setup {
+ extensions = {
+ project = {
+ base_dirs = {
+ '~/Code',
+ },
+ hidden_files = true, -- default: false
+ theme = "dropdown",
+ order_by = "recent",
+ search_by = "title",
+ sync_with_nvim_tree = true, -- default false
+ }
+ }
+}
+vim.keymap.set('n', '<Leader>fF', tel.find_files)
+vim.keymap.set('n', '<Leader>ff', tel.git_files)
+vim.keymap.set('n', '<Leader>fs', tel.lsp_document_symbols)
+vim.keymap.set('n', '<Leader>fg', tel.live_grep)
+vim.keymap.set('n', '<Leader>fb', tel.buffers)
+vim.keymap.set('n', '<Leader>fh', tel.help_tags)
+vim.keymap.set('n', '<Leader>P', telescope.extensions.project.project)
+
diff --git a/dotconfig/nvim/lua/slendi/after/toggleterm.lua b/dotconfig/nvim/lua/slendi/after/toggleterm.lua
new file mode 100644
index 0000000..f1a0397
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/after/toggleterm.lua
@@ -0,0 +1,7 @@
+require'toggleterm'.setup{ }
+
+-- Pop up terminal
+vim.keymap.set('n', '<Leader>tt', ':ToggleTerm size=15<CR>', { silent = true })
+vim.keymap.set('n', '<Leader>tf', ':ToggleTerm size=15 direction=float<CR>', { silent = true })
+vim.keymap.set('n', '<Leader>ta', ':ToggleTermAll<CR>', { silent = true })
+
diff --git a/dotconfig/nvim/lua/slendi/after/treesitter.lua b/dotconfig/nvim/lua/slendi/after/treesitter.lua
new file mode 100644
index 0000000..d197a93
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/after/treesitter.lua
@@ -0,0 +1,11 @@
+require'nvim-treesitter'.setup {}
+require'nvim-treesitter.configs'.setup {
+ auto_install = true,
+ highlight = {
+ enable = true,
+ additional_vim_regex_highlighting = false,
+ },
+}
+require'treesitter-context'.setup {
+ trim_scope = 'inner',
+}
diff --git a/dotconfig/nvim/lua/slendi/autoclose.lua b/dotconfig/nvim/lua/slendi/autoclose.lua
new file mode 100644
index 0000000..ad04f9c
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/autoclose.lua
@@ -0,0 +1,26 @@
+function check_character()
+ local expected_chars = { '"', "'", "{", "[" }
+ local current_char = vim.fn.getline("."):sub(vim.fn.col("."), vim.fn.col("."))
+ print(1)
+
+ vim.cmd('stopinsert')
+ for _, char in ipairs(expected_chars) do
+ if current_char == char then
+ -- Move cursor right
+ vim.cmd('call feedkeys("\\<ESC>ll")')
+ vim.cmd('startinsert')
+ return
+ end
+ end
+
+ -- Insert the character twice and move cursor left
+ vim.cmd('normal \\<ESC>a' .. current_char .. current_char .. '\\<Left>')
+ --vim.cmd('call feedkeys("\\<ESC>a' .. current_char .. current_char .. '\\<Left>")')
+ vim.cmd('startinsert')
+ --vim.api.nvim_feedkeys("i" .. current_char .. current_char .. "\\<Left>", "n", true)
+end
+
+vim.api.nvim_set_keymap('i', '"', 'v:lua.check_character(\'"\')', { expr = true, silent = true, noremap = true })
+vim.api.nvim_set_keymap('i', '{<CR>', "{<CR>}<ESC>O", { noremap = true })
+vim.api.nvim_set_keymap('i', '{{<CR>', "{ }<ESC>hh", { noremap = true })
+vim.api.nvim_set_keymap('i', '{;<CR>', "{<CR>};<ESC>O", { noremap = true })
diff --git a/dotconfig/nvim/lua/slendi/init.lua b/dotconfig/nvim/lua/slendi/init.lua
new file mode 100644
index 0000000..f0bad8c
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/init.lua
@@ -0,0 +1,15 @@
+require'slendi.opt'
+require'slendi.packer'
+require'slendi.remap'
+--require'slendi.autoclose'
+
+-- require'lush'(require'slendi.theme')
+-- require'slendi.theme'
+
+require'slendi.after'
+
+vim.cmd [[
+source ~/.config/nvim/theme.vim
+]]
+
+vim.cmd 'au BufRead,BufNewFile *.HC,*.hc,*.ZC,*.zc set filetype=holyc'
diff --git a/dotconfig/nvim/lua/slendi/lol.7z b/dotconfig/nvim/lua/slendi/lol.7z
new file mode 100644
index 0000000..16ccc6c
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/lol.7z
Binary files differ
diff --git a/dotconfig/nvim/lua/slendi/opt.lua b/dotconfig/nvim/lua/slendi/opt.lua
new file mode 100644
index 0000000..fa146f8
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/opt.lua
@@ -0,0 +1,63 @@
+vim.api.nvim_buf_set_option(0, 'fileformat', 'unix')
+vim.api.nvim_exec([[
+ augroup VimFiletypeUnix
+ autocmd!
+ autocmd FileType vim setlocal fileformat=unix
+ augroup END
+]], false)
+
+vim.o.number = true
+vim.o.relativenumber = true
+
+vim.o.scrolloff = 2
+
+-- Tab size
+vim.o.tabstop = 2
+vim.o.softtabstop = vim.o.tabstop
+vim.o.shiftwidth = vim.o.softtabstop
+
+-- Not used, tabs are superior
+--vim.o.expandtab = true
+
+vim.o.incsearch = true
+vim.o.ignorecase = true
+
+vim.o.smartindent = true
+
+vim.o.wrap = true
+
+-- Some people don't like this, but having it as system clipboard makes shit blazingly fast
+vim.o.clipboard = 'unnamedplus'
+
+vim.o.splitbelow = true
+vim.o.splitright = true
+
+vim.o.t_BE = ''
+
+vim.g.netrw_style = 'tree'
+
+vim.o.signcolumn = 'number'
+
+vim.cmd[[
+if exists("g:neovide")
+ let g:neovide_refresh_rate=144
+ let g:neovide_refresh_rate_idle=5
+ let g:neovide_transparency=0.8
+ let g:neovide_cursor_vfx_mode="railgun"
+ let g:neovide_padding_top=10
+ let g:neovide_padding_bottom=10
+ let g:neovide_padding_left=10
+ let g:neovide_padding_right=10
+ let g:neovide_remember_window_size = v:false
+endif
+]]
+
+if vim.g.nvui then
+ -- Configure through vim commands
+ vim.cmd [[NvuiCmdFontFamily FiraCode Nerd Font Mono]]
+end
+
+vim.cmd [[
+set guifont=FiraCode\ Nerd\ Font\ Mono:h12
+]]
+
diff --git a/dotconfig/nvim/lua/slendi/packer.lua b/dotconfig/nvim/lua/slendi/packer.lua
new file mode 100644
index 0000000..7ffd1a5
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/packer.lua
@@ -0,0 +1,105 @@
+vim.cmd[[
+let g:vim_lsp_java = {
+ \ 'eclipse_jdtls' : {
+ \ 'repository': expand('~/opt/eclipse.jdt.ls/org.eclipse.jdt.ls.product/target/repository'),
+ \ 'config': 'config_linux',
+ \ 'workspace': expand('$WORKSPACE'),
+ \ },
+\ }
+]]
+
+local ensure_packer = function()
+ local fn = vim.fn
+ local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
+ if fn.empty(fn.glob(install_path)) > 0 then
+ fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
+ vim.cmd [[packadd packer.nvim]]
+ return true
+ end
+ return false
+end
+
+local packer_bootstrap = ensure_packer()
+
+return require'packer'.startup(function(use)
+ use 'wbthomason/packer.nvim'
+ if packer_bootstrap then
+ require'packer'.sync()
+ end
+
+ use 'chiedo/vim-case-convert'
+
+ use {
+ "mcchrish/zenbones.nvim",
+ requires = "rktjmp/lush.nvim"
+ }
+
+ use {
+ 'nvim-lualine/lualine.nvim',
+ requires = { 'nvim-tree/nvim-web-devicons', opt = true },
+ }
+
+ -- Beautiful code parsing
+ use 'nvim-treesitter/nvim-treesitter'
+ use 'nvim-treesitter/playground'
+ ----use '~/Code/nvim-treesitter'
+ use 'nvim-treesitter/nvim-treesitter-context'
+ -- Dealing with pairs of something
+ use 'alvan/vim-closetag' -- HTML tags
+ use 'AndrewRadev/tagalong.vim' -- Change the other HTML tag at the same time
+ use 'tpope/vim-surround'
+ use {
+ "windwp/nvim-autopairs",
+ config = function() require("nvim-autopairs").setup {} end
+ }
+
+ -- LSP BABY
+ use 'hrsh7th/nvim-cmp' -- Autocompletion plugin
+ use 'hrsh7th/cmp-nvim-lsp' -- LSP source for nvim-cmp
+ use 'saadparwaiz1/cmp_luasnip' -- Snippets source for nvim-cmp
+ use 'L3MON4D3/LuaSnip' -- Snippets plugin
+
+ use 'brymer-meneses/grammar-guard.nvim' -- Useful for typos in text files
+ use {
+ 'williamboman/mason.nvim',
+ 'williamboman/mason-lspconfig.nvim',
+ 'neovim/nvim-lspconfig',
+ }
+
+ -- use 'lgranie/vim-lsp-java'
+
+ -- use {
+ -- 'lewis6991/gitsigns.nvim', -- Git integration in buffers
+ -- config = function() require'gitsigns'.setup{
+ -- signs = {
+ -- add = { text = '│' },
+ -- change = { text = '│' },
+ -- delete = { text = '_' },
+ -- topdelete = { text = '‾' },
+ -- changedelete = { text = '~' },
+ -- untracked = { text = '┆' },
+ -- },
+ -- } end
+ -- }
+
+ -- TELESCOPEEEE
+ use {
+ 'nvim-telescope/telescope.nvim',
+ requires = {{ 'nvim-lua/plenary.nvim' }}
+ }
+ use 'nvim-telescope/telescope-project.nvim'
+
+ -- PEW PEW
+ use 'unblevable/quick-scope'
+
+ -- Terminal
+ use {
+ "akinsho/toggleterm.nvim",
+ tag = '*',
+ }
+
+ -- Fun
+ use 'Eandrju/cellular-automaton.nvim'
+ use 'andweeb/presence.nvim' -- Discord rich presence
+end)
+
diff --git a/dotconfig/nvim/lua/slendi/remap.lua b/dotconfig/nvim/lua/slendi/remap.lua
new file mode 100644
index 0000000..6ed2550
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/remap.lua
@@ -0,0 +1,39 @@
+vim.g.mapleader = ' '
+
+vim.keymap.set('n', '<Leader>j', ':bp<CR>', { silent = true })
+vim.keymap.set('n', '<Leader>k', ':bn<CR>', { silent = true })
+vim.keymap.set('n', '<Leader>q', ':bd<CR>', { silent = true })
+vim.keymap.set('n', '<Leader>x', vim.diagnostic.open_float)
+vim.keymap.set('n', '<Leader>/', ':let @/ = ""<CR>', { silent = true }) -- Clear search
+
+-- Move lines respecting indentation
+vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
+vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
+
+-- Nice shit
+vim.keymap.set("n", "n", "nzzzv")
+vim.keymap.set("n", "N", "Nzzzv")
+
+-- Paste without replacing buffer
+vim.keymap.set("x", "<leader>p", [["_dP]])
+
+-- Replace current word with something else, useful in places where <leader>R is not available
+vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
+-- Chmod this bitch
+vim.keymap.set("n", "<leader>X", "<cmd>!chmod +x %<CR>", { silent = true })
+
+-- Escape term
+vim.keymap.set('t', '<Leader><Esc>', '<C-\\><C-n>', { silent = true })
+
+-- Yank the whole thing baby!
+vim.keymap.set('n', '<Leader>y', ':%y<CR>')
+
+-- Netrw my beloved
+vim.keymap.set('n', '<Leader>d', ':Ex<CR>')
+
+-- Faster buffer navigation, duplicate of <Leader>j and <Leader>k
+vim.keymap.set({'n', 'i'}, '<C-J>', ':bn<CR>')
+vim.keymap.set({'n', 'i'}, '<C-K>', ':bp<CR>')
+
+vim.opt.mouse = 'a'
+
diff --git a/dotconfig/nvim/lua/slendi/theme.lua b/dotconfig/nvim/lua/slendi/theme.lua
new file mode 100644
index 0000000..17272dd
--- /dev/null
+++ b/dotconfig/nvim/lua/slendi/theme.lua
@@ -0,0 +1,252 @@
+-- GENERAL --
+vim.o.termguicolors = true
+--vim.o.background = 'light'
+vim.o.background = 'dark'
+
+vim.g.rosebones = { transparent_background = true }
+
+vim.cmd [[
+colorscheme retrobox
+autocmd ColorScheme * highlight Normal guibg=NONE ctermbg=None
+autocmd ColorScheme * highlight NonText guibg=NONE ctermbg=None
+hi Normal guibg=NONE ctermbg=NONE
+autocmd vimenter * hi Normal guibg=NONE ctermbg=NONE
+autocmd vimenter * hi NonText guibg=NONE ctermbg=NONE
+" For Vim<8, replace EndOfBuffer by NonText
+autocmd vimenter * hi EndOfBuffer guibg=NONE ctermbg=NONE
+set background=dark
+]]
+
+--vim.cmd "colorscheme rosebones"
+--local theme = require'rosebones'
+--local palette = require'rosebones.palette'
+--local lush = require'lush'
+--
+--local specs = lush.parse(function()
+-- return {
+-- Constant { fg = theme.Normal.fg.lighten(40), gui = 'normal' },
+-- Number { Constant },
+-- Identifier { fg = theme.Normal.fg.lighten(15) },
+-- Statement { fg = theme.Statement.fg.ro(-240) },
+-- }
+--end)
+--
+--lush.apply(lush.compile(specs))
+
+-- LUALINE --
+local lualine = require'lualine'
+
+local colors = {
+ bg = '#202328',
+ fg = '#bbc2cf',
+ yellow = '#ECBE7B',
+ cyan = '#008080',
+ darkblue = '#081633',
+ green = '#98be65',
+ orange = '#FF8800',
+ violet = '#a9a1e1',
+ magenta = '#c678dd',
+ blue = '#51afef',
+ red = '#ec5f67',
+}
+
+local conditions = {
+ buffer_not_empty = function()
+ return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
+ end,
+ hide_in_width = function()
+ return vim.fn.winwidth(0) > 80
+ end,
+ check_git_workspace = function()
+ local filepath = vim.fn.expand('%:p:h')
+ local gitdir = vim.fn.finddir('.git', filepath .. ';')
+ return gitdir and #gitdir > 0 and #gitdir < #filepath
+ end,
+}
+
+-- Config
+local config = {
+ options = {
+ -- Disable sections and component separators
+ component_separators = '',
+ section_separators = '',
+ theme = {
+ -- We are going to use lualine_c an lualine_x as left and
+ -- right section. Both are highlighted by c theme . So we
+ -- are just setting default looks o statusline
+ normal = { c = { fg = colors.fg, bg = colors.bg } },
+ inactive = { c = { fg = colors.fg, bg = colors.bg } },
+ },
+ },
+ sections = {
+ -- these are to remove the defaults
+ lualine_a = {},
+ lualine_b = {},
+ lualine_y = {},
+ lualine_z = {},
+ -- These will be filled later
+ lualine_c = {},
+ lualine_x = {},
+ },
+ inactive_sections = {
+ -- these are to remove the defaults
+ lualine_a = {},
+ lualine_b = {},
+ lualine_y = {},
+ lualine_z = {},
+ lualine_c = {},
+ lualine_x = {},
+ },
+}
+
+-- Inserts a component in lualine_c at left section
+local function ins_left(component)
+ table.insert(config.sections.lualine_c, component)
+end
+
+-- Inserts a component in lualine_x at right section
+local function ins_right(component)
+ table.insert(config.sections.lualine_x, component)
+end
+
+ins_left {
+ function()
+ return '▊'
+ end,
+ color = { fg = colors.red }, -- Sets highlighting of component
+ padding = { left = 0, right = 1 }, -- We don't need space before this
+}
+
+ins_left {
+ -- mode component
+ function()
+ return ''
+ end,
+ color = function()
+ -- auto change color according to neovims mode
+ local mode_color = {
+ n = colors.red,
+ i = colors.green,
+ v = colors.blue,
+ [''] = colors.blue,
+ V = colors.blue,
+ c = colors.magenta,
+ no = colors.red,
+ s = colors.orange,
+ S = colors.orange,
+ [''] = colors.orange,
+ ic = colors.yellow,
+ R = colors.violet,
+ Rv = colors.violet,
+ cv = colors.red,
+ ce = colors.red,
+ r = colors.cyan,
+ rm = colors.cyan,
+ ['r?'] = colors.cyan,
+ ['!'] = colors.red,
+ t = colors.red,
+ }
+ return { fg = mode_color[vim.fn.mode()] }
+ end,
+ padding = { right = 1 },
+}
+
+ins_left {
+ -- filesize component
+ 'filesize',
+ cond = conditions.buffer_not_empty,
+}
+
+ins_left {
+ 'filename',
+ cond = conditions.buffer_not_empty,
+ color = { fg = colors.magenta, gui = 'bold' },
+}
+
+ins_left { 'location' }
+
+ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } }
+
+ins_left {
+ 'diagnostics',
+ sources = { 'nvim_diagnostic' },
+ symbols = { error = ' ', warn = ' ', info = ' ' },
+ diagnostics_color = {
+ color_error = { fg = colors.red },
+ color_warn = { fg = colors.yellow },
+ color_info = { fg = colors.cyan },
+ },
+}
+
+-- Insert mid section. You can make any number of sections in neovim :)
+-- for lualine it's any number greater then 2
+ins_left {
+ function()
+ return '%='
+ end,
+}
+
+ins_left {
+ -- Lsp server name .
+ function()
+ local msg = 'No Active Lsp'
+ local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
+ local clients = vim.lsp.get_active_clients()
+ if next(clients) == nil then
+ return msg
+ end
+ for _, client in ipairs(clients) do
+ local filetypes = client.config.filetypes
+ if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
+ return client.name
+ end
+ end
+ return msg
+ end,
+ icon = ' LSP:',
+ color = { fg = '#ffffff', gui = 'bold' },
+}
+
+-- Add components to right sections
+ins_right {
+ 'o:encoding', -- option component same as &encoding in viml
+ fmt = string.upper, -- I'm not sure why it's upper case either ;)
+ cond = conditions.hide_in_width,
+ color = { fg = colors.green, gui = 'bold' },
+}
+
+ins_right {
+ 'fileformat',
+ fmt = string.upper,
+ icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
+ color = { fg = colors.green, gui = 'bold' },
+}
+
+ins_right {
+ 'branch',
+ icon = '',
+ color = { fg = colors.violet, gui = 'bold' },
+}
+
+ins_right {
+ 'diff',
+ -- Is it me or the symbol for modified us really weird
+ symbols = { added = ' ', modified = '柳 ', removed = ' ' },
+ diff_color = {
+ added = { fg = colors.green },
+ modified = { fg = colors.orange },
+ removed = { fg = colors.red },
+ },
+ cond = conditions.hide_in_width,
+}
+
+ins_right {
+ function()
+ return '▊'
+ end,
+ color = { fg = colors.red },
+ padding = { left = 1 },
+}
+
+-- Now don't forget to initialize lualine
+lualine.setup(config)
diff --git a/dotconfig/nvim/plugin/packer_compiled.lua b/dotconfig/nvim/plugin/packer_compiled.lua
new file mode 100644
index 0000000..5d403fd
--- /dev/null
+++ b/dotconfig/nvim/plugin/packer_compiled.lua
@@ -0,0 +1,240 @@
+-- Automatically generated packer.nvim plugin loader code
+
+if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
+ vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
+ return
+end
+
+vim.api.nvim_command('packadd packer.nvim')
+
+local no_errors, error_msg = pcall(function()
+
+_G._packer = _G._packer or {}
+_G._packer.inside_compile = true
+
+local time
+local profile_info
+local should_profile = false
+if should_profile then
+ local hrtime = vim.loop.hrtime
+ profile_info = {}
+ time = function(chunk, start)
+ if start then
+ profile_info[chunk] = hrtime()
+ else
+ profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
+ end
+ end
+else
+ time = function(chunk, start) end
+end
+
+local function save_profiles(threshold)
+ local sorted_times = {}
+ for chunk_name, time_taken in pairs(profile_info) do
+ sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
+ end
+ table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
+ local results = {}
+ for i, elem in ipairs(sorted_times) do
+ if not threshold or threshold and elem[2] > threshold then
+ results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
+ end
+ end
+ if threshold then
+ table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
+ end
+
+ _G._packer.profile_output = results
+end
+
+time([[Luarocks path setup]], true)
+local package_path_str = "/home/slendi/.cache/nvim/packer_hererocks/2.1.1694285958/share/lua/5.1/?.lua;/home/slendi/.cache/nvim/packer_hererocks/2.1.1694285958/share/lua/5.1/?/init.lua;/home/slendi/.cache/nvim/packer_hererocks/2.1.1694285958/lib/luarocks/rocks-5.1/?.lua;/home/slendi/.cache/nvim/packer_hererocks/2.1.1694285958/lib/luarocks/rocks-5.1/?/init.lua"
+local install_cpath_pattern = "/home/slendi/.cache/nvim/packer_hererocks/2.1.1694285958/lib/lua/5.1/?.so"
+if not string.find(package.path, package_path_str, 1, true) then
+ package.path = package.path .. ';' .. package_path_str
+end
+
+if not string.find(package.cpath, install_cpath_pattern, 1, true) then
+ package.cpath = package.cpath .. ';' .. install_cpath_pattern
+end
+
+time([[Luarocks path setup]], false)
+time([[try_loadstring definition]], true)
+local function try_loadstring(s, component, name)
+ local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
+ if not success then
+ vim.schedule(function()
+ vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
+ end)
+ end
+ return result
+end
+
+time([[try_loadstring definition]], false)
+time([[Defining packer_plugins]], true)
+_G.packer_plugins = {
+ LuaSnip = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/LuaSnip",
+ url = "https://github.com/L3MON4D3/LuaSnip"
+ },
+ ["cellular-automaton.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/cellular-automaton.nvim",
+ url = "https://github.com/Eandrju/cellular-automaton.nvim"
+ },
+ ["cmp-nvim-lsp"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
+ url = "https://github.com/hrsh7th/cmp-nvim-lsp"
+ },
+ cmp_luasnip = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
+ url = "https://github.com/saadparwaiz1/cmp_luasnip"
+ },
+ ["grammar-guard.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/grammar-guard.nvim",
+ url = "https://github.com/brymer-meneses/grammar-guard.nvim"
+ },
+ ["lualine.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/lualine.nvim",
+ url = "https://github.com/nvim-lualine/lualine.nvim"
+ },
+ ["lush.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/lush.nvim",
+ url = "https://github.com/rktjmp/lush.nvim"
+ },
+ ["mason-lspconfig.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
+ url = "https://github.com/williamboman/mason-lspconfig.nvim"
+ },
+ ["mason.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/mason.nvim",
+ url = "https://github.com/williamboman/mason.nvim"
+ },
+ ["nvim-autopairs"] = {
+ config = { "\27LJ\2\n@\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" },
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/nvim-autopairs",
+ url = "https://github.com/windwp/nvim-autopairs"
+ },
+ ["nvim-cmp"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/nvim-cmp",
+ url = "https://github.com/hrsh7th/nvim-cmp"
+ },
+ ["nvim-lspconfig"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
+ url = "https://github.com/neovim/nvim-lspconfig"
+ },
+ ["nvim-treesitter"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
+ url = "https://github.com/nvim-treesitter/nvim-treesitter"
+ },
+ ["nvim-treesitter-context"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/nvim-treesitter-context",
+ url = "https://github.com/nvim-treesitter/nvim-treesitter-context"
+ },
+ ["nvim-web-devicons"] = {
+ loaded = false,
+ needs_bufread = false,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/opt/nvim-web-devicons",
+ url = "https://github.com/nvim-tree/nvim-web-devicons"
+ },
+ ["packer.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/packer.nvim",
+ url = "https://github.com/wbthomason/packer.nvim"
+ },
+ playground = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/playground",
+ url = "https://github.com/nvim-treesitter/playground"
+ },
+ ["plenary.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/plenary.nvim",
+ url = "https://github.com/nvim-lua/plenary.nvim"
+ },
+ ["presence.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/presence.nvim",
+ url = "https://github.com/andweeb/presence.nvim"
+ },
+ ["quick-scope"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/quick-scope",
+ url = "https://github.com/unblevable/quick-scope"
+ },
+ ["tagalong.vim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/tagalong.vim",
+ url = "https://github.com/AndrewRadev/tagalong.vim"
+ },
+ ["telescope-project.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/telescope-project.nvim",
+ url = "https://github.com/nvim-telescope/telescope-project.nvim"
+ },
+ ["telescope.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/telescope.nvim",
+ url = "https://github.com/nvim-telescope/telescope.nvim"
+ },
+ ["toggleterm.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/toggleterm.nvim",
+ url = "https://github.com/akinsho/toggleterm.nvim"
+ },
+ ["vim-case-convert"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/vim-case-convert",
+ url = "https://github.com/chiedo/vim-case-convert"
+ },
+ ["vim-closetag"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/vim-closetag",
+ url = "https://github.com/alvan/vim-closetag"
+ },
+ ["vim-surround"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/vim-surround",
+ url = "https://github.com/tpope/vim-surround"
+ },
+ ["zenbones.nvim"] = {
+ loaded = true,
+ path = "/home/slendi/.local/share/nvim/site/pack/packer/start/zenbones.nvim",
+ url = "https://github.com/mcchrish/zenbones.nvim"
+ }
+}
+
+time([[Defining packer_plugins]], false)
+-- Config for: nvim-autopairs
+time([[Config for nvim-autopairs]], true)
+try_loadstring("\27LJ\2\n@\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs")
+time([[Config for nvim-autopairs]], false)
+
+_G._packer.inside_compile = false
+if _G._packer.needs_bufread == true then
+ vim.cmd("doautocmd BufRead")
+end
+_G._packer.needs_bufread = false
+
+if should_profile then save_profiles() end
+
+end)
+
+if not no_errors then
+ error_msg = error_msg:gsub('"', '\\"')
+ vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
+end
diff --git a/dotconfig/nvim/theme.lua b/dotconfig/nvim/theme.lua
new file mode 100644
index 0000000..e07fea5
--- /dev/null
+++ b/dotconfig/nvim/theme.lua
@@ -0,0 +1,34 @@
+require('github-theme').setup({
+ theme_style = 'light',
+ sidebars = {"qf", "vista_kind", "terminal", "packer"},
+ colors = {
+ bg2 = '#faf9f6',
+
+ bg_highlight = '#f6d5d5',
+ bg_visual = '#e8e1e1',
+ bg_visual_selection = '#f9dbdb',
+ border = '#892c04',
+
+ line_nr = '#968c8c',
+
+ pmenu = {
+ bg = '#faf6f6',
+ sbar = '#f3f0f0',
+ },
+ },
+})
+
+line_colors = {
+ bg_normal = '#ff4a21',
+ fg_normal = '#ffffff',
+}
+
+require('lualine').setup {
+ options = {
+ -- component_separators = '',
+ -- section_separators = '',
+ theme = {
+ normal = { c = { bg = line_colors.bg_normal, fg = line_colors.fg_normal } },
+ }
+ }
+}
diff --git a/dotconfig/nvim/theme.vim b/dotconfig/nvim/theme.vim
new file mode 100644
index 0000000..7267395
--- /dev/null
+++ b/dotconfig/nvim/theme.vim
@@ -0,0 +1,51 @@
+hi clear
+syntax off
+
+let g:colors_name = "nobs"
+set t_Co=0
+set termguicolors
+
+hi LineNr NONE
+hi Normal guifg=#ffffff
+hi NonText guifg=#333333
+hi Comment guifg=#888888 "gui=italic
+hi Identifier NONE
+hi Type NONE
+hi PreProc NONE
+hi Constant NONE
+hi Statement NONE
+hi Special NONE
+hi Constant NONE
+hi Underlined NONE
+hi Title NONE
+hi MatchParen guibg=#222222
+
+hi link DiagnosticFloatingError Normal
+hi link DiagnosticFloatingWarn Normal
+hi link DiagnosticFloatingInfo Normal
+hi link DiagnosticFloatingHint Normal
+
+hi Search guibg=#222222 guifg=#ffffff
+hi Visual guibg=#222222 guifg=#ffffff
+
+hi Pmenu guibg=#222222 guifg=#ffffff
+hi PmenuSel guibg=#333333 guifg=#ffffff
+
+hi DiagnosticError guifg=#333333
+hi DiagnosticWarn guifg=#333333
+hi DiagnosticInfo guifg=#333333
+hi DiagnosticHint guifg=#333333
+
+hi DiagnosticUnderlineError guisp=#333333
+hi DiagnosticUnderlineWarn guisp=#333333
+hi DiagnosticUnderlineInfo guisp=#333333
+hi DiagnosticUnderlineHint guisp=#333333
+
+hi StatusLine guifg=#222222 guibg=#ffffff
+hi DiffAdd NONE
+
+hi QuickScopePrimary gui=bold guifg=#999999
+hi QuickScopeSecondary gui=italic,bold guifg=#999999
+
+set list lcs=trail:·,tab:\ \
+
diff --git a/dotconfig/picom/picom.conf b/dotconfig/picom/picom.conf
new file mode 100644
index 0000000..32fa50c
--- /dev/null
+++ b/dotconfig/picom/picom.conf
@@ -0,0 +1,19 @@
+# Disable all built-in effects
+no-dock-shadow = true;
+no-dnd-shadow = true;
+no-fading-openclose = true;
+no-fading-destroyed-argb = true;
+clear-shadow = true;
+no-dimming = true;
+no-blur-background = true;
+no-menus = true;
+no-argb = true;
+no-dock-shadow = true;
+no-dnd-shadow = true;
+no-exclude = [
+ "n:e:Notification",
+ "n:e:Plasma",
+ "n:e:Plasma Desktop Shell",
+ "n:e:KRunner",
+ "n:w:*Firefox*",
+];
diff --git a/dotconfig/sxhkd/sxhkdrc b/dotconfig/sxhkd/sxhkdrc
new file mode 100644
index 0000000..09f4e5a
--- /dev/null
+++ b/dotconfig/sxhkd/sxhkdrc
@@ -0,0 +1,201 @@
+#
+# wm independent hotkeys
+#
+
+# terminal emulator
+super + space
+ wezterm
+
+# program launcher
+super + d
+ dmenu_run
+
+# make sxhkd reload its configuration files:
+super + Escape
+ pkill -USR1 -x sxhkd
+
+XF86AudioPlay
+ playerctl play-pause
+
+XF86AudioPrev
+ playerctl previous
+
+XF86AudioNext
+ playerctl next
+
+XF86AudioRaiseVolume
+ pactl set-sink-volume @DEFAULT_SINK@ +2%
+
+XF86AudioLowerVolume
+ pactl set-sink-volume @DEFAULT_SINK@ -2%
+
+super + button7
+ pactl set-sink-volume @DEFAULT_SINK@ +2%
+
+super + button6
+ pactl set-sink-volume @DEFAULT_SINK@ -2%
+
+super + button4
+ pactl set-sink-volume @DEFAULT_SINK@ +2%
+
+super + button5
+ pactl set-sink-volume @DEFAULT_SINK@ -2%
+
+XF86AudioMute
+ pactl set-sink-mute @DEFAULT_SINK@ toggle
+
+XF86MonBrightness{Up,Down}
+ brightnessctl s 10{+,-}
+super + XF86MonBrightness{Up,Down}
+ brightnessctl s {255,0}
+
+Print
+ prtscr
+super + Print
+ prtscr file
+
+shift + Print
+ prtscr region
+super + shift + Print
+ prtscr region file
+
+ctrl + Print
+ prtscr focused
+super + ctrl + Print
+ prtscr focused file
+
+#
+# bspwm hotkeys
+#
+
+# quit/restart bspwm
+super + shift + {e,r}
+ bspc {quit,wm -r}
+
+# close and kill
+super + {_,shift + }q
+ bspc node -{c,k}
+
+# alternate between the tiled and monocle layout
+super + shift + m
+ bspc desktop -l next
+
+# swap the current node and the biggest window
+super + g
+ bspc node -s biggest.window
+
+#
+# state/flags
+#
+
+# set the window state
+super + {t,shift + t,s,f}
+ bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
+
+# set the node flags
+super + ctrl + {m,x,y,z}
+ bspc node -g {marked,locked,sticky,private}
+
+# Toggle between floating and tiled
+super + y
+ if [ -z "$(bspc query -N -n focused.floating)" ]; then \
+ bspc node focused -t floating; \
+ else \
+ bspc node focused -t tiled; \
+ fi
+
+#
+# focus/swap
+#
+
+# focus the node in the given direction
+super + {_,shift + }{h,j,k,l}
+ bspc node -{f,s} {west,south,north,east}
+
+# focus the node for the given path jump
+super + {p,b,comma,period}
+ bspc node -f @{parent,brother,first,second}
+
+# focus the next/previous window in the current desktop
+super + shift + c
+ bspc node -f next.local.!hidden.window
+
+# focus the next/previous desktop in the current monitor
+super + bracket{left,right}
+ bspc desktop -f {prev,next}.local
+
+# focus the last node/desktop
+super + {grave,Tab}
+ bspc {node,desktop} -f last
+
+# focus the older or newer node in the focus history
+super + {o,i}
+ bspc wm -h off; \
+ bspc node {older,newer} -f; \
+ bspc wm -h on
+
+# focus or send to the given desktop
+super + {_,shift + }{1-9,0}
+ bspc {desktop -f,node -d} '^{1-9,10}'
+
+#
+# preselect
+#
+
+# preselect the direction
+super + ctrl + {h,j,k,l}
+ bspc node -p {west,south,north,east}
+
+super + {x,z}
+ bspc node -p {south,east}
+
+# preselect the ratio
+super + ctrl + {1-9}
+ bspc node -o 0.{1-9}
+
+# cancel the preselection for the focused node
+super + ctrl + space
+ bspc node -p cancel
+
+super + c
+ bspc node -p cancel
+
+# cancel the preselection for the focused desktop
+super + shift + c
+ bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
+
+#
+# move/resize
+#
+
+# expand a window by moving one of its side outward
+super + alt + {h,j,k,l}
+ bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
+
+# contract a window by moving one of its side inward
+super + alt + shift + {h,j,k,l}
+ bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
+
+# move a floating window
+super + {Left,Down,Up,Right}
+ bspc node -v {-20 0,0 20,0 -20,20 0}
+
+#
+# Shortcuts
+#
+
+super + shift + b
+ firefox
+
+super + shift + p
+ slock
+
+super + a
+ bspc node -g sticky
+
+super + m
+ xmouseless
+
+super + shift + g
+ setbg
+
diff --git a/dotconfig/wezterm/wezterm.lua b/dotconfig/wezterm/wezterm.lua
new file mode 100644
index 0000000..bd02697
--- /dev/null
+++ b/dotconfig/wezterm/wezterm.lua
@@ -0,0 +1,56 @@
+local wezterm = require 'wezterm'
+
+local config = {}
+
+if wezterm.config_builder then
+ config = wezterm.config_builder()
+end
+
+config.font = wezterm.font 'FiraCode Nerd Font Mono'
+config.enable_tab_bar = false
+config.enable_kitty_graphics=true
+config.window_background_opacity = 0.8
+
+config.colors = {
+ -- Default colors
+ background = '#000000',
+ --foreground = '#b6b6b6',
+ foreground = '#ffffff',
+
+ cursor_bg = '#b6b6b6',
+ cursor_fg = '#000000',
+
+ cursor_border = '#b6b6b6',
+
+ selection_fg = '#b6b6b6',
+ selection_bg = '#222222',
+
+ -- Normal colors
+ ansi = {
+ '#000000',
+ '#990000',
+ '#00a600',
+ '#999900',
+ '#0000b2',
+ '#b200b2',
+ '#00a6b2',
+ '#bfbfbf',
+ },
+
+ -- Bright colors
+ brights = {
+ '#666666',
+ '#e50000',
+ '#00d900',
+ '#e5e500',
+ '#0000ff',
+ '#e500e5',
+ '#00e5e5',
+ '#e5e5e5',
+ },
+}
+
+config.adjust_window_size_when_changing_font_size = false
+config.window_close_confirmation = 'NeverPrompt'
+
+return config
diff --git a/dotconfig/xclicker.conf b/dotconfig/xclicker.conf
new file mode 100644
index 0000000..005b000
--- /dev/null
+++ b/dotconfig/xclicker.conf
@@ -0,0 +1,3 @@
+[Options]
+USE_XEVENT=false
+SAFEMODE=false
diff --git a/dotconfig/zathura/zathurarc b/dotconfig/zathura/zathurarc
new file mode 100644
index 0000000..53064f6
--- /dev/null
+++ b/dotconfig/zathura/zathurarc
@@ -0,0 +1,2 @@
+map <C-i> recolor
+set recolor true
diff --git a/dotconfig/zsh/antigen.zsh b/dotconfig/zsh/antigen.zsh
new file mode 100755
index 0000000..e813207
--- /dev/null
+++ b/dotconfig/zsh/antigen.zsh
@@ -0,0 +1,2057 @@
+######################################################################
+# This file was autogenerated by `make`. Do not edit it directly!
+######################################################################
+# Antigen: A simple plugin manager for zsh
+ # Authors: Shrikant Sharat Kandula
+ # and Contributors <https://github.com/zsh-users/antigen/contributors>
+ # Homepage: http://antigen.sharats.me
+ # License: MIT License <mitl.sharats.me>
+zmodload zsh/parameter
+autoload -U is-at-least
+
+# While boot.zsh is part of the ext/cache functionallity it may be disabled
+# with ANTIGEN_CACHE flag, and it's always compiled with antigen.zsh
+if [[ $ANTIGEN_CACHE != false ]]; then
+ ANTIGEN_CACHE="${ANTIGEN_CACHE:-${ADOTDIR:-$HOME/.antigen}/init.zsh}"
+ ANTIGEN_RSRC="${ANTIGEN_RSRC:-${ADOTDIR:-$HOME/.antigen}/.resources}"
+
+ # It may not be necessary to check ANTIGEN_AUTO_CONFIG.
+ if [[ $ANTIGEN_AUTO_CONFIG != false && -f $ANTIGEN_RSRC ]]; then
+ # Check the list of files for configuration changes (uses -nt comp)
+ ANTIGEN_CHECK_FILES=$(cat $ANTIGEN_RSRC 2> /dev/null)
+ ANTIGEN_CHECK_FILES=(${(@f)ANTIGEN_CHECK_FILES})
+
+ for config in $ANTIGEN_CHECK_FILES; do
+ if [[ "$config" -nt "$config.zwc" ]]; then
+ # Flag configuration file as newer
+ { zcompile "$config" } &!
+ # Kill cache file in order to force full loading (see a few lines below)
+ [[ -f "$ANTIGEN_CACHE" ]] && rm -f "$ANTIGEN_CACHE"
+ fi
+ done
+ fi
+
+ # If there is a cache file do load from it
+ if [[ -f $ANTIGEN_CACHE && ! $_ANTIGEN_CACHE_LOADED == true ]]; then
+ # Wrap antigen in order to defer cache source until `antigen-apply`
+ antigen() {
+ if [[ $1 == "apply" ]]; then
+ source "$ANTIGEN_CACHE"
+ # Handle `antigen-init` command properly
+ elif [[ $1 == "init" ]]; then
+ source "$2"
+ fi
+ }
+ # Do not continue loading antigen as cache bundle takes care of it.
+ return 0
+ fi
+fi
+[[ -z "$_ANTIGEN_INSTALL_DIR" ]] && _ANTIGEN_INSTALL_DIR=${0:A:h}
+
+# Each line in this string has the following entries separated by a space
+# character.
+# <repo-url>, <plugin-location>, <bundle-type>, <has-local-clone>
+[[ $_ANTIGEN_CACHE_LOADED != true ]] && typeset -aU _ANTIGEN_BUNDLE_RECORD
+
+# Do not load anything if git is not available.
+if (( ! $+commands[git] )); then
+ echo 'Antigen: Please install git to use Antigen.' >&2
+ return 1
+fi
+
+# Used to defer compinit/compdef
+typeset -a __deferred_compdefs
+compdef () { __deferred_compdefs=($__deferred_compdefs "$*") }
+
+# A syntax sugar to avoid the `-` when calling antigen commands. With this
+# function, you can write `antigen-bundle` as `antigen bundle` and so on.
+antigen () {
+ local cmd="$1"
+ if [[ -z "$cmd" ]]; then
+ echo 'Antigen: Please give a command to run.' >&2
+ return 1
+ fi
+ shift
+
+ if (( $+functions[antigen-$cmd] )); then
+ "antigen-$cmd" "$@"
+ return $?
+ else
+ echo "Antigen: Unknown command: $cmd" >&2
+ return 1
+ fi
+}
+# Returns the bundle's git revision
+#
+# Usage
+# -antigen-bundle-rev bundle-name [is_local_clone]
+#
+# Returns
+# Bundle rev-parse output (branch name or short ref name)
+-antigen-bundle-rev () {
+ local bundle=$1
+ local is_local_clone=$2
+
+ local bundle_path=$bundle
+ # Get bunde path inside $ADOTDIR if bundle was effectively cloned
+ if [[ "$is_local_clone" == "true" ]]; then
+ bundle_path=$(-antigen-get-clone-dir $bundle)
+ fi
+
+ local ref
+ ref=$(git --git-dir="$bundle_path/.git" rev-parse --abbrev-ref '@' 2>/dev/null)
+
+ # Avoid 'HEAD' when in detached mode
+ if [[ $ref == "HEAD" ]]; then
+ ref=$(git --git-dir="$bundle_path/.git" describe --tags --exact-match 2>/dev/null \
+ || git --git-dir="$bundle_path/.git" rev-parse --short '@' 2>/dev/null || "-")
+ fi
+ echo $ref
+}
+# Usage:
+# -antigen-bundle-short-name "https://github.com/user/repo.git[|*]" "[branch/name]"
+# Returns:
+# user/repo@branch/name
+-antigen-bundle-short-name () {
+ local bundle_name="${1%|*}"
+ local bundle_branch="$2"
+ local match mbegin mend MATCH MBEGIN MEND
+
+ [[ "$bundle_name" =~ '.*/(.*/.*).*$' ]] && bundle_name=$match[1]
+ bundle_name="${bundle_name%.git*}"
+
+ if [[ -n $bundle_branch ]]; then
+ bundle_name="$bundle_name@$bundle_branch"
+ fi
+
+ echo $bundle_name
+}
+# Echo the bundle specs as in the record. The first line is not echoed since it
+# is a blank line.
+-antigen-echo-record () {
+ echo ${(j:\n:)_ANTIGEN_BUNDLE_RECORD}
+}
+# Filters _ANTIGEN_BUNDLE_RECORD for $1
+#
+# Usage
+# -antigen-find-bundle example/bundle
+#
+# Returns
+# String if bundle is found
+-antigen-find-bundle () {
+ echo $(-antigen-find-record $1 | cut -d' ' -f1)
+}
+
+# Filters _ANTIGEN_BUNDLE_RECORD for $1
+#
+# Usage
+# -antigen-find-record example/bundle
+#
+# Returns
+# String if record is found
+-antigen-find-record () {
+ local bundle=$1
+
+ if [[ $# -eq 0 ]]; then
+ return 1
+ fi
+
+ local record=${bundle/\|/\\\|}
+ echo "${_ANTIGEN_BUNDLE_RECORD[(r)*$record*]}"
+}
+# Returns bundle names from _ANTIGEN_BUNDLE_RECORD
+#
+# Usage
+# -antigen-get-bundles [--short|--simple|--long]
+#
+# Returns
+# List of bundles installed
+-antigen-get-bundles () {
+ local mode revision url bundle_name bundle_entry loc no_local_clone
+ local record bundle make_local_clone
+ mode=${1:-"--short"}
+
+ for record in $_ANTIGEN_BUNDLE_RECORD; do
+ bundle=(${(@s/ /)record})
+ url=$bundle[1]
+ loc=$bundle[2]
+ make_local_clone=$bundle[4]
+
+ bundle_name=$(-antigen-bundle-short-name $url)
+
+ case "$mode" in
+ --short)
+ # Only check revision for bundle with a requested branch
+ if [[ $url == *\|* ]]; then
+ revision=$(-antigen-bundle-rev $url $make_local_clone)
+ else
+ revision="master"
+ fi
+
+ if [[ $loc != '/' ]]; then
+ bundle_name="$bundle_name ~ $loc"
+ fi
+ echo "$bundle_name @ $revision"
+ ;;
+ --simple)
+ echo "$bundle_name"
+ ;;
+ --long)
+ echo "$record"
+ ;;
+ esac
+ done
+}
+# Usage:
+# -antigen-get-clone-dir "https://github.com/zsh-users/zsh-syntax-highlighting.git[|feature/branch]"
+# Returns:
+# $ANTIGEN_BUNDLES/zsh-users/zsh-syntax-highlighting[-feature-branch]
+-antigen-get-clone-dir () {
+ local bundle="$1"
+ local url="${bundle%|*}"
+ local branch match mbegin mend MATCH MBEGIN MEND
+ [[ "$bundle" =~ "\|" ]] && branch="${bundle#*|}"
+
+ # Takes a repo url and mangles it, giving the path that this url will be
+ # cloned to. Doesn't actually clone anything.
+ local clone_dir="$ANTIGEN_BUNDLES"
+
+ url=$(-antigen-bundle-short-name $url)
+
+ # Suffix with branch/tag name
+ [[ -n "$branch" ]] && url="$url-${branch//\//-}"
+ url=${url//\*/x}
+
+ echo "$clone_dir/$url"
+}
+# Returns bundles flagged as make_local_clone
+#
+# Usage
+# -antigen-cloned-bundles
+#
+# Returns
+# Bundle metadata
+-antigen-get-cloned-bundles() {
+ -antigen-echo-record |
+ awk '$4 == "true" {print $1}' |
+ sort -u
+}
+# Returns a list of themes from a default library (omz)
+#
+# Usage
+# -antigen-get-themes
+#
+# Returns
+# List of themes by name
+-antigen-get-themes () {
+ local library='robbyrussell/oh-my-zsh'
+ local bundle=$(-antigen-find-bundle $library)
+
+ if [[ -n "$bundle" ]]; then
+ local dir=$(-antigen-get-clone-dir $ANTIGEN_DEFAULT_REPO_URL)
+ echo $(ls $dir/themes/ | grep '.zsh-theme$' | sed 's/.zsh-theme//')
+ fi
+
+ return 0
+}
+
+# This function check ZSH_EVAL_CONTEXT to determine if running in interactive shell.
+#
+# Usage
+# -antigen-interactive-mode
+#
+# Returns
+# Either true or false depending if we are running in interactive mode
+-antigen-interactive-mode () {
+ WARN "-antigen-interactive-mode: $ZSH_EVAL_CONTEXT \$_ANTIGEN_INTERACTIVE = $_ANTIGEN_INTERACTIVE"
+ if [[ $_ANTIGEN_INTERACTIVE != "" ]]; then
+ [[ $_ANTIGEN_INTERACTIVE == true ]];
+ return
+ fi
+
+ [[ "$ZSH_EVAL_CONTEXT" == toplevel* || "$ZSH_EVAL_CONTEXT" == cmdarg* ]];
+}
+# Parses and retrieves a remote branch given a branch name.
+#
+# If the branch name contains '*' it will retrieve remote branches
+# and try to match against tags and heads, returning the latest matching.
+#
+# Usage
+# -antigen-parse-branch https://github.com/user/repo.git x.y.z
+#
+# Returns
+# Branch name
+-antigen-parse-branch () {
+ local url="$1" branch="$2" branches
+
+ local match mbegin mend MATCH MBEGIN MEND
+
+ if [[ "$branch" =~ '\*' ]]; then
+ branches=$(git ls-remote --tags -q "$url" "$branch"|cut -d'/' -f3|sort -n|tail -1)
+ # There is no --refs flag in git 1.8 and below, this way we
+ # emulate this flag -- also git 1.8 ref order is undefined.
+ branch=${${branches#*/*/}%^*} # Why you are like this?
+ fi
+
+ echo $branch
+}
+-antigen-update-repos () {
+ local repo bundle url target
+ local log=/tmp/antigen-v2-migrate.log
+
+ echo "It seems you have bundles cloned with Antigen v1.x."
+ echo "We'll try to convert directory structure to v2."
+ echo
+
+ echo -n "Moving bundles to '\$ADOTDIR/bundles'... "
+
+ # Migrate old repos -> bundles
+ local errors=0
+ for repo in $ADOTDIR/repos/*; do
+ bundle=${repo/$ADOTDIR\/repos\//}
+ bundle=${bundle//-SLASH-/\/}
+ bundle=${bundle//-COLON-/\:}
+ bundle=${bundle//-STAR-/\*}
+ url=${bundle//-PIPE-/\|}
+ target=$(-antigen-get-clone-dir $url)
+ mkdir -p "${target:A:h}"
+ echo " ---> ${repo/$ADOTDIR\/} -> ${target/$ADOTDIR\/}" | tee > $log
+ mv "$repo" "$target" &> $log
+ if [[ $? != 0 ]]; then
+ echo "Failed to migrate '$repo'!."
+ errors+=1
+ fi
+ done
+
+ if [[ $errors == 0 ]]; then
+ echo "Done."
+ else
+ echo "An error ocurred!"
+ fi
+ echo
+
+ if [[ "$(ls -A $ADOTDIR/repos | wc -l | xargs)" == 0 ]]; then
+ echo "You can safely remove \$ADOTDIR/repos."
+ else
+ echo "Some bundles couldn't be migrated. See \$ADOTDIR/repos."
+ fi
+
+ echo
+ if [[ $errors == 0 ]]; then
+ echo "Bundles migrated successfuly."
+ rm $log
+ else
+ echo "Some errors occured. Review migration log in '$log'."
+ fi
+ antigen-reset
+}
+# Ensure that a clone exists for the given repo url and branch. If the first
+# argument is `update` and if a clone already exists for the given repo
+# and branch, it is pull-ed, i.e., updated.
+#
+# This function expects three arguments in order:
+# - 'url=<url>'
+# - 'update=true|false'
+# - 'verbose=true|false'
+#
+# Returns true|false Whether cloning/pulling was succesful
+-antigen-ensure-repo () {
+ # Argument defaults. Previously using ${1:?"missing url argument"} format
+ # but it seems to mess up with cram
+ if (( $# < 1 )); then
+ echo "Antigen: Missing url argument."
+ return 1
+ fi
+
+ # The url. No sane default for this, so just empty.
+ local url=$1
+ # Check if we have to update.
+ local update=${2:-false}
+ # Verbose output.
+ local verbose=${3:-false}
+
+ shift $#
+
+ # Get the clone's directory as per the given repo url and branch.
+ local clone_dir=$(-antigen-get-clone-dir $url)
+ if [[ -d "$clone_dir" && $update == false ]]; then
+ return true
+ fi
+
+ # A temporary function wrapping the `git` command with repeated arguments.
+ --plugin-git () {
+ (\cd -q "$clone_dir" && eval ${ANTIGEN_CLONE_ENV} git --git-dir="$clone_dir/.git" --no-pager "$@" &>>! $ANTIGEN_LOG)
+ }
+
+ local success=false
+
+ # If its a specific branch that we want, checkout that branch.
+ local branch="master" # TODO FIX THIS
+ if [[ $url == *\|* ]]; then
+ branch="$(-antigen-parse-branch ${url%|*} ${url#*|})"
+ fi
+
+ if [[ ! -d $clone_dir ]]; then
+ eval ${ANTIGEN_CLONE_ENV} git clone ${=ANTIGEN_CLONE_OPTS} --branch "$branch" -- "${url%|*}" "$clone_dir" &>> $ANTIGEN_LOG
+ success=$?
+ elif $update; then
+ # Save current revision.
+ local old_rev="$(--plugin-git rev-parse HEAD)"
+ # Pull changes if update requested.
+ --plugin-git checkout "$branch"
+ --plugin-git pull origin "$branch"
+ success=$?
+
+ # Update submodules.
+ --plugin-git submodule update ${=ANTIGEN_SUBMODULE_OPTS}
+ # Get the new revision.
+ local new_rev="$(--plugin-git rev-parse HEAD)"
+ fi
+
+ if [[ -n $old_rev && $old_rev != $new_rev ]]; then
+ echo Updated from $old_rev[0,7] to $new_rev[0,7].
+ if $verbose; then
+ --plugin-git log --oneline --reverse --no-merges --stat '@{1}..'
+ fi
+ fi
+
+ # Remove the temporary git wrapper function.
+ unfunction -- --plugin-git
+
+ return $success
+}
+# Helper function: Same as `$1=$2`, but will only happen if the name
+# specified by `$1` is not already set.
+-antigen-set-default () {
+ local arg_name="$1"
+ local arg_value="$2"
+ eval "test -z \"\$$arg_name\" && typeset -g $arg_name='$arg_value'"
+}
+
+-antigen-env-setup () {
+ typeset -gU fpath path
+
+ # Pre-startup initializations.
+ -antigen-set-default ANTIGEN_OMZ_REPO_URL \
+ https://github.com/robbyrussell/oh-my-zsh.git
+ -antigen-set-default ANTIGEN_PREZTO_REPO_URL \
+ https://github.com/sorin-ionescu/prezto.git
+ -antigen-set-default ANTIGEN_DEFAULT_REPO_URL $ANTIGEN_OMZ_REPO_URL
+
+ # Default Antigen directory.
+ -antigen-set-default ADOTDIR $HOME/.antigen
+ [[ ! -d $ADOTDIR ]] && mkdir -p $ADOTDIR
+
+ # Defaults bundles directory.
+ -antigen-set-default ANTIGEN_BUNDLES $ADOTDIR/bundles
+
+ # If there is no bundles directory, create it.
+ if [[ ! -d $ANTIGEN_BUNDLES ]]; then
+ mkdir -p $ANTIGEN_BUNDLES
+ # Check for v1 repos directory, transform it to v2 format.
+ [[ -d $ADOTDIR/repos ]] && -antigen-update-repos
+ fi
+
+ -antigen-set-default ANTIGEN_COMPDUMP "${ADOTDIR:-$HOME}/.zcompdump"
+ -antigen-set-default ANTIGEN_LOG /dev/null
+
+ # CLONE_OPTS uses ${=CLONE_OPTS} expansion so don't use spaces
+ # for arguments that can be passed as `--key=value`.
+ -antigen-set-default ANTIGEN_CLONE_ENV "GIT_TERMINAL_PROMPT=0"
+ -antigen-set-default ANTIGEN_CLONE_OPTS "--single-branch --recursive --depth=1"
+ -antigen-set-default ANTIGEN_SUBMODULE_OPTS "--recursive --depth=1"
+
+ # Complain when a bundle is already installed.
+ -antigen-set-default _ANTIGEN_WARN_DUPLICATES true
+
+ # Compatibility with oh-my-zsh themes.
+ -antigen-set-default _ANTIGEN_THEME_COMPAT true
+
+ # Add default built-in extensions to load at start up
+ -antigen-set-default _ANTIGEN_BUILTIN_EXTENSIONS 'lock parallel defer cache'
+
+ # Setup antigen's own completion.
+ if -antigen-interactive-mode; then
+ TRACE "Gonna create compdump file @ env-setup" COMPDUMP
+ autoload -Uz compinit
+ compinit -d "$ANTIGEN_COMPDUMP"
+ compdef _antigen antigen
+ else
+ (( $+functions[antigen-ext-init] )) && antigen-ext-init
+ fi
+}
+# Load a given bundle by sourcing it.
+#
+# The function also modifies fpath to add the bundle path.
+#
+# Usage
+# -antigen-load "bundle-url" ["location"] ["make_local_clone"] ["btype"]
+#
+# Returns
+# Integer. 0 if success 1 if an error ocurred.
+-antigen-load () {
+ local bundle list
+ typeset -A bundle; bundle=($@)
+
+ typeset -Ua list; list=()
+ local location="${bundle[dir]}/${bundle[loc]}"
+
+ # Prioritize location when given.
+ if [[ -f "${location}" ]]; then
+ list=(${location})
+ else
+ # Directory locations must be suffixed with slash
+ location="$location/"
+
+ # Prioritize theme with antigen-theme
+ if [[ ${bundle[btype]} == "theme" ]]; then
+ list=(${location}*.zsh-theme(N[1]))
+ fi
+
+ # Common frameworks
+ if [[ $#list == 0 ]]; then
+ # dot-plugin, init and functions support (omz, prezto)
+ # Support prezto function loading. See https://github.com/zsh-users/antigen/pull/428
+ list=(${location}*.plugin.zsh(N[1]) ${location}init.zsh(N[1]) ${location}/functions(N[1]))
+ fi
+
+ # Default to zsh and sh
+ if [[ $#list == 0 ]]; then
+ list=(${location}*.zsh(N) ${location}*.sh(N))
+ fi
+ fi
+
+ -antigen-load-env ${(kv)bundle}
+
+ # If there is any sourceable try to load it
+ if ! -antigen-load-source "${list[@]}" && [[ ! -d ${location} ]]; then
+ return 1
+ fi
+
+ return 0
+}
+
+-antigen-load-env () {
+ typeset -A bundle; bundle=($@)
+ local location=${bundle[dir]}/${bundle[loc]}
+
+ # Load to path if there is no sourceable
+ if [[ -d ${location} ]]; then
+ PATH="$PATH:${location:A}"
+ fpath+=("${location:A}")
+ return
+ fi
+
+ PATH="$PATH:${location:A:h}"
+ fpath+=("${location:A:h}")
+}
+
+-antigen-load-source () {
+ typeset -a list
+ list=($@)
+ local src match mbegin mend MATCH MBEGIN MEND
+
+ # Return error when we're given an empty list
+ if [[ $#list == 0 ]]; then
+ return 1
+ fi
+
+ # Using a for rather than `source $list` as we need to check for zsh-themes
+ # In order to create antigen-compat file. This is only needed for interactive-mode
+ # theme switching, for static loading (cache) there is no need.
+ for src in $list; do
+ if [[ $_ANTIGEN_THEME_COMPAT == true && -f "$src" && "$src" == *.zsh-theme* ]]; then
+ local compat="${src:A}.antigen-compat"
+ echo "# Generated by Antigen. Do not edit!" >! "$compat"
+ cat $src | sed -Ee '/\{$/,/^\}/!{
+ s/^local //
+ }' >>! "$compat"
+ src="$compat"
+ fi
+
+ if ! source "$src" 2>/dev/null; then
+ return 1
+ fi
+ done
+}
+# Usage:
+# -antigen-parse-args output_assoc_arr <args...>
+-antigen-parse-args () {
+ local argkey key value index=0 args
+ local match mbegin mend MATCH MBEGIN MEND
+
+ local var=$1
+ shift
+
+ # Bundle spec arguments' default values.
+ #setopt XTRACE VERBOSE
+ builtin typeset -A args
+ args[url]="$ANTIGEN_DEFAULT_REPO_URL"
+ #unsetopt XTRACE VERBOSE
+ args[loc]=/
+ args[make_local_clone]=true
+ args[btype]=plugin
+ #args[branch]= # commented out as it may cause assoc array kv mismatch
+
+ while [[ $# -gt 0 ]]; do
+ argkey="${1%\=*}"
+ key="${argkey//--/}"
+ value="${1#*=}"
+
+ case "$argkey" in
+ --url|--loc|--branch|--btype)
+ if [[ "$value" == "$argkey" ]]; then
+ printf "Required argument for '%s' not provided.\n" $key >&2
+ else
+ args[$key]="$value"
+ fi
+ ;;
+ --no-local-clone)
+ args[make_local_clone]=false
+ ;;
+ --*)
+ printf "Unknown argument '%s'.\n" $key >&2
+ ;;
+ *)
+ value=$key
+ case $index in
+ 0)
+ key=url
+ local domain=""
+ local url_path=$value
+ # Full url with protocol or ssh github url (github.com:org/repo)
+ if [[ "$value" =~ "://" || "$value" =~ ":" ]]; then
+ if [[ "$value" =~ [@.][^/:]+[:]?[0-9]*[:/]?(.*)@?$ ]]; then
+ url_path=$match[1]
+ domain=${value/$url_path/}
+ fi
+ fi
+
+ if [[ "$url_path" =~ '@' ]]; then
+ args[branch]="${url_path#*@}"
+ value="$domain${url_path%@*}"
+ else
+ value="$domain$url_path"
+ fi
+ ;;
+ 1) key=loc ;;
+ esac
+ let index+=1
+ args[$key]="$value"
+ ;;
+ esac
+
+ shift
+ done
+
+ # Check if url is just the plugin name. Super short syntax.
+ if [[ "${args[url]}" != */* ]]; then
+ case "$ANTIGEN_DEFAULT_REPO_URL" in
+ "$ANTIGEN_OMZ_REPO_URL")
+ args[loc]="plugins/${args[url]}"
+ ;;
+ "$ANTIGEN_PREZTO_REPO_URL")
+ args[loc]="modules/${args[url]}"
+ ;;
+ *)
+ args[loc]="${args[url]}"
+ ;;
+ esac
+ args[url]="$ANTIGEN_DEFAULT_REPO_URL"
+ fi
+
+ # Resolve the url.
+ # Expand short github url syntax: `username/reponame`.
+ local url="${args[url]}"
+ if [[ $url != git://* &&
+ $url != https://* &&
+ $url != http://* &&
+ $url != ssh://* &&
+ $url != /* &&
+ $url != *github.com:*/*
+ ]]; then
+ url="https://github.com/${url%.git}.git"
+ fi
+ args[url]="$url"
+
+ # Ignore local clone if url given is not a git directory
+ if [[ ${args[url]} == /* && ! -d ${args[url]}/.git ]]; then
+ args[make_local_clone]=false
+ fi
+
+ # Add the branch information to the url if we need to create a local clone.
+ # Format url in bundle-metadata format: url[|branch]
+ if [[ ! -z "${args[branch]}" && ${args[make_local_clone]} == true ]]; then
+ args[url]="${args[url]}|${args[branch]}"
+ fi
+
+ # Add the theme extension to `loc`, if this is a theme, but only
+ # if it's especified, ie, --loc=theme-name, in case when it's not
+ # specified antige-load-list will look for *.zsh-theme files
+ if [[ ${args[btype]} == "theme" &&
+ ${args[loc]} != "/" && ${args[loc]} != *.zsh-theme ]]; then
+ args[loc]="${args[loc]}.zsh-theme"
+ fi
+
+ local name="${args[url]%|*}"
+ local branch="${args[branch]}"
+
+ # Extract bundle name.
+ if [[ "$name" =~ '.*/(.*/.*).*$' ]]; then
+ name="${match[1]}"
+ fi
+ name="${name%.git*}"
+
+ # Format bundle name with optional branch.
+ if [[ -n "${branch}" ]]; then
+ args[name]="${name}@${branch}"
+ else
+ args[name]="${name}"
+ fi
+
+ # Format bundle path.
+ if [[ ${args[make_local_clone]} == true ]]; then
+ local bpath="$name"
+ # Suffix with branch/tag name
+ if [[ -n "$branch" ]]; then
+ # bpath is in the form of repo/name@version => repo/name-version
+ # Replace / with - in bundle branch.
+ local bbranch=${branch//\//-}
+ # If branch/tag is semver-like do replace * by x.
+ bbranch=${bbranch//\*/x}
+ bpath="${name}-${bbranch}"
+ fi
+
+ bpath="$ANTIGEN_BUNDLES/$bpath"
+ args[dir]="${(qq)bpath}"
+ else
+ # if it's local then path is just the "url" argument, loc remains the same
+ args[dir]=${args[url]}
+ fi
+
+ # Escape url and branch (may contain semver-like and pipe characters)
+ args[url]="${(qq)args[url]}"
+ if [[ -n "${args[branch]}" ]]; then
+ args[branch]="${(qq)args[branch]}"
+ fi
+
+ # Escape bundle name (may contain semver-like characters)
+ args[name]="${(qq)args[name]}"
+
+ eval "${var}=(${(kv)args})"
+
+ return 0
+}
+# Updates revert-info data with git hash.
+#
+# This does process only cloned bundles.
+#
+# Usage
+# -antigen-revert-info
+#
+# Returns
+# Nothing. Generates/updates $ADOTDIR/revert-info.
+-antigen-revert-info() {
+ local url
+ # Update your bundles, i.e., `git pull` in all the plugin repos.
+ date >! $ADOTDIR/revert-info
+
+ -antigen-get-cloned-bundles | while read url; do
+ local clone_dir="$(-antigen-get-clone-dir "$url")"
+ if [[ -d "$clone_dir" ]]; then
+ (echo -n "$clone_dir:"
+ \cd -q "$clone_dir"
+ git rev-parse HEAD) >> $ADOTDIR/revert-info
+ fi
+ done
+}
+-antigen-use-oh-my-zsh () {
+ typeset -g ZSH ZSH_CACHE_DIR
+ ANTIGEN_DEFAULT_REPO_URL=$ANTIGEN_OMZ_REPO_URL
+ if [[ -z "$ZSH" ]]; then
+ ZSH="$(-antigen-get-clone-dir "$ANTIGEN_DEFAULT_REPO_URL")"
+ fi
+ if [[ -z "$ZSH_CACHE_DIR" ]]; then
+ ZSH_CACHE_DIR="$ZSH/cache/"
+ fi
+ antigen-bundle --loc=lib
+}
+-antigen-use-prezto () {
+ ANTIGEN_DEFAULT_REPO_URL=$ANTIGEN_PREZTO_REPO_URL
+ antigen-bundle "$ANTIGEN_PREZTO_REPO_URL"
+}
+# Initialize completion
+antigen-apply () {
+ LOG "Called antigen-apply"
+
+ # Load the compinit module. This will readefine the `compdef` function to
+ # the one that actually initializes completions.
+ TRACE "Gonna create compdump file @ apply" COMPDUMP
+ autoload -Uz compinit
+ compinit -d "$ANTIGEN_COMPDUMP"
+
+ # Apply all `compinit`s that have been deferred.
+ local cdef
+ for cdef in "${__deferred_compdefs[@]}"; do
+ compdef "$cdef"
+ done
+
+ { zcompile "$ANTIGEN_COMPDUMP" } &!
+
+ unset __deferred_compdefs
+}
+# Syntaxes
+# antigen-bundle <url> [<loc>=/]
+# Keyword only arguments:
+# branch - The branch of the repo to use for this bundle.
+antigen-bundle () {
+ TRACE "Called antigen-bundle with $@" BUNDLE
+ if [[ -z "$1" ]]; then
+ printf "Antigen: Must provide a bundle url or name.\n" >&2
+ return 1
+ fi
+
+ builtin typeset -A bundle; -antigen-parse-args 'bundle' ${=@}
+ if [[ -z ${bundle[btype]} ]]; then
+ bundle[btype]=bundle
+ fi
+
+ local record="${bundle[url]} ${bundle[loc]} ${bundle[btype]} ${bundle[make_local_clone]}"
+ if [[ $_ANTIGEN_WARN_DUPLICATES == true && ! ${_ANTIGEN_BUNDLE_RECORD[(I)$record]} == 0 ]]; then
+ printf "Seems %s is already installed!\n" ${bundle[name]}
+ return 1
+ fi
+
+ # Clone bundle if we haven't done do already.
+ if [[ ! -d "${bundle[dir]}" ]]; then
+ if ! -antigen-bundle-install ${(kv)bundle}; then
+ return 1
+ fi
+ fi
+
+ # Load the plugin.
+ if ! -antigen-load ${(kv)bundle}; then
+ TRACE "-antigen-load failed to load ${bundle[name]}" BUNDLE
+ printf "Antigen: Failed to load %s.\n" ${bundle[btype]} >&2
+ return 1
+ fi
+
+ # Only add it to the record if it could be installed and loaded.
+ _ANTIGEN_BUNDLE_RECORD+=("$record")
+}
+
+#
+# Usage:
+# -antigen-bundle-install <record>
+# Returns:
+# 1 if it fails to install bundle
+-antigen-bundle-install () {
+ typeset -A bundle; bundle=($@)
+
+ # Ensure a clone exists for this repo, if needed.
+ # Get the clone's directory as per the given repo url and branch.
+ local bpath="${bundle[dir]}"
+ # Clone if it doesn't already exist.
+ local start=$(date +'%s')
+
+ printf "Installing %s... " "${bundle[name]}"
+
+ if ! -antigen-ensure-repo "${bundle[url]}"; then
+ # Return immediately if there is an error cloning
+ TRACE "-antigen-bundle-instal failed to clone ${bundle[url]}" BUNDLE
+ printf "Error! Activate logging and try again.\n" >&2
+ return 1
+ fi
+
+ local took=$(( $(date +'%s') - $start ))
+ printf "Done. Took %ds.\n" $took
+}
+antigen-bundles () {
+ # Bulk add many bundles at one go. Empty lines and lines starting with a `#`
+ # are ignored. Everything else is given to `antigen-bundle` as is, no
+ # quoting rules applied.
+ local line
+ setopt localoptions no_extended_glob # See https://github.com/zsh-users/antigen/issues/456
+ grep '^[[:space:]]*[^[:space:]#]' | while read line; do
+ antigen-bundle ${=line%#*}
+ done
+}
+# Cleanup unused repositories.
+antigen-cleanup () {
+ local force=false
+ if [[ $1 == --force ]]; then
+ force=true
+ fi
+
+ if [[ ! -d "$ANTIGEN_BUNDLES" || -z "$(\ls -A "$ANTIGEN_BUNDLES")" ]]; then
+ echo "You don't have any bundles."
+ return 0
+ fi
+
+ # Find directores in ANTIGEN_BUNDLES, that are not in the bundles record.
+ typeset -a unused_clones clones
+
+ local url record clone
+ for record in $(-antigen-get-cloned-bundles); do
+ url=${record% /*}
+ clones+=("$(-antigen-get-clone-dir $url)")
+ done
+
+ for clone in $ANTIGEN_BUNDLES/*/*(/); do
+ if [[ $clones[(I)$clone] == 0 ]]; then
+ unused_clones+=($clone)
+ fi
+ done
+
+ if [[ -z $unused_clones ]]; then
+ echo "You don't have any unidentified bundles."
+ return 0
+ fi
+
+ echo 'You have clones for the following repos, but are not used.'
+ echo "\n${(j:\n:)unused_clones}"
+
+ if $force || (echo -n '\nDelete them all? [y/N] '; read -q); then
+ echo
+ echo
+ for clone in $unused_clones; do
+ echo -n "Deleting clone \"$clone\"..."
+ \rm -rf "$clone"
+
+ echo ' done.'
+ done
+ else
+ echo
+ echo "Nothing deleted."
+ fi
+}
+antigen-help () {
+ antigen-version
+
+ cat <<EOF
+
+Antigen is a plugin management system for zsh. It makes it easy to grab awesome
+shell scripts and utilities, put up on Github.
+
+Usage: antigen <command> [args]
+
+Commands:
+ apply Must be called in the zshrc after all calls to 'antigen bundle'.
+ bundle Install and load a plugin.
+ cache-gen Generate Antigen's cache with currently loaded bundles.
+ cleanup Remove clones of repos not used by any loaded plugins.
+ init Use caching to quickly load bundles.
+ list List currently loaded plugins.
+ purge Remove a bundle from the filesystem.
+ reset Clean the generated cache.
+ restore Restore plugin state from a snapshot file.
+ revert Revert plugins to their state prior to the last time 'antigen
+ update' was run.
+ selfupdate Update antigen.
+ snapshot Create a snapshot of all active plugin repos and save it to a
+ snapshot file.
+ update Update plugins.
+ use Load a supported zsh pre-packaged framework.
+
+For further details and complete documentation, visit the project's page at
+'http://antigen.sharats.me'.
+EOF
+}
+# Antigen command to load antigen configuration
+#
+# This method is slighlty more performing than using various antigen-* methods.
+#
+# Usage
+# Referencing an antigen configuration file:
+#
+# antigen-init "/path/to/antigenrc"
+#
+# or using HEREDOCS:
+#
+# antigen-init <<EOBUNDLES
+# antigen use oh-my-zsh
+#
+# antigen bundle zsh/bundle
+# antigen bundle zsh/example
+#
+# antigen theme zsh/theme
+#
+# antigen apply
+# EOBUNDLES
+#
+# Returns
+# Nothing
+antigen-init () {
+ local src="$1" line
+
+ # If we're given an argument it should be a path to a file
+ if [[ -n "$src" ]]; then
+ if [[ -f "$src" ]]; then
+ source "$src"
+ return
+ else
+ printf "Antigen: invalid argument provided.\n" >&2
+ return 1
+ fi
+ fi
+
+ # Otherwise we expect it to be a heredoc
+ grep '^[[:space:]]*[^[:space:]#]' | while read -r line; do
+ eval $line
+ done
+}
+# List instaled bundles either in long (record), short or simple format.
+#
+# Usage
+# antigen-list [--short|--long|--simple]
+#
+# Returns
+# List of bundles
+antigen-list () {
+ local format=$1
+
+ # List all currently installed bundles.
+ if [[ -z $_ANTIGEN_BUNDLE_RECORD ]]; then
+ echo "You don't have any bundles." >&2
+ return 1
+ fi
+
+ -antigen-get-bundles $format
+}
+# Remove a bundle from filesystem
+#
+# Usage
+# antigen-purge example/bundle [--force]
+#
+# Returns
+# Nothing. Removes bundle from filesystem.
+antigen-purge () {
+ local bundle=$1
+ local force=$2
+
+ if [[ $# -eq 0 ]]; then
+ echo "Antigen: Missing argument." >&2
+ return 1
+ fi
+
+ if -antigen-purge-bundle $bundle $force; then
+ antigen-reset
+ else
+ return $?
+ fi
+
+ return 0
+}
+
+# Remove a bundle from filesystem
+#
+# Usage
+# antigen-purge example/bundle [--force]
+#
+# Returns
+# Nothing. Removes bundle from filesystem.
+-antigen-purge-bundle () {
+ local bundle=$1
+ local force=$2
+ local clone_dir=""
+
+ local record=""
+ local url=""
+ local make_local_clone=""
+
+ if [[ $# -eq 0 ]]; then
+ echo "Antigen: Missing argument." >&2
+ return 1
+ fi
+
+ # local keyword doesn't work on zsh <= 5.0.0
+ record=$(-antigen-find-record $bundle)
+
+ if [[ ! -n "$record" ]]; then
+ echo "Bundle not found in record. Try 'antigen bundle $bundle' first." >&2
+ return 1
+ fi
+
+ url="$(echo "$record" | cut -d' ' -f1)"
+ make_local_clone=$(echo "$record" | cut -d' ' -f4)
+
+ if [[ $make_local_clone == "false" ]]; then
+ echo "Bundle has no local clone. Will not be removed." >&2
+ return 1
+ fi
+
+ clone_dir=$(-antigen-get-clone-dir "$url")
+ if [[ $force == "--force" ]] || read -q "?Remove '$clone_dir'? (y/n) "; then
+ # Need empty line after read -q
+ [[ ! -n $force ]] && echo "" || echo "Removing '$clone_dir'.";
+ rm -rf "$clone_dir"
+ return $?
+ fi
+
+ return 1
+}
+# Removes cache payload and metadata if available
+#
+# Usage
+# antigen-reset
+#
+# Returns
+# Nothing
+antigen-reset () {
+ [[ -f "$ANTIGEN_CACHE" ]] && rm -f "$ANTIGEN_CACHE" "$ANTIGEN_CACHE.zwc" 1> /dev/null
+ [[ -f "$ANTIGEN_RSRC" ]] && rm -f "$ANTIGEN_RSRC" 1> /dev/null
+ [[ -f "$ANTIGEN_COMPDUMP" ]] && rm -f "$ANTIGEN_COMPDUMP" "$ANTIGEN_COMPDUMP.zwc" 1> /dev/null
+ [[ -f "$ANTIGEN_LOCK" ]] && rm -f "$ANTIGEN_LOCK" 1> /dev/null
+ echo 'Done. Please open a new shell to see the changes.'
+}
+antigen-restore () {
+ local line
+ if [[ $# == 0 ]]; then
+ echo 'Please provide a snapshot file to restore from.' >&2
+ return 1
+ fi
+
+ local snapshot_file="$1"
+
+ # TODO: Before doing anything with the snapshot file, verify its checksum.
+ # If it fails, notify this to the user and confirm if restore should
+ # proceed.
+
+ echo -n "Restoring from $snapshot_file..."
+
+ sed -n '1!p' "$snapshot_file" |
+ while read line; do
+ local version_hash="${line%% *}"
+ local url="${line##* }"
+ local clone_dir="$(-antigen-get-clone-dir "$url")"
+
+ if [[ ! -d $clone_dir ]]; then
+ git clone "$url" "$clone_dir" &> /dev/null
+ fi
+
+ (\cd -q "$clone_dir" && git checkout $version_hash) &> /dev/null
+ done
+
+ echo ' done.'
+ echo 'Please open a new shell to get the restored changes.'
+}
+# Reads $ADORDIR/revert-info and restores bundles' revision
+antigen-revert () {
+ local line
+ if [[ -f $ADOTDIR/revert-info ]]; then
+ cat $ADOTDIR/revert-info | sed -n '1!p' | while read line; do
+ local dir="$(echo "$line" | cut -d: -f1)"
+ git --git-dir="$dir/.git" --work-tree="$dir" \
+ checkout "$(echo "$line" | cut -d: -f2)" 2> /dev/null
+ done
+
+ echo "Reverted to state before running -update on $(
+ cat $ADOTDIR/revert-info | sed -n '1p')."
+
+ else
+ echo 'No revert information available. Cannot revert.' >&2
+ return 1
+ fi
+}
+# Update (with `git pull`) antigen itself.
+# TODO: Once update is finished, show a summary of the new commits, as a kind of
+# "what's new" message.
+antigen-selfupdate () {
+ (\cd -q $_ANTIGEN_INSTALL_DIR
+ if [[ ! ( -d .git || -f .git ) ]]; then
+ echo "Your copy of antigen doesn't appear to be a git clone. " \
+ "The 'selfupdate' command cannot work in this case."
+ return 1
+ fi
+ local head="$(git rev-parse --abbrev-ref HEAD)"
+ if [[ $head == "HEAD" ]]; then
+ # If current head is detached HEAD, checkout to master branch.
+ git checkout master
+ fi
+ git pull
+
+ # TODO Should be transparently hooked by zcache
+ antigen-reset &>> /dev/null
+ )
+}
+antigen-snapshot () {
+ local snapshot_file="${1:-antigen-shapshot}"
+ local urls url dir version_hash snapshot_content
+ local -a bundles
+
+ # The snapshot content lines are pairs of repo-url and git version hash, in
+ # the form:
+ # <version-hash> <repo-url>
+ urls=$(-antigen-echo-record | awk '$4 == "true" {print $1}' | sort -u)
+ for url in ${(f)urls}; do
+ dir="$(-antigen-get-clone-dir "$url")"
+ version_hash="$(\cd -q "$dir" && git rev-parse HEAD)"
+ bundles+=("$version_hash $url");
+ done
+ snapshot_content=${(j:\n:)bundles}
+
+ {
+ # The first line in the snapshot file is for metadata, in the form:
+ # key='value'; key='value'; key='value';
+ # Where `key`s are valid shell variable names.
+
+ # Snapshot version. Has no relation to antigen version. If the snapshot
+ # file format changes, this number can be incremented.
+ echo -n "version='1';"
+
+ # Snapshot creation date+time.
+ echo -n " created_on='$(date)';"
+
+ # Add a checksum with the md5 checksum of all the snapshot lines.
+ chksum() { (md5sum; test $? = 127 && md5) 2>/dev/null | cut -d' ' -f1 }
+ local checksum="$(echo "$snapshot_content" | chksum)"
+ unset -f chksum;
+ echo -n " checksum='${checksum%% *}';"
+
+ # A newline after the metadata and then the snapshot lines.
+ echo "\n$snapshot_content"
+
+ } > "$snapshot_file"
+}
+# Loads a given theme.
+#
+# Shares the same syntax as antigen-bundle command.
+#
+# Usage
+# antigen-theme zsh/theme[.zsh-theme]
+#
+# Returns
+# 0 if everything was succesfully
+antigen-theme () {
+ local name=$1 result=0 record
+ local match mbegin mend MATCH MBEGIN MEND
+
+ if [[ -z "$1" ]]; then
+ printf "Antigen: Must provide a theme url or name.\n" >&2
+ return 1
+ fi
+
+ -antigen-theme-reset-hooks
+
+ record=$(-antigen-find-record "theme")
+ if [[ "$1" != */* && "$1" != --* ]]; then
+ # The first argument is just a name of the plugin, to be picked up from
+ # the default repo.
+ antigen-bundle --loc=themes/$name --btype=theme
+
+ else
+ antigen-bundle "$@" --btype=theme
+
+ fi
+ result=$?
+
+ # Remove a theme from the record if the following conditions apply:
+ # - there was no error in bundling the given theme
+ # - there is a theme registered
+ # - registered theme is not the same as the current one
+ if [[ $result == 0 && -n $record ]]; then
+ # http://zsh-workers.zsh.narkive.com/QwfCWpW8/what-s-wrong-with-this-expression
+ if [[ "$record" =~ "$@" ]]; then
+ return $result
+ else
+ _ANTIGEN_BUNDLE_RECORD[$_ANTIGEN_BUNDLE_RECORD[(I)$record]]=()
+ fi
+ fi
+
+ return $result
+}
+
+-antigen-theme-reset-hooks () {
+ # This is only needed on interactive mode
+ autoload -U add-zsh-hook is-at-least
+ local hook
+
+ # Clear out prompts
+ PROMPT=""
+ if [[ -n $RPROMPT ]]; then
+ RPROMPT=""
+ fi
+
+ for hook in chpwd precmd preexec periodic; do
+ add-zsh-hook -D "${hook}" "prompt_*"
+ # common in omz themes
+ add-zsh-hook -D "${hook}" "*_${hook}"
+ add-zsh-hook -d "${hook}" "vcs_info"
+ done
+}
+# Updates the bundles or a single bundle.
+#
+# Usage
+# antigen-update [example/bundle]
+#
+# Returns
+# Nothing. Performs a `git pull`.
+antigen-update () {
+ local bundle=$1 url
+
+ # Clear log
+ :> $ANTIGEN_LOG
+
+ # Update revert-info data
+ -antigen-revert-info
+
+ # If no argument is given we update all bundles
+ if [[ $# -eq 0 ]]; then
+ # Here we're ignoring all non cloned bundles (ie, --no-local-clone)
+ -antigen-get-cloned-bundles | while read url; do
+ -antigen-update-bundle $url
+ done
+ # TODO next minor version
+ # antigen-reset
+ else
+ if -antigen-update-bundle $bundle; then
+ # TODO next minor version
+ # antigen-reset
+ else
+ return $?
+ fi
+ fi
+}
+
+# Updates a bundle performing a `git pull`.
+#
+# Usage
+# -antigen-update-bundle example/bundle
+#
+# Returns
+# Nothing. Performs a `git pull`.
+-antigen-update-bundle () {
+ local bundle="$1"
+ local record=""
+ local url=""
+ local make_local_clone=""
+ local start=$(date +'%s')
+
+ if [[ $# -eq 0 ]]; then
+ printf "Antigen: Missing argument.\n" >&2
+ return 1
+ fi
+
+ record=$(-antigen-find-record $bundle)
+ if [[ ! -n "$record" ]]; then
+ printf "Bundle not found in record. Try 'antigen bundle %s' first.\n" $bundle >&2
+ return 1
+ fi
+
+ url="$(echo "$record" | cut -d' ' -f1)"
+ make_local_clone=$(echo "$record" | cut -d' ' -f4)
+
+ local branch="master"
+ if [[ $url == *\|* ]]; then
+ branch="$(-antigen-parse-branch ${url%|*} ${url#*|})"
+ fi
+
+ printf "Updating %s... " $(-antigen-bundle-short-name "$url" "$branch")
+
+ if [[ $make_local_clone == "false" ]]; then
+ printf "Bundle has no local clone. Will not be updated.\n" >&2
+ return 1
+ fi
+
+ # update=true verbose=false
+ if ! -antigen-ensure-repo "$url" true false; then
+ printf "Error! Activate logging and try again.\n" >&2
+ return 1
+ fi
+
+ local took=$(( $(date +'%s') - $start ))
+ printf "Done. Took %ds.\n" $took
+}
+antigen-use () {
+ if [[ $1 == oh-my-zsh ]]; then
+ -antigen-use-oh-my-zsh
+ elif [[ $1 == prezto ]]; then
+ -antigen-use-prezto
+ elif [[ $1 != "" ]]; then
+ ANTIGEN_DEFAULT_REPO_URL=$1
+ antigen-bundle $@
+ else
+ echo 'Usage: antigen-use <library-name|url>' >&2
+ echo 'Where <library-name> is any one of the following:' >&2
+ echo ' * oh-my-zsh' >&2
+ echo ' * prezto' >&2
+ echo '<url> is the full url.' >&2
+ return 1
+ fi
+}
+antigen-version () {
+ local version="v2.2.2"
+ local extensions revision=""
+ if [[ -d $_ANTIGEN_INSTALL_DIR/.git ]]; then
+ revision=" ($(git --git-dir=$_ANTIGEN_INSTALL_DIR/.git rev-parse --short '@'))"
+ fi
+
+ printf "Antigen %s%s\n" $version $revision
+ if (( $+functions[antigen-ext] )); then
+ typeset -a extensions; extensions=($(antigen-ext-list))
+ if [[ $#extensions -gt 0 ]]; then
+ printf "Extensions loaded: %s\n" ${(j:, :)extensions}
+ fi
+ fi
+}
+typeset -Ag _ANTIGEN_HOOKS; _ANTIGEN_HOOKS=()
+typeset -Ag _ANTIGEN_HOOKS_META; _ANTIGEN_HOOKS_META=()
+typeset -g _ANTIGEN_HOOK_PREFIX="-antigen-hook-"
+typeset -g _ANTIGEN_EXTENSIONS; _ANTIGEN_EXTENSIONS=()
+
+# -antigen-add-hook antigen-apply antigen-apply-hook replace
+# - Replaces hooked function with hook, do not call hooked function
+# - Return -1 to stop calling further hooks
+# -antigen-add-hook antigen-apply antigen-apply-hook pre (pre-call)
+# - By default it will call hooked function
+# -antigen-add-hook antigen-pply antigen-apply-hook post (post-call)
+# - Calls antigen-apply and then calls hook function
+# Usage:
+# -antigen-add-hook antigen-apply antigen-apply-hook ["replace"|"pre"|"post"] ["once"|"repeat"]
+antigen-add-hook () {
+ local target="$1" hook="$2" type="$3" mode="${4:-repeat}"
+
+ if (( ! $+functions[$target] )); then
+ printf "Antigen: Function %s doesn't exist.\n" $target
+ return 1
+ fi
+
+ if (( ! $+functions[$hook] )); then
+ printf "Antigen: Function %s doesn't exist.\n" $hook
+ return 1
+ fi
+
+ if [[ "${_ANTIGEN_HOOKS[$target]}" == "" ]]; then
+ _ANTIGEN_HOOKS[$target]="${hook}"
+ else
+ _ANTIGEN_HOOKS[$target]="${_ANTIGEN_HOOKS[$target]}:${hook}"
+ fi
+
+ _ANTIGEN_HOOKS_META[$hook]="target $target type $type mode $mode called 0"
+
+ # Do shadow for this function if there is none already
+ local hook_function="${_ANTIGEN_HOOK_PREFIX}$target"
+ if (( ! $+functions[$hook_function] )); then
+ # Preserve hooked function
+ eval "function ${_ANTIGEN_HOOK_PREFIX}$(functions -- $target)"
+
+ # Create hook, call hook-handler to further process hook functions
+ eval "function $target () {
+ noglob -antigen-hook-handler $target \$@
+ return \$?
+ }"
+ fi
+
+ return 0
+}
+
+# Private function to handle multiple hooks in a central point.
+-antigen-hook-handler () {
+ local target="$1" args hook called
+ local hooks meta
+ shift
+ typeset -a args; args=(${@})
+
+ typeset -a pre_hooks replace_hooks post_hooks;
+ typeset -a hooks; hooks=(${(s|:|)_ANTIGEN_HOOKS[$target]})
+
+ typeset -A meta;
+ for hook in $hooks; do
+ meta=(${(s: :)_ANTIGEN_HOOKS_META[$hook]})
+ if [[ ${meta[mode]} == "once" && ${meta[called]} == 1 ]]; then
+ WARN "Ignoring hook due to mode ${meta[mode]}: $hook"
+ continue
+ fi
+
+ let called=${meta[called]}+1
+ meta[called]=$called
+ _ANTIGEN_HOOKS_META[$hook]="${(kv)meta}"
+ WARN "Updated meta: "${(kv)meta}
+
+ case "${meta[type]}" in
+ "pre")
+ pre_hooks+=($hook)
+ ;;
+ "replace")
+ replace_hooks+=($hook)
+ ;;
+ "post")
+ post_hooks+=($hook)
+ ;;
+ esac
+ done
+
+ WARN "Processing hooks: ${hooks}"
+
+ for hook in $pre_hooks; do
+ WARN "Pre hook:" $hook $args
+ noglob $hook $args
+ [[ $? == -1 ]] && WARN "$hook shortcircuited" && return $ret
+ done
+
+ # A replace hook will return inmediately
+ local replace_hook=0 ret=0
+ for hook in $replace_hooks; do
+ replace_hook=1
+ # Should not be needed if `antigen-remove-hook` removed unneeded hooks.
+ if (( $+functions[$hook] )); then
+ WARN "Replace hook:" $hook $args
+ noglob $hook $args
+ [[ $? == -1 ]] && WARN "$hook shortcircuited" && return $ret
+ fi
+ done
+
+ if [[ $replace_hook == 0 ]]; then
+ WARN "${_ANTIGEN_HOOK_PREFIX}$target $args"
+ noglob ${_ANTIGEN_HOOK_PREFIX}$target $args
+ ret=$?
+ else
+ WARN "Replaced hooked function."
+ fi
+
+ for hook in $post_hooks; do
+ WARN "Post hook:" $hook $args
+ noglob $hook $args
+ [[ $? == -1 ]] && WARN "$hook shortcircuited" && return $ret
+ done
+
+ LOG "Return from hook ${target} with ${ret}"
+
+ return $ret
+}
+
+# Usage:
+# -antigen-remove-hook antigen-apply-hook
+antigen-remove-hook () {
+ local hook="$1"
+ typeset -A meta; meta=(${(s: :)_ANTIGEN_HOOKS_META[$hook]})
+ local target="${meta[target]}"
+ local -a hooks; hooks=(${(s|:|)_ANTIGEN_HOOKS[$target]})
+
+ # Remove registered hook
+ if [[ $#hooks > 0 ]]; then
+ hooks[$hooks[(I)$hook]]=()
+ fi
+ _ANTIGEN_HOOKS[${target}]="${(j|:|)hooks}"
+
+ if [[ $#hooks == 0 ]]; then
+ # Destroy base hook
+ eval "function $(functions -- ${_ANTIGEN_HOOK_PREFIX}$target | sed s/${_ANTIGEN_HOOK_PREFIX}//)"
+ if (( $+functions[${_ANTIGEN_HOOK_PREFIX}$target] )); then
+ unfunction -- "${_ANTIGEN_HOOK_PREFIX}$target"
+ fi
+ fi
+
+ unfunction -- $hook 2> /dev/null
+}
+
+# Remove all defined hooks.
+-antigen-reset-hooks () {
+ local target
+
+ for target in ${(k)_ANTIGEN_HOOKS}; do
+ # Release all hooked functions
+ eval "function $(functions -- ${_ANTIGEN_HOOK_PREFIX}$target | sed s/${_ANTIGEN_HOOK_PREFIX}//)"
+ unfunction -- "${_ANTIGEN_HOOK_PREFIX}$target" 2> /dev/null
+ done
+
+ _ANTIGEN_HOOKS=()
+ _ANTIGEN_HOOKS_META=()
+ _ANTIGEN_EXTENSIONS=()
+}
+
+# Initializes an extension
+# Usage:
+# antigen-ext ext-name
+antigen-ext () {
+ local ext=$1
+ local func="-antigen-$ext-init"
+ if (( $+functions[$func] && $_ANTIGEN_EXTENSIONS[(I)$ext] == 0 )); then
+ eval $func
+ local ret=$?
+ WARN "$func return code was $ret"
+ if (( $ret == 0 )); then
+ LOG "LOADED EXTENSION $ext" EXT
+ -antigen-$ext-execute && _ANTIGEN_EXTENSIONS+=($ext)
+ else
+ WARN "IGNORING EXTENSION $func" EXT
+ return 1
+ fi
+
+ else
+ printf "Antigen: No extension defined or already loaded: %s\n" $func >&2
+ return 1
+ fi
+}
+
+# List installed extensions
+# Usage:
+# antigen ext-list
+antigen-ext-list () {
+ echo $_ANTIGEN_EXTENSIONS
+}
+
+# Initializes built-in extensions
+# Usage:
+# antigen-ext-init
+antigen-ext-init () {
+ # Initialize extensions. unless in interactive mode.
+ local ext
+ for ext in ${(s/ /)_ANTIGEN_BUILTIN_EXTENSIONS}; do
+ # Check if extension is loaded before intializing it
+ (( $+functions[-antigen-$ext-init] )) && antigen-ext $ext
+ done
+}
+# Initialize defer lib
+-antigen-defer-init () {
+ typeset -ga _DEFERRED_BUNDLE; _DEFERRED_BUNDLE=()
+ if -antigen-interactive-mode; then
+ return 1
+ fi
+}
+
+-antigen-defer-execute () {
+ # Hooks antigen-bundle in order to defer its execution.
+ antigen-bundle-defer () {
+ _DEFERRED_BUNDLE+=("${(j: :)${@}}")
+ return -1 # Stop right there
+ }
+ antigen-add-hook antigen-bundle antigen-bundle-defer replace
+
+ # Hooks antigen-apply in order to release hooked functions
+ antigen-apply-defer () {
+ WARN "Defer pre-apply" DEFER PRE-APPLY
+ antigen-remove-hook antigen-bundle-defer
+
+ # Process all deferred bundles.
+ local bundle
+ for bundle in ${_DEFERRED_BUNDLE[@]}; do
+ LOG "Processing deferred bundle: ${bundle}" DEFER
+ antigen-bundle $bundle
+ done
+
+ unset _DEFERRED_BUNDLE
+ }
+ antigen-add-hook antigen-apply antigen-apply-defer pre once
+}
+# Initialize lock lib
+-antigen-lock-init () {
+ # Default lock path.
+ -antigen-set-default ANTIGEN_LOCK $ADOTDIR/.lock
+ typeset -g _ANTIGEN_LOCK_PROCESS=false
+
+ # Use env variable to determine if we should load this extension
+ -antigen-set-default ANTIGEN_MUTEX true
+ # Set ANTIGEN_MUTEX to false to avoid loading this extension
+ if [[ $ANTIGEN_MUTEX == true ]]; then
+ return 0;
+ fi
+
+ # Do not use mutex
+ return 1;
+}
+
+-antigen-lock-execute () {
+ # Hook antigen command in order to check/create a lock file.
+ # This hook is only run once then releases itself.
+ antigen-lock () {
+ LOG "antigen-lock called"
+ # If there is a lock set up then we won't process anything.
+ if [[ -f $ANTIGEN_LOCK ]]; then
+ # Set up flag do the message is not repeated for each antigen-* command
+ [[ $_ANTIGEN_LOCK_PROCESS == false ]] && printf "Antigen: Another process in running.\n"
+ _ANTIGEN_LOCK_PROCESS=true
+ # Do not further process hooks. For this hook to properly work it
+ # should be registered first.
+ return -1
+ fi
+
+ WARN "Creating antigen-lock file at $ANTIGEN_LOCK"
+ touch $ANTIGEN_LOCK
+ }
+ antigen-add-hook antigen antigen-lock pre once
+
+ # Hook antigen-apply in order to release .lock file.
+ antigen-apply-lock () {
+ WARN "Freeing antigen-lock file at $ANTIGEN_LOCK"
+ unset _ANTIGEN_LOCK_PROCESS
+ rm -f $ANTIGEN_LOCK &> /dev/null
+ }
+ antigen-add-hook antigen-apply antigen-apply-lock post once
+}
+# Initialize parallel lib
+-antigen-parallel-init () {
+ WARN "Init parallel extension" PARALLEL
+ typeset -ga _PARALLEL_BUNDLE; _PARALLEL_BUNDLE=()
+ if -antigen-interactive-mode; then
+ return 1
+ fi
+}
+
+-antigen-parallel-execute() {
+ WARN "Exec parallel extension" PARALLEL
+ # Install bundles in parallel
+ antigen-bundle-parallel-execute () {
+ WARN "Parallel antigen-bundle-parallel-execute" PARALLEL
+ typeset -a pids; pids=()
+ local args pid
+
+ WARN "Gonna install in parallel ${#_PARALLEL_BUNDLE} bundles." PARALLEL
+ # Do ensure-repo in parallel
+ WARN "${_PARALLEL_BUNDLE}" PARALLEL
+ typeset -Ua repositories # Used to keep track of cloned repositories to avoid
+ # trying to clone it multiple times.
+ for args in ${_PARALLEL_BUNDLE}; do
+ typeset -A bundle; -antigen-parse-args 'bundle' ${=args}
+
+ if [[ ! -d ${bundle[dir]} && $repositories[(I)${bundle[url]}] == 0 ]]; then
+ WARN "Install in parallel ${bundle[name]}." PARALLEL
+ echo "Installing ${bundle[name]}!..."
+ # $bundle[url]'s format is "url|branch" as to create "$ANTIGEN_BUNDLES/bundle/name-branch",
+ # this way you may require multiple branches from the same repository.
+ -antigen-ensure-repo "${bundle[url]}" > /dev/null &!
+ pids+=($!)
+ else
+ WARN "Bundle ${bundle[name]} already cloned locally." PARALLEL
+ fi
+
+ repositories+=(${bundle[url]})
+ done
+
+ # Wait for all background processes to end
+ while [[ $#pids > 0 ]]; do
+ for pid in $pids; do
+ # `ps` may diplay an error message such "Signal 18 (CONT) caught by ps
+ # (procps-ng version 3.3.9).", see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732410
+ if [[ $(ps -o pid= -p $pid 2>/dev/null) == "" ]]; then
+ pids[$pids[(I)$pid]]=()
+ fi
+ done
+ sleep .5
+ done
+
+ builtin local bundle &> /dev/null
+ for bundle in ${_PARALLEL_BUNDLE[@]}; do
+ antigen-bundle $bundle
+ done
+
+
+ WARN "Parallel install done" PARALLEL
+ }
+
+ # Hooks antigen-apply in order to release hooked functions
+ antigen-apply-parallel () {
+ WARN "Parallel pre-apply" PARALLEL PRE-APPLY
+ #antigen-remove-hook antigen-pre-apply-parallel
+ # Hooks antigen-bundle in order to parallel its execution.
+ antigen-bundle-parallel () {
+ TRACE "antigen-bundle-parallel: $@" PARALLEL
+ _PARALLEL_BUNDLE+=("${(j: :)${@}}")
+ }
+ antigen-add-hook antigen-bundle antigen-bundle-parallel replace
+ }
+ antigen-add-hook antigen-apply antigen-apply-parallel pre once
+
+ antigen-apply-parallel-execute () {
+ WARN "Parallel replace-apply" PARALLEL REPLACE-APPLY
+ antigen-remove-hook antigen-bundle-parallel
+ # Process all parallel bundles.
+ antigen-bundle-parallel-execute
+
+ unset _PARALLEL_BUNDLE
+ antigen-remove-hook antigen-apply-parallel-execute
+ antigen-apply
+ }
+ antigen-add-hook antigen-apply antigen-apply-parallel-execute replace once
+}
+typeset -ga _ZCACHE_BUNDLE_SOURCE _ZCACHE_CAPTURE_BUNDLE
+typeset -g _ZCACHE_CAPTURE_PREFIX
+
+# Generates cache from listed bundles.
+#
+# Iterates over _ANTIGEN_BUNDLE_RECORD and join all needed sources into one,
+# if this is done through -antigen-load-list.
+# Result is stored in ANTIGEN_CACHE.
+#
+# _ANTIGEN_BUNDLE_RECORD and fpath is stored in cache.
+#
+# Usage
+# -zcache-generate-cache
+#
+# Returns
+# Nothing. Generates ANTIGEN_CACHE
+-antigen-cache-generate () {
+ local -aU _fpath _PATH _sources
+ local record
+
+ LOG "Gonna generate cache for $_ZCACHE_BUNDLE_SOURCE"
+ for record in $_ZCACHE_BUNDLE_SOURCE; do
+ record=${record:A}
+ # LOG "Caching $record"
+ if [[ -f $record ]]; then
+ # Adding $'\n' as a suffix as j:\n: doesn't work inside a heredoc.
+ if [[ $_ANTIGEN_THEME_COMPAT == true && "$record" == *.zsh-theme* ]]; then
+ local compat="${record:A}.antigen-compat"
+ echo "# Generated by Antigen. Do not edit!" >! "$compat"
+ cat $record | sed -Ee '/\{$/,/^\}/!{
+ s/^local //
+ }' >>! "$compat"
+ record="$compat"
+ fi
+ _sources+=("source '${record}';"$'\n')
+ elif [[ -d $record ]]; then
+ _PATH+=("${record}")
+ _fpath+=("${record}")
+ fi
+ done
+
+cat > $ANTIGEN_CACHE <<EOC
+#-- START ZCACHE GENERATED FILE
+#-- GENERATED: $(date)
+#-- ANTIGEN v2.2.2
+$(functions -- _antigen)
+antigen () {
+ local MATCH MBEGIN MEND
+ [[ "\$ZSH_EVAL_CONTEXT" =~ "toplevel:*" || "\$ZSH_EVAL_CONTEXT" =~ "cmdarg:*" ]] && source "$_ANTIGEN_INSTALL_DIR/antigen.zsh" && eval antigen \$@;
+ return 0;
+}
+typeset -gaU fpath path
+fpath+=(${_fpath[@]}) path+=(${_PATH[@]})
+_antigen_compinit () {
+ autoload -Uz compinit; compinit -d "$ANTIGEN_COMPDUMP"; compdef _antigen antigen
+ add-zsh-hook -D precmd _antigen_compinit
+}
+autoload -Uz add-zsh-hook; add-zsh-hook precmd _antigen_compinit
+compdef () {}
+
+if [[ -n "$ZSH" ]]; then
+ ZSH="$ZSH"; ZSH_CACHE_DIR="$ZSH_CACHE_DIR"
+fi
+#--- BUNDLES BEGIN
+${(j::)_sources}
+#--- BUNDLES END
+typeset -gaU _ANTIGEN_BUNDLE_RECORD; _ANTIGEN_BUNDLE_RECORD=($(print ${(qq)_ANTIGEN_BUNDLE_RECORD}))
+typeset -g _ANTIGEN_CACHE_LOADED; _ANTIGEN_CACHE_LOADED=true
+typeset -ga _ZCACHE_BUNDLE_SOURCE; _ZCACHE_BUNDLE_SOURCE=($(print ${(qq)_ZCACHE_BUNDLE_SOURCE}))
+typeset -g _ANTIGEN_CACHE_VERSION; _ANTIGEN_CACHE_VERSION='v2.2.2'
+
+#-- END ZCACHE GENERATED FILE
+EOC
+
+ { zcompile "$ANTIGEN_CACHE" } &!
+
+ # Compile config files, if any
+ LOG "CHECK_FILES $ANTIGEN_CHECK_FILES"
+ [[ $ANTIGEN_AUTO_CONFIG == true && -n $ANTIGEN_CHECK_FILES ]] && {
+ echo ${(j:\n:)ANTIGEN_CHECK_FILES} >! "$ANTIGEN_RSRC"
+ for rsrc in $ANTIGEN_CHECK_FILES; do
+ zcompile $rsrc
+ done
+ } &!
+
+ return true
+}
+
+# Initializes caching mechanism.
+#
+# Hooks `antigen-bundle` and `antigen-apply` in order to defer bundle install
+# and load. All bundles are loaded from generated cache rather than dynamically
+# as these are bundled.
+#
+# Usage
+# -antigen-cache-init
+# Returns
+# Nothing
+-antigen-cache-init () {
+ if -antigen-interactive-mode; then
+ return 1
+ fi
+
+ _ZCACHE_CAPTURE_PREFIX=${_ZCACHE_CAPTURE_PREFIX:-"--zcache-"}
+ _ZCACHE_BUNDLE_SOURCE=(); _ZCACHE_CAPTURE_BUNDLE=()
+
+ # Cache auto config files to check for changes (.zshrc, .antigenrc etc)
+ -antigen-set-default ANTIGEN_AUTO_CONFIG true
+
+ # Default cache path.
+ -antigen-set-default ANTIGEN_CACHE $ADOTDIR/init.zsh
+ -antigen-set-default ANTIGEN_RSRC $ADOTDIR/.resources
+ if [[ $ANTIGEN_CACHE == false ]]; then
+ return 1
+ fi
+
+ return 0
+}
+
+-antigen-cache-execute () {
+ # Main function. Deferred antigen-apply.
+ antigen-apply-cached () {
+ # TRACE "APPLYING CACHE" EXT
+ # Auto determine check_files
+ # There always should be 5 steps from original source as the correct way is to use
+ # `antigen` wrapper not `antigen-apply` directly and it's called by an extension.
+ LOG "TRACE: ${funcfiletrace}"
+ if [[ $ANTIGEN_AUTO_CONFIG == true && $#ANTIGEN_CHECK_FILES -eq 0 ]]; then
+ ANTIGEN_CHECK_FILES+=(~/.zshrc)
+ if [[ $#funcfiletrace -ge 6 ]]; then
+ ANTIGEN_CHECK_FILES+=("${${funcfiletrace[6]%:*}##* }")
+ fi
+ fi
+
+ # Generate and compile cache
+ -antigen-cache-generate
+ [[ -f "$ANTIGEN_CACHE" ]] && source "$ANTIGEN_CACHE";
+
+ # Commented out in order to have a working `cache-gen` command
+ #unset _ZCACHE_BUNDLE_SOURCE
+ unset _ZCACHE_CAPTURE_BUNDLE _ZCACHE_CAPTURE_FUNCTIONS
+
+ # Release all hooked functions
+ antigen-remove-hook -antigen-load-env-cached
+ antigen-remove-hook -antigen-load-source-cached
+ antigen-remove-hook antigen-bundle-cached
+ }
+
+ antigen-add-hook antigen-apply antigen-apply-cached post once
+
+ # Defer antigen-bundle.
+ antigen-bundle-cached () {
+ _ZCACHE_CAPTURE_BUNDLE+=("${(j: :)${@}}")
+ }
+ antigen-add-hook antigen-bundle antigen-bundle-cached pre
+
+ # Defer loading.
+ -antigen-load-env-cached () {
+ local bundle
+ typeset -A bundle; bundle=($@)
+ local location=${bundle[dir]}/${bundle[loc]}
+
+ # Load to path if there is no sourceable
+ if [[ ${bundle[loc]} == "/" ]]; then
+ _ZCACHE_BUNDLE_SOURCE+=("${location}")
+ return
+ fi
+
+ _ZCACHE_BUNDLE_SOURCE+=("${location}")
+ }
+ antigen-add-hook -antigen-load-env -antigen-load-env-cached replace
+
+ # Defer sourcing.
+ -antigen-load-source-cached () {
+ _ZCACHE_BUNDLE_SOURCE+=($@)
+ }
+ antigen-add-hook -antigen-load-source -antigen-load-source-cached replace
+
+ return 0
+}
+
+# Generate static-cache file at $ANTIGEN_CACHE using currently loaded
+# bundles from $_ANTIGEN_BUNDLE_RECORD
+#
+# Usage
+# antigen-cache-gen
+#
+# Returns
+# Nothing
+antigen-cache-gen () {
+ -antigen-cache-generate
+}
+#compdef _antigen
+# Setup antigen's autocompletion
+_antigen () {
+ local -a _1st_arguments
+ _1st_arguments=(
+ 'apply:Load all bundle completions'
+ 'bundle:Install and load the given plugin'
+ 'bundles:Bulk define bundles'
+ 'cleanup:Clean up the clones of repos which are not used by any bundles currently loaded'
+ 'cache-gen:Generate cache'
+ 'init:Load Antigen configuration from file'
+ 'list:List out the currently loaded bundles'
+ 'purge:Remove a cloned bundle from filesystem'
+ 'reset:Clears cache'
+ 'restore:Restore the bundles state as specified in the snapshot'
+ 'revert:Revert the state of all bundles to how they were before the last antigen update'
+ 'selfupdate:Update antigen itself'
+ 'snapshot:Create a snapshot of all the active clones'
+ 'theme:Switch the prompt theme'
+ 'update:Update all bundles'
+ 'use:Load any (supported) zsh pre-packaged framework'
+ );
+
+ _1st_arguments+=(
+ 'help:Show this message'
+ 'version:Display Antigen version'
+ )
+
+ __bundle() {
+ _arguments \
+ '--loc[Path to the location <path-to/location>]' \
+ '--url[Path to the repository <github-account/repository>]' \
+ '--branch[Git branch name]' \
+ '--no-local-clone[Do not create a clone]'
+ }
+ __list() {
+ _arguments \
+ '--simple[Show only bundle name]' \
+ '--short[Show only bundle name and branch]' \
+ '--long[Show bundle records]'
+ }
+
+
+ __cleanup() {
+ _arguments \
+ '--force[Do not ask for confirmation]'
+ }
+
+ _arguments '*:: :->command'
+
+ if (( CURRENT == 1 )); then
+ _describe -t commands "antigen command" _1st_arguments
+ return
+ fi
+
+ local -a _command_args
+ case "$words[1]" in
+ bundle)
+ __bundle
+ ;;
+ use)
+ compadd "$@" "oh-my-zsh" "prezto"
+ ;;
+ cleanup)
+ __cleanup
+ ;;
+ (update|purge)
+ compadd $(type -f \-antigen-get-bundles &> /dev/null || antigen &> /dev/null; -antigen-get-bundles --simple 2> /dev/null)
+ ;;
+ theme)
+ compadd $(type -f \-antigen-get-themes &> /dev/null || antigen &> /dev/null; -antigen-get-themes 2> /dev/null)
+ ;;
+ list)
+ __list
+ ;;
+ esac
+}
+zmodload zsh/datetime
+ANTIGEN_DEBUG_LOG=${ANTIGEN_DEBUG_LOG:-${ADOTDIR:-$HOME/.antigen}/debug.log}
+LOG () {
+ local PREFIX="[LOG][${EPOCHREALTIME}]"
+ echo "${PREFIX} ${funcfiletrace[1]}\n${PREFIX} $@" >> $ANTIGEN_DEBUG_LOG
+}
+
+ERR () {
+ local PREFIX="[ERR][${EPOCHREALTIME}]"
+ echo "${PREFIX} ${funcfiletrace[1]}\n${PREFIX} $@" >> $ANTIGEN_DEBUG_LOG
+}
+
+WARN () {
+ local PREFIX="[WRN][${EPOCHREALTIME}]"
+ echo "${PREFIX} ${funcfiletrace[1]}\n${PREFIX} $@" >> $ANTIGEN_DEBUG_LOG
+}
+
+TRACE () {
+ local PREFIX="[TRA][${EPOCHREALTIME}]"
+ echo "${PREFIX} ${funcfiletrace[1]}\n${PREFIX} $@\n${PREFIX} ${(j:\n:)funcstack}" >> $ANTIGEN_DEBUG_LOG
+}
+-antigen-env-setup
diff --git a/dotconfig/zsh/zoxide.zsh b/dotconfig/zsh/zoxide.zsh
new file mode 100644
index 0000000..aacec40
--- /dev/null
+++ b/dotconfig/zsh/zoxide.zsh
@@ -0,0 +1,104 @@
+# =============================================================================
+#
+# Utility functions for zoxide.
+#
+
+# pwd based on the value of _ZO_RESOLVE_SYMLINKS.
+function __zoxide_pwd() {
+ \builtin pwd -L
+}
+
+# cd + custom logic based on the value of _ZO_ECHO.
+function __zoxide_cd() {
+ # shellcheck disable=SC2164
+ \builtin cd -- "$@"
+}
+
+# =============================================================================
+#
+# Hook configuration for zoxide.
+#
+
+# Hook to add new entries to the database.
+function __zoxide_hook() {
+ # shellcheck disable=SC2312
+ \command zoxide add -- "$(__zoxide_pwd)"
+}
+
+# Initialize hook.
+# shellcheck disable=SC2154
+if [[ ${precmd_functions[(Ie)__zoxide_hook]:-} -eq 0 ]] && [[ ${chpwd_functions[(Ie)__zoxide_hook]:-} -eq 0 ]]; then
+ chpwd_functions+=(__zoxide_hook)
+fi
+
+# =============================================================================
+#
+# When using zoxide with --no-cmd, alias these internal functions as desired.
+#
+
+__zoxide_z_prefix='z#'
+
+# Jump to a directory using only keywords.
+function __zoxide_z() {
+ # shellcheck disable=SC2199
+ if [[ "$#" -eq 0 ]]; then
+ __zoxide_cd ~
+ elif [[ "$#" -eq 1 ]] && { [[ -d "$1" ]] || [[ "$1" = '-' ]] || [[ "$1" =~ ^[-+][0-9]$ ]]; }; then
+ __zoxide_cd "$1"
+ elif [[ "$@[-1]" == "${__zoxide_z_prefix}"?* ]]; then
+ # shellcheck disable=SC2124
+ \builtin local result="${@[-1]}"
+ __zoxide_cd "${result:${#__zoxide_z_prefix}}"
+ else
+ \builtin local result
+ # shellcheck disable=SC2312
+ result="$(\command zoxide query --exclude "$(__zoxide_pwd)" -- "$@")" &&
+ __zoxide_cd "${result}"
+ fi
+}
+
+# Jump to a directory using interactive search.
+function __zoxide_zi() {
+ \builtin local result
+ result="$(\command zoxide query --interactive -- "$@")" && __zoxide_cd "${result}"
+}
+
+# Completions.
+if [[ -o zle ]]; then
+ function __zoxide_z_complete() {
+ # Only show completions when the cursor is at the end of the line.
+ # shellcheck disable=SC2154
+ [[ "${#words[@]}" -eq "${CURRENT}" ]] || return 0
+
+ if [[ "${#words[@]}" -eq 2 ]]; then
+ _files -/
+ elif [[ "${words[-1]}" == '' ]] && [[ "${words[-2]}" != "${__zoxide_z_prefix}"?* ]]; then
+ \builtin local result
+ # shellcheck disable=SC2086,SC2312
+ if result="$(\command zoxide query --exclude "$(__zoxide_pwd)" --interactive -- ${words[2,-1]})"; then
+ result="${__zoxide_z_prefix}${result}"
+ # shellcheck disable=SC2296
+ compadd -Q "${(q-)result}"
+ fi
+ \builtin printf '\e[5n'
+ fi
+ return 0
+ }
+
+ \builtin bindkey '\e[0n' 'reset-prompt'
+ [[ "${+functions[compdef]}" -ne 0 ]] && \compdef __zoxide_z_complete __zoxide_z
+fi
+
+# =============================================================================
+#
+# Commands for zoxide. Disable these using --no-cmd.
+#
+
+\builtin alias z=__zoxide_z
+\builtin alias zi=__zoxide_zi
+
+# =============================================================================
+#
+# To initialize zoxide, add this to your configuration (usually ~/.zshrc):
+#
+# eval "$(zoxide init zsh)"
diff --git a/dotlocal/bin/RedSeaGen b/dotlocal/bin/RedSeaGen
new file mode 100755
index 0000000..b6e18a8
--- /dev/null
+++ b/dotlocal/bin/RedSeaGen
Binary files differ
diff --git a/dotlocal/bin/cc1 b/dotlocal/bin/cc1
new file mode 100755
index 0000000..9d6b2ee
--- /dev/null
+++ b/dotlocal/bin/cc1
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+while true; do
+ # Check if "charachorder one" is plugged in
+ if lsusb | grep -qi "charachorder one"; then
+ setxkbmap -option
+ else
+ setxkbmap -option caps:swapescape
+ fi
+
+ # Sleep for some time before checking again (adjust as needed)
+ sleep 5
+done
diff --git a/dotlocal/bin/fp b/dotlocal/bin/fp
new file mode 100755
index 0000000..d705e57
--- /dev/null
+++ b/dotlocal/bin/fp
@@ -0,0 +1,48 @@
+#!/usr/bin/env zsh
+
+# SOURCES:
+# https://github.com/magical-heyrovsky
+# https://github.com/flatpak/flatpak/issues/994#issuecomment-1484158855
+# https://apple.stackexchange.com/questions/296477/my-command-line-says-complete13-command-not-found-compdef
+# https://unix.stackexchange.com/questions/353076/how-to-indent-an-heredoc-inside-an-heredoc-the-right-way
+
+# * leading tabs: indent here-document (heredoc)
+# * spaces: indent code within heredoc
+if [[ $# -eq 0 ]]; then
+ cat <<- 'DESCRIPTION'
+
+ SETUP:
+ Place in path (e.g., /usr/local/bin/fp) and make executable (chmod +x fp).
+
+ USAGE:
+ fp <app>
+
+ DESCRIPTION
+ exit 0
+fi
+
+# fp auto-completion
+() {
+ # list of each flatpak app name in lowercase ("Brave Browser" == "brave")
+ local FLATPAK_APPS=$(flatpak list --app | cut -f1 | awk '{print tolower($1)}')
+ autoload -Uz bashcompinit && bashcompinit
+ autoload -Uz compinit && compinit
+ complete -W $FLATPAK_APPS fp
+}
+
+# run flatpak apps from cli (e.g., "fp okular")
+function fp() {
+ app=$(flatpak list --app | cut -f2 | awk -v app="$1" '(tolower($NF) ~ tolower(app))')
+
+ # abort if the app name was not entered
+ test -z $1 && printf "\nINSTALLED APPS\n$app\n" && return
+
+ # remove app name from "$@" array
+ shift 1
+
+ # run the flatpak app async (subshell in background) and don't show any stdout and stderr
+ ( flatpak run "$app" "$@" &> /dev/null & )
+}
+
+# launch main function with all arguments
+fp "$@"
diff --git a/dotlocal/bin/nv_vsync b/dotlocal/bin/nv_vsync
new file mode 100755
index 0000000..feae263
--- /dev/null
+++ b/dotlocal/bin/nv_vsync
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+function vsync { nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = $@ }" ;}
+[[ $(nvidia-settings -tq CurrentMetaMode | grep ForceFullCompositionPipeline=On) ]] && vsync Off || vsync On
diff --git a/dotlocal/bin/prtscr b/dotlocal/bin/prtscr
new file mode 100755
index 0000000..5ecfdd5
--- /dev/null
+++ b/dotlocal/bin/prtscr
@@ -0,0 +1,60 @@
+#!/usr/bin/luajit
+
+local function isStringNotInList(target, list)
+ for i = 1, #list do
+ if list[i] == target then
+ return false
+ end
+ end
+ return true
+end
+
+local function takeScreenshot(mode, target)
+ local t = os.time()
+ local outfname = string.format('~/Pictures/scrot/scrot%s_%s.png', os.date('%Y-%m-%d_%H:%M:%S'), t)
+ local fname = string.format('/tmp/screenshot_temp_%s.png', t)
+ local cmd = 'scrot -F ' .. fname
+
+ if mode == 'region' then
+ cmd = cmd .. ' -f -s'
+ elseif mode == 'focused' then
+ cmd = cmd .. ' -u'
+ end
+
+ os.execute(cmd)
+
+ if target == 'clipboard' then
+ os.execute('xclip -selection clipboard -t image/png -i ' .. fname)
+ elseif target == 'file' then
+ os.execute('cp ' .. fname .. ' ' .. outfname)
+ end
+
+ os.execute('rm ' .. fname)
+ os.execute(string.format('notify-send "Took screenshot. Target: %s"', target))
+end
+
+local function parseArguments(args)
+ local mode = 'fullscreen'
+ local target = 'clipboard'
+
+ for i, arg in ipairs(args) do
+ if isStringNotInList(arg, {'fullscreen', 'region', 'focused'}) then
+ if not isStringNotInList(arg, {'file', 'clipboard'}) then
+ target = arg
+ end
+ else
+ mode = arg
+ end
+ end
+
+ return mode, target
+end
+
+local function main()
+ local mode, target = parseArguments(arg)
+ print(string.format('Taking screenshot. Mode: %s Target: %s', mode, target))
+ takeScreenshot(mode, target)
+end
+
+main()
+
diff --git a/dotlocal/bin/setbg b/dotlocal/bin/setbg
new file mode 100755
index 0000000..7a39ef4
--- /dev/null
+++ b/dotlocal/bin/setbg
@@ -0,0 +1,2 @@
+#!/bin/sh
+feh --bg-scale Pictures/wal/"$(\ls Pictures/wal/ | shuf | head -n1)"
diff --git a/dotlocal/bin/zz b/dotlocal/bin/zz
new file mode 100755
index 0000000..a6842a6
--- /dev/null
+++ b/dotlocal/bin/zz
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+slock & disown
+sudo pm-suspend
+
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000..0e3bf19
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+set -e
+
+uname -r | grep -q 'artix' || (echo 'Not on Artix.' ; exit 1)
+whoami | grep -q 'root' || (echo 'Must be root.' ; exit 1)
+test "$SUDO_USER" != "" || (echo 'Not using sudo.'; exit 1)
+
+echo "Tests successful, proceeding with installation. Using user \`$SUDO_USER'."
+
+cp -rv Pictures/ /home/$SUDO_USER/.
+cp -rv dotconfig/ /home/$SUDO_USER/.config
+cp -rv dotlocal/ /home/$SUDO_USER/.local
+
+pacman -Syu --noconfirm luajit wezterm base-devel ninja cmake sxhkd bspwm xcmenu lxsession dunst picom xorg-xset xorg-xsetroot xorg-setxkbmap xorg-xinput pipewire wireguard pipewire-pulse
+
+mkdir -pv /home/$SUDO_USER/.local/src
+cd /home/$SUDO_USER/.local/src
+git clone --depth 1 https://github.com/florentc/xob.git
+cd xob
+make -j$(nproc)
+make install
+
+chown -R $SUDO_USER:$SUDO_USER /home/$SUDO_USER/*
+chown -R $SUDO_USER:$SUDO_USER /home/$SUDO_USER/.*
+
+echo "Installation done."
+