diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..dfce3ae --- /dev/null +++ b/.bashrc @@ -0,0 +1,168 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +export PATH=~/.local/bin:/snap/bin:/usr/sandbox/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/share/games:/usr/local/sbin:/usr/sbin:/sbin:$PATH +PATH=$PATH:~/.local/share/gem/ruby/3.0.0/bin/:~/.scripts +PATH=$PATH:~/.cargo/bin +PATH=$PATH:~/go/bin/ +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +#if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then +# debian_chroot=$(cat /etc/debian_chroot) +#fi +# +## set a fancy prompt (non-color, unless we know we "want" color) +#case "$TERM" in +# xterm-color) color_prompt=yes;; +#esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +force_color_prompt=yes + +#if [ -n "$force_color_prompt" ]; then +# if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then +# # We have color support; assume it's compliant with Ecma-48 +# # (ISO/IEC-6429). (Lack of such support is extremely rare, and such +# # a case would tend to support setf rather than setaf.) +# color_prompt=yes +# else +# color_prompt= +# fi +#fi +# +if [ "$color_prompt" = yes ]; then + PS1='\[\033[0;32m\]\u\[\033[00m\]\100\[\033[00m\]\h \[\033[0;32m\]\w\[\033[01;00m\]> '; else PS1='\[\033[0;32m\]\u\[\033[00m\]\100\[\033[00m\]\h \[\033[0;32m\]\w\[\033[01;00m\]> ' +#else +# PS1='\u\100\h \w> ' +fi +# +## Set 'man' colors +#if [ "$color_prompt" = yes ]; then +# man() { +# env \ +# LESS_TERMCAP_mb=$'\e[01;31m' \ +# LESS_TERMCAP_md=$'\e[01;31m' \ +# LESS_TERMCAP_me=$'\e[0m' \ +# LESS_TERMCAP_se=$'\e[0m' \ +# LESS_TERMCAP_so=$'\e[01;44;33m' \ +# LESS_TERMCAP_ue=$'\e[0m' \ +# LESS_TERMCAP_us=$'\e[01;32m' \ +# man "$@" +# } +#fi +# +#unset color_prompt force_color_prompt +# +# If this is an xterm set the title to user@host:dir +#case "$TERM" in +#xterm*|rxvt*) +# PS1="\[\033[0;31m\]\342\224\214\342\224\200\$([[ \$? != 0 ]] && echo \"[\[\033[0;31m\]\342\234\227\[\033[0;37m\]]\342\224\200\")[$(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]root\[\033[01;33m\]@\[\033[01;96m\]\h'; else echo '\[\033[0;39m\]\u\[\033[01;33m\]@\[\033[01;96m\]\h'; fi)\[\033[0;31m\]]\342\224\200[\[\033[0;32m\]\w\[\033[0;31m\]]\n\[\033[0;31m\]\342\224\224\342\224\200\342\224\200\342\225\274 \[\033[0m\]\[\e[01;33m\]\\$\[\e[0m\]" +# ;; +#*) +# ;; +#esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + alias dir='dir --color=auto' + alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# some more ls aliases +alias ll='ls -lh' +alias la='ls -lha' +alias l='ls -CF' +alias emacs='emacs -nw' +alias dd='dd status=progress' +alias _='sudo' +alias _i='sudo -i' +alias please='sudo' +alias fucking='sudo' +alias hx='helix' +alias bat='bat --theme="base16-256"' +if [ -n "$(command -v 'eza')" ]; then + alias ls='eza' +fi + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. +export EDITOR='kak' + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +if [ "$XDG_SESSION_DESKTOP" = "sway" ] ; then + # https://github.com/swaywm/sway/issues/595 + export _JAVA_AWT_WM_NONREPARENTING=1 + export STUDIO_JDK=/usr/lib/jvm/java-11-openjdk/ +fi +eval "$(zoxide init bash)" + +export TMUX_TMPDIR=/tmp +export TINTED_SHELL_ENABLE_BASE16_VARS=1 + +tinty_source_shell_theme() { + tinty $@ + subcommand="$1" + + if [ "$subcommand" = "apply" ] || [ "$subcommand" = "init" ]; then + tinty_data_dir="${XDG_DATA_HOME:-$HOME/.local/share}/tinted-theming/tinty" + + for tinty_script_file in $(find "$tinty_data_dir" -maxdepth 1 -type f -name "*.sh"); do + . $tinty_script_file + done + + unset tinty_data_dir + fi + + unset subcommand +} + +if [ -n "$(command -v 'tinty')" ]; then +# tinty_source_shell_theme "init" + alias theme='tinty_source_shell_theme apply "$(tinty list | fzf --cycle)"' +fi + +if [ -n "$(command -v tmux)" ] && [ -z "$TMUX" ]; then + alias kak='tmux new-session kak > /dev/null' +fi +alias enter-dev='. enter-dev.sh' diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf new file mode 100644 index 0000000..942d88b --- /dev/null +++ b/.config/btop/btop.conf @@ -0,0 +1,248 @@ +#? Config file for btop v. 1.3.2 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "TTY" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = True + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = False + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "cpu mem net proc" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "cpu lazy" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = True + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Show power stats of battery next to charge indicator. +show_battery_watts = True + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/.config/btop/btop.log b/.config/btop/btop.log new file mode 100644 index 0000000..6bcaed3 --- /dev/null +++ b/.config/btop/btop.log @@ -0,0 +1,162 @@ + +2024/06/06 (14:25:17) | ===> btop++ v.1.3.2 +2024/06/06 (14:25:17) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported +2024/06/06 (14:25:19) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:19) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:21) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:21) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:23) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:23) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:25) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:25) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:27) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:27) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:29) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:29) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:31) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:31) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:33) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:33) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:35) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:35) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:39) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:39) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:43) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:43) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:45) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:45) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:47) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:47) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:49) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:49) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:51) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:51) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:53) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:53) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:55) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:55) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:57) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:57) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:25:59) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:25:59) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:26:01) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:26:01) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:26:03) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:26:03) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:26:05) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:26:05) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:26:07) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:26:07) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:26:09) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:26:09) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:26:11) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:26:11) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:26:13) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:26:13) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:26:17) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:26:17) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/06 (14:26:19) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/06 (14:26:19) | WARNING: NVML: Failed to get GPU power usage: No data + +2024/06/07 (13:26:43) | ===> btop++ v.1.3.2 +2024/06/07 (13:26:43) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported +2024/06/07 (13:26:45) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:26:46) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/07 (13:26:47) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:26:48) | WARNING: NVML: Failed to get GPU power usage: No data + +2024/06/07 (13:26:52) | ===> btop++ v.1.3.2 +2024/06/07 (13:26:52) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported +2024/06/07 (13:26:54) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:26:54) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/07 (13:26:56) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:26:56) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/07 (13:26:58) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:26:58) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/07 (13:27:00) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:27:00) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/07 (13:27:02) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:27:02) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/07 (13:27:04) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:27:04) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/07 (13:27:06) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:27:06) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/07 (13:27:08) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/07 (13:27:08) | WARNING: NVML: Failed to get GPU power usage: No data + +2024/06/12 (15:06:55) | ===> btop++ v.1.3.2 +2024/06/12 (15:06:55) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported +2024/06/12 (15:06:57) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:06:58) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:06:59) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:00) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:01) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:01) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:01) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:02) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:02) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:03) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:03) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:03) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:03) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:05) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:06) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:07) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:08) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:09) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:10) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:11) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:12) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:13) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:14) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:15) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:16) | WARNING: NVML: Failed to get GPU power usage: No data + +2024/06/12 (15:07:17) | ===> btop++ v.1.3.2 +2024/06/12 (15:07:17) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported +2024/06/12 (15:07:19) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:19) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:21) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:21) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:23) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:23) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:25) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:25) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:27) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:27) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:29) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:29) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:31) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:31) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:33) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:33) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:35) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:35) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:37) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:37) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:39) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:39) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:41) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:41) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:43) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:43) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:45) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:45) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:47) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:47) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:49) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:49) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:51) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:51) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:53) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:53) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:55) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:55) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:57) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:57) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:07:59) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:07:59) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:08:01) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:08:01) | WARNING: NVML: Failed to get GPU power usage: No data +2024/06/12 (15:08:03) | WARNING: NVML: Failed to get GPU utilization: Unknown Error +2024/06/12 (15:08:03) | WARNING: NVML: Failed to get GPU power usage: No data diff --git a/.config/castero/castero.conf b/.config/castero/castero.conf new file mode 100644 index 0000000..a09276d --- /dev/null +++ b/.config/castero/castero.conf @@ -0,0 +1,315 @@ +# castero configuration file +# https://github.com/xgi/castero + + +[client] +# Whether to limit the amount of memory used by the client (by doing more +# disk I/O). Enabling this will reduce performance -- only enable it if you +# know you need to. +# default: False +restrict_memory_usage = False + +# Whether to ask for confirmation before deleting a feed. +# default: False +delete_feed_confirmation = False + +# The minimum number of feeds before the client asks you for confirmation +# after pressing the reload key. +# default: 10 +reload_feeds_threshold = 10 + +# The maximum number of episodes to retain per feed. Set to -1 for no limit. +# default: -1 +max_episodes = -1 + +# Whether to keep episodes in the client even if they are no longer present on +# the feed (i.e. the RSS feed only shows the x most recent episodes). +# default: False +retain_absent_episodes = False + +# Default window layout. This can also be changed within castero by pressing the corresponding key. +# 1 - feeds + episodes + metadata +# 2 - queue + metadata +# 3 - feeds + episodes +# 4 - downloaded episodes + metadata +# 5 - all episodes + metadata +# default: 1 +default_layout = 1 + +# Hide vertical borders between menus. +# default: False +disable_vertical_borders = False + +# Whether to remove HTML tags from feed/episode descriptions. +# default: True +clean_html_descriptions = True + +# The display refresh delay, in ms. Increase to reduce idle CPU usage. +# default: 30 +refresh_delay = 30 + +# The external player to use for media playback. +# If the given player is not valid or a dependency is not met, the client will +# instead try to use the first valid interface. +# Available players (in order of precedence): +# mpv, vlc +# default: (blank) +player = + +# The command to run when you press key_execute (default e). All instances of +# the following tokens are replaced with the corresponding episode attributes: +# {file} - the episode enclosure, usually a remote mp3 file +# {title} - the episode name +# {description} - the episode description +# {link} - the link to the episode, which is often a blog post +# {pubdate} - the publish date/time of the episode +# {copyright} - the copyright of the episode +# Most of these attributes have spaces, so you will probably want to enclose +# the token with quotations. +# For example, `firefox "{file}"` would open the file in Firefox. +# The client executes the text you enter as a shell command. Use with caution! +# default: (blank) +execute_command = + +# An HTTP or SOCKS proxy to use for HTTP network requests. +# example: http://user:pass@10.10.1.10:3128 +# example: socks5://user:pass@host:port +# default: (blank) +proxy_http = + +# An HTTP or SOCKS proxy to use for HTTPS network requests. +# example: http://user:pass@10.10.1.10:3128 +# example: socks5://user:pass@host:port +# default: (blank) +proxy_https = + +# Behavior when adding selected feed into queue. +# If set to true, only unplayed episodes will be added to the queue. +# default: False +add_only_unplayed_episodes = False + +[feeds] +# Whether to reload/refresh your feeds when the client starts. Depending on how +# many feeds you have, this operation may take a long time. +# default: False +reload_on_start = False + + +[downloads] +# The (absolute) location to save episodes downloaded for offline playback. Set +# to blank or whitespaces to disable -- the client will default to either +# $XDG_DATA_DIR, if set, otherwise ~/.local/share/castero/downloaded +# default: (blank) +custom_download_dir = + +# The timeout for network requests, in seconds. The same value is used for +# connection and read timeouts. +# default: 3 +request_timeout = 3 + + +[colors] +# Available colors for all fields are: +# black, blue, cyan, green, magenta, red, white, yellow, transparent (background), +# integer from -1 to 255 if terminal supports 256 colors +# NOTE: Background transparency only works on compatible terminals with compositing + +# The foreground (text) color of the main interface. +# default: yellow +color_foreground = yellow + +# The background color of the main interface. +# default: black +color_background = black + +# The foreground (text) color of selected items. +# default: black +color_foreground_alt = black + +# The background color of selected items. +# default: white +color_background_alt = white + +# The foreground (text) color of marked items. Paired with color_background. +# default: green +color_foreground_dim = green + +# The foreground (text) color of status lines. Paired with color_background. +# default: white +color_foreground_status = white + +# The foreground (text) color of menu headings. Paired with color_background. +# default: yellow +color_foreground_heading = yellow + +# The foreground (text) color of dividers. Paired with color_background. +# default: white +color_foreground_dividers = white + + +[playback] +# The distance to move forward when pressing seek keys, in seconds. +# default: 30 +seek_distance_forward = 30 + +# The distance to move backward when pressing seek keys, in seconds. +# default: 10 +seek_distance_backward = 10 + +# The default playback speed. See also the rate_increase/rate_decrease keys. +# default: 1.0 +default_playback_speed = 1.0 + +# The default volume. Can be 0-100, inclusive. +# default: 100 +default_volume = 100 + +# The amount to adjust the volume when pressing the volume up/down keys. +# default: 5 +volume_adjust_distance = 5 + +# The distance to rewind when resuming from playback, in seconds. +# default: 0 +resume_rewind_distance = 0 + + +[keys] +# Keybindings for controlling the client. Entries may not be blank, but may +# overlap -- however, only one operation will be performed for each key press. +# Please see this page for a list of available key names: +# https://docs.python.org/3/library/curses.html#constants + +# Show the help menu. +# default: h +key_help = h + +# Exit the client +# default: q +key_exit = q + +# Add a feed. +# default: a +key_add_feed = a + +# Remove the selected feed. +# default: d +key_remove = d + +# Reload/refresh all feeds. +# default: r +key_reload = r + +# Reload/refresh the selected feed. +# default: R +key_reload_selected = R + +# Save episode for offline playback. +# default: s +key_save = s + +# Delete downloaded episodes. +# default: x +key_delete = x + +# Navigate up. +# default: UP +key_up = UP + +# Navigate right. +# default: RIGHT +key_right = RIGHT + +# Navigate down. +# default: DOWN +key_down = DOWN + +# Navigate left. +# default: LEFT +key_left = LEFT + +# Scroll menu up. +# default: PPAGE +key_scroll_up = PPAGE + +# Scroll menu down. +# default: NPAGE +key_scroll_down = NPAGE + +# Play selected feed/episode. +# default: ENTER +key_play_selected = ENTER + +# Add selected feed/episode to queue. +# default: SPACE +key_add_selected = SPACE + +# Clear the queue. +# default: c +key_clear = c + +# Clear progress from episode. +# default: z +key_clear_progress = z + +# Go to the next episode in the queue. +# default: n +key_next = n + +# Execute a command on the selected episode. See also execute_command. +key_execute = e + +# Invert the order of the menu. +# default: i +key_invert = i + +# Filter the contents of the menu. Press again to clear the filter. +# default: / +key_filter = / + +# Mark the episode as played/unplayed. +# default: i +key_mark_played = m + +# Pause/play the current episode. +# default: p +key_pause_play = p + +# Alternate binding for key_pause_play -- make identical to disable. +# default: k +key_pause_play_alt = k + +# Seek forward. +# default: f +key_seek_forward = f + +# Alternate binding for key_seek_forward -- make identical to disable. +# default: l +key_seek_forward_alt = l + +# Seek backward. +# default: b +key_seek_backward = b + +# Alternate binding for key_seek_backward -- make identical to disable. +# default: j +key_seek_backward_alt = j + +# Increase playback speed. +# default: ] +key_rate_increase = ] + +# Decrease playback speed. +# default: [ +key_rate_decrease = [ + +# Increase volume. +# default: = +key_volume_increase = = + +# Decrease volume. +# default: - +key_volume_decrease = - + +# Show episode URL. +# default: u +key_show_url = u diff --git a/.config/cmus/autosave b/.config/cmus/autosave new file mode 100644 index 0000000..51a1e59 --- /dev/null +++ b/.config/cmus/autosave @@ -0,0 +1,233 @@ +set aaa_mode=all +set altformat_current= %F +set altformat_playlist= %f%= %d +set altformat_title=%f +set altformat_trackwin= %f%= %d +set auto_expand_albums_follow=true +set auto_expand_albums_search=true +set auto_expand_albums_selcur=true +set auto_hide_playlists_panel=false +set auto_reshuffle=true +set block_key_paste=true +set buffer_seconds=10 +set color_cmdline_attr=default +set color_cmdline_bg=default +set color_cmdline_fg=default +set color_cur_sel_attr=default +set color_error=lightred +set color_info=lightyellow +set color_separator=blue +set color_statusline_attr=default +set color_statusline_bg=gray +set color_statusline_fg=black +set color_titleline_attr=default +set color_titleline_bg=blue +set color_titleline_fg=white +set color_trackwin_album_attr=bold +set color_trackwin_album_bg=default +set color_trackwin_album_fg=default +set color_win_attr=default +set color_win_bg=default +set color_win_cur=lightyellow +set color_win_cur_attr=default +set color_win_cur_sel_attr=default +set color_win_cur_sel_bg=blue +set color_win_cur_sel_fg=lightyellow +set color_win_dir=lightblue +set color_win_fg=default +set color_win_inactive_cur_sel_attr=default +set color_win_inactive_cur_sel_bg=gray +set color_win_inactive_cur_sel_fg=lightyellow +set color_win_inactive_sel_attr=default +set color_win_inactive_sel_bg=gray +set color_win_inactive_sel_fg=black +set color_win_sel_attr=default +set color_win_sel_bg=blue +set color_win_sel_fg=white +set color_win_title_attr=default +set color_win_title_bg=blue +set color_win_title_fg=white +set confirm_run=true +set continue=true +set continue_album=true +set device=/dev/cdrom +set display_artist_sort_name=false +set dsp.alsa.device=default +set dsp.ao.buffer_size=16384 +set dsp.ao.device_interface= +set dsp.ao.driver= +set dsp.ao.wav_counter=1 +set dsp.ao.wav_dir=/home/mikec +set dsp.jack.resampling_quality=2 +set dsp.jack.server_name= +set dsp.oss.device= +set follow=true +set format_clipped_text=… +set format_current= %a - %l%! - %n. %t%= %y +set format_playlist= %-21%a %3n. %t%= %y %d %{?X!=0?%3X ? } +set format_playlist_va= %-21%A %3n. %t (%a)%= %y %d %{?X!=0?%3X ? } +set format_statusline= %{status} %{?show_playback_position?%{position} %{?duration?/ %{duration} }?%{?duration?%{duration} }}- %{total} %{?bpm>0?at %{bpm} BPM }%{?volume>=0?vol: %{?lvolume!=rvolume?%{lvolume},%{rvolume} ?%{volume} }}%{?stream?buf: %{buffer} }%{?show_current_bitrate & bitrate>=0? %{bitrate} kbps }%=%{?repeat_current?repeat current?%{?play_library?%{playlist_mode} from %{?play_sorted?sorted }library?playlist}} | %1{continue}%1{follow}%1{repeat}%1{shuffle} +set format_title=%a - %l - %t (%y) +set format_trackwin=%3n. %t%= %y %d +set format_trackwin_album= %l %= %{albumduration} +set format_trackwin_va=%3n. %t (%a)%= %y %d +set format_treewin= %l +set format_treewin_artist=%a +set icecast_default_charset=ISO-8859-1 +set id3_default_charset=ISO-8859-1 +set ignore_duplicates=false +set input.cdio.cddb_url=freedb.freedb.org:8880 +set input.cdio.priority=50 +set input.cue.priority=50 +set input.ffmpeg.priority=30 +set input.flac.priority=50 +set input.mikmod.priority=40 +set input.modplug.priority=50 +set input.mpc.priority=50 +set input.opus.priority=50 +set input.vorbis.priority=50 +set input.wav.priority=50 +set input.wavpack.priority=50 +set lib_add_filter= +set lib_sort=albumartist date album discnumber tracknumber title filename play_count +set mixer.alsa.channel=PCM +set mixer.alsa.device=default +set mixer.oss.channel=PCM +set mixer.oss.device= +set mixer.pulse.restore_volume=1 +set mouse=false +set mpris=true +set output_plugin=pulse +set passwd= +set pause_on_output_change=false +set pl_env_vars= +set pl_sort= +set play_library=true +set play_sorted=false +set repeat=true +set repeat_current=false +set replaygain=disabled +set replaygain_limit=true +set replaygain_preamp=0.000000 +set resume=false +set rewind_offset=5 +set scroll_offset=2 +set set_term_title=true +set show_all_tracks=true +set show_current_bitrate=false +set show_hidden=false +set show_playback_position=true +set show_remaining_time=false +set shuffle=tracks +set skip_track_info=false +set smart_artist_sort=true +set softvol=false +set softvol_state=0 0 +set sort_albums_by_name=false +set start_view=tree +set status_display_program= +set stop_after_queue=false +set time_show_leading_zero=true +set tree_width_max=0 +set tree_width_percent=33 +set wrap_search=true +bind browser backspace browser-up +bind browser i toggle show_hidden +bind browser space win-activate +bind browser u win-update +bind common ! push shell +bind common + vol +10% +bind common , seek -1m +bind common - vol -10% +bind common . seek +1m +bind common / search-start +bind common 1 view tree +bind common 2 view sorted +bind common 3 view playlist +bind common 4 view queue +bind common 5 view browser +bind common 6 view filters +bind common 7 view settings +bind common = vol +10% +bind common ? search-b-start +bind common B player-next-album +bind common C toggle continue +bind common D win-remove +bind common E win-add-Q +bind common F push filter +bind common G win-bottom +bind common I echo {} +bind common L push live-filter +bind common M toggle play_library +bind common N search-prev +bind common P win-mv-before +bind common U win-update-cache +bind common Z player-prev-album +bind common [ vol +1% +0 +bind common ] vol +0 +1% +bind common ^B win-page-up +bind common ^C echo Type :quit to exit cmus. +bind common ^D win-half-page-down +bind common ^E win-scroll-down +bind common ^F win-page-down +bind common ^L refresh +bind common ^R toggle repeat_current +bind common ^U win-half-page-up +bind common ^Y win-scroll-up +bind common a win-add-l +bind common b player-next +bind common c player-pause +bind common delete win-remove +bind common down win-down +bind common e win-add-q +bind common end win-bottom +bind common enter win-activate +bind common f toggle follow +bind common g win-top +bind common h seek -5 +bind common home win-top +bind common i win-sel-cur +bind common j win-down +bind common k win-up +bind common l seek +5 +bind common left seek -5 +bind common m toggle aaa_mode +bind common mlb_click_bar player-pause +bind common mlb_click_bar_right player-pause +bind common mlb_click_selected win-activate +bind common mouse_scroll_down win-down +bind common mouse_scroll_down_bar seek -5 +bind common mouse_scroll_down_bar_right vol -1% +bind common mouse_scroll_down_title right-view -n +bind common mouse_scroll_up win-up +bind common mouse_scroll_up_bar seek +5 +bind common mouse_scroll_up_bar_right vol +1% +bind common mouse_scroll_up_title left-view -n +bind common n search-next +bind common o toggle play_sorted +bind common p win-mv-after +bind common page_down win-page-down +bind common page_up win-page-up +bind common q quit -i +bind common r toggle repeat +bind common right seek +5 +bind common s toggle shuffle +bind common space win-toggle +bind common t toggle show_remaining_time +bind common tab win-next +bind common u update-cache +bind common up win-up +bind common v player-stop +bind common x player-play +bind common y win-add-p +bind common z player-prev +bind common { vol -1% -0 +bind common } vol -0 -1% +fset 90s=date>=1990&date<2000 +fset classical=genre="Classical" +fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1) +fset mp3=filename="*.mp3" +fset ogg=filename="*.ogg" +fset ogg-or-mp3=ogg|mp3 +fset unheard=play_count=0 +factivate diff --git a/.config/cmus/cache b/.config/cmus/cache new file mode 100644 index 0000000..516fdfc Binary files /dev/null and b/.config/cmus/cache differ diff --git a/.config/cmus/command-history b/.config/cmus/command-history new file mode 100644 index 0000000..5ef4cf4 --- /dev/null +++ b/.config/cmus/command-history @@ -0,0 +1,7 @@ +add ~/Music +clear +add Music/ +add /mnt/c/Users/mchalupi/Music/ +add ~/Music/ +add ./ +add ./* diff --git a/.config/cmus/lib.pl b/.config/cmus/lib.pl new file mode 100644 index 0000000..a53a05d --- /dev/null +++ b/.config/cmus/lib.pl @@ -0,0 +1,1355 @@ +/home/mikec/Music/Creed- Higher [sHcYaS3m1c4].opus +/home/mikec/Music/Green Day - Longview.mp3 +/home/mikec/Music/Tom Petty- Runnin' Down A Dream [QrNdBU_gb7o].opus +/home/mikec/Music/3 Doors Down - Kryptonite.wma +/home/mikec/Music/3 Doors Down/Unknown Album/3 Doors Down - Kryptonite.m4a +/home/mikec/Music/3 Doors Down - Loser.wma +/home/mikec/Music/3 Doors Down/Unknown Album/3 Doors Down - Loser.m4a +/home/mikec/Music/3 Doors Down - Loser.mp3 +/home/mikec/Music/3 Doors Down - Be Like That (acoustic).mp3 +/home/mikec/Music/3 Doors Down - Be Like That (acoustic).wma +/home/mikec/Music/ACDC - Love Song.wma +/home/mikec/Music/AC-DC/Unknown Album/ACDC - Love Song.m4a +/home/mikec/Music/ACDC - Rock ’n’ Roll Ain’t Noise Pollution.wma +/home/mikec/Music/AC-DC/Unknown Album/ACDC - Rock ’n’ Roll Ain’t Noise Pollution.m4a +/home/mikec/Music/ACDC - The Jack.wma +/home/mikec/Music/AC-DC/Unknown Album/ACDC - The Jack.m4a +/home/mikec/Music/ACDC - Live Wire - High Voltage.wma +/home/mikec/Music/AC-DC/Unknown Album/ACDC - Live Wire - High Voltage.m4a +/home/mikec/Music/ACDC - T.N.T..wma +/home/mikec/Music/AC-DC/Unknown Album/ACDC - T.N.T..m4a +/home/mikec/Music/ACDC - She’s Got Balls.wma +/home/mikec/Music/AC-DC/Unknown Album/ACDC - She’s Got Balls.m4a +/home/mikec/Music/ACDC - High Voltage.mp3 +/home/mikec/Music/ACDC - High Voltage.wma +/home/mikec/Music/AC-DC/Unknown Album/ACDC - High Voltage.m4a +/home/mikec/Music/ACDC - Can I Sit Next to You Girl.mp3 +/home/mikec/Music/ACDC - Can I Sit Next to You Girl.wma +/home/mikec/Music/AC-DC/Unknown Album/ACDC - Can I Sit Next to You Girl.m4a +/home/mikec/Music/AC-DC/Unknown Album/ACDC - Whole Lotta Rosie.m4a +/home/mikec/Music/ACDC - Whole Lotta Rosie.wma +/home/mikec/Music/ACDC - Hell's Bell.mp3 +/home/mikec/Music/ACDC - Live Wire.mp3 +/home/mikec/Music/ACDC - T.N.T..mp3 +/home/mikec/Music/ACDC - She’s Got Balls.mp3 +/home/mikec/Music/ACDC - Love Song.mp3 +/home/mikec/Music/Stereo MCs - Creation.mp3 +/home/mikec/Music/ACDC - The Jack.mp3 +/home/mikec/Music/Aerosmith - Janie's Got a Gun.mp3 +/home/mikec/Music/Aerosmith - Leaving On A Jet Plane.mp3 +/home/mikec/Music/Aerosmith - Livin’ on the Edge.mp3 +/home/mikec/Music/Aerosmith - Love in an Elevator.mp3 +/home/mikec/Music/Aerosmith - Pink.mp3 +/home/mikec/Music/Aerosmith - Walk This Way.mp3 +/home/mikec/Music/Aerosmith - Toys in the Attic (5.1 mix).mp3 +/home/mikec/Music/Aerosmith - Dream On.mp3 +/home/mikec/Music/Aerosmith - Back in the Saddle.mp3 +/home/mikec/Music/Aerosmith - Come Together.mp3 +/home/mikec/Music/Aerosmith - Dude (Looks Like a Lady).mp3 +/home/mikec/Music/Derek St. Holmes - Mama Kin.mp3 +/home/mikec/Music/Aerosmith - Dulcimer Stomp The Other Side.wma +/home/mikec/Music/Aerosmith/Pump/Aerosmith - Dulcimer Stomp The Other Side.m4a +/home/mikec/Music/Aerosmith - Crazy.mp3 +/home/mikec/Music/Aerosmith - Crying.mp3 +/home/mikec/Music/Aerosmith - Rag Doll.mp3 +/home/mikec/Music/Aerosmith - Train Kept a Rollin’.mp3 +/home/mikec/Music/Aerosmith - Sweet Emotion.mp3 +/home/mikec/Music/Aerosmith - Armageddon I Don’t Want to Miss a Thing.mp3 +/home/mikec/Music/Alabama - I'm In A Hurry (And I Don't Know Why).mp3 +/home/mikec/Music/Alabama - Mountain Music.mp3 +/home/mikec/Music/Dark Tranquillity - Away, Delight, Away (demo).mp3 +/home/mikec/Music/Alabama - Song of the South.mp3 +/home/mikec/Music/Alabama - Born Country.mp3 +/home/mikec/Music/Alabama - If You're Gonna to Play in Texas.mp3 +/home/mikec/Music/Alabama - Love in the First Degree.mp3 +/home/mikec/Music/Alan Jackson - Tall, Tall Trees.mp3 +/home/mikec/Music/Alan Jackson - Remember When.mp3 +/home/mikec/Music/Alan Jackson - Chattahoochee.mp3 +/home/mikec/Music/Alan Jackson - I’ll Go On Loving You.mp3 +/home/mikec/Music/Alan Jackson - Where Do I Go From Here (A Trucker's Song).mp3 +/home/mikec/Music/Alan Jackson - Work in Progress.mp3 +/home/mikec/Music/Alan Jackson - Designated Drinker.mp3 +/home/mikec/Music/Alan Jackson - Little Bitty.mp3 +/home/mikec/Music/Alan Jackson - Who's Cheatin' Who.mp3 +/home/mikec/Music/Alan Jackson - Little Man.mp3 +/home/mikec/Music/Alan Jackson - It’s Five O’Clock Somewhere.mp3 +/home/mikec/Music/Alan Jackson - Good Time.mp3 +/home/mikec/Music/Alice Cooper - No More Mr. Nice Guy.mp3 +/home/mikec/Music/Alice Cooper - Poison.wma +/home/mikec/Music/Alice Cooper/Unknown Album/Alice Cooper - Poison.m4a +/home/mikec/Music/Alice Cooper - Poison.mp3 +/home/mikec/Music/Alice in Chains - Them Bones.wma +/home/mikec/Music/Alice In Chains/Unknown Album/Alice in Chains - Them Bones.m4a +/home/mikec/Music/Alice in Chains - No Excuses.wma +/home/mikec/Music/Alice In Chains/Unknown Album/Alice in Chains - No Excuses.m4a +/home/mikec/Music/Alice in Chains - Rooster.wma +/home/mikec/Music/Alice In Chains/Unknown Album/Alice in Chains - Rooster.m4a +/home/mikec/Music/Alice In Chains/Unknown Album/Alice in Chains - Would.m4a +/home/mikec/Music/Alice in Chains - Would.wma +/home/mikec/Music/Alice in Chains - Down in a Hole.mp3 +/home/mikec/Music/Alice in Chains - Down in a Hole.wma +/home/mikec/Music/Alice In Chains/Unknown Album/Alice in Chains - Down in a Hole.m4a +/home/mikec/Music/Alice in Chains - Rooster.mp3 +/home/mikec/Music/Alice in Chains - Would.mp3 +/home/mikec/Music/Alice in Chains - Them Bones.mp3 +/home/mikec/Music/Alicia Keys - Fallin’.mp3 +/home/mikec/Music/Allman Brothers Band - One Way Out.mp3 +/home/mikec/Music/Amy Winehouse - Rehab.mp3 +/home/mikec/Music/Angel Voices - I Still Haven't Found What I'm Looking For.mp3 +/home/mikec/Music/Arctic Monkeys - R U Mine.mp3 +/home/mikec/Music/Arctic Monkeys - Do I Wanna Know.mp3 +/home/mikec/Music/Asobi Seksu - Thursday.mp3 +/home/mikec/Music/Assembly of Dust - Pedal Down.mp3 +/home/mikec/Music/Assembly of Dust - Second Song.mp3 +/home/mikec/Music/Assembly of Dust - Light Blue Lover.mp3 +/home/mikec/Music/Assembly of Dust - Leadbelly.mp3 +/home/mikec/Music/Assembly of Dust - Revelry.mp3 +/home/mikec/Music/Assembly of Dust - Straight.mp3 +/home/mikec/Music/Assembly of Dust - You Lay the Dust.mp3 +/home/mikec/Music/Ironsword - Valhalla.mp3 +/home/mikec/Music/Assembly of Dust - All That I Am Now.mp3 +/home/mikec/Music/Assembly of Dust - Cold Coffee.mp3 +/home/mikec/Music/Assembly of Dust - Arc of the Sun.mp3 +/home/mikec/Music/Assembly of Dust - Edges.mp3 +/home/mikec/Music/Assembly of Dust - Borrowed Feet (Live).mp3 +/home/mikec/Music/Assembly of Dust - Borrowed Feet.mp3 +/home/mikec/Music/Assembly of Dust - High Brow.mp3 +/home/mikec/Music/Audioslave - Show Me How to Live.wma +/home/mikec/Music/Audioslave/Unknown Album/Audioslave - Show Me How to Live.m4a +/home/mikec/Music/Audioslave - Like a Stone.wma +/home/mikec/Music/Audioslave/Unknown Album/Audioslave - Like a Stone.m4a +/home/mikec/Music/Audioslave - Set It Off.wma +/home/mikec/Music/Audioslave/Unknown Album/Audioslave - Set It Off.m4a +/home/mikec/Music/Audioslave - Show Me How to Live.mp3 +/home/mikec/Music/Audioslave - Like a Stone.mp3 +/home/mikec/Music/Audioslave - Set It Off.mp3 +/home/mikec/Music/Audioslave - Cochise.wma +/home/mikec/Music/Audioslave/Unknown Album/Audioslave - Cochise.m4a +/home/mikec/Music/Audioslave/Unknown Album/Audioslave - I Am a Highway.m4a +/home/mikec/Music/Audioslave - I Am the Highway.mp3 +/home/mikec/Music/Audioslave - I Am the Highway.wma +/home/mikec/Music/Audioslave - Doesn’t Remind Me.mp3 +/home/mikec/Music/Autograph - Turn Up the Radio.wma +/home/mikec/Music/Autograph/Unknown Album/Autograph - Turn Up the Radio.m4a +/home/mikec/Music/Autograph - Turn Up the Radio.mp3 +/home/mikec/Music/Avril Lavigne - Complicated (instrumental).mp3 +/home/mikec/Music/AWOLNATION - Sail.mp3 +/home/mikec/Music/Bad Religion - Infected.mp3 +/home/mikec/Music/Bad Religion - 21st Century (Digital Boy).mp3 +/home/mikec/Music/Yom Kippur war song - day of judgementשירי מלחמת יום הכיפורים יום הדין يوم الحساب حرب أكتوبر.mp3 +/home/mikec/Music/Beastie Boys - Sabotage (LP version).mp3 +/home/mikec/Music/Better Than Ezra - Good.mp3 +/home/mikec/Music/Better Than Ezra - Desperately Wanting.mp3 +/home/mikec/Music/The Black Keys - Countdown.mp3 +/home/mikec/Music/Big & Rich - Save a Horse (Ride a Cowboy).mp3 +/home/mikec/Music/Big & Rich - Lost in This Moment.mp3 +/home/mikec/Music/Bill Withers - Ain’t No Sunshine.mp3 +/home/mikec/Music/Must Be Doing Something Right.mp3 +/home/mikec/Music/Billy Currington - People Are Crazy.mp3 +/home/mikec/Music/Billy Currington - Walk a Little Straighter.mp3 +/home/mikec/Music/Black Sabbath - War Pigs Luke’s Wall.mp3 +/home/mikec/Music/Black Sabbath - Paranoid.mp3 +/home/mikec/Music/Black Sabbath - Iron Man.mp3 +/home/mikec/Music/Blind Melon - No Rain.mp3 +/home/mikec/Music/BloodKin - Never in Vain.mp3 +/home/mikec/Music/Blur - Song 2.wma +/home/mikec/Music/Blur/Unknown Album/Blur - Song 2.m4a +/home/mikec/Music/Bob Acri - Sleep Away.mp3 +/home/mikec/Music/Bob Carlisle - Butterfly Kisses.wma +/home/mikec/Music/Conway Twitty/Unknown Album/Bob Carlisle - Butterfly Kisses.m4a +/home/mikec/Music/Bob Dylan - Like a Rolling Stone.mp3 +/home/mikec/Music/Bon Jovi - You Give Love a Bad Name.mp3 +/home/mikec/Music/Bon Jovi - Livin’ on a Prayer.mp3 +/home/mikec/Music/Bon Jovi - Wanted Dead or Alive.mp3 +/home/mikec/Music/Bon Jovi - Never Say Goodbye.mp3 +/home/mikec/Music/3 Doors Down/Unknown Album/Bon Jovi - I Wish Everyday Could Be Like Christmas.m4a +/home/mikec/Music/Brad Paisley - Alcohol (radio version).wma +/home/mikec/Music/Brad Paisley/Top Hits USA T795/Brad Paisley - Alcohol (radio version).m4a +/home/mikec/Music/Brad Paisley - The World.mp3 +/home/mikec/Music/Bruno Mars - The Lazy Song.mp3 +/home/mikec/Music/Bruno Mars - Grenade.mp3 +/home/mikec/Music/Stone Temple Pilots - Wicked Garden.mp3 +/home/mikec/Music/Buckcherry - Sorry.mp3 +/home/mikec/Music/Bush - Little Things.mp3 +/home/mikec/Music/Bush - Comedown.mp3 +/home/mikec/Music/Bush - Glycerine.mp3 +/home/mikec/Music/Bush - Glycerine.wma +/home/mikec/Music/Bush/Unknown Album/Bush - Glycerine.m4a +/home/mikec/Music/Butthole Surfers - Pepper (Butcha' Bros. Remix).mp3 +/home/mikec/Music/Cage the Elephant - Come a Little Closer.mp3 +/home/mikec/Music/CAKE - Short SkirtLong Jacket.mp3 +/home/mikec/Music/CAKE - You Part the Waters.mp3 +/home/mikec/Music/Candlebox - You.mp3 +/home/mikec/Music/Candlebox - Far Behind.mp3 +/home/mikec/Music/Carrie Underwood - Last Name.mp3 +/home/mikec/Music/Céline Dion - It’s All Coming Back to Me Now.mp3 +/home/mikec/Music/Céline Dion - The Power of Love.mp3 +/home/mikec/Music/Chad Kroeger - Hero (radio version).mp3 +/home/mikec/Music/Charlie Daniels - Uneasy Rider.mp3 +/home/mikec/Music/The Charlie Daniels Band - The Legend of Wooley Swamp.mp3 +/home/mikec/Music/Cherry Poppin’ Daddies - Zoot Suit Riot.mp3 +/home/mikec/Music/Creed- Higher.mp3 +/home/mikec/Music/Creed- Higher.mp3_ +/home/mikec/Music/Christina Aguilera - Candyman.mp3 +/home/mikec/Music/ZZ Top - Esther Be The One.mp3 +/home/mikec/Music/Cinderella - Nobody’s Fool.wma +/home/mikec/Music/Cinderella/Unknown Album/Cinderella - Nobody’s Fool.m4a +/home/mikec/Music/Cinderella - Nobody’s Fool.mp3 +/home/mikec/Music/Clarence Carter - Strokin'.mp3 +/home/mikec/Music/Simple Man - Lynyrd Skynyrd - Lyrics HD.mp3 +/home/mikec/Music/Collective Soul - Shine (Official Audio).mp3 +/home/mikec/Music/Collective Soul - The World I Know.mp3 +/home/mikec/Music/Collective Soul - Why, Pt. 2.mp3 +/home/mikec/Music/Collective Soul - Where the River Flows.mp3 +/home/mikec/Music/Collective Soul - Heavy.mp3 +/home/mikec/Music/Corey Taylor - Bother.mp3 +/home/mikec/Music/Counting Crows - Round Here.mp3 +/home/mikec/Music/Counting Crows - Mr. Jones.mp3 +/home/mikec/Music/Counting Crows - Children in Bloom.mp3 +/home/mikec/Music/Counting Crows - Have You Seen Me Lately.mp3 +/home/mikec/Music/Counting Crows - Another Horsedreamer’s Blues.mp3 +/home/mikec/Music/Counting Crows - Daylight Fading.mp3 +/home/mikec/Music/Counting Crows - I’m Not Sleeping.mp3 +/home/mikec/Music/Counting Crows - Goodnight Elisabeth.mp3 +/home/mikec/Music/Counting Crows - Miller’s Angels.mp3 +/home/mikec/Music/Counting Crows - Recovering the Satellites.mp3 +/home/mikec/Music/Counting Crows - Monkey.mp3 +/home/mikec/Music/Counting Crows - Mercury.mp3 +/home/mikec/Music/Counting Crows - Walkaways.mp3 +/home/mikec/Music/Counting Crows - A Long December.mp3 +/home/mikec/Music/Counting Crows - Hanginaround.mp3 +/home/mikec/Music/Counting Crows - Hanging Around.mp3 +/home/mikec/Music/Dashboard Confessional - Angels of the Silences.mp3 +/home/mikec/Music/Counting Crows - Catapult.mp3 +/home/mikec/Music/Craig Morgan - That's What I Love About Sunday.mp3 +/home/mikec/Music/Cream - Sunshine of Your Love.wma +/home/mikec/Music/Cream/Unknown Album/Cream - Sunshine of Your Love.m4a +/home/mikec/Music/Cream/Unknown Album/Cream - White Room.m4a +/home/mikec/Music/Cream - White Room.wma +/home/mikec/Music/Cream - Crossroads.wma +/home/mikec/Music/Cream/Unknown Album/Cream - Crossroads.m4a +/home/mikec/Music/Eric Clapton - Crossroads.mp3 +/home/mikec/Music/Cream - Sunshine of Your Love.mp3 +/home/mikec/Music/Cream - White Room.mp3 +/home/mikec/Music/Creed - One Last Breath.wma +/home/mikec/Music/Creed/Weathered/Creed - One Last Breath.m4a +/home/mikec/Music/Creed - My Own Prison.mp3 +/home/mikec/Music/Creed - With Arms Wide Open.mp3 +/home/mikec/Music/Creedence Clearwater Revival - Have You Ever Seen The Rain.mp3 +/home/mikec/Music/Creedence Clearwater Revival - Up Around The Bend.mp3 +/home/mikec/Music/Creedence Clearwater Revival - Who'll Stop The Rain.mp3 +/home/mikec/Music/Creedence Clearwater Revival - Bad Moon Rising.mp3 +/home/mikec/Music/Creedence Clearwater Revival - Fortunate Son.mp3 +/home/mikec/Music/Lookin' Out My Back Door.mp3 +/home/mikec/Music/Factorio OST - 10 - The Search for Iron.mp3 +/home/mikec/Music/Factorio OST - 11 - Solar Intervention.mp3 +/home/mikec/Music/Factorio OST - 12 - Turbine Dynamics.mp3 +/home/mikec/Music/Factorio OST - 13 - Anomaly (Interlude).mp3 +/home/mikec/Music/Factorio OST - 14 - Beyond Factory Outskirts.mp3 +/home/mikec/Music/Factorio OST - 15 - The Oil Industry.mp3 +/home/mikec/Music/Factorio OST - 16 - Automation.mp3 +/home/mikec/Music/Factorio OST - 17 - Transmit (Interlude).mp3 +/home/mikec/Music/Factorio OST - 18 - cenSeq's Discrepancy.mp3 +/home/mikec/Music/Factorio OST - 19 - Efficiency Program.mp3 +/home/mikec/Music/Factorio OST - 1 - After the Crash.mp3 +/home/mikec/Music/Factorio OST - 20 - Sentient.mp3 +/home/mikec/Music/Factorio OST - 21 - World Ambience 1.mp3 +/home/mikec/Music/Factorio OST - 22 - World Ambience 2.mp3 +/home/mikec/Music/Factorio OST - 23 - World Ambience 3.mp3 +/home/mikec/Music/Factorio OST - 24 - World Ambience 4.mp3 +/home/mikec/Music/Factorio OST - 25 - Factorio Trailer _BONUS_.mp3 +/home/mikec/Music/Factorio OST - 26 - Factorio Gameplay Trailer _BONUS_.mp3 +/home/mikec/Music/Factorio OST - 2 - The Right Tools.mp3 +/home/mikec/Music/Factorio OST - 3 - Resource Deficiency (Interlude).mp3 +/home/mikec/Music/Factorio OST - 4 - Are We Alone.mp3 +/home/mikec/Music/Factorio OST - 5 - First Light (Interlude).mp3 +/home/mikec/Music/Factorio OST - 6 - Research and Minerals.mp3 +/home/mikec/Music/Factorio OST - 7 - Gathering Horizon.mp3 +/home/mikec/Music/Factorio OST - 8 - Expansion.mp3 +/home/mikec/Music/Factorio OST - 9 - Pollution (Interlude).mp3 +/home/mikec/Music/Cupid - Cupid Shuffle.mp3 +/home/mikec/Music/Cypress Hill - Insane in the Brain.mp3 +/home/mikec/Music/Dan Auerbach - Shine on Me.mp3 +/home/mikec/Music/Dan Auerbach - Trouble Weighs a Ton.mp3 +/home/mikec/Music/Dan Auerbach - I Want Some More.mp3 +/home/mikec/Music/Dan Auerbach - Heartbroken, in Disrepair.mp3 +/home/mikec/Music/Dan Auerbach - Because I Should.mp3 +/home/mikec/Music/Dan Auerbach - Whispered Words (Pretty Lies).mp3 +/home/mikec/Music/Dan Auerbach - Real Desire.mp3 +/home/mikec/Music/Dan Auerbach - When the Night Comes.mp3 +/home/mikec/Music/Dan Auerbach - Mean Monsoon.mp3 +/home/mikec/Music/Dan Auerbach - The Prowl.mp3 +/home/mikec/Music/Dan Auerbach - Keep It Hid.mp3 +/home/mikec/Music/Dan Auerbach - My Last Mistake.mp3 +/home/mikec/Music/Dan Auerbach - When I Left the Room.mp3 +/home/mikec/Music/Dan Auerbach - Street Walkin'.mp3 +/home/mikec/Music/Dan Auerbach - Goin’ Home.mp3 +/home/mikec/Music/Dan Auerbach - Waiting on a Song.mp3 +/home/mikec/Music/Dan Auerbach - Malibu Man.mp3 +/home/mikec/Music/Dan Auerbach - Livin’ in Sin.mp3 +/home/mikec/Music/Dan Auerbach - King of a One Horse Town.mp3 +/home/mikec/Music/Dan Auerbach - King Of A One Horse Town _Official Music Video_.mp3 +/home/mikec/Music/Dan Auerbach - Never in My Wildest Dreams.mp3 +/home/mikec/Music/Dan Auerbach - Cherrybomb.mp3 +/home/mikec/Music/Dan Auerbach - Stand by My Girl.mp3 +/home/mikec/Music/Dan Auerbach - Undertow.mp3 +/home/mikec/Music/Dan Auerbach - Show Me.mp3 +/home/mikec/Music/EL SHADDAI BY AMY GRANT.mp3 +/home/mikec/Music/Danzig - Mother.mp3 +/home/mikec/Music/Darryl Worley - Sounds Like Life to Me.mp3 +/home/mikec/Music/Daughtry - Over You.mp3 +/home/mikec/Music/Talking Heads - _Nothing But_ Flowers (Official Video).mp3 +/home/mikec/Music/Days of the New - Touch, Peel and Stand.mp3 +/home/mikec/Music/Default - Wasting My Time.mp3 +/home/mikec/Music/Derek and the Dominos - Layla (5.1 mix).wma +/home/mikec/Music/Derek And The Dominos/Unknown Album/Derek and the Dominos - Layla (5.1 mix).m4a +/home/mikec/Music/Derek and the Dominos - Layla.mp3 +/home/mikec/Music/Derek and the Dominos - Bell Bottom Blues.mp3 +/home/mikec/Music/Derek And The Dominos/Unknown Album/Eric Clapton - Bell Bottom Blues.m4a +/home/mikec/Music/Eric Clapton - Bell Bottom Blues.wma +/home/mikec/Music/Dierks Bentley - Am I the Only One.mp3 +/home/mikec/Music/Dio - Rainbow in the Dark.mp3 +/home/mikec/Music/3 Doors Down - Kryptonite.mp3 +/home/mikec/Music/Disturbed - Remember.wma +/home/mikec/Music/Disturbed/Unknown Album/Disturbed - Remember.m4a +/home/mikec/Music/Genesis - Land of Confusion.mp3 +/home/mikec/Music/Don Henley - The Boys of Summer.mp3 +/home/mikec/Music/Don Henley - Dirty Laundry.mp3 +/home/mikec/Music/Eagles - Lyin’ Eyes.mp3 +/home/mikec/Music/Eagles - Smugglers Blues.mp3 +/home/mikec/Music/Eagles - Take It to the Limit.mp3 +/home/mikec/Music/Eagles - Desperado.mp3 +/home/mikec/Music/Eagles - Already Gone.mp3 +/home/mikec/Music/Eagles - Tequila Sunrise.mp3 +/home/mikec/Music/Eddie Rabbitt - Drivin’ My Life Away.mp3 +/home/mikec/Music/Eddie Vedder - You’ve Got to Hide Your Love Away.mp3 +/home/mikec/Music/Elizabeth Cook - Times Are Tough in Rock 'n' Roll.mp3 +/home/mikec/Music/Eminem - Lose Yourself.mp3 +/home/mikec/Music/Audioslave/Unknown Album/Enter the Haggis - Gasoline.m4a +/home/mikec/Music/Enter the Haggis - Gasoline.mp3 +/home/mikec/Music/Enter the Haggis - Gasoline.wma +/home/mikec/Music/Eric Clapton - Tears in Heaven (live).mp3 +/home/mikec/Music/Eric Clapton - Let It Rain.wma +/home/mikec/Music/Eric Clapton/Unknown Album/Eric Clapton - Let It Rain.m4a +/home/mikec/Music/Eric Clapton/Unknown Album/Eric Clapton - I Shot the Sheriff (5.1 mix).m4a +/home/mikec/Music/Eric Clapton/Unknown Album/Eric Clapton - Wonderful Tonight.m4a +/home/mikec/Music/Eric Clapton - Wonderful Tonight.wma +/home/mikec/Music/Eric Clapton - Promises.wma +/home/mikec/Music/Eric Clapton/Unknown Album/Eric Clapton - Promises.m4a +/home/mikec/Music/Eric Clapton - Let It Rain.mp3 +/home/mikec/Music/Eric Clapton - I Shot the Sheriff.mp3 +/home/mikec/Music/Eric Clapton - Wonderful Tonight.mp3 +/home/mikec/Music/Eric Clapton - Promises.mp3 +/home/mikec/Music/Eric Clapton - After Midnight.mp3 +/home/mikec/Music/Eric Clapton/Unknown Album/Eric Clapton - After Midnight.m4a +/home/mikec/Music/Eric Clapton - I Shot the Sheriff (5.1 mix).wma +/home/mikec/Music/Eric Clapton - Cocaine.mp3 +/home/mikec/Music/Eric Clapton - Cocaine.wma +/home/mikec/Music/Eric Clapton/Unknown Album/Eric Clapton - Cocaine.m4a +/home/mikec/Music/Eric Clapton - I Can’t Stand It.mp3 +/home/mikec/Music/Eric Clapton - I Can’t Stand It.wma +/home/mikec/Music/Eric Clapton/Unknown Album/Eric Clapton - I Can’t Stand It.m4a +/home/mikec/Music/Eric Clapton - Change the World.mp3 +/home/mikec/Music/Europe - The Final Countdown (live).wma +/home/mikec/Music/Europe/Unknown Album/Europe - The Final Countdown (live).m4a +/home/mikec/Music/Europe - The Final Countdown.mp3 +/home/mikec/Music/Evanescence - Going Under.mp3 +/home/mikec/Music/Evanescence - Bring Me To Life (Instrumental).mp3 +/home/mikec/Music/Everclear - Santa Monica.mp3 +/home/mikec/Music/The Coasters Sh Boom Life Could Be A Dream.mp3 +/home/mikec/Music/Fatal Shore - Real World.wma +/home/mikec/Music/Matchbox 20/Unknown Album/Fatal Shore - Real World.m4a +/home/mikec/Music/Fatal Shore - Real World.mp3 +/home/mikec/Music/Fatboy Slim - The Rockafeller Skank.mp3 +/home/mikec/Music/Filter - Hey Man, Nice Shot (Bud Gets the Lead Out).mp3 +/home/mikec/Music/Finger Eleven - Paralyzer (Official Audio).mp3 +/home/mikec/Music/Finger Eleven - Paralyzer (Official Audio).mp3_ +/home/mikec/Music/Finger Eleven - One Thing.mp3 +/home/mikec/Music/Five for Fighting - 100 Years.mp3 +/home/mikec/Music/Flogging Molly/Swagger/Flogging Molly - The Worst Day Since Yesterday.m4a +/home/mikec/Music/Flogging Molly - The Worst Day Since Yesterday.wma +/home/mikec/Music/Flogging Molly - The Worst Day Since Yesterday.mp3 +/home/mikec/Music/Foo Fighters - Monkey Wrench.mp3 +/home/mikec/Music/Foo Fighters - The Pretender.mp3 +/home/mikec/Music/Foo Fighters - Baker Street.mp3 +/home/mikec/Music/Foo Fighters/Foo Fighters/Foo Fighters - I’ll Stick Around.m4a +/home/mikec/Music/Foo Fighters - I’ll Stick Around.wma +/home/mikec/Music/Foo Fighters - I’ll Stick Around.mp3 +/home/mikec/Music/Foo Fighters - Big Me.mp3 +/home/mikec/Music/Foo Fighters - My Hero.mp3 +/home/mikec/Music/Foo Fighters - Everlong.mp3 +/home/mikec/Music/Foo Fighters - Learn to Fly.mp3 +/home/mikec/Music/Foo Fighters - Weenie Beenie.mp3 +/home/mikec/Music/Foo Fighters - All My Life (edit).mp3 +/home/mikec/Music/Alablaster - Nicky Is Cool.mp3 +/home/mikec/Music/Foo Fighters - Best of You.mp3 +/home/mikec/Music/3 Doors Down/Unknown Album/Francis Lai - Live for Life Live for Life.m4a +/home/mikec/Music/Francis Lai - Live for Life Live for Life.mp3 +/home/mikec/Music/Francis Lai - Live for Life Live for Life.wma +/home/mikec/Music/Franz Ferdinand - Take Me Out.mp3 +/home/mikec/Music/Fuel - Shimmer.mp3 +/home/mikec/Music/Fuel - Hemorrhage (in My Hands).mp3 +/home/mikec/Music/Fugees - Killing Me Softly With His Song.mp3 +/home/mikec/Music/Garbage - Only Happy When It Rains.mp3 +/home/mikec/Music/Garth Brooks - If Tomorrow Never Comes.mp3 +/home/mikec/Music/Gary Allan - Watching Airplanes.mp3 +/home/mikec/Music/Gavin DeGraw - I Don't Want to Be.mp3 +/home/mikec/Music/Gin Blossoms/Unknown Album/Gin Blossoms - Until I Fall Away.m4a +/home/mikec/Music/Gin Blossoms - Until I Fall Away.wma +/home/mikec/Music/Gin Blossoms - Mrs. Rita.wma +/home/mikec/Music/Gin Blossoms/Unknown Album/Gin Blossoms - Mrs. Rita.m4a +/home/mikec/Music/Gin Blossoms - Til I Hear It From You.wma +/home/mikec/Music/Gin Blossoms/Unknown Album/Gin Blossoms - Til I Hear It From You.m4a +/home/mikec/Music/Gin Blossoms - Til I Hear It From You.mp3 +/home/mikec/Music/Gin Blossoms - Allison Road.mp3 +/home/mikec/Music/Gin Blossoms - Allison Road.wma +/home/mikec/Music/Gin Blossoms/Unknown Album/Gin Blossoms - Allison Road.m4a +/home/mikec/Music/Gin Blossoms - Found Out About You.mp3 +/home/mikec/Music/Gin Blossoms - Found Out About You.wma +/home/mikec/Music/Gin Blossoms/Unknown Album/Gin Blossoms - Found Out About You.m4a +/home/mikec/Music/Gin Blossoms - Hey Jealousy.mp3 +/home/mikec/Music/Gin Blossoms - Hey Jealousy.wma +/home/mikec/Music/Gin Blossoms/Unknown Album/Gin Blossoms - Hey Jealousy.m4a +/home/mikec/Music/Gin Blossoms - Follow You Down.wma +/home/mikec/Music/Gin Blossoms/Unknown Album/Gin Blossoms - Follow You Down.m4a +/home/mikec/Music/Gin Blossoms - Until I Fall Away.mp3 +/home/mikec/Music/Gin Blossoms - Mrs. Rita.mp3 +/home/mikec/Music/Glen Campbell - Rhinestone Cowboy.mp3 +/home/mikec/Music/Gnarls Barkley - Crazy.mp3 +/home/mikec/Music/Puddle of Mudd - Fear.mp3 +/home/mikec/Music/Godsmack - Whatever.mp3 +/home/mikec/Music/Godsmack - Awake.mp3 +/home/mikec/Music/Godsmack - I Stand Alone.mp3 +/home/mikec/Music/Godsmack - Serenity.mp3 +/home/mikec/Music/Golden Earring - Twilight Zone.mp3 +/home/mikec/Music/Gordon Lightfoot - The Wreck of the Edmund Fitzgerald.mp3 +/home/mikec/Music/Gordon Lightfoot - Sundown.mp3 +/home/mikec/Music/Graham Blvd - Wildwood Weed.mp3 +/home/mikec/Music/Great Lake Swimmers - Pulling on a Line.mp3 +/home/mikec/Music/Great White - Once Bitten Twice Shy.wma +/home/mikec/Music/Great White/Unknown Album/Great White - Once Bitten Twice Shy.m4a +/home/mikec/Music/Great White - Once Bitten Twice Shy.mp3 +/home/mikec/Music/Green Day - Minority.mp3 +/home/mikec/Music/Green Day - When I Come Around.mp3 +/home/mikec/Music/Green Day - Basket Case.mp3 +/home/mikec/Music/Green Day - Brain Stew.mp3 +/home/mikec/Music/Green Day - Geek Stink Breath.mp3 +/home/mikec/Music/Green Day - Hitchin’ a Ride.mp3 +/home/mikec/Music/Green Day - Good Riddance (Time of Your Life).mp3 +/home/mikec/Music/Green Day - Time of Your Life.mp3 +/home/mikec/Music/Green Day/International Superhits!/Green Day - Maria.m4a +/home/mikec/Music/Green Day - Maria.wma +/home/mikec/Music/Green Day - Maria.mp3 +/home/mikec/Music/Green Day - Boulevard of Broken Dreams.mp3 +/home/mikec/Music/Green Day - Wake Me Up When September Ends.mp3 +/home/mikec/Music/Green Day - Holiday.mp3 +/home/mikec/Music/Gretchen Wilson - Redneck Woman.mp3 +/home/mikec/Music/Gretchen Wilson - Here for the Party.mp3 +/home/mikec/Music/Gungor - Beautiful Things.mp3 +/home/mikec/Music/Guns N' Roses/Appetite for Destruction/Guns N’ Roses - Nightrain.m4a +/home/mikec/Music/Guns N’ Roses - Nightrain.wma +/home/mikec/Music/Guns N' Roses/Appetite for Destruction/Guns N’ Roses - Out Ta Get Me.m4a +/home/mikec/Music/Guns N’ Roses - Out Ta Get Me.wma +/home/mikec/Music/Guns N' Roses/Appetite for Destruction/Guns N’ Roses - Mr. Brownstone.m4a +/home/mikec/Music/Guns N’ Roses - Mr. Brownstone.wma +/home/mikec/Music/Guns N' Roses/Appetite for Destruction/Guns N’ Roses - Think About You.m4a +/home/mikec/Music/Guns N’ Roses - Think About You.wma +/home/mikec/Music/Guns N' Roses - Welcome To The Jungle_1.mp3 +/home/mikec/Music/Guns N’ Roses - It’s So Easy.mp3 +/home/mikec/Music/Guns N' Roses - Nightrain_1.mp3 +/home/mikec/Music/Guns N’ Roses - Nightrain.mp3 +/home/mikec/Music/Guns N' Roses - Out Ta Get Me_1.mp3 +/home/mikec/Music/Guns N’ Roses - Out Ta Get Me.mp3 +/home/mikec/Music/Guns N' Roses - Mr. Brownstone_1.mp3 +/home/mikec/Music/Guns N’ Roses - Mr. Brownstone.mp3 +/home/mikec/Music/Guns N' Roses - Paradise City_1.mp3 +/home/mikec/Music/Guns N’ Roses - My Michelle.mp3 +/home/mikec/Music/Guns N' Roses - Think About You_1.mp3 +/home/mikec/Music/Guns N’ Roses - Think About You.mp3 +/home/mikec/Music/Guns N’ Roses - Sweet Child o’ Mine.mp3 +/home/mikec/Music/Guns N’ Roses - You’re Crazy.mp3 +/home/mikec/Music/Guns N’ Roses - Anything Goes.mp3 +/home/mikec/Music/Guns N’ Roses - Rocket Queen.mp3 +/home/mikec/Music/Guns N’ Roses - Don’t Cry.wma +/home/mikec/Music/Guns N' Roses/Guns N' Roses_ Greatest Hits/Guns N’ Roses - Don’t Cry.m4a +/home/mikec/Music/Guns N’ Roses - Welcome to the Jungle.mp3 +/home/mikec/Music/Guns N’ Roses - Don’t Cry.mp3 +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - Welcome to the Jungle.m4a +/home/mikec/Music/Guns N’ Roses - Welcome to the Jungle.wma +/home/mikec/Music/Guns N’ Roses - Sweet Child o’ Mine.wma +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - Sweet Child o’ Mine.m4a +/home/mikec/Music/Guns N’ Roses - Patience.wma +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - Patience.m4a +/home/mikec/Music/Guns N’ Roses - Paradise City.wma +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - Paradise City.m4a +/home/mikec/Music/Guns N’ Roses - Knockin’ on Heaven’s Door.wma +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - Knockin’ on Heaven’s Door.m4a +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - You Could Be Mine.m4a +/home/mikec/Music/Guns N’ Roses - You Could Be Mine.wma +/home/mikec/Music/08 Guns 'N' Roses - Don't Cry.wma +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - Don’t Cry.m4a +/home/mikec/Music/Guns N’ Roses - November Rain.wma +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - November Rain.m4a +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - Yesterdays.m4a +/home/mikec/Music/Guns N’ Roses - Yesterdays.wma +/home/mikec/Music/Guns N’ Roses - Hair of the Dog.mp3 +/home/mikec/Music/Guns N’ Roses - Civil War.mp3 +/home/mikec/Music/Guns N’ Roses - The Civil War.wma +/home/mikec/Music/Guns N' Roses/Unknown Album/Guns N’ Roses - The Civil War.m4a +/home/mikec/Music/Guns N' Roses - Sweet Child O' Mine_1.mp3 +/home/mikec/Music/Guns N’ Roses - Patience.mp3 +/home/mikec/Music/Guns N’ Roses - Paradise City.mp3 +/home/mikec/Music/Guns N’ Roses - Knockin’ on Heaven’s Door.mp3 +/home/mikec/Music/Guns N’ Roses - You Could Be Mine.mp3 +/home/mikec/Music/Guns N' Roses - Don't Cry Tonight.mp3 +/home/mikec/Music/Guns N’ Roses - November Rain.mp3 +/home/mikec/Music/Guns N’ Roses - Yesterdays.mp3 +/home/mikec/Music/Hank Flamingo - The Dope Smokin’ Song.mp3 +/home/mikec/Music/Hank Williams, Jr. - If Heaven Ain't a Lot Like Dixie.mp3 +/home/mikec/Music/Hank Williams, Jr. - That's How They Do It in Dixie.mp3 +/home/mikec/Music/Hank Williams, Jr. - Family Tradition.mp3 +/home/mikec/Music/Headlights - Get Going.mp3 +/home/mikec/Music/Heaven 17 - With or Without You.wma +/home/mikec/Music/U2/Unknown Album/Heaven 17 - With or Without You.m4a +/home/mikec/Music/Heaven 17 - With or Without You.mp3 +/home/mikec/Music/Helloween - My Sacrifice.mp3 +/home/mikec/Music/Helmet - Unsung.mp3 +/home/mikec/Music/The Black Keys - Everywhere I Go.mp3 +/home/mikec/Music/We're Finally Landing.mp3 +/home/mikec/Music/Hoobastank - Crawling in the Dark.mp3 +/home/mikec/Music/Hootie & the Blowfish - Hannah Jane.mp3 +/home/mikec/Music/Hope Sandoval & the Warm Inventions - Trouble.mp3 +/home/mikec/Music/House of Pain - Jump Around.mp3 +/home/mikec/Music/Ice Cube - It Was a Good Day.mp3 +/home/mikec/Music/Ice Cube - Check Yo Self (remix).mp3 +/home/mikec/Music/The Who - Behind Blue Eyes (HQ).mp3 +/home/mikec/Music/Jet - Are You Gonna Be My Girl (live from Sessions @ AOL).mp3 +/home/mikec/Music/Jethro Tull - Living in the Past.wma +/home/mikec/Music/Jethro Tull/Unknown Album/Jethro Tull - Living in the Past.m4a +/home/mikec/Music/Jethro Tull - Locomotive Breath.wma +/home/mikec/Music/Jethro Tull/Unknown Album/Jethro Tull - Locomotive Breath.m4a +/home/mikec/Music/Jethro Tull - Skating Away on the Thin Ice of the New Day.wma +/home/mikec/Music/Jethro Tull/Unknown Album/Jethro Tull - Skating Away on the Thin Ice of the New Day.m4a +/home/mikec/Music/Jethro Tull - Thick as a Brick (extract).wma +/home/mikec/Music/Jethro Tull/Unknown Album/Jethro Tull - Thick as a Brick (extract).m4a +/home/mikec/Music/Jethro Tull - Aqualung.mp3 +/home/mikec/Music/Jethro Tull - Aqualung.wma +/home/mikec/Music/Jethro Tull/Unknown Album/Jethro Tull - Aqualung.m4a +/home/mikec/Music/Jethro Tull - Bungle in the Jungle.mp3 +/home/mikec/Music/Jethro Tull - Living in the Past.mp3 +/home/mikec/Music/Jethro Tull - Locomotive Breath.mp3 +/home/mikec/Music/Jethro Tull - Skating Away.mp3 +/home/mikec/Music/Jethro Tull - Thick as a Brick.mp3 +/home/mikec/Music/Jim Croce - You Don’t Mess Around With Jim.mp3 +/home/mikec/Music/Jim Croce - Operator.wma +/home/mikec/Music/Jim Croce/You Don't Mess Around With Jim/Jim Croce - Operator (That’s Not the Way It Feels).m4a +/home/mikec/Music/Jim Croce - Time In A Bottle.wma +/home/mikec/Music/Jim Croce/You Don't Mess Around With Jim/Jim Croce - Time In A Bottle.m4a +/home/mikec/Music/Jim Croce - Operator (That’s Not the Way It Feels).mp3 +/home/mikec/Music/Jim Croce - Time In A Bottle.mp3 +/home/mikec/Music/Jim Croce/I Got a Name/Jim Croce - I’ll Have to Say I Love You in a Song.m4a +/home/mikec/Music/Jim Croce - I’ll Have to Say I Love You in a Song.wma +/home/mikec/Music/Jim Croce - I’ll Have to Say I Love You in a Song.mp3 +/home/mikec/Music/Jim Croce - Bad, bad Leroy Brown.mp3 +/home/mikec/Music/Jim Croce - Bad, bad Leroy Brown.wma +/home/mikec/Music/Jim Croce/Life and Times/Jim Croce - Bad, bad Leroy Brown.m4a +/home/mikec/Music/Jimi Hendrix - Castles Made Of Sand.mp3 +/home/mikec/Music/Jimi Hendrix - The Star Spangled Banner.mp3 +/home/mikec/Music/Joe Cocker - The Letter.mp3 +/home/mikec/Music/Joe Cocker - With a Little Help From My Friends.mp3 +/home/mikec/Music/Joe Cocker - You Are So Beautiful.mp3 +/home/mikec/Music/Joe Cocker - The Letter (Live).mp3 +/home/mikec/Music/Joe Diffie - Pickup Man.mp3 +/home/mikec/Music/John Michael Montgomery - I Love the Way You Love Me.wma +/home/mikec/Music/Toby Keith/Shock'n Y'all [DualDisc] Disc 1/John Michael Montgomery - I Love the Way You Love Me.m4a +/home/mikec/Music/Johnny Cash - I’ve Been Everywhere.mp3 +/home/mikec/Music/Johnny Cash - Wanted Man.mp3 +/home/mikec/Music/Johnny Cash - A Boy Named Sue.mp3 +/home/mikec/Music/Johnny Cash - Folsom Prison Blues.mp3 +/home/mikec/Music/Johnny Cash - God's Gonna Cut You Down.mp3 +/home/mikec/Music/Judas Priest/Unknown Album/Judas Priest - You’ve Got Another Thing Comin’.m4a +/home/mikec/Music/Judas Priest - You’ve Got Another Thing Comin’.wma +/home/mikec/Music/Judas Priest - You’ve Got Another Thing Comin’.mp3 +/home/mikec/Music/Kelly Clarkson - Never Again.mp3 +/home/mikec/Music/Jesse McCartney - Because You Live.mp3 +/home/mikec/Music/Kenny Rogers - Just Dropped In.mp3 +/home/mikec/Music/Kenny Wayne Shepherd Band - Blue on Black.mp3 +/home/mikec/Music/Kid Rock - Only God Knows Why.mp3 +/home/mikec/Music/Kid Rock - Picture.mp3 +/home/mikec/Music/Kings of Leon - Be Somebody.wma +/home/mikec/Music/Kings of Leon/Only By the Night (Deluxe Version)/Kings of Leon - Be Somebody.m4a +/home/mikec/Music/Kings of Leon - Be Somebody.mp3 +/home/mikec/Music/_Official_ Celeste B-Sides - 01 - Maxo - Forsaken City (Sever the Skyline Mix).mp3 +/home/mikec/Music/_Official_ Celeste B-Sides - 02 - Ben Prunty - Old Site (Black Moonrise Mix).mp3 +/home/mikec/Music/_Official_ Celeste B-Sides - 03 - Christa Lee - Celestial Resort (Good Karma Mix).mp3 +/home/mikec/Music/_Official_ Celeste B-Sides - 04 - in love with a ghost - Golden Ridge (Golden Feather Mix).mp3 +/home/mikec/Music/_Official_ Celeste B-Sides - 05 - 2 Mello - Mirror Temple (Mirror Magic Mix).mp3 +/home/mikec/Music/_Official_ Celeste B-Sides - 06 - Jukio Kallio - Reflection (Center of the Earth Mix).mp3 +/home/mikec/Music/_Official_ Celeste B-Sides - 07 - Kuraine - Summit (No More Running Mix).mp3 +/home/mikec/Music/_Official_ Celeste B-Sides - 08 - Matthewせいじ - The Core (Say Goodbye Mix).mp3 +/home/mikec/Music/_Official_ Celeste B-Sides - 09 - (Bonus) Area 1 Demo.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 01 - Prologue.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 02 - First Steps.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 03 - Resurrections.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 04 - Awake.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 05 - Postcard from Celeste Mountain.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 06 - Checking In.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 07 - Spirit of Hospitality.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 08 - Scattered and Lost.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 09 - Golden.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 10 - Anxiety.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 11 - Quiet and Falling.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 12 - In the Mirror.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 13 - Madeline and Theo.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 14 - Starjump.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 15 - Reflection.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 16 - Confronting Myself.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 17 - Little Goth.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 18 - Reach for the Summit.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 19 - Exhale.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 20 - Heart of the Mountain.mp3 +/home/mikec/Music/_Official_ Celeste Original Soundtrack - 21 - My Dearest Friends.mp3 +/home/mikec/Music/Beyond the Heart.mp3 +/home/mikec/Music/Crash.mp3 +/home/mikec/Music/Farewell.mp3 +/home/mikec/Music/Fear of the Unknown.mp3 +/home/mikec/Music/Final Defiance.mp3 +/home/mikec/Music/Futility.mp3 +/home/mikec/Music/In Stasis.mp3 +/home/mikec/Music/Joy of Remembrance.mp3 +/home/mikec/Music/Reconciliation.mp3 +/home/mikec/Music/The Empty Space Above.mp3 +/home/mikec/Music/The Woman and the Bird.mp3 +/home/mikec/Music/Vovô e Vovó.mp3 +/home/mikec/Music/wavedash.ppt.mp3 +/home/mikec/Music/Lenny Kravitz - Are You Gonna Go My Way.mp3 +/home/mikec/Music/Lenny Kravitz - Are You Gonna Go My Way.wma +/home/mikec/Music/Lenny Kravitz/Unknown Album/Lenny Kravitz - Are You Gonna Go My Way.m4a +/home/mikec/Music/Lifehouse - Hanging by a Moment.mp3 +/home/mikec/Music/Lifehouse - First Time.mp3 +/home/mikec/Music/Linkin Park - Numb.mp3 +/home/mikec/Music/Linkin Park - What I’ve Done.mp3 +/home/mikec/Music/Linkin Park - In the End.mp3 +/home/mikec/Music/Linkin Park - One Step Closer.mp3 +/home/mikec/Music/Linkin Park - Crawling.mp3 +/home/mikec/Music/Linkin Park - Given Up (radio edit).mp3 +/home/mikec/Music/Lisa Heller - Hope (Official Music Video).mp3 +/home/mikec/Music/Lit - Down.wma +/home/mikec/Music/LĪVE - Lightning Crashes.mp3 +/home/mikec/Music/LĪVE - The Dolphin’s Cry.mp3 +/home/mikec/Music/LĪVE - I Alone.mp3 +/home/mikec/Music/Living Colour - Cult of Personality.mp3 +/home/mikec/Music/Living Colour - Cult of Personality.wma +/home/mikec/Music/Living Colour/Unknown Album/Living Colour - Cult of Personality.m4a +/home/mikec/Music/Loca People - Party Rock Anthem.mp3 +/home/mikec/Music/Audioslave/Unknown Album/Lunik - What You Are.m4a +/home/mikec/Music/Lunik - What You Are.wma +/home/mikec/Music/Lunik - What You Are.mp3 +/home/mikec/Music/Lykke Li - No Rest for the Wicked.mp3 +/home/mikec/Music/Madonna - Music.mp3 +/home/mikec/Music/Manfred Krug - The Mighty Quinn.mp3 +/home/mikec/Music/Mark Wills - 19 Somethin’.mp3 +/home/mikec/Music/Maroon 5 - Moves Like Jagger.mp3 +/home/mikec/Music/Mary J. Blige - Family Affair (remix).mp3 +/home/mikec/Music/03 Matchbox 20 - 3 am.wma +/home/mikec/Music/Matchbox 20/Unknown Album/Matchbox 20 - 3 A.M..m4a +/home/mikec/Music/Matchbox 20 - Push.wma +/home/mikec/Music/Matchbox 20/Unknown Album/Matchbox 20 - Push.m4a +/home/mikec/Music/Matchbox 20 - 3 A.M..wma +/home/mikec/Music/Matchbox 20 - Push.mp3 +/home/mikec/Music/Matchbox 20/Unknown Album/Matchbox Twenty - Long Day.m4a +/home/mikec/Music/Matchbox Twenty - Long Day.wma +/home/mikec/Music/Matchbox 20/Unknown Album/Matchbox Twenty - Back 2 Good.m4a +/home/mikec/Music/Matchbox Twenty - Back 2 Good.mp3 +/home/mikec/Music/Matchbox Twenty - Back 2 Good.wma +/home/mikec/Music/Matchbox Twenty - Long Day.mp3 +/home/mikec/Music/Matchbox Twenty - 3 am.mp3 +/home/mikec/Music/Meat Loaf - I’d Do Anything for Love.mp3 +/home/mikec/Music/Meat Loaf - Two Out of Three Ain’t Bad.mp3 +/home/mikec/Music/Meat Loaf - Paradise by the Dashboard Light (5.1 mix).mp3 +/home/mikec/Music/Meat Loaf - For Crying Out Loud.mp3 +/home/mikec/Music/Meat Loaf - Blind as a Bat.mp3 +/home/mikec/Music/Meat Puppets - Backwater.wma +/home/mikec/Music/Meat Puppets/Unknown Album/Meat Puppets - Backwater.m4a +/home/mikec/Music/The Black Keys - Work Me.mp3 +/home/mikec/Music/Metallica - Fade To Black.mp3 +/home/mikec/Music/- Metallica - The Unforgiven (Video)_1485478525661.mp3.mp3 +/home/mikec/Music/Metallica - Nothing Else Matters.mp3 +/home/mikec/Music/Metallica - One.mp3 +/home/mikec/Music/Metallica - The Unforgiven.mp3 +/home/mikec/Music/Metallica - Enter Sandman.mp3 +/home/mikec/Music/Metallica - Sad but True.mp3 +/home/mikec/Music/Metallica - Fade to Black.wma +/home/mikec/Music/Metallica/Unknown Album/Metallica - Fade to Black.m4a +/home/mikec/Music/Missy Elliott - Gossip Folks (TV).mp3 +/home/mikec/Music/Morrissey - Wide to Receive.mp3 +/home/mikec/Music/Mötley Crüe - Home Sweet Home.mp3 +/home/mikec/Music/Mötley Crüe - Girls, Girls, Girls.mp3 +/home/mikec/Music/Mötley Crüe - Kickstart My Heart.mp3 +/home/mikec/Music/Mötley Crüe - Dr. Feelgood.mp3 +/home/mikec/Music/Mötley Crüe - Same Ol’ Situation (S.O.S.).mp3 +/home/mikec/Music/Mr. Scruff - Kalimba.mp3 +/home/mikec/Music/Muse - Uprising.mp3 +/home/mikec/Music/Neal McCoy - Billy's Got His Beer Goggles On.mp3 +/home/mikec/Music/Nickelback - Photograph (pop edit).mp3 +/home/mikec/Music/Nickelback - Rockstar.mp3 +/home/mikec/Music/Nickelback - Feelin’ Way Too Damn Good.mp3 +/home/mikec/Music/Nickelback - If Everyone Cared.mp3 +/home/mikec/Music/Nick Mason - A Country Boy Can Survive.mp3 +/home/mikec/Music/Night Ranger - Sister Christian.wma +/home/mikec/Music/Night Ranger/Unknown Album/Night Ranger - Sister Christian.m4a +/home/mikec/Music/Nirvana - Drain You.mp3 +/home/mikec/Music/Nirvana - In Bloom (Devonshire mix).mp3 +/home/mikec/Music/Nirvana - Lithium.mp3 +/home/mikec/Music/Nirvana - Smells Like Teen Spirit.mp3 +/home/mikec/Music/Nirvana - Breed.mp3 +/home/mikec/Music/Nirvana - Come as You Are (Devonshire mix).mp3 +/home/mikec/Music/Nirvana - Heart-Shaped Box.mp3 +/home/mikec/Music/Nirvana - Rape Me.mp3 +/home/mikec/Music/Nirvana - Lake of Fire.mp3 +/home/mikec/Music/Nirvana - About a Girl.mp3 +/home/mikec/Music/Nirvana - All Apologies.mp3 +/home/mikec/Music/Novato - Top.wma +/home/mikec/Music/Novato - Top.mp3 +/home/mikec/Music/Oasis - Don’t Look Back in Anger.mp3 +/home/mikec/Music/Oleander - It's The Reason.mp3 +/home/mikec/Music/Orgy - Blue Monday (single mix).mp3 +/home/mikec/Music/Our Lady Of Peace - Superman Is Dead.mp3 +/home/mikec/Music/Our Lady Peace - Clumsy.mp3 +/home/mikec/Music/OutKast - The Way You Move (club mix).mp3 +/home/mikec/Music/Ozzy Osbourne - Road to Nowhere.mp3 +/home/mikec/Music/Ozzy Osbourne - Dreamer.mp3 +/home/mikec/Music/Papa Roach - Take Me.wma +/home/mikec/Music/Papa Roach/Unknown Album/Papa Roach - Take Me.m4a +/home/mikec/Music/Papa Roach - Getting Away With Murder.mp3 +/home/mikec/Music/Pearl Jam - Even Flow.mp3 +/home/mikec/Music/Pearl Jam - Jeremy.mp3 +/home/mikec/Music/Pearl Jam - Extemperaneous Wandering.mp3 +/home/mikec/Music/Pearl Jam - Off He Goes.mp3 +/home/mikec/Music/Pearl Jam - Release.mp3 +/home/mikec/Music/Pearl Jam - Alive.mp3 +/home/mikec/Music/Pearl Jam - Black.mp3 +/home/mikec/Music/Pearl Jam - Daughter.mp3 +/home/mikec/Music/Pearl Jam - Elderly Woman Behind the Counter in a Small Town.mp3 +/home/mikec/Music/Pearl Jam - Elderly Woman Behind the Counter in a Small Town.wma +/home/mikec/Music/Pearl Jam/Rearviewmirror - Greatest Hits 1991-2003/Pearl Jam - Elderly Woman Behind the Counter in a Small Town.m4a +/home/mikec/Music/Pearl Jam - Better Man.mp3 +/home/mikec/Music/Pearl Jam - Once.mp3 +/home/mikec/Music/Pearl Jam - Nothingman.wma +/home/mikec/Music/Pearl Jam/Rearviewmirror - Greatest Hits 1991-2003/Pearl Jam - Nothingman.m4a +/home/mikec/Music/Pearl Jam - Nothingman.mp3 +/home/mikec/Music/Pearl Jam - World Wide Suicide.mp3 +/home/mikec/Music/Phil Collins - In the Air Tonight.mp3 +/home/mikec/Music/Pickin' On Project - Midnight Rider.mp3 +/home/mikec/Music/Pitbull - Don't Stop the Party.mp3 +/home/mikec/Music/P.O.D. - Youth of the Nation.mp3 +/home/mikec/Music/Poison - Every Rose Has Its Thorn.mp3 +/home/mikec/Music/Poison - Every Rose Has Its Thorn.wma +/home/mikec/Music/Poison/Unknown Album/Poison - Every Rose Has Its Thorn.m4a +/home/mikec/Music/Portugal. The Man - Feel It Still.mp3 +/home/mikec/Music/PSY - Gangnam Style.mp3 +/home/mikec/Music/Puddle of Mudd - Drift & Die.mp3 +/home/mikec/Music/Puddle of Mudd - Away From Me.wma +/home/mikec/Music/Puddle Of Mudd/Unknown Album/Puddle of Mudd - Away From Me.m4a +/home/mikec/Music/Puddle of Mudd - Psycho.mp3 +/home/mikec/Music/Queens of the Stone Age - No One Knows (UNKLE Reconstruction) (radio edit).mp3 +/home/mikec/Music/Queens of the Stone Age - Go With the Flow.wma +/home/mikec/Music/Queens of the Stone Age - Go With the Flow.mp3 +/home/mikec/Music/Queens of the Stone Age/Songs for the Deaf/Queens of the Stone Age - Go With the Flow.m4a +/home/mikec/Music/Quiet Riot - Cum On Feel the Noize.mp3 +/home/mikec/Music/Quiet Riot - Cum On Feel the Noize.wma +/home/mikec/Music/Quiet Riot/Unknown Album/Quiet Riot - Cum On Feel the Noize.m4a +/home/mikec/Music/Radiohead - Creep.mp3 +/home/mikec/Music/Rainbow - Man on the Silver Mountain.mp3 +/home/mikec/Music/Randy Houser - Boots On.mp3 +/home/mikec/Music/Ratt - Round and Round.wma +/home/mikec/Music/Ratt/Unknown Album/Ratt - Round and Round.m4a +/home/mikec/Music/Ratt - Round and Round.mp3 +/home/mikec/Music/Ray Charles - Georgia on My Mind (live).mp3 +/home/mikec/Music/Reba McEntire - Fancy.mp3 +/home/mikec/Music/Red Hot Chili Peppers - Under the Bridge.mp3 +/home/mikec/Music/Red Hot Chili Peppers - My Friends.wma +/home/mikec/Music/Red Hot Chili Peppers/Unknown Album/Red Hot Chili Peppers - My Friends.m4a +/home/mikec/Music/Red Hot Chili Peppers - By the Way.mp3 +/home/mikec/Music/Red Hot Chili Peppers - My Friends.mp3 +/home/mikec/Music/Red Hot Chili Peppers - Higher Ground.mp3 +/home/mikec/Music/Red Hot Chili Peppers - Higher Ground.wma +/home/mikec/Music/Red Hot Chili Peppers/Unknown Album/Red Hot Chili Peppers - Higher Ground.m4a +/home/mikec/Music/The Black Keys - Stop Stop.mp3 +/home/mikec/Music/Red Hot Chili Peppers Revival - Otherside.mp3 +/home/mikec/Music/R.E.M. - What’s the Frequency, Kenneth (radio version).mp3 +/home/mikec/Music/Rhino Bucket - Beg for Your Love.mp3 +/home/mikec/Music/Slow Ride - Foghat.mp3 +/home/mikec/Music/Symfonický orchester Slovenského rozhlasu - Maid with the Flaxen Hair.mp3 +/home/mikec/Music/Rihanna - Umbrella.mp3 +/home/mikec/Music/Rihanna - Hard.wma +/home/mikec/Music/ZZ Top/Unknown Album/Rihanna - Hard.m4a +/home/mikec/Music/Robin Thicke - Blurred Lines.mp3 +/home/mikec/Music/Rob Zombie - Never Gonna Stop (The Red, Red Kroovy).mp3 +/home/mikec/Music/Rob Zombie - Dragula.mp3 +/home/mikec/Music/Rob Zombie - Feel So Numb.mp3 +/home/mikec/Music/Rosenstolz - Cleopatra.mp3 +/home/mikec/Music/Sammy Hagar - Your Love Is Driving Me Crazy.mp3 +/home/mikec/Music/Sammy Hagar - I Can’t Drive 55.mp3 +/home/mikec/Music/Scorpions - No One Like You.wma +/home/mikec/Music/Scorpions/Unknown Album/Scorpions - No One Like You.m4a +/home/mikec/Music/Scorpions - The Zoo.wma +/home/mikec/Music/Scorpions/Unknown Album/Scorpions - The Zoo.m4a +/home/mikec/Music/Scorpions - No One Like You.mp3 +/home/mikec/Music/Scorpions - The Zoo.mp3 +/home/mikec/Music/Scott H. Biram - Blood Sweat & Murder.mp3 +/home/mikec/Music/Scott H. Biram - Sinkin' Down.mp3 +/home/mikec/Music/Scott H. Biram - Judgement Day.mp3 +/home/mikec/Music/Scott H. Biram - Draggin’ Down the Line.mp3 +/home/mikec/Music/Scott H. Biram - Hard Time.mp3 +/home/mikec/Music/Scott H. Biram - Never Comin’ Home.mp3 +/home/mikec/Music/Seether - Remedy.mp3 +/home/mikec/Music/Seether - Fine Again.mp3 +/home/mikec/Music/Seven Mary Three - Cumbersome.mp3 +/home/mikec/Music/Shinedown - Sound of Madness.mp3 +/home/mikec/Music/Shinedown - 45.mp3 +/home/mikec/Music/Shinedown - 45.wma +/home/mikec/Music/Shinedown/Leave a Whisper/Shinedown - 45.m4a +/home/mikec/Music/Silverchair - Tomorrow.mp3 +/home/mikec/Music/Skillet - Monster.mp3 +/home/mikec/Music/Slash - Back From Cali.mp3 +/home/mikec/Music/Social Distortion - Machine Gun Blues.mp3 +/home/mikec/Music/Social Distortion - Ring of Fire.mp3 +/home/mikec/Music/Social Distortion - Story of My Life.mp3 +/home/mikec/Music/Social Distortion - Ball And Chain (Edit).mp3 +/home/mikec/Music/Soundgarden - Outshined (LP version).mp3 +/home/mikec/Music/Soundgarden - Spoonman.mp3 +/home/mikec/Music/Soundgarden - Black Hole Sun.mp3 +/home/mikec/Music/Soundgarden - Fell on Black Days.mp3 +/home/mikec/Music/Spacehog - In the Meantime.wma +/home/mikec/Music/Spacehog/Unknown Album/Spacehog - In the Meantime.m4a +/home/mikec/Music/Staind - It's Been Awhile (clean version).mp3 +/home/mikec/Music/Its_Been_Awhile_(getmp3.pro).mp3 +/home/mikec/Music/State Radio - Calling All Crows.mp3 +/home/mikec/Music/Stephen King - Track 1.mp3 +/home/mikec/Music/AC-DC/Unknown Album/Stereo MCs - Creation.m4a +/home/mikec/Music/Stereo MCs - Creation.wma +/home/mikec/Music/Stereo MCs - Move.mp3 +/home/mikec/Music/Steve Earle - Copperhead Road.wma +/home/mikec/Music/Steve Earl/Unknown Album/Steve Earle - Copperhead Road.m4a +/home/mikec/Music/Steve Young - Seven Bridges Road.mp3 +/home/mikec/Music/Stone Sour - Through Glass.mp3 +/home/mikec/Music/Stone Temple Pilots - Interstate Love Song.mp3 +/home/mikec/Music/Stone Temple Pilots - Trippin’ on a Hole in a Paper Heart.mp3 +/home/mikec/Music/Stone Temple Pilots - Sour Girl.wma +/home/mikec/Music/Stone Temple Pilots/Unknown Album/Stone Temple Pilots - Sour Girl.m4a +/home/mikec/Music/Stone Temple Pilots - MC5.wma +/home/mikec/Music/Stone Temple Pilots/Unknown Album/Stone Temple Pilots - MC5.m4a +/home/mikec/Music/Stone Temple Pilots - MC5.mp3 +/home/mikec/Music/Stone Temple Pilots - Dead & Bloated.mp3 +/home/mikec/Music/Stone Temple Pilots - Creep (new album version).mp3 +/home/mikec/Music/Wesley Willis - Stone Temple Pilots.mp3 +/home/mikec/Music/Stone Temple Pilots - Heaven & Hot Rods.mp3 +/home/mikec/Music/Stone Temple Pilots - Heaven & Hot Rods.wma +/home/mikec/Music/Stone Temple Pilots/Unknown Album/Stone Temple Pilots - Heaven & Hot Rods.m4a +/home/mikec/Music/Stone Temple Pilots - Atlanta.mp3 +/home/mikec/Music/Stone Temple Pilots - Atlanta.wma +/home/mikec/Music/Stone Temple Pilots/Unknown Album/Stone Temple Pilots - Atlanta.m4a +/home/mikec/Music/Stone Temple Pilots - Down.mp3 +/home/mikec/Music/Stone Temple Pilots/Unknown Album/Stone Temple Pilots - Down.m4a +/home/mikec/Music/Army Ants.mp3 +/home/mikec/Music/Army Ants.mp3_ +/home/mikec/Music/Big Empty.mp3 +/home/mikec/Music/Big Empty.mp3_ +/home/mikec/Music/Plush (2017 Remaster).mp3 +/home/mikec/Music/Plush (2017 Remaster).mp3_ +/home/mikec/Music/Sex Type Thing (2017 Remaster).mp3 +/home/mikec/Music/Where the River Goes (2017 Remaster).mp3 +/home/mikec/Music/Sublime - Wrong Way.mp3 +/home/mikec/Music/Scorpions/Unknown Album/Sudden Death - Pillagers.m4a +/home/mikec/Music/Sudden Death - Pillagers.wma +/home/mikec/Music/Sudden Death - Pillagers.mp3 +/home/mikec/Music/Sugarland - Hello.mp3 +/home/mikec/Music/Sugarland - Stay.mp3 +/home/mikec/Music/Sugarland - Everyday America.mp3 +/home/mikec/Music/Sugarland - Already Gone.mp3 +/home/mikec/Music/Superdrag - Everything'll Be Made Right.mp3 +/home/mikec/Music/Synkro - These Times.mp3 +/home/mikec/Music/Taddy Porter - Mean Bitch.mp3 +/home/mikec/Music/Talking Heads - Once in a Lifetime.mp3 +/home/mikec/Music/Talking Heads - Take Me to the River.mp3 +/home/mikec/Music/Talking Heads - Life During Wartime.mp3 +/home/mikec/Music/Talking Heads - Burning Down the House.mp3 +/home/mikec/Music/Psycho Killer (2003 Remaster).mp3 +/home/mikec/Music/Wild Wild Life (2005 Remaster).mp3 +/home/mikec/Music/Tamra Rosanes - Louisiana Saturday Night.mp3 +/home/mikec/Music/Team America World Police - America, Fuck Yeah.mp3 +/home/mikec/Music/Temple of the Dog - Say Hello 2 Heaven.wma +/home/mikec/Music/Temple of the Dog/Temple of the Dog/Temple of the Dog - Say Hello 2 Heaven.m4a +/home/mikec/Music/Temple of the Dog - Say Hello 2 Heaven.mp3 +/home/mikec/Music/Temple of the Dog - Hunger Strike.mp3 +/home/mikec/Music/The Allman Brothers Band - Jessica.mp3 +/home/mikec/Music/The Allman Brothers Band - Melissa.mp3 +/home/mikec/Music/The Allman Brothers Band - Ramblin’ Man.mp3 +/home/mikec/Music/The Allman Brothers Band - Soulshine.mp3 +/home/mikec/Music/The Allman Brothers Band - The Whipping Post.mp3 +/home/mikec/Music/House Of The Rising Sun.mp3 +/home/mikec/Music/The Ataris - The Boys of Summer (Rough Mix).wma +/home/mikec/Music/The Ataris/Unknown Album/The Ataris - The Boys of Summer (Rough Mix).m4a +/home/mikec/Music/The Black Crowes - Twice as Hard.mp3 +/home/mikec/Music/The Black Keys - Breaking Down.mp3 +/home/mikec/Music/The Black Keys - Eagle Birds.mp3 +/home/mikec/Music/The Black Keys - Every Little Thing.mp3 +/home/mikec/Music/The Black Keys - Fire Walk With Me.mp3 +/home/mikec/Music/The Black Keys - Get Yourself Together.mp3 +/home/mikec/Music/The Black Keys - Junior's Instrumental.mp3 +/home/mikec/Music/The Black Keys - LoHi.mp3 +/home/mikec/Music/The Black Keys - Next Girl.mp3 +/home/mikec/Music/The Black Keys - No Trust.mp3 +/home/mikec/Music/The Black Keys - Shine a Little Light.mp3 +/home/mikec/Music/The Black Keys - Sit Around and Miss You.mp3 +/home/mikec/Music/The Black Keys - Stack Shot Billy.mp3 +/home/mikec/Music/The Black Keys - Tell Me Lies.mp3 +/home/mikec/Music/The Black Keys - Ten Cent Pistol.mp3 +/home/mikec/Music/The Black Keys- Baby I'm Coming Home (Official Visualizer).mp3 +/home/mikec/Music/The Black Keys _Black Mud Part II_ Remastered 10th Anniversary Edition _Official Audio_.mp3 +/home/mikec/Music/The Black Keys - Burn the Damn Thing Down (Official Visualizer).mp3 +/home/mikec/Music/The Black Keys _Chop and Change_ Remastered 10th Anniversary Edition _Official Audio_.mp3 +/home/mikec/Music/The Black Keys - Crawling Kingsnake _Official Audio_.mp3 +/home/mikec/Music/The Black Keys - Didn't I Love You (Official Visualizer).mp3 +/home/mikec/Music/The Black Keys - For the Love of Money (Official Visualizer).mp3 +/home/mikec/Music/The Black Keys - Going Down South _Official Music Video_.mp3 +/home/mikec/Music/The Black Keys - Good Love (Official Visualizer).mp3 +/home/mikec/Music/The Black Keys - Happiness (Official Visualizer).mp3 +/home/mikec/Music/The Black Keys - How Long (Official Visualizer).mp3 +/home/mikec/Music/The Black Keys - It Ain't Over (Official Visualizer).mp3 +/home/mikec/Music/The Black Keys _Keep My Name Outta Your Mouth_ Remastered 10th Anniversary Edition _Official Audio_.mp3 +/home/mikec/Music/The Black Keys - Wild Child (Official Audio).mp3 +/home/mikec/Music/The Black Keys - Your Team Is Looking Good (Official Visualizer).mp3 +/home/mikec/Music/The Black Keys - Under the Gun.mp3 +/home/mikec/Music/The Black Keys - Walk Across the Water.mp3 +/home/mikec/Music/The Black Keys - When the Lights Go Out.mp3 +/home/mikec/Music/The Black Keys - If You See Me.mp3 +/home/mikec/Music/The Black Keys - The Breaks.mp3 +/home/mikec/Music/The Black Keys - Leavin’ Trunk.mp3 +/home/mikec/Music/The Black Keys - Oceans and Streams.mp3 +/home/mikec/Music/The Black Keys - Psychotic Girl.mp3 +/home/mikec/Music/The Black Keys - Remember When (Side B).mp3 +/home/mikec/Music/Same Old Thing.mp3 +/home/mikec/Music/The Black Keys - So He Won’t Break.mp3 +/home/mikec/Music/The Black Keys - Strange Times _Official Music Video_.mp3 +/home/mikec/Music/The Black Keys - Things Ain't Like They Used to Be.mp3 +/home/mikec/Music/The Black Keys - Next Girl _Official Music Video_.mp3 +/home/mikec/Music/The Black Keys - Sinister Kid.mp3 +/home/mikec/Music/Ten Cent Pistol.mp3 +/home/mikec/Music/The Black Keys - The Go Getter.mp3 +/home/mikec/Music/The Black Keys - Tighten Up _Official Music Video_.mp3 +/home/mikec/Music/The Black Keys - Too Afraid To Love You _Live_.mp3 +/home/mikec/Music/The Black Keys - Unknown Brother.mp3 +/home/mikec/Music/The Black Keys - Junior's Wife.mp3 +/home/mikec/Music/The Black Keys - Keep Your Hands Off Her.mp3 +/home/mikec/Music/Meet Me in the City.mp3 +/home/mikec/Music/The Black Keys - Nobody but You.mp3 +/home/mikec/Music/The Black Keys - My Mind Is Ramblin'.mp3 +/home/mikec/Music/The Black Keys - You're the One.mp3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Coal Black Mattie (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Come on and Go with Me (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Crawling Kingsnake [Official Audio]-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Crawling Kingsnake [Radio Edit]-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Do the Romp (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Going Down South [Official Music Video]-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Louise (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Mellow Peaches (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Poor Boy a Long Way From Home (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Sad Days, Lonely Nights (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Stay All Night (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Walk with Me (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys- Baby I'm Coming Home (Official Visualizer)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Burn the Damn Thing Down (Official Visualizer)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Didn't I Love You (Official Visualizer)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - For the Love of Money (Official Visualizer)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Good Love (Official Visualizer)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Happiness (Official Visualizer)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - How Long (Official Visualizer)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - It Ain't Over (Official Visualizer)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Wild Child (Official Audio)-320k.MP3 +/home/mikec/Music/[MP3DL.CC] The Black Keys - Your Team Is Looking Good (Official Visualizer)-320k.MP3 +/home/mikec/Music/The Black Keys - Little Black Submarines _Official Music Video_.mp3 +/home/mikec/Music/The Black Keys - Lonely Boy _Official Music Video_.mp3 +/home/mikec/Music/The Black Keys - Mind Eraser.mp3 +/home/mikec/Music/The Black Keys - Money Maker.mp3 +/home/mikec/Music/The Black Keys - Nova Baby.mp3 +/home/mikec/Music/The Black Keys - Run Right Back.mp3 +/home/mikec/Music/The Black Keys - Sister.mp3 +/home/mikec/Music/The Black Keys - Keep Me.mp3 +/home/mikec/Music/The Black Keys - The Only One.mp3 +/home/mikec/Music/The Black Keys - Yearnin’.mp3 +/home/mikec/Music/Lies.mp3 +/home/mikec/Music/The Black Keys - I’m Not the One.mp3 +/home/mikec/Music/The Black Keys - I’ll Be Your Man.mp3 +/home/mikec/Music/The Black Keys - She’s Long Gone.mp3 +/home/mikec/Music/The Black Keys - Just Got to Be _Official Video_.mp3 +/home/mikec/Music/The Black Keys - Modern Times.mp3 +/home/mikec/Music/The Black Keys - Strange Desire.mp3 +/home/mikec/Music/The Black Keys - Your Touch _Official Music Video_.mp3 +/home/mikec/Music/The Black Keys - Just a Little Heat.mp3 +/home/mikec/Music/The Black Keys - She Said, She Said.mp3 +/home/mikec/Music/The Black Keys - The Flame.mp3 +/home/mikec/Music/The Black Keys - Just Couldn’t Tie Me Down.mp3 +/home/mikec/Music/Stack Shot Billy.mp3 +/home/mikec/Music/The Black Keys - The Desperate Man.mp3 +/home/mikec/Music/The Black Keys - The Lengths.mp3 +/home/mikec/Music/The Black Keys - Till I Get My Way.mp3 +/home/mikec/Music/The Black Keys - Run Me Down.mp3 +/home/mikec/Music/The Black Keys - Them Eyes.mp3 +/home/mikec/Music/When the Lights Go Out.mp3 +/home/mikec/Music/The Black Keys - Midnight in Her Eyes.mp3 +/home/mikec/Music/No Trust.mp3 +/home/mikec/Music/The Black Keys - Set You Free.mp3 +/home/mikec/Music/Thickfreakness.mp3 +/home/mikec/Music/The Black Keys - In Our Prime.mp3 +/home/mikec/Music/The Black Keys - It’s Up to You Now.mp3 +/home/mikec/Music/The Black Keys - Turn Blue.mp3 +/home/mikec/Music/The Black Keys - Waiting on Words.mp3 +/home/mikec/Music/The Black Keys - Weight of Love.mp3 +/home/mikec/Music/The Black Keys - Year in Review.mp3 +/home/mikec/Music/The Black Keys - These Days.mp3 +/home/mikec/Music/The Black Keys - Never Gonna Give You Up.mp3 +/home/mikec/Music/The Black Keys - In Time.mp3 +/home/mikec/Music/The Black Keys - Busted.mp3 +/home/mikec/Music/Do The Rump.mp3 +/home/mikec/Music/The Black Keys - I'll Be Your Man.mp3 +/home/mikec/Music/The Black Keys - Heavy Soul.mp3 +/home/mikec/Music/The Black Keys - Brooklyn Bound.mp3 +/home/mikec/Music/The Black Keys - 240 Years Before Your Time.mp3 +/home/mikec/Music/The Black Keys - Elevator.mp3 +/home/mikec/Music/The Black Keys - Thickfreakness.mp3 +/home/mikec/Music/The Black Keys - Hard Row.mp3 +/home/mikec/Music/The Black Keys - Have Love Will Travel.mp3 +/home/mikec/Music/The Black Keys - Hurt Like Mine.mp3 +/home/mikec/Music/The Black Keys - Hold Me in Your Arms.mp3 +/home/mikec/Music/The Black Keys - I Cry Alone.mp3 +/home/mikec/Music/The Black Keys - 10am Automatic.mp3 +/home/mikec/Music/The Black Keys - 10 A.M. Automatic.mp3 +/home/mikec/Music/The Black Keys - All Hands Against His Own.mp3 +/home/mikec/Music/Girl Is on My Mind.mp3 +/home/mikec/Music/The Black Keys - Girl Is on My Mind.mp3 +/home/mikec/Music/The Black Keys - Girl Is on My Mind.wma +/home/mikec/Music/The Black Keys/Rubber Factory/The Black Keys - Girl Is on My Mind.m4a +/home/mikec/Music/The Black Keys - Grown So Ugly.mp3 +/home/mikec/Music/The Black Keys - Act Nice and Gentle.mp3 +/home/mikec/Music/The Black Keys - Aeroplane Blues.mp3 +/home/mikec/Music/The Black Keys/Chulahoma/The Black Keys - Meet Me in the City.m4a +/home/mikec/Music/The Black Keys - Meet Me in the City.wma +/home/mikec/Music/The Black Keys - Have Mercy on Me.mp3 +/home/mikec/Music/The Black Keys - Meet Me in the City.mp3 +/home/mikec/Music/The Black Keys - Just Got to Be.mp3 +/home/mikec/Music/The Black Keys - Your Touch.mp3 +/home/mikec/Music/The Black Keys - Give Your Heart Away.mp3 +/home/mikec/Music/Goodbye Babylon.mp3 +/home/mikec/Music/The Black Keys - Goodbye Babylon.mp3 +/home/mikec/Music/The Black Keys - Goodbye Babylon.wma +/home/mikec/Music/The Black Keys/Magic Potion/The Black Keys - Goodbye Babylon.m4a +/home/mikec/Music/The Black Keys - Black Door.mp3 +/home/mikec/Music/The Black Keys - Lies.mp3 +/home/mikec/Music/The Black Keys - Remember When.mp3 +/home/mikec/Music/The Black Keys - Same Old Thing.mp3 +/home/mikec/Music/The Black Keys - Things Ain’t Like They Used to Be.mp3 +/home/mikec/Music/The Black Keys - All You Ever Wanted.mp3 +/home/mikec/Music/I Got Mine.mp3 +/home/mikec/Music/The Black Keys - I Got Mine.mp3 +/home/mikec/Music/The Black Keys - Strange Times.mp3 +/home/mikec/Music/The Black Keys - Everlasting Light.mp3 +/home/mikec/Music/The Black Keys - Howlin’ for You.mp3 +/home/mikec/Music/The Black Keys - Howlin'.mp3 +/home/mikec/Music/The Black Keys - Black Mud.mp3 +/home/mikec/Music/The Black Keys - Tighten Up.mp3 +/home/mikec/Music/The Black Keys - Too Afraid to Love You.mp3 +/home/mikec/Music/The Black Keys/El Camino/The Black Keys - Lonely Boy.m4a +/home/mikec/Music/The Black Keys - Lonely Boy.wma +/home/mikec/Music/The Black Keys/El Camino/The Black Keys - Little Black Submarines.m4a +/home/mikec/Music/The Black Keys - Little Black Submarines.wma +/home/mikec/Music/The Black Keys - Lonely Boy.mp3 +/home/mikec/Music/The Black Keys - Dead and Gone.mp3 +/home/mikec/Music/The Black Keys/El Camino/The Black Keys - Gold on the Ceiling.m4a +/home/mikec/Music/The Black Keys - Gold on the Ceiling.mp3 +/home/mikec/Music/The Black Keys - Gold On The Ceiling _Official Music Video_.mp3 +/home/mikec/Music/The Black Keys - Gold on the Ceiling.wma +/home/mikec/Music/The Black Keys - Little Black Submarines.mp3 +/home/mikec/Music/The Black Keys - Hell of a Season.mp3 +/home/mikec/Music/The Black Keys - Fever.mp3 +/home/mikec/Music/Bullet In The Brain.mp3 +/home/mikec/Music/The Black Keys - Bullet in the Brain.mp3 +/home/mikec/Music/The Black Keys - 10 Lovers.mp3 +/home/mikec/Music/The Black Keys - Gotta Get Away.mp3 +/home/mikec/Music/The Black Keys - Go.mp3 +/home/mikec/Music/The_Black_Keys_-_It_Aint_Over_Off_(getmp3.pro).mp3 +/home/mikec/Music/The_Black_Keys_-_Wild_Child_Offici_(getmp3.pro).mp3 +/home/mikec/Music/The Black Keys - Black Mud _ Black Mud Part II.mp3 +/home/mikec/Music/Coal Black Mattie.mp3 +/home/mikec/Music/Come on and Go with Me.mp3 +/home/mikec/Music/Crawling Kingsnake (Edit).mp3 +/home/mikec/Music/Crawling Kingsnake.mp3 +/home/mikec/Music/Do the Romp.mp3 +/home/mikec/Music/Going Down South.mp3 +/home/mikec/Music/Louise.mp3 +/home/mikec/Music/Mellow Peaches.mp3 +/home/mikec/Music/Poor Boy a Long Way From Home.mp3 +/home/mikec/Music/Sad Days, Lonely Nights.mp3 +/home/mikec/Music/Stay All Night.mp3 +/home/mikec/Music/Walk with Me.mp3 +/home/mikec/Music/The Letter.mp3 +/home/mikec/Music/The Bravery - Believe.mp3 +/home/mikec/Music/The Chantays - Pipeline.mp3 +/home/mikec/Music/The Charlie Daniels Band - Long Haired Country Boy.mp3 +/home/mikec/Music/The Charlie Daniels Band - Big Bad John.mp3 +/home/mikec/Music/The Clarks - Born Too Late.mp3 +/home/mikec/Music/The Clarks - Shimmy Low.mp3 +/home/mikec/Music/The Clarks - Let It Go.mp3 +/home/mikec/Music/The Clarks - Snowman.mp3 +/home/mikec/Music/The Clarks - Mercury.mp3 +/home/mikec/Music/The Clarks - Better Off Without You.mp3 +/home/mikec/Music/WaveGroup Sound - Take It Off.mp3 +/home/mikec/Music/The Duke & The King - If You Ever Get Famous.mp3 +/home/mikec/Music/The Flamingos - You'll Never Walk Alone.mp3 +/home/mikec/Music/Country Joe and the Fish - Sing Sing Sing.mp3 +/home/mikec/Music/Gin Blossoms - Follow You Down.mp3 +/home/mikec/Music/The Heavy - How You Like Me Now (radio edit).mp3 +/home/mikec/Music/The Hives - Hate to Say I Told You So.mp3 +/home/mikec/Music/Marcus King - The Well (Official Audio).mp3 +/home/mikec/Music/The Moody Blues - Bless the Wings (That Bring You Back).mp3 +/home/mikec/Music/Moody Blues/Unknown Album/The Moody Blues - Tuesday Afternoon (Forever Afternoon).m4a +/home/mikec/Music/The Moody Blues - Tuesday Afternoon (Forever Afternoon).wma +/home/mikec/Music/Moody Blues/Unknown Album/The Moody Blues - Nights in White Satin.m4a +/home/mikec/Music/The Moody Blues - Nights in White Satin.wma +/home/mikec/Music/Moody Blues/Unknown Album/The Moody Blues - I'm Just a Singer.m4a +/home/mikec/Music/The Moody Blues - I'm Just a Singer.wma +/home/mikec/Music/Moody Blues/Unknown Album/The Moody Blues - Your Wildest Dreams.m4a +/home/mikec/Music/The Moody Blues - Your Wildest Dreams.wma +/home/mikec/Music/The Moody Blues - Tuesday Afternoon (Forever Afternoon).mp3 +/home/mikec/Music/The Moody Blues - Nights in White Satin.mp3 +/home/mikec/Music/The Moody Blues - I'm Just a Singer.mp3 +/home/mikec/Music/The Moody Blues - Your Wildest Dreams.mp3 +/home/mikec/Music/The Nixons - Sister (Album Version).mp3 +/home/mikec/Music/Theory of a Deadman - No Surprise.wma +/home/mikec/Music/Theory Of A Deadman/Unknown Album/Theory of a Deadman - No Surprise.m4a +/home/mikec/Music/Theory of a Deadman - Hate My Life.mp3 +/home/mikec/Music/The Presidents of the United States of America - Peaches.mp3 +/home/mikec/Music/The Raconteurs - Steady, as She Goes.mp3 +/home/mikec/Music/The Rolling Stones - Satisfaction.mp3 +/home/mikec/Music/The Rolling Stones - Paint It, Black (original 7″ mono mix).mp3 +/home/mikec/Music/The Rolling Stones - It’s Only Rock ’n’ Roll.mp3 +/home/mikec/Music/The Rolling Stones - She’s So Cold.mp3 +/home/mikec/Music/The Rolling Stones - I Got the Blues.mp3 +/home/mikec/Music/The Rolling Stones - Shattered.mp3 +/home/mikec/Music/The Rolling Stones - Doom and Gloom.mp3 +/home/mikec/Music/The Soggy Bottom Boys - I Am a Man of Constant Sorrow (with band).mp3 +/home/mikec/Music/The Ting Tings - That’s Not My Name.mp3 +/home/mikec/Music/Bitter Sweet Symphony.mp3 +/home/mikec/Music/The Wallflowers - One Headlight.mp3 +/home/mikec/Music/The Wannadies - You and Me Song.mp3 +/home/mikec/Music/The White Stripes - We're Going To Be Friends (Official Music Video).mp3 +/home/mikec/Music/The White Stripes - Fell in Love With a Girl.mp3 +/home/mikec/Music/The White Stripes - The Hardest Button to Button.mp3 +/home/mikec/Music/The White Stripes - Seven Nation Army.mp3 +/home/mikec/Music/The White Stripes - Blue Orchid.mp3 +/home/mikec/Music/Jethro Tull/Unknown Album/The Zombies - Time of the Season.m4a +/home/mikec/Music/The Zombies - Time of the Season.wma +/home/mikec/Music/Those Darlins - Wild One.mp3 +/home/mikec/Music/Three Days Grace - Just Like You.mp3 +/home/mikec/Music/Three Days Grace - Pain.mp3 +/home/mikec/Music/Three Days Grace - Never Too Late.mp3 +/home/mikec/Music/Toadies - Possum Kingdom.mp3 +/home/mikec/Music/Toadies - Possum Kingdom.wma +/home/mikec/Music/Toad The Wet Sprocket/Unknown Album/Toadies - Possum Kingdom.m4a +/home/mikec/Music/Toby Keith - Red Solo Cup.mp3 +/home/mikec/Music/Toby Keith - Should’ve Been a Cowboy.wma +/home/mikec/Music/Toby Keith/Toby Keith_ Greatest Hits, Vol.1/Toby Keith - Should’ve Been a Cowboy.m4a +/home/mikec/Music/Toby Keith/Toby Keith_ Greatest Hits, Vol.1/Toby Keith - You Ain't Much Fun.m4a +/home/mikec/Music/Toby Keith - You Ain't Much Fun.wma +/home/mikec/Music/Toby Keith - Should’ve Been a Cowboy.mp3 +/home/mikec/Music/Toby Keith - You Ain't Much Fun.mp3 +/home/mikec/Music/Toby Keith/Greatest Hits 2/Toby Keith - How Do You Like Me Now.m4a +/home/mikec/Music/Toby Keith - How Do You Like Me Now.mp3 +/home/mikec/Music/Toby Keith - How Do You Like Me Now.wma +/home/mikec/Music/Toby Keith/35 Biggest Hits/Toby Keith - Courtesy Of The Red, White, And Blue (The Angry American).m4a +/home/mikec/Music/Toby Keith - Courtesy Of The Red, White, And Blue (The Angry American).mp3 +/home/mikec/Music/Toby Keith - Courtesy Of The Red, White, And Blue (The Angry American).wma +/home/mikec/Music/John Michael Montgomery - I Love the Way You Love Me.mp3 +/home/mikec/Music/Toby Keith/Greatest Hits 2/Toby Keith - I Wanna Talk About Me.m4a +/home/mikec/Music/Toby Keith - I Wanna Talk About Me.wma +/home/mikec/Music/Toby Keith/Greatest Hits 2/Toby Keith - My List.m4a +/home/mikec/Music/Toby Keith - My List.wma +/home/mikec/Music/Toby Keith - I Wanna Talk About Me.mp3 +/home/mikec/Music/Toby Keith - My List.mp3 +/home/mikec/Music/Toby Keith/35 Biggest Hits/Toby Keith - As Good as I Once Was.m4a +/home/mikec/Music/Toby Keith - As Good as I Once Was.mp3 +/home/mikec/Music/Toby Keith - As Good as I Once Was.wma +/home/mikec/Music/Toby Keith - Beers Ago.mp3 +/home/mikec/Music/Toby Keith - Beers Ago.wma +/home/mikec/Music/Toby Keith/Clancy's Tavern (Deluxe Edition)/Toby Keith - Beers Ago.m4a +/home/mikec/Music/Tommy Lee - Hold Me Down.wma +/home/mikec/Music/Tommy Lee/Unknown Album/Tommy Lee - Hold Me Down.m4a +/home/mikec/Music/Tool - Schism.wma +/home/mikec/Music/Tool/Unknown Album/Tool - Schism.m4a +/home/mikec/Music/Trace Adkins - Honky Tonk Badonkadonk.mp3 +/home/mikec/Music/Traffic - Dear Mr. Fantasy.wma +/home/mikec/Music/Traffic/Unknown Album/Traffic - Dear Mr. Fantasy.m4a +/home/mikec/Music/Trapt - Headstrong.mp3 +/home/mikec/Music/Travis Tritt - Helping Me Get Over You.mp3 +/home/mikec/Music/Travis Tritt - T-R-O-U-B-L-E.mp3 +/home/mikec/Music/Travis Tritt - Love of a Woman.mp3 +/home/mikec/Music/Travis Tritt - It's a Great Day to Be Alive.mp3 +/home/mikec/Music/Travis Tritt - Strong Enough to Be Your Man.mp3 +/home/mikec/Music/Travis Tritt - Here's a Quarter (Call Someone Who Cares).mp3 +/home/mikec/Music/Twisted Sister - I Wanna Rock (Official Music Video).mp3 +/home/mikec/Music/Twisted Sister - I Wanna Rock (Official Music Video).mp3_ +/home/mikec/Music/Twisted Sister/Unknown Album/Twisted Sister - We're Not Gonna Take It.m4a +/home/mikec/Music/Twisted Sister - We’re Not Gonna Take It.wma +/home/mikec/Music/Twisted Sister - We're Not Gonna Take It.mp3 +/home/mikec/Music/I Wanna Rock.mp3 +/home/mikec/Music/I Wanna Rock.mp3_ +/home/mikec/Music/U2 - Pride (In the Name of Love).wma +/home/mikec/Music/U2/Unknown Album/U2 - Pride (In the Name of Love).m4a +/home/mikec/Music/U2/Unknown Album/U2 - New Year's Day.m4a +/home/mikec/Music/U2 - New Year’s Day.wma +/home/mikec/Music/U2 - I Still Haven't Found What I'm Looking For.wma +/home/mikec/Music/U2/Unknown Album/U2 - I Still Haven't Found What I'm Looking For.m4a +/home/mikec/Music/U2 - Sunday Bloody Sunday.wma +/home/mikec/Music/U2/Unknown Album/U2 - Sunday Bloody Sunday.m4a +/home/mikec/Music/U2/Unknown Album/U2 - Where the Streets Have No Name.m4a +/home/mikec/Music/U2 - Where the Streets Have No Name.wma +/home/mikec/Music/U2/Unknown Album/U2 - When Love Comes to Town.m4a +/home/mikec/Music/U2 - When Love Comes to Town.wma +/home/mikec/Music/U2 - Pride (In the Name of Love).mp3 +/home/mikec/Music/U2 - New Year’s Day.mp3 +/home/mikec/Music/U2 - Sunday Bloody Sunday.mp3 +/home/mikec/Music/U2 - Where the Streets Have No Name.mp3 +/home/mikec/Music/U2 - When Love Comes to Town.mp3 +/home/mikec/Music/U2 - Desire.mp3 +/home/mikec/Music/U2 - Desire.wma +/home/mikec/Music/U2/Unknown Album/U2 - Desire.m4a +/home/mikec/Music/Van Halen - Why Can’t This Be Love.mp3 +/home/mikec/Music/Commander Cody & His Lost Planet Airmen - Hot Rod Lincoln.mp3 +/home/mikec/Music/Creed - One Last Breath.mp3 +/home/mikec/Music/Audioslave - Cochise.mp3 +/home/mikec/Music/Gerry & the Pacemakers - How Do You Do It.mp3 +/home/mikec/Music/London Music Works - Pulp Fiction Misirlou.mp3 +/home/mikec/Music/Velvet Revolver - Fall to Pieces.mp3 +/home/mikec/Music/Matchbox 20/Yourself Or Someone Like You/Matchbox 20 - 3 A.M..m4a +/home/mikec/Music/Warrant - Cherry Pie.mp3 +/home/mikec/Music/Warrant - Cherry Pie.wma +/home/mikec/Music/Warrant/Unknown Album/Warrant - Cherry Pie.m4a +/home/mikec/Music/Weezer - Say It Ain’t So (remix).mp3 +/home/mikec/Music/Weezer - The Sweater Song.mp3 +/home/mikec/Music/Weezer - Buddy Holly.mp3 +/home/mikec/Music/Weezer - Hash Pipe.mp3 +/home/mikec/Music/Weezer - Beverly Hills.mp3 +/home/mikec/Music/Weezer - We Are All on Drugs.mp3 +/home/mikec/Music/Wheatus - Teenage Dirtbag.mp3 +/home/mikec/Music/Whitesnake - Here I go again 87.mp3 +/home/mikec/Music/Whitesnake - Here I go again 87.wma +/home/mikec/Music/Whitesnake/Unknown Album/Whitesnake - Here I go again 87.m4a +/home/mikec/Music/White Zombie - More Human Than Human.mp3 +/home/mikec/Music/White Zombie - Thunder Kiss ’65.mp3 +/home/mikec/Music/Willie Nelson - Always On My Mind.mp3 +/home/mikec/Music/Willie Nelson - She Loves My Automobile.wma +/home/mikec/Music/ZZ Top/Unknown Album/Willie Nelson - She Loves My Automobile.m4a +/home/mikec/Music/Willie Nelson - She Loves My Automobile.mp3 +/home/mikec/Music/Winger - Seventeen.wma +/home/mikec/Music/Winger/Unknown Album/Winger - Seventeen.m4a +/home/mikec/Music/Winger - Seventeen.mp3 +/home/mikec/Music/Psalms 104 sung in ancient Hebrew _ ברכי נפשי את ה' - תהלים קד.mp3 +/home/mikec/Music/Psalms 104 sung in ancient Hebrew _ ברכי נפשי את ה' - תהלים קד.mp3_ +/home/mikec/Music/Yamma Ensemble - King David - biblical Hebrew translated and pronunciation subtitles.mp3 +/home/mikec/Music/Yamma Ensemble - King David - biblical Hebrew translated and pronunciation subtitles.mp3_ +/home/mikec/Music/Zac Brown Band - Toes.mp3 +/home/mikec/Music/Zac Brown Band - Chicken Fried.mp3 +/home/mikec/Music/Zac Brown Band - Homegrown.mp3 +/home/mikec/Music/ZZ Top - I Thank You.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - I Thank You.m4a +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Waitin’ for the Bus.m4a +/home/mikec/Music/ZZ Top - Waitin’ for the Bus.wma +/home/mikec/Music/ZZ Top - Jesus Just Left Chicago.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Jesus Just Left Chicago.m4a +/home/mikec/Music/ZZ Top - Rough Boy.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Rough Boy.m4a +/home/mikec/Music/ZZ Top - Tush.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Tush.m4a +/home/mikec/Music/ZZ Top - Just Got Paid.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Just Got Paid.m4a +/home/mikec/Music/ZZ Top - My Head’s in Mississippi.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - My Head’s in Mississippi.m4a +/home/mikec/Music/ZZ Top - Pearl Necklace.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Pearl Necklace.m4a +/home/mikec/Music/ZZ Top - I’m Bad, I’m Nationwide.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - I’m Bad, I’m Nationwide.m4a +/home/mikec/Music/ZZ Top - Lowdown in the Street.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Lowdown in the Street.m4a +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Viva Las Vegas.m4a +/home/mikec/Music/ZZ Top - Viva Las Vegas.wma +/home/mikec/Music/ZZ Top - Sleeping Bag.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Sleeping Bag.m4a +/home/mikec/Music/ZZ Top - Planet of Women.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Planet of Women.m4a +/home/mikec/Music/ZZ Top - La Grange.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - La Grange.m4a +/home/mikec/Music/ZZ Top - Tube Snake Boogie.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Tube Snake Boogie.m4a +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Legs.m4a +/home/mikec/Music/ZZ Top - I Thank You.mp3 +/home/mikec/Music/ZZ Top - Sharp Dressed Man.mp3 +/home/mikec/Music/ZZ Top - Waitin’ for the Bus.mp3 +/home/mikec/Music/ZZ Top - Jesus Just Left Chicago.mp3 +/home/mikec/Music/ZZ Top - Rough Boy.mp3 +/home/mikec/Music/ZZ Top - Tush.mp3 +/home/mikec/Music/ZZ Top - Just Got Paid.mp3 +/home/mikec/Music/ZZ Top - My Head’s in Mississippi.mp3 +/home/mikec/Music/ZZ Top - Pearl Necklace.mp3 +/home/mikec/Music/ZZ Top - I’m Bad, I’m Nationwide.mp3 +/home/mikec/Music/ZZ Top - Lowdown in the Street.mp3 +/home/mikec/Music/ZZ Top - Viva Las Vegas.mp3 +/home/mikec/Music/ZZ Top - Sleeping Bag.mp3 +/home/mikec/Music/ZZ Top - I Gotsta Get Paid.mp3 +/home/mikec/Music/ZZ Top - La Grange.mp3 +/home/mikec/Music/ZZ Top - Tube Snake Boogie (digitally remixed).mp3 +/home/mikec/Music/ZZ Top - Beer Drinkers & Hell Raisers.mp3 +/home/mikec/Music/ZZ Top - Beer Drinkers & Hell Raisers.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Beer Drinkers & Hell Raisers.m4a +/home/mikec/Music/ZZ Top - Heard It on the X.mp3 +/home/mikec/Music/ZZ Top - Heard It on the X.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Heard It on the X.m4a +/home/mikec/Music/ZZ Top - A Fool for Your Stockings.mp3 +/home/mikec/Music/ZZ Top - A Fool for Your Stockings.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - A Fool for Your Stockings.m4a +/home/mikec/Music/ZZ Top - Dust My Broom.mp3 +/home/mikec/Music/ZZ Top - Dust My Broom.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Dust My Broom.m4a +/home/mikec/Music/ZZ Top - Got Me Under Pressure.mp3 +/home/mikec/Music/ZZ Top - Got Me Under Pressure.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Got Me Under Pressure.m4a +/home/mikec/Music/ZZ Top - Gimme All Your Lovin’.mp3 +/home/mikec/Music/ZZ Top - Gimme All Your Lovin’.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Gimme All Your Lovin’.m4a +/home/mikec/Music/ZZ Top - Give It Up.mp3 +/home/mikec/Music/ZZ Top - Give It Up.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Give It Up.m4a +/home/mikec/Music/ZZ Top - Doubleback.mp3 +/home/mikec/Music/ZZ Top - Doubleback.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Doubleback.m4a +/home/mikec/Music/ZZ Top - Cheap Sunglasses.mp3 +/home/mikec/Music/ZZ Top - Cheap Sunglasses.wma +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Cheap Sunglasses.m4a +/home/mikec/Music/Bad Girl (2008 Remaster).mp3 +/home/mikec/Music/Dirty Dog (2008 Remaster).mp3 +/home/mikec/Music/Have You Heard (2005 Remaster).mp3 +/home/mikec/Music/Hi Fi Mama.mp3 +/home/mikec/Music/Hot, Blue and Righteous (2006 Remaster).mp3 +/home/mikec/Music/If I Could Only Flag Her Down (2008 Remaster).mp3 +/home/mikec/Music/I Got the Six (2008 Remaster).mp3 +/home/mikec/Music/I Need You Tonight (2008 Remaster).mp3 +/home/mikec/Music/Manic Mechanic.mp3 +/home/mikec/Music/Master of Sparks (2006 Remaster).mp3 +/home/mikec/Music/Move Me on Down the Line (2005 Remaster).mp3 +/home/mikec/Music/Precious and Grace (2005 Remaster).mp3 +/home/mikec/Music/Sheik (2005 Remaster).mp3 +/home/mikec/Music/Thug (2008 Remaster).mp3 +/home/mikec/Music/TV Dinners (2008 Remaster).mp3 +/home/mikec/Music/Road to Eilat (Israeli Patriotic War Song) 🇮🇱.mp3 +/home/mikec/Music/Road to Eilat (Israeli Patriotic War Song) ������������.mp3 +/home/mikec/Music/上戸彩 - 愛のために。(instrumental).mp3 diff --git a/.config/cmus/playlists/default b/.config/cmus/playlists/default new file mode 100644 index 0000000..f642cec --- /dev/null +++ b/.config/cmus/playlists/default @@ -0,0 +1,9 @@ +/home/mikec/Music/Creed - One Last Breath.mp3 +/home/mikec/Music/TV Dinners (2008 Remaster).mp3 +/home/mikec/Music/Creed - My Own Prison.mp3 +/home/mikec/Music/Master of Sparks (2006 Remaster).mp3 +/home/mikec/Music/Creed- Higher [sHcYaS3m1c4].opus +/home/mikec/Music/ZZ Top/Unknown Album/ZZ Top - Legs.m4a +/home/mikec/Music/ZZ Top - Got Me Under Pressure.mp3 +/home/mikec/Music/The Black Keys _Black Mud Part II_ Remastered 10th Anniversary Edition _Official Audio_.mp3 +/home/mikec/Music/The Black Keys - Black Mud.mp3 diff --git a/.config/cmus/rc b/.config/cmus/rc new file mode 100644 index 0000000..a499bf4 --- /dev/null +++ b/.config/cmus/rc @@ -0,0 +1 @@ +set output_plugin=pulse diff --git a/.config/cmus/search-history b/.config/cmus/search-history new file mode 100644 index 0000000..76d246c --- /dev/null +++ b/.config/cmus/search-history @@ -0,0 +1,11 @@ +black mud +got me under +legs +higher +master of spa +my own +tv din +one las +master of sparks +tv dinner +one last diff --git a/.config/enchant/en_US.dic b/.config/enchant/en_US.dic new file mode 100644 index 0000000..e69de29 diff --git a/.config/enchant/en_US.exc b/.config/enchant/en_US.exc new file mode 100644 index 0000000..e69de29 diff --git a/.config/glib-2.0/settings/keyfile b/.config/glib-2.0/settings/keyfile new file mode 100644 index 0000000..e33e65f --- /dev/null +++ b/.config/glib-2.0/settings/keyfile @@ -0,0 +1,3 @@ +[com/github/lainsce/palaura] +window-x=26 +window-y=23 diff --git a/.config/goread/urls.yml b/.config/goread/urls.yml new file mode 100644 index 0000000..98d521d --- /dev/null +++ b/.config/goread/urls.yml @@ -0,0 +1,13 @@ +categories: + - name: All Feeds + desc: All feeds + subscriptions: + - name: BBC + desc: News from the BBC + url: http://feeds.bbci.co.uk/news/rss.xml + - name: Tech + desc: Tech news + subscriptions: + - name: strongly typed thoughts + desc: "" + url: https://phaazon.net/blog/feed diff --git a/.config/htop/htoprc b/.config/htop/htoprc new file mode 100644 index 0000000..f16ca62 --- /dev/null +++ b/.config/htop/htoprc @@ -0,0 +1,64 @@ +# Beware! This file is rewritten by htop when settings are changed in the interface. +# The parser is also very primitive, and not human-friendly. +htop_version=3.3.0 +config_reader_min_version=3 +fields=0 48 17 18 38 39 40 2 46 47 49 1 +hide_kernel_threads=1 +hide_userland_threads=0 +hide_running_in_container=0 +shadow_other_users=0 +show_thread_names=0 +show_program_path=1 +highlight_base_name=0 +highlight_deleted_exe=1 +shadow_distribution_path_prefix=0 +highlight_megabytes=1 +highlight_threads=1 +highlight_changes=0 +highlight_changes_delay_secs=5 +find_comm_in_cmdline=1 +strip_exe_from_cmdline=1 +show_merged_command=0 +header_margin=1 +screen_tabs=1 +detailed_cpu_time=0 +cpu_count_from_one=0 +show_cpu_usage=1 +show_cpu_frequency=0 +show_cpu_temperature=0 +degree_fahrenheit=0 +update_process_names=0 +account_guest_in_cpu_meter=0 +color_scheme=0 +enable_mouse=1 +delay=15 +hide_function_bar=0 +topology_affinity=0 +header_layout=two_50_50 +column_meters_0=LeftCPUs4 Memory Swap +column_meter_modes_0=1 1 1 +column_meters_1=RightCPUs4 Tasks LoadAverage Uptime +column_meter_modes_1=1 2 2 2 +tree_view=0 +sort_key=46 +tree_sort_key=0 +sort_direction=-1 +tree_sort_direction=1 +tree_view_always_by_pid=0 +all_branches_collapsed=0 +screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command +.sort_key=PERCENT_CPU +.tree_sort_key=PID +.tree_view_always_by_pid=0 +.tree_view=0 +.sort_direction=-1 +.tree_sort_direction=1 +.all_branches_collapsed=0 +screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command +.sort_key=IO_RATE +.tree_sort_key=PID +.tree_view_always_by_pid=0 +.tree_view=0 +.sort_direction=-1 +.tree_sort_direction=1 +.all_branches_collapsed=0 diff --git a/.config/kak-tree-sitter/config.toml b/.config/kak-tree-sitter/config.toml new file mode 100644 index 0000000..c4108a2 --- /dev/null +++ b/.config/kak-tree-sitter/config.toml @@ -0,0 +1,1440 @@ +# kak-tree-sitter default configuration file. +# +# It is highly recommended for users to copy that file and edit it manually if they need to add support for languages +# not present yet. + +# List of features to be enabled/disabled. Most of those features can be +# overriden in the user configuration, or even on the CLI — see --with-* flags. +[features] +highlighting = true +text_objects = true + +[highlight] +# Top-level highlight capture group declarations. If your grammars uses a capture group that is not defined here, you +# have to add it to the list. +groups = [ + "attribute", + "comment", + "comment.block", + "comment.line", + "constant", + "constant.builtin", + "constant.builtin.boolean", + "constant.character", + "constant.character.escape", + "constant.macro", + "constant.numeric", + "constant.numeric.float", + "constant.numeric.integer", + "constructor", + "diff.plus", + "diff.minus", + "diff.delta", + "diff.delta.moved", + "embedded", + "error", + "function", + "function.builtin", + "function.macro", + "function.method", + "function.special", + "hint", + "include", + "info", + "keyword", + "keyword.conditional", + "keyword.control", + "keyword.control.conditional", + "keyword.control.except", + "keyword.control.exception", + "keyword.control.import", + "keyword.control.repeat", + "keyword.control.return", + "keyword.directive", + "keyword.function", + "keyword.operator", + "keyword.special", + "keyword.storage", + "keyword.storage.modifier", + "keyword.storage.modifier.mut", + "keyword.storage.modifier.ref", + "keyword.storage.type", + "label", + "load", + "markup.bold", + "markup.heading", + "markup.heading.1", + "markup.heading.2", + "markup.heading.3", + "markup.heading.4", + "markup.heading.5", + "markup.heading.6", + "markup.heading.marker", + "markup.italic", + "markup.link.label", + "markup.link.text", + "markup.link.url", + "markup.link.uri", + "markup.list.checked", + "markup.list.numbered", + "markup.list.unchecked", + "markup.list.unnumbered", + "markup.quote" , + "markup.raw", + "markup.raw.block", + "markup.raw.inline", + "markup.strikethrough", + "namespace", + "operator", + "punctuation", + "punctuation.bracket", + "punctuation.delimiter", + "punctuation.special", + "special", + "string", + "string.escape", + "string.regexp", + "string.special", + "string.special.path", + "string.special.symbol", + "string.symbol", + "tag", + "tag.error", + "text", + "type", + "type.builtin", + "type.enum.variant", + "variable", + "variable.builtin", + "variable.other.member", + "variable.parameter", + "warning", +] + +# astro +[language.astro.grammar.source.git] +url = "https://github.com/virchau13/tree-sitter-astro" +pin = "4be180759ec13651f72bacee65fa477c64222a1a" + +[language.astro.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "astro.so"] +link_flags = ["-O3"] + +[language.astro.queries.source.git] +url = "https://git.sr.ht/~hadronized/kak-tree-sitter" +pin = "862f6cd58b38d9d1b4abfb722b4a4b25bdae2586" + +[language.astro.queries] +path = "runtime/queries/astro" + +# awk +[language.awk.grammar.source.git] +url = "https://github.com/Beaglefoot/tree-sitter-awk" +pin = "8eaa762d05cc67c0e2cc53a0a71750b3c16733c2" + +[language.awk.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "awk.so"] +link_flags = ["-O3"] + +[language.awk.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.awk.queries] +path = "runtime/queries/awk" + +# bash +[language.bash.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-bash" +pin = "275effdfc0edce774acf7d481f9ea195c6c403cd" + +[language.bash.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.cc", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "bash.so"] +link_flags = ["-O3", "-lstdc++"] + +[language.bash.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.bash.queries] +path = "runtime/queries/bash" + +# bass +# TODO + +# beancount +# TODO + +# bibtex +[language.bibtex.grammar.source.git] +url = "https://github.com/latex-lsp/tree-sitter-bibtex" +pin = "ccfd77db0ed799b6c22c214fe9d2937f47bc8b34" + +[language.bibtex.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "bibtex.so"] +link_flags = ["-O3"] + +[language.bibtex.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.bibtex.queries] +path = "runtime/queries/bibtex" + +# bicep +# TODO + +# c +[language.c.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-c" +pin = "7175a6dd5fc1cee660dce6fe23f6043d75af424a" + +[language.c.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "c.so"] +link_flags = ["-O3"] + +[language.c.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.c.queries] +path = "runtime/queries/c" + +# cabal +# TODO + +# cairo +# TODO + +# capnp +# TODO + +# clojure +# TODO + +# cmake +[language.cmake.grammar.source.git] +url = "https://github.com/uyha/tree-sitter-cmake" +pin = "6e51463ef3052dd3b328322c22172eda093727ad" + +[language.cmake.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "../scanner.cc", "-I", ".."] +compile_flags = ["-O3", "-flto=auto", "-march=native"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "scanner.o", "-o", "cmake.so"] +link_flags = ["-O3", "-lstdc++", "-flto=auto"] + +[language.cmake.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.cmake.queries] +path = "runtime/queries/cmake" + +# comment +[language.comment.grammar.source.git] +url = "https://github.com/stsewd/tree-sitter-comment" +pin = "94c99a66bb5051d8321b5900aee92b76450c50ce" + +[language.comment.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "comment.so"] +link_flags = ["-O3"] + +[language.comment.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.comment.queries] +path = "runtime/queries/comment" + +# common-lisp +# TODO + +# cpon +# TODO + +# cpp +[language.cpp.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-cpp" +pin = "670404d7c689be1c868a46f919ba2a3912f2b7ef" + +[language.cpp.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.cc", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "cpp.so"] +link_flags = ["-O3", "-lstdc++"] + +[language.cpp.queries.source.git] +url = "https://git.sr.ht/~hadronized/kak-tree-sitter" +pin = "b0ecb0d376c94d2fa4814816b41986bf5d735384" + +[language.cpp.queries] +path = "runtime/queries/cpp" + +# crystal +# TODO + +# c-sharp +[language.csharp.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-c-sharp" +pin = "92c0a9431400cd8b6b6ee7503f81da3ae83fc830" + +[language.csharp.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "csharp.so"] +link_flags = ["-O3"] + +[language.csharp.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "be307a420480178c1bc443992c8336f6471b8b7b" + +[language.csharp.queries] +path = "runtime/queries/c-sharp" + +# css +[language.css.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-css" +pin = "769203d0f9abe1a9a691ac2b9fe4bb4397a73c51" + +[language.css.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "css.so"] +link_flags = ["-O3"] + +[language.css.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.css.queries] +path = "runtime/queries/css" + +# cue +# TODO + +# d +# TODO + +# dart +# TODO + +# devicetree +# TODO + +# dhall +# TODO + +# diff +[language.diff.grammar.source.git] +url = "https://github.com/the-mikedavis/tree-sitter-diff" +pin = "fd74c78fa88a20085dbc7bbeaba066f4d1692b63" + +[language.diff.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "diff.so"] +link_flags = ["-O3"] + +[language.diff.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.diff.queries] +path = "runtime/queries/diff" + +# dockerfile +# TODO + +# dot +# TODO + +# dtd +# TODO + +# ecma +# TODO + +# edoc +# TODO + +# eex +# TODO + +# ejs +# TODO + +# elixir +[language.elixir.grammar.source.git] +url = "https://github.com/elixir-lang/tree-sitter-elixir" +pin = "511ea5e0088779e4bdd76e12963ab9a5fe99983a" + +[language.elixir.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "elixir.so"] +link_flags = ["-O3"] + +[language.elixir.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "be307a420480178c1bc443992c8336f6471b8b7b" + +[language.elixir.queries] +path = "runtime/queries/elixir" + +# elm +# TODO + +# elvish +# TODO + +# env +# TODO + +# erb +# TODO + +# erlang +# TODO + +# esdl +# TODO + +# fish +[language.fish.grammar.source.git] +url = "https://github.com/ram02z/tree-sitter-fish" +pin = "84436cf24c2b3176bfbb220922a0fdbd0141e406" + +[language.fish.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "../scanner.c", "-I", ".."] +compile_flags = ["-O3", "-march=native", "-flto=auto"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "scanner.o", "-o", "fish.so"] +link_flags = ["-O3", "-flto=auto"] + +[language.fish.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.fish.queries] +path = "runtime/queries/fish" + +# fortran +# TODO + +# gdscript +# TODO + +# git-attributes +# TODO + +# git-commit +[language.git-commit.grammar.source.git] +url = "https://github.com/the-mikedavis/tree-sitter-git-commit" +pin = "db88cffa3952dd2328b741af5d0fc69bdb76704f" + +[language.git-commit.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "git-commit.so"] +link_flags = ["-O3"] + +[language.git-commit.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.git-commit.queries] +path = "runtime/queries/git-commit" + +# git-config +# TODO + +# git-ignore +# TODO + +# git-rebase +# TODO + +# gleam +# TODO + +# glsl +# TODO + +# go +[language.go.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-go" +pin = "64457ea6b73ef5422ed1687178d4545c3e91334a" + +[language.go.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "go.so"] +link_flags = ["-O3"] + +[language.go.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.go.queries] +path = "runtime/queries/go" + +# godot-resource +# TODO + +# gomod +# TODO + +# gotmpl +# TODO + +# gowork +# TODO + +# graphql +# TODO + +# hare +# TODO + +# haskell +[language.haskell.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-haskell" +pin = "98fc7f59049aeb713ab9b72a8ff25dcaaef81087" + +[language.haskell.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "../scanner.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "scanner.o", "-o", "haskell.so"] +link_flags = ["-O3"] + +[language.haskell.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.haskell.queries] +path = "runtime/queries/haskell" + +# hcl +# TODO + +# heex +# TODO + +# hosts +# TODO + +# html +[language.html.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-html" +pin = "86c253e675e7fdd1c0482efe0706f24bafbc3a7d" + +[language.html.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "../scanner.cc", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "html.so"] +link_flags = ["-O3", "-lstdc++"] + +[language.html.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.html.queries] +path = "runtime/queries/html" + +# hurl +# TODO + +# iex +# TODO + +# ini +# TODO + +# java +[language.java.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-java" +pin = "09d650def6cdf7f479f4b78f595e9ef5b58ce31e" + +[language.java.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "java.so"] +link_flags = ["-O3"] + +[language.java.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.java.queries] +path = "runtime/queries/java" + +# javascript +[language.javascript.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-javascript" +pin = "f1e5a09b8d02f8209a68249c93f0ad647b228e6e" + +[language.javascript.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "javascript.so"] +link_flags = ["-O3"] + +[language.javascript.queries.source.git] +url = "https://git.sr.ht/~hadronized/kak-tree-sitter" +pin = "834d348b85868fbe9033231e72f29be361346aeb" + +[language.javascript.queries] +path = "runtime/queries/javascript" + +# jsdoc +# TODO + +# json +[language.json.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-json" +pin = "73076754005a460947cafe8e03a8cf5fa4fa2938" + +[language.json.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "json.so"] +link_flags = ["-O3"] + +[language.json.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.json.queries] +path = "runtime/queries/json" + +# jsonnet +# TODO + +# jsx +[language.jsx.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-javascript" +pin = "f1e5a09b8d02f8209a68249c93f0ad647b228e6e" + +[language.jsx.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "jsx.so"] +link_flags = ["-O3"] + +[language.jsx.queries.source.git] +url = "https://git.sr.ht/~hadronized/kak-tree-sitter" +pin = "834d348b85868fbe9033231e72f29be361346aeb" + +[language.jsx.queries] +path = "runtime/queries/jsx" + +# julia +[language.julia.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-julia" +pin = "2f885efd38a6a6abfefc81d53ecdd99812dcde69" + +[language.julia.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "-flto=auto", "../parser.c", "../scanner.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "-flto=auto", "parser.o", "scanner.o", "-o", "julia.so"] +link_flags = ["-O3"] + +[language.julia.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.julia.queries] +path = "runtime/queries/julia" + +# just +# TODO + +# kdl +# TODO + +# kotlin +[language.kotlin.grammar.source.git] +url = "https://github.com/fwcd/tree-sitter-kotlin" +pin = "a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569" + +[language.kotlin.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "kotlin.so"] +link_flags = ["-O3"] + +[language.kotlin.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "f73e9a8d15fd5a87d472a49808baf42ba403f9bf" + +[language.kotlin.queries] +path = "runtime/queries/kotlin" + +# latex +[language.latex.grammar.source.git] +url = "https://github.com/latex-lsp/tree-sitter-latex" +pin = "dfe891922ccd2e7cef52eccb2775e1b576727165" + +[language.latex.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "latex.so"] +link_flags = ["-O3"] + +[language.latex.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.latex.queries] +path = "runtime/queries/latex" + +# lean +# TODO + +# ledger +# TODO + +# llvm +[language.llvm.grammar.source.git] +url = "https://github.com/benwilliamgraham/tree-sitter-llvm" +pin = "1b96e58faf558ce057d4dc664b904528aee743cb" + +[language.llvm.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "llvm.so"] +link_flags = ["-O3"] + +[language.llvm.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "e76020ddb93eeb051de606c24f92189c3fc55547" + +[language.llvm.queries] +path = "runtime/queries/llvm" + +# llvm-mir +# TODO + +# llvm-mir-yaml +# TODO + +# lua +# TODO + +# make +[language.make.grammar.source.git] +url = "https://github.com/alemuller/tree-sitter-make" +pin = "a4b9187417d6be349ee5fd4b6e77b4172c6827dd" + +[language.make.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "make.so"] +link_flags = ["-O3"] + +[language.make.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.make.queries] +path = "runtime/queries/make" + +# markdoc +# TODO + +# markdown +[language.markdown.grammar.source.git] +url = "https://github.com/MDeiml/tree-sitter-markdown" +pin = "aaf76797aa8ecd9a5e78e0ec3681941de6c945ee" + +[language.markdown.grammar] +path = "tree-sitter-markdown/src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "markdown.so"] +link_flags = ["-O3"] + +[language.markdown.queries.source.git] +url = "https://git.sr.ht/~hadronized/kak-tree-sitter" +pin = "d2d9761f309d6204a8f4480dc23f10558a165e29" + +[language.markdown.queries] +path = "runtime/queries/markdown" + +# markdown.inline +[language."markdown.inline".grammar.source.git] +url = "https://github.com/MDeiml/tree-sitter-markdown" +pin = "aaf76797aa8ecd9a5e78e0ec3681941de6c945ee" + +[language."markdown.inline".grammar] +path = "tree-sitter-markdown-inline/src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "markdown.inline.so"] +link_flags = ["-O3"] + +[language."markdown.inline".queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "56ccaedffbb8011e36012278e2a4861a8d435a60" + +[language."markdown.inline".queries] +path = "runtime/queries/markdown.inline" + +# matlab +# TODO + +# mermaid +# TODO + +# meson +# TODO + +# msbuild +# TODO + +# nasm +# TODO + +# nickel +# TODO + +# nim + +[language.nim.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "nim.so"] +link_flags = ["-O3"] + +[language.nim.grammar.source.git] +url = "https://github.com/alaviss/tree-sitter-nim" +pin = "961c2798cec9250c44f7d7225ddb33d47d25856a" + +[language.nim.queries] +path = "runtime/queries/nim" + +[language.nim.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "50c90cb47c9cdbb044d1a2de034285e0d198f43e" + +# nix + +[language.nix.grammar.source.git] +url = "https://github.com/nix-community/tree-sitter-nix" +pin = "763168fa916a333a459434f1424b5d30645f015d" + +[language.nix.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "nix.so"] +link_flags = ["-O3"] + +[language.nix.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "be307a420480178c1bc443992c8336f6471b8b7b" + +[language.nix.queries] +path = "runtime/queries/nix" + +# nu +[language.nu.grammar.source.git ] +url = "https://github.com/nushell/tree-sitter-nu" +pin = "786689b0562b9799ce53e824cb45a1a2a04dc673" + +[language.nu.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "nu.so"] +link_flags = ["-O3"] + +[language.nu.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "107763083405868f3679d8e12476ed0688896f87" + +[language.nu.queries] +path = "runtime/queries/nu" + +# ocaml +# TODO + +# ocaml-interface +# TODO + +# odin +# TODO + +# opencl +# TODO + +# openscad +# TODO + +# org +# TODO + +# pascal +# TODO + +# passwd +# TODO + +# pem +# TODO + +# perl +# TODO + +# php +# TODO + +# po +# TODO + +# ponylang +# TODO + +# prisma +# TODO + +# protobuf +# TODO + +# prql +# TODO + +# purescript +[language.purescript.grammar.source.git] +url = "https://github.com/postsolar/tree-sitter-purescript/" +pin = "1615ac3b9c3b572259bce7a30c14cb06d6c2f2ff" + +[language.purescript.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "../scanner.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "scanner.o", "-o", "purescript.so"] +link_flags = ["-O3"] + +[language.purescript.queries.source.git] +url = "https://github.com/postsolar/tree-sitter-purescript" +pin = "1615ac3b9c3b572259bce7a30c14cb06d6c2f2ff" + +[language.purescript.queries] +path = "queries" + +# python +[language.python.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-python" +pin = "de221eccf9a221f5b85474a553474a69b4b5784d" + +[language.python.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.cc", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "python.so"] +link_flags = ["-O3", "-lstdc++"] + +[language.python.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.python.queries] +path = "runtime/queries/python" + +# qml +# TODO + +# r +# TODO + +# racket +# TODO + +# regex +# TODO + +# rego +# TODO + +# rescript +# TODO + +# rmarkdown +# TODO + +# robot +# TODO + +# ron +# TODO + +# rst +# TODO + +# ruby +[language.ruby.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-ruby" +pin = "206c7077164372c596ffa8eaadb9435c28941364" + +[language.ruby.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.cc", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "c++" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "ruby.so"] +link_flags = ["-O3", "-lstdc++"] + +[language.ruby.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.ruby.queries] +path = "runtime/queries/ruby" + +# rust +[language.rust.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-rust" +pin = "0431a2c60828731f27491ee9fdefe25e250ce9c9" + +[language.rust.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "rust.so"] +link_flags = ["-O3"] + +[language.rust.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "3e963b3c1b5eb4b5cd7f33b8ef6d6642de210a9b" + +[language.rust.queries] +path = "runtime/queries/rust" + +# scss +[language.scss.grammar.source.git] +url = "https://github.com/serenadeai/tree-sitter-scss" +pin = "c478c6868648eff49eb04a4df90d703dc45b312a" + +[language.scss.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "scss.so"] +link_flags = ["-O3"] + +[language.scss.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "be307a420480178c1bc443992c8336f6471b8b7b" + +[language.scss.queries] +path = "runtime/queries/scss" + +# sage +# TODO + +# scala +# TODO + +# scheme +[language.scheme.grammar.source.git] +url = "https://github.com/6cdh/tree-sitter-scheme" +pin = "c0741320bfca6b7b5b7a13b5171275951e96a842" + +[language.scheme.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "scheme.so"] +link_flags = ["-O3"] + +[language.scheme.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.scheme.queries] +path = "runtime/queries/scheme" + +# scss +# TODO + +# slint +# TODO + +# smithy +# TODO + +# sml +# TODO + +# solidity +# TODO + +# sql +# TODO + +# sshclientconfig +# TODO + +# starlark +# TODO + +# svelte +# TODO + +# sway +# TODO + +# swift +# TODO + +# tablegen +# TODO + +# task +# TODO + +# tfvars +# TODO + +# toml +[language.toml.grammar.source.git] +url = "https://github.com/ikatyang/tree-sitter-toml" +pin = "8bd2056818b21860e3d756b5a58c4f6e05fb744e" + +[language.toml.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "toml.so"] +link_flags = ["-O3"] + +[language.toml.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.toml.queries] +path = "runtime/queries/toml" + +# tsq +# TODO + +# tsx +[language.tsx.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-typescript" +pin = "b1bf4825d9eaa0f3bdeb1e52f099533328acfbdf" + +[language.tsx.grammar] +path = "tsx/src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "tsx.so"] +link_flags = ["-O3"] + +[language.tsx.queries.source.git] +url = "https://git.sr.ht/~hadronized/kak-tree-sitter" +pin = "b0ecb0d376c94d2fa4814816b41986bf5d735384" + +[language.tsx.queries] +path = "runtime/queries/tsx" + +# twig +# TODO + +# typescript +[language.typescript.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-typescript" +pin = "b1bf4825d9eaa0f3bdeb1e52f099533328acfbdf" + +[language.typescript.grammar] +path = "typescript/src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "typescript.so"] +link_flags = ["-O3"] + +[language.typescript.queries.source.git] +url = "https://git.sr.ht/~hadronized/kak-tree-sitter" +pin = "b0ecb0d376c94d2fa4814816b41986bf5d735384" + +[language.typescript.queries] +path = "runtime/queries/typescript" + +# ungrammar +# TODO + +# unison +[language.unison.grammar.source.git] +url = "https://github.com/kylegoetz/tree-sitter-unison" +pin = "1f505e2447fa876a87aee47ff3d70b9e141c744f" + +[language.unison.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "unison.so"] +link_flags = ["-O3"] + +[language.unison.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "be307a420480178c1bc443992c8336f6471b8b7b" + +[language.unison.queries] +path = "runtime/queries/unison" + +# uxntal +# TODO + +# v +# TODO + +# vala +# TODO + +# verilog +[language.verilog.grammar.source.git] +url = "https://github.com/tree-sitter/tree-sitter-verilog" +pin = "902031343056bc0b11f3e47b33f036a9cf59f58d" + +[language.verilog.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "verilog.so"] +link_flags = ["-O3"] + +[language.verilog.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "cb286b7a5df247057602f3bba3254b4c58093375" + +[language.verilog.queries] +path = "runtime/queries/verilog" + +# vhdl +# TODO + +# vhs +# TODO + +# vue +[language.vue.grammar.source.git] +url = "https://github.com/ikatyang/tree-sitter-vue" +pin = "91fe2754796cd8fba5f229505a23fa08f3546c06" + +[language.vue.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.cc", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "vue.so"] +link_flags = ["-O3", "-lstdc++"] + +[language.vue.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "be307a420480178c1bc443992c8336f6471b8b7b" + +[language.vue.queries] +path = "runtime/queries/vue" + +# wast +# TODO + +# wat +# TODO + +# wgsl +# TODO + +# wit +# TODO + +# xit +# TODO + +# xml +[language.xml.grammar.source.git] +url = "https://github.com/RenjiSann/tree-sitter-xml" +pin = "48a7c2b6fb9d515577e115e6788937e837815651" + +[language.xml.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "xml.so"] +link_flags = ["-O3"] + +[language.xml.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.xml.queries] +path = "runtime/queries/xml" + +# yaml +[language.yaml.grammar.source.git] +url = "https://github.com/ikatyang/tree-sitter-yaml" +pin = "0e36bed171768908f331ff7dff9d956bae016efb" + +[language.yaml.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../scanner.cc", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "yaml.so"] +link_flags = ["-O3", "-lstdc++"] + +[language.yaml.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "dbd248fdfa680373d94fbc10094a160aafa0f7a7" + +[language.yaml.queries] +path = "runtime/queries/yaml" + +# yuck +# TODO + +# zig +[language.zig.grammar.source.git] +url = "https://github.com/maxxnino/tree-sitter-zig" +pin = "0d08703e4c3f426ec61695d7617415fff97029bd" + +[language.zig.grammar] +path = "src" +compile = "cc" +compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."] +compile_flags = ["-O3"] +link = "cc" +link_args = ["-shared", "-fpic", "parser.o", "-o", "zig.so"] +link_flags = ["-O3"] + +[language.zig.queries.source.git] +url = "https://github.com/helix-editor/helix" +pin = "bc737404e8ad462b4101987730f4a76658d132ad" + +[language.zig.queries] +path = "runtime/queries/zig" diff --git a/.config/kak/colors/base16-kakoune b/.config/kak/colors/base16-kakoune new file mode 120000 index 0000000..e4ac206 --- /dev/null +++ b/.config/kak/colors/base16-kakoune @@ -0,0 +1 @@ +/home/mikec/.config/kak/plugins/base16-kakoune \ No newline at end of file diff --git a/.config/kak/colors/catppuccin_macchiato.kak b/.config/kak/colors/catppuccin_macchiato.kak new file mode 100644 index 0000000..967279c --- /dev/null +++ b/.config/kak/colors/catppuccin_macchiato.kak @@ -0,0 +1,163 @@ +# Catppuccin Macchiato theme for Kakoune +# +# Taken and adapted from +# + +# Color palette +declare-option str rosewater "rgb:f4dbd6" +declare-option str red "rgb:ed8796" +declare-option str mauve "rgb:c6a0f6" +declare-option str maroon "rgb:ee99a0" +declare-option str pink "rgb:f5bde6" +declare-option str cyan "rgb:7dc4e4" +declare-option str yellow "rgb:eed49f" +declare-option str green "rgb:a6da95" +declare-option str white "rgb:cad3f5" +declare-option str blue "rgb:8aadf4" +declare-option str sky "rgb:91d7e3" +declare-option str lavender "rgb:b7bdf8" +declare-option str black1 "rgb:1e2030" +declare-option str black2 "rgb:24273a" +declare-option str black3 "rgb:363a4f" +declare-option str orange "rgb:f5a97f" +declare-option str teal "rgb:8bd5ca" +declare-option str flamingo "rgb:f0c6c6" +declare-option str gray0 "rgb:5b6078" +declare-option str gray1 "rgb:6e738d" +declare-option str bright_red "%opt{red}+b" +declare-option str bright_green "%opt{green}+b" +declare-option str bright_yellow "%opt{yellow}+b" +declare-option str bright_blue "%opt{blue}+b" +declare-option str bright_cyan "%opt{cyan}+b" +declare-option str bright_white "%opt{white}+b" +declare-option str foreground %opt{white} +declare-option str background %opt{black2} +declare-option str overlay0 "rgb:8087a2" +declare-option str overlay1 "rgb:939ab7" + +# Markup +set-face global title "%opt{rosewater}" +set-face global header "%opt{bright_red}" +set-face global bold "%opt{mauve}" +set-face global italic "%opt{lavender}" +set-face global mono "%opt{green}" +set-face global block "%opt{cyan}" +set-face global link "%opt{green}" +set-face global bullet "%opt{green}" +set-face global list "%opt{white}" + +# Builtins +set-face global Default "%opt{white},%opt{background}" +set-face global PrimarySelection "%opt{gray0},%opt{lavender}" +set-face global SecondarySelection "%opt{lavender},%opt{gray0}" +set-face global PrimaryCursor "%opt{background},%opt{rosewater}" +set-face global SecondaryCursor "%opt{black1},%opt{teal}" +set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}" +set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}" +set-face global LineNumbers "%opt{gray1},%opt{background}" +set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b" +set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i" +set-face global MenuForeground "%opt{white},%opt{gray0}+b" +set-face global MenuBackground "%opt{white},%opt{black3}" +set-face global MenuInfo "%opt{black1},%opt{blue}" +set-face global Information "%opt{black1},%opt{lavender}" +set-face global Error "%opt{red},%opt{black2}" +set-face global StatusLine "%opt{white},%opt{black1}" +set-face global StatusLineMode "%opt{black2},%opt{yellow}" +set-face global StatusLineInfo "%opt{background},%opt{green}" +set-face global StatusLineValue "%opt{orange},%opt{gray0}" +set-face global StatusCursor "%opt{black1},%opt{lavender}" +set-face global Prompt "%opt{green},%opt{black2}" +set-face global MatchingChar "%opt{maroon},%opt{black2}" +set-face global Whitespace "%opt{gray1},%opt{background}+f" +set-face global WrapMarker Whitespace +set-face global BufferPadding "%opt{background},%opt{background}" + +# Code +set-face global value "%opt{orange}" +set-face global type "%opt{rosewater}" +set-face global variable "%opt{white}" +set-face global module "%opt{maroon}" +set-face global function "%opt{sky}" +set-face global string "%opt{green}" +set-face global keyword "%opt{blue}" +set-face global operator "%opt{blue}" +set-face global attribute "%opt{green}" +set-face global comment "%opt{gray1}+i" +set-face global documentation comment +set-face global meta "%opt{pink}" +set-face global builtin "%opt{lavender}+b" + +# Tree-sitter () +set-face global ts_attribute "%opt{blue}" +set-face global ts_comment "%opt{overlay0}+i" +set-face global ts_conceal "%opt{mauve}+i" +set-face global ts_constant "%opt{orange}" +set-face global ts_constant_builtin_boolean "%opt{sky}" +set-face global ts_constant_character "%opt{yellow}" +set-face global ts_constant_macro "%opt{mauve}" +set-face global ts_constructor "%opt{cyan}" +set-face global ts_diff_plus "%opt{green}" +set-face global ts_diff_minus "%opt{red}" +set-face global ts_diff_delta "%opt{blue}" +set-face global ts_diff_delta_moved "%opt{mauve}" +set-face global ts_error "%opt{red}+b" +set-face global ts_function "%opt{blue}" +set-face global ts_function_builtin "%opt{blue}+i" +set-face global ts_function_macro "%opt{mauve}" +set-face global ts_hint "%opt{blue}+b" +set-face global ts_info "%opt{green}+b" +set-face global ts_keyword "%opt{mauve}" +set-face global ts_keyword_conditional "%opt{mauve}+i" +set-face global ts_keyword_control_conditional "%opt{mauve}+i" +set-face global ts_keyword_control_directive "%opt{mauve}+i" +set-face global ts_keyword_control_import "%opt{mauve}+i" +set-face global ts_keyword_directive "%opt{mauve}+i" +set-face global ts_label "%opt{cyan}+i" +set-face global ts_markup_bold "%opt{orange}+b" +set-face global ts_markup_heading "%opt{red}" +set-face global ts_markup_heading_1 "%opt{red}" +set-face global ts_markup_heading_2 "%opt{mauve}" +set-face global ts_markup_heading_3 "%opt{green}" +set-face global ts_markup_heading_4 "%opt{yellow}" +set-face global ts_markup_heading_5 "%opt{pink}" +set-face global ts_markup_heading_6 "%opt{teal}" +set-face global ts_markup_heading_marker "%opt{orange}+b" +set-face global ts_markup_italic "%opt{pink}+i" +set-face global ts_markup_list_checked "%opt{green}" +set-face global ts_markup_list_numbered "%opt{blue}+i" +set-face global ts_markup_list_unchecked "%opt{teal}" +set-face global ts_markup_list_unnumbered "%opt{mauve}" +set-face global ts_markup_link_label "%opt{blue}" +set-face global ts_markup_link_url "%opt{teal}+u" +set-face global ts_markup_link_uri "%opt{teal}+u" +set-face global ts_markup_link_text "%opt{blue}" +set-face global ts_markup_quote "%opt{gray1}" +set-face global ts_markup_raw "%opt{green}" +set-face global ts_markup_strikethrough "%opt{gray1}+s" +set-face global ts_namespace "%opt{blue}+i" +set-face global ts_operator "%opt{sky}" +set-face global ts_property "%opt{sky}" +set-face global ts_punctuation "%opt{overlay1}" +set-face global ts_punctuation_special "%opt{sky}" +set-face global ts_special "%opt{blue}" +set-face global ts_spell "%opt{mauve}" +set-face global ts_string "%opt{green}" +set-face global ts_string_regex "%opt{orange}" +set-face global ts_string_regexp "%opt{orange}" +set-face global ts_string_escape "%opt{mauve}" +set-face global ts_string_special "%opt{blue}" +set-face global ts_string_special_path "%opt{green}" +set-face global ts_string_special_symbol "%opt{mauve}" +set-face global ts_string_symbol "%opt{red}" +set-face global ts_tag "%opt{mauve}" +set-face global ts_tag_error "%opt{red}" +set-face global ts_text "%opt{white}" +set-face global ts_text_title "%opt{mauve}" +set-face global ts_type "%opt{yellow}" +set-face global ts_type_enum_variant "%opt{flamingo}" +set-face global ts_variable "%opt{white}" +set-face global ts_variable_builtin "%opt{red}" +set-face global ts_variable_other_member "%opt{teal}" +set-face global ts_variable_parameter "%opt{maroon}+i" +set-face global ts_warning "%opt{orange}+b" diff --git a/.config/kak/colors/catppuccin_mocha.kak b/.config/kak/colors/catppuccin_mocha.kak new file mode 100644 index 0000000..730bd73 --- /dev/null +++ b/.config/kak/colors/catppuccin_mocha.kak @@ -0,0 +1,166 @@ +# Catppuccint Mocha theme for Kakoune +# +# Taken and adapted from +# + +# Catppuccin theme for Kakoune + +# Color palette (see https://catppuccin.com/palette) +declare-option str rosewater "rgb:f5e0dc" +declare-option str flamingo "rgb:f2cdcd" +declare-option str pink "rgb:f5c2e7" +declare-option str mauve "rgb:cba6f7" +declare-option str red "rgb:f38ba8" +declare-option str maroon "rgb:eba0ac" +declare-option str peach "rgb:fab387" +declare-option str yellow "rgb:f9e2af" +declare-option str green "rgb:a6e3a1" +declare-option str teal "rgb:94e2d5" +declare-option str sky "rgb:89dceb" +declare-option str sapphire "rgb:74c7ec" +declare-option str blue "rgb:89b4fa" +declare-option str lavender "rgb:b4befe" +declare-option str text "rgb:cdd6f4" +declare-option str subtext1 "rgb:bac2de" +declare-option str subtext0 "rgb:a6adc8" +declare-option str overlay2 "rgb:9399b2" +declare-option str overlay1 "rgb:7f849c" +declare-option str overlay0 "rgb:6c7086" +declare-option str surface2 "rgb:585b70" +declare-option str surface1 "rgb:45475a" +declare-option str surface0 "rgb:313244" +declare-option str base "rgb:1e1e2e" +declare-option str mantle "rgb:181825" +declare-option str crust "rgb:11111b" + +# Markup +set-face global title "%opt{text}+b" +set-face global header "%opt{subtext0}+b" +set-face global bold "%opt{maroon}+b" +set-face global italic "%opt{maroon}+i" +set-face global mono "%opt{green}" +set-face global block "%opt{sapphire}" +set-face global link "%opt{blue}" +set-face global bullet "%opt{peach}" +set-face global list "%opt{peach}" + +# Builtins +set-face global Default "%opt{text},%opt{base}" +set-face global PrimarySelection "%opt{text},%opt{surface2}" +set-face global SecondarySelection "%opt{text},%opt{surface2}" +set-face global PrimaryCursor "%opt{crust},%opt{rosewater}" +set-face global SecondaryCursor "%opt{text},%opt{overlay0}" +set-face global PrimaryCursorEol "%opt{surface2},%opt{lavender}" +set-face global SecondaryCursorEol "%opt{surface2},%opt{overlay1}" +set-face global LineNumbers "%opt{overlay1},%opt{base}" +set-face global LineNumberCursor "%opt{rosewater},%opt{surface2}+b" +set-face global LineNumbersWrapped "%opt{rosewater},%opt{surface2}" +set-face global MenuForeground "%opt{text},%opt{surface1}+b" +set-face global MenuBackground "%opt{text},%opt{surface0}" +set-face global MenuInfo "%opt{crust},%opt{teal}" +set-face global Information "%opt{crust},%opt{teal}" +set-face global Error "%opt{crust},%opt{red}" +set-face global DiagnosticError Error +set-face global DiagnosticWarning "%opt{yellow}" +set-face global StatusLine "%opt{text},%opt{mantle}" +set-face global StatusLineMode "%opt{crust},%opt{yellow}" +set-face global StatusLineInfo "%opt{crust},%opt{teal}" +set-face global StatusLineValue "%opt{crust},%opt{yellow}" +set-face global StatusCursor "%opt{crust},%opt{rosewater}" +set-face global Prompt "%opt{teal},%opt{base}+b" +set-face global MatchingChar "%opt{maroon},%opt{base}" +set-face global Whitespace "%opt{overlay1},%opt{base}+f" +set-face global WrapMarker Whitespace +set-face global BufferPadding "%opt{base},%opt{base}" + + +# Code +set-face global value "%opt{peach}" +set-face global type "%opt{yellow}" +set-face global variable "%opt{text}" +set-face global module "%opt{maroon}" +set-face global function "%opt{blue}" +set-face global string "%opt{green}" +set-face global keyword "%opt{mauve}" +set-face global operator "%opt{sky}" +set-face global attribute "%opt{yellow}" +set-face global comment "%opt{overlay1}+i" +set-face global documentation comment +set-face global meta "%opt{yellow}" +set-face global builtin "%opt{red}" + +# Tree-sitter () +# Copied from catppuccin_macchiato.kak +# Adjusted with https://github.com/catppuccin/catppuccin/blob/main/docs/style-guide.md +set-face global ts_attribute attribute +set-face global ts_comment comment +set-face global ts_conceal "%opt{mauve}+i" +set-face global ts_constant "%opt{peach}" +set-face global ts_constant_builtin_boolean "%opt{sky}" +set-face global ts_constant_character "%opt{yellow}" +set-face global ts_constant_macro "%opt{mauve}" +set-face global ts_constructor "%opt{sky}" +set-face global ts_diff_plus "%opt{green}" +set-face global ts_diff_minus "%opt{red}" +set-face global ts_diff_delta "%opt{blue}" +set-face global ts_diff_delta_moved "%opt{mauve}" +set-face global ts_error "%opt{red}+b" +set-face global ts_function "%opt{blue}" +set-face global ts_function_builtin "%opt{blue}+i" +set-face global ts_function_macro "%opt{mauve}" +set-face global ts_hint "%opt{blue}+b" +set-face global ts_info "%opt{teal}+b" +set-face global ts_keyword "%opt{mauve}" +set-face global ts_keyword_conditional "%opt{mauve}+i" +set-face global ts_keyword_control_conditional "%opt{mauve}+i" +set-face global ts_keyword_control_directive "%opt{mauve}+i" +set-face global ts_keyword_control_import "%opt{mauve}+i" +set-face global ts_keyword_directive "%opt{mauve}+i" +set-face global ts_label "%opt{sky}+i" +set-face global ts_markup_bold "%opt{peach}+b" +set-face global ts_markup_heading "%opt{red}" +set-face global ts_markup_heading_1 "%opt{red}" +set-face global ts_markup_heading_2 "%opt{mauve}" +set-face global ts_markup_heading_3 "%opt{green}" +set-face global ts_markup_heading_4 "%opt{yellow}" +set-face global ts_markup_heading_5 "%opt{pink}" +set-face global ts_markup_heading_6 "%opt{teal}" +set-face global ts_markup_heading_marker "%opt{peach}+b" +set-face global ts_markup_italic "%opt{pink}+i" +set-face global ts_markup_list_checked "%opt{green}" +set-face global ts_markup_list_numbered "%opt{blue}+i" +set-face global ts_markup_list_unchecked "%opt{teal}" +set-face global ts_markup_list_unnumbered "%opt{mauve}" +set-face global ts_markup_link_label "%opt{blue}" +set-face global ts_markup_link_url "%opt{teal}+u" +set-face global ts_markup_link_uri "%opt{teal}+u" +set-face global ts_markup_link_text "%opt{blue}" +set-face global ts_markup_quote "%opt{overlay1}" +set-face global ts_markup_raw "%opt{green}" +set-face global ts_markup_strikethrough "%opt{overlay1}+s" +set-face global ts_namespace "%opt{blue}+i" +set-face global ts_operator "%opt{sky}" +set-face global ts_property "%opt{sky}" +set-face global ts_punctuation "%opt{overlay1}" +set-face global ts_punctuation_special "%opt{sky}" +set-face global ts_special "%opt{blue}" +set-face global ts_spell "%opt{mauve}" +set-face global ts_string string +set-face global ts_string_regex "%opt{pink}" +set-face global ts_string_regexp "%opt{pink}" +set-face global ts_string_escape "%opt{flamingo}" +set-face global ts_string_special "%opt{blue}" +set-face global ts_string_special_path "%opt{green}" +set-face global ts_string_special_symbol "%opt{mauve}" +set-face global ts_string_symbol "%opt{red}" +set-face global ts_tag "%opt{mauve}" +set-face global ts_tag_error "%opt{red}" +set-face global ts_text "%opt{text}" +set-face global ts_text_title "%opt{mauve}" +set-face global ts_type type +set-face global ts_type_enum_variant "%opt{teal}" +set-face global ts_variable variable +set-face global ts_variable_builtin builtin +set-face global ts_variable_other_member "%opt{teal}" +set-face global ts_variable_parameter "%opt{maroon}+i" +set-face global ts_warning "%opt{yellow}+b" diff --git a/.config/kak/default.mustache b/.config/kak/default.mustache new file mode 100644 index 0000000..bfeec06 --- /dev/null +++ b/.config/kak/default.mustache @@ -0,0 +1,169 @@ +# base16-{{scheme-slug}} +# +# Commentary: +# Tinted Theming: (https://github.com/tinted-theming) +# +# Authors: +# Scheme: {{scheme-author}} +# Template: Jamy Golden (https://github.com/JamyGolden) + +# palette + +declare-option str base00 'rgb:{{base00-hex}}'# black2 +declare-option str base01 'rgb:{{base01-hex}}'# black1 +declare-option str base02 'rgb:{{base02-hex}}'# black3 +declare-option str base03 'rgb:{{base03-hex}}'# flamingo +declare-option str base04 'rgb:{{base04-hex}}'# grey0 +declare-option str base05 'rgb:{{base05-hex}}'# white +declare-option str base06 'rgb:{{base06-hex}}'# rosewater +declare-option str base07 'rgb:{{base07-hex}}'# lavender +declare-option str base08 'rgb:{{base08-hex}}'# red +declare-option str base09 'rgb:{{base09-hex}}'# orange +declare-option str base0A 'rgb:{{base0A-hex}}'# yellow +declare-option str base0B 'rgb:{{base0B-hex}}'# green +declare-option str base0C 'rgb:{{base0C-hex}}'# teal +declare-option str base0D 'rgb:{{base0D-hex}}'# blue +declare-option str base0E 'rgb:{{base0E-hex}}'# mauve +declare-option str base0F 'rgb:{{base0F-hex}}'# flamingo + +# code + +set-face global value "%opt{base09}" +set-face global type "%opt{base08}" +set-face global variable "%opt{base08}" +set-face global module "%opt{base0D}" +set-face global function "%opt{base0D}" +set-face global identifier "%opt{base08}" +set-face global string "%opt{base0B}" +set-face global error "%opt{base08}" +set-face global keyword "%opt{base0E}" +set-face global operator "%opt{base05}" +set-face global attribute "%opt{base09}" +set-face global bracket "%opt{base05}+b" +set-face global arguement "%opt{base09}" +set-face global comma "%opt{base05}" +set-face global constant "%opt{base09}+b" +set-face global comment "%opt{base03}+i" +set-face global documentation "%opt{base03}+i" +set-face global docstring "%opt{base03}+i" +set-face global docstring "%opt{base0A}" +set-face global meta "%opt{base0C}" +set-face global builtin "%opt{base0C}+b" + +# text + +set-face global title "%opt{base0E}" +set-face global header "%opt{base0D}" +set-face global bold "%opt{base0E}" +set-face global italic "%opt{base0E}" +set-face global mono "%opt{base0B}" +set-face global block "%opt{base0D}" +set-face global link "%opt{base0B}" +set-face global bullet "%opt{base0B}" +set-face global list "%opt{base05}" + +# kakoune UI + +set-face global Default "%opt{base05},%opt{base00}" +set-face global PrimarySelection "%opt{base00},%opt{base0A}" +set-face global SecondarySelection "%opt{base03},%opt{base0A}" +set-face global PrimaryCursor "%opt{base00},%opt{base05}" +set-face global SecondaryCursor "%opt{base00},%opt{base0C}" +set-face global PrimaryCursorEol "%opt{base00},%opt{base0A}" +set-face global SecondaryCursorEol "%opt{base00},%opt{base0D}" +set-face global LineNumbers "%opt{base04},%opt{base00}" +set-face global LineNumberCursor "%opt{base0A},%opt{base00}+b" +set-face global LineNumbersWrapped "%opt{base04},%opt{base00}+i" +set-face global MenuForeground "%opt{base06},%opt{base01}+b" +set-face global MenuBackground "%opt{base0D},%opt{base07}" +set-face global MenuInfo "%opt{base0D},%opt{base07}" +set-face global Information "%opt{base01},%opt{base07}" +set-face global Error "%opt{base01},%opt{base08}" +set-face global DiagnosticError "%opt{base08}" +set-face global DiagnosticWarning "%opt{base0A}" +set-face global StatusLine "%opt{base04},%opt{base02}" +set-face global StatusLineMode "%opt{base0A},%opt{base02}" +set-face global StatusLineInfo "%opt{base06},%opt{base02}" +set-face global StatusLineValue "%opt{base04},%opt{base02}" +set-face global StatusCursor "%opt{base02},%opt{base05}" +set-face global Prompt "%opt{base0A},%opt{base02}" +set-face global MatchingChar "%opt{base0D},%opt{base00}" +set-face global Whitespace "%opt{base01},%opt{base00}+f" +set-face global WrapMarker Whitespace +set-face global BufferPadding "%opt{base04},%opt{base00}" +set-face global Search "%opt{base05},%opt{base01}" + + +# Tree-sitter () +set-face global ts_attribute "%opt{base0D}" +set-face global ts_comment "%opt{base04}+i" +set-face global ts_conceal "%opt{base0E}+i" +set-face global ts_constant "%opt{base09}" +set-face global ts_constant_builtin_boolean "%opt{base0C}" +set-face global ts_constant_character "%opt{base0A}" +set-face global ts_constant_macro "%opt{base0E}" +set-face global ts_constructor "%opt{base0D}" +set-face global ts_diff_plus "%opt{base0B}" +set-face global ts_diff_minus "%opt{base08}" +set-face global ts_diff_delta "%opt{base0D}" +set-face global ts_diff_delta_moved "%opt{base0E}" +set-face global ts_error "%opt{base08}+b" +set-face global ts_function "%opt{base0D}" +set-face global ts_function_builtin "%opt{base0D}+i" +set-face global ts_function_macro "%opt{base0E}" +set-face global ts_hint "%opt{base0D}+b" +set-face global ts_info "%opt{base0B}+b" +set-face global ts_keyword "%opt{base0E}" +set-face global ts_keyword_conditional "%opt{base0E}+i" +set-face global ts_keyword_control_conditional "%opt{base0E}+i" +set-face global ts_keyword_control_directive "%opt{base0E}+i" +set-face global ts_keyword_control_import "%opt{base0E}+i" +set-face global ts_keyword_directive "%opt{base0E}+i" +set-face global ts_label "%opt{base0E}+i" +set-face global ts_markup_bold "%opt{base09}+b" +set-face global ts_markup_heading "%opt{base08}" +set-face global ts_markup_heading_1 "%opt{base08}" +set-face global ts_markup_heading_2 "%opt{base0E}" +set-face global ts_markup_heading_3 "%opt{base0B}" +set-face global ts_markup_heading_4 "%opt{base0A}" +set-face global ts_markup_heading_5 "%opt{base07}" +set-face global ts_markup_heading_6 "%opt{base0C}" +set-face global ts_markup_heading_marker "%opt{base09}+b" +set-face global ts_markup_italic "%opt{base07}+i" +set-face global ts_markup_list_checked "%opt{base0B}" +set-face global ts_markup_list_numbered "%opt{base0D}+i" +set-face global ts_markup_list_unchecked "%opt{base0C}" +set-face global ts_markup_list_unnumbered "%opt{base0E}" +set-face global ts_markup_link_label "%opt{base0D}" +set-face global ts_markup_link_url "%opt{base0C}+u" +set-face global ts_markup_link_uri "%opt{base0C}+u" +set-face global ts_markup_link_text "%opt{base0D}" +set-face global ts_markup_quote "%opt{base04}" +set-face global ts_markup_raw "%opt{base0B}" +set-face global ts_markup_strikethrough "%opt{base04}+s" +set-face global ts_namespace "%opt{base0D}+i" +set-face global ts_operator "%opt{base0C}" +set-face global ts_property "%opt{base0C}" +set-face global ts_punctuation "%opt{base04}" +set-face global ts_punctuation_special "%opt{base0C}" +set-face global ts_special "%opt{base0D}" +set-face global ts_spell "%opt{base0E}" +set-face global ts_string "%opt{base0B}" +set-face global ts_string_regex "%opt{base09}" +set-face global ts_string_regexp "%opt{base09}" +set-face global ts_string_escape "%opt{base0E}" +set-face global ts_string_special "%opt{base0D}" +set-face global ts_string_special_path "%opt{base0B}" +set-face global ts_string_special_symbol "%opt{base0E}" +set-face global ts_string_symbol "%opt{base08}" +set-face global ts_tag "%opt{base0E}" +set-face global ts_tag_error "%opt{base08}" +set-face global ts_text "%opt{base05}" +set-face global ts_text_title "%opt{base0E}" +set-face global ts_type "%opt{base0A}" +set-face global ts_type_enum_variant "%opt{base03}" +set-face global ts_variable "%opt{base05}" +set-face global ts_variable_builtin "%opt{base08}" +set-face global ts_variable_other_member "%opt{base0C}" +set-face global ts_variable_parameter "%opt{base0F}+i" +set-face global ts_warning "%opt{base09}+b" diff --git a/.config/kak/kakrc b/.config/kak/kakrc new file mode 100644 index 0000000..3dc04f1 --- /dev/null +++ b/.config/kak/kakrc @@ -0,0 +1,358 @@ +### Plugins ### +evaluate-commands %sh{ + plugins="$kak_config/plugins" + mkdir -p "$plugins" + [ ! -e "$plugins/plug.kak" ] && \ + git clone -q https://github.com/andreyorst/plug.kak.git "$plugins/plug.kak" + printf "%s\n" "source '$plugins/plug.kak/rc/plug.kak'" +} + +plug "andreyorst/plug.kak" noload + +plug "andreyorst/smarttab.kak" defer smarttab %{ + set-option global softtabstop 4 +} + +plug "occivink/kakoune-sudo-write" + +plug "kak-lsp/kak-lsp" do %{ + cargo install --locked --force --path . +} + +# plug "gustavo-hms/luar" %{ +# plug "gustavo-hms/peneira" %{ +# require-module peneira +# } +# } + +# # Color Themes +plug "tinted-theming/base16-kakoune" + +### End Of Plugins ### + +# set-option global luar_interpreter luajit + +## Treesitter ## + +eval %sh{ kak-tree-sitter -dks --with-highlighting --with-text-objects --session $kak_session } +#eval %sh{ kak-tree-sitter -dks --with-text-objects --session $kak_session } +#eval %sh{ kak-tree-sitter -dks --with-highlighting --session $kak_session } + +evaluate-commands %sh{ + echo "colorscheme base16-$BASE16_THEME" +} + +## Highlighting ## +hook global WinCreate .* %{ add-highlighter window/number-lines number-lines -relative -hlcursor} +hook global WinCreate .* %{ add-highlighter window/ show-matching} +add-highlighter global/ column 80 MenuForeground +add-highlighter global/ show-whitespaces + +## Formatting ## +define-command enable-autofmt -docstring 'enable autoformatting of buffer' %{ + hook global -group autofmt BufSetOption filetype=(c|cpp) %{ + set-option buffer formatcmd 'clang-format -style=file:/home/mikec/.clang-format' + + hook -group autofmt buffer BufOpenFile .* %{ + format + } + + hook -group autofmt buffer BufWritePre .* { + format + ctags-update-tags + } + } +} + +define-command disable-autofmt -docstring 'disable autoformatting of buffer' %{ + remove-hooks global autofmt +} + +## Indentation ## +set global tabstop 4 +set global indentwidth 4 +hook global WinSetOption filetype=.* expandtab +hook global WinSetOption filetype=(makefile|gas) noexpandtab +hook global BufCreate .* %{ + editorconfig-load + autoconfigtab +} + +define-command sleuth -docstring 'Heuristically set buffer options' %{ + try %{ + evaluate-commands -draft %{ + # Search the first indent level + execute-keys 'gg' '/' '^\h+' '' + + # Tab vs. Space + # https://youtu.be/V7PLxL8jIl8 + try %{ + execute-keys '' '\t' '' + #set-option buffer indentwidth 0 + noexpandtab + } catch %{ + set-option buffer indentwidth %val{selection_length} + expandtab + } + } + } +} + +define-command git-status -docstring 'Show git diff' %{ + hook -group git-status global BufOpenFile .* %{ + git show-diff + } + + hook -group git-status global BufWritePost .* %{ + git show-diff + } +} + +define-command disable-git-status -docstring 'Disable git diff gutter' %{ + remove-hooks global git-status +} + +define-command sleuth-enable -docstring 'Enable sleuth' %{ + # Run sleuth when opening and saving files. + hook -group sleuth global BufOpenFile .* %{ + sleuth + } + + hook -group sleuth global BufWritePost .* %{ + sleuth + } +} + +define-command sleuth-disable -docstring 'Disable sleuth' %{ + remove-hooks global sleuth +} + +## LSP ## +lsp-enable +lsp-auto-hover-enable + +lsp-inlay-diagnostics-enable global +hook global WinSetOption filetype=(c|zig|rust|python|ruby|lua) %{ + hook window -group semantic-tokens BufReload .* lsp-semantic-tokens + hook window -group semantic-tokens NormalIdle .* lsp-semantic-tokens + hook window -group semantic-tokens InsertIdle .* lsp-semantic-tokens + hook -once -always window WinSetOption filetype=.* %{ + remove-hooks window semantic-tokens + } +} + +face global InfoDefault Information +face global InfoBlock Information +face global InfoBlockQuote Information +face global InfoBullet Information +face global InfoHeader Information +face global InfoLink Information +face global InfoLinkMono Information +face global InfoMono Information +face global InfoRule Information +face global InfoDiagnosticError Information +face global InfoDiagnosticHint Information +face global InfoDiagnosticInformation Information +face global InfoDiagnosticWarning Information + +set-option global lsp_config %{ +} + +define-command -docstring 'Invoke fzf to select a buffer' fzf-buffer %{ + evaluate-commands %sh{ + BUFFER=$( + ( + eval "set -- $kak_buflist" + while [ $# -gt 0 ]; do + printf "%s\0" "$1" + shift + done + ) | + fzf-tmux --cycle -p 175,45 --read0 --preview='bat --theme=base16-256 --color=always {} 2>/dev/null' + ) + BUFFER=${BUFFER/\'/\'\'} + if [ -n "$BUFFER" ]; then + printf "buffer %s" "${BUFFER}" + fi + } +} + +define-command -docstring 'live grep' live-grep %{ + evaluate-commands %sh{ + + if [ -z "${kak_client_env_TMUX}" ]; then + printf 'fail "client was not started under tmux"\n' + else + file="$(rfv.sh)" + if [ -n "$file" ]; then + printf "edit %s\n" "$file" + fi + fi + } +} + +define-command -docstring 'exact grep' exact-grep %{ + evaluate-commands %sh{ + + if [ -z "${kak_client_env_TMUX}" ]; then + printf 'fail "client was not started under tmux"\n' + else + file="$(rfve.sh)" + if [ -n "$file" ]; then + printf "edit %s\n" "$file" + fi + fi + } +} + +define-command -docstring 'search contents of current file' file-search %{ + evaluate-commands -save-regs '"' %{ + set-register dquote %sh{ mktemp } + execute-keys -draft '% cat > $kak_reg_dquote' + evaluate-commands %sh{ + if [ -z "${kak_client_env_TMUX}" ]; then + printf 'fail "client was not started under tmux"\n' + else + file="$(rfs.sh ${kak_reg_dquote} ${kak_buffile})" + if [ -n "$file" ]; then + printf "edit %s\n" "$file" + fi + rm $kak_reg_dquote + fi + } + } +} + +define-command -docstring 'search contents of current file with regex' regex-file-search %{ + evaluate-commands -save-regs '"' %{ + set-register dquote %sh{ mktemp } + execute-keys -draft '% cat > $kak_reg_dquote' + evaluate-commands %sh{ + if [ -z "${kak_client_env_TMUX}" ]; then + printf 'fail "client was not started under tmux"\n' + else + file="$(rgrs.sh ${kak_reg_dquote} ${kak_buffile})" + if [ -n "$file" ]; then + printf "edit %s\n" "$file" + fi + rm $kak_reg_dquote + fi + } + } +} + +define-command -docstring 'Invoke fzf to open a file' -params 0 fzf-edit %{ + evaluate-commands %sh{ + if [ -z "${kak_client_env_TMUX}" ]; then + printf 'fail "client was not started under tmux"\n' + else + file="$(fd -u -t f . |TMUX="${kak_client_env_TMUX}" fzf-tmux --cycle -p 175,45 --preview='bat --theme=base16-256 --color=always {} 2>/dev/null || cat {} 2>/dev/null')" + if [ -n "$file" ]; then + printf "edit %s\n" "$file" + fi + fi + } +} + +define-command -docstring 'Invoke fzf to open a file local to the current file' -params 0 fzf-edit-local %{ + evaluate-commands %sh{ + if [ -z "${kak_client_env_TMUX}" ]; then + printf 'fail "client was not started under tmux"\n' + else + dir="$(get_local_path ${kak_buffile})" + if [ -n "$dir" ]; then + file="$(fd -u -t f . $dir |TMUX="${kak_client_env_TMUX}" fzf-tmux --cycle -p 175,45 --preview='bat --theme=base16-256 --color=always {} 2>/dev/null || cat {} 2>/dev/null')" + fi + if [ -n "$file" ]; then + printf "edit %s\n" "$file" + fi + fi + } +} + +define-command -docstring 'Pick project' -params 0 switch-project %{ + evaluate-commands %sh{ + if [ -z "${kak_client_env_TMUX}" ]; then + printf 'fail "client was not started under tmux"\n' + else + proj="$(cat ~/.scripts/projects | TMUX="${kak_client_env_TMUX}" fzf-tmux --cycle -p 175,45 | cut -d' ' -f1)" + if [ -n "$proj" ]; then + printf "cd %s\n" "$proj" + printf 'fzf-edit\n' + fi + fi + } +} + +define-command -docstring 'Project wide search' project-search %{ + evaluate-commands %sh{ + + if [ -z "${kak_client_env_TMUX}" ]; then + printf 'fail "client was not started under tmux"\n' + else + file="$(rgfs.sh)" + if [ -n "$file" ]; then + printf "edit %s\n" "$file" + fi + fi + } +} + +define-command -docstring 'Print Working Directory' -params 0 pwd %{ + evaluate-commands echo %sh{ echo "$(pwd)"} +} + +declare-user-mode config +map -docstring 'enter config mode' global user e ':enter-user-mode config' +map -docstring 'edit kakoune config' global config k ':cd ~/.config/kak/:e ./kakrc' +map -docstring 'edit tmux config' global config t ':e ~/.tmux.conf' +map -docstring 'edit bash config' global config b ':e ~/.bashrc' +map -docstring 'edit scripts folder' global config s ':cd ~/.scripts:fzf-edit' +map -docstring 'edit .config folder' global config c ':cd ~/.config:fzf-edit' + +declare-user-mode buffer +map -docstring 'enter buffer mode' global user b ':enter-user-mode buffer' +map -docstring 'next buffer' global buffer n ':buffer-next' +map -docstring 'previous buffer' global buffer p ':buffer-previous' +map -docstring 'close current buffer' global buffer d ':delete-buffer!' +map -docstring 'write and close current buffer' global buffer w ':w:db' +map -docstring 'list and select a buffer' global buffer b ':fzf-buffer' + +declare-user-mode find +map -docstring 'enter find mode' global user f ':enter-user-mode find' +map -docstring 'find files' global find f ':fzf-edit' +map -docstring 'find tags for the current project' global find t ':ctags-search ' +map -docstring 'find line in current file' global find l ':file-search' +map -docstring 'find line in current file with regex' global find L ':regex-file-search' +map -docstring 'find files in current directory' global find F ':fzf-edit-local' +map -docstring "grep file contents recursively" global find g ':live-grep' +map -docstring "grep exact file contents recursively" global find e ':exact-grep' +map -docstring 'project wide search' global find p ':project-search' + +map -docstring 'enter lsp mode' global user l ':enter-user-mode lsp' +map -docstring 'goto definition (tag)' global lsp t 'w:ctags-search' + +map -docstring 'enter treesitter mode' global user t ':enter-user-mode tree-sitter' +map -docstring 'enter treesitter search mode' global user s ':enter-user-mode tree-sitter-search' + +declare-user-mode tmux +map -docstring 'enter tmux/window mode' global user w ':enter-user-mode tmux' +map -docstring 'vertical split' global tmux v ':tmux-terminal-horizontal kak -c %val{session}' +map -docstring 'horizontal split' global tmux h ':tmux-terminal-vertical kak -c %val{session}' +map -docstring 'new tab' global tmux t ':tmux-terminal-window kak -c %val{session}' +map -docstring 'vertical terminal split' global tmux V ':tmux-repl-horizontal bash' +map -docstring 'horizontal terminal split' global tmux H ':tmux-repl-vertical bash' +map -docstring 'new terminal tab' global tmux T ':tmux-repl-window' +map -docstring 'new git window' global tmux g ':tmux-terminal-window lazygit' + +declare-user-mode project +map -docstring 'enter project mode' global user P ':enter-user-mode project' +map -docstring 'open project' global project o ':switch-project' + +map -docstring 'enter man mode' global user m ':enter-user-mode man' + +map -docstring 'clipboard yank' global user y 'clip.exe' +map -docstring 'clipboard paste' global user p '|powershell.exe -C Get-Clipboard | tr -d "\r"' + +map -docstring 'quit kakoune' global user q ':q' +map -docstring 'toggle comments' global user c ':comment-line' diff --git a/.config/lazygit/config.yml b/.config/lazygit/config.yml new file mode 100644 index 0000000..e69de29 diff --git a/.config/mc/ini b/.config/mc/ini new file mode 100644 index 0000000..24aa848 --- /dev/null +++ b/.config/mc/ini @@ -0,0 +1,143 @@ +[Midnight-Commander] +verbose=true +shell_patterns=true +auto_save_setup=true +preallocate_space=false +auto_menu=false +use_internal_view=true +use_internal_edit=true +clear_before_exec=true +confirm_delete=true +confirm_overwrite=true +confirm_execute=false +confirm_history_cleanup=true +confirm_exit=false +confirm_directory_hotlist_delete=false +confirm_view_dir=false +safe_delete=false +safe_overwrite=false +use_8th_bit_as_meta=false +mouse_move_pages_viewer=true +mouse_close_dialog=false +fast_refresh=false +drop_menus=false +wrap_mode=true +old_esc_mode=true +cd_symlinks=true +show_all_if_ambiguous=false +use_file_to_guess_type=true +alternate_plus_minus=false +only_leading_plus_minus=true +show_output_starts_shell=false +xtree_mode=false +file_op_compute_totals=true +classic_progressbar=true +use_netrc=true +ftpfs_always_use_proxy=false +ftpfs_use_passive_connections=true +ftpfs_use_passive_connections_over_proxy=false +ftpfs_use_unix_list_options=true +ftpfs_first_cd_then_ls=true +ignore_ftp_chattr_errors=true +editor_fill_tabs_with_spaces=false +editor_return_does_auto_indent=true +editor_backspace_through_tabs=false +editor_fake_half_tabs=true +editor_option_save_position=true +editor_option_auto_para_formatting=false +editor_option_typewriter_wrap=false +editor_edit_confirm_save=true +editor_syntax_highlighting=true +editor_persistent_selections=true +editor_drop_selection_on_copy=true +editor_cursor_beyond_eol=false +editor_cursor_after_inserted_block=false +editor_visible_tabs=true +editor_visible_spaces=true +editor_line_state=false +editor_simple_statusbar=false +editor_check_new_line=false +editor_show_right_margin=false +editor_group_undo=false +editor_state_full_filename=false +editor_ask_filename_before_edit=false +nice_rotating_dash=true +shadows=true +mcview_remember_file_position=false +auto_fill_mkdir_name=true +copymove_persistent_attr=true +pause_after_run=1 +mouse_repeat_rate=100 +double_click_speed=250 +old_esc_mode_timeout=1000000 +max_dirt_limit=10 +num_history_items_recorded=60 +vfs_timeout=60 +ftpfs_directory_timeout=900 +ftpfs_retry_seconds=30 +shell_directory_timeout=900 +editor_tab_spacing=8 +editor_word_wrap_line_length=72 +editor_option_save_mode=0 +editor_backup_extension=~ +editor_filesize_threshold=64M +editor_stop_format_chars=-+*\\,.;:&> +mcview_eof= +skin=default + +[Layout] +output_lines=0 +left_panel_size=105 +top_panel_size=0 +message_visible=true +keybar_visible=true +xterm_title=true +command_prompt=true +menubar_visible=true +free_space=true +horizontal_split=false +vertical_equal=true +horizontal_equal=true + +[Misc] +timeformat_recent=%b %e %H:%M +timeformat_old=%b %e %Y +ftp_proxy_host=gate +ftpfs_password=anonymous@ +display_codepage=UTF-8 +source_codepage=Other_8_bit +autodetect_codeset= +clipboard_store= +clipboard_paste= + +[Colors] +base_color= +xterm-256color= +color_terminals= + +[Panels] +show_mini_info=true +kilobyte_si=false +mix_all_files=false +show_backups=true +show_dot_files=true +fast_reload=false +fast_reload_msg_shown=false +mark_moves_down=true +reverse_files_only=true +auto_save_setup_panels=false +navigate_with_arrows=false +panel_scroll_pages=true +panel_scroll_center=false +mouse_move_pages=true +filetype_mode=true +permission_mode=false +torben_fj_mode=false +quick_search_mode=2 +select_flags=6 + +[Panelize] +Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print +Modified git files=git ls-files --modified +Find rejects after patching=find . -name \\*.rej -print +Find *.orig after patching=find . -name \\*.orig -print diff --git a/.config/mc/panels.ini b/.config/mc/panels.ini new file mode 100644 index 0000000..e69de29 diff --git a/.config/newsboat/config b/.config/newsboat/config new file mode 100644 index 0000000..abc2153 --- /dev/null +++ b/.config/newsboat/config @@ -0,0 +1,26 @@ +# unbind keys +# unbind-key ENTER +unbind-key j +unbind-key k +unbind-key h +unbind-key l +unbind-key g +unbind-key G + +# bind keys - vim style +bind-key j down +bind-key k up +bind-key l open +bind-key h quit +bind-key g home +bind-key G end + +podlist-format "%2i %b %> %S [%dMB / %tMB] [%p %%] [%K]" +download-filename-format "%t | %n [%F].%e" +download-path "~/podcasts/%n/" + +macro 1 set browser "curl %u --output /tmp/image && sxiv /tmp/image && rm /tmp/image"; one; set browser lynx; +macro 2 set browser "mpv --vid=no -- %u"; one; set browser lynx; +macro 3 set browser "curl %u --output /tmp/image && sxiv /tmp/image && rm /tmp/image"; +macro 4 set browser "mpv --vid=no -- %u"; +macro 5 set browser lynx; diff --git a/.config/newsboat/queue b/.config/newsboat/queue new file mode 100644 index 0000000..e69de29 diff --git a/.config/newsboat/urls b/.config/newsboat/urls new file mode 100644 index 0000000..ae0247f --- /dev/null +++ b/.config/newsboat/urls @@ -0,0 +1,9 @@ +https://phaazon.net/blog/feed +https://danielde.dev/rss.xml +https://sizeof.cat/index.xml +https://lukesmith.xyz/rss.xml +https://api.substack.com/feed/podcast/462466.rss +https://www.dailywire.com/feeds/rss.xml +https://feeds.simplecast.com/6c2VScgo +https://feeds.simplecast.com/pp_b9xO6 +https://notrelated.xyz/rss diff --git a/.config/nushell/config.nu b/.config/nushell/config.nu new file mode 100644 index 0000000..6d84d8d --- /dev/null +++ b/.config/nushell/config.nu @@ -0,0 +1,895 @@ +# Nushell Config File +# +# version = "0.94.2" + +# For more information on defining custom themes, see +# https://www.nushell.sh/book/coloring_and_theming.html +# And here is the theme collection +# https://github.com/nushell/nu_scripts/tree/main/themes +let dark_theme = { + # color for nushell primitives + separator: white + leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off + header: green_bold + empty: blue + # Closures can be used to choose colors for specific values. + # The value (in this case, a bool) is piped into the closure. + # eg) {|| if $in { 'light_cyan' } else { 'light_gray' } } + bool: light_cyan + int: white + filesize: cyan + duration: white + date: purple + range: white + float: white + string: white + nothing: white + binary: white + cell-path: white + row_index: green_bold + record: white + list: white + block: white + hints: dark_gray + search_result: { bg: red fg: white } + shape_and: purple_bold + shape_binary: purple_bold + shape_block: blue_bold + shape_bool: light_cyan + shape_closure: green_bold + shape_custom: green + shape_datetime: cyan_bold + shape_directory: cyan + shape_external: cyan + shape_externalarg: green_bold + shape_external_resolved: light_yellow_bold + shape_filepath: cyan + shape_flag: blue_bold + shape_float: purple_bold + # shapes are used to change the cli syntax highlighting + shape_garbage: { fg: white bg: red attr: b} + shape_globpattern: cyan_bold + shape_int: purple_bold + shape_internalcall: cyan_bold + shape_keyword: cyan_bold + shape_list: cyan_bold + shape_literal: blue + shape_match_pattern: green + shape_matching_brackets: { attr: u } + shape_nothing: light_cyan + shape_operator: yellow + shape_or: purple_bold + shape_pipe: purple_bold + shape_range: yellow_bold + shape_record: cyan_bold + shape_redirection: purple_bold + shape_signature: green_bold + shape_string: green + shape_string_interpolation: cyan_bold + shape_table: blue_bold + shape_variable: purple + shape_vardecl: purple + shape_raw_string: light_purple +} + +let light_theme = { + # color for nushell primitives + separator: dark_gray + leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off + header: green_bold + empty: blue + # Closures can be used to choose colors for specific values. + # The value (in this case, a bool) is piped into the closure. + # eg) {|| if $in { 'dark_cyan' } else { 'dark_gray' } } + bool: dark_cyan + int: dark_gray + filesize: cyan_bold + duration: dark_gray + date: purple + range: dark_gray + float: dark_gray + string: dark_gray + nothing: dark_gray + binary: dark_gray + cell-path: dark_gray + row_index: green_bold + record: dark_gray + list: dark_gray + block: dark_gray + hints: dark_gray + search_result: { fg: white bg: red } + shape_and: purple_bold + shape_binary: purple_bold + shape_block: blue_bold + shape_bool: light_cyan + shape_closure: green_bold + shape_custom: green + shape_datetime: cyan_bold + shape_directory: cyan + shape_external: cyan + shape_externalarg: green_bold + shape_external_resolved: light_purple_bold + shape_filepath: cyan + shape_flag: blue_bold + shape_float: purple_bold + # shapes are used to change the cli syntax highlighting + shape_garbage: { fg: white bg: red attr: b} + shape_globpattern: cyan_bold + shape_int: purple_bold + shape_internalcall: cyan_bold + shape_keyword: cyan_bold + shape_list: cyan_bold + shape_literal: blue + shape_match_pattern: green + shape_matching_brackets: { attr: u } + shape_nothing: light_cyan + shape_operator: yellow + shape_or: purple_bold + shape_pipe: purple_bold + shape_range: yellow_bold + shape_record: cyan_bold + shape_redirection: purple_bold + shape_signature: green_bold + shape_string: green + shape_string_interpolation: cyan_bold + shape_table: blue_bold + shape_variable: purple + shape_vardecl: purple + shape_raw_string: light_purple +} + +# External completer example +# let carapace_completer = {|spans| +# carapace $spans.0 nushell ...$spans | from json +# } + +# The default config record. This is where much of your global configuration is setup. +$env.config = { + show_banner: true # true or false to enable or disable the welcome banner at startup + + ls: { + use_ls_colors: true # use the LS_COLORS environment variable to colorize output + clickable_links: true # enable or disable clickable links. Your terminal has to support links. + } + + rm: { + always_trash: false # always act as if -t was given. Can be overridden with -p + } + + table: { + mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other + index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column + show_empty: true # show 'empty list' and 'empty record' placeholders for command output + padding: { left: 1, right: 1 } # a left right padding of each column in a table + trim: { + methodology: wrapping # wrapping or truncating + wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology + truncating_suffix: "..." # A suffix used by the 'truncating' methodology + } + header_on_separator: false # show header text on separator/border line + # abbreviated_row_count: 10 # limit data rows from top and bottom after reaching a set point + } + + error_style: "fancy" # "fancy" or "plain" for screen reader-friendly error messages + + # datetime_format determines what a datetime rendered in the shell would look like. + # Behavior without this configuration point will be to "humanize" the datetime display, + # showing something like "a day ago." + datetime_format: { + # normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables + # table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format + } + + explore: { + status_bar_background: { fg: "#1D1F21", bg: "#C4C9C6" }, + command_bar_text: { fg: "#C4C9C6" }, + highlight: { fg: "black", bg: "yellow" }, + status: { + error: { fg: "white", bg: "red" }, + warn: {} + info: {} + }, + table: { + split_line: { fg: "#404040" }, + selected_cell: { bg: light_blue }, + selected_row: {}, + selected_column: {}, + }, + } + + history: { + max_size: 100_000 # Session has to be reloaded for this to take effect + sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file + file_format: "plaintext" # "sqlite" or "plaintext" + isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions. + } + + completions: { + case_sensitive: false # set to true to enable case-sensitive completions + quick: true # set this to false to prevent auto-selecting completions when only one remains + partial: true # set this to false to prevent partial filling of the prompt + algorithm: "prefix" # prefix or fuzzy + external: { + enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow + max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options + completer: null # check 'carapace_completer' above as an example + } + use_ls_colors: true # set this to true to enable file/path/directory completions using LS_COLORS + } + + filesize: { + metric: false # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard) + format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto + } + + cursor_shape: { + emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default) + vi_insert: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default) + vi_normal: underscore # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default) + } + + color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record + use_grid_icons: true + footer_mode: "25" # always, never, number_of_rows, auto + float_precision: 2 # the precision for displaying floats in tables + buffer_editor: "" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL + use_ansi_coloring: true + bracketed_paste: true # enable bracketed paste, currently useless on windows + edit_mode: emacs # emacs, vi + shell_integration: { + # osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title + osc2: true + # osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory + osc7: true + # osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8 + osc8: true + # osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal + osc9_9: false + # osc133 is several escapes invented by Final Term which include the supported ones below. + # 133;A - Mark prompt start + # 133;B - Mark prompt end + # 133;C - Mark pre-execution + # 133;D;exit - Mark execution finished with exit code + # This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is + osc133: true + # osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features + # 633;A - Mark prompt start + # 633;B - Mark prompt end + # 633;C - Mark pre-execution + # 633;D;exit - Mark execution finished with exit code + # 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce + # 633;P;Cwd= - Mark the current working directory and communicate it to the terminal + # and also helps with the run recent menu in vscode + osc633: true + # reset_application_mode is escape \x1b[?1l and was added to help ssh work better + reset_application_mode: true + } + render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt. + use_kitty_protocol: false # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this. + highlight_resolved_externals: false # true enables highlighting of external commands in the repl resolved by which. + recursion_limit: 50 # the maximum number of times nushell allows recursion before stopping it + + plugins: {} # Per-plugin configuration. See https://www.nushell.sh/contributor-book/plugins.html#configuration. + + plugin_gc: { + # Configuration for plugin garbage collection + default: { + enabled: true # true to enable stopping of inactive plugins + stop_after: 10sec # how long to wait after a plugin is inactive to stop it + } + plugins: { + # alternate configuration for specific plugins, by name, for example: + # + # gstat: { + # enabled: false + # } + } + } + + hooks: { + pre_prompt: [{ null }] # run before the prompt is shown + pre_execution: [{ null }] # run before the repl input is run + env_change: { + PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input + } + display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline + command_not_found: { null } # return an error message when a command is not found + } + + menus: [ + # Configuration for default nushell menus + # Note the lack of source parameter + { + name: completion_menu + only_buffer_difference: false + marker: "| " + type: { + layout: columnar + columns: 4 + col_width: 20 # Optional value. If missing all the screen width is used to calculate column width + col_padding: 2 + } + style: { + text: green + selected_text: { attr: r } + description_text: yellow + match_text: { attr: u } + selected_match_text: { attr: ur } + } + } + { + name: ide_completion_menu + only_buffer_difference: false + marker: "| " + type: { + layout: ide + min_completion_width: 0, + max_completion_width: 50, + max_completion_height: 10, # will be limited by the available lines in the terminal + padding: 0, + border: true, + cursor_offset: 0, + description_mode: "prefer_right" + min_description_width: 0 + max_description_width: 50 + max_description_height: 10 + description_offset: 1 + # If true, the cursor pos will be corrected, so the suggestions match up with the typed text + # + # C:\> str + # str join + # str trim + # str split + correct_cursor_pos: false + } + style: { + text: green + selected_text: { attr: r } + description_text: yellow + match_text: { attr: u } + selected_match_text: { attr: ur } + } + } + { + name: history_menu + only_buffer_difference: true + marker: "? " + type: { + layout: list + page_size: 10 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + { + name: help_menu + only_buffer_difference: true + marker: "? " + type: { + layout: description + columns: 4 + col_width: 20 # Optional value. If missing all the screen width is used to calculate column width + col_padding: 2 + selection_rows: 4 + description_rows: 10 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + ] + + keybindings: [ + { + name: completion_menu + modifier: none + keycode: tab + mode: [emacs vi_normal vi_insert] + event: { + until: [ + { send: menu name: completion_menu } + { send: menunext } + { edit: complete } + ] + } + } + { + name: ide_completion_menu + modifier: control + keycode: char_n + mode: [emacs vi_normal vi_insert] + event: { + until: [ + { send: menu name: ide_completion_menu } + { send: menunext } + { edit: complete } + ] + } + } + { + name: history_menu + modifier: control + keycode: char_r + mode: [emacs, vi_insert, vi_normal] + event: { send: menu name: history_menu } + } + { + name: help_menu + modifier: none + keycode: f1 + mode: [emacs, vi_insert, vi_normal] + event: { send: menu name: help_menu } + } + { + name: completion_previous_menu + modifier: shift + keycode: backtab + mode: [emacs, vi_normal, vi_insert] + event: { send: menuprevious } + } + { + name: next_page_menu + modifier: control + keycode: char_x + mode: emacs + event: { send: menupagenext } + } + { + name: undo_or_previous_page_menu + modifier: control + keycode: char_z + mode: emacs + event: { + until: [ + { send: menupageprevious } + { edit: undo } + ] + } + } + { + name: escape + modifier: none + keycode: escape + mode: [emacs, vi_normal, vi_insert] + event: { send: esc } # NOTE: does not appear to work + } + { + name: cancel_command + modifier: control + keycode: char_c + mode: [emacs, vi_normal, vi_insert] + event: { send: ctrlc } + } + { + name: quit_shell + modifier: control + keycode: char_d + mode: [emacs, vi_normal, vi_insert] + event: { send: ctrld } + } + { + name: clear_screen + modifier: control + keycode: char_l + mode: [emacs, vi_normal, vi_insert] + event: { send: clearscreen } + } + { + name: search_history + modifier: control + keycode: char_q + mode: [emacs, vi_normal, vi_insert] + event: { send: searchhistory } + } + { + name: open_command_editor + modifier: control + keycode: char_o + mode: [emacs, vi_normal, vi_insert] + event: { send: openeditor } + } + { + name: move_up + modifier: none + keycode: up + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menuup } + { send: up } + ] + } + } + { + name: move_down + modifier: none + keycode: down + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menudown } + { send: down } + ] + } + } + { + name: move_left + modifier: none + keycode: left + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menuleft } + { send: left } + ] + } + } + { + name: move_right_or_take_history_hint + modifier: none + keycode: right + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: historyhintcomplete } + { send: menuright } + { send: right } + ] + } + } + { + name: move_one_word_left + modifier: control + keycode: left + mode: [emacs, vi_normal, vi_insert] + event: { edit: movewordleft } + } + { + name: move_one_word_right_or_take_history_hint + modifier: control + keycode: right + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: historyhintwordcomplete } + { edit: movewordright } + ] + } + } + { + name: move_to_line_start + modifier: none + keycode: home + mode: [emacs, vi_normal, vi_insert] + event: { edit: movetolinestart } + } + { + name: move_to_line_start + modifier: control + keycode: char_a + mode: [emacs, vi_normal, vi_insert] + event: { edit: movetolinestart } + } + { + name: move_to_line_end_or_take_history_hint + modifier: none + keycode: end + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: historyhintcomplete } + { edit: movetolineend } + ] + } + } + { + name: move_to_line_end_or_take_history_hint + modifier: control + keycode: char_e + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: historyhintcomplete } + { edit: movetolineend } + ] + } + } + { + name: move_to_line_start + modifier: control + keycode: home + mode: [emacs, vi_normal, vi_insert] + event: { edit: movetolinestart } + } + { + name: move_to_line_end + modifier: control + keycode: end + mode: [emacs, vi_normal, vi_insert] + event: { edit: movetolineend } + } + { + name: move_up + modifier: control + keycode: char_p + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menuup } + { send: up } + ] + } + } + { + name: move_down + modifier: control + keycode: char_t + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menudown } + { send: down } + ] + } + } + { + name: delete_one_character_backward + modifier: none + keycode: backspace + mode: [emacs, vi_insert] + event: { edit: backspace } + } + { + name: delete_one_word_backward + modifier: control + keycode: backspace + mode: [emacs, vi_insert] + event: { edit: backspaceword } + } + { + name: delete_one_character_forward + modifier: none + keycode: delete + mode: [emacs, vi_insert] + event: { edit: delete } + } + { + name: delete_one_character_forward + modifier: control + keycode: delete + mode: [emacs, vi_insert] + event: { edit: delete } + } + { + name: delete_one_character_backward + modifier: control + keycode: char_h + mode: [emacs, vi_insert] + event: { edit: backspace } + } + { + name: delete_one_word_backward + modifier: control + keycode: char_w + mode: [emacs, vi_insert] + event: { edit: backspaceword } + } + { + name: move_left + modifier: none + keycode: backspace + mode: vi_normal + event: { edit: moveleft } + } + { + name: newline_or_run_command + modifier: none + keycode: enter + mode: emacs + event: { send: enter } + } + { + name: move_left + modifier: control + keycode: char_b + mode: emacs + event: { + until: [ + { send: menuleft } + { send: left } + ] + } + } + { + name: move_right_or_take_history_hint + modifier: control + keycode: char_f + mode: emacs + event: { + until: [ + { send: historyhintcomplete } + { send: menuright } + { send: right } + ] + } + } + { + name: redo_change + modifier: control + keycode: char_g + mode: emacs + event: { edit: redo } + } + { + name: undo_change + modifier: control + keycode: char_z + mode: emacs + event: { edit: undo } + } + { + name: paste_before + modifier: control + keycode: char_y + mode: emacs + event: { edit: pastecutbufferbefore } + } + { + name: cut_word_left + modifier: control + keycode: char_w + mode: emacs + event: { edit: cutwordleft } + } + { + name: cut_line_to_end + modifier: control + keycode: char_k + mode: emacs + event: { edit: cuttoend } + } + { + name: cut_line_from_start + modifier: control + keycode: char_u + mode: emacs + event: { edit: cutfromstart } + } + { + name: swap_graphemes + modifier: control + keycode: char_t + mode: emacs + event: { edit: swapgraphemes } + } + { + name: move_one_word_left + modifier: alt + keycode: left + mode: emacs + event: { edit: movewordleft } + } + { + name: move_one_word_right_or_take_history_hint + modifier: alt + keycode: right + mode: emacs + event: { + until: [ + { send: historyhintwordcomplete } + { edit: movewordright } + ] + } + } + { + name: move_one_word_left + modifier: alt + keycode: char_b + mode: emacs + event: { edit: movewordleft } + } + { + name: move_one_word_right_or_take_history_hint + modifier: alt + keycode: char_f + mode: emacs + event: { + until: [ + { send: historyhintwordcomplete } + { edit: movewordright } + ] + } + } + { + name: delete_one_word_forward + modifier: alt + keycode: delete + mode: emacs + event: { edit: deleteword } + } + { + name: delete_one_word_backward + modifier: alt + keycode: backspace + mode: emacs + event: { edit: backspaceword } + } + { + name: delete_one_word_backward + modifier: alt + keycode: char_m + mode: emacs + event: { edit: backspaceword } + } + { + name: cut_word_to_right + modifier: alt + keycode: char_d + mode: emacs + event: { edit: cutwordright } + } + { + name: upper_case_word + modifier: alt + keycode: char_u + mode: emacs + event: { edit: uppercaseword } + } + { + name: lower_case_word + modifier: alt + keycode: char_l + mode: emacs + event: { edit: lowercaseword } + } + { + name: capitalize_char + modifier: alt + keycode: char_c + mode: emacs + event: { edit: capitalizechar } + } + # The following bindings with `*system` events require that Nushell has + # been compiled with the `system-clipboard` feature. + # This should be the case for Windows, macOS, and most Linux distributions + # Not available for example on Android (termux) + # If you want to use the system clipboard for visual selection or to + # paste directly, uncomment the respective lines and replace the version + # using the internal clipboard. + { + name: copy_selection + modifier: control_shift + keycode: char_c + mode: emacs + event: { edit: copyselection } + # event: { edit: copyselectionsystem } + } + { + name: cut_selection + modifier: control_shift + keycode: char_x + mode: emacs + event: { edit: cutselection } + # event: { edit: cutselectionsystem } + } + # { + # name: paste_system + # modifier: control_shift + # keycode: char_v + # mode: emacs + # event: { edit: pastesystem } + # } + { + name: select_all + modifier: control_shift + keycode: char_a + mode: emacs + event: { edit: selectall } + } + ] +} \ No newline at end of file diff --git a/.config/nushell/env.nu b/.config/nushell/env.nu new file mode 100644 index 0000000..edf0830 --- /dev/null +++ b/.config/nushell/env.nu @@ -0,0 +1,100 @@ +# Nushell Environment Config File +# +# version = "0.94.2" + +def create_left_prompt [] { + let dir = match (do --ignore-shell-errors { $env.PWD | path relative-to $nu.home-path }) { + null => $env.PWD + '' => '~' + $relative_pwd => ([~ $relative_pwd] | path join) + } + + let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold }) + let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold }) + let path_segment = $"($path_color)($dir)" + + $path_segment | str replace --all (char path_sep) $"($separator_color)(char path_sep)($path_color)" +} + +def create_right_prompt [] { + # create a right prompt in magenta with green separators and am/pm underlined + let time_segment = ([ + (ansi reset) + (ansi magenta) + (date now | format date '%x %X') # try to respect user's locale + ] | str join | str replace --regex --all "([/:])" $"(ansi green)${1}(ansi magenta)" | + str replace --regex --all "([AP]M)" $"(ansi magenta_underline)${1}") + + let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([ + (ansi rb) + ($env.LAST_EXIT_CODE) + ] | str join) + } else { "" } + + ([$last_exit_code, (char space), $time_segment] | str join) +} + +# Use nushell functions to define your right and left prompt +$env.PROMPT_COMMAND = {|| create_left_prompt } +# FIXME: This default is not implemented in rust code as of 2023-09-08. +$env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt } + +# The prompt indicators are environmental variables that represent +# the state of the prompt +$env.PROMPT_INDICATOR = {|| "> " } +$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " } +$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " } +$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " } + +# If you want previously entered commands to have a different prompt from the usual one, +# you can uncomment one or more of the following lines. +# This can be useful if you have a 2-line prompt and it's taking up a lot of space +# because every command entered takes up 2 lines instead of 1. You can then uncomment +# the line below so that previously entered commands show with a single `🚀`. +# $env.TRANSIENT_PROMPT_COMMAND = {|| "🚀 " } +# $env.TRANSIENT_PROMPT_INDICATOR = {|| "" } +# $env.TRANSIENT_PROMPT_INDICATOR_VI_INSERT = {|| "" } +# $env.TRANSIENT_PROMPT_INDICATOR_VI_NORMAL = {|| "" } +# $env.TRANSIENT_PROMPT_MULTILINE_INDICATOR = {|| "" } +# $env.TRANSIENT_PROMPT_COMMAND_RIGHT = {|| "" } + +# Specifies how environment variables are: +# - converted from a string to a value on Nushell startup (from_string) +# - converted from a value back to a string when running external commands (to_string) +# Note: The conversions happen *after* config.nu is loaded +$env.ENV_CONVERSIONS = { + "PATH": { + from_string: { |s| $s | split row (char esep) | path expand --no-symlink } + to_string: { |v| $v | path expand --no-symlink | str join (char esep) } + } + "Path": { + from_string: { |s| $s | split row (char esep) | path expand --no-symlink } + to_string: { |v| $v | path expand --no-symlink | str join (char esep) } + } +} + +# Directories to search for scripts when calling source or use +# The default for this is $nu.default-config-dir/scripts +$env.NU_LIB_DIRS = [ + ($nu.default-config-dir | path join 'scripts') # add /scripts +] + +# Directories to search for plugin binaries when calling register +# The default for this is $nu.default-config-dir/plugins +$env.NU_PLUGIN_DIRS = [ + ($nu.default-config-dir | path join 'plugins') # add /plugins +] + +# To add entries to PATH (on Windows you might use Path), you can use the following pattern: +# $env.PATH = ($env.PATH | split row (char esep) | prepend '/some/path') +# An alternate way to add entries to $env.PATH is to use the custom command `path add` +# which is built into the nushell stdlib: +# use std "path add" +# $env.PATH = ($env.PATH | split row (char esep)) +# path add /some/path +# path add ($env.CARGO_HOME | path join "bin") +# path add ($env.HOME | path join ".local" "bin") +# $env.PATH = ($env.PATH | uniq) + +# To load from a custom file you can use: +# source ($nu.default-config-dir | path join 'custom.nu') \ No newline at end of file diff --git a/.config/nushell/history.txt b/.config/nushell/history.txt new file mode 100644 index 0000000..3cca868 --- /dev/null +++ b/.config/nushell/history.txt @@ -0,0 +1,13 @@ +ls +eza +eza -l +ls +exit +which ls +man nu +nu --help +exit +cat compile_commands.json +cat compile_commands.json | from json +clear +exit diff --git a/.config/nvim/after/plugin/colors.lua b/.config/nvim/after/plugin/colors.lua new file mode 100644 index 0000000..c4e5ba0 --- /dev/null +++ b/.config/nvim/after/plugin/colors.lua @@ -0,0 +1,14 @@ +function colors(color) + color = color or 'gruvbox' + -- Available values: `'hard'`, `'medium'`, `'soft'` + vim.g.gruvbox_material_background = 'medium' + -- Available values: `'material'`, `'mix'`, `'original'` + vim.g.gruvbox_material_foreground = 'mix' + -- Available values: `'hard'`, `'medium'`, `'soft'` + vim.g.everforest_background = 'hard' + vim.g.gruvbox_material_better_performance = 1 + vim.g.everforest_better_performance = 1 + vim.cmd.colorscheme(color) +end + +colors() diff --git a/.config/nvim/after/plugin/lsp.lua b/.config/nvim/after/plugin/lsp.lua new file mode 100644 index 0000000..40bff54 --- /dev/null +++ b/.config/nvim/after/plugin/lsp.lua @@ -0,0 +1,81 @@ +local lsp = require('lsp-zero') +local lsp_config = require("lspconfig") +local mason = require("mason") + +lsp.preset('recommended') + +--lsp.ensure_installed({ +--'lua_ls', +--}) + +--Enable (broadcasting) snippet capability for completion +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities.textDocument.completion.completionItem.snippetSupport = true + +lsp_config.html.setup { + capabilities = capabilities, + filetypes = { "html", "etlua" }, +} + +local cmp = require("cmp") +local cmp_select = {behavior = cmp.SelectBehavior.Select} +local cmp_mappings = lsp.defaults.cmp_mappings({ + [''] = cmp.mapping.select_prev_item(cmp_select), + [''] = cmp.mapping.select_next_item(cmp_select), + [''] = cmp.mapping.confirm({select = true}), + [''] = cmp.mapping.complete(), +}) + +cmp.setup { + sources = { + -- { name = 'conjure' }, + { name = 'nvim_lsp_signature_help' }, + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + } +} + +lsp.set_preferences({ + sign_icons = { } +}) + +-- lsp.setup_nvim_cmp({ +-- mapping = cmp_mappings +-- }) + +lsp.on_attach(function(client, bufnr) + local opts = {buffer = bufnr, remap = false} + + if client.name == "eslint" then + vim.cmd.LspStop('eslint') + return + end + if client.name == "html" or client.name == "cssls" then + capabilities = capabilities + end + + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + vim.keymap.set("n", "vws", vim.lsp.buf.workspace_symbol, opts) + vim.keymap.set("n", "vd", vim.diagnostic.open_float, opts) + vim.keymap.set("n", "[d", vim.diagnostic.goto_next, opts) + vim.keymap.set("n", "]d", vim.diagnostic.goto_prev, opts) + vim.keymap.set("n", "vca", vim.lsp.buf.code_action, opts) + vim.keymap.set("n", "vrr", vim.lsp.buf.references, opts) + vim.keymap.set("n", "vrn", vim.lsp.buf.rename, opts) + vim.keymap.set("i", "", vim.lsp.buf.signature_help, opts) +end) + +lsp_config.lua_ls.setup { + -- ... other configs + settings = { + Lua = { + diagnostics = { + globals = { 'vim' } + } + } + } +} +lsp_config.racket_langserver.setup{} +lsp.setup() +mason.setup() diff --git a/.config/nvim/after/plugin/telescope.lua b/.config/nvim/after/plugin/telescope.lua new file mode 100644 index 0000000..99cfc0e --- /dev/null +++ b/.config/nvim/after/plugin/telescope.lua @@ -0,0 +1,15 @@ +local builtin = require('telescope.builtin') +local telescope = require('telescope') +telescope.load_extension("workspaces") +telescope.load_extension("recent_files") +telescope.load_extension("telescope-tabs") +vim.keymap.set('n', 'ff', builtin.find_files, {}) +vim.keymap.set('n', 'fF', builtin.git_files, {}) +vim.keymap.set('n', 'fg', builtin.live_grep, {}) +vim.keymap.set('n', 'bb', builtin.buffers, {}) +vim.keymap.set('n', 'hh', builtin.help_tags, {}) +vim.keymap.set('n', 'cc', builtin.colorscheme, {}) +vim.keymap.set('n', 'wo', ":Telescope workspaces", {}) +vim.api.nvim_set_keymap("n", "fr", + [[lua require('telescope').extensions.recent_files.pick()]], + {noremap = true, silent = true}) diff --git a/.config/nvim/after/plugin/treesitter.lua b/.config/nvim/after/plugin/treesitter.lua new file mode 100644 index 0000000..a0b7388 --- /dev/null +++ b/.config/nvim/after/plugin/treesitter.lua @@ -0,0 +1,22 @@ +require'nvim-treesitter.configs'.setup { + -- A list of parser names, or "all" + ensure_installed = { "java", "c", "lua" }, + + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = false, + + -- Automatically install missing parsers when entering buffer + -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally + auto_install = true, + + highlight = { + -- `false` will disable the whole extension + enable = true, + + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + }, +} diff --git a/.config/nvim/after/plugin/undotree.lua b/.config/nvim/after/plugin/undotree.lua new file mode 100644 index 0000000..97bb7ab --- /dev/null +++ b/.config/nvim/after/plugin/undotree.lua @@ -0,0 +1,2 @@ +vim.keymap.set("n", "u", vim.cmd.UndotreeToggle) + diff --git a/.config/nvim/db_ui/connections.json b/.config/nvim/db_ui/connections.json new file mode 100644 index 0000000..7780eff --- /dev/null +++ b/.config/nvim/db_ui/connections.json @@ -0,0 +1 @@ +[{"url": "sqlserver://chalupmc:MikeC00l@golem.csse.rose-hulman.edu/SodaBasechalupmc", "name": "SodaBasechalupmc"}, {"url": "sqlserver://chalupmc:MikeC00l@golem.csse.rose-hulman.edu/NWindchalupmc", "name": "NWindchalupmc"}] diff --git a/.config/nvim/ftplugin/java.lua b/.config/nvim/ftplugin/java.lua new file mode 100644 index 0000000..4684615 --- /dev/null +++ b/.config/nvim/ftplugin/java.lua @@ -0,0 +1,97 @@ +-- See `:help vim.lsp.start_client` for an overview of the supported `config` options. + +--local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t') +--local workspace_dir = '/path/to/workspace-root/' .. project_name +local workspace_dir = vim.fn.getcwd() +local config = { + -- The command that starts the language server + -- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line + cmd = { + + -- 💀 + '/usr/lib/jvm/java-19-openjdk/bin/java', -- or '/path/to/java17_or_newer/bin/java' + -- depends on if `java` is in your $PATH env variable and if it points to the right version. + + '-Declipse.application=org.eclipse.jdt.ls.core.id1', + '-Dosgi.bundles.defaultStartLevel=4', + '-Declipse.product=org.eclipse.jdt.ls.core.product', + '-Dlog.protocol=true', + '-Dlog.level=ALL', + '-Xms1g', + '--add-modules=ALL-SYSTEM', + '--add-opens', 'java.base/java.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.lang=ALL-UNNAMED', + + -- 💀 + '-jar', '/usr/share/java/jdtls/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar', + -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ + -- Must point to the Change this to + -- eclipse.jdt.ls installation the actual version + + + -- 💀 + '-configuration', '/usr/share/java/jdtls/config_linux', + -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ + -- Must point to the Change to one of `linux`, `win` or `mac` + -- eclipse.jdt.ls installation Depending on your system. + + + -- 💀 + -- See `data directory configuration` section in the README + '-data', "/home/mikec/Documents/workspace" + }, + + -- 💀 + -- This is the default if not provided, you can remove it. Or adjust as needed. + -- One dedicated LSP server & client will be started per unique root_dir + root_dir = require('jdtls.setup').find_root({'.git', 'mvnw', 'gradlew'}), + + -- Here you can configure eclipse.jdt.ls specific settings + -- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request + -- for a list of options + settings = { + java = { + } + }, + + -- Language server `initializationOptions` + -- You need to extend the `bundles` with paths to jar files + -- if you want to use additional eclipse.jdt.ls plugins. + -- + -- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation + -- + -- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this + --init_options = { + -- bundles = { + -- vim.fn.glob("/home/mikec/.local/share/nvim/mason/packages/java-debug-adapter/extension/server/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar", 1) + -- } + --}, +} + +-- This bundles definition is the same as in the previous section (java-debug installation) +local bundles = { + vim.fn.glob("/home/mikec/.local/share/nvim/mason/packages/java-debug-adapter/extension/server/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar", 1) +}; + +-- This is the new part +vim.list_extend(bundles, vim.split(vim.fn.glob("/path/to/microsoft/vscode-java-test/server/*.jar", 1), "\n")) +config['init_options'] = { + bundles = bundles; +} + +-- This starts a new client & server, +-- or attaches to an existing client & server depending on the `root_dir`. + +vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) +vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) +vim.keymap.set("n", "vws", vim.lsp.buf.workspace_symbol, opts) +vim.keymap.set("n", "vd", vim.diagnostic.open_float, opts) +vim.keymap.set("n", "[d", vim.diagnostic.goto_next, opts) +vim.keymap.set("n", "]d", vim.diagnostic.goto_prev, opts) +vim.keymap.set("n", "vca", vim.lsp.buf.code_action, opts) +vim.keymap.set("n", "vrr", vim.lsp.buf.references, opts) +vim.keymap.set("n", "vrn", vim.lsp.buf.rename, opts) +vim.keymap.set("i", "", vim.lsp.buf.signature_help, opts) +vim.keymap.set("n", "i", function() require('jdtls').organize_imports() end, opts) + +require('jdtls').start_or_attach(config) diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..dbc863e --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1 @@ +require("config") diff --git a/.config/nvim/lua/config/dadbod.lua b/.config/nvim/lua/config/dadbod.lua new file mode 100644 index 0000000..90c13fb --- /dev/null +++ b/.config/nvim/lua/config/dadbod.lua @@ -0,0 +1,29 @@ +local M = {} + +local function db_completion() + require("cmp").setup.buffer { sources = { { name = "vim-dadbod-completion" } } } +end + +function M.setup() + vim.g.db_ui_save_location = vim.fn.stdpath "config" .. require("plenary.path").path.sep .. "db_ui" + + vim.api.nvim_create_autocmd("FileType", { + pattern = { + "sql", + }, + command = [[setlocal omnifunc=vim_dadbod_completion#omni]], + }) + + vim.api.nvim_create_autocmd("FileType", { + pattern = { + "sql", + "mysql", + "plsql", + }, + callback = function() + vim.schedule(db_completion) + end, + }) +end + +return M diff --git a/.config/nvim/lua/config/init.lua b/.config/nvim/lua/config/init.lua new file mode 100644 index 0000000..208c9de --- /dev/null +++ b/.config/nvim/lua/config/init.lua @@ -0,0 +1,3 @@ +require("config.remap") +require("config.packer") +require("config.set") diff --git a/.config/nvim/lua/config/packer.lua b/.config/nvim/lua/config/packer.lua new file mode 100644 index 0000000..c007169 --- /dev/null +++ b/.config/nvim/lua/config/packer.lua @@ -0,0 +1,328 @@ +-- This file can be loaded by calling `lua require('plugins')` from your init.vim + +-- Only required if you have packer configured as `opt` +vim.cmd [[packadd packer.nvim]] + +return require('packer').startup(function(use) + -- Packer can manage itself + use 'wbthomason/packer.nvim' + + use { + 'nvim-telescope/telescope.nvim', + branch = '0.1.x', + requires = { { 'nvim-lua/plenary.nvim' } } + } + + use { + 'LukasPietzschmann/telescope-tabs', + requires = { 'nvim-telescope/telescope.nvim' }, + config = function() + require'telescope-tabs'.setup{ + -- Your custom config :^) + } + end + } + + use({ + 'rose-pine/neovim', + as = 'rose-pine', + -- config = function() + -- vim.cmd('colorscheme rose-pine') + -- end + }) + + use 'tanvirtin/monokai.nvim' + + use 'arzg/vim-colors-xcode' + + use 'shaunsingh/nord.nvim' + + use 'kvrohit/mellow.nvim' + + use 'Mofiqul/vscode.nvim' + + use 'Th3Whit3Wolf/one-nvim' + + use 'mhartington/oceanic-next' + + use 'folke/tokyonight.nvim' + + use 'sainnhe/gruvbox-material' + + use { "ellisonleao/gruvbox.nvim" } + + use 'sainnhe/everforest' + + use 'lourenci/github-colors' + + use 'navarasu/onedark.nvim' + + use 'shaunsingh/moonlight.nvim' + + use 'Mofiqul/dracula.nvim' + + use 'kdheepak/monochrome.nvim' + + use "savq/melange-nvim" + + use { "catppuccin/nvim", as = "catppuccin" } + + -- use 'RRethy/nvim-base16' + + use ({ 'projekt0n/github-nvim-theme' }) + + use { 'Everblush/nvim', as = 'everblush' } + + use "lewpoly/sherbet.nvim" + + use { + 'nvim-treesitter/nvim-treesitter', + run = ':TSUpdate', + } + + use { + 'numToStr/Comment.nvim', + config = function() + require('Comment').setup() + end + } + + use 'nvim-treesitter/playground' + + -- use 'mbbill/undotree' + + use { + 'VonHeikemen/lsp-zero.nvim', + requires = { + -- LSP Support + { 'neovim/nvim-lspconfig' }, + { 'williamboman/mason.nvim' }, + { 'williamboman/mason-lspconfig.nvim' }, + + -- Autocompletion + { 'hrsh7th/nvim-cmp' }, + { 'hrsh7th/cmp-buffer' }, + { 'hrsh7th/cmp-path' }, + { 'hrsh7th/cmp-nvim-lsp-signature-help' }, + { 'saadparwaiz1/cmp_luasnip' }, + { 'hrsh7th/cmp-nvim-lsp' }, + { 'hrsh7th/cmp-nvim-lua' }, + + -- Snippets + { 'L3MON4D3/LuaSnip' }, + { 'rafamadriz/friendly-snippets' }, + } + } + + use { + 'L3MON4D3/LuaSnip', + --after = 'nvim-cmp', + requires = { "rafamadriz/friendly-snippets" }, + config = function() + --require('config.snippets') + require("luasnip.loaders.from_vscode").lazy_load() + end, + run = "make install_jsregexp" + } + + use 'rafamadriz/friendly-snippets' + + use { + "folke/twilight.nvim", + config = function() + require("twilight").setup { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } + end + } + + use 'winston0410/cmd-parser.nvim' + use { + 'winston0410/range-highlight.nvim', + config = function() require("range-highlight").setup {} end + } + + use 'RRethy/vim-illuminate' + + use 'mfussenegger/nvim-jdtls' + + use { + "samjwill/nvim-unception", + setup = function() + -- Optional settings go here! + end + } + + use { + "0oAstro/dim.lua", + requires = { "nvim-treesitter/nvim-treesitter", "neovim/nvim-lspconfig" }, + config = function() + require('dim').setup({}) + end + } + use 'mfussenegger/nvim-dap' + + use { "rcarriga/nvim-dap-ui", requires = { "mfussenegger/nvim-dap" } } + + use { 'stevearc/dressing.nvim' } + + use { + 'krady21/compiler-explorer.nvim', + config = function() + require("compiler-explorer").setup({ + autocmd = { + enable = true, + hl = "Cursorline" + } + }) + end + } + + -- use 'ggandor/lightspeed.nvim' + + use { + 'ggandor/leap.nvim', + config = function() + require('leap').add_default_mappings() + end + } + use 'ollykel/v-vim' + + use { + 'windwp/nvim-ts-autotag', + config = function() + require('nvim-ts-autotag').setup() + end + } + + use 'jbyuki/nabla.nvim' + + use { + 'ray-x/web-tools.nvim', + config = function() + require('web-tools').setup() + end + } + + use { + 'natecraddock/workspaces.nvim', + config = function() + require('workspaces').setup() + end + } + + use {"smartpde/telescope-recent-files"} + + use 'uga-rosa/ccc.nvim' + + use 'tveskag/nvim-blame-line' + + use { + 'lewis6991/gitsigns.nvim', + config = function() + require('gitsigns').setup() + end + } + + -- use 'Olical/conjure' + -- use 'PaterJason/cmp-conjure' + + use { + 'lukas-reineke/indent-blankline.nvim', + config = function() + require 'ibl'.setup{ scope = { enabled = false } } + end, + } + + use 'jaawerth/fennel.vim' + + use 'stefanos82/nelua.vim' + + use 'leafo/moonscript-vim' + + use 'teal-language/vim-teal' + + use 'https://github.com/VaiN474/vim-etlua' + + use 'folke/neodev.nvim' + + use { + "kylechui/nvim-surround", + tag = "*", -- Use for stability; omit to use `main` branch for the latest features + config = function() + require("nvim-surround").setup({ + -- Configuration here, or leave empty to use defaults + }) + end + } + + use { + "utilyre/barbecue.nvim", + tag = "*", + requires = { + "SmiteshP/nvim-navic", + "nvim-tree/nvim-web-devicons", -- optional dependency + }, + after = "nvim-web-devicons", -- keep this if you're using NvChad + config = function() + require("barbecue").setup() + end, + } + + use { + 'nvim-lualine/lualine.nvim', + requires = { 'nvim-tree/nvim-web-devicons', opt = true }, + config = function() + local function lspactive() + local names = {} + for i, server in pairs(vim.lsp.get_active_clients({ bufnr = 0 })) do + table.insert(names, server.name) + end + return " [" .. table.concat(names, " ") .. "]" + end + require('lualine').setup { + options = { + globalstatus = true, + icons_enabled = false, + section_separators = { left = '', right = '' }, + component_separators = { left = '', right = '' } + }, + sections = { + lualine_a = { { 'mode', separator = { left = '', right = '' } }, }, + lualine_b = {}, + lualine_c = {'filename'}, + lualine_x = {lspactive, { 'diagnostics', icons_enabled = true }, 'branch', 'diff'}, + lualine_y = {'encoding', 'fileformat', 'filetype'}, + lualine_z = {'location', { 'progress', separator = { left = '', right = '' } }, }, + }, + } + end, + } + + use { + 'goolord/alpha-nvim', + requires = { 'nvim-tree/nvim-web-devicons' }, + config = function () + require'alpha'.setup(require'alpha.themes.startify'.config) + end + } + + use 'aklt/plantuml-syntax' + + use { + "tpope/vim-dadbod", + opt = true, + requires = { + "kristijanhusak/vim-dadbod-ui", + "kristijanhusak/vim-dadbod-completion", + }, + config = function() + require("config.dadbod").setup() + end, + cmd = { "DBUIToggle", "DBUI", "DBUIAddConnection", "DBUIFindBuffer", "DBUIRenameBuffer", "DBUILastQueryInfo" }, + } + + use 'eandrju/cellular-automaton.nvim' +end) diff --git a/.config/nvim/lua/config/remap.lua b/.config/nvim/lua/config/remap.lua new file mode 100644 index 0000000..c77dc98 --- /dev/null +++ b/.config/nvim/lua/config/remap.lua @@ -0,0 +1,56 @@ +require('Comment').setup() +vim.g.mapleader = " " +vim.g.maplocalleader = "," + +vim.keymap.set("n", "op", vim.cmd.Ex) + +vim.keymap.set("n", "lp", ":lua require(\"nabla\").popup()") +vim.keymap.set("n", "ll", ":lua require(\"nabla\").toggle_virt()") + +-- vim.keymap.set("n", "", vim.cmd.nohlsearch) +vim.keymap.set("n", "x", vim.cmd.bdelete) +vim.keymap.set("n", "bd", ":bdelete!") +vim.keymap.set("n", "w", function() + vim.cmd.write(); + vim.cmd.bdelete(); +end) + +vim.keymap.set("v", "J", ":m '>+1gv=gv") +vim.keymap.set("v", "K", ":m '<-2gv=gv") + +vim.keymap.set("n", "J", "mzJ'z") +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "n", "nzzzv") +vim.keymap.set("n", "N", "Nzzzv") + +vim.keymap.set("n", "y", "\"+y") +vim.keymap.set("v", "y", "\"+y") +vim.keymap.set("n", "Y", "\"+Y") +vim.keymap.set("n", "p", "\"+p") +vim.keymap.set("v", "p", "\"+p") +vim.keymap.set("n", "P", "\"+P") + +vim.keymap.set("n", "f", function() + vim.lsp.buf.format() +end) + +vim.keymap.set("n", "tw", function() + vim.cmd.Twilight() +end) + + +vim.keymap.set("t", "", "") + +vim.keymap.set("n", "ec", ":e ~/.config/nvim") + +vim.keymap.set("n", "bn", ":bnext") +vim.keymap.set("n", "bp", ":bprevious") + +vim.keymap.set("n", "tn", ":tabnext") +vim.keymap.set("n", "tp", ":tabprevious") +vim.keymap.set("n", "to", ":tabnew") +vim.keymap.set("n", "td", ":tabclose") +vim.keymap.set("n", "tt", function() + require('telescope-tabs').list_tabs() +end) diff --git a/.config/nvim/lua/config/set.lua b/.config/nvim/lua/config/set.lua new file mode 100644 index 0000000..c24aa82 --- /dev/null +++ b/.config/nvim/lua/config/set.lua @@ -0,0 +1,53 @@ +vim.opt.nu = true +vim.opt.relativenumber = true + +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.expandtab = true + +vim.opt.showmode = false + +vim.opt.smartindent = true + +vim.opt.wrap = false + + +vim.opt.swapfile = false +vim.opt.backup = false +vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir" +vim.opt.undofile = true + +vim.opt.hlsearch = true +vim.opt.incsearch = true + +vim.opt.termguicolors = true + +vim.opt.scrolloff = 8 +vim.opt.signcolumn = "yes" +vim.opt.isfname:append("@-@") + +vim.opt.updatetime = 50 + +vim.opt.colorcolumn = "80" + +vim.opt.splitright = true +vim.opt.splitbelow = true + +vim.g.mapleader = " " + +vim.g.neovide_scale_factor = 1.0 +function ChangeScaleFactor(delta) + vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta +end + +vim.keymap.set("n", "", function() + ChangeScaleFactor(1.25) +end) +vim.keymap.set("n", "", function() + ChangeScaleFactor(1 / 1.25) +end) + +vim.opt.guifont = { "Cascadia Code", ":h12" } + +vim.g.netrw_keepdir = 0 diff --git a/.config/nvim/plugin/packer_compiled.lua b/.config/nvim/plugin/packer_compiled.lua new file mode 100644 index 0000000..1d4433a --- /dev/null +++ b/.config/nvim/plugin/packer_compiled.lua @@ -0,0 +1,660 @@ +-- 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/mikec/.cache/nvim/packer_hererocks/2.1.1707061634/share/lua/5.1/?.lua;/home/mikec/.cache/nvim/packer_hererocks/2.1.1707061634/share/lua/5.1/?/init.lua;/home/mikec/.cache/nvim/packer_hererocks/2.1.1707061634/lib/luarocks/rocks-5.1/?.lua;/home/mikec/.cache/nvim/packer_hererocks/2.1.1707061634/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/mikec/.cache/nvim/packer_hererocks/2.1.1707061634/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 = { + ["Comment.nvim"] = { + config = { "\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/Comment.nvim", + url = "https://github.com/numToStr/Comment.nvim" + }, + LuaSnip = { + config = { "\27LJ\2\nM\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\14lazy_load luasnip.loaders.from_vscode\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/LuaSnip", + url = "https://github.com/L3MON4D3/LuaSnip" + }, + ["alpha-nvim"] = { + config = { "\27LJ\2\n`\0\0\5\0\5\0\n6\0\0\0'\2\1\0B\0\2\0029\0\2\0006\2\0\0'\4\3\0B\2\2\0029\2\4\2B\0\2\1K\0\1\0\vconfig\26alpha.themes.startify\nsetup\nalpha\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/alpha-nvim", + url = "https://github.com/goolord/alpha-nvim" + }, + ["barbecue.nvim"] = { + config = { "\27LJ\2\n6\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rbarbecue\frequire\0" }, + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/barbecue.nvim", + url = "https://github.com/utilyre/barbecue.nvim" + }, + catppuccin = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/catppuccin", + url = "https://github.com/catppuccin/nvim" + }, + ["ccc.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/ccc.nvim", + url = "https://github.com/uga-rosa/ccc.nvim" + }, + ["cellular-automaton.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cellular-automaton.nvim", + url = "https://github.com/eandrju/cellular-automaton.nvim" + }, + ["cmd-parser.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmd-parser.nvim", + url = "https://github.com/winston0410/cmd-parser.nvim" + }, + ["cmp-buffer"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-buffer", + url = "https://github.com/hrsh7th/cmp-buffer" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", + url = "https://github.com/hrsh7th/cmp-nvim-lsp" + }, + ["cmp-nvim-lsp-signature-help"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help", + url = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help" + }, + ["cmp-nvim-lua"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua", + url = "https://github.com/hrsh7th/cmp-nvim-lua" + }, + ["cmp-path"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-path", + url = "https://github.com/hrsh7th/cmp-path" + }, + cmp_luasnip = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp_luasnip", + url = "https://github.com/saadparwaiz1/cmp_luasnip" + }, + ["compiler-explorer.nvim"] = { + config = { "\27LJ\2\nx\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\fautocmd\1\0\1\fautocmd\0\1\0\2\venable\2\ahl\15Cursorline\nsetup\22compiler-explorer\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/compiler-explorer.nvim", + url = "https://github.com/krady21/compiler-explorer.nvim" + }, + ["dim.lua"] = { + config = { "\27LJ\2\n5\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\bdim\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/dim.lua", + url = "https://github.com/0oAstro/dim.lua" + }, + ["dracula.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/dracula.nvim", + url = "https://github.com/Mofiqul/dracula.nvim" + }, + ["dressing.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/dressing.nvim", + url = "https://github.com/stevearc/dressing.nvim" + }, + everblush = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/everblush", + url = "https://github.com/Everblush/nvim" + }, + everforest = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/everforest", + url = "https://github.com/sainnhe/everforest" + }, + ["fennel.vim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/fennel.vim", + url = "https://github.com/jaawerth/fennel.vim" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/friendly-snippets", + url = "https://github.com/rafamadriz/friendly-snippets" + }, + ["github-colors"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/github-colors", + url = "https://github.com/lourenci/github-colors" + }, + ["github-nvim-theme"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/github-nvim-theme", + url = "https://github.com/projekt0n/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { "\27LJ\2\n6\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rgitsigns\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/gitsigns.nvim", + url = "https://github.com/lewis6991/gitsigns.nvim" + }, + ["gruvbox-material"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/gruvbox-material", + url = "https://github.com/sainnhe/gruvbox-material" + }, + ["gruvbox.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/gruvbox.nvim", + url = "https://github.com/ellisonleao/gruvbox.nvim" + }, + ["indent-blankline.nvim"] = { + config = { "\27LJ\2\nY\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\nscope\1\0\1\nscope\0\1\0\1\fenabled\1\nsetup\bibl\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim", + url = "https://github.com/lukas-reineke/indent-blankline.nvim" + }, + ["leap.nvim"] = { + config = { "\27LJ\2\nA\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\25add_default_mappings\tleap\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/leap.nvim", + url = "https://github.com/ggandor/leap.nvim" + }, + ["lsp-zero.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/lsp-zero.nvim", + url = "https://github.com/VonHeikemen/lsp-zero.nvim" + }, + ["lualine.nvim"] = { + config = { "\27LJ\2\n\1\0\0\n\0\f\0\0254\0\0\0006\1\0\0006\3\1\0009\3\2\0039\3\3\0035\5\4\0B\3\2\0A\1\0\4H\4\56\6\5\0009\6\6\6\18\b\0\0009\t\a\5B\6\3\1F\4\3\3R\4\127'\1\b\0006\2\5\0009\2\t\2\18\4\0\0'\5\n\0B\2\3\2'\3\v\0&\1\3\1L\1\2\0\6]\6 \vconcat\n [\tname\vinsert\ntable\1\0\1\nbufnr\3\0\23get_active_clients\blsp\bvim\npairs\5\1\0\b\0\29\0'3\0\0\0006\1\1\0'\3\2\0B\1\2\0029\1\3\0015\3\t\0005\4\4\0005\5\5\0=\5\6\0045\5\a\0=\5\b\4=\4\n\0035\4\14\0004\5\3\0005\6\v\0005\a\f\0=\a\r\6>\6\1\5=\5\15\0044\5\0\0=\5\16\0045\5\17\0=\5\18\0045\5\20\0>\0\1\0055\6\19\0>\6\2\5=\5\21\0045\5\22\0=\5\23\0045\5\24\0005\6\25\0005\a\26\0=\a\r\6>\6\2\5=\5\27\4=\4\28\3B\1\2\1K\0\1\0\rsections\14lualine_z\1\0\2\nright\b\tleft\b\1\2\1\0\rprogress\14separator\0\1\2\0\0\rlocation\14lualine_y\1\4\0\0\rencoding\15fileformat\rfiletype\14lualine_x\1\5\0\0\0\0\vbranch\tdiff\1\2\1\0\16diagnostics\18icons_enabled\2\14lualine_c\1\2\0\0\rfilename\14lualine_b\14lualine_a\1\0\6\14lualine_a\0\14lualine_y\0\14lualine_z\0\14lualine_x\0\14lualine_c\0\14lualine_b\0\14separator\1\0\2\nright\b\tleft\b\1\2\1\0\tmode\14separator\0\foptions\1\0\2\foptions\0\rsections\0\25component_separators\1\0\2\nright\5\tleft\5\23section_separators\1\0\2\nright\b\tleft\b\1\0\4\25component_separators\0\23section_separators\0\18icons_enabled\1\17globalstatus\2\nsetup\flualine\frequire\0\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/lualine.nvim", + url = "https://github.com/nvim-lualine/lualine.nvim" + }, + ["mason-lspconfig.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim", + url = "https://github.com/williamboman/mason-lspconfig.nvim" + }, + ["mason.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/mason.nvim", + url = "https://github.com/williamboman/mason.nvim" + }, + ["melange-nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/melange-nvim", + url = "https://github.com/savq/melange-nvim" + }, + ["mellow.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/mellow.nvim", + url = "https://github.com/kvrohit/mellow.nvim" + }, + ["monochrome.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/monochrome.nvim", + url = "https://github.com/kdheepak/monochrome.nvim" + }, + ["monokai.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/monokai.nvim", + url = "https://github.com/tanvirtin/monokai.nvim" + }, + ["moonlight.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/moonlight.nvim", + url = "https://github.com/shaunsingh/moonlight.nvim" + }, + ["moonscript-vim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/moonscript-vim", + url = "https://github.com/leafo/moonscript-vim" + }, + ["nabla.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nabla.nvim", + url = "https://github.com/jbyuki/nabla.nvim" + }, + ["nelua.vim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nelua.vim", + url = "https://github.com/stefanos82/nelua.vim" + }, + ["neodev.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/neodev.nvim", + url = "https://github.com/folke/neodev.nvim" + }, + ["nord.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nord.nvim", + url = "https://github.com/shaunsingh/nord.nvim" + }, + ["nvim-blame-line"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-blame-line", + url = "https://github.com/tveskag/nvim-blame-line" + }, + ["nvim-cmp"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-cmp", + url = "https://github.com/hrsh7th/nvim-cmp" + }, + ["nvim-dap"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-dap", + url = "https://github.com/mfussenegger/nvim-dap" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-dap-ui", + url = "https://github.com/rcarriga/nvim-dap-ui" + }, + ["nvim-jdtls"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-jdtls", + url = "https://github.com/mfussenegger/nvim-jdtls" + }, + ["nvim-lspconfig"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", + url = "https://github.com/neovim/nvim-lspconfig" + }, + ["nvim-navic"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-navic", + url = "https://github.com/SmiteshP/nvim-navic" + }, + ["nvim-surround"] = { + 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\18nvim-surround\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-surround", + url = "https://github.com/kylechui/nvim-surround" + }, + ["nvim-treesitter"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-treesitter", + url = "https://github.com/nvim-treesitter/nvim-treesitter" + }, + ["nvim-ts-autotag"] = { + config = { "\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20nvim-ts-autotag\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag", + url = "https://github.com/windwp/nvim-ts-autotag" + }, + ["nvim-unception"] = { + loaded = true, + needs_bufread = false, + path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/nvim-unception", + url = "https://github.com/samjwill/nvim-unception" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-web-devicons", + url = "https://github.com/nvim-tree/nvim-web-devicons" + }, + ["oceanic-next"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/oceanic-next", + url = "https://github.com/mhartington/oceanic-next" + }, + ["one-nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/one-nvim", + url = "https://github.com/Th3Whit3Wolf/one-nvim" + }, + ["onedark.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/onedark.nvim", + url = "https://github.com/navarasu/onedark.nvim" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + }, + ["plantuml-syntax"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/plantuml-syntax", + url = "https://github.com/aklt/plantuml-syntax" + }, + playground = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/playground", + url = "https://github.com/nvim-treesitter/playground" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/plenary.nvim", + url = "https://github.com/nvim-lua/plenary.nvim" + }, + ["range-highlight.nvim"] = { + config = { "\27LJ\2\nA\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\20range-highlight\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/range-highlight.nvim", + url = "https://github.com/winston0410/range-highlight.nvim" + }, + ["rose-pine"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/rose-pine", + url = "https://github.com/rose-pine/neovim" + }, + ["sherbet.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/sherbet.nvim", + url = "https://github.com/lewpoly/sherbet.nvim" + }, + ["telescope-recent-files"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/telescope-recent-files", + url = "https://github.com/smartpde/telescope-recent-files" + }, + ["telescope-tabs"] = { + 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\19telescope-tabs\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/telescope-tabs", + url = "https://github.com/LukasPietzschmann/telescope-tabs" + }, + ["telescope.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/telescope.nvim", + url = "https://github.com/nvim-telescope/telescope.nvim" + }, + ["tokyonight.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/tokyonight.nvim", + url = "https://github.com/folke/tokyonight.nvim" + }, + ["twilight.nvim"] = { + 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\rtwilight\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/twilight.nvim", + url = "https://github.com/folke/twilight.nvim" + }, + ["v-vim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/v-vim", + url = "https://github.com/ollykel/v-vim" + }, + ["vim-colors-xcode"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vim-colors-xcode", + url = "https://github.com/arzg/vim-colors-xcode" + }, + ["vim-dadbod"] = { + after = { "vim-dadbod-ui", "vim-dadbod-completion" }, + commands = { "DBUIToggle", "DBUI", "DBUIAddConnection", "DBUIFindBuffer", "DBUIRenameBuffer", "DBUILastQueryInfo" }, + config = { "\27LJ\2\n;\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\18config.dadbod\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod", + url = "https://github.com/tpope/vim-dadbod" + }, + ["vim-dadbod-completion"] = { + after_files = { "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod-completion/after/plugin/vim_dadbod_completion.lua", "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod-completion/after/plugin/vim_dadbod_completion.vim" }, + load_after = { + ["vim-dadbod"] = true + }, + loaded = false, + needs_bufread = false, + path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod-completion", + url = "https://github.com/kristijanhusak/vim-dadbod-completion" + }, + ["vim-dadbod-ui"] = { + load_after = { + ["vim-dadbod"] = true + }, + loaded = false, + needs_bufread = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod-ui", + url = "https://github.com/kristijanhusak/vim-dadbod-ui" + }, + ["vim-etlua"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vim-etlua", + url = "https://github.com/VaiN474/vim-etlua" + }, + ["vim-illuminate"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vim-illuminate", + url = "https://github.com/RRethy/vim-illuminate" + }, + ["vim-teal"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vim-teal", + url = "https://github.com/teal-language/vim-teal" + }, + ["vscode.nvim"] = { + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vscode.nvim", + url = "https://github.com/Mofiqul/vscode.nvim" + }, + ["web-tools.nvim"] = { + config = { "\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14web-tools\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/web-tools.nvim", + url = "https://github.com/ray-x/web-tools.nvim" + }, + ["workspaces.nvim"] = { + config = { "\27LJ\2\n8\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\15workspaces\frequire\0" }, + loaded = true, + path = "/home/mikec/.local/share/nvim/site/pack/packer/start/workspaces.nvim", + url = "https://github.com/natecraddock/workspaces.nvim" + } +} + +time([[Defining packer_plugins]], false) +-- Setup for: nvim-unception +time([[Setup for nvim-unception]], true) +try_loadstring("\27LJ\2\n\v\0\0\1\0\0\0\1K\0\1\0\0", "setup", "nvim-unception") +time([[Setup for nvim-unception]], false) +time([[packadd for nvim-unception]], true) +vim.cmd [[packadd nvim-unception]] +time([[packadd for nvim-unception]], false) +-- Config for: indent-blankline.nvim +time([[Config for indent-blankline.nvim]], true) +try_loadstring("\27LJ\2\nY\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\nscope\1\0\1\nscope\0\1\0\1\fenabled\1\nsetup\bibl\frequire\0", "config", "indent-blankline.nvim") +time([[Config for indent-blankline.nvim]], false) +-- Config for: lualine.nvim +time([[Config for lualine.nvim]], true) +try_loadstring("\27LJ\2\n\1\0\0\n\0\f\0\0254\0\0\0006\1\0\0006\3\1\0009\3\2\0039\3\3\0035\5\4\0B\3\2\0A\1\0\4H\4\56\6\5\0009\6\6\6\18\b\0\0009\t\a\5B\6\3\1F\4\3\3R\4\127'\1\b\0006\2\5\0009\2\t\2\18\4\0\0'\5\n\0B\2\3\2'\3\v\0&\1\3\1L\1\2\0\6]\6 \vconcat\n [\tname\vinsert\ntable\1\0\1\nbufnr\3\0\23get_active_clients\blsp\bvim\npairs\5\1\0\b\0\29\0'3\0\0\0006\1\1\0'\3\2\0B\1\2\0029\1\3\0015\3\t\0005\4\4\0005\5\5\0=\5\6\0045\5\a\0=\5\b\4=\4\n\0035\4\14\0004\5\3\0005\6\v\0005\a\f\0=\a\r\6>\6\1\5=\5\15\0044\5\0\0=\5\16\0045\5\17\0=\5\18\0045\5\20\0>\0\1\0055\6\19\0>\6\2\5=\5\21\0045\5\22\0=\5\23\0045\5\24\0005\6\25\0005\a\26\0=\a\r\6>\6\2\5=\5\27\4=\4\28\3B\1\2\1K\0\1\0\rsections\14lualine_z\1\0\2\nright\b\tleft\b\1\2\1\0\rprogress\14separator\0\1\2\0\0\rlocation\14lualine_y\1\4\0\0\rencoding\15fileformat\rfiletype\14lualine_x\1\5\0\0\0\0\vbranch\tdiff\1\2\1\0\16diagnostics\18icons_enabled\2\14lualine_c\1\2\0\0\rfilename\14lualine_b\14lualine_a\1\0\6\14lualine_a\0\14lualine_y\0\14lualine_z\0\14lualine_x\0\14lualine_c\0\14lualine_b\0\14separator\1\0\2\nright\b\tleft\b\1\2\1\0\tmode\14separator\0\foptions\1\0\2\foptions\0\rsections\0\25component_separators\1\0\2\nright\5\tleft\5\23section_separators\1\0\2\nright\b\tleft\b\1\0\4\25component_separators\0\23section_separators\0\18icons_enabled\1\17globalstatus\2\nsetup\flualine\frequire\0\0", "config", "lualine.nvim") +time([[Config for lualine.nvim]], false) +-- Config for: alpha-nvim +time([[Config for alpha-nvim]], true) +try_loadstring("\27LJ\2\n`\0\0\5\0\5\0\n6\0\0\0'\2\1\0B\0\2\0029\0\2\0006\2\0\0'\4\3\0B\2\2\0029\2\4\2B\0\2\1K\0\1\0\vconfig\26alpha.themes.startify\nsetup\nalpha\frequire\0", "config", "alpha-nvim") +time([[Config for alpha-nvim]], false) +-- Config for: web-tools.nvim +time([[Config for web-tools.nvim]], true) +try_loadstring("\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14web-tools\frequire\0", "config", "web-tools.nvim") +time([[Config for web-tools.nvim]], false) +-- Config for: leap.nvim +time([[Config for leap.nvim]], true) +try_loadstring("\27LJ\2\nA\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\25add_default_mappings\tleap\frequire\0", "config", "leap.nvim") +time([[Config for leap.nvim]], false) +-- Config for: gitsigns.nvim +time([[Config for gitsigns.nvim]], true) +try_loadstring("\27LJ\2\n6\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rgitsigns\frequire\0", "config", "gitsigns.nvim") +time([[Config for gitsigns.nvim]], false) +-- Config for: telescope-tabs +time([[Config for telescope-tabs]], 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\19telescope-tabs\frequire\0", "config", "telescope-tabs") +time([[Config for telescope-tabs]], false) +-- Config for: compiler-explorer.nvim +time([[Config for compiler-explorer.nvim]], true) +try_loadstring("\27LJ\2\nx\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\fautocmd\1\0\1\fautocmd\0\1\0\2\venable\2\ahl\15Cursorline\nsetup\22compiler-explorer\frequire\0", "config", "compiler-explorer.nvim") +time([[Config for compiler-explorer.nvim]], false) +-- Config for: Comment.nvim +time([[Config for Comment.nvim]], true) +try_loadstring("\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0", "config", "Comment.nvim") +time([[Config for Comment.nvim]], false) +-- Config for: nvim-ts-autotag +time([[Config for nvim-ts-autotag]], true) +try_loadstring("\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20nvim-ts-autotag\frequire\0", "config", "nvim-ts-autotag") +time([[Config for nvim-ts-autotag]], false) +-- Config for: range-highlight.nvim +time([[Config for range-highlight.nvim]], true) +try_loadstring("\27LJ\2\nA\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\20range-highlight\frequire\0", "config", "range-highlight.nvim") +time([[Config for range-highlight.nvim]], false) +-- Config for: dim.lua +time([[Config for dim.lua]], true) +try_loadstring("\27LJ\2\n5\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\bdim\frequire\0", "config", "dim.lua") +time([[Config for dim.lua]], false) +-- Config for: LuaSnip +time([[Config for LuaSnip]], true) +try_loadstring("\27LJ\2\nM\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\14lazy_load luasnip.loaders.from_vscode\frequire\0", "config", "LuaSnip") +time([[Config for LuaSnip]], false) +-- Config for: nvim-surround +time([[Config for nvim-surround]], 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\18nvim-surround\frequire\0", "config", "nvim-surround") +time([[Config for nvim-surround]], false) +-- Config for: workspaces.nvim +time([[Config for workspaces.nvim]], true) +try_loadstring("\27LJ\2\n8\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\15workspaces\frequire\0", "config", "workspaces.nvim") +time([[Config for workspaces.nvim]], false) +-- Config for: twilight.nvim +time([[Config for twilight.nvim]], 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\rtwilight\frequire\0", "config", "twilight.nvim") +time([[Config for twilight.nvim]], false) +-- Load plugins in order defined by `after` +time([[Sequenced loading]], true) +vim.cmd [[ packadd nvim-web-devicons ]] +vim.cmd [[ packadd barbecue.nvim ]] + +-- Config for: barbecue.nvim +try_loadstring("\27LJ\2\n6\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rbarbecue\frequire\0", "config", "barbecue.nvim") + +time([[Sequenced loading]], false) + +-- Command lazy-loads +time([[Defining lazy-load commands]], true) +pcall(vim.api.nvim_create_user_command, 'DBUIRenameBuffer', function(cmdargs) + require('packer.load')({'vim-dadbod'}, { cmd = 'DBUIRenameBuffer', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) + end, + {nargs = '*', range = true, bang = true, complete = function() + require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins) + return vim.fn.getcompletion('DBUIRenameBuffer ', 'cmdline') + end}) +pcall(vim.api.nvim_create_user_command, 'DBUILastQueryInfo', function(cmdargs) + require('packer.load')({'vim-dadbod'}, { cmd = 'DBUILastQueryInfo', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) + end, + {nargs = '*', range = true, bang = true, complete = function() + require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins) + return vim.fn.getcompletion('DBUILastQueryInfo ', 'cmdline') + end}) +pcall(vim.api.nvim_create_user_command, 'DBUIToggle', function(cmdargs) + require('packer.load')({'vim-dadbod'}, { cmd = 'DBUIToggle', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) + end, + {nargs = '*', range = true, bang = true, complete = function() + require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins) + return vim.fn.getcompletion('DBUIToggle ', 'cmdline') + end}) +pcall(vim.api.nvim_create_user_command, 'DBUI', function(cmdargs) + require('packer.load')({'vim-dadbod'}, { cmd = 'DBUI', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) + end, + {nargs = '*', range = true, bang = true, complete = function() + require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins) + return vim.fn.getcompletion('DBUI ', 'cmdline') + end}) +pcall(vim.api.nvim_create_user_command, 'DBUIAddConnection', function(cmdargs) + require('packer.load')({'vim-dadbod'}, { cmd = 'DBUIAddConnection', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) + end, + {nargs = '*', range = true, bang = true, complete = function() + require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins) + return vim.fn.getcompletion('DBUIAddConnection ', 'cmdline') + end}) +pcall(vim.api.nvim_create_user_command, 'DBUIFindBuffer', function(cmdargs) + require('packer.load')({'vim-dadbod'}, { cmd = 'DBUIFindBuffer', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) + end, + {nargs = '*', range = true, bang = true, complete = function() + require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins) + return vim.fn.getcompletion('DBUIFindBuffer ', 'cmdline') + end}) +time([[Defining lazy-load commands]], 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/.config/pavucontrol.ini b/.config/pavucontrol.ini new file mode 100644 index 0000000..46d646c --- /dev/null +++ b/.config/pavucontrol.ini @@ -0,0 +1,8 @@ +[window] +width=640 +height=400 +sinkInputType=1 +sourceOutputType=1 +sinkType=0 +sourceType=1 +showVolumeMeters=1 diff --git a/.config/pulse/cookie b/.config/pulse/cookie new file mode 100644 index 0000000..51fccce Binary files /dev/null and b/.config/pulse/cookie differ diff --git a/.config/ranger/scope.sh b/.config/ranger/scope.sh new file mode 100755 index 0000000..25e1277 --- /dev/null +++ b/.config/ranger/scope.sh @@ -0,0 +1,477 @@ +#!/bin/bash + +set -o noclobber -o noglob -o nounset -o pipefail +IFS=$'\n' + +## If the option `use_preview_script` is set to `true`, +## then this script will be called and its output will be displayed in ranger. +## ANSI color codes are supported. +## STDIN is disabled, so interactive scripts won't work properly + +## This script is considered a configuration file and must be updated manually. +## It will be left untouched if you upgrade ranger. + +## Because of some automated testing we do on the script #'s for comments need +## to be doubled up. Code that is commented out, because it's an alternative for +## example, gets only one #. + +## Meanings of exit codes: +## code | meaning | action of ranger +## -----+------------+------------------------------------------- +## 0 | success | Display stdout as preview +## 1 | no preview | Display no preview at all +## 2 | plain text | Display the plain content of the file +## 3 | fix width | Don't reload when width changes +## 4 | fix height | Don't reload when height changes +## 5 | fix both | Don't ever reload +## 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview +## 7 | image | Display the file directly as an image + +## Script arguments +FILE_PATH="${1}" # Full path of the highlighted file +PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters) +## shellcheck disable=SC2034 # PV_HEIGHT is provided for convenience and unused +PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters) +IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview +PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise. + +FILE_EXTENSION="${FILE_PATH##*.}" +FILE_EXTENSION_LOWER="$(printf "%s" "${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')" + +## Settings +HIGHLIGHT_SIZE_MAX=262143 # 256KiB +HIGHLIGHT_TABWIDTH="${HIGHLIGHT_TABWIDTH:-8}" +HIGHLIGHT_STYLE="${HIGHLIGHT_STYLE:-pablo}" +HIGHLIGHT_OPTIONS="--replace-tabs=${HIGHLIGHT_TABWIDTH} --style=${HIGHLIGHT_STYLE} ${HIGHLIGHT_OPTIONS:-}" +PYGMENTIZE_STYLE="${PYGMENTIZE_STYLE:-autumn}" +BAT_STYLE="${BAT_STYLE:-plain}" +OPENSCAD_IMGSIZE="${RNGR_OPENSCAD_IMGSIZE:-1000,1000}" +OPENSCAD_COLORSCHEME="${RNGR_OPENSCAD_COLORSCHEME:-Tomorrow Night}" +SQLITE_TABLE_LIMIT=20 # Display only the top tables in database, set to 0 for no exhaustive preview (only the sqlite_master table is displayed). +SQLITE_ROW_LIMIT=5 # Display only the first and the last ( - 1) records in each table, set to 0 for no limits. + +handle_extension() { + case "${FILE_EXTENSION_LOWER}" in + ## Archive + a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\ + rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip) + atool --list -- "${FILE_PATH}" && exit 5 + bsdtar --list --file "${FILE_PATH}" && exit 5 + exit 1;; + rar) + ## Avoid password prompt by providing empty password + unrar lt -p- -- "${FILE_PATH}" && exit 5 + exit 1;; + 7z) + ## Avoid password prompt by providing empty password + 7z l -p -- "${FILE_PATH}" && exit 5 + exit 1;; + + ## PDF + pdf) + ## Preview as text conversion + pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | \ + fmt -w "${PV_WIDTH}" && exit 5 + mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | \ + fmt -w "${PV_WIDTH}" && exit 5 + exiftool "${FILE_PATH}" && exit 5 + exit 1;; + + ## BitTorrent + torrent) + transmission-show -- "${FILE_PATH}" && exit 5 + exit 1;; + + ## OpenDocument + odt|sxw) + ## Preview as text conversion + odt2txt "${FILE_PATH}" && exit 5 + ## Preview as markdown conversion + pandoc -s -t markdown -- "${FILE_PATH}" && exit 5 + exit 1;; + ods|odp) + ## Preview as text conversion (unsupported by pandoc for markdown) + odt2txt "${FILE_PATH}" && exit 5 + exit 1;; + + ## XLSX + xlsx) + ## Preview as csv conversion + ## Uses: https://github.com/dilshod/xlsx2csv + xlsx2csv -- "${FILE_PATH}" && exit 5 + exit 1;; + + ## HTML + htm|html|xhtml) + ## Preview as text conversion + w3m -dump "${FILE_PATH}" && exit 5 + lynx -dump -- "${FILE_PATH}" && exit 5 + elinks -dump "${FILE_PATH}" && exit 5 + pandoc -s -t markdown -- "${FILE_PATH}" && exit 5 + ;; + + ## JSON + json) + jq --color-output . "${FILE_PATH}" && exit 5 + python -m json.tool -- "${FILE_PATH}" && exit 5 + ;; + + ## Jupyter Notebooks + ipynb) + jupyter nbconvert --to markdown "${FILE_PATH}" --stdout | env COLORTERM=8bit bat --color=always --style=plain --language=markdown && exit 5 + jupyter nbconvert --to markdown "${FILE_PATH}" --stdout && exit 5 + jq --color-output . "${FILE_PATH}" && exit 5 + python -m json.tool -- "${FILE_PATH}" && exit 5 + ;; + + ## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected + ## by file(1). + dff|dsf|wv|wvc) + mediainfo "${FILE_PATH}" && exit 5 + exiftool "${FILE_PATH}" && exit 5 + ;; # Continue with next handler on failure + esac +} + +handle_image() { + ## Size of the preview if there are multiple options or it has to be + ## rendered from vector graphics. If the conversion program allows + ## specifying only one dimension while keeping the aspect ratio, the width + ## will be used. + local DEFAULT_SIZE="1920x1080" + + local mimetype="${1}" + case "${mimetype}" in + ## SVG + image/svg+xml|image/svg) + rsvg-convert --keep-aspect-ratio --width "${DEFAULT_SIZE%x*}" "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}.png" \ + && mv "${IMAGE_CACHE_PATH}.png" "${IMAGE_CACHE_PATH}" \ + && exit 6 + exit 1;; + + ## DjVu + image/vnd.djvu) + ddjvu -format=tiff -quality=90 -page=1 -size="${DEFAULT_SIZE}" \ + - "${IMAGE_CACHE_PATH}" < "${FILE_PATH}" \ + && exit 6 || exit 1;; + + ## Image + image/*) + local orientation + orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )" + ## If orientation data is present and the image actually + ## needs rotating ("1" means no rotation)... + if [[ -n "$orientation" && "$orientation" != 1 ]]; then + ## ...auto-rotate the image according to the EXIF data. + convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6 + fi + + ## `w3mimgdisplay` will be called for all images (unless overridden + ## as above), but might fail for unsupported types. + exit 7;; + + ## Video + # video/*) + # # Get embedded thumbnail + # ffmpeg -i "${FILE_PATH}" -map 0:v -map -0:V -c copy "${IMAGE_CACHE_PATH}" && exit 6 + # # Get frame 10% into video + # ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6 + # exit 1;; + + ## Audio + # audio/*) + # # Get embedded thumbnail + # ffmpeg -i "${FILE_PATH}" -map 0:v -map -0:V -c copy \ + # "${IMAGE_CACHE_PATH}" && exit 6;; + + ## PDF + # application/pdf) + # pdftoppm -f 1 -l 1 \ + # -scale-to-x "${DEFAULT_SIZE%x*}" \ + # -scale-to-y -1 \ + # -singlefile \ + # -jpeg -tiffcompression jpeg \ + # -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \ + # && exit 6 || exit 1;; + + + ## ePub, MOBI, FB2 (using Calibre) + # application/epub+zip|application/x-mobipocket-ebook|\ + # application/x-fictionbook+xml) + # # ePub (using https://github.com/marianosimone/epub-thumbnailer) + # epub-thumbnailer "${FILE_PATH}" "${IMAGE_CACHE_PATH}" \ + # "${DEFAULT_SIZE%x*}" && exit 6 + # ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" \ + # >/dev/null && exit 6 + # exit 1;; + + ## Font + application/font*|application/*opentype) + preview_png="/tmp/$(basename "${IMAGE_CACHE_PATH%.*}").png" + if fontimage -o "${preview_png}" \ + --pixelsize "120" \ + --fontname \ + --pixelsize "80" \ + --text " ABCDEFGHIJKLMNOPQRSTUVWXYZ " \ + --text " abcdefghijklmnopqrstuvwxyz " \ + --text " 0123456789.:,;(*!?') ff fl fi ffi ffl " \ + --text " The quick brown fox jumps over the lazy dog. " \ + "${FILE_PATH}"; + then + convert -- "${preview_png}" "${IMAGE_CACHE_PATH}" \ + && rm "${preview_png}" \ + && exit 6 + else + exit 1 + fi + ;; + + ## Preview archives using the first image inside. + ## (Very useful for comic book collections for example.) + # application/zip|application/x-rar|application/x-7z-compressed|\ + # application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar) + # local fn=""; local fe="" + # local zip=""; local rar=""; local tar=""; local bsd="" + # case "${mimetype}" in + # application/zip) zip=1 ;; + # application/x-rar) rar=1 ;; + # application/x-7z-compressed) ;; + # *) tar=1 ;; + # esac + # { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \ + # { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \ + # { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \ + # { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return + # + # fn=$(echo "$fn" | python -c "from __future__ import print_function; \ + # import sys; import mimetypes as m; \ + # [ print(l, end='') for l in sys.stdin if \ + # (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\ + # sort -V | head -n 1) + # [ "$fn" = "" ] && return + # [ "$bsd" ] && fn=$(printf '%b' "$fn") + # + # [ "$tar" ] && tar --extract --to-stdout \ + # --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6 + # fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g') + # [ "$bsd" ] && bsdtar --extract --to-stdout \ + # --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6 + # [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}" + # [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \ + # "${IMAGE_CACHE_PATH}" && exit 6 + # [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \ + # "${IMAGE_CACHE_PATH}" && exit 6 + # [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}" + # ;; + esac + + # openscad_image() { + # TMPPNG="$(mktemp -t XXXXXX.png)" + # openscad --colorscheme="${OPENSCAD_COLORSCHEME}" \ + # --imgsize="${OPENSCAD_IMGSIZE/x/,}" \ + # -o "${TMPPNG}" "${1}" + # mv "${TMPPNG}" "${IMAGE_CACHE_PATH}" + # } + + case "${FILE_EXTENSION_LOWER}" in + ## 3D models + ## OpenSCAD only supports png image output, and ${IMAGE_CACHE_PATH} + ## is hardcoded as jpeg. So we make a tempfile.png and just + ## move/rename it to jpg. This works because image libraries are + ## smart enough to handle it. + # csg|scad) + # openscad_image "${FILE_PATH}" && exit 6 + # ;; + # 3mf|amf|dxf|off|stl) + # openscad_image <(echo "import(\"${FILE_PATH}\");") && exit 6 + # ;; + drawio) + draw.io -x "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" \ + --width "${DEFAULT_SIZE%x*}" && exit 6 + exit 1;; + esac +} + +handle_mime() { + local mimetype="${1}" + case "${mimetype}" in + ## RTF and DOC + text/rtf|*msword) + ## Preview as text conversion + ## note: catdoc does not always work for .doc files + ## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/ + catdoc -- "${FILE_PATH}" && exit 5 + exit 1;; + + ## DOCX, ePub, FB2 (using markdown) + ## You might want to remove "|epub" and/or "|fb2" below if you have + ## uncommented other methods to preview those formats + *wordprocessingml.document|*/epub+zip|*/x-fictionbook+xml) + ## Preview as markdown conversion + pandoc -s -t markdown -- "${FILE_PATH}" && exit 5 + exit 1;; + + ## E-mails + message/rfc822) + ## Parsing performed by mu: https://github.com/djcb/mu + mu view -- "${FILE_PATH}" && exit 5 + exit 1;; + + ## XLS + *ms-excel) + ## Preview as csv conversion + ## xls2csv comes with catdoc: + ## http://www.wagner.pp.ru/~vitus/software/catdoc/ + xls2csv -- "${FILE_PATH}" && exit 5 + exit 1;; + + ## SQLite + *sqlite3) + ## Preview as text conversion + sqlite_tables="$( sqlite3 "file:${FILE_PATH}?mode=ro" '.tables' )" \ + || exit 1 + [ -z "${sqlite_tables}" ] && + { echo "Empty SQLite database." && exit 5; } + sqlite_show_query() { + sqlite-utils query "${FILE_PATH}" "${1}" --table --fmt fancy_grid \ + || sqlite3 "file:${FILE_PATH}?mode=ro" "${1}" -header -column + } + ## Display basic table information + sqlite_rowcount_query="$( + sqlite3 "file:${FILE_PATH}?mode=ro" -noheader \ + 'SELECT group_concat( + "SELECT """ || name || """ AS tblname, + count(*) AS rowcount + FROM " || name, + " UNION ALL " + ) + FROM sqlite_master + WHERE type="table" AND name NOT LIKE "sqlite_%";' + )" + sqlite_show_query \ + "SELECT tblname AS 'table', rowcount AS 'count', + ( + SELECT '(' || group_concat(name, ', ') || ')' + FROM pragma_table_info(tblname) + ) AS 'columns', + ( + SELECT '(' || group_concat( + upper(type) || ( + CASE WHEN pk > 0 THEN ' PRIMARY KEY' ELSE '' END + ), + ', ' + ) || ')' + FROM pragma_table_info(tblname) + ) AS 'types' + FROM (${sqlite_rowcount_query});" + if [ "${SQLITE_TABLE_LIMIT}" -gt 0 ] && + [ "${SQLITE_ROW_LIMIT}" -ge 0 ]; then + ## Do exhaustive preview + echo && printf '>%.0s' $( seq "${PV_WIDTH}" ) && echo + sqlite3 "file:${FILE_PATH}?mode=ro" -noheader \ + "SELECT name FROM sqlite_master + WHERE type='table' AND name NOT LIKE 'sqlite_%' + LIMIT ${SQLITE_TABLE_LIMIT};" | + while read -r sqlite_table; do + sqlite_rowcount="$( + sqlite3 "file:${FILE_PATH}?mode=ro" -noheader \ + "SELECT count(*) FROM ${sqlite_table}" + )" + echo + if [ "${SQLITE_ROW_LIMIT}" -gt 0 ] && + [ "${SQLITE_ROW_LIMIT}" \ + -lt "${sqlite_rowcount}" ]; then + echo "${sqlite_table} [${SQLITE_ROW_LIMIT} of ${sqlite_rowcount}]:" + sqlite_ellipsis_query="$( + sqlite3 "file:${FILE_PATH}?mode=ro" -noheader \ + "SELECT 'SELECT ' || group_concat( + '''...''', ', ' + ) + FROM pragma_table_info( + '${sqlite_table}' + );" + )" + sqlite_show_query \ + "SELECT * FROM ( + SELECT * FROM ${sqlite_table} LIMIT 1 + ) + UNION ALL ${sqlite_ellipsis_query} UNION ALL + SELECT * FROM ( + SELECT * FROM ${sqlite_table} + LIMIT (${SQLITE_ROW_LIMIT} - 1) + OFFSET ( + ${sqlite_rowcount} + - (${SQLITE_ROW_LIMIT} - 1) + ) + );" + else + echo "${sqlite_table} [${sqlite_rowcount}]:" + sqlite_show_query "SELECT * FROM ${sqlite_table};" + fi + done + fi + exit 5;; + + ## Text + text/* | */xml) + ## Syntax highlight + if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then + exit 2 + fi + if [[ "$( tput colors )" -ge 256 ]]; then + local pygmentize_format='terminal' + local highlight_format='ansi' + else + local pygmentize_format='terminal' + local highlight_format='ansi' + fi + env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \ + --out-format="${highlight_format}" \ + --force -- "${FILE_PATH}" && exit 5 + env COLORTERM=8bit bat --color=always --style="${BAT_STYLE}" \ + -- "${FILE_PATH}" && exit 5 + pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\ + -- "${FILE_PATH}" && exit 5 + exit 2;; + + ## DjVu + image/vnd.djvu) + ## Preview as text conversion (requires djvulibre) + djvutxt "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5 + exiftool "${FILE_PATH}" && exit 5 + exit 1;; + + ## Image + image/*) + ## Preview as text conversion + # img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4 + exiftool "${FILE_PATH}" && exit 5 + exit 1;; + + ## Video and audio + video/* | audio/*) + mediainfo "${FILE_PATH}" && exit 5 + exiftool "${FILE_PATH}" && exit 5 + exit 1;; + + ## ELF files (executables and shared objects) + application/x-executable | application/x-pie-executable | application/x-sharedlib) + readelf -WCa "${FILE_PATH}" && exit 5 + exit 1;; + esac +} + +handle_fallback() { + echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5 +} + + +MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )" +if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then + handle_image "${MIMETYPE}" +fi +handle_extension +handle_mime "${MIMETYPE}" +handle_fallback + +exit 1 diff --git a/.config/tinted-theming/tinty/config.toml b/.config/tinted-theming/tinty/config.toml new file mode 100644 index 0000000..c32d48d --- /dev/null +++ b/.config/tinted-theming/tinty/config.toml @@ -0,0 +1,17 @@ +[[items]] +path = "https://github.com/tinted-theming/tinted-shell" +name = "base16-shell" +themes-dir = "scripts" +hook = ". %f" + +[[items]] +path = "https://github.com/tinted-theming/tinted-tmux" +name = "tinted-tmux" +# Check if tmux is in use and if it is, reload the config file +hook = "test -n \"$TMUX\" && tmux source-file ~/.tmux.conf" +themes-dir = "colors" + +[[items]] +path = "https://github.com/tinted-theming/tinted-fzf" +name = "tinted-fzf" +themes-dir = "sh" diff --git a/.doom.d_/config.el b/.doom.d_/config.el new file mode 100644 index 0000000..67a66bb --- /dev/null +++ b/.doom.d_/config.el @@ -0,0 +1,144 @@ +;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here! Remember, you do not need to run 'doom +;; sync' after modifying this file! + + +;; Some functionality uses this to identify you, e.g. GPG configuration, email +;; clients, file templates and snippets. It is optional. +;; (setq user-full-name "John Doe" +;; user-mail-address "john@doe.com") + +;; Doom exposes five (optional) variables for controlling fonts in Doom: +;; +;; - `doom-font' -- the primary font to use +;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) +;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for +;; presentations or streaming. +;; - `doom-symbol-font' -- for symbols +;; - `doom-serif-font' -- for the `fixed-pitch-serif' face +;; +;; See 'C-h v doom-font' for documentation and more examples of what they +;; accept. For example: +;; +(setq doom-font (font-spec :family "Cascadia Code" :size 16) + doom-variable-pitch-font (font-spec :family "Cascadia Code" :size 16)) +;; +;; If you or Emacs can't find your font, use 'M-x describe-font' to look them +;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to +;; refresh your font settings. If Emacs still can't find your font, it likely +;; wasn't installed correctly. Font issues are rarely Doom issues! + +;; There are two ways to load a theme. Both assume the theme is installed and +;; available. You can either set `doom-theme' or manually load a theme with the +;; `load-theme' function. This is the default: +(setq doom-theme 'doom-monokai-classic) + +;; This determines the style of line numbers in effect. If set to `nil', line +;; numbers are disabled. For relative line numbers, set this to `relative'. +(setq display-line-numbers-type 'relative) + +;; If you use `org' and don't want your org files in the default location below, +;; change `org-directory'. It must be set before org loads! +(setq org-directory "~/org/") + + +;; Whenever you reconfigure a package, make sure to wrap your config in an +;; `after!' block, otherwise Doom's defaults may override your settings. E.g. +;; +;; (after! PACKAGE +;; (setq x y)) +;; +;; The exceptions to this rule: +;; +;; - Setting file/directory variables (like `org-directory') +;; - Setting variables which explicitly tell you to set them before their +;; package is loaded (see 'C-h v VARIABLE' to look up their documentation). +;; - Setting doom variables (which start with 'doom-' or '+'). +;; +;; Here are some additional functions/macros that will help you configure Doom. +;; +;; - `load!' for loading external *.el files relative to this one +;; - `use-package!' for configuring packages +;; - `after!' for running code after a package has loaded +;; - `add-load-path!' for adding directories to the `load-path', relative to +;; this file. Emacs searches the `load-path' when you load packages with +;; `require' or `use-package'. +;; - `map!' for binding new keys +;; +;; To get information about any of these functions/macros, move the cursor over +;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). +;; This will open documentation for it, including demos of how they are used. +;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, +;; etc). +;; +;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how +;; they are implemented. +(setq elfeed-feeds + '(("https://phaazon.net/blog/feed") + ("https://danielde.dev/rss.xml") + ("https://sizeof.cat/index.xml") + ("https://lukesmith.xyz/rss.xml") + ("https://api.substack.com/feed/podcast/462466.rss") + ("https://www.dailywire.com/feeds/rss.xml") + ("https://feeds.simplecast.com/6c2VScgo") + ("https://feeds.simplecast.com/pp_b9xO6") + ("https://notrelated.xyz/rss"))) +(setq elfeed-summary-settings + '((group + (:title . "Feeds") + (:elements + (query . :all))))) + +(after! elfeed + (setq elfeed-search-filter "")) +(after! elfeed-summary + (setq elfeed-summary-default-filter "")) + +(add-hook 'elfeed-summary-mode-hook + (lambda () + (define-key elfeed-summary-mode-map + (kbd "RET") + 'elfeed-summary--action-show-read) + (define-key elfeed-summary-mode-map + (kbd "RET") + 'elfeed-summary--action-show-read) + (define-key elfeed-summary-mode-map + (kbd "h") + 'elfeed-summary-quit-window) + (define-key elfeed-summary-mode-map + (kbd "l") + 'elfeed-summary--action-show-read))) + +(add-hook 'elfeed-search-mode-hook + (lambda () + (define-key elfeed-search-mode-map + (kbd "h") + 'elfeed-kill-buffer) + (define-key elfeed-search-mode-map + (kbd "l") + 'elfeed-search-show-entry))) + +(add-hook 'elfeed-show-mode-hook + (lambda () + (define-key elfeed-show-mode-map + (kbd "h") + 'elfeed-kill-buffer) + (define-key elfeed-show-mode-map + (kbd "C-n") + 'View-scroll-line-forward) + (define-key elfeed-show-mode-map + (kbd "C-p") + 'View-scroll-line-backward))) + +(add-hook 'elfeed-show-mode-hook 'view-mode) + +(defun elfeed-podcast-tagger (entry) + (when (elfeed-entry-enclosures entry) + (elfeed-tag entry 'podcast))) + +;;(add-hook 'elfeed-new-entry-hook #'ime-elfeed-podcast-tagger) +(setq emms-source-file-default-directory "/mnt/c/Users/mchalupi/Music") +(global-tree-sitter-mode) +(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode) +(require 'vlf-setup) diff --git a/.doom.d_/custom.el b/.doom.d_/custom.el new file mode 100644 index 0000000..214b773 --- /dev/null +++ b/.doom.d_/custom.el @@ -0,0 +1,14 @@ +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(custom-safe-themes + '("b54376ec363568656d54578d28b95382854f62b74c32077821fdfd604268616a" "8d8207a39e18e2cc95ebddf62f841442d36fcba01a2a9451773d4ed30b632443" "aec7b55f2a13307a55517fdf08438863d694550565dee23181d2ebd973ebd6b8" "56044c5a9cc45b6ec45c0eb28df100d3f0a576f18eef33ff8ff5d32bac2d9700" "e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "f5f80dd6588e59cfc3ce2f11568ff8296717a938edd448a947f9823a4e282b66" "37b6695bae243145fa2dfb41440c204cd22833c25cd1993b0f258905b9e65577" "e4a702e262c3e3501dfe25091621fe12cd63c7845221687e36a79e17cf3a67e0" default)) + '(delete-selection-mode nil)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(ts-fold-replacement-face ((t (:foreground unspecified :box nil :inherit font-lock-comment-face :weight light))))) diff --git a/.doom.d_/init.el b/.doom.d_/init.el new file mode 100644 index 0000000..66b15fa --- /dev/null +++ b/.doom.d_/init.el @@ -0,0 +1,195 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; This file controls what Doom modules are enabled and what order they load +;; in. Remember to run 'doom sync' after modifying it! + +;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's +;; documentation. There you'll find a link to Doom's Module Index where all +;; of our modules are listed, including what flags they support. + +;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or +;; 'C-c c k' for non-vim users) to view its documentation. This works on +;; flags as well (those symbols that start with a plus). +;; +;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its +;; directory (for easy access to its source code). + +(doom! :input + ;;bidi ; (tfel ot) thgir etirw uoy gnipleh + ;;chinese + ;;japanese + ;;layout ; auie,ctsrnm is the superior home row + + :completion + company ; the ultimate code completion backend + ;;(corfu +orderless) ; complete with cap(f), cape and a flying feather! + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ;;ivy ; a search engine for love and life + vertico ; the search engine of the future + + :ui + ;;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + ;;doom-quit ; DOOM quit-message prompts when you quit Emacs + ;;(emoji +unicode) ; 🙂 + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + ;;hydra + indent-guides ; highlighted indent columns + ;;ligatures ; ligatures and symbols to make your code pretty again + ;;minimap ; show a map of the code on the side + modeline ; snazzy, Atom-inspired modeline, plus API + ;;nav-flash ; blink cursor line after big motions + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup +defaults) ; tame sudden yet inevitable temporary windows + ;;tabs ; a tab bar for Emacs + ;;treemacs ; a project drawer, like neotree but cooler + ;;unicode ; extended unicode support for various languages + (vc-gutter +pretty) ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + ;;window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + zen ; distraction-free coding or writing + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + ;;(format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + ;;multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + ;;rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + ;;word-wrap ; soft wrapping with language-aware indent + + :emacs + dired ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + ;;ibuffer ; interactive buffer management + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree + + :term + eshell ; the elisp shell that works everywhere + shell ; simple shell REPL for Emacs + ;;term ; basic terminal emulator for Emacs + vterm ; the best terminal emulation in Emacs + + :checkers + syntax ; tasing you for every semicolon you forget + ;;(spell +flyspell) ; tasing you for misspelling mispelling + ;;grammar ; tasing grammar mistake every you make + + :tools + ;;ansible + ;;biblio ; Writes a PhD for you (citation needed) + ;;collab ; buffers with friends + ;;debugger ; FIXME stepping through code, to help you add bugs + ;;direnv + ;;docker + ;;editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + lookup ; navigate your code and its documentation + lsp ; M-x vscode + magit ; a git porcelain for Emacs + ;;make ; run make tasks from Emacs + ;;pass ; password manager for nerds + ;;pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + ;;rgb ; creating color strings + ;;taskrunner ; taskrunner for all your projects + ;;terraform ; infrastructure as code + ;;tmux ; an API for interacting with tmux + tree-sitter ; syntax and parsing, sitting in a tree... + ;;upload ; map local to remote projects via ssh/ftp + + :os + (:if (featurep :system 'macos) macos) ; improve compatibility with macOS + tty ; improve the terminal Emacs experience + + :lang + ;;agda ; types of types of types of types... + ;;beancount ; mind the GAAP + (cc +lsp) ; C > C++ == 1 + ;;clojure ; java with a lisp + ;;common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + ;;data ; config/data formats + ;;(dart +flutter) ; paint ui and not much else + ;;dhall + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;factor + ;;faust ; dsp, but you get to keep your soul + ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) + ;;fsharp ; ML stands for Microsoft's Language + ;;fstar ; (dependent) types and (monadic) effects and Z3 + ;;gdscript ; the language you waited for + ;;(go +lsp) ; the hipster dialect + ;;(graphql +lsp) ; Give queries a REST + ;;(haskell +lsp) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris ; a language you can depend on + ;;json ; At least it ain't XML + ;;(java +lsp) ; the poster child for carpal tunnel syndrome + ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + ;;latex ; writing papers in Emacs has never been so fun + ;;lean ; for folks with too much to prove + ;;ledger ; be audit you can be + ;;lua ; one-based indices? one-based indices + markdown ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + ;;nix ; I hereby declare "nix geht mehr!" + ;;ocaml ; an objective camel + org ; organize your plain life in plain text + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;purescript ; javascript, but functional + ;;python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;raku ; the artist formerly known as perl6 + ;;rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + ;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + ;;(scheme +guile) ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;sml + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + web ; the tubes + ;;yaml ; JSON, but readable + ;;zig ; C, but simpler + + :email + ;;(mu4e +org +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + ;;calendar + emms + ;;everywhere ; *leave* Emacs!? You must be joking + ;;irc ; how neckbeards socialize + (rss) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + + :config + ;;literate + (default +bindings +smartparens)) diff --git a/.doom.d_/packages.el b/.doom.d_/packages.el new file mode 100644 index 0000000..1a2f46c --- /dev/null +++ b/.doom.d_/packages.el @@ -0,0 +1,55 @@ +;; -*- no-byte-compile: t; -*- +;;; $DOOMDIR/packages.el + +;; To install a package with Doom you must declare them here and run 'doom sync' +;; on the command line, then restart Emacs for the changes to take effect -- or +;; use 'M-x doom/reload'. + + +;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: +;; (package! some-package) + +;; To install a package directly from a remote git repo, you must specify a +;; `:recipe'. You'll find documentation on what `:recipe' accepts here: +;; https://github.com/radian-software/straight.el#the-recipe-format +;; (package! another-package +;; :recipe (:host github :repo "username/repo")) + +;; If the package you are trying to install does not contain a PACKAGENAME.el +;; file, or is located in a subdirectory of the repo, you'll need to specify +;; `:files' in the `:recipe': +;; (package! this-package +;; :recipe (:host github :repo "username/repo" +;; :files ("some-file.el" "src/lisp/*.el"))) + +;; If you'd like to disable a package included with Doom, you can do so here +;; with the `:disable' property: +;; (package! builtin-package :disable t) + +;; You can override the recipe of a built in package without having to specify +;; all the properties for `:recipe'. These will inherit the rest of its recipe +;; from Doom or MELPA/ELPA/Emacsmirror: +;; (package! builtin-package :recipe (:nonrecursive t)) +;; (package! builtin-package-2 :recipe (:repo "myfork/package")) + +;; Specify a `:branch' to install a package from a particular branch or tag. +;; This is required for some packages whose default branch isn't 'master' (which +;; our package manager can't deal with; see radian-software/straight.el#279) +;; (package! builtin-package :recipe (:branch "develop")) + +;; Use `:pin' to specify a particular commit to install. +;; (package! builtin-package :pin "1a2b3c4d5e") + + +;; Doom's packages are pinned to a specific commit and updated from release to +;; release. The `unpin!' macro allows you to unpin single packages... +;; (unpin! pinned-package) +;; ...or multiple packages +;; (unpin! pinned-package another-pinned-package) +;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) +;; (unpin! t) +(package! elfeed-summary) +(package! vlf) +(package! eat) +(package! sam + :recipe (:local-repo "/home/mikec/doom-emacs/.local/straight/repos/sam.el/")) diff --git a/.scripts/add-project b/.scripts/add-project new file mode 100755 index 0000000..104d52e --- /dev/null +++ b/.scripts/add-project @@ -0,0 +1 @@ +echo "$(pwd) $1" >> ~/.scripts/projects diff --git a/.scripts/bar.sh b/.scripts/bar.sh new file mode 100755 index 0000000..66bf829 --- /dev/null +++ b/.scripts/bar.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +DATE=$(date +'%Y-%m-%d %I:%M:%S %p') +# BAT=$(cat /sys/class/power_supply/BAT1/capacity) +VOL=$(pactl get-sink-volume @DEFAULT_SINK@ | tr "," "\n" | grep \% | sed s/Volume\:// | sed 's/\%.*$//' | sed 's/^.*\///' | head -n1 | sed s/\ *//) +VOL="${VOL}%" +MUTED=$(pactl get-sink-mute @DEFAULT_SINK@ | cut -d\ -f2) +# BRIGHT=$(brightnessctl | tr "\n" " " | cut -d\ -f9 | tr -d "()%") +MEM=$(free -h | sed 's/[ ]\+/:/g' | cut -d\: -f4 | tr "\n" ":" | cut -d\: -f2) +USER=$(id -u -n) +HOST=$(cat /proc/sys/kernel/hostname) +# LAYOUT=$(swaymsg -t get_inputs | jq -r '.[] | select( .type == "keyboard") .xkb_active_layout_name' | tr "\n" ":" | cut -d\: -f1 | cut -d\ -f2| tr -d "()") +LAYOUT=$(setxkbmap -print -verbose 10 | grep layout | cut -d ":" -f 2 | tr -d " ") +# NETWORK_NAME=$(iwctl station wlan0 show | grep network | sed s/"Connected network"// | tr -d " ") +# IP=$(iwctl station wlan0 show | grep IPv4 | sed s/"IPv4 address"// | tr -d " ") + +if [ $MUTED == 'yes' ] +then + VOL='muted' +fi + +echo ${MEM} \| ${USER}\@${HOST} \| KB\: ${LAYOUT} \| ${NETWORK_NAME}\@${IP} \| V: ${VOL} \| ${BRIGHT}% Bl \| ${BAT}\% B \| ${DATE} diff --git a/.scripts/build.sh b/.scripts/build.sh new file mode 100755 index 0000000..8b602ed --- /dev/null +++ b/.scripts/build.sh @@ -0,0 +1 @@ +/usr/lib/jvm/java-11-openjdk/bin/javac -cp ./ $* diff --git a/.scripts/buildtest.sh b/.scripts/buildtest.sh new file mode 100755 index 0000000..2b6feda --- /dev/null +++ b/.scripts/buildtest.sh @@ -0,0 +1 @@ +/usr/lib/jvm/java-11-openjdk/bin/javac -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest/core.jar $* diff --git a/.scripts/cloc b/.scripts/cloc new file mode 100755 index 0000000..619a59d --- /dev/null +++ b/.scripts/cloc @@ -0,0 +1,18206 @@ +#!/usr/bin/env perl +# cloc -- Count Lines of Code {{{1 +# Copyright (C) 2006-2024 Al Danial +# First release August 2006 +# +# Includes code from: +# - SLOCCount v2.26 +# http://www.dwheeler.com/sloccount/ +# by David Wheeler. +# - Regexp::Common v2017060201 +# https://metacpan.org/pod/Regexp::Common +# by Damian Conway and Abigail. +# - Win32::Autoglob 1.01 +# https://metacpan.org/pod/Win32::Autoglob +# by Sean M. Burke. +# - Algorithm::Diff 1.1902 +# https://metacpan.org/pod/Algorithm::Diff +# by Tye McQueen. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details: +# . +# +# 1}}} +my $VERSION = "2.01"; # odd number == beta; even number == stable +my $URL = "github.com/AlDanial/cloc"; # 'https://' pushes header too wide +require 5.10.0; +# use modules {{{1 +use warnings; +use strict; + +use Getopt::Long; +use File::Basename; +use File::Temp qw { tempfile tempdir }; +use File::Find; +use File::Path; +use File::Spec; +use IO::File; +use List::Util qw( min max ); +use Cwd; +use POSIX qw { strftime ceil}; +# Parallel::ForkManager isn't in the standard distribution. +# Use it only if installed, and only if --processes=N is given. +# The module load happens in get_max_processes(). +my $HAVE_Parallel_ForkManager = 0; + +# Digest::MD5 isn't in the standard distribution. Use it only if installed. +my $HAVE_Digest_MD5 = 0; +eval "use Digest::MD5;"; +if (defined $Digest::MD5::VERSION) { + $HAVE_Digest_MD5 = 1; +} else { + warn "Digest::MD5 not installed; will skip file uniqueness checks.\n"; +} + +# Time::HiRes became standard with Perl 5.8 +my $HAVE_Time_HiRes = 0; +eval "use Time::HiRes;"; +$HAVE_Time_HiRes = 1 if defined $Time::HiRes::VERSION; + +my $HAVE_Rexexp_Common; +# Regexp::Common isn't in the standard distribution. It will +# be installed in a temp directory if necessary. +eval "use Regexp::Common qw ( comment ) "; +if (defined $Regexp::Common::VERSION) { + $HAVE_Rexexp_Common = 1; +} else { + $HAVE_Rexexp_Common = 0; +} + +my $HAVE_Algorithm_Diff = 0; +# Algorithm::Diff isn't in the standard distribution. It will +# be installed in a temp directory if necessary. +eval "use Algorithm::Diff qw ( sdiff ) "; +if (defined $Algorithm::Diff::VERSION) { + $HAVE_Algorithm_Diff = 1; +} else { + Install_Algorithm_Diff(); +} + +# print "2 HAVE_Algorithm_Diff = $HAVE_Algorithm_Diff\n"; +# test_alg_diff($ARGV[$#ARGV - 1], $ARGV[$#ARGV]); die; +# die "Hre=$HAVE_Rexexp_Common Had=$HAVE_Algorithm_Diff"; + +# Uncomment next two lines when building Windows executable with perl2exe +# or if running on a system that already has Regexp::Common. +#use Regexp::Common; +#$HAVE_Rexexp_Common = 1; + +#perl2exe_include "Regexp/Common/whitespace.pm" +#perl2exe_include "Regexp/Common/URI.pm" +#perl2exe_include "Regexp/Common/URI/fax.pm" +#perl2exe_include "Regexp/Common/URI/file.pm" +#perl2exe_include "Regexp/Common/URI/ftp.pm" +#perl2exe_include "Regexp/Common/URI/gopher.pm" +#perl2exe_include "Regexp/Common/URI/http.pm" +#perl2exe_include "Regexp/Common/URI/pop.pm" +#perl2exe_include "Regexp/Common/URI/prospero.pm" +#perl2exe_include "Regexp/Common/URI/news.pm" +#perl2exe_include "Regexp/Common/URI/tel.pm" +#perl2exe_include "Regexp/Common/URI/telnet.pm" +#perl2exe_include "Regexp/Common/URI/tv.pm" +#perl2exe_include "Regexp/Common/URI/wais.pm" +#perl2exe_include "Regexp/Common/CC.pm" +#perl2exe_include "Regexp/Common/SEN.pm" +#perl2exe_include "Regexp/Common/number.pm" +#perl2exe_include "Regexp/Common/delimited.pm" +#perl2exe_include "Regexp/Common/profanity.pm" +#perl2exe_include "Regexp/Common/net.pm" +#perl2exe_include "Regexp/Common/zip.pm" +#perl2exe_include "Regexp/Common/comment.pm" +#perl2exe_include "Regexp/Common/balanced.pm" +#perl2exe_include "Regexp/Common/lingua.pm" +#perl2exe_include "Regexp/Common/list.pm" +#perl2exe_include "File/Glob.pm" + +use Text::Tabs qw { expand }; +use Cwd qw { cwd }; +use File::Glob; +# 1}}} +# Usage information, options processing. {{{1 +my $ON_WINDOWS = 0; + $ON_WINDOWS = 1 if ($^O =~ /^MSWin/) or ($^O eq "Windows_NT"); +if ($ON_WINDOWS and $ENV{'SHELL'}) { + if ($ENV{'SHELL'} =~ m{^/}) { + $ON_WINDOWS = 0; # make Cygwin look like Unix + } else { + $ON_WINDOWS = 1; # MKS defines $SHELL but still acts like Windows + } +} + +my $HAVE_Win32_Long_Path = 0; +# Win32::LongPath is an optional dependency that when available on +# Windows will be used to support reading files past the 255 char +# path length limit. +if ($ON_WINDOWS) { + eval "use Win32::LongPath;"; + if (defined $Win32::LongPath::VERSION) { + $HAVE_Win32_Long_Path = 1; + } +} +my $config_file = ''; +if ( $ENV{'HOME'} ) { + $config_file = File::Spec->catfile( $ENV{'HOME'}, '.config', 'cloc', 'options.txt'); +} elsif ( $ENV{'APPDATA'} and $ON_WINDOWS ) { + $config_file = File::Spec->catfile( $ENV{'APPDATA'}, 'cloc'); +} +# $config_file may be updated by check_alternate_config_files() + +my $NN = chr(27) . "[0m"; # normal + $NN = "" if $ON_WINDOWS or !(-t STDOUT); # -t STDOUT: is it a terminal? +my $BB = chr(27) . "[1m"; # bold + $BB = "" if $ON_WINDOWS or !(-t STDOUT); +my $script = basename $0; + +# Intended for v1.88: +# --git-diff-simindex Git diff strategy #3: use git's similarity index +# (git diff -M --name-status) to identify file pairs +# to compare. This is especially useful to compare +# files that were renamed between the commits. + +my $brief_usage = " + cloc -- Count Lines of Code + +Usage: + $script [options] + Count physical lines of source code and comments in the given files + (may be archives such as compressed tarballs or zip files) and/or + recursively below the given directories or git commit hashes. + Example: cloc src/ include/ main.c + + $script [options] --diff + Compute differences of physical lines of source code and comments + between any pairwise combination of directory names, archive + files or git commit hashes. + Example: cloc --diff Python-3.5.tar.xz python-3.6/ + +$script --help shows full documentation on the options. +https://$URL has numerous examples and more information. +"; +my $usage = " +Usage: $script [options] | | + + Count, or compute differences of, physical lines of source code in the + given files (may be archives such as compressed tarballs or zip files, + or git commit hashes or branch names) and/or recursively below the + given directories. + + ${BB}Input Options${NN} + --extract-with= This option is only needed if cloc is unable + to figure out how to extract the contents of + the input file(s) by itself. + Use to extract binary archive files (e.g.: + .tar.gz, .zip, .Z). Use the literal '>FILE<' as + a stand-in for the actual file(s) to be + extracted. For example, to count lines of code + in the input files + gcc-4.2.tar.gz perl-5.8.8.tar.gz + on Unix use + --extract-with='gzip -dc >FILE< | tar xf -' + or, if you have GNU tar, + --extract-with='tar zxf >FILE<' + and on Windows use, for example: + --extract-with=\"\\\"c:\\Program Files\\WinZip\\WinZip32.exe\\\" -e -o >FILE< .\" + (if WinZip is installed there). + --list-file= Take the list of file and/or directory names to + process from , which has one file/directory + name per line. Only exact matches are counted; + relative path names will be resolved starting from + the directory where cloc is invoked. Set + to - to read file names from a STDIN pipe. + See also --exclude-list-file, --config. + --diff-list-file= Take the pairs of file names to be diff'ed from + , whose format matches the output of + --diff-alignment. (Run with that option to + see a sample.) The language identifier at the + end of each line is ignored. This enables --diff + mode and bypasses file pair alignment logic. + Use --diff-list-files to define the file name + pairs in separate files. See also --config. + --diff-list-files + Compute differences in code and comments between + the files and directories listed in and + . Each input file should use the same + format as --list-file, where there is one file or + directory name per line. Only exact matches are + counted; relative path names will be resolved + starting from the directory where cloc is invoked. + This enables --diff mode. See also --list-file, + --diff-list-file, --diff. + --vcs= Invoke a system call to to obtain a list of + files to work on. If is 'git', then will + invoke 'git ls-files' to get a file list and + 'git submodule status' to get a list of submodules + whose contents will be ignored. See also --git + which accepts git commit hashes and branch names. + If is 'svn' then will invoke 'svn list -R'. + The primary benefit is that cloc will then skip + files explicitly excluded by the versioning tool + in question, ie, those in .gitignore or have the + svn:ignore property. + Alternatively may be any system command + that generates a list of files. + Note: cloc must be in a directory which can read + the files as they are returned by . cloc will + not download files from remote repositories. + 'svn list -R' may refer to a remote repository + to obtain file names (and therefore may require + authentication to the remote repository), but + the files themselves must be local. + Setting to 'auto' selects between 'git' + and 'svn' (or neither) depending on the presence + of a .git or .svn subdirectory below the directory + where cloc is invoked. + --unicode Check binary files to see if they contain Unicode + expanded ASCII text. This causes performance to + drop noticeably. + + ${BB}Processing Options${NN} + --autoconf Count .in files (as processed by GNU autoconf) of + recognized languages. See also --no-autogen. + --by-file Report results for every source file encountered. + See also --fmt under 'Output Options'. + --by-file-by-lang Report results for every source file encountered + in addition to reporting by language. + --config Read command line switches from instead of + the default location of $config_file. + The file should contain one switch, along with + arguments (if any), per line. Blank lines and lines + beginning with '#' are skipped. Options given on + the command line take priority over entries read from + the file. + If a directory is also given with any of these + switches: --list-file, --exclude-list-file, + --read-lang-def, --force-lang-def, --diff-list-file + and a config file exists in that directory, it will + take priority over $config_file. + --count-and-diff + First perform direct code counts of source file(s) + of and separately, then perform a diff + of these. Inputs may be pairs of files, directories, + or archives. If --out or --report-file is given, + three output files will be created, one for each + of the two counts and one for the diff. See also + --diff, --diff-alignment, --diff-timeout, + --ignore-case, --ignore-whitespace. + --diff Compute differences in code and comments between + source file(s) of and . The inputs + may be any mix of files, directories, archives, + or git commit hashes. Use --diff-alignment to + generate a list showing which file pairs where + compared. When comparing git branches, only files + which have changed in either commit are compared. + See also --git, --count-and-diff, --diff-alignment, + --diff-list-file, --diff-timeout, --ignore-case, + --ignore-whitespace. + --diff-timeout Ignore files which take more than seconds + to process. Default is 10 seconds. Setting + to 0 allows unlimited time. (Large files with many + repeated lines can cause Algorithm::Diff::sdiff() + to take hours.) See also --timeout. + --docstring-as-code cloc considers docstrings to be comments, but this is + not always correct as docstrings represent regular + strings when they appear on the right hand side of an + assignment or as function arguments. This switch + forces docstrings to be counted as code. + --follow-links [Unix only] Follow symbolic links to directories + (sym links to files are always followed). + See also --stat. + --force-lang=[,] + Process all files that have a extension + with the counter for language . For + example, to count all .f files with the + Fortran 90 counter (which expects files to + end with .f90) instead of the default Fortran 77 + counter, use + --force-lang=\"Fortran 90,f\" + If is omitted, every file will be counted + with the counter. This option can be + specified multiple times (but that is only + useful when is given each time). + See also --script-lang, --lang-no-ext. + --force-lang-def= Load language processing filters from , + then use these filters instead of the built-in + filters. Note: languages which map to the same + file extension (for example: + MATLAB/Mathematica/Objective-C/MUMPS/Mercury; + Pascal/PHP; Lisp/OpenCL; Lisp/Julia; Perl/Prolog) + will be ignored as these require additional + processing that is not expressed in language + definition files. Use --read-lang-def to define + new language filters without replacing built-in + filters (see also --write-lang-def, + --write-lang-def-incl-dup, --config). + --git Forces the inputs to be interpreted as git targets + (commit hashes, branch names, et cetera) if these + are not first identified as file or directory + names. This option overrides the --vcs=git logic + if this is given; in other words, --git gets its + list of files to work on directly from git using + the hash or branch name rather than from + 'git ls-files'. This option can be used with + --diff to perform line count diffs between git + commits, or between a git commit and a file, + directory, or archive. Use -v/--verbose to see + the git system commands cloc issues. + --git-diff-rel Same as --git --diff, or just --diff if the inputs + are recognized as git targets. Only files which + have changed in either commit are compared. + --git-diff-all Git diff strategy #2: compare all files in the + repository between the two commits. + --ignore-whitespace Ignore horizontal white space when comparing files + with --diff. See also --ignore-case. + --ignore-case Ignore changes in case within file contents; + consider upper- and lowercase letters equivalent + when comparing files with --diff. See also + --ignore-whitespace. + --ignore-case-ext Ignore case of file name extensions. This will + cause problems counting some languages + (specifically, .c and .C are associated with C and + C++; this switch would count .C files as C rather + than C++ on *nix operating systems). File name + case insensitivity is always true on Windows. + --lang-no-ext= Count files without extensions using the + counter. This option overrides internal logic + for files without extensions (where such files + are checked against known scripting languages + by examining the first line for #!). See also + --force-lang, --script-lang. + --max-file-size= Skip files larger than megabytes when + traversing directories. By default, =100. + cloc's memory requirement is roughly twenty times + larger than the largest file so running with + files larger than 100 MB on a computer with less + than 2 GB of memory will cause problems. + Note: this check does not apply to files + explicitly passed as command line arguments. + --no-autogen[=list] Ignore files generated by code-production systems + such as GNU autoconf. To see a list of these files + (then exit), run with --no-autogen list + See also --autoconf. + --no-recurse Count files in the given directories without + recursively descending below them. + --original-dir [Only effective in combination with + --strip-comments or --strip-code] Write the stripped + files to the same directory as the original files. + --only-count-files Only count files by language. Blank, comment, and + code counts will be zero. + --read-binary-files Process binary files in addition to text files. + This is usually a bad idea and should only be + attempted with text files that have embedded + binary data. + --read-lang-def= Load new language processing filters from + and merge them with those already known to cloc. + If defines a language cloc already knows + about, cloc's definition will take precedence. + Use --force-lang-def to over-ride cloc's + definitions (see also --write-lang-def, + --write-lang-def-incl-dup, --config). + --script-lang=, Process all files that invoke as a #! + scripting language with the counter for language + . For example, files that begin with + #!/usr/local/bin/perl5.8.8 + will be counted with the Perl counter by using + --script-lang=Perl,perl5.8.8 + The language name is case insensitive but the + name of the script language executable, , + must have the right case. This option can be + specified multiple times. See also --force-lang, + --lang-no-ext. + --sdir= Use as the scratch directory instead of + letting File::Temp chose the location. Files + written to this location are not removed at + the end of the run (as they are with File::Temp). + --skip-leading= Skip the first lines of each file. If a + comma separated list of extensions is also given, + only skip lines from those file types. Example: + --skip-leading=10,cpp,h + will skip the first ten lines of *.cpp and *.h + files. This is useful for ignoring boilerplate + text. + --skip-uniqueness Skip the file uniqueness check. This will give + a performance boost at the expense of counting + files with identical contents multiple times + (if such duplicates exist). + --stat Some file systems (AFS, CD-ROM, FAT, HPFS, SMB) + do not have directory 'nlink' counts that match + the number of its subdirectories. Consequently + cloc may undercount or completely skip the + contents of such file systems. This switch forces + File::Find to stat directories to obtain the + correct count. File search speed will decrease. + See also --follow-links. + --stdin-name= Give a file name to use to determine the language + for standard input. (Use - as the input name to + receive source code via STDIN.) + --strip-code= For each file processed, write to the current + directory a version of the file which has blank + and code lines, including code with (in-line + comments) removed. The name of each stripped file + is the original file name with . appended to + it. It is written to the current directory unless + --original-dir is on. + --strip-comments= For each file processed, write to the current + directory a version of the file which has blank + and commented lines removed (in-line comments + persist). The name of each stripped file is the + original file name with . appended to it. + It is written to the current directory unless + --original-dir is on. + --strip-str-comments Replace comment markers embedded in strings with + 'xx'. This attempts to work around a limitation + in Regexp::Common::Comment where comment markers + embedded in strings are seen as actual comment + markers and not strings, often resulting in a + 'Complex regular subexpression recursion limit' + warning and incorrect counts. There are two + disadvantages to using this switch: 1/code count + performance drops, and 2/code generated with + --strip-comments will contain different strings + where ever embedded comments are found. + --sum-reports Input arguments are report files previously + created with the --report-file option in plain + format (eg. not JSON, YAML, XML, or SQL). + Makes a cumulative set of results containing the + sum of data from the individual report files. + --timeout Ignore files which take more than seconds + to process at any of the language's filter stages. + The default maximum number of seconds spent on a + filter stage is the number of lines in the file + divided by one thousand. Setting to 0 allows + unlimited time. See also --diff-timeout. + --processes=NUM [Available only on systems with a recent version + of the Parallel::ForkManager module. Not + available on Windows.] Sets the maximum number of + cores that cloc uses. The default value of 0 + disables multiprocessing. + --unix Override the operating system autodetection + logic and run in UNIX mode. See also + --windows, --show-os. + --use-sloccount If SLOCCount is installed, use its compiled + executables c_count, java_count, pascal_count, + php_count, and xml_count instead of cloc's + counters. SLOCCount's compiled counters are + substantially faster than cloc's and may give + a performance improvement when counting projects + with large files. However, these cloc-specific + features will not be available: --diff, + --count-and-diff, --strip-code, --strip-comments, + --unicode. + --windows Override the operating system autodetection + logic and run in Microsoft Windows mode. + See also --unix, --show-os. + + ${BB}Filter Options${NN} + --include-content= Only count files containing text that matches the + given regular expression. + --exclude-content= Exclude files containing text that matches the given + regular expression. + --exclude-dir=[,D2,] Exclude the given comma separated directories + D1, D2, D3, et cetera, from being scanned. For + example --exclude-dir=.cache,test will skip + all files and subdirectories that have /.cache/ + or /test/ as their parent directory. + Directories named .bzr, .cvs, .hg, .git, .svn, + and .snapshot are always excluded. + This option only works with individual directory + names so including file path separators is not + allowed. Use --fullpath and --not-match-d= + to supply a regex matching multiple subdirectories. + --exclude-ext=[,[...]] + Do not count files having the given file name + extensions. + --exclude-lang=[,L2[...]] + Exclude the given comma separated languages + L1, L2, L3, et cetera, from being counted. + --exclude-list-file= Ignore files and/or directories whose names + appear in . should have one file + name per line. Only exact matches are ignored; + relative path names will be resolved starting from + the directory where cloc is invoked. + See also --list-file, --config. + --fullpath Modifies the behavior of --match-f, --not-match-f, + and --not-match-d to include the file's path-- + relative to the directory from which cloc is + invoked--in the regex, not just the file's basename. + (This does not expand each filename to include its + fully qualified absolute path; instead, it uses as + much of the path as is passed in to cloc.) + --include-ext=[,ext2[...]] + Count only languages having the given comma + separated file extensions. Use --show-ext to + see the recognized extensions. + --include-lang=[,L2[...]] + Count only the given comma separated, case- + insensitive languages L1, L2, L3, et cetera. Use + --show-lang to see the list of recognized languages. + --match-d= Only count files in directories matching the Perl + regex. For example + --match-d='/(src|include)/' + only counts files in directories containing + /src/ or /include/. Unlike --not-match-d, + --match-f, and --not-match-f, --match-d always + anchors the regex to the directory from which + cloc is invoked. + --not-match-d= Count all files except those in directories + matching the Perl regex. Only the trailing + directory name is compared, for example, when + counting in /usr/local/lib, only 'lib' is + compared to the regex. + Add --fullpath to compare parent directories, beginning + from the directory where cloc is invoked, to the regex. + Do not include file path separators at the beginning + or end of the regex. This option may be repeated. + --match-f= Only count files whose basenames match the Perl + regex. For example + --match-f='^[Ww]idget' + only counts files that start with Widget or widget. + Add --fullpath to include parent directories + in the regex instead of just the basename. + --not-match-f= Count all files except those whose basenames + match the Perl regex. Add --fullpath to include + parent directories in the regex instead of just + the basename. This option may be repeated. + --skip-archive= Ignore files that end with the given Perl regular + expression. For example, if given + --skip-archive='(zip|tar(\.(gz|Z|bz2|xz|7z))?)' + the code will skip files that end with .zip, + .tar, .tar.gz, .tar.Z, .tar.bz2, .tar.xz, and + .tar.7z. + --skip-win-hidden On Windows, ignore hidden files. + + ${BB}Debug Options${NN} + --categorized= Save file sizes in bytes, identified languages + and names of categorized files to . + --counted= Save names of processed source files to . + --diff-alignment= Write to a list of files and file pairs + showing which files were added, removed, and/or + compared during a run with --diff. This switch + forces the --diff mode on. + --explain= Print the filters used to remove comments for + language and exit. In some cases the + filters refer to Perl subroutines rather than + regular expressions. An examination of the + source code may be needed for further explanation. + --help Print this usage information and exit. + --found= Save names of every file found to . + --ignored= Save names of ignored files and the reason they + were ignored to . + --print-filter-stages Print processed source code before and after + each filter is applied. + --show-ext[=] Print information about all known (or just the + given) file extensions and exit. + --show-lang[=] Print information about all known (or just the + given) languages and exit. + --show-os Print the value of the operating system mode + and exit. See also --unix, --windows. + -v[=] Verbose switch (optional numeric value). + -verbose[=] Long form of -v. + --version Print the version of this program and exit. + --write-lang-def= Writes to the language processing filters + then exits. Useful as a first step to creating + custom language definitions. Note: languages which + map to the same file extension will be excluded. + (See also --force-lang-def, --read-lang-def). + --write-lang-def-incl-dup= + Same as --write-lang-def, but includes duplicated + extensions. This generates a problematic language + definition file because cloc will refuse to use + it until duplicates are removed. + + ${BB}Output Options${NN} + --3 Print third-generation language output. + (This option can cause report summation to fail + if some reports were produced with this option + while others were produced without it.) + --by-percent X Instead of comment and blank line counts, show + these values as percentages based on the value + of X in the denominator, where X is + c meaning lines of code + cm meaning lines of code + comments + cb meaning lines of code + blanks + cmb meaning lines of code + comments + blanks + For example, if using method 'c' and your code + has twice as many lines of comments as lines + of code, the value in the comment column will + be 200%. The code column remains a line count. + --csv Write the results as comma separated values. + --csv-delimiter= Use the character as the delimiter for comma + separated files instead of ,. This switch forces + --file-encoding= Write output files using the encoding instead of + the default ASCII ( = 'UTF-7'). Examples: 'UTF-16', + 'euc-kr', 'iso-8859-16'. Known encodings can be + printed with + perl -MEncode -e 'print join(\"\\n\", Encode->encodings(\":all\")), \"\\n\"' + --fmt= Alternate text output format where is a number + from 1 to 5, or -1 to -5. 'total lines' means the + sum of code, comment, and blank lines. Negative + values are the same as the positive values but retain, + instead of deleting, the intermediate JSON file that + is written. The JSON file name is randomly generated + unless --out/--report-file is given. The formats are: + 1: by language (same as cloc default output) + 2: by language with an extra column for total lines + 3: by file with language + 4: by file with a total lines column + 5: by file with language and a total lines column + --hide-rate Do not show elapsed time, line processing rate, or + file processing rates in the output header. This + makes output deterministic. + --json Write the results as JavaScript Object Notation + (JSON) formatted output. + --md Write the results as Markdown-formatted text. + --out= Synonym for --report-file=. + --progress-rate= Show progress update after every files are + processed (default =100). Set to 0 to + suppress progress output (useful when redirecting + output to STDOUT). + --quiet Suppress all information messages except for + the final report. + --report-file= Write the results to instead of STDOUT. + --summary-cutoff=X:N Aggregate to 'Other' results having X lines + below N where X is one of + c meaning lines of code + f meaning files + m meaning lines of comments + cm meaning lines of code + comments + Appending a percent sign to N changes + the calculation from straight count to + percentage. + Ignored with --diff or --by-file. + --sql= Write results as SQL create and insert statements + which can be read by a database program such as + SQLite. If is -, output is sent to STDOUT. + --sql-append Append SQL insert statements to the file specified + by --sql and do not generate table creation + statements. Only valid with the --sql option. + --sql-project= Use as the project identifier for the + current run. Only valid with the --sql option. + --sql-style= + + +

+';
+    print "<- html_header\n" if $opt_v > 2;
+} # 1}}}
+sub html_end {                               # {{{1
+return
+'
+ + +'; +} # 1}}} +sub die_unknown_lang { # {{{1 + my ($lang, $option_name) = @_; + die "Unknown language '$lang' used with $option_name option. " . + "The command\n $script --show-lang\n" . + "will print all recognized languages. Language names are " . + "case sensitive.\n" ; +} # 1}}} +sub unicode_file { # {{{1 + my $file = shift @_; + + print "-> unicode_file($file)\n" if $opt_v > 2; + return 0 if (get_size($file) > 2_000_000); + # don't bother trying to test binary files bigger than 2 MB + + my $IN = open_file('<', $file, 1); + if (!defined $IN) { + warn "Unable to read $file; ignoring.\n"; + return 0; + } + my @lines = <$IN>; + $IN->close; + + if (unicode_to_ascii( join('', @lines) )) { + print "<- unicode_file()\n" if $opt_v > 2; + return 1; + } else { + print "<- unicode_file()\n" if $opt_v > 2; + return 0; + } + +} # 1}}} +sub unicode_to_ascii { # {{{1 + my $string = shift @_; + + # A trivial attempt to convert UTF-16 little or big endian + # files into ASCII. These files exhibit the following byte + # sequence: + # byte 1: 255 + # byte 2: 254 + # byte 3: ord of ASCII character + # byte 4: 0 + # byte 3+i: ord of ASCII character + # byte 4+i: 0 + # or + # byte 1: 255 + # byte 2: 254 + # byte 3: 0 + # byte 4: ord of ASCII character + # byte 3+i: 0 + # byte 4+i: ord of ASCII character + # + print "-> unicode_to_ascii()\n" if $opt_v > 2; + + my $length = length $string; +#print "length=$length\n"; + return '' if $length <= 3; + my @unicode = split(//, $string); + + # check the first 100 characters (= 200 bytes) for big or + # little endian UTF-16 encoding + my $max_peek = $length < 200 ? $length : 200; + my $max_for_pass = $length < 200 ? 0.9*$max_peek/2 : 90; + my @view_1 = (); + for (my $i = 2; $i < $max_peek; $i += 2) { push @view_1, $unicode[$i] } + my @view_2 = (); + for (my $i = 3; $i < $max_peek; $i += 2) { push @view_2, $unicode[$i] } + + my $points_1 = 0; + foreach my $C (@view_1) { + ++$points_1 if (32 <= ord($C) and ord($C) <= 127) or ord($C) == 13 + or ord($C) == 10 + or ord($C) == 9; + } + + my $points_2 = 0; + foreach my $C (@view_2) { + ++$points_2 if (32 <= ord($C) and ord($C) <= 127) or ord($C) == 13 + or ord($C) == 10 + or ord($C) == 9; + } +#print "points 1: $points_1\n"; +#print "points 2: $points_2\n"; +#print "max_peek : $max_peek\n"; +#print "max_for_pass: $max_for_pass\n"; + + my $offset = undef; + if ($points_1 > $max_for_pass) { $offset = 2; } + elsif ($points_2 > $max_for_pass) { $offset = 3; } + else { + print "<- unicode_to_ascii() a p1=$points_1 p2=$points_2\n" if $opt_v > 2; + return ''; + } # neither big or little endian UTF-16 + + my @ascii = (); + for (my $i = $offset; $i < $length; $i += 2) { + # some compound characters are made of HT (9), LF (10), or CR (13) + # True HT, LF, CR are followed by 00; only add those. + my $L = $unicode[$i]; + if (ord($L) == 9 or ord($L) == 10 or ord($L) == 13) { + my $companion; + if ($points_1) { + last if $i+1 >= $length; + $companion = $unicode[$i+1]; + } else { + $companion = $unicode[$i-1]; + } + if (ord($companion) == 0) { + push @ascii, $L; + } else { + push @ascii, " "; # no clue what this letter is + } + } else { + push @ascii, $L; + } + } + print "<- unicode_to_ascii() b p1=$points_1 p2=$points_2\n" if $opt_v > 2; + return join("", @ascii); +} # 1}}} +sub uncompress_archive_cmd { # {{{1 + my ($archive_file, ) = @_; + + # Wrap $archive_file in single or double quotes in the system + # commands below to avoid filename chicanery (including + # spaces in the names). + + print "-> uncompress_archive_cmd($archive_file)\n" if $opt_v > 2; + my $extract_cmd = ""; + my $missing = ""; + if ($opt_extract_with) { + ( $extract_cmd = $opt_extract_with ) =~ s/>FILE -"; + } elsif ($archive_file =~ /\.tar$/ and $ON_WINDOWS) { + $extract_cmd = "tar -xf \"$archive_file\""; + } elsif (($archive_file =~ /\.tar\.(gz|Z)$/ or + $archive_file =~ /\.tgz$/ ) and !$ON_WINDOWS) { + if (external_utility_exists("gzip --version")) { + if (external_utility_exists("tar --version")) { + $extract_cmd = "gzip -dc '$archive_file' | tar xf -"; + } else { + $missing = "tar"; + } + } else { + $missing = "gzip"; + } + } elsif ($archive_file =~ /\.tar\.bz2$/ and !$ON_WINDOWS) { + if (external_utility_exists("bzip2 --help")) { + if (external_utility_exists("tar --version")) { + $extract_cmd = "bzip2 -dc '$archive_file' | tar xf -"; + } else { + $missing = "tar"; + } + } else { + $missing = "bzip2"; + } + } elsif ($archive_file =~ /\.tar\.xz$/ and !$ON_WINDOWS) { + if (external_utility_exists("unxz --version")) { + if (external_utility_exists("tar --version")) { + $extract_cmd = "unxz -dc '$archive_file' | tar xf -"; + } else { + $missing = "tar"; + } + } else { + $missing = "bzip2"; + } + } elsif ($archive_file =~ /\.tar$/ and !$ON_WINDOWS) { + $extract_cmd = "tar xf '$archive_file'"; + } elsif ($archive_file =~ /\.src\.rpm$/i and !$ON_WINDOWS) { + if (external_utility_exists("cpio --version")) { + if (external_utility_exists("rpm2cpio")) { + $extract_cmd = "rpm2cpio '$archive_file' | cpio -i"; + } else { + $missing = "rpm2cpio"; + } + } else { + $missing = "bzip2"; + } + } elsif ($archive_file =~ /\.(whl|zip)$/i and !$ON_WINDOWS) { + if (external_utility_exists("unzip")) { + $extract_cmd = "unzip -qq -d . '$archive_file'"; + } else { + $missing = "unzip"; + } + } elsif ($archive_file =~ /\.deb$/i and !$ON_WINDOWS) { + # only useful if the .deb contains source code--most + # .deb files just have compiled executables + if (external_utility_exists("dpkg-deb")) { + $extract_cmd = "dpkg-deb -x '$archive_file' ."; + } else { + $missing = "dpkg-deb"; + } + } elsif ($ON_WINDOWS and $archive_file =~ /\.(whl|zip)$/i) { + # use unzip on Windows (comes with git-for-Windows) + if (external_utility_exists("unzip")) { + $extract_cmd = "unzip -qq -d . \"$archive_file\" "; + } else { + $missing = "unzip"; + } + } + print "<- uncompress_archive_cmd\n" if $opt_v > 2; + if ($missing) { + die "Unable to expand $archive_file because external\n", + "utility '$missing' is not available.\n", + "Another possibility is to use the --extract-with option.\n"; + } else { + return $extract_cmd; + } +} +# 1}}} +sub read_list_file { # {{{1 + my ($file, ) = @_; + # reads filenames from a STDIN pipe if $file == "-" + + print "-> read_list_file($file)\n" if $opt_v > 2; + my @entry = (); + + if ($file eq "-") { + # read from a STDIN pipe + my $IN; + open($IN, $file); + if (!defined $IN) { + warn "Unable to read $file; ignoring.\n"; + return (); + } + while (<$IN>) { + next if /^\s*$/ or /^\s*#/; # skip empty or commented lines + s/\cM$//; # DOS to Unix + chomp; + push @entry, $_; + } + $IN->close; + } else { + # read from an actual file + foreach my $line (read_file($file)) { + next if $line =~ /^\s*$/ or $line =~ /^\s*#/; + $line =~ s/\cM$//; # DOS to Unix + chomp $line; + push @entry, $line; + } + } + + print "<- read_list_file\n" if $opt_v > 2; + return @entry; +} +# 1}}} +sub external_utility_exists { # {{{1 + my $exe = shift @_; + + my $success = 0; + if ($ON_WINDOWS) { + $success = 1 unless system $exe . ' > nul'; + } else { + $success = 1 unless system $exe . ' >/dev/null 2>&1'; + if (!$success) { + $success = 1 unless system "which" . " $exe" . ' >/dev/null 2>&1'; + } + } + + return $success; +} # 1}}} +sub write_xsl_file { # {{{1 + print "-> write_xsl_file\n" if $opt_v > 2; + my $XSL = # {{{2 +' + + + + + + + CLOC Results + + + +

+'; +# 2}}} + + if ($opt_by_file) { + $XSL .= #
{{{2 +' + + + + + + + +'; + $XSL .= +' + +' if $opt_3; + $XSL .= +' + + + + + + + + + +'; + $XSL .= +' + +' if $opt_3; + $XSL .= +' + + + + + + + +'; + $XSL .= +' + +' if $opt_3; + $XSL .= +' + +
FileBlankCommentCodeLanguage3rd Generation EquivalentScale
Total
+
+'; +# 2}}} + } + + if (!$opt_by_file or $opt_by_file_by_lang) { + $XSL .= #
{{{2 +' + + + + + + + +'; + $XSL .= +' + +' if $opt_3; + $XSL .= +' + + + + + + + + + +'; + $XSL .= +' + +' if $opt_3; + $XSL .= +' + + + + + + + +'; + $XSL .= +' + +' if $opt_3; + $XSL .= +' + +
LanguageFilesBlankCommentCodeScale3rd Generation Equivalent
Total
+'; +# 2}}} + } + + $XSL.= <<'EO_XSL'; # {{{2 + + +
+
+ +EO_XSL +# 2}}} + + my $XSL_DIFF = <<'EO_DIFF_XSL'; # {{{2 + + + + + + + + CLOC Results + + + +

+EO_DIFF_XSL +# 2}}} + + if ($opt_by_file) { + $XSL_DIFF.= <<'EO_DIFF_XSL'; # {{{2 + + + + + + + + + + + + + + + + + + + + + +
Same
FileBlankCommentCode
+ + + + + + + + + + + + + + + + + + + + + + +
Modified
FileBlankCommentCode
+ + + + + + + + + + + + + + + + + + + + + + +
Added
FileBlankCommentCode
+ + + + + + + + + + + + + + + + + + + + + + +
Removed
FileBlankCommentCode
+EO_DIFF_XSL +# 2}}} + } + + if (!$opt_by_file or $opt_by_file_by_lang) { + $XSL_DIFF.= <<'EO_DIFF_XSL'; # {{{2 + + + + + + + + + + + + + + + + + + + + + + + +
Same
LanguageFilesBlankCommentCode
+ + + + + + + + + + + + + + + + + + + + + + + + +
Modified
LanguageFilesBlankCommentCode
+ + + + + + + + + + + + + + + + + + + + + + + + +
Added
LanguageFilesBlankCommentCode
+ + + + + + + + + + + + + + + + + + + + + + + + +
Removed
LanguageFilesBlankCommentCode
+EO_DIFF_XSL +# 2}}} + + } + + $XSL_DIFF.= <<'EO_DIFF_XSL'; # {{{2 + + +
+
+EO_DIFF_XSL +# 2}}} + if ($opt_diff) { + write_file($CLOC_XSL, {}, ( $XSL_DIFF ) ); + } else { + write_file($CLOC_XSL, {}, ( $XSL ) ); + } + print "<- write_xsl_file\n" if $opt_v > 2; +} # 1}}} +sub normalize_file_names { # {{{1 + print "-> normalize_file_names\n" if $opt_v > 2; + my (@files, ) = @_; + + # Returns a hash of file names reduced to a canonical form + # (fully qualified file names, all path separators changed to /, + # Windows file names lowercased). Hash values are the original + # file name. + + my %normalized = (); + foreach my $F (@files) { + my $F_norm = $F; + if ($ON_WINDOWS) { + $F_norm = lc $F_norm; # for case insensitive file name comparisons + $F_norm =~ s{\\}{/}g; # Windows directory separators to Unix + $F_norm =~ s{^\./}{}g; # remove leading ./ + if (($F_norm !~ m{^/}) and ($F_norm !~ m{^\w:/})) { + # looks like a relative path; prefix with cwd + $F_norm = lc "$cwd/$F_norm"; + } + } else { + $F_norm =~ s{^\./}{}g; # remove leading ./ + if ($F_norm !~ m{^/}) { + # looks like a relative path; prefix with cwd + $F_norm = "$cwd/$F_norm"; + } + } + # Remove trailing / so it does not interfere with further regex code + # that does not expect it + $F_norm =~ s{/+$}{}; + $normalized{ $F_norm } = $F; + } + print "<- normalize_file_names\n" if $opt_v > 2; + return %normalized; +} # 1}}} +sub combine_diffs { # {{{1 + # subroutine by Andy (awalshe@sf.net) + # https://sourceforge.net/tracker/?func=detail&aid=3261017&group_id=174787&atid=870625 + my ($ra_files) = @_; + print "-> combine_diffs\n" if $opt_v > 2; + + my $res = "$URL v $VERSION\n"; + my $dl = '-'; + my $width = 79; + # columns are in this order + my @cols = ('files', 'blank', 'comment', 'code'); + my %HoH = (); + + foreach my $file (@{$ra_files}) { + my $IN = open_file('<', $file, 1); + if (!defined $IN) { + warn "Unable to read $file; ignoring.\n"; + next; + } + + my $sec; + while (<$IN>) { + chomp; + s/\cM$//; + next if /^(http|Language|-----)/; + if (/^[A-Za-z0-9]+/) { # section title + $sec = $_; + chomp($sec); + $HoH{$sec} = () if ! exists $HoH{$sec}; + next; + } + + if (/^\s(same|modified|added|removed)/) { # calculated totals row + my @ar = grep { $_ ne '' } split(/ /, $_); + chomp(@ar); + my $ttl = shift @ar; + my $i = 0; + foreach(@ar) { + my $t = "${ttl}${dl}${cols[$i]}"; + $HoH{$sec}{$t} = 0 if ! exists $HoH{$sec}{$t}; + $HoH{$sec}{$t} += $_; + $i++; + } + } + } + $IN->close; + } + + # rows are in this order + my @rows = ('same', 'modified', 'added', 'removed'); + + $res .= sprintf("%s\n", "-" x $width); + $res .= sprintf("%-19s %14s %14s %14s %14s\n", 'Language', + $cols[0], $cols[1], $cols[2], $cols[3]); + $res .= sprintf("%s\n", "-" x $width); + + # no inputs? %HoH will be empty + return $res unless %HoH; + + for my $sec ( keys %HoH ) { + next if $sec =~ /SUM:/; + next unless defined $HoH{$sec}; # eg, the header line + $res .= "$sec\n"; + foreach (@rows) { + $res .= sprintf(" %-18s %14s %14s %14s %14s\n", + $_, $HoH{$sec}{"${_}${dl}${cols[0]}"}, + $HoH{$sec}{"${_}${dl}${cols[1]}"}, + $HoH{$sec}{"${_}${dl}${cols[2]}"}, + $HoH{$sec}{"${_}${dl}${cols[3]}"}); + } + } + $res .= sprintf("%s\n", "-" x $width); + my $sec = 'SUM:'; + $res .= "$sec\n"; + foreach (@rows) { + $res .= sprintf(" %-18s %14s %14s %14s %14s\n", + $_, $HoH{$sec}{"${_}${dl}${cols[0]}"}, + $HoH{$sec}{"${_}${dl}${cols[1]}"}, + $HoH{$sec}{"${_}${dl}${cols[2]}"}, + $HoH{$sec}{"${_}${dl}${cols[3]}"}); + } + $res .= sprintf("%s\n", "-" x $width); + + print "<- combine_diffs\n" if $opt_v > 2; + return $res; +} # 1}}} +sub combine_csv_diffs { # {{{1 + my ($delimiter, $ra_files) = @_; + print "-> combine_csv_diffs\n" if $opt_v > 2; + + my %sum = (); # sum{ language } = array of 17 values + foreach my $file (@{$ra_files}) { + my $IN = open_file('<', $file, 1); + if (!defined $IN) { + warn "Unable to read $file; ignoring.\n"; + next; + } + + my $sec; + while (<$IN>) { + next if /^Language${delimiter}\s==\sfiles${delimiter}/; + chomp; + my @words = split(/$delimiter/); + my $n_col = scalar(@words); + if ($n_col != 18) { + warn "combine_csv_diffs(): Parse failure line $. of $file\n"; + warn "Expected 18 columns, got $n_col\n"; + die; + } + my $Lang = $words[0]; + my @count = map { int($_) } @words[1..16]; + if (defined $sum{$Lang}) { + for (my $i = 0; $i < 16; $i++) { + $sum{$Lang}[$i] += $count[$i]; + } + } else { + @{$sum{$Lang}} = @count; + } + } + $IN->close; + } + + my @header = ("Language", "== files", "!= files", "+ files", "- files", + "== blank", "!= blank", "+ blank", "- blank", "== comment", + "!= comment", "+ comment", "- comment", "== code", + "!= code", "+ code", "- code", "$URL v $VERSION" ); + + my $res = join("$delimiter ", @header) . "$delimiter\n"; + foreach my $Lang (sort keys %sum) { + $res .= $Lang . "$delimiter "; + for (my $i = 0; $i < 16; $i++) { + $res .= $sum{$Lang}[$i] . "$delimiter "; + } + $res .= "\n"; + } + + print "<- combine_csv_diffs\n" if $opt_v > 2; + return $res; +} # 1}}} +sub get_time { # {{{1 + if ($HAVE_Time_HiRes) { + return Time::HiRes::time(); + } else { + return time(); + } +} # 1}}} +sub really_is_D { # {{{1 + # Ref bug 131, files ending with .d could be init.d scripts + # instead of D language source files. + my ($file , # in + $rh_Err , # in hash of error codes + $raa_errors , # out + ) = @_; + print "-> really_is_D($file)\n" if $opt_v > 2; + my ($possible_script, $L) = peek_at_first_line($file, $rh_Err, $raa_errors); + + print "<- really_is_D($file)\n" if $opt_v > 2; + return $possible_script; # null string if D, otherwise a language +} # 1}}} +sub no_autogen_files { # {{{1 + # ref https://github.com/AlDanial/cloc/issues/151 + my ($print,) = @_; + print "-> no_autogen($print)\n" if $opt_v > 2; + + # These sometimes created manually? + # acinclude.m4 + # configure.ac + # Makefile.am + + my @files = qw ( + aclocal.m4 + announce-gen + autogen.sh + bootstrap + compile + config.guess + config.h.in + config.rpath + config.status + config.sub + configure + configure.in + depcomp + gendocs.sh + gitlog-to-changelog + git-version-gen + gnupload + gnu-web-doc-update + install-sh + libtool + libtool.m4 + link-warning.h + ltmain.sh + lt~obsolete.m4 + ltoptions.m4 + ltsugar.m4 + ltversion.in + ltversion.m4 + Makefile.in + mdate-sh + missing + mkinstalldirs + test-driver + texinfo.tex + update-copyright + useless-if-before-free + vc-list-files + ylwrap + ); + + if ($print) { + printf "cloc will ignore these %d files with --no-autogen:\n", scalar @files; + foreach my $F (@files) { + print " $F\n"; + } + print "Additionally, Go files with '// Code generated by .* DO NOT EDIT.'\n"; + print "on the first line are ignored.\n"; + } + print "<- no_autogen()\n" if $opt_v > 2; + return @files; +} # 1}}} +sub load_from_config_file { # {{{1 + # Supports all options except --config itself which would + # be pointless. + my ($config_file, + $rs_by_file , + $rs_by_file_by_lang , + $rs_categorized , + $rs_counted , + $rs_include_ext , + $rs_include_lang , + $rs_include_content , + $rs_exclude_content , + $rs_exclude_lang , + $rs_exclude_dir , + $rs_exclude_list_file , + $rs_explain , + $rs_extract_with , + $rs_found , + $rs_count_diff , + $rs_diff_list_files , + $rs_diff , + $rs_diff_alignment , + $rs_diff_timeout , + $rs_timeout , + $rs_html , + $rs_ignored , + $rs_quiet , + $rs_force_lang_def , + $rs_read_lang_def , + $rs_show_ext , + $rs_show_lang , + $rs_progress_rate , + $rs_print_filter_stages , + $rs_report_file , + $ra_script_lang , + $rs_sdir , + $rs_skip_uniqueness , + $rs_strip_code , + $rs_strip_comments , + $rs_original_dir , + $rs_sum_reports , + $rs_hide_rate , + $rs_processes , + $rs_unicode , + $rs_3 , + $rs_v , + $rs_vcs , + $rs_version , + $rs_write_lang_def , + $rs_write_lang_def_incl_dup, + $rs_xml , + $rs_xsl , + $ra_force_lang , + $rs_lang_no_ext , + $rs_yaml , + $rs_csv , + $rs_csv_delimiter , + $rs_json , + $rs_md , + $rs_fullpath , + $rs_match_f , + $ra_not_match_f , + $rs_match_d , + $ra_not_match_d , + $rs_list_file , + $rs_help , + $rs_skip_win_hidden , + $rs_read_binary_files , + $rs_sql , + $rs_sql_project , + $rs_sql_append , + $rs_sql_style , + $rs_inline , + $rs_exclude_ext , + $rs_ignore_whitespace , + $rs_ignore_case , + $rs_ignore_case_ext , + $rs_follow_links , + $rs_autoconf , + $rs_sum_one , + $rs_by_percent , + $rs_stdin_name , + $rs_force_on_windows , + $rs_force_on_unix , + $rs_show_os , + $rs_skip_archive , + $rs_max_file_size , + $rs_use_sloccount , + $rs_no_autogen , + $rs_force_git , + $rs_strip_str_comments , + $rs_file_encoding , + $rs_docstring_as_code , + $rs_stat , + ) = @_; + # look for runtime configuration file in + # $ENV{'HOME'}/.config/cloc/options.txt -> POSIX + # $ENV{'APPDATA'} . 'cloc' + + print "-> load_from_config_file($config_file)\n" if $opt_v and $opt_v > 2; + if (!is_file($config_file)) { + print "<- load_from_config_file() (no such file: $config_file)\n" if $opt_v and $opt_v > 2; + return; + } elsif (!can_read($config_file)) { + print "<- load_from_config_file() (unable to read $config_file)\n" if $opt_v and $opt_v > 2; + return; + } + print "Reading options from $config_file.\n" if defined $opt_v; + + my $has_force_lang = @{$ra_force_lang}; + my $has_script_lang = @{$ra_script_lang}; + my @lines = read_file($config_file); + foreach (@lines) { + next if /^\s*$/ or /^\s*#/; + s/\s*--//; + s/^\s+//; + if (!defined ${$rs_by_file} and /^(by_file|by-file)/) { ${$rs_by_file} = 1; + } elsif (!defined ${$rs_by_file_by_lang} and /^(by_file_by_lang|by-file-by-lang)/) { ${$rs_by_file_by_lang} = 1; + } elsif (!defined ${$rs_categorized} and /^categorized(=|\s+)(.*?)$/) { ${$rs_categorized} = $2; + } elsif (!defined ${$rs_counted} and /^counted(=|\s+)(.*?)$/) { ${$rs_counted} = $2; + } elsif (!defined ${$rs_include_ext} and /^(?:include_ext|include-ext)(=|\s+)(.*?)$/) { ${$rs_include_ext} = $2; + } elsif (!defined ${$rs_include_lang} and /^(?:include_lang|include-lang)(=|\s+)(.*?)$/) { ${$rs_include_lang} = $2; + } elsif (!defined ${$rs_include_content} and /^(?:include_content|include-content)(=|\s+)(.*?)$/) { ${$rs_include_content} = $2; + } elsif (!defined ${$rs_exclude_content} and /^(?:exclude_content|exclude-content)(=|\s+)(.*?)$/) { ${$rs_exclude_content} = $2; + } elsif (!defined ${$rs_exclude_lang} and /^(?:exclude_lang|exclude-lang)(=|\s+)(.*?)$/) { ${$rs_exclude_lang} = $2; + } elsif (!defined ${$rs_exclude_dir} and /^(?:exclude_dir|exclude-dir)(=|\s+)(.*?)$/) { ${$rs_exclude_dir} = $2; + } elsif (!defined ${$rs_explain} and /^explain(=|\s+)(.*?)$/) { ${$rs_explain} = $2; + } elsif (!defined ${$rs_extract_with} and /^(?:extract_with|extract-with)(=|\s+)(.*?)$/) { ${$rs_extract_with} = $2; + } elsif (!defined ${$rs_found} and /^found(=|\s+)(.*?)$/) { ${$rs_found} = $2; + } elsif (!defined ${$rs_count_diff} and /^(count_and_diff|count-and-diff)/) { ${$rs_count_diff} = 1; + } elsif (!defined ${$rs_diff_list_files} and /^(diff_list_files|diff-list-files)/) { ${$rs_diff_list_files} = 1; + } elsif (!defined ${$rs_diff} and /^diff/) { ${$rs_diff} = 1; + } elsif (!defined ${$rs_diff_alignment} and /^(?:diff-alignment|diff_alignment)(=|\s+)(.*?)$/) { ${$rs_diff_alignment} = $2; + } elsif (!defined ${$rs_diff_timeout} and /^(?:diff-timeout|diff_timeout)(=|\s+)i/) { ${$rs_diff_timeout} = $1; + } elsif (!defined ${$rs_timeout} and /^timeout(=|\s+)i/) { ${$rs_timeout} = $1; + } elsif (!defined ${$rs_html} and /^html/) { ${$rs_html} = 1; + } elsif (!defined ${$rs_ignored} and /^ignored(=|\s+)(.*?)$/) { ${$rs_ignored} = $2; + } elsif (!defined ${$rs_quiet} and /^quiet/) { ${$rs_quiet} = 1; + } elsif (!defined ${$rs_force_lang_def} and /^(?:force_lang_def|force-lang-def)(=|\s+)(.*?)$/) { ${$rs_force_lang_def} = $2; + } elsif (!defined ${$rs_read_lang_def} and /^(?:read_lang_def|read-lang-def)(=|\s+)(.*?)$/) { ${$rs_read_lang_def} = $2; + } elsif (!defined ${$rs_progress_rate} and /^(?:progress_rate|progress-rate)(=|\s+)(\d+)/) { ${$rs_progress_rate} = $2; + } elsif (!defined ${$rs_print_filter_stages} and /^(print_filter_stages|print-filter-stages)/) { ${$rs_print_filter_stages}= 1; + } elsif (!defined ${$rs_report_file} and /^(?:report_file|report-file)(=|\s+)(.*?)$/) { ${$rs_report_file} = $2; + } elsif (!defined ${$rs_report_file} and /^out(=|\s+)(.*?)$/) { ${$rs_report_file} = $2; + } elsif (!defined ${$rs_sdir} and /^sdir(=|\s+)(.*?)$/) { ${$rs_sdir} = $2; + } elsif (!defined ${$rs_skip_uniqueness} and /^(skip_uniqueness|skip-uniqueness)/) { ${$rs_skip_uniqueness} = 1; + } elsif (!defined ${$rs_strip_code} and /^(?:strip_code|strip-code)(=|\s+)(.*?)$/) { ${$rs_strip_code} = $2; + } elsif (!defined ${$rs_strip_comments} and /^(?:strip_comments|strip-comments)(=|\s+)(.*?)$/) { ${$rs_strip_comments} = $2; + } elsif (!defined ${$rs_original_dir} and /^(original_dir|original-dir)/) { ${$rs_original_dir} = 1; + } elsif (!defined ${$rs_sum_reports} and /^(sum_reports|sum-reports)/) { ${$rs_sum_reports} = 1; + } elsif (!defined ${$rs_hide_rate} and /^(hid_rate|hide-rate)/) { ${$rs_hide_rate} = 1; + } elsif (!defined ${$rs_processes} and /^processes(=|\s+)(\d+)/) { ${$rs_processes} = $2; + } elsif (!defined ${$rs_unicode} and /^unicode/) { ${$rs_unicode} = 1; + } elsif (!defined ${$rs_3} and /^3/) { ${$rs_3} = 1; + } elsif (!defined ${$rs_vcs} and /^vcs(=|\s+)(\S+)/) { ${$rs_vcs} = $2; + } elsif (!defined ${$rs_version} and /^version/) { ${$rs_version} = 1; + } elsif (!defined ${$rs_write_lang_def} and /^(?:write_lang_def|write-lang-def)(=|\s+)(.*?)$/) { ${$rs_write_lang_def} = $2; + } elsif (!defined ${$rs_write_lang_def_incl_dup} and /^(?:write_lang_def_incl_dup|write-lang-def-incl-dup)(=|\s+)(.*?)$/) { ${$rs_write_lang_def_incl_dup} = $2; + } elsif (!defined ${$rs_xml} and /^xml/) { ${$rs_xml} = 1; + } elsif (!defined ${$rs_xsl} and /^xsl(=|\s+)(.*?)$/) { ${$rs_xsl} = $2; + } elsif (!defined ${$rs_lang_no_ext} and /^(?:lang_no_ext|lang-no-ext)(=|\s+)(.*?)$/) { ${$rs_lang_no_ext} = $2; + } elsif (!defined ${$rs_yaml} and /^yaml/) { ${$rs_yaml} = 1; + } elsif (!defined ${$rs_csv} and /^csv/) { ${$rs_csv} = 1; + } elsif (!defined ${$rs_csv_delimiter} and /^(?:csv_delimiter|csv-delimiter)(=|\s+)(.*?)$/) { ${$rs_csv_delimiter} = $2; + } elsif (!defined ${$rs_json} and /^json/) { ${$rs_json} = 1; + } elsif (!defined ${$rs_md} and /^md/) { ${$rs_md} = 1; + } elsif (!defined ${$rs_fullpath} and /^fullpath/) { ${$rs_fullpath} = 1; + } elsif (!defined ${$rs_match_f} and /^(?:match_f|match-f)(=|\s+)(.*?)$/) { ${$rs_match_f} = $2; + } elsif (! @{$ra_not_match_f} and /^(?:not_match_f|not-match-f)(=|\s+)(.*?)$/) { push @{$ra_not_match_f} , $2; + } elsif (!defined ${$rs_match_d} and /^(?:match_d|match-d)(=|\s+)(.*?)$/) { ${$rs_match_d} = $2; + } elsif (! @{$ra_not_match_d} and /^(?:not_match_d|not-match-d)(=|\s+)(.*?)$/) { push @{$ra_not_match_d} , $2; + } elsif (!defined ${$rs_list_file} and /^(?:list_file|list-file)(=|\s+)(.*?)$/) { ${$rs_list_file} = $2; + } elsif (!defined ${$rs_help} and /^help/) { ${$rs_help} = 1; + } elsif (!defined ${$rs_skip_win_hidden} and /^(skip_win_hidden|skip-win-hidden)/) { ${$rs_skip_win_hidden} = 1; + } elsif (!defined ${$rs_read_binary_files} and /^(read_binary_files|read-binary-files)/) { ${$rs_read_binary_files} = 1; + } elsif (!defined ${$rs_sql} and /^sql(=|\s+)(.*?)$/) { ${$rs_sql} = $2; + } elsif (!defined ${$rs_sql_project} and /^(?:sql_project|sql-project)(=|\s+)(.*?)$/) { ${$rs_sql_project} = $2; + } elsif (!defined ${$rs_sql_append} and /^(sql_append|sql-append)/) { ${$rs_sql_append} = 1; + } elsif (!defined ${$rs_sql_style} and /^(?:sql_style|sql-style)(=|\s+)(.*?)$/) { ${$rs_sql_style} = $2; + } elsif (!defined ${$rs_inline} and /^inline/) { ${$rs_inline} = 1; + } elsif (!defined ${$rs_exclude_ext} and /^(?:exclude_ext|exclude-ext)(=|\s+)(.*?)$/) { ${$rs_exclude_ext} = $2; + } elsif (!defined ${$rs_ignore_whitespace} and /^(ignore_whitespace|ignore-whitespace)/) { ${$rs_ignore_whitespace} = 1; + } elsif (!defined ${$rs_ignore_case_ext} and /^(ignore_case_ext|ignore-case-ext)/) { ${$rs_ignore_case_ext} = 1; + } elsif (!defined ${$rs_ignore_case} and /^(ignore_case|ignore-case)/) { ${$rs_ignore_case} = 1; + } elsif (!defined ${$rs_follow_links} and /^(follow_links|follow-links)/) { ${$rs_follow_links} = 1; + } elsif (!defined ${$rs_autoconf} and /^autoconf/) { ${$rs_autoconf} = 1; + } elsif (!defined ${$rs_sum_one} and /^(sum_one|sum-one)/) { ${$rs_sum_one} = 1; + } elsif (!defined ${$rs_by_percent} and /^(?:by_percent|by-percent)(=|\s+)(.*?)$/) { ${$rs_by_percent} = $2; + } elsif (!defined ${$rs_stdin_name} and /^(?:stdin_name|stdin-name)(=|\s+)(.*?)$/) { ${$rs_stdin_name} = $2; + } elsif (!defined ${$rs_force_on_windows} and /^windows/) { ${$rs_force_on_windows} = 1; + } elsif (!defined ${$rs_force_on_unix} and /^unix/) { ${$rs_force_on_unix} = 1; + } elsif (!defined ${$rs_show_os} and /^(show_os|show-os)/) { ${$rs_show_os} = 1; + } elsif (!defined ${$rs_skip_archive} and /^(?:skip_archive|skip-archive)(=|\s+)(.*?)$/) { ${$rs_skip_archive} = $2; + } elsif (!defined ${$rs_max_file_size} and /^(?:max_file_size|max-file-size)(=|\s+)(\d+)/) { ${$rs_max_file_size} = $2; + } elsif (!defined ${$rs_use_sloccount} and /^(use_sloccount|use-sloccount)/) { ${$rs_use_sloccount} = 1; + } elsif (!defined ${$rs_no_autogen} and /^(no_autogen|no-autogen)/) { ${$rs_no_autogen} = 1; + } elsif (!defined ${$rs_force_git} and /^git/) { ${$rs_force_git} = 1; + } elsif (!defined ${$rs_exclude_list_file} and /^(?:exclude_list_file|exclude-list-file)(=|\s+)(.*?)$/) + { ${$rs_exclude_list_file} = $2; + } elsif (!defined ${$rs_v} and /^(verbose|v)((=|\s+)(\d+))?/) { + if (!defined $4) { ${$rs_v} = 0; } + else { ${$rs_v} = $4; } + } elsif (!$has_script_lang and /^(?:script_lang|script-lang)(=|\s+)(.*?)$/) { + push @{$ra_script_lang} , $2; + } elsif (!$has_force_lang and /^(?:force_lang|force-lang)(=|\s+)(.*?)$/) { + push @{$ra_force_lang} , $2; + } elsif (!defined ${$rs_show_ext} and /^(show_ext|show-ext)((=|\s+)(.*))?$/) { + if (!defined $4) { ${$rs_show_ext} = 0; } + else { ${$rs_show_ext} = $4; } + } elsif (!defined ${$rs_show_lang} and /^(show_lang|show-lang)((=|\s+)(.*))?s/){ + if (!defined $4) { ${$rs_show_lang} = 0; } + else { ${$rs_show_lang} = $4; } + } elsif (!defined ${$rs_strip_str_comments} and /^(strip_str_comments|strip-str-comments)/) { ${$rs_strip_str_comments} = 1; + } elsif (!defined ${$rs_file_encoding} and /^(?:file_encoding|file-encoding)(=|\s+)(\S+)/) { ${$rs_file_encoding} = $2; + } elsif (!defined ${$rs_docstring_as_code} and /^(docstring_as_code|docstring-as-code)/) { ${$rs_docstring_as_code} = 1; + } elsif (!defined ${$rs_stat} and /stat/) { ${$rs_stat} = 1; + } + + } +} # 1}}} +sub trick_pp_packer_encode { # {{{1 + use Encode; + # PAR::Packer gives 'Unknown PerlIO layer "encoding"' unless it is + # forced into using this module. + my ($OUT, $JunkFile) = tempfile(UNLINK => 1); # delete on exit + open($OUT, "> :encoding(utf8)", $JunkFile); + close($OUT); +} +# 1}}} +sub really_is_smarty { # {{{1 + # Given filename, returns TRUE if its contents look like Smarty template + my ($filename, ) = @_; + + print "-> really_is_smarty($filename)\n" if $opt_v > 2; + + my @lines = read_file($filename); + + my $points = 0; + foreach my $L (@lines) { + if (($L =~ /\{(if|include)\s/) or + ($L =~ /\{\/if\}/) or + ($L =~ /(\{\*|\*\})/) or + ($L =~ /\{\$\w/)) { + ++$points; + } + last if $points >= 2; + } + print "<- really_is_smarty(points=$points)\n" if $opt_v > 2; + return $points >= 2; +} # 1}}} +sub check_alternate_config_files { # {{{1 + my ($list_file, $exclude_list_file, $read_lang_def, + $force_lang_def, $diff_list_file, ) = @_; + my $found_it = ""; + foreach my $file ($list_file, + $exclude_list_file, + $read_lang_def, + $force_lang_def, + $diff_list_file ) { + next unless defined $file; + my $dir = dirname $file; + next unless can_read($dir) and is_dir($dir); + my $bn = basename $config_file; + if (can_read("$dir/$bn")) { + $found_it = "$dir/$bn"; + print "Using configuration file $found_it\n" if $opt_v; + last; + } + } + return $found_it; +} +# 1}}} +sub write_null_results { # {{{ + my ($json, $xml, $report_file,) = @_; + print "-> write_null_results\n" if $opt_v > 2; + if ((defined $json) or (defined $xml)) { + my $line = ""; + if (defined $json) { + $line = "{}"; + } else { + $line = ''; + } + if (defined $report_file) { + open OUT, ">$report_file" or die "Cannot write to $report_file $!\n"; + print OUT "$line\n"; + close OUT; + } else { + print "$line\n"; + } + } + print "<- write_null_results\n" if $opt_v > 2; +} # }}} +sub glob2regex { # {{{ + # convert simple xpath-style glob pattern to a regex + my $globstr = shift; + my $re = $globstr; + $re =~ s{^["']}{}; + $re =~ s{^\.\/}{}; + $re =~ s{["']$}{}; + $re =~ s{\.}{\\.}g; + $re =~ s{\*\*}{\cx}g; # ctrl x = .*? + $re =~ s{\*}{\cy}g; # ctrl y = [^/]* + $re =~ s{\cx}{.*?}g; + $re =~ s{\cy}{[^/]*}g; + return '^' . $re . '$'; +} # }}} +sub load_json { # {{{1 + # + # Load a cloc-generated JSON string into %contents + # $contents{filename}{blank|comment|code|language} = value + # then print in a variety of formats. + # + my ($json_string, ) = @_; + print "-> load_json()\n" if $opt_v > 2; + + my %contents = (); + my $heading = undef; + foreach (split /\n/, $json_string) { + if (/^{?"(.*?)"/) { + $heading = $1; + } else { + if (/^\s+"(.*?)"\s*:\s+(\d+(\.\d+)?)\b/) { + # numeric value + $contents{$heading}{$1} = $2; + } elsif (/^\s+"(.*?)"\s*:\s+"(.*?)"/) { + $contents{$heading}{$1} = $2; + } + } + } + my $url = $contents{'header'}{'cloc_url'}; + my $ver = $contents{'header'}{'cloc_version'}; + my $sec = $contents{'header'}{'elapsed_seconds'}; + my $n_file = $contents{'header'}{'n_files'}; + my $n_line = $contents{'header'}{'n_lines'}; + $sec = $sec == 0 ? 1.0e-3 : $sec; + my $header = sprintf "%s v %s T=%.2f s (%.1f files/s, %.1f lines/s)", + $url, $ver, $sec, $n_file/$sec, $n_line/$sec; + delete $contents{'header'}; + delete $contents{'SUM'}; + + my @file_list = (sort { $contents{$b}{'code'} <=> + $contents{$a}{'code'} } keys %contents ); +#die Dumper(\%contents); + # Determine column widths for output + my $file_len = 0; + my $lang_len = 0; + foreach my $file (keys %contents) { + my $flen = length $file; + my $llen = length $contents{$file}{'language'}; + $file_len = $file_len > $flen ? $file_len : $flen; + $lang_len = $lang_len > $llen ? $lang_len : $llen; + } + print "<- load_json()\n" if $opt_v > 2; + return $file_len, $lang_len, $header, %contents; +} +# 1}}} +sub print_format_n { # {{{1 + # by file with + # format 1 : Language | files | blank | comment | code + # format 2 : Language | files | blank | comment | code | total + # format 3 : File | Language | blank | comment | code + # format 4 : File | blank | comment | code | total + # format 5 : File | Language | blank | comment | code | total + my ($format, $file_len, $lang_len, $header, %contents) = @_; + print "-> print_format_n($format)\n" if $opt_v > 2; + my @prt_lines = (); + + # 8 = characters in "Language" + $lang_len = max(8, $lang_len); + my %str_fmt = ( + 1 => sprintf("%%-%ds %%7s %%7s %%7s %%7s\n", $lang_len), + 2 => sprintf("%%-%ds %%7s %%7s %%7s %%7s %%7s\n", $lang_len), + 3 => sprintf("%%-%ds %%-%ds %%7s %%7s %%7s\n", $file_len, $lang_len), + 4 => sprintf("%%-%ds %%7s %%7s %%7s %%7s\n", $file_len), + 5 => sprintf("%%-%ds %%-%ds %%7s %%7s %%7s %%7s\n", $file_len, $lang_len), + ); + my %val_fmt = ( + 1 => sprintf("%%-%ds %%7d %%7d %%7d %%7d\n", $lang_len), + 2 => sprintf("%%-%ds %%7d %%7d %%7d %%7d %%7d\n", $lang_len), + 3 => sprintf("%%-%ds %%-%ds %%7d %%7d %%7d\n", $file_len, $lang_len), + 4 => sprintf("%%-%ds %%7d %%7d %%7d %%7d\n", $file_len), + 5 => sprintf("%%-%ds %%-%ds %%7d %%7d %%7d %%7d\n", $file_len, $lang_len), + ); + my %language = (); + foreach my $file (keys %contents) { + my $lang = $contents{$file}{'language'}; + $language{$lang}{'files'} += 1; + foreach my $category ('blank', 'comment', 'code',) { + $language{$lang}{$category} += $contents{$file}{$category}; + $language{$lang}{'total'} += $contents{$file}{$category}; + } + } + my @file_list = (sort { $contents{$b}{'code'} <=> + $contents{$a}{'code'} } keys %contents ); + my @lang_list = (sort { $language{$b}{'code'} <=> + $language{$a}{'code'} } keys %language ); + + my %hyphens = ( + 1 => "-" x ($lang_len + 4*9), + 2 => "-" x ($lang_len + 5*9), + 3 => "-" x ($lang_len + $file_len + 2 + 3*9), + 4 => "-" x ($file_len + 4*9), + 5 => "-" x ($lang_len + $file_len + 2 + 4*9), + ); + my %col_headings = ( + 1 => ["Language", "files", "blank", "comment", "code"], + 2 => ["Language", "files", "blank", "comment", "code", "Total"], + 3 => ["File", "Language", "blank", "comment", "code"], + 4 => ["File", "blank", "comment", "code", "Total"], + 5 => ["File", "Language", "blank", "comment", "code", "Total"], + ); + + push @prt_lines, "$header\n"; + push @prt_lines, "$hyphens{$format}\n"; + push @prt_lines, sprintf $str_fmt{$format}, @{$col_headings{$format}}; + push @prt_lines, "$hyphens{$format}\n"; + my ($n_files, $n_blank, $n_comment, $n_code, $n_total) = (0, 0, 0, 0, 0); + my @out; + if ($format < 3) { + # by language + foreach my $lang (@lang_list) { + my ($nF, $nB, $nCm, $nCo) = ($language{$lang}{'files'}, + $language{$lang}{'blank'}, + $language{$lang}{'comment'}, + $language{$lang}{'code'}); + if ($format == 1) { + @out = ($lang, $nF, $nB, $nCm, $nCo); + } else { + @out = ($lang, $nF, $nB, $nCm, $nCo, $nB + $nCm + $nCo); + } + push @prt_lines, sprintf $val_fmt{$format}, @out; + $n_files += $nF; + $n_blank += $nB; + $n_comment += $nCm; + $n_code += $nCo; + $n_total += $nB + $nCm + $nCo; + } + } else { + # by file + foreach my $file (@file_list) { + my ($nB, $nCm, $nCo) = ($contents{$file}{'blank'}, + $contents{$file}{'comment'}, + $contents{$file}{'code'}); + my $lang = $contents{$file}{'language'}; + if ($format == 1) { + } elsif ($format == 3) { + @out = ($file, $lang, $nB, $nCm, $nCo); + } elsif ($format == 4) { + @out = ($file, $nB, $nCm, $nCo, $nB + $nCm + $nCo); + } else { + @out = ($file, $lang, $nB, $nCm, $nCo, $nB + $nCm + $nCo); + } + push @prt_lines, sprintf $val_fmt{$format}, @out; + $n_blank += $nB; + $n_comment += $nCm; + $n_code += $nCo; + $n_total += $nB + $nCm + $nCo; + } + } + push @prt_lines, "$hyphens{$format}\n"; + if (scalar @file_list > 1) { + if ($format == 1) { + @out = ( "SUM", $n_files, $n_blank, $n_comment, $n_code ); + } elsif ($format == 2) { + @out = ( "SUM", $n_files, $n_blank, $n_comment, $n_code, $n_total ); + } elsif ($format == 3) { + @out = ( "SUM", " ", $n_blank, $n_comment, $n_code ); + } elsif ($format == 4) { + @out = ( "SUM", $n_blank, $n_comment, $n_code, $n_total ); + } else { + @out = ( "SUM", " ", $n_blank, $n_comment, $n_code, $n_total ); + } + push @prt_lines, sprintf $val_fmt{$format}, @out; + push @prt_lines, "$hyphens{$format}\n"; + } + return @prt_lines; + print "<- print_format_n()\n" if $opt_v > 2; +} # 1}}} +# really_is_pascal, really_is_incpascal, really_is_php from SLOCCount +my %php_files = (); # really_is_php() +sub really_is_pascal { # {{{1 +# Given filename, returns TRUE if its contents really are Pascal. + +# This isn't as obvious as it seems. +# Many ".p" files are Perl files +# (such as /usr/src/redhat/BUILD/ispell-3.1/dicts/czech/glob.p), +# others are C extractions +# (such as /usr/src/redhat/BUILD/linux/include/linux/umsdos_fs.p +# and some files in linuxconf). +# However, test files in "p2c" really are Pascal, for example. + +# Note that /usr/src/redhat/BUILD/ucd-snmp-4.1.1/ov/bitmaps/UCD.20.p +# is actually C code. The heuristics determine that they're not Pascal, +# but because it ends in ".p" it's not counted as C code either. +# I believe this is actually correct behavior, because frankly it +# looks like it's automatically generated (it's a bitmap expressed as code). +# Rather than guess otherwise, we don't include it in a list of +# source files. Let's face it, someone who creates C files ending in ".p" +# and expects them to be counted by default as C files in SLOCCount needs +# their head examined. I suggest examining their head +# with a sucker rod (see syslogd(8) for more on sucker rods). + +# This heuristic counts as Pascal such files such as: +# /usr/src/redhat/BUILD/teTeX-1.0/texk/web2c/tangleboot.p +# Which is hand-generated. We don't count woven documents now anyway, +# so this is justifiable. + + my $filename = shift; + chomp($filename); + +# The heuristic is as follows: it's Pascal _IF_ it has all of the following +# (ignoring {...} and (*...*) comments): +# 1. "^..program NAME" or "^..unit NAME", +# 2. "procedure", "function", "^..interface", or "^..implementation", +# 3. a "begin", and +# 4. it ends with "end.", +# +# Or it has all of the following: +# 1. "^..module NAME" and +# 2. it ends with "end.". +# +# Or it has all of the following: +# 1. "^..program NAME", +# 2. a "begin", and +# 3. it ends with "end.". +# +# The "end." requirements in particular filter out non-Pascal. +# +# Note (jgb): this does not detect Pascal main files in fpc, like +# fpc-1.0.4/api/test/testterminfo.pas, which does not have "program" in +# it + + my $is_pascal = 0; # Value to determine. + + my $has_program = 0; + my $has_unit = 0; + my $has_module = 0; + my $has_procedure_or_function = 0; + my $found_begin = 0; + my $found_terminating_end = 0; + my $has_begin = 0; + + my $PASCAL_FILE = open_file('<', $filename, 0); + die "Can't open $filename to determine if it's pascal.\n" if !defined $PASCAL_FILE; + while(<$PASCAL_FILE>) { + s/\{.*?\}//g; # Ignore {...} comments on this line; imperfect, but effective. + s/\(\*.*?\*\)//g; # Ignore (*...*) comments on this line; imperfect, but effective. + if (m/\bprogram\s+[A-Za-z]/i) {$has_program=1;} + if (m/\bunit\s+[A-Za-z]/i) {$has_unit=1;} + if (m/\bmodule\s+[A-Za-z]/i) {$has_module=1;} + if (m/\bprocedure\b/i) { $has_procedure_or_function = 1; } + if (m/\bfunction\b/i) { $has_procedure_or_function = 1; } + if (m/^\s*interface\s+/i) { $has_procedure_or_function = 1; } + if (m/^\s*implementation\s+/i) { $has_procedure_or_function = 1; } + if (m/\bbegin\b/i) { $has_begin = 1; } + # Originally I said: + # "This heuristic fails if there are multi-line comments after + # "end."; I haven't seen that in real Pascal programs:" + # But jgb found there are a good quantity of them in Debian, specially in + # fpc (at the end of a lot of files there is a multiline comment + # with the changelog for the file). + # Therefore, assume Pascal if "end." appears anywhere in the file. + if (m/end\.\s*$/i) {$found_terminating_end = 1;} +# elsif (m/\S/) {$found_terminating_end = 0;} + } + close($PASCAL_FILE); + + # Okay, we've examined the entire file looking for clues; + # let's use those clues to determine if it's really Pascal: + + if ( ( ($has_unit || $has_program) && $has_procedure_or_function && + $has_begin && $found_terminating_end ) || + ( $has_module && $found_terminating_end ) || + ( $has_program && $has_begin && $found_terminating_end ) ) + {$is_pascal = 1;} + + return $is_pascal; +} # 1}}} +sub really_is_incpascal { # {{{1 +# Given filename, returns TRUE if its contents really are Pascal. +# For .inc files (mainly seen in fpc) + + my $filename = shift; + chomp($filename); + +# The heuristic is as follows: it is Pascal if any of the following: +# 1. really_is_pascal returns true +# 2. Any usual reserved word is found (program, unit, const, begin...) + + # If the general routine for Pascal files works, we have it + if (really_is_pascal($filename)) { + return 1; + } + + my $is_pascal = 0; # Value to determine. + my $found_begin = 0; + + my $PASCAL_FILE = open_file('<', $filename, 0); + die "Can't open $filename to determine if it's pascal.\n" if !defined $PASCAL_FILE; + while(<$PASCAL_FILE>) { + s/\{.*?\}//g; # Ignore {...} comments on this line; imperfect, but effective. + s/\(\*.*?\*\)//g; # Ignore (*...*) comments on this line; imperfect, but effective. + if (m/\bprogram\s+[A-Za-z]/i) {$is_pascal=1;} + if (m/\bunit\s+[A-Za-z]/i) {$is_pascal=1;} + if (m/\bmodule\s+[A-Za-z]/i) {$is_pascal=1;} + if (m/\bprocedure\b/i) {$is_pascal = 1; } + if (m/\bfunction\b/i) {$is_pascal = 1; } + if (m/^\s*interface\s+/i) {$is_pascal = 1; } + if (m/^\s*implementation\s+/i) {$is_pascal = 1; } + if (m/\bconstant\s+/i) {$is_pascal=1;} + if (m/\bbegin\b/i) { $found_begin = 1; } + if ((m/end\.\s*$/i) && ($found_begin = 1)) {$is_pascal = 1;} + if ($is_pascal) { + last; + } + } + + close($PASCAL_FILE); + return $is_pascal; +} # 1}}} +sub really_is_php { # {{{1 +# Given filename, returns TRUE if its contents really is php. + + my $filename = shift; + chomp($filename); + + my $is_php = 0; # Value to determine. + # Need to find a matching pair of surrounds, with ending after beginning: + my $normal_surround = 0; # + my $script_surround = 0; # ; bit 0 =