commit 5cbeb519b014dbe484af471485953d8d13f52139 Author: jcosmao Date: Sat Apr 27 19:54:25 2024 +0200 Truncated history of git repo diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bd03b9f --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +git/gitconfig +neovim/.plug/ +vim/autoload/plug.vim.old +*.zwc +.uuid +.netrwhist diff --git a/README.md b/README.md new file mode 100644 index 0000000..afeef28 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# dotfiles + + git clone https://github.com/jcosmao/dotfiles.git + cd dotfiles && ./install.sh diff --git a/_utils/x/xinitrc b/_utils/x/xinitrc new file mode 100644 index 0000000..09576f8 --- /dev/null +++ b/_utils/x/xinitrc @@ -0,0 +1,3 @@ +xrdb .Xresources +eval `ssh-agent -s` +exec dbus-launch i3 diff --git a/_utils/x/xorg.conf.d/00-keyboard.conf b/_utils/x/xorg.conf.d/00-keyboard.conf new file mode 100644 index 0000000..af3c94a --- /dev/null +++ b/_utils/x/xorg.conf.d/00-keyboard.conf @@ -0,0 +1,8 @@ +Section "InputClass" + Identifier "system-keyboard" + MatchIsKeyboard "on" + Option "XkbLayout" "us" + Option "XkbVariant" "altgr-intl" + Option "XkbModel" "pc105+inet" + Option "XkbOptions" "terminate:ctrl_alt_bksp" +EndSection diff --git a/_utils/x/xorg.conf.d/50-synaptic.conf b/_utils/x/xorg.conf.d/50-synaptic.conf new file mode 100644 index 0000000..1d7c38f --- /dev/null +++ b/_utils/x/xorg.conf.d/50-synaptic.conf @@ -0,0 +1,21 @@ +Section "InputClass" + Identifier "Force Clickpad Config" + MatchDriver "synaptics" + Option "ClickPad" "true" + Option "EmulateMidButtonTime" "0" + Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0" + Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%" + Option "TapButton1" "1" + Option "TapButton2" "3" + Option "TapButton3" "2" + Option "VertEdgeScroll" "off" + Option "HorizEdgeScroll" "off" + Option "VertTwoFingerScroll" "on" + Option "HorizTwoFingerScroll" "on" + Option "CircularScrolling" "on" + Option "CircScrollTrigger" "2" + Option "EmulateTwoFingerMinZ" "0" + Option "PalmDetect" "1" + Option "PalmMinWidth" "8" + Option "PalmMinZ" "100" +EndSection diff --git a/bin/README.md b/bin/README.md new file mode 100755 index 0000000..5356cff --- /dev/null +++ b/bin/README.md @@ -0,0 +1,9 @@ +bat https://github.com/sharkdp/bat/releases/download/v0.24.0/bat_0.24.0_amd64.deb +kubecolor (debian 12) http://ftp.debian.org/debian/pool/main/k/kubecolor/kubecolor_0.0.20-2+b6_amd64.deb +ripgrep https://github.com/BurntSushi/ripgrep/releases/latest +fd https://github.com/sharkdp/fd/releases/latest +ctgags compiled from https://github.com/universal-ctags/ctags.git +fzf debian 11 +rofi ubuntu 22.04 +stern https://github.com/stern/stern/releases/tag/v1.25.0 +jq https://github.com/jqlang/jq/releases/tag/jq-1.7 diff --git a/bin/bat b/bin/bat new file mode 100755 index 0000000..899d72b Binary files /dev/null and b/bin/bat differ diff --git a/bin/cscope.15.8 b/bin/cscope.15.8 new file mode 100755 index 0000000..c59fc45 Binary files /dev/null and b/bin/cscope.15.8 differ diff --git a/bin/cscope.15.9-2 b/bin/cscope.15.9-2 new file mode 100755 index 0000000..f5ba051 Binary files /dev/null and b/bin/cscope.15.9-2 differ diff --git a/bin/ctags b/bin/ctags new file mode 100755 index 0000000..ca00c07 Binary files /dev/null and b/bin/ctags differ diff --git a/bin/fd b/bin/fd new file mode 100755 index 0000000..c83cf6f Binary files /dev/null and b/bin/fd differ diff --git a/bin/fzf b/bin/fzf new file mode 100755 index 0000000..b1e1625 Binary files /dev/null and b/bin/fzf differ diff --git a/bin/jq b/bin/jq new file mode 100755 index 0000000..589c30e Binary files /dev/null and b/bin/jq differ diff --git a/bin/kubecolor b/bin/kubecolor new file mode 100755 index 0000000..0619d94 Binary files /dev/null and b/bin/kubecolor differ diff --git a/bin/os-log-color b/bin/os-log-color new file mode 100755 index 0000000..5002c5b --- /dev/null +++ b/bin/os-log-color @@ -0,0 +1,459 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# +# forked from: https://github.com/gaelL/openstack-log-colorizer +# +# Author: Gaël Lambert (gaelL) +# +# 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 3 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. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +""" +Filter and color Openstack log files from stdin + +-- +It support log files: + - openstack services with default log format (work also using journalctl, stern) + * journalctl: journalctl --no-hostname -o short-iso -u 'devstack@*' + - openvswitch + - rabbitmq + - apache + + +""" + + +import sys +import re +import argparse + + +LOG_LEVEL = { + 'critical': 50, + 'emer': 50, + 'error': 40, + 'err': 40, + 'warning': 30, + 'warn': 30, + 'wrn': 30, + 'info': 20, + 'inf': 20, + 'debug': 10, + 'dbg': 10, + 'notset': 100, +} + +PARSER = argparse.ArgumentParser(description=__doc__, + formatter_class=argparse.RawDescriptionHelpFormatter) +PARSER.add_argument("-l", "--level", + help="Set log levels you want display", + metavar='level', + choices=LOG_LEVEL.keys(), + type=str) +PARSER.add_argument("-e", "--exclude", + help="Set log levels you want exclude", + metavar='level', + choices=LOG_LEVEL.keys(), + type=str, + nargs='+') +PARSER.add_argument("-i", "--include", + help="Set log levels you only want display", + metavar='level', + choices=LOG_LEVEL.keys(), + type=str, + nargs='+') +ARGS = PARSER.parse_args() + + +class colors: + grey = '\033[1;30m' + red = '\033[1;31m' + green = '\033[1;32m' + yellow = '\033[1;33m' + blue = '\033[1;34m' + magenta = '\033[1;35m' + cyan = '\033[1;36m' + white = '\033[0;37m' + end = '\033[1;m' + + +def grey(text): + return '%s%s%s' % (colors.grey, text, colors.end) + + +def red(text): + return '%s%s%s' % (colors.red, text, colors.end) + + +def green(text): + return '%s%s%s' % (colors.green, text, colors.end) + + +def yellow(text): + return '%s%s%s' % (colors.yellow, text, colors.end) + + +def blue(text): + return '%s%s%s' % (colors.blue, text, colors.end) + + +def magenta(text): + return '%s%s%s' % (colors.magenta, text, colors.end) + + +def cyan(text): + return '%s%s%s' % (colors.cyan, text, colors.end) + + +def white(text): + return '%s%s%s' % (colors.white, text, colors.end) + + +def colored_level(level): + "Return level text with selected color tag" + level = level.upper() + if level in ['TRACE', 'SEC']: + return magenta(level) + elif level in ['DEBUG', 'DBG', 'INFO', 'INF']: + return green(level) + elif level in ['WARNING', 'WRN', 'WARN', '???']: + return yellow(level) + elif level in ['CRITICAL', 'ERROR', 'ERR', 'EMER']: + return red(level) + else: + return white(level) + + +def parse_line(line): + "Parse line and return dict of each elements" + # Line example : Openstack + # 2014-08-14 18:43:58.950 4092 INFO neutron.plugins.openvswitch.agent.ovs_neutron_agent [-] + regex = ( + r'(.*)' + r'([0-9]{4}-[0-9]+-[0-9]+) ' # date + r'([0-9]+:[0-9]+:[0-9]+\.[0-9]+) ' # time + r'([0-9]+):? ' # process + r'([A-Z]+) ' # level + r'([^ ]+)* ' # name + r"(\[(?!'Traceback)[^\]]+\])*\s*" # context + r'(.+)*' # text + ) + + result = re.match(regex, line) + if result is not None: + return { + 'header': "" if not result.group(1) else result.group(1), + 'date': result.group(2), + 'time': result.group(3), + 'process': result.group(4), + 'level': result.group(5), + 'name': "" if not result.group(6) else result.group(6), + 'req': "" if not result.group(7) else result.group(7), + 'text': "" if not result.group(8) else result.group(8), + '_type': 'openstack', + } + + # journalctl --no-hostname -o short-iso -f -u 'devstack@*' + # 2024-03-20T13:27:44+0000 devstack@keystone.service[74735]: INFO neutron.plugins.openvswitch.agent.ovs_neutron_agent [-] + regex = ( + r'(.*)' + r'([0-9]{4}-[0-9]+-[0-9]+)T' # date + r'([0-9]+:[0-9]+:[0-9]+\+[0-9]+) ' # time + r'([^\[]+)\[([0-9]+)\]: ' # unit process + r'([A-Z]+) ' # level + r'([^ ]+)* ' # name + r"(\[(?!'Traceback)[^\]]+\])*\s*" # context + r'(.+)*' # text + ) + + result = re.match(regex, line) + if result is not None: + h = "" + if result.group(1): + h = result.group(1) + # it's unit name + elif result.group(4): + h = f"{result.group(4)} " + + return { + 'header': h, + 'date': result.group(2), + 'time': result.group(3), + 'process': result.group(5), + 'level': result.group(6), + 'name': "" if not result.group(7) else result.group(7), + 'req': "" if not result.group(8) else result.group(8), + 'text': "" if not result.group(9) else result.group(9), + '_type': 'openstack', + } + + regex = ( + r'(.*)' + r"(\['Traceback.*)" + ) + result = re.match(regex, line) + if result is not None: + return { + 'header': "" if not result.group(1) else result.group(1), + 'date': "", + 'time': "", + 'process': "", + 'level': "TRACE", + 'name': "" , + 'req': "", + 'text': "" if not result.group(2) else result.group(2), + '_type': 'openstack', + } + + regex = ( + r'(.*)' + r'([0-9]{4}-[0-9]+-[0-9]+) ' # date + r'([0-9]+:[0-9]+:[0-9]+) ' # time + r'(.+)' + ) + + result = re.match(regex, line) + if result is not None: + key_val = {} + text = result.group(4) + keys = re.findall(r"[^ ]+:", text) + for i in range(0, len(keys)): + if i == len(keys) - 1: + next_key = "" + else: + next_key = keys[i+1] + + match = re.match(rf".*{keys[i]} (.*){next_key}.*", text) + if match: + key_val[keys[i]] = match.group(1) + + return { + 'header': "" if not result.group(1) else result.group(1), + 'date': result.group(2), + 'time': result.group(3), + 'key_val': key_val, + '_type': 'apache', + } + + # rabbit + # 2023-07-30 12:39:41.230254+00:00 [error] + regex = ( + r'(.*)' + r'([0-9]{4}-[0-9]+-[0-9]+) ' # date + r'([0-9]+:[0-9]+:[0-9]+\.[0-9]+[^ ]+) ' # time + r'\[([a-z\?]+)\] ' # level + r'(<[^>]+>) ' # <0.9417.870> + r'(.+)*' + ) + + result = re.match(regex, line) + if result is not None: + return { + 'header': "" if not result.group(1) else result.group(1), + 'date': result.group(2), + 'time': result.group(3), + 'level': result.group(4), + 'pid': result.group(5), + 'text': result.group(6), + '_type': 'rabbit', + } + + # Line example : ovs.log + # 2014-11-21T06:25:09.549Z|00012|vlog|INFO|opened log file /var/log/op... + regex = ( + r'(.*)' + r'([0-9]{4}-[0-9]+-[0-9]+)T' # date + r'([0-9]+:[0-9]+:[0-9]+\.[0-9]+)Z\|' # time + r'([0-9]+)\|' # serial + r'([^\|]+)\|' # name + r'([^\|]+)\|' # level + r'(.+)' + ) + + result = re.match(regex, line) + if result is not None: + return { + 'header': "" if not result.group(1) else result.group(1), + 'date': result.group(2), + 'time': result.group(3), + 'serial': result.group(4), + 'name': result.group(5), + 'level': result.group(6), + 'text': result.group(7), + '_type': 'ovs', + } + + regex = ( + r'([^ ]+ [^ ]+)' + r'(.+)*' + ) + + result = re.match(regex, line) + if result is not None: + return { + 'header': '' if not result.group(1) else result.group(1), + 'text': '' if not result.group(2) else result.group(2), + '_type': None, + } + + return {'header': '', 'text': line, '_type': None} + + +def colorize(line): + "Apply color tag on line" + + if line.get('_type') == 'openstack': + if line.get('level') in ['TRACE', 'ERROR']: + if "['Traceback" in line.get('text'): + line['text'] = line['text'].replace('\\n', '\n') + + if line.get('level') == 'TRACE': + colored_text = grey(line['text']) + else: + colored_text = white(line['text']) + + return '%s%s %s %s %s %s %s %s' % ( + magenta(line['header']), + grey(line['date']), + grey(line['time']), + grey(line['process']), + colored_level(line['level']), + blue(line['name']), + grey(line['req']), + colored_text + ) + + elif line.get('_type') == 'ovs': + return '%s%s %s %s %s %s %s' % ( + magenta(line['header']), + grey(line['date']), + grey(line['time']), + grey(line['serial']), + blue(line['name']), + colored_level(line['level']), + white(line['text']) + ) + + elif line.get('_type') == 'rabbit': + return '%s%s %s %s %s %s' % ( + magenta(line['header']), + grey(line['date']), + grey(line['time']), + colored_level(line['level']), + blue(line['pid']), + white(line['text']) + ) + + elif line.get('_type') == 'apache': + formatted = '%s%s %s' % ( + magenta(line['header']), + grey(line['date']), + grey(line['time']), + ) + + for k, v in line['key_val'].items(): + val = white(v) + try: + if k == "status:" and int(v) >= 500: + val = red(v) + elif k == "status:" and int(v) >= 400: + val = yellow(v) + elif k == "time:" and float(v) >= 1000: + val = red(v) + except Exception: + pass + formatted = f"{formatted} {blue(k)} {val}" + + return formatted + + else: + return '%s %s' % (magenta(line['header']), line.get('text')) + + +def check_args(): + # Just allow one arg + num_args = sum(1 for i in [ARGS.level, ARGS.exclude, ARGS.include] if i) + if num_args > 1: + print('Args conflicts select just one arg') + PARSER.print_help() + return False + return True + + +def level_filter(line): + "Return true if line must be filtered. Never filter line without level" + level = ARGS.level.lower() + line_level = line.get('level', 'notset').lower() + if LOG_LEVEL.get(line_level, 100) < LOG_LEVEL.get(level, 0): + return True + else: + return False + + +def include_filter(line): + "Return true if line must be filtered. Never filter line without level" + includes = [i.lower() for i in ARGS.include] + line_level = line.get('level', 'notset').lower() + if line_level == 'notset': + return False + elif line_level in includes: + return False + return True + + +def exclude_filter(line): + "Return true if line must be filtered. Never filter line without level" + excludes = [e.lower() for e in ARGS.exclude] + line_level = line.get('level', 'notset').lower() + if line_level in excludes: + return True + return False + + +def line_is_filtered(line): + "Skip the line ?" + if ARGS.level: + return level_filter(line) + elif ARGS.include: + return include_filter(line) + elif ARGS.exclude: + return exclude_filter(line) + return False + + +if __name__ == '__main__': + # Read each line in stdin + if not check_args(): + sys.exit(1) + + while 1: + try: + line = sys.stdin.readline() + except KeyboardInterrupt: + break + + if not line: + break + + try: + # get parsed line + parsed_line = parse_line(line.rstrip('\n')) + except Exception: + parsed_line = {'header': '', 'text': line.rstrip('\n'), '_type': None} + + # Skip line if filtred (never skip line without log level) + if line_is_filtered(parsed_line): + continue + + # Print parsed and colored line + print(colorize(parsed_line)) diff --git a/bin/plik b/bin/plik new file mode 100755 index 0000000..8e80184 Binary files /dev/null and b/bin/plik differ diff --git a/bin/rg b/bin/rg new file mode 100755 index 0000000..ea32486 Binary files /dev/null and b/bin/rg differ diff --git a/bin/rofi b/bin/rofi new file mode 100755 index 0000000..eb29b4a Binary files /dev/null and b/bin/rofi differ diff --git a/bin/ssh-rdp b/bin/ssh-rdp new file mode 100755 index 0000000..0a38621 --- /dev/null +++ b/bin/ssh-rdp @@ -0,0 +1,817 @@ +#!/usr/bin/env bash + +#ToDo: +# Remote window title is wrong +# Remote audio: delay is still a bit high (less than 100ms) +# Understand why audio starts with a long delay unless +# we keep playing a stream in background (as we now do) +# * allow tho choose video player by command line + +#Requirements: + #Local+Remote: ffmpeg,openssh,netevent-git + #Local: wmctrl, optional: mpv + taskset from util-linux to get even lower latency but with more cpu use. + #Remote: xdpyinfo,pulseaudio + #read/write access to input devices on local and remote system (input group) (sudo gpasswd --add username input) + +#Remote host + RHOST="" # Remote ip or hostname + RPORT="22" # Remote ssh port to connect to + RUSER="" # The user on the remote side running the real X server + RDISPLAY="0.0" # The remote display (ex: 0.0) + EVDFILE="$HOME/.config/ssh-rdp.input.evd.config" #Holds the name of the forwarded evdev device + KBDFILE="$HOME/.config/ssh-rdp.input.kbd.config" #Holds the name of the forwarded keyboard evdev device + HKFILE="$HOME/.config/ssh-rdp.input.hk.config" #where the keypress codes to switch fullscreen and forward reside + +#Encoding: + AUDIO_CAPTURE_SOURCE="AUTO" # "pulseaudio name like alsa_output.pci-0000_00_1b.0.analog-stereo.monitor" or "guess" + FPS=60 # frames per second of the stream + RES="AUTO" # "ex: RES="1280x1024" or RES="AUTO". + # If wrong, video grab will not work. + OFFSET="+0,0" # ex: OFFSET="" or OFFSET="+10,+40". + # If wrong, video grab will not work. + + #The "null,null" video filters will be changed to -vf scale by sed later on if prescale is requested + #VIDEO_ENC_CPU="-threads 1 -vcodec libx264 -thread_type slice -slices 1 -level 32 -preset ultrafast -tune zerolatency -intra-refresh 1 -x264opts vbv-bufsize=1:slice-max-size=1500:keyint=$FPS:sliced_threads=1 -pix_fmt nv12 -vf 'null,null'" + VIDEO_ENC_CPU="-threads 1 -vcodec libx264 -thread_type slice -slices 1 -level 32 -preset ultrafast -tune zerolatency -intra-refresh 1 -x264opts keyint=$FPS:sliced_threads=1 -pix_fmt nv12 -vf 'null,null'" + VIDEO_ENC_CPU_RGB="-threads 1 -vcodec libx264rgb -profile:v high444 -thread_type slice -slices 1 -level 32 -preset ultrafast -tune zerolatency -intra-refresh 1 -x264opts keyint=$FPS:sliced_threads=1 -pix_fmt bgr24 -vf 'null,null'" + VIDEO_ENC_NVGPU="-threads 1 -c:v h264_nvenc -preset llhq -delay 0 -zerolatency 1 -vf 'null,null'" + VIDEO_ENC_NVGPU_HEVC="-threads 1 -c:v hevc_nvenc -preset llhq -delay 0 -zerolatency 1 -vf 'null,null'" + VIDEO_ENC_AMDGPU="-threads 1 -vaapi_device /dev/dri/renderD128 -c:v h264_vaapi -bf 0 -vf 'null,null,hwupload,scale_vaapi=format=nv12'" + VIDEO_ENC_AMDGPU_HEVC="-threads 1 -vaapi_device /dev/dri/renderD128 -c:v hevc_vaapi -bf 0 -vf 'null,null,hwupload,scale_vaapi=format=nv12'" + VIDEO_ENC_INTELGPU="-threads 1 -vaapi_device /dev/dri/renderD128 -c:v h264_vaapi -bf 0 -vf 'null,null,hwupload,scale_vaapi=format=nv12'" + #VIDEO_ENC_INTELGPU="-threads 1 -vaapi_device /dev/dri/renderD128 -c:v h264_vaapi -bf 0 -vf 'null,null,format=nv12,hwupload'" + + AUDIO_ENC_OPUS="-acodec libopus -vbr off -application lowdelay -frame_duration 10" #opus, low delay great quality + AUDIO_ENC_PCM="-acodec pcm_s16le " #pcm, low delay, best quality + + VIDEOENC="cpu" + AUDIOENC="opus" + + VIDEO_BITRATE_MAX="5000" #kbps (or AUTO) + VIDEO_BITRATE_MAX_SCALE="80" # When VIDEO_BITRATE_MAX is set to "AUTO", only use this percentual of it. + AUDIO_BITRATE=128 #kbps + + AUDIO_DELAY_COMPENSATION="4000" #The higher the value, the lower the audio delay. + #Setting this too high will likely produce crackling sound. + #Try in range 0-8000 + + #Prescale desktop before sending? + PRESCALE="" # eg: "" or something like "1280x720" + + #Prescaling quality see https://ffmpeg.org/ffmpeg-scaler.html for possible values + SCALE_FLT="fast_bilinear" #bilinear,bicubic,lanczos,spline... + + #Remote window title + #WTITLE="$RUSER@$RHOST""$RDISPLAY" + WTITLE="ssh-rdp""-"\["$$"\] + +# Misc + SSH_CIPHER="" #Optionally, force an ssh cipher to be used + #SSH_CIPHER="aes256-gcm@openssh.com" + + +# ### User config ends here ### # + +ICFILE_RUNTIME=~/.config/ssh-rdp.input.out.config + +print_error() { echo -e "\e[1m\e[91m[EE] $1\e[0m" ;}; +print_warning() { echo -e "\e[1m\e[93m[WW] $1\e[0m" ;}; +print_notice() { echo -e "\e[1m[!!] $1\e[0m" ;}; +print_ok() { echo -e "\e[1m\e[92m[OK] $1\e[0m" ;}; +print_pending() { echo -e "\e[1m\e[94m[..] $1\e[0m" ;}; + +ask_continue_or_exit(){ + while true; do + read -p "$(print_warning "Do you want to continue anyway (not recommended) (y/n) ? ")" yn + case $yn in + [Yy]* ) ERROR=0; break;; + [Nn]* ) ERROR=1; break;; + * ) print_error "Please answer y or n.";; + esac + done + if [ "$ERROR" = "1" ] ; then + print_error "Cannot continue." + exit + else + print_warning "Proceeding anyway..." + fi +} + +generate_ICFILE_from_names() { + #Also, exits from the script if no keyboard is found + I_IFS="$IFS" + IFS=$'\n' ; + ICFILE_REJ=~/.config/ssh-rdp.input.rej.txt + + rm $ICFILE_RUNTIME $ICFILE_REJ &>/dev/null + ERROR="0" + print_pending "Checking input devices..." + for device_name in $(<$EVDFILE) ; do + evdev_devices=$(events_from_name "$device_name") + if [ "$evdev_devices" = "" ] ; then + print_warning "Device unavailable : $device_name" + else + print_ok "Device ready : $device_name" + for evdevice in $evdev_devices ; do + echo " add event device for $device_name: $evdevice" + echo -n $evdevice" " >> "$ICFILE_RUNTIME" + done + fi + done + IFS="$I_IFS" + print_pending "Reading hotkey file $HKFILE" + read GRAB_HOTKEY FULLSCREENSWITCH_HOTKEY <<< $(<$HKFILE) + print_ok "GRAB_HOTKEY=$GRAB_HOTKEY" + print_ok "FULLSCREENSWITCH_HOTKEY=$FULLSCREENSWITCH_HOTKEY" +} + +function get_input_event_device(){ + #Show the first event device that "emits some input" + cd /dev/input/ + tmpfile=/tmp/$$devices$$.txt + rm $tmpfile &>/dev/null + touch $tmpfile + timeout=120 + + #Listen for events + pids=("") + sleep 0.1 + for d in event* ; do + timeout $timeout sh -c "grep . $d -m 1 -c -H |cut -d ":" -f 1 > $tmpfile" & + pids+=("$!") + done + + #Wait for one event to come + while ! [ -s $tmpfile ] ; do + sleep 0.1 + done + + #Show the event device + cat $tmpfile + + #Cleanup + for pid in ${pids[@]} ; do + kill $pid &>/dev/null + done + rm $tmpfile +} + +name_from_event(){ + #es: name_from_event event3 + #Logitech G203 Prodigy Gaming Mouse + grep 'Name=\|Handlers' /proc/bus/input/devices|grep -w -B1 "$1"|head -n 1|cut -d \" -f 2 +} + +events_from_name(){ + #es: vents_from_name Logitech G203 Prodigy Gaming Mouse + #event13 + #event2 + grep 'Name=\|Handlers' /proc/bus/input/devices|grep -A1 "$1"|cut -d "=" -f 2 |grep -o '[^ ]*event[^ ]*' +} + +check_local_input_group(){ + if ! id -nG $(id -u)|grep -qw input ; then + echo + print_warning "local user is not in the input group," + print_warning "but /dev/input/* access is required to forward input devices." + ask_continue_or_exit + fi +} + +check_remote_uinput_access(){ + UINPUT=/dev/uinput # /dev/uinput + $SSH_EXEC "test -e $UINPUT" || E="noexist" + if [ "$E" = "noexist" ] ; then + echo + print_warning "Remote system has no $UINPUT" + print_warning "which is needed to forward input devices." + print_warning "Please, configure it to load the uinput module or build uinput into the kernel." + ask_continue_or_exit + else #/dev/uinput was found + $SSH_EXEC "test -w $UINPUT" || E="noaccess" + $SSH_EXEC "test -r $UINPUT" || E="noaccess" + if [ "$E" = "noaccess" ] ; then + echo + print_warning "Remote user is missing R/W access to $UINPUT" + print_warning "which is needed to forward input devices." + ask_continue_or_exit + fi + fi +} + +create_input_files() { + check_local_input_group + tmpfile=/tmp/$$devices$$.txt + sleep 0.1 + rm $EVDFILE &>/dev/null + + #Ask user to generate input to auto select input devices to forward + echo + print_pending "Please, press a key on the keyboard you want to forward." + KBDDEV=$(get_input_event_device) + KBDNAME=$(name_from_event $KBDDEV) + echo -ne "\r" + print_ok "Got keyboard: $KBDNAME on $KBDDEV.\n" + name_from_event $KBDDEV > $KBDFILE + echo $KBDNAME > $EVDFILE + + ANOTHER_DEVICE=1 + while [ $ANOTHER_DEVICE == 1 ]; do + while true; do + read -t 0.5 -N 255 #empty input buffer + read -p "$(print_warning "Do you want to forward other devices? (y/n) ? ")" yn + case $yn in + [Yy]* ) + print_pending "Please, generate input with the device you want to forward." + EVDEV=$(get_input_event_device) + EVDEV_NAME=$(name_from_event $EVDEV) + if grep "$EVDEV_NAME" $EVDFILE >/dev/null ; then + print_error "Not adding $EVDEV_NAME because it is already in the forward list." + else + print_ok "Got $EVDEV_NAME on $EVDEV" + echo -ne "\r" + echo $EVDEV_NAME >> $EVDFILE + fi + echo + ;; + [Nn]* ) + ANOTHER_DEVICE=0; break;; + * ) + print_error "Please answer y or n.";; + esac + done + done + + + # create_hk_file + # uses netevent to generate a file containing the key codes + # to switch fullscreen and forward devices + cd /dev/input + rm $HKFILE &>/dev/null + sleep 0.1 + echo ; print_pending "Press the key to that will be used to forward/unforward input devices" + GRAB_HOTKEY=$(netevent show $KBDDEV 3 -g | grep KEY |cut -d ":" -f 2) ; print_ok "got:$GRAB_HOTKEY" + sleep 0.5 + echo ; print_pending "Now press the key that will be used to switch fullscreen state" + FULLSCREENSWITCH_HOTKEY=$(netevent show $KBDDEV 3 -g | grep KEY |cut -d ":" -f 2) ; print_ok "got:$FULLSCREENSWITCH_HOTKEY" + echo $GRAB_HOTKEY $FULLSCREENSWITCH_HOTKEY > $HKFILE + + read GRAB_HOTKEY FULLSCREENSWITCH_HOTKEY <<< $(<$HKFILE) + echo + echo GRAB_HOTKEY=$GRAB_HOTKEY + echo FULLSCREENSWITCH_HOTKEY=$FULLSCREENSWITCH_HOTKEY + +} + +list_descendants() { + local children=$(ps -o pid= --ppid "$1") + for pid in $children ; do + list_descendants "$pid" + done + echo "$children" +} + +#Clean function +finish() { + #echo ; echo TRAP: finish. + + if ! [ "$REXEC_EXIT" = "" ] ; then + print_pending "Executing $REXEC_EXIT" + $SSH_EXEC "bash -s" < "$REXEC_EXIT" + print_ok "$REXEC_EXIT exited." + fi + + #ffplay and/or ffmpeg may hangs on remote, kill them by name +# $SSH_EXEC "killall $FFPLAYEXE" &>/dev/null +# $SSH_EXEC "killall $FFMPEGEXE" &>/dev/null + $SSH_EXEC "kill \$(pidof FFPLAYEXE)" &>/dev/null + $SSH_EXEC "kill \$(pidof $FFMPEGEXE)" &>/dev/null + sleep 1 +# $SSH_EXEC "killall -9 $FFPLAYEXE" &>/dev/null +# $SSH_EXEC "killall -9 $FFMPEGEXE" &>/dev/null + $SSH_EXEC "kill -9 \$(pidof $FFPLAYEXE)" &>/dev/null + $SSH_EXEC "kill -9 \$(pidof $FFMPEGEXE)" &>/dev/null + $SSH_EXEC "unlink $FFMPEGEXE" &>/dev/null + $SSH_EXEC "unlink $FFPLAYEXE" &>/dev/null + #kill multiplexing ssh + ssh -O exit -o ControlPath="$SSH_CONTROL_PATH" $RHOST 2>/dev/null + kill $(list_descendants $$) &>/dev/null + + rm $NESCRIPT &>/dev/null + rm $NE_CMD_SOCK&>/dev/null + +} + +#Test and report net download speed +benchmark_net() { + $SSH_EXEC sh -c '"timeout 1 dd if=/dev/zero bs=1b "' | cat - > /tmp/$$_zero_$$ + KBPS=$(( $(wc -c < /tmp/$$_zero_$$) *8/1000 )) + echo $KBPS + rm /tmp/$$_zero_$$ +} + +FS="F" +setup_input_loop() { + #Parse remote hotkeys and perform local actions (eg: Fullscreen switching) + print_pending "Setting up input loop and forwarding devices" + #Prepare netevent script + i=1 + touch $NESCRIPT + KBDNAME=$(<$KBDFILE) + + # From 2.2.1, netevent splitted grab in grab-devices and write-events + # it also introduced the -V switch; check if it reports anything with -V + # to react to the change. + netevent_version=$(netevent 2>/dev/null -V) + if ! [ "_$netevent_version" == "_" ] ; then netevent_is="NEW" ; fi + + for DEVICE in $(<$ICFILE_RUNTIME) ; do + echo " forward input from device $DEVICE..." + DEVNAME=$(name_from_event "$DEVICE") + if [ "$DEVNAME" = "$KBDNAME" ] ; then # Device is keyboard -> add it and setup hotkeys + echo "device add mykbd$i /dev/input/$DEVICE" >>$NESCRIPT + if [ $netevent_is == "NEW" ] ; then + echo "hotkey add mykbd$i key:$GRAB_HOTKEY:0 'write-events toggle ; grab-devices toggle'" >>$NESCRIPT + else + echo "hotkey add mykbd$i key:$GRAB_HOTKEY:0 grab toggle" >>$NESCRIPT + fi + echo "action set grab-changed exec '/usr/bin/echo Is input forwarded 1=Yes,0=No ? \$NETEVENT_GRABBING' " >>$NESCRIPT + echo "hotkey add mykbd$i key:$GRAB_HOTKEY:1 nop" >>$NESCRIPT + echo "hotkey add mykbd$i key:$FULLSCREENSWITCH_HOTKEY:0 exec \"/usr/bin/echo FULLSCREENSWITCH_HOTKEY\"" >>$NESCRIPT + echo "hotkey add mykbd$i key:$FULLSCREENSWITCH_HOTKEY:1 nop" >>$NESCRIPT + else # Device is not keyboard -> just add it + echo "device add dev$i /dev/input/$DEVICE" >>$NESCRIPT + fi + let i=i+1 + done + echo "output add myremote exec:$SSH_EXEC netevent create" >>$NESCRIPT + echo "use myremote" >>$NESCRIPT + + echo + print_pending "Starting netevent daemon with script $NESCRIPT" + netevent daemon -s $NESCRIPT $NE_CMD_SOCK | while read -r hotkey; do + echo "read hotkey: " $hotkey + if [ "$hotkey" = "FULLSCREENSWITCH_HOTKEY" ] ; then + if [ "$FS" = "F" ] ; then + wmctrl -b add,fullscreen -r "$WTITLE" + wmctrl -b add,above -r "$WTITLE" + FS="T" + else + wmctrl -b remove,fullscreen -r "$WTITLE" + wmctrl -b remove,above -r "$WTITLE" + FS="F" + fi + fi + done +} + + +deps_or_exit(){ + #Check that dependancies are ok, or exits the script + check_local_input_group + check_remote_uinput_access + DEPS_L="bash grep head cut timeout sleep tee netevent wc wmctrl awk basename ssh ffplay mpv [" + DEPS_OPT_L="" + DEPS_R="bash timeout dd ffmpeg pactl grep awk tail xdpyinfo netevent" + + #Local deps + for d in $DEPS_L ; do + ERROR=0 + if ! which $d &>/dev/null ; then + print_error "Cannot find required local executable: $d" + ask_continue_or_exit + fi + done + for d in $DEPS_OPT_L ; do + if ! which $d &>/dev/null ; then + print_warning "Cannot find required optional executable: $d" + fi + done + + #Remote deps + for d in $DEPS_R ; do + ERROR=0 + if ! $SSH_EXEC "which $d &>/dev/null" ; then + print_error "Cannot find required remote executable: $d" + ask_continue_or_exit + fi + done +} + + +# ### MAIN ### ### MAIN ### ### MAIN ### ### MAIN ### + +if [ "$1 " = "inputconfig " ] ; then + create_input_files + exit +fi + +#Parse arguments +while [[ $# -gt 0 ]] +do + arg="$1" + case $arg in + -u|--user) + RUSER="$2" + shift ; shift ;; + -s|--server) + RHOST="$2" + shift ; shift ;; + -p|--port) + RPORT="$2" + shift ; shift ;; + --sshopt) + SSHOPT="$2" + shift ; shift ;; + -d|--display) + RDISPLAY="$2" + shift ; shift ;; + -r|--resolution) + RES="$2" + shift ; shift ;; + --prescale) + PRESCALE="$2" + shift ; shift ;; + -o|--offset) + OFFSET="$2" + shift ; shift ;; + --follow) + FOLLOW_STRING='-follow_mouse 1' + shift ;; + -f|--fps) + FPS="$2" + shift ; shift ;; + --pasource) + AUDIO_CAPTURE_SOURCE="$2" + shift ; shift ;; + --videoenc) + VIDEOENC="$2" + shift ; shift ;; + --audioenc) + AUDIOENC="$2" + shift ; shift ;; + --customv) + VIDEO_ENC_CUSTOM="$2" + shift ; shift ;; + --customa) + AUDIO_ENC_CUSTOM="$2" + shift ; shift ;; + --audioenc) + AUDIOENC="$2" + shift ; shift ;; + #--videoplayer) + # VIDEOPLAYER="$2" + # shift ; shift ;; + --vplayeropts) + VPLAYEROPTS="$2" + shift ; shift ;; + -v|--vbitrate) + VIDEO_BITRATE_MAX="$2" + shift ; shift ;; + -a|--abitrate) + AUDIO_BITRATE="$2" + shift ; shift ;; + --rexec-before) + REXEC_BEFORE="$2" + shift ; shift ;; + --rexec-exit) + REXEC_EXIT="$2" + shift ; shift ;; + *) + shift ;; + esac +done + +# Decoding + #ffplay, low latency, no hardware decoding + #VIDEOPLAYER="ffplay - -vf "setpts=0.5*PTS" -nostats -window_title "$WTITLE" -probesize 32 -flags low_delay -framedrop -fflags nobuffer+fastseek+flush_packets -analyzeduration 0 -sync ext" + + #mpv, less latency, possibly hardware decoding, may hammer the cpu. + #Untimed: + #VIDEOPLAYER="taskset -c 0 mpv - --input-cursor=no --input-vo-keyboard=no --input-default-bindings=no --hwdec=auto --title="$WTITLE" --untimed --no-cache --profile=low-latency --opengl-glfinish=yes --opengl-swapinterval=0" + + #speed=2 instead of untimed, seems smoother: + VIDEOPLAYER="taskset -c 0 mpv - --input-cursor=no --input-vo-keyboard=no --input-default-bindings=no --hwdec=auto --title="$WTITLE" --speed=2 --no-cache --profile=low-latency --opengl-glfinish=yes --opengl-swapinterval=0 $VPLAYEROPTS" + + #less hammering, experimental, introduce some stuttering :/ + #VIDEOPLAYER="taskset -c 0 mpv - --input-cursor=no --input-vo-keyboard=no --input-default-bindings=no --hwdec=auto --title="$WTITLE" --speed=2 --no-cache --profile=low-latency --opengl-glfinish=yes --opengl-swapinterval=0 --cache-pause=yes --cache-pause-wait=0.001" + + #older mpv versions, vaapi + #VIDEOPLAYER="taskset -c 0 mpv - --input-cursor=no --input-vo-keyboard=no --input-default-bindings=no --hwdec=vaapi --vo=gpu --gpu-api=opengl --title="$WTITLE" --untimed --no-cache --audio-buffer=0 --vd-lavc-threads=1 --cache-pause=no --demuxer-lavf-o=fflags=+nobuffer --demuxer-lavf-analyzeduration=0.1 --video-sync=audio --interpolation=no --opengl-glfinish=yes --opengl-swapinterval=0" + + AUDIOPLAYER="ffplay - -nostats -loglevel warning -flags low_delay -nodisp -probesize 32 -fflags nobuffer+fastseek+flush_packets -analyzeduration 0 -sync ext -af aresample=async=1:min_comp=0.1:first_pts=$AUDIO_DELAY_COMPENSATION" + + if [ "$AUDIOENC" = "show" ] || [ "$VIDEOENC" = "show" ] ; then + if [ "$AUDIOENC" = "show" ] ; then + print_pending "Audio encoding presets: \ + \n opus: \"$AUDIO_ENC_OPUS\" \ + \n pcm: \"$AUDIO_ENC_PCM\" \ + \n" + fi + + if [ "$VIDEOENC" = "show" ] ; then + print_pending "Video encoding presets: \ + \n cpu: \"$VIDEO_ENC_CPU\" \ + \n cpurgb: \"$VIDEO_ENC_CPU_RGB\" \ + \n amdgpu: \"$VIDEO_ENC_AMDGPU\" \ + \n amdgpu_hevc: \"$VIDEO_ENC_AMDGPU_HEVC\" \ + \n intelgpu: \"$VIDEO_ENC_INTELGPU\" \ + \n nvgpu: \"$VIDEO_ENC_NVGPU\" \ + \n nvgpu_hevc: \"$VIDEO_ENC_NVGPU_HEVC\" \ + \n" + fi + exit + fi + + me=$(basename "$0") + if [ -z $RUSER ] || [ -z $RHOST ] || [ "$1" = "-h" ] ; then + echo Please edit "$me" to suit your needs and/or use the following options: + echo Usage: "$me" "[OPTIONS]" + echo "" + echo "OPTIONS" + echo "" + echo "Use $me inputconfig to create or change the input config file" + echo "" + echo "-s, --server Remote host to connect to" + echo "-u, --user ssh username" + echo "-p, --port ssh port" + echo " --sshopt pass additional ssh option (omit -o)" + echo "-d, --display Remote display (eg: 0.0)" + echo "-r, --resolution Grab size (eg: 1920x1080) or AUTO" + echo "-o, --offset Grab offset (eg: +1920,0)" + echo " --follow pan the grabbed area when the cursor reaches the border" + echo " --prescale Scale video before encoding (eg: 1280x720)." + echo " Has impact on remote cpu use and can increase latency too." + echo "-f, --fps Grabbed frames per second" + echo " --pasource Capture from the specified pulseaudio source. (experimental and may introduce delay)" + echo " Use AUTO to guess, use ALL to capture everything." + echo " Eg: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor" + echo "" + echo " --videoenc Video encoder can be: cpu,cpurgb,amdgpu,amdgpu_hevc,intelgpu,nvgpu,nvgpu_hevc,zerocopy,custom or show" + echo " \"zerocopy\" is experimental and causes ffmpeg to use kmsgrab" + echo " to grab the framebuffer and pass frames to vaapi encoder." + echo " You've to run 'setcap cap_sys_admin+ep $(which ffmpeg)' on the server to use zerocopy." + echo " --display, --follow are ignored when using zerocopy." + echo " specify \"show\" to print the options for each preset." + echo "" + echo " --customv Specify a string for video encoder stuff when videoenc is set to custom" + echo " Eg: \"-threads 1 -c:v h264_nvenc -preset llhq -delay 0 -zerolatency 1\"" + echo " --audioenc Audio encoder can be: opus,pcm,null,custom or show" + echo " \"null\" disables audio grabbing completely" + echo " specify \"show\" to print the options for each other preset." + echo "" + echo " --customa Specify a string for audio encoder stuff when videoenc is set to custom" + echo " Eg: \"-acodec libopus -vbr off -application lowdelay\"" + echo "-v, --vbitrate Video bitrate in kbps or AUTO" + echo " AUTO will use 80% of the maximum available throughput." + echo "-a, --abitrate Audio bitrate in kbps" + echo " --vplayeropts Additional options to pass to videoplayer" + echo " Eg: \"--video-output-levels=limited --video-rotate=90\"" + echo " --rexec-before Execute the specified script via 'sh' just before the connection" + echo " --rexec-exit Execute the specified script via 'sh' before exiting the script" + #echo " --videoplayer + echo + echo "Example 1: john connecting to jserver, all defaults accepted" + echo " "$me" --user john --server jserver" + echo + echo "Example 2:" + echo " john connecting to jserver on ssh port 322, streaming the display 0.0" + echo " remote setup is dual head and john selects the right monitor." + echo " Stream will be 128kbps for audio and 10000kbps for video:" + echo " Ex: $me -u john -s jserver -p 322 -d 0.0 -r 1920x1080 -o +1920,0 -f 60 -a 128 -v 10000" + echo + echo "Example 3:" + echo " Bill connecting to jserver on ssh port 322, streaming the display 0.0" + echo " Stream will be 128kbps for audio and 10000kbps for video:" + echo " Bill wants untouched audio, 144fps and encode via intelgpu, he needs to correct video output levels" + echo " Ex: $me -u bill -s bserver -p 322 -d 0.0 -f 144 -v 80000 --audioenc pcm --videoenc intelgpu --vplayeropts \"--video-output-levels=limited\"" + echo + echo "user and host are mandatory." + echo "default ssh-port: $RPORT" + echo "default DISPLAY : $RDISPLAY" + echo "default size : $RES" + echo "default offset : $OFFSET" + echo "default fps : $FPS" + echo "default video encoder: $VIDEOENC" + echo "default audio encoder: $AUDIOENC" + echo "default abitrate: $AUDIO_BITRATE kbps" + echo "default vbitrate: $VIDEO_BITRATE_MAX kbps" + exit + fi + +#Sanity checks + + RDISPLAY=":$RDISPLAY" + + if [ "$AUDIOENC" = "custom" ] && [ "$AUDIO_ENC_CUSTOM" = "" ] ; then + print_error "Custom audioencoder requested, but no custom encoder string provided. use --customa " + exit + fi + + if [ "$VIDEOENC" = "custom" ] && [ "$VIDEO_ENC_CUSTOM" = "" ] ; then + print_notice "Custom video encoder requested, but no custom encoder string provided. use --customv " + exit + fi + + if [ ! -f "$EVDFILE" ] ; then + print_error "Input configuration file "$EVDFILE" not found!" + echo "Please, Select which devices to share." + sleep 2 + create_input_files + fi + +trap finish EXIT +trap exit INT TERM + +#Setup SSH Multiplexing + SSH_CONTROL_PATH=$HOME/.config/ssh-rdp$$ + print_pending "Starting ssh multiplexed connection" + if ssh -fN -o ControlMaster=auto -o ControlPath=$SSH_CONTROL_PATH -o ControlPersist=60 -o "$SSHOPT" $RUSER@$RHOST -p $RPORT; then + print_ok "Started ssh multiplexed connection" + else + print_warning "Cannot start ssh multiplexed connection" + ask_continue_or_exit + fi +#Shortcut to start remote commands: + [ ! "$SSH_CIPHER" = "" ] && SSH_CIPHER=" -c $SSH_CIPHER" + SSH_EXEC="ssh $SSH_CIPHER -o ControlMaster=auto -o ControlPath=$SSH_CONTROL_PATH $RUSER@$RHOST -p $RPORT" + +print_pending "Checking required executables..." +deps_or_exit +print_ok "Checked required executables" +echo + +generate_ICFILE_from_names + +#netevent script file and command sock + NESCRIPT=/tmp/nescript$$ + NE_CMD_SOCK=/tmp/neteventcommandsock$$ + +#We need to kill some processes on exit, do it by name. + FFMPEGEXE=/tmp/ffmpeg$$ + $SSH_EXEC "ln -s \$(which ffmpeg) $FFMPEGEXE" + FFPLAYEXE=/tmp/ffplay$$ + $SSH_EXEC "ln -s \$(which ffplay) $FFPLAYEXE" + +#Measure network download speed? +if [ "$VIDEO_BITRATE_MAX" = "AUTO" ] ; then + echo + print_pending "Measuring network throughput..." + VIDEO_BITRATE_MAX=$(benchmark_net) + echo "[OK] VIDEO_BITRATE_MAX = "$VIDEO_BITRATE_MAX"Kbps" + VIDEO_BITRATE_MAX=$(( "$VIDEO_BITRATE_MAX" * "$VIDEO_BITRATE_MAX_SCALE" / 100 )) + print_ok "Scaled Throughput ("$VIDEO_BITRATE_MAX_SCALE"%) = "$VIDEO_BITRATE_MAX"Kbps" + if [ $VIDEO_BITRATE_MAX -gt 294987 ] ; then + print_pending "$VIDEO_BITRATE_MAX Kbps" is too high! + VIDEO_BITRATE_MAX=100000 + fi + print_warning "Using $VIDEO_BITRATE_MAX Kbps" + echo +fi + +echo + +if ! [ "$REXEC_BEFORE" = "" ] ; then + print_pending "Executing $REXEC_BEFORE" + $SSH_EXEC "bash -s" < "$REXEC_BEFORE" + print_ok "$REXEC_BEFORE exited." +fi + +setup_input_loop & +sleep 0.1 #(just to not shuffle output messages) +PID1=$! + +echo +print_pending "Trying to connect to $RUSER@$RHOST:$RPORT" +echo " and stream display $DISPLAY" +echo " with size $RES and offset: $OFFSET" +echo + +#Play a test tone to open the pulseaudio sinc prior to recording it to (avoid audio delays at start!?) #This hangs at exit, so we'll kill it by name. + $SSH_EXEC "$FFPLAYEXE -loglevel warning -nostats -nodisp -f lavfi -i \"sine=220:4\" -af volume=0.001 -autoexit" & + PID5=$! + + +#Guess audio capture device? + if [ "$AUDIO_CAPTURE_SOURCE" = "AUTO" ] ; then + print_pending "Guessing audio capture device" + AUDIO_CAPTURE_SOURCE=$($SSH_EXEC echo '$(pactl list sources short|grep monitor|awk "{print \$2}" | head -n 1)') + # or: AUDIO_CAPTURE_SOURCE=$($SSH_EXEC echo '$(pacmd list-sources | grep "<.*monitor>" |awk -F "[<>]" "{print \$2}" | tail -n 1)') + print_warning "Guessed audio capture source: $AUDIO_CAPTURE_SOURCE" + echo + fi +# + if [ "$AUDIO_CAPTURE_SOURCE" = "ALL" ] ; then + print_pending "Guessing ALL audio capture devices" + AUDIO_CAPTURE_SOURCE=$($SSH_EXEC echo '$(pactl list sources short|awk "{print \$2}")') + # or: AUDIO_CAPTURE_SOURCE=$($SSH_EXEC echo '$(pacmd list-sources | grep "name\: <.*>" |awk -F "[<>]" "{print \$2}")') + print_warning "Guessed following audio capture sources: $AUDIO_CAPTURE_SOURCE" + echo + fi + +#Auto video grab size? + if [ "$RES" = "AUTO" ] || [ "$RES" = "" ] ; then + print_pending "Guessing remote resolution" + RES=$($SSH_EXEC "export DISPLAY=$RDISPLAY ; xdpyinfo | awk '/dimensions:/ { print \$2; exit }'") +# print_warning "Auto grab resolution: $RES" + echo + fi + + + +#Select video encoder: + case $VIDEOENC in + cpu) + VIDEO_ENC="$VIDEO_ENC_CPU" ;; + cpurgb) + VIDEO_ENC="$VIDEO_ENC_CPU_RGB" ;; + nvgpu) + VIDEO_ENC="$VIDEO_ENC_NVGPU" ;; + nvgpu_hevc) + VIDEO_ENC="$VIDEO_ENC_NVGPU_HEVC" ;; + amdgpu) + VIDEO_ENC="$VIDEO_ENC_AMDGPU" ;; + amdgpu_hevc) + VIDEO_ENC="$VIDEO_ENC_AMDGPU_HEVC" ;; + custom) + VIDEO_ENC="$VIDEO_ENC_CUSTOM" ;; + intelgpu) + VIDEO_ENC="$VIDEO_ENC_INTELGPU" ;; + zerocopy) + VIDEO_ENC="" ;; + *) + print_error "Unsupported video encoder" + exit ;; + esac + +#Select audio encoder: + case $AUDIOENC in + opus) + AUDIO_ENC="$AUDIO_ENC_OPUS";; + pcm) + AUDIO_ENC="$AUDIO_ENC_PCM" ;; + custom) + AUDIO_ENC="$AUDIO_ENC_CUSTOM" ;; + null) + AUDIO_ENC="null" ;; + *) + print_error "Unsupported audio encoder" + exit ;; + esac + +#Insert the scale filter by replacing the dummy filters null,null. + if [ ! "$PRESCALE" = "" ] ; then + VIDEO_ENC=$(sed "s/null,null/scale=$PRESCALE/" <<< "$VIDEO_ENC") + fi + +#Grab Audio + if ! [ "$AUDIO_ENC" = "null" ] ; then + print_pending "Start audio streaming..." + + for ASOURCE in $AUDIO_CAPTURE_SOURCE ; do + AUDIO_SOURCE_GRAB_STRING="$AUDIO_SOURCE_GRAB_STRING -f pulse -ac 2 -fragment_size 1024 -i $ASOURCE " + done + #insert amix + AUDIO_SOURCE_GRAB_STRING="$AUDIO_SOURCE_GRAB_STRING -filter_complex amix=inputs=$(echo $AUDIO_CAPTURE_SOURCE|wc -w)" + + $SSH_EXEC sh -c "\ + export DISPLAY=$RDISPLAY ;\ + $FFMPEGEXE -v quiet -nostdin -loglevel warning -y "$AUDIO_SOURCE_GRAB_STRING" -b:a "$AUDIO_BITRATE"k "$AUDIO_ENC" -f nut -\ + " | $AUDIOPLAYER & + PID4=$! + fi + + +#Grab Video + print_pending "Start video streaming..." + + #$SSH_EXEC sh -c "\ + # export DISPLAY=$RDISPLAY ;\ + # $FFMPEGEXE -nostdin -loglevel warning -y -f x11grab -framerate $FPS -video_size $RES -i "$RDISPLAY""$OFFSET" -sws_flags $SCALE_FLT -b:v #"$VIDEO_BITRATE_MAX"k -maxrate "$VIDEO_BITRATE_MAX"k \ + # "$VIDEO_ENC" -f_strict experimental -syncpoints none -f nut -\ + #" | $VIDEOPLAYER + + if [ ! "$VIDEOENC" = "zerocopy" ] ; then + $SSH_EXEC sh -c "\ + export DISPLAY=$RDISPLAY ;\ + export VAAPI_DISABLE_INTERLACE=1;\ + $FFMPEGEXE -nostdin -loglevel warning -y -f x11grab "$FOLLOW_STRING" -framerate $FPS -video_size $RES -i "$RDISPLAY""$OFFSET" -sws_flags $SCALE_FLT -b:v "$VIDEO_BITRATE_MAX"k -maxrate "$VIDEO_BITRATE_MAX"k \ + "$VIDEO_ENC" -f_strict experimental -syncpoints none -f nut -\ + " | $VIDEOPLAYER + else + #Zero copy test: + RES=$(sed "s/\x/\:/" <<< "$RES") + OFFSET=$(sed "s/\+//" <<< "$OFFSET") + OFFSET=$(sed "s/\,/:/" <<< "$OFFSET") + if [ ! "$PRESCALE" = "" ] ; then + NEWRES=$(sed "s/\x/\:/" <<< "$PRESCALE") + else + NEWRES=$RES + fi + + $SSH_EXEC sh -c ";\ + $FFMPEGEXE -nostdin -loglevel warning -y -framerate $FPS -f kmsgrab -i - -sws_flags $SCALE_FLT -b:v "$VIDEO_BITRATE_MAX"k -maxrate "$VIDEO_BITRATE_MAX"k \ + -vf hwmap=derive_device=vaapi,crop="$RES:$OFFSET",scale_vaapi="$NEWRES":format=nv12 -c:v h264_vaapi -bf 0 -b:v "$VIDEO_BITRATE_MAX"k -maxrate "$VIDEO_BITRATE_MAX"k -f_strict experimental -syncpoints none -f nut -\ + " | $VIDEOPLAYER + fi + diff --git a/bin/sshlog b/bin/sshlog new file mode 100755 index 0000000..30fc83b --- /dev/null +++ b/bin/sshlog @@ -0,0 +1,278 @@ +#!/bin/bash + +set -Eu + +current_pgid=$(ps -o pgid= $$ | tr -d ' ') +current_sid=$(ps -o sid= $$ | tr -d ' ') + +function cleanup { + echo "│ Cleanup function" + # ps xao user,pid,pgid,sid,user,cmd | grep -P '(sshlog|tail)' + sudo pkill -9 -g $current_pgid -s $current_sid +} + +trap cleanup SIGINT INT TERM QUIT ERR + +TAILOPTS='' +TAILLINES='' +CAT=0 +GREP_PATTERN='' +GREP_OPT='' +NOCOLOR=0 +LOG_MAP='{ + "default": { + "default": "cmd:journalctl --output cat" + }, + "host": { + "journal": "cmd:journalctl --output cat", + "vrack": "/var/log/neutron/neutron-ovh-vrack-agent.log", + "bgp": "/var/log/neutron/neutron-ovh-bgp-agent.log", + "l3": "/var/log/neutron/neutron-ovh-l3-agent.log", + "metadata": "/var/log/neutron/neutron-ovh-metadata-agent.log", + "nova": "/var/log/nova/*.log", + "libvirt": "/var/log/libvirt/libvirtd.log", + "ovs": "/var/log/openvswitch/*.log", + "neutron": "/var/log/neutron/*.log", + "default": "/var/log/nova/*.log /var/log/neutron/*.log" + }, + "snat": { + "journal": "cmd:journalctl --output cat", + "vrack": "/var/log/neutron/neutron-ovh-vrack-agent.log", + "bgp": "/var/log/neutron/neutron-ovh-bgp-agent.log", + "l3": "/var/log/neutron/neutron-ovh-l3-agent.log", + "dhcp": "/var/log/neutron/neutron-dhcp-agent.log", + "metadata": "/var/log/neutron/neutron-ovh-metadata-agent.log", + "neutron": "/var/log/neutron/*.log", + "ovs": "/var/log/openvswitch/*.log", + "default": "/var/log/neutron/*.log" + }, + "neutron": { + "journal": "cmd:journalctl --output cat", + "apache": "/var/log/apache2/neutron-api*log", + "api": "/var/log/neutron/neutron-api.log", + "rpc": "/var/log/neutron/neutron-rpc.log", + "default": "/var/log/neutron/*.log" + }, + "nova": { + "journal": "cmd:journalctl --output cat", + "apache": "/var/log/apache2/nova-api*log", + "api": "/var/log/nova/nova-api.log", + "conductor": "/var/log/nova/nova-conductor.log", + "scheduler": "/var/log/nova/nova-scheduler.log", + "placement": "/var/log/placement/placement-api.log", + "default": "/var/log/nova/*.log" + }, + "cinder": { + "journal": "cmd:journalctl --output cat", + "apache": "/var/log/apache2/cinder-api*log", + "api": "/var/log/cinder/cinder-api.log", + "scheduler": "/var/log/cinder/cinder-scheduler.log", + "volume": "/var/log/cinder/cinder-volume.log", + "backup": "/var/log/cinder/cinder-backup.log", + "default": "/var/log/cinder/*.log" + }, + "glance": { + "journal": "cmd:journalctl --output cat", + "default": "/var/log/glance/*.log" + }, + "ironic": { + "journal": "cmd:journalctl --output cat", + "api": "/var/log/ironic/ironic-api.log", + "conductor": "/var/log/ironic/ironic-ovh-conductor.log", + "metadata": "/var/log/ironic/ironic-ovh-metadata-server.log", + "neutron": "/var/log/neutron/*.log", + "nova": "/var/log/nova/*log", + "default": "/var/log/ironic/*.log" + }, + "rabbit": { + "journal": "cmd:journalctl --output cat", + "default": "/var/log/rabbitmq/*.log" + }, + "rabbit-nova": { + "journal": "cmd:journalctl --output cat", + "default": "/var/log/rabbitmq/*.log" + }, + "rabbit-neutron": { + "journal": "cmd:journalctl --output cat", + "default": "/var/log/rabbitmq/*.log" + } +}' + +function sshlog { + HOST_GROUP="$1" + LOG_KEYS=(${2:-default}) + + # Get matching host from /etc/hosts - retrieve maximum MAX_HOSTS + found_hosts=$(cat /etc/hosts | \ + grep -Pv '(^#|^$)' | \ + awk '{print $2}' | \ + grep -Pi "^($HOST_GROUP|$HOST_GROUP[0-9]*\.${OS_REGION_NAME:-.*}\..*)$" | head -n ${MAX_HOSTS:-10} | xargs + ) + + # Get group from host arg + len=$(echo $found_hosts | wc -w) + if [[ $len -eq 0 ]]; then + echo no host found + exit 1 + elif [[ $len -eq 1 ]]; then + group_name=$(echo $found_hosts | cut -d. -f1 | tr -d '[0-9]') + else + group_name=$HOST_GROUP + fi + + # Find matching group from LOG_MAP + found_group=$(echo $LOG_MAP | jq -r 'keys[]' | grep -P "^$group_name$" || true) + if [[ -z $found_group ]]; then + # fallback on default group + group_name="default" + fi + + # get log files from map[group][key] + log_files=() + for key in ${LOG_KEYS[@]}; do + found_log=$(echo $LOG_MAP | jq .\"$group_name\" | jq -r 'keys[]' | grep -P "^$key$" || true) + if [[ -z $found_log ]]; then + echo "[$key] does not match any of $(echo $LOG_MAP | jq .\"$group_name\" | jq 'keys[]')" + exit 1 + fi + log_files+=($(echo $LOG_MAP | jq -r .\"$group_name\".\"$found_log\")) + done + + # build logging command + if [[ ${log_files[@]} =~ cmd: ]]; then + if [[ ${#LOG_KEYS[@]} > 1 ]]; then + echo "${log_files[@]} have cmd:xx -- only 1 log arg supported" + exit 1 + fi + CMD=$(echo ${log_files[@]} | sed -e 's/^cmd://') + LOGCMD="echo '==> $CMD <==' ; timeout 3600 $CMD $TAILOPTS" + else + LOGCMD="timeout 3600 tail -v $TAILOPTS ${log_files[@]}" + fi + + if [[ -n $GREP_PATTERN ]]; then + [[ -z $GREP_OPT ]] && GREP_OPT='-Pi' + GREPCMD="grep --line-buffered ${GREP_OPT} '$GREP_PATTERN'" + else + GREPCMD=tee + fi + + echo "│" + echo "│ Host: $found_hosts" + echo "│ Files: ${log_files[@]}" + echo "│ Cmd: $LOGCMD | $GREPCMD" + echo "│" + + if [[ $NOCOLOR -eq 1 ]]; then + color_cmd="tee" + else + color_cmd="os-log-color" + fi + + for h in $(echo $found_hosts); do + short=$(echo $h | sed -e 's/\.cloud.ovh.*//') + # Execute tail cmd through ssh + # stdbuf -o0 : do not buffer stdout + # awk: prefix each line whith "host filename ..." # filename is retrieved using tail -v + # grep -F '' --line-buffered: try to not mix output + sudo ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" -l admin $h \ + "$LOGCMD | $GREPCMD" 2> /dev/null | \ + stdbuf -o0 awk -v host=$short '/^==>/{size=split($2,splitted,"/");filename=splitted[size] ;next} !/^==>/{print host,filename,$0}' | \ + grep -F '' --line-buffered & + done | $color_cmd + + wait + cleanup +} + +function sshlog_completion +{ + local cur first + + cur=${COMP_WORDS[COMP_CWORD]} + first=${COMP_WORDS[1]} + + case ${COMP_CWORD} in + 1) COMPREPLY=($(compgen -W "$(sshlog -s | jq -r 'keys[]'| xargs) $(cat /etc/hosts | grep -Pv '(^#|^$)' | awk '{print $2}' | grep -Pi "[0-9]\.${OS_REGION_NAME:-.*}\." | xargs)" -- ${first})) ;; + *) group=$(echo $first | cut -d. -f1 | tr -d "[0-9]"); + sshlog_group=$(sshlog -s | jq -r .\"${group}\") + [[ ! $sshlog_group = null ]] && sshlog_group=$group || sshlog_group=default + COMPREPLY=($(compgen -W "$(sshlog -s | jq -r .\"${sshlog_group}\" | jq 'keys[]'| xargs 2> /dev/null)" -- ${cur})) ;; + esac +} + + +function print_help { + echo " +$(basename $0) [group|hostname] [log type] + +Options: + +$(declare -f main | \ + grep -P '(help=|--|-[a-zA-Z]\))' | \ + xargs | \ + sed -e 's/; /\n/g' -e 's/help=/#/g' | \ + column -t -s '#') +" + exit +} + + +function main { + [[ $# == 0 ]] && print_help + + while [[ $# -ne 0 ]]; do + arg="$1"; shift + case "$arg" in + -n) + help="NB: nb lines. tail option" + export TAILLINES=$1 && shift;; + --nocolor|-N) + help="no color" + export NOCOLOR=1 ;; + --cat|-c) + help="cat instead tail -f" + export CAT=1 ;; + --grep|-g) + help="grep -Pi pattern" + export GREP_PATTERN=$1 && shift;; + --grepopt|-G) + help="grep options, default -Pi" + export GREP_OPT=$1 + [[ ! $GREP_OPT =~ ^\- ]] && echo "grep opt should begin with ^-.." && exit 1 + shift;; + --show|-s) + help="display log map" + echo $LOG_MAP ; exit ;; + --max|-m) + help="maximum nb hosts o get log from" + export MAX_HOSTS=$1 && shift ;; + --completion) + help='completion function (eval "$(sshlog --completion)")' + declare -f sshlog_completion + echo complete -F sshlog_completion sshlog + exit ;; + --help|-h) + help="this help" + print_help ;; + *) [[ ! $arg =~ ^\-+.* ]] && POSITIONNAL_ARGS+=($arg) || EXTRA_ARGS+=($arg) + esac + done + + if [[ $CAT -eq 1 ]]; then + export TAILLINES="+1" + else + export TAILOPTS="$TAILOPTS -f" + fi + + if [[ -n $TAILLINES ]]; then + export TAILOPTS="$TAILOPTS -n $TAILLINES" + fi + + HOST_GROUP=${POSITIONNAL_ARGS[0]} + LOG_KEYS=${POSITIONNAL_ARGS[@]:1} + + sshlog "$HOST_GROUP" "${LOG_KEYS[@]}" +} + +main "$@" diff --git a/bin/stern b/bin/stern new file mode 100755 index 0000000..4da2fd9 Binary files /dev/null and b/bin/stern differ diff --git a/bin/wifi b/bin/wifi new file mode 100755 index 0000000..f5a9029 --- /dev/null +++ b/bin/wifi @@ -0,0 +1,149 @@ +#!/bin/bash +wifi_iface=$( nmcli -f DEVICE,TYPE dev | grep wifi | awk '{print $1}' ) + +function wifi_state () +{ + state="$1" + + if [[ $state == 'on' || $state == 'off' ]]; then + nmcli radio wifi $state + else + error "Unknow state: $state" + fi +} + +function wifi_list () +{ + echo "* Available ssid" + echo -e "-----------------------------------------------------------------------------\n" + nmcli dev wifi list + + echo -e "\n* Created connection" + echo -e "-----------------------------------------------------------------------------\n" + nmcli con + + return +} + +function _ssid_exist () +{ + ssid="$1" + nmcli -t --field ssid dev wifi list | grep -Pq "^$ssid$" + return $? +} + +function _con_exist () +{ + name="$1" + nmcli -t --field name con | grep -Pq "^$name$" + return $? +} + + +function _wifi_security () +{ + ssid="$1" + + while read wifi; do + name=$(echo $wifi | cut -d: -f1) + security=$(echo $wifi | cut -d: -f2) + if [[ "$name" == "$ssid" ]];then + [[ $security =~ WPA ]] && echo 'wpa' && return + [[ $security =~ WEP ]] && echo 'wep' && return + [[ $security == '' ]] && echo 'none' && return + fi + done < <( nmcli -t --field ssid,security dev wifi list ) + + # not found + error "security $security not known type" +} + +function wifi_add () +{ + ssid="$1" + name="$2" + [[ -z $name ]] && name=$ssid + + _ssid_exist "$ssid" + [[ $? -ne 0 ]] && error "Unable to find ssid $ssid" + + security=$(_wifi_security "$ssid") + + echo "- Create new connection $name to ssid: $ssid" + ret=$( nmcli con add con-name "$name" ifname $wifi_iface type wifi ssid "$ssid" ) + if [[ $? -ne 0 ]]; then + echo "Fail to add connection: $name | ssid: $ssid : $ret" + nmcli con delete "$name" 2> /dev/null + return 1 + fi + + if [[ $security != 'none' ]]; then + read -p "Password: " pass + nmcli con modify "$name" wifi-sec.key-mgmt wpa-psk + nmcli con modify "$name" wifi-sec.psk "$pass" + fi + + echo "- Connection added" +} + +function wifi_connect () +{ + name="$1" + _con_exist "$name" + [[ $? -ne 0 ]] && error "Unable to find connection $name" + + nmcli con up $name +} + +function error +{ + error="$@" + echo "[ERROR] $error" + exit 1 +} + +function print_help () +{ + echo " + nmcli wrapper + + $(basename $0) [--list|--add|--name|--connect|--state] + + --list list available ssid + --add SSID add wifi connexion + --name NAME use with --add to save connection as alias NAME + --connect connect to SSID/NAME + --state on|off turn wifi on/off + + Ex: + $(basename $0) --add bbox-1234 --name Home + $(basename $0) --name Home --connect + $(basename $0) --add bbox-1234 --name Home --connect + " + exit +} + +function main () +{ + [[ $# -eq 0 ]] && print_help + + while [[ $# -ne 0 ]]; do + arg="$1"; shift + case "$arg" in + --list) wifi_list ;; + --state) state="$1"; shift ;; + --add) ssid="$1"; shift ;; + --name) name="$1"; shift ;; + --connect) connect=1 ;; + --help) print_help ;; + * ) [[ $arg =~ ^\-+.* ]] && print_help "$arg unknown" ;; + esac + done + + [[ -n $state ]] && wifi_state $state + [[ -n $ssid ]] && wifi_add "$ssid" "$name" + [[ -z $name ]] && name="$ssid" + [[ $connect -eq 1 && -n $name ]] && wifi_connect "$name" +} + +main "$@" diff --git a/config.X11/alacritty/alacritty.toml b/config.X11/alacritty/alacritty.toml new file mode 100644 index 0000000..bee3402 --- /dev/null +++ b/config.X11/alacritty/alacritty.toml @@ -0,0 +1,150 @@ +[colors] +draw_bold_text_with_bright_colors = true + +[colors.bright] +black = "0x928374" +blue = "0x7daea3" +cyan = "0x89b482" +green = "0xa9b665" +magenta = "0xd3869b" +red = "0xea6962" +white = "0xdfbf8e" +yellow = "0xe3a84e" + +[colors.normal] +black = "0x251f19" +blue = "0x7daea3" +cyan = "0x89b482" +green = "0xa9b665" +magenta = "0xd3869b" +red = "0xea6962" +white = "0xdfbf8e" +yellow = "0xe78a4e" + +[colors.primary] +background = "0x181818" +foreground = "0xdfbf8e" + +[env] +TERM = "xterm-256color" +WINIT_X11_SCALE_FACTOR = "1" + +[font] +size = 12 + +[font.bold] +style = "Bold" + +[font.bold_italic] +style = "Bold Italic" + +[font.italic] +style = "Italic" + +[font.normal] +family = "CaskaydiaCove Nerd Font" +style = "Regular" + +[font.offset] +x = 0 +y = 0 + +[[keyboard.bindings]] +action = "Paste" +key = "V" +mods = "Control|Shift" + +[[keyboard.bindings]] +action = "Copy" +key = "C" +mods = "Control|Shift" + +[[keyboard.bindings]] +action = "PasteSelection" +key = "Insert" +mods = "Shift" + +[[keyboard.bindings]] +action = "ResetFontSize" +key = "Key0" +mods = "Control" + +[[keyboard.bindings]] +action = "IncreaseFontSize" +key = "Equals" +mods = "Control" + +[[keyboard.bindings]] +action = "IncreaseFontSize" +key = "Plus" +mods = "Control" + +[[keyboard.bindings]] +action = "DecreaseFontSize" +key = "Minus" +mods = "Control" + +[[keyboard.bindings]] +action = "ToggleFullscreen" +key = "F11" +mods = "None" + +[[keyboard.bindings]] +action = "Paste" +key = "Paste" +mods = "None" + +[[keyboard.bindings]] +action = "Copy" +key = "Copy" +mods = "None" + +[[keyboard.bindings]] +action = "ClearLogNotice" +key = "L" +mods = "Control" + +[[keyboard.bindings]] +chars = "\f" +key = "L" +mods = "Control" + +[[keyboard.bindings]] +action = "ScrollPageUp" +key = "PageUp" +mode = "~Alt" +mods = "Shift" + +[[keyboard.bindings]] +action = "ScrollPageDown" +key = "PageDown" +mode = "~Alt" +mods = "Shift" + +[[keyboard.bindings]] +action = "ScrollToTop" +key = "Home" +mode = "~Alt" +mods = "Shift" + +[[keyboard.bindings]] +action = "ScrollToBottom" +key = "End" +mode = "~Alt" +mods = "Shift" + +[scrolling] +history = 5000 + +[window] +dynamic_padding = false +title = "Alacritty" +dynamic_title = true + +[window.class] +general = "Alacritty" +instance = "Alacritty" + +[window.padding] +x = 2 +y = 2 diff --git a/config.X11/alacritty/alacritty.yml b/config.X11/alacritty/alacritty.yml new file mode 100644 index 0000000..a449a40 --- /dev/null +++ b/config.X11/alacritty/alacritty.yml @@ -0,0 +1,188 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# Any items in the `env` entry below will be added as +# environment variables. Some entries may override variables +# set by alacritty itself. +env: + # TERM variable + # + # This value is used to set the `$TERM` environment variable for + # each instance of Alacritty. If it is not present, alacritty will + # check the local terminfo database and use `alacritty` if it is + # available, otherwise `xterm-256color` is used. + TERM: xterm-256color + WINIT_X11_SCALE_FACTOR: "1" + +window: + # Window dimensions (changes require restart) + # + # Specified in number of columns/lines, not pixels. + # If both are `0`, this setting is ignored. + #dimensions: + # columns: 0 + # lines: 0 + + # Window position (changes require restart) + # + # Specified in number of pixels. + # If the position is not set, the window manager will handle the placement. + #position: + # x: 0 + # y: 0 + + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is scaled + # by DPI and the specified value is always added at both opposing sides. + padding: + x: 2 + y: 2 + + # Spread additional padding evenly around the terminal content. + dynamic_padding: false + + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # + # Values for `decorations` (macOS only): + # - transparent: Title bar, transparent background and title bar buttons + # - buttonless: Title bar, transparent background, but no title bar buttons + #decorations: full + + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + #startup_mode: Windowed + + # Window title + title: Alacritty + + # Window class (Linux/BSD only): + class: + # Application instance name + instance: Alacritty + # General application class + general: Alacritty + + # GTK theme variant (Linux/BSD only) + # + # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`. + # Set this to `None` to use the default theme variant. + #gtk_theme_variant: None + +scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + history: 5000 + + # Number of lines the viewport will move for every line scrolled when + # scrollback is enabled (history > 0). + #multiplier: 3 + + # Scroll to the bottom when new text is written to the terminal. + #auto_scroll: false + +# Spaces per Tab (changes require restart) +# +# This setting defines the width of a tab in cells. +# +# Some applications, like Emacs, rely on knowing about the width of a tab. +# To prevent unexpected behavior in these applications, it's also required to +# change the `it` value in terminfo when altering this setting. +#tabspaces: 8 + +# Font configuration (fc-list) +font: + normal: + # Font family + # family: JetBrains Mono + family: CaskaydiaCove Nerd Font + # family: Hack + # family: FiraMono Nerd Font + # family: DejaVu Sans Mono + style: Regular + + bold: + style: Bold + + italic: + style: Italic + + bold_italic: + style: Bold Italic + + # Point size + size: 12 + + # Offset is the extra space around each character. `offset.y` can be thought of + # as modifying the line spacing, and `offset.x` as modifying the letter spacing. + offset: + x: 0 + y: 0 + + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the right, + # increasing `y` moves the glyph upwards. + #glyph_offset: + # x: 0 + # y: 0 + +# If `true`, bold text is drawn using the bright color variants. +draw_bold_text_with_bright_colors: true + +colors: + primary: + background: '0x181818' + foreground: '0xdfbf8e' + + normal: + black: '0x251f19' + red: '0xea6962' + green: '0xa9b665' + yellow: '0xe78a4e' + blue: '0x7daea3' + magenta: '0xd3869b' + cyan: '0x89b482' + white: '0xdfbf8e' + + bright: + black: '0x928374' + red: '0xea6962' + green: '0xa9b665' + yellow: '0xe3a84e' + blue: '0x7daea3' + magenta: '0xd3869b' + cyan: '0x89b482' + white: '0xdfbf8e' + + +# Bindings are always filled by default, but will be replaced when a new +# binding with the same triggers is defined. To unset a default binding, it can +# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for +# a no-op if you do not wish to receive input characters for that binding. +key_bindings: + - { key: V, mods: Control|Shift, action: Paste } + - { key: C, mods: Control|Shift, action: Copy } + - { key: Insert, mods: Shift, action: PasteSelection } + - { key: Key0, mods: Control, action: ResetFontSize } + - { key: Equals, mods: Control, action: IncreaseFontSize } + - { key: Plus, mods: Control, action: IncreaseFontSize } + - { key: Minus, mods: Control, action: DecreaseFontSize } + - { key: F11, mods: None, action: ToggleFullscreen } + - { key: Paste, mods: None, action: Paste } + - { key: Copy, mods: None, action: Copy } + - { key: L, mods: Control, action: ClearLogNotice } + - { key: L, mods: Control, chars: "\x0c" } + - { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } + - { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } + - { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } + - { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt } diff --git a/config.X11/dunst/dunstrc b/config.X11/dunst/dunstrc new file mode 100644 index 0000000..2e50e4f --- /dev/null +++ b/config.X11/dunst/dunstrc @@ -0,0 +1,64 @@ +[global] + monitor = 0 + follow = mouse + geometry = "320x5-15+35" + indicate_hidden = yes + shrink = no + transparency = 0 + notification_height = 0 + separator_height = 2 + padding = 10 + horizontal_padding = 10 + frame_width = 1 + frame_color = "#232323" + separator_color = frame + sort = yes + idle_threshold = 120 + font = Source Sans Pro 10 + line_height = 0 + markup = full + format = "%s %p\n%b" + alignment = left + show_age_threshold = 60 + word_wrap = yes + ellipsize = middle + ignore_newline = no + stack_duplicates = true + hide_duplicate_count = false + show_indicators = yes + icon_position = left + max_icon_size = 32 + icon_path = ~/.icons/Paper/16x16/status/:~/.icons/Paper/16x16/devices/:~/.icons/Paper/16x16/apps/ + sticky_history = yes + history_length = 20 + always_run_script = true + startup_notification = false + verbosity = mesg + corner_radius = 2 + force_xinerama = false + mouse_left_click = close_current + mouse_middle_click = do_action + mouse_right_click = close_all + +[shortcuts] + close = ctrl+space + close_all = ctrl+shift+space + history = ctrl+grave + context = ctrl+shift+period + +[urgency_low] + background = "#232323" + foreground = "#a8a8a8" + timeout = 10 + +[urgency_normal] + background = "#232323" + foreground = "#a8a8a8" + timeout = 10 + +[urgency_critical] + background = "#d64e4e" + foreground = "#f0e0e0" + frame_color = "#d64e4e" + timeout = 0 + icon = ~/.icons/Paper/16x16/status/dialog-warning.png diff --git a/config.X11/i3/.gitignore b/config.X11/i3/.gitignore new file mode 100644 index 0000000..04204c7 --- /dev/null +++ b/config.X11/i3/.gitignore @@ -0,0 +1 @@ +config diff --git a/config.X11/i3/base.config b/config.X11/i3/base.config new file mode 100644 index 0000000..0fc3a21 --- /dev/null +++ b/config.X11/i3/base.config @@ -0,0 +1,224 @@ +# vim: ft=i3config +# +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see http://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod1 +set $win Mod4 + +# Before i3 v4.8, we used to recommend this one as the default: +# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +# The font above is very space-efficient, that is, it looks good, sharp and +# clear in small sizes. However, its unicode glyph coverage is limited, the old +# X core fonts rendering does not support right-to-left and this being a bitmap +# font, it doesn’t scale on retina/hidpi displays. + +force_xinerama no + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod +new_window pixel 2 +new_float pixel 2 +hide_edge_borders smart +focus_follows_mouse yes + +# i3 gaps +# smart_borders on +# gaps inner 5 +# gaps outer 5 + +# kill focused window +bindsym $mod+Shift+q kill +bindsym $mod+F4 kill +bindsym --whole-window $win+button1 kill + +# change focus +bindsym $win+Left focus left +bindsym $win+Down focus down +bindsym $win+Up focus up +bindsym $win+Right focus right + +# move focused window +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+t layout tabbed +bindsym $mod+e layout toggle split +bindsym $mod+o layout toggle + +# toggle tiling / floating +bindsym $mod+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+Shift+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +bindsym $mod+z focus child + +# border changing +bindsym $mod+b border toggle + +# switch to workspace +bindsym $mod+Tab workspace back_and_forth +workspace_auto_back_and_forth yes +bindsym $mod+Right workspace next_on_output +bindsym $mod+Left workspace prev_on_output +bindsym $mod+1 workspace 1 +bindsym $mod+2 workspace 2 +bindsym $mod+3 workspace 3 +bindsym $mod+4 workspace 4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace 10 +bindsym $mod+minus workspace 11 +bindsym $mod+equal workspace 12 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace 1 +bindsym $mod+Shift+2 move container to workspace 2 +bindsym $mod+Shift+3 move container to workspace 3 +bindsym $mod+Shift+4 move container to workspace 4 +bindsym $mod+Shift+5 move container to workspace 5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 +bindsym $mod+Shift+0 move container to workspace 10 +bindsym $mod+Shift+minus move container to workspace 11 +bindsym $mod+Shift+equal move container to workspace 12 + +# focus output +bindsym $mod+Ctrl+Left focus output left +bindsym $mod+Ctrl+Right focus output right +bindsym $mod+Ctrl+Up focus output up +bindsym $mod+Ctrl+Down focus output down + +# reload the configuration file +bindsym $mod+Shift+c exec "~/.config/i3/i3_build_conf.sh reload" +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r exec "~/.config/i3/i3_build_conf.sh restart" +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+d mode "resize" + +bindsym $mod+shift+w [floating title="Webex"] move scratchpad + +for_window [class="KeePassXC"] floating enable +for_window [class="KeePassXC"] resize set 1024 768 + +exec --no-startup-id "/usr/bin/dunst" +exec --no-startup-id "/usr/bin/enpass" +exec --no-startup-id "/usr/bin/nm-applet" +exec --no-startup-id "/usr/bin/udiskie -t" +exec --no-startup-id "/usr/bin/xfce4-power-manager" +exec --no-startup-id "solaar -w hide" + +exec_always --no-startup-id "setxkbmap -layout us -variant altgr-intl" + +# fn keys +bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 2%- && pkill -SIGRTMIN+10 i3blocks +bindsym XF86AudioRaiseVolume exec amixer -D pulse sset Master 2%+ && pkill -SIGRTMIN+10 i3blocks +bindsym XF86AudioMute exec amixer -D pulse sset Master toggle && pkill -SIGRTMIN+10 i3blocks + +# pip3 install spotify-cli-linux --user +bindsym XF86AudioStop exec notify-send "$(~/.local/bin/spotifycli --status)" && pkill -SIGRTMIN+11 i3blocks +bindsym XF86AudioPlay exec ~/.local/bin/spotifycli --playpause && pkill -SIGRTMIN+11 i3blocks +bindsym XF86AudioNext exec ~/.local/bin/spotifycli --next && pkill -SIGRTMIN+11 i3blocks +bindsym XF86AudioPrev exec ~/.local/bin/spotifycli --prev && pkill -SIGRTMIN+11 i3blocks + +bindsym Ctrl+Shift+l exec --no-startup-id ~/.config/i3/scripts/i3lock_blur.sh +bindsym $mod+q exec ~/.config/i3/scripts/i3_exit.sh + + +####### +#THEME# +####### + +# set primary gruvbox colorscheme colors +set $white #ffffff +set $bg #282828 +set $gray #ddc7a1 +set $darkgray #1d2021 +set $red #ea6962 +set $green #d8a657 +set $yellow #dccdab +set $blue #7daea3 +set $purple #d3869b +set $aqua #89b482 + +# font used by i3 for titles and bars +font pango:DejaVuSansM Nerd Font Propo Bold 9 + +bar { + position top + status_command i3blocks + tray_padding 5 + #i3-min-version-check# height 30 + colors { + # bar background color + background $bg + # text color used for blocks that do not have a color specified. + statusline $gray + # workspaces section + # border backgr. text + focused_workspace $aqua $aqua $darkgray + inactive_workspace $darkgray $darkgray $gray + active_workspace $darkgray $darkgray $gray + urgent_workspace $red $red $white + } +} + +# class border|backgr|text|indicator +client.focused $aqua $aqua $darkgray $purple +client.focused_inactive $darkgray $darkgray $gray $purple +client.unfocused $darkgray $darkgray $gray $purple +client.urgent $red $red $white $red + + +# END BASE.CONFIG diff --git a/config.X11/i3/hw_model/21J3CTO1WW.hw.config b/config.X11/i3/hw_model/21J3CTO1WW.hw.config new file mode 100644 index 0000000..59a87ce --- /dev/null +++ b/config.X11/i3/hw_model/21J3CTO1WW.hw.config @@ -0,0 +1,16 @@ +# BEGIN Timibook.hw.config + +exec --no-startup-id "/usr/bin/blueman-applet" +exec_always --no-startup-id "redshift -x; redshift -o -O 4500" +exec_always --no-startup-id "xinput set-prop 'TPPS/2 Synaptics TrackPoint' 'libinput Accel Speed' -0.7" +# CMD: pkill redshift; redshift -x; redshift -o -O 4500 -m randr:crtc=0 + +bindsym $mod+Return exec alacritty -o font.size=12 +bindsym $mod+r exec --no-startup-id rofi -show drun +bindsym $mod+w exec --no-startup-id rofi -show window +bindsym $win+P exec ~/.config/i3/scripts/hdmi_setup --toggle +bindsym $win+Tab exec ~/.config/i3/scripts/hdmi_setup --switch_mode +bindsym XF86MonBrightnessUp exec ~/.config/i3/hw_model/thinkpad/xbacklight --inc 2 +bindsym XF86MonBrightnessDown exec ~/.config/i3/hw_model/thinkpad/xbacklight --dec 2 + +# END Timibook.hw.config diff --git a/config.X11/i3/hw_model/Latitude 7390.hw.config b/config.X11/i3/hw_model/Latitude 7390.hw.config new file mode 100644 index 0000000..d03d233 --- /dev/null +++ b/config.X11/i3/hw_model/Latitude 7390.hw.config @@ -0,0 +1,17 @@ +# BEGIN Dell.hw.config + +bindsym $mod+Return exec /home/jcosmao/.local/bin/alacritty -o font.size=10.5 +bindsym $mod+r exec --no-startup-id rofi -show drun +bindsym $mod+w exec --no-startup-id rofi -show window +bindsym XF86MonBrightnessUp exec ~/.config/i3/hw_model/dell/xbacklight --inc 500 +bindsym XF86MonBrightnessDown exec ~/.config/i3/hw_model/dell/xbacklight --dec 500 +exec_always --no-startup-id "~/.config/i3/hw_model/dell/touchpad_setup.sh" +# CMD: pkill redshift; redshift -x; redshift -o -O 4500 -m randr:crtc=0 + +# ex: i3-save-tree --workspace 10 > ~/.config/i3/workspace_10.json +# then modify swallow (xprop tools) +# i3-msg append_layout ~/.config/i3/workspace_10.json +#exec_always --no-startup-id "i3-msg 'workspace 1; append_layout ~/.config/i3/workspace_1.json'" +#exec_always --no-startup-id "i3-msg 'workspace 10; append_layout ~/.config/i3/workspace_10.json'" + +# END Dell.hw.config diff --git a/config.X11/i3/hw_model/NUC8i5BEK.hw.config b/config.X11/i3/hw_model/NUC8i5BEK.hw.config new file mode 100644 index 0000000..649b3b9 --- /dev/null +++ b/config.X11/i3/hw_model/NUC8i5BEK.hw.config @@ -0,0 +1,7 @@ +# BEGIN NUC8i5BEK.hw.config + +bindsym $mod+Return exec alacritty -o font.size=10.5 +bindsym $mod+r exec --no-startup-id rofi -show drun +bindsym $mod+w exec --no-startup-id rofi -show window + +# END NUC8i5BEK.hw.config diff --git a/config.X11/i3/hw_model/README.md b/config.X11/i3/hw_model/README.md new file mode 100644 index 0000000..74c438a --- /dev/null +++ b/config.X11/i3/hw_model/README.md @@ -0,0 +1 @@ +touch $(cat /sys/devices/virtual/dmi/id/product_name).hw.config diff --git a/config.X11/i3/hw_model/TM1612.hw.config b/config.X11/i3/hw_model/TM1612.hw.config new file mode 100644 index 0000000..0a211d8 --- /dev/null +++ b/config.X11/i3/hw_model/TM1612.hw.config @@ -0,0 +1,15 @@ +# BEGIN Timibook.hw.config + +exec --no-startup-id "/usr/bin/blueman-applet" +exec_always --no-startup-id "redshift -x; redshift -o -O 4500" +# CMD: pkill redshift; redshift -x; redshift -o -O 4500 -m randr:crtc=0 + +bindsym $mod+Return exec alacritty +bindsym $mod+r exec --no-startup-id rofi -show drun +bindsym $mod+w exec --no-startup-id rofi -show window +bindsym XF86MonBrightnessUp exec /usr/bin/xbacklight -inc 5 +bindsym XF86MonBrightnessDown exec /usr/bin/xbacklight -dec 5 +bindsym $win+P exec ~/.config/i3/scripts/hdmi_setup --toggle +bindsym $win+Tab exec ~/.config/i3/scripts/hdmi_setup --switch_mode + +# END Timibook.hw.config diff --git a/config.X11/i3/hw_model/dell/touchpad_setup.sh b/config.X11/i3/hw_model/dell/touchpad_setup.sh new file mode 100755 index 0000000..fdcdf8a --- /dev/null +++ b/config.X11/i3/hw_model/dell/touchpad_setup.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# SETUP from gnome +# ❯ xinput list-props 12 +gnome_setup=" + libinput Tapping Enabled (284): 1 + libinput Tapping Enabled Default (285): 0 + libinput Tapping Drag Enabled (286): 1 + libinput Tapping Drag Enabled Default (287): 1 + libinput Tapping Drag Lock Enabled (288): 1 + libinput Tapping Drag Lock Enabled Default (289): 0 + libinput Tapping Button Mapping Enabled (290): 1, 0 + libinput Tapping Button Mapping Default (291): 1, 0 + libinput Natural Scrolling Enabled (292): 0 + libinput Natural Scrolling Enabled Default (293): 0 + libinput Disable While Typing Enabled (294): 1 + libinput Disable While Typing Enabled Default (295): 1 + libinput Scroll Methods Available (296): 1, 1, 0 + libinput Scroll Method Enabled (297): 1, 0, 0 + libinput Scroll Method Enabled Default (298): 1, 0, 0 + libinput Accel Speed (299): 0.136691 + libinput Accel Speed Default (300): 0.000000 + libinput Left Handed Enabled (301): 0 + libinput Left Handed Enabled Default (302): 0 + libinput Send Events Modes Available (269): 1, 1 + libinput Send Events Mode Enabled (270): 0, 0 + libinput Send Events Mode Enabled Default (271): 0, 0 + libinput Horizontal Scroll Enabled (304): 1 +" + +touchpad_id=$(xinput list | grep Touchpad | grep -Po '(?<=id=)\d+') + +echo "$gnome_setup" | while read line; do + name=$(echo "$line" | grep -Po '.*(?= \(\d+\))') + value=$(echo "$line" | cut -d':' -f2) + if [[ -n "$value" ]]; then + xinput set-prop $touchpad_id "$name" $value 2> /dev/null + fi +done diff --git a/config.X11/i3/hw_model/dell/xbacklight b/config.X11/i3/hw_model/dell/xbacklight new file mode 100755 index 0000000..3440738 --- /dev/null +++ b/config.X11/i3/hw_model/dell/xbacklight @@ -0,0 +1,33 @@ +#!/bin/bash + +# Need brightness-udev for non root users to access file + + +function inc_brightness() { + inc=$1 + current=$(cat /sys/class/backlight/intel_backlight/brightness) + echo $((current + inc)) > /sys/class/backlight/intel_backlight/brightness + exit +} + +function dec_brightness() { + dec=$1 + current=$(cat /sys/class/backlight/intel_backlight/brightness) + echo $((current - dec)) > /sys/class/backlight/intel_backlight/brightness + exit +} + + +function main () +{ + while [[ $# -ne 0 ]]; do + arg="$1"; shift + case "$arg" in + --inc) val=$1; inc_brightness $val ;; + --dec) val=$1; dec_brightness $val ;; + * ) [[ $arg =~ \-+.* ]] && echo "$arg unknown" + esac + done +} + +main "$@" diff --git a/config.X11/i3/hw_model/thinkpad/10-xbacklight.rules b/config.X11/i3/hw_model/thinkpad/10-xbacklight.rules new file mode 100644 index 0000000..00cf25c --- /dev/null +++ b/config.X11/i3/hw_model/thinkpad/10-xbacklight.rules @@ -0,0 +1,5 @@ +SUBSYSTEM=="backlight", ACTION=="add", +RUN+="/bin/chgrp video /sys/class/backlight/amdgpu_bl1/brightness", +RUN+="/bin/chmod g+w /sys/class/backlight/amdgpu_bl1/brightness" +RUN+="/bin/chgrp video /sys/class/backlight/amdgpu_bl0/brightness", +RUN+="/bin/chmod g+w /sys/class/backlight/amdgpu_bl0/brightness" diff --git a/config.X11/i3/hw_model/thinkpad/README.md b/config.X11/i3/hw_model/thinkpad/README.md new file mode 100644 index 0000000..a390292 --- /dev/null +++ b/config.X11/i3/hw_model/thinkpad/README.md @@ -0,0 +1,15 @@ +```shell +# deps +yay -S strace redshift aur/thinkfan xorg-xdpyinfo ffmpeg pavucontrol pulseaudio pulseaudio-alsa mpstat sysstat autofs feh + +# xbacklight +sudo 10-xbacklight.rules /etc/udev/rules.d/ + +# thinkfan +yay -S thinkfan +cp thinkfan.service.d/override.conf /etc/systemd/system/thinkfan.service.d/override.conf + +# trackpoint +❭ echo -n 200 > /sys/devices/platform/i8042/serio1/sensitivity +❭ xinput set-prop "TPPS/2 Synaptics TrackPoint" "libinput Accel Speed" -0.7 +``` diff --git a/config.X11/i3/hw_model/thinkpad/amdgpu_power.service b/config.X11/i3/hw_model/thinkpad/amdgpu_power.service new file mode 100644 index 0000000..392afe7 --- /dev/null +++ b/config.X11/i3/hw_model/thinkpad/amdgpu_power.service @@ -0,0 +1,9 @@ +[Unit] +Description=Set amdgpu powerlevel + +[Service] +Type=oneshot +ExecStart=/bin/bash -c "echo low > /sys/class/drm/card1/device/power_dpm_force_performance_level" + +[Install] +WantedBy=multi-user.target diff --git a/config.X11/i3/hw_model/thinkpad/thinkfan-build-conf.sh b/config.X11/i3/hw_model/thinkpad/thinkfan-build-conf.sh new file mode 100755 index 0000000..29f5e37 --- /dev/null +++ b/config.X11/i3/hw_model/thinkpad/thinkfan-build-conf.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +if [[ $(id -u) -ne 0 ]]; then + echo "Need to be root" + exit 1 +fi + +CONF=/etc/thinkfan.conf + +echo 'options thinkpad_acpi fan_control=1' > /etc/modprobe.d/99-fancontrol.conf + +echo " +# GPU +tp_fan /proc/acpi/ibm/fan + +$(find /sys/devices -type f -name 'temp*_input' | while read f; do cat $f > /dev/null && echo hwmon $f;done 2> /dev/null) + +# level temp_min temp_max +(0, 0, 42) +(1, 40, 47) +(2, 45, 52) +(3, 50, 57) +(4, 55, 62) +(5, 60, 77) +(7, 73, 93) +(127, 85, 32767) +" > $CONF diff --git a/config.X11/i3/hw_model/thinkpad/thinkfan.service.d/override.conf b/config.X11/i3/hw_model/thinkpad/thinkfan.service.d/override.conf new file mode 100644 index 0000000..91089d7 --- /dev/null +++ b/config.X11/i3/hw_model/thinkpad/thinkfan.service.d/override.conf @@ -0,0 +1,7 @@ +[Service] +# Decrease biasing (up to -b-10) if your fan speed changes too quickly, +# Increase biasing (up to -b20) if your fan speed changes too slowly. +Environment='THINKFAN_ARGS=-b0' +ExecStartPre='/home/ju/.dotfiles/config.X11/i3/hw_model/thinkpad/thinkfan-build-conf.sh' +Restart=always +RestartSec=30 diff --git a/config.X11/i3/hw_model/thinkpad/trackpoint.service b/config.X11/i3/hw_model/thinkpad/trackpoint.service new file mode 100644 index 0000000..b57f9b0 --- /dev/null +++ b/config.X11/i3/hw_model/thinkpad/trackpoint.service @@ -0,0 +1,12 @@ +[Unit] +Description=Set trackpoint sensitivity +After=lightdm.service + +[Service] +Type=oneshot +ExecStart=/bin/bash -c "echo -n 200 > /sys/devices/platform/i8042/serio1/sensitivity" +# ExecStart=/bin/bash -c "xinput set-prop 'TPPS/2 Synaptics TrackPoint' 'libinput Accel Speed' -0.7" + +[Install] +WantedBy=multi-user.target + diff --git a/config.X11/i3/hw_model/thinkpad/xbacklight b/config.X11/i3/hw_model/thinkpad/xbacklight new file mode 100755 index 0000000..cf763a7 --- /dev/null +++ b/config.X11/i3/hw_model/thinkpad/xbacklight @@ -0,0 +1,34 @@ +#!/bin/bash + +# Need brightness-udev for non root users to access file + +file=$(find -L /sys/class/backlight/ -maxdepth 2 -name brightness 2> /dev/null) + +function inc_brightness() { + inc=$1 + current=$(cat $file) + echo $((current + inc)) > $file + exit +} + +function dec_brightness() { + dec=$1 + current=$(cat $file) + echo $((current - dec)) > $file + exit +} + + +function main () +{ + while [[ $# -ne 0 ]]; do + arg="$1"; shift + case "$arg" in + --inc) val=$1; inc_brightness $val ;; + --dec) val=$1; dec_brightness $val ;; + * ) [[ $arg =~ \-+.* ]] && echo "$arg unknown" + esac + done +} + +main "$@" diff --git a/config.X11/i3/i3_build_conf.sh b/config.X11/i3/i3_build_conf.sh new file mode 100755 index 0000000..2df17ae --- /dev/null +++ b/config.X11/i3/i3_build_conf.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +set -x +exec &> /tmp/$(basename $0).log + +action=${1:-reload} + +i3_dir=$( dirname "${BASH_SOURCE[0]}" ) +i3_config_base="$i3_dir/base.config" +hw_name=$(cat /sys/devices/virtual/dmi/id/product_name) +i3_family_config="${i3_dir}/hw_model/$hw_name.hw.config" +layout=$(autorandr --detected 2>&1 | head -1 2> /dev/null) + +screen_laptop=$(xrandr | grep " connected" | awk '{print $1}' | grep -P '^eDP') +screen_hdmi_1=$(xrandr | grep " connected" | awk '{print $1}' | grep -P '^HDMI' | head -n 1) +screen_hdmi_2=$(xrandr | grep " connected" | awk '{print $1}' | grep -P '^HDMI' | head -n 2 | tail -1) +screen_display_port_1=$(xrandr | grep " connected" | awk '{print $1}' | grep -P '^DP' | head -n 1) +screen_display_port_2=$(xrandr | grep " connected" | awk '{print $1}' | grep -P '^DP' | head -n 2 | tail -1) + +if [[ -f "${i3_dir}/i3_layout/${layout}.layout.config" ]]; then + i3_layout_config="${i3_dir}/i3_layout/${layout}.layout.config" +fi + +# build final i3 config +cat "$i3_config_base" \ + "$i3_family_config" \ + "$i3_layout_config" > ${i3_dir}/config 2> /dev/null + +min_version=4.22 +# return 0 if current version is >= min_version +(echo $min_version; echo $(i3 -v | sed -re 's/i3 version ([^ ]+).*/\1/')) | sort -CV +[[ $? == 0 ]] && sed -i 's/#i3-min-version-check# //' ${i3_dir}/config + +sed -ri "s//$layout/g" ${i3_dir}/config +sed -ri "s//$screen_hdmi_1/g" ${i3_dir}/config +sed -ri "s//$screen_hdmi_2/g" ${i3_dir}/config +sed -ri "s//$screen_laptop/g" ${i3_dir}/config +sed -ri "s//$screen_display_port_1/g" ${i3_dir}/config +sed -ri "s//$screen_display_port_2/g" ${i3_dir}/config + +# Term font size +SCRIPT=$(readlink -f $0) +SCRIPTPATH=$(dirname $SCRIPT) +bash $SCRIPTPATH/scripts/term_font_size.sh + +setxkbmap -layout us -variant altgr-intl +[[ -d ~/.wallpapers ]] && /usr/bin/feh --bg-fill --no-fehbg --randomize ~/.wallpapers/* + +# Then reload/restart i3 +i3-msg $action + +# exec commands on reload/restart (redshift issue) +sleep 0.5 +cat ${i3_dir}/config | grep "^# CMD:" | sed -e 's/# CMD://g' | bash diff --git a/config.X11/i3/i3_layout/README.md b/config.X11/i3/i3_layout/README.md new file mode 100644 index 0000000..8f00827 --- /dev/null +++ b/config.X11/i3/i3_layout/README.md @@ -0,0 +1 @@ +.layout.config diff --git a/config.X11/i3/i3_layout/home_office.layout.config b/config.X11/i3/i3_layout/home_office.layout.config new file mode 100644 index 0000000..8eb5649 --- /dev/null +++ b/config.X11/i3/i3_layout/home_office.layout.config @@ -0,0 +1,34 @@ +# BEGIN home_office.layout.config + +exec_always --no-startup-id "autorandr --skip-options gamma --force " + +workspace 1 output +workspace 2 output +workspace 3 output +workspace 4 output +workspace 5 output +workspace 6 output +workspace 7 output +workspace 8 output +workspace 9 output +workspace 10 output +workspace 11 output +workspace 12 output + +workspace_auto_back_and_forth no + +# force move +exec_always --no-startup-id "i3-msg '[workspace=1] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=2] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=3] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=4] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=5] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=6] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=7] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=8] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=9] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=10] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=11] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=12] move workspace to output '" + +# END home_office.layout.config diff --git a/config.X11/i3/i3_layout/home_office_hdmi.layout.config b/config.X11/i3/i3_layout/home_office_hdmi.layout.config new file mode 100644 index 0000000..a59032b --- /dev/null +++ b/config.X11/i3/i3_layout/home_office_hdmi.layout.config @@ -0,0 +1,34 @@ +# BEGIN home_office.layout.config + +exec_always --no-startup-id "autorandr --skip-options gamma --force " + +workspace 1 output +workspace 2 output +workspace 3 output +workspace 4 output +workspace 5 output +workspace 6 output +workspace 7 output +workspace 8 output +workspace 9 output +workspace 10 output +workspace 11 output +workspace 12 output + +workspace_auto_back_and_forth no + +# force move +exec_always --no-startup-id "i3-msg '[workspace=1] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=2] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=3] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=4] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=5] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=6] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=7] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=8] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=9] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=10] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=11] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=12] move workspace to output '" + +# END home_office.layout.config diff --git a/config.X11/i3/i3_layout/laptop.layout.config b/config.X11/i3/i3_layout/laptop.layout.config new file mode 100644 index 0000000..f022101 --- /dev/null +++ b/config.X11/i3/i3_layout/laptop.layout.config @@ -0,0 +1,32 @@ +# BEGIN laptop.layout.config + +exec_always --no-startup-id "autorandr --skip-options gamma --force " +# force all other screen off (autorandr bug..) +exec_always --no-startup-id "for screen in $(xrandr | grep connected | cut -d' ' -f1 | grep -v ''); do xrandr --output $screen --off; done" + +workspace 1 output +workspace 2 output +workspace 3 output +workspace 4 output +workspace 5 output +workspace 6 output +workspace 7 output +workspace 8 output +workspace 9 output +workspace 10 output + +workspace_auto_back_and_forth no + +# force move +exec_always --no-startup-id "i3-msg '[workspace=1] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=2] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=3] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=4] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=5] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=6] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=7] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=8] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=9] move workspace to output '" +exec_always --no-startup-id "i3-msg '[workspace=10] move workspace to output '" + +# END diff --git a/config.X11/i3/i3_layout/office.layout.config b/config.X11/i3/i3_layout/office.layout.config new file mode 120000 index 0000000..9a9f218 --- /dev/null +++ b/config.X11/i3/i3_layout/office.layout.config @@ -0,0 +1 @@ +home_office.layout.config \ No newline at end of file diff --git a/config.X11/i3/i3_layout/office_32.layout.config b/config.X11/i3/i3_layout/office_32.layout.config new file mode 120000 index 0000000..9a9f218 --- /dev/null +++ b/config.X11/i3/i3_layout/office_32.layout.config @@ -0,0 +1 @@ +home_office.layout.config \ No newline at end of file diff --git a/config.X11/i3/i3_layout/walk_office.layout.config b/config.X11/i3/i3_layout/walk_office.layout.config new file mode 120000 index 0000000..9a9f218 --- /dev/null +++ b/config.X11/i3/i3_layout/walk_office.layout.config @@ -0,0 +1 @@ +home_office.layout.config \ No newline at end of file diff --git a/config.X11/i3/scripts/autohidetab-firefox.sh b/config.X11/i3/scripts/autohidetab-firefox.sh new file mode 100755 index 0000000..39fd201 --- /dev/null +++ b/config.X11/i3/scripts/autohidetab-firefox.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +pkill firefox + +find ~/.mozilla -name prefs.js | while read pref; do + profile=$(dirname $pref) + cat $pref | grep -q '^user_pref("toolkit.legacyUserProfileCustomizations.stylesheets' + + if [[ $? -eq 0 ]]; then + sed 's/user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", false);/user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);/' -i $pref + else + echo 'user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);' >> $pref + fi + + mkdir -p $profile/chrome + cat < $profile/chrome/userChrome.css +#main-window[titlepreface*="[Sidebery]"] #titlebar {visibility: collapse !important;} +EOF + +done diff --git a/config.X11/i3/scripts/hdmi_setup b/config.X11/i3/scripts/hdmi_setup new file mode 100755 index 0000000..8d15585 --- /dev/null +++ b/config.X11/i3/scripts/hdmi_setup @@ -0,0 +1,128 @@ +#!/bin/bash +# + +primary=$(xrandr --current | grep primary | awk '{print $1}') +hdmi_output="HDMI2" + +function get_state +{ + state=$(xrandr --listactivemonitors | tail -n +2) + nb_screen=$(echo "$state" | wc -l) + + if [[ $nb_screen -eq 1 ]]; then + if echo "$state" | grep -q $primary; then + echo hdmi_off + else + echo hdmi_only + fi + elif [[ $nb_screen -eq 2 ]]; then + if echo "$state" | grep -Pq "\+0\+0\s+$hdmi_output"; then + echo hdmi_mirror + else + echo hdmi_right + fi + fi +} + +function hdmi_switch_mode +{ + state=$(get_state) + [[ $state == "hdmi_mirror" ]] && hdmi_right && exit + [[ $state == "hdmi_right" ]] && hdmi_only && exit + [[ $state == "hdmi_only" ]] && hdmi_mirror && exit +} + +function hdmi_toggle +{ + state=$(get_state) + [[ $state == "hdmi_off" ]] && hdmi_mirror && exit + [[ $state != "hdmi_off" ]] && hdmi_off && exit +} + +function hdmi_mirror +{ + primary_on + xrandr --output $hdmi_output --auto --same-as $primary + sound_to_hdmi +} + +function hdmi_right +{ + primary_on + xrandr --output $hdmi_output --auto --right-of $primary + sound_to_hdmi +} + +function hdmi_only +{ + hdmi_mirror + primary_off + sound_to_hdmi +} + +function hdmi_off +{ + primary_on + xrandr --output $hdmi_output --off + reset_sound +} + +function primary_off +{ + xrandr --output $primary --off +} + +function primary_on +{ + xrandr --output $primary --auto +} + +function sound_to_hdmi +{ + hdmi_sound_card=$(pacmd list-cards | grep 'output:' | grep $hdmi_output | head -1 | awk '{print $1}') + pactl set-card-profile 0 $hdmi_sound_card + pulseaudio --kill +} + +function reset_sound +{ + pactl set-card-profile 0 output:analog-stereo + pulseaudio --kill +} + +function print_help () +{ + [[ $# -ne 0 ]] && echo "[HELP ] $*" + + echo " + $0 [--toggle|--switch_mode|--mirror|--right|--hdmi_only] + + # Require: + - xrandr + - pulseaudio + - configure hdmi output name (xrandr -q) + " + + exit +} + +function main () +{ + [[ $# -eq 0 ]] && print_help + + while [[ $# -ne 0 ]]; do + arg="$1"; shift + case "$arg" in + --toggle) hdmi_toggle ;; + --switch_mode) hdmi_switch_mode ;; + --off) hdmi_off ;; + --mirror) hdmi_mirror ;; + --right) hdmi_right ;; + --hdmi_only) hdmi_only;; + --help) print_help ;; + * ) [[ $arg =~ \-+.* ]] && print_help "$arg unknown" + esac + done +} + +main "$@" diff --git a/config.X11/i3/scripts/i3_exit.sh b/config.X11/i3/scripts/i3_exit.sh new file mode 100755 index 0000000..349cf6d --- /dev/null +++ b/config.X11/i3/scripts/i3_exit.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +select=$( + echo -e "lock\nlogout\nsuspend\nreboot\nshutdown" | \ + dmenu -sf '#000000' -sb '#f00060' -i -p "i3 action ?" +) + +function lock() +{ + ~/.config/i3/scripts/i3lock_blur.sh +} + +case "$select" in + lock) + lock + ;; + logout) + loginctl list-sessions -o json | jq -r .[].session | xargs loginctl terminate-session + ;; + suspend) + # nmcli radio wifi off && \ + lock && \ + systemctl suspend + ;; + reboot) + systemctl reboot + ;; + shutdown) + systemctl poweroff + ;; + *) + echo "Usage: $0 {lock|logout|suspend|reboot|shutdown}" + exit 2 +esac diff --git a/config.X11/i3/scripts/i3_get_window_criteria.sh b/config.X11/i3/scripts/i3_get_window_criteria.sh new file mode 100755 index 0000000..f46f65e --- /dev/null +++ b/config.X11/i3/scripts/i3_get_window_criteria.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# i3-get-window-criteria - Get criteria for use with i3 config commands + +# To use, run this script, then click on a window. +# Output is in the format: [= = ...] + +# Known problem: when WM_NAME is used as fallback for the 'title=""' criterion, +# quotes in "" are not escaped properly. This is a problem with the output of `xprop`, +# reported upstream: https://bugs.freedesktop.org/show_bug.cgi?id=66807 + +PROGNAME=`basename "$0"` + +# Check for xwininfo and xprop +for cmd in xwininfo xprop; do + if ! which $cmd > /dev/null 2>&1; then + echo "$PROGNAME: $cmd: command not found" >&2 + exit 1 + fi +done + +match_int='[0-9][0-9]*' +match_string='".*"' +match_qstring='"[^"\\]*(\\.[^"\\]*)*"' # NOTE: Adds 1 backreference + +{ + # Run xwininfo, get window id + window_id=`xwininfo -int | sed -nre "s/^xwininfo: Window id: ($match_int) .*$/\1/p"` + echo "id=$window_id" + + # Run xprop, transform its output into i3 criteria. Handle fallback to + # WM_NAME when _NET_WM_NAME isn't set + xprop -id $window_id | + sed -nr \ + -e "s/^WM_CLASS\(STRING\) = ($match_qstring), ($match_qstring)$/instance=\1\nclass=\3/p" \ + -e "s/^WM_WINDOW_ROLE\(STRING\) = ($match_qstring)$/window_role=\1/p" \ + -e "/^WM_NAME\(STRING\) = ($match_string)$/{s//title=\1/; h}" \ + -e "/^_NET_WM_NAME\(UTF8_STRING\) = ($match_qstring)$/{s//title=\1/; h}" \ + -e '${g; p}' +} | sort | tr "\n" " " | sed -r 's/^(.*) $/[\1]\n/' diff --git a/config.X11/i3/scripts/i3lock_blur.sh b/config.X11/i3/scripts/i3lock_blur.sh new file mode 100755 index 0000000..382a89b --- /dev/null +++ b/config.X11/i3/scripts/i3lock_blur.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +image_file="/tmp/$(basename $0).png" +rm -f $image_file +resolution=$(xdpyinfo | grep dimensions | awk '{print $2}') +#filters='noise=alls=10,scale=iw*.05:-1,scale=iw*20:-1:flags=neighbor' +filters='boxblur=20' + +ffmpeg -y -loglevel 0 -s "$resolution" -f x11grab -i $DISPLAY -vframes 1 -vf "$filters" "$image_file" +DISPLAY=${DISPLAY:-:0.0} i3lock -t -i "$image_file" +chmod 777 $image_file + +exit 0 diff --git a/config.X11/i3/scripts/term_font_size.sh b/config.X11/i3/scripts/term_font_size.sh new file mode 100755 index 0000000..062fa76 --- /dev/null +++ b/config.X11/i3/scripts/term_font_size.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +layout=$(autorandr |& grep detected | awk '{print $1}') + +if [[ $layout == 'laptop' ]]; then + echo "Set alacritty font size to '12'" + sed -ri "s,^(\s*size:\s*).*,\112," $HOME/.config/alacritty/alacritty.yml +else + echo "Set alacritty font size to '12'" + sed -ri "s,^(\s*size:\s*).*,\112," $HOME/.config/alacritty/alacritty.yml +fi diff --git a/config.X11/i3blocks/blocks/bandwidth b/config.X11/i3blocks/blocks/bandwidth new file mode 100755 index 0000000..aa3cc79 --- /dev/null +++ b/config.X11/i3blocks/blocks/bandwidth @@ -0,0 +1,111 @@ +#!/bin/bash +# Copyright (C) 2012 Stefan Breunig +# Copyright (C) 2014 kaueraal +# Copyright (C) 2015 Thiago Perrotta + +# 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 3 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. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +COLOR='#91c8ed' + +# Get custom IN and OUT labels if provided by command line arguments +while [[ $# -gt 1 ]]; do + key="$1" + case "$key" in + -i|--inlabel) + INLABEL="$2" + shift;; + -o|--outlabel) + OUTLABEL="$2" + shift;; + esac + shift +done + +[[ -z $INLABEL ]] && INLABEL="IN " +[[ -z $OUTLABEL ]] && OUTLABEL="OUT " + +# Use the provided interface, otherwise the device used for the default route. +if [[ -z $INTERFACE ]] && [[ -n $BLOCK_INSTANCE ]]; then + INTERFACE=$BLOCK_INSTANCE +elif [[ -z $INTERFACE ]]; then + INTERFACE=$(ip route | awk '/^default/ { print $5 ; exit }') +fi + +# Issue #36 compliant. +if ! [ -e "/sys/class/net/${INTERFACE}/operstate" ] || \ + (! [ "$TREAT_UNKNOWN_AS_UP" = "1" ] && + ! [ "`cat /sys/class/net/${INTERFACE}/operstate`" = "up" ]) +then + exit 0 +fi + +# path to store the old results in +path="/dev/shm/$(basename $0)-${INTERFACE}" + +# grabbing data for each adapter. +read rx < "/sys/class/net/${INTERFACE}/statistics/rx_bytes" +read tx < "/sys/class/net/${INTERFACE}/statistics/tx_bytes" + +# get time +time=$(date +%s) + +# write current data if file does not exist. Do not exit, this will cause +# problems if this file is sourced instead of executed as another process. +if ! [[ -f "${path}" ]]; then + echo "${time} ${rx} ${tx}" > "${path}" + chmod 0666 "${path}" +fi + +# read previous state and update data storage +read old < "${path}" +echo "${time} ${rx} ${tx}" > "${path}" + +# parse old data and calc time passed +old=(${old//;/ }) +time_diff=$(( $time - ${old[0]} )) + +# sanity check: has a positive amount of time passed +[[ "${time_diff}" -gt 0 ]] || exit + +# calc bytes transferred, and their rate in byte/s +rx_diff=$(( $rx - ${old[1]} )) +tx_diff=$(( $tx - ${old[2]} )) +rx_rate=$(( $rx_diff / $time_diff )) +tx_rate=$(( $tx_diff / $time_diff )) + +# shift by 10 bytes to get KiB/s. If the value is larger than +# 1024^2 = 1048576, then display MiB/s instead + +# incoming +echo -n "$INLABEL" +rx_kib=$(( $rx_rate >> 10 )) +if hash bc 2>/dev/null && [[ "$rx_rate" -gt 1048576 ]]; then + printf '%3s Mo' "`echo "scale=1; $rx_kib / 1024" | bc`" +else + printf '%3s Ko' $rx_kib +fi + +echo -n " " + +# outgoing +echo -n "$OUTLABEL" +tx_kib=$(( $tx_rate >> 10 )) +if hash bc 2>/dev/null && [[ "$tx_rate" -gt 1048576 ]]; then + printf '%3s Mo' "`echo "scale=1; $tx_kib / 1024" | bc`" +else + printf '%3s Ko' $tx_kib +fi + +echo -e "\n..." +echo "$COLOR" diff --git a/config.X11/i3blocks/blocks/battery b/config.X11/i3blocks/blocks/battery new file mode 100755 index 0000000..eb1269c --- /dev/null +++ b/config.X11/i3blocks/blocks/battery @@ -0,0 +1,42 @@ +#!/bin/bash + +URGENT_VALUE=10 + +state=$(acpi 2> /dev/null | grep Battery) +if [[ $? -ne 0 ]]; then + # No battery + exit 0 +fi + +power=$(echo $state | grep -Po '\d+(?=%)') +charging_state=$(echo $state | grep -Po '(Charging|Discharging)') +time_remaining=$(echo $state | grep -Po '[\d:]+(?=:\d+ (until charged|remaining))') +color='' + +if [[ "${power}" -gt 87 ]]; then + icon=" " +elif [[ "${power}" -gt 63 ]]; then + icon=" " +elif [[ "${power}" -gt 38 ]]; then + icon=" " +elif [[ "${power}" -gt 13 ]]; then + icon=" " +elif [[ "${power}" -le 13 ]]; then + icon=" " +else + icon=" " +fi + +if [[ "${power}" -le "${URGENT_VALUE}" ]]; then + color='#ff9980' +fi + +if [[ "${charging_state}" = "Discharging" ]]; then + echo "${icon} ${power}% |$time_remaining|" + echo "${icon} ${power}%" + [[ -n $color ]] && echo $color +else + [[ $power -eq 100 ]] && echo " ${power}%" || \ + echo " ${power}% |$time_remaining|" + echo " ${power}%" +fi diff --git a/config.X11/i3blocks/blocks/calendar b/config.X11/i3blocks/blocks/calendar new file mode 100755 index 0000000..99e410b --- /dev/null +++ b/config.X11/i3blocks/blocks/calendar @@ -0,0 +1,72 @@ +#!/bin/bash +# vim: ft=sh + +# rofi-calendar: A pop-up calendar for i3blocks. +# Requirements: +# - rofi (oxide theme) +# - i3blocks +# - bash +# - cal +# - sed + +full_date=$(date '+%-Y-%0m-%_d|%a, %0d %b %0H:%0M|%B') +year_number=${full_date:0:4} +month_number=${full_date:5:2} +day_number=${full_date:8:2} + +cal_command() { + ncal -Shb "$month_number" "$year_number" 2> /dev/null || \ + cal -S "$month_number" "$year_number" 2> /dev/null | sed '1d;s/ *$//g;/^$/d' +} + +custom_month() { + day_number='Null' + the_date=$(date -d "$year_number-$month_number-01" '+%B %-Y') +} + +counts_cal_lines() { + cal_lines=$(cal_command | wc -l) +} + +case "$BLOCK_BUTTON" in + 1) + # Left-click: Current month + the_date="${full_date:11:7} ${full_date:29}" + ;; + 2) + # Middle-click: Previous month + ((month_number == 1)) && month_number=12 && year_number=$((year_number - 1)) || month_number=$((month_number - 1)) + custom_month + ;; + 3) + # Right-click: Next month + ((month_number == 12)) && month_number=1 && year_number=$((year_number + 1)) || month_number=$((month_number + 1)) + custom_month + ;; +esac + +case "$BLOCK_BUTTON" in + 1|2|3) + counts_cal_lines + cal_command \ + | sed "s#^##g;s#.#&#24" \ + | sed "s#\b${day_number// /}\b#${day_number// /}#" \ + | rofi \ + -dmenu \ + -lines "$cal_lines" \ + -font 'Monospace 11' \ + -location '3' \ + -xoffset '-50' \ + -yoffset '35' \ + -theme-str 'configuration { show-icons: false; }' \ + -theme-str 'window { fullscreen: false; width: 220px; height: 200px; } inputbar { children: [ prompt ]; } listview { scrollbar: false; }' \ + -theme-str 'element normal.normal, element selected.normal, element alternate.normal { background-color: #212121; text-color: #c4cad4; }' \ + -theme-str 'element normal.active, element selected.active, element alternate.active { background-color: #363636; text-color: #f9f9f9; }' \ + -p "$the_date" \ + -a '0' \ + -no-custom \ + -markup-rows &> /dev/null + ;; +esac + +echo " ${full_date:11:17} " diff --git a/config.X11/i3blocks/blocks/cpu_usage b/config.X11/i3blocks/blocks/cpu_usage new file mode 100755 index 0000000..3c2df09 --- /dev/null +++ b/config.X11/i3blocks/blocks/cpu_usage @@ -0,0 +1,61 @@ +#!/usr/bin/perl +# +# Copyright 2014 Pierre Mavro +# Copyright 2014 Vivien Didelot +# Copyright 2014 Andreas Guldstrand +# +# Licensed under the terms of the GNU GPL v3, or any later version. + +use strict; +use warnings; +use utf8; +use Getopt::Long; + +# default values +my $t_warn = $ENV{T_WARN} || 50; +my $t_crit = $ENV{T_CRIT} || 80; +my $cpu_usage = -1; +my $decimals = $ENV{DECIMALS} || 2; +my $label = $ENV{LABEL} || ""; + +sub help { + print "Usage: cpu_usage [-w ] [-c ] [-d ]\n"; + print "-w : warning threshold to become yellow\n"; + print "-c : critical threshold to become red\n"; + print "-d : Use decimals for percentage (default is $decimals) \n"; + exit 0; +} + +GetOptions("help|h" => \&help, + "w=i" => \$t_warn, + "c=i" => \$t_crit, + "d=i" => \$decimals, +); + +# Get CPU usage +$ENV{LC_ALL}="en_US"; # if mpstat is not run under en_US locale, things may break, so make sure it is +open (MPSTAT, 'mpstat 1 1 |') or die; +while () { + if (/^.*\s+(\d+\.\d+)[\s\x00]?$/) { + $cpu_usage = 100 - $1; # 100% - %idle + last; + } +} +close(MPSTAT); + +$cpu_usage eq -1 and die 'Can\'t find CPU information'; + +# Print short_text, full_text +print "${label}"; +printf "%3.${decimals}f%%\n", $cpu_usage; +print "${label}"; +printf "%3.${decimals}f%%\n", $cpu_usage; + +# Print color, if needed +if ($cpu_usage >= $t_crit) { + print "#ff9980\n"; +} elsif ($cpu_usage >= $t_warn) { + print "#fffc80\n"; +} + +exit 0; diff --git a/config.X11/i3blocks/blocks/ethernet b/config.X11/i3blocks/blocks/ethernet new file mode 100755 index 0000000..e950b54 --- /dev/null +++ b/config.X11/i3blocks/blocks/ethernet @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +import subprocess +import sys + +label = '' +color_up = '#9ec600' +color_down = '#676767' + + +if __name__ == "__main__": + output = subprocess.check_output( + "ip -br -j addr show", + shell=True + ) + json_str = output.decode('utf8') + ifaces = json.loads(json_str) + + ethernet = list(filter(lambda x: x['ifname'].startswith('e'), + ifaces)) + + ethernet_up = list(filter(lambda x: x['operstate'] == 'UP', + ethernet)) + + if not ethernet: + sys.exit(0) + + eth = None + if not ethernet_up: + eth = ethernet.pop() + else: + eth = ethernet_up.pop() + + print(label) + print(label) + if eth['operstate'] == 'DOWN': + print(color_down) + else: + print(color_up) diff --git a/config.X11/i3blocks/blocks/ip b/config.X11/i3blocks/blocks/ip new file mode 100755 index 0000000..c41aee3 --- /dev/null +++ b/config.X11/i3blocks/blocks/ip @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +import os +import subprocess +import sys + +iface_type = os.environ.get('BLOCK_INSTANCE', 'ethernet') +label = '' +color_up = '#B8A391' +color_down = '#676767' + + +def _get_first_ifname(ifaces, iface_type=iface_type): + + iface_up = None + iface_first = None + + for iface in ifaces: + if iface_type == 'ethernet' and \ + iface['ifname'].startswith('e'): + iface_first = iface if not iface_first else None + iface_up = iface if iface['operstate'] == 'UP' else None + + elif iface_type == 'wireless' and \ + iface['ifname'].startswith('wl'): + iface_first = iface if not iface_first else None + iface_up = iface if iface['operstate'] == 'UP' else None + + if iface_up: + return iface_up + else: + return iface_first + + +if __name__ == "__main__": + output = subprocess.check_output( + "ip -br -j addr show", + shell=True + ) + json_str = output.decode('utf8') + ifaces = json.loads(json_str) + + first = _get_first_ifname(ifaces, iface_type) + + if first: + try: + print('{} {}'.format(label, first['addr_info'][0]['local'])) + print(label) + print(color_up) + except Exception: + print('{} ip'.format(label)) + print(label) + print(color_down) diff --git a/config.X11/i3blocks/blocks/memory b/config.X11/i3blocks/blocks/memory new file mode 100755 index 0000000..9f95ae0 --- /dev/null +++ b/config.X11/i3blocks/blocks/memory @@ -0,0 +1,69 @@ +#!/bin/sh +# Copyright (C) 2014 Julien Bonjean + +# 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 3 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. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +TYPE="${BLOCK_INSTANCE:-mem}" + +awk -v type=$TYPE ' +/^MemTotal:/ { + mem_total=$2 +} +/^MemFree:/ { + mem_free=$2 +} +/^Buffers:/ { + mem_free+=$2 +} +/^Cached:/ { + mem_free+=$2 +} +/^SwapTotal:/ { + swap_total=$2 +} +/^SwapFree:/ { + swap_free=$2 +} +END { + if (type == "swap") { + free=swap_free/1024/1024 + used=(swap_total-swap_free)/1024/1024 + total=swap_total/1024/1024 + } else { + free=mem_free/1024/1024 + used=(mem_total-mem_free)/1024/1024 + total=mem_total/1024/1024 + } + + pct=0 + if (total > 0) { + pct=used/total*100 + } + + # full text + printf("%3.f%%\n", pct) + + # short text + printf("%3.f%%\n", pct) + + # color + if (pct > 90) { + print("#ff9980") + } else if (pct > 80) { + print("#ffdf80") + } else if (pct > 70) { + print("#fffc80") + } +} +' /proc/meminfo diff --git a/config.X11/i3blocks/blocks/spotify b/config.X11/i3blocks/blocks/spotify new file mode 100755 index 0000000..ac97564 --- /dev/null +++ b/config.X11/i3blocks/blocks/spotify @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import logging +import re +import sys +import subprocess + +LOG = logging.getLogger(__name__) + + +# pip3 install spotify-cli-linux dbus-python +def get_spotify_status(): + artist_song = None + status = None + try: + output = subprocess.check_output( + "spotifycli --status 2> /dev/null", + shell=True + ) + parse = re.findall(r"^(.*) - (.*)", output.decode('utf-8')) + LOG.debug(parse) + artist_song = parse[0] + + output = subprocess.check_output( + "spotifycli --playbackstatus 2> /dev/null", + shell=True + ).decode('utf-8').strip() + + if output == u"▮▮": + status = 'pause' + elif output == u"▶": + status = 'play' + else: + status = None + + except Exception as e: + LOG.exception(e) + LOG.info("Spotify is not running") + + return artist_song, status + + +def read_line(): + """ Interrupted respecting reader for stdin. """ + # try reading a line, removing any extra whitespace + try: + line = sys.stdin.readline().strip() + # i3status sends EOF, or an empty line + if not line: + sys.exit(3) + return line + # exit on ctrl-c + except KeyboardInterrupt: + sys.exit() + + +def print_line(message): + """ Non-buffered printing to stdout. """ + sys.stdout.write(message + '\n') + sys.stdout.flush() + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + + spotify_status, status = get_spotify_status() + LOG.debug("spotify: {}, status: {}".format(spotify_status, status)) + + if spotify_status: + artist = spotify_status[0] + song = spotify_status[1] + color = '#9ec600' + if status == 'pause': + color = '#676767' + + # long + # short + # color + print(' %s - %s' % (artist, song)) + print(' %s - %s' % (artist, song)) + print(color) diff --git a/config.X11/i3blocks/blocks/volume b/config.X11/i3blocks/blocks/volume new file mode 100755 index 0000000..ec16d02 --- /dev/null +++ b/config.X11/i3blocks/blocks/volume @@ -0,0 +1,81 @@ +#!/bin/bash +# Copyright (C) 2014 Julien Bonjean +# Copyright (C) 2014 Alexander Keller + +# 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 3 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. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +#------------------------------------------------------------------------ + +# The second parameter overrides the mixer selection +# For PulseAudio users, eventually use "pulse" +# For Jack/Jack2 users, use "jackplug" +# For ALSA users, you may use "default" for your primary card +# or you may use hw:# where # is the number of the card desired +if [[ -z "$MIXER" ]] ; then + MIXER="default" + if command -v pulseaudio >/dev/null 2>&1 && pulseaudio --check ; then + # pulseaudio is running, but not all installations use "pulse" + if amixer -D pulse info >/dev/null 2>&1 ; then + MIXER="pulse" + fi + fi + [ -n "$(lsmod | grep jack)" ] && MIXER="jackplug" + MIXER="${2:-$MIXER}" +fi + +# The instance option sets the control to report and configure +# This defaults to the first control of your selected mixer +# For a list of the available, use `amixer -D $Your_Mixer scontrols` +if [[ -z "$SCONTROL" ]] ; then + SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols | + sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | + head -n1 + )}" +fi + +# The first parameter sets the step to change the volume by (and units to display) +# This may be in in % or dB (eg. 5% or 3dB) +if [[ -z "$STEP" ]] ; then + STEP="${1:-5%}" +fi + +#------------------------------------------------------------------------ + +capability() { # Return "Capture" if the device is a capture device + amixer -D $MIXER get $SCONTROL | + sed -n "s/ Capabilities:.*cvolume.*/Capture/p" +} + +volume() { + amixer -D $MIXER get $SCONTROL $(capability) +} + +format() { + perl_filter='if (/.*\[(\d+%)\] (\[(-?\d+.\d+dB)\] )?\[(on|off)\]/)' + perl_filter+='{CORE::say $4 eq "off" ? " MUTE" : " ' + # If dB was selected, print that instead + perl_filter+=$([[ $STEP = *dB ]] && echo '$3' || echo '$1') + perl_filter+='"; exit}' + perl -ne "$perl_filter" +} + +#------------------------------------------------------------------------ + +case $BLOCK_BUTTON in + 3) amixer -q -D $MIXER sset $SCONTROL $(capability) toggle ;; # right click, mute/unmute + 4) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}+ unmute ;; # scroll up, increase + 5) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}- unmute ;; # scroll down, decrease +esac + +volume | format diff --git a/config.X11/i3blocks/blocks/vpn b/config.X11/i3blocks/blocks/vpn new file mode 100755 index 0000000..e79798b --- /dev/null +++ b/config.X11/i3blocks/blocks/vpn @@ -0,0 +1,18 @@ +#!/bin/bash + +label='' +color_up='#9ec600' +color_down='#676767' + +echo $label +echo $label + +function wireguard_count { + ip --json link show | jq -r '.[] | select(.ifname | test("^wg")).ifname' | wc -l +} + +if [[ -f /var/run/vpnc.pid || -n $(pidof nm-vpnc-service) || $(wireguard_count) > 0 ]]; then + echo $color_up +else + echo $color_down +fi diff --git a/config.X11/i3blocks/blocks/wifi b/config.X11/i3blocks/blocks/wifi new file mode 100755 index 0000000..cb7d532 --- /dev/null +++ b/config.X11/i3blocks/blocks/wifi @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +import subprocess +import sys + +label = ' ' +color_good = '#c0ff80' +color_medium = '#fffc80' +color_low = '#ffdf80' +color_bad = '#ff9980' +color_down = '#676767' + + +if __name__ == "__main__": + output = subprocess.check_output( + "ip -br -j addr show", + shell=True + ) + json_str = output.decode('utf8') + ifaces = json.loads(json_str) + + first = None + for iface in ifaces: + if iface['ifname'].startswith('wl'): + first = iface + + if not first: + sys.exit(0) + + if first['operstate'] == 'DOWN': + print(label) + print(label) + print(color_down) + sys.exit(0) + + output = subprocess.check_output( + 'iwconfig {} | grep -Po \'(?<=ESSID:")[^"]*\''.format(first['ifname']), + shell=True + ) + apname = output.decode('utf8').strip() + + output = subprocess.check_output( + 'iwconfig {} | grep -Po "(?<=Link Quality=)\d+"'.format(first['ifname']), + shell=True + ) + link_quality = output.decode('utf8').strip() + power = int(link_quality) * 100 / 70 + + if power >= 80: + color = color_good + elif power >= 60: + color = color_medium + elif power >= 40: + color = color_low + else: + color = color_bad + + print('{} {} |{}%|'.format(label, apname, int(power))) + print(label) + print(color) diff --git a/config.X11/i3blocks/config b/config.X11/i3blocks/config new file mode 100644 index 0000000..8661241 --- /dev/null +++ b/config.X11/i3blocks/config @@ -0,0 +1,72 @@ +# vim: ft=cfg + +command=~/.config/i3blocks/blocks/$BLOCK_NAME +separator_block_width=30 +markup=none + +[spotify] +interval=15 +signal=11 + +# Network + +# [bandwidth] +# command=~/.config/i3blocks/blocks/$BLOCK_NAME -o ' ' -i ' ' +# interval=5 + +[vpn] +interval=5 + +[ethernet] +interval=10 +separator=false +separator_block_width=10 + +[ip] +instance=ethernet +interval=10 + +[wifi] +interval=10 +separator=false +separator_block_width=10 + +[ip] +instance=wireless +interval=10 + +# Monitoring + +# require sysstat +[cpu_usage] +label= +command=~/.config/i3blocks/blocks/$BLOCK_NAME -d 0 +interval=10 + +[memory] +label= +interval=30 + +[disk] +label= +command=echo " /: $(df -h -l --output='avail' / | grep -E -o '[0-9]+(G|M)') /home: $(df -h -l --output='avail' /home | grep -E -o '[0-9]+(G|M)')" +interval=30 + +# Common + +[volume] +label=󰋋 +interval=10 +signal=10 + +[battery] +interval=10 + +[utc_hour] +label= +command=echo " $(date -u '+%0H:%0M')" +interval=5 + +[calendar] +label= +interval=5 diff --git a/config.X11/i3blocks/config.taf b/config.X11/i3blocks/config.taf new file mode 100644 index 0000000..f5e5b51 --- /dev/null +++ b/config.X11/i3blocks/config.taf @@ -0,0 +1,79 @@ +# vim: ft=cfg + +command=~/.config/i3blocks/blocks/$BLOCK_NAME +separator_block_width=30 +markup=none + +[spotify] +interval=15 +signal=11 + +# Network + +# [bandwidth] +# command=~/.config/i3blocks/blocks/$BLOCK_NAME -o ' ' -i ' ' +# interval=5 + +[vpn] +interval=5 + +[ethernet] +interval=10 +separator=false +separator_block_width=10 + +[ip] +instance=ethernet +interval=10 + +[wifi] +interval=10 +separator=false +separator_block_width=10 + +[ip] +instance=wireless +interval=10 + +# Monitoring + +# require sysstat +[cpu_usage] +label= +command=~/.config/i3blocks/blocks/$BLOCK_NAME -d 0 +interval=10 +separator=false +separator_block_width=10 + +[memory] +label= +interval=30 + +[disk] +label= +command=echo " /: $(df -h -l --output='avail' / | grep -E -o '[0-9]+(G|M)') /home: $(df -h -l --output='avail' /home | grep -E -o '[0-9]+(G|M)')" +interval=30 + +# Common + +[volume] +label=󰋋 +interval=10 +signal=10 + +[battery] +interval=10 + +[utc_hour] +label= +command=echo " $(date -u '+%0H:%0M')" +interval=5 + +[canada_hour] +label= +command=echo " $(TZ=America/Montreal date '+%0H:%0M')" +interval=5 + +[calendar] +label= +interval=5 diff --git a/config.X11/i3status/config b/config.X11/i3status/config new file mode 100644 index 0000000..b9e973a --- /dev/null +++ b/config.X11/i3status/config @@ -0,0 +1,77 @@ +# i3status configuration file. +# see "man i3status" for documentation. + +# It is important that this file is edited as UTF-8. +# The following line should contain a sharp s: +# ß +# If the above line is not correctly displayed, fix your editor first! + +general { + output_format = "i3bar" + colors = true + interval = 5 + color_good = "#A5DF00" + color_bad = "#6E6E6E" + color_degraded = "#FF4000" +} + +#order += "ipv6" +#order += "run_watch DHCP" +order += "run_watch VPN" +order += "ethernet _first_" +order += "wireless _first_" +order += "load" +order += "disk /" +order += "battery all" +order += "volume master" +order += "tztime local" + +wireless _first_ { + format_up = "  %essid (%quality) %ip " + format_down = "  " +} + +ethernet _first_ { + format_up = "  %ip (%speed) " + format_down = "  " +} + +battery all { + format = " %status %percentage (%remaining) " + last_full_capacity = true + integer_battery_capacity = true + status_chr = "  " + status_bat = "  " + status_full = "  " + threshold_type = percentage + low_threshold = 10 +} + +run_watch DHCP { + pidfile = "/var/run/dhclient*.pid" + format_down = " dhcp " +} + +run_watch VPN { + pidfile = "/var/run/vpnc.pid" + format = "  " +} + +tztime local { + format = "  %d.%m.%Y %H:%M " +} + +load { + format = "  %1min %5min " +} + +disk "/" { + format = "  %avail " +} + +volume master { + format = "  %volume " + device = "default" + mixer = "Master" + mixer_idx = 0 +} diff --git a/config.X11/rofi/config.rasi b/config.X11/rofi/config.rasi new file mode 100644 index 0000000..9812754 --- /dev/null +++ b/config.X11/rofi/config.rasi @@ -0,0 +1,13 @@ +/* Rofi config file */ +configuration { + font: "Source Sans Pro 12"; + show-icons: true; + display-window: "Window"; + display-drun: "Search"; +} + +@theme "oxide" + +listview { + lines: 12; +} diff --git a/config.X11/rofi/themes/oxide.rasi b/config.X11/rofi/themes/oxide.rasi new file mode 100644 index 0000000..6cd6a62 --- /dev/null +++ b/config.X11/rofi/themes/oxide.rasi @@ -0,0 +1,175 @@ +/** + * Oxide Color theme + * Author: Diki Ananta + * Repository: https://github.com/dikiaap/dotfiles + * License: MIT + **/ +* { + selected-normal-foreground: var(lightfg); + foreground: rgba ( 196, 202, 212, 100 % ); + normal-foreground: var(foreground); + alternate-normal-background: rgba ( 42, 42, 42, 100 % ); + red: rgba ( 194, 65, 65, 100 % ); + selected-urgent-foreground: var(lightfg); + blue: rgba ( 43, 131, 166, 100 % ); + urgent-foreground: var(lightfg); + alternate-urgent-background: var(red); + active-foreground: var(lightfg); + lightbg: var(foreground); + selected-active-foreground: var(lightfg); + alternate-active-background: var(blue); + background: rgba ( 33, 33, 33, 100 % ); + alternate-normal-foreground: var(foreground); + normal-background: var(background); + lightfg: rgba ( 249, 249, 249, 100 % ); + selected-normal-background: rgba ( 90, 90, 90, 100 % ); + separatorcolor: rgba ( 183, 183, 183, 100 % ); + spacing: 2; + border-color: var(foreground); + urgent-background: var(red); + alternate-active-foreground: var(active-foreground); + alternate-urgent-foreground: var(urgent-foreground); + background-color: transparent; + selected-urgent-background: rgba ( 214, 78, 78, 100 % ); + active-background: var(blue); + selected-active-background: rgba ( 39, 141, 182, 100 % ); +} +element { + cursor: pointer; + border: 0; + spacing: 4px; + padding: 1px; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-text { + background-color: transparent; + highlight: inherit; + cursor: inherit; + text-color: inherit; +} +element-icon { + background-color: transparent; + size: 21px; + cursor: inherit; + text-color: inherit; +} +window { + background-color: var(background); + border: 0; + padding: 8; +} +mainbox { + border: 0; + padding: 0; +} +message { + border: 2px dash 0px 0px; + border-color: var(separatorcolor); + padding: 1px; +} +textbox { + text-color: var(foreground); +} +listview { + fixed-height: 0; + border: 0; + border-color: var(separatorcolor); + spacing: 2px; + scrollbar: true; + padding: 2px 0px 0px; +} +scrollbar { + width: 4px; + border: 0; + handle-color: rgba ( 85, 85, 85, 100 % ); + handle-width: 8px; + padding: 0; +} +sidebar { + border: 2px dash 0px 0px; + border-color: var(separatorcolor); +} +button { + cursor: pointer; + spacing: 0; + text-color: var(normal-foreground); +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +num-filtered-rows { + expand: false; + text-color: rgba ( 128, 128, 128, 100 % ); +} +num-rows { + expand: false; + text-color: rgba ( 128, 128, 128, 100 % ); +} +textbox-num-sep { + expand: false; + str: "/"; + text-color: rgba ( 128, 128, 128, 100 % ); +} +inputbar { + spacing: 0px; + text-color: var(normal-foreground); + padding: 1px; + children: [ "prompt","textbox-prompt-colon","entry","overlay","case-indicator" ]; +} +case-indicator { + spacing: 0; + text-color: var(normal-foreground); +} +entry { + placeholder: ""; + cursor: text; + spacing: 0; + text-color: var(normal-foreground); + placeholder-color: rgba ( 128, 128, 128, 100 % ); +} +prompt { + spacing: 0; + text-color: var(normal-foreground); +} +textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3000em 0.0000em 0.0000em; + text-color: inherit; +} diff --git "a/config.X11/xfce4\\xfconf\\xfce-perchannel-xml\\xfce4-session.xml" "b/config.X11/xfce4\\xfconf\\xfce-perchannel-xml\\xfce4-session.xml" new file mode 100644 index 0000000..832f8a4 --- /dev/null +++ "b/config.X11/xfce4\\xfconf\\xfce-perchannel-xml\\xfce4-session.xml" @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/config.common/efm-langserver/config.yaml b/config.common/efm-langserver/config.yaml new file mode 100644 index 0000000..dd82e47 --- /dev/null +++ b/config.common/efm-langserver/config.yaml @@ -0,0 +1,625 @@ +--- +version: 2 +root-markers: + - RCS/ + - SCCS/ + - CVS/ + - .git/ + - .svn/ + - .hg/ + - .bzr/ + - _darcs/ + - .git +# command define +commands: + - title: Reload + command: :reload-config + + - title: Editor (notepad) + os: windows + command: notepad + arguments: + - '${FILENAME}' + - title: Editor (gedit) + os: linux + command: gedit + # Linux no method generic GUI editor open + arguments: + - '${FILENAME}' + - title: Editor (default) + os: darwin + command: open + arguments: + - '-e' + - '${FILENAME}' + + - title: Filer (explorer) + os: windows + command: cmd + arguments: + - '/c' + - 'explorer /select,${FILENAME}' + - title: Filer (Finder) + os: darwin + # Linux no method generic filer open + command: open + arguments: + - '-R' + - '${FILENAME}' + + - title: Browser (default) + os: darwin + # Windows no method generic browser open + # Linux no method generic browser open + command: open + arguments: + - '-a' + - 'Safari' + - '${FILENAME}' + + - title: Open (system default) + os: windows + command: rundll32 + arguments: + - 'url.dll,FileProtocolHandler' + - '${FILENAME}' + - title: Open (system default) + os: linux + command: xdg-open + arguments: + - '${FILENAME}' + - title: Open (system default) + os: darwin + command: open + arguments: + - '${FILENAME}' + +# linter,formatter setting +tools: + cppcheck-lint: &cppcheck-lint + prefix: cppcheck + lint-command: 'cppcheck --quiet --force --enable=style --error-exitcode=1 ${INPUT}' + lint-stdin: false + lint-formats: + - '%f:%l:%c: %m' + root-markers: + - compile_commands.json + + vale-lint: &vale-lint + prefix: vale + lint-command: 'vale --relative --output line ${INPUT}' + lint-stdin: false + lint-ignore-exit-code: true + lint-formats: + - '%f:%l:%c:%*[^:]:%m' + + redpen-lint-core: &redpen-lint-core + prefix: redpen + lint-command: 'redpen -l 9999 -r plain ${INPUT}' + lint-stdin: false + lint-ignore-exit-code: true + lint-formats: + - '%f:%l: Validation%t%*[a-z][%*[a-zA-Z]], %m at line:%r' + root-markers: + - redpen-conf.xml + - redpen-conf-??.xml + + redpen-lint: &redpen-lint + <<: *redpen-lint-core + + redpen-text-lint: &redpen-text-lint + <<: *redpen-lint-core + lint-command: 'redpen -l 9999 -f plain -r plain ${INPUT}' + + vint-lint: &vint-lint + prefix: vint + lint-command: 'vint --enable-neovim --style-problem ${INPUT}' + lint-formats: + - '%f:%l:%c: %m' + + nvcheck-lint: &nvcheck-lint + prefix: nvcheck + lint-command: 'nvcheck ${INPUT}' + lint-stdin: false + lint-formats: + - '%f:%l: %m' + root-markers: + - dict.yml + commands: + - title: 'nvcheck fix' + command: nvcheck + arguments: + - '-i' + - '${INPUT}' + + markdownlint-lint: &markdownlint-lint + prefix: markdownlint + lint-command: 'markdownlint --stdin' # markdownlint do not support --stdin-filename like option + lint-stdin: true + lint-formats: + - '%f:%l:%c MD%n/%*[^ ] %m' + - '%f:%l MD%n/%*[^ ] %m' + commands: + - title: 'markdownlint fix' + command: markdownlint + arguments: + - '--fix' + - '${INPUT}' + + mdformat-action-format: &mdformat-action-format + commands: + - title: 'mdformat format' + command: mdformat + arguments: + - '--number' + - '--wrap' + - 'keep' + - '--end-of-line' + - 'keep' + - '${INPUT}' + + + pandoc-markdown-format: &pandoc-markdown-format + format-command: 'pandoc -f markdown -t gfm -sp --tab-stop=2' + format-stdin: true + + pandoc-rst-format: &pandoc-rst-format + format-command: 'pandoc -f rst -t rst -s --columns=79' + format-stdin: true + + jsonlint-lint: &jsonlint-lint + prefix: jsonlint + lint-command: 'jsonlint -c' + lint-stdin: true + lint-formats: + - 'line %l, col %c, found: %m' + + # not work + # jq-lint: &jq-lint + # lint-command: 'jq' + # lint-stdin: true + # lint-offset: 1 + # lint-formats: + # - '%m at line %l, column %c' + + jq-format: &jq-format + format-command: 'jq .' + format-stdin: true + + fixjson-format: &fixjson-format + format-command: 'fixjson' + format-stdin: true + + shellcheck-lint: &shellcheck-lint + prefix: shellcheck + lint-command: 'shellcheck -f gcc -x -' + lint-stdin: true + lint-formats: + - '%f:%l:%c: %t%*[^:]: %m [SC%n]' + + shfmt-format: &shfmt-format + format-command: 'shfmt -ln bash -i 2 -bn -ci -sr -kp' + format-stdin: true + + checkmake-lint: &checkmake-lint + lint-command: 'checkmake' + lint-stdin: true + + flake8-lint: &flake8-lint + prefix: flake8 + lint-command: 'flake8 --stdin-display-name ${INPUT} -' + lint-stdin: true + lint-formats: + - '%f:%l:%c: %m' + root-markers: + - setup.cfg + - tox.ini + - .flake8 + + pylint-lint: &pylint-lint + prefix: pylint + lint-command: 'pylint --output-format=text --score=no --msg-template {path}:{line}:{column}:{C}:{msg} ${INPUT}' + lint-stdin: false + lint-formats: + - '%f:%l:%c:%t:%m' + lint-offset-columns: 1 + lint-category-map: + I: H + R: I + C: I + W: W + E: E + F: E + root-markers: + - setup.cfg + - .pylintrc + + mypy-lint: &mypy-lint + prefix: mypy + lint-command: 'mypy --show-column-numbers --strict --strict-equality' + lint-formats: + - '%f:%l:%c: %t%*[^:]: %m' + root-markers: + - setup.cfg + - mypy.ini + + black-action-format: &black-action-format + commands: + - title: 'black format' + command: black + arguments: + - '--quiet' + - '--safe' + - '${INPUT}' + + yapf-action-format: &yapf-action-format + commands: + - title: 'yapf format' + command: yapf + arguments: + - '-i' + - '${INPUT}' + + isort-action-format: &isort-action-format + format-command: 'isort --quiet --profile open_stack -' + format-stdin: true + + pydocstyle-lint: &pydocstyle-lint + prefix: pydocstyle + lint-command: 'pydocstyle ${INPUT}' + lint-stdin: false + lint-ignore-exit-code: true + lint-formats: + - '%I%f:%l %.%#:' + - '%Z%*\sD%n: %m' + + rubocop-lint: &rubocop-lint + prefix: rubocop + lint-command: 'bundle exec rubocop --format emacs --force-exclusion --stdin ${INPUT}' + lint-ignore-exit-code: true + lint-stdin: true + lint-formats: + - '%f:%l:%c: %m' + root-markers: + - Gemfile + - Rakefile + - .rubocop.yml + commands: + - title: 'rubocop fix(safe)' + command: bundle + arguments: + - 'exec' + - 'rubocop' + - '--autocorrect' + - '${INPUT}' + - title: 'rubocop fix(all)' + command: bundle + arguments: + - 'exec' + - 'rubocop' + - '--autocorrect-all' + - '${INPUT}' + + rubocop-format: &rubocop-format + format-command: 'bundle exec rubocop -A -f quiet --stderr -s ${INPUT}' + format-stdin: true + + rufo-format: &rufo-format + format-command: 'bundle exec rufo ${INPUT}' + format-stdin: false + root-markers: + - Gemfile + - Rakefile + - .rufo + + rbprettier-action-format: &rbprettier-action-format + commands: + - title: 'rbprettier format' + command: bundle + arguments: + - 'exec' + - 'rbprettier' + - '--write' + - '${INPUT}' + + yamllint-lint: &yamllint-lint + prefix: yamllint + lint-command: 'yamllint --strict --format parsable ${INPUT}' + lint-stdin: false + lint-formats: + - '%f:%l:%c: [%t%*[a-z]] %m' + env: + - 'PYTHONIOENCODING=UTF-8' + + actionlint-lint: &actionlint-lint + prefix: actionlint + lint-command: "bash -c \"[[ '${INPUT}' =~ \\\\.github/workflows/ ]]\" && actionlint -oneline -no-color -" + lint-stdin: true + lint-formats: + - '%f:%l:%c: %m' + root-markers: + - .github + + restructuredtext-lint-lint: &restructuredtext-lint-lint + prefix: rstlint + lint-command: 'rst-lint --encoding utf-8 --level warning --format text ${INPUT}' + lint-stdin: false + lint-ignore-exit-code: true + lint-formats: + - '%t%*[A-Z] %f:%l %m' + + rstcheck-lint: &rstcheck-lint + prefix: rstcheck + lint-command: 'rstcheck --report warning -' + lint-stdin: true + lint-formats: + - '%f:%l: (%t%*[^/]/%n) %m' + + textlint-lint: &textlint-lint + prefix: textlint + lint-command: 'npx --no-install textlint -f unix --no-color --stdin --stdin-filename ${INPUT}' + lint-stdin: true + lint-formats: + - '%f:%l:%c: %m [%trror/%r]' + - '%f:%l:%c: 【%r】 %m' + - '%E%f:%l:%c: %m' + - '%Z%m [%trror/%r]' + - '%C%m' + root-markers: + - package.json + - .textlintrc + commands: + - title: 'textlint fix' + command: npx + arguments: + - '--no-install' + - 'textlint' + - '--fix' + - '${INPUT}' + + eslint-lint: &eslint-lint + prefix: eslint + lint-command: 'npx --no-install eslint -f unix --stdin --stdin-filename ${INPUT}' + lint-ignore-exit-code: true + lint-stdin: true + root-markers: + - package.json + - .eslintrc.js + - .eslintrc.yaml + - .eslintrc.yml + - .eslintrc.json + commands: + - title: 'eslint fix' + command: npx + arguments: + - '--no-install' + - 'eslint' + - '--fix' + - '${INPUT}' + + stylelint-lint: &stylelint-lint + prefix: stylelint + lint-command: 'npx --no-install stylelint --formatter unix --stdin --stdin-filename ${INPUT}' + lint-ignore-exit-code: false + lint-stdin: true + lint-formats: + - '%f:%l:%c: %m [%t%*[a-z]]' + root-markers: + - package.json + - .stylelintrc.json + commands: + - title: 'stylelint fix' + command: npx + arguments: + - '--no-install' + - 'stylelint' + - '--fix' + - '${INPUT}' + + htmllint-lint: &htmllint-lint + prefix: htmllint + lint-command: 'npx --no-install htmllint ${INPUT}' + lint-stdin: false + lint-formats: + - '%f: line %l, col %c, %m' + root-markers: + - package.json + - .htmllintrc + + buf-lint: &buf-lint + prefix: buf + lint-command: 'buf lint --path' + root-markers: + - buf.yaml + + prettier-action-fix: &prettier-action-fix + commands: + - title: 'prettier fix' + command: npx + arguments: + - '--no-install' + - 'prettier' + - '--fix' + - '--write' + - '${INPUT}' + + credo-lint: &credo-lint + prefix: credo + lint-command: 'mix credo suggest --format=flycheck --read-from-stdin ${INPUT}' + lint-stdin: true + lint-formats: + - '%f:%l:%c: %t: %m' + - '%f:%l: %t: %m' + root-markers: + - mix.lock + - mix.exs + + hadolint-lint: &hadolint-lint + prefix: hadolint + lint-command: 'hadolint' + lint-formats: + - '%f:%l %m' + + cspell-lint: &cspell-lint + prefix: cspell + lint-command: 'npx --no-install cspell lint --no-progress --no-summary --no-color ${INPUT}' + lint-formats: + - '%f:%l:%c - %m' + - '%f:%l:%c %m' + root-markers: + - package.json + - .cspell.json + - cspell.json + - .cSpell.json + - cSpell.json + - cspell.config.js + - cspell.config.cjs + - cspell.config.json + - cspell.config.yaml + - cspell.config.yml + - cspell.yaml + - cspell.yml + + excitetranslate-hover: &excitetranslate-hover + hover-command: 'excitetranslate' + hover-stdin: true + +# languages setting +languages: + vim: + - <<: *vint-lint + + markdown: + - <<: *markdownlint-lint + - <<: *textlint-lint + - <<: *redpen-lint + - <<: *vale-lint + - <<: *nvcheck-lint + - <<: *stylelint-lint + - <<: *prettier-action-fix + - <<: *pandoc-markdown-format + - <<: *mdformat-action-format + + json: + - <<: *jsonlint-lint + - <<: *jq-format + - <<: *fixjson-format + - <<: *prettier-action-fix + + json5: + - <<: *fixjson-format + - <<: *prettier-action-fix + + text: + - <<: *textlint-lint + - <<: *redpen-text-lint + - <<: *vale-lint + - <<: *nvcheck-lint + + help: + - <<: *textlint-lint + - <<: *redpen-text-lint + - <<: *vale-lint + - <<: *nvcheck-lint + + cpp: + - <<: *cppcheck-lint + + c: + - <<: *cppcheck-lint + + sh: + - <<: *shellcheck-lint + - <<: *shfmt-format + + make: + - <<: *checkmake-lint + + yaml: + - <<: *yamllint-lint + - <<: *prettier-action-fix + - <<: *actionlint-lint + + rst: + - <<: *restructuredtext-lint-lint + - <<: *rstcheck-lint + - <<: *textlint-lint + - <<: *redpen-lint + - <<: *vale-lint + - <<: *nvcheck-lint + - <<: *pandoc-rst-format + + asciidoc: + - <<: *textlint-lint + - <<: *redpen-lint + + review: + - <<: *textlint-lint + - <<: *redpen-lint + + javascript: + - <<: *eslint-lint + - <<: *prettier-action-fix + + typescript: + - <<: *eslint-lint + - <<: *prettier-action-fix + + css: + - <<: *stylelint-lint + - <<: *prettier-action-fix + + scss: + - <<: *stylelint-lint + - <<: *prettier-action-fix + + sass: + - <<: *stylelint-lint + + less: + - <<: *stylelint-lint + + sugarss: + - <<: *stylelint-lint + + proto: + - <<: *buf-lint + + python: + - <<: *flake8-lint + - <<: *pydocstyle-lint + - <<: *isort-action-format + # - <<: *pylint-lint + # - <<: *mypy-lint + # - <<: *black-action-format + # - <<: *yapf-action-format + + ruby: + - <<: *rubocop-lint + - <<: *rubocop-format + - <<: *rufo-format + - <<: *rbprettier-action-format + - <<: *prettier-action-fix + + graphql: + - <<: *prettier-action-fix + + vue: + - <<: *prettier-action-fix + + html: + - <<: *textlint-lint + - <<: *htmllint-lint + - <<: *stylelint-lint + - <<: *prettier-action-fix + + elixir: + - <<: *credo-lint + + dockerfile: + - <<: *hadolint-lint + + =: + - <<: *excitetranslate-hover + - <<: *cspell-lint +... diff --git a/config.common/fontconfig/fonts.conf b/config.common/fontconfig/fonts.conf new file mode 100644 index 0000000..025207a --- /dev/null +++ b/config.common/fontconfig/fonts.conf @@ -0,0 +1,32 @@ + + + + + Fira Code + + Font Awesome 5 Brands + Font Awesome 5 Free + + + + Fira Mono + + Font Awesome 5 Brands + Font Awesome 5 Free + + + + DejaVu Sans Mono + + Font Awesome 5 Brands + Font Awesome 5 Free + + + + DejaVu Sans Mono for Powerline + + Font Awesome 5 Brands + Font Awesome 5 Free + + + diff --git a/config.common/ripgreprc b/config.common/ripgreprc new file mode 100644 index 0000000..d7b40e2 --- /dev/null +++ b/config.common/ripgreprc @@ -0,0 +1,28 @@ +# Don't let ripgrep vomit really long lines to my terminal, and show a preview. +--max-columns=250 +--max-columns-preview + +# Using glob patterns to include/exclude files or folders +# --glob=!git/* +# Exclude directories. +--glob=!{.git,.svn,node_modules,tealdeer,Trash,vendor,site-packages} + +# Exclude file types. +--glob=!*.{lock} +--glob=!dist/* +--glob=!build* +--glob=!.cache/* +# Exclude files. +--glob=!{package-lock.json} +--glob=!log/* +# # or +# --glob +# '!{**/node_modules/*,**/.git/*}' +# --glob +# '!{.git,**/vendor/*,**/node_modules/*}' +# Set the colors. +--colors=line:none +--colors=line:style:bold + +# Because who cares about case!? +--smart-case diff --git a/config.common/yamllint/config b/config.common/yamllint/config new file mode 100644 index 0000000..62ad49e --- /dev/null +++ b/config.common/yamllint/config @@ -0,0 +1,36 @@ +--- +# vim: ft=yaml + +yaml-files: + - '*.yaml' + - '*.yml' + - '.yamllint' + +rules: + anchors: enable + braces: enable + brackets: enable + colons: enable + commas: enable + comments: + level: warning + comments-indentation: + level: warning + document-end: disable + document-start: + level: warning + empty-lines: enable + empty-values: disable + float-values: disable + hyphens: enable + indentation: enable + key-duplicates: enable + key-ordering: disable + line-length: disable + new-line-at-end-of-file: enable + new-lines: enable + octal-values: disable + quoted-strings: disable + trailing-spaces: enable + truthy: + level: warning diff --git a/ctags/README.md b/ctags/README.md new file mode 100644 index 0000000..9bd4f76 --- /dev/null +++ b/ctags/README.md @@ -0,0 +1,3 @@ +# ctags + +builded from https://github.com/universal-ctags/ctags/blob/master/docs/autotools.rst diff --git a/ctags/ctags.d/puppet.ctags b/ctags/ctags.d/puppet.ctags new file mode 100644 index 0000000..ba9ca18 --- /dev/null +++ b/ctags/ctags.d/puppet.ctags @@ -0,0 +1,12 @@ +--langdef=puppet +--langmap=puppet:.pp +--regex-puppet=/^[[:space:]]*class[[:space:]]*([a-z][a-zA-Z0-9_:\-]+)/\1/c,class/ +--regex-puppet=/^[[:space:]]*site[[:space:]]*([a-zA-Z0-9_\-]+)/\1/s,site/ +--regex-puppet=/^[[:space:]]*node[[:space:]]*[\'|\"]*([a-zA-Z0-9_\.\-]+)[\'|\"]*/\1/n,node/ +--regex-puppet=/^[[:space:]]*define[[:space:]]*([a-z][a-zA-Z0-9_:\-]+)/\1/d,definition/ +--regex-puppet=/^[[:space:]]*(include|require)[[:space:]]*([a-zA-Z0-9_:]+)/\1 \2/i,include/ +--regex-puppet=/^[[:space:]]*([\$][a-zA-Z0-9_:]+)[[:space:]]*=/\1/v,variable/ +--regex-puppet=/^[[:space:]]*[~|\-]?>?[[:space:]]*([a-z][a-zA-Z0-9_:]+)[[:space:]]*\{ *(.*):/\1[\2]/r,resource/ +--regex-puppet=/([A-Z][a-zA-Z0-9_:]+)[[:space:]]*\{/\1/f,default/ +--regex-puppet=/^[[:space:]]*type[[:space:]]*([A-Z][a-zA-Z0-9_:]*)[[:space:]]*=/\1/t,type/ +--regex-puppet=/^[[:space:]]*function[[:space:]]*([a-zA-Z0-9_:]*)[[:space:]]*/\1/u,function/ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Bold.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Bold.ttf new file mode 100644 index 0000000..773510e Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Bold.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-BoldItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-BoldItalic.ttf new file mode 100644 index 0000000..064b3ef Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-BoldItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-ExtraLight.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-ExtraLight.ttf new file mode 100644 index 0000000..b155571 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-ExtraLight.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-ExtraLightItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-ExtraLightItalic.ttf new file mode 100644 index 0000000..5e0034a Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-ExtraLightItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Italic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Italic.ttf new file mode 100644 index 0000000..2f6d3d0 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Italic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Light.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Light.ttf new file mode 100644 index 0000000..41e832f Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Light.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-LightItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-LightItalic.ttf new file mode 100644 index 0000000..1ad2226 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-LightItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Regular.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Regular.ttf new file mode 100644 index 0000000..3a599b3 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-Regular.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiBold.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiBold.ttf new file mode 100644 index 0000000..66813aa Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiBold.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiBoldItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiBoldItalic.ttf new file mode 100644 index 0000000..23cdde3 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiBoldItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiLight.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiLight.ttf new file mode 100644 index 0000000..4381ab8 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiLight.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiLightItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiLightItalic.ttf new file mode 100644 index 0000000..5fe243d Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFont-SemiLightItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Bold.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Bold.ttf new file mode 100644 index 0000000..9d63163 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Bold.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-BoldItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-BoldItalic.ttf new file mode 100644 index 0000000..e7b62be Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-BoldItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-ExtraLight.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-ExtraLight.ttf new file mode 100644 index 0000000..8456cce Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-ExtraLight.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-ExtraLightItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-ExtraLightItalic.ttf new file mode 100644 index 0000000..c4cf979 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-ExtraLightItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Italic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Italic.ttf new file mode 100644 index 0000000..ee78afb Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Italic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Light.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Light.ttf new file mode 100644 index 0000000..863c9a6 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Light.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-LightItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-LightItalic.ttf new file mode 100644 index 0000000..334da11 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-LightItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Regular.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Regular.ttf new file mode 100644 index 0000000..0bd6596 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-Regular.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiBold.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiBold.ttf new file mode 100644 index 0000000..6a26450 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiBold.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiBoldItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiBoldItalic.ttf new file mode 100644 index 0000000..dd7f573 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiBoldItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiLight.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiLight.ttf new file mode 100644 index 0000000..e0d3a41 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiLight.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiLightItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiLightItalic.ttf new file mode 100644 index 0000000..95a52f8 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontMono-SemiLightItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Bold.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Bold.ttf new file mode 100644 index 0000000..8d6eedf Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Bold.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-BoldItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-BoldItalic.ttf new file mode 100644 index 0000000..d5dffae Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-BoldItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-ExtraLight.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-ExtraLight.ttf new file mode 100644 index 0000000..d71a50f Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-ExtraLight.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-ExtraLightItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-ExtraLightItalic.ttf new file mode 100644 index 0000000..5ea3605 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-ExtraLightItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Italic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Italic.ttf new file mode 100644 index 0000000..ee86dc6 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Italic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Light.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Light.ttf new file mode 100644 index 0000000..2242867 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Light.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-LightItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-LightItalic.ttf new file mode 100644 index 0000000..dc8bea5 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-LightItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Regular.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Regular.ttf new file mode 100644 index 0000000..28eee58 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-Regular.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiBold.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiBold.ttf new file mode 100644 index 0000000..4d57d24 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiBold.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiBoldItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiBoldItalic.ttf new file mode 100644 index 0000000..94717f7 Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiBoldItalic.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiLight.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiLight.ttf new file mode 100644 index 0000000..89db31f Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiLight.ttf differ diff --git a/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiLightItalic.ttf b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiLightItalic.ttf new file mode 100644 index 0000000..20fb92d Binary files /dev/null and b/fonts/CascadiaCove/CaskaydiaCoveNerdFontPropo-SemiLightItalic.ttf differ diff --git a/fonts/CascadiaCove/LICENSE b/fonts/CascadiaCove/LICENSE new file mode 100644 index 0000000..40f856f --- /dev/null +++ b/fonts/CascadiaCove/LICENSE @@ -0,0 +1,94 @@ +Copyright (c) 2019 - Present, Microsoft Corporation, +with Reserved Font Name Cascadia Code. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/CascadiaCove/README.md b/fonts/CascadiaCove/README.md new file mode 100644 index 0000000..a9d4cc3 --- /dev/null +++ b/fonts/CascadiaCove/README.md @@ -0,0 +1,75 @@ +# Nerd Fonts + +This is an archived font from the Nerd Fonts release v3.2.0. + +For more information see: +* https://github.com/ryanoasis/nerd-fonts/ +* https://github.com/ryanoasis/nerd-fonts/releases/latest/ + +# Cascadia Code + +**Cascadia Code** is a fun, new monospaced font that includes programming ligatures. + +For more information have a look at the upstream website: https://github.com/microsoft/cascadia-code + +## Preprocessed Source Font + +This source font has been preprocessed - it is not taken directly from upstream. +Cascadia Code is mainly a variable font (VF) and the static versions (that Nerd Fonts +are based on) are prepared in a different way: They have been hinted with `ttfautohint`. +That hints differ considerably from the hints in the VF. That changes the rendering for +smaller sizes (usual sizes in terminals) considerably. + +To get the 'original' (i.e. VF) feel of the font we redo the hints in the static versions: +Open the font with Microsoft's VisualTrueType (VTT) and apply Light Latin Autohint. +The issue is known upstream and will probably be fixed. But until it is fixed we need +to do this manual process on all source updates. + +Version: 2111.01 + +## Why `CaskaydiaCove` and not `Cascadia Code`? + +What's in a name? The reason for the name change is to comply with the SIL Open Font License (OFL), in particular the [Reserved Font Name mechanism][SIL-RFN] + +Some fonts have parts of their name "reserved" per the [Reserved Font Name mechanism][SIL-RFN]: +> No Modified Version of the Font Software may use the Reserved Font +> Name(s) unless explicit written permission is granted by the corresponding +> Copyright Holder. This restriction only applies to the primary font name as +> presented to the users. + +- The main goals seem to be to: `Avoid collisions`, `Protect authors`, `Minimize support`, and `Encourage derivatives` + +See the [Reserved Font Name section][SIL-RFN] for additional information + +## Which font? + +### TL;DR + +* Pick your font family: + * If you are limited to monospaced fonts (because of your terminal, etc) then pick a font with `Nerd Font Mono` (or `NFM`). + * If you want to have bigger icons (usually around 1.5 normal letters wide) pick a font without `Mono` i.e. `Nerd Font` (or `NF`). Most terminals support this, but ymmv. + * If you work in a proportional context (GUI elements or edit a presentation etc) pick a font with `Nerd Font Propo` (or `NFP`). + +### Ligatures + +Ligatures are generally preserved in the patched fonts. +Nerd Fonts `v2.0.0` had no ligatures in the `Nerd Font Mono` fonts, this has been dropped with `v2.1.0`. +If you have a ligature-aware terminal and don't want ligatures you can (usually) disable them in the terminal settings. + +### Explanation + +Once you narrow down your font choice of family (`Droid Sans`, `Inconsolata`, etc) and style (`bold`, `italic`, etc) you have 2 main choices: + +#### `Option 1: Download already patched font` + + * For a stable version download a font package from the [release page](https://github.com/ryanoasis/nerd-fonts/releases) + * Or download the development version from the folders here + +#### `Option 2: Patch your own font` + + * Patch your own variations with the various options provided by the font patcher (i.e. not include all symbols for smaller font size) + +For more information see: [The FAQ](https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting#which-font) + +[SIL-RFN]:http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a + diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Bold.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Bold.ttf new file mode 100644 index 0000000..d9f513f Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Bold.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-BoldItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-BoldItalic.ttf new file mode 100644 index 0000000..ff4a931 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-BoldItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-ExtraLight.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-ExtraLight.ttf new file mode 100644 index 0000000..1e07d66 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-ExtraLight.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-ExtraLightItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-ExtraLightItalic.ttf new file mode 100644 index 0000000..eb1b52e Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-ExtraLightItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Italic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Italic.ttf new file mode 100644 index 0000000..3ec8d86 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Italic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Light.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Light.ttf new file mode 100644 index 0000000..16520dd Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Light.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-LightItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-LightItalic.ttf new file mode 100644 index 0000000..0541f88 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-LightItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Regular.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Regular.ttf new file mode 100644 index 0000000..a0f8641 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-Regular.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiBold.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiBold.ttf new file mode 100644 index 0000000..f0882ef Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiBold.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiBoldItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiBoldItalic.ttf new file mode 100644 index 0000000..cd21c7e Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiBoldItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiLight.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiLight.ttf new file mode 100644 index 0000000..c53da9b Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiLight.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiLightItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiLightItalic.ttf new file mode 100644 index 0000000..584119e Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFont-SemiLightItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Bold.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Bold.ttf new file mode 100644 index 0000000..f2a4882 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Bold.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-BoldItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-BoldItalic.ttf new file mode 100644 index 0000000..be801a9 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-BoldItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-ExtraLight.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-ExtraLight.ttf new file mode 100644 index 0000000..4e73eaa Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-ExtraLight.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-ExtraLightItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-ExtraLightItalic.ttf new file mode 100644 index 0000000..e7eb866 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-ExtraLightItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Italic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Italic.ttf new file mode 100644 index 0000000..065069a Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Italic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Light.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Light.ttf new file mode 100644 index 0000000..447c932 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Light.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-LightItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-LightItalic.ttf new file mode 100644 index 0000000..22ed631 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-LightItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Regular.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Regular.ttf new file mode 100644 index 0000000..f8437a8 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-Regular.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiBold.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiBold.ttf new file mode 100644 index 0000000..8116c9e Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiBold.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiBoldItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiBoldItalic.ttf new file mode 100644 index 0000000..7e174dd Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiBoldItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiLight.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiLight.ttf new file mode 100644 index 0000000..a753c95 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiLight.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiLightItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiLightItalic.ttf new file mode 100644 index 0000000..a95d217 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontMono-SemiLightItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Bold.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Bold.ttf new file mode 100644 index 0000000..8fc3501 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Bold.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-BoldItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-BoldItalic.ttf new file mode 100644 index 0000000..c339a7c Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-BoldItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-ExtraLight.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-ExtraLight.ttf new file mode 100644 index 0000000..a852989 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-ExtraLight.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-ExtraLightItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-ExtraLightItalic.ttf new file mode 100644 index 0000000..2c3fbea Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-ExtraLightItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Italic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Italic.ttf new file mode 100644 index 0000000..f2354ec Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Italic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Light.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Light.ttf new file mode 100644 index 0000000..57b6627 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Light.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-LightItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-LightItalic.ttf new file mode 100644 index 0000000..bdef899 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-LightItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Regular.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Regular.ttf new file mode 100644 index 0000000..c606349 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-Regular.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiBold.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiBold.ttf new file mode 100644 index 0000000..43a9de6 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiBold.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiBoldItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiBoldItalic.ttf new file mode 100644 index 0000000..9cfe50a Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiBoldItalic.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiLight.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiLight.ttf new file mode 100644 index 0000000..37598b3 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiLight.ttf differ diff --git a/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiLightItalic.ttf b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiLightItalic.ttf new file mode 100644 index 0000000..051cba6 Binary files /dev/null and b/fonts/CascadiaMono/CaskaydiaMonoNerdFontPropo-SemiLightItalic.ttf differ diff --git a/fonts/CascadiaMono/LICENSE b/fonts/CascadiaMono/LICENSE new file mode 100644 index 0000000..40f856f --- /dev/null +++ b/fonts/CascadiaMono/LICENSE @@ -0,0 +1,94 @@ +Copyright (c) 2019 - Present, Microsoft Corporation, +with Reserved Font Name Cascadia Code. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/CascadiaMono/README.md b/fonts/CascadiaMono/README.md new file mode 100644 index 0000000..08cee95 --- /dev/null +++ b/fonts/CascadiaMono/README.md @@ -0,0 +1,75 @@ +# Nerd Fonts + +This is an archived font from the Nerd Fonts release v3.2.0. + +For more information see: +* https://github.com/ryanoasis/nerd-fonts/ +* https://github.com/ryanoasis/nerd-fonts/releases/latest/ + +# Cascadia Mono + +**Cascadia Mono** is a fun, new monospaced font, Cascadia Code without ligatures. + +For more information have a look at the upstream website: https://github.com/microsoft/cascadia-code + +## Preprocessed Source Font + +This source font has been preprocessed - it is not taken directly from upstream. +Cascadia Code is mainly a variable font (VF) and the static versions (that Nerd Fonts +are based on) are prepared in a different way: They have been hinted with `ttfautohint`. +That hints differ considerably from the hints in the VF. That changes the rendering for +smaller sizes (usual sizes in terminals) considerably. + +To get the 'original' (i.e. VF) feel of the font we redo the hints in the static versions: +Open the font with Microsoft's VisualTrueType (VTT) and apply Light Latin Autohint. +The issue is known upstream and will probably be fixed. But until it is fixed we need +to do this manual process on all source updates. + +Version: 2111.01 + +## Why `CaskaydiaMono` and not `Cascadia Mono`? + +What's in a name? The reason for the name change is to comply with the SIL Open Font License (OFL), in particular the [Reserved Font Name mechanism][SIL-RFN] + +Some fonts have parts of their name "reserved" per the [Reserved Font Name mechanism][SIL-RFN]: +> No Modified Version of the Font Software may use the Reserved Font +> Name(s) unless explicit written permission is granted by the corresponding +> Copyright Holder. This restriction only applies to the primary font name as +> presented to the users. + +- The main goals seem to be to: `Avoid collisions`, `Protect authors`, `Minimize support`, and `Encourage derivatives` + +See the [Reserved Font Name section][SIL-RFN] for additional information + +## Which font? + +### TL;DR + +* Pick your font family: + * If you are limited to monospaced fonts (because of your terminal, etc) then pick a font with `Nerd Font Mono` (or `NFM`). + * If you want to have bigger icons (usually around 1.5 normal letters wide) pick a font without `Mono` i.e. `Nerd Font` (or `NF`). Most terminals support this, but ymmv. + * If you work in a proportional context (GUI elements or edit a presentation etc) pick a font with `Nerd Font Propo` (or `NFP`). + +### Ligatures + +Ligatures are generally preserved in the patched fonts. +Nerd Fonts `v2.0.0` had no ligatures in the `Nerd Font Mono` fonts, this has been dropped with `v2.1.0`. +If you have a ligature-aware terminal and don't want ligatures you can (usually) disable them in the terminal settings. + +### Explanation + +Once you narrow down your font choice of family (`Droid Sans`, `Inconsolata`, etc) and style (`bold`, `italic`, etc) you have 2 main choices: + +#### `Option 1: Download already patched font` + + * For a stable version download a font package from the [release page](https://github.com/ryanoasis/nerd-fonts/releases) + * Direct links for [CascadiaMono.zip](https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.zip) or [CascadiaMono.tar.xz](https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.tar.xz) + +#### `Option 2: Patch your own font` + + * Patch your own variations with the various options provided by the font patcher (i.e. not include all symbols for smaller font size) + +For more information see: [The FAQ](https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting#which-font) + +[SIL-RFN]:http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a + diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFont-Bold.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFont-Bold.ttf new file mode 100644 index 0000000..6131f86 Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFont-Bold.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFont-BoldOblique.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFont-BoldOblique.ttf new file mode 100644 index 0000000..f44ad8e Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFont-BoldOblique.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFont-Oblique.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFont-Oblique.ttf new file mode 100644 index 0000000..3dd518b Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFont-Oblique.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFont-Regular.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFont-Regular.ttf new file mode 100644 index 0000000..5d29ae8 Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFont-Regular.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-Bold.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-Bold.ttf new file mode 100644 index 0000000..5de890e Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-Bold.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-BoldOblique.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-BoldOblique.ttf new file mode 100644 index 0000000..a8ff129 Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-BoldOblique.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-Oblique.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-Oblique.ttf new file mode 100644 index 0000000..d19f27b Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-Oblique.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-Regular.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-Regular.ttf new file mode 100644 index 0000000..2716281 Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFontMono-Regular.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-Bold.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-Bold.ttf new file mode 100644 index 0000000..7c862c0 Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-Bold.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-BoldOblique.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-BoldOblique.ttf new file mode 100644 index 0000000..8223aba Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-BoldOblique.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-Oblique.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-Oblique.ttf new file mode 100644 index 0000000..3295505 Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-Oblique.ttf differ diff --git a/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-Regular.ttf b/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-Regular.ttf new file mode 100644 index 0000000..4699ed9 Binary files /dev/null and b/fonts/DejaVuSansMono/DejaVuSansMNerdFontPropo-Regular.ttf differ diff --git a/fonts/DejaVuSansMono/LICENSE.txt b/fonts/DejaVuSansMono/LICENSE.txt new file mode 100644 index 0000000..6939980 --- /dev/null +++ b/fonts/DejaVuSansMono/LICENSE.txt @@ -0,0 +1,97 @@ +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. +Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below) + +Bitstream Vera Fonts Copyright +------------------------------ + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is +a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute the +Font Software, including without limitation the rights to use, copy, merge, +publish, distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to the +following conditions: + +The above copyright and trademark notices and this permission notice shall +be included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and +additional glyphs or characters may be added to the Fonts, only if the fonts +are renamed to names not containing either the words "Bitstream" or the word +"Vera". + +This License becomes null and void to the extent applicable to Fonts or Font +Software that has been modified and is distributed under the "Bitstream +Vera" names. + +The Font Software may be sold as part of a larger software package but no +copy of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME +FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING +ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE +FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font Software +without prior written authorization from the Gnome Foundation or Bitstream +Inc., respectively. For further information, contact: fonts at gnome dot +org. + +Arev Fonts Copyright +------------------------------ + +Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and +associated documentation files (the "Font Software"), to reproduce +and distribute the modifications to the Bitstream Vera Font Software, +including without limitation the rights to use, copy, merge, publish, +distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to +the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Tavmjong Bah" or the word "Arev". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Tavmjong Bah Arev" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the name of Tavmjong Bah shall not +be used in advertising or otherwise to promote the sale, use or other +dealings in this Font Software without prior written authorization +from Tavmjong Bah. For further information, contact: tavmjong @ free +. fr. \ No newline at end of file diff --git a/fonts/DejaVuSansMono/README.md b/fonts/DejaVuSansMono/README.md new file mode 100644 index 0000000..a3160ce --- /dev/null +++ b/fonts/DejaVuSansMono/README.md @@ -0,0 +1,49 @@ +# Nerd Fonts + +This is an archived font from the Nerd Fonts release v3.2.0. + +For more information see: +* https://github.com/ryanoasis/nerd-fonts/ +* https://github.com/ryanoasis/nerd-fonts/releases/latest/ + +# DejaVu + +The DejaVu fonts are a font family based on the Bitstream Vera fonts. +Its purpose is to provide a wider range of characters while maintaining the original look and feel. + +For more information have a look at the upstream website: https://github.com/dejavu-fonts/dejavu-fonts + +Version: 2.37 + +## Which font? + +### TL;DR + +* Pick your font family: + * If you are limited to monospaced fonts (because of your terminal, etc) then pick a font with `Nerd Font Mono` (or `NFM`). + * If you want to have bigger icons (usually around 1.5 normal letters wide) pick a font without `Mono` i.e. `Nerd Font` (or `NF`). Most terminals support this, but ymmv. + * If you work in a proportional context (GUI elements or edit a presentation etc) pick a font with `Nerd Font Propo` (or `NFP`). + +### Ligatures + +Ligatures are generally preserved in the patched fonts. +Nerd Fonts `v2.0.0` had no ligatures in the `Nerd Font Mono` fonts, this has been dropped with `v2.1.0`. +If you have a ligature-aware terminal and don't want ligatures you can (usually) disable them in the terminal settings. + +### Explanation + +Once you narrow down your font choice of family (`Droid Sans`, `Inconsolata`, etc) and style (`bold`, `italic`, etc) you have 2 main choices: + +#### `Option 1: Download already patched font` + + * For a stable version download a font package from the [release page](https://github.com/ryanoasis/nerd-fonts/releases) + * Or download the development version from the folders here + +#### `Option 2: Patch your own font` + + * Patch your own variations with the various options provided by the font patcher (i.e. not include all symbols for smaller font size) + +For more information see: [The FAQ](https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting#which-font) + +[SIL-RFN]:http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a + diff --git a/fonts/FiraCode/FiraCodeNerdFont-Bold.ttf b/fonts/FiraCode/FiraCodeNerdFont-Bold.ttf new file mode 100644 index 0000000..9a9a9c9 Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFont-Bold.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFont-Light.ttf b/fonts/FiraCode/FiraCodeNerdFont-Light.ttf new file mode 100644 index 0000000..dbfc76f Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFont-Light.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFont-Medium.ttf b/fonts/FiraCode/FiraCodeNerdFont-Medium.ttf new file mode 100644 index 0000000..c1400bf Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFont-Medium.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFont-Regular.ttf b/fonts/FiraCode/FiraCodeNerdFont-Regular.ttf new file mode 100644 index 0000000..2e849ec Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFont-Regular.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFont-Retina.ttf b/fonts/FiraCode/FiraCodeNerdFont-Retina.ttf new file mode 100644 index 0000000..e10d9a0 Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFont-Retina.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFont-SemiBold.ttf b/fonts/FiraCode/FiraCodeNerdFont-SemiBold.ttf new file mode 100644 index 0000000..62e2a1e Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFont-SemiBold.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontMono-Bold.ttf b/fonts/FiraCode/FiraCodeNerdFontMono-Bold.ttf new file mode 100644 index 0000000..21f4bfa Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontMono-Bold.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontMono-Light.ttf b/fonts/FiraCode/FiraCodeNerdFontMono-Light.ttf new file mode 100644 index 0000000..888e5e2 Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontMono-Light.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontMono-Medium.ttf b/fonts/FiraCode/FiraCodeNerdFontMono-Medium.ttf new file mode 100644 index 0000000..978d8ef Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontMono-Medium.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontMono-Regular.ttf b/fonts/FiraCode/FiraCodeNerdFontMono-Regular.ttf new file mode 100644 index 0000000..ca18234 Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontMono-Regular.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontMono-Retina.ttf b/fonts/FiraCode/FiraCodeNerdFontMono-Retina.ttf new file mode 100644 index 0000000..f31d581 Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontMono-Retina.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontMono-SemiBold.ttf b/fonts/FiraCode/FiraCodeNerdFontMono-SemiBold.ttf new file mode 100644 index 0000000..8c97ce6 Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontMono-SemiBold.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontPropo-Bold.ttf b/fonts/FiraCode/FiraCodeNerdFontPropo-Bold.ttf new file mode 100644 index 0000000..ae773da Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontPropo-Bold.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontPropo-Light.ttf b/fonts/FiraCode/FiraCodeNerdFontPropo-Light.ttf new file mode 100644 index 0000000..47fe5f9 Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontPropo-Light.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontPropo-Medium.ttf b/fonts/FiraCode/FiraCodeNerdFontPropo-Medium.ttf new file mode 100644 index 0000000..9471eca Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontPropo-Medium.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontPropo-Regular.ttf b/fonts/FiraCode/FiraCodeNerdFontPropo-Regular.ttf new file mode 100644 index 0000000..5f3518a Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontPropo-Regular.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontPropo-Retina.ttf b/fonts/FiraCode/FiraCodeNerdFontPropo-Retina.ttf new file mode 100644 index 0000000..d2c58be Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontPropo-Retina.ttf differ diff --git a/fonts/FiraCode/FiraCodeNerdFontPropo-SemiBold.ttf b/fonts/FiraCode/FiraCodeNerdFontPropo-SemiBold.ttf new file mode 100644 index 0000000..693e13e Binary files /dev/null and b/fonts/FiraCode/FiraCodeNerdFontPropo-SemiBold.ttf differ diff --git a/fonts/FiraCode/LICENSE b/fonts/FiraCode/LICENSE new file mode 100644 index 0000000..805e0b3 --- /dev/null +++ b/fonts/FiraCode/LICENSE @@ -0,0 +1,93 @@ +Copyright (c) 2014, The Fira Code Project Authors (https://github.com/tonsky/FiraCode) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/FiraCode/README.md b/fonts/FiraCode/README.md new file mode 100644 index 0000000..4119b1f --- /dev/null +++ b/fonts/FiraCode/README.md @@ -0,0 +1,48 @@ +# Nerd Fonts + +This is an archived font from the Nerd Fonts release v3.2.0. + +For more information see: +* https://github.com/ryanoasis/nerd-fonts/ +* https://github.com/ryanoasis/nerd-fonts/releases/latest/ + +# Fira Code + +**Fira Code** is a free monospaced font with programming ligatures. + +For more information have a look at the upstream website: https://github.com/tonsky/FiraCode + +Version: 6.2 + +## Which font? + +### TL;DR + +* Pick your font family: + * If you are limited to monospaced fonts (because of your terminal, etc) then pick a font with `Nerd Font Mono` (or `NFM`). + * If you want to have bigger icons (usually around 1.5 normal letters wide) pick a font without `Mono` i.e. `Nerd Font` (or `NF`). Most terminals support this, but ymmv. + * If you work in a proportional context (GUI elements or edit a presentation etc) pick a font with `Nerd Font Propo` (or `NFP`). + +### Ligatures + +Ligatures are generally preserved in the patched fonts. +Nerd Fonts `v2.0.0` had no ligatures in the `Nerd Font Mono` fonts, this has been dropped with `v2.1.0`. +If you have a ligature-aware terminal and don't want ligatures you can (usually) disable them in the terminal settings. + +### Explanation + +Once you narrow down your font choice of family (`Droid Sans`, `Inconsolata`, etc) and style (`bold`, `italic`, etc) you have 2 main choices: + +#### `Option 1: Download already patched font` + + * For a stable version download a font package from the [release page](https://github.com/ryanoasis/nerd-fonts/releases) + * Or download the development version from the folders here + +#### `Option 2: Patch your own font` + + * Patch your own variations with the various options provided by the font patcher (i.e. not include all symbols for smaller font size) + +For more information see: [The FAQ](https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting#which-font) + +[SIL-RFN]:http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a + diff --git a/fonts/FiraMono/FiraMonoNerdFont-Bold.otf b/fonts/FiraMono/FiraMonoNerdFont-Bold.otf new file mode 100644 index 0000000..ac9d69a Binary files /dev/null and b/fonts/FiraMono/FiraMonoNerdFont-Bold.otf differ diff --git a/fonts/FiraMono/FiraMonoNerdFont-Medium.otf b/fonts/FiraMono/FiraMonoNerdFont-Medium.otf new file mode 100644 index 0000000..4d46673 Binary files /dev/null and b/fonts/FiraMono/FiraMonoNerdFont-Medium.otf differ diff --git a/fonts/FiraMono/FiraMonoNerdFont-Regular.otf b/fonts/FiraMono/FiraMonoNerdFont-Regular.otf new file mode 100644 index 0000000..4a6ddd7 Binary files /dev/null and b/fonts/FiraMono/FiraMonoNerdFont-Regular.otf differ diff --git a/fonts/FiraMono/FiraMonoNerdFontMono-Bold.otf b/fonts/FiraMono/FiraMonoNerdFontMono-Bold.otf new file mode 100644 index 0000000..43312d5 Binary files /dev/null and b/fonts/FiraMono/FiraMonoNerdFontMono-Bold.otf differ diff --git a/fonts/FiraMono/FiraMonoNerdFontMono-Medium.otf b/fonts/FiraMono/FiraMonoNerdFontMono-Medium.otf new file mode 100644 index 0000000..0f10373 Binary files /dev/null and b/fonts/FiraMono/FiraMonoNerdFontMono-Medium.otf differ diff --git a/fonts/FiraMono/FiraMonoNerdFontMono-Regular.otf b/fonts/FiraMono/FiraMonoNerdFontMono-Regular.otf new file mode 100644 index 0000000..895ea52 Binary files /dev/null and b/fonts/FiraMono/FiraMonoNerdFontMono-Regular.otf differ diff --git a/fonts/FiraMono/FiraMonoNerdFontPropo-Bold.otf b/fonts/FiraMono/FiraMonoNerdFontPropo-Bold.otf new file mode 100644 index 0000000..7e5f261 Binary files /dev/null and b/fonts/FiraMono/FiraMonoNerdFontPropo-Bold.otf differ diff --git a/fonts/FiraMono/FiraMonoNerdFontPropo-Medium.otf b/fonts/FiraMono/FiraMonoNerdFontPropo-Medium.otf new file mode 100644 index 0000000..1903d2d Binary files /dev/null and b/fonts/FiraMono/FiraMonoNerdFontPropo-Medium.otf differ diff --git a/fonts/FiraMono/FiraMonoNerdFontPropo-Regular.otf b/fonts/FiraMono/FiraMonoNerdFontPropo-Regular.otf new file mode 100644 index 0000000..4d96642 Binary files /dev/null and b/fonts/FiraMono/FiraMonoNerdFontPropo-Regular.otf differ diff --git a/fonts/FiraMono/LICENSE b/fonts/FiraMono/LICENSE new file mode 100644 index 0000000..b827227 --- /dev/null +++ b/fonts/FiraMono/LICENSE @@ -0,0 +1,93 @@ +Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/FiraMono/README.md b/fonts/FiraMono/README.md new file mode 100644 index 0000000..d79740c --- /dev/null +++ b/fonts/FiraMono/README.md @@ -0,0 +1,48 @@ +# Nerd Fonts + +This is an archived font from the Nerd Fonts release v3.2.0. + +For more information see: +* https://github.com/ryanoasis/nerd-fonts/ +* https://github.com/ryanoasis/nerd-fonts/releases/latest/ + +# Fira Mono + +**Fira Mono** Mozilla's new typeface, used in Firefox OS + +For more information have a look at the upstream website: https://github.com/mozilla/Fira + +Version: 3.206 + +## Which font? + +### TL;DR + +* Pick your font family: + * If you are limited to monospaced fonts (because of your terminal, etc) then pick a font with `Nerd Font Mono` (or `NFM`). + * If you want to have bigger icons (usually around 1.5 normal letters wide) pick a font without `Mono` i.e. `Nerd Font` (or `NF`). Most terminals support this, but ymmv. + * If you work in a proportional context (GUI elements or edit a presentation etc) pick a font with `Nerd Font Propo` (or `NFP`). + +### Ligatures + +Ligatures are generally preserved in the patched fonts. +Nerd Fonts `v2.0.0` had no ligatures in the `Nerd Font Mono` fonts, this has been dropped with `v2.1.0`. +If you have a ligature-aware terminal and don't want ligatures you can (usually) disable them in the terminal settings. + +### Explanation + +Once you narrow down your font choice of family (`Droid Sans`, `Inconsolata`, etc) and style (`bold`, `italic`, etc) you have 2 main choices: + +#### `Option 1: Download already patched font` + + * For a stable version download a font package from the [release page](https://github.com/ryanoasis/nerd-fonts/releases) + * Or download the development version from the folders here + +#### `Option 2: Patch your own font` + + * Patch your own variations with the various options provided by the font patcher (i.e. not include all symbols for smaller font size) + +For more information see: [The FAQ](https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting#which-font) + +[SIL-RFN]:http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a + diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Bold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Bold.ttf new file mode 100644 index 0000000..4f9ff0b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Bold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-BoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-BoldItalic.ttf new file mode 100644 index 0000000..1e74a4e Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-BoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraBold.ttf new file mode 100644 index 0000000..234744f Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraBoldItalic.ttf new file mode 100644 index 0000000..de7b22b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraLight.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraLight.ttf new file mode 100644 index 0000000..25b658a Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraLight.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraLightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraLightItalic.ttf new file mode 100644 index 0000000..34f0105 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ExtraLightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Italic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Italic.ttf new file mode 100644 index 0000000..762102c Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Italic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Light.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Light.ttf new file mode 100644 index 0000000..5c22dab Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Light.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-LightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-LightItalic.ttf new file mode 100644 index 0000000..8af7e55 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-LightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Medium.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Medium.ttf new file mode 100644 index 0000000..2901fcd Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Medium.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-MediumItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-MediumItalic.ttf new file mode 100644 index 0000000..61d200f Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-MediumItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Regular.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Regular.ttf new file mode 100644 index 0000000..74ae073 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Regular.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-SemiBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-SemiBold.ttf new file mode 100644 index 0000000..9a9e9f0 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-SemiBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-SemiBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-SemiBoldItalic.ttf new file mode 100644 index 0000000..eb913ee Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-SemiBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Thin.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Thin.ttf new file mode 100644 index 0000000..7d165db Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-Thin.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ThinItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ThinItalic.ttf new file mode 100644 index 0000000..036fafd Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFont-ThinItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Bold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Bold.ttf new file mode 100644 index 0000000..0de7a26 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Bold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-BoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-BoldItalic.ttf new file mode 100644 index 0000000..1a95ff6 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-BoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraBold.ttf new file mode 100644 index 0000000..f3823f2 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraBoldItalic.ttf new file mode 100644 index 0000000..724e237 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraLight.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraLight.ttf new file mode 100644 index 0000000..a8604c3 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraLight.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraLightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraLightItalic.ttf new file mode 100644 index 0000000..ecca662 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ExtraLightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Italic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Italic.ttf new file mode 100644 index 0000000..ab85017 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Italic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Light.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Light.ttf new file mode 100644 index 0000000..b3e5c4b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Light.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-LightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-LightItalic.ttf new file mode 100644 index 0000000..687a47b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-LightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Medium.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Medium.ttf new file mode 100644 index 0000000..dafa7f5 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Medium.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-MediumItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-MediumItalic.ttf new file mode 100644 index 0000000..c7b8669 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-MediumItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Regular.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Regular.ttf new file mode 100644 index 0000000..bbe9d82 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Regular.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-SemiBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-SemiBold.ttf new file mode 100644 index 0000000..52df5b0 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-SemiBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-SemiBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-SemiBoldItalic.ttf new file mode 100644 index 0000000..faeb994 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-SemiBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Thin.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Thin.ttf new file mode 100644 index 0000000..2fb7955 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-Thin.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ThinItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ThinItalic.ttf new file mode 100644 index 0000000..8e741c7 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontMono-ThinItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Bold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Bold.ttf new file mode 100644 index 0000000..b22d8b9 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Bold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-BoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-BoldItalic.ttf new file mode 100644 index 0000000..95b9bb5 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-BoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraBold.ttf new file mode 100644 index 0000000..2979d32 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraBoldItalic.ttf new file mode 100644 index 0000000..68a9fee Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraLight.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraLight.ttf new file mode 100644 index 0000000..aa8d277 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraLight.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraLightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraLightItalic.ttf new file mode 100644 index 0000000..9aa4a4c Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ExtraLightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Italic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Italic.ttf new file mode 100644 index 0000000..a903cda Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Italic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Light.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Light.ttf new file mode 100644 index 0000000..521da68 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Light.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-LightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-LightItalic.ttf new file mode 100644 index 0000000..d0003c6 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-LightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Medium.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Medium.ttf new file mode 100644 index 0000000..9a3316b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Medium.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-MediumItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-MediumItalic.ttf new file mode 100644 index 0000000..387284e Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-MediumItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Regular.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Regular.ttf new file mode 100644 index 0000000..a8247ce Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Regular.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-SemiBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-SemiBold.ttf new file mode 100644 index 0000000..360c662 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-SemiBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-SemiBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-SemiBoldItalic.ttf new file mode 100644 index 0000000..e3b48e6 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-SemiBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Thin.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Thin.ttf new file mode 100644 index 0000000..d2feaaf Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-Thin.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ThinItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ThinItalic.ttf new file mode 100644 index 0000000..b651a18 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNLNerdFontPropo-ThinItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Bold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Bold.ttf new file mode 100644 index 0000000..10e8f6b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Bold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-BoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-BoldItalic.ttf new file mode 100644 index 0000000..ab0f135 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-BoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraBold.ttf new file mode 100644 index 0000000..84ed5b9 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraBoldItalic.ttf new file mode 100644 index 0000000..1f62640 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraLight.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraLight.ttf new file mode 100644 index 0000000..c0f9fa7 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraLight.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraLightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraLightItalic.ttf new file mode 100644 index 0000000..b94de77 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ExtraLightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Italic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Italic.ttf new file mode 100644 index 0000000..6950bc8 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Italic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Light.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Light.ttf new file mode 100644 index 0000000..915a3a0 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Light.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-LightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-LightItalic.ttf new file mode 100644 index 0000000..6843c2b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-LightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Medium.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Medium.ttf new file mode 100644 index 0000000..7d2d352 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Medium.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-MediumItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-MediumItalic.ttf new file mode 100644 index 0000000..02f7437 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-MediumItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Regular.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Regular.ttf new file mode 100644 index 0000000..8d19bd8 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Regular.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-SemiBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-SemiBold.ttf new file mode 100644 index 0000000..385d0b2 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-SemiBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-SemiBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-SemiBoldItalic.ttf new file mode 100644 index 0000000..fcc4e3b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-SemiBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Thin.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Thin.ttf new file mode 100644 index 0000000..de7a20d Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-Thin.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ThinItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ThinItalic.ttf new file mode 100644 index 0000000..44a2925 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFont-ThinItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Bold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Bold.ttf new file mode 100644 index 0000000..6cc8711 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Bold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-BoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-BoldItalic.ttf new file mode 100644 index 0000000..aa6d55d Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-BoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraBold.ttf new file mode 100644 index 0000000..7ee8022 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraBoldItalic.ttf new file mode 100644 index 0000000..e88282e Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraLight.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraLight.ttf new file mode 100644 index 0000000..cea1492 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraLight.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraLightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraLightItalic.ttf new file mode 100644 index 0000000..6588ae2 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ExtraLightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Italic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Italic.ttf new file mode 100644 index 0000000..279200e Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Italic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Light.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Light.ttf new file mode 100644 index 0000000..ca85ccd Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Light.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-LightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-LightItalic.ttf new file mode 100644 index 0000000..aa4da7f Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-LightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Medium.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Medium.ttf new file mode 100644 index 0000000..3af043a Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Medium.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-MediumItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-MediumItalic.ttf new file mode 100644 index 0000000..d7dd55b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-MediumItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Regular.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Regular.ttf new file mode 100644 index 0000000..bce727b Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Regular.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-SemiBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-SemiBold.ttf new file mode 100644 index 0000000..4101495 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-SemiBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-SemiBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-SemiBoldItalic.ttf new file mode 100644 index 0000000..f4eb1a9 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-SemiBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Thin.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Thin.ttf new file mode 100644 index 0000000..12cc2bb Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Thin.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ThinItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ThinItalic.ttf new file mode 100644 index 0000000..85f6bb8 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-ThinItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Bold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Bold.ttf new file mode 100644 index 0000000..e6509f3 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Bold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-BoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-BoldItalic.ttf new file mode 100644 index 0000000..5bcc6dd Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-BoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraBold.ttf new file mode 100644 index 0000000..a5f6608 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraBoldItalic.ttf new file mode 100644 index 0000000..4989d31 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraLight.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraLight.ttf new file mode 100644 index 0000000..5db42e8 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraLight.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraLightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraLightItalic.ttf new file mode 100644 index 0000000..74408fe Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ExtraLightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Italic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Italic.ttf new file mode 100644 index 0000000..a02b76e Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Italic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Light.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Light.ttf new file mode 100644 index 0000000..3eb6157 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Light.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-LightItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-LightItalic.ttf new file mode 100644 index 0000000..12409be Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-LightItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Medium.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Medium.ttf new file mode 100644 index 0000000..8d7c2ca Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Medium.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-MediumItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-MediumItalic.ttf new file mode 100644 index 0000000..a97f12a Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-MediumItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Regular.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Regular.ttf new file mode 100644 index 0000000..17bdbf6 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Regular.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-SemiBold.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-SemiBold.ttf new file mode 100644 index 0000000..45b2aa4 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-SemiBold.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-SemiBoldItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-SemiBoldItalic.ttf new file mode 100644 index 0000000..e325644 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-SemiBoldItalic.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Thin.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Thin.ttf new file mode 100644 index 0000000..6ba9128 Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-Thin.ttf differ diff --git a/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ThinItalic.ttf b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ThinItalic.ttf new file mode 100644 index 0000000..a9bd86a Binary files /dev/null and b/fonts/JetBrainsMono/JetBrainsMonoNerdFontPropo-ThinItalic.ttf differ diff --git a/fonts/JetBrainsMono/OFL.txt b/fonts/JetBrainsMono/OFL.txt new file mode 100644 index 0000000..8bee414 --- /dev/null +++ b/fonts/JetBrainsMono/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/JetBrainsMono/README.md b/fonts/JetBrainsMono/README.md new file mode 100644 index 0000000..5e4c39d --- /dev/null +++ b/fonts/JetBrainsMono/README.md @@ -0,0 +1,48 @@ +# Nerd Fonts + +This is an archived font from the Nerd Fonts release v3.2.0. + +For more information see: +* https://github.com/ryanoasis/nerd-fonts/ +* https://github.com/ryanoasis/nerd-fonts/releases/latest/ + +# JetBrains Mono + +JetBrains Mono: a typeface made for developers + +For more information have a look at the upstream website: https://github.com/JetBrains/JetBrainsMono + +Version: 2.304 + +## Which font? + +### TL;DR + +* Pick your font family: + * If you are limited to monospaced fonts (because of your terminal, etc) then pick a font with `Nerd Font Mono` (or `NFM`). + * If you want to have bigger icons (usually around 1.5 normal letters wide) pick a font without `Mono` i.e. `Nerd Font` (or `NF`). Most terminals support this, but ymmv. + * If you work in a proportional context (GUI elements or edit a presentation etc) pick a font with `Nerd Font Propo` (or `NFP`). + +### Ligatures + +Ligatures are generally preserved in the patched fonts. +Nerd Fonts `v2.0.0` had no ligatures in the `Nerd Font Mono` fonts, this has been dropped with `v2.1.0`. +If you have a ligature-aware terminal and don't want ligatures you can (usually) disable them in the terminal settings. + +### Explanation + +Once you narrow down your font choice of family (`Droid Sans`, `Inconsolata`, etc) and style (`bold`, `italic`, etc) you have 2 main choices: + +#### `Option 1: Download already patched font` + + * For a stable version download a font package from the [release page](https://github.com/ryanoasis/nerd-fonts/releases) + * Or download the development version from the folders here + +#### `Option 2: Patch your own font` + + * Patch your own variations with the various options provided by the font patcher (i.e. not include all symbols for smaller font size) + +For more information see: [The FAQ](https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting#which-font) + +[SIL-RFN]:http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a + diff --git a/git/git-truncate.sh b/git/git-truncate.sh new file mode 100755 index 0000000..eb56d39 --- /dev/null +++ b/git/git-truncate.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Usage: +# ./git-truncate.sh SHA1 +# Removes all the history prior to commit "SHA1" + +if [[ -z $1 ]]; then + echo "$0 " + exit 1 +fi + +git checkout --orphan temp $1 +git commit -m "Truncated history of git repo" +git rebase --onto temp $1 master +git branch -D temp + +# Optional, may take awhile +git prune --progress +git gc --aggressive diff --git a/git/gitconfig.template b/git/gitconfig.template new file mode 100644 index 0000000..a3c053c --- /dev/null +++ b/git/gitconfig.template @@ -0,0 +1,98 @@ +# vim: set ft=gitconfig: + +[core] + excludesfile = ~/.gitignore + attributesfile = ~/.gitattributes + hooksPath = ~/.git/hooks + +[user] + name = __USERNAME__ + email = __MAIL__ + +[gitreview] + username = __USERNAME__ + +[credential] + helper = store + +[branch] + autosetupmerge = true + autosetuprebase = always + +[diff] + ignoreSubmodules = dirty + +[color] + ui = auto + +[color "branch"] + current = yellow reverse + local = yellow + remote = green + +[color "diff"] + meta = yellow bold + frag = magenta bold + old = red bold + new = green bold + whitespace = red reverse + +[color "status"] + added = yellow + changed = green + untracked = cyan + +[push] + default = current + followTags = false + +[merge] + # Include summaries of merged commits in newly created merge commit messages + log = true + +[apply] + # Detect whitespace errors when applying a patch + whitespace = fix + +[stash] + showPatch = true + +[help] + autocorrect = 0 + +[trailer "sign"] + key = "Signed-off-by: " + command = 'echo "$(git config user.name) <$(git config user.email)>"' + ifexists = doNothing + ifmissing = doNothing + +[alias] + aliases = config --get-regexp alias + br = branch -vv + l = log --stat + lol = log --graph --decorate --pretty=oneline --abbrev-commit + ls = ls-files + st = status --short + ca = commit -a --amend --reuse-message=HEAD + # show current tracking remote/branch + trackshow = !git rev-parse --abbrev-ref --symbolic-full-name @{u} + # set track to remote/branch + trackset = "!f() { rm=${1:-origin}; b=$(git symbolic-ref --short HEAD); git branch -u $rm/$b; }; f" + # set track to remote/dev/name/branch + tracksetdev = "!f() { rm=${1:-origin}; b=dev/__USERNAME_BRANCH__/$(git symbolic-ref --short HEAD); git branch -u $rm/$b; }; f" + # push current branch to remote/target_branch + pushr = "!f() { target=${1:-$(git trackshow)}; shift; r=${target%/*}; rb=${target##*/}; b=$(git symbolic-ref --short HEAD); git push --set-upstream $r $b:$rb $*; }; f" + # push to current branch to remote/dev/name/branch + pushdev = "!f() { echo $1 | grep -Eq '^[a-z0-9]+$' && rm=$1 && shift; b=$(git symbolic-ref --short HEAD); git push --set-upstream ${rm:-origin} $b:dev/__USERNAME_BRANCH__/$b $*; }; f" + pick = cherry-pick -s -x --allow-empty + retag = "!r() { git tag -d $1 && git push origin :refs/tags/$0 && git tag $1; }; r" + # Remove branches that have already been merged:with + dm = "!git branch --merged | grep -v '\\*' | xargs -n 1 git branch -d" + pullpush = !git pull --rebase && git push + # List contributors with number of commits + contributors = shortlog --summary --numbered + # https://stackoverflow.com/questions/3161204/how-to-find-the-nearest-parent-of-a-git-branch + base = "!f() { git show-branch -a 2> /dev/null | grep '\\*' | grep -v $(git rev-parse --abbrev-ref HEAD) | head -n1 | sed -e 's/.*\\[\\(.*\\)\\].*/\\1/' -e 's/[\\^~].*//' -e 's,origin/,,'; }; f" + root = "rev-parse --show-toplevel" + ref = "ls-remote --ref" + log-merge = "!f() { git log --stat $1^..$1; }; f" diff --git a/git/gitignore b/git/gitignore new file mode 100644 index 0000000..4797a35 --- /dev/null +++ b/git/gitignore @@ -0,0 +1,7 @@ +*.gutentags +*.gutentags.* +.project/ +.python-version +pyrightconfig.json +pyproject.toml +.git-hooks/* diff --git a/git/hooks/commit-msg b/git/hooks/commit-msg new file mode 100755 index 0000000..2132508 --- /dev/null +++ b/git/hooks/commit-msg @@ -0,0 +1,84 @@ +#!/bin/sh +# From Gerrit Code Review 3.6.1 +# +# Part of Gerrit Code Review (https://www.gerritcodereview.com/) +# +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -u + +root=$(git rev-parse --show-toplevel 2> /dev/null) +[ -f $root/.gitreview ] || exit 0 + +# avoid [[ which is not POSIX sh. +if test "$#" != 1 ; then + echo "$0 requires an argument." + exit 1 +fi + +if test ! -f "$1" ; then + echo "file does not exist: $1" + exit 1 +fi + +# Do not create a change id if requested +if test "false" = "$(git config --bool --get gerrit.createChangeId)" ; then + exit 0 +fi + +if git rev-parse --verify HEAD >/dev/null 2>&1; then + refhash="$(git rev-parse HEAD)" +else + refhash="$(git hash-object -t tree /dev/null)" +fi + +random=$({ git var GIT_COMMITTER_IDENT ; echo "$refhash" ; cat "$1"; } | git hash-object --stdin) +dest="$1.tmp.${random}" + +trap 'rm -f "${dest}"' EXIT + +if ! git stripspace --strip-comments < "$1" > "${dest}" ; then + echo "cannot strip comments from $1" + exit 1 +fi + +if test ! -s "${dest}" ; then + echo "file is empty: $1" + exit 1 +fi + +reviewurl="$(git config --get gerrit.reviewUrl)" +if test -n "${reviewurl}" ; then + if ! git interpret-trailers --parse < "$1" | grep -q '^Link:.*/id/I[0-9a-f]\{40\}$' ; then + if ! git interpret-trailers \ + --trailer "Link: ${reviewurl%/}/id/I${random}" < "$1" > "${dest}" ; then + echo "cannot insert link footer in $1" + exit 1 + fi + fi +else + # Avoid the --in-place option which only appeared in Git 2.8 + # Avoid the --if-exists option which only appeared in Git 2.15 + if ! git -c trailer.ifexists=doNothing interpret-trailers \ + --trailer "Change-Id: I${random}" < "$1" > "${dest}" ; then + echo "cannot insert change-id line in $1" + exit 1 + fi +fi + +if ! mv "${dest}" "$1" ; then + echo "cannot mv ${dest} to $1" + exit 1 +fi diff --git a/git/hooks/prepare-commit-msg b/git/hooks/prepare-commit-msg new file mode 100755 index 0000000..97f8d04 --- /dev/null +++ b/git/hooks/prepare-commit-msg @@ -0,0 +1,25 @@ +#!/bin/bash + +branch=$(git symbolic-ref --short HEAD 2> /dev/null) +issue=$(echo $branch | grep -Po '^\w+-\d+') + +function is_openstack_repo { + root=$(git rev-parse --show-toplevel 2> /dev/null) + if [[ -f $root/.gitreview ]]; then + return 0 + else + return 1 + fi +} + +if [[ -n $issue ]]; then + if cat $1 | grep -Pq '^(Issue|Ovh-Related-Task): \w+-\d+'; then + exit 0 + else + if is_openstack_repo; then + echo -e "\nOvh-Related-Task: $issue" >> $1 + else + echo -e "\nIssue: $issue" >> $1 + fi + fi +fi diff --git a/icons/Paper/16x16/apps/0ad.png b/icons/Paper/16x16/apps/0ad.png new file mode 100644 index 0000000..73da64d Binary files /dev/null and b/icons/Paper/16x16/apps/0ad.png differ diff --git a/icons/Paper/16x16/apps/10B4_steam.0.png b/icons/Paper/16x16/apps/10B4_steam.0.png new file mode 120000 index 0000000..e0acf2e --- /dev/null +++ b/icons/Paper/16x16/apps/10B4_steam.0.png @@ -0,0 +1 @@ +steam.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/1CD8_rundll32.0.png b/icons/Paper/16x16/apps/1CD8_rundll32.0.png new file mode 120000 index 0000000..052f28e --- /dev/null +++ b/icons/Paper/16x16/apps/1CD8_rundll32.0.png @@ -0,0 +1 @@ +wine.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/1password.png b/icons/Paper/16x16/apps/1password.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/1password.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/2048.png b/icons/Paper/16x16/apps/2048.png new file mode 120000 index 0000000..bfc3c04 --- /dev/null +++ b/icons/Paper/16x16/apps/2048.png @@ -0,0 +1 @@ +gnome-2048.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/4137_winhlp32.0.png b/icons/Paper/16x16/apps/4137_winhlp32.0.png new file mode 120000 index 0000000..2858bb9 --- /dev/null +++ b/icons/Paper/16x16/apps/4137_winhlp32.0.png @@ -0,0 +1 @@ +wine-help.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/7765_winebrowser.0.png b/icons/Paper/16x16/apps/7765_winebrowser.0.png new file mode 120000 index 0000000..052f28e --- /dev/null +++ b/icons/Paper/16x16/apps/7765_winebrowser.0.png @@ -0,0 +1 @@ +wine.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/7z.png b/icons/Paper/16x16/apps/7z.png new file mode 120000 index 0000000..47fb1da --- /dev/null +++ b/icons/Paper/16x16/apps/7z.png @@ -0,0 +1 @@ +7zip.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/7zip.png b/icons/Paper/16x16/apps/7zip.png new file mode 100644 index 0000000..a2ad0d7 Binary files /dev/null and b/icons/Paper/16x16/apps/7zip.png differ diff --git a/icons/Paper/16x16/apps/A35F_hh.0.png b/icons/Paper/16x16/apps/A35F_hh.0.png new file mode 120000 index 0000000..052f28e --- /dev/null +++ b/icons/Paper/16x16/apps/A35F_hh.0.png @@ -0,0 +1 @@ +wine.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/AdobeReader.png b/icons/Paper/16x16/apps/AdobeReader.png new file mode 120000 index 0000000..b0c3fc7 --- /dev/null +++ b/icons/Paper/16x16/apps/AdobeReader.png @@ -0,0 +1 @@ +adobe-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/AdobeReader10.png b/icons/Paper/16x16/apps/AdobeReader10.png new file mode 120000 index 0000000..b0c3fc7 --- /dev/null +++ b/icons/Paper/16x16/apps/AdobeReader10.png @@ -0,0 +1 @@ +adobe-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/AdobeReader11.png b/icons/Paper/16x16/apps/AdobeReader11.png new file mode 120000 index 0000000..b0c3fc7 --- /dev/null +++ b/icons/Paper/16x16/apps/AdobeReader11.png @@ -0,0 +1 @@ +adobe-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/AdobeReader12.png b/icons/Paper/16x16/apps/AdobeReader12.png new file mode 120000 index 0000000..b0c3fc7 --- /dev/null +++ b/icons/Paper/16x16/apps/AdobeReader12.png @@ -0,0 +1 @@ +adobe-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/AdobeReader8.png b/icons/Paper/16x16/apps/AdobeReader8.png new file mode 120000 index 0000000..b0c3fc7 --- /dev/null +++ b/icons/Paper/16x16/apps/AdobeReader8.png @@ -0,0 +1 @@ +adobe-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/AdobeReader9.png b/icons/Paper/16x16/apps/AdobeReader9.png new file mode 120000 index 0000000..b0c3fc7 --- /dev/null +++ b/icons/Paper/16x16/apps/AdobeReader9.png @@ -0,0 +1 @@ +adobe-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/Blender.png b/icons/Paper/16x16/apps/Blender.png new file mode 120000 index 0000000..82db58b --- /dev/null +++ b/icons/Paper/16x16/apps/Blender.png @@ -0,0 +1 @@ +blender.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/CMakeSetup.png b/icons/Paper/16x16/apps/CMakeSetup.png new file mode 120000 index 0000000..9a0227d --- /dev/null +++ b/icons/Paper/16x16/apps/CMakeSetup.png @@ -0,0 +1 @@ +cmake.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/Etermutilities-terminal.png b/icons/Paper/16x16/apps/Etermutilities-terminal.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/Etermutilities-terminal.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/GnomeBaker.png b/icons/Paper/16x16/apps/GnomeBaker.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/GnomeBaker.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/MerProject-qtcreator.png b/icons/Paper/16x16/apps/MerProject-qtcreator.png new file mode 120000 index 0000000..f803d54 --- /dev/null +++ b/icons/Paper/16x16/apps/MerProject-qtcreator.png @@ -0,0 +1 @@ +qt-creator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/NoMachine.png b/icons/Paper/16x16/apps/NoMachine.png new file mode 120000 index 0000000..77d7ff0 --- /dev/null +++ b/icons/Paper/16x16/apps/NoMachine.png @@ -0,0 +1 @@ +remote-desktop.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/Pinta_icon.png b/icons/Paper/16x16/apps/Pinta_icon.png new file mode 120000 index 0000000..276eefe --- /dev/null +++ b/icons/Paper/16x16/apps/Pinta_icon.png @@ -0,0 +1 @@ +accessories-paint.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/QtIcon.png b/icons/Paper/16x16/apps/QtIcon.png new file mode 120000 index 0000000..2492cd1 --- /dev/null +++ b/icons/Paper/16x16/apps/QtIcon.png @@ -0,0 +1 @@ +qt-logo.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/QtProject-assistant.png b/icons/Paper/16x16/apps/QtProject-assistant.png new file mode 120000 index 0000000..4074982 --- /dev/null +++ b/icons/Paper/16x16/apps/QtProject-assistant.png @@ -0,0 +1 @@ +qt-assistant.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/QtProject-designer.png b/icons/Paper/16x16/apps/QtProject-designer.png new file mode 120000 index 0000000..3db908c --- /dev/null +++ b/icons/Paper/16x16/apps/QtProject-designer.png @@ -0,0 +1 @@ +qt-designer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/QtProject-qtcreator-qt5.png b/icons/Paper/16x16/apps/QtProject-qtcreator-qt5.png new file mode 120000 index 0000000..f803d54 --- /dev/null +++ b/icons/Paper/16x16/apps/QtProject-qtcreator-qt5.png @@ -0,0 +1 @@ +qt-creator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/QtProject-qtcreator.png b/icons/Paper/16x16/apps/QtProject-qtcreator.png new file mode 120000 index 0000000..f803d54 --- /dev/null +++ b/icons/Paper/16x16/apps/QtProject-qtcreator.png @@ -0,0 +1 @@ +qt-creator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/Sci48M.png b/icons/Paper/16x16/apps/Sci48M.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/Sci48M.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/Spotify.png b/icons/Paper/16x16/apps/Spotify.png new file mode 120000 index 0000000..b153da3 --- /dev/null +++ b/icons/Paper/16x16/apps/Spotify.png @@ -0,0 +1 @@ +spotify.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/Thunar.png b/icons/Paper/16x16/apps/Thunar.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/Thunar.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/VBox.png b/icons/Paper/16x16/apps/VBox.png new file mode 120000 index 0000000..3e6bbd9 --- /dev/null +++ b/icons/Paper/16x16/apps/VBox.png @@ -0,0 +1 @@ +virtualbox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/XMind.png b/icons/Paper/16x16/apps/XMind.png new file mode 120000 index 0000000..f570726 --- /dev/null +++ b/icons/Paper/16x16/apps/XMind.png @@ -0,0 +1 @@ +xmind.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/abrowser.png b/icons/Paper/16x16/apps/abrowser.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/abrowser.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/abrt.png b/icons/Paper/16x16/apps/abrt.png new file mode 120000 index 0000000..0917c32 --- /dev/null +++ b/icons/Paper/16x16/apps/abrt.png @@ -0,0 +1 @@ +system-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/access.png b/icons/Paper/16x16/apps/access.png new file mode 120000 index 0000000..124f56b --- /dev/null +++ b/icons/Paper/16x16/apps/access.png @@ -0,0 +1 @@ +preferences-desktop-accessibility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/accessibility-directory.png b/icons/Paper/16x16/apps/accessibility-directory.png new file mode 120000 index 0000000..124f56b --- /dev/null +++ b/icons/Paper/16x16/apps/accessibility-directory.png @@ -0,0 +1 @@ +preferences-desktop-accessibility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/accessibility.png b/icons/Paper/16x16/apps/accessibility.png new file mode 120000 index 0000000..124f56b --- /dev/null +++ b/icons/Paper/16x16/apps/accessibility.png @@ -0,0 +1 @@ +preferences-desktop-accessibility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/accessibility_section.png b/icons/Paper/16x16/apps/accessibility_section.png new file mode 120000 index 0000000..124f56b --- /dev/null +++ b/icons/Paper/16x16/apps/accessibility_section.png @@ -0,0 +1 @@ +preferences-desktop-accessibility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/accessories-calculator.png b/icons/Paper/16x16/apps/accessories-calculator.png new file mode 100644 index 0000000..2dcb94e Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-calculator.png differ diff --git a/icons/Paper/16x16/apps/accessories-camera.png b/icons/Paper/16x16/apps/accessories-camera.png new file mode 100644 index 0000000..217ccf6 Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-camera.png differ diff --git a/icons/Paper/16x16/apps/accessories-character-map.png b/icons/Paper/16x16/apps/accessories-character-map.png new file mode 100644 index 0000000..f75bc33 Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-character-map.png differ diff --git a/icons/Paper/16x16/apps/accessories-clipboard.png b/icons/Paper/16x16/apps/accessories-clipboard.png new file mode 100644 index 0000000..20a48a2 Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-clipboard.png differ diff --git a/icons/Paper/16x16/apps/accessories-clock.png b/icons/Paper/16x16/apps/accessories-clock.png new file mode 100644 index 0000000..dab46fe Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-clock.png differ diff --git a/icons/Paper/16x16/apps/accessories-dictionary.png b/icons/Paper/16x16/apps/accessories-dictionary.png new file mode 100644 index 0000000..5ba6d14 Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-dictionary.png differ diff --git a/icons/Paper/16x16/apps/accessories-document-viewer.png b/icons/Paper/16x16/apps/accessories-document-viewer.png new file mode 100644 index 0000000..3c89811 Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-document-viewer.png differ diff --git a/icons/Paper/16x16/apps/accessories-ebook-reader.png b/icons/Paper/16x16/apps/accessories-ebook-reader.png new file mode 100644 index 0000000..8dd0ced Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-ebook-reader.png differ diff --git a/icons/Paper/16x16/apps/accessories-maps.png b/icons/Paper/16x16/apps/accessories-maps.png new file mode 100644 index 0000000..92967ef Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-maps.png differ diff --git a/icons/Paper/16x16/apps/accessories-notes.png b/icons/Paper/16x16/apps/accessories-notes.png new file mode 100644 index 0000000..df94f6e Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-notes.png differ diff --git a/icons/Paper/16x16/apps/accessories-paint.png b/icons/Paper/16x16/apps/accessories-paint.png new file mode 100644 index 0000000..347419b Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-paint.png differ diff --git a/icons/Paper/16x16/apps/accessories-screenshot.png b/icons/Paper/16x16/apps/accessories-screenshot.png new file mode 100644 index 0000000..9b4eca3 Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-screenshot.png differ diff --git a/icons/Paper/16x16/apps/accessories-text-editor.png b/icons/Paper/16x16/apps/accessories-text-editor.png new file mode 100644 index 0000000..aafa128 Binary files /dev/null and b/icons/Paper/16x16/apps/accessories-text-editor.png differ diff --git a/icons/Paper/16x16/apps/acroread.png b/icons/Paper/16x16/apps/acroread.png new file mode 120000 index 0000000..b0c3fc7 --- /dev/null +++ b/icons/Paper/16x16/apps/acroread.png @@ -0,0 +1 @@ +adobe-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/activity-log-manager.png b/icons/Paper/16x16/apps/activity-log-manager.png new file mode 120000 index 0000000..ac60671 --- /dev/null +++ b/icons/Paper/16x16/apps/activity-log-manager.png @@ -0,0 +1 @@ +preferences-system-privacy.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/addressbook.png b/icons/Paper/16x16/apps/addressbook.png new file mode 120000 index 0000000..cf4cbc8 --- /dev/null +++ b/icons/Paper/16x16/apps/addressbook.png @@ -0,0 +1 @@ +office-address-book.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/adobe-flash.png b/icons/Paper/16x16/apps/adobe-flash.png new file mode 100644 index 0000000..558a893 Binary files /dev/null and b/icons/Paper/16x16/apps/adobe-flash.png differ diff --git a/icons/Paper/16x16/apps/adobe-flashplayer.png b/icons/Paper/16x16/apps/adobe-flashplayer.png new file mode 120000 index 0000000..ec1a704 --- /dev/null +++ b/icons/Paper/16x16/apps/adobe-flashplayer.png @@ -0,0 +1 @@ +adobe-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/adobe-reader.png b/icons/Paper/16x16/apps/adobe-reader.png new file mode 100644 index 0000000..23df805 Binary files /dev/null and b/icons/Paper/16x16/apps/adobe-reader.png differ diff --git a/icons/Paper/16x16/apps/adobeflashplugin.png b/icons/Paper/16x16/apps/adobeflashplugin.png new file mode 120000 index 0000000..ec1a704 --- /dev/null +++ b/icons/Paper/16x16/apps/adobeflashplugin.png @@ -0,0 +1 @@ +adobe-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/aisleriot.png b/icons/Paper/16x16/apps/aisleriot.png new file mode 120000 index 0000000..41b8968 --- /dev/null +++ b/icons/Paper/16x16/apps/aisleriot.png @@ -0,0 +1 @@ +gnome-aisleriot.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/akregator.png b/icons/Paper/16x16/apps/akregator.png new file mode 120000 index 0000000..76dfc2c --- /dev/null +++ b/icons/Paper/16x16/apps/akregator.png @@ -0,0 +1 @@ +internet-news-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/alarm-clock.png b/icons/Paper/16x16/apps/alarm-clock.png new file mode 120000 index 0000000..fe2255b --- /dev/null +++ b/icons/Paper/16x16/apps/alarm-clock.png @@ -0,0 +1 @@ +accessories-clock.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/amarok.png b/icons/Paper/16x16/apps/amarok.png new file mode 100644 index 0000000..f49ca8a Binary files /dev/null and b/icons/Paper/16x16/apps/amarok.png differ diff --git a/icons/Paper/16x16/apps/amarok2.png b/icons/Paper/16x16/apps/amarok2.png new file mode 120000 index 0000000..26e9414 --- /dev/null +++ b/icons/Paper/16x16/apps/amarok2.png @@ -0,0 +1 @@ +amarok.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/amarok_icon.png b/icons/Paper/16x16/apps/amarok_icon.png new file mode 120000 index 0000000..26e9414 --- /dev/null +++ b/icons/Paper/16x16/apps/amarok_icon.png @@ -0,0 +1 @@ +amarok.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/anaconda.png b/icons/Paper/16x16/apps/anaconda.png new file mode 120000 index 0000000..acb8ebf --- /dev/null +++ b/icons/Paper/16x16/apps/anaconda.png @@ -0,0 +1 @@ +system-os-installer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/android-sdk.png b/icons/Paper/16x16/apps/android-sdk.png new file mode 100644 index 0000000..e06b6c2 Binary files /dev/null and b/icons/Paper/16x16/apps/android-sdk.png differ diff --git a/icons/Paper/16x16/apps/android-studio.png b/icons/Paper/16x16/apps/android-studio.png new file mode 120000 index 0000000..228bbe4 --- /dev/null +++ b/icons/Paper/16x16/apps/android-studio.png @@ -0,0 +1 @@ +android-sdk.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/anki.png b/icons/Paper/16x16/apps/anki.png new file mode 100644 index 0000000..eae743b Binary files /dev/null and b/icons/Paper/16x16/apps/anki.png differ diff --git a/icons/Paper/16x16/apps/antimicro.png b/icons/Paper/16x16/apps/antimicro.png new file mode 100644 index 0000000..79b431b Binary files /dev/null and b/icons/Paper/16x16/apps/antimicro.png differ diff --git a/icons/Paper/16x16/apps/app-launcher.png b/icons/Paper/16x16/apps/app-launcher.png new file mode 100644 index 0000000..4157607 Binary files /dev/null and b/icons/Paper/16x16/apps/app-launcher.png differ diff --git a/icons/Paper/16x16/apps/apper.png b/icons/Paper/16x16/apps/apper.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/apper.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/appgrid.png b/icons/Paper/16x16/apps/appgrid.png new file mode 120000 index 0000000..29afd7d --- /dev/null +++ b/icons/Paper/16x16/apps/appgrid.png @@ -0,0 +1 @@ +system-software-install.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/applets-screenshooter.png b/icons/Paper/16x16/apps/applets-screenshooter.png new file mode 120000 index 0000000..8bc999c --- /dev/null +++ b/icons/Paper/16x16/apps/applets-screenshooter.png @@ -0,0 +1 @@ +accessories-screenshot.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/application-x-wine-extension-its.png b/icons/Paper/16x16/apps/application-x-wine-extension-its.png new file mode 120000 index 0000000..052f28e --- /dev/null +++ b/icons/Paper/16x16/apps/application-x-wine-extension-its.png @@ -0,0 +1 @@ +wine.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/apport-gtk2.png b/icons/Paper/16x16/apps/apport-gtk2.png new file mode 120000 index 0000000..0917c32 --- /dev/null +++ b/icons/Paper/16x16/apps/apport-gtk2.png @@ -0,0 +1 @@ +system-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/apport.png b/icons/Paper/16x16/apps/apport.png new file mode 120000 index 0000000..0917c32 --- /dev/null +++ b/icons/Paper/16x16/apps/apport.png @@ -0,0 +1 @@ +system-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/aptdaemon-download.png b/icons/Paper/16x16/apps/aptdaemon-download.png new file mode 120000 index 0000000..29afd7d --- /dev/null +++ b/icons/Paper/16x16/apps/aptdaemon-download.png @@ -0,0 +1 @@ +system-software-install.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/aptdaemon-update-cache.png b/icons/Paper/16x16/apps/aptdaemon-update-cache.png new file mode 120000 index 0000000..de4b456 --- /dev/null +++ b/icons/Paper/16x16/apps/aptdaemon-update-cache.png @@ -0,0 +1 @@ +system-software-update.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/aptdaemon-upgrade.png b/icons/Paper/16x16/apps/aptdaemon-upgrade.png new file mode 120000 index 0000000..de4b456 --- /dev/null +++ b/icons/Paper/16x16/apps/aptdaemon-upgrade.png @@ -0,0 +1 @@ +system-software-update.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/aptdaemon-working.png b/icons/Paper/16x16/apps/aptdaemon-working.png new file mode 120000 index 0000000..29afd7d --- /dev/null +++ b/icons/Paper/16x16/apps/aptdaemon-working.png @@ -0,0 +1 @@ +system-software-install.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/aptik-gtk.png b/icons/Paper/16x16/apps/aptik-gtk.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/aptik-gtk.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/aptik.png b/icons/Paper/16x16/apps/aptik.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/aptik.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/archive-manager.png b/icons/Paper/16x16/apps/archive-manager.png new file mode 100644 index 0000000..f7ccfb8 Binary files /dev/null and b/icons/Paper/16x16/apps/archive-manager.png differ diff --git a/icons/Paper/16x16/apps/archivemanager.png b/icons/Paper/16x16/apps/archivemanager.png new file mode 120000 index 0000000..cf7079d --- /dev/null +++ b/icons/Paper/16x16/apps/archivemanager.png @@ -0,0 +1 @@ +archive-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/arduino-ide.png b/icons/Paper/16x16/apps/arduino-ide.png new file mode 120000 index 0000000..e81fd7e --- /dev/null +++ b/icons/Paper/16x16/apps/arduino-ide.png @@ -0,0 +1 @@ +arduino.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/arduino.png b/icons/Paper/16x16/apps/arduino.png new file mode 100644 index 0000000..f8272f6 Binary files /dev/null and b/icons/Paper/16x16/apps/arduino.png differ diff --git a/icons/Paper/16x16/apps/ark.png b/icons/Paper/16x16/apps/ark.png new file mode 120000 index 0000000..cf7079d --- /dev/null +++ b/icons/Paper/16x16/apps/ark.png @@ -0,0 +1 @@ +archive-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/artha.png b/icons/Paper/16x16/apps/artha.png new file mode 120000 index 0000000..eb21301 --- /dev/null +++ b/icons/Paper/16x16/apps/artha.png @@ -0,0 +1 @@ +accessories-dictionary.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/arts.png b/icons/Paper/16x16/apps/arts.png new file mode 120000 index 0000000..fbdfcf6 --- /dev/null +++ b/icons/Paper/16x16/apps/arts.png @@ -0,0 +1 @@ +multimedia-volume-control.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/asounder.png b/icons/Paper/16x16/apps/asounder.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/asounder.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/assistant-qt4.png b/icons/Paper/16x16/apps/assistant-qt4.png new file mode 120000 index 0000000..4074982 --- /dev/null +++ b/icons/Paper/16x16/apps/assistant-qt4.png @@ -0,0 +1 @@ +qt-assistant.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/assistant.png b/icons/Paper/16x16/apps/assistant.png new file mode 120000 index 0000000..4074982 --- /dev/null +++ b/icons/Paper/16x16/apps/assistant.png @@ -0,0 +1 @@ +qt-assistant.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/asunder.png b/icons/Paper/16x16/apps/asunder.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/asunder.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/athena.png b/icons/Paper/16x16/apps/athena.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/athena.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/atom.png b/icons/Paper/16x16/apps/atom.png new file mode 100644 index 0000000..a7b339a Binary files /dev/null and b/icons/Paper/16x16/apps/atom.png differ diff --git a/icons/Paper/16x16/apps/atril.png b/icons/Paper/16x16/apps/atril.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/atril.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/audacious.png b/icons/Paper/16x16/apps/audacious.png new file mode 100644 index 0000000..37a5432 Binary files /dev/null and b/icons/Paper/16x16/apps/audacious.png differ diff --git a/icons/Paper/16x16/apps/audacity.png b/icons/Paper/16x16/apps/audacity.png new file mode 100644 index 0000000..4e62eae Binary files /dev/null and b/icons/Paper/16x16/apps/audacity.png differ diff --git a/icons/Paper/16x16/apps/audex.png b/icons/Paper/16x16/apps/audex.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/audex.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/audience.png b/icons/Paper/16x16/apps/audience.png new file mode 120000 index 0000000..5342b49 --- /dev/null +++ b/icons/Paper/16x16/apps/audience.png @@ -0,0 +1 @@ +multimedia-video-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/audio-recorder.png b/icons/Paper/16x16/apps/audio-recorder.png new file mode 120000 index 0000000..dfb50aa --- /dev/null +++ b/icons/Paper/16x16/apps/audio-recorder.png @@ -0,0 +1 @@ +sound-recorder.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/authy.png b/icons/Paper/16x16/apps/authy.png new file mode 100644 index 0000000..55cc133 Binary files /dev/null and b/icons/Paper/16x16/apps/authy.png differ diff --git a/icons/Paper/16x16/apps/avidemux.png b/icons/Paper/16x16/apps/avidemux.png new file mode 120000 index 0000000..617144d --- /dev/null +++ b/icons/Paper/16x16/apps/avidemux.png @@ -0,0 +1 @@ +video-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ax-applet.png b/icons/Paper/16x16/apps/ax-applet.png new file mode 120000 index 0000000..124f56b --- /dev/null +++ b/icons/Paper/16x16/apps/ax-applet.png @@ -0,0 +1 @@ +preferences-desktop-accessibility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/background.png b/icons/Paper/16x16/apps/background.png new file mode 120000 index 0000000..a1e03ef --- /dev/null +++ b/icons/Paper/16x16/apps/background.png @@ -0,0 +1 @@ +preferences-desktop-wallpaper.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/baloo.png b/icons/Paper/16x16/apps/baloo.png new file mode 120000 index 0000000..22c813d --- /dev/null +++ b/icons/Paper/16x16/apps/baloo.png @@ -0,0 +1 @@ +preferences-system-search.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/banshee-1.png b/icons/Paper/16x16/apps/banshee-1.png new file mode 120000 index 0000000..aeec50b --- /dev/null +++ b/icons/Paper/16x16/apps/banshee-1.png @@ -0,0 +1 @@ +banshee.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/banshee.png b/icons/Paper/16x16/apps/banshee.png new file mode 100644 index 0000000..f2369df Binary files /dev/null and b/icons/Paper/16x16/apps/banshee.png differ diff --git a/icons/Paper/16x16/apps/baobab.png b/icons/Paper/16x16/apps/baobab.png new file mode 120000 index 0000000..3c844fb --- /dev/null +++ b/icons/Paper/16x16/apps/baobab.png @@ -0,0 +1 @@ +disk-usage-analyzer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bash.png b/icons/Paper/16x16/apps/bash.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/bash.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/basket.png b/icons/Paper/16x16/apps/basket.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/basket.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bijiben.png b/icons/Paper/16x16/apps/bijiben.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/bijiben.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bino.png b/icons/Paper/16x16/apps/bino.png new file mode 120000 index 0000000..5342b49 --- /dev/null +++ b/icons/Paper/16x16/apps/bino.png @@ -0,0 +1 @@ +multimedia-video-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/birdie.png b/icons/Paper/16x16/apps/birdie.png new file mode 100644 index 0000000..0d46ef3 Binary files /dev/null and b/icons/Paper/16x16/apps/birdie.png differ diff --git a/icons/Paper/16x16/apps/bitcoin.png b/icons/Paper/16x16/apps/bitcoin.png new file mode 100644 index 0000000..f3659a6 Binary files /dev/null and b/icons/Paper/16x16/apps/bitcoin.png differ diff --git a/icons/Paper/16x16/apps/blam.png b/icons/Paper/16x16/apps/blam.png new file mode 120000 index 0000000..76dfc2c --- /dev/null +++ b/icons/Paper/16x16/apps/blam.png @@ -0,0 +1 @@ +internet-news-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bleachbit.png b/icons/Paper/16x16/apps/bleachbit.png new file mode 100644 index 0000000..596bea6 Binary files /dev/null and b/icons/Paper/16x16/apps/bleachbit.png differ diff --git a/icons/Paper/16x16/apps/blender.png b/icons/Paper/16x16/apps/blender.png new file mode 100644 index 0000000..cbca4e6 Binary files /dev/null and b/icons/Paper/16x16/apps/blender.png differ diff --git a/icons/Paper/16x16/apps/blueman.png b/icons/Paper/16x16/apps/blueman.png new file mode 120000 index 0000000..642bfe1 --- /dev/null +++ b/icons/Paper/16x16/apps/blueman.png @@ -0,0 +1 @@ +preferences-system-bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/blueradio-48.png b/icons/Paper/16x16/apps/blueradio-48.png new file mode 120000 index 0000000..642bfe1 --- /dev/null +++ b/icons/Paper/16x16/apps/blueradio-48.png @@ -0,0 +1 @@ +preferences-system-bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/blueradio.png b/icons/Paper/16x16/apps/blueradio.png new file mode 120000 index 0000000..642bfe1 --- /dev/null +++ b/icons/Paper/16x16/apps/blueradio.png @@ -0,0 +1 @@ +preferences-system-bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bluetooth-48.png b/icons/Paper/16x16/apps/bluetooth-48.png new file mode 120000 index 0000000..642bfe1 --- /dev/null +++ b/icons/Paper/16x16/apps/bluetooth-48.png @@ -0,0 +1 @@ +preferences-system-bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bluetooth-radio.png b/icons/Paper/16x16/apps/bluetooth-radio.png new file mode 120000 index 0000000..642bfe1 --- /dev/null +++ b/icons/Paper/16x16/apps/bluetooth-radio.png @@ -0,0 +1 @@ +preferences-system-bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bluetoothradio.png b/icons/Paper/16x16/apps/bluetoothradio.png new file mode 120000 index 0000000..642bfe1 --- /dev/null +++ b/icons/Paper/16x16/apps/bluetoothradio.png @@ -0,0 +1 @@ +preferences-system-bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bpython.png b/icons/Paper/16x16/apps/bpython.png new file mode 120000 index 0000000..da8068a --- /dev/null +++ b/icons/Paper/16x16/apps/bpython.png @@ -0,0 +1 @@ +python.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/brackets.png b/icons/Paper/16x16/apps/brackets.png new file mode 100644 index 0000000..8a51f9d Binary files /dev/null and b/icons/Paper/16x16/apps/brackets.png differ diff --git a/icons/Paper/16x16/apps/brasero.png b/icons/Paper/16x16/apps/brasero.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/brasero.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/brave.png b/icons/Paper/16x16/apps/brave.png new file mode 100644 index 0000000..d9f389d Binary files /dev/null and b/icons/Paper/16x16/apps/brave.png differ diff --git a/icons/Paper/16x16/apps/brightside.png b/icons/Paper/16x16/apps/brightside.png new file mode 120000 index 0000000..6f02cfa --- /dev/null +++ b/icons/Paper/16x16/apps/brightside.png @@ -0,0 +1 @@ +preferences-desktop-hotcorners.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/browser.png b/icons/Paper/16x16/apps/browser.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/browser.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bt-logo.png b/icons/Paper/16x16/apps/bt-logo.png new file mode 120000 index 0000000..642bfe1 --- /dev/null +++ b/icons/Paper/16x16/apps/bt-logo.png @@ -0,0 +1 @@ +preferences-system-bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/bug-buddy.png b/icons/Paper/16x16/apps/bug-buddy.png new file mode 120000 index 0000000..0917c32 --- /dev/null +++ b/icons/Paper/16x16/apps/bug-buddy.png @@ -0,0 +1 @@ +system-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/builder.png b/icons/Paper/16x16/apps/builder.png new file mode 100644 index 0000000..c091bd1 Binary files /dev/null and b/icons/Paper/16x16/apps/builder.png differ diff --git a/icons/Paper/16x16/apps/byobu.png b/icons/Paper/16x16/apps/byobu.png new file mode 100644 index 0000000..fa627d3 Binary files /dev/null and b/icons/Paper/16x16/apps/byobu.png differ diff --git a/icons/Paper/16x16/apps/cacao-oj6.png b/icons/Paper/16x16/apps/cacao-oj6.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/cacao-oj6.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cacao-oj7.png b/icons/Paper/16x16/apps/cacao-oj7.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/cacao-oj7.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cacao-oj8.png b/icons/Paper/16x16/apps/cacao-oj8.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/cacao-oj8.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cacao-oj9.png b/icons/Paper/16x16/apps/cacao-oj9.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/cacao-oj9.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/caffeine.png b/icons/Paper/16x16/apps/caffeine.png new file mode 100644 index 0000000..b2c47d6 Binary files /dev/null and b/icons/Paper/16x16/apps/caffeine.png differ diff --git a/icons/Paper/16x16/apps/cairo-dock.png b/icons/Paper/16x16/apps/cairo-dock.png new file mode 100644 index 0000000..8d0ce43 Binary files /dev/null and b/icons/Paper/16x16/apps/cairo-dock.png differ diff --git a/icons/Paper/16x16/apps/calc.png b/icons/Paper/16x16/apps/calc.png new file mode 120000 index 0000000..264ccdb --- /dev/null +++ b/icons/Paper/16x16/apps/calc.png @@ -0,0 +1 @@ +accessories-calculator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/calendar-blue-01.png b/icons/Paper/16x16/apps/calendar-blue-01.png new file mode 100644 index 0000000..9f6e778 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-01.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-02.png b/icons/Paper/16x16/apps/calendar-blue-02.png new file mode 100644 index 0000000..5dbb67e Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-02.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-03.png b/icons/Paper/16x16/apps/calendar-blue-03.png new file mode 100644 index 0000000..cb87bd5 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-03.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-04.png b/icons/Paper/16x16/apps/calendar-blue-04.png new file mode 100644 index 0000000..c2dde47 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-04.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-05.png b/icons/Paper/16x16/apps/calendar-blue-05.png new file mode 100644 index 0000000..215fbf7 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-05.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-06.png b/icons/Paper/16x16/apps/calendar-blue-06.png new file mode 100644 index 0000000..c069e85 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-06.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-07.png b/icons/Paper/16x16/apps/calendar-blue-07.png new file mode 100644 index 0000000..c0563f2 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-07.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-08.png b/icons/Paper/16x16/apps/calendar-blue-08.png new file mode 100644 index 0000000..f554bc0 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-08.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-09.png b/icons/Paper/16x16/apps/calendar-blue-09.png new file mode 100644 index 0000000..7894b75 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-09.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-10.png b/icons/Paper/16x16/apps/calendar-blue-10.png new file mode 100644 index 0000000..3dc9ed3 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-10.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-11.png b/icons/Paper/16x16/apps/calendar-blue-11.png new file mode 100644 index 0000000..12ac544 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-11.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-12.png b/icons/Paper/16x16/apps/calendar-blue-12.png new file mode 100644 index 0000000..2e80fef Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-12.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-13.png b/icons/Paper/16x16/apps/calendar-blue-13.png new file mode 100644 index 0000000..2dc67b8 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-13.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-14.png b/icons/Paper/16x16/apps/calendar-blue-14.png new file mode 100644 index 0000000..3d21ebc Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-14.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-15.png b/icons/Paper/16x16/apps/calendar-blue-15.png new file mode 100644 index 0000000..4782e7b Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-15.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-16.png b/icons/Paper/16x16/apps/calendar-blue-16.png new file mode 100644 index 0000000..3eb75a5 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-16.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-17.png b/icons/Paper/16x16/apps/calendar-blue-17.png new file mode 100644 index 0000000..9bf4dc5 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-17.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-18.png b/icons/Paper/16x16/apps/calendar-blue-18.png new file mode 100644 index 0000000..b565056 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-18.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-19.png b/icons/Paper/16x16/apps/calendar-blue-19.png new file mode 100644 index 0000000..2cc5f60 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-19.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-20.png b/icons/Paper/16x16/apps/calendar-blue-20.png new file mode 100644 index 0000000..53862b7 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-20.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-21.png b/icons/Paper/16x16/apps/calendar-blue-21.png new file mode 100644 index 0000000..13112bc Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-21.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-22.png b/icons/Paper/16x16/apps/calendar-blue-22.png new file mode 100644 index 0000000..4cbf8b3 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-22.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-23.png b/icons/Paper/16x16/apps/calendar-blue-23.png new file mode 100644 index 0000000..bd6c523 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-23.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-24.png b/icons/Paper/16x16/apps/calendar-blue-24.png new file mode 100644 index 0000000..178700b Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-24.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-25.png b/icons/Paper/16x16/apps/calendar-blue-25.png new file mode 100644 index 0000000..79f8cd2 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-25.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-26.png b/icons/Paper/16x16/apps/calendar-blue-26.png new file mode 100644 index 0000000..a352f9c Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-26.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-27.png b/icons/Paper/16x16/apps/calendar-blue-27.png new file mode 100644 index 0000000..ceb0d71 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-27.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-28.png b/icons/Paper/16x16/apps/calendar-blue-28.png new file mode 100644 index 0000000..fbef689 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-28.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-29.png b/icons/Paper/16x16/apps/calendar-blue-29.png new file mode 100644 index 0000000..9bfdb00 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-29.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-30.png b/icons/Paper/16x16/apps/calendar-blue-30.png new file mode 100644 index 0000000..8c6619f Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-30.png differ diff --git a/icons/Paper/16x16/apps/calendar-blue-31.png b/icons/Paper/16x16/apps/calendar-blue-31.png new file mode 100644 index 0000000..71a8a16 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-blue-31.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-01.png b/icons/Paper/16x16/apps/calendar-purple-01.png new file mode 100644 index 0000000..fefa6f7 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-01.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-02.png b/icons/Paper/16x16/apps/calendar-purple-02.png new file mode 100644 index 0000000..412618f Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-02.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-03.png b/icons/Paper/16x16/apps/calendar-purple-03.png new file mode 100644 index 0000000..964b7c3 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-03.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-04.png b/icons/Paper/16x16/apps/calendar-purple-04.png new file mode 100644 index 0000000..d6bf8e1 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-04.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-05.png b/icons/Paper/16x16/apps/calendar-purple-05.png new file mode 100644 index 0000000..ddda6db Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-05.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-06.png b/icons/Paper/16x16/apps/calendar-purple-06.png new file mode 100644 index 0000000..fbba7de Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-06.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-07.png b/icons/Paper/16x16/apps/calendar-purple-07.png new file mode 100644 index 0000000..be0651a Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-07.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-08.png b/icons/Paper/16x16/apps/calendar-purple-08.png new file mode 100644 index 0000000..12583dc Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-08.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-09.png b/icons/Paper/16x16/apps/calendar-purple-09.png new file mode 100644 index 0000000..36064af Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-09.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-10.png b/icons/Paper/16x16/apps/calendar-purple-10.png new file mode 100644 index 0000000..0e8c0ea Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-10.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-11.png b/icons/Paper/16x16/apps/calendar-purple-11.png new file mode 100644 index 0000000..4726624 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-11.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-12.png b/icons/Paper/16x16/apps/calendar-purple-12.png new file mode 100644 index 0000000..68796b5 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-12.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-13.png b/icons/Paper/16x16/apps/calendar-purple-13.png new file mode 100644 index 0000000..1ea8816 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-13.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-14.png b/icons/Paper/16x16/apps/calendar-purple-14.png new file mode 100644 index 0000000..4ae9154 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-14.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-15.png b/icons/Paper/16x16/apps/calendar-purple-15.png new file mode 100644 index 0000000..c23567f Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-15.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-16.png b/icons/Paper/16x16/apps/calendar-purple-16.png new file mode 100644 index 0000000..b009051 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-16.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-17.png b/icons/Paper/16x16/apps/calendar-purple-17.png new file mode 100644 index 0000000..624de88 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-17.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-18.png b/icons/Paper/16x16/apps/calendar-purple-18.png new file mode 100644 index 0000000..6e4dcd9 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-18.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-19.png b/icons/Paper/16x16/apps/calendar-purple-19.png new file mode 100644 index 0000000..e852715 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-19.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-20.png b/icons/Paper/16x16/apps/calendar-purple-20.png new file mode 100644 index 0000000..aa046b7 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-20.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-21.png b/icons/Paper/16x16/apps/calendar-purple-21.png new file mode 100644 index 0000000..88f064c Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-21.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-22.png b/icons/Paper/16x16/apps/calendar-purple-22.png new file mode 100644 index 0000000..fc22a0a Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-22.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-23.png b/icons/Paper/16x16/apps/calendar-purple-23.png new file mode 100644 index 0000000..e6f9f53 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-23.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-24.png b/icons/Paper/16x16/apps/calendar-purple-24.png new file mode 100644 index 0000000..6efc0d6 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-24.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-25.png b/icons/Paper/16x16/apps/calendar-purple-25.png new file mode 100644 index 0000000..9efa863 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-25.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-26.png b/icons/Paper/16x16/apps/calendar-purple-26.png new file mode 100644 index 0000000..9bfba9b Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-26.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-27.png b/icons/Paper/16x16/apps/calendar-purple-27.png new file mode 100644 index 0000000..7a5bb2e Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-27.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-28.png b/icons/Paper/16x16/apps/calendar-purple-28.png new file mode 100644 index 0000000..9c55135 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-28.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-29.png b/icons/Paper/16x16/apps/calendar-purple-29.png new file mode 100644 index 0000000..e9480e1 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-29.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-30.png b/icons/Paper/16x16/apps/calendar-purple-30.png new file mode 100644 index 0000000..164c376 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-30.png differ diff --git a/icons/Paper/16x16/apps/calendar-purple-31.png b/icons/Paper/16x16/apps/calendar-purple-31.png new file mode 100644 index 0000000..f28a10a Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-purple-31.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-01.png b/icons/Paper/16x16/apps/calendar-red-01.png new file mode 100644 index 0000000..a0e106d Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-01.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-02.png b/icons/Paper/16x16/apps/calendar-red-02.png new file mode 100644 index 0000000..f5fdba0 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-02.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-03.png b/icons/Paper/16x16/apps/calendar-red-03.png new file mode 100644 index 0000000..45a5cdf Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-03.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-04.png b/icons/Paper/16x16/apps/calendar-red-04.png new file mode 100644 index 0000000..c6b028a Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-04.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-05.png b/icons/Paper/16x16/apps/calendar-red-05.png new file mode 100644 index 0000000..c038ed4 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-05.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-06.png b/icons/Paper/16x16/apps/calendar-red-06.png new file mode 100644 index 0000000..054e286 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-06.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-07.png b/icons/Paper/16x16/apps/calendar-red-07.png new file mode 100644 index 0000000..5ce0832 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-07.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-08.png b/icons/Paper/16x16/apps/calendar-red-08.png new file mode 100644 index 0000000..d2a6615 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-08.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-09.png b/icons/Paper/16x16/apps/calendar-red-09.png new file mode 100644 index 0000000..65529f1 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-09.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-10.png b/icons/Paper/16x16/apps/calendar-red-10.png new file mode 100644 index 0000000..e485a41 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-10.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-11.png b/icons/Paper/16x16/apps/calendar-red-11.png new file mode 100644 index 0000000..c15a251 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-11.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-12.png b/icons/Paper/16x16/apps/calendar-red-12.png new file mode 100644 index 0000000..731c2ee Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-12.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-13.png b/icons/Paper/16x16/apps/calendar-red-13.png new file mode 100644 index 0000000..84585f7 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-13.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-14.png b/icons/Paper/16x16/apps/calendar-red-14.png new file mode 100644 index 0000000..b210679 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-14.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-15.png b/icons/Paper/16x16/apps/calendar-red-15.png new file mode 100644 index 0000000..68fa8ca Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-15.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-16.png b/icons/Paper/16x16/apps/calendar-red-16.png new file mode 100644 index 0000000..75bd9fa Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-16.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-17.png b/icons/Paper/16x16/apps/calendar-red-17.png new file mode 100644 index 0000000..3d16cc8 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-17.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-18.png b/icons/Paper/16x16/apps/calendar-red-18.png new file mode 100644 index 0000000..a5901cd Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-18.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-19.png b/icons/Paper/16x16/apps/calendar-red-19.png new file mode 100644 index 0000000..fb5bc5d Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-19.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-20.png b/icons/Paper/16x16/apps/calendar-red-20.png new file mode 100644 index 0000000..d31b6cb Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-20.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-21.png b/icons/Paper/16x16/apps/calendar-red-21.png new file mode 100644 index 0000000..eda8500 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-21.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-22.png b/icons/Paper/16x16/apps/calendar-red-22.png new file mode 100644 index 0000000..a13bf7d Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-22.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-23.png b/icons/Paper/16x16/apps/calendar-red-23.png new file mode 100644 index 0000000..c26777f Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-23.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-24.png b/icons/Paper/16x16/apps/calendar-red-24.png new file mode 100644 index 0000000..060b878 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-24.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-25.png b/icons/Paper/16x16/apps/calendar-red-25.png new file mode 100644 index 0000000..4c2f043 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-25.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-26.png b/icons/Paper/16x16/apps/calendar-red-26.png new file mode 100644 index 0000000..86b466a Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-26.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-27.png b/icons/Paper/16x16/apps/calendar-red-27.png new file mode 100644 index 0000000..53efb8d Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-27.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-28.png b/icons/Paper/16x16/apps/calendar-red-28.png new file mode 100644 index 0000000..51b9144 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-28.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-29.png b/icons/Paper/16x16/apps/calendar-red-29.png new file mode 100644 index 0000000..fb48bd7 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-29.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-30.png b/icons/Paper/16x16/apps/calendar-red-30.png new file mode 100644 index 0000000..9ca8674 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-30.png differ diff --git a/icons/Paper/16x16/apps/calendar-red-31.png b/icons/Paper/16x16/apps/calendar-red-31.png new file mode 100644 index 0000000..a515fb3 Binary files /dev/null and b/icons/Paper/16x16/apps/calendar-red-31.png differ diff --git a/icons/Paper/16x16/apps/calendar.png b/icons/Paper/16x16/apps/calendar.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/calendar.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/calibre-ebook-edit.png b/icons/Paper/16x16/apps/calibre-ebook-edit.png new file mode 120000 index 0000000..f2c92f8 --- /dev/null +++ b/icons/Paper/16x16/apps/calibre-ebook-edit.png @@ -0,0 +1 @@ +calibre.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/calibre-gui.png b/icons/Paper/16x16/apps/calibre-gui.png new file mode 120000 index 0000000..f2c92f8 --- /dev/null +++ b/icons/Paper/16x16/apps/calibre-gui.png @@ -0,0 +1 @@ +calibre.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/calibre-viewer.png b/icons/Paper/16x16/apps/calibre-viewer.png new file mode 120000 index 0000000..f2c92f8 --- /dev/null +++ b/icons/Paper/16x16/apps/calibre-viewer.png @@ -0,0 +1 @@ +calibre.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/calibre.png b/icons/Paper/16x16/apps/calibre.png new file mode 100644 index 0000000..f157ca5 Binary files /dev/null and b/icons/Paper/16x16/apps/calibre.png differ diff --git a/icons/Paper/16x16/apps/california.png b/icons/Paper/16x16/apps/california.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/california.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cantata.png b/icons/Paper/16x16/apps/cantata.png new file mode 100644 index 0000000..bd159df Binary files /dev/null and b/icons/Paper/16x16/apps/cantata.png differ diff --git a/icons/Paper/16x16/apps/catfish.png b/icons/Paper/16x16/apps/catfish.png new file mode 120000 index 0000000..22c813d --- /dev/null +++ b/icons/Paper/16x16/apps/catfish.png @@ -0,0 +1 @@ +preferences-system-search.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/celestia.png b/icons/Paper/16x16/apps/celestia.png new file mode 100644 index 0000000..2c2c0cb Binary files /dev/null and b/icons/Paper/16x16/apps/celestia.png differ diff --git a/icons/Paper/16x16/apps/chat.png b/icons/Paper/16x16/apps/chat.png new file mode 120000 index 0000000..6008bc2 --- /dev/null +++ b/icons/Paper/16x16/apps/chat.png @@ -0,0 +1 @@ +internet-chat.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cheese.png b/icons/Paper/16x16/apps/cheese.png new file mode 100644 index 0000000..a57d951 Binary files /dev/null and b/icons/Paper/16x16/apps/cheese.png differ diff --git a/icons/Paper/16x16/apps/chrome-cnkjkdjlofllcpbemipjbcpfnglbgieh-Default.png b/icons/Paper/16x16/apps/chrome-cnkjkdjlofllcpbemipjbcpfnglbgieh-Default.png new file mode 120000 index 0000000..b153da3 --- /dev/null +++ b/icons/Paper/16x16/apps/chrome-cnkjkdjlofllcpbemipjbcpfnglbgieh-Default.png @@ -0,0 +1 @@ +spotify.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/chrome-gaedmjdfmmahhbjefcbgaolhhanlaolb-Default.png b/icons/Paper/16x16/apps/chrome-gaedmjdfmmahhbjefcbgaolhhanlaolb-Default.png new file mode 120000 index 0000000..16edd91 --- /dev/null +++ b/icons/Paper/16x16/apps/chrome-gaedmjdfmmahhbjefcbgaolhhanlaolb-Default.png @@ -0,0 +1 @@ +authy.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/chrome-ocjnemjmlhjkeilmaidemofakmpclcbi-Default.png b/icons/Paper/16x16/apps/chrome-ocjnemjmlhjkeilmaidemofakmpclcbi-Default.png new file mode 120000 index 0000000..a30efbf --- /dev/null +++ b/icons/Paper/16x16/apps/chrome-ocjnemjmlhjkeilmaidemofakmpclcbi-Default.png @@ -0,0 +1 @@ +utilities-system-monitor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/chrome.png b/icons/Paper/16x16/apps/chrome.png new file mode 120000 index 0000000..37f78ea --- /dev/null +++ b/icons/Paper/16x16/apps/chrome.png @@ -0,0 +1 @@ +google-chrome.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/chromium-browser.png b/icons/Paper/16x16/apps/chromium-browser.png new file mode 100644 index 0000000..2ea0267 Binary files /dev/null and b/icons/Paper/16x16/apps/chromium-browser.png differ diff --git a/icons/Paper/16x16/apps/chromium.png b/icons/Paper/16x16/apps/chromium.png new file mode 120000 index 0000000..8756cd6 --- /dev/null +++ b/icons/Paper/16x16/apps/chromium.png @@ -0,0 +1 @@ +chromium-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cinnamon-session-properties.png b/icons/Paper/16x16/apps/cinnamon-session-properties.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/cinnamon-session-properties.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/claws-mail.png b/icons/Paper/16x16/apps/claws-mail.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/claws-mail.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/clementine.png b/icons/Paper/16x16/apps/clementine.png new file mode 100644 index 0000000..457ab08 Binary files /dev/null and b/icons/Paper/16x16/apps/clementine.png differ diff --git a/icons/Paper/16x16/apps/clipit.png b/icons/Paper/16x16/apps/clipit.png new file mode 120000 index 0000000..21690e3 --- /dev/null +++ b/icons/Paper/16x16/apps/clipit.png @@ -0,0 +1 @@ +accessories-clipboard.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cmake-setup.png b/icons/Paper/16x16/apps/cmake-setup.png new file mode 120000 index 0000000..9a0227d --- /dev/null +++ b/icons/Paper/16x16/apps/cmake-setup.png @@ -0,0 +1 @@ +cmake.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cmake.png b/icons/Paper/16x16/apps/cmake.png new file mode 100644 index 0000000..9cacc36 Binary files /dev/null and b/icons/Paper/16x16/apps/cmake.png differ diff --git a/icons/Paper/16x16/apps/code-oss.png b/icons/Paper/16x16/apps/code-oss.png new file mode 120000 index 0000000..8442786 --- /dev/null +++ b/icons/Paper/16x16/apps/code-oss.png @@ -0,0 +1 @@ +visual-studio-code.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/code.png b/icons/Paper/16x16/apps/code.png new file mode 120000 index 0000000..8442786 --- /dev/null +++ b/icons/Paper/16x16/apps/code.png @@ -0,0 +1 @@ +visual-studio-code.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/codeblocks.png b/icons/Paper/16x16/apps/codeblocks.png new file mode 100644 index 0000000..ab048bb Binary files /dev/null and b/icons/Paper/16x16/apps/codeblocks.png differ diff --git a/icons/Paper/16x16/apps/color-picker.png b/icons/Paper/16x16/apps/color-picker.png new file mode 100644 index 0000000..b40d141 Binary files /dev/null and b/icons/Paper/16x16/apps/color-picker.png differ diff --git a/icons/Paper/16x16/apps/com.gexperts.Terminix.png b/icons/Paper/16x16/apps/com.gexperts.Terminix.png new file mode 120000 index 0000000..a066aa3 --- /dev/null +++ b/icons/Paper/16x16/apps/com.gexperts.Terminix.png @@ -0,0 +1 @@ +terminix.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/com.gexperts.Tilix.png b/icons/Paper/16x16/apps/com.gexperts.Tilix.png new file mode 120000 index 0000000..a066aa3 --- /dev/null +++ b/icons/Paper/16x16/apps/com.gexperts.Tilix.png @@ -0,0 +1 @@ +terminix.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/com.skype.Client.png b/icons/Paper/16x16/apps/com.skype.Client.png new file mode 120000 index 0000000..78f3001 --- /dev/null +++ b/icons/Paper/16x16/apps/com.skype.Client.png @@ -0,0 +1 @@ +skype.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/com.sublimetext.three.png b/icons/Paper/16x16/apps/com.sublimetext.three.png new file mode 120000 index 0000000..b9e16ee --- /dev/null +++ b/icons/Paper/16x16/apps/com.sublimetext.three.png @@ -0,0 +1 @@ +sublime-text-3.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/com.valvesoftware.Steam.png b/icons/Paper/16x16/apps/com.valvesoftware.Steam.png new file mode 120000 index 0000000..e0acf2e --- /dev/null +++ b/icons/Paper/16x16/apps/com.valvesoftware.Steam.png @@ -0,0 +1 @@ +steam.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/config-users.png b/icons/Paper/16x16/apps/config-users.png new file mode 120000 index 0000000..83fb95c --- /dev/null +++ b/icons/Paper/16x16/apps/config-users.png @@ -0,0 +1 @@ +system-users.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/corebird.png b/icons/Paper/16x16/apps/corebird.png new file mode 100644 index 0000000..daab3a8 Binary files /dev/null and b/icons/Paper/16x16/apps/corebird.png differ diff --git a/icons/Paper/16x16/apps/cs-backgrounds.png b/icons/Paper/16x16/apps/cs-backgrounds.png new file mode 120000 index 0000000..a1e03ef --- /dev/null +++ b/icons/Paper/16x16/apps/cs-backgrounds.png @@ -0,0 +1 @@ +preferences-desktop-wallpaper.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-bluetooth.png b/icons/Paper/16x16/apps/cs-bluetooth.png new file mode 120000 index 0000000..642bfe1 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-bluetooth.png @@ -0,0 +1 @@ +preferences-system-bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-cat-hardware.png b/icons/Paper/16x16/apps/cs-cat-hardware.png new file mode 120000 index 0000000..3d6419a --- /dev/null +++ b/icons/Paper/16x16/apps/cs-cat-hardware.png @@ -0,0 +1 @@ +jockey.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-color.png b/icons/Paper/16x16/apps/cs-color.png new file mode 120000 index 0000000..4b67a29 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-color.png @@ -0,0 +1 @@ +preferences-color.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-date-time.png b/icons/Paper/16x16/apps/cs-date-time.png new file mode 120000 index 0000000..ebc58b4 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-date-time.png @@ -0,0 +1 @@ +preferences-system-time.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-desklets.png b/icons/Paper/16x16/apps/cs-desklets.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-desklets.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-desktop-effects.png b/icons/Paper/16x16/apps/cs-desktop-effects.png new file mode 120000 index 0000000..57f399a --- /dev/null +++ b/icons/Paper/16x16/apps/cs-desktop-effects.png @@ -0,0 +1 @@ +preferences-desktop-effects.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-display.png b/icons/Paper/16x16/apps/cs-display.png new file mode 120000 index 0000000..38f799a --- /dev/null +++ b/icons/Paper/16x16/apps/cs-display.png @@ -0,0 +1 @@ +preferences-desktop-display.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-drivers.png b/icons/Paper/16x16/apps/cs-drivers.png new file mode 120000 index 0000000..3d6419a --- /dev/null +++ b/icons/Paper/16x16/apps/cs-drivers.png @@ -0,0 +1 @@ +jockey.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-firewall.png b/icons/Paper/16x16/apps/cs-firewall.png new file mode 120000 index 0000000..e90be67 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-firewall.png @@ -0,0 +1 @@ +system-config-firewall.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-fonts.png b/icons/Paper/16x16/apps/cs-fonts.png new file mode 120000 index 0000000..4012ca8 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-fonts.png @@ -0,0 +1 @@ +preferences-desktop-font.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-keyboard.png b/icons/Paper/16x16/apps/cs-keyboard.png new file mode 120000 index 0000000..033f72e --- /dev/null +++ b/icons/Paper/16x16/apps/cs-keyboard.png @@ -0,0 +1 @@ +preferences-desktop-keyboard.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-login.png b/icons/Paper/16x16/apps/cs-login.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-login.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-notifications.png b/icons/Paper/16x16/apps/cs-notifications.png new file mode 120000 index 0000000..aaf2c07 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-notifications.png @@ -0,0 +1 @@ +preferences-system-notifications.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-overview.png b/icons/Paper/16x16/apps/cs-overview.png new file mode 120000 index 0000000..6f02cfa --- /dev/null +++ b/icons/Paper/16x16/apps/cs-overview.png @@ -0,0 +1 @@ +preferences-desktop-hotcorners.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-panel.png b/icons/Paper/16x16/apps/cs-panel.png new file mode 120000 index 0000000..0308eee --- /dev/null +++ b/icons/Paper/16x16/apps/cs-panel.png @@ -0,0 +1 @@ +desktop-panel.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-privacy.png b/icons/Paper/16x16/apps/cs-privacy.png new file mode 120000 index 0000000..ac60671 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-privacy.png @@ -0,0 +1 @@ +preferences-system-privacy.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-screensaver.png b/icons/Paper/16x16/apps/cs-screensaver.png new file mode 120000 index 0000000..305fd35 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-screensaver.png @@ -0,0 +1 @@ +preferences-desktop-screensaver.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-software-sources.png b/icons/Paper/16x16/apps/cs-software-sources.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-software-sources.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-sound.png b/icons/Paper/16x16/apps/cs-sound.png new file mode 120000 index 0000000..4772777 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-sound.png @@ -0,0 +1 @@ +preferences-system-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-sources.png b/icons/Paper/16x16/apps/cs-sources.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-sources.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-startup-programs.png b/icons/Paper/16x16/apps/cs-startup-programs.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-startup-programs.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-theme.png b/icons/Paper/16x16/apps/cs-theme.png new file mode 120000 index 0000000..5f680c1 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-theme.png @@ -0,0 +1 @@ +preferences-desktop-theme.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-themes.png b/icons/Paper/16x16/apps/cs-themes.png new file mode 120000 index 0000000..5f680c1 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-themes.png @@ -0,0 +1 @@ +preferences-desktop-theme.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-universal-access.png b/icons/Paper/16x16/apps/cs-universal-access.png new file mode 120000 index 0000000..124f56b --- /dev/null +++ b/icons/Paper/16x16/apps/cs-universal-access.png @@ -0,0 +1 @@ +preferences-desktop-accessibility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-user-accounts.png b/icons/Paper/16x16/apps/cs-user-accounts.png new file mode 120000 index 0000000..83fb95c --- /dev/null +++ b/icons/Paper/16x16/apps/cs-user-accounts.png @@ -0,0 +1 @@ +system-users.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-user.png b/icons/Paper/16x16/apps/cs-user.png new file mode 120000 index 0000000..83fb95c --- /dev/null +++ b/icons/Paper/16x16/apps/cs-user.png @@ -0,0 +1 @@ +system-users.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-windows.png b/icons/Paper/16x16/apps/cs-windows.png new file mode 120000 index 0000000..1d414f9 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-windows.png @@ -0,0 +1 @@ +preferences-system-windows.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cs-workspaces.png b/icons/Paper/16x16/apps/cs-workspaces.png new file mode 120000 index 0000000..f478eb5 --- /dev/null +++ b/icons/Paper/16x16/apps/cs-workspaces.png @@ -0,0 +1 @@ +workspace-switcher.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/cuckoo.png b/icons/Paper/16x16/apps/cuckoo.png new file mode 120000 index 0000000..fe2255b --- /dev/null +++ b/icons/Paper/16x16/apps/cuckoo.png @@ -0,0 +1 @@ +accessories-clock.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/darktable.png b/icons/Paper/16x16/apps/darktable.png new file mode 100644 index 0000000..77bdc3a Binary files /dev/null and b/icons/Paper/16x16/apps/darktable.png differ diff --git a/icons/Paper/16x16/apps/date.png b/icons/Paper/16x16/apps/date.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/date.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/dayfolder.png b/icons/Paper/16x16/apps/dayfolder.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/dayfolder.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/dbeaver.png b/icons/Paper/16x16/apps/dbeaver.png new file mode 100644 index 0000000..4f4e375 Binary files /dev/null and b/icons/Paper/16x16/apps/dbeaver.png differ diff --git a/icons/Paper/16x16/apps/dconf-editor.png b/icons/Paper/16x16/apps/dconf-editor.png new file mode 120000 index 0000000..f559472 --- /dev/null +++ b/icons/Paper/16x16/apps/dconf-editor.png @@ -0,0 +1 @@ +utilities-tweak-tool.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/deadbeef.png b/icons/Paper/16x16/apps/deadbeef.png new file mode 100644 index 0000000..c365ef2 Binary files /dev/null and b/icons/Paper/16x16/apps/deadbeef.png differ diff --git a/icons/Paper/16x16/apps/deepin-emacs.png b/icons/Paper/16x16/apps/deepin-emacs.png new file mode 120000 index 0000000..6920e77 --- /dev/null +++ b/icons/Paper/16x16/apps/deepin-emacs.png @@ -0,0 +1 @@ +emacs.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/deepin-terminal.png b/icons/Paper/16x16/apps/deepin-terminal.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/deepin-terminal.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/deja-dup.png b/icons/Paper/16x16/apps/deja-dup.png new file mode 100644 index 0000000..a150d98 Binary files /dev/null and b/icons/Paper/16x16/apps/deja-dup.png differ diff --git a/icons/Paper/16x16/apps/deluge-torrent.png b/icons/Paper/16x16/apps/deluge-torrent.png new file mode 120000 index 0000000..2e0b2f0 --- /dev/null +++ b/icons/Paper/16x16/apps/deluge-torrent.png @@ -0,0 +1 @@ +deluge.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/deluge.png b/icons/Paper/16x16/apps/deluge.png new file mode 100644 index 0000000..426f8d9 Binary files /dev/null and b/icons/Paper/16x16/apps/deluge.png differ diff --git a/icons/Paper/16x16/apps/designer-qt4.png b/icons/Paper/16x16/apps/designer-qt4.png new file mode 120000 index 0000000..3db908c --- /dev/null +++ b/icons/Paper/16x16/apps/designer-qt4.png @@ -0,0 +1 @@ +qt-designer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/desktop-effects.png b/icons/Paper/16x16/apps/desktop-effects.png new file mode 120000 index 0000000..57f399a --- /dev/null +++ b/icons/Paper/16x16/apps/desktop-effects.png @@ -0,0 +1 @@ +preferences-desktop-effects.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/desktop-panel.png b/icons/Paper/16x16/apps/desktop-panel.png new file mode 100644 index 0000000..f6c669a Binary files /dev/null and b/icons/Paper/16x16/apps/desktop-panel.png differ diff --git a/icons/Paper/16x16/apps/desktop-tweaks.png b/icons/Paper/16x16/apps/desktop-tweaks.png new file mode 120000 index 0000000..57f399a --- /dev/null +++ b/icons/Paper/16x16/apps/desktop-tweaks.png @@ -0,0 +1 @@ +preferences-desktop-effects.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/devassistant.png b/icons/Paper/16x16/apps/devassistant.png new file mode 100644 index 0000000..ce1a8bd Binary files /dev/null and b/icons/Paper/16x16/apps/devassistant.png differ diff --git a/icons/Paper/16x16/apps/devede.png b/icons/Paper/16x16/apps/devede.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/devede.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/devedeng.png b/icons/Paper/16x16/apps/devedeng.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/devedeng.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/devhelp.png b/icons/Paper/16x16/apps/devhelp.png new file mode 100644 index 0000000..a807783 Binary files /dev/null and b/icons/Paper/16x16/apps/devhelp.png differ diff --git a/icons/Paper/16x16/apps/dictionary.png b/icons/Paper/16x16/apps/dictionary.png new file mode 120000 index 0000000..eb21301 --- /dev/null +++ b/icons/Paper/16x16/apps/dictionary.png @@ -0,0 +1 @@ +accessories-dictionary.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/digikam.png b/icons/Paper/16x16/apps/digikam.png new file mode 120000 index 0000000..4843030 --- /dev/null +++ b/icons/Paper/16x16/apps/digikam.png @@ -0,0 +1 @@ +multimedia-photo-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/discord-canary.png b/icons/Paper/16x16/apps/discord-canary.png new file mode 100644 index 0000000..e23436e Binary files /dev/null and b/icons/Paper/16x16/apps/discord-canary.png differ diff --git a/icons/Paper/16x16/apps/discord.png b/icons/Paper/16x16/apps/discord.png new file mode 100644 index 0000000..99ac111 Binary files /dev/null and b/icons/Paper/16x16/apps/discord.png differ diff --git a/icons/Paper/16x16/apps/disk-burner.png b/icons/Paper/16x16/apps/disk-burner.png new file mode 100644 index 0000000..0faa7b0 Binary files /dev/null and b/icons/Paper/16x16/apps/disk-burner.png differ diff --git a/icons/Paper/16x16/apps/disk-partition-manager.png b/icons/Paper/16x16/apps/disk-partition-manager.png new file mode 100644 index 0000000..542fe10 Binary files /dev/null and b/icons/Paper/16x16/apps/disk-partition-manager.png differ diff --git a/icons/Paper/16x16/apps/disk-usage-analyzer.png b/icons/Paper/16x16/apps/disk-usage-analyzer.png new file mode 100644 index 0000000..87d8cc6 Binary files /dev/null and b/icons/Paper/16x16/apps/disk-usage-analyzer.png differ diff --git a/icons/Paper/16x16/apps/disk-utility.png b/icons/Paper/16x16/apps/disk-utility.png new file mode 100644 index 0000000..6066872 Binary files /dev/null and b/icons/Paper/16x16/apps/disk-utility.png differ diff --git a/icons/Paper/16x16/apps/disks.png b/icons/Paper/16x16/apps/disks.png new file mode 120000 index 0000000..73d9e36 --- /dev/null +++ b/icons/Paper/16x16/apps/disks.png @@ -0,0 +1 @@ +disk-utility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/dnfdragora.png b/icons/Paper/16x16/apps/dnfdragora.png new file mode 120000 index 0000000..29afd7d --- /dev/null +++ b/icons/Paper/16x16/apps/dnfdragora.png @@ -0,0 +1 @@ +system-software-install.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/docky.png b/icons/Paper/16x16/apps/docky.png new file mode 100644 index 0000000..bcadf23 Binary files /dev/null and b/icons/Paper/16x16/apps/docky.png differ diff --git a/icons/Paper/16x16/apps/dolphin-emu.png b/icons/Paper/16x16/apps/dolphin-emu.png new file mode 100644 index 0000000..b6a7229 Binary files /dev/null and b/icons/Paper/16x16/apps/dolphin-emu.png differ diff --git a/icons/Paper/16x16/apps/dosbox.png b/icons/Paper/16x16/apps/dosbox.png new file mode 100644 index 0000000..d9b4c4f Binary files /dev/null and b/icons/Paper/16x16/apps/dosbox.png differ diff --git a/icons/Paper/16x16/apps/doublecmd.png b/icons/Paper/16x16/apps/doublecmd.png new file mode 100644 index 0000000..0264182 Binary files /dev/null and b/icons/Paper/16x16/apps/doublecmd.png differ diff --git a/icons/Paper/16x16/apps/dragonplayer.png b/icons/Paper/16x16/apps/dragonplayer.png new file mode 120000 index 0000000..5342b49 --- /dev/null +++ b/icons/Paper/16x16/apps/dragonplayer.png @@ -0,0 +1 @@ +multimedia-video-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/easytag.png b/icons/Paper/16x16/apps/easytag.png new file mode 100644 index 0000000..e445049 Binary files /dev/null and b/icons/Paper/16x16/apps/easytag.png differ diff --git a/icons/Paper/16x16/apps/eclipse.png b/icons/Paper/16x16/apps/eclipse.png new file mode 100644 index 0000000..04bd600 Binary files /dev/null and b/icons/Paper/16x16/apps/eclipse.png differ diff --git a/icons/Paper/16x16/apps/emacs-snapshot.png b/icons/Paper/16x16/apps/emacs-snapshot.png new file mode 120000 index 0000000..6920e77 --- /dev/null +++ b/icons/Paper/16x16/apps/emacs-snapshot.png @@ -0,0 +1 @@ +emacs.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/emacs.png b/icons/Paper/16x16/apps/emacs.png new file mode 100644 index 0000000..4e02afa Binary files /dev/null and b/icons/Paper/16x16/apps/emacs.png differ diff --git a/icons/Paper/16x16/apps/emacs23.png b/icons/Paper/16x16/apps/emacs23.png new file mode 120000 index 0000000..6920e77 --- /dev/null +++ b/icons/Paper/16x16/apps/emacs23.png @@ -0,0 +1 @@ +emacs.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/emacs24.png b/icons/Paper/16x16/apps/emacs24.png new file mode 120000 index 0000000..6920e77 --- /dev/null +++ b/icons/Paper/16x16/apps/emacs24.png @@ -0,0 +1 @@ +emacs.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/emacs25.png b/icons/Paper/16x16/apps/emacs25.png new file mode 120000 index 0000000..6920e77 --- /dev/null +++ b/icons/Paper/16x16/apps/emacs25.png @@ -0,0 +1 @@ +emacs.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/email.png b/icons/Paper/16x16/apps/email.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/email.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/empathy.png b/icons/Paper/16x16/apps/empathy.png new file mode 120000 index 0000000..6008bc2 --- /dev/null +++ b/icons/Paper/16x16/apps/empathy.png @@ -0,0 +1 @@ +internet-chat.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/engrampa.png b/icons/Paper/16x16/apps/engrampa.png new file mode 120000 index 0000000..cf7079d --- /dev/null +++ b/icons/Paper/16x16/apps/engrampa.png @@ -0,0 +1 @@ +archive-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/enpass.png b/icons/Paper/16x16/apps/enpass.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/enpass.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/eog.png b/icons/Paper/16x16/apps/eog.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/eog.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/eom.png b/icons/Paper/16x16/apps/eom.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/eom.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/epiphany-browser.png b/icons/Paper/16x16/apps/epiphany-browser.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/epiphany-browser.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/epiphany-icon.png b/icons/Paper/16x16/apps/epiphany-icon.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/epiphany-icon.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/epiphany-webkit.png b/icons/Paper/16x16/apps/epiphany-webkit.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/epiphany-webkit.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/epiphany.png b/icons/Paper/16x16/apps/epiphany.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/epiphany.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/evince.png b/icons/Paper/16x16/apps/evince.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/evince.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/evolution-memos.png b/icons/Paper/16x16/apps/evolution-memos.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/evolution-memos.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/evolution.png b/icons/Paper/16x16/apps/evolution.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/evolution.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/exaile.png b/icons/Paper/16x16/apps/exaile.png new file mode 100644 index 0000000..c1749c4 Binary files /dev/null and b/icons/Paper/16x16/apps/exaile.png differ diff --git a/icons/Paper/16x16/apps/fedy.png b/icons/Paper/16x16/apps/fedy.png new file mode 100644 index 0000000..e651740 Binary files /dev/null and b/icons/Paper/16x16/apps/fedy.png differ diff --git a/icons/Paper/16x16/apps/feedreader.png b/icons/Paper/16x16/apps/feedreader.png new file mode 120000 index 0000000..76dfc2c --- /dev/null +++ b/icons/Paper/16x16/apps/feedreader.png @@ -0,0 +1 @@ +internet-news-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/file-manager.png b/icons/Paper/16x16/apps/file-manager.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/file-manager.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/file-roller.png b/icons/Paper/16x16/apps/file-roller.png new file mode 120000 index 0000000..cf7079d --- /dev/null +++ b/icons/Paper/16x16/apps/file-roller.png @@ -0,0 +1 @@ +archive-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/filelight.png b/icons/Paper/16x16/apps/filelight.png new file mode 120000 index 0000000..3c844fb --- /dev/null +++ b/icons/Paper/16x16/apps/filelight.png @@ -0,0 +1 @@ +disk-usage-analyzer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/filezilla.png b/icons/Paper/16x16/apps/filezilla.png new file mode 100644 index 0000000..cad68d3 Binary files /dev/null and b/icons/Paper/16x16/apps/filezilla.png differ diff --git a/icons/Paper/16x16/apps/fingerprint-gui.png b/icons/Paper/16x16/apps/fingerprint-gui.png new file mode 100644 index 0000000..58c3837 Binary files /dev/null and b/icons/Paper/16x16/apps/fingerprint-gui.png differ diff --git a/icons/Paper/16x16/apps/firefox-3.0.png b/icons/Paper/16x16/apps/firefox-3.0.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-3.0.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-3.5.png b/icons/Paper/16x16/apps/firefox-3.5.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-3.5.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-4.0.png b/icons/Paper/16x16/apps/firefox-4.0.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-4.0.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-aurora.png b/icons/Paper/16x16/apps/firefox-aurora.png new file mode 120000 index 0000000..ece30d5 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-aurora.png @@ -0,0 +1 @@ +firefox-nightly.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-beta.png b/icons/Paper/16x16/apps/firefox-beta.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-beta.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-default.png b/icons/Paper/16x16/apps/firefox-default.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-default.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-developer-icon.png b/icons/Paper/16x16/apps/firefox-developer-icon.png new file mode 120000 index 0000000..ece30d5 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-developer-icon.png @@ -0,0 +1 @@ +firefox-nightly.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-esr.png b/icons/Paper/16x16/apps/firefox-esr.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-esr.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-gtk3.png b/icons/Paper/16x16/apps/firefox-gtk3.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-gtk3.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-icon.png b/icons/Paper/16x16/apps/firefox-icon.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-icon.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-nightly-icon.png b/icons/Paper/16x16/apps/firefox-nightly-icon.png new file mode 120000 index 0000000..ece30d5 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-nightly-icon.png @@ -0,0 +1 @@ +firefox-nightly.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-nightly.png b/icons/Paper/16x16/apps/firefox-nightly.png new file mode 100644 index 0000000..430fe9e Binary files /dev/null and b/icons/Paper/16x16/apps/firefox-nightly.png differ diff --git a/icons/Paper/16x16/apps/firefox-original.png b/icons/Paper/16x16/apps/firefox-original.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-original.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox-trunk.png b/icons/Paper/16x16/apps/firefox-trunk.png new file mode 120000 index 0000000..ece30d5 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox-trunk.png @@ -0,0 +1 @@ +firefox-nightly.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firefox.png b/icons/Paper/16x16/apps/firefox.png new file mode 100644 index 0000000..2668d0c Binary files /dev/null and b/icons/Paper/16x16/apps/firefox.png differ diff --git a/icons/Paper/16x16/apps/firefox3.png b/icons/Paper/16x16/apps/firefox3.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/firefox3.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firestarter.png b/icons/Paper/16x16/apps/firestarter.png new file mode 120000 index 0000000..e90be67 --- /dev/null +++ b/icons/Paper/16x16/apps/firestarter.png @@ -0,0 +1 @@ +system-config-firewall.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/firewall-config.png b/icons/Paper/16x16/apps/firewall-config.png new file mode 120000 index 0000000..e90be67 --- /dev/null +++ b/icons/Paper/16x16/apps/firewall-config.png @@ -0,0 +1 @@ +system-config-firewall.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/five-or-more.png b/icons/Paper/16x16/apps/five-or-more.png new file mode 100644 index 0000000..b007135 Binary files /dev/null and b/icons/Paper/16x16/apps/five-or-more.png differ diff --git a/icons/Paper/16x16/apps/flash-player-properties.png b/icons/Paper/16x16/apps/flash-player-properties.png new file mode 120000 index 0000000..ec1a704 --- /dev/null +++ b/icons/Paper/16x16/apps/flash-player-properties.png @@ -0,0 +1 @@ +adobe-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/flash.png b/icons/Paper/16x16/apps/flash.png new file mode 120000 index 0000000..ec1a704 --- /dev/null +++ b/icons/Paper/16x16/apps/flash.png @@ -0,0 +1 @@ +adobe-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/flashplayer.png b/icons/Paper/16x16/apps/flashplayer.png new file mode 120000 index 0000000..ec1a704 --- /dev/null +++ b/icons/Paper/16x16/apps/flashplayer.png @@ -0,0 +1 @@ +adobe-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/flashplayerproperties.png b/icons/Paper/16x16/apps/flashplayerproperties.png new file mode 120000 index 0000000..ec1a704 --- /dev/null +++ b/icons/Paper/16x16/apps/flashplayerproperties.png @@ -0,0 +1 @@ +adobe-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/flegita.png b/icons/Paper/16x16/apps/flegita.png new file mode 120000 index 0000000..eb21301 --- /dev/null +++ b/icons/Paper/16x16/apps/flegita.png @@ -0,0 +1 @@ +accessories-dictionary.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/fluxgui.png b/icons/Paper/16x16/apps/fluxgui.png new file mode 100644 index 0000000..3e56e67 Binary files /dev/null and b/icons/Paper/16x16/apps/fluxgui.png differ diff --git a/icons/Paper/16x16/apps/focuswriter.png b/icons/Paper/16x16/apps/focuswriter.png new file mode 100644 index 0000000..39bf9e2 Binary files /dev/null and b/icons/Paper/16x16/apps/focuswriter.png differ diff --git a/icons/Paper/16x16/apps/font-viewer.png b/icons/Paper/16x16/apps/font-viewer.png new file mode 120000 index 0000000..4012ca8 --- /dev/null +++ b/icons/Paper/16x16/apps/font-viewer.png @@ -0,0 +1 @@ +preferences-desktop-font.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/fonts.png b/icons/Paper/16x16/apps/fonts.png new file mode 120000 index 0000000..4012ca8 --- /dev/null +++ b/icons/Paper/16x16/apps/fonts.png @@ -0,0 +1 @@ +preferences-desktop-font.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/freecad.png b/icons/Paper/16x16/apps/freecad.png new file mode 100644 index 0000000..6df1831 Binary files /dev/null and b/icons/Paper/16x16/apps/freecad.png differ diff --git a/icons/Paper/16x16/apps/galculator.png b/icons/Paper/16x16/apps/galculator.png new file mode 120000 index 0000000..264ccdb --- /dev/null +++ b/icons/Paper/16x16/apps/galculator.png @@ -0,0 +1 @@ +accessories-calculator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gaupol.png b/icons/Paper/16x16/apps/gaupol.png new file mode 120000 index 0000000..9f4db00 --- /dev/null +++ b/icons/Paper/16x16/apps/gaupol.png @@ -0,0 +1 @@ +gnome-subtitles.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gba.png b/icons/Paper/16x16/apps/gba.png new file mode 120000 index 0000000..7e95247 --- /dev/null +++ b/icons/Paper/16x16/apps/gba.png @@ -0,0 +1 @@ +mgba.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gcbalculator.png b/icons/Paper/16x16/apps/gcbalculator.png new file mode 120000 index 0000000..264ccdb --- /dev/null +++ b/icons/Paper/16x16/apps/gcbalculator.png @@ -0,0 +1 @@ +accessories-calculator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gcolor.png b/icons/Paper/16x16/apps/gcolor.png new file mode 120000 index 0000000..aa1ca2a --- /dev/null +++ b/icons/Paper/16x16/apps/gcolor.png @@ -0,0 +1 @@ +color-picker.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gcolor2.png b/icons/Paper/16x16/apps/gcolor2.png new file mode 120000 index 0000000..aa1ca2a --- /dev/null +++ b/icons/Paper/16x16/apps/gcolor2.png @@ -0,0 +1 @@ +color-picker.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gcolor3.png b/icons/Paper/16x16/apps/gcolor3.png new file mode 120000 index 0000000..aa1ca2a --- /dev/null +++ b/icons/Paper/16x16/apps/gcolor3.png @@ -0,0 +1 @@ +color-picker.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gconf-editor.png b/icons/Paper/16x16/apps/gconf-editor.png new file mode 120000 index 0000000..f559472 --- /dev/null +++ b/icons/Paper/16x16/apps/gconf-editor.png @@ -0,0 +1 @@ +utilities-tweak-tool.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gdebi.png b/icons/Paper/16x16/apps/gdebi.png new file mode 120000 index 0000000..29afd7d --- /dev/null +++ b/icons/Paper/16x16/apps/gdebi.png @@ -0,0 +1 @@ +system-software-install.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gdm-login-photo.png b/icons/Paper/16x16/apps/gdm-login-photo.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/gdm-login-photo.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gdm-setup.png b/icons/Paper/16x16/apps/gdm-setup.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/gdm-setup.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gdm-xnest.png b/icons/Paper/16x16/apps/gdm-xnest.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/gdm-xnest.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gdm.png b/icons/Paper/16x16/apps/gdm.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/gdm.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gdm2setup.png b/icons/Paper/16x16/apps/gdm2setup.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/gdm2setup.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gdmflexiserver.png b/icons/Paper/16x16/apps/gdmflexiserver.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/gdmflexiserver.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gdmsetup.png b/icons/Paper/16x16/apps/gdmsetup.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/gdmsetup.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/geany.png b/icons/Paper/16x16/apps/geany.png new file mode 100644 index 0000000..5d2518b Binary files /dev/null and b/icons/Paper/16x16/apps/geany.png differ diff --git a/icons/Paper/16x16/apps/geary.png b/icons/Paper/16x16/apps/geary.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/geary.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gedit-icon.png b/icons/Paper/16x16/apps/gedit-icon.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/gedit-icon.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gedit-logo.png b/icons/Paper/16x16/apps/gedit-logo.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/gedit-logo.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gedit.png b/icons/Paper/16x16/apps/gedit.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/gedit.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/geeqie.png b/icons/Paper/16x16/apps/geeqie.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/geeqie.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ghetto-skype.png b/icons/Paper/16x16/apps/ghetto-skype.png new file mode 120000 index 0000000..78f3001 --- /dev/null +++ b/icons/Paper/16x16/apps/ghetto-skype.png @@ -0,0 +1 @@ +skype.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ghex.png b/icons/Paper/16x16/apps/ghex.png new file mode 100644 index 0000000..69cf4d4 Binary files /dev/null and b/icons/Paper/16x16/apps/ghex.png differ diff --git a/icons/Paper/16x16/apps/gimp.png b/icons/Paper/16x16/apps/gimp.png new file mode 100644 index 0000000..5fa0e30 Binary files /dev/null and b/icons/Paper/16x16/apps/gimp.png differ diff --git a/icons/Paper/16x16/apps/git-gui.png b/icons/Paper/16x16/apps/git-gui.png new file mode 120000 index 0000000..d3e7fce --- /dev/null +++ b/icons/Paper/16x16/apps/git-gui.png @@ -0,0 +1 @@ +gitg.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/git.png b/icons/Paper/16x16/apps/git.png new file mode 120000 index 0000000..d3e7fce --- /dev/null +++ b/icons/Paper/16x16/apps/git.png @@ -0,0 +1 @@ +gitg.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/giteye.png b/icons/Paper/16x16/apps/giteye.png new file mode 120000 index 0000000..d3e7fce --- /dev/null +++ b/icons/Paper/16x16/apps/giteye.png @@ -0,0 +1 @@ +gitg.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gitg.png b/icons/Paper/16x16/apps/gitg.png new file mode 100644 index 0000000..2d2f81f Binary files /dev/null and b/icons/Paper/16x16/apps/gitg.png differ diff --git a/icons/Paper/16x16/apps/gitk.png b/icons/Paper/16x16/apps/gitk.png new file mode 120000 index 0000000..d3e7fce --- /dev/null +++ b/icons/Paper/16x16/apps/gitk.png @@ -0,0 +1 @@ +gitg.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gitkraken.png b/icons/Paper/16x16/apps/gitkraken.png new file mode 100644 index 0000000..5d7e12c Binary files /dev/null and b/icons/Paper/16x16/apps/gitkraken.png differ diff --git a/icons/Paper/16x16/apps/gksu-root-terminal.png b/icons/Paper/16x16/apps/gksu-root-terminal.png new file mode 120000 index 0000000..27e6d29 --- /dev/null +++ b/icons/Paper/16x16/apps/gksu-root-terminal.png @@ -0,0 +1 @@ +utilities-root-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/glade-3.png b/icons/Paper/16x16/apps/glade-3.png new file mode 120000 index 0000000..9924df8 --- /dev/null +++ b/icons/Paper/16x16/apps/glade-3.png @@ -0,0 +1 @@ +glade.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/glade.png b/icons/Paper/16x16/apps/glade.png new file mode 100644 index 0000000..c3be7bd Binary files /dev/null and b/icons/Paper/16x16/apps/glade.png differ diff --git a/icons/Paper/16x16/apps/gnome-2048.png b/icons/Paper/16x16/apps/gnome-2048.png new file mode 100644 index 0000000..7eb962e Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-2048.png differ diff --git a/icons/Paper/16x16/apps/gnome-abrt.png b/icons/Paper/16x16/apps/gnome-abrt.png new file mode 120000 index 0000000..0917c32 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-abrt.png @@ -0,0 +1 @@ +system-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-aisleriot.png b/icons/Paper/16x16/apps/gnome-aisleriot.png new file mode 100644 index 0000000..3bbc0d3 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-aisleriot.png differ diff --git a/icons/Paper/16x16/apps/gnome-apt.png b/icons/Paper/16x16/apps/gnome-apt.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-apt.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-baker.png b/icons/Paper/16x16/apps/gnome-baker.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-baker.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-books.png b/icons/Paper/16x16/apps/gnome-books.png new file mode 120000 index 0000000..2d66b82 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-books.png @@ -0,0 +1 @@ +accessories-ebook-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-boxes.png b/icons/Paper/16x16/apps/gnome-boxes.png new file mode 100644 index 0000000..0742792 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-boxes.png differ diff --git a/icons/Paper/16x16/apps/gnome-calculator.png b/icons/Paper/16x16/apps/gnome-calculator.png new file mode 120000 index 0000000..264ccdb --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-calculator.png @@ -0,0 +1 @@ +accessories-calculator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-calendar.png b/icons/Paper/16x16/apps/gnome-calendar.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-calendar.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-character-map.png b/icons/Paper/16x16/apps/gnome-character-map.png new file mode 120000 index 0000000..63a7ce0 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-character-map.png @@ -0,0 +1 @@ +accessories-character-map.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-characters.png b/icons/Paper/16x16/apps/gnome-characters.png new file mode 120000 index 0000000..63a7ce0 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-characters.png @@ -0,0 +1 @@ +accessories-character-map.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-clocks.png b/icons/Paper/16x16/apps/gnome-clocks.png new file mode 120000 index 0000000..fe2255b --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-clocks.png @@ -0,0 +1 @@ +accessories-clock.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-color-manager.png b/icons/Paper/16x16/apps/gnome-color-manager.png new file mode 120000 index 0000000..4b67a29 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-color-manager.png @@ -0,0 +1 @@ +preferences-color.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-commander.png b/icons/Paper/16x16/apps/gnome-commander.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-commander.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-contacts.png b/icons/Paper/16x16/apps/gnome-contacts.png new file mode 120000 index 0000000..cf4cbc8 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-contacts.png @@ -0,0 +1 @@ +office-address-book.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-device-manager.png b/icons/Paper/16x16/apps/gnome-device-manager.png new file mode 120000 index 0000000..73d9e36 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-device-manager.png @@ -0,0 +1 @@ +disk-utility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-disks.png b/icons/Paper/16x16/apps/gnome-disks.png new file mode 120000 index 0000000..73d9e36 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-disks.png @@ -0,0 +1 @@ +disk-utility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-display-properties.png b/icons/Paper/16x16/apps/gnome-display-properties.png new file mode 120000 index 0000000..38f799a --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-display-properties.png @@ -0,0 +1 @@ +preferences-desktop-display.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-documents.png b/icons/Paper/16x16/apps/gnome-documents.png new file mode 100644 index 0000000..4f19b66 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-documents.png differ diff --git a/icons/Paper/16x16/apps/gnome-encfs-manager.png b/icons/Paper/16x16/apps/gnome-encfs-manager.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-encfs-manager.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-eterm.png b/icons/Paper/16x16/apps/gnome-eterm.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-eterm.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-games.png b/icons/Paper/16x16/apps/gnome-games.png new file mode 100644 index 0000000..d37bb19 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-games.png differ diff --git a/icons/Paper/16x16/apps/gnome-help.png b/icons/Paper/16x16/apps/gnome-help.png new file mode 120000 index 0000000..3230344 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-help.png @@ -0,0 +1 @@ +help-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-logs.png b/icons/Paper/16x16/apps/gnome-logs.png new file mode 120000 index 0000000..4c61b9c --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-logs.png @@ -0,0 +1 @@ +system-log-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-mahjongg.png b/icons/Paper/16x16/apps/gnome-mahjongg.png new file mode 100644 index 0000000..d8701f6 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-mahjongg.png differ diff --git a/icons/Paper/16x16/apps/gnome-maps.png b/icons/Paper/16x16/apps/gnome-maps.png new file mode 120000 index 0000000..377dd17 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-maps.png @@ -0,0 +1 @@ +accessories-maps.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-mixer.png b/icons/Paper/16x16/apps/gnome-mixer.png new file mode 120000 index 0000000..fbdfcf6 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-mixer.png @@ -0,0 +1 @@ +multimedia-volume-control.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-monitor.png b/icons/Paper/16x16/apps/gnome-monitor.png new file mode 120000 index 0000000..a30efbf --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-monitor.png @@ -0,0 +1 @@ +utilities-system-monitor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-mplayer.png b/icons/Paper/16x16/apps/gnome-mplayer.png new file mode 100644 index 0000000..6349041 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-mplayer.png differ diff --git a/icons/Paper/16x16/apps/gnome-mpv.png b/icons/Paper/16x16/apps/gnome-mpv.png new file mode 120000 index 0000000..3c649ee --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-mpv.png @@ -0,0 +1 @@ +mpv.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-music.png b/icons/Paper/16x16/apps/gnome-music.png new file mode 100644 index 0000000..acac921 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-music.png differ diff --git a/icons/Paper/16x16/apps/gnome-nettool.png b/icons/Paper/16x16/apps/gnome-nettool.png new file mode 100644 index 0000000..8029c6b Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-nettool.png differ diff --git a/icons/Paper/16x16/apps/gnome-paint.png b/icons/Paper/16x16/apps/gnome-paint.png new file mode 120000 index 0000000..276eefe --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-paint.png @@ -0,0 +1 @@ +accessories-paint.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-panel.png b/icons/Paper/16x16/apps/gnome-panel.png new file mode 120000 index 0000000..0308eee --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-panel.png @@ -0,0 +1 @@ +desktop-panel.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-photos.png b/icons/Paper/16x16/apps/gnome-photos.png new file mode 100644 index 0000000..f6531ce Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-photos.png differ diff --git a/icons/Paper/16x16/apps/gnome-pomodoro.png b/icons/Paper/16x16/apps/gnome-pomodoro.png new file mode 100644 index 0000000..c2968e9 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-pomodoro.png differ diff --git a/icons/Paper/16x16/apps/gnome-power-statistics.png b/icons/Paper/16x16/apps/gnome-power-statistics.png new file mode 100644 index 0000000..a0ca21e Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-power-statistics.png differ diff --git a/icons/Paper/16x16/apps/gnome-remote-desktop.png b/icons/Paper/16x16/apps/gnome-remote-desktop.png new file mode 120000 index 0000000..77d7ff0 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-remote-desktop.png @@ -0,0 +1 @@ +remote-desktop.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-screenshot.png b/icons/Paper/16x16/apps/gnome-screenshot.png new file mode 120000 index 0000000..8bc999c --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-screenshot.png @@ -0,0 +1 @@ +accessories-screenshot.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-session-properties.png b/icons/Paper/16x16/apps/gnome-session-properties.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-session-properties.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-session.png b/icons/Paper/16x16/apps/gnome-session.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-session.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-settings-accessibility-technologies.png b/icons/Paper/16x16/apps/gnome-settings-accessibility-technologies.png new file mode 120000 index 0000000..124f56b --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-settings-accessibility-technologies.png @@ -0,0 +1 @@ +preferences-desktop-accessibility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-settings-background.png b/icons/Paper/16x16/apps/gnome-settings-background.png new file mode 120000 index 0000000..a1e03ef --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-settings-background.png @@ -0,0 +1 @@ +preferences-desktop-wallpaper.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-settings-font.png b/icons/Paper/16x16/apps/gnome-settings-font.png new file mode 120000 index 0000000..4012ca8 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-settings-font.png @@ -0,0 +1 @@ +preferences-desktop-font.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-settings-keybindings.png b/icons/Paper/16x16/apps/gnome-settings-keybindings.png new file mode 120000 index 0000000..24976e0 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-settings-keybindings.png @@ -0,0 +1 @@ +preferences-desktop-keyboard-shortcuts.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-settings-sound.png b/icons/Paper/16x16/apps/gnome-settings-sound.png new file mode 120000 index 0000000..94c16df --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-settings-sound.png @@ -0,0 +1 @@ +preferences-desktop-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-settings-theme.png b/icons/Paper/16x16/apps/gnome-settings-theme.png new file mode 120000 index 0000000..5f680c1 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-settings-theme.png @@ -0,0 +1 @@ +preferences-desktop-theme.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-software.png b/icons/Paper/16x16/apps/gnome-software.png new file mode 120000 index 0000000..b06ddd2 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-software.png @@ -0,0 +1 @@ +software-store.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-sound-recorder.png b/icons/Paper/16x16/apps/gnome-sound-recorder.png new file mode 120000 index 0000000..dfb50aa --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-sound-recorder.png @@ -0,0 +1 @@ +sound-recorder.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-sticky-notes-applet.png b/icons/Paper/16x16/apps/gnome-sticky-notes-applet.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-sticky-notes-applet.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-subtitles.png b/icons/Paper/16x16/apps/gnome-subtitles.png new file mode 100644 index 0000000..bef33e0 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-subtitles.png differ diff --git a/icons/Paper/16x16/apps/gnome-system-monitor.png b/icons/Paper/16x16/apps/gnome-system-monitor.png new file mode 120000 index 0000000..a30efbf --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-system-monitor.png @@ -0,0 +1 @@ +utilities-system-monitor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-terminal.png b/icons/Paper/16x16/apps/gnome-terminal.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-terminal.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-todo.png b/icons/Paper/16x16/apps/gnome-todo.png new file mode 100644 index 0000000..928d10b Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-todo.png differ diff --git a/icons/Paper/16x16/apps/gnome-tweak-tool.png b/icons/Paper/16x16/apps/gnome-tweak-tool.png new file mode 120000 index 0000000..f559472 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-tweak-tool.png @@ -0,0 +1 @@ +utilities-tweak-tool.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-weather.png b/icons/Paper/16x16/apps/gnome-weather.png new file mode 100644 index 0000000..b1c5d58 Binary files /dev/null and b/icons/Paper/16x16/apps/gnome-weather.png differ diff --git a/icons/Paper/16x16/apps/gnome-window-manager.png b/icons/Paper/16x16/apps/gnome-window-manager.png new file mode 120000 index 0000000..1d414f9 --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-window-manager.png @@ -0,0 +1 @@ +preferences-system-windows.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnome-xterm.png b/icons/Paper/16x16/apps/gnome-xterm.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/gnome-xterm.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gnote.png b/icons/Paper/16x16/apps/gnote.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/gnote.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/goldendict.png b/icons/Paper/16x16/apps/goldendict.png new file mode 120000 index 0000000..eb21301 --- /dev/null +++ b/icons/Paper/16x16/apps/goldendict.png @@ -0,0 +1 @@ +accessories-dictionary.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/google-chrome-beta.png b/icons/Paper/16x16/apps/google-chrome-beta.png new file mode 120000 index 0000000..37f78ea --- /dev/null +++ b/icons/Paper/16x16/apps/google-chrome-beta.png @@ -0,0 +1 @@ +google-chrome.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/google-chrome-unstable.png b/icons/Paper/16x16/apps/google-chrome-unstable.png new file mode 120000 index 0000000..37f78ea --- /dev/null +++ b/icons/Paper/16x16/apps/google-chrome-unstable.png @@ -0,0 +1 @@ +google-chrome.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/google-chrome.png b/icons/Paper/16x16/apps/google-chrome.png new file mode 100644 index 0000000..b2c229f Binary files /dev/null and b/icons/Paper/16x16/apps/google-chrome.png differ diff --git a/icons/Paper/16x16/apps/google-chrome2.png b/icons/Paper/16x16/apps/google-chrome2.png new file mode 120000 index 0000000..37f78ea --- /dev/null +++ b/icons/Paper/16x16/apps/google-chrome2.png @@ -0,0 +1 @@ +google-chrome.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/googlechrome.png b/icons/Paper/16x16/apps/googlechrome.png new file mode 120000 index 0000000..37f78ea --- /dev/null +++ b/icons/Paper/16x16/apps/googlechrome.png @@ -0,0 +1 @@ +google-chrome.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gp.png b/icons/Paper/16x16/apps/gp.png new file mode 120000 index 0000000..276eefe --- /dev/null +++ b/icons/Paper/16x16/apps/gp.png @@ -0,0 +1 @@ +accessories-paint.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gpa.png b/icons/Paper/16x16/apps/gpa.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/gpa.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gpaint.png b/icons/Paper/16x16/apps/gpaint.png new file mode 120000 index 0000000..276eefe --- /dev/null +++ b/icons/Paper/16x16/apps/gpaint.png @@ -0,0 +1 @@ +accessories-paint.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gparted.png b/icons/Paper/16x16/apps/gparted.png new file mode 120000 index 0000000..f570b0a --- /dev/null +++ b/icons/Paper/16x16/apps/gparted.png @@ -0,0 +1 @@ +disk-partition-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gpick.png b/icons/Paper/16x16/apps/gpick.png new file mode 120000 index 0000000..aa1ca2a --- /dev/null +++ b/icons/Paper/16x16/apps/gpick.png @@ -0,0 +1 @@ +color-picker.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gpicview.png b/icons/Paper/16x16/apps/gpicview.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/gpicview.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gpk-log.png b/icons/Paper/16x16/apps/gpk-log.png new file mode 120000 index 0000000..4c61b9c --- /dev/null +++ b/icons/Paper/16x16/apps/gpk-log.png @@ -0,0 +1 @@ +system-log-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/graphics-viewer-document.png b/icons/Paper/16x16/apps/graphics-viewer-document.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/graphics-viewer-document.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gsmartcontrol.png b/icons/Paper/16x16/apps/gsmartcontrol.png new file mode 120000 index 0000000..73d9e36 --- /dev/null +++ b/icons/Paper/16x16/apps/gsmartcontrol.png @@ -0,0 +1 @@ +disk-utility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gstreamer-properties.png b/icons/Paper/16x16/apps/gstreamer-properties.png new file mode 120000 index 0000000..4772777 --- /dev/null +++ b/icons/Paper/16x16/apps/gstreamer-properties.png @@ -0,0 +1 @@ +preferences-system-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gthumb.png b/icons/Paper/16x16/apps/gthumb.png new file mode 120000 index 0000000..4843030 --- /dev/null +++ b/icons/Paper/16x16/apps/gthumb.png @@ -0,0 +1 @@ +multimedia-photo-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gtk-redshift.png b/icons/Paper/16x16/apps/gtk-redshift.png new file mode 120000 index 0000000..76db51c --- /dev/null +++ b/icons/Paper/16x16/apps/gtk-redshift.png @@ -0,0 +1 @@ +redshift.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gtk-theme-config.png b/icons/Paper/16x16/apps/gtk-theme-config.png new file mode 120000 index 0000000..5f680c1 --- /dev/null +++ b/icons/Paper/16x16/apps/gtk-theme-config.png @@ -0,0 +1 @@ +preferences-desktop-theme.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/guake-prefs.png b/icons/Paper/16x16/apps/guake-prefs.png new file mode 100644 index 0000000..5720f45 Binary files /dev/null and b/icons/Paper/16x16/apps/guake-prefs.png differ diff --git a/icons/Paper/16x16/apps/guake.png b/icons/Paper/16x16/apps/guake.png new file mode 100644 index 0000000..cecab58 Binary files /dev/null and b/icons/Paper/16x16/apps/guake.png differ diff --git a/icons/Paper/16x16/apps/gucharmap.png b/icons/Paper/16x16/apps/gucharmap.png new file mode 120000 index 0000000..63a7ce0 --- /dev/null +++ b/icons/Paper/16x16/apps/gucharmap.png @@ -0,0 +1 @@ +accessories-character-map.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gufw.png b/icons/Paper/16x16/apps/gufw.png new file mode 120000 index 0000000..e90be67 --- /dev/null +++ b/icons/Paper/16x16/apps/gufw.png @@ -0,0 +1 @@ +system-config-firewall.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gufw_menu.png b/icons/Paper/16x16/apps/gufw_menu.png new file mode 120000 index 0000000..e90be67 --- /dev/null +++ b/icons/Paper/16x16/apps/gufw_menu.png @@ -0,0 +1 @@ +system-config-firewall.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gvbam.png b/icons/Paper/16x16/apps/gvbam.png new file mode 120000 index 0000000..7e95247 --- /dev/null +++ b/icons/Paper/16x16/apps/gvbam.png @@ -0,0 +1 @@ +mgba.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/gvim.png b/icons/Paper/16x16/apps/gvim.png new file mode 100644 index 0000000..1eac269 Binary files /dev/null and b/icons/Paper/16x16/apps/gvim.png differ diff --git a/icons/Paper/16x16/apps/gwenview.png b/icons/Paper/16x16/apps/gwenview.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/gwenview.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/help-browser.png b/icons/Paper/16x16/apps/help-browser.png new file mode 100644 index 0000000..0849098 Binary files /dev/null and b/icons/Paper/16x16/apps/help-browser.png differ diff --git a/icons/Paper/16x16/apps/hexchat.png b/icons/Paper/16x16/apps/hexchat.png new file mode 100644 index 0000000..d4389ca Binary files /dev/null and b/icons/Paper/16x16/apps/hexchat.png differ diff --git a/icons/Paper/16x16/apps/hexedit.png b/icons/Paper/16x16/apps/hexedit.png new file mode 100644 index 0000000..ec24557 Binary files /dev/null and b/icons/Paper/16x16/apps/hexedit.png differ diff --git a/icons/Paper/16x16/apps/homebank.png b/icons/Paper/16x16/apps/homebank.png new file mode 100644 index 0000000..19bb164 Binary files /dev/null and b/icons/Paper/16x16/apps/homebank.png differ diff --git a/icons/Paper/16x16/apps/htop.png b/icons/Paper/16x16/apps/htop.png new file mode 120000 index 0000000..a30efbf --- /dev/null +++ b/icons/Paper/16x16/apps/htop.png @@ -0,0 +1 @@ +utilities-system-monitor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/hwinfo.png b/icons/Paper/16x16/apps/hwinfo.png new file mode 100644 index 0000000..9cf5e6b Binary files /dev/null and b/icons/Paper/16x16/apps/hwinfo.png differ diff --git a/icons/Paper/16x16/apps/ibus-bopomofo.png b/icons/Paper/16x16/apps/ibus-bopomofo.png new file mode 100644 index 0000000..04fc742 Binary files /dev/null and b/icons/Paper/16x16/apps/ibus-bopomofo.png differ diff --git a/icons/Paper/16x16/apps/ibus-engine.png b/icons/Paper/16x16/apps/ibus-engine.png new file mode 120000 index 0000000..5bcb1f9 --- /dev/null +++ b/icons/Paper/16x16/apps/ibus-engine.png @@ -0,0 +1 @@ +ibus.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ibus-pinyin.png b/icons/Paper/16x16/apps/ibus-pinyin.png new file mode 100644 index 0000000..45876ce Binary files /dev/null and b/icons/Paper/16x16/apps/ibus-pinyin.png differ diff --git a/icons/Paper/16x16/apps/ibus-setup-chewing.png b/icons/Paper/16x16/apps/ibus-setup-chewing.png new file mode 120000 index 0000000..5bcb1f9 --- /dev/null +++ b/icons/Paper/16x16/apps/ibus-setup-chewing.png @@ -0,0 +1 @@ +ibus.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ibus-setup.png b/icons/Paper/16x16/apps/ibus-setup.png new file mode 120000 index 0000000..5bcb1f9 --- /dev/null +++ b/icons/Paper/16x16/apps/ibus-setup.png @@ -0,0 +1 @@ +ibus.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ibus.png b/icons/Paper/16x16/apps/ibus.png new file mode 100644 index 0000000..ac89897 Binary files /dev/null and b/icons/Paper/16x16/apps/ibus.png differ diff --git a/icons/Paper/16x16/apps/icedove.png b/icons/Paper/16x16/apps/icedove.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/icedove.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/iceweasel.png b/icons/Paper/16x16/apps/iceweasel.png new file mode 100644 index 0000000..a408253 Binary files /dev/null and b/icons/Paper/16x16/apps/iceweasel.png differ diff --git a/icons/Paper/16x16/apps/idea-ultimate.png b/icons/Paper/16x16/apps/idea-ultimate.png new file mode 120000 index 0000000..bbab682 --- /dev/null +++ b/icons/Paper/16x16/apps/idea-ultimate.png @@ -0,0 +1 @@ +intellij-idea.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/idea.png b/icons/Paper/16x16/apps/idea.png new file mode 120000 index 0000000..bbab682 --- /dev/null +++ b/icons/Paper/16x16/apps/idea.png @@ -0,0 +1 @@ +intellij-idea.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/im-chooser.png b/icons/Paper/16x16/apps/im-chooser.png new file mode 120000 index 0000000..5bcb1f9 --- /dev/null +++ b/icons/Paper/16x16/apps/im-chooser.png @@ -0,0 +1 @@ +ibus.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/inkscape.png b/icons/Paper/16x16/apps/inkscape.png new file mode 100644 index 0000000..508a04a Binary files /dev/null and b/icons/Paper/16x16/apps/inkscape.png differ diff --git a/icons/Paper/16x16/apps/insync.png b/icons/Paper/16x16/apps/insync.png new file mode 100644 index 0000000..6448a50 Binary files /dev/null and b/icons/Paper/16x16/apps/insync.png differ diff --git a/icons/Paper/16x16/apps/intellij-idea-ce.png b/icons/Paper/16x16/apps/intellij-idea-ce.png new file mode 120000 index 0000000..bbab682 --- /dev/null +++ b/icons/Paper/16x16/apps/intellij-idea-ce.png @@ -0,0 +1 @@ +intellij-idea.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/intellij-idea-community.png b/icons/Paper/16x16/apps/intellij-idea-community.png new file mode 120000 index 0000000..bbab682 --- /dev/null +++ b/icons/Paper/16x16/apps/intellij-idea-community.png @@ -0,0 +1 @@ +intellij-idea.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/intellij-idea-ultimate-edition.png b/icons/Paper/16x16/apps/intellij-idea-ultimate-edition.png new file mode 120000 index 0000000..bbab682 --- /dev/null +++ b/icons/Paper/16x16/apps/intellij-idea-ultimate-edition.png @@ -0,0 +1 @@ +intellij-idea.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/intellij-idea.png b/icons/Paper/16x16/apps/intellij-idea.png new file mode 100644 index 0000000..43966f2 Binary files /dev/null and b/icons/Paper/16x16/apps/intellij-idea.png differ diff --git a/icons/Paper/16x16/apps/intellij.png b/icons/Paper/16x16/apps/intellij.png new file mode 120000 index 0000000..bbab682 --- /dev/null +++ b/icons/Paper/16x16/apps/intellij.png @@ -0,0 +1 @@ +intellij-idea.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/intellij_idea.png b/icons/Paper/16x16/apps/intellij_idea.png new file mode 120000 index 0000000..bbab682 --- /dev/null +++ b/icons/Paper/16x16/apps/intellij_idea.png @@ -0,0 +1 @@ +intellij-idea.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/internet-chat.png b/icons/Paper/16x16/apps/internet-chat.png new file mode 100644 index 0000000..cedfe54 Binary files /dev/null and b/icons/Paper/16x16/apps/internet-chat.png differ diff --git a/icons/Paper/16x16/apps/internet-mail.png b/icons/Paper/16x16/apps/internet-mail.png new file mode 100644 index 0000000..29a19bb Binary files /dev/null and b/icons/Paper/16x16/apps/internet-mail.png differ diff --git a/icons/Paper/16x16/apps/internet-news-reader.png b/icons/Paper/16x16/apps/internet-news-reader.png new file mode 100644 index 0000000..6e14717 Binary files /dev/null and b/icons/Paper/16x16/apps/internet-news-reader.png differ diff --git a/icons/Paper/16x16/apps/internet-web-browser.png b/icons/Paper/16x16/apps/internet-web-browser.png new file mode 100644 index 0000000..e99f790 Binary files /dev/null and b/icons/Paper/16x16/apps/internet-web-browser.png differ diff --git a/icons/Paper/16x16/apps/ipython.png b/icons/Paper/16x16/apps/ipython.png new file mode 120000 index 0000000..da8068a --- /dev/null +++ b/icons/Paper/16x16/apps/ipython.png @@ -0,0 +1 @@ +python.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/irc-chat.png b/icons/Paper/16x16/apps/irc-chat.png new file mode 100644 index 0000000..9b0dad2 Binary files /dev/null and b/icons/Paper/16x16/apps/irc-chat.png differ diff --git a/icons/Paper/16x16/apps/java-1.8.0.png.png b/icons/Paper/16x16/apps/java-1.8.0.png.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/java-1.8.0.png.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/java.png b/icons/Paper/16x16/apps/java.png new file mode 100644 index 0000000..752ad49 Binary files /dev/null and b/icons/Paper/16x16/apps/java.png differ diff --git a/icons/Paper/16x16/apps/javaws.png b/icons/Paper/16x16/apps/javaws.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/javaws.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/jetbrains-idea.png b/icons/Paper/16x16/apps/jetbrains-idea.png new file mode 120000 index 0000000..bbab682 --- /dev/null +++ b/icons/Paper/16x16/apps/jetbrains-idea.png @@ -0,0 +1 @@ +intellij-idea.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/jockey.png b/icons/Paper/16x16/apps/jockey.png new file mode 100644 index 0000000..799de42 Binary files /dev/null and b/icons/Paper/16x16/apps/jockey.png differ diff --git a/icons/Paper/16x16/apps/juffed.png b/icons/Paper/16x16/apps/juffed.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/juffed.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/k3b.png b/icons/Paper/16x16/apps/k3b.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/k3b.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kaddressbook.png b/icons/Paper/16x16/apps/kaddressbook.png new file mode 120000 index 0000000..cf4cbc8 --- /dev/null +++ b/icons/Paper/16x16/apps/kaddressbook.png @@ -0,0 +1 @@ +office-address-book.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kaffeine.png b/icons/Paper/16x16/apps/kaffeine.png new file mode 120000 index 0000000..617144d --- /dev/null +++ b/icons/Paper/16x16/apps/kaffeine.png @@ -0,0 +1 @@ +video-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kamoso.png b/icons/Paper/16x16/apps/kamoso.png new file mode 120000 index 0000000..b5d0590 --- /dev/null +++ b/icons/Paper/16x16/apps/kamoso.png @@ -0,0 +1 @@ +accessories-camera.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kate.png b/icons/Paper/16x16/apps/kate.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/kate.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kbugbuster.png b/icons/Paper/16x16/apps/kbugbuster.png new file mode 120000 index 0000000..0917c32 --- /dev/null +++ b/icons/Paper/16x16/apps/kbugbuster.png @@ -0,0 +1 @@ +system-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kcalc.png b/icons/Paper/16x16/apps/kcalc.png new file mode 120000 index 0000000..264ccdb --- /dev/null +++ b/icons/Paper/16x16/apps/kcalc.png @@ -0,0 +1 @@ +accessories-calculator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kcharselect.png b/icons/Paper/16x16/apps/kcharselect.png new file mode 120000 index 0000000..63a7ce0 --- /dev/null +++ b/icons/Paper/16x16/apps/kcharselect.png @@ -0,0 +1 @@ +accessories-character-map.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kcmkwm.png b/icons/Paper/16x16/apps/kcmkwm.png new file mode 120000 index 0000000..1d414f9 --- /dev/null +++ b/icons/Paper/16x16/apps/kcmkwm.png @@ -0,0 +1 @@ +preferences-system-windows.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kcmsound.png b/icons/Paper/16x16/apps/kcmsound.png new file mode 120000 index 0000000..fbdfcf6 --- /dev/null +++ b/icons/Paper/16x16/apps/kcmsound.png @@ -0,0 +1 @@ +multimedia-volume-control.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kcolorchooser.png b/icons/Paper/16x16/apps/kcolorchooser.png new file mode 120000 index 0000000..aa1ca2a --- /dev/null +++ b/icons/Paper/16x16/apps/kcolorchooser.png @@ -0,0 +1 @@ +color-picker.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kdenlive.png b/icons/Paper/16x16/apps/kdenlive.png new file mode 120000 index 0000000..617144d --- /dev/null +++ b/icons/Paper/16x16/apps/kdenlive.png @@ -0,0 +1 @@ +video-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kedit.png b/icons/Paper/16x16/apps/kedit.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/kedit.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/keepass.png b/icons/Paper/16x16/apps/keepass.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/keepass.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/keepass2.png b/icons/Paper/16x16/apps/keepass2.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/keepass2.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/keepassx.png b/icons/Paper/16x16/apps/keepassx.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/keepassx.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/keepassx2.png b/icons/Paper/16x16/apps/keepassx2.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/keepassx2.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/keepassxc.png b/icons/Paper/16x16/apps/keepassxc.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/keepassxc.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/key_bindings.png b/icons/Paper/16x16/apps/key_bindings.png new file mode 120000 index 0000000..24976e0 --- /dev/null +++ b/icons/Paper/16x16/apps/key_bindings.png @@ -0,0 +1 @@ +preferences-desktop-keyboard-shortcuts.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kfm.png b/icons/Paper/16x16/apps/kfm.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/kfm.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kfontview.png b/icons/Paper/16x16/apps/kfontview.png new file mode 120000 index 0000000..4012ca8 --- /dev/null +++ b/icons/Paper/16x16/apps/kfontview.png @@ -0,0 +1 @@ +preferences-desktop-font.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/khelpcenter.png b/icons/Paper/16x16/apps/khelpcenter.png new file mode 120000 index 0000000..3230344 --- /dev/null +++ b/icons/Paper/16x16/apps/khelpcenter.png @@ -0,0 +1 @@ +help-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/klipper.png b/icons/Paper/16x16/apps/klipper.png new file mode 120000 index 0000000..21690e3 --- /dev/null +++ b/icons/Paper/16x16/apps/klipper.png @@ -0,0 +1 @@ +accessories-clipboard.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kmail.png b/icons/Paper/16x16/apps/kmail.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/kmail.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kmix.png b/icons/Paper/16x16/apps/kmix.png new file mode 120000 index 0000000..4772777 --- /dev/null +++ b/icons/Paper/16x16/apps/kmix.png @@ -0,0 +1 @@ +preferences-system-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/knotes.png b/icons/Paper/16x16/apps/knotes.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/knotes.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/knotify.png b/icons/Paper/16x16/apps/knotify.png new file mode 120000 index 0000000..94c16df --- /dev/null +++ b/icons/Paper/16x16/apps/knotify.png @@ -0,0 +1 @@ +preferences-desktop-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kodi.png b/icons/Paper/16x16/apps/kodi.png new file mode 100644 index 0000000..a38bb1f Binary files /dev/null and b/icons/Paper/16x16/apps/kodi.png differ diff --git a/icons/Paper/16x16/apps/kolourpaint.png b/icons/Paper/16x16/apps/kolourpaint.png new file mode 120000 index 0000000..276eefe --- /dev/null +++ b/icons/Paper/16x16/apps/kolourpaint.png @@ -0,0 +1 @@ +accessories-paint.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/konsole.png b/icons/Paper/16x16/apps/konsole.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/konsole.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kontact.png b/icons/Paper/16x16/apps/kontact.png new file mode 120000 index 0000000..cf4cbc8 --- /dev/null +++ b/icons/Paper/16x16/apps/kontact.png @@ -0,0 +1 @@ +office-address-book.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/korganizer.png b/icons/Paper/16x16/apps/korganizer.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/korganizer.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/krfb.png b/icons/Paper/16x16/apps/krfb.png new file mode 120000 index 0000000..8960533 --- /dev/null +++ b/icons/Paper/16x16/apps/krfb.png @@ -0,0 +1 @@ +preferences-desktop-remote-desktop.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kscreensaver.png b/icons/Paper/16x16/apps/kscreensaver.png new file mode 120000 index 0000000..305fd35 --- /dev/null +++ b/icons/Paper/16x16/apps/kscreensaver.png @@ -0,0 +1 @@ +preferences-desktop-screensaver.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ksnapshot.png b/icons/Paper/16x16/apps/ksnapshot.png new file mode 120000 index 0000000..8bc999c --- /dev/null +++ b/icons/Paper/16x16/apps/ksnapshot.png @@ -0,0 +1 @@ +accessories-screenshot.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ksnapshot.png3 b/icons/Paper/16x16/apps/ksnapshot.png3 new file mode 120000 index 0000000..8bc999c --- /dev/null +++ b/icons/Paper/16x16/apps/ksnapshot.png3 @@ -0,0 +1 @@ +accessories-screenshot.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ksysguard.png b/icons/Paper/16x16/apps/ksysguard.png new file mode 120000 index 0000000..a30efbf --- /dev/null +++ b/icons/Paper/16x16/apps/ksysguard.png @@ -0,0 +1 @@ +utilities-system-monitor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ktp-contacts.png b/icons/Paper/16x16/apps/ktp-contacts.png new file mode 120000 index 0000000..cf4cbc8 --- /dev/null +++ b/icons/Paper/16x16/apps/ktp-contacts.png @@ -0,0 +1 @@ +office-address-book.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kuser.png b/icons/Paper/16x16/apps/kuser.png new file mode 120000 index 0000000..83fb95c --- /dev/null +++ b/icons/Paper/16x16/apps/kuser.png @@ -0,0 +1 @@ +system-users.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/kwin.png b/icons/Paper/16x16/apps/kwin.png new file mode 120000 index 0000000..1d414f9 --- /dev/null +++ b/icons/Paper/16x16/apps/kwin.png @@ -0,0 +1 @@ +preferences-system-windows.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice-base.png b/icons/Paper/16x16/apps/libreoffice-base.png new file mode 100644 index 0000000..eb6818c Binary files /dev/null and b/icons/Paper/16x16/apps/libreoffice-base.png differ diff --git a/icons/Paper/16x16/apps/libreoffice-calc.png b/icons/Paper/16x16/apps/libreoffice-calc.png new file mode 100644 index 0000000..97cb1a0 Binary files /dev/null and b/icons/Paper/16x16/apps/libreoffice-calc.png differ diff --git a/icons/Paper/16x16/apps/libreoffice-draw.png b/icons/Paper/16x16/apps/libreoffice-draw.png new file mode 100644 index 0000000..b62a50f Binary files /dev/null and b/icons/Paper/16x16/apps/libreoffice-draw.png differ diff --git a/icons/Paper/16x16/apps/libreoffice-impress.png b/icons/Paper/16x16/apps/libreoffice-impress.png new file mode 100644 index 0000000..1983df4 Binary files /dev/null and b/icons/Paper/16x16/apps/libreoffice-impress.png differ diff --git a/icons/Paper/16x16/apps/libreoffice-main.png b/icons/Paper/16x16/apps/libreoffice-main.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice-main.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice-math.png b/icons/Paper/16x16/apps/libreoffice-math.png new file mode 100644 index 0000000..26a5aea Binary files /dev/null and b/icons/Paper/16x16/apps/libreoffice-math.png differ diff --git a/icons/Paper/16x16/apps/libreoffice-startcenter.png b/icons/Paper/16x16/apps/libreoffice-startcenter.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice-startcenter.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice-suite.png b/icons/Paper/16x16/apps/libreoffice-suite.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice-suite.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice-writer.png b/icons/Paper/16x16/apps/libreoffice-writer.png new file mode 100644 index 0000000..c850ea4 Binary files /dev/null and b/icons/Paper/16x16/apps/libreoffice-writer.png differ diff --git a/icons/Paper/16x16/apps/libreoffice.png b/icons/Paper/16x16/apps/libreoffice.png new file mode 100644 index 0000000..d4f43fe Binary files /dev/null and b/icons/Paper/16x16/apps/libreoffice.png differ diff --git a/icons/Paper/16x16/apps/libreoffice3-base.png b/icons/Paper/16x16/apps/libreoffice3-base.png new file mode 120000 index 0000000..aba8fa0 --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice3-base.png @@ -0,0 +1 @@ +libreoffice-base.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice3-calc.png b/icons/Paper/16x16/apps/libreoffice3-calc.png new file mode 120000 index 0000000..5fa0d28 --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice3-calc.png @@ -0,0 +1 @@ +libreoffice-calc.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice3-draw.png b/icons/Paper/16x16/apps/libreoffice3-draw.png new file mode 120000 index 0000000..a87efdb --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice3-draw.png @@ -0,0 +1 @@ +libreoffice-draw.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice3-impress.png b/icons/Paper/16x16/apps/libreoffice3-impress.png new file mode 120000 index 0000000..39f78bd --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice3-impress.png @@ -0,0 +1 @@ +libreoffice-impress.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice3-main.png b/icons/Paper/16x16/apps/libreoffice3-main.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice3-main.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice3-math.png b/icons/Paper/16x16/apps/libreoffice3-math.png new file mode 120000 index 0000000..4e0cafa --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice3-math.png @@ -0,0 +1 @@ +libreoffice-math.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice3-startcenter.png b/icons/Paper/16x16/apps/libreoffice3-startcenter.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice3-startcenter.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice3-writer.png b/icons/Paper/16x16/apps/libreoffice3-writer.png new file mode 120000 index 0000000..761a51f --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice3-writer.png @@ -0,0 +1 @@ +libreoffice-writer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice3.png b/icons/Paper/16x16/apps/libreoffice3.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice3.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice34-base.png b/icons/Paper/16x16/apps/libreoffice34-base.png new file mode 120000 index 0000000..aba8fa0 --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice34-base.png @@ -0,0 +1 @@ +libreoffice-base.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice34-calc.png b/icons/Paper/16x16/apps/libreoffice34-calc.png new file mode 120000 index 0000000..5fa0d28 --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice34-calc.png @@ -0,0 +1 @@ +libreoffice-calc.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice34-draw.png b/icons/Paper/16x16/apps/libreoffice34-draw.png new file mode 120000 index 0000000..a87efdb --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice34-draw.png @@ -0,0 +1 @@ +libreoffice-draw.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice34-impress.png b/icons/Paper/16x16/apps/libreoffice34-impress.png new file mode 120000 index 0000000..39f78bd --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice34-impress.png @@ -0,0 +1 @@ +libreoffice-impress.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice34-main.png b/icons/Paper/16x16/apps/libreoffice34-main.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice34-main.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice34-math.png b/icons/Paper/16x16/apps/libreoffice34-math.png new file mode 120000 index 0000000..4e0cafa --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice34-math.png @@ -0,0 +1 @@ +libreoffice-math.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice34-writer.png b/icons/Paper/16x16/apps/libreoffice34-writer.png new file mode 120000 index 0000000..761a51f --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice34-writer.png @@ -0,0 +1 @@ +libreoffice-writer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice34.png b/icons/Paper/16x16/apps/libreoffice34.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice34.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice4.2-calc.png b/icons/Paper/16x16/apps/libreoffice4.2-calc.png new file mode 120000 index 0000000..5fa0d28 --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice4.2-calc.png @@ -0,0 +1 @@ +libreoffice-calc.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice4.2-draw.png b/icons/Paper/16x16/apps/libreoffice4.2-draw.png new file mode 120000 index 0000000..a87efdb --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice4.2-draw.png @@ -0,0 +1 @@ +libreoffice-draw.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice4.2-impress.png b/icons/Paper/16x16/apps/libreoffice4.2-impress.png new file mode 120000 index 0000000..39f78bd --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice4.2-impress.png @@ -0,0 +1 @@ +libreoffice-impress.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice4.2-main.png b/icons/Paper/16x16/apps/libreoffice4.2-main.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice4.2-main.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice4.2-math.png b/icons/Paper/16x16/apps/libreoffice4.2-math.png new file mode 120000 index 0000000..4e0cafa --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice4.2-math.png @@ -0,0 +1 @@ +libreoffice-math.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice4.2-startcenter.png b/icons/Paper/16x16/apps/libreoffice4.2-startcenter.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice4.2-startcenter.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice4.2-writer.png b/icons/Paper/16x16/apps/libreoffice4.2-writer.png new file mode 120000 index 0000000..761a51f --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice4.2-writer.png @@ -0,0 +1 @@ +libreoffice-writer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice4.2.png b/icons/Paper/16x16/apps/libreoffice4.2.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice4.2.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice5.3-base.png b/icons/Paper/16x16/apps/libreoffice5.3-base.png new file mode 120000 index 0000000..aba8fa0 --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice5.3-base.png @@ -0,0 +1 @@ +libreoffice-base.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice5.3-calc.png b/icons/Paper/16x16/apps/libreoffice5.3-calc.png new file mode 120000 index 0000000..5fa0d28 --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice5.3-calc.png @@ -0,0 +1 @@ +libreoffice-calc.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice5.3-draw.png b/icons/Paper/16x16/apps/libreoffice5.3-draw.png new file mode 120000 index 0000000..a87efdb --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice5.3-draw.png @@ -0,0 +1 @@ +libreoffice-draw.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice5.3-impress.png b/icons/Paper/16x16/apps/libreoffice5.3-impress.png new file mode 120000 index 0000000..39f78bd --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice5.3-impress.png @@ -0,0 +1 @@ +libreoffice-impress.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice5.3-main.png b/icons/Paper/16x16/apps/libreoffice5.3-main.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice5.3-main.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice5.3-math.png b/icons/Paper/16x16/apps/libreoffice5.3-math.png new file mode 120000 index 0000000..4e0cafa --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice5.3-math.png @@ -0,0 +1 @@ +libreoffice-math.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice5.3-startcenter.png b/icons/Paper/16x16/apps/libreoffice5.3-startcenter.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice5.3-startcenter.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice5.3-writer.png b/icons/Paper/16x16/apps/libreoffice5.3-writer.png new file mode 120000 index 0000000..761a51f --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice5.3-writer.png @@ -0,0 +1 @@ +libreoffice-writer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/libreoffice5.3.png b/icons/Paper/16x16/apps/libreoffice5.3.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/libreoffice5.3.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/liferea.png b/icons/Paper/16x16/apps/liferea.png new file mode 120000 index 0000000..76dfc2c --- /dev/null +++ b/icons/Paper/16x16/apps/liferea.png @@ -0,0 +1 @@ +internet-news-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/lightdm-gtk-greeter-settings.png b/icons/Paper/16x16/apps/lightdm-gtk-greeter-settings.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/lightdm-gtk-greeter-settings.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/linssid.png b/icons/Paper/16x16/apps/linssid.png new file mode 100644 index 0000000..94d21b5 Binary files /dev/null and b/icons/Paper/16x16/apps/linssid.png differ diff --git a/icons/Paper/16x16/apps/linssid32.png b/icons/Paper/16x16/apps/linssid32.png new file mode 120000 index 0000000..863416f --- /dev/null +++ b/icons/Paper/16x16/apps/linssid32.png @@ -0,0 +1 @@ +linssid.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/linssid48.png b/icons/Paper/16x16/apps/linssid48.png new file mode 120000 index 0000000..863416f --- /dev/null +++ b/icons/Paper/16x16/apps/linssid48.png @@ -0,0 +1 @@ +linssid.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/login.png b/icons/Paper/16x16/apps/login.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/login.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/logview.png b/icons/Paper/16x16/apps/logview.png new file mode 120000 index 0000000..4c61b9c --- /dev/null +++ b/icons/Paper/16x16/apps/logview.png @@ -0,0 +1 @@ +system-log-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/lollypop.png b/icons/Paper/16x16/apps/lollypop.png new file mode 100644 index 0000000..cefd65c Binary files /dev/null and b/icons/Paper/16x16/apps/lollypop.png differ diff --git a/icons/Paper/16x16/apps/lrfviewer.png b/icons/Paper/16x16/apps/lrfviewer.png new file mode 120000 index 0000000..2d66b82 --- /dev/null +++ b/icons/Paper/16x16/apps/lrfviewer.png @@ -0,0 +1 @@ +accessories-ebook-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/lubuntu-software-center.png b/icons/Paper/16x16/apps/lubuntu-software-center.png new file mode 120000 index 0000000..b06ddd2 --- /dev/null +++ b/icons/Paper/16x16/apps/lubuntu-software-center.png @@ -0,0 +1 @@ +software-store.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/luminance-hdr.png b/icons/Paper/16x16/apps/luminance-hdr.png new file mode 100644 index 0000000..a409690 Binary files /dev/null and b/icons/Paper/16x16/apps/luminance-hdr.png differ diff --git a/icons/Paper/16x16/apps/lximage-qt.png b/icons/Paper/16x16/apps/lximage-qt.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/lximage-qt.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/lximage.png b/icons/Paper/16x16/apps/lximage.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/lximage.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/lxterminal.png b/icons/Paper/16x16/apps/lxterminal.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/lxterminal.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mail-generic.png b/icons/Paper/16x16/apps/mail-generic.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/mail-generic.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mail_generic.png b/icons/Paper/16x16/apps/mail_generic.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/mail_generic.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/master-pdf-editor.png b/icons/Paper/16x16/apps/master-pdf-editor.png new file mode 120000 index 0000000..ebb981b --- /dev/null +++ b/icons/Paper/16x16/apps/master-pdf-editor.png @@ -0,0 +1 @@ +pdf-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mate-disk-usage-analyzer.png b/icons/Paper/16x16/apps/mate-disk-usage-analyzer.png new file mode 120000 index 0000000..3c844fb --- /dev/null +++ b/icons/Paper/16x16/apps/mate-disk-usage-analyzer.png @@ -0,0 +1 @@ +disk-usage-analyzer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mate-notification-properties.png b/icons/Paper/16x16/apps/mate-notification-properties.png new file mode 120000 index 0000000..aaf2c07 --- /dev/null +++ b/icons/Paper/16x16/apps/mate-notification-properties.png @@ -0,0 +1 @@ +preferences-system-notifications.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mate-panel-clock.png b/icons/Paper/16x16/apps/mate-panel-clock.png new file mode 120000 index 0000000..ebc58b4 --- /dev/null +++ b/icons/Paper/16x16/apps/mate-panel-clock.png @@ -0,0 +1 @@ +preferences-system-time.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mate-panel-workspace-switcher.png b/icons/Paper/16x16/apps/mate-panel-workspace-switcher.png new file mode 120000 index 0000000..f478eb5 --- /dev/null +++ b/icons/Paper/16x16/apps/mate-panel-workspace-switcher.png @@ -0,0 +1 @@ +workspace-switcher.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mate-panel.png b/icons/Paper/16x16/apps/mate-panel.png new file mode 120000 index 0000000..0308eee --- /dev/null +++ b/icons/Paper/16x16/apps/mate-panel.png @@ -0,0 +1 @@ +desktop-panel.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mate-preferences-desktop-display.png b/icons/Paper/16x16/apps/mate-preferences-desktop-display.png new file mode 120000 index 0000000..38f799a --- /dev/null +++ b/icons/Paper/16x16/apps/mate-preferences-desktop-display.png @@ -0,0 +1 @@ +preferences-desktop-display.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mate-session-properties.png b/icons/Paper/16x16/apps/mate-session-properties.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/mate-session-properties.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mathematica.png b/icons/Paper/16x16/apps/mathematica.png new file mode 100644 index 0000000..52b829c Binary files /dev/null and b/icons/Paper/16x16/apps/mathematica.png differ diff --git a/icons/Paper/16x16/apps/maya.png b/icons/Paper/16x16/apps/maya.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/maya.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mdmsetup.png b/icons/Paper/16x16/apps/mdmsetup.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/mdmsetup.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/media-player-banshee.png b/icons/Paper/16x16/apps/media-player-banshee.png new file mode 120000 index 0000000..aeec50b --- /dev/null +++ b/icons/Paper/16x16/apps/media-player-banshee.png @@ -0,0 +1 @@ +banshee.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/medit.png b/icons/Paper/16x16/apps/medit.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/medit.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/meld.png b/icons/Paper/16x16/apps/meld.png new file mode 100644 index 0000000..c575d2f Binary files /dev/null and b/icons/Paper/16x16/apps/meld.png differ diff --git a/icons/Paper/16x16/apps/mendeley.png b/icons/Paper/16x16/apps/mendeley.png new file mode 120000 index 0000000..c62d888 --- /dev/null +++ b/icons/Paper/16x16/apps/mendeley.png @@ -0,0 +1 @@ +mendeleydesktop.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mendeleydesktop.png b/icons/Paper/16x16/apps/mendeleydesktop.png new file mode 100644 index 0000000..c06a0c9 Binary files /dev/null and b/icons/Paper/16x16/apps/mendeleydesktop.png differ diff --git a/icons/Paper/16x16/apps/mgba.png b/icons/Paper/16x16/apps/mgba.png new file mode 100644 index 0000000..f1d005a Binary files /dev/null and b/icons/Paper/16x16/apps/mgba.png differ diff --git a/icons/Paper/16x16/apps/midori.png b/icons/Paper/16x16/apps/midori.png new file mode 100644 index 0000000..bd88128 Binary files /dev/null and b/icons/Paper/16x16/apps/midori.png differ diff --git a/icons/Paper/16x16/apps/minecraft.png b/icons/Paper/16x16/apps/minecraft.png new file mode 100644 index 0000000..de8a557 Binary files /dev/null and b/icons/Paper/16x16/apps/minecraft.png differ diff --git a/icons/Paper/16x16/apps/mintbackup.png b/icons/Paper/16x16/apps/mintbackup.png new file mode 120000 index 0000000..d118d21 --- /dev/null +++ b/icons/Paper/16x16/apps/mintbackup.png @@ -0,0 +1 @@ +deja-dup.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mintdrivers.png b/icons/Paper/16x16/apps/mintdrivers.png new file mode 120000 index 0000000..3d6419a --- /dev/null +++ b/icons/Paper/16x16/apps/mintdrivers.png @@ -0,0 +1 @@ +jockey.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mintinstall.png b/icons/Paper/16x16/apps/mintinstall.png new file mode 120000 index 0000000..b06ddd2 --- /dev/null +++ b/icons/Paper/16x16/apps/mintinstall.png @@ -0,0 +1 @@ +software-store.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mintsources.png b/icons/Paper/16x16/apps/mintsources.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/mintsources.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mintupdate.png b/icons/Paper/16x16/apps/mintupdate.png new file mode 120000 index 0000000..de4b456 --- /dev/null +++ b/icons/Paper/16x16/apps/mintupdate.png @@ -0,0 +1 @@ +system-software-update.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mirage.png b/icons/Paper/16x16/apps/mirage.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/mirage.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mixxx-icon.png b/icons/Paper/16x16/apps/mixxx-icon.png new file mode 100644 index 0000000..063b8e8 Binary files /dev/null and b/icons/Paper/16x16/apps/mixxx-icon.png differ diff --git a/icons/Paper/16x16/apps/mono-runtime-common.png b/icons/Paper/16x16/apps/mono-runtime-common.png new file mode 120000 index 0000000..1afd882 --- /dev/null +++ b/icons/Paper/16x16/apps/mono-runtime-common.png @@ -0,0 +1 @@ +mono-runtime.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mono-runtime.png b/icons/Paper/16x16/apps/mono-runtime.png new file mode 100644 index 0000000..9c2de04 Binary files /dev/null and b/icons/Paper/16x16/apps/mono-runtime.png differ diff --git a/icons/Paper/16x16/apps/mono.png b/icons/Paper/16x16/apps/mono.png new file mode 120000 index 0000000..1afd882 --- /dev/null +++ b/icons/Paper/16x16/apps/mono.png @@ -0,0 +1 @@ +mono-runtime.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/monodoc.png b/icons/Paper/16x16/apps/monodoc.png new file mode 100644 index 0000000..7d06daf Binary files /dev/null and b/icons/Paper/16x16/apps/monodoc.png differ diff --git a/icons/Paper/16x16/apps/mpv-icon-8bit-64x64.png b/icons/Paper/16x16/apps/mpv-icon-8bit-64x64.png new file mode 120000 index 0000000..3c649ee --- /dev/null +++ b/icons/Paper/16x16/apps/mpv-icon-8bit-64x64.png @@ -0,0 +1 @@ +mpv.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mpv.png b/icons/Paper/16x16/apps/mpv.png new file mode 100644 index 0000000..6b21513 Binary files /dev/null and b/icons/Paper/16x16/apps/mpv.png differ diff --git a/icons/Paper/16x16/apps/mugshot.png b/icons/Paper/16x16/apps/mugshot.png new file mode 120000 index 0000000..83fb95c --- /dev/null +++ b/icons/Paper/16x16/apps/mugshot.png @@ -0,0 +1 @@ +system-users.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/multimedia-audio-player.png b/icons/Paper/16x16/apps/multimedia-audio-player.png new file mode 100644 index 0000000..9711883 Binary files /dev/null and b/icons/Paper/16x16/apps/multimedia-audio-player.png differ diff --git a/icons/Paper/16x16/apps/multimedia-photo-manager.png b/icons/Paper/16x16/apps/multimedia-photo-manager.png new file mode 100644 index 0000000..7438eb2 Binary files /dev/null and b/icons/Paper/16x16/apps/multimedia-photo-manager.png differ diff --git a/icons/Paper/16x16/apps/multimedia-photo-viewer.png b/icons/Paper/16x16/apps/multimedia-photo-viewer.png new file mode 100644 index 0000000..425299a Binary files /dev/null and b/icons/Paper/16x16/apps/multimedia-photo-viewer.png differ diff --git a/icons/Paper/16x16/apps/multimedia-video-player.png b/icons/Paper/16x16/apps/multimedia-video-player.png new file mode 100644 index 0000000..686e59c Binary files /dev/null and b/icons/Paper/16x16/apps/multimedia-video-player.png differ diff --git a/icons/Paper/16x16/apps/multimedia-volume-control.png b/icons/Paper/16x16/apps/multimedia-volume-control.png new file mode 120000 index 0000000..4772777 --- /dev/null +++ b/icons/Paper/16x16/apps/multimedia-volume-control.png @@ -0,0 +1 @@ +preferences-system-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/multimedia.png b/icons/Paper/16x16/apps/multimedia.png new file mode 120000 index 0000000..fbdfcf6 --- /dev/null +++ b/icons/Paper/16x16/apps/multimedia.png @@ -0,0 +1 @@ +multimedia-volume-control.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/multitasking-view.png b/icons/Paper/16x16/apps/multitasking-view.png new file mode 100644 index 0000000..915bad3 Binary files /dev/null and b/icons/Paper/16x16/apps/multitasking-view.png differ diff --git a/icons/Paper/16x16/apps/mumble.png b/icons/Paper/16x16/apps/mumble.png new file mode 100644 index 0000000..1acb20d Binary files /dev/null and b/icons/Paper/16x16/apps/mumble.png differ diff --git a/icons/Paper/16x16/apps/muon.png b/icons/Paper/16x16/apps/muon.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/muon.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/mupdf.png b/icons/Paper/16x16/apps/mupdf.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/mupdf.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/museeq.png b/icons/Paper/16x16/apps/museeq.png new file mode 100644 index 0000000..540e72c Binary files /dev/null and b/icons/Paper/16x16/apps/museeq.png differ diff --git a/icons/Paper/16x16/apps/mypaint.png b/icons/Paper/16x16/apps/mypaint.png new file mode 120000 index 0000000..276eefe --- /dev/null +++ b/icons/Paper/16x16/apps/mypaint.png @@ -0,0 +1 @@ +accessories-paint.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nautilus-actions-config-tool.png b/icons/Paper/16x16/apps/nautilus-actions-config-tool.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/nautilus-actions-config-tool.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nautilus-actions.png b/icons/Paper/16x16/apps/nautilus-actions.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/nautilus-actions.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nautilus.png b/icons/Paper/16x16/apps/nautilus.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/nautilus.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nemo.png b/icons/Paper/16x16/apps/nemo.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/nemo.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nepomuk.png b/icons/Paper/16x16/apps/nepomuk.png new file mode 120000 index 0000000..22c813d --- /dev/null +++ b/icons/Paper/16x16/apps/nepomuk.png @@ -0,0 +1 @@ +preferences-system-search.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/netbeans-beta.png b/icons/Paper/16x16/apps/netbeans-beta.png new file mode 120000 index 0000000..b9f22e3 --- /dev/null +++ b/icons/Paper/16x16/apps/netbeans-beta.png @@ -0,0 +1 @@ +netbeans.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/netbeans.png b/icons/Paper/16x16/apps/netbeans.png new file mode 100644 index 0000000..82cbadb Binary files /dev/null and b/icons/Paper/16x16/apps/netbeans.png differ diff --git a/icons/Paper/16x16/apps/notes.png b/icons/Paper/16x16/apps/notes.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/notes.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nvidia-310-settings.png b/icons/Paper/16x16/apps/nvidia-310-settings.png new file mode 120000 index 0000000..e796e8b --- /dev/null +++ b/icons/Paper/16x16/apps/nvidia-310-settings.png @@ -0,0 +1 @@ +nvidia-settings.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nvidia-current-settings.png b/icons/Paper/16x16/apps/nvidia-current-settings.png new file mode 120000 index 0000000..e796e8b --- /dev/null +++ b/icons/Paper/16x16/apps/nvidia-current-settings.png @@ -0,0 +1 @@ +nvidia-settings.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nvidia-current-updates-settings.png b/icons/Paper/16x16/apps/nvidia-current-updates-settings.png new file mode 120000 index 0000000..e796e8b --- /dev/null +++ b/icons/Paper/16x16/apps/nvidia-current-updates-settings.png @@ -0,0 +1 @@ +nvidia-settings.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nvidia-drivers-settings.png b/icons/Paper/16x16/apps/nvidia-drivers-settings.png new file mode 120000 index 0000000..e796e8b --- /dev/null +++ b/icons/Paper/16x16/apps/nvidia-drivers-settings.png @@ -0,0 +1 @@ +nvidia-settings.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nvidia-settings.png b/icons/Paper/16x16/apps/nvidia-settings.png new file mode 100644 index 0000000..9c9be32 Binary files /dev/null and b/icons/Paper/16x16/apps/nvidia-settings.png differ diff --git a/icons/Paper/16x16/apps/nvidia-x-server-setting.png b/icons/Paper/16x16/apps/nvidia-x-server-setting.png new file mode 120000 index 0000000..e796e8b --- /dev/null +++ b/icons/Paper/16x16/apps/nvidia-x-server-setting.png @@ -0,0 +1 @@ +nvidia-settings.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nvidia-x-server-settings.png b/icons/Paper/16x16/apps/nvidia-x-server-settings.png new file mode 120000 index 0000000..e796e8b --- /dev/null +++ b/icons/Paper/16x16/apps/nvidia-x-server-settings.png @@ -0,0 +1 @@ +nvidia-settings.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/nylas.png b/icons/Paper/16x16/apps/nylas.png new file mode 100644 index 0000000..2dafadc Binary files /dev/null and b/icons/Paper/16x16/apps/nylas.png differ diff --git a/icons/Paper/16x16/apps/octopi.png b/icons/Paper/16x16/apps/octopi.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/octopi.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/office-address-book.png b/icons/Paper/16x16/apps/office-address-book.png new file mode 100644 index 0000000..c4fcfe7 Binary files /dev/null and b/icons/Paper/16x16/apps/office-address-book.png differ diff --git a/icons/Paper/16x16/apps/office-addressbook.png b/icons/Paper/16x16/apps/office-addressbook.png new file mode 120000 index 0000000..cf4cbc8 --- /dev/null +++ b/icons/Paper/16x16/apps/office-addressbook.png @@ -0,0 +1 @@ +office-address-book.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/office-calendar.png b/icons/Paper/16x16/apps/office-calendar.png new file mode 100644 index 0000000..035c815 Binary files /dev/null and b/icons/Paper/16x16/apps/office-calendar.png differ diff --git a/icons/Paper/16x16/apps/okular.png b/icons/Paper/16x16/apps/okular.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/okular.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ooo-base.png b/icons/Paper/16x16/apps/ooo-base.png new file mode 120000 index 0000000..aba8fa0 --- /dev/null +++ b/icons/Paper/16x16/apps/ooo-base.png @@ -0,0 +1 @@ +libreoffice-base.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ooo-calc.png b/icons/Paper/16x16/apps/ooo-calc.png new file mode 120000 index 0000000..5fa0d28 --- /dev/null +++ b/icons/Paper/16x16/apps/ooo-calc.png @@ -0,0 +1 @@ +libreoffice-calc.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ooo-draw.png b/icons/Paper/16x16/apps/ooo-draw.png new file mode 120000 index 0000000..a87efdb --- /dev/null +++ b/icons/Paper/16x16/apps/ooo-draw.png @@ -0,0 +1 @@ +libreoffice-draw.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ooo-impress.png b/icons/Paper/16x16/apps/ooo-impress.png new file mode 120000 index 0000000..39f78bd --- /dev/null +++ b/icons/Paper/16x16/apps/ooo-impress.png @@ -0,0 +1 @@ +libreoffice-impress.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ooo-math.png b/icons/Paper/16x16/apps/ooo-math.png new file mode 120000 index 0000000..4e0cafa --- /dev/null +++ b/icons/Paper/16x16/apps/ooo-math.png @@ -0,0 +1 @@ +libreoffice-math.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ooo-writer.png b/icons/Paper/16x16/apps/ooo-writer.png new file mode 120000 index 0000000..761a51f --- /dev/null +++ b/icons/Paper/16x16/apps/ooo-writer.png @@ -0,0 +1 @@ +libreoffice-writer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ooo.png b/icons/Paper/16x16/apps/ooo.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/ooo.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/openjdk-6.png b/icons/Paper/16x16/apps/openjdk-6.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/openjdk-6.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/openjdk-7.png b/icons/Paper/16x16/apps/openjdk-7.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/openjdk-7.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/openjdk-8.png b/icons/Paper/16x16/apps/openjdk-8.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/openjdk-8.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/openjdk-9.png b/icons/Paper/16x16/apps/openjdk-9.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/openjdk-9.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/openshot.png b/icons/Paper/16x16/apps/openshot.png new file mode 100644 index 0000000..47cc75a Binary files /dev/null and b/icons/Paper/16x16/apps/openshot.png differ diff --git a/icons/Paper/16x16/apps/openterm.png b/icons/Paper/16x16/apps/openterm.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/openterm.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/opera-beta.png b/icons/Paper/16x16/apps/opera-beta.png new file mode 100644 index 0000000..14fd6aa Binary files /dev/null and b/icons/Paper/16x16/apps/opera-beta.png differ diff --git a/icons/Paper/16x16/apps/opera-browser-icon.png b/icons/Paper/16x16/apps/opera-browser-icon.png new file mode 120000 index 0000000..b3b8c1e --- /dev/null +++ b/icons/Paper/16x16/apps/opera-browser-icon.png @@ -0,0 +1 @@ +opera.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/opera-browser.png b/icons/Paper/16x16/apps/opera-browser.png new file mode 120000 index 0000000..b3b8c1e --- /dev/null +++ b/icons/Paper/16x16/apps/opera-browser.png @@ -0,0 +1 @@ +opera.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/opera-developer.png b/icons/Paper/16x16/apps/opera-developer.png new file mode 100644 index 0000000..e8429ed Binary files /dev/null and b/icons/Paper/16x16/apps/opera-developer.png differ diff --git a/icons/Paper/16x16/apps/opera-icon.png b/icons/Paper/16x16/apps/opera-icon.png new file mode 120000 index 0000000..b3b8c1e --- /dev/null +++ b/icons/Paper/16x16/apps/opera-icon.png @@ -0,0 +1 @@ +opera.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/opera.png b/icons/Paper/16x16/apps/opera.png new file mode 100644 index 0000000..4259448 Binary files /dev/null and b/icons/Paper/16x16/apps/opera.png differ diff --git a/icons/Paper/16x16/apps/oracle-javaws.png b/icons/Paper/16x16/apps/oracle-javaws.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/oracle-javaws.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/oracle_java.png b/icons/Paper/16x16/apps/oracle_java.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/oracle_java.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/oracle_java6.png b/icons/Paper/16x16/apps/oracle_java6.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/oracle_java6.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/oracle_java7.png b/icons/Paper/16x16/apps/oracle_java7.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/oracle_java7.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/oracle_java8.png b/icons/Paper/16x16/apps/oracle_java8.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/oracle_java8.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/oracle_java9.png b/icons/Paper/16x16/apps/oracle_java9.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/oracle_java9.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/orage.png b/icons/Paper/16x16/apps/orage.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/orage.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/orage_globaltime.png b/icons/Paper/16x16/apps/orage_globaltime.png new file mode 120000 index 0000000..ebc58b4 --- /dev/null +++ b/icons/Paper/16x16/apps/orage_globaltime.png @@ -0,0 +1 @@ +preferences-system-time.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/orca.png b/icons/Paper/16x16/apps/orca.png new file mode 120000 index 0000000..124f56b --- /dev/null +++ b/icons/Paper/16x16/apps/orca.png @@ -0,0 +1 @@ +preferences-desktop-accessibility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.darktable.Darktable.png b/icons/Paper/16x16/apps/org.darktable.Darktable.png new file mode 120000 index 0000000..0933a28 --- /dev/null +++ b/icons/Paper/16x16/apps/org.darktable.Darktable.png @@ -0,0 +1 @@ +darktable.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gimp.GIMP.png b/icons/Paper/16x16/apps/org.gimp.GIMP.png new file mode 120000 index 0000000..f5a9827 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gimp.GIMP.png @@ -0,0 +1 @@ +gimp.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Aisleriot.png b/icons/Paper/16x16/apps/org.gnome.Aisleriot.png new file mode 120000 index 0000000..41b8968 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Aisleriot.png @@ -0,0 +1 @@ +gnome-aisleriot.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.ArchiveManager.png b/icons/Paper/16x16/apps/org.gnome.ArchiveManager.png new file mode 120000 index 0000000..cf7079d --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.ArchiveManager.png @@ -0,0 +1 @@ +archive-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Bijiben.png b/icons/Paper/16x16/apps/org.gnome.Bijiben.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Bijiben.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Books.png b/icons/Paper/16x16/apps/org.gnome.Books.png new file mode 120000 index 0000000..2d66b82 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Books.png @@ -0,0 +1 @@ +accessories-ebook-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Builder.png b/icons/Paper/16x16/apps/org.gnome.Builder.png new file mode 120000 index 0000000..5fbb57d --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Builder.png @@ -0,0 +1 @@ +builder.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Calculator.png b/icons/Paper/16x16/apps/org.gnome.Calculator.png new file mode 120000 index 0000000..264ccdb --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Calculator.png @@ -0,0 +1 @@ +accessories-calculator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Calendar.png b/icons/Paper/16x16/apps/org.gnome.Calendar.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Calendar.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Characters.png b/icons/Paper/16x16/apps/org.gnome.Characters.png new file mode 120000 index 0000000..63a7ce0 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Characters.png @@ -0,0 +1 @@ +accessories-character-map.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Cheese.png b/icons/Paper/16x16/apps/org.gnome.Cheese.png new file mode 120000 index 0000000..fa310be --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Cheese.png @@ -0,0 +1 @@ +cheese.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Clocks.png b/icons/Paper/16x16/apps/org.gnome.Clocks.png new file mode 120000 index 0000000..fe2255b --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Clocks.png @@ -0,0 +1 @@ +accessories-clock.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Contacts.png b/icons/Paper/16x16/apps/org.gnome.Contacts.png new file mode 120000 index 0000000..cf4cbc8 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Contacts.png @@ -0,0 +1 @@ +office-address-book.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.DejaDup.png b/icons/Paper/16x16/apps/org.gnome.DejaDup.png new file mode 120000 index 0000000..d118d21 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.DejaDup.png @@ -0,0 +1 @@ +deja-dup.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Devhelp.png b/icons/Paper/16x16/apps/org.gnome.Devhelp.png new file mode 120000 index 0000000..38d1b80 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Devhelp.png @@ -0,0 +1 @@ +devhelp.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.DiskUtility.png b/icons/Paper/16x16/apps/org.gnome.DiskUtility.png new file mode 120000 index 0000000..73d9e36 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.DiskUtility.png @@ -0,0 +1 @@ +disk-utility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Documents.png b/icons/Paper/16x16/apps/org.gnome.Documents.png new file mode 120000 index 0000000..9f8c10d --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Documents.png @@ -0,0 +1 @@ +gnome-documents.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Empathy.png b/icons/Paper/16x16/apps/org.gnome.Empathy.png new file mode 120000 index 0000000..6008bc2 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Empathy.png @@ -0,0 +1 @@ +internet-chat.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Epiphany.png b/icons/Paper/16x16/apps/org.gnome.Epiphany.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Epiphany.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Evince.png b/icons/Paper/16x16/apps/org.gnome.Evince.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Evince.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.FeedReader.png b/icons/Paper/16x16/apps/org.gnome.FeedReader.png new file mode 120000 index 0000000..76dfc2c --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.FeedReader.png @@ -0,0 +1 @@ +internet-news-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Files.png b/icons/Paper/16x16/apps/org.gnome.Files.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Files.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.GIMP.png b/icons/Paper/16x16/apps/org.gnome.GIMP.png new file mode 120000 index 0000000..f5a9827 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.GIMP.png @@ -0,0 +1 @@ +gimp.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Games.png b/icons/Paper/16x16/apps/org.gnome.Games.png new file mode 120000 index 0000000..7d93a0b --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Games.png @@ -0,0 +1 @@ +gnome-games.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Geary.png b/icons/Paper/16x16/apps/org.gnome.Geary.png new file mode 120000 index 0000000..f0dc095 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Geary.png @@ -0,0 +1 @@ +geary.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Glade.png b/icons/Paper/16x16/apps/org.gnome.Glade.png new file mode 120000 index 0000000..9924df8 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Glade.png @@ -0,0 +1 @@ +glade.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Logs.png b/icons/Paper/16x16/apps/org.gnome.Logs.png new file mode 120000 index 0000000..4c61b9c --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Logs.png @@ -0,0 +1 @@ +system-log-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Lollypop.png b/icons/Paper/16x16/apps/org.gnome.Lollypop.png new file mode 120000 index 0000000..bff78fe --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Lollypop.png @@ -0,0 +1 @@ +lollypop.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Mahjongg.png b/icons/Paper/16x16/apps/org.gnome.Mahjongg.png new file mode 120000 index 0000000..b441ca4 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Mahjongg.png @@ -0,0 +1 @@ +gnome-mahjongg.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Maps.png b/icons/Paper/16x16/apps/org.gnome.Maps.png new file mode 120000 index 0000000..377dd17 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Maps.png @@ -0,0 +1 @@ +accessories-maps.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Meld.png b/icons/Paper/16x16/apps/org.gnome.Meld.png new file mode 120000 index 0000000..7381968 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Meld.png @@ -0,0 +1 @@ +meld.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Music.png b/icons/Paper/16x16/apps/org.gnome.Music.png new file mode 120000 index 0000000..62539dd --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Music.png @@ -0,0 +1 @@ +gnome-music.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Nautilus.png b/icons/Paper/16x16/apps/org.gnome.Nautilus.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Nautilus.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Photos.png b/icons/Paper/16x16/apps/org.gnome.Photos.png new file mode 120000 index 0000000..ef5ddd3 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Photos.png @@ -0,0 +1 @@ +gnome-photos.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Polari.png b/icons/Paper/16x16/apps/org.gnome.Polari.png new file mode 120000 index 0000000..12b04ea --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Polari.png @@ -0,0 +1 @@ +irc-chat.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.PowerStats.png b/icons/Paper/16x16/apps/org.gnome.PowerStats.png new file mode 120000 index 0000000..fcf76ac --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.PowerStats.png @@ -0,0 +1 @@ +gnome-power-statistics.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Screenshot.png b/icons/Paper/16x16/apps/org.gnome.Screenshot.png new file mode 120000 index 0000000..8bc999c --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Screenshot.png @@ -0,0 +1 @@ +accessories-screenshot.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Software.png b/icons/Paper/16x16/apps/org.gnome.Software.png new file mode 120000 index 0000000..b06ddd2 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Software.png @@ -0,0 +1 @@ +software-store.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.SoundRecorder.png b/icons/Paper/16x16/apps/org.gnome.SoundRecorder.png new file mode 120000 index 0000000..dfb50aa --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.SoundRecorder.png @@ -0,0 +1 @@ +sound-recorder.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.SystemMonitor.png b/icons/Paper/16x16/apps/org.gnome.SystemMonitor.png new file mode 120000 index 0000000..a30efbf --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.SystemMonitor.png @@ -0,0 +1 @@ +utilities-system-monitor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Terminal.png b/icons/Paper/16x16/apps/org.gnome.Terminal.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Terminal.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Todo.png b/icons/Paper/16x16/apps/org.gnome.Todo.png new file mode 120000 index 0000000..e4a875b --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Todo.png @@ -0,0 +1 @@ +gnome-todo.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Totem.png b/icons/Paper/16x16/apps/org.gnome.Totem.png new file mode 120000 index 0000000..5342b49 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Totem.png @@ -0,0 +1 @@ +multimedia-video-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Usage.png b/icons/Paper/16x16/apps/org.gnome.Usage.png new file mode 120000 index 0000000..a30efbf --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Usage.png @@ -0,0 +1 @@ +utilities-system-monitor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Weather.Application.png b/icons/Paper/16x16/apps/org.gnome.Weather.Application.png new file mode 120000 index 0000000..e9332c2 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Weather.Application.png @@ -0,0 +1 @@ +gnome-weather.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Weather.png b/icons/Paper/16x16/apps/org.gnome.Weather.png new file mode 120000 index 0000000..e9332c2 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Weather.png @@ -0,0 +1 @@ +gnome-weather.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.Yelp.png b/icons/Paper/16x16/apps/org.gnome.Yelp.png new file mode 120000 index 0000000..3230344 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.Yelp.png @@ -0,0 +1 @@ +help-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.baobab.png b/icons/Paper/16x16/apps/org.gnome.baobab.png new file mode 120000 index 0000000..3c844fb --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.baobab.png @@ -0,0 +1 @@ +disk-usage-analyzer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.bijiben.png b/icons/Paper/16x16/apps/org.gnome.bijiben.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.bijiben.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.clocks.png b/icons/Paper/16x16/apps/org.gnome.clocks.png new file mode 120000 index 0000000..fe2255b --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.clocks.png @@ -0,0 +1 @@ +accessories-clock.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.eog.png b/icons/Paper/16x16/apps/org.gnome.eog.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.eog.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.five-or-more.png b/icons/Paper/16x16/apps/org.gnome.five-or-more.png new file mode 120000 index 0000000..42ba267 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.five-or-more.png @@ -0,0 +1 @@ +five-or-more.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.font-viewer.png b/icons/Paper/16x16/apps/org.gnome.font-viewer.png new file mode 120000 index 0000000..4012ca8 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.font-viewer.png @@ -0,0 +1 @@ +preferences-desktop-font.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.gedit.png b/icons/Paper/16x16/apps/org.gnome.gedit.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.gedit.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.gitg.png b/icons/Paper/16x16/apps/org.gnome.gitg.png new file mode 120000 index 0000000..d3e7fce --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.gitg.png @@ -0,0 +1 @@ +gitg.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.meld.png b/icons/Paper/16x16/apps/org.gnome.meld.png new file mode 120000 index 0000000..7381968 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.meld.png @@ -0,0 +1 @@ +meld.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.gnome.tweaks.png b/icons/Paper/16x16/apps/org.gnome.tweaks.png new file mode 120000 index 0000000..f559472 --- /dev/null +++ b/icons/Paper/16x16/apps/org.gnome.tweaks.png @@ -0,0 +1 @@ +utilities-tweak-tool.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.inkscape.Inkscape.png b/icons/Paper/16x16/apps/org.inkscape.Inkscape.png new file mode 120000 index 0000000..edbe3f8 --- /dev/null +++ b/icons/Paper/16x16/apps/org.inkscape.Inkscape.png @@ -0,0 +1 @@ +inkscape.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-base.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-base.png new file mode 120000 index 0000000..aba8fa0 --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-base.png @@ -0,0 +1 @@ +libreoffice-base.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-calc.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-calc.png new file mode 120000 index 0000000..5fa0d28 --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-calc.png @@ -0,0 +1 @@ +libreoffice-calc.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-draw.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-draw.png new file mode 120000 index 0000000..a87efdb --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-draw.png @@ -0,0 +1 @@ +libreoffice-draw.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-impress.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-impress.png new file mode 120000 index 0000000..39f78bd --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-impress.png @@ -0,0 +1 @@ +libreoffice-impress.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-math.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-math.png new file mode 120000 index 0000000..4e0cafa --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-math.png @@ -0,0 +1 @@ +libreoffice-math.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-startcenter.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-startcenter.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-startcenter.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-writer.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-writer.png new file mode 120000 index 0000000..761a51f --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice-writer.png @@ -0,0 +1 @@ +libreoffice-writer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.base.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.base.png new file mode 120000 index 0000000..aba8fa0 --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.base.png @@ -0,0 +1 @@ +libreoffice-base.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.calc.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.calc.png new file mode 120000 index 0000000..5fa0d28 --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.calc.png @@ -0,0 +1 @@ +libreoffice-calc.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.draw.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.draw.png new file mode 120000 index 0000000..a87efdb --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.draw.png @@ -0,0 +1 @@ +libreoffice-draw.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.impress.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.impress.png new file mode 120000 index 0000000..39f78bd --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.impress.png @@ -0,0 +1 @@ +libreoffice-impress.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.math.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.math.png new file mode 120000 index 0000000..4e0cafa --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.math.png @@ -0,0 +1 @@ +libreoffice-math.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.startcenter.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.startcenter.png new file mode 120000 index 0000000..a0ba67d --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.startcenter.png @@ -0,0 +1 @@ +libreoffice.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.writer.png b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.writer.png new file mode 120000 index 0000000..761a51f --- /dev/null +++ b/icons/Paper/16x16/apps/org.libreoffice.LibreOffice.writer.png @@ -0,0 +1 @@ +libreoffice-writer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.mozilla.Firefox.png b/icons/Paper/16x16/apps/org.mozilla.Firefox.png new file mode 120000 index 0000000..93c4678 --- /dev/null +++ b/icons/Paper/16x16/apps/org.mozilla.Firefox.png @@ -0,0 +1 @@ +firefox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.mozilla.FirefoxDevEdition.png b/icons/Paper/16x16/apps/org.mozilla.FirefoxDevEdition.png new file mode 120000 index 0000000..ece30d5 --- /dev/null +++ b/icons/Paper/16x16/apps/org.mozilla.FirefoxDevEdition.png @@ -0,0 +1 @@ +firefox-nightly.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.mozilla.FirefoxNightly.png b/icons/Paper/16x16/apps/org.mozilla.FirefoxNightly.png new file mode 120000 index 0000000..ece30d5 --- /dev/null +++ b/icons/Paper/16x16/apps/org.mozilla.FirefoxNightly.png @@ -0,0 +1 @@ +firefox-nightly.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.mozilla.FirefoxNightlyWayland.png b/icons/Paper/16x16/apps/org.mozilla.FirefoxNightlyWayland.png new file mode 120000 index 0000000..ece30d5 --- /dev/null +++ b/icons/Paper/16x16/apps/org.mozilla.FirefoxNightlyWayland.png @@ -0,0 +1 @@ +firefox-nightly.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/org.videolan.VLC.png b/icons/Paper/16x16/apps/org.videolan.VLC.png new file mode 120000 index 0000000..7e93394 --- /dev/null +++ b/icons/Paper/16x16/apps/org.videolan.VLC.png @@ -0,0 +1 @@ +vlc.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/osmo.png b/icons/Paper/16x16/apps/osmo.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/osmo.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/p7zip.png b/icons/Paper/16x16/apps/p7zip.png new file mode 120000 index 0000000..47fb1da --- /dev/null +++ b/icons/Paper/16x16/apps/p7zip.png @@ -0,0 +1 @@ +7zip.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/palimpsest.png b/icons/Paper/16x16/apps/palimpsest.png new file mode 120000 index 0000000..73d9e36 --- /dev/null +++ b/icons/Paper/16x16/apps/palimpsest.png @@ -0,0 +1 @@ +disk-utility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pamac-manager.png b/icons/Paper/16x16/apps/pamac-manager.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/pamac-manager.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pamac-updater.png b/icons/Paper/16x16/apps/pamac-updater.png new file mode 120000 index 0000000..de4b456 --- /dev/null +++ b/icons/Paper/16x16/apps/pamac-updater.png @@ -0,0 +1 @@ +system-software-update.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pamac.png b/icons/Paper/16x16/apps/pamac.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/pamac.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pan.png b/icons/Paper/16x16/apps/pan.png new file mode 120000 index 0000000..76dfc2c --- /dev/null +++ b/icons/Paper/16x16/apps/pan.png @@ -0,0 +1 @@ +internet-news-reader.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/parole.png b/icons/Paper/16x16/apps/parole.png new file mode 120000 index 0000000..5342b49 --- /dev/null +++ b/icons/Paper/16x16/apps/parole.png @@ -0,0 +1 @@ +multimedia-video-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/partitionmanager.png b/icons/Paper/16x16/apps/partitionmanager.png new file mode 120000 index 0000000..f570b0a --- /dev/null +++ b/icons/Paper/16x16/apps/partitionmanager.png @@ -0,0 +1 @@ +disk-partition-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/password-manager.png b/icons/Paper/16x16/apps/password-manager.png new file mode 100644 index 0000000..6290846 Binary files /dev/null and b/icons/Paper/16x16/apps/password-manager.png differ diff --git a/icons/Paper/16x16/apps/password.png b/icons/Paper/16x16/apps/password.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/password.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/passwords.png b/icons/Paper/16x16/apps/passwords.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/passwords.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pdf-editor.png b/icons/Paper/16x16/apps/pdf-editor.png new file mode 100644 index 0000000..92518fa Binary files /dev/null and b/icons/Paper/16x16/apps/pdf-editor.png differ diff --git a/icons/Paper/16x16/apps/pdf-utility.png b/icons/Paper/16x16/apps/pdf-utility.png new file mode 100644 index 0000000..56363aa Binary files /dev/null and b/icons/Paper/16x16/apps/pdf-utility.png differ diff --git a/icons/Paper/16x16/apps/pdfchain.png b/icons/Paper/16x16/apps/pdfchain.png new file mode 120000 index 0000000..afa007c --- /dev/null +++ b/icons/Paper/16x16/apps/pdfchain.png @@ -0,0 +1 @@ +pdf-utility.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pdfmod.png b/icons/Paper/16x16/apps/pdfmod.png new file mode 120000 index 0000000..ebb981b --- /dev/null +++ b/icons/Paper/16x16/apps/pdfmod.png @@ -0,0 +1 @@ +pdf-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pdfstudio.png b/icons/Paper/16x16/apps/pdfstudio.png new file mode 120000 index 0000000..ebb981b --- /dev/null +++ b/icons/Paper/16x16/apps/pdfstudio.png @@ -0,0 +1 @@ +pdf-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pgadmin.png b/icons/Paper/16x16/apps/pgadmin.png new file mode 100644 index 0000000..b55330d Binary files /dev/null and b/icons/Paper/16x16/apps/pgadmin.png differ diff --git a/icons/Paper/16x16/apps/pgadmin3.png b/icons/Paper/16x16/apps/pgadmin3.png new file mode 120000 index 0000000..3050029 --- /dev/null +++ b/icons/Paper/16x16/apps/pgadmin3.png @@ -0,0 +1 @@ +pgadmin.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pick-colour-picker.png b/icons/Paper/16x16/apps/pick-colour-picker.png new file mode 120000 index 0000000..aa1ca2a --- /dev/null +++ b/icons/Paper/16x16/apps/pick-colour-picker.png @@ -0,0 +1 @@ +color-picker.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pick.png b/icons/Paper/16x16/apps/pick.png new file mode 120000 index 0000000..aa1ca2a --- /dev/null +++ b/icons/Paper/16x16/apps/pick.png @@ -0,0 +1 @@ +color-picker.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pidgin.png b/icons/Paper/16x16/apps/pidgin.png new file mode 100644 index 0000000..6487e94 Binary files /dev/null and b/icons/Paper/16x16/apps/pidgin.png differ diff --git a/icons/Paper/16x16/apps/pinta.png b/icons/Paper/16x16/apps/pinta.png new file mode 120000 index 0000000..276eefe --- /dev/null +++ b/icons/Paper/16x16/apps/pinta.png @@ -0,0 +1 @@ +accessories-paint.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pitivi.png b/icons/Paper/16x16/apps/pitivi.png new file mode 120000 index 0000000..617144d --- /dev/null +++ b/icons/Paper/16x16/apps/pitivi.png @@ -0,0 +1 @@ +video-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pix.png b/icons/Paper/16x16/apps/pix.png new file mode 120000 index 0000000..4843030 --- /dev/null +++ b/icons/Paper/16x16/apps/pix.png @@ -0,0 +1 @@ +multimedia-photo-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/plank.png b/icons/Paper/16x16/apps/plank.png new file mode 120000 index 0000000..2864efb --- /dev/null +++ b/icons/Paper/16x16/apps/plank.png @@ -0,0 +1 @@ +docky.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/polari.png b/icons/Paper/16x16/apps/polari.png new file mode 120000 index 0000000..12b04ea --- /dev/null +++ b/icons/Paper/16x16/apps/polari.png @@ -0,0 +1 @@ +irc-chat.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/popcorn-time.png b/icons/Paper/16x16/apps/popcorn-time.png new file mode 100644 index 0000000..15586df Binary files /dev/null and b/icons/Paper/16x16/apps/popcorn-time.png differ diff --git a/icons/Paper/16x16/apps/popcorntime.png b/icons/Paper/16x16/apps/popcorntime.png new file mode 120000 index 0000000..71a3470 --- /dev/null +++ b/icons/Paper/16x16/apps/popcorntime.png @@ -0,0 +1 @@ +popcorn-time.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/postgresql.png b/icons/Paper/16x16/apps/postgresql.png new file mode 120000 index 0000000..3050029 --- /dev/null +++ b/icons/Paper/16x16/apps/postgresql.png @@ -0,0 +1 @@ +pgadmin.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/postscript-viewer.png b/icons/Paper/16x16/apps/postscript-viewer.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/postscript-viewer.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-bluetooth.png b/icons/Paper/16x16/apps/preferences-bluetooth.png new file mode 120000 index 0000000..642bfe1 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-bluetooth.png @@ -0,0 +1 @@ +preferences-system-bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-calendar-and-tasks.png b/icons/Paper/16x16/apps/preferences-calendar-and-tasks.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-calendar-and-tasks.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-color.png b/icons/Paper/16x16/apps/preferences-color.png new file mode 100644 index 0000000..98b2392 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-color.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-accessibility.png b/icons/Paper/16x16/apps/preferences-desktop-accessibility.png new file mode 100644 index 0000000..e6d2914 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-accessibility.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-baloo.png b/icons/Paper/16x16/apps/preferences-desktop-baloo.png new file mode 120000 index 0000000..22c813d --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-baloo.png @@ -0,0 +1 @@ +preferences-system-search.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-color.png b/icons/Paper/16x16/apps/preferences-desktop-color.png new file mode 120000 index 0000000..4b67a29 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-color.png @@ -0,0 +1 @@ +preferences-color.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-display-color.png b/icons/Paper/16x16/apps/preferences-desktop-display-color.png new file mode 120000 index 0000000..4b67a29 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-display-color.png @@ -0,0 +1 @@ +preferences-color.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-display.png b/icons/Paper/16x16/apps/preferences-desktop-display.png new file mode 100644 index 0000000..3741d2f Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-display.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-effects.png b/icons/Paper/16x16/apps/preferences-desktop-effects.png new file mode 100644 index 0000000..359d048 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-effects.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-font.png b/icons/Paper/16x16/apps/preferences-desktop-font.png new file mode 100644 index 0000000..fe6a144 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-font.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-hotcorners.png b/icons/Paper/16x16/apps/preferences-desktop-hotcorners.png new file mode 100644 index 0000000..3429d46 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-hotcorners.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-keyboard-shortcuts.png b/icons/Paper/16x16/apps/preferences-desktop-keyboard-shortcuts.png new file mode 100644 index 0000000..b2fbb55 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-keyboard-shortcuts.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-keyboard.png b/icons/Paper/16x16/apps/preferences-desktop-keyboard.png new file mode 100644 index 0000000..e79613d Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-keyboard.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-multimedia.png b/icons/Paper/16x16/apps/preferences-desktop-multimedia.png new file mode 100644 index 0000000..636c01f Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-multimedia.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-notification-bell.png b/icons/Paper/16x16/apps/preferences-desktop-notification-bell.png new file mode 120000 index 0000000..aaf2c07 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-notification-bell.png @@ -0,0 +1 @@ +preferences-system-notifications.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-notification.png b/icons/Paper/16x16/apps/preferences-desktop-notification.png new file mode 120000 index 0000000..aaf2c07 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-notification.png @@ -0,0 +1 @@ +preferences-system-notifications.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-notifications.png b/icons/Paper/16x16/apps/preferences-desktop-notifications.png new file mode 120000 index 0000000..aaf2c07 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-notifications.png @@ -0,0 +1 @@ +preferences-system-notifications.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-remote-desktop.png b/icons/Paper/16x16/apps/preferences-desktop-remote-desktop.png new file mode 120000 index 0000000..77d7ff0 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-remote-desktop.png @@ -0,0 +1 @@ +remote-desktop.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-screensaver.png b/icons/Paper/16x16/apps/preferences-desktop-screensaver.png new file mode 100644 index 0000000..c3338c1 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-screensaver.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-sound.png b/icons/Paper/16x16/apps/preferences-desktop-sound.png new file mode 120000 index 0000000..4772777 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-sound.png @@ -0,0 +1 @@ +preferences-system-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-theme.png b/icons/Paper/16x16/apps/preferences-desktop-theme.png new file mode 100644 index 0000000..3d99779 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-theme.png differ diff --git a/icons/Paper/16x16/apps/preferences-desktop-user-password.png b/icons/Paper/16x16/apps/preferences-desktop-user-password.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-user-password.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-user.png b/icons/Paper/16x16/apps/preferences-desktop-user.png new file mode 120000 index 0000000..83fb95c --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-desktop-user.png @@ -0,0 +1 @@ +system-users.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-desktop-wallpaper.png b/icons/Paper/16x16/apps/preferences-desktop-wallpaper.png new file mode 100644 index 0000000..e6c6bab Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-desktop-wallpaper.png differ diff --git a/icons/Paper/16x16/apps/preferences-management-service.png b/icons/Paper/16x16/apps/preferences-management-service.png new file mode 100644 index 0000000..9865096 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-management-service.png differ diff --git a/icons/Paper/16x16/apps/preferences-system-bluetooth.png b/icons/Paper/16x16/apps/preferences-system-bluetooth.png new file mode 100644 index 0000000..75c25a1 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-system-bluetooth.png differ diff --git a/icons/Paper/16x16/apps/preferences-system-brightness-lock.png b/icons/Paper/16x16/apps/preferences-system-brightness-lock.png new file mode 100644 index 0000000..8a87d83 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-system-brightness-lock.png differ diff --git a/icons/Paper/16x16/apps/preferences-system-firewall.png b/icons/Paper/16x16/apps/preferences-system-firewall.png new file mode 120000 index 0000000..e90be67 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-system-firewall.png @@ -0,0 +1 @@ +system-config-firewall.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-system-login.png b/icons/Paper/16x16/apps/preferences-system-login.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-system-login.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-system-network-sharing.png b/icons/Paper/16x16/apps/preferences-system-network-sharing.png new file mode 120000 index 0000000..893162c --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-system-network-sharing.png @@ -0,0 +1 @@ +preferences-system-sharing.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-system-notifications.png b/icons/Paper/16x16/apps/preferences-system-notifications.png new file mode 100644 index 0000000..ab332de Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-system-notifications.png differ diff --git a/icons/Paper/16x16/apps/preferences-system-performance.png b/icons/Paper/16x16/apps/preferences-system-performance.png new file mode 120000 index 0000000..a30efbf --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-system-performance.png @@ -0,0 +1 @@ +utilities-system-monitor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-system-privacy.png b/icons/Paper/16x16/apps/preferences-system-privacy.png new file mode 100644 index 0000000..ddc264b Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-system-privacy.png differ diff --git a/icons/Paper/16x16/apps/preferences-system-search.png b/icons/Paper/16x16/apps/preferences-system-search.png new file mode 100644 index 0000000..b1ee203 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-system-search.png differ diff --git a/icons/Paper/16x16/apps/preferences-system-session-services.png b/icons/Paper/16x16/apps/preferences-system-session-services.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-system-session-services.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-system-session.png b/icons/Paper/16x16/apps/preferences-system-session.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-system-session.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-system-sharing.png b/icons/Paper/16x16/apps/preferences-system-sharing.png new file mode 100644 index 0000000..1acd47a Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-system-sharing.png differ diff --git a/icons/Paper/16x16/apps/preferences-system-sound.png b/icons/Paper/16x16/apps/preferences-system-sound.png new file mode 100644 index 0000000..dbe3f4d Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-system-sound.png differ diff --git a/icons/Paper/16x16/apps/preferences-system-time.png b/icons/Paper/16x16/apps/preferences-system-time.png new file mode 100644 index 0000000..e2a21c7 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-system-time.png differ diff --git a/icons/Paper/16x16/apps/preferences-system-windows-actions.png b/icons/Paper/16x16/apps/preferences-system-windows-actions.png new file mode 120000 index 0000000..1d414f9 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-system-windows-actions.png @@ -0,0 +1 @@ +preferences-system-windows.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-system-windows.png b/icons/Paper/16x16/apps/preferences-system-windows.png new file mode 100644 index 0000000..9f66b97 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-system-windows.png differ diff --git a/icons/Paper/16x16/apps/preferences-theme.png b/icons/Paper/16x16/apps/preferences-theme.png new file mode 120000 index 0000000..5f680c1 --- /dev/null +++ b/icons/Paper/16x16/apps/preferences-theme.png @@ -0,0 +1 @@ +preferences-desktop-theme.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/preferences-web-browser-shortcuts.png b/icons/Paper/16x16/apps/preferences-web-browser-shortcuts.png new file mode 100644 index 0000000..e2ef24b Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-web-browser-shortcuts.png differ diff --git a/icons/Paper/16x16/apps/preferences-web-browser.png b/icons/Paper/16x16/apps/preferences-web-browser.png new file mode 100644 index 0000000..2168681 Binary files /dev/null and b/icons/Paper/16x16/apps/preferences-web-browser.png differ diff --git a/icons/Paper/16x16/apps/pwsafe.png b/icons/Paper/16x16/apps/pwsafe.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/pwsafe.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/pycharm.png b/icons/Paper/16x16/apps/pycharm.png new file mode 100644 index 0000000..a1434a3 Binary files /dev/null and b/icons/Paper/16x16/apps/pycharm.png differ diff --git a/icons/Paper/16x16/apps/python.png b/icons/Paper/16x16/apps/python.png new file mode 100644 index 0000000..aac6fc5 Binary files /dev/null and b/icons/Paper/16x16/apps/python.png differ diff --git a/icons/Paper/16x16/apps/python2.6.png b/icons/Paper/16x16/apps/python2.6.png new file mode 120000 index 0000000..da8068a --- /dev/null +++ b/icons/Paper/16x16/apps/python2.6.png @@ -0,0 +1 @@ +python.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/python2.7.png b/icons/Paper/16x16/apps/python2.7.png new file mode 120000 index 0000000..da8068a --- /dev/null +++ b/icons/Paper/16x16/apps/python2.7.png @@ -0,0 +1 @@ +python.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/python3.0.png b/icons/Paper/16x16/apps/python3.0.png new file mode 120000 index 0000000..da8068a --- /dev/null +++ b/icons/Paper/16x16/apps/python3.0.png @@ -0,0 +1 @@ +python.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/python3.2.png b/icons/Paper/16x16/apps/python3.2.png new file mode 120000 index 0000000..da8068a --- /dev/null +++ b/icons/Paper/16x16/apps/python3.2.png @@ -0,0 +1 @@ +python.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/python3.3.png b/icons/Paper/16x16/apps/python3.3.png new file mode 120000 index 0000000..da8068a --- /dev/null +++ b/icons/Paper/16x16/apps/python3.3.png @@ -0,0 +1 @@ +python.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/python3.4.png b/icons/Paper/16x16/apps/python3.4.png new file mode 120000 index 0000000..da8068a --- /dev/null +++ b/icons/Paper/16x16/apps/python3.4.png @@ -0,0 +1 @@ +python.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/qbittorrent.png b/icons/Paper/16x16/apps/qbittorrent.png new file mode 100644 index 0000000..d259435 Binary files /dev/null and b/icons/Paper/16x16/apps/qbittorrent.png differ diff --git a/icons/Paper/16x16/apps/qpdfview.png b/icons/Paper/16x16/apps/qpdfview.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/qpdfview.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/qt-assistant.png b/icons/Paper/16x16/apps/qt-assistant.png new file mode 100644 index 0000000..3615d1b Binary files /dev/null and b/icons/Paper/16x16/apps/qt-assistant.png differ diff --git a/icons/Paper/16x16/apps/qt-config.png b/icons/Paper/16x16/apps/qt-config.png new file mode 100644 index 0000000..5f00da4 Binary files /dev/null and b/icons/Paper/16x16/apps/qt-config.png differ diff --git a/icons/Paper/16x16/apps/qt-creator.png b/icons/Paper/16x16/apps/qt-creator.png new file mode 100644 index 0000000..b558752 Binary files /dev/null and b/icons/Paper/16x16/apps/qt-creator.png differ diff --git a/icons/Paper/16x16/apps/qt-designer.png b/icons/Paper/16x16/apps/qt-designer.png new file mode 100644 index 0000000..1ee7170 Binary files /dev/null and b/icons/Paper/16x16/apps/qt-designer.png differ diff --git a/icons/Paper/16x16/apps/qt-logo.png b/icons/Paper/16x16/apps/qt-logo.png new file mode 100644 index 0000000..b558752 Binary files /dev/null and b/icons/Paper/16x16/apps/qt-logo.png differ diff --git a/icons/Paper/16x16/apps/qt.png b/icons/Paper/16x16/apps/qt.png new file mode 120000 index 0000000..2492cd1 --- /dev/null +++ b/icons/Paper/16x16/apps/qt.png @@ -0,0 +1 @@ +qt-logo.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/qt4logo.png b/icons/Paper/16x16/apps/qt4logo.png new file mode 120000 index 0000000..2492cd1 --- /dev/null +++ b/icons/Paper/16x16/apps/qt4logo.png @@ -0,0 +1 @@ +qt-logo.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/qtconfig-qt4.png b/icons/Paper/16x16/apps/qtconfig-qt4.png new file mode 120000 index 0000000..85ffb97 --- /dev/null +++ b/icons/Paper/16x16/apps/qtconfig-qt4.png @@ -0,0 +1 @@ +qt-config.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/qtcreator_logo_32.png b/icons/Paper/16x16/apps/qtcreator_logo_32.png new file mode 120000 index 0000000..f803d54 --- /dev/null +++ b/icons/Paper/16x16/apps/qtcreator_logo_32.png @@ -0,0 +1 @@ +qt-creator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/qtcreatorubuntu.png b/icons/Paper/16x16/apps/qtcreatorubuntu.png new file mode 120000 index 0000000..f803d54 --- /dev/null +++ b/icons/Paper/16x16/apps/qtcreatorubuntu.png @@ -0,0 +1 @@ +qt-creator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/qterminal.png b/icons/Paper/16x16/apps/qterminal.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/qterminal.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/qtlogo.png b/icons/Paper/16x16/apps/qtlogo.png new file mode 120000 index 0000000..2492cd1 --- /dev/null +++ b/icons/Paper/16x16/apps/qtlogo.png @@ -0,0 +1 @@ +qt-logo.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/qtox.png b/icons/Paper/16x16/apps/qtox.png new file mode 100644 index 0000000..e4d08f1 Binary files /dev/null and b/icons/Paper/16x16/apps/qtox.png differ diff --git a/icons/Paper/16x16/apps/quassel.png b/icons/Paper/16x16/apps/quassel.png new file mode 100644 index 0000000..3fb42b3 Binary files /dev/null and b/icons/Paper/16x16/apps/quassel.png differ diff --git a/icons/Paper/16x16/apps/r.png b/icons/Paper/16x16/apps/r.png new file mode 100644 index 0000000..b4c3eb1 Binary files /dev/null and b/icons/Paper/16x16/apps/r.png differ diff --git a/icons/Paper/16x16/apps/recoll.png b/icons/Paper/16x16/apps/recoll.png new file mode 120000 index 0000000..22c813d --- /dev/null +++ b/icons/Paper/16x16/apps/recoll.png @@ -0,0 +1 @@ +preferences-system-search.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/redhat-email.png b/icons/Paper/16x16/apps/redhat-email.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/redhat-email.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/redhat-filemanager.png b/icons/Paper/16x16/apps/redhat-filemanager.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/redhat-filemanager.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/redhat-web-browser.png b/icons/Paper/16x16/apps/redhat-web-browser.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/redhat-web-browser.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/rednotebook.png b/icons/Paper/16x16/apps/rednotebook.png new file mode 100644 index 0000000..e91538d Binary files /dev/null and b/icons/Paper/16x16/apps/rednotebook.png differ diff --git a/icons/Paper/16x16/apps/redshift-gtk.png b/icons/Paper/16x16/apps/redshift-gtk.png new file mode 120000 index 0000000..76db51c --- /dev/null +++ b/icons/Paper/16x16/apps/redshift-gtk.png @@ -0,0 +1 @@ +redshift.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/redshift-icon-256.png b/icons/Paper/16x16/apps/redshift-icon-256.png new file mode 120000 index 0000000..76db51c --- /dev/null +++ b/icons/Paper/16x16/apps/redshift-icon-256.png @@ -0,0 +1 @@ +redshift.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/redshift.png b/icons/Paper/16x16/apps/redshift.png new file mode 100644 index 0000000..444464e Binary files /dev/null and b/icons/Paper/16x16/apps/redshift.png differ diff --git a/icons/Paper/16x16/apps/redshiftgui.png b/icons/Paper/16x16/apps/redshiftgui.png new file mode 120000 index 0000000..76db51c --- /dev/null +++ b/icons/Paper/16x16/apps/redshiftgui.png @@ -0,0 +1 @@ +redshift.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/remmina.png b/icons/Paper/16x16/apps/remmina.png new file mode 120000 index 0000000..77d7ff0 --- /dev/null +++ b/icons/Paper/16x16/apps/remmina.png @@ -0,0 +1 @@ +remote-desktop.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/remote-desktop.png b/icons/Paper/16x16/apps/remote-desktop.png new file mode 100644 index 0000000..e5899dd Binary files /dev/null and b/icons/Paper/16x16/apps/remote-desktop.png differ diff --git a/icons/Paper/16x16/apps/retext.png b/icons/Paper/16x16/apps/retext.png new file mode 100644 index 0000000..483a0ed Binary files /dev/null and b/icons/Paper/16x16/apps/retext.png differ diff --git a/icons/Paper/16x16/apps/revelation.png b/icons/Paper/16x16/apps/revelation.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/revelation.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/rhythmbox.png b/icons/Paper/16x16/apps/rhythmbox.png new file mode 100644 index 0000000..5ef3896 Binary files /dev/null and b/icons/Paper/16x16/apps/rhythmbox.png differ diff --git a/icons/Paper/16x16/apps/ripperx.png b/icons/Paper/16x16/apps/ripperx.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/ripperx.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ristretto.png b/icons/Paper/16x16/apps/ristretto.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/ristretto.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/rstudio.png b/icons/Paper/16x16/apps/rstudio.png new file mode 100644 index 0000000..d54e913 Binary files /dev/null and b/icons/Paper/16x16/apps/rstudio.png differ diff --git a/icons/Paper/16x16/apps/screensaver.png b/icons/Paper/16x16/apps/screensaver.png new file mode 120000 index 0000000..305fd35 --- /dev/null +++ b/icons/Paper/16x16/apps/screensaver.png @@ -0,0 +1 @@ +preferences-desktop-screensaver.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/scribus.png b/icons/Paper/16x16/apps/scribus.png new file mode 100644 index 0000000..5b561f1 Binary files /dev/null and b/icons/Paper/16x16/apps/scribus.png differ diff --git a/icons/Paper/16x16/apps/seafile-client-qt5.png b/icons/Paper/16x16/apps/seafile-client-qt5.png new file mode 120000 index 0000000..7b588b9 --- /dev/null +++ b/icons/Paper/16x16/apps/seafile-client-qt5.png @@ -0,0 +1 @@ +seafile-client.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/seafile-client.png b/icons/Paper/16x16/apps/seafile-client.png new file mode 100644 index 0000000..530f905 Binary files /dev/null and b/icons/Paper/16x16/apps/seafile-client.png differ diff --git a/icons/Paper/16x16/apps/seafile.png b/icons/Paper/16x16/apps/seafile.png new file mode 120000 index 0000000..7b588b9 --- /dev/null +++ b/icons/Paper/16x16/apps/seafile.png @@ -0,0 +1 @@ +seafile-client.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/seahorse-preferences.png b/icons/Paper/16x16/apps/seahorse-preferences.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/seahorse-preferences.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/seahorse.png b/icons/Paper/16x16/apps/seahorse.png new file mode 120000 index 0000000..4f1d49f --- /dev/null +++ b/icons/Paper/16x16/apps/seahorse.png @@ -0,0 +1 @@ +password-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/search.png b/icons/Paper/16x16/apps/search.png new file mode 120000 index 0000000..22c813d --- /dev/null +++ b/icons/Paper/16x16/apps/search.png @@ -0,0 +1 @@ +preferences-system-search.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/serpentine.png b/icons/Paper/16x16/apps/serpentine.png new file mode 120000 index 0000000..3c844fb --- /dev/null +++ b/icons/Paper/16x16/apps/serpentine.png @@ -0,0 +1 @@ +disk-usage-analyzer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/session-properties.png b/icons/Paper/16x16/apps/session-properties.png new file mode 100644 index 0000000..b43f78b Binary files /dev/null and b/icons/Paper/16x16/apps/session-properties.png differ diff --git a/icons/Paper/16x16/apps/setroubleshoot_icon.png b/icons/Paper/16x16/apps/setroubleshoot_icon.png new file mode 100644 index 0000000..6c05858 Binary files /dev/null and b/icons/Paper/16x16/apps/setroubleshoot_icon.png differ diff --git a/icons/Paper/16x16/apps/shotwell.png b/icons/Paper/16x16/apps/shotwell.png new file mode 120000 index 0000000..4843030 --- /dev/null +++ b/icons/Paper/16x16/apps/shotwell.png @@ -0,0 +1 @@ +multimedia-photo-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/showfoto.png b/icons/Paper/16x16/apps/showfoto.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/showfoto.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/showphoto.png b/icons/Paper/16x16/apps/showphoto.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/showphoto.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/shutter.png b/icons/Paper/16x16/apps/shutter.png new file mode 100644 index 0000000..9df6e9c Binary files /dev/null and b/icons/Paper/16x16/apps/shutter.png differ diff --git a/icons/Paper/16x16/apps/simplescreenrecorder.png b/icons/Paper/16x16/apps/simplescreenrecorder.png new file mode 120000 index 0000000..8bc999c --- /dev/null +++ b/icons/Paper/16x16/apps/simplescreenrecorder.png @@ -0,0 +1 @@ +accessories-screenshot.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/skype-call-recorder.png b/icons/Paper/16x16/apps/skype-call-recorder.png new file mode 100644 index 0000000..00cce75 Binary files /dev/null and b/icons/Paper/16x16/apps/skype-call-recorder.png differ diff --git a/icons/Paper/16x16/apps/skype.png b/icons/Paper/16x16/apps/skype.png new file mode 100644 index 0000000..93590ec Binary files /dev/null and b/icons/Paper/16x16/apps/skype.png differ diff --git a/icons/Paper/16x16/apps/skype_protocol.png b/icons/Paper/16x16/apps/skype_protocol.png new file mode 120000 index 0000000..78f3001 --- /dev/null +++ b/icons/Paper/16x16/apps/skype_protocol.png @@ -0,0 +1 @@ +skype.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/skypeforlinux.png b/icons/Paper/16x16/apps/skypeforlinux.png new file mode 120000 index 0000000..78f3001 --- /dev/null +++ b/icons/Paper/16x16/apps/skypeforlinux.png @@ -0,0 +1 @@ +skype.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/smartgit.png b/icons/Paper/16x16/apps/smartgit.png new file mode 120000 index 0000000..7bc2911 --- /dev/null +++ b/icons/Paper/16x16/apps/smartgit.png @@ -0,0 +1 @@ +syntevo-smartgit.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/smuxi-frontend-gnome.png b/icons/Paper/16x16/apps/smuxi-frontend-gnome.png new file mode 120000 index 0000000..88e1184 --- /dev/null +++ b/icons/Paper/16x16/apps/smuxi-frontend-gnome.png @@ -0,0 +1 @@ +smuxi.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/smuxi.png b/icons/Paper/16x16/apps/smuxi.png new file mode 100644 index 0000000..ee9d41e Binary files /dev/null and b/icons/Paper/16x16/apps/smuxi.png differ diff --git a/icons/Paper/16x16/apps/snes9x-gtk.png b/icons/Paper/16x16/apps/snes9x-gtk.png new file mode 120000 index 0000000..4d14b5b --- /dev/null +++ b/icons/Paper/16x16/apps/snes9x-gtk.png @@ -0,0 +1 @@ +zsnes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/snes9x.png b/icons/Paper/16x16/apps/snes9x.png new file mode 120000 index 0000000..4d14b5b --- /dev/null +++ b/icons/Paper/16x16/apps/snes9x.png @@ -0,0 +1 @@ +zsnes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/software-center.png b/icons/Paper/16x16/apps/software-center.png new file mode 120000 index 0000000..b06ddd2 --- /dev/null +++ b/icons/Paper/16x16/apps/software-center.png @@ -0,0 +1 @@ +software-store.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/software-properties-mint.png b/icons/Paper/16x16/apps/software-properties-mint.png new file mode 120000 index 0000000..29afd7d --- /dev/null +++ b/icons/Paper/16x16/apps/software-properties-mint.png @@ -0,0 +1 @@ +system-software-install.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/software-properties.png b/icons/Paper/16x16/apps/software-properties.png new file mode 120000 index 0000000..29afd7d --- /dev/null +++ b/icons/Paper/16x16/apps/software-properties.png @@ -0,0 +1 @@ +system-software-install.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/software-store.png b/icons/Paper/16x16/apps/software-store.png new file mode 100644 index 0000000..3e7fdac Binary files /dev/null and b/icons/Paper/16x16/apps/software-store.png differ diff --git a/icons/Paper/16x16/apps/software-update-available.png b/icons/Paper/16x16/apps/software-update-available.png new file mode 120000 index 0000000..de4b456 --- /dev/null +++ b/icons/Paper/16x16/apps/software-update-available.png @@ -0,0 +1 @@ +system-software-update.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/software-update-urgent.png b/icons/Paper/16x16/apps/software-update-urgent.png new file mode 120000 index 0000000..de4b456 --- /dev/null +++ b/icons/Paper/16x16/apps/software-update-urgent.png @@ -0,0 +1 @@ +system-software-update.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/softwarecenter.png b/icons/Paper/16x16/apps/softwarecenter.png new file mode 120000 index 0000000..b06ddd2 --- /dev/null +++ b/icons/Paper/16x16/apps/softwarecenter.png @@ -0,0 +1 @@ +software-store.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/sound-recorder.png b/icons/Paper/16x16/apps/sound-recorder.png new file mode 100644 index 0000000..15c24b4 Binary files /dev/null and b/icons/Paper/16x16/apps/sound-recorder.png differ diff --git a/icons/Paper/16x16/apps/sound.png b/icons/Paper/16x16/apps/sound.png new file mode 120000 index 0000000..4772777 --- /dev/null +++ b/icons/Paper/16x16/apps/sound.png @@ -0,0 +1 @@ +preferences-system-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/soundconverter.png b/icons/Paper/16x16/apps/soundconverter.png new file mode 100644 index 0000000..7c4801b Binary files /dev/null and b/icons/Paper/16x16/apps/soundconverter.png differ diff --git a/icons/Paper/16x16/apps/sparkleshare.png b/icons/Paper/16x16/apps/sparkleshare.png new file mode 100644 index 0000000..a7b9d59 Binary files /dev/null and b/icons/Paper/16x16/apps/sparkleshare.png differ diff --git a/icons/Paper/16x16/apps/speedcrunch.png b/icons/Paper/16x16/apps/speedcrunch.png new file mode 120000 index 0000000..264ccdb --- /dev/null +++ b/icons/Paper/16x16/apps/speedcrunch.png @@ -0,0 +1 @@ +accessories-calculator.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/spotify-beta.png b/icons/Paper/16x16/apps/spotify-beta.png new file mode 120000 index 0000000..b153da3 --- /dev/null +++ b/icons/Paper/16x16/apps/spotify-beta.png @@ -0,0 +1 @@ +spotify.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/spotify-client.png b/icons/Paper/16x16/apps/spotify-client.png new file mode 120000 index 0000000..b153da3 --- /dev/null +++ b/icons/Paper/16x16/apps/spotify-client.png @@ -0,0 +1 @@ +spotify.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/spotify-exe.png b/icons/Paper/16x16/apps/spotify-exe.png new file mode 120000 index 0000000..b153da3 --- /dev/null +++ b/icons/Paper/16x16/apps/spotify-exe.png @@ -0,0 +1 @@ +spotify.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/spotify-linux-48x48.png b/icons/Paper/16x16/apps/spotify-linux-48x48.png new file mode 120000 index 0000000..b153da3 --- /dev/null +++ b/icons/Paper/16x16/apps/spotify-linux-48x48.png @@ -0,0 +1 @@ +spotify.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/spotify.png b/icons/Paper/16x16/apps/spotify.png new file mode 100644 index 0000000..e7e02c4 Binary files /dev/null and b/icons/Paper/16x16/apps/spotify.png differ diff --git a/icons/Paper/16x16/apps/steam-icon.png b/icons/Paper/16x16/apps/steam-icon.png new file mode 120000 index 0000000..e0acf2e --- /dev/null +++ b/icons/Paper/16x16/apps/steam-icon.png @@ -0,0 +1 @@ +steam.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/steam-launcher.png b/icons/Paper/16x16/apps/steam-launcher.png new file mode 120000 index 0000000..e0acf2e --- /dev/null +++ b/icons/Paper/16x16/apps/steam-launcher.png @@ -0,0 +1 @@ +steam.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/steam.png b/icons/Paper/16x16/apps/steam.png new file mode 100644 index 0000000..c141939 Binary files /dev/null and b/icons/Paper/16x16/apps/steam.png differ diff --git a/icons/Paper/16x16/apps/steam_icon_570.png b/icons/Paper/16x16/apps/steam_icon_570.png new file mode 100644 index 0000000..1eede67 Binary files /dev/null and b/icons/Paper/16x16/apps/steam_icon_570.png differ diff --git a/icons/Paper/16x16/apps/steampowered.png b/icons/Paper/16x16/apps/steampowered.png new file mode 120000 index 0000000..e0acf2e --- /dev/null +++ b/icons/Paper/16x16/apps/steampowered.png @@ -0,0 +1 @@ +steam.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/stellarium.png b/icons/Paper/16x16/apps/stellarium.png new file mode 100644 index 0000000..a87eb8b Binary files /dev/null and b/icons/Paper/16x16/apps/stellarium.png differ diff --git a/icons/Paper/16x16/apps/studio.png b/icons/Paper/16x16/apps/studio.png new file mode 120000 index 0000000..228bbe4 --- /dev/null +++ b/icons/Paper/16x16/apps/studio.png @@ -0,0 +1 @@ +android-sdk.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/style.png b/icons/Paper/16x16/apps/style.png new file mode 120000 index 0000000..5f680c1 --- /dev/null +++ b/icons/Paper/16x16/apps/style.png @@ -0,0 +1 @@ +preferences-desktop-theme.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/sublime-text-2.png b/icons/Paper/16x16/apps/sublime-text-2.png new file mode 100644 index 0000000..e1a4d92 Binary files /dev/null and b/icons/Paper/16x16/apps/sublime-text-2.png differ diff --git a/icons/Paper/16x16/apps/sublime-text-3.png b/icons/Paper/16x16/apps/sublime-text-3.png new file mode 100644 index 0000000..1b02413 Binary files /dev/null and b/icons/Paper/16x16/apps/sublime-text-3.png differ diff --git a/icons/Paper/16x16/apps/sublime-text.png b/icons/Paper/16x16/apps/sublime-text.png new file mode 120000 index 0000000..b9e16ee --- /dev/null +++ b/icons/Paper/16x16/apps/sublime-text.png @@ -0,0 +1 @@ +sublime-text-3.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/sublime.png b/icons/Paper/16x16/apps/sublime.png new file mode 120000 index 0000000..b9e16ee --- /dev/null +++ b/icons/Paper/16x16/apps/sublime.png @@ -0,0 +1 @@ +sublime-text-3.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/sublime_text.png b/icons/Paper/16x16/apps/sublime_text.png new file mode 120000 index 0000000..b9e16ee --- /dev/null +++ b/icons/Paper/16x16/apps/sublime_text.png @@ -0,0 +1 @@ +sublime-text-3.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/sun-java.png b/icons/Paper/16x16/apps/sun-java.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/sun-java.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/sun-javaws.png b/icons/Paper/16x16/apps/sun-javaws.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/sun-javaws.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/sun-jcontrol.png b/icons/Paper/16x16/apps/sun-jcontrol.png new file mode 120000 index 0000000..c69737d --- /dev/null +++ b/icons/Paper/16x16/apps/sun-jcontrol.png @@ -0,0 +1 @@ +java.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/susehelpcenter.png b/icons/Paper/16x16/apps/susehelpcenter.png new file mode 120000 index 0000000..3230344 --- /dev/null +++ b/icons/Paper/16x16/apps/susehelpcenter.png @@ -0,0 +1 @@ +help-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/sylpheed.png b/icons/Paper/16x16/apps/sylpheed.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/sylpheed.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/synaptic.png b/icons/Paper/16x16/apps/synaptic.png new file mode 120000 index 0000000..be3f1a7 --- /dev/null +++ b/icons/Paper/16x16/apps/synaptic.png @@ -0,0 +1 @@ +system-software-package-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/syncthing-gtk.png b/icons/Paper/16x16/apps/syncthing-gtk.png new file mode 120000 index 0000000..2030971 --- /dev/null +++ b/icons/Paper/16x16/apps/syncthing-gtk.png @@ -0,0 +1 @@ +syncthing.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/syncthing.png b/icons/Paper/16x16/apps/syncthing.png new file mode 100644 index 0000000..fa0720d Binary files /dev/null and b/icons/Paper/16x16/apps/syncthing.png differ diff --git a/icons/Paper/16x16/apps/synergy.png b/icons/Paper/16x16/apps/synergy.png new file mode 100644 index 0000000..495fec6 Binary files /dev/null and b/icons/Paper/16x16/apps/synergy.png differ diff --git a/icons/Paper/16x16/apps/syntevo-smartgit.png b/icons/Paper/16x16/apps/syntevo-smartgit.png new file mode 100644 index 0000000..51469b3 Binary files /dev/null and b/icons/Paper/16x16/apps/syntevo-smartgit.png differ diff --git a/icons/Paper/16x16/apps/system-config-authentication.png b/icons/Paper/16x16/apps/system-config-authentication.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/system-config-authentication.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/system-config-date.png b/icons/Paper/16x16/apps/system-config-date.png new file mode 120000 index 0000000..ebc58b4 --- /dev/null +++ b/icons/Paper/16x16/apps/system-config-date.png @@ -0,0 +1 @@ +preferences-system-time.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/system-config-firewall.png b/icons/Paper/16x16/apps/system-config-firewall.png new file mode 100644 index 0000000..dd3c8da Binary files /dev/null and b/icons/Paper/16x16/apps/system-config-firewall.png differ diff --git a/icons/Paper/16x16/apps/system-config-services.png b/icons/Paper/16x16/apps/system-config-services.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/system-config-services.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/system-config-users.png b/icons/Paper/16x16/apps/system-config-users.png new file mode 120000 index 0000000..83fb95c --- /dev/null +++ b/icons/Paper/16x16/apps/system-config-users.png @@ -0,0 +1 @@ +system-users.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/system-error.png b/icons/Paper/16x16/apps/system-error.png new file mode 100644 index 0000000..cfd2dc1 Binary files /dev/null and b/icons/Paper/16x16/apps/system-error.png differ diff --git a/icons/Paper/16x16/apps/system-file-manager.png b/icons/Paper/16x16/apps/system-file-manager.png new file mode 100644 index 0000000..c7b8945 Binary files /dev/null and b/icons/Paper/16x16/apps/system-file-manager.png differ diff --git a/icons/Paper/16x16/apps/system-log-viewer.png b/icons/Paper/16x16/apps/system-log-viewer.png new file mode 100644 index 0000000..0ef6c84 Binary files /dev/null and b/icons/Paper/16x16/apps/system-log-viewer.png differ diff --git a/icons/Paper/16x16/apps/system-os-installer.png b/icons/Paper/16x16/apps/system-os-installer.png new file mode 100644 index 0000000..952a9da Binary files /dev/null and b/icons/Paper/16x16/apps/system-os-installer.png differ diff --git a/icons/Paper/16x16/apps/system-search.png b/icons/Paper/16x16/apps/system-search.png new file mode 120000 index 0000000..22c813d --- /dev/null +++ b/icons/Paper/16x16/apps/system-search.png @@ -0,0 +1 @@ +preferences-system-search.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/system-software-install.png b/icons/Paper/16x16/apps/system-software-install.png new file mode 100644 index 0000000..9d85956 Binary files /dev/null and b/icons/Paper/16x16/apps/system-software-install.png differ diff --git a/icons/Paper/16x16/apps/system-software-package-manager.png b/icons/Paper/16x16/apps/system-software-package-manager.png new file mode 100644 index 0000000..768d020 Binary files /dev/null and b/icons/Paper/16x16/apps/system-software-package-manager.png differ diff --git a/icons/Paper/16x16/apps/system-software-update.png b/icons/Paper/16x16/apps/system-software-update.png new file mode 100644 index 0000000..dbe30bd Binary files /dev/null and b/icons/Paper/16x16/apps/system-software-update.png differ diff --git a/icons/Paper/16x16/apps/system-users.png b/icons/Paper/16x16/apps/system-users.png new file mode 100644 index 0000000..9f6e184 Binary files /dev/null and b/icons/Paper/16x16/apps/system-users.png differ diff --git a/icons/Paper/16x16/apps/system-utilities-logviewer.png b/icons/Paper/16x16/apps/system-utilities-logviewer.png new file mode 120000 index 0000000..4c61b9c --- /dev/null +++ b/icons/Paper/16x16/apps/system-utilities-logviewer.png @@ -0,0 +1 @@ +system-log-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/teamviewer.png b/icons/Paper/16x16/apps/teamviewer.png new file mode 100644 index 0000000..8358cf8 Binary files /dev/null and b/icons/Paper/16x16/apps/teamviewer.png differ diff --git a/icons/Paper/16x16/apps/terminal-tango.png b/icons/Paper/16x16/apps/terminal-tango.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/terminal-tango.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/terminal.png b/icons/Paper/16x16/apps/terminal.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/terminal.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/terminator.png b/icons/Paper/16x16/apps/terminator.png new file mode 100644 index 0000000..8f84913 Binary files /dev/null and b/icons/Paper/16x16/apps/terminator.png differ diff --git a/icons/Paper/16x16/apps/terminix.png b/icons/Paper/16x16/apps/terminix.png new file mode 100644 index 0000000..bd64595 Binary files /dev/null and b/icons/Paper/16x16/apps/terminix.png differ diff --git a/icons/Paper/16x16/apps/terminology.png b/icons/Paper/16x16/apps/terminology.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/terminology.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/terra.png b/icons/Paper/16x16/apps/terra.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/terra.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/text-editor.png b/icons/Paper/16x16/apps/text-editor.png new file mode 120000 index 0000000..24614cf --- /dev/null +++ b/icons/Paper/16x16/apps/text-editor.png @@ -0,0 +1 @@ +accessories-text-editor.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/thunar.png b/icons/Paper/16x16/apps/thunar.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/thunar.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/thunderbird.png b/icons/Paper/16x16/apps/thunderbird.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/thunderbird.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/tigervnc.png b/icons/Paper/16x16/apps/tigervnc.png new file mode 120000 index 0000000..77d7ff0 --- /dev/null +++ b/icons/Paper/16x16/apps/tigervnc.png @@ -0,0 +1 @@ +remote-desktop.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/tilda.png b/icons/Paper/16x16/apps/tilda.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/tilda.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/tilix.png b/icons/Paper/16x16/apps/tilix.png new file mode 120000 index 0000000..a066aa3 --- /dev/null +++ b/icons/Paper/16x16/apps/tilix.png @@ -0,0 +1 @@ +terminix.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/time-admin.png b/icons/Paper/16x16/apps/time-admin.png new file mode 120000 index 0000000..ebc58b4 --- /dev/null +++ b/icons/Paper/16x16/apps/time-admin.png @@ -0,0 +1 @@ +preferences-system-time.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/tint2conf.png b/icons/Paper/16x16/apps/tint2conf.png new file mode 120000 index 0000000..0308eee --- /dev/null +++ b/icons/Paper/16x16/apps/tint2conf.png @@ -0,0 +1 @@ +desktop-panel.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/tomahawk.png b/icons/Paper/16x16/apps/tomahawk.png new file mode 100644 index 0000000..b6b6b4e Binary files /dev/null and b/icons/Paper/16x16/apps/tomahawk.png differ diff --git a/icons/Paper/16x16/apps/tomboy.png b/icons/Paper/16x16/apps/tomboy.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/tomboy.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/totem.png b/icons/Paper/16x16/apps/totem.png new file mode 120000 index 0000000..5342b49 --- /dev/null +++ b/icons/Paper/16x16/apps/totem.png @@ -0,0 +1 @@ +multimedia-video-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/tracker.png b/icons/Paper/16x16/apps/tracker.png new file mode 120000 index 0000000..22c813d --- /dev/null +++ b/icons/Paper/16x16/apps/tracker.png @@ -0,0 +1 @@ +preferences-system-search.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/transgui.png b/icons/Paper/16x16/apps/transgui.png new file mode 120000 index 0000000..74594f9 --- /dev/null +++ b/icons/Paper/16x16/apps/transgui.png @@ -0,0 +1 @@ +transmission.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/transmageddon.png b/icons/Paper/16x16/apps/transmageddon.png new file mode 100644 index 0000000..96b2eab Binary files /dev/null and b/icons/Paper/16x16/apps/transmageddon.png differ diff --git a/icons/Paper/16x16/apps/transmission-gtk.png b/icons/Paper/16x16/apps/transmission-gtk.png new file mode 120000 index 0000000..74594f9 --- /dev/null +++ b/icons/Paper/16x16/apps/transmission-gtk.png @@ -0,0 +1 @@ +transmission.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/transmission-qt.png b/icons/Paper/16x16/apps/transmission-qt.png new file mode 120000 index 0000000..74594f9 --- /dev/null +++ b/icons/Paper/16x16/apps/transmission-qt.png @@ -0,0 +1 @@ +transmission.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/transmission-remote-gtk.png b/icons/Paper/16x16/apps/transmission-remote-gtk.png new file mode 120000 index 0000000..74594f9 --- /dev/null +++ b/icons/Paper/16x16/apps/transmission-remote-gtk.png @@ -0,0 +1 @@ +transmission.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/transmission.png b/icons/Paper/16x16/apps/transmission.png new file mode 100644 index 0000000..15dac2e Binary files /dev/null and b/icons/Paper/16x16/apps/transmission.png differ diff --git a/icons/Paper/16x16/apps/tuxpaint.png b/icons/Paper/16x16/apps/tuxpaint.png new file mode 120000 index 0000000..276eefe --- /dev/null +++ b/icons/Paper/16x16/apps/tuxpaint.png @@ -0,0 +1 @@ +accessories-paint.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/tvm-burn-cd.png b/icons/Paper/16x16/apps/tvm-burn-cd.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/tvm-burn-cd.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/typecatcher.png b/icons/Paper/16x16/apps/typecatcher.png new file mode 100644 index 0000000..7183550 Binary files /dev/null and b/icons/Paper/16x16/apps/typecatcher.png differ diff --git a/icons/Paper/16x16/apps/typora.png b/icons/Paper/16x16/apps/typora.png new file mode 100644 index 0000000..ff5d8f2 Binary files /dev/null and b/icons/Paper/16x16/apps/typora.png differ diff --git a/icons/Paper/16x16/apps/ubiquity.png b/icons/Paper/16x16/apps/ubiquity.png new file mode 120000 index 0000000..acb8ebf --- /dev/null +++ b/icons/Paper/16x16/apps/ubiquity.png @@ -0,0 +1 @@ +system-os-installer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ubuntu-qtcreator.png b/icons/Paper/16x16/apps/ubuntu-qtcreator.png new file mode 120000 index 0000000..e523813 --- /dev/null +++ b/icons/Paper/16x16/apps/ubuntu-qtcreator.png @@ -0,0 +1 @@ +ubuntu-sdk.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ubuntu-sdk-ide.png b/icons/Paper/16x16/apps/ubuntu-sdk-ide.png new file mode 120000 index 0000000..e523813 --- /dev/null +++ b/icons/Paper/16x16/apps/ubuntu-sdk-ide.png @@ -0,0 +1 @@ +ubuntu-sdk.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ubuntu-sdk.png b/icons/Paper/16x16/apps/ubuntu-sdk.png new file mode 100644 index 0000000..1a206f0 Binary files /dev/null and b/icons/Paper/16x16/apps/ubuntu-sdk.png differ diff --git a/icons/Paper/16x16/apps/ubuntudash.png b/icons/Paper/16x16/apps/ubuntudash.png new file mode 120000 index 0000000..7c6a585 --- /dev/null +++ b/icons/Paper/16x16/apps/ubuntudash.png @@ -0,0 +1 @@ +app-launcher.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ubuntusoftware.png b/icons/Paper/16x16/apps/ubuntusoftware.png new file mode 120000 index 0000000..b06ddd2 --- /dev/null +++ b/icons/Paper/16x16/apps/ubuntusoftware.png @@ -0,0 +1 @@ +software-store.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/uget-icon.png b/icons/Paper/16x16/apps/uget-icon.png new file mode 120000 index 0000000..1e51db9 --- /dev/null +++ b/icons/Paper/16x16/apps/uget-icon.png @@ -0,0 +1 @@ +uget.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/uget.png b/icons/Paper/16x16/apps/uget.png new file mode 100644 index 0000000..c80f288 Binary files /dev/null and b/icons/Paper/16x16/apps/uget.png differ diff --git a/icons/Paper/16x16/apps/unity-color-panel.png b/icons/Paper/16x16/apps/unity-color-panel.png new file mode 120000 index 0000000..4b67a29 --- /dev/null +++ b/icons/Paper/16x16/apps/unity-color-panel.png @@ -0,0 +1 @@ +preferences-color.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/unity-datetime-panel.png b/icons/Paper/16x16/apps/unity-datetime-panel.png new file mode 120000 index 0000000..ebc58b4 --- /dev/null +++ b/icons/Paper/16x16/apps/unity-datetime-panel.png @@ -0,0 +1 @@ +preferences-system-time.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/unity-display-panel.png b/icons/Paper/16x16/apps/unity-display-panel.png new file mode 120000 index 0000000..38f799a --- /dev/null +++ b/icons/Paper/16x16/apps/unity-display-panel.png @@ -0,0 +1 @@ +preferences-desktop-display.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/unity-mail.png b/icons/Paper/16x16/apps/unity-mail.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/unity-mail.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/unity-sound-panel.png b/icons/Paper/16x16/apps/unity-sound-panel.png new file mode 120000 index 0000000..4772777 --- /dev/null +++ b/icons/Paper/16x16/apps/unity-sound-panel.png @@ -0,0 +1 @@ +preferences-system-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/unity-tweak-tool.png b/icons/Paper/16x16/apps/unity-tweak-tool.png new file mode 120000 index 0000000..f559472 --- /dev/null +++ b/icons/Paper/16x16/apps/unity-tweak-tool.png @@ -0,0 +1 @@ +utilities-tweak-tool.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/update-manager.png b/icons/Paper/16x16/apps/update-manager.png new file mode 120000 index 0000000..de4b456 --- /dev/null +++ b/icons/Paper/16x16/apps/update-manager.png @@ -0,0 +1 @@ +system-software-update.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/usb-creator-gtk.png b/icons/Paper/16x16/apps/usb-creator-gtk.png new file mode 120000 index 0000000..acb8ebf --- /dev/null +++ b/icons/Paper/16x16/apps/usb-creator-gtk.png @@ -0,0 +1 @@ +system-os-installer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/usb-creator.png b/icons/Paper/16x16/apps/usb-creator.png new file mode 120000 index 0000000..acb8ebf --- /dev/null +++ b/icons/Paper/16x16/apps/usb-creator.png @@ -0,0 +1 @@ +system-os-installer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/user-info.png b/icons/Paper/16x16/apps/user-info.png new file mode 100644 index 0000000..78313ad Binary files /dev/null and b/icons/Paper/16x16/apps/user-info.png differ diff --git a/icons/Paper/16x16/apps/user_auth.png b/icons/Paper/16x16/apps/user_auth.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/user_auth.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/userinfo.png b/icons/Paper/16x16/apps/userinfo.png new file mode 120000 index 0000000..ce26f03 --- /dev/null +++ b/icons/Paper/16x16/apps/userinfo.png @@ -0,0 +1 @@ +user-info.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/utilities-file-archiver.png b/icons/Paper/16x16/apps/utilities-file-archiver.png new file mode 120000 index 0000000..cf7079d --- /dev/null +++ b/icons/Paper/16x16/apps/utilities-file-archiver.png @@ -0,0 +1 @@ +archive-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/utilities-log-viewer.png b/icons/Paper/16x16/apps/utilities-log-viewer.png new file mode 120000 index 0000000..4c61b9c --- /dev/null +++ b/icons/Paper/16x16/apps/utilities-log-viewer.png @@ -0,0 +1 @@ +system-log-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/utilities-root-terminal.png b/icons/Paper/16x16/apps/utilities-root-terminal.png new file mode 100644 index 0000000..f5a79c0 Binary files /dev/null and b/icons/Paper/16x16/apps/utilities-root-terminal.png differ diff --git a/icons/Paper/16x16/apps/utilities-system-monitor.png b/icons/Paper/16x16/apps/utilities-system-monitor.png new file mode 100644 index 0000000..f6b83cc Binary files /dev/null and b/icons/Paper/16x16/apps/utilities-system-monitor.png differ diff --git a/icons/Paper/16x16/apps/utilities-terminal-alt.png b/icons/Paper/16x16/apps/utilities-terminal-alt.png new file mode 100644 index 0000000..2742d2c Binary files /dev/null and b/icons/Paper/16x16/apps/utilities-terminal-alt.png differ diff --git a/icons/Paper/16x16/apps/utilities-terminal.png b/icons/Paper/16x16/apps/utilities-terminal.png new file mode 100644 index 0000000..edaff0b Binary files /dev/null and b/icons/Paper/16x16/apps/utilities-terminal.png differ diff --git a/icons/Paper/16x16/apps/utilities-tweak-tool.png b/icons/Paper/16x16/apps/utilities-tweak-tool.png new file mode 100644 index 0000000..598d395 Binary files /dev/null and b/icons/Paper/16x16/apps/utilities-tweak-tool.png differ diff --git a/icons/Paper/16x16/apps/utilities-x-terminal.png b/icons/Paper/16x16/apps/utilities-x-terminal.png new file mode 100644 index 0000000..5cf0524 Binary files /dev/null and b/icons/Paper/16x16/apps/utilities-x-terminal.png differ diff --git a/icons/Paper/16x16/apps/utox.png b/icons/Paper/16x16/apps/utox.png new file mode 120000 index 0000000..19e9230 --- /dev/null +++ b/icons/Paper/16x16/apps/utox.png @@ -0,0 +1 @@ +qtox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/variety-slideshow.png b/icons/Paper/16x16/apps/variety-slideshow.png new file mode 100644 index 0000000..91b2b62 Binary files /dev/null and b/icons/Paper/16x16/apps/variety-slideshow.png differ diff --git a/icons/Paper/16x16/apps/variety.png b/icons/Paper/16x16/apps/variety.png new file mode 100644 index 0000000..2dde420 Binary files /dev/null and b/icons/Paper/16x16/apps/variety.png differ diff --git a/icons/Paper/16x16/apps/vbam.png b/icons/Paper/16x16/apps/vbam.png new file mode 120000 index 0000000..7e95247 --- /dev/null +++ b/icons/Paper/16x16/apps/vbam.png @@ -0,0 +1 @@ +mgba.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/video-editor.png b/icons/Paper/16x16/apps/video-editor.png new file mode 100644 index 0000000..d1e1d6c Binary files /dev/null and b/icons/Paper/16x16/apps/video-editor.png differ diff --git a/icons/Paper/16x16/apps/vim.png b/icons/Paper/16x16/apps/vim.png new file mode 120000 index 0000000..7b796b4 --- /dev/null +++ b/icons/Paper/16x16/apps/vim.png @@ -0,0 +1 @@ +gvim.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/virt-viewer.png b/icons/Paper/16x16/apps/virt-viewer.png new file mode 120000 index 0000000..77d7ff0 --- /dev/null +++ b/icons/Paper/16x16/apps/virt-viewer.png @@ -0,0 +1 @@ +remote-desktop.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/virtualbox-ose.png b/icons/Paper/16x16/apps/virtualbox-ose.png new file mode 120000 index 0000000..3e6bbd9 --- /dev/null +++ b/icons/Paper/16x16/apps/virtualbox-ose.png @@ -0,0 +1 @@ +virtualbox.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/virtualbox.png b/icons/Paper/16x16/apps/virtualbox.png new file mode 100644 index 0000000..59ddc45 Binary files /dev/null and b/icons/Paper/16x16/apps/virtualbox.png differ diff --git a/icons/Paper/16x16/apps/visual-studio-code.png b/icons/Paper/16x16/apps/visual-studio-code.png new file mode 100644 index 0000000..8cccb28 Binary files /dev/null and b/icons/Paper/16x16/apps/visual-studio-code.png differ diff --git a/icons/Paper/16x16/apps/vivaldi-snapshot.png b/icons/Paper/16x16/apps/vivaldi-snapshot.png new file mode 120000 index 0000000..02420b1 --- /dev/null +++ b/icons/Paper/16x16/apps/vivaldi-snapshot.png @@ -0,0 +1 @@ +vivaldi.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/vivaldi.png b/icons/Paper/16x16/apps/vivaldi.png new file mode 100644 index 0000000..d52caa7 Binary files /dev/null and b/icons/Paper/16x16/apps/vivaldi.png differ diff --git a/icons/Paper/16x16/apps/vivaldi_browser.png b/icons/Paper/16x16/apps/vivaldi_browser.png new file mode 120000 index 0000000..02420b1 --- /dev/null +++ b/icons/Paper/16x16/apps/vivaldi_browser.png @@ -0,0 +1 @@ +vivaldi.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/vlc-xmas.png b/icons/Paper/16x16/apps/vlc-xmas.png new file mode 120000 index 0000000..7e93394 --- /dev/null +++ b/icons/Paper/16x16/apps/vlc-xmas.png @@ -0,0 +1 @@ +vlc.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/vlc.png b/icons/Paper/16x16/apps/vlc.png new file mode 100644 index 0000000..191eba6 Binary files /dev/null and b/icons/Paper/16x16/apps/vlc.png differ diff --git a/icons/Paper/16x16/apps/vmplayer.png b/icons/Paper/16x16/apps/vmplayer.png new file mode 120000 index 0000000..3202559 --- /dev/null +++ b/icons/Paper/16x16/apps/vmplayer.png @@ -0,0 +1 @@ +vmware-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/vmware-player.png b/icons/Paper/16x16/apps/vmware-player.png new file mode 100644 index 0000000..1d0bb94 Binary files /dev/null and b/icons/Paper/16x16/apps/vmware-player.png differ diff --git a/icons/Paper/16x16/apps/vmware-workstation.png b/icons/Paper/16x16/apps/vmware-workstation.png new file mode 100644 index 0000000..2f0ebde Binary files /dev/null and b/icons/Paper/16x16/apps/vmware-workstation.png differ diff --git a/icons/Paper/16x16/apps/vmware.png b/icons/Paper/16x16/apps/vmware.png new file mode 120000 index 0000000..d55ae67 --- /dev/null +++ b/icons/Paper/16x16/apps/vmware.png @@ -0,0 +1 @@ +vmware-workstation.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/vocal.png b/icons/Paper/16x16/apps/vocal.png new file mode 100644 index 0000000..78c95ac Binary files /dev/null and b/icons/Paper/16x16/apps/vocal.png differ diff --git a/icons/Paper/16x16/apps/volume-knob.png b/icons/Paper/16x16/apps/volume-knob.png new file mode 120000 index 0000000..fbdfcf6 --- /dev/null +++ b/icons/Paper/16x16/apps/volume-knob.png @@ -0,0 +1 @@ +multimedia-volume-control.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/wallpaper.png b/icons/Paper/16x16/apps/wallpaper.png new file mode 120000 index 0000000..a1e03ef --- /dev/null +++ b/icons/Paper/16x16/apps/wallpaper.png @@ -0,0 +1 @@ +preferences-desktop-wallpaper.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/web-browser.png b/icons/Paper/16x16/apps/web-browser.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/web-browser.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/webbrowser-app.png b/icons/Paper/16x16/apps/webbrowser-app.png new file mode 120000 index 0000000..f3b8fab --- /dev/null +++ b/icons/Paper/16x16/apps/webbrowser-app.png @@ -0,0 +1 @@ +internet-web-browser.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/whitebalance.png b/icons/Paper/16x16/apps/whitebalance.png new file mode 120000 index 0000000..e730160 --- /dev/null +++ b/icons/Paper/16x16/apps/whitebalance.png @@ -0,0 +1 @@ +preferences-system-brightness-lock.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/wine-file.0.png b/icons/Paper/16x16/apps/wine-file.0.png new file mode 120000 index 0000000..052f28e --- /dev/null +++ b/icons/Paper/16x16/apps/wine-file.0.png @@ -0,0 +1 @@ +wine.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/wine-help.png b/icons/Paper/16x16/apps/wine-help.png new file mode 100644 index 0000000..a21966c Binary files /dev/null and b/icons/Paper/16x16/apps/wine-help.png differ diff --git a/icons/Paper/16x16/apps/wine-winecfg.png b/icons/Paper/16x16/apps/wine-winecfg.png new file mode 120000 index 0000000..55e5544 --- /dev/null +++ b/icons/Paper/16x16/apps/wine-winecfg.png @@ -0,0 +1 @@ +winecfg.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/wine.png b/icons/Paper/16x16/apps/wine.png new file mode 100644 index 0000000..511a3cb Binary files /dev/null and b/icons/Paper/16x16/apps/wine.png differ diff --git a/icons/Paper/16x16/apps/winecfg.png b/icons/Paper/16x16/apps/winecfg.png new file mode 100644 index 0000000..c467d5c Binary files /dev/null and b/icons/Paper/16x16/apps/winecfg.png differ diff --git a/icons/Paper/16x16/apps/wireshark.png b/icons/Paper/16x16/apps/wireshark.png new file mode 100644 index 0000000..f6da049 Binary files /dev/null and b/icons/Paper/16x16/apps/wireshark.png differ diff --git a/icons/Paper/16x16/apps/wmtweaks.png b/icons/Paper/16x16/apps/wmtweaks.png new file mode 120000 index 0000000..57f399a --- /dev/null +++ b/icons/Paper/16x16/apps/wmtweaks.png @@ -0,0 +1 @@ +preferences-desktop-effects.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/wolfram-mathematica.png b/icons/Paper/16x16/apps/wolfram-mathematica.png new file mode 120000 index 0000000..15bb632 --- /dev/null +++ b/icons/Paper/16x16/apps/wolfram-mathematica.png @@ -0,0 +1 @@ +mathematica.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/workspace-switcher.png b/icons/Paper/16x16/apps/workspace-switcher.png new file mode 100644 index 0000000..1c8c40f Binary files /dev/null and b/icons/Paper/16x16/apps/workspace-switcher.png differ diff --git a/icons/Paper/16x16/apps/wps-office-etmain.png b/icons/Paper/16x16/apps/wps-office-etmain.png new file mode 120000 index 0000000..05ae0a3 --- /dev/null +++ b/icons/Paper/16x16/apps/wps-office-etmain.png @@ -0,0 +1 @@ +wps-spreadsheets.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/wps-office-wppmain.png b/icons/Paper/16x16/apps/wps-office-wppmain.png new file mode 120000 index 0000000..b4a84b8 --- /dev/null +++ b/icons/Paper/16x16/apps/wps-office-wppmain.png @@ -0,0 +1 @@ +wps-presentation.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/wps-office-wpsmain.png b/icons/Paper/16x16/apps/wps-office-wpsmain.png new file mode 120000 index 0000000..503978f --- /dev/null +++ b/icons/Paper/16x16/apps/wps-office-wpsmain.png @@ -0,0 +1 @@ +wps-writer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/wps-presentation.png b/icons/Paper/16x16/apps/wps-presentation.png new file mode 100644 index 0000000..0975a55 Binary files /dev/null and b/icons/Paper/16x16/apps/wps-presentation.png differ diff --git a/icons/Paper/16x16/apps/wps-spreadsheets.png b/icons/Paper/16x16/apps/wps-spreadsheets.png new file mode 100644 index 0000000..291ed97 Binary files /dev/null and b/icons/Paper/16x16/apps/wps-spreadsheets.png differ diff --git a/icons/Paper/16x16/apps/wps-writer.png b/icons/Paper/16x16/apps/wps-writer.png new file mode 100644 index 0000000..7aaf315 Binary files /dev/null and b/icons/Paper/16x16/apps/wps-writer.png differ diff --git a/icons/Paper/16x16/apps/x-office-address-book.png b/icons/Paper/16x16/apps/x-office-address-book.png new file mode 120000 index 0000000..cf4cbc8 --- /dev/null +++ b/icons/Paper/16x16/apps/x-office-address-book.png @@ -0,0 +1 @@ +office-address-book.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/x-office-calendar.png b/icons/Paper/16x16/apps/x-office-calendar.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/x-office-calendar.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xarchiver.png b/icons/Paper/16x16/apps/xarchiver.png new file mode 120000 index 0000000..cf7079d --- /dev/null +++ b/icons/Paper/16x16/apps/xarchiver.png @@ -0,0 +1 @@ +archive-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xchat-gnome.png b/icons/Paper/16x16/apps/xchat-gnome.png new file mode 120000 index 0000000..d89cc2d --- /dev/null +++ b/icons/Paper/16x16/apps/xchat-gnome.png @@ -0,0 +1 @@ +xchat.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xchat-mini.png b/icons/Paper/16x16/apps/xchat-mini.png new file mode 120000 index 0000000..d89cc2d --- /dev/null +++ b/icons/Paper/16x16/apps/xchat-mini.png @@ -0,0 +1 @@ +xchat.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xchat.png b/icons/Paper/16x16/apps/xchat.png new file mode 100644 index 0000000..6cc4b90 Binary files /dev/null and b/icons/Paper/16x16/apps/xchat.png differ diff --git a/icons/Paper/16x16/apps/xfburn.png b/icons/Paper/16x16/apps/xfburn.png new file mode 120000 index 0000000..020d7a1 --- /dev/null +++ b/icons/Paper/16x16/apps/xfburn.png @@ -0,0 +1 @@ +disk-burner.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfcalendar.png b/icons/Paper/16x16/apps/xfcalendar.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/xfcalendar.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce-filemanager.png b/icons/Paper/16x16/apps/xfce-filemanager.png new file mode 120000 index 0000000..d3acbaa --- /dev/null +++ b/icons/Paper/16x16/apps/xfce-filemanager.png @@ -0,0 +1 @@ +system-file-manager.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce-mail.png b/icons/Paper/16x16/apps/xfce-mail.png new file mode 120000 index 0000000..a52d4b2 --- /dev/null +++ b/icons/Paper/16x16/apps/xfce-mail.png @@ -0,0 +1 @@ +internet-mail.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce-panel.png b/icons/Paper/16x16/apps/xfce-panel.png new file mode 120000 index 0000000..0308eee --- /dev/null +++ b/icons/Paper/16x16/apps/xfce-panel.png @@ -0,0 +1 @@ +desktop-panel.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce-terminal.png b/icons/Paper/16x16/apps/xfce-terminal.png new file mode 120000 index 0000000..286627f --- /dev/null +++ b/icons/Paper/16x16/apps/xfce-terminal.png @@ -0,0 +1 @@ +utilities-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-appfinder.png b/icons/Paper/16x16/apps/xfce4-appfinder.png new file mode 120000 index 0000000..22c813d --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-appfinder.png @@ -0,0 +1 @@ +preferences-system-search.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-backdrop.png b/icons/Paper/16x16/apps/xfce4-backdrop.png new file mode 120000 index 0000000..a1e03ef --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-backdrop.png @@ -0,0 +1 @@ +preferences-desktop-wallpaper.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-dict.png b/icons/Paper/16x16/apps/xfce4-dict.png new file mode 120000 index 0000000..eb21301 --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-dict.png @@ -0,0 +1 @@ +accessories-dictionary.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-mixer.png b/icons/Paper/16x16/apps/xfce4-mixer.png new file mode 120000 index 0000000..4772777 --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-mixer.png @@ -0,0 +1 @@ +preferences-system-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-notes-plugin.png b/icons/Paper/16x16/apps/xfce4-notes-plugin.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-notes-plugin.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-notifyd.png b/icons/Paper/16x16/apps/xfce4-notifyd.png new file mode 120000 index 0000000..aaf2c07 --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-notifyd.png @@ -0,0 +1 @@ +preferences-system-notifications.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-panel.png b/icons/Paper/16x16/apps/xfce4-panel.png new file mode 120000 index 0000000..0308eee --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-panel.png @@ -0,0 +1 @@ +desktop-panel.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-session.png b/icons/Paper/16x16/apps/xfce4-session.png new file mode 120000 index 0000000..8789755 --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-session.png @@ -0,0 +1 @@ +session-properties.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-sound.png b/icons/Paper/16x16/apps/xfce4-sound.png new file mode 120000 index 0000000..94c16df --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-sound.png @@ -0,0 +1 @@ +preferences-desktop-sound.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfce4-workspaces.png b/icons/Paper/16x16/apps/xfce4-workspaces.png new file mode 120000 index 0000000..f478eb5 --- /dev/null +++ b/icons/Paper/16x16/apps/xfce4-workspaces.png @@ -0,0 +1 @@ +workspace-switcher.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xfwm4.png b/icons/Paper/16x16/apps/xfwm4.png new file mode 120000 index 0000000..1d414f9 --- /dev/null +++ b/icons/Paper/16x16/apps/xfwm4.png @@ -0,0 +1 @@ +preferences-system-windows.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/ximian-evolution-calendar.png b/icons/Paper/16x16/apps/ximian-evolution-calendar.png new file mode 120000 index 0000000..64dfd22 --- /dev/null +++ b/icons/Paper/16x16/apps/ximian-evolution-calendar.png @@ -0,0 +1 @@ +office-calendar.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xmind.png b/icons/Paper/16x16/apps/xmind.png new file mode 100644 index 0000000..ad66723 Binary files /dev/null and b/icons/Paper/16x16/apps/xmind.png differ diff --git a/icons/Paper/16x16/apps/xnoise.png b/icons/Paper/16x16/apps/xnoise.png new file mode 100644 index 0000000..085fa68 Binary files /dev/null and b/icons/Paper/16x16/apps/xnoise.png differ diff --git a/icons/Paper/16x16/apps/xpad.png b/icons/Paper/16x16/apps/xpad.png new file mode 120000 index 0000000..f3e1442 --- /dev/null +++ b/icons/Paper/16x16/apps/xpad.png @@ -0,0 +1 @@ +accessories-notes.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xpdf.png b/icons/Paper/16x16/apps/xpdf.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/xpdf.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xplayer.png b/icons/Paper/16x16/apps/xplayer.png new file mode 120000 index 0000000..5342b49 --- /dev/null +++ b/icons/Paper/16x16/apps/xplayer.png @@ -0,0 +1 @@ +multimedia-video-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xreader.png b/icons/Paper/16x16/apps/xreader.png new file mode 120000 index 0000000..b96d7b6 --- /dev/null +++ b/icons/Paper/16x16/apps/xreader.png @@ -0,0 +1 @@ +accessories-document-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xscreensaver.png b/icons/Paper/16x16/apps/xscreensaver.png new file mode 120000 index 0000000..305fd35 --- /dev/null +++ b/icons/Paper/16x16/apps/xscreensaver.png @@ -0,0 +1 @@ +preferences-desktop-screensaver.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xterm-color.png b/icons/Paper/16x16/apps/xterm-color.png new file mode 120000 index 0000000..d7840f7 --- /dev/null +++ b/icons/Paper/16x16/apps/xterm-color.png @@ -0,0 +1 @@ +utilities-x-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xterm-color_32x32.png b/icons/Paper/16x16/apps/xterm-color_32x32.png new file mode 120000 index 0000000..d7840f7 --- /dev/null +++ b/icons/Paper/16x16/apps/xterm-color_32x32.png @@ -0,0 +1 @@ +utilities-x-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xterm-color_48x48.png b/icons/Paper/16x16/apps/xterm-color_48x48.png new file mode 120000 index 0000000..d7840f7 --- /dev/null +++ b/icons/Paper/16x16/apps/xterm-color_48x48.png @@ -0,0 +1 @@ +utilities-x-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xterm.png b/icons/Paper/16x16/apps/xterm.png new file mode 120000 index 0000000..d7840f7 --- /dev/null +++ b/icons/Paper/16x16/apps/xterm.png @@ -0,0 +1 @@ +utilities-x-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xterm_32x32.png b/icons/Paper/16x16/apps/xterm_32x32.png new file mode 120000 index 0000000..d7840f7 --- /dev/null +++ b/icons/Paper/16x16/apps/xterm_32x32.png @@ -0,0 +1 @@ +utilities-x-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xterm_48x48.png b/icons/Paper/16x16/apps/xterm_48x48.png new file mode 120000 index 0000000..d7840f7 --- /dev/null +++ b/icons/Paper/16x16/apps/xterm_48x48.png @@ -0,0 +1 @@ +utilities-x-terminal.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/xviewer.png b/icons/Paper/16x16/apps/xviewer.png new file mode 120000 index 0000000..063b180 --- /dev/null +++ b/icons/Paper/16x16/apps/xviewer.png @@ -0,0 +1 @@ +multimedia-photo-viewer.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/yast.png b/icons/Paper/16x16/apps/yast.png new file mode 100644 index 0000000..f06781a Binary files /dev/null and b/icons/Paper/16x16/apps/yast.png differ diff --git a/icons/Paper/16x16/apps/yast2.png b/icons/Paper/16x16/apps/yast2.png new file mode 120000 index 0000000..4a9ff6f --- /dev/null +++ b/icons/Paper/16x16/apps/yast2.png @@ -0,0 +1 @@ +yast.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/youtube-dl-gui.png b/icons/Paper/16x16/apps/youtube-dl-gui.png new file mode 120000 index 0000000..988ec0d --- /dev/null +++ b/icons/Paper/16x16/apps/youtube-dl-gui.png @@ -0,0 +1 @@ +youtube-dl.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/youtube-dl-gui_48x48.png b/icons/Paper/16x16/apps/youtube-dl-gui_48x48.png new file mode 120000 index 0000000..988ec0d --- /dev/null +++ b/icons/Paper/16x16/apps/youtube-dl-gui_48x48.png @@ -0,0 +1 @@ +youtube-dl.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/youtube-dl.png b/icons/Paper/16x16/apps/youtube-dl.png new file mode 100644 index 0000000..e94b086 Binary files /dev/null and b/icons/Paper/16x16/apps/youtube-dl.png differ diff --git a/icons/Paper/16x16/apps/youtube-dlg.png b/icons/Paper/16x16/apps/youtube-dlg.png new file mode 120000 index 0000000..988ec0d --- /dev/null +++ b/icons/Paper/16x16/apps/youtube-dlg.png @@ -0,0 +1 @@ +youtube-dl.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/yumex-dnf.png b/icons/Paper/16x16/apps/yumex-dnf.png new file mode 120000 index 0000000..29afd7d --- /dev/null +++ b/icons/Paper/16x16/apps/yumex-dnf.png @@ -0,0 +1 @@ +system-software-install.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/yumex.png b/icons/Paper/16x16/apps/yumex.png new file mode 120000 index 0000000..29afd7d --- /dev/null +++ b/icons/Paper/16x16/apps/yumex.png @@ -0,0 +1 @@ +system-software-install.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/zeal.png b/icons/Paper/16x16/apps/zeal.png new file mode 100644 index 0000000..04d45c4 Binary files /dev/null and b/icons/Paper/16x16/apps/zeal.png differ diff --git a/icons/Paper/16x16/apps/zen-icon.png b/icons/Paper/16x16/apps/zen-icon.png new file mode 120000 index 0000000..de4b456 --- /dev/null +++ b/icons/Paper/16x16/apps/zen-icon.png @@ -0,0 +1 @@ +system-software-update.png \ No newline at end of file diff --git a/icons/Paper/16x16/apps/zotero.png b/icons/Paper/16x16/apps/zotero.png new file mode 100644 index 0000000..dbf4527 Binary files /dev/null and b/icons/Paper/16x16/apps/zotero.png differ diff --git a/icons/Paper/16x16/apps/zsnes.png b/icons/Paper/16x16/apps/zsnes.png new file mode 100644 index 0000000..6103c59 Binary files /dev/null and b/icons/Paper/16x16/apps/zsnes.png differ diff --git a/icons/Paper/16x16/devices/3floppy_unmount.png b/icons/Paper/16x16/devices/3floppy_unmount.png new file mode 120000 index 0000000..279b734 --- /dev/null +++ b/icons/Paper/16x16/devices/3floppy_unmount.png @@ -0,0 +1 @@ +media-floppy.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/audio-card.png b/icons/Paper/16x16/devices/audio-card.png new file mode 100644 index 0000000..7513dd8 Binary files /dev/null and b/icons/Paper/16x16/devices/audio-card.png differ diff --git a/icons/Paper/16x16/devices/audio-speakers.png b/icons/Paper/16x16/devices/audio-speakers.png new file mode 100644 index 0000000..b4897af Binary files /dev/null and b/icons/Paper/16x16/devices/audio-speakers.png differ diff --git a/icons/Paper/16x16/devices/battery.png b/icons/Paper/16x16/devices/battery.png new file mode 100644 index 0000000..450b6e3 Binary files /dev/null and b/icons/Paper/16x16/devices/battery.png differ diff --git a/icons/Paper/16x16/devices/blueman-device.png b/icons/Paper/16x16/devices/blueman-device.png new file mode 120000 index 0000000..54369f0 --- /dev/null +++ b/icons/Paper/16x16/devices/blueman-device.png @@ -0,0 +1 @@ +bluetooth.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/bluetooth.png b/icons/Paper/16x16/devices/bluetooth.png new file mode 100644 index 0000000..75c25a1 Binary files /dev/null and b/icons/Paper/16x16/devices/bluetooth.png differ diff --git a/icons/Paper/16x16/devices/camera-photo.png b/icons/Paper/16x16/devices/camera-photo.png new file mode 100644 index 0000000..d65d586 Binary files /dev/null and b/icons/Paper/16x16/devices/camera-photo.png differ diff --git a/icons/Paper/16x16/devices/camera-web.png b/icons/Paper/16x16/devices/camera-web.png new file mode 100644 index 0000000..217ccf6 Binary files /dev/null and b/icons/Paper/16x16/devices/camera-web.png differ diff --git a/icons/Paper/16x16/devices/camera.png b/icons/Paper/16x16/devices/camera.png new file mode 120000 index 0000000..8385201 --- /dev/null +++ b/icons/Paper/16x16/devices/camera.png @@ -0,0 +1 @@ +camera-photo.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/camera_unmount.png b/icons/Paper/16x16/devices/camera_unmount.png new file mode 120000 index 0000000..8385201 --- /dev/null +++ b/icons/Paper/16x16/devices/camera_unmount.png @@ -0,0 +1 @@ +camera-photo.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/cdrom_unmount.png b/icons/Paper/16x16/devices/cdrom_unmount.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/cdrom_unmount.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/cdwriter_unmount.png b/icons/Paper/16x16/devices/cdwriter_unmount.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/cdwriter_unmount.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/chardevice.png b/icons/Paper/16x16/devices/chardevice.png new file mode 120000 index 0000000..8954700 --- /dev/null +++ b/icons/Paper/16x16/devices/chardevice.png @@ -0,0 +1 @@ +video-display.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/computer.png b/icons/Paper/16x16/devices/computer.png new file mode 100644 index 0000000..e13fa18 Binary files /dev/null and b/icons/Paper/16x16/devices/computer.png differ diff --git a/icons/Paper/16x16/devices/cs-mouse.png b/icons/Paper/16x16/devices/cs-mouse.png new file mode 120000 index 0000000..8554204 --- /dev/null +++ b/icons/Paper/16x16/devices/cs-mouse.png @@ -0,0 +1 @@ +input-mouse.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/cs-printer.png b/icons/Paper/16x16/devices/cs-printer.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/cs-printer.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/cs-screen.png b/icons/Paper/16x16/devices/cs-screen.png new file mode 120000 index 0000000..9282466 --- /dev/null +++ b/icons/Paper/16x16/devices/cs-screen.png @@ -0,0 +1 @@ +computer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/cs-tablet.png b/icons/Paper/16x16/devices/cs-tablet.png new file mode 120000 index 0000000..ff916c5 --- /dev/null +++ b/icons/Paper/16x16/devices/cs-tablet.png @@ -0,0 +1 @@ +input-tablet.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/cups.png b/icons/Paper/16x16/devices/cups.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/cups.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/display.png b/icons/Paper/16x16/devices/display.png new file mode 120000 index 0000000..8954700 --- /dev/null +++ b/icons/Paper/16x16/devices/display.png @@ -0,0 +1 @@ +video-display.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/drive-cdrom.png b/icons/Paper/16x16/devices/drive-cdrom.png new file mode 120000 index 0000000..c9b5b07 --- /dev/null +++ b/icons/Paper/16x16/devices/drive-cdrom.png @@ -0,0 +1 @@ +drive-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/drive-harddisk-ieee1394.png b/icons/Paper/16x16/devices/drive-harddisk-ieee1394.png new file mode 100644 index 0000000..57e097d Binary files /dev/null and b/icons/Paper/16x16/devices/drive-harddisk-ieee1394.png differ diff --git a/icons/Paper/16x16/devices/drive-harddisk-system.png b/icons/Paper/16x16/devices/drive-harddisk-system.png new file mode 120000 index 0000000..5ae6228 --- /dev/null +++ b/icons/Paper/16x16/devices/drive-harddisk-system.png @@ -0,0 +1 @@ +drive-harddisk.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/drive-harddisk-usb.png b/icons/Paper/16x16/devices/drive-harddisk-usb.png new file mode 100644 index 0000000..e7c0ff5 Binary files /dev/null and b/icons/Paper/16x16/devices/drive-harddisk-usb.png differ diff --git a/icons/Paper/16x16/devices/drive-harddisk.png b/icons/Paper/16x16/devices/drive-harddisk.png new file mode 100644 index 0000000..4933818 Binary files /dev/null and b/icons/Paper/16x16/devices/drive-harddisk.png differ diff --git a/icons/Paper/16x16/devices/drive-optical.png b/icons/Paper/16x16/devices/drive-optical.png new file mode 100644 index 0000000..e04ebbc Binary files /dev/null and b/icons/Paper/16x16/devices/drive-optical.png differ diff --git a/icons/Paper/16x16/devices/drive-removable-media.png b/icons/Paper/16x16/devices/drive-removable-media.png new file mode 100644 index 0000000..a50cb6f Binary files /dev/null and b/icons/Paper/16x16/devices/drive-removable-media.png differ diff --git a/icons/Paper/16x16/devices/dvd_unmount.png b/icons/Paper/16x16/devices/dvd_unmount.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/dvd_unmount.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-battery.png b/icons/Paper/16x16/devices/gnome-dev-battery.png new file mode 120000 index 0000000..2707bb8 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-battery.png @@ -0,0 +1 @@ +battery.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-cdrom-audio.png b/icons/Paper/16x16/devices/gnome-dev-cdrom-audio.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-cdrom-audio.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-cdrom.png b/icons/Paper/16x16/devices/gnome-dev-cdrom.png new file mode 120000 index 0000000..c9b5b07 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-cdrom.png @@ -0,0 +1 @@ +drive-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-computer.png b/icons/Paper/16x16/devices/gnome-dev-computer.png new file mode 120000 index 0000000..9282466 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-computer.png @@ -0,0 +1 @@ +computer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-disc-cdr.png b/icons/Paper/16x16/devices/gnome-dev-disc-cdr.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-disc-cdr.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-disc-cdrw.png b/icons/Paper/16x16/devices/gnome-dev-disc-cdrw.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-disc-cdrw.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-disc-dvdr-plus.png b/icons/Paper/16x16/devices/gnome-dev-disc-dvdr-plus.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-disc-dvdr-plus.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-disc-dvdr.png b/icons/Paper/16x16/devices/gnome-dev-disc-dvdr.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-disc-dvdr.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-disc-dvdram.png b/icons/Paper/16x16/devices/gnome-dev-disc-dvdram.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-disc-dvdram.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-disc-dvdrom.png b/icons/Paper/16x16/devices/gnome-dev-disc-dvdrom.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-disc-dvdrom.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-disc-dvdrw.png b/icons/Paper/16x16/devices/gnome-dev-disc-dvdrw.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-disc-dvdrw.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-dvd.png b/icons/Paper/16x16/devices/gnome-dev-dvd.png new file mode 120000 index 0000000..c9b5b07 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-dvd.png @@ -0,0 +1 @@ +drive-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-ethernet.png b/icons/Paper/16x16/devices/gnome-dev-ethernet.png new file mode 120000 index 0000000..54f2738 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-ethernet.png @@ -0,0 +1 @@ +network-wired.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-floppy.png b/icons/Paper/16x16/devices/gnome-dev-floppy.png new file mode 120000 index 0000000..279b734 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-floppy.png @@ -0,0 +1 @@ +media-floppy.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-harddisk-1394.png b/icons/Paper/16x16/devices/gnome-dev-harddisk-1394.png new file mode 120000 index 0000000..5ae6228 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-harddisk-1394.png @@ -0,0 +1 @@ +drive-harddisk.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-harddisk-usb.png b/icons/Paper/16x16/devices/gnome-dev-harddisk-usb.png new file mode 120000 index 0000000..5ae6228 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-harddisk-usb.png @@ -0,0 +1 @@ +drive-harddisk.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-harddisk.png b/icons/Paper/16x16/devices/gnome-dev-harddisk.png new file mode 120000 index 0000000..5ae6228 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-harddisk.png @@ -0,0 +1 @@ +drive-harddisk.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-ipod.png b/icons/Paper/16x16/devices/gnome-dev-ipod.png new file mode 120000 index 0000000..6657b66 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-ipod.png @@ -0,0 +1 @@ +multimedia-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-keyboard.png b/icons/Paper/16x16/devices/gnome-dev-keyboard.png new file mode 120000 index 0000000..25bf161 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-keyboard.png @@ -0,0 +1 @@ +input-keyboard.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-media-cf.png b/icons/Paper/16x16/devices/gnome-dev-media-cf.png new file mode 120000 index 0000000..fa4f53c --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-media-cf.png @@ -0,0 +1 @@ +media-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-media-ms.png b/icons/Paper/16x16/devices/gnome-dev-media-ms.png new file mode 120000 index 0000000..fa4f53c --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-media-ms.png @@ -0,0 +1 @@ +media-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-media-sdmmc.png b/icons/Paper/16x16/devices/gnome-dev-media-sdmmc.png new file mode 120000 index 0000000..fa4f53c --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-media-sdmmc.png @@ -0,0 +1 @@ +media-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-media-sm.png b/icons/Paper/16x16/devices/gnome-dev-media-sm.png new file mode 120000 index 0000000..fa4f53c --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-media-sm.png @@ -0,0 +1 @@ +media-flash.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-mouse-ball.png b/icons/Paper/16x16/devices/gnome-dev-mouse-ball.png new file mode 120000 index 0000000..8554204 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-mouse-ball.png @@ -0,0 +1 @@ +input-mouse.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-mouse-optical.png b/icons/Paper/16x16/devices/gnome-dev-mouse-optical.png new file mode 120000 index 0000000..8554204 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-mouse-optical.png @@ -0,0 +1 @@ +input-mouse.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-printer-new.png b/icons/Paper/16x16/devices/gnome-dev-printer-new.png new file mode 100644 index 0000000..797a608 Binary files /dev/null and b/icons/Paper/16x16/devices/gnome-dev-printer-new.png differ diff --git a/icons/Paper/16x16/devices/gnome-dev-printer.png b/icons/Paper/16x16/devices/gnome-dev-printer.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-printer.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-removable-1394.png b/icons/Paper/16x16/devices/gnome-dev-removable-1394.png new file mode 120000 index 0000000..3e9399e --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-removable-1394.png @@ -0,0 +1 @@ +drive-removable-media.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-removable-usb.png b/icons/Paper/16x16/devices/gnome-dev-removable-usb.png new file mode 120000 index 0000000..3e9399e --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-removable-usb.png @@ -0,0 +1 @@ +drive-removable-media.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-removable.png b/icons/Paper/16x16/devices/gnome-dev-removable.png new file mode 120000 index 0000000..3e9399e --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-removable.png @@ -0,0 +1 @@ +drive-removable-media.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-dev-wavelan.png b/icons/Paper/16x16/devices/gnome-dev-wavelan.png new file mode 120000 index 0000000..7b04fb1 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-dev-wavelan.png @@ -0,0 +1 @@ +network-wireless.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gnome-fs-client.png b/icons/Paper/16x16/devices/gnome-fs-client.png new file mode 120000 index 0000000..9282466 --- /dev/null +++ b/icons/Paper/16x16/devices/gnome-fs-client.png @@ -0,0 +1 @@ +computer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gtk-cdrom.png b/icons/Paper/16x16/devices/gtk-cdrom.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/gtk-cdrom.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gtk-floppy.png b/icons/Paper/16x16/devices/gtk-floppy.png new file mode 120000 index 0000000..279b734 --- /dev/null +++ b/icons/Paper/16x16/devices/gtk-floppy.png @@ -0,0 +1 @@ +media-floppy.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/gtk-harddisk.png b/icons/Paper/16x16/devices/gtk-harddisk.png new file mode 120000 index 0000000..5ae6228 --- /dev/null +++ b/icons/Paper/16x16/devices/gtk-harddisk.png @@ -0,0 +1 @@ +drive-harddisk.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/harddrive.png b/icons/Paper/16x16/devices/harddrive.png new file mode 120000 index 0000000..5ae6228 --- /dev/null +++ b/icons/Paper/16x16/devices/harddrive.png @@ -0,0 +1 @@ +drive-harddisk.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/hdd_unmount.png b/icons/Paper/16x16/devices/hdd_unmount.png new file mode 120000 index 0000000..5ae6228 --- /dev/null +++ b/icons/Paper/16x16/devices/hdd_unmount.png @@ -0,0 +1 @@ +drive-harddisk.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/input-gaming.png b/icons/Paper/16x16/devices/input-gaming.png new file mode 100644 index 0000000..f837d36 Binary files /dev/null and b/icons/Paper/16x16/devices/input-gaming.png differ diff --git a/icons/Paper/16x16/devices/input-keyboard.png b/icons/Paper/16x16/devices/input-keyboard.png new file mode 100644 index 0000000..cbcdbee Binary files /dev/null and b/icons/Paper/16x16/devices/input-keyboard.png differ diff --git a/icons/Paper/16x16/devices/input-mouse.png b/icons/Paper/16x16/devices/input-mouse.png new file mode 100644 index 0000000..dbc3c6b Binary files /dev/null and b/icons/Paper/16x16/devices/input-mouse.png differ diff --git a/icons/Paper/16x16/devices/input-tablet.png b/icons/Paper/16x16/devices/input-tablet.png new file mode 100644 index 0000000..0a189dc Binary files /dev/null and b/icons/Paper/16x16/devices/input-tablet.png differ diff --git a/icons/Paper/16x16/devices/ipod_mount.png b/icons/Paper/16x16/devices/ipod_mount.png new file mode 120000 index 0000000..6657b66 --- /dev/null +++ b/icons/Paper/16x16/devices/ipod_mount.png @@ -0,0 +1 @@ +multimedia-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/joystick.png b/icons/Paper/16x16/devices/joystick.png new file mode 120000 index 0000000..840030c --- /dev/null +++ b/icons/Paper/16x16/devices/joystick.png @@ -0,0 +1 @@ +input-gaming.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/keyboard.png b/icons/Paper/16x16/devices/keyboard.png new file mode 120000 index 0000000..25bf161 --- /dev/null +++ b/icons/Paper/16x16/devices/keyboard.png @@ -0,0 +1 @@ +input-keyboard.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/kjobviewer.png b/icons/Paper/16x16/devices/kjobviewer.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/kjobviewer.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/kxkb.png b/icons/Paper/16x16/devices/kxkb.png new file mode 120000 index 0000000..25bf161 --- /dev/null +++ b/icons/Paper/16x16/devices/kxkb.png @@ -0,0 +1 @@ +input-keyboard.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-cdr.png b/icons/Paper/16x16/devices/media-cdr.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-cdr.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-cdrom-audio.png b/icons/Paper/16x16/devices/media-cdrom-audio.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-cdrom-audio.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-cdrom.png b/icons/Paper/16x16/devices/media-cdrom.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-cdrom.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-cdrw.png b/icons/Paper/16x16/devices/media-cdrw.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-cdrw.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-dvd.png b/icons/Paper/16x16/devices/media-dvd.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-dvd.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-dvdrw.png b/icons/Paper/16x16/devices/media-dvdrw.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-dvdrw.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-flash.png b/icons/Paper/16x16/devices/media-flash.png new file mode 100644 index 0000000..f0ac460 Binary files /dev/null and b/icons/Paper/16x16/devices/media-flash.png differ diff --git a/icons/Paper/16x16/devices/media-floppy.png b/icons/Paper/16x16/devices/media-floppy.png new file mode 100644 index 0000000..cf3b0d4 Binary files /dev/null and b/icons/Paper/16x16/devices/media-floppy.png differ diff --git a/icons/Paper/16x16/devices/media-optical-cd-video.png b/icons/Paper/16x16/devices/media-optical-cd-video.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-optical-cd-video.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-optical-copy.png b/icons/Paper/16x16/devices/media-optical-copy.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-optical-copy.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-optical-dvd-video.png b/icons/Paper/16x16/devices/media-optical-dvd-video.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-optical-dvd-video.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-optical-video.png b/icons/Paper/16x16/devices/media-optical-video.png new file mode 120000 index 0000000..dcb92be --- /dev/null +++ b/icons/Paper/16x16/devices/media-optical-video.png @@ -0,0 +1 @@ +media-optical.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-optical.png b/icons/Paper/16x16/devices/media-optical.png new file mode 100644 index 0000000..62061b3 Binary files /dev/null and b/icons/Paper/16x16/devices/media-optical.png differ diff --git a/icons/Paper/16x16/devices/media-removable.png b/icons/Paper/16x16/devices/media-removable.png new file mode 120000 index 0000000..3e9399e --- /dev/null +++ b/icons/Paper/16x16/devices/media-removable.png @@ -0,0 +1 @@ +drive-removable-media.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/media-tape.png b/icons/Paper/16x16/devices/media-tape.png new file mode 100644 index 0000000..bc34410 Binary files /dev/null and b/icons/Paper/16x16/devices/media-tape.png differ diff --git a/icons/Paper/16x16/devices/mouse.png b/icons/Paper/16x16/devices/mouse.png new file mode 120000 index 0000000..8554204 --- /dev/null +++ b/icons/Paper/16x16/devices/mouse.png @@ -0,0 +1 @@ +input-mouse.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/multimedia-player.png b/icons/Paper/16x16/devices/multimedia-player.png new file mode 100644 index 0000000..4c04b5f Binary files /dev/null and b/icons/Paper/16x16/devices/multimedia-player.png differ diff --git a/icons/Paper/16x16/devices/music-player.png b/icons/Paper/16x16/devices/music-player.png new file mode 120000 index 0000000..6657b66 --- /dev/null +++ b/icons/Paper/16x16/devices/music-player.png @@ -0,0 +1 @@ +multimedia-player.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/network-vpn.png b/icons/Paper/16x16/devices/network-vpn.png new file mode 100644 index 0000000..39bfac7 Binary files /dev/null and b/icons/Paper/16x16/devices/network-vpn.png differ diff --git a/icons/Paper/16x16/devices/network-wired.png b/icons/Paper/16x16/devices/network-wired.png new file mode 100644 index 0000000..9b958b0 Binary files /dev/null and b/icons/Paper/16x16/devices/network-wired.png differ diff --git a/icons/Paper/16x16/devices/network-wireless.png b/icons/Paper/16x16/devices/network-wireless.png new file mode 100644 index 0000000..a848718 Binary files /dev/null and b/icons/Paper/16x16/devices/network-wireless.png differ diff --git a/icons/Paper/16x16/devices/nm-device-wireless.png b/icons/Paper/16x16/devices/nm-device-wireless.png new file mode 120000 index 0000000..7b04fb1 --- /dev/null +++ b/icons/Paper/16x16/devices/nm-device-wireless.png @@ -0,0 +1 @@ +network-wireless.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/preferences-desktop-mouse.png b/icons/Paper/16x16/devices/preferences-desktop-mouse.png new file mode 120000 index 0000000..8554204 --- /dev/null +++ b/icons/Paper/16x16/devices/preferences-desktop-mouse.png @@ -0,0 +1 @@ +input-mouse.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/preferences-desktop-peripherals.png b/icons/Paper/16x16/devices/preferences-desktop-peripherals.png new file mode 120000 index 0000000..8554204 --- /dev/null +++ b/icons/Paper/16x16/devices/preferences-desktop-peripherals.png @@ -0,0 +1 @@ +input-mouse.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/preferences-desktop-printer.png b/icons/Paper/16x16/devices/preferences-desktop-printer.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/preferences-desktop-printer.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/printer-network.png b/icons/Paper/16x16/devices/printer-network.png new file mode 120000 index 0000000..1a8cfeb --- /dev/null +++ b/icons/Paper/16x16/devices/printer-network.png @@ -0,0 +1 @@ +printer-remote.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/printer-remote.png b/icons/Paper/16x16/devices/printer-remote.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/printer-remote.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/printer.png b/icons/Paper/16x16/devices/printer.png new file mode 100644 index 0000000..22e0ae4 Binary files /dev/null and b/icons/Paper/16x16/devices/printer.png differ diff --git a/icons/Paper/16x16/devices/printer1.png b/icons/Paper/16x16/devices/printer1.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/printer1.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/printmgr.png b/icons/Paper/16x16/devices/printmgr.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/printmgr.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/removable-media.png b/icons/Paper/16x16/devices/removable-media.png new file mode 120000 index 0000000..3e9399e --- /dev/null +++ b/icons/Paper/16x16/devices/removable-media.png @@ -0,0 +1 @@ +drive-removable-media.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/scanner.png b/icons/Paper/16x16/devices/scanner.png new file mode 100644 index 0000000..b1cb0c9 Binary files /dev/null and b/icons/Paper/16x16/devices/scanner.png differ diff --git a/icons/Paper/16x16/devices/stock_printers.png b/icons/Paper/16x16/devices/stock_printers.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/stock_printers.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/system-floppy.png b/icons/Paper/16x16/devices/system-floppy.png new file mode 120000 index 0000000..279b734 --- /dev/null +++ b/icons/Paper/16x16/devices/system-floppy.png @@ -0,0 +1 @@ +media-floppy.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/system.png b/icons/Paper/16x16/devices/system.png new file mode 120000 index 0000000..9282466 --- /dev/null +++ b/icons/Paper/16x16/devices/system.png @@ -0,0 +1 @@ +computer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/unity-fallback-mount-helper.png b/icons/Paper/16x16/devices/unity-fallback-mount-helper.png new file mode 120000 index 0000000..3e9399e --- /dev/null +++ b/icons/Paper/16x16/devices/unity-fallback-mount-helper.png @@ -0,0 +1 @@ +drive-removable-media.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/usbpendrive_unmount.png b/icons/Paper/16x16/devices/usbpendrive_unmount.png new file mode 120000 index 0000000..3e9399e --- /dev/null +++ b/icons/Paper/16x16/devices/usbpendrive_unmount.png @@ -0,0 +1 @@ +drive-removable-media.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/video-display.png b/icons/Paper/16x16/devices/video-display.png new file mode 100644 index 0000000..f255da8 Binary files /dev/null and b/icons/Paper/16x16/devices/video-display.png differ diff --git a/icons/Paper/16x16/devices/xfce-printer.png b/icons/Paper/16x16/devices/xfce-printer.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/xfce-printer.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/xfce4-display.png b/icons/Paper/16x16/devices/xfce4-display.png new file mode 120000 index 0000000..8954700 --- /dev/null +++ b/icons/Paper/16x16/devices/xfce4-display.png @@ -0,0 +1 @@ +video-display.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/xfce4-keyboard.png b/icons/Paper/16x16/devices/xfce4-keyboard.png new file mode 120000 index 0000000..25bf161 --- /dev/null +++ b/icons/Paper/16x16/devices/xfce4-keyboard.png @@ -0,0 +1 @@ +input-keyboard.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/xfce4-mouse.png b/icons/Paper/16x16/devices/xfce4-mouse.png new file mode 120000 index 0000000..8554204 --- /dev/null +++ b/icons/Paper/16x16/devices/xfce4-mouse.png @@ -0,0 +1 @@ +input-mouse.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/yast_HD.png b/icons/Paper/16x16/devices/yast_HD.png new file mode 120000 index 0000000..5ae6228 --- /dev/null +++ b/icons/Paper/16x16/devices/yast_HD.png @@ -0,0 +1 @@ +drive-harddisk.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/yast_idetude.png b/icons/Paper/16x16/devices/yast_idetude.png new file mode 120000 index 0000000..5ae6228 --- /dev/null +++ b/icons/Paper/16x16/devices/yast_idetude.png @@ -0,0 +1 @@ +drive-harddisk.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/yast_joystick.png b/icons/Paper/16x16/devices/yast_joystick.png new file mode 120000 index 0000000..840030c --- /dev/null +++ b/icons/Paper/16x16/devices/yast_joystick.png @@ -0,0 +1 @@ +input-gaming.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/yast_mouse.png b/icons/Paper/16x16/devices/yast_mouse.png new file mode 120000 index 0000000..8554204 --- /dev/null +++ b/icons/Paper/16x16/devices/yast_mouse.png @@ -0,0 +1 @@ +input-mouse.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/yast_printer.png b/icons/Paper/16x16/devices/yast_printer.png new file mode 120000 index 0000000..a8ee2d7 --- /dev/null +++ b/icons/Paper/16x16/devices/yast_printer.png @@ -0,0 +1 @@ +printer.png \ No newline at end of file diff --git a/icons/Paper/16x16/devices/yast_soundcard.png b/icons/Paper/16x16/devices/yast_soundcard.png new file mode 120000 index 0000000..b252968 --- /dev/null +++ b/icons/Paper/16x16/devices/yast_soundcard.png @@ -0,0 +1 @@ +audio-card.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/appointment-missed.png b/icons/Paper/16x16/status/appointment-missed.png new file mode 100644 index 0000000..bed695f Binary files /dev/null and b/icons/Paper/16x16/status/appointment-missed.png differ diff --git a/icons/Paper/16x16/status/appointment-soon.png b/icons/Paper/16x16/status/appointment-soon.png new file mode 100644 index 0000000..874c986 Binary files /dev/null and b/icons/Paper/16x16/status/appointment-soon.png differ diff --git a/icons/Paper/16x16/status/aptdaemon-delete.png b/icons/Paper/16x16/status/aptdaemon-delete.png new file mode 120000 index 0000000..ab8db5e --- /dev/null +++ b/icons/Paper/16x16/status/aptdaemon-delete.png @@ -0,0 +1 @@ +dialog-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/aptdaemon-error.png b/icons/Paper/16x16/status/aptdaemon-error.png new file mode 120000 index 0000000..91cec00 --- /dev/null +++ b/icons/Paper/16x16/status/aptdaemon-error.png @@ -0,0 +1 @@ +dialog-warning.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/aptdaemon-update-cache.png b/icons/Paper/16x16/status/aptdaemon-update-cache.png new file mode 120000 index 0000000..ba2da6a --- /dev/null +++ b/icons/Paper/16x16/status/aptdaemon-update-cache.png @@ -0,0 +1 @@ +software-update-available.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/aptdaemon-upgrade.png b/icons/Paper/16x16/status/aptdaemon-upgrade.png new file mode 120000 index 0000000..ba2da6a --- /dev/null +++ b/icons/Paper/16x16/status/aptdaemon-upgrade.png @@ -0,0 +1 @@ +software-update-available.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/audio-volume-high.png b/icons/Paper/16x16/status/audio-volume-high.png new file mode 100644 index 0000000..5bb2f2b Binary files /dev/null and b/icons/Paper/16x16/status/audio-volume-high.png differ diff --git a/icons/Paper/16x16/status/audio-volume-low.png b/icons/Paper/16x16/status/audio-volume-low.png new file mode 100644 index 0000000..c938b7f Binary files /dev/null and b/icons/Paper/16x16/status/audio-volume-low.png differ diff --git a/icons/Paper/16x16/status/audio-volume-medium.png b/icons/Paper/16x16/status/audio-volume-medium.png new file mode 100644 index 0000000..9fabd7b Binary files /dev/null and b/icons/Paper/16x16/status/audio-volume-medium.png differ diff --git a/icons/Paper/16x16/status/audio-volume-muted.png b/icons/Paper/16x16/status/audio-volume-muted.png new file mode 100644 index 0000000..ef7b281 Binary files /dev/null and b/icons/Paper/16x16/status/audio-volume-muted.png differ diff --git a/icons/Paper/16x16/status/available.png b/icons/Paper/16x16/status/available.png new file mode 120000 index 0000000..75a941c --- /dev/null +++ b/icons/Paper/16x16/status/available.png @@ -0,0 +1 @@ +user-available.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/avatar-default.png b/icons/Paper/16x16/status/avatar-default.png new file mode 100644 index 0000000..9f6e184 Binary files /dev/null and b/icons/Paper/16x16/status/avatar-default.png differ diff --git a/icons/Paper/16x16/status/away.png b/icons/Paper/16x16/status/away.png new file mode 120000 index 0000000..0047c16 --- /dev/null +++ b/icons/Paper/16x16/status/away.png @@ -0,0 +1 @@ +user-away.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-000-charging.png b/icons/Paper/16x16/status/battery-000-charging.png new file mode 120000 index 0000000..c3eb384 --- /dev/null +++ b/icons/Paper/16x16/status/battery-000-charging.png @@ -0,0 +1 @@ +battery-empty-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-000.png b/icons/Paper/16x16/status/battery-000.png new file mode 120000 index 0000000..d9cc339 --- /dev/null +++ b/icons/Paper/16x16/status/battery-000.png @@ -0,0 +1 @@ +battery-empty.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-020-charging.png b/icons/Paper/16x16/status/battery-020-charging.png new file mode 120000 index 0000000..2495020 --- /dev/null +++ b/icons/Paper/16x16/status/battery-020-charging.png @@ -0,0 +1 @@ +battery-caution-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-020.png b/icons/Paper/16x16/status/battery-020.png new file mode 120000 index 0000000..9bd840d --- /dev/null +++ b/icons/Paper/16x16/status/battery-020.png @@ -0,0 +1 @@ +battery-caution.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-040-charging.png b/icons/Paper/16x16/status/battery-040-charging.png new file mode 120000 index 0000000..045a05e --- /dev/null +++ b/icons/Paper/16x16/status/battery-040-charging.png @@ -0,0 +1 @@ +battery-low-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-040.png b/icons/Paper/16x16/status/battery-040.png new file mode 120000 index 0000000..540c4f7 --- /dev/null +++ b/icons/Paper/16x16/status/battery-040.png @@ -0,0 +1 @@ +battery-low.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-060-charging.png b/icons/Paper/16x16/status/battery-060-charging.png new file mode 120000 index 0000000..baa82ac --- /dev/null +++ b/icons/Paper/16x16/status/battery-060-charging.png @@ -0,0 +1 @@ +battery-medium-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-060.png b/icons/Paper/16x16/status/battery-060.png new file mode 120000 index 0000000..97a242a --- /dev/null +++ b/icons/Paper/16x16/status/battery-060.png @@ -0,0 +1 @@ +battery-medium.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-080-charging.png b/icons/Paper/16x16/status/battery-080-charging.png new file mode 120000 index 0000000..64d9154 --- /dev/null +++ b/icons/Paper/16x16/status/battery-080-charging.png @@ -0,0 +1 @@ +battery-good-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-080.png b/icons/Paper/16x16/status/battery-080.png new file mode 120000 index 0000000..9355d21 --- /dev/null +++ b/icons/Paper/16x16/status/battery-080.png @@ -0,0 +1 @@ +battery-good.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-100-charging.png b/icons/Paper/16x16/status/battery-100-charging.png new file mode 120000 index 0000000..f9ceec6 --- /dev/null +++ b/icons/Paper/16x16/status/battery-100-charging.png @@ -0,0 +1 @@ +battery-full-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-100.png b/icons/Paper/16x16/status/battery-100.png new file mode 120000 index 0000000..69c0cf5 --- /dev/null +++ b/icons/Paper/16x16/status/battery-100.png @@ -0,0 +1 @@ +battery-full.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/battery-caution-charging.png b/icons/Paper/16x16/status/battery-caution-charging.png new file mode 100644 index 0000000..6a4e87a Binary files /dev/null and b/icons/Paper/16x16/status/battery-caution-charging.png differ diff --git a/icons/Paper/16x16/status/battery-caution.png b/icons/Paper/16x16/status/battery-caution.png new file mode 100644 index 0000000..efb8097 Binary files /dev/null and b/icons/Paper/16x16/status/battery-caution.png differ diff --git a/icons/Paper/16x16/status/battery-empty-charging.png b/icons/Paper/16x16/status/battery-empty-charging.png new file mode 100644 index 0000000..46d8b97 Binary files /dev/null and b/icons/Paper/16x16/status/battery-empty-charging.png differ diff --git a/icons/Paper/16x16/status/battery-empty.png b/icons/Paper/16x16/status/battery-empty.png new file mode 100644 index 0000000..969f4a3 Binary files /dev/null and b/icons/Paper/16x16/status/battery-empty.png differ diff --git a/icons/Paper/16x16/status/battery-full-charging.png b/icons/Paper/16x16/status/battery-full-charging.png new file mode 100644 index 0000000..6b88f33 Binary files /dev/null and b/icons/Paper/16x16/status/battery-full-charging.png differ diff --git a/icons/Paper/16x16/status/battery-full.png b/icons/Paper/16x16/status/battery-full.png new file mode 100644 index 0000000..bd31403 Binary files /dev/null and b/icons/Paper/16x16/status/battery-full.png differ diff --git a/icons/Paper/16x16/status/battery-good-charging.png b/icons/Paper/16x16/status/battery-good-charging.png new file mode 100644 index 0000000..bb959e3 Binary files /dev/null and b/icons/Paper/16x16/status/battery-good-charging.png differ diff --git a/icons/Paper/16x16/status/battery-good.png b/icons/Paper/16x16/status/battery-good.png new file mode 100644 index 0000000..f4fe85e Binary files /dev/null and b/icons/Paper/16x16/status/battery-good.png differ diff --git a/icons/Paper/16x16/status/battery-low-charging.png b/icons/Paper/16x16/status/battery-low-charging.png new file mode 100644 index 0000000..88599a9 Binary files /dev/null and b/icons/Paper/16x16/status/battery-low-charging.png differ diff --git a/icons/Paper/16x16/status/battery-low.png b/icons/Paper/16x16/status/battery-low.png new file mode 100644 index 0000000..b644df1 Binary files /dev/null and b/icons/Paper/16x16/status/battery-low.png differ diff --git a/icons/Paper/16x16/status/battery-medium-charging.png b/icons/Paper/16x16/status/battery-medium-charging.png new file mode 100644 index 0000000..bb9dec1 Binary files /dev/null and b/icons/Paper/16x16/status/battery-medium-charging.png differ diff --git a/icons/Paper/16x16/status/battery-medium.png b/icons/Paper/16x16/status/battery-medium.png new file mode 100644 index 0000000..560b768 Binary files /dev/null and b/icons/Paper/16x16/status/battery-medium.png differ diff --git a/icons/Paper/16x16/status/changes-allow.png b/icons/Paper/16x16/status/changes-allow.png new file mode 100644 index 0000000..326c6aa Binary files /dev/null and b/icons/Paper/16x16/status/changes-allow.png differ diff --git a/icons/Paper/16x16/status/changes-prevent.png b/icons/Paper/16x16/status/changes-prevent.png new file mode 100644 index 0000000..977c690 Binary files /dev/null and b/icons/Paper/16x16/status/changes-prevent.png differ diff --git a/icons/Paper/16x16/status/channel-secure.png b/icons/Paper/16x16/status/channel-secure.png new file mode 120000 index 0000000..e32d1a7 --- /dev/null +++ b/icons/Paper/16x16/status/channel-secure.png @@ -0,0 +1 @@ +changes-prevent.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/computer-fail.png b/icons/Paper/16x16/status/computer-fail.png new file mode 100644 index 0000000..424ae5d Binary files /dev/null and b/icons/Paper/16x16/status/computer-fail.png differ diff --git a/icons/Paper/16x16/status/connect_creating.png b/icons/Paper/16x16/status/connect_creating.png new file mode 120000 index 0000000..c84b759 --- /dev/null +++ b/icons/Paper/16x16/status/connect_creating.png @@ -0,0 +1 @@ +network-transmit-receive.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/connect_established.png b/icons/Paper/16x16/status/connect_established.png new file mode 120000 index 0000000..ca31ae7 --- /dev/null +++ b/icons/Paper/16x16/status/connect_established.png @@ -0,0 +1 @@ +network-idle.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/connect_no.png b/icons/Paper/16x16/status/connect_no.png new file mode 120000 index 0000000..8f7026f --- /dev/null +++ b/icons/Paper/16x16/status/connect_no.png @@ -0,0 +1 @@ +network-offline.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/dialog-authentication.png b/icons/Paper/16x16/status/dialog-authentication.png new file mode 120000 index 0000000..c9e6525 --- /dev/null +++ b/icons/Paper/16x16/status/dialog-authentication.png @@ -0,0 +1 @@ +dialog-password.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/dialog-error.png b/icons/Paper/16x16/status/dialog-error.png new file mode 100644 index 0000000..9b58701 Binary files /dev/null and b/icons/Paper/16x16/status/dialog-error.png differ diff --git a/icons/Paper/16x16/status/dialog-info.png b/icons/Paper/16x16/status/dialog-info.png new file mode 120000 index 0000000..5faec85 --- /dev/null +++ b/icons/Paper/16x16/status/dialog-info.png @@ -0,0 +1 @@ +dialog-information.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/dialog-information.png b/icons/Paper/16x16/status/dialog-information.png new file mode 100644 index 0000000..1a51951 Binary files /dev/null and b/icons/Paper/16x16/status/dialog-information.png differ diff --git a/icons/Paper/16x16/status/dialog-password.png b/icons/Paper/16x16/status/dialog-password.png new file mode 100644 index 0000000..6290846 Binary files /dev/null and b/icons/Paper/16x16/status/dialog-password.png differ diff --git a/icons/Paper/16x16/status/dialog-question.png b/icons/Paper/16x16/status/dialog-question.png new file mode 100644 index 0000000..656546f Binary files /dev/null and b/icons/Paper/16x16/status/dialog-question.png differ diff --git a/icons/Paper/16x16/status/dialog-warning.png b/icons/Paper/16x16/status/dialog-warning.png new file mode 100644 index 0000000..4a83d01 Binary files /dev/null and b/icons/Paper/16x16/status/dialog-warning.png differ diff --git a/icons/Paper/16x16/status/edittrash.png b/icons/Paper/16x16/status/edittrash.png new file mode 120000 index 0000000..cce2611 --- /dev/null +++ b/icons/Paper/16x16/status/edittrash.png @@ -0,0 +1 @@ +user-trash-full.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/error.png b/icons/Paper/16x16/status/error.png new file mode 120000 index 0000000..ab8db5e --- /dev/null +++ b/icons/Paper/16x16/status/error.png @@ -0,0 +1 @@ +dialog-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/extended-away.png b/icons/Paper/16x16/status/extended-away.png new file mode 120000 index 0000000..f04cfbe --- /dev/null +++ b/icons/Paper/16x16/status/extended-away.png @@ -0,0 +1 @@ +user-idle.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/feed-starred.png b/icons/Paper/16x16/status/feed-starred.png new file mode 120000 index 0000000..bfff58d --- /dev/null +++ b/icons/Paper/16x16/status/feed-starred.png @@ -0,0 +1 @@ +starred.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/folder-drag-accept.png b/icons/Paper/16x16/status/folder-drag-accept.png new file mode 120000 index 0000000..c2668e6 --- /dev/null +++ b/icons/Paper/16x16/status/folder-drag-accept.png @@ -0,0 +1 @@ +folder-open.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/folder-open.png b/icons/Paper/16x16/status/folder-open.png new file mode 100644 index 0000000..a778f42 Binary files /dev/null and b/icons/Paper/16x16/status/folder-open.png differ diff --git a/icons/Paper/16x16/status/folder-visiting.png b/icons/Paper/16x16/status/folder-visiting.png new file mode 100644 index 0000000..d6b3bdf Binary files /dev/null and b/icons/Paper/16x16/status/folder-visiting.png differ diff --git a/icons/Paper/16x16/status/folder_open.png b/icons/Paper/16x16/status/folder_open.png new file mode 120000 index 0000000..c2668e6 --- /dev/null +++ b/icons/Paper/16x16/status/folder_open.png @@ -0,0 +1 @@ +folder-open.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-fs-directory-accept.png b/icons/Paper/16x16/status/gnome-fs-directory-accept.png new file mode 120000 index 0000000..7ddfa06 --- /dev/null +++ b/icons/Paper/16x16/status/gnome-fs-directory-accept.png @@ -0,0 +1 @@ +folder-drag-accept.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-fs-directory-visiting.png b/icons/Paper/16x16/status/gnome-fs-directory-visiting.png new file mode 120000 index 0000000..7ed374b --- /dev/null +++ b/icons/Paper/16x16/status/gnome-fs-directory-visiting.png @@ -0,0 +1 @@ +folder-visiting.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-fs-loading-icon.png b/icons/Paper/16x16/status/gnome-fs-loading-icon.png new file mode 120000 index 0000000..7c73fc5 --- /dev/null +++ b/icons/Paper/16x16/status/gnome-fs-loading-icon.png @@ -0,0 +1 @@ +image-loading.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-fs-trash-full.png b/icons/Paper/16x16/status/gnome-fs-trash-full.png new file mode 120000 index 0000000..cce2611 --- /dev/null +++ b/icons/Paper/16x16/status/gnome-fs-trash-full.png @@ -0,0 +1 @@ +user-trash-full.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-netstatus-disconn.png b/icons/Paper/16x16/status/gnome-netstatus-disconn.png new file mode 120000 index 0000000..8f7026f --- /dev/null +++ b/icons/Paper/16x16/status/gnome-netstatus-disconn.png @@ -0,0 +1 @@ +network-offline.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-netstatus-error.png b/icons/Paper/16x16/status/gnome-netstatus-error.png new file mode 120000 index 0000000..a9a0190 --- /dev/null +++ b/icons/Paper/16x16/status/gnome-netstatus-error.png @@ -0,0 +1 @@ +network-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-netstatus-idle.png b/icons/Paper/16x16/status/gnome-netstatus-idle.png new file mode 120000 index 0000000..ca31ae7 --- /dev/null +++ b/icons/Paper/16x16/status/gnome-netstatus-idle.png @@ -0,0 +1 @@ +network-idle.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-netstatus-rx.png b/icons/Paper/16x16/status/gnome-netstatus-rx.png new file mode 120000 index 0000000..b15f83d --- /dev/null +++ b/icons/Paper/16x16/status/gnome-netstatus-rx.png @@ -0,0 +1 @@ +network-receive.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-netstatus-tx.png b/icons/Paper/16x16/status/gnome-netstatus-tx.png new file mode 120000 index 0000000..0896a3c --- /dev/null +++ b/icons/Paper/16x16/status/gnome-netstatus-tx.png @@ -0,0 +1 @@ +network-transmit.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-netstatus-txrx.png b/icons/Paper/16x16/status/gnome-netstatus-txrx.png new file mode 120000 index 0000000..c84b759 --- /dev/null +++ b/icons/Paper/16x16/status/gnome-netstatus-txrx.png @@ -0,0 +1 @@ +network-transmit-receive.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gnome-stock-trash-full.png b/icons/Paper/16x16/status/gnome-stock-trash-full.png new file mode 120000 index 0000000..cce2611 --- /dev/null +++ b/icons/Paper/16x16/status/gnome-stock-trash-full.png @@ -0,0 +1 @@ +user-trash-full.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gtk-authentication.png b/icons/Paper/16x16/status/gtk-authentication.png new file mode 120000 index 0000000..c9e6525 --- /dev/null +++ b/icons/Paper/16x16/status/gtk-authentication.png @@ -0,0 +1 @@ +dialog-password.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gtk-dialog-authentication.png b/icons/Paper/16x16/status/gtk-dialog-authentication.png new file mode 120000 index 0000000..c9e6525 --- /dev/null +++ b/icons/Paper/16x16/status/gtk-dialog-authentication.png @@ -0,0 +1 @@ +dialog-password.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gtk-dialog-error.png b/icons/Paper/16x16/status/gtk-dialog-error.png new file mode 120000 index 0000000..ab8db5e --- /dev/null +++ b/icons/Paper/16x16/status/gtk-dialog-error.png @@ -0,0 +1 @@ +dialog-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gtk-dialog-info.png b/icons/Paper/16x16/status/gtk-dialog-info.png new file mode 120000 index 0000000..5faec85 --- /dev/null +++ b/icons/Paper/16x16/status/gtk-dialog-info.png @@ -0,0 +1 @@ +dialog-information.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gtk-dialog-question.png b/icons/Paper/16x16/status/gtk-dialog-question.png new file mode 120000 index 0000000..80b9b28 --- /dev/null +++ b/icons/Paper/16x16/status/gtk-dialog-question.png @@ -0,0 +1 @@ +dialog-question.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gtk-dialog-warning.png b/icons/Paper/16x16/status/gtk-dialog-warning.png new file mode 120000 index 0000000..91cec00 --- /dev/null +++ b/icons/Paper/16x16/status/gtk-dialog-warning.png @@ -0,0 +1 @@ +dialog-warning.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/gtk-missing-image.png b/icons/Paper/16x16/status/gtk-missing-image.png new file mode 120000 index 0000000..344617b --- /dev/null +++ b/icons/Paper/16x16/status/gtk-missing-image.png @@ -0,0 +1 @@ +image-missing.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/im-user-away.png b/icons/Paper/16x16/status/im-user-away.png new file mode 120000 index 0000000..0047c16 --- /dev/null +++ b/icons/Paper/16x16/status/im-user-away.png @@ -0,0 +1 @@ +user-away.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/im-user-busy.png b/icons/Paper/16x16/status/im-user-busy.png new file mode 120000 index 0000000..005ecab --- /dev/null +++ b/icons/Paper/16x16/status/im-user-busy.png @@ -0,0 +1 @@ +user-busy.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/im-user-offline.png b/icons/Paper/16x16/status/im-user-offline.png new file mode 120000 index 0000000..2a1a6e9 --- /dev/null +++ b/icons/Paper/16x16/status/im-user-offline.png @@ -0,0 +1 @@ +user-offline.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/im-user-online.png b/icons/Paper/16x16/status/im-user-online.png new file mode 120000 index 0000000..75a941c --- /dev/null +++ b/icons/Paper/16x16/status/im-user-online.png @@ -0,0 +1 @@ +user-available.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/image-loading.png b/icons/Paper/16x16/status/image-loading.png new file mode 100644 index 0000000..e9a6f9c Binary files /dev/null and b/icons/Paper/16x16/status/image-loading.png differ diff --git a/icons/Paper/16x16/status/image-missing.png b/icons/Paper/16x16/status/image-missing.png new file mode 100644 index 0000000..4f05178 Binary files /dev/null and b/icons/Paper/16x16/status/image-missing.png differ diff --git a/icons/Paper/16x16/status/important.png b/icons/Paper/16x16/status/important.png new file mode 120000 index 0000000..91cec00 --- /dev/null +++ b/icons/Paper/16x16/status/important.png @@ -0,0 +1 @@ +dialog-warning.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/info.png b/icons/Paper/16x16/status/info.png new file mode 120000 index 0000000..5faec85 --- /dev/null +++ b/icons/Paper/16x16/status/info.png @@ -0,0 +1 @@ +dialog-information.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/locked.png b/icons/Paper/16x16/status/locked.png new file mode 120000 index 0000000..e32d1a7 --- /dev/null +++ b/icons/Paper/16x16/status/locked.png @@ -0,0 +1 @@ +changes-prevent.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/mail-attachment.png b/icons/Paper/16x16/status/mail-attachment.png new file mode 100644 index 0000000..e447bbc Binary files /dev/null and b/icons/Paper/16x16/status/mail-attachment.png differ diff --git a/icons/Paper/16x16/status/mail-read.png b/icons/Paper/16x16/status/mail-read.png new file mode 100644 index 0000000..7675636 Binary files /dev/null and b/icons/Paper/16x16/status/mail-read.png differ diff --git a/icons/Paper/16x16/status/mail-replied.png b/icons/Paper/16x16/status/mail-replied.png new file mode 100644 index 0000000..f537023 Binary files /dev/null and b/icons/Paper/16x16/status/mail-replied.png differ diff --git a/icons/Paper/16x16/status/mail-signed-verified.png b/icons/Paper/16x16/status/mail-signed-verified.png new file mode 100644 index 0000000..48d1e27 Binary files /dev/null and b/icons/Paper/16x16/status/mail-signed-verified.png differ diff --git a/icons/Paper/16x16/status/mail-signed.png b/icons/Paper/16x16/status/mail-signed.png new file mode 100644 index 0000000..0c4d72b Binary files /dev/null and b/icons/Paper/16x16/status/mail-signed.png differ diff --git a/icons/Paper/16x16/status/mail-unread.png b/icons/Paper/16x16/status/mail-unread.png new file mode 100644 index 0000000..acb2ed5 Binary files /dev/null and b/icons/Paper/16x16/status/mail-unread.png differ diff --git a/icons/Paper/16x16/status/media-playlist-consecutive-rtl.svg b/icons/Paper/16x16/status/media-playlist-consecutive-rtl.svg new file mode 100644 index 0000000..f3ee941 --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-consecutive-rtl.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/media-playlist-consecutive.svg b/icons/Paper/16x16/status/media-playlist-consecutive.svg new file mode 100644 index 0000000..f5d90af --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-consecutive.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/media-playlist-no-repeat.svg b/icons/Paper/16x16/status/media-playlist-no-repeat.svg new file mode 100644 index 0000000..c438e39 --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-no-repeat.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/media-playlist-repeat-one-rtl.png b/icons/Paper/16x16/status/media-playlist-repeat-one-rtl.png new file mode 120000 index 0000000..51c4eae --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-repeat-one-rtl.png @@ -0,0 +1 @@ +media-playlist-repeat-song-rtl.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/media-playlist-repeat-one.png b/icons/Paper/16x16/status/media-playlist-repeat-one.png new file mode 120000 index 0000000..19f09ae --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-repeat-one.png @@ -0,0 +1 @@ +media-playlist-repeat-song.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/media-playlist-repeat-rtl.png b/icons/Paper/16x16/status/media-playlist-repeat-rtl.png new file mode 100644 index 0000000..c038e01 Binary files /dev/null and b/icons/Paper/16x16/status/media-playlist-repeat-rtl.png differ diff --git a/icons/Paper/16x16/status/media-playlist-repeat-rtl.svg b/icons/Paper/16x16/status/media-playlist-repeat-rtl.svg new file mode 100644 index 0000000..1406c39 --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-repeat-rtl.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/media-playlist-repeat-song-rtl.png b/icons/Paper/16x16/status/media-playlist-repeat-song-rtl.png new file mode 100644 index 0000000..aa8119c Binary files /dev/null and b/icons/Paper/16x16/status/media-playlist-repeat-song-rtl.png differ diff --git a/icons/Paper/16x16/status/media-playlist-repeat-song-rtl.svg b/icons/Paper/16x16/status/media-playlist-repeat-song-rtl.svg new file mode 100644 index 0000000..4004253 --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-repeat-song-rtl.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/media-playlist-repeat-song.png b/icons/Paper/16x16/status/media-playlist-repeat-song.png new file mode 100644 index 0000000..4a2c675 Binary files /dev/null and b/icons/Paper/16x16/status/media-playlist-repeat-song.png differ diff --git a/icons/Paper/16x16/status/media-playlist-repeat-song.svg b/icons/Paper/16x16/status/media-playlist-repeat-song.svg new file mode 100644 index 0000000..f037ed1 --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-repeat-song.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/media-playlist-repeat.png b/icons/Paper/16x16/status/media-playlist-repeat.png new file mode 100644 index 0000000..30d1929 Binary files /dev/null and b/icons/Paper/16x16/status/media-playlist-repeat.png differ diff --git a/icons/Paper/16x16/status/media-playlist-repeat.svg b/icons/Paper/16x16/status/media-playlist-repeat.svg new file mode 100644 index 0000000..0795c5e --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-repeat.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/media-playlist-shuffle-rtl.svg b/icons/Paper/16x16/status/media-playlist-shuffle-rtl.svg new file mode 100644 index 0000000..f73478d --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-shuffle-rtl.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/media-playlist-shuffle.svg b/icons/Paper/16x16/status/media-playlist-shuffle.svg new file mode 100644 index 0000000..cdc6f81 --- /dev/null +++ b/icons/Paper/16x16/status/media-playlist-shuffle.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/messagebox_critical.png b/icons/Paper/16x16/status/messagebox_critical.png new file mode 120000 index 0000000..ab8db5e --- /dev/null +++ b/icons/Paper/16x16/status/messagebox_critical.png @@ -0,0 +1 @@ +dialog-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/messagebox_info.png b/icons/Paper/16x16/status/messagebox_info.png new file mode 120000 index 0000000..5faec85 --- /dev/null +++ b/icons/Paper/16x16/status/messagebox_info.png @@ -0,0 +1 @@ +dialog-information.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/messagebox_warning.png b/icons/Paper/16x16/status/messagebox_warning.png new file mode 120000 index 0000000..91cec00 --- /dev/null +++ b/icons/Paper/16x16/status/messagebox_warning.png @@ -0,0 +1 @@ +dialog-warning.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/network-error.png b/icons/Paper/16x16/status/network-error.png new file mode 100644 index 0000000..d501e7d Binary files /dev/null and b/icons/Paper/16x16/status/network-error.png differ diff --git a/icons/Paper/16x16/status/network-idle.png b/icons/Paper/16x16/status/network-idle.png new file mode 100644 index 0000000..53578f8 Binary files /dev/null and b/icons/Paper/16x16/status/network-idle.png differ diff --git a/icons/Paper/16x16/status/network-offline.png b/icons/Paper/16x16/status/network-offline.png new file mode 100644 index 0000000..71cb7ff Binary files /dev/null and b/icons/Paper/16x16/status/network-offline.png differ diff --git a/icons/Paper/16x16/status/network-receive.png b/icons/Paper/16x16/status/network-receive.png new file mode 100644 index 0000000..9ae1ec3 Binary files /dev/null and b/icons/Paper/16x16/status/network-receive.png differ diff --git a/icons/Paper/16x16/status/network-transmit-receive.png b/icons/Paper/16x16/status/network-transmit-receive.png new file mode 100644 index 0000000..4fd3b83 Binary files /dev/null and b/icons/Paper/16x16/status/network-transmit-receive.png differ diff --git a/icons/Paper/16x16/status/network-transmit.png b/icons/Paper/16x16/status/network-transmit.png new file mode 100644 index 0000000..4e8a1b6 Binary files /dev/null and b/icons/Paper/16x16/status/network-transmit.png differ diff --git a/icons/Paper/16x16/status/network-wired-disconnected.png b/icons/Paper/16x16/status/network-wired-disconnected.png new file mode 100644 index 0000000..5a2d2a7 Binary files /dev/null and b/icons/Paper/16x16/status/network-wired-disconnected.png differ diff --git a/icons/Paper/16x16/status/network-wired-offline.png b/icons/Paper/16x16/status/network-wired-offline.png new file mode 120000 index 0000000..fb5a59e --- /dev/null +++ b/icons/Paper/16x16/status/network-wired-offline.png @@ -0,0 +1 @@ +network-wired-disconnected.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/nm-adhoc.png b/icons/Paper/16x16/status/nm-adhoc.png new file mode 120000 index 0000000..ca31ae7 --- /dev/null +++ b/icons/Paper/16x16/status/nm-adhoc.png @@ -0,0 +1 @@ +network-idle.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/nm-device-wired.png b/icons/Paper/16x16/status/nm-device-wired.png new file mode 120000 index 0000000..ca31ae7 --- /dev/null +++ b/icons/Paper/16x16/status/nm-device-wired.png @@ -0,0 +1 @@ +network-idle.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/nm-device-wireless.png b/icons/Paper/16x16/status/nm-device-wireless.png new file mode 120000 index 0000000..ca31ae7 --- /dev/null +++ b/icons/Paper/16x16/status/nm-device-wireless.png @@ -0,0 +1 @@ +network-idle.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/nm-no-connection.png b/icons/Paper/16x16/status/nm-no-connection.png new file mode 120000 index 0000000..8f7026f --- /dev/null +++ b/icons/Paper/16x16/status/nm-no-connection.png @@ -0,0 +1 @@ +network-offline.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/object-locked.png b/icons/Paper/16x16/status/object-locked.png new file mode 120000 index 0000000..e32d1a7 --- /dev/null +++ b/icons/Paper/16x16/status/object-locked.png @@ -0,0 +1 @@ +changes-prevent.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/object-unlocked.png b/icons/Paper/16x16/status/object-unlocked.png new file mode 120000 index 0000000..93a443e --- /dev/null +++ b/icons/Paper/16x16/status/object-unlocked.png @@ -0,0 +1 @@ +changes-allow.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/person.png b/icons/Paper/16x16/status/person.png new file mode 120000 index 0000000..2caa5a5 --- /dev/null +++ b/icons/Paper/16x16/status/person.png @@ -0,0 +1 @@ +avatar-default.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/pin-down.png b/icons/Paper/16x16/status/pin-down.png new file mode 120000 index 0000000..bfff58d --- /dev/null +++ b/icons/Paper/16x16/status/pin-down.png @@ -0,0 +1 @@ +starred.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/printer-error.png b/icons/Paper/16x16/status/printer-error.png new file mode 100644 index 0000000..332bc9e Binary files /dev/null and b/icons/Paper/16x16/status/printer-error.png differ diff --git a/icons/Paper/16x16/status/printer-info.png b/icons/Paper/16x16/status/printer-info.png new file mode 100644 index 0000000..7b7f24b Binary files /dev/null and b/icons/Paper/16x16/status/printer-info.png differ diff --git a/icons/Paper/16x16/status/printer-printing.png b/icons/Paper/16x16/status/printer-printing.png new file mode 100644 index 0000000..dd58838 Binary files /dev/null and b/icons/Paper/16x16/status/printer-printing.png differ diff --git a/icons/Paper/16x16/status/security-high.png b/icons/Paper/16x16/status/security-high.png new file mode 100644 index 0000000..ce83d65 Binary files /dev/null and b/icons/Paper/16x16/status/security-high.png differ diff --git a/icons/Paper/16x16/status/security-low.png b/icons/Paper/16x16/status/security-low.png new file mode 100644 index 0000000..2a35f35 Binary files /dev/null and b/icons/Paper/16x16/status/security-low.png differ diff --git a/icons/Paper/16x16/status/security-medium.png b/icons/Paper/16x16/status/security-medium.png new file mode 100644 index 0000000..5d2b18b Binary files /dev/null and b/icons/Paper/16x16/status/security-medium.png differ diff --git a/icons/Paper/16x16/status/semi-starred-rtl.png b/icons/Paper/16x16/status/semi-starred-rtl.png new file mode 100644 index 0000000..d91e427 Binary files /dev/null and b/icons/Paper/16x16/status/semi-starred-rtl.png differ diff --git a/icons/Paper/16x16/status/semi-starred.png b/icons/Paper/16x16/status/semi-starred.png new file mode 100644 index 0000000..ea0a9b7 Binary files /dev/null and b/icons/Paper/16x16/status/semi-starred.png differ diff --git a/icons/Paper/16x16/status/software-update-available.png b/icons/Paper/16x16/status/software-update-available.png new file mode 100644 index 0000000..db3f4d1 Binary files /dev/null and b/icons/Paper/16x16/status/software-update-available.png differ diff --git a/icons/Paper/16x16/status/software-update-urgent.png b/icons/Paper/16x16/status/software-update-urgent.png new file mode 100644 index 0000000..59462bb Binary files /dev/null and b/icons/Paper/16x16/status/software-update-urgent.png differ diff --git a/icons/Paper/16x16/status/starred.png b/icons/Paper/16x16/status/starred.png new file mode 100644 index 0000000..aa1bc34 Binary files /dev/null and b/icons/Paper/16x16/status/starred.png differ diff --git a/icons/Paper/16x16/status/stock_appointment-reminder-excl.png b/icons/Paper/16x16/status/stock_appointment-reminder-excl.png new file mode 120000 index 0000000..b8b85b6 --- /dev/null +++ b/icons/Paper/16x16/status/stock_appointment-reminder-excl.png @@ -0,0 +1 @@ +appointment-missed.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_appointment-reminder.png b/icons/Paper/16x16/status/stock_appointment-reminder.png new file mode 120000 index 0000000..bb755d1 --- /dev/null +++ b/icons/Paper/16x16/status/stock_appointment-reminder.png @@ -0,0 +1 @@ +appointment-soon.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_attach.png b/icons/Paper/16x16/status/stock_attach.png new file mode 120000 index 0000000..3115a56 --- /dev/null +++ b/icons/Paper/16x16/status/stock_attach.png @@ -0,0 +1 @@ +mail-attachment.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_dialog-error.png b/icons/Paper/16x16/status/stock_dialog-error.png new file mode 120000 index 0000000..ab8db5e --- /dev/null +++ b/icons/Paper/16x16/status/stock_dialog-error.png @@ -0,0 +1 @@ +dialog-error.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_dialog-info.png b/icons/Paper/16x16/status/stock_dialog-info.png new file mode 120000 index 0000000..5faec85 --- /dev/null +++ b/icons/Paper/16x16/status/stock_dialog-info.png @@ -0,0 +1 @@ +dialog-information.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_dialog-question.png b/icons/Paper/16x16/status/stock_dialog-question.png new file mode 120000 index 0000000..80b9b28 --- /dev/null +++ b/icons/Paper/16x16/status/stock_dialog-question.png @@ -0,0 +1 @@ +dialog-question.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_dialog-warning.png b/icons/Paper/16x16/status/stock_dialog-warning.png new file mode 120000 index 0000000..91cec00 --- /dev/null +++ b/icons/Paper/16x16/status/stock_dialog-warning.png @@ -0,0 +1 @@ +dialog-warning.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_lock-broken.png b/icons/Paper/16x16/status/stock_lock-broken.png new file mode 120000 index 0000000..d846744 --- /dev/null +++ b/icons/Paper/16x16/status/stock_lock-broken.png @@ -0,0 +1 @@ +security-low.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_lock-ok.png b/icons/Paper/16x16/status/stock_lock-ok.png new file mode 120000 index 0000000..be57424 --- /dev/null +++ b/icons/Paper/16x16/status/stock_lock-ok.png @@ -0,0 +1 @@ +security-high.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_lock-open.png b/icons/Paper/16x16/status/stock_lock-open.png new file mode 120000 index 0000000..d846744 --- /dev/null +++ b/icons/Paper/16x16/status/stock_lock-open.png @@ -0,0 +1 @@ +security-low.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_lock.png b/icons/Paper/16x16/status/stock_lock.png new file mode 120000 index 0000000..3925f36 --- /dev/null +++ b/icons/Paper/16x16/status/stock_lock.png @@ -0,0 +1 @@ +security-medium.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_mail-open.png b/icons/Paper/16x16/status/stock_mail-open.png new file mode 120000 index 0000000..2602006 --- /dev/null +++ b/icons/Paper/16x16/status/stock_mail-open.png @@ -0,0 +1 @@ +mail-read.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_mail-replied.png b/icons/Paper/16x16/status/stock_mail-replied.png new file mode 120000 index 0000000..a96d91f --- /dev/null +++ b/icons/Paper/16x16/status/stock_mail-replied.png @@ -0,0 +1 @@ +mail-replied.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_mail-unread.png b/icons/Paper/16x16/status/stock_mail-unread.png new file mode 120000 index 0000000..0b41812 --- /dev/null +++ b/icons/Paper/16x16/status/stock_mail-unread.png @@ -0,0 +1 @@ +mail-unread.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_open.png b/icons/Paper/16x16/status/stock_open.png new file mode 120000 index 0000000..c2668e6 --- /dev/null +++ b/icons/Paper/16x16/status/stock_open.png @@ -0,0 +1 @@ +folder-open.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_repeat.png b/icons/Paper/16x16/status/stock_repeat.png new file mode 120000 index 0000000..c8e17e7 --- /dev/null +++ b/icons/Paper/16x16/status/stock_repeat.png @@ -0,0 +1 @@ +media-playlist-repeat.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_repeat.svg b/icons/Paper/16x16/status/stock_repeat.svg new file mode 120000 index 0000000..81a417a --- /dev/null +++ b/icons/Paper/16x16/status/stock_repeat.svg @@ -0,0 +1 @@ +media-playlist-repeat.svg \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_shuffle.svg b/icons/Paper/16x16/status/stock_shuffle.svg new file mode 120000 index 0000000..26f6696 --- /dev/null +++ b/icons/Paper/16x16/status/stock_shuffle.svg @@ -0,0 +1 @@ +media-playlist-shuffle.svg \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_trash_full.png b/icons/Paper/16x16/status/stock_trash_full.png new file mode 120000 index 0000000..cce2611 --- /dev/null +++ b/icons/Paper/16x16/status/stock_trash_full.png @@ -0,0 +1 @@ +user-trash-full.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_volume-0.png b/icons/Paper/16x16/status/stock_volume-0.png new file mode 120000 index 0000000..dd3d1ee --- /dev/null +++ b/icons/Paper/16x16/status/stock_volume-0.png @@ -0,0 +1 @@ +audio-volume-low.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_volume-max.png b/icons/Paper/16x16/status/stock_volume-max.png new file mode 120000 index 0000000..3dc4302 --- /dev/null +++ b/icons/Paper/16x16/status/stock_volume-max.png @@ -0,0 +1 @@ +audio-volume-high.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_volume-med.png b/icons/Paper/16x16/status/stock_volume-med.png new file mode 120000 index 0000000..3e599b4 --- /dev/null +++ b/icons/Paper/16x16/status/stock_volume-med.png @@ -0,0 +1 @@ +audio-volume-medium.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_volume-min.png b/icons/Paper/16x16/status/stock_volume-min.png new file mode 120000 index 0000000..dd3d1ee --- /dev/null +++ b/icons/Paper/16x16/status/stock_volume-min.png @@ -0,0 +1 @@ +audio-volume-low.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_volume-mute.png b/icons/Paper/16x16/status/stock_volume-mute.png new file mode 120000 index 0000000..8aeeb8e --- /dev/null +++ b/icons/Paper/16x16/status/stock_volume-mute.png @@ -0,0 +1 @@ +audio-volume-muted.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_volume.png b/icons/Paper/16x16/status/stock_volume.png new file mode 120000 index 0000000..3dc4302 --- /dev/null +++ b/icons/Paper/16x16/status/stock_volume.png @@ -0,0 +1 @@ +audio-volume-high.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_weather-cloudy.png b/icons/Paper/16x16/status/stock_weather-cloudy.png new file mode 120000 index 0000000..a6f1af1 --- /dev/null +++ b/icons/Paper/16x16/status/stock_weather-cloudy.png @@ -0,0 +1 @@ +weather-overcast.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_weather-few-clouds.png b/icons/Paper/16x16/status/stock_weather-few-clouds.png new file mode 120000 index 0000000..2d84670 --- /dev/null +++ b/icons/Paper/16x16/status/stock_weather-few-clouds.png @@ -0,0 +1 @@ +weather-few-clouds.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_weather-showers.png b/icons/Paper/16x16/status/stock_weather-showers.png new file mode 120000 index 0000000..cc8ea9c --- /dev/null +++ b/icons/Paper/16x16/status/stock_weather-showers.png @@ -0,0 +1 @@ +weather-showers.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_weather-snow.png b/icons/Paper/16x16/status/stock_weather-snow.png new file mode 120000 index 0000000..b1e460a --- /dev/null +++ b/icons/Paper/16x16/status/stock_weather-snow.png @@ -0,0 +1 @@ +weather-snow.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/stock_weather-sunny.png b/icons/Paper/16x16/status/stock_weather-sunny.png new file mode 120000 index 0000000..4fadf0c --- /dev/null +++ b/icons/Paper/16x16/status/stock_weather-sunny.png @@ -0,0 +1 @@ +weather-clear.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/sunny.png b/icons/Paper/16x16/status/sunny.png new file mode 120000 index 0000000..4fadf0c --- /dev/null +++ b/icons/Paper/16x16/status/sunny.png @@ -0,0 +1 @@ +weather-clear.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/sync-error.png b/icons/Paper/16x16/status/sync-error.png new file mode 100644 index 0000000..e776356 Binary files /dev/null and b/icons/Paper/16x16/status/sync-error.png differ diff --git a/icons/Paper/16x16/status/sync-synchronizing.png b/icons/Paper/16x16/status/sync-synchronizing.png new file mode 100644 index 0000000..b8010d8 Binary files /dev/null and b/icons/Paper/16x16/status/sync-synchronizing.png differ diff --git a/icons/Paper/16x16/status/task-due.png b/icons/Paper/16x16/status/task-due.png new file mode 100644 index 0000000..9532302 Binary files /dev/null and b/icons/Paper/16x16/status/task-due.png differ diff --git a/icons/Paper/16x16/status/task-past-due.png b/icons/Paper/16x16/status/task-past-due.png new file mode 100644 index 0000000..426495c Binary files /dev/null and b/icons/Paper/16x16/status/task-past-due.png differ diff --git a/icons/Paper/16x16/status/trashcan_full.png b/icons/Paper/16x16/status/trashcan_full.png new file mode 120000 index 0000000..cce2611 --- /dev/null +++ b/icons/Paper/16x16/status/trashcan_full.png @@ -0,0 +1 @@ +user-trash-full.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/unlock.png b/icons/Paper/16x16/status/unlock.png new file mode 120000 index 0000000..93a443e --- /dev/null +++ b/icons/Paper/16x16/status/unlock.png @@ -0,0 +1 @@ +changes-allow.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/unlocked.png b/icons/Paper/16x16/status/unlocked.png new file mode 120000 index 0000000..93a443e --- /dev/null +++ b/icons/Paper/16x16/status/unlocked.png @@ -0,0 +1 @@ +changes-allow.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/user-available.png b/icons/Paper/16x16/status/user-available.png new file mode 100644 index 0000000..e67e7e8 Binary files /dev/null and b/icons/Paper/16x16/status/user-available.png differ diff --git a/icons/Paper/16x16/status/user-away.png b/icons/Paper/16x16/status/user-away.png new file mode 100644 index 0000000..13f80a8 Binary files /dev/null and b/icons/Paper/16x16/status/user-away.png differ diff --git a/icons/Paper/16x16/status/user-busy.png b/icons/Paper/16x16/status/user-busy.png new file mode 100644 index 0000000..3f2d8be Binary files /dev/null and b/icons/Paper/16x16/status/user-busy.png differ diff --git a/icons/Paper/16x16/status/user-extended-away.png b/icons/Paper/16x16/status/user-extended-away.png new file mode 120000 index 0000000..f04cfbe --- /dev/null +++ b/icons/Paper/16x16/status/user-extended-away.png @@ -0,0 +1 @@ +user-idle.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/user-idle.png b/icons/Paper/16x16/status/user-idle.png new file mode 100644 index 0000000..d42ae16 Binary files /dev/null and b/icons/Paper/16x16/status/user-idle.png differ diff --git a/icons/Paper/16x16/status/user-invisible.png b/icons/Paper/16x16/status/user-invisible.png new file mode 100644 index 0000000..ed58776 Binary files /dev/null and b/icons/Paper/16x16/status/user-invisible.png differ diff --git a/icons/Paper/16x16/status/user-offline.png b/icons/Paper/16x16/status/user-offline.png new file mode 100644 index 0000000..5a93f45 Binary files /dev/null and b/icons/Paper/16x16/status/user-offline.png differ diff --git a/icons/Paper/16x16/status/user-online.png b/icons/Paper/16x16/status/user-online.png new file mode 120000 index 0000000..75a941c --- /dev/null +++ b/icons/Paper/16x16/status/user-online.png @@ -0,0 +1 @@ +user-available.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/user-trash-full.png b/icons/Paper/16x16/status/user-trash-full.png new file mode 100644 index 0000000..c52c0f6 Binary files /dev/null and b/icons/Paper/16x16/status/user-trash-full.png differ diff --git a/icons/Paper/16x16/status/view-pim-tasks-pending.png b/icons/Paper/16x16/status/view-pim-tasks-pending.png new file mode 120000 index 0000000..2c9a8b6 --- /dev/null +++ b/icons/Paper/16x16/status/view-pim-tasks-pending.png @@ -0,0 +1 @@ +task-due.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/view-wrapped-rtl.svg b/icons/Paper/16x16/status/view-wrapped-rtl.svg new file mode 100644 index 0000000..cdc9287 --- /dev/null +++ b/icons/Paper/16x16/status/view-wrapped-rtl.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/view-wrapped.svg b/icons/Paper/16x16/status/view-wrapped.svg new file mode 100644 index 0000000..e438e28 --- /dev/null +++ b/icons/Paper/16x16/status/view-wrapped.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + image/svg+xml + + Paper Symbolic Icon Theme + + + + + + + + + + + + + Paper Symbolic Icon Theme + + + + + + + + + + + + + + + + diff --git a/icons/Paper/16x16/status/weather-clear.png b/icons/Paper/16x16/status/weather-clear.png new file mode 100644 index 0000000..3155c8b Binary files /dev/null and b/icons/Paper/16x16/status/weather-clear.png differ diff --git a/icons/Paper/16x16/status/weather-few-clouds.png b/icons/Paper/16x16/status/weather-few-clouds.png new file mode 100644 index 0000000..15823bb Binary files /dev/null and b/icons/Paper/16x16/status/weather-few-clouds.png differ diff --git a/icons/Paper/16x16/status/weather-overcast.png b/icons/Paper/16x16/status/weather-overcast.png new file mode 100644 index 0000000..cfeddb6 Binary files /dev/null and b/icons/Paper/16x16/status/weather-overcast.png differ diff --git a/icons/Paper/16x16/status/weather-severe-alert.png b/icons/Paper/16x16/status/weather-severe-alert.png new file mode 100644 index 0000000..7f7beae Binary files /dev/null and b/icons/Paper/16x16/status/weather-severe-alert.png differ diff --git a/icons/Paper/16x16/status/weather-showers-scattered.png b/icons/Paper/16x16/status/weather-showers-scattered.png new file mode 100644 index 0000000..38fe670 Binary files /dev/null and b/icons/Paper/16x16/status/weather-showers-scattered.png differ diff --git a/icons/Paper/16x16/status/weather-showers.png b/icons/Paper/16x16/status/weather-showers.png new file mode 100644 index 0000000..67175ba Binary files /dev/null and b/icons/Paper/16x16/status/weather-showers.png differ diff --git a/icons/Paper/16x16/status/weather-snow.png b/icons/Paper/16x16/status/weather-snow.png new file mode 100644 index 0000000..9e1f907 Binary files /dev/null and b/icons/Paper/16x16/status/weather-snow.png differ diff --git a/icons/Paper/16x16/status/xfce-battery-critical-charging.png b/icons/Paper/16x16/status/xfce-battery-critical-charging.png new file mode 120000 index 0000000..2495020 --- /dev/null +++ b/icons/Paper/16x16/status/xfce-battery-critical-charging.png @@ -0,0 +1 @@ +battery-caution-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/xfce-battery-critical.png b/icons/Paper/16x16/status/xfce-battery-critical.png new file mode 120000 index 0000000..9bd840d --- /dev/null +++ b/icons/Paper/16x16/status/xfce-battery-critical.png @@ -0,0 +1 @@ +battery-caution.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/xfce-battery-full-charging.png b/icons/Paper/16x16/status/xfce-battery-full-charging.png new file mode 120000 index 0000000..f9ceec6 --- /dev/null +++ b/icons/Paper/16x16/status/xfce-battery-full-charging.png @@ -0,0 +1 @@ +battery-full-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/xfce-battery-full.png b/icons/Paper/16x16/status/xfce-battery-full.png new file mode 120000 index 0000000..69c0cf5 --- /dev/null +++ b/icons/Paper/16x16/status/xfce-battery-full.png @@ -0,0 +1 @@ +battery-full.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/xfce-battery-low-charging.png b/icons/Paper/16x16/status/xfce-battery-low-charging.png new file mode 120000 index 0000000..045a05e --- /dev/null +++ b/icons/Paper/16x16/status/xfce-battery-low-charging.png @@ -0,0 +1 @@ +battery-low-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/xfce-battery-low.png b/icons/Paper/16x16/status/xfce-battery-low.png new file mode 120000 index 0000000..540c4f7 --- /dev/null +++ b/icons/Paper/16x16/status/xfce-battery-low.png @@ -0,0 +1 @@ +battery-low.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/xfce-battery-ok-charging.png b/icons/Paper/16x16/status/xfce-battery-ok-charging.png new file mode 120000 index 0000000..64d9154 --- /dev/null +++ b/icons/Paper/16x16/status/xfce-battery-ok-charging.png @@ -0,0 +1 @@ +battery-good-charging.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/xfce-battery-ok.png b/icons/Paper/16x16/status/xfce-battery-ok.png new file mode 120000 index 0000000..9355d21 --- /dev/null +++ b/icons/Paper/16x16/status/xfce-battery-ok.png @@ -0,0 +1 @@ +battery-good.png \ No newline at end of file diff --git a/icons/Paper/16x16/status/xfce-trash_full.png b/icons/Paper/16x16/status/xfce-trash_full.png new file mode 120000 index 0000000..cce2611 --- /dev/null +++ b/icons/Paper/16x16/status/xfce-trash_full.png @@ -0,0 +1 @@ +user-trash-full.png \ No newline at end of file diff --git a/icons/default/index.theme b/icons/default/index.theme new file mode 100644 index 0000000..24a5e78 --- /dev/null +++ b/icons/default/index.theme @@ -0,0 +1,5 @@ +# This file is written by LXAppearance. Do not edit. +[Icon Theme] +Name=Default +Comment=Default Cursor Theme +Inherits=xcursor-breeze-snow diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..3063937 --- /dev/null +++ b/install.sh @@ -0,0 +1,311 @@ +#!/bin/bash + +SCRIPT=$(readlink -f $0) +SCRIPTPATH=$(dirname $SCRIPT) +IS_SSH=$(env | grep -c SSH_TTY) +cd $SCRIPTPATH +TMPDIR=$SCRIPTPATH/tmp + +if [[ $SCRIPTPATH != $HOME/.dotfiles ]]; then + echo mv $SCRIPTPATH to $HOME/.dotfiles + exit 1 +fi + +mkdir -p $TMPDIR +mkdir -p ~/.config +mkdir -p ~/.local/bin + +ln -sf $SCRIPT ~/.local/bin/dotfiles + +function install_neovim { + release=$1 + echo "- Update neovim from $release" + wget https://github.com/neovim/neovim/releases/download/$release/nvim.appimage -O $TMPDIR/nvim.appimage 2>/dev/null || \ + cp nvim/nvim.appimage $TMPDIR + chmod +x $TMPDIR/nvim.appimage + echo " - install neovim under ~/.local/bin/nvim" + ( + cd ~/.local/bin + rm -f nvim vim + rm -rf .nvim + $TMPDIR/nvim.appimage --appimage-extract + mv squashfs-root .nvim + + ln -sf .nvim/usr/bin/nvim . + ln -sf nvim vim + ) &> /dev/null +} + +function install_vim_requirements { + echo "- Install vim requirements" + + if [[ ! -e ~/.local/bin/nvim ]]; then + install_neovim 'stable' + fi + + install_local_bin + + rm -rf ~/.ctags.d && ln -sf $SCRIPTPATH/ctags/ctags.d ~/.ctags.d + + source ~/.pyenv/versions/nvim/bin/activate + [[ $? -ne 0 ]] && echo "Unable to load 'nvim' pyenv virtualenv. run pyenv.install; pyenv virtualenv nvim" && exit 1 + + pip_require=(pynvim yamllint pyproject-flake8 black) + pip_installed=$(echo "$pip_freeze" | grep -P "(^$(echo ${pip_require[@]} | sed -e 's/ /|^/g'))" | wc -l) + + if [[ ${#pip_require[@]} -ne $pip_installed ]]; then + pip install --upgrade pip setuptools + pip install --upgrade ${pip_require[@]} + fi + + source $SCRIPTPATH/shell/source/nvm.sh + nodejs.load + which npm 2> /dev/null + [[ $? -ne 0 ]] && echo "Node JS not available; run nodejs.install" && exit 1 + + if [[ $(lsb_release -rs) == "18.04" ]]; then + # npm tree-sitter deps (>0.19 require glibc > ubuntu18) + nvm install 16.17.0 + nvm use 16.17.0 + nvm alias default v16.17.0 + npm install --location=global tree-sitter@0.19 tree-sitter-cli@0.19.0 + else + npm install --global tree-sitter tree-sitter-cli + fi + + # Path used in vim config + ln -sf $(which npm) $HOME/.local/bin/npm + ln -sf $(which node) $HOME/.local/bin/node +} + +function install_vim_config { + echo "- Install neovim" + + rm -rf ~/.config/nvim && ln -sf $SCRIPTPATH/neovim ~/.config/nvim + $HOME/.local/bin/.nvim/usr/bin/nvim --headless +PlugUpgrade +PlugClean! +PlugInstall +PlugUpdate! +qall 2> /dev/null +} + +function install_vim_light { + rm -rf ~/.vim && ln -sf $SCRIPTPATH/vim ~/.vim + ln -sf ~/.vim/vimrc_lite.vim ~/.vimrc +} + +function install_shell { + echo "- Install bash/zsh" + + rm -f ~/.shell + ln -sf $SCRIPTPATH/shell ~/.shell + + # global + ln -sf $SCRIPTPATH/shell/dir_colors ~/.dir_colors + mkdir -p ~/.bash_custom + + # zsh + ln -sf $SCRIPTPATH/shell/zshrc ~/.zshrc + + [[ -n $LC_BASTION ]] && bashrc_path=$HOME/.bashrc-$LC_BASTION || bashrc_path=$HOME/.bashrc + ln -sf $SCRIPTPATH/shell/bashrc $bashrc_path + + # fzf pass + mkdir -p ~/.password-store/.extensions/ + ln -sf ~/.shell/fzf/fzf.bash.password-store ~/.password-store/.extensions/fzf.bash +} + +function update_bin_from_deb { + echo "- Update bin from deb pkg" + + # fzf: deb from debian 11 + # rofi: ubuntu 22.04 + # ctags: compiled from https://github.com/universal-ctags/ctags.git + + # - Install ripgrep: https://github.com/BurntSushi/ripgrep/releases/latest + version=$(basename $(curl -si https://github.com/BurntSushi/ripgrep/releases/latest | grep ^location | awk '{print $2}' ) | sed 's/[^a-zA-Z0-9\.]//g') + wget "https://github.com/BurntSushi/ripgrep/releases/download/$version/ripgrep_${version}-1_amd64.deb" -O $TMPDIR/ripgrep.deb + (cd $TMPDIR; ar x $TMPDIR/ripgrep.deb && tar xf data.tar.xz) + + # - Install fd: https://github.com/sharkdp/fd/releases/latest + version=$(basename $(curl -si https://github.com/sharkdp/fd/releases/latest | grep ^location | awk '{print $2}' ) | sed 's/[^a-zA-Z0-9\.]//g') + wget "https://github.com/sharkdp/fd/releases/download/${version}/fd_${version:1}_amd64.deb" -O $TMPDIR/fd.deb + (cd $TMPDIR; ar x $TMPDIR/fd.deb && tar xf data.tar.xz) + + # save binary + cp $TMPDIR/usr/bin/* $SCRIPTPATH/bin && rm -rf $TMPDIR/deb + chmod +x $SCRIPTPATH/bin/* +} + +function install_local_bin { + echo "- Install ~/.local/bin" + + # install local bin + for bin in $(ls bin | grep -v README.md); do + # check ldd + echo " > $bin" + if [[ $(ldd bin/$bin 2>&1 |grep -c 'not found') -eq 0 ]]; then + bin_name=$(echo $bin | cut -d. -f1) + ln -sf $SCRIPTPATH/bin/$bin ~/.local/bin/$bin_name + fi + done +} + +function install_tmux { + echo "- Install tmux" + [[ ! -L ~/.tmux ]] && rm -rf ~/.tmux + ln -sf $SCRIPTPATH/tmux/tm ~/.local/bin/tm + rm -f ~/.tmux && ln -sf $SCRIPTPATH/tmux ~/.tmux + + version=$(tmux -V | grep -Po '(\d|\.)+' 2> /dev/null) + if [[ $version > 2.8 ]]; then + rm ~/.tmux.conf + python3 tmux/tmux-migrate-options.py tmux/tmux.conf > ~/.tmux.conf + else + ln -sf $SCRIPTPATH/tmux/tmux.conf ~/.tmux.conf + fi +} + +function install_git { + echo "- Install git" + git_username=$(git config --get user.name 2> /dev/null || echo $GIT_USER) + git_mail=$(git config --get user.email 2> /dev/null || echo $GIT_MAIL) + [[ ! -L ~/.git ]] && rm -rf ~/.git.backup && mv ~/.git ~/.git.backup + [[ ! -L ~/.git ]] && ln -sf $SCRIPTPATH/git ~/.git + cp ~/.git/gitconfig.template ~/.git/gitconfig + ln -sf ~/.git/gitignore ~/.gitignore + ln -sf ~/.git/gitconfig ~/.gitconfig + [[ -z $git_username ]] && read -p 'git username : ' git_username + [[ -z $git_mail ]] && read -p 'git mail : ' git_mail + [[ -n $git_username ]] && git_username_branch=$(echo $git_username | tr -s ' ' '.' | tr -s [:upper:] [:lower:]) + [[ -n $git_username ]] && sed -i "s/__USERNAME__/$git_username/g" ~/.git/gitconfig + [[ -n $git_username_branch ]] && sed -i "s/__USERNAME_BRANCH__/$git_username_branch/g" ~/.git/gitconfig + [[ -n $git_mail ]] && sed -i "s/__MAIL__/$git_mail/g" ~/.git/gitconfig +} + +function install_fonts { + [[ $IS_SSH -eq 1 ]] && return + echo "- Install fonts" + font_dir="$HOME/.fonts" + rm -rf $font_dir && ln -sf $SCRIPTPATH/fonts $font_dir + if [[ -f $(which fc-cache 2>/dev/null) ]]; then + echo " > Resetting font cache..." + fc-cache -f $font_dir + fi +} + +function install_icons { + [[ $IS_SSH -eq 1 ]] && return + echo "- Install icons" + icons_dir="$HOME/.icons" + rm -rf $icons_dir && ln -sf $SCRIPTPATH/icons $icons_dir +} + +function install_config { + target=${1:-common} + echo "- Install .config from config.${target}" + mkdir -p ~/.config.${target}.backup + + for cfg in $(ls config.${target}); do + # to replace only a single file in a subdir, + # handle renamed file path with '\' instead of '/'' + targetcfg=$(echo $cfg | sed -e 's/\\/\//g') + if [[ ! -L $HOME/.config/$targetcfg ]]; then + mv $HOME/.config/$targetcfg $HOME/.config.${target}.backup/$cfg.$(date '+%s') 2> /dev/null + fi + rm -f $HOME/.config/$targetcfg 2> /dev/null && ln -sf "$SCRIPTPATH/config.${target}/$cfg" "$HOME/.config/$targetcfg" + done + + if [[ $target = X11 ]]; then + # build i3 config + if which i3 2>&1 > /dev/null ; then + echo " > build i3 conf" + $HOME/.config/i3/i3_build_conf.sh > /dev/null + ln -sf $HOME/.config/i3/scripts/i3lock_blur.sh $HOME/.local/bin/lockscreen + fi + fi +} + +function uninstall { + echo "- Uninstall"; set -x + rm -rf $HOME/.local/bin/.nvim + rm -rf $HOME/.zsh + for dir in $HOME $HOME/.config $HOME/.local/bin; do + find $dir -maxdepth 1 -lname '*dotfiles*' -delete + find $dir -maxdepth 1 -xtype l -delete + done + set +x +} + +function print_help { + + [[ $# -ne 0 ]] && echo "$(tput setaf 1)[ERROR] $*" + + echo " + Options: + +$(declare -f main | \ + grep -P '(help=|--|-[a-z]\))' | \ + xargs | \ + sed -e 's/; /\n/g' -e 's/help=/#/g' | \ + column -t -s '#')" + + exit +} + +function main { + [[ $# -eq 0 ]] && print_help + + echo "Install dotfiles for user $USER" + + while [[ $# -ne 0 ]]; do + arg="$1"; shift + case "$arg" in + --minimal|-m) + help="Vim config without plugins, shell (bash+zsh), .local/bin, tmux" + install_vim_light; + install_shell; + install_tmux; + install_local_bin ;; + + --conf|-c) + help="shell (bash+zsh), tmux, git, .local/bin" + install_shell; + install_tmux; + install_git; + install_config common; + install_local_bin;; + + --ui|-x) + help="i3 cfg, icons, fonts" + install_icons ; + install_fonts ; + install_config X11;; + + --nvim|--neovim|-v) + help="Neovim (optional: stable|nightly|v[0-9])" + [[ $1 =~ ^(stable|nightly|v[0-9]) ]] && \ + release=$1 && shift && \ + install_neovim $release; + install_vim_requirements; + install_vim_config;; + + --updatebin|-u) + help="update bin (pull from github)" + update_bin_from_deb;; + + --uninstall|-d) + help="uninstall dotfiles" + uninstall;; + + --help|-h) + help="this" + print_help ;; + + *) + [[ $arg =~ \-+.* ]] && print_help "$arg unknown" + esac + done + + [[ -d $TMPDIR ]] && rm -rf $TMPDIR + + echo "Install dotfiles done !" +} + +main "$@" diff --git a/neovim/Neovim.desktop b/neovim/Neovim.desktop new file mode 100644 index 0000000..ca34233 --- /dev/null +++ b/neovim/Neovim.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Neovim +Comment=Run nvim +Keywords=Text;Editor;Plaintext;Write; +MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; +Exec=alacritty -T nvim -e sh -c 'THEME=light nvim %u' +Type=Application +Icon=nvim +Terminal=false +Categories=Development;TextEditor; diff --git a/neovim/PlugSnapshot.vim b/neovim/PlugSnapshot.vim new file mode 100644 index 0000000..137d01d --- /dev/null +++ b/neovim/PlugSnapshot.vim @@ -0,0 +1,50 @@ +" Generated by vim-plug +" Mon 25 Oct 2021 10:04:00 AM CEST +" :source this file in vim to restore the snapshot +" or execute: vim -S snapshot.vim + +silent! let g:plugs['ListToggle'].commit = '63fb8acb57d57380b2e30e7a831247140559c95f' +silent! let g:plugs['ale'].commit = '92f08b5af2f6316312c95c5160c6e02b76370e04' +silent! let g:plugs['cmp-buffer'].commit = '5dde5430757696be4169ad409210cf5088554ed6' +silent! let g:plugs['cmp-nvim-lsp'].commit = 'accbe6d97548d8d3471c04d512d36fa61d0e4be8' +silent! let g:plugs['cmp-nvim-lua'].commit = 'd276254e7198ab7d00f117e88e223b4bd8c02d21' +silent! let g:plugs['cmp-nvim-ultisnips'].commit = '505507defd1ede14f03db7267c66522b341bb232' +silent! let g:plugs['cmp-path'].commit = '387b740fc1a038a434f18f7d7a66fc6c52a3de35' +silent! let g:plugs['comfortable-motion.vim'].commit = 'e20aeafb07c6184727b29f7674530150f7ab2036' +silent! let g:plugs['delimitMate'].commit = '537a1da0fa5eeb88640425c37e545af933c56e1b' +silent! let g:plugs['fzf'].commit = '84a47f71029992fe804e506a6128643bffbb598c' +silent! let g:plugs['fzf-preview.vim'].commit = 'a30d6929c560e46a5c6ea3f8f62e3ab281c3d72c' +silent! let g:plugs['fzf.vim'].commit = '0452b71830b1a219b8cdc68141ee58ec288ea711' +silent! let g:plugs['git-messenger.vim'].commit = '3f08e210b3f7edd5477a73257eb8d5ca8100ccf0' +silent! let g:plugs['gruvbox-material'].commit = 'fa709b95ba0cbc35310125bc2e42ffeb2576bd4d' +silent! let g:plugs['indentLine'].commit = '5617a1cf7d315e6e6f84d825c85e3b669d220bfa' +silent! let g:plugs['lightline-ale'].commit = 'a861f691ac7e40b1b359bc7a147078fa1e0570ce' +silent! let g:plugs['lightline.vim'].commit = 'b06d921023cf6536bcbee5754071d122296e8942' +silent! let g:plugs['lspkind-nvim'].commit = '0f7851772ebdd5cb67a04b3d3cda5281a1eb83c1' +silent! let g:plugs['nvim-cmp'].commit = '5f5e8442f12fe19330f5eb0d5cb763f19443b19a' +silent! let g:plugs['nvim-lspconfig'].commit = '7dc04ca9ae28bded22f4c78cb29dce09b6643f38' +silent! let g:plugs['nvim-lspinstall'].commit = '79ec2425d6b39cdcb69d379f3e56847f49be73eb' +silent! let g:plugs['nvim-tree.lua'].commit = 'fd3969ec986d739d9ab01b8ec5de051c45b475d2' +silent! let g:plugs['nvim-treesitter'].commit = '0bbc6e3d164ab771c78c0f8905166d43939c7c12' +silent! let g:plugs['nvim-web-devicons'].commit = 'ee101462d127ed6a5561ce9ce92bfded87d7d478' +silent! let g:plugs['rainbow_parentheses.vim'].commit = '27e7cd73fec9d1162169180399ff8ea9fa28b003' +silent! let g:plugs['semshi'].commit = '252f07fd5f0ae9eb19d02bae979fd7c9152c1ccf' +silent! let g:plugs['trouble.nvim'].commit = '756f09de113a775ab16ba6d26c090616b40a999d' +silent! let g:plugs['ultisnips'].commit = '53e1921e3ef015ef658e540c0aa9c4835f9c18a6' +silent! let g:plugs['vim-commentary'].commit = '627308e30639be3e2d5402808ce18690557e8292' +silent! let g:plugs['vim-eunuch'].commit = '7a48f9ff0ef5f21447b2354ee52dc18b5567e05c' +silent! let g:plugs['vim-go'].commit = '2831f4872431685d28fbe3e567cd539a455fe750' +silent! let g:plugs['vim-gutentags'].commit = '50705e8ebb7038b31314f416d1bddd9cb9154049' +silent! let g:plugs['vim-paste-easy'].commit = '58f054ad52366f8128e6f4cb71ab7e4c40b2c836' +silent! let g:plugs['vim-puppet'].commit = '980147f64d708652aad1e67d8b39c17b2dd07702' +silent! let g:plugs['vim-sensible'].commit = '2d9f34c09f548ed4df213389caa2882bfe56db58' +silent! let g:plugs['vim-signify'].commit = '22f05607d4d7406781af56cafc1121152988c6d2' +silent! let g:plugs['vim-snippets'].commit = '48863461962c731cc3f701abd558ccad73a30951' +silent! let g:plugs['vim-startify'].commit = '81e36c352a8deea54df5ec1e2f4348685569bed2' +silent! let g:plugs['vim-surround'].commit = 'aeb933272e72617f7c4d35e1f003be16836b948d' +silent! let g:plugs['virtual-types.nvim'].commit = '54289b433c2b807d916294ec646f3bc479d79320' +silent! let g:plugs['vista.vim'].commit = 'f49ca3dbf334ac33d2629c510524285335031706' +silent! let g:plugs['zoomwintab.vim'].commit = '7a354f3f0aa7807d822c03c8c24dc6c1cced9d3c' + +PlugUpdate! + diff --git a/neovim/autoload/custom.vim b/neovim/autoload/custom.vim new file mode 100644 index 0000000..adc4296 --- /dev/null +++ b/neovim/autoload/custom.vim @@ -0,0 +1,152 @@ +function! custom#PlugLoaded(name) + return ( + \ has_key(g:plugs, a:name) && + \ isdirectory(g:plugs[a:name].dir)) +endfunction + +function! custom#GitInfo() + let current_file_path = resolve(expand('%:p:h')) + let git_repo = system("cd " . current_file_path . "; basename -s .git $(git remote get-url origin 2> /dev/null) 2> /dev/null") + let git_branch = system("cd " . current_file_path . "; git rev-parse --abbrev-ref HEAD 2> /dev/null") + let repo = substitute(git_repo, '\n\+$', '', '') + let branch = substitute(git_branch, '\n\+$', '', '') + if (repo != '') + let g:lightline_git_info = " " . repo ." [" . branch . "]" + else + let g:lightline_git_info = '' + endif +endfunction + +function! custom#LightlineToggleBuffer() + if bufname() =~# '^\v(NvimTree|term://|Trouble|OUTLINE|aerial)' + call lightline#disable() + else + call lightline#enable() + endif +endfunction + +function! custom#HieraEncrypt() + let git_root = split(system('git -C '.shellescape(expand("%:p:h")).' rev-parse --show-toplevel'), '\n')[0] + if filereadable(git_root.'/ovh-hiera-encrypt') + redir => message + execute ':silent !'.git_root.'/ovh-hiera-encrypt -f '.shellescape(expand("%:p")) | execute 'redraw!' + redir END + execute ':silent edit!' + echohl WarningMsg + echo 'custom#HieraEncrypt: ' . message + echohl None + endif +endfunction + +autocmd FileType yaml command! -nargs=0 HieraEncrypt :call custom#HieraEncrypt() + +" autocmd BufWritePost *.yaml call custom#HieraEncrypt() + +function! custom#ToggleMouse() + " check if mouse is enabled + if &mouse == 'a' + " disable mouse + set mouse= + else + " enable mouse everywhere + set mouse=a + endif +endfunction + + +function! custom#backgroundToggle() + if $THEME == "light" + let $THEME = "dark" + set background=dark + else + let $THEME = "light" + set background=light + endif + + let l:config_dir = $HOME."/.config/nvim/" + let l:theme_dir = g:plugs['gruvbox-material']['dir'] + exec 'source '. l:config_dir .'/plugin/colors.vim' + exec 'source '. l:config_dir .'/lua/config/toggleterm.lua' + exec 'source '. l:theme_dir .'/autoload/lightline/colorscheme/gruvbox_material.vim' + exec 'source '. l:config_dir .'/plugin/lightline.vim' + exec 'NvimTreeToggle' + exec 'NvimTreeToggle' + exec 'call lightline#colorscheme() | call lightline#update()' +endfunction + +autocmd FileType * command! -nargs=0 BackgroundToggle :call custom#backgroundToggle() + + +let g:custom_special_filtetypes = ['NvimTree', 'NvimTree_*', 'aerial', 'startify', 'fzf', 'Trouble', + \ 'Mason', 'DiffviewFiles', 'toggleterm', 'toggleterm*'] + +function custom#isSpecialFiletype() abort + let l:regexp = join(g:custom_special_filtetypes, '\|') + if match(&ft, '^('.l:regexp.')$') == 0 || empty(&ft) + return 1 + else + return 0 + endif +endfunction + +let g:custom_last_display_file_path = "" +function! custom#displayFilePath() + if ! custom#isSpecialFiletype() + if g:custom_last_display_file_path != expand('%:p') + echo printf("File (%s): %s", &ft, expand('%:p')) + let g:custom_last_display_file_path = expand('%:p') + endif + endif +endfunction + +function! custom#lineInfosToggle() + if ! exists("g:custom_line_infos_status") + let g:custom_line_infos_status = 1 + endif + + if g:custom_line_infos_status == 0 + set number + execute ':IndentLinesEnable' + execute ':SignifyEnable' + set signcolumn=auto + set foldcolumn=1 + let g:custom_line_infos_status = 1 + set conceallevel=2 + else + set nonumber + execute ':IndentLinesDisable' + execute ':SignifyDisable' + set signcolumn=no + set foldcolumn=0 + let g:custom_line_infos_status = 0 + set conceallevel=0 + endif +endfunction + +function! custom#foldText() + let l:fs = match(getline(v:foldstart, v:foldend), '"label":') + if l:fs < 0 + return foldtext() + endif + let l:label = matchstr(getline(v:foldstart + l:fs), + \ '"label":\s\+"\zs[^"]\+\ze"') + let l:ft = substitute(foldtext(), ': \zs.\+', l:label, '') + return l:ft +endfunction + +function! custom#diffToggle() + if ! exists("g:custom_diff_toggle") + let g:custom_diff_toggle = 0 + endif + + if g:custom_diff_toggle == 0 + execute ':NvimTreeClose' + windo diffthis + let g:custom_diff_toggle = 1 + else + windo diffoff + let g:custom_diff_toggle = 0 + endif +endfunction + +autocmd FileType * command! -nargs=0 DiffToggle :call custom#diffToggle() diff --git a/neovim/autoload/plug.vim b/neovim/autoload/plug.vim new file mode 100644 index 0000000..940811a --- /dev/null +++ b/neovim/autoload/plug.vim @@ -0,0 +1,2858 @@ +" vim-plug: Vim plugin manager +" ============================ +" +" Download plug.vim and put it in ~/.vim/autoload +" +" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ +" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim +" +" Edit your .vimrc +" +" call plug#begin('~/.vim/plugged') +" +" " Make sure you use single quotes +" +" " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align +" Plug 'junegunn/vim-easy-align' +" +" " Any valid git URL is allowed +" Plug 'https://github.com/junegunn/vim-github-dashboard.git' +" +" " Multiple Plug commands can be written in a single line using | separators +" Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' +" +" " On-demand loading +" Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' } +" Plug 'tpope/vim-fireplace', { 'for': 'clojure' } +" +" " Using a non-default branch +" Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } +" +" " Using a tagged release; wildcard allowed (requires git 1.9.2 or above) +" Plug 'fatih/vim-go', { 'tag': '*' } +" +" " Plugin options +" Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' } +" +" " Plugin outside ~/.vim/plugged with post-update hook +" Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } +" +" " Unmanaged plugin (manually installed and updated) +" Plug '~/my-prototype-plugin' +" +" " Initialize plugin system +" call plug#end() +" +" Then reload .vimrc and :PlugInstall to install plugins. +" +" Plug options: +" +"| Option | Description | +"| ----------------------- | ------------------------------------------------ | +"| `branch`/`tag`/`commit` | Branch/tag/commit of the repository to use | +"| `rtp` | Subdirectory that contains Vim plugin | +"| `dir` | Custom directory for the plugin | +"| `as` | Use different name for the plugin | +"| `do` | Post-update hook (string or funcref) | +"| `on` | On-demand loading: Commands or ``-mappings | +"| `for` | On-demand loading: File types | +"| `frozen` | Do not update unless explicitly specified | +" +" More information: https://github.com/junegunn/vim-plug +" +" +" Copyright (c) 2017 Junegunn Choi +" +" MIT License +" +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be +" included in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +if exists('g:loaded_plug') + finish +endif +let g:loaded_plug = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let s:plug_src = 'https://github.com/junegunn/vim-plug.git' +let s:plug_tab = get(s:, 'plug_tab', -1) +let s:plug_buf = get(s:, 'plug_buf', -1) +let s:mac_gui = has('gui_macvim') && has('gui_running') +let s:is_win = has('win32') +let s:nvim = has('nvim-0.2') || (has('nvim') && exists('*jobwait') && !s:is_win) +let s:vim8 = has('patch-8.0.0039') && exists('*job_start') +if s:is_win && &shellslash + set noshellslash + let s:me = resolve(expand(':p')) + set shellslash +else + let s:me = resolve(expand(':p')) +endif +let s:base_spec = { 'branch': '', 'frozen': 0 } +let s:TYPE = { +\ 'string': type(''), +\ 'list': type([]), +\ 'dict': type({}), +\ 'funcref': type(function('call')) +\ } +let s:loaded = get(s:, 'loaded', {}) +let s:triggers = get(s:, 'triggers', {}) + +function! s:is_powershell(shell) + return a:shell =~# 'powershell\(\.exe\)\?$' || a:shell =~# 'pwsh\(\.exe\)\?$' +endfunction + +function! s:isabsolute(dir) abort + return a:dir =~# '^/' || (has('win32') && a:dir =~? '^\%(\\\|[A-Z]:\)') +endfunction + +function! s:git_dir(dir) abort + let gitdir = s:trim(a:dir) . '/.git' + if isdirectory(gitdir) + return gitdir + endif + if !filereadable(gitdir) + return '' + endif + let gitdir = matchstr(get(readfile(gitdir), 0, ''), '^gitdir: \zs.*') + if len(gitdir) && !s:isabsolute(gitdir) + let gitdir = a:dir . '/' . gitdir + endif + return isdirectory(gitdir) ? gitdir : '' +endfunction + +function! s:git_origin_url(dir) abort + let gitdir = s:git_dir(a:dir) + let config = gitdir . '/config' + if empty(gitdir) || !filereadable(config) + return '' + endif + return matchstr(join(readfile(config)), '\[remote "origin"\].\{-}url\s*=\s*\zs\S*\ze') +endfunction + +function! s:git_revision(dir) abort + let gitdir = s:git_dir(a:dir) + let head = gitdir . '/HEAD' + if empty(gitdir) || !filereadable(head) + return '' + endif + + let line = get(readfile(head), 0, '') + let ref = matchstr(line, '^ref: \zs.*') + if empty(ref) + return line + endif + + if filereadable(gitdir . '/' . ref) + return get(readfile(gitdir . '/' . ref), 0, '') + endif + + if filereadable(gitdir . '/packed-refs') + for line in readfile(gitdir . '/packed-refs') + if line =~# ' ' . ref + return matchstr(line, '^[0-9a-f]*') + endif + endfor + endif + + return '' +endfunction + +function! s:git_local_branch(dir) abort + let gitdir = s:git_dir(a:dir) + let head = gitdir . '/HEAD' + if empty(gitdir) || !filereadable(head) + return '' + endif + let branch = matchstr(get(readfile(head), 0, ''), '^ref: refs/heads/\zs.*') + return len(branch) ? branch : 'HEAD' +endfunction + +function! s:git_origin_branch(spec) + if len(a:spec.branch) + return a:spec.branch + endif + + " The file may not be present if this is a local repository + let gitdir = s:git_dir(a:spec.dir) + let origin_head = gitdir.'/refs/remotes/origin/HEAD' + if len(gitdir) && filereadable(origin_head) + return matchstr(get(readfile(origin_head), 0, ''), + \ '^ref: refs/remotes/origin/\zs.*') + endif + + " The command may not return the name of a branch in detached HEAD state + let result = s:lines(s:system('git symbolic-ref --short HEAD', a:spec.dir)) + return v:shell_error ? '' : result[-1] +endfunction + +if s:is_win + function! s:plug_call(fn, ...) + let shellslash = &shellslash + try + set noshellslash + return call(a:fn, a:000) + finally + let &shellslash = shellslash + endtry + endfunction +else + function! s:plug_call(fn, ...) + return call(a:fn, a:000) + endfunction +endif + +function! s:plug_getcwd() + return s:plug_call('getcwd') +endfunction + +function! s:plug_fnamemodify(fname, mods) + return s:plug_call('fnamemodify', a:fname, a:mods) +endfunction + +function! s:plug_expand(fmt) + return s:plug_call('expand', a:fmt, 1) +endfunction + +function! s:plug_tempname() + return s:plug_call('tempname') +endfunction + +function! plug#begin(...) + if a:0 > 0 + let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p')) + elseif exists('g:plug_home') + let home = s:path(g:plug_home) + elseif has('nvim') + let home = stdpath('data') . '/plugged' + elseif !empty(&rtp) + let home = s:path(split(&rtp, ',')[0]) . '/plugged' + else + return s:err('Unable to determine plug home. Try calling plug#begin() with a path argument.') + endif + if s:plug_fnamemodify(home, ':t') ==# 'plugin' && s:plug_fnamemodify(home, ':h') ==# s:first_rtp + return s:err('Invalid plug home. '.home.' is a standard Vim runtime path and is not allowed.') + endif + + let g:plug_home = home + let g:plugs = {} + let g:plugs_order = [] + let s:triggers = {} + + call s:define_commands() + return 1 +endfunction + +function! s:define_commands() + command! -nargs=+ -bar Plug call plug#() + if !executable('git') + return s:err('`git` executable not found. Most commands will not be available. To suppress this message, prepend `silent!` to `call plug#begin(...)`.') + endif + if has('win32') + \ && &shellslash + \ && (&shell =~# 'cmd\(\.exe\)\?$' || s:is_powershell(&shell)) + return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.') + endif + if !has('nvim') + \ && (has('win32') || has('win32unix')) + \ && !has('multi_byte') + return s:err('Vim needs +multi_byte feature on Windows to run shell commands. Enable +iconv for best results.') + endif + command! -nargs=* -bar -bang -complete=customlist,s:names PlugInstall call s:install(0, []) + command! -nargs=* -bar -bang -complete=customlist,s:names PlugUpdate call s:update(0, []) + command! -nargs=0 -bar -bang PlugClean call s:clean(0) + command! -nargs=0 -bar PlugUpgrade if s:upgrade() | execute 'source' s:esc(s:me) | endif + command! -nargs=0 -bar PlugStatus call s:status() + command! -nargs=0 -bar PlugDiff call s:diff() + command! -nargs=? -bar -bang -complete=file PlugSnapshot call s:snapshot(0, ) +endfunction + +function! s:to_a(v) + return type(a:v) == s:TYPE.list ? a:v : [a:v] +endfunction + +function! s:to_s(v) + return type(a:v) == s:TYPE.string ? a:v : join(a:v, "\n") . "\n" +endfunction + +function! s:glob(from, pattern) + return s:lines(globpath(a:from, a:pattern)) +endfunction + +function! s:source(from, ...) + let found = 0 + for pattern in a:000 + for vim in s:glob(a:from, pattern) + execute 'source' s:esc(vim) + let found = 1 + endfor + endfor + return found +endfunction + +function! s:assoc(dict, key, val) + let a:dict[a:key] = add(get(a:dict, a:key, []), a:val) +endfunction + +function! s:ask(message, ...) + call inputsave() + echohl WarningMsg + let answer = input(a:message.(a:0 ? ' (y/N/a) ' : ' (y/N) ')) + echohl None + call inputrestore() + echo "\r" + return (a:0 && answer =~? '^a') ? 2 : (answer =~? '^y') ? 1 : 0 +endfunction + +function! s:ask_no_interrupt(...) + try + return call('s:ask', a:000) + catch + return 0 + endtry +endfunction + +function! s:lazy(plug, opt) + return has_key(a:plug, a:opt) && + \ (empty(s:to_a(a:plug[a:opt])) || + \ !isdirectory(a:plug.dir) || + \ len(s:glob(s:rtp(a:plug), 'plugin')) || + \ len(s:glob(s:rtp(a:plug), 'after/plugin'))) +endfunction + +function! plug#end() + if !exists('g:plugs') + return s:err('plug#end() called without calling plug#begin() first') + endif + + if exists('#PlugLOD') + augroup PlugLOD + autocmd! + augroup END + augroup! PlugLOD + endif + let lod = { 'ft': {}, 'map': {}, 'cmd': {} } + + if get(g:, 'did_load_filetypes', 0) + filetype off + endif + for name in g:plugs_order + if !has_key(g:plugs, name) + continue + endif + let plug = g:plugs[name] + if get(s:loaded, name, 0) || !s:lazy(plug, 'on') && !s:lazy(plug, 'for') + let s:loaded[name] = 1 + continue + endif + + if has_key(plug, 'on') + let s:triggers[name] = { 'map': [], 'cmd': [] } + for cmd in s:to_a(plug.on) + if cmd =~? '^.\+' + if empty(mapcheck(cmd)) && empty(mapcheck(cmd, 'i')) + call s:assoc(lod.map, cmd, name) + endif + call add(s:triggers[name].map, cmd) + elseif cmd =~# '^[A-Z]' + let cmd = substitute(cmd, '!*$', '', '') + if exists(':'.cmd) != 2 + call s:assoc(lod.cmd, cmd, name) + endif + call add(s:triggers[name].cmd, cmd) + else + call s:err('Invalid `on` option: '.cmd. + \ '. Should start with an uppercase letter or ``.') + endif + endfor + endif + + if has_key(plug, 'for') + let types = s:to_a(plug.for) + if !empty(types) + augroup filetypedetect + call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim') + if has('nvim-0.5.0') + call s:source(s:rtp(plug), 'ftdetect/**/*.lua', 'after/ftdetect/**/*.lua') + endif + augroup END + endif + for type in types + call s:assoc(lod.ft, type, name) + endfor + endif + endfor + + for [cmd, names] in items(lod.cmd) + execute printf( + \ 'command! -nargs=* -range -bang -complete=file %s call s:lod_cmd(%s, "", , , , %s)', + \ cmd, string(cmd), string(names)) + endfor + + for [map, names] in items(lod.map) + for [mode, map_prefix, key_prefix] in + \ [['i', '', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']] + execute printf( + \ '%snoremap %s %s:call lod_map(%s, %s, %s, "%s")', + \ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix) + endfor + endfor + + for [ft, names] in items(lod.ft) + augroup PlugLOD + execute printf('autocmd FileType %s call lod_ft(%s, %s)', + \ ft, string(ft), string(names)) + augroup END + endfor + + call s:reorg_rtp() + filetype plugin indent on + if has('vim_starting') + if has('syntax') && !exists('g:syntax_on') + syntax enable + end + else + call s:reload_plugins() + endif +endfunction + +function! s:loaded_names() + return filter(copy(g:plugs_order), 'get(s:loaded, v:val, 0)') +endfunction + +function! s:load_plugin(spec) + call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim') + if has('nvim-0.5.0') + call s:source(s:rtp(a:spec), 'plugin/**/*.lua', 'after/plugin/**/*.lua') + endif +endfunction + +function! s:reload_plugins() + for name in s:loaded_names() + call s:load_plugin(g:plugs[name]) + endfor +endfunction + +function! s:trim(str) + return substitute(a:str, '[\/]\+$', '', '') +endfunction + +function! s:version_requirement(val, min) + for idx in range(0, len(a:min) - 1) + let v = get(a:val, idx, 0) + if v < a:min[idx] | return 0 + elseif v > a:min[idx] | return 1 + endif + endfor + return 1 +endfunction + +function! s:git_version_requirement(...) + if !exists('s:git_version') + let s:git_version = map(split(split(s:system(['git', '--version']))[2], '\.'), 'str2nr(v:val)') + endif + return s:version_requirement(s:git_version, a:000) +endfunction + +function! s:progress_opt(base) + return a:base && !s:is_win && + \ s:git_version_requirement(1, 7, 1) ? '--progress' : '' +endfunction + +function! s:rtp(spec) + return s:path(a:spec.dir . get(a:spec, 'rtp', '')) +endfunction + +if s:is_win + function! s:path(path) + return s:trim(substitute(a:path, '/', '\', 'g')) + endfunction + + function! s:dirpath(path) + return s:path(a:path) . '\' + endfunction + + function! s:is_local_plug(repo) + return a:repo =~? '^[a-z]:\|^[%~]' + endfunction + + " Copied from fzf + function! s:wrap_cmds(cmds) + let cmds = [ + \ '@echo off', + \ 'setlocal enabledelayedexpansion'] + \ + (type(a:cmds) == type([]) ? a:cmds : [a:cmds]) + \ + ['endlocal'] + if has('iconv') + if !exists('s:codepage') + let s:codepage = libcallnr('kernel32.dll', 'GetACP', 0) + endif + return map(cmds, printf('iconv(v:val."\r", "%s", "cp%d")', &encoding, s:codepage)) + endif + return map(cmds, 'v:val."\r"') + endfunction + + function! s:batchfile(cmd) + let batchfile = s:plug_tempname().'.bat' + call writefile(s:wrap_cmds(a:cmd), batchfile) + let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0}) + if s:is_powershell(&shell) + let cmd = '& ' . cmd + endif + return [batchfile, cmd] + endfunction +else + function! s:path(path) + return s:trim(a:path) + endfunction + + function! s:dirpath(path) + return substitute(a:path, '[/\\]*$', '/', '') + endfunction + + function! s:is_local_plug(repo) + return a:repo[0] =~ '[/$~]' + endfunction +endif + +function! s:err(msg) + echohl ErrorMsg + echom '[vim-plug] '.a:msg + echohl None +endfunction + +function! s:warn(cmd, msg) + echohl WarningMsg + execute a:cmd 'a:msg' + echohl None +endfunction + +function! s:esc(path) + return escape(a:path, ' ') +endfunction + +function! s:escrtp(path) + return escape(a:path, ' ,') +endfunction + +function! s:remove_rtp() + for name in s:loaded_names() + let rtp = s:rtp(g:plugs[name]) + execute 'set rtp-='.s:escrtp(rtp) + let after = globpath(rtp, 'after') + if isdirectory(after) + execute 'set rtp-='.s:escrtp(after) + endif + endfor +endfunction + +function! s:reorg_rtp() + if !empty(s:first_rtp) + execute 'set rtp-='.s:first_rtp + execute 'set rtp-='.s:last_rtp + endif + + " &rtp is modified from outside + if exists('s:prtp') && s:prtp !=# &rtp + call s:remove_rtp() + unlet! s:middle + endif + + let s:middle = get(s:, 'middle', &rtp) + let rtps = map(s:loaded_names(), 's:rtp(g:plugs[v:val])') + let afters = filter(map(copy(rtps), 'globpath(v:val, "after")'), '!empty(v:val)') + let rtp = join(map(rtps, 'escape(v:val, ",")'), ',') + \ . ','.s:middle.',' + \ . join(map(afters, 'escape(v:val, ",")'), ',') + let &rtp = substitute(substitute(rtp, ',,*', ',', 'g'), '^,\|,$', '', 'g') + let s:prtp = &rtp + + if !empty(s:first_rtp) + execute 'set rtp^='.s:first_rtp + execute 'set rtp+='.s:last_rtp + endif +endfunction + +function! s:doautocmd(...) + if exists('#'.join(a:000, '#')) + execute 'doautocmd' ((v:version > 703 || has('patch442')) ? '' : '') join(a:000) + endif +endfunction + +function! s:dobufread(names) + for name in a:names + let path = s:rtp(g:plugs[name]) + for dir in ['ftdetect', 'ftplugin', 'after/ftdetect', 'after/ftplugin'] + if len(finddir(dir, path)) + if exists('#BufRead') + doautocmd BufRead + endif + return + endif + endfor + endfor +endfunction + +function! plug#load(...) + if a:0 == 0 + return s:err('Argument missing: plugin name(s) required') + endif + if !exists('g:plugs') + return s:err('plug#begin was not called') + endif + let names = a:0 == 1 && type(a:1) == s:TYPE.list ? a:1 : a:000 + let unknowns = filter(copy(names), '!has_key(g:plugs, v:val)') + if !empty(unknowns) + let s = len(unknowns) > 1 ? 's' : '' + return s:err(printf('Unknown plugin%s: %s', s, join(unknowns, ', '))) + end + let unloaded = filter(copy(names), '!get(s:loaded, v:val, 0)') + if !empty(unloaded) + for name in unloaded + call s:lod([name], ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + endfor + call s:dobufread(unloaded) + return 1 + end + return 0 +endfunction + +function! s:remove_triggers(name) + if !has_key(s:triggers, a:name) + return + endif + for cmd in s:triggers[a:name].cmd + execute 'silent! delc' cmd + endfor + for map in s:triggers[a:name].map + execute 'silent! unmap' map + execute 'silent! iunmap' map + endfor + call remove(s:triggers, a:name) +endfunction + +function! s:lod(names, types, ...) + for name in a:names + call s:remove_triggers(name) + let s:loaded[name] = 1 + endfor + call s:reorg_rtp() + + for name in a:names + let rtp = s:rtp(g:plugs[name]) + for dir in a:types + call s:source(rtp, dir.'/**/*.vim') + if has('nvim-0.5.0') " see neovim#14686 + call s:source(rtp, dir.'/**/*.lua') + endif + endfor + if a:0 + if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2)) + execute 'runtime' a:1 + endif + call s:source(rtp, a:2) + endif + call s:doautocmd('User', name) + endfor +endfunction + +function! s:lod_ft(pat, names) + let syn = 'syntax/'.a:pat.'.vim' + call s:lod(a:names, ['plugin', 'after/plugin'], syn, 'after/'.syn) + execute 'autocmd! PlugLOD FileType' a:pat + call s:doautocmd('filetypeplugin', 'FileType') + call s:doautocmd('filetypeindent', 'FileType') +endfunction + +function! s:lod_cmd(cmd, bang, l1, l2, args, names) + call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) + execute printf('%s%s%s %s', (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args) +endfunction + +function! s:lod_map(map, names, with_prefix, prefix) + call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) + let extra = '' + while 1 + let c = getchar(0) + if c == 0 + break + endif + let extra .= nr2char(c) + endwhile + + if a:with_prefix + let prefix = v:count ? v:count : '' + let prefix .= '"'.v:register.a:prefix + if mode(1) == 'no' + if v:operator == 'c' + let prefix = "\" . prefix + endif + let prefix .= v:operator + endif + call feedkeys(prefix, 'n') + endif + call feedkeys(substitute(a:map, '^', "\", '') . extra) +endfunction + +function! plug#(repo, ...) + if a:0 > 1 + return s:err('Invalid number of arguments (1..2)') + endif + + try + let repo = s:trim(a:repo) + let opts = a:0 == 1 ? s:parse_options(a:1) : s:base_spec + let name = get(opts, 'as', s:plug_fnamemodify(repo, ':t:s?\.git$??')) + let spec = extend(s:infer_properties(name, repo), opts) + if !has_key(g:plugs, name) + call add(g:plugs_order, name) + endif + let g:plugs[name] = spec + let s:loaded[name] = get(s:loaded, name, 0) + catch + return s:err(repo . ' ' . v:exception) + endtry +endfunction + +function! s:parse_options(arg) + let opts = copy(s:base_spec) + let type = type(a:arg) + let opt_errfmt = 'Invalid argument for "%s" option of :Plug (expected: %s)' + if type == s:TYPE.string + if empty(a:arg) + throw printf(opt_errfmt, 'tag', 'string') + endif + let opts.tag = a:arg + elseif type == s:TYPE.dict + for opt in ['branch', 'tag', 'commit', 'rtp', 'dir', 'as'] + if has_key(a:arg, opt) + \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt])) + throw printf(opt_errfmt, opt, 'string') + endif + endfor + for opt in ['on', 'for'] + if has_key(a:arg, opt) + \ && type(a:arg[opt]) != s:TYPE.list + \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt])) + throw printf(opt_errfmt, opt, 'string or list') + endif + endfor + if has_key(a:arg, 'do') + \ && type(a:arg.do) != s:TYPE.funcref + \ && (type(a:arg.do) != s:TYPE.string || empty(a:arg.do)) + throw printf(opt_errfmt, 'do', 'string or funcref') + endif + call extend(opts, a:arg) + if has_key(opts, 'dir') + let opts.dir = s:dirpath(s:plug_expand(opts.dir)) + endif + else + throw 'Invalid argument type (expected: string or dictionary)' + endif + return opts +endfunction + +function! s:infer_properties(name, repo) + let repo = a:repo + if s:is_local_plug(repo) + return { 'dir': s:dirpath(s:plug_expand(repo)) } + else + if repo =~ ':' + let uri = repo + else + if repo !~ '/' + throw printf('Invalid argument: %s (implicit `vim-scripts'' expansion is deprecated)', repo) + endif + let fmt = get(g:, 'plug_url_format', 'https://git::@github.com/%s.git') + let uri = printf(fmt, repo) + endif + return { 'dir': s:dirpath(g:plug_home.'/'.a:name), 'uri': uri } + endif +endfunction + +function! s:install(force, names) + call s:update_impl(0, a:force, a:names) +endfunction + +function! s:update(force, names) + call s:update_impl(1, a:force, a:names) +endfunction + +function! plug#helptags() + if !exists('g:plugs') + return s:err('plug#begin was not called') + endif + for spec in values(g:plugs) + let docd = join([s:rtp(spec), 'doc'], '/') + if isdirectory(docd) + silent! execute 'helptags' s:esc(docd) + endif + endfor + return 1 +endfunction + +function! s:syntax() + syntax clear + syntax region plug1 start=/\%1l/ end=/\%2l/ contains=plugNumber + syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX + syn match plugNumber /[0-9]\+[0-9.]*/ contained + syn match plugBracket /[[\]]/ contained + syn match plugX /x/ contained + syn match plugDash /^-\{1}\ / + syn match plugPlus /^+/ + syn match plugStar /^*/ + syn match plugMessage /\(^- \)\@<=.*/ + syn match plugName /\(^- \)\@<=[^ ]*:/ + syn match plugSha /\%(: \)\@<=[0-9a-f]\{4,}$/ + syn match plugTag /(tag: [^)]\+)/ + syn match plugInstall /\(^+ \)\@<=[^:]*/ + syn match plugUpdate /\(^* \)\@<=[^:]*/ + syn match plugCommit /^ \X*[0-9a-f]\{7,9} .*/ contains=plugRelDate,plugEdge,plugTag + syn match plugEdge /^ \X\+$/ + syn match plugEdge /^ \X*/ contained nextgroup=plugSha + syn match plugSha /[0-9a-f]\{7,9}/ contained + syn match plugRelDate /([^)]*)$/ contained + syn match plugNotLoaded /(not loaded)$/ + syn match plugError /^x.*/ + syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/ + syn match plugH2 /^.*:\n-\+$/ + syn match plugH2 /^-\{2,}/ + syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean + hi def link plug1 Title + hi def link plug2 Repeat + hi def link plugH2 Type + hi def link plugX Exception + hi def link plugBracket Structure + hi def link plugNumber Number + + hi def link plugDash Special + hi def link plugPlus Constant + hi def link plugStar Boolean + + hi def link plugMessage Function + hi def link plugName Label + hi def link plugInstall Function + hi def link plugUpdate Type + + hi def link plugError Error + hi def link plugDeleted Ignore + hi def link plugRelDate Comment + hi def link plugEdge PreProc + hi def link plugSha Identifier + hi def link plugTag Constant + + hi def link plugNotLoaded Comment +endfunction + +function! s:lpad(str, len) + return a:str . repeat(' ', a:len - len(a:str)) +endfunction + +function! s:lines(msg) + return split(a:msg, "[\r\n]") +endfunction + +function! s:lastline(msg) + return get(s:lines(a:msg), -1, '') +endfunction + +function! s:new_window() + execute get(g:, 'plug_window', '-tabnew') +endfunction + +function! s:plug_window_exists() + let buflist = tabpagebuflist(s:plug_tab) + return !empty(buflist) && index(buflist, s:plug_buf) >= 0 +endfunction + +function! s:switch_in() + if !s:plug_window_exists() + return 0 + endif + + if winbufnr(0) != s:plug_buf + let s:pos = [tabpagenr(), winnr(), winsaveview()] + execute 'normal!' s:plug_tab.'gt' + let winnr = bufwinnr(s:plug_buf) + execute winnr.'wincmd w' + call add(s:pos, winsaveview()) + else + let s:pos = [winsaveview()] + endif + + setlocal modifiable + return 1 +endfunction + +function! s:switch_out(...) + call winrestview(s:pos[-1]) + setlocal nomodifiable + if a:0 > 0 + execute a:1 + endif + + if len(s:pos) > 1 + execute 'normal!' s:pos[0].'gt' + execute s:pos[1] 'wincmd w' + call winrestview(s:pos[2]) + endif +endfunction + +function! s:finish_bindings() + nnoremap R :call retry() + nnoremap D :PlugDiff + nnoremap S :PlugStatus + nnoremap U :call status_update() + xnoremap U :call status_update() + nnoremap ]] :silent! call section('') + nnoremap [[ :silent! call section('b') +endfunction + +function! s:prepare(...) + if empty(s:plug_getcwd()) + throw 'Invalid current working directory. Cannot proceed.' + endif + + for evar in ['$GIT_DIR', '$GIT_WORK_TREE'] + if exists(evar) + throw evar.' detected. Cannot proceed.' + endif + endfor + + call s:job_abort() + if s:switch_in() + if b:plug_preview == 1 + pc + endif + enew + else + call s:new_window() + endif + + nnoremap q :call close_pane() + if a:0 == 0 + call s:finish_bindings() + endif + let b:plug_preview = -1 + let s:plug_tab = tabpagenr() + let s:plug_buf = winbufnr(0) + call s:assign_name() + + for k in ['', 'L', 'o', 'X', 'd', 'dd'] + execute 'silent! unmap ' k + endfor + setlocal buftype=nofile bufhidden=wipe nobuflisted nolist noswapfile nowrap cursorline modifiable nospell + if exists('+colorcolumn') + setlocal colorcolumn= + endif + setf vim-plug + if exists('g:syntax_on') + call s:syntax() + endif +endfunction + +function! s:close_pane() + if b:plug_preview == 1 + pc + let b:plug_preview = -1 + else + bd + endif +endfunction + +function! s:assign_name() + " Assign buffer name + let prefix = '[Plugins]' + let name = prefix + let idx = 2 + while bufexists(name) + let name = printf('%s (%s)', prefix, idx) + let idx = idx + 1 + endwhile + silent! execute 'f' fnameescape(name) +endfunction + +function! s:chsh(swap) + let prev = [&shell, &shellcmdflag, &shellredir] + if !s:is_win + set shell=sh + endif + if a:swap + if s:is_powershell(&shell) + let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s' + elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$' + set shellredir=>%s\ 2>&1 + endif + endif + return prev +endfunction + +function! s:bang(cmd, ...) + let batchfile = '' + try + let [sh, shellcmdflag, shrd] = s:chsh(a:0) + " FIXME: Escaping is incomplete. We could use shellescape with eval, + " but it won't work on Windows. + let cmd = a:0 ? s:with_cd(a:cmd, a:1) : a:cmd + if s:is_win + let [batchfile, cmd] = s:batchfile(cmd) + endif + let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%') + execute "normal! :execute g:_plug_bang\\" + finally + unlet g:_plug_bang + let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] + if s:is_win && filereadable(batchfile) + call delete(batchfile) + endif + endtry + return v:shell_error ? 'Exit status: ' . v:shell_error : '' +endfunction + +function! s:regress_bar() + let bar = substitute(getline(2)[1:-2], '.*\zs=', 'x', '') + call s:progress_bar(2, bar, len(bar)) +endfunction + +function! s:is_updated(dir) + return !empty(s:system_chomp(['git', 'log', '--pretty=format:%h', 'HEAD...HEAD@{1}'], a:dir)) +endfunction + +function! s:do(pull, force, todo) + if has('nvim') + " Reset &rtp to invalidate Neovim cache of loaded Lua modules + " See https://github.com/junegunn/vim-plug/pull/1157#issuecomment-1809226110 + let &rtp = &rtp + endif + for [name, spec] in items(a:todo) + if !isdirectory(spec.dir) + continue + endif + let installed = has_key(s:update.new, name) + let updated = installed ? 0 : + \ (a:pull && index(s:update.errors, name) < 0 && s:is_updated(spec.dir)) + if a:force || installed || updated + execute 'cd' s:esc(spec.dir) + call append(3, '- Post-update hook for '. name .' ... ') + let error = '' + let type = type(spec.do) + if type == s:TYPE.string + if spec.do[0] == ':' + if !get(s:loaded, name, 0) + let s:loaded[name] = 1 + call s:reorg_rtp() + endif + call s:load_plugin(spec) + try + execute spec.do[1:] + catch + let error = v:exception + endtry + if !s:plug_window_exists() + cd - + throw 'Warning: vim-plug was terminated by the post-update hook of '.name + endif + else + let error = s:bang(spec.do) + endif + elseif type == s:TYPE.funcref + try + call s:load_plugin(spec) + let status = installed ? 'installed' : (updated ? 'updated' : 'unchanged') + call spec.do({ 'name': name, 'status': status, 'force': a:force }) + catch + let error = v:exception + endtry + else + let error = 'Invalid hook type' + endif + call s:switch_in() + call setline(4, empty(error) ? (getline(4) . 'OK') + \ : ('x' . getline(4)[1:] . error)) + if !empty(error) + call add(s:update.errors, name) + call s:regress_bar() + endif + cd - + endif + endfor +endfunction + +function! s:hash_match(a, b) + return stridx(a:a, a:b) == 0 || stridx(a:b, a:a) == 0 +endfunction + +function! s:checkout(spec) + let sha = a:spec.commit + let output = s:git_revision(a:spec.dir) + let error = 0 + if !empty(output) && !s:hash_match(sha, s:lines(output)[0]) + let credential_helper = s:git_version_requirement(2) ? '-c credential.helper= ' : '' + let output = s:system( + \ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) + let error = v:shell_error + endif + return [output, error] +endfunction + +function! s:finish(pull) + let new_frozen = len(filter(keys(s:update.new), 'g:plugs[v:val].frozen')) + if new_frozen + let s = new_frozen > 1 ? 's' : '' + call append(3, printf('- Installed %d frozen plugin%s', new_frozen, s)) + endif + call append(3, '- Finishing ... ') | 4 + redraw + call plug#helptags() + call plug#end() + call setline(4, getline(4) . 'Done!') + redraw + let msgs = [] + if !empty(s:update.errors) + call add(msgs, "Press 'R' to retry.") + endif + if a:pull && len(s:update.new) < len(filter(getline(5, '$'), + \ "v:val =~ '^- ' && v:val !~# 'Already up.to.date'")) + call add(msgs, "Press 'D' to see the updated changes.") + endif + echo join(msgs, ' ') + call s:finish_bindings() +endfunction + +function! s:retry() + if empty(s:update.errors) + return + endif + echo + call s:update_impl(s:update.pull, s:update.force, + \ extend(copy(s:update.errors), [s:update.threads])) +endfunction + +function! s:is_managed(name) + return has_key(g:plugs[a:name], 'uri') +endfunction + +function! s:names(...) + return sort(filter(keys(g:plugs), 'stridx(v:val, a:1) == 0 && s:is_managed(v:val)')) +endfunction + +function! s:check_ruby() + silent! ruby require 'thread'; VIM::command("let g:plug_ruby = '#{RUBY_VERSION}'") + if !exists('g:plug_ruby') + redraw! + return s:warn('echom', 'Warning: Ruby interface is broken') + endif + let ruby_version = split(g:plug_ruby, '\.') + unlet g:plug_ruby + return s:version_requirement(ruby_version, [1, 8, 7]) +endfunction + +function! s:update_impl(pull, force, args) abort + let sync = index(a:args, '--sync') >= 0 || has('vim_starting') + let args = filter(copy(a:args), 'v:val != "--sync"') + let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ? + \ remove(args, -1) : get(g:, 'plug_threads', 16) + + let managed = filter(deepcopy(g:plugs), 's:is_managed(v:key)') + let todo = empty(args) ? filter(managed, '!v:val.frozen || !isdirectory(v:val.dir)') : + \ filter(managed, 'index(args, v:key) >= 0') + + if empty(todo) + return s:warn('echo', 'No plugin to '. (a:pull ? 'update' : 'install')) + endif + + if !s:is_win && s:git_version_requirement(2, 3) + let s:git_terminal_prompt = exists('$GIT_TERMINAL_PROMPT') ? $GIT_TERMINAL_PROMPT : '' + let $GIT_TERMINAL_PROMPT = 0 + for plug in values(todo) + let plug.uri = substitute(plug.uri, + \ '^https://git::@github\.com', 'https://github.com', '') + endfor + endif + + if !isdirectory(g:plug_home) + try + call mkdir(g:plug_home, 'p') + catch + return s:err(printf('Invalid plug directory: %s. '. + \ 'Try to call plug#begin with a valid directory', g:plug_home)) + endtry + endif + + if has('nvim') && !exists('*jobwait') && threads > 1 + call s:warn('echom', '[vim-plug] Update Neovim for parallel installer') + endif + + let use_job = s:nvim || s:vim8 + let python = (has('python') || has('python3')) && !use_job + let ruby = has('ruby') && !use_job && (v:version >= 703 || v:version == 702 && has('patch374')) && !(s:is_win && has('gui_running')) && threads > 1 && s:check_ruby() + + let s:update = { + \ 'start': reltime(), + \ 'all': todo, + \ 'todo': copy(todo), + \ 'errors': [], + \ 'pull': a:pull, + \ 'force': a:force, + \ 'new': {}, + \ 'threads': (python || ruby || use_job) ? min([len(todo), threads]) : 1, + \ 'bar': '', + \ 'fin': 0 + \ } + + call s:prepare(1) + call append(0, ['', '']) + normal! 2G + silent! redraw + + " Set remote name, overriding a possible user git config's clone.defaultRemoteName + let s:clone_opt = ['--origin', 'origin'] + if get(g:, 'plug_shallow', 1) + call extend(s:clone_opt, ['--depth', '1']) + if s:git_version_requirement(1, 7, 10) + call add(s:clone_opt, '--no-single-branch') + endif + endif + + if has('win32unix') || has('wsl') + call extend(s:clone_opt, ['-c', 'core.eol=lf', '-c', 'core.autocrlf=input']) + endif + + let s:submodule_opt = s:git_version_requirement(2, 8) ? ' --jobs='.threads : '' + + " Python version requirement (>= 2.7) + if python && !has('python3') && !ruby && !use_job && s:update.threads > 1 + redir => pyv + silent python import platform; print platform.python_version() + redir END + let python = s:version_requirement( + \ map(split(split(pyv)[0], '\.'), 'str2nr(v:val)'), [2, 6]) + endif + + if (python || ruby) && s:update.threads > 1 + try + let imd = &imd + if s:mac_gui + set noimd + endif + if ruby + call s:update_ruby() + else + call s:update_python() + endif + catch + let lines = getline(4, '$') + let printed = {} + silent! 4,$d _ + for line in lines + let name = s:extract_name(line, '.', '') + if empty(name) || !has_key(printed, name) + call append('$', line) + if !empty(name) + let printed[name] = 1 + if line[0] == 'x' && index(s:update.errors, name) < 0 + call add(s:update.errors, name) + end + endif + endif + endfor + finally + let &imd = imd + call s:update_finish() + endtry + else + call s:update_vim() + while use_job && sync + sleep 100m + if s:update.fin + break + endif + endwhile + endif +endfunction + +function! s:log4(name, msg) + call setline(4, printf('- %s (%s)', a:msg, a:name)) + redraw +endfunction + +function! s:update_finish() + if exists('s:git_terminal_prompt') + let $GIT_TERMINAL_PROMPT = s:git_terminal_prompt + endif + if s:switch_in() + call append(3, '- Updating ...') | 4 + for [name, spec] in items(filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && (s:update.force || s:update.pull || has_key(s:update.new, v:key))')) + let [pos, _] = s:logpos(name) + if !pos + continue + endif + let out = '' + let error = 0 + if has_key(spec, 'commit') + call s:log4(name, 'Checking out '.spec.commit) + let [out, error] = s:checkout(spec) + elseif has_key(spec, 'tag') + let tag = spec.tag + if tag =~ '\*' + let tags = s:lines(s:system('git tag --list '.plug#shellescape(tag).' --sort -version:refname 2>&1', spec.dir)) + if !v:shell_error && !empty(tags) + let tag = tags[0] + call s:log4(name, printf('Latest tag for %s -> %s', spec.tag, tag)) + call append(3, '') + endif + endif + call s:log4(name, 'Checking out '.tag) + let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir) + let error = v:shell_error + endif + if !error && filereadable(spec.dir.'/.gitmodules') && + \ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir)) + call s:log4(name, 'Updating submodules. This may take a while.') + let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir) + let error = v:shell_error + endif + let msg = s:format_message(v:shell_error ? 'x': '-', name, out) + if error + call add(s:update.errors, name) + call s:regress_bar() + silent execute pos 'd _' + call append(4, msg) | 4 + elseif !empty(out) + call setline(pos, msg[0]) + endif + redraw + endfor + silent 4 d _ + try + call s:do(s:update.pull, s:update.force, filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && has_key(v:val, "do")')) + catch + call s:warn('echom', v:exception) + call s:warn('echo', '') + return + endtry + call s:finish(s:update.pull) + call setline(1, 'Updated. Elapsed time: ' . split(reltimestr(reltime(s:update.start)))[0] . ' sec.') + call s:switch_out('normal! gg') + endif +endfunction + +function! s:job_abort() + if (!s:nvim && !s:vim8) || !exists('s:jobs') + return + endif + + for [name, j] in items(s:jobs) + if s:nvim + silent! call jobstop(j.jobid) + elseif s:vim8 + silent! call job_stop(j.jobid) + endif + if j.new + call s:rm_rf(g:plugs[name].dir) + endif + endfor + let s:jobs = {} +endfunction + +function! s:last_non_empty_line(lines) + let len = len(a:lines) + for idx in range(len) + let line = a:lines[len-idx-1] + if !empty(line) + return line + endif + endfor + return '' +endfunction + +function! s:job_out_cb(self, data) abort + let self = a:self + let data = remove(self.lines, -1) . a:data + let lines = map(split(data, "\n", 1), 'split(v:val, "\r", 1)[-1]') + call extend(self.lines, lines) + " To reduce the number of buffer updates + let self.tick = get(self, 'tick', -1) + 1 + if !self.running || self.tick % len(s:jobs) == 0 + let bullet = self.running ? (self.new ? '+' : '*') : (self.error ? 'x' : '-') + let result = self.error ? join(self.lines, "\n") : s:last_non_empty_line(self.lines) + if len(result) + call s:log(bullet, self.name, result) + endif + endif +endfunction + +function! s:job_exit_cb(self, data) abort + let a:self.running = 0 + let a:self.error = a:data != 0 + call s:reap(a:self.name) + call s:tick() +endfunction + +function! s:job_cb(fn, job, ch, data) + if !s:plug_window_exists() " plug window closed + return s:job_abort() + endif + call call(a:fn, [a:job, a:data]) +endfunction + +function! s:nvim_cb(job_id, data, event) dict abort + return (a:event == 'stdout' || a:event == 'stderr') ? + \ s:job_cb('s:job_out_cb', self, 0, join(a:data, "\n")) : + \ s:job_cb('s:job_exit_cb', self, 0, a:data) +endfunction + +function! s:spawn(name, spec, queue, opts) + let job = { 'name': a:name, 'spec': a:spec, 'running': 1, 'error': 0, 'lines': [''], + \ 'new': get(a:opts, 'new', 0), 'queue': copy(a:queue) } + let Item = remove(job.queue, 0) + let argv = type(Item) == s:TYPE.funcref ? call(Item, [a:spec]) : Item + let s:jobs[a:name] = job + + if s:nvim + if has_key(a:opts, 'dir') + let job.cwd = a:opts.dir + endif + call extend(job, { + \ 'on_stdout': function('s:nvim_cb'), + \ 'on_stderr': function('s:nvim_cb'), + \ 'on_exit': function('s:nvim_cb'), + \ }) + let jid = s:plug_call('jobstart', argv, job) + if jid > 0 + let job.jobid = jid + else + let job.running = 0 + let job.error = 1 + let job.lines = [jid < 0 ? argv[0].' is not executable' : + \ 'Invalid arguments (or job table is full)'] + endif + elseif s:vim8 + let cmd = join(map(copy(argv), 'plug#shellescape(v:val, {"script": 0})')) + if has_key(a:opts, 'dir') + let cmd = s:with_cd(cmd, a:opts.dir, 0) + endif + let argv = s:is_win ? ['cmd', '/s', '/c', '"'.cmd.'"'] : ['sh', '-c', cmd] + let jid = job_start(s:is_win ? join(argv, ' ') : argv, { + \ 'out_cb': function('s:job_cb', ['s:job_out_cb', job]), + \ 'err_cb': function('s:job_cb', ['s:job_out_cb', job]), + \ 'exit_cb': function('s:job_cb', ['s:job_exit_cb', job]), + \ 'err_mode': 'raw', + \ 'out_mode': 'raw' + \}) + if job_status(jid) == 'run' + let job.jobid = jid + else + let job.running = 0 + let job.error = 1 + let job.lines = ['Failed to start job'] + endif + else + let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [argv, a:opts.dir] : [argv])) + let job.error = v:shell_error != 0 + let job.running = 0 + endif +endfunction + +function! s:reap(name) + let job = remove(s:jobs, a:name) + if job.error + call add(s:update.errors, a:name) + elseif get(job, 'new', 0) + let s:update.new[a:name] = 1 + endif + + let more = len(get(job, 'queue', [])) + let bullet = job.error ? 'x' : more ? (job.new ? '+' : '*') : '-' + let result = job.error ? join(job.lines, "\n") : s:last_non_empty_line(job.lines) + if len(result) + call s:log(bullet, a:name, result) + endif + + if !job.error && more + let job.spec.queue = job.queue + let s:update.todo[a:name] = job.spec + else + let s:update.bar .= job.error ? 'x' : '=' + call s:bar() + endif +endfunction + +function! s:bar() + if s:switch_in() + let total = len(s:update.all) + call setline(1, (s:update.pull ? 'Updating' : 'Installing'). + \ ' plugins ('.len(s:update.bar).'/'.total.')') + call s:progress_bar(2, s:update.bar, total) + call s:switch_out() + endif +endfunction + +function! s:logpos(name) + let max = line('$') + for i in range(4, max > 4 ? max : 4) + if getline(i) =~# '^[-+x*] '.a:name.':' + for j in range(i + 1, max > 5 ? max : 5) + if getline(j) !~ '^ ' + return [i, j - 1] + endif + endfor + return [i, i] + endif + endfor + return [0, 0] +endfunction + +function! s:log(bullet, name, lines) + if s:switch_in() + let [b, e] = s:logpos(a:name) + if b > 0 + silent execute printf('%d,%d d _', b, e) + if b > winheight('.') + let b = 4 + endif + else + let b = 4 + endif + " FIXME For some reason, nomodifiable is set after :d in vim8 + setlocal modifiable + call append(b - 1, s:format_message(a:bullet, a:name, a:lines)) + call s:switch_out() + endif +endfunction + +function! s:update_vim() + let s:jobs = {} + + call s:bar() + call s:tick() +endfunction + +function! s:checkout_command(spec) + let a:spec.branch = s:git_origin_branch(a:spec) + return ['git', 'checkout', '-q', a:spec.branch, '--'] +endfunction + +function! s:merge_command(spec) + let a:spec.branch = s:git_origin_branch(a:spec) + return ['git', 'merge', '--ff-only', 'origin/'.a:spec.branch] +endfunction + +function! s:tick() + let pull = s:update.pull + let prog = s:progress_opt(s:nvim || s:vim8) +while 1 " Without TCO, Vim stack is bound to explode + if empty(s:update.todo) + if empty(s:jobs) && !s:update.fin + call s:update_finish() + let s:update.fin = 1 + endif + return + endif + + let name = keys(s:update.todo)[0] + let spec = remove(s:update.todo, name) + let queue = get(spec, 'queue', []) + let new = empty(globpath(spec.dir, '.git', 1)) + + if empty(queue) + call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...') + redraw + endif + + let has_tag = has_key(spec, 'tag') + if len(queue) + call s:spawn(name, spec, queue, { 'dir': spec.dir }) + elseif !new + let [error, _] = s:git_validate(spec, 0) + if empty(error) + if pull + let cmd = s:git_version_requirement(2) ? ['git', '-c', 'credential.helper=', 'fetch'] : ['git', 'fetch'] + if has_tag && !empty(globpath(spec.dir, '.git/shallow')) + call extend(cmd, ['--depth', '99999999']) + endif + if !empty(prog) + call add(cmd, prog) + endif + let queue = [cmd, split('git remote set-head origin -a')] + if !has_tag && !has_key(spec, 'commit') + call extend(queue, [function('s:checkout_command'), function('s:merge_command')]) + endif + call s:spawn(name, spec, queue, { 'dir': spec.dir }) + else + let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 } + endif + else + let s:jobs[name] = { 'running': 0, 'lines': s:lines(error), 'error': 1 } + endif + else + let cmd = ['git', 'clone'] + if !has_tag + call extend(cmd, s:clone_opt) + endif + if !empty(prog) + call add(cmd, prog) + endif + call s:spawn(name, spec, [extend(cmd, [spec.uri, s:trim(spec.dir)]), function('s:checkout_command'), function('s:merge_command')], { 'new': 1 }) + endif + + if !s:jobs[name].running + call s:reap(name) + endif + if len(s:jobs) >= s:update.threads + break + endif +endwhile +endfunction + +function! s:update_python() +let py_exe = has('python') ? 'python' : 'python3' +execute py_exe "<< EOF" +import datetime +import functools +import os +try: + import queue +except ImportError: + import Queue as queue +import random +import re +import shutil +import signal +import subprocess +import tempfile +import threading as thr +import time +import traceback +import vim + +G_NVIM = vim.eval("has('nvim')") == '1' +G_PULL = vim.eval('s:update.pull') == '1' +G_RETRIES = int(vim.eval('get(g:, "plug_retries", 2)')) + 1 +G_TIMEOUT = int(vim.eval('get(g:, "plug_timeout", 60)')) +G_CLONE_OPT = ' '.join(vim.eval('s:clone_opt')) +G_PROGRESS = vim.eval('s:progress_opt(1)') +G_LOG_PROB = 1.0 / int(vim.eval('s:update.threads')) +G_STOP = thr.Event() +G_IS_WIN = vim.eval('s:is_win') == '1' + +class PlugError(Exception): + def __init__(self, msg): + self.msg = msg +class CmdTimedOut(PlugError): + pass +class CmdFailed(PlugError): + pass +class InvalidURI(PlugError): + pass +class Action(object): + INSTALL, UPDATE, ERROR, DONE = ['+', '*', 'x', '-'] + +class Buffer(object): + def __init__(self, lock, num_plugs, is_pull): + self.bar = '' + self.event = 'Updating' if is_pull else 'Installing' + self.lock = lock + self.maxy = int(vim.eval('winheight(".")')) + self.num_plugs = num_plugs + + def __where(self, name): + """ Find first line with name in current buffer. Return line num. """ + found, lnum = False, 0 + matcher = re.compile('^[-+x*] {0}:'.format(name)) + for line in vim.current.buffer: + if matcher.search(line) is not None: + found = True + break + lnum += 1 + + if not found: + lnum = -1 + return lnum + + def header(self): + curbuf = vim.current.buffer + curbuf[0] = self.event + ' plugins ({0}/{1})'.format(len(self.bar), self.num_plugs) + + num_spaces = self.num_plugs - len(self.bar) + curbuf[1] = '[{0}{1}]'.format(self.bar, num_spaces * ' ') + + with self.lock: + vim.command('normal! 2G') + vim.command('redraw') + + def write(self, action, name, lines): + first, rest = lines[0], lines[1:] + msg = ['{0} {1}{2}{3}'.format(action, name, ': ' if first else '', first)] + msg.extend([' ' + line for line in rest]) + + try: + if action == Action.ERROR: + self.bar += 'x' + vim.command("call add(s:update.errors, '{0}')".format(name)) + elif action == Action.DONE: + self.bar += '=' + + curbuf = vim.current.buffer + lnum = self.__where(name) + if lnum != -1: # Found matching line num + del curbuf[lnum] + if lnum > self.maxy and action in set([Action.INSTALL, Action.UPDATE]): + lnum = 3 + else: + lnum = 3 + curbuf.append(msg, lnum) + + self.header() + except vim.error: + pass + +class Command(object): + CD = 'cd /d' if G_IS_WIN else 'cd' + + def __init__(self, cmd, cmd_dir=None, timeout=60, cb=None, clean=None): + self.cmd = cmd + if cmd_dir: + self.cmd = '{0} {1} && {2}'.format(Command.CD, cmd_dir, self.cmd) + self.timeout = timeout + self.callback = cb if cb else (lambda msg: None) + self.clean = clean if clean else (lambda: None) + self.proc = None + + @property + def alive(self): + """ Returns true only if command still running. """ + return self.proc and self.proc.poll() is None + + def execute(self, ntries=3): + """ Execute the command with ntries if CmdTimedOut. + Returns the output of the command if no Exception. + """ + attempt, finished, limit = 0, False, self.timeout + + while not finished: + try: + attempt += 1 + result = self.try_command() + finished = True + return result + except CmdTimedOut: + if attempt != ntries: + self.notify_retry() + self.timeout += limit + else: + raise + + def notify_retry(self): + """ Retry required for command, notify user. """ + for count in range(3, 0, -1): + if G_STOP.is_set(): + raise KeyboardInterrupt + msg = 'Timeout. Will retry in {0} second{1} ...'.format( + count, 's' if count != 1 else '') + self.callback([msg]) + time.sleep(1) + self.callback(['Retrying ...']) + + def try_command(self): + """ Execute a cmd & poll for callback. Returns list of output. + Raises CmdFailed -> return code for Popen isn't 0 + Raises CmdTimedOut -> command exceeded timeout without new output + """ + first_line = True + + try: + tfile = tempfile.NamedTemporaryFile(mode='w+b') + preexec_fn = not G_IS_WIN and os.setsid or None + self.proc = subprocess.Popen(self.cmd, stdout=tfile, + stderr=subprocess.STDOUT, + stdin=subprocess.PIPE, shell=True, + preexec_fn=preexec_fn) + thrd = thr.Thread(target=(lambda proc: proc.wait()), args=(self.proc,)) + thrd.start() + + thread_not_started = True + while thread_not_started: + try: + thrd.join(0.1) + thread_not_started = False + except RuntimeError: + pass + + while self.alive: + if G_STOP.is_set(): + raise KeyboardInterrupt + + if first_line or random.random() < G_LOG_PROB: + first_line = False + line = '' if G_IS_WIN else nonblock_read(tfile.name) + if line: + self.callback([line]) + + time_diff = time.time() - os.path.getmtime(tfile.name) + if time_diff > self.timeout: + raise CmdTimedOut(['Timeout!']) + + thrd.join(0.5) + + tfile.seek(0) + result = [line.decode('utf-8', 'replace').rstrip() for line in tfile] + + if self.proc.returncode != 0: + raise CmdFailed([''] + result) + + return result + except: + self.terminate() + raise + + def terminate(self): + """ Terminate process and cleanup. """ + if self.alive: + if G_IS_WIN: + os.kill(self.proc.pid, signal.SIGINT) + else: + os.killpg(self.proc.pid, signal.SIGTERM) + self.clean() + +class Plugin(object): + def __init__(self, name, args, buf_q, lock): + self.name = name + self.args = args + self.buf_q = buf_q + self.lock = lock + self.tag = args.get('tag', 0) + + def manage(self): + try: + if os.path.exists(self.args['dir']): + self.update() + else: + self.install() + with self.lock: + thread_vim_command("let s:update.new['{0}'] = 1".format(self.name)) + except PlugError as exc: + self.write(Action.ERROR, self.name, exc.msg) + except KeyboardInterrupt: + G_STOP.set() + self.write(Action.ERROR, self.name, ['Interrupted!']) + except: + # Any exception except those above print stack trace + msg = 'Trace:\n{0}'.format(traceback.format_exc().rstrip()) + self.write(Action.ERROR, self.name, msg.split('\n')) + raise + + def install(self): + target = self.args['dir'] + if target[-1] == '\\': + target = target[0:-1] + + def clean(target): + def _clean(): + try: + shutil.rmtree(target) + except OSError: + pass + return _clean + + self.write(Action.INSTALL, self.name, ['Installing ...']) + callback = functools.partial(self.write, Action.INSTALL, self.name) + cmd = 'git clone {0} {1} {2} {3} 2>&1'.format( + '' if self.tag else G_CLONE_OPT, G_PROGRESS, self.args['uri'], + esc(target)) + com = Command(cmd, None, G_TIMEOUT, callback, clean(target)) + result = com.execute(G_RETRIES) + self.write(Action.DONE, self.name, result[-1:]) + + def repo_uri(self): + cmd = 'git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url' + command = Command(cmd, self.args['dir'], G_TIMEOUT,) + result = command.execute(G_RETRIES) + return result[-1] + + def update(self): + actual_uri = self.repo_uri() + expect_uri = self.args['uri'] + regex = re.compile(r'^(?:\w+://)?(?:[^@/]*@)?([^:/]*(?::[0-9]*)?)[:/](.*?)(?:\.git)?/?$') + ma = regex.match(actual_uri) + mb = regex.match(expect_uri) + if ma is None or mb is None or ma.groups() != mb.groups(): + msg = ['', + 'Invalid URI: {0}'.format(actual_uri), + 'Expected {0}'.format(expect_uri), + 'PlugClean required.'] + raise InvalidURI(msg) + + if G_PULL: + self.write(Action.UPDATE, self.name, ['Updating ...']) + callback = functools.partial(self.write, Action.UPDATE, self.name) + fetch_opt = '--depth 99999999' if self.tag and os.path.isfile(os.path.join(self.args['dir'], '.git/shallow')) else '' + cmd = 'git fetch {0} {1} 2>&1'.format(fetch_opt, G_PROGRESS) + com = Command(cmd, self.args['dir'], G_TIMEOUT, callback) + result = com.execute(G_RETRIES) + self.write(Action.DONE, self.name, result[-1:]) + else: + self.write(Action.DONE, self.name, ['Already installed']) + + def write(self, action, name, msg): + self.buf_q.put((action, name, msg)) + +class PlugThread(thr.Thread): + def __init__(self, tname, args): + super(PlugThread, self).__init__() + self.tname = tname + self.args = args + + def run(self): + thr.current_thread().name = self.tname + buf_q, work_q, lock = self.args + + try: + while not G_STOP.is_set(): + name, args = work_q.get_nowait() + plug = Plugin(name, args, buf_q, lock) + plug.manage() + work_q.task_done() + except queue.Empty: + pass + +class RefreshThread(thr.Thread): + def __init__(self, lock): + super(RefreshThread, self).__init__() + self.lock = lock + self.running = True + + def run(self): + while self.running: + with self.lock: + thread_vim_command('noautocmd normal! a') + time.sleep(0.33) + + def stop(self): + self.running = False + +if G_NVIM: + def thread_vim_command(cmd): + vim.session.threadsafe_call(lambda: vim.command(cmd)) +else: + def thread_vim_command(cmd): + vim.command(cmd) + +def esc(name): + return '"' + name.replace('"', '\"') + '"' + +def nonblock_read(fname): + """ Read a file with nonblock flag. Return the last line. """ + fread = os.open(fname, os.O_RDONLY | os.O_NONBLOCK) + buf = os.read(fread, 100000).decode('utf-8', 'replace') + os.close(fread) + + line = buf.rstrip('\r\n') + left = max(line.rfind('\r'), line.rfind('\n')) + if left != -1: + left += 1 + line = line[left:] + + return line + +def main(): + thr.current_thread().name = 'main' + nthreads = int(vim.eval('s:update.threads')) + plugs = vim.eval('s:update.todo') + mac_gui = vim.eval('s:mac_gui') == '1' + + lock = thr.Lock() + buf = Buffer(lock, len(plugs), G_PULL) + buf_q, work_q = queue.Queue(), queue.Queue() + for work in plugs.items(): + work_q.put(work) + + start_cnt = thr.active_count() + for num in range(nthreads): + tname = 'PlugT-{0:02}'.format(num) + thread = PlugThread(tname, (buf_q, work_q, lock)) + thread.start() + if mac_gui: + rthread = RefreshThread(lock) + rthread.start() + + while not buf_q.empty() or thr.active_count() != start_cnt: + try: + action, name, msg = buf_q.get(True, 0.25) + buf.write(action, name, ['OK'] if not msg else msg) + buf_q.task_done() + except queue.Empty: + pass + except KeyboardInterrupt: + G_STOP.set() + + if mac_gui: + rthread.stop() + rthread.join() + +main() +EOF +endfunction + +function! s:update_ruby() + ruby << EOF + module PlugStream + SEP = ["\r", "\n", nil] + def get_line + buffer = '' + loop do + char = readchar rescue return + if SEP.include? char.chr + buffer << $/ + break + else + buffer << char + end + end + buffer + end + end unless defined?(PlugStream) + + def esc arg + %["#{arg.gsub('"', '\"')}"] + end + + def killall pid + pids = [pid] + if /mswin|mingw|bccwin/ =~ RUBY_PLATFORM + pids.each { |pid| Process.kill 'INT', pid.to_i rescue nil } + else + unless `which pgrep 2> /dev/null`.empty? + children = pids + until children.empty? + children = children.map { |pid| + `pgrep -P #{pid}`.lines.map { |l| l.chomp } + }.flatten + pids += children + end + end + pids.each { |pid| Process.kill 'TERM', pid.to_i rescue nil } + end + end + + def compare_git_uri a, b + regex = %r{^(?:\w+://)?(?:[^@/]*@)?([^:/]*(?::[0-9]*)?)[:/](.*?)(?:\.git)?/?$} + regex.match(a).to_a.drop(1) == regex.match(b).to_a.drop(1) + end + + require 'thread' + require 'fileutils' + require 'timeout' + running = true + iswin = VIM::evaluate('s:is_win').to_i == 1 + pull = VIM::evaluate('s:update.pull').to_i == 1 + base = VIM::evaluate('g:plug_home') + all = VIM::evaluate('s:update.todo') + limit = VIM::evaluate('get(g:, "plug_timeout", 60)') + tries = VIM::evaluate('get(g:, "plug_retries", 2)') + 1 + nthr = VIM::evaluate('s:update.threads').to_i + maxy = VIM::evaluate('winheight(".")').to_i + vim7 = VIM::evaluate('v:version').to_i <= 703 && RUBY_PLATFORM =~ /darwin/ + cd = iswin ? 'cd /d' : 'cd' + tot = VIM::evaluate('len(s:update.todo)') || 0 + bar = '' + skip = 'Already installed' + mtx = Mutex.new + take1 = proc { mtx.synchronize { running && all.shift } } + logh = proc { + cnt = bar.length + $curbuf[1] = "#{pull ? 'Updating' : 'Installing'} plugins (#{cnt}/#{tot})" + $curbuf[2] = '[' + bar.ljust(tot) + ']' + VIM::command('normal! 2G') + VIM::command('redraw') + } + where = proc { |name| (1..($curbuf.length)).find { |l| $curbuf[l] =~ /^[-+x*] #{name}:/ } } + log = proc { |name, result, type| + mtx.synchronize do + ing = ![true, false].include?(type) + bar += type ? '=' : 'x' unless ing + b = case type + when :install then '+' when :update then '*' + when true, nil then '-' else + VIM::command("call add(s:update.errors, '#{name}')") + 'x' + end + result = + if type || type.nil? + ["#{b} #{name}: #{result.lines.to_a.last || 'OK'}"] + elsif result =~ /^Interrupted|^Timeout/ + ["#{b} #{name}: #{result}"] + else + ["#{b} #{name}"] + result.lines.map { |l| " " << l } + end + if lnum = where.call(name) + $curbuf.delete lnum + lnum = 4 if ing && lnum > maxy + end + result.each_with_index do |line, offset| + $curbuf.append((lnum || 4) - 1 + offset, line.gsub(/\e\[./, '').chomp) + end + logh.call + end + } + bt = proc { |cmd, name, type, cleanup| + tried = timeout = 0 + begin + tried += 1 + timeout += limit + fd = nil + data = '' + if iswin + Timeout::timeout(timeout) do + tmp = VIM::evaluate('tempname()') + system("(#{cmd}) > #{tmp}") + data = File.read(tmp).chomp + File.unlink tmp rescue nil + end + else + fd = IO.popen(cmd).extend(PlugStream) + first_line = true + log_prob = 1.0 / nthr + while line = Timeout::timeout(timeout) { fd.get_line } + data << line + log.call name, line.chomp, type if name && (first_line || rand < log_prob) + first_line = false + end + fd.close + end + [$? == 0, data.chomp] + rescue Timeout::Error, Interrupt => e + if fd && !fd.closed? + killall fd.pid + fd.close + end + cleanup.call if cleanup + if e.is_a?(Timeout::Error) && tried < tries + 3.downto(1) do |countdown| + s = countdown > 1 ? 's' : '' + log.call name, "Timeout. Will retry in #{countdown} second#{s} ...", type + sleep 1 + end + log.call name, 'Retrying ...', type + retry + end + [false, e.is_a?(Interrupt) ? "Interrupted!" : "Timeout!"] + end + } + main = Thread.current + threads = [] + watcher = Thread.new { + if vim7 + while VIM::evaluate('getchar(1)') + sleep 0.1 + end + else + require 'io/console' # >= Ruby 1.9 + nil until IO.console.getch == 3.chr + end + mtx.synchronize do + running = false + threads.each { |t| t.raise Interrupt } unless vim7 + end + threads.each { |t| t.join rescue nil } + main.kill + } + refresh = Thread.new { + while true + mtx.synchronize do + break unless running + VIM::command('noautocmd normal! a') + end + sleep 0.2 + end + } if VIM::evaluate('s:mac_gui') == 1 + + clone_opt = VIM::evaluate('s:clone_opt').join(' ') + progress = VIM::evaluate('s:progress_opt(1)') + nthr.times do + mtx.synchronize do + threads << Thread.new { + while pair = take1.call + name = pair.first + dir, uri, tag = pair.last.values_at *%w[dir uri tag] + exists = File.directory? dir + ok, result = + if exists + chdir = "#{cd} #{iswin ? dir : esc(dir)}" + ret, data = bt.call "#{chdir} && git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url", nil, nil, nil + current_uri = data.lines.to_a.last + if !ret + if data =~ /^Interrupted|^Timeout/ + [false, data] + else + [false, [data.chomp, "PlugClean required."].join($/)] + end + elsif !compare_git_uri(current_uri, uri) + [false, ["Invalid URI: #{current_uri}", + "Expected: #{uri}", + "PlugClean required."].join($/)] + else + if pull + log.call name, 'Updating ...', :update + fetch_opt = (tag && File.exist?(File.join(dir, '.git/shallow'))) ? '--depth 99999999' : '' + bt.call "#{chdir} && git fetch #{fetch_opt} #{progress} 2>&1", name, :update, nil + else + [true, skip] + end + end + else + d = esc dir.sub(%r{[\\/]+$}, '') + log.call name, 'Installing ...', :install + bt.call "git clone #{clone_opt unless tag} #{progress} #{uri} #{d} 2>&1", name, :install, proc { + FileUtils.rm_rf dir + } + end + mtx.synchronize { VIM::command("let s:update.new['#{name}'] = 1") } if !exists && ok + log.call name, result, ok + end + } if running + end + end + threads.each { |t| t.join rescue nil } + logh.call + refresh.kill if refresh + watcher.kill +EOF +endfunction + +function! s:shellesc_cmd(arg, script) + let escaped = substitute('"'.a:arg.'"', '[&|<>()@^!"]', '^&', 'g') + return substitute(escaped, '%', (a:script ? '%' : '^') . '&', 'g') +endfunction + +function! s:shellesc_ps1(arg) + return "'".substitute(escape(a:arg, '\"'), "'", "''", 'g')."'" +endfunction + +function! s:shellesc_sh(arg) + return "'".substitute(a:arg, "'", "'\\\\''", 'g')."'" +endfunction + +" Escape the shell argument based on the shell. +" Vim and Neovim's shellescape() are insufficient. +" 1. shellslash determines whether to use single/double quotes. +" Double-quote escaping is fragile for cmd.exe. +" 2. It does not work for powershell. +" 3. It does not work for *sh shells if the command is executed +" via cmd.exe (ie. cmd.exe /c sh -c command command_args) +" 4. It does not support batchfile syntax. +" +" Accepts an optional dictionary with the following keys: +" - shell: same as Vim/Neovim 'shell' option. +" If unset, fallback to 'cmd.exe' on Windows or 'sh'. +" - script: If truthy and shell is cmd.exe, escape for batchfile syntax. +function! plug#shellescape(arg, ...) + if a:arg =~# '^[A-Za-z0-9_/:.-]\+$' + return a:arg + endif + let opts = a:0 > 0 && type(a:1) == s:TYPE.dict ? a:1 : {} + let shell = get(opts, 'shell', s:is_win ? 'cmd.exe' : 'sh') + let script = get(opts, 'script', 1) + if shell =~# 'cmd\(\.exe\)\?$' + return s:shellesc_cmd(a:arg, script) + elseif s:is_powershell(shell) + return s:shellesc_ps1(a:arg) + endif + return s:shellesc_sh(a:arg) +endfunction + +function! s:glob_dir(path) + return map(filter(s:glob(a:path, '**'), 'isdirectory(v:val)'), 's:dirpath(v:val)') +endfunction + +function! s:progress_bar(line, bar, total) + call setline(a:line, '[' . s:lpad(a:bar, a:total) . ']') +endfunction + +function! s:compare_git_uri(a, b) + " See `git help clone' + " https:// [user@] github.com[:port] / junegunn/vim-plug [.git] + " [git@] github.com[:port] : junegunn/vim-plug [.git] + " file:// / junegunn/vim-plug [/] + " / junegunn/vim-plug [/] + let pat = '^\%(\w\+://\)\='.'\%([^@/]*@\)\='.'\([^:/]*\%(:[0-9]*\)\=\)'.'[:/]'.'\(.\{-}\)'.'\%(\.git\)\=/\?$' + let ma = matchlist(a:a, pat) + let mb = matchlist(a:b, pat) + return ma[1:2] ==# mb[1:2] +endfunction + +function! s:format_message(bullet, name, message) + if a:bullet != 'x' + return [printf('%s %s: %s', a:bullet, a:name, s:lastline(a:message))] + else + let lines = map(s:lines(a:message), '" ".v:val') + return extend([printf('x %s:', a:name)], lines) + endif +endfunction + +function! s:with_cd(cmd, dir, ...) + let script = a:0 > 0 ? a:1 : 1 + return printf('cd%s %s && %s', s:is_win ? ' /d' : '', plug#shellescape(a:dir, {'script': script}), a:cmd) +endfunction + +function! s:system(cmd, ...) + let batchfile = '' + try + let [sh, shellcmdflag, shrd] = s:chsh(1) + if type(a:cmd) == s:TYPE.list + " Neovim's system() supports list argument to bypass the shell + " but it cannot set the working directory for the command. + " Assume that the command does not rely on the shell. + if has('nvim') && a:0 == 0 + return system(a:cmd) + endif + let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})')) + if s:is_powershell(&shell) + let cmd = '& ' . cmd + endif + else + let cmd = a:cmd + endif + if a:0 > 0 + let cmd = s:with_cd(cmd, a:1, type(a:cmd) != s:TYPE.list) + endif + if s:is_win && type(a:cmd) != s:TYPE.list + let [batchfile, cmd] = s:batchfile(cmd) + endif + return system(cmd) + finally + let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] + if s:is_win && filereadable(batchfile) + call delete(batchfile) + endif + endtry +endfunction + +function! s:system_chomp(...) + let ret = call('s:system', a:000) + return v:shell_error ? '' : substitute(ret, '\n$', '', '') +endfunction + +function! s:git_validate(spec, check_branch) + let err = '' + if isdirectory(a:spec.dir) + let result = [s:git_local_branch(a:spec.dir), s:git_origin_url(a:spec.dir)] + let remote = result[-1] + if empty(remote) + let err = join([remote, 'PlugClean required.'], "\n") + elseif !s:compare_git_uri(remote, a:spec.uri) + let err = join(['Invalid URI: '.remote, + \ 'Expected: '.a:spec.uri, + \ 'PlugClean required.'], "\n") + elseif a:check_branch && has_key(a:spec, 'commit') + let sha = s:git_revision(a:spec.dir) + if empty(sha) + let err = join(add(result, 'PlugClean required.'), "\n") + elseif !s:hash_match(sha, a:spec.commit) + let err = join([printf('Invalid HEAD (expected: %s, actual: %s)', + \ a:spec.commit[:6], sha[:6]), + \ 'PlugUpdate required.'], "\n") + endif + elseif a:check_branch + let current_branch = result[0] + " Check tag + let origin_branch = s:git_origin_branch(a:spec) + if has_key(a:spec, 'tag') + let tag = s:system_chomp('git describe --exact-match --tags HEAD 2>&1', a:spec.dir) + if a:spec.tag !=# tag && a:spec.tag !~ '\*' + let err = printf('Invalid tag: %s (expected: %s). Try PlugUpdate.', + \ (empty(tag) ? 'N/A' : tag), a:spec.tag) + endif + " Check branch + elseif origin_branch !=# current_branch + let err = printf('Invalid branch: %s (expected: %s). Try PlugUpdate.', + \ current_branch, origin_branch) + endif + if empty(err) + let ahead_behind = split(s:lastline(s:system([ + \ 'git', 'rev-list', '--count', '--left-right', + \ printf('HEAD...origin/%s', origin_branch) + \ ], a:spec.dir)), '\t') + if v:shell_error || len(ahead_behind) != 2 + let err = "Failed to compare with the origin. The default branch might have changed.\nPlugClean required." + else + let [ahead, behind] = ahead_behind + if ahead && behind + " Only mention PlugClean if diverged, otherwise it's likely to be + " pushable (and probably not that messed up). + let err = printf( + \ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n" + \ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind) + elseif ahead + let err = printf("Ahead of origin/%s by %d commit(s).\n" + \ .'Cannot update until local changes are pushed.', + \ origin_branch, ahead) + endif + endif + endif + endif + else + let err = 'Not found' + endif + return [err, err =~# 'PlugClean'] +endfunction + +function! s:rm_rf(dir) + if isdirectory(a:dir) + return s:system(s:is_win + \ ? 'rmdir /S /Q '.plug#shellescape(a:dir) + \ : ['rm', '-rf', a:dir]) + endif +endfunction + +function! s:clean(force) + call s:prepare() + call append(0, 'Searching for invalid plugins in '.g:plug_home) + call append(1, '') + + " List of valid directories + let dirs = [] + let errs = {} + let [cnt, total] = [0, len(g:plugs)] + for [name, spec] in items(g:plugs) + if !s:is_managed(name) || get(spec, 'frozen', 0) + call add(dirs, spec.dir) + else + let [err, clean] = s:git_validate(spec, 1) + if clean + let errs[spec.dir] = s:lines(err)[0] + else + call add(dirs, spec.dir) + endif + endif + let cnt += 1 + call s:progress_bar(2, repeat('=', cnt), total) + normal! 2G + redraw + endfor + + let allowed = {} + for dir in dirs + let allowed[s:dirpath(s:plug_fnamemodify(dir, ':h:h'))] = 1 + let allowed[dir] = 1 + for child in s:glob_dir(dir) + let allowed[child] = 1 + endfor + endfor + + let todo = [] + let found = sort(s:glob_dir(g:plug_home)) + while !empty(found) + let f = remove(found, 0) + if !has_key(allowed, f) && isdirectory(f) + call add(todo, f) + call append(line('$'), '- ' . f) + if has_key(errs, f) + call append(line('$'), ' ' . errs[f]) + endif + let found = filter(found, 'stridx(v:val, f) != 0') + end + endwhile + + 4 + redraw + if empty(todo) + call append(line('$'), 'Already clean.') + else + let s:clean_count = 0 + call append(3, ['Directories to delete:', '']) + redraw! + if a:force || s:ask_no_interrupt('Delete all directories?') + call s:delete([6, line('$')], 1) + else + call setline(4, 'Cancelled.') + nnoremap d :set opfunc=delete_opg@ + nmap dd d_ + xnoremap d :call delete_op(visualmode(), 1) + echo 'Delete the lines (d{motion}) to delete the corresponding directories' + endif + endif + 4 + setlocal nomodifiable +endfunction + +function! s:delete_op(type, ...) + call s:delete(a:0 ? [line("'<"), line("'>")] : [line("'["), line("']")], 0) +endfunction + +function! s:delete(range, force) + let [l1, l2] = a:range + let force = a:force + let err_count = 0 + while l1 <= l2 + let line = getline(l1) + if line =~ '^- ' && isdirectory(line[2:]) + execute l1 + redraw! + let answer = force ? 1 : s:ask('Delete '.line[2:].'?', 1) + let force = force || answer > 1 + if answer + let err = s:rm_rf(line[2:]) + setlocal modifiable + if empty(err) + call setline(l1, '~'.line[1:]) + let s:clean_count += 1 + else + delete _ + call append(l1 - 1, s:format_message('x', line[1:], err)) + let l2 += len(s:lines(err)) + let err_count += 1 + endif + let msg = printf('Removed %d directories.', s:clean_count) + if err_count > 0 + let msg .= printf(' Failed to remove %d directories.', err_count) + endif + call setline(4, msg) + setlocal nomodifiable + endif + endif + let l1 += 1 + endwhile +endfunction + +function! s:upgrade() + echo 'Downloading the latest version of vim-plug' + redraw + let tmp = s:plug_tempname() + let new = tmp . '/plug.vim' + + try + let out = s:system(['git', 'clone', '--depth', '1', s:plug_src, tmp]) + if v:shell_error + return s:err('Error upgrading vim-plug: '. out) + endif + + if readfile(s:me) ==# readfile(new) + echo 'vim-plug is already up-to-date' + return 0 + else + call rename(s:me, s:me . '.old') + call rename(new, s:me) + unlet g:loaded_plug + echo 'vim-plug has been upgraded' + return 1 + endif + finally + silent! call s:rm_rf(tmp) + endtry +endfunction + +function! s:upgrade_specs() + for spec in values(g:plugs) + let spec.frozen = get(spec, 'frozen', 0) + endfor +endfunction + +function! s:status() + call s:prepare() + call append(0, 'Checking plugins') + call append(1, '') + + let ecnt = 0 + let unloaded = 0 + let [cnt, total] = [0, len(g:plugs)] + for [name, spec] in items(g:plugs) + let is_dir = isdirectory(spec.dir) + if has_key(spec, 'uri') + if is_dir + let [err, _] = s:git_validate(spec, 1) + let [valid, msg] = [empty(err), empty(err) ? 'OK' : err] + else + let [valid, msg] = [0, 'Not found. Try PlugInstall.'] + endif + else + if is_dir + let [valid, msg] = [1, 'OK'] + else + let [valid, msg] = [0, 'Not found.'] + endif + endif + let cnt += 1 + let ecnt += !valid + " `s:loaded` entry can be missing if PlugUpgraded + if is_dir && get(s:loaded, name, -1) == 0 + let unloaded = 1 + let msg .= ' (not loaded)' + endif + call s:progress_bar(2, repeat('=', cnt), total) + call append(3, s:format_message(valid ? '-' : 'x', name, msg)) + normal! 2G + redraw + endfor + call setline(1, 'Finished. '.ecnt.' error(s).') + normal! gg + setlocal nomodifiable + if unloaded + echo "Press 'L' on each line to load plugin, or 'U' to update" + nnoremap L :call status_load(line('.')) + xnoremap L :call status_load(line('.')) + end +endfunction + +function! s:extract_name(str, prefix, suffix) + return matchstr(a:str, '^'.a:prefix.' \zs[^:]\+\ze:.*'.a:suffix.'$') +endfunction + +function! s:status_load(lnum) + let line = getline(a:lnum) + let name = s:extract_name(line, '-', '(not loaded)') + if !empty(name) + call plug#load(name) + setlocal modifiable + call setline(a:lnum, substitute(line, ' (not loaded)$', '', '')) + setlocal nomodifiable + endif +endfunction + +function! s:status_update() range + let lines = getline(a:firstline, a:lastline) + let names = filter(map(lines, 's:extract_name(v:val, "[x-]", "")'), '!empty(v:val)') + if !empty(names) + echo + execute 'PlugUpdate' join(names) + endif +endfunction + +function! s:is_preview_window_open() + silent! wincmd P + if &previewwindow + wincmd p + return 1 + endif +endfunction + +function! s:find_name(lnum) + for lnum in reverse(range(1, a:lnum)) + let line = getline(lnum) + if empty(line) + return '' + endif + let name = s:extract_name(line, '-', '') + if !empty(name) + return name + endif + endfor + return '' +endfunction + +function! s:preview_commit() + if b:plug_preview < 0 + let b:plug_preview = !s:is_preview_window_open() + endif + + let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}') + if empty(sha) + let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$') + if empty(name) + return + endif + let title = 'HEAD@{1}..' + let command = 'git diff --no-color HEAD@{1}' + else + let title = sha + let command = 'git show --no-color --pretty=medium '.sha + let name = s:find_name(line('.')) + endif + + if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir) + return + endif + + if !s:is_preview_window_open() + execute get(g:, 'plug_pwindow', 'vertical rightbelow new') + execute 'e' title + else + execute 'pedit' title + wincmd P + endif + setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable + let batchfile = '' + try + let [sh, shellcmdflag, shrd] = s:chsh(1) + let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command + if s:is_win + let [batchfile, cmd] = s:batchfile(cmd) + endif + execute 'silent %!' cmd + finally + let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] + if s:is_win && filereadable(batchfile) + call delete(batchfile) + endif + endtry + setlocal nomodifiable + nnoremap q :q + wincmd p +endfunction + +function! s:section(flags) + call search('\(^[x-] \)\@<=[^:]\+:', a:flags) +endfunction + +function! s:format_git_log(line) + let indent = ' ' + let tokens = split(a:line, nr2char(1)) + if len(tokens) != 5 + return indent.substitute(a:line, '\s*$', '', '') + endif + let [graph, sha, refs, subject, date] = tokens + let tag = matchstr(refs, 'tag: [^,)]\+') + let tag = empty(tag) ? ' ' : ' ('.tag.') ' + return printf('%s%s%s%s%s (%s)', indent, graph, sha, tag, subject, date) +endfunction + +function! s:append_ul(lnum, text) + call append(a:lnum, ['', a:text, repeat('-', len(a:text))]) +endfunction + +function! s:diff() + call s:prepare() + call append(0, ['Collecting changes ...', '']) + let cnts = [0, 0] + let bar = '' + let total = filter(copy(g:plugs), 's:is_managed(v:key) && isdirectory(v:val.dir)') + call s:progress_bar(2, bar, len(total)) + for origin in [1, 0] + let plugs = reverse(sort(items(filter(copy(total), (origin ? '' : '!').'(has_key(v:val, "commit") || has_key(v:val, "tag"))')))) + if empty(plugs) + continue + endif + call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:') + for [k, v] in plugs + let branch = s:git_origin_branch(v) + if len(branch) + let range = origin ? '..origin/'.branch : 'HEAD@{1}..' + let cmd = ['git', 'log', '--graph', '--color=never'] + if s:git_version_requirement(2, 10, 0) + call add(cmd, '--no-show-signature') + endif + call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range]) + if has_key(v, 'rtp') + call extend(cmd, ['--', v.rtp]) + endif + let diff = s:system_chomp(cmd, v.dir) + if !empty(diff) + let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : '' + call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)'))) + let cnts[origin] += 1 + endif + endif + let bar .= '=' + call s:progress_bar(2, bar, len(total)) + normal! 2G + redraw + endfor + if !cnts[origin] + call append(5, ['', 'N/A']) + endif + endfor + call setline(1, printf('%d plugin(s) updated.', cnts[0]) + \ . (cnts[1] ? printf(' %d plugin(s) have pending updates.', cnts[1]) : '')) + + if cnts[0] || cnts[1] + nnoremap (plug-preview) :silent! call preview_commit() + if empty(maparg("\", 'n')) + nmap (plug-preview) + endif + if empty(maparg('o', 'n')) + nmap o (plug-preview) + endif + endif + if cnts[0] + nnoremap X :call revert() + echo "Press 'X' on each block to revert the update" + endif + normal! gg + setlocal nomodifiable +endfunction + +function! s:revert() + if search('^Pending updates', 'bnW') + return + endif + + let name = s:find_name(line('.')) + if empty(name) || !has_key(g:plugs, name) || + \ input(printf('Revert the update of %s? (y/N) ', name)) !~? '^y' + return + endif + + call s:system('git reset --hard HEAD@{1} && git checkout '.plug#shellescape(g:plugs[name].branch).' --', g:plugs[name].dir) + setlocal modifiable + normal! "_dap + setlocal nomodifiable + echo 'Reverted' +endfunction + +function! s:snapshot(force, ...) abort + call s:prepare() + setf vim + call append(0, ['" Generated by vim-plug', + \ '" '.strftime("%c"), + \ '" :source this file in vim to restore the snapshot', + \ '" or execute: vim -S snapshot.vim', + \ '', '', 'PlugUpdate!']) + 1 + let anchor = line('$') - 3 + let names = sort(keys(filter(copy(g:plugs), + \'has_key(v:val, "uri") && isdirectory(v:val.dir)'))) + for name in reverse(names) + let sha = has_key(g:plugs[name], 'commit') ? g:plugs[name].commit : s:git_revision(g:plugs[name].dir) + if !empty(sha) + call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha)) + redraw + endif + endfor + + if a:0 > 0 + let fn = s:plug_expand(a:1) + if filereadable(fn) && !(a:force || s:ask(a:1.' already exists. Overwrite?')) + return + endif + call writefile(getline(1, '$'), fn) + echo 'Saved as '.a:1 + silent execute 'e' s:esc(fn) + setf vim + endif +endfunction + +function! s:split_rtp() + return split(&rtp, '\\\@ no space +ysiw[ => space +``` + +## add surround on line +```shell +yss] +``` + +## visual block surround + +```shell +select and S] + + +:help text-objects + +da” – D elete A round double quotes +di] – D elete I nside square brackets +ci{ – C hange I nside curly braces +dap – D elete A round P aragraph +vaw – V isually select A round W ord +``` + +# Fold + +```shell +zf close fold under cursor +zo open fold +zR open all folds +zM close all open folds +za toggles the fold at the cursor +``` + +# Vim diff mode + +```shell +:windo diffthis +:windo diffoff +``` diff --git a/neovim/init.vim b/neovim/init.vim new file mode 100644 index 0000000..bac2ab9 --- /dev/null +++ b/neovim/init.vim @@ -0,0 +1,316 @@ +" +" Plugins Install +" + +" PlugInstall [name ...] [#threads] Install plugins +" PlugUpdate [name ...] [#threads] Install or update plugins +" PlugClean[!] Remove unused directories (bang version will clean without prompt) +" PlugUpgrade Upgrade vim-plug itself +" PlugStatus Check the status of plugins +" PlugDiff Examine changes from the previous update and the pending changes +" PlugSnapshot[!] [output path] Generate script for restoring the current snapshot of the plugins + +if filereadable($HOME . '/.pyenv/versions/nvim/bin/python') + let g:nvim_python_path = $HOME . '/.pyenv/versions/nvim/bin' + let g:python3_host_prog = g:nvim_python_path . '/python' + let $PATH = g:nvim_python_path . ':' . $PATH +endif + +let g:node_host_prog = $HOME . '/.local/bin/npm' + +if !has('python3') + echohl WarningMsg + echo 'Missing python3 support - need to pip install pynvim' + echohl None +endif + +let g:plug_root = $HOME . '/.config/nvim/.plug' + +call plug#begin(g:plug_root) + +" completion / linter + +Plug 'williamboman/mason.nvim' +Plug 'williamboman/mason-lspconfig.nvim' +Plug 'neovim/nvim-lspconfig' +Plug 'onsails/lspkind-nvim' +Plug 'ojroques/nvim-lspfuzzy' +Plug 'ray-x/lsp_signature.nvim' +Plug 'hrsh7th/nvim-cmp' +Plug 'hrsh7th/cmp-buffer' +Plug 'hrsh7th/cmp-nvim-lsp' +Plug 'hrsh7th/cmp-path' +Plug 'hrsh7th/cmp-nvim-lua' +Plug 'ray-x/cmp-treesitter' +Plug 'saadparwaiz1/cmp_luasnip' +Plug 'L3MON4D3/LuaSnip', {'do': 'make install_jsregexp'} +Plug 'rafamadriz/friendly-snippets' +Plug 'folke/trouble.nvim' + +" Utils + +if executable('gcc') + Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} +endif + +Plug 'mhinz/vim-startify' +Plug 'nvim-tree/nvim-web-devicons' +" weird color bar appear on next commit +" Plug 'nvim-tree/nvim-tree.lua', {'commit': 'f24afa2cef551122b8bd53bb2e4a7df42343ce2e'} +Plug 'nvim-tree/nvim-tree.lua' +Plug 'junegunn/fzf' +Plug 'junegunn/fzf.vim' +Plug 'chengzeyi/fzf-preview.vim' +Plug 'itchyny/lightline.vim' +Plug 'josa42/nvim-lightline-lsp' +Plug 'Yggdroot/indentLine' +Plug 'Raimondi/delimitMate' +Plug 'tpope/vim-sensible' +Plug 'tpope/vim-commentary' +Plug 'tpope/vim-surround' +Plug 'tpope/vim-eunuch' +Plug 'psliwka/vim-smoothie' +Plug 'troydm/zoomwintab.vim' +" breaking change - does not detect root pattern with priority +Plug 'airblade/vim-rooter', {'commit': 'd64f3e04df9914e784508019a1a1f291cbb40bd4'} +Plug 'akinsho/toggleterm.nvim' + +" Language Specific + +" python syntax hilight +" Plug 'wookayin/semshi', {'do': ':UpdateRemotePlugins'} +" nvim-go + deps +Plug 'ray-x/go.nvim', {'for': 'go'} +Plug 'ray-x/guihua.lua', {'for': 'go'} +" puppet +Plug 'rodjek/vim-puppet', {'for': 'puppet'} +" annotations (require nvim-treesitter) +Plug 'danymat/neogen' + +" ctags / cscope +if executable('ctags') + Plug 'dhananjaylatkar/cscope_maps.nvim' + Plug 'ludovicchabant/vim-gutentags', { + \ 'do': 'cd ' . g:plug_root . '/vim-gutentags; patch -p1 -stNr /dev/null < ~/.config/nvim/plugin_patch/vim-gutentags.patch; git commit -am local; true' + \} +endif + +Plug 'stevearc/aerial.nvim' + +" git +Plug 'mhinz/vim-signify' +Plug 'rhysd/git-messenger.vim' +Plug 'jcosmao/blame.nvim' +Plug 'sindrets/diffview.nvim' + +" Colorscheme +Plug 'sainnhe/gruvbox-material' +Plug 'norcalli/nvim-colorizer.lua' + +call plug#end() + +" +" Common +" + +set nocompatible +filetype off +filetype plugin indent on +syntax off +set mouse= +set ttyfast " Indicate fast terminal conn for faster redraw +set lazyredraw " Wait to redraw +set magic +set ruler " affiche la position du curseur en bas droite +set showmode " affiche le mode (insert ou autre) +set showcmd " Show current command. +set laststatus=2 +set number +set cursorline +set cmdheight=2 +set signcolumn=auto +set encoding=utf-8 +set fileencoding=utf-8 +set termencoding=utf-8 +set backspace=indent,eol,start " activation de la touche backspace +set ai " autoindentation active +set sm " syntax match: soulignement d'une parenth e associ ,... +set hlsearch " colorisation de la recherche +set ignorecase +set ts=4 " taille des tabulations +set sw=4 " taille des indentations +set tw=0 " textwidth: largeur du texte (commentaires) 0=pas de limite +set expandtab " converti les tab en espaces +set directory=/tmp +set wildmode=full " vim bar autocomplete +set wildmenu +set smartindent +set autoread " Set vim to update autmatically when a file's read-only state is changed +set undodir=~/.cache/vim/undodir +set undofile " Persistent undo +set undolevels=10000 " maximum number of changes that can be undone +set undoreload=100000 " maximum number lines to save for undo on a buffer reload +set history=1000 " remember more commands and search history +set nobackup " no backup or swap file, live dangerously +set noswapfile " swap files give annoying warning +set clipboard^=unnamedplus " send yank to system clipboard +set updatetime=100 +set hidden " Allow modified hidden buffers +set autowriteall +set noautochdir +set keymodel=startsel " shift+arrow selection +set diffopt+=vertical " start :diffsplit in vertical mode +set conceallevel=0 " Do not interpret markdown for ex + +" Autocompletion +set shortmess+=c +set pumheight=20 + +set termguicolors +if !empty("$THEME") + exec 'set background='.$THEME +else + set background=light +endif + +let mapleader = " " " Leader key set to + +" Load lua plugins config +if ! &readonly && has('python3') + lua require('config') +endif + +" +" Commands mapping +" + +" Remap some common typos +command! -bang E e +command! -bang Q q +command! -bang W w +command! -bang QA qa +command! -bang Qa qa +command! -bang Wa wa +command! -bang WA wa +command! -bang Wq wq +command! -bang WQ wq + +" Mapping +map ? :exec printf('view %s/help.md', fnamemodify(expand($MYVIMRC), ':p:h')) +map V :tabedit $MYVIMRC +map VV :source $MYVIMRC \| :echo $MYVIMRC 'reloaded' +map :call custom#lineInfosToggle() +map :NvimTreeFindFileToggle! +map :AerialToggle +map :IndentLinesToggle +map :set number! +map :SignifyToggle +map :set paste! +map :BackgroundToggle +map :Startify +map :call custom#ToggleMouse() +map q empty(filter(getwininfo(), 'v:val.quickfix')) ? ":copen" : ":cclose" +map a :execute 'RgWithFilePath' expand('') +map A :execute 'Rg' expand('') +map s :RgWithFilePath +map S :Rg +map f :Files +map d :Neogen +map b :Buffers +map t :FZFCtags +map c :BCommits +map h :History +map g :execute 'ToggleBlame virtual' +map G :GitMessenger +map m :Snippets +map ^ +imap ^ +map $ +imap $ +map e +map b +map + :vsplit +map = :split +map :wincmd k +map :wincmd j +map :wincmd l +map :wincmd h +map :wincmd k +map :wincmd j +map :wincmd l +map :wincmd h +map :noh +map o +map k :TroubleToggle document_diagnostics +map l :TroubleToggle workspace_diagnostics +" paste last yank (not from dd) +map p "0p +" vim surround +map " ysiW" +map : ysiw" +map ' ysiW' +map ; ysiw' + +nnoremap call smoothie#do("\") +vnoremap call smoothie#do("\") +nnoremap call smoothie#do("\") +vnoremap call smoothie#do("\") + +" Always forward with n / backward with N +noremap n (v:searchforward ? 'n' : 'N') +noremap N (v:searchforward ? 'N' : 'n') + +" Tab +lua << EOF + +local opts = { noremap = true, silent = true } +vim.keymap.set({'n', 'i'}, '', ':tabprevious', opts) +vim.keymap.set({'n', 'i'}, '', ':tabprevious', opts) +vim.keymap.set({'n', 'i'}, '', ':tabnext', opts) +vim.keymap.set({'n', 'i'}, '', ':tabnext', opts) +vim.keymap.set({'n', 'i'}, '', ':tabnew', opts) + +EOF + +for i in range(1, 9) + execute "map " . i . " " . i . "gt" +endfor +map 0 :tablast + +nmap > (signify-next-hunk) +nmap < (signify-prev-hunk) + +map :ToggleTerm dir=%:p:h + +" Specific filetype +autocmd BufNewFile,BufRead *.lib set filetype=sh +autocmd BufNewFile,BufRead *.source set filetype=sh +autocmd BufNewFile,BufRead *.pp set filetype=puppet +autocmd BufNewFile,BufRead *.inc set filetype=perl +autocmd BufNewFile,BufRead *.tf set filetype=terraform +autocmd BufNewFile,BufRead *.conf set filetype=ini + +autocmd WinEnter,BufWinEnter,FileWritePost,BufWritePost,BufRead * call custom#displayFilePath() + +" remove autoindent on colon : +autocmd FileType python,yaml setlocal indentkeys-=<:> +autocmd FileType python,yaml setlocal indentkeys-=: +autocmd FileType html,javascript,terraform set shiftwidth=2 + +augroup gomapping + autocmd! + autocmd FileType go nnoremap :GoCodeLenAct + autocmd FileType go nnoremap = :GoIfErr +augroup end + +augroup indentlinesdisable + autocmd! + autocmd TermOpen * execute 'IndentLinesDisable' + autocmd FileType markdown,json,yaml,join(g:custom_special_filtetypes, ",") execute 'IndentLinesDisable' +augroup end + +" trim whitespace +autocmd BufWritePre * :%s/\s\+$//e +" save without trim +imap :noautocmd w +map :noautocmd w diff --git a/neovim/lua/config/aerial.lua b/neovim/lua/config/aerial.lua new file mode 100644 index 0000000..bc9c8cc --- /dev/null +++ b/neovim/lua/config/aerial.lua @@ -0,0 +1,354 @@ +-- Call the setup function to change the default behavior +require("aerial").setup({ + -- Priority list of preferred backends for aerial. + -- This can be a filetype map (see :help aerial-filetype-map) + backends = { "treesitter", "lsp", "markdown", "man" }, + + layout = { + -- These control the width of the aerial window. + -- They can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) + -- min_width and max_width can be a list of mixed types. + -- max_width = {40, 0.2} means "the lesser of 40 columns or 20% of total" + max_width = { 50, 0.2 }, + width = nil, + min_width = 30, + + -- key-value pairs of window-local options for aerial window (e.g. winhl) + win_opts = {}, + + -- Determines the default direction to open the aerial window. The 'prefer' + -- options will open the window in the other direction *if* there is a + -- different buffer in the way of the preferred direction + -- Enum: prefer_right, prefer_left, right, left, float + default_direction = "right", + + -- Determines where the aerial window will be opened + -- edge - open aerial at the far right/left of the editor + -- window - open aerial to the right/left of the current window + placement = "window", + + -- When the symbols change, resize the aerial window (within min/max constraints) to fit + resize_to_content = true, + + -- Preserve window size equality with (:help CTRL-W_=) + preserve_equality = false, + }, + + -- Determines how the aerial window decides which buffer to display symbols for + -- window - aerial window will display symbols for the buffer in the window from which it was opened + -- global - aerial window will display symbols for the current window + attach_mode = "window", + + -- List of enum values that configure when to auto-close the aerial window + -- unfocus - close aerial when you leave the original source window + -- switch_buffer - close aerial when you change buffers in the source window + -- unsupported - close aerial when attaching to a buffer that has no symbol source + close_automatic_events = {"unsupported"}, + + -- Keymaps in aerial window. Can be any value that `vim.keymap.set` accepts OR a table of keymap + -- options with a `callback` (e.g. { callback = function() ... end, desc = "", nowait = true }) + -- Additionally, if it is a string that matches "actions.", + -- it will use the mapping at require("aerial.actions"). + -- Set to `false` to remove a keymap + keymaps = { + ["?"] = "actions.show_help", + ["g?"] = "actions.show_help", + [""] = "actions.jump", + ["<2-LeftMouse>"] = "actions.jump", + [""] = "actions.jump_vsplit", + [""] = "actions.jump_split", + ["p"] = "actions.scroll", + [""] = "actions.down_and_scroll", + [""] = "actions.up_and_scroll", + ["{"] = "actions.prev", + ["}"] = "actions.next", + ["[["] = "actions.prev_up", + ["]]"] = "actions.next_up", + ["q"] = "actions.close", + ["o"] = "actions.tree_toggle", + ["za"] = "actions.tree_toggle", + ["O"] = "actions.tree_toggle_recursive", + ["zA"] = "actions.tree_toggle_recursive", + ["l"] = "actions.tree_open", + ["zo"] = "actions.tree_open", + ["L"] = "actions.tree_open_recursive", + ["zO"] = "actions.tree_open_recursive", + ["h"] = "actions.tree_close", + ["zc"] = "actions.tree_close", + ["H"] = "actions.tree_close_recursive", + ["zC"] = "actions.tree_close_recursive", + ["zr"] = "actions.tree_increase_fold_level", + ["zR"] = "actions.tree_open_all", + ["zm"] = "actions.tree_decrease_fold_level", + ["zM"] = "actions.tree_close_all", + ["zx"] = "actions.tree_sync_folds", + ["zX"] = "actions.tree_sync_folds", + }, + + -- When true, don't load aerial until a command or function is called + -- Defaults to true, unless `on_attach` is provided, then it defaults to false + lazy_load = false, + + -- Disable aerial on files with this many lines + disable_max_lines = 10000, + + -- Disable aerial on files this size or larger (in bytes) + disable_max_size = 2000000, -- Default 2MB + + -- A list of all symbols to display. Set to false to display all symbols. + -- This can be a filetype map (see :help aerial-filetype-map) + -- To see all available values, see :help SymbolKind + filter_kind = { + "Class", + "Constructor", + "Enum", + "Function", + "Interface", + "Module", + "Method", + "Struct", + }, + + -- Determines line highlighting mode when multiple splits are visible. + -- split_width Each open window will have its cursor location marked in the + -- aerial buffer. Each line will only be partially highlighted + -- to indicate which window is at that location. + -- full_width Each open window will have its cursor location marked as a + -- full-width highlight in the aerial buffer. + -- last Only the most-recently focused window will have its location + -- marked in the aerial buffer. + -- none Do not show the cursor locations in the aerial window. + highlight_mode = "split_width", + + -- Highlight the closest symbol if the cursor is not exactly on one. + highlight_closest = true, + + -- Highlight the symbol in the source buffer when cursor is in the aerial win + highlight_on_hover = false, + + -- When jumping to a symbol, highlight the line for this many ms. + -- Set to false to disable + highlight_on_jump = 300, + + -- Jump to symbol in source window when the cursor moves + autojump = false, + + -- Define symbol icons. You can also specify "Collapsed" to change the + -- icon when the tree is collapsed at that symbol, or "Collapsed" to specify a + -- default collapsed icon. The default icon set is determined by the + -- "nerd_font" option below. + -- If you have lspkind-nvim installed, it will be the default icon set. + -- This can be a filetype map (see :help aerial-filetype-map) + icons = {}, + + -- Control which windows and buffers aerial should ignore. + -- Aerial will not open when these are focused, and existing aerial windows will not be updated + ignore = { + -- Ignore unlisted buffers. See :help buflisted + unlisted_buffers = false, + + -- List of filetypes to ignore. + filetypes = {}, + + -- Ignored buftypes. + -- Can be one of the following: + -- false or nil - No buftypes are ignored. + -- "special" - All buffers other than normal, help and man page buffers are ignored. + -- table - A list of buftypes to ignore. See :help buftype for the + -- possible values. + -- function - A function that returns true if the buffer should be + -- ignored or false if it should not be ignored. + -- Takes two arguments, `bufnr` and `buftype`. + buftypes = "special", + + -- Ignored wintypes. + -- Can be one of the following: + -- false or nil - No wintypes are ignored. + -- "special" - All windows other than normal windows are ignored. + -- table - A list of wintypes to ignore. See :help win_gettype() for the + -- possible values. + -- function - A function that returns true if the window should be + -- ignored or false if it should not be ignored. + -- Takes two arguments, `winid` and `wintype`. + wintypes = "special", + }, + + -- Use symbol tree for folding. Set to true or false to enable/disable + -- Set to "auto" to manage folds if your previous foldmethod was 'manual' + -- This can be a filetype map (see :help aerial-filetype-map) + manage_folds = false, + + -- When you fold code with za, zo, or zc, update the aerial tree as well. + -- Only works when manage_folds = true + link_folds_to_tree = false, + + -- Fold code when you open/collapse symbols in the tree. + -- Only works when manage_folds = true + link_tree_to_folds = true, + + -- Set default symbol icons to use patched font icons (see https://www.nerdfonts.com/) + -- "auto" will set it to true if nvim-web-devicons or lspkind-nvim is installed. + nerd_font = "auto", + + -- Call this function when aerial attaches to a buffer. + on_attach = function(bufnr) end, + + -- Call this function when aerial first sets symbols on a buffer. + on_first_symbols = function(bufnr) end, + + -- Automatically open aerial when entering supported buffers. + -- This can be a function (see :help aerial-open-automatic) + open_automatic = false, + + -- Run this command after jumping to a symbol (false will disable) + post_jump_cmd = "normal! zz", + + -- Invoked after each symbol is parsed, can be used to modify the parsed item, + -- or to filter it by returning false. + -- + -- bufnr: a neovim buffer number + -- item: of type aerial.Symbol + -- ctx: a record containing the following fields: + -- * backend_name: treesitter, lsp, man... + -- * lang: info about the language + -- * symbols?: specific to the lsp backend + -- * symbol?: specific to the lsp backend + -- * syntax_tree?: specific to the treesitter backend + -- * match?: specific to the treesitter backend, TS query match + post_parse_symbol = function(bufnr, item, ctx) + return true + end, + + -- Invoked after all symbols have been parsed and post-processed, + -- allows to modify the symbol structure before final display + -- + -- bufnr: a neovim buffer number + -- items: a collection of aerial.Symbol items, organized in a tree, + -- with 'parent' and 'children' fields + -- ctx: a record containing the following fields: + -- * backend_name: treesitter, lsp, man... + -- * lang: info about the language + -- * symbols?: specific to the lsp backend + -- * syntax_tree?: specific to the treesitter backend + post_add_all_symbols = function(bufnr, items, ctx) + return items + end, + + -- When true, aerial will automatically close after jumping to a symbol + close_on_select = false, + + -- The autocmds that trigger symbols update (not used for LSP backend) + update_events = "TextChanged,InsertLeave", + + -- Show box drawing characters for the tree hierarchy + show_guides = false, + + -- Customize the characters used when show_guides = true + guides = { + -- When the child item has a sibling below it + mid_item = "├─", + -- When the child item is the last in the list + last_item = "└─", + -- When there are nested child guides to the right + nested_top = "│ ", + -- Raw indentation + whitespace = " ", + }, + + -- Set this function to override the highlight groups for certain symbols + get_highlight = function(symbol, is_icon, is_collapsed) + -- return "MyHighlight" .. symbol.kind + end, + + -- Options for opening aerial in a floating win + float = { + -- Controls border appearance. Passed to nvim_open_win + border = "rounded", + + -- Determines location of floating window + -- cursor - Opens float on top of the cursor + -- editor - Opens float centered in the editor + -- win - Opens float centered in the window + relative = "cursor", + + -- These control the height of the floating window. + -- They can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) + -- min_height and max_height can be a list of mixed types. + -- min_height = {8, 0.1} means "the greater of 8 rows or 10% of total" + max_height = 0.9, + height = nil, + min_height = { 8, 0.1 }, + + override = function(conf, source_winid) + -- This is the config that will be passed to nvim_open_win. + -- Change values here to customize the layout + return conf + end, + }, + + -- Options for the floating nav windows + nav = { + border = "rounded", + max_height = 0.9, + min_height = { 10, 0.1 }, + max_width = 0.5, + min_width = { 0.2, 20 }, + win_opts = { + cursorline = true, + winblend = 10, + }, + -- Jump to symbol in source window when the cursor moves + autojump = false, + -- Show a preview of the code in the right column, when there are no child symbols + preview = false, + -- Keymaps in the nav window + keymaps = { + [""] = "actions.jump", + ["<2-LeftMouse>"] = "actions.jump", + [""] = "actions.jump_vsplit", + [""] = "actions.jump_split", + ["h"] = "actions.left", + ["l"] = "actions.right", + ["q"] = "actions.close", + }, + }, + + lsp = { + -- Fetch document symbols when LSP diagnostics update. + -- If false, will update on buffer changes. + diagnostics_trigger_update = true, + + -- Set to false to not update the symbols when there are LSP errors + update_when_errors = true, + + -- How long to wait (in ms) after a buffer change before updating + -- Only used when diagnostics_trigger_update = false + update_delay = 300, + + -- Map of LSP client name to priority. Default value is 10. + -- Clients with higher (larger) priority will be used before those with lower priority. + -- Set to -1 to never use the client. + priority = { + -- pyright = 10, + }, + }, + + treesitter = { + -- How long to wait (in ms) after a buffer change before updating + update_delay = 300, + -- Experimental feature to navigate to symbol names instead of the declaration + -- See https://github.com/stevearc/aerial.nvim/issues/279 + -- If no bugs are reported for a time this will become the default + experimental_selection_range = false, + }, + + markdown = { + -- How long to wait (in ms) after a buffer change before updating + update_delay = 300, + }, + + man = { + -- How long to wait (in ms) after a buffer change before updating + update_delay = 300, + }, +}) diff --git a/neovim/lua/config/autocmd.lua b/neovim/lua/config/autocmd.lua new file mode 100644 index 0000000..38a5e49 --- /dev/null +++ b/neovim/lua/config/autocmd.lua @@ -0,0 +1,48 @@ +local vim = vim + +vim.api.nvim_create_augroup('bufcheck', {clear = true}) + +-- Always quit nvimtree window when leaving tab by switching to previous file. +vim.api.nvim_create_autocmd('TabLeave', { + group = 'bufcheck', + pattern = 'NvimTree*', + command = 'wincmd p'}) + +-- start git messages in insert mode +vim.api.nvim_create_autocmd('FileType', { + group = 'bufcheck', + pattern = { 'gitcommit', 'gitrebase', }, + command = 'startinsert | 1'}) + +-- pager mappings for Manual +vim.api.nvim_create_autocmd('FileType', { + group = 'bufcheck', + pattern = 'man', + callback = function() + vim.keymap.set('n', '' , 'K' , {buffer=true}) + vim.keymap.set('n', '', '', {buffer=true}) + end +}) + +-- Return to last edit position when opening files +vim.api.nvim_create_autocmd('BufReadPost', { + group = 'bufcheck', + pattern = '*', + callback = function() + if vim.fn.line("'\"") > 0 and vim.fn.line("'\"") <= vim.fn.line("$") then + vim.fn.setpos('.', vim.fn.getpos("'\"")) + -- vim.cmd('normal zz') -- how do I center the buffer in a sane way?? + vim.cmd('silent! foldopen') + end + end +}) + +-- Close nvimtree and aerial when diffview mode is opened +vim.api.nvim_create_autocmd("BufEnter", { + group = vim.api.nvim_create_augroup("DiffviewOpen", {clear = true}), + pattern = "Diffview*", + callback = function() + vim.cmd(":NvimTreeClose") + vim.cmd(":AerialClose") + end +}) diff --git a/neovim/lua/config/blame.lua b/neovim/lua/config/blame.lua new file mode 100644 index 0000000..106a0bf --- /dev/null +++ b/neovim/lua/config/blame.lua @@ -0,0 +1,3 @@ +require('blame').setup({ + virtual_style = "float", +}) diff --git a/neovim/lua/config/cmp.lua b/neovim/lua/config/cmp.lua new file mode 100644 index 0000000..534e1e9 --- /dev/null +++ b/neovim/lua/config/cmp.lua @@ -0,0 +1,91 @@ +local vim = vim +local cmp = require('cmp') +local lspconfig = require('lspconfig') + +cmp.setup { + completion = { + completeopt = 'menu,menuone,noinsert,noselect' + }, + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + end, + }, + window = { + -- completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + formatting = { + format = function(entry, vim_item) + -- fancy icons and a name of kind + vim_item.kind = require("lspkind").presets.default[vim_item.kind] .. + " " .. vim_item.kind + -- set a name for each source + vim_item.menu = ({ + buffer = "[Buffer]", + nvim_lsp = "[LSP]", + luasnip = "[Snip]", + nvim_lua = "[Lua]", + look = "[Look]", + path = "[Path]", + treesitter = "[treesitter]", + cmp_tabnine = "[Tab9]" + })[entry.source.name] + return vim_item + end + }, + mapping = { + [''] = cmp.mapping(cmp.mapping.select_next_item(), {'i','c'}), + [''] = cmp.mapping(cmp.mapping.select_prev_item(), {'i','c'}), + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.close(), + [''] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Insert, + select = true + }), + [''] = function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif require("luasnip").jumpable() then + vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-jump-next", true, true, true), "") + else + fallback() + end + end, + [''] = function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif require("luasnip").jumpable(-1) then + vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-jump-prev", true, true, true), "") + else + fallback() + end + end, + }, + sources = { + { name = 'nvim_lsp' }, + -- { name = 'cmp_tabnine' }, + { name = 'luasnip' }, + { name = 'path' }, + -- { name = 'treesitter' }, + { name = 'buffer' }, + }, + cmp.setup.cmdline('/', { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } + }), +} + +-- -- Setup lspconfig. +local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()) +for _, lspobj in pairs(vim.lsp.get_active_clients()) do + lspconfig[lspobj.name].setup { + capabilities = capabilities + } +end diff --git a/neovim/lua/config/cscope.lua b/neovim/lua/config/cscope.lua new file mode 100644 index 0000000..3ec65f2 --- /dev/null +++ b/neovim/lua/config/cscope.lua @@ -0,0 +1 @@ +require("cscope_maps").setup() diff --git a/neovim/lua/config/go.lua b/neovim/lua/config/go.lua new file mode 100644 index 0000000..461e5fd --- /dev/null +++ b/neovim/lua/config/go.lua @@ -0,0 +1,79 @@ +local vim = vim + +-- NOTE: all LSP and formatting related options are disabeld. +-- NOTE: LSP is handled by lsp.lua and formatting is handled by null-ls.lua +-- NOTE: via `lsp_on_attach` the custom callback used by all other LSPs is called +require("go").setup({ + go = "go", -- go command, can be go[default] or go1.18beta1 + fillstruct = "gopls", -- can be nil (use fillstruct, slower) and gopls + goimports ='gopls', -- goimports command, can be gopls[default] or either goimports or golines if need to split long lines + gofmt = 'gopls', -- gofmt through gopls: alternative is gofumpt, goimports, golines, gofmt, etc + max_line_len = 0, -- max line length in golines format, Target maximum line length for golines + tag_transform = false, -- tag_transfer check gomodifytags for details + test_template = "testify", -- default to testify if not set; g:go_nvim_tests_template check gotests for details + test_template_dir = "", -- default to nil if not set; g:go_nvim_tests_template_dir check gotests for details + comment_placeholder = "", -- comment_placeholder your cool placeholder e.g. ﳑ     + icons = { breakpoint = "🧘", currentpos = "🏃" }, + verbose = false, -- output loginf in messages + lsp_cfg = false, -- true: use non-default gopls setup specified in go/lsp.lua + -- false: do nothing + -- if lsp_cfg is a table, merge table with with non-default gopls setup in go/lsp.lua, e.g. + -- lsp_cfg = {settings={gopls={matcher='CaseInsensitive', ['local'] = 'your_local_module_path', gofumpt = true }}} + lsp_gofumpt = false, -- true: set default gofmt in gopls format to gofumpt + lsp_codelens = true, -- set to false to disable codelens, true by default + lsp_keymaps = true, -- set to false to disable gopls/lsp keymap + lsp_document_formatting = true, + -- set to true: use gopls to format + -- false if you want to use other formatter tool(e.g. efm, nulls) + lsp_inlay_hints = { + enable = true, + -- Only show inlay hints for the current line + only_current_line = false, + -- Event which triggers a refersh of the inlay hints. + -- You can make this "CursorMoved" or "CursorMoved,CursorMovedI" but + -- not that this may cause higher CPU usage. + -- This option is only respected when only_current_line and + -- autoSetHints both are true. + only_current_line_autocmd = "CursorHold", + -- whether to show variable name before type hints with the inlay hints or not + -- default: false + show_variable_name = true, + -- prefix for parameter hints + parameter_hints_prefix = " ", + show_parameter_hints = true, + -- prefix for all the other hints (type, chaining) + other_hints_prefix = "=> ", + -- whether to align to the length of the longest line in the file + max_len_align = false, + -- padding from the left if max_len_align is true + max_len_align_padding = 1, + -- whether to align to the extreme right or not + right_align = false, + -- padding from the right if right_align is true + right_align_padding = 6, + -- The color of the hints + highlight = "Comment", + }, + gopls_cmd = nil, -- if you need to specify gopls path and cmd, e.g {"/home/user/lsp/gopls", "-logfile","/var/log/gopls.log" } + gopls_remote_auto = true, -- add -remote=auto to gopls + gocoverage_sign = "█", + dap_debug = false, -- set to false to disable dap + dap_debug_keymap = false, -- true: use keymap for debugger defined in go/dap.lua + -- false: do not use keymap in go/dap.lua. you must define your own. + dap_debug_gui = true, -- set to true to enable dap gui, highly recommended + dap_debug_vt = true, -- set to true to enable dap virtual text + build_tags = "", -- set default build tags + textobjects = true, -- enable default text jobects through treesittter-text-objects + test_runner = "go", -- richgo, go test, richgo, dlv, ginkgo + run_in_floaterm = true, -- set to true to run in float window. + -- float term recommended if you use richgo/ginkgo with terminal color + floaterm = { -- position + posititon = 'bottom', -- one of {`top`, `bottom`, `left`, `right`, `center`, `auto`} + width = 1, -- width of float window if not auto + height = 0.3, -- height of float window if not auto + }, + luasnip = false, +}) + +-- Run gofmt + goimport on save +vim.api.nvim_exec([[ autocmd BufWritePre *.go :silent! lua require('go.format').goimport() ]], false) diff --git a/neovim/lua/config/init.lua b/neovim/lua/config/init.lua new file mode 100644 index 0000000..3389a9a --- /dev/null +++ b/neovim/lua/config/init.lua @@ -0,0 +1,13 @@ +require('config.cmp') +require('config.treesitter') +require('config.trouble') +require('config.go') +require('config.autocmd') +require("config.toggleterm") +require("config.nvimtree") +require("config.aerial") +require('config.luasnip') +require('config.neogen') +require('config.cscope') +require('config.blame') +require('config.lspconfig') diff --git a/neovim/lua/config/lspconfig.lua b/neovim/lua/config/lspconfig.lua new file mode 100644 index 0000000..0f2ee7c --- /dev/null +++ b/neovim/lua/config/lspconfig.lua @@ -0,0 +1,208 @@ +-- LSP Configuration & Plugins +local vim = vim +local _border = "rounded" + +require("mason").setup({ + ui = { + border = _border + } +}) + +require('lspconfig.ui.windows').default_options.border = _border + +vim.lsp.handlers["textDocument/hover"] = vim.lsp.with( + vim.lsp.handlers.hover, { + border = _border + } +) + +-- display result in FZF +require('lspfuzzy').setup {} + +local signature_config = { + log_path = vim.fn.expand("$HOME") .. "/.cache/vim_lsp_signature.log", + debug = false, + hint_enable = false, + max_width = 80, + doc_lines = 0, + bind = true, -- This is mandatory, otherwise border config won't get registered. + handler_opts = { + border = _border + }, + padding = ' ', +} + +require("lsp_signature").setup(signature_config) + + +local virtual_text_default = { + prefix = "■", + spacing = 10 + } + +vim.diagnostic.config({ + update_in_insert = true, + float = { + focusable = true, + style = "minimal", + border = _border, + source = "always", + header = "", + prefix = "", + }, + virtual_text = virtual_text_default, +}) + +-- display config +-- :lua = vim.diagnostic.config() +function lspconfig_diagnostic_virtual_text_toggle() + if not vim.diagnostic.config().virtual_text then + vim.diagnostic.config({virtual_text = virtual_text_default}) + vim.notify("diagnostic.virtual_text enabled") + else + vim.diagnostic.config({virtual_text = false}) + vim.notify("diagnostic.virtual_text disabled") + end +end + +function lspconfig_diagnostic_toggle() + if vim.diagnostic.is_disabled() then + vim.diagnostic.enable() + vim.notify("diagnostic enabled") + else + vim.diagnostic.disable() + vim.notify("diagnostic disabled") + end +end + +local signs = { + Error = " ", + Warn = " ", + Hint = " ", + Info = " " +} + +for type, icon in pairs(signs) do + local hl = "DiagnosticSign" .. type + vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl }) +end + + +local opts = { noremap = true, silent = true } +vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) +vim.keymap.set('n', ',', vim.diagnostic.goto_prev, opts) +vim.keymap.set('n', '.', vim.diagnostic.goto_next, opts) +vim.keymap.set("n", "j", function() lspconfig_diagnostic_virtual_text_toggle() end) +vim.keymap.set("n", "J", function() lspconfig_diagnostic_toggle() end) + +-- Use an on_attach function to only map the following keys +-- after the language server attaches to the current buffer +local on_attach = function(_, bufnr) + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- lsp (l) + -- See `:help vim.lsp.*` for documentation on any of the below functions + vim.keymap.set('n', '', vim.lsp.buf.definition, opts) + vim.keymap.set('n', '', vim.lsp.buf.references, opts) + vim.keymap.set('n', '?', vim.lsp.buf.hover, opts) + vim.keymap.set('n', 'r', vim.lsp.buf.rename, opts) + vim.keymap.set({'n', 'i'}, '', vim.lsp.buf.signature_help, opts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) + vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, opts) + vim.keymap.set('n', 'F', function() vim.lsp.buf.format { async = true } end, opts) + vim.keymap.set('n', 'u', vim.lsp.buf.declaration, opts) + vim.keymap.set('n', 'i', vim.lsp.buf.implementation, opts) +end + +-- nvim-cmp supports additional completion capabilities, so broadcast that to servers +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) +-- Neovim hasn't added foldingRange to default capabilities, users must add it manually, source: https://github.com/kevinhwang91/nvim-ufo +capabilities.textDocument.foldingRange = { + dynamicRegistration = false, + lineFoldingOnly = true +} + +local mason_lspconfig = require("mason-lspconfig") + +local servers = { + bashls = {}, + dockerls = {}, + eslint = {}, + efm = {}, + jsonls = { + on_new_config = function(new_config) + new_config.settings.json.schemas = new_config.settings.json.schemas or {} + vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas()) + end, + settings = { + json = { + format = { + enable = true, + }, + validate = { enable = true }, + }, + }, + }, + yamlls = {}, + -- python + pyright = {}, + pylsp = { + settings = { + -- configure plugins in pylsp + pylsp = { + plugins = { + flake8 = {enabled = true}, + mccabe = {enabled = false}, + pycodestyle = {enabled= false}, + pyflakes = {enabled = true}, + pylint = {enabled = false}, + }, + }, + }, + }, + sumneko_lua = { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT', + }, + diagnostics = { + -- Get the language server to recognize the `vim` global + globals = {'vim'}, + }, + workspace = { + -- Make the server aware of Neovim runtime files + library = vim.api.nvim_get_runtime_file("", true), + }, + -- Do not send telemetry data containing a randomized but unique identifier + telemetry = { + enable = false, + }, + }, + }, +} + +mason_lspconfig.setup { + -- ensure_installed = vim.tbl_keys(servers), + -- automatic_installation = true, +} + +local lspconfig = require("lspconfig") + +mason_lspconfig.setup_handlers { + -- This is a default handler that will be called for each installed server (also for new servers that are installed during a session) + function (server_name) + lspconfig[server_name].setup { + on_attach = on_attach, + capabilities = capabilities, + settings = servers[server_name], + } + end, +} + +-- volar for vuejs stuff +require 'lspconfig'.volar.setup { + filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'html' } +} diff --git a/neovim/lua/config/luasnip.lua b/neovim/lua/config/luasnip.lua new file mode 100644 index 0000000..9f44c74 --- /dev/null +++ b/neovim/lua/config/luasnip.lua @@ -0,0 +1,53 @@ +require("luasnip").config.set_config({ + history = true, + updateevents = "TextChanged,TextChangedI", +}) + +-- vscode format +require("luasnip.loaders.from_vscode").lazy_load() +require("luasnip.loaders.from_vscode").lazy_load { paths = vim.g.vscode_snippets_path or "" } + +-- snipmate format +require("luasnip.loaders.from_snipmate").load() +require("luasnip.loaders.from_snipmate").lazy_load { paths = vim.g.snipmate_snippets_path or "" } + +-- lua format +require("luasnip.loaders.from_lua").load() +require("luasnip.loaders.from_lua").lazy_load { paths = vim.g.lua_snippets_path or "" } + +vim.api.nvim_create_autocmd("InsertLeave", { +callback = function() + if + require("luasnip").session.current_nodes[vim.api.nvim_get_current_buf()] + and not require("luasnip").session.jump_active + then + require("luasnip").unlink_current() + end +end, +}) + +luasnip_list_available_snips = function() + local ft_list = require("luasnip").available() + local ft_snips = {} + for _, item in pairs(ft_list[vim.o.filetype]) do + table.insert(ft_snips, string.format("%-50s\t[%s]\t\t%s", item.trigger, vim.o.filetype, item.name)) + end + for _, item in pairs(ft_list["all"]) do + table.insert(ft_snips, string.format("%-50s\t[default]\t\t%s", item.trigger, item.name)) + end + return ft_snips +end + +vim.api.nvim_exec([[ + command! -bang -nargs=* Snippets + \ call fzf#run(fzf#wrap({ + \ 'source': luaeval('luasnip_list_available_snips()'), + \ 'sink': funcref('Luasnip_expand'), + \ 'options': '--ansi --prompt "LuaSnip > "' + \ })) + + function! Luasnip_expand(line) abort + let snip = split(a:line, "\t")[0] + execute 'normal! a'.trim(snip)."\luasnip-expand-or-jump" + endfunction +]], false) diff --git a/neovim/lua/config/neogen.lua b/neovim/lua/config/neogen.lua new file mode 100644 index 0000000..a9e42c6 --- /dev/null +++ b/neovim/lua/config/neogen.lua @@ -0,0 +1,11 @@ +require("neogen").setup({ + -- Enables Neogen capabilities + enabled = true, + -- Configuration for default languages + languages = {}, + -- Use a snippet engine to generate annotations. + snippet_engine = "luasnip", + -- Enables placeholders when inserting annotation + enable_placeholders = false, +}) + diff --git a/neovim/lua/config/nvimtree.lua b/neovim/lua/config/nvimtree.lua new file mode 100644 index 0000000..db33618 --- /dev/null +++ b/neovim/lua/config/nvimtree.lua @@ -0,0 +1,45 @@ +local vim = vim + +-- setup with all defaults +-- each of these are documented in `:help nvim-tree.OPTION_NAME` +-- nested options are documented by accessing them with `.` (eg: `:help nvim-tree.view.mappings.list`). + +require("nvim-tree").setup({ + sort_by = "case_sensitive", + sync_root_with_cwd = true, + reload_on_bufenter = true, + view = { + cursorline = true, + width = 42, + side = "left", + }, + renderer = { + group_empty = true, + }, + filters = { + dotfiles = false, + }, + update_focused_file = { + enable = true, + update_root = true, + ignore_list = {}, + }, + tab = { + sync = { + open = true, + close = true, + ignore = {}, + }, + }, +}) + +vim.api.nvim_create_autocmd("BufEnter", { + group = vim.api.nvim_create_augroup("NvimTreeClose", {clear = true}), + pattern = "NvimTree_*", + callback = function() + local layout = vim.api.nvim_call_function("winlayout", {}) + if layout[1] == "leaf" and vim.api.nvim_buf_get_option(vim.api.nvim_win_get_buf(layout[2]), "filetype") == "NvimTree" and layout[3] == nil then + vim.cmd("confirm quit") + end + end +}) diff --git a/neovim/lua/config/toggleterm.lua b/neovim/lua/config/toggleterm.lua new file mode 100644 index 0000000..525920b --- /dev/null +++ b/neovim/lua/config/toggleterm.lua @@ -0,0 +1,46 @@ +local vim = vim +local toggleterm = require("toggleterm") + +local shading_factor = "-25" +if vim.o.background == "light" then + shading_factor = "-3" +end + +toggleterm.setup{ + size = 20, + open_mapping = [[]], + insert_mappings = true, -- whether or not the open mapping applies in insert mode + terminal_mappings = true, + start_in_insert = true, + close_on_exit = true, -- close the terminal window when the process exits + winbar = { + enabled = false, + name_formatter = function(term) -- term: Terminal + return string.format(" Term %s ", term.id) + end, + }, + shade_terminals = true, + shading_factor = shading_factor, +} + +local toggletermGrp = vim.api.nvim_create_augroup("ToggleTermGrp", { clear = true }) + +-- timeoutlen is timeout used for leader send key, reduce it in term mode and restore it outside +vim.api.nvim_create_autocmd("FileType", { + pattern = 'toggleterm', + command = "set laststatus=0 noshowmode noruler timeoutlen=150 | autocmd BufLeave set laststatus=2 showmode ruler timeoutlen=1000", + group = toggletermGrp, +}) + +-- if you only want these mappings for toggle term use term://*toggleterm#* instead +vim.api.nvim_create_autocmd("TermOpen", { + pattern = "term://*", + group = toggletermGrp, + callback = function() + local opts = {buffer = 0} + vim.keymap.set('t', '', [[ZoomWinTabToggle ]], opts) + vim.keymap.set('t', '', [[wincmd k ]], opts) + vim.keymap.set('t', '', [[wincmd h ]], opts) + vim.keymap.set('t', '', [[wincmd l ]], opts) + end +}) diff --git a/neovim/lua/config/treesitter.lua b/neovim/lua/config/treesitter.lua new file mode 100644 index 0000000..e39d45e --- /dev/null +++ b/neovim/lua/config/treesitter.lua @@ -0,0 +1,39 @@ +local has, _ = pcall(require, 'nvim-treesitter') +if not has then + return nil +end + +vim.opt.foldmethod = "expr" +vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()" +vim.opt.foldcolumn = "0" +vim.opt.foldtext = "" +vim.opt.foldlevel = 25 +vim.opt.foldnestmax = 25 +vim.opt.foldtext = "custom#foldText()" +vim.opt.foldcolumn = "1" + +require("nvim-treesitter.install").prefer_git = false +require'nvim-treesitter.configs'.setup { + ensure_installed = {"dockerfile", "c", "python", "rust", "latex", "yaml", "perl", "markdown", "go", "make", "http", "comment", "css", "javascript", "vim", "cmake", "ruby", "json", "regex", "lua", "cpp", "html", "rst", "hcl", "gomod", "bash", "toml", "diff", "terraform", "ini"}, + -- one of "all", "maintained" (parsers with maintainers), or a list of languages + ignore_install = {}, + highlight = { + enable = true, -- false will disable the whole extension + disable = {}, -- list of language that will be disabled + -- 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, + }, + indent = { enable = true }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = '', + scope_incremental = '', + node_incremental = '', + node_decremental = '', + }, + }, +} diff --git a/neovim/lua/config/trouble.lua b/neovim/lua/config/trouble.lua new file mode 100644 index 0000000..a3a9f09 --- /dev/null +++ b/neovim/lua/config/trouble.lua @@ -0,0 +1,47 @@ +require("trouble").setup { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + position = "bottom", -- position of the list can be: bottom, top, left, right + height = 15, -- height of the trouble list when position is top or bottom + width = 50, -- width of the list when position is left or right + mode = "document_diagnostics", -- "workspace_diagnostics", "document_diagnostics", "quickfix", "lsp_references", "loclist" + severity = nil, -- nil (ALL) or vim.diagnostic.severity.ERROR | WARN | INFO | HINT + fold_open = "", -- icon used for open folds + fold_closed = "", -- icon used for closed folds + action_keys = { -- key mappings for actions in the trouble list + -- map to {} to remove a mapping, for example: + -- close = {}, + close = "q", -- close the list + cancel = "", -- cancel the preview and get back to your last window / buffer / cursor + refresh = "r", -- manually refresh + jump = {"", ""}, -- jump to the diagnostic or open / close folds + open_split = { "" }, -- open buffer in new split + open_vsplit = { "" }, -- open buffer in new vsplit + open_tab = { "" }, -- open buffer in new tab + jump_close = {"o"}, -- jump to the diagnostic and close the list + toggle_mode = "m", -- toggle between "workspace" and "document" diagnostics mode + toggle_preview = "P", -- toggle auto_preview + hover = "?", -- opens a small popup with the full multiline message + preview = "p", -- preview the diagnostic location + close_folds = {"zM", "zm"}, -- close all folds + open_folds = {"zR", "zr"}, -- open all folds + toggle_fold = {"zA", "za"}, -- toggle fold of current file + previous = "k", -- preview item + next = "j" -- next item + }, + indent_lines = true, -- add an indent guide below the fold icons + auto_open = false, -- automatically open the list when you have diagnostics + auto_close = false, -- automatically close the list when you have no diagnostics + auto_preview = true, -- automatically preview the location of the diagnostic. to close preview and go back to last window + auto_fold = false, -- automatically fold a file trouble list at creation + use_diagnostic_signs = true -- enabling this will use the signs defined in your lsp client +} + +vim.api.nvim_create_augroup('trouble', {clear = true}) + +vim.api.nvim_create_autocmd('BufEnter', { + group = 'trouble', + pattern = 'python', + command = 'TroubleRefresh' +}) diff --git a/neovim/plugin/colors.vim b/neovim/plugin/colors.vim new file mode 100644 index 0000000..2cc9c16 --- /dev/null +++ b/neovim/plugin/colors.vim @@ -0,0 +1,79 @@ +lua require'colorizer'.setup({'css'; 'javascript'; 'vim';}) + +let g:gruvbox_material_disable_italic_comment = 0 +let g:gruvbox_material_enable_bold = 1 +let g:gruvbox_material_enable_italic = 1 +let g:gruvbox_material_visual = 'grey background' +let g:gruvbox_material_menu_selection_background = 'orange' +let g:gruvbox_material_statusline_style = 'mix' +let g:gruvbox_material_better_performance = 0 + +if &background ==# "light" + " available: material / mix / original + let g:gruvbox_material_palette = 'material' + " available: soft / medium / hard + let g:gruvbox_material_background = 'hard' + let $BAT_THEME = 'gruvbox-light' + let g:gruvbox_material_colors_override = { + \ 'red': ['#b20007', '88'], + \ 'orange': ['#ce4200', '130'], + \ 'yellow': ['#c88214', '136'], + \ 'green': ['#7c9413', '100'], + \ 'aqua': ['#51986d', '165'], + \ 'blue': ['#09859c', '24'], + \ 'purple': ['#af528c', '96'], + \ 'bg5': ['#c3b685', '229'], + \ } + let s:match_paren = ['#dacc94', '229'] +else + " available: material / mix / original + let g:gruvbox_material_palette = 'material' + " available: soft / medium / hard + let g:gruvbox_material_background = 'medium' + let $BAT_THEME = 'gruvbox-dark' + let g:gruvbox_material_colors_override = {} + let s:match_paren = ['#3e6478', '232'] +endif + +" for i in [0, 1, 2, 3, 4, 5, 6, 7 ,8 ,9 , 10, 11, 12, 13, 14, 15] | exec 'let g:terminal_color_' . i | endfor +let g:color_palette = gruvbox_material#get_palette(g:gruvbox_material_background, g:gruvbox_material_palette, g:gruvbox_material_colors_override) + +let g:terminal_color_0 = g:color_palette.bg5[0] +let g:terminal_color_7 = g:color_palette.fg0[0] +let g:terminal_color_8 = g:color_palette.bg5[0] +let g:terminal_color_15 = g:color_palette.fg0[0] + +colorscheme gruvbox-material + +call gruvbox_material#highlight('MatchParen', g:color_palette.none, s:match_paren) + +" override colorscheme config +" vimdiff +hi DiffAdd guibg=#262626 guifg=#a9d1a9 gui=reverse +hi DiffDelete guibg=#262626 guifg=#e09b9b gui=reverse +hi DiffChange guibg=#262626 guifg=#b6b6d9 gui=reverse +hi DiffText guibg=#262626 guifg=#dec5d5 gui=reverse + +" Search, signature current, ... +hi Search guibg=#FF8700 gui=reverse,bold +hi CurSearch guibg=#FF8700 guifg=#f5edca gui=bold +hi IncSearch guibg=#FF8700 guifg=#f5edca gui=bold +hi Substitute guibg=#FF8700 gui=reverse,bold + +" Remove floating background color +hi ErrorFloat guibg=None +hi WarningFloat guibg=None +hi InfoFloat guibg=None +hi NormalFloat guibg=None +hi FloatBorder guifg=None guibg=None + +hi WinBarActive gui=reverse guifg=#a9b665 guibg=#141617 +hi Directory guifg=#83A598 + +" Fix missing tree-sitter binding on colorscheme (gruvbox_material) +autocmd FileType sh :highlight! link TSVariable Blue +autocmd FileType sh :highlight! link TSConstant Blue + +let s:palette = g:lightline#colorscheme#gruvbox_material#palette +let s:palette.tabline.tabsel = [ [ g:color_palette.bg0[0], g:color_palette.green[0] , 238, 10, 'bold' ] ] +unlet s:palette diff --git a/neovim/plugin/ctags_cscope.vim b/neovim/plugin/ctags_cscope.vim new file mode 100644 index 0000000..eaebed7 --- /dev/null +++ b/neovim/plugin/ctags_cscope.vim @@ -0,0 +1,168 @@ +" Gutentag / ctags/cscope +" +" create .project dir in project root dir to build tags automatically +" by default, tags will be generated for all files in this root dir +" To override files list for tags generate, add executable in .project/file_list +" that should return files list +let g:gutentags_project_root = ['.project'] +let g:gutentags_exclude_project_root = [] +let g:gutentags_exclude_filetypes = [ +\ 'no ft', 'systemd', +\ 'gitcommit', 'git', 'gitconfig', 'gitrebase', 'gitsendemail', +\ 'cfg', 'conf', 'rst', 'dosini', +\ 'sh', 'yaml', 'json', 'text', 'markdown' +\] +let g:gutentags_add_default_project_roots = 0 +let g:gutentags_generate_on_empty_buffer = 0 +let g:gutentags_resolve_symlinks = 1 +let g:gutentags_modules = ['ctags', 'cscope'] +let g:gutentags_ctags_executable = '~/.local/bin/ctags' +let g:gutentags_ctags_extra_args = ['--fields=+niaSszt --python-kinds=-vi --tag-relative=yes'] +" rg --type-list +let g:gutentags_file_list_command = '/bin/true ; .project/file_list || rg --files -tsh -tperl -tpy -tgo -tcpp -tpuppet -tjson -tyaml' +let g:gutentags_scopefile = '.cscope.gutentags' +let g:gutentags_ctags_tagfile = '.ctags.gutentags' +let g:gutentags_ctags_exclude = [ +\ '*.git', '*.svn', '*.hg', +\ 'cache', 'build', 'dist', 'bin', 'node_modules', 'bower_components', +\ '*-lock.json', '*.lock', +\ '*.min.*', +\ '*.bak', +\ '*.zip', +\ '*.pyc', +\ '*.class', +\ '*.sln', +\ '*.csproj', '*.csproj.user', +\ '*.tmp', +\ '*.cache', +\ '*.vscode', +\ '*.pdb', +\ '*.exe', '*.dll', '*.bin', +\ '*.mp3', '*.ogg', '*.flac', +\ '*.swp', '*.swo', +\ '.DS_Store', '*.plist', +\ '*.bmp', '*.gif', '*.ico', '*.jpg', '*.png', '*.svg', +\ '*.rar', '*.zip', '*.tar', '*.tar.gz', '*.tar.xz', '*.tar.bz2', +\ '*.pdf', '*.doc', '*.docx', '*.ppt', '*.pptx', '*.xls', +\] + +" debug +" let g:gutentags_trace = 1 +" let g:gutentags_debug = 1 + +function s:sink_ctags(line) + if empty(a:line) + return + endif + + let split = split(a:line[0], "\t") + execute 'e ' . '+'.split[4].' '.split[1] | execute 'call search("'.split[0].'", "", line("."))' | execute 'normal zz' +endfunction + +function s:sink_cscope(line) + if empty(a:line) + return + endif + + let l:search = expand('') + let split = split(a:line[0], " ") + execute 'e ' . '+'.split[2].' '.split[0] | execute 'call search("'.l:search.'", "", line("."))' | execute 'normal zz' +endfunction + +let s:current_file = expand('%s') +if s:current_file =~# '/tests/' + let s:filter = "'/tests/ " +else + let s:filter = "!/tests/ " +endif + +function! GotoCtags(tag, ctx_line) + let l:tag = a:tag + let l:ctx_line = a:ctx_line + + if !exists("b:gutentags_files") + echohl WarningMsg + echo 'GotoCtags(): Gutentags disabled' + echohl None + return + endif + + if &filetype == 'puppet' + " For puppet filetype, ctags are not generated with ^:: + let l:tag = trim(expand(a:tag), '^::') + endif + + " For perl, keep only sub name (package_name::function) a:ctx_line !~# '\(require\|package\|use\)' + if &filetype == 'perl' + let l:tag = substitute(expand(a:tag), '.*::\(.*\)', '\1', 'g') + endif + + " set csto=1 + execute 'FZFCtags' '^'.l:tag.'$' + echo "[GotoCtags] FZFCtags" +endfunction + +command! -bang -nargs=* FZFCtags + \ call fzf#run(fzf#wrap({ + \ 'source': 'cat '.b:gutentags_files['ctags'].' | grep -v ^!_TAG | sed -e "s,\tline:,\t,g"', + \ 'sink*': function('s:sink_ctags'), + \ 'options': ' + \ --query '.shellescape().' + \ --prompt "Ctags > " + \ -1 -0 +i + \ --exact + \ --with-nth 1,4,2 + \ --nth 1 + \ --delimiter "\t" + \ --preview-window "+{5}-15" + \ --preview "bat --color always --highlight-line {5} {2}"' + \ })) + + +function! GotoCscope(tag, ctx_line) + let l:tag = a:tag + let l:ctx_line = a:ctx_line + + if !exists("b:gutentags_files") + echohl WarningMsg + echo 'GotoCscope(): Gutentags disabled' + echohl None + return + endif + + execute 'FZFCscope' '^'.l:tag.'$' + echo "[GotoCscope] FZFCscope" +endfunction + +command! -bang -nargs=* FZFCscope + \ call fzf#run(fzf#wrap({ + \ 'source': 'cscope -d -L -f '.b:gutentags_files['cscope'].' -0 '. shellescape().' | sed -e "s,^'.getcwd().'/,," | grep -Pv "\d+\s\s*(\#|:|\")" | grep -Pv "(class|def|func|function|sub) '..'"', + \ 'sink*': function('s:sink_cscope'), + \ 'options': ' + \ --query '.s:filter.' + \ --prompt "Cscope ['..'] > " + \ -1 -0 +i + \ --exact + \ --with-nth 1 + \ --nth 1 + \ --delimiter " " + \ --preview-window "+{3}-15" + \ --preview "bat --color always --highlight-line {3} {1}"' + \ })) + + + +" Tag mapping ctags/cscope + +" Append : to vim allowed char. This allow expand() detect +" puppet class like xxx::yyy +autocmd FileType puppet set iskeyword+=: +" map \ :execute 'tselect' expand('') + +" map ] :execute 'tag' expand('') +" map ] :execute 'FZFCtags' '^'.expand('').'$' +" autocmd FileType puppet nnoremap call GoToDef(trim(expand(''), '^::')) +" autocmd FileType puppet nnoremap ] :execute 'tag' trim(expand(''), '^::') + +map ] :call GotoCtags(expand(''), getline('.')) +map \ :call GotoCscope(expand(''), getline('.')) diff --git a/neovim/plugin/fzf.vim b/neovim/plugin/fzf.vim new file mode 100644 index 0000000..44e6d24 --- /dev/null +++ b/neovim/plugin/fzf.vim @@ -0,0 +1,46 @@ +" Fzf +let g:fzf_layout = { 'down': '~60%' } +let g:fzf_preview_window = ['right:hidden', '?'] + +let $FZF_DEFAULT_OPTS="--ansi --layout reverse --preview-window right:60% --bind ?:toggle-preview,page-up:preview-up,page-down:preview-down --height=60% --margin 1,1" + +" " Added --no-ignore +command! -bang -nargs=* Rg + \ call fzf#vim#grep('rg --no-ignore --column --no-heading --line-number --color=always '.shellescape(), + \ 1, + \ fzf#vim#with_preview({ + \ 'options': ' + \ --delimiter ":" + \ --exact + \ --nth 4..' + \ }), + \ 0) + +command! -bang -nargs=* RgWithFilePath + \ call fzf#vim#grep('rg --no-ignore --column --no-heading --line-number --color=always '.shellescape(), + \ 1, + \ fzf#vim#with_preview({ + \ 'options': ' + \ --exact' + \ }), + \ 0) + + +autocmd! FileType fzf +autocmd FileType fzf set laststatus=0 noshowmode noruler + \| autocmd BufLeave set laststatus=2 showmode ruler + +let g:fzf_colors = +\ { 'fg': ['fg', 'Normal'], + \ 'bg': ['bg', 'Normal'], + \ 'hl': ['fg', 'Comment'], + \ 'fg+': ['fg', 'Macro'], + \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], + \ 'hl+': ['fg', 'Orange'], + \ 'info': ['fg', 'Aqua'], + \ 'border': ['fg', 'CursorLine'], + \ 'prompt': ['fg', 'Orange'], + \ 'pointer': ['fg', 'Exception'], + \ 'marker': ['fg', 'Orange'], + \ 'spinner': ['fg', 'Aqua'], + \ 'header': ['fg', 'Aqua'] } diff --git a/neovim/plugin/git-messenger.vim b/neovim/plugin/git-messenger.vim new file mode 100644 index 0000000..5cca814 --- /dev/null +++ b/neovim/plugin/git-messenger.vim @@ -0,0 +1 @@ +let g:git_messenger_floating_win_opts = { 'border': 'rounded' } diff --git a/neovim/plugin/indent_line.vim b/neovim/plugin/indent_line.vim new file mode 100644 index 0000000..30381bd --- /dev/null +++ b/neovim/plugin/indent_line.vim @@ -0,0 +1,16 @@ +" Indent Line +let g:indentLine_enabled = 1 +let g:indentLine_char = '▏' + +set conceallevel=2 +autocmd InsertEnter * setlocal conceallevel=0 +autocmd InsertLeave * setlocal conceallevel=2 + +let g:indentLine_setConceal = 0 +" default ''. +" n for Normal mode +" v for Visual mode +" i for Insert mode +" c for Command line editing, for 'incsearch' +let g:indentLine_concealcursor = '' +let g:indentLine_setColors = 0 diff --git a/neovim/plugin/lightline.vim b/neovim/plugin/lightline.vim new file mode 100644 index 0000000..f628427 --- /dev/null +++ b/neovim/plugin/lightline.vim @@ -0,0 +1,43 @@ +let g:lightline_git_info = '' +au BufEnter * call custom#GitInfo() +au BufEnter * call custom#LightlineToggleBuffer() + +" lightline +let g:lightline = { +\ 'colorscheme': 'gruvbox_material', +\ 'active': { +\ 'left': [ +\ [ 'mode', 'paste' ], +\ [ 'gitrepo' ], +\ [ 'readonly', 'filename', 'modified', 'method' ], +\ ], +\ 'right': [ +\ [ 'lsp_info', 'lsp_hints', 'lsp_errors', 'lsp_warnings', 'lsp_ok', 'lsp_status', 'lineinfo' ], +\ [ 'percent' ], +\ [ 'fileformat', 'fileencoding', 'filetype' ], +\ ], +\ }, +\ 'component': { +\ 'gitrepo': '%{g:lightline_git_info}', +\ }, +\ 'tab': { +\ 'active': [ 'tabnum', 'filename', 'modified' ], +\ 'inactive': [ 'tabnum', 'filename', 'modified' ] +\ } +\} + +" register compoments: +call lightline#lsp#register() + +" Autoset lightline colorsheme (except gruvbox-material which does not match) +if colors_name == 'gruvbox-material' + let g:lightline.colorscheme = 'gruvbox_material' +else + let g:lightline.colorscheme = colors_name +endif + + +" lightline-ale +let g:lightline#lsp#indicator_warnings = "\uf071 " +let g:lightline#lsp#indicator_errors = "\uf05e " +let g:lightline#lsp#indicator_ok = "\uf00c " diff --git a/neovim/plugin/paste.vim b/neovim/plugin/paste.vim new file mode 100644 index 0000000..b75ba69 --- /dev/null +++ b/neovim/plugin/paste.vim @@ -0,0 +1,22 @@ +" function to allow paste without :set paste +function! WrapForTmux(s) + if !exists('$TMUX') + return a:s + endif + + let tmux_start = "\Ptmux;" + let tmux_end = "\\\" + + return tmux_start . substitute(a:s, "\", "\\", 'g') . tmux_end +endfunction + +let &t_SI .= WrapForTmux("\[?2004h") +let &t_EI .= WrapForTmux("\[?2004l") + +function! XTermPasteBegin() + set pastetoggle=[201~ + set paste + return "" +endfunction + +inoremap [200~ XTermPasteBegin() diff --git a/neovim/plugin/python.vim b/neovim/plugin/python.vim new file mode 100644 index 0000000..3d991f7 --- /dev/null +++ b/neovim/plugin/python.vim @@ -0,0 +1,55 @@ +" Semshi +let g:semshi#always_update_all_highlights = 1 +let g:semshi#tolerate_syntax_errors = 1 + +" Black +function! PythonBlack() + let l:opts = "" + + let l:is_openstack = system("find . -maxdepth 2 -name .gitreview | wc -l") + if l:is_openstack > 0 + let l:opts = "-l 79" + endif + + execute "!black " . l:opts . " " . expand('%:p') + echo "[Black] done" +endfunction + +function! AutoColorColumn() + if &filetype ==# 'python' + let l:project_root = FindRootDirectory() + let l:git_root = trim(system('git -C ' . expand('%:h') . ' rev-parse --show-toplevel 2> /dev/null')) + + if empty(l:project_root) && empty(l:git_root) + return + endif + + let l:maxlinelen = trim(system('grep max-line-length $(find '.l:project_root.' '.l:git_root.' -maxdepth 1 -name pyproject.toml -o -name tox.ini -o -name .flake8) | awk -F= "{print \$2}" | tail -1')) + + if !empty(l:maxlinelen) + exe 'set colorcolumn='.l:maxlinelen + return + endif + + " Force 79 char max for openstack projects + if filereadable(l:git_root . '/.gitreview') + set colorcolumn=79 + return + endif + endif + + if &filetype ==# 'gitcommit' + set colorcolumn=72 + return + endif + + " reset colorcolumn + set colorcolumn= +endfunction + +autocmd FileType python command! -nargs=0 Black :call PythonBlack() +autocmd BufReadPost * call AutoColorColumn() +" Fix semshi color +if custom#PlugLoaded("semshi") + autocmd BufWritePost,BufRead python execute 'Semshi enable' +endif diff --git a/neovim/plugin/rooter.vim b/neovim/plugin/rooter.vim new file mode 100644 index 0000000..2864b7e --- /dev/null +++ b/neovim/plugin/rooter.vim @@ -0,0 +1,6 @@ +" Vim rooter +let g:rooter_patterns = ['.project/', '.project', '.git'] +let g:rooter_resolve_links = 1 +let g:rooter_silent_chdir = 1 + + diff --git a/neovim/plugin/signify.vim b/neovim/plugin/signify.vim new file mode 100644 index 0000000..fe8fab0 --- /dev/null +++ b/neovim/plugin/signify.vim @@ -0,0 +1,13 @@ +" Signify +let g:signify_priority = 5 +let g:signify_update_on_bufenter = 1 +let g:signify_update_on_focusgained = 0 + +autocmd User SignifyHunk call s:show_current_hunk() + +function! s:show_current_hunk() abort + let h = sy#util#get_hunk_stats() + if !empty(h) + echo printf('[Hunk %d/%d]', h.current_hunk, h.total_hunks) + endif +endfunction diff --git a/neovim/plugin/startify.vim b/neovim/plugin/startify.vim new file mode 100644 index 0000000..3dbdb1e --- /dev/null +++ b/neovim/plugin/startify.vim @@ -0,0 +1,17 @@ +" Startify +let g:startify_change_to_dir = 0 +let g:startify_fortune_use_unicode = 1 +let g:startify_session_dir = '~/.cache/vim/session' +let g:startify_session_persistence = 1 +let g:startify_session_before_save = [ +\ 'echo "Cleaning up before saving.."', +\ 'silent! NERDTreeTabsClose', +\ 'silent! NERDTreeClose', +\ 'silent! Vista!', +\ ] +let g:startify_bookmarks = [] +let g:startify_lists = [ +\ { 'type': 'files', 'header': [' Files'] }, +\ { 'type': 'sessions', 'header': [' Sessions'] }, +\ { 'type': 'bookmarks', 'header': [' Bookmarks'] }, +\ ] diff --git a/neovim/plugin_patch/blamer.nvim.patch b/neovim/plugin_patch/blamer.nvim.patch new file mode 100644 index 0000000..3888787 --- /dev/null +++ b/neovim/plugin_patch/blamer.nvim.patch @@ -0,0 +1,16 @@ +diff --git a/plug/blamer.nvim/autoload/blamer.vim b/plug/blamer.nvim/autoload/blamer.vim +index 5fecda3..2643278 100644 +--- a/plug/blamer.nvim/autoload/blamer.vim ++++ b/plug/blamer.nvim/autoload/blamer.vim +@@ -94,7 +94,9 @@ endfunction + + function! blamer#GetMessage(file, line_number, line_count) abort + let l:file_path_escaped = shellescape(a:file) +- let l:command = 'git --no-pager blame -p -L ' . a:line_number . ',' . a:line_count . ' -- ' . l:file_path_escaped ++ let l:file_name = shellescape(expand("%:t")) ++ let l:file_path = shellescape(expand("%:h")) ++ let l:command = 'git -C ' . l:file_path . ' --no-pager blame -p -L ' . a:line_number . ',' . a:line_count . ' -- ' . l:file_name + let l:result = system(l:command) + + let l:lines = split(l:result, '\n') + diff --git a/neovim/plugin_patch/fzf.vim.patch b/neovim/plugin_patch/fzf.vim.patch new file mode 100644 index 0000000..ae251f8 --- /dev/null +++ b/neovim/plugin_patch/fzf.vim.patch @@ -0,0 +1,38 @@ +diff --git a/autoload/fzf/vim.vim b/autoload/fzf/vim.vim +index 44246f7..1cbf8ff 100644 +--- a/autoload/fzf/vim.vim ++++ b/autoload/fzf/vim.vim +@@ -603,7 +603,7 @@ endfunction + " ------------------------------------------------------------------ + + function! s:get_git_root() +- let root = split(system('git rev-parse --show-toplevel'), '\n')[0] ++ let root = split(system('git -C ' . shellescape(expand("%:h")) . ' rev-parse --show-toplevel'), '\n')[0] + return v:shell_error ? '' : root + endfunction + +@@ -1181,11 +1181,12 @@ function! s:commits(buffer_local, args) + return s:warn('Not in git repository') + endif + +- let source = 'git log '.get(g:, 'fzf_commits_log_options', '--color=always '.fzf#shellescape('--format=%C(auto)%h%d %s %C(green)%cr')) +- let current = expand('%') ++ let current = expand("%:t") ++ let file_path = expand("%:h") ++ let source = 'git -C ' .file_path. ' log '.get(g:, 'fzf_commits_log_options', '--color=always '.fzf#shellescape('--format=%C(auto)%h%d %s %C(green)%cr')) + let managed = 0 + if !empty(current) +- call system('git show '.fzf#shellescape(current).' 2> '.(s:is_win ? 'nul' : '/dev/null')) ++ call system('git -C '.fzf#shellescape(file_path).' show '.fzf#shellescape(current).' 2> '.(s:is_win ? 'nul' : '/dev/null')) + let managed = !v:shell_error + endif + +@@ -1216,7 +1217,7 @@ function! s:commits(buffer_local, args) + + if !s:is_win && &columns > s:wide + call extend(options.options, +- \ ['--preview', 'echo {} | grep -o "[a-f0-9]\{7,\}" | head -1 | xargs git show --format=format: --color=always | head -1000']) ++ \ ['--preview', 'echo {} | grep -o "[a-f0-9]\{7,\}" | head -1 | xargs git -C '.file_path.' show --format=format: --color=always | head -1000']) + endif + + return s:fzf(a:buffer_local ? 'bcommits' : 'commits', options, a:args) diff --git a/neovim/plugin_patch/jinja.patch b/neovim/plugin_patch/jinja.patch new file mode 100644 index 0000000..e2df01a --- /dev/null +++ b/neovim/plugin_patch/jinja.patch @@ -0,0 +1,15 @@ +diff --git a/plug/vim-polyglot/syntax/jinja2.vim b/plug/vim-polyglot/syntax/jinja2.vim +index e2a5bbf..e959faa 100644 +--- a/plug/vim-polyglot/syntax/jinja2.vim ++++ b/plug/vim-polyglot/syntax/jinja2.vim +@@ -59,8 +59,8 @@ syn match jinjaFunction contained /[a-zA-Z_][a-zA-Z0-9_]*/ + syn match jinjaBlockName contained /[a-zA-Z_][a-zA-Z0-9_]*/ + + " Jinja template constants +-syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\(\\\)\@\)*\\"/ end=/"/ +-syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\(\\\)\@\)*\\'/ end=/'/ ++syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\(\\\)\@\)*\(\\"\)+/ end=/"/ ++syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\(\\\)\@\)*\(\\'\)+/ end=/'/ + syn match jinjaNumber containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[0-9]\+\(\.[0-9]\+\)\?/ + + " Operators diff --git a/neovim/plugin_patch/vim-gutentags.patch b/neovim/plugin_patch/vim-gutentags.patch new file mode 100644 index 0000000..6fce729 --- /dev/null +++ b/neovim/plugin_patch/vim-gutentags.patch @@ -0,0 +1,58 @@ +diff --git a/autoload/gutentags/cscope.vim b/autoload/gutentags/cscope.vim +index 47f6bdf..dfa99aa 100644 +--- a/autoload/gutentags/cscope.vim ++++ b/autoload/gutentags/cscope.vim +@@ -1,10 +1,5 @@ + " Cscope module for Gutentags + +-if !has('cscope') +- throw "Can't enable the cscope module for Gutentags, this Vim has ". +- \"no support for cscope files." +-endif +- + " Global Options {{{ + + if !exists('g:gutentags_cscope_executable') + +diff --git a/plat/unix/update_scopedb.sh b/plat/unix/update_scopedb.sh +index 0338599..18a8936 100755 +--- a/plat/unix/update_scopedb.sh ++++ b/plat/unix/update_scopedb.sh +@@ -59,13 +59,13 @@ echo $$ > "$DB_FILE.lock" + + # Remove lock and temp file if script is stopped unexpectedly. + CleanUp() { +- rm -f "$DB_FILE.lock" "$DB_FILE.files" "$DB_FILE.temp" ++ rm -f "$DB_FILE.lock" "$DB_FILE.files" + if [ "$BUILD_INVERTED_INDEX" -eq 1 ]; then + rm -f "$DB_FILE.temp.in" "$DB_FILE.temp.po" + fi + } + +-trap CleanUp INT QUIT TERM EXIT ++trap CleanUp INT QUIT TERM EXIT KILL + + PREVIOUS_DIR=$(pwd) + if [ -d "$PROJECT_ROOT" ]; then +@@ -101,8 +101,8 @@ if [ "$BUILD_INVERTED_INDEX" -eq 1 ]; then + fi + + echo "Running cscope" +-echo "$CSCOPE_EXE $CSCOPE_ARGS -b -k -f \"$DB_FILE.temp\"" +-"$CSCOPE_EXE" $CSCOPE_ARGS -v -b -k -f "$DB_FILE.temp" ++echo "$CSCOPE_EXE $CSCOPE_ARGS -b -k -f \"$DB_FILE\"" ++"$CSCOPE_EXE" $CSCOPE_ARGS -v -b -k -f "$DB_FILE" + + if [ -d "$PROJECT_ROOT" ]; then + cd "$PREVIOUS_DIR" +@@ -115,8 +115,8 @@ if [ "$BUILD_INVERTED_INDEX" -eq 1 ]; then + echo "mv -f \"$DB_FILE.temp.po\" \"$DB_FILE.po\"" + mv -f "$DB_FILE.temp.po" "$DB_FILE.po" + fi +-echo "mv -f \"$DB_FILE.temp\" \"$DB_FILE\"" +-mv -f "$DB_FILE.temp" "$DB_FILE" ++# echo "mv -f \"$DB_FILE.temp\" \"$DB_FILE\"" ++# mv -f "$DB_FILE.temp" "$DB_FILE" + + echo "Unlocking cscope DB file..." + rm -f "$DB_FILE.lock" diff --git a/shell/bash/prompt.sh b/shell/bash/prompt.sh new file mode 100644 index 0000000..3c16123 --- /dev/null +++ b/shell/bash/prompt.sh @@ -0,0 +1,78 @@ +function prompt.display +{ + history -a + PS1=$(echo -e "\n $(prompt_prefix)$(prompt) $(prompt_add)\n $(colors.prompt_print 6 ❭) ") +} + +function prompt_prefix +{ + prompt="$(set_date)" + + NETNS=$(netns.current) + if [[ -n $NETNS ]]; then + prompt="$prompt $(set_netns $NETNS)" + fi + + echo "$prompt " +} + +function prompt_add +{ + prompt='' + if git branch > /dev/null 2>&1 ; then + prompt=$(set_git) + fi + + if [[ -n "$VIRTUAL_ENV" ]] ; then + prompt="${prompt} $(set_virtualenv)" + fi + + echo $prompt +} + +function prompt +{ + prompt='' + [[ "`id -u`" -eq 0 ]] && color=204 || color=36 + + if [[ -n $SSH_TTY ]]; then + prompt="$(colors.prompt_print 181 '\u')$(colors.prompt_print 8 @)$(colors.prompt_print ${color} '\H')" + else + prompt="$(colors.prompt_print ${color} '\u:')" + fi + + echo "${prompt} $(colors.prompt_print 8 '\w')" +} + +function set_git +{ + repo=$(basename -s .git $(git config --get remote.origin.url) 2> /dev/null) + branch=$(git rev-parse --abbrev-ref HEAD 2> /dev/null) + commit_id=$(git rev-parse --short HEAD 2> /dev/null) + modified=$( git status --porcelain | grep -c '^ M') + removed=$( git status --porcelain | grep -c '^ D') + commit='' + if [[ $removed -ne 0 || $modified -ne 0 ]]; then + commit=$(colors.prompt_print 11 ) + else + commit=$(colors.prompt_print 2 ) + fi + + echo "$(colors.prompt_print 204 [󰊢 $repo]) $(colors.prompt_print 8 ${branch})$(colors.prompt_print 5 [${commit_id}]) ${commit} " +} + +function set_virtualenv +{ + echo "$(colors.prompt_print 11 [ $(basename $VIRTUAL_ENV)])" +} + +function set_netns +{ + echo "$(colors.prompt_print 198 [' ' $1])" +} + +function set_date +{ + # strftime format + echo "$(colors.prompt_print 239 '[\D{%H:%M}]')" +} diff --git a/shell/bashrc b/shell/bashrc new file mode 100644 index 0000000..59cf26c --- /dev/null +++ b/shell/bashrc @@ -0,0 +1,24 @@ +source ~/.shell/source/path.sh + +# If not running interactively, don't do anything +[ -z "$PS1" ] && return + +# Autolaunch zsh +#if [ -f ~/.zshrc -a -f "$(which zsh)" ]; then +# export SHELL="$(which zsh)" +# exec $(which zsh) -l +#fi +export SHELL=/bin/bash + +# source bashrc extend +[ -f ~/.bash_aliases ] && source ~/.bash_aliases +[ -d ~/.bash_custom ] && for source in $(find ~/.bash_custom -type f); do source $source; done +[ -e ~/.shell ] && for source in $(find ~/.shell/ -type f -name '*.sh' -or -name '*.bash'); do source $source; done +[ -d ~/.shell/completions ] && source ~/.shell/completions/* + +# Set prompt +if [[ $(basename ${BASH_SOURCE[0]}) == ".bashrc" ]]; then + source ~/.shell/bash/prompt.sh + PS1='# ' + PROMPT_COMMAND=prompt.display +fi diff --git a/shell/completions/sshlog.sh b/shell/completions/sshlog.sh new file mode 100644 index 0000000..6069022 --- /dev/null +++ b/shell/completions/sshlog.sh @@ -0,0 +1 @@ +eval "$(sshlog --completion 2> /dev/null)" diff --git a/shell/completions/tm.sh b/shell/completions/tm.sh new file mode 120000 index 0000000..f274302 --- /dev/null +++ b/shell/completions/tm.sh @@ -0,0 +1 @@ +../../tmux/tm.completion \ No newline at end of file diff --git a/shell/dir_colors b/shell/dir_colors new file mode 100644 index 0000000..70ad80c --- /dev/null +++ b/shell/dir_colors @@ -0,0 +1,339 @@ +# Configuration file for dircolors, a utility to help you set the +# LS_COLORS environment variable used by GNU ls with the --color option. + +# Copyright (C) 2020-present Armand Philippot. +# Version: 1.0.0 +# Repository: https://github.com/ArmandPhilippot/coldark-dircolors +# License: MIT + +# You can copy this file to .dir_colors in your $HOME directory to override +# the system defaults. + +# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not +# pipes. 'all' adds color characters to all output. 'none' shuts colorization +# off. +COLOR tty + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM Eterm +TERM ansi +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM dvtm +TERM dvtm-256color +TERM eterm-color +TERM gnome +TERM gnome-256color +TERM hurd +TERM jfbterm +TERM konsole +TERM konsole-256color +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mach-gnu-color +TERM mlterm +TERM putty +TERM putty-256color +TERM rxvt +TERM rxvt-256color +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM rxvt-unicode-256color +TERM rxvt-unicode256 +TERM screen +TERM screen-256color +TERM screen-256color-bce +TERM screen-bce +TERM screen-w +TERM screen.Eterm +TERM screen.rxvt +TERM screen.linux +TERM st +TERM st-256color +TERM terminator +TERM tmux* +TERM tmux-256color +TERM vt100 +TERM xterm +TERM xterm-16color +TERM xterm-256color +TERM xterm-88color +TERM xterm-color +TERM xterm-debian + +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white + +################# +# Global Defaults +################# +NORMAL 00 # no color code at all +RESET 0 # reset to "normal" color + +FILE 00 # regular file: use no color at all +DIR 01;34 # directory +LINK 00;36 # symbolic link. +MULTIHARDLINK 04;36 # regular file with more than one link +FIFO 04;01;36 # pipe +SOCK 04;33 # socket +DOOR 04;01;35 # door +BLK 01;33 # block device driver +CHR 00;33 # character device driver +ORPHAN 00;31 # orphaned symlinks +MISSING 00;30;41 # ... and the files they point to +EXEC 01;31 # files with execute permission +SETUID 01;04;37 # files with setuid permissions (u+s) +SETGID 01;04;37 # files with setgid permissions (g+s) +CAPABILITY 01;37 # files with capability +STICKY_OTHER_WRITABLE 00;30;42 # dir that is sticky and other-writable +OTHER_WRITABLE 04;32 # dir that is other-writable and not sticky +STICKY 00;30;44 # dir sticky and not other-writable + +################### +# Extension Pattern +################### + +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') + +# Archives or compressed +.7z 01;32 +.ace 01;32 +.alz 01;32 +.arc 01;32 +.arj 01;32 +.bz 01;32 +.bz2 01;32 +.cab 01;32 +.cpio 01;32 +.deb 01;32 +.dz 01;32 +.ear 01;32 +.gz 01;32 +.jar 01;32 +.lha 01;32 +.lrz 01;32 +.lz 01;32 +.lz4 01;32 +.lzh 01;32 +.lzma 01;32 +.lzo 01;32 +.rar 01;32 +.rpm 01;32 +.rz 01;32 +.sar 01;32 +.t7z 01;32 +.tar 01;32 +.taz 01;32 +.tbz 01;32 +.tbz2 01;32 +.tgz 01;32 +.tlz 01;32 +.txz 01;32 +.tz 01;32 +.tzo 01;32 +.tzst 01;32 +.war 01;32 +.xz 01;32 +.z 01;32 +.Z 01;32 +.zip 01;32 +.zoo 01;32 +.zst 01;32 + +# Audio +.aac 00;36 +.au 00;36 +.axa 00;36 +.flac 00;36 +.m4a 00;36 +.mid 00;36 +.midi 00;36 +.mka 00;36 +.mp3 00;36 +.mpc 00;36 +.oga 00;36 +.ogg 00;36 +.ra 00;36 +.spx 00;36 +.xspf 00;36 +.wav 00;36 + +# Document files +.doc 00;32 +.docx 00;32 +.dot 00;32 +.odg 00;32 +.odp 00;32 +.ods 00;32 +.odt 00;32 +.otg 00;32 +.otp 00;32 +.ots 00;32 +.ott 00;32 +.pdf 00;32 +.ppt 00;32 +.pptx 00;32 +.xls 00;32 +.xlsx 00;32 + +# Executable +.app 01;31 +.bat 01;31 +.btm 01;31 +.cmd 01;31 +.com 01;31 +.exe 01;31 +.reg 01;31 + +# Ignores +*~ 01;30 +.bak 01;30 +.BAK 01;30 +.diff 01;30 +.log 01;30 +.LOG 01;30 +.old 01;30 +.OLD 01;30 +.orig 01;30 +.ORIG 01;30 +.swo 01;30 +.swp 01;30 + +# Images +.ai 01;35 +.bmp 01;35 +.cgm 01;35 +.dl 01;35 +.dvi 01;35 +.emf 01;35 +.eps 01;35 +.gif 01;35 +.jpeg 01;35 +.jpg 01;35 +.JPG 01;35 +.mng 01;35 +.pbm 01;35 +.pcx 01;35 +.pgm 01;35 +.png 01;35 +.PNG 01;35 +.ppm 01;35 +.pps 01;35 +.ppsx 01;35 +.ps 01;35 +.psd 01;35 +.svg 01;35 +.svgz 01;35 +.tga 01;35 +.tif 01;35 +.tiff 01;35 +.xbm 01;35 +.xcf 01;35 +.xpm 01;35 +.xwd 01;35 +.yuv 01;35 + +# Source text +.0 00;32 +.1 00;32 +.2 00;32 +.3 00;32 +.4 00;32 +.5 00;32 +.6 00;32 +.7 00;32 +.8 00;32 +.9 00;32 +.c 00;32 +.C 00;32 +.cc 00;32 +.csh 00;32 +.css 00;32 +.cxx 00;32 +.el 00;32 +.h 00;32 +.hs 00;32 +.htm 00;32 +.html 00;32 +.java 00;32 +.js 00;32 +.json 00;32 +.l 00;32 +.man 00;32 +.md 00;32 +.mkd 00;32 +.n 00;32 +.objc 00;32 +.org 00;32 +.p 00;32 +.php 00;32 +.pl 00;32 +.pm 00;32 +.pod 00;32 +.py 00;32 +.rb 00;32 +.rdf 00;32 +.rtf 00;32 +.sh 00;32 +.shtml 00;32 +.tex 00;32 +.txt 00;32 +.vim 00;32 +.xml 00;32 +.yml 00;32 +.zsh 00;32 + +# Video +.anx 01;33 +.asf 01;33 +.avi 01;33 +.axv 01;33 +.flc 01;33 +.fli 01;33 +.flv 01;33 +.gl 01;33 +.m2v 01;33 +.m4v 01;33 +.mkv 01;33 +.mov 01;33 +.MOV 01;33 +.mp4 01;33 +.mp4v 01;33 +.mpeg 01;33 +.mpg 01;33 +.nuv 01;33 +.ogm 01;33 +.ogv 01;33 +.ogx 01;33 +.qt 01;33 +.rm 01;33 +.rmvb 01;33 +.swf 01;33 +.vob 01;33 +.webm 01;33 +.wmv 01;33 + diff --git a/shell/fzf/fzf.bash.password-store b/shell/fzf/fzf.bash.password-store new file mode 100755 index 0000000..2fe9f8d --- /dev/null +++ b/shell/fzf/fzf.bash.password-store @@ -0,0 +1,41 @@ +#!/bin/bash + +function candidates() { + find "$PREFIX" -name '*.gpg' | sed -e "s:$PREFIX/::gi" -e 's:.gpg$::gi' +} + +function candidate_selector_fzf() { + query=$1 + candidates | fzf -q "$query" --select-1 +} + +function usage() { + echo "Usage: $0 [-s] [query]" + exit 1 +} + +select_only=0 + +while getopts "s" o +do + case "${o}" in + s) + select_only=1 + ;; + *) + usage + ;; + esac +done + +shift $((OPTIND-1)) +query="$@" + +res=$(candidate_selector_fzf "$query") +if [ -n "$res" ]; then + [ $select_only -ne 0 ] && echo "$res" && exit 0 + pass show "$res" | tail -n +2 || exit $? + pass show -c "$res" +else + exit 1 +fi diff --git a/shell/fzf/key-bindings.bash b/shell/fzf/key-bindings.bash new file mode 100644 index 0000000..d83f9d3 --- /dev/null +++ b/shell/fzf/key-bindings.bash @@ -0,0 +1,102 @@ +# ____ ____ +# / __/___ / __/ +# / /_/_ / / /_ +# / __/ / /_/ __/ +# /_/ /___/_/ key-bindings.bash +# +# - $FZF_TMUX_OPTS +# - $FZF_CTRL_T_COMMAND +# - $FZF_CTRL_T_OPTS +# - $FZF_CTRL_R_OPTS +# - $FZF_ALT_C_COMMAND +# - $FZF_ALT_C_OPTS + +# Key bindings +# ------------ +__fzf_select__() { + local cmd opts + cmd="${FZF_CTRL_T_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \ + -o -type f -print \ + -o -type d -print \ + -o -type l -print 2> /dev/null | cut -b3-"}" + opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore --reverse ${FZF_DEFAULT_OPTS-} ${FZF_CTRL_T_OPTS-} -m" + eval "$cmd" | + FZF_DEFAULT_OPTS="$opts" $(__fzfcmd) "$@" | + while read -r item; do + printf '%q ' "$item" # escape special chars + done +} + +if [[ $- =~ i ]]; then + +__fzfcmd() { + [[ -n "${TMUX_PANE-}" ]] && { [[ "${FZF_TMUX:-0}" != 0 ]] || [[ -n "${FZF_TMUX_OPTS-}" ]]; } && + echo "fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- " || echo "fzf" +} + +fzf-file-widget() { + local selected="$(__fzf_select__ "$@")" + READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}$selected${READLINE_LINE:$READLINE_POINT}" + READLINE_POINT=$(( READLINE_POINT + ${#selected} )) +} + +__fzf_cd__() { + local cmd opts dir + cmd="${FZF_ALT_C_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \ + -o -type d -print 2> /dev/null | cut -b3-"}" + opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore --reverse ${FZF_DEFAULT_OPTS-} ${FZF_ALT_C_OPTS-} +m" + dir=$(eval "$cmd" | FZF_DEFAULT_OPTS="$opts" $(__fzfcmd)) && printf 'builtin cd -- %q' "$dir" +} + +__fzf_history__() { + local output opts script + opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} -n2..,.. --scheme=history --bind=ctrl-r:toggle-sort ${FZF_CTRL_R_OPTS-} +m --read0" + script='BEGIN { getc; $/ = "\n\t"; $HISTCOUNT = $ENV{last_hist} + 1 } s/^[ *]//; print $HISTCOUNT - $. . "\t$_" if !$seen{$_}++' + output=$( + builtin fc -lnr -2147483648 | + last_hist=$(HISTTIMEFORMAT='' builtin history 1) perl -n -l0 -e "$script" | + FZF_DEFAULT_OPTS="$opts" $(__fzfcmd) --query "$READLINE_LINE" + ) || return + READLINE_LINE=${output#*$'\t'} + if [[ -z "$READLINE_POINT" ]]; then + echo "$READLINE_LINE" + else + READLINE_POINT=0x7fffffff + fi +} + +# Required to refresh the prompt after fzf +bind -m emacs-standard '"\er": redraw-current-line' + +bind -m vi-command '"\C-z": emacs-editing-mode' +bind -m vi-insert '"\C-z": emacs-editing-mode' +bind -m emacs-standard '"\C-z": vi-editing-mode' + +if (( BASH_VERSINFO[0] < 4 )); then + # CTRL-T - Paste the selected file path into the command line + bind -m emacs-standard '"\C-t": " \C-b\C-k \C-u`__fzf_select__`\e\C-e\er\C-a\C-y\C-h\C-e\e \C-y\ey\C-x\C-x\C-f"' + bind -m vi-command '"\C-t": "\C-z\C-t\C-z"' + bind -m vi-insert '"\C-t": "\C-z\C-t\C-z"' + + # CTRL-R - Paste the selected command from history into the command line + bind -m emacs-standard '"\C-r": "\C-e \C-u\C-y\ey\C-u"$(__fzf_history__)"\e\C-e\er"' + bind -m vi-command '"\C-r": "\C-z\C-r\C-z"' + bind -m vi-insert '"\C-r": "\C-z\C-r\C-z"' +else + # CTRL-T - Paste the selected file path into the command line + bind -m emacs-standard -x '"\C-t": fzf-file-widget' + bind -m vi-command -x '"\C-t": fzf-file-widget' + bind -m vi-insert -x '"\C-t": fzf-file-widget' + + # CTRL-R - Paste the selected command from history into the command line + bind -m emacs-standard -x '"\C-r": __fzf_history__' + bind -m vi-command -x '"\C-r": __fzf_history__' + bind -m vi-insert -x '"\C-r": __fzf_history__' +fi + +# ALT-C - cd into the selected directory +bind -m emacs-standard '"\ec": " \C-b\C-k \C-u`__fzf_cd__`\e\C-e\er\C-m\C-y\C-h\e \C-y\ey\C-x\C-x\C-d"' +bind -m vi-command '"\ec": "\C-z\ec\C-z"' +bind -m vi-insert '"\ec": "\C-z\ec\C-z"' + +fi diff --git a/shell/fzf/key-bindings.zsh b/shell/fzf/key-bindings.zsh new file mode 100644 index 0000000..dfb473c --- /dev/null +++ b/shell/fzf/key-bindings.zsh @@ -0,0 +1,120 @@ +# ____ ____ +# / __/___ / __/ +# / /_/_ / / /_ +# / __/ / /_/ __/ +# /_/ /___/_/ key-bindings.zsh +# +# - $FZF_TMUX_OPTS +# - $FZF_CTRL_T_COMMAND +# - $FZF_CTRL_T_OPTS +# - $FZF_CTRL_R_OPTS +# - $FZF_ALT_C_COMMAND +# - $FZF_ALT_C_OPTS + +# Key bindings +# ------------ + +# The code at the top and the bottom of this file is the same as in completion.zsh. +# Refer to that file for explanation. +if 'zmodload' 'zsh/parameter' 2>'/dev/null' && (( ${+options} )); then + __fzf_key_bindings_options="options=(${(j: :)${(kv)options[@]}})" +else + () { + __fzf_key_bindings_options="setopt" + 'local' '__fzf_opt' + for __fzf_opt in "${(@)${(@f)$(set -o)}%% *}"; do + if [[ -o "$__fzf_opt" ]]; then + __fzf_key_bindings_options+=" -o $__fzf_opt" + else + __fzf_key_bindings_options+=" +o $__fzf_opt" + fi + done + } +fi + +'emulate' 'zsh' '-o' 'no_aliases' + +{ + +[[ -o interactive ]] || return 0 + +# CTRL-T - Paste the selected file path(s) into the command line +__fsel() { + local cmd="${FZF_CTRL_T_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \ + -o -type f -print \ + -o -type d -print \ + -o -type l -print 2> /dev/null | cut -b3-"}" + setopt localoptions pipefail no_aliases 2> /dev/null + local item + eval "$cmd" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_CTRL_T_OPTS-}" $(__fzfcmd) -m "$@" | while read item; do + echo -n "${(q)item} " + done + local ret=$? + echo + return $ret +} + +__fzfcmd() { + [ -n "${TMUX_PANE-}" ] && { [ "${FZF_TMUX:-0}" != 0 ] || [ -n "${FZF_TMUX_OPTS-}" ]; } && + echo "fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- " || echo "fzf" +} + +fzf-file-widget() { + LBUFFER="${LBUFFER}$(__fsel)" + local ret=$? + zle reset-prompt + return $ret +} +zle -N fzf-file-widget +bindkey -M emacs '^T' fzf-file-widget +bindkey -M vicmd '^T' fzf-file-widget +bindkey -M viins '^T' fzf-file-widget + +# ALT-C - cd into the selected directory +fzf-cd-widget() { + local cmd="${FZF_ALT_C_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \ + -o -type d -print 2> /dev/null | cut -b3-"}" + setopt localoptions pipefail no_aliases 2> /dev/null + local dir="$(eval "$cmd" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_ALT_C_OPTS-}" $(__fzfcmd) +m)" + if [[ -z "$dir" ]]; then + zle redisplay + return 0 + fi + zle push-line # Clear buffer. Auto-restored on next prompt. + BUFFER="builtin cd -- ${(q)dir}" + zle accept-line + local ret=$? + unset dir # ensure this doesn't end up appearing in prompt expansion + zle reset-prompt + return $ret +} +zle -N fzf-cd-widget +bindkey -M emacs '\ec' fzf-cd-widget +bindkey -M vicmd '\ec' fzf-cd-widget +bindkey -M viins '\ec' fzf-cd-widget + +# CTRL-R - Paste the selected command from history into the command line +fzf-history-widget() { + local selected num + setopt localoptions noglobsubst noposixbuiltins pipefail no_aliases 2> /dev/null + selected=( $(fc -rl 1 | awk '{ cmd=$0; sub(/^[ \t]*[0-9]+\**[ \t]+/, "", cmd); if (!seen[cmd]++) print $0 }' | + FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} ${FZF_DEFAULT_OPTS-} -n2..,.. --scheme=history --bind=ctrl-r:toggle-sort,ctrl-z:ignore ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m" $(__fzfcmd)) ) + local ret=$? + if [ -n "$selected" ]; then + num=$selected[1] + if [ -n "$num" ]; then + zle vi-fetch-history -n $num + fi + fi + zle reset-prompt + return $ret +} +zle -N fzf-history-widget +bindkey -M emacs '^R' fzf-history-widget +bindkey -M vicmd '^R' fzf-history-widget +bindkey -M viins '^R' fzf-history-widget + +} always { + eval $__fzf_key_bindings_options + 'unset' '__fzf_key_bindings_options' +} diff --git a/shell/source/agent.sh b/shell/source/agent.sh new file mode 100644 index 0000000..ac6dd56 --- /dev/null +++ b/shell/source/agent.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# prompt for GPG passphrase when needed +export GPG_TTY=$(tty) + +function launch_ssh_agent +{ + # cache key for 10h + ssh_agent_cmd="ssh-agent -s -t 36000" + agent_pid=$(pidof ssh-agent | awk '{print $1}') + + if [[ -z $agent_pid && -n $SSH_AUTH_SOCK && -S $SSH_AUTH_SOCK ]]; then + # SSH agent forwarded, nothing to spawn + return + fi + + # check current agent + if [[ -n $agent_pid ]]; then + cmd=$(ps --no-headers -o cmd $agent_pid) + if [[ $ssh_agent_cmd != $cmd ]]; then + kill $agent_pid &> /dev/null + fi + fi + + eval "$(cat ~/.ssh-agent 2> /dev/null)" >/dev/null + if [[ -n $SSH_AGENT_PID ]]; then + cmd=$(ps --no-headers -o cmd $SSH_AGENT_PID) + if [[ $ssh_agent_cmd != $cmd ]]; then + kill $SSH_AGENT_PID &> /dev/null + fi + fi + + output=$(ssh-add -l 2> /dev/null); rc=$? + # no ssh-agent running + if [[ $rc == 2 ]]; then + # Try to export ssh-agent env + (umask 066; eval "$ssh_agent_cmd" >| ~/.ssh-agent) + eval "$(<~/.ssh-agent)" >/dev/null + ssh-add 2> /dev/null + elif [[ $rc == 1 ]]; then + # Add default ssh-key to agent cache + ssh-add 2> /dev/null + else + return + fi +} + +launch_ssh_agent diff --git a/shell/source/aliases.sh b/shell/source/aliases.sh new file mode 100644 index 0000000..b88433e --- /dev/null +++ b/shell/source/aliases.sh @@ -0,0 +1,29 @@ +# vim: ft=sh + +export TERM=xterm-256color +export VISUAL=vim +export EDITOR=vim +# tmux disable retitle +export DISABLE_AUTO_TITLE=true +export XDG_CONFIG_HOME=$HOME/.config +export RIPGREP_CONFIG_PATH=$HOME/.config/ripgreprc + +if [[ -f $HOME/.local/bin/nvim ]]; then + alias lvim="THEME=light nvim" + alias dvim="THEME=dark nvim" + alias vim="lvim" + alias vimdiff="vim -d" +fi + +# fucking keyboard +alias vi=vim +alias vun=vim +alias bim=vim +alias gti=git + +function vim.which { + vim $(which $1) +} +alias vwhich="vim.which" + +alias ofc='ofctl --names --no-stats --read-only --color=always dump-flows' diff --git a/shell/source/bash_default.sh b/shell/source/bash_default.sh new file mode 100644 index 0000000..cd68749 --- /dev/null +++ b/shell/source/bash_default.sh @@ -0,0 +1,114 @@ +# Sensible Bash - An attempt at saner Bash defaults +# Maintainer: mrzool +# Repository: https://github.com/mrzool/bash-sensible +# Version: 0.2.2 + +# disable lock terminal (ctrl-s behavior) +stty -ixon + +if [[ -z $BASH ]] +then + # "Not in shell bash..." + return +fi + +# Unique Bash version check +if ((BASH_VERSINFO[0] < 4)) +then + echo "sensible.bash: Looks like you're running an older version of Bash." + echo "sensible.bash: You need at least bash-4.0 or some options will not work correctly." + echo "sensible.bash: Keep your software up-to-date!" +fi + +## GENERAL OPTIONS ## + +# Prevent file overwrite on stdout redirection +# Use `>|` to force redirection to an existing file +# set -o noclobber + +# Update window size after every command +shopt -s checkwinsize + +# Automatically trim long paths in the prompt (requires Bash 4.x) +PROMPT_DIRTRIM=2 + +# Enable history expansion with space +# E.g. typing !! will replace the !! with your last command +bind Space:magic-space + +# Turn on recursive globbing (enables ** to recurse all directories) +shopt -s globstar 2> /dev/null + +# Case-insensitive globbing (used in pathname expansion) +shopt -s nocaseglob; + +## SMARTER TAB-COMPLETION (Readline bindings) ## + +# Perform file completion in a case insensitive fashion +bind "set completion-ignore-case on" + +# Treat hyphens and underscores as equivalent +bind "set completion-map-case on" + +# Display matches for ambiguous patterns at first tab press +bind "set show-all-if-ambiguous on" + +# Immediately add a trailing slash when autocompleting symlinks to directories +bind "set mark-symlinked-directories on" + +## SANE HISTORY DEFAULTS ## + +# Append to the history file, don't overwrite it +shopt -s histappend + +# Save multi-line commands as one command +shopt -s cmdhist + +# Record each line as it gets issued +PROMPT_COMMAND='history -a' + +# Huge history. Doesn't appear to slow things down, so why not? +HISTSIZE=500000 +HISTFILESIZE=100000 + +# Avoid duplicate entries +HISTCONTROL="erasedups:ignoreboth" + +# Don't record some commands +export HISTIGNORE="&:[ ]*:exit:ls:bg:fg:history:clear" + +# Use standard ISO 8601 timestamp +# %F equivalent to %Y-%m-%d +# %T equivalent to %H:%M:%S (24-hours format) +HISTTIMEFORMAT='%F %T ' + +# Enable incremental history search with up/down arrows (also Readline goodness) +# Learn more about this here: http://codeinthehole.com/writing/the-most-important-command-line-tip-incremental-history-searching-with-inputrc/ +bind '"\e[A": history-search-backward' +bind '"\e[B": history-search-forward' +bind '"\e[C": forward-char' +bind '"\e[D": backward-char' + +## BETTER DIRECTORY NAVIGATION ## + +# Prepend cd to directory names automatically +shopt -s autocd 2> /dev/null +# Correct spelling errors during tab-completion +shopt -s dirspell 2> /dev/null +# Correct spelling errors in arguments supplied to cd +shopt -s cdspell 2> /dev/null + +# This defines where cd looks for targets +# Add the directories you want to have fast access to, separated by colon +# Ex: CDPATH=".:~:~/projects" will look for targets in the current working directory, in home and in the ~/projects folder +CDPATH="." + +# This allows you to bookmark your favorite places across the file system +# Define a variable containing a path and you will be able to cd into it regardless of the directory you're in +shopt -s cdable_vars + +# Examples: +# export dotfiles="$HOME/dotfiles" +# export projects="$HOME/projects" +# export documents="$HOME/Documents" +# export dropbox="$HOME/Dropbox" diff --git a/shell/source/colors.sh b/shell/source/colors.sh new file mode 100644 index 0000000..5996150 --- /dev/null +++ b/shell/source/colors.sh @@ -0,0 +1,67 @@ +eval $(dircolors -b ~/.dir_colors) + +alias ls='ls --color=auto' +alias dir='dir --color=auto' + +alias grep='grep --color=auto' +alias fgrep='fgrep --color=auto' +alias egrep='egrep --color=auto' +alias c='ccze -A' + +# COLORS +# regular +black="\033[0;30m" +red="\033[0;31m" +green="\033[0;32m" +yellow="\033[0;33m" +blue="\033[0;34m" +magenta="\033[0;35m" +cyan="\033[0;36m" +grey="\033[0;37m" +white="\033[1;37m" + +# bright +b_black="\033[1;30m" +b_red="\033[1;31m" +b_green="\033[1;32m" +b_yellow="\033[1;33m" +b_blue="\033[1;34m" +b_magenta="\033[1;35m" +b_cyan="\033[1;36m" + +normal="\033[0;0m" # text reset +mkbold="\033[0;1m" # make bold +undrln="\033[0;4m" # underline +mkblnk="\033[0;5m" # make blink +revers="\033[0;7m" # reverse + + +function colors.display_256_colors () +{ + for i in `seq 1 256` + do + tput setaf $i + echo -n "$i " + done +} + +alias dcolors="colors.display_256_colors" + +function colors.prompt_print { + # colors.print 42 plop + code=$1; shift; + color_code=$(tput setaf $code) + color_reset=$(tput sgr0) + # https://unix.stackexchange.com/questions/158412/are-the-terminal-color-escape-sequences-defined-anywhere-for-bash + prompt_escaped_color="\[$color_code\]" + prompt_escaped_reset="\[$color_reset\]" + echo -e ${prompt_escaped_color}$*${prompt_escaped_reset} +} + +function colors.print { + # colors.print 42 plop + code=$1; shift; + color_code=$(tput setaf $code) + color_reset=$(tput sgr0) + echo -e ${color_code}$*${color_reset} +} diff --git a/shell/source/fzf.sh b/shell/source/fzf.sh new file mode 100644 index 0000000..b3b3568 --- /dev/null +++ b/shell/source/fzf.sh @@ -0,0 +1,23 @@ +# ctrl-r : history +# ctrl-t : file search +# alt-c : cd directory +export FZF_DEFAULT_COMMAND='fd --type f --no-ignore --hidden --follow --exclude .git --exclude .pyc --exclude __pycache__' +export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" +export FZF_CTRL_T_OPTS="--height 50% --preview '(bat --style=numbers --color=always {} || cat {}) 2> /dev/null | head -200'" +export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --border" + +# FZF custom commands + +# interactive pacman +alias pac="pacman -Slq | fzf -m --preview 'pacman -Si {1}' | xargs -r sudo pacman -S --noconfirm" +alias apts='apt-cache search . | awk "{print \$1}" | fzf -m --preview "apt-cache show {1}" | xargs -r sudo apt install -y' + +# pass +alias pass='PASSWORD_STORE_ENABLE_EXTENSIONS=true pass fzf' + +# select background jobs +function job +{ + job=$(echo $(jobs | fzf +m -0 -1) | grep -Po '(?<=^\[)\d+') + [[ -n $job ]] && fg $job || return 0 +} diff --git a/shell/source/git.sh b/shell/source/git.sh new file mode 100644 index 0000000..7022a1b --- /dev/null +++ b/shell/source/git.sh @@ -0,0 +1,56 @@ +function git +{ + if [[ $1 = "review" ]]; then + shift + git.review $* + return $? + fi + + command git $* +} + +function git.review +{ + target=$1 + topic=$2 + + if [[ $# -eq 0 ]]; then + echo "git.review " + echo "No params provided. use defaults" + fi + + if [[ -z $target ]]; then + target_branch=$(grep defaultbranch= $(git rev-parse --show-toplevel)/.gitreview | cut -d= -f2 2> /dev/null) + if [[ -z $target_branch ]]; then + target=$(git trackshow) + echo "- defaultbranch not found in .gitreview, use current tracked $target" + else + remote=$(git trackshow | cut -d'/' -f1) + target="${remote}/${target_branch}" + fi + fi + + # validate remote branch exist + validate=$(git branch -r --format='%(refname:strip=2)' | grep -P "^${target}$") + remote=$(echo $validate | cut -d/ -f1) + branch=$(echo $validate | cut -d/ -f2-) + current_branch=$(git symbolic-ref --short HEAD) + + if [[ -z $topic && ! $current_branch = $branch ]]; then + topic="%topic=$(git symbolic-ref --short HEAD)" + elif [[ -n $topic && ! $topic = null ]]; then + topic="%topic=${topic}" + else + unset topic + fi + + if [[ -n $branch && -n $remote ]]; then + echo "CMD: git push $remote HEAD:refs/for/${branch}${topic}" + [[ $SHELL =~ zsh ]] && vared -p 'Submit ? [y] ' -c response || read -r -p 'Submit ? [y] ' response + if [[ $response = y ]]; then + git push $remote HEAD:refs/for/${branch}${topic} + fi + else + echo "Unable to find remote branch (git branch -r): $target" + fi +} diff --git a/shell/source/go.sh b/shell/source/go.sh new file mode 100644 index 0000000..ea11e0f --- /dev/null +++ b/shell/source/go.sh @@ -0,0 +1,19 @@ +unset GOROOT +path.append $HOME/.local/go/bin +which go &> /dev/null || return + +path.append $HOME/go/bin + +function go.test +{ + func=${1:-.*} + if [[ $func == *'/'* ]]; then + suite=$(echo $func | cut -d/ -f1) + func=$(echo $func | cut -d/ -f2) + else + suite=".*" + fi + # syntax error bash + # go test -run ^${suite}$ -testify.m ^(${func})$ -v . | ccze -A + go test -run ^${suite}$ -testify.m ^\(${func}\)$ -v . | ccze -A +} diff --git a/shell/source/gpg.sh b/shell/source/gpg.sh new file mode 100644 index 0000000..4a421b5 --- /dev/null +++ b/shell/source/gpg.sh @@ -0,0 +1,13 @@ +function gpg.import_and_trust +{ + if [[ ! -f $1 ]]; then + echo "missing pub key file: gpg.import_and_trust " + return + fi + + # import in keyring + gpg --import --armor $1 + kid=$(gpg --with-colons $1 | grep ^sub | cut -d: -f5) + # trust key + (echo trust &echo 5 &echo y &echo quit) | gpg --command-fd 0 --edit-key $kid +} diff --git a/shell/source/k8s.sh b/shell/source/k8s.sh new file mode 100644 index 0000000..8b7c899 --- /dev/null +++ b/shell/source/k8s.sh @@ -0,0 +1,158 @@ +which kubectl &> /dev/null || return + +# Load default kubeconfig if found +if [[ -f $HOME/.kube/config ]]; then + export KUBECONFIG=$HOME/.kube/config +elif [[ -r /etc/rancher/k3s/k3s.yaml ]]; then + export KUBECONFIG=/etc/rancher/k3s/k3s.yaml +fi + +which kubecolor &> /dev/null && \ + alias kubectl=kubecolor && \ + export KUBECOLOR_OBJ_FRESH="2m" + +function k { + local OPT=() + local PLUGIN_OPT=() + + current_namespace=$(k8s.current_namespace) + [[ -n $current_namespace && ! $* =~ '-n ' ]] && OPT+=("-n" $current_namespace) + + if [[ $1 =~ ^(d|desc)$ ]]; then + shift; set -- "describe" "${@:1}" + elif [[ $1 == get ]]; then + PLUGIN_OPT+=("--show-kind") + elif [[ $1 == g ]]; then + shift; set -- "get" "${@:1}" + PLUGIN_OPT+=("-o" "yaml") + fi + + kubectl ${OPT[@]} $* ${PLUGIN_OPT[@]} +} + +function argo { + local OPT=() + current_namespace=$(k8s.current_namespace) + [[ -n $current_namespace && ! $* =~ '-n ' ]] && OPT+=("-n" $current_namespace) + command argo ${OPT[@]} $* +} + +function k8s.current_namespace { + if [[ -n $KUBENS ]]; then + echo $KUBENS + else + command kubectl config view --minify -o jsonpath='{..namespace}' + fi +} + +function k8s.set_context_namespace { + command kubectl config set-context --current --namespace $1 2> /dev/null +} + +function k8s.set_shell_namespace { + export KUBENS=$1 +} + +function k8s.unset_shell_namespace { + unset KUBENS +} + +function _complete_kns +{ + local word=${COMP_WORDS[1]} + COMPREPLY=($(compgen -W "$(command kubectl get namespaces -o json | jq -r .items.[].metadata.name | xargs)" -- ${word})) +} + +complete -F _complete_kns k8s.set_shell_namespace +complete -F _complete_kns kns +complete -F _complete_kns k8s.set_context_namespace +complete -F _complete_kns knsc + +function k8s.list_containers_by_pod { + k get pods -o="custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,INIT-CONTAINERS:.spec.initContainers[*].name,CONTAINERS:.spec.containers[*].name" $* +} + +function k8s.list_running_containers_by_pod { + k get pods \ + --field-selector=status.phase=Running \ + -o="custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,INIT-CONTAINERS:.spec.initContainers[*].name,CONTAINERS:.spec.containers[*].name,LABELS:.metadata.labels" \ + $* +} + +function k8s.exec { + type=$1; shift + if [[ $# == 0 ]]; then + echo " -c " + echo + k8s.list_containers_by_pod + return + fi + [[ $type == "cmd" ]] && k exec -t $* + [[ $type == "shell" ]] && k exec -it $* -- sh +} + +function k8s.get_ns_logs { + stern -n $KUBENS --field-selector metadata.namespace=$KUBENS $* +} + +function k8s.get_port_forwarding { + k get svc -o json -A | jq '.items[] | {name:.metadata.name, p:.spec.ports[] } | select( .p.nodePort != null ) | "\(.name): localhost:\(.p.nodePort) -> \(.p.port) -> \(.p.targetPort)"' +} + +function k8s.get_all_resources { + if [[ $1 == all ]]; then + shift + k get deploy,replicaset,statefulset,pod,pvc,cm,secret,svc,$(k api-resources --verbs=list --namespaced -o name | grep -v events | sort | paste -d, -s) $* + else + k get deploy,replicaset,statefulset,pod,pvc,cm,secret,svc,$(k api-resources --verbs=list --namespaced -o name | grep ingress | sort | paste -d, -s) $* + fi +} + +function k8s.get_decrypted_secret { + secret=$1 + [[ $secret =~ ^secret/ ]] && secret=$(echo $secret | cut -d'/' -f2-) + k get secret $secret -o json | jq '.data | map_values(@base64d)' +} + +function _complete_ksec +{ + local word=${COMP_WORDS[1]} + COMPREPLY=($(compgen -W "$(k get secrets -o json | jq -r .items.[].metadata.name | xargs)" -- ${word})) +} +complete -F _complete_ksec ksec +complete -F _complete_ksec k8s.get_decrypted_secret + +function k8s.pod_netns_enter { + pod=$1 + [[ -z $pod ]] && echo "Missing pod" && return 1 + [[ $pod =~ ^pod/ ]] && pod=$(echo $pod | cut -d'/' -f2-) + + pod_id=$(crictl ps -o json | jq -r --arg pod $pod '.containers.[] | select(.labels."io.kubernetes.pod.name" == $pod) | .podSandboxId' | uniq) + netns=$(basename $(crictl inspectp $pod_id | jq -r '.info.runtimeSpec.linux.namespaces[] | select(.type=="network") | .path')) + + netns.enter $netns +} + +function k8s.get_last_traefik_config { + k logs -l app.kubernetes.io/name=traefik --tail 10000 --follow=false | grep 'Configuration received:' | sed -e 's/\\//g' -re 's/.*Configuration received: (.*)\".*/\1/' +} + +# alias k="k8s.kubectl" +alias kns="k8s.set_shell_namespace" +alias kunset="k8s.unset_shell_namespace" +alias knsc="k8s.set_context_namespace" +alias klc="k8s.list_running_containers_by_pod" +alias ks="k8s.exec shell" +alias kx="k8s.exec cmd" +alias klog="k8s.get_ns_logs" +alias kg="k8s.get_all_resources" +alias ksec="k8s.get_decrypted_secret" +alias knet="k8s.pod_netns_enter" +alias crictl="k3s crictl" + +if [[ $(basename $SHELL) == zsh ]]; then + # get zsh complete kubectl + source <(command kubectl completion zsh) + compdef k=kubectl + compdef kubecolor=kubectl +fi diff --git a/shell/source/netns.sh b/shell/source/netns.sh new file mode 100644 index 0000000..f4552e6 --- /dev/null +++ b/shell/source/netns.sh @@ -0,0 +1,33 @@ +netns.enter () { + ip netns exec $1 $SHELL +} + +alias nse=netns.enter + +function _complete_nse +{ + local word=${COMP_WORDS[1]} + COMPREPLY=($(compgen -W "$(ip netns list | awk '{print $1}' | xargs)" -- ${word})) +} + +complete -F _complete_nse netns.enter +complete -F _complete_nse nse + +netns.current () { + ip netns identify $$ + # netns=$(lsns -p $$ -t net -no NSFS) + # [[ -n $netns ]] && basename $netns +} + +netns.ps () { + ps ef $(ip netns pids $(netns.current)) +} + +netns.docker_mount () {( + set -e + name=$1 + pid=$(docker inspect -f '{{.State.Pid}}' $name) + [[ ! -d /var/run/netns/ ]] && mkdir -p /var/run/netns/ + ln -sfT /proc/$pid/ns/net /var/run/netns/$name + netns.enter $name +)} diff --git a/shell/source/nvm.sh b/shell/source/nvm.sh new file mode 100644 index 0000000..4cd1455 --- /dev/null +++ b/shell/source/nvm.sh @@ -0,0 +1,30 @@ +# Node JS +export NVM_DIR="$HOME/.nvm" + +function nodejs.install +{ + # mkdir ~/.nvm to auto install nodejs + mkdir -p $NVM_DIR + if [[ ! -f "$NVM_DIR/nvm.sh" ]]; then + echo "NodeJS install" + ( + git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR" + cd "$NVM_DIR" + git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)` + ) &> /dev/null + else + (cd $NVM_DIR && git pull) + fi + + source $NVM_DIR/nvm.sh + nvm install --lts + nvm alias default node + # sometimes node is installed with unknown user + chown -R ${USER}: $NVM_DIR +} + +function nodejs.load +{ + [[ -d $NVM_DIR ]] || return + [[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh" +} diff --git a/shell/source/openstack.sh b/shell/source/openstack.sh new file mode 100644 index 0000000..e82b9e1 --- /dev/null +++ b/shell/source/openstack.sh @@ -0,0 +1,166 @@ +export CLIFF_FIT_WIDTH=1 + +function os { + APPEND_OPTS=() + [[ "$*" =~ (show|list|create|issue) ]] && APPEND_OPTS+=("-f" "json") + [[ "$*" =~ (server list) ]] && APPEND_OPTS+=("-n") + [[ "$*" =~ (console log show|--help$| -h$| help$) ]] && APPEND_OPTS=() + if [[ $1 == "fip" ]]; then + shift; set -- "floating ip" "${@:1}" + elif [[ $1 == "lb" ]]; then + shift; set -- "loadbalancer" "${@:1}" + fi + + echo "${APPEND_OPTS[@]}" | grep -qw '\-f json' && PIPE_CMD="jq" || PIPE_CMD="tee" + + EXTRA_OPTS=() + # Require at least 2.24 to get migration id + abort + [[ "$*" =~ (server migration) ]] && EXTRA_OPTS+=("--os-compute-api-version" "2.24") + + openstack "${EXTRA_OPTS[@]}" $* "${APPEND_OPTS[@]}" | $PIPE_CMD +} + +function openstack.install_completion { + [[ $SHELL =~ zsh ]] && openstack complete | sed 's;local comp="${!i}";local comp="${(P)i}";' | sed -e '/.*_get_comp_words_by_ref.*/d' > ~/.bash_custom/openstack_complete.sh + [[ $SHELL =~ bash ]] && openstack complete > ~/.bash_custom/openstack_complete.sh + echo "complete -F _openstack os" >> ~/.bash_custom/openstack_complete.sh +} + +function openstack.unset_env { + unset $(env | grep '^OS_' | cut -d= -f1) 2> /dev/null +} + +function openstack.token { + export OSTOKEN=$(os token issue | jq -r .id) +} + +alias oss="os server" +alias osc="os compute" +alias osn="os network" +alias osb="os baremetal" +alias osv="os volume" +alias osi="os image" +alias op="openstack" +# nova +alias ossall="os server list --all --host" +# octavia +alias osl="os loadbalancer" +alias osla="os loadbalancer amphora list --loadbalancer" +alias ostoken="openstack.token" +alias osunset=openstack.unset_env + +if [[ -d ~/.os_openrc ]]; then + + function openstack.make_symlink_from_catalog + {( + file=${1:-openrc\..*} + cd ~/.os_openrc + for openrc in $(ls | grep -P "^$file$") + do + source $openrc + name=$(echo $openrc | sed -e 's/openrc\.//') + openstack catalog list -f json | jq -r '.[] | select(.Name == "nova") | .Endpoints| .[].region' | while read REGION + do + ln -sf $openrc ${REGION}__${name}.openrc + done + done + )} + + for openrc in $(ls ~/.os_openrc | grep -P '.openrc$'); do + name=$(echo $openrc | sed -e 's/.openrc$//' | tr '[:upper:]' '[:lower:]') + region=$(echo $openrc | sed -re 's/(.*)__.*/\1/' | tr '[:lower:]' '[:upper:]') + alias cr_${name}="openstack.unset_env; source ~/.os_openrc/$openrc; export OS_REGION_NAME=${region}" + done +fi + +function openstack.port_list +{ + if [[ $1 =~ ^([0-9]+\.){3} ]] ; then + os port list --long --fixed-ip ip-address=$1 + else + os port list --long --device-id $1 + fi +} + +function openstack.port_show +{ + os port show $(openstack.port_list $1 | jq -r .[0].ID) +} + +alias osports="openstack.port_list" +alias osport="openstack.port_show" + +function openstack.get_snat +{ + os network agent list --long --router $* +} + +alias osnat="openstack.get_snat" + +function openstack.log_color +{( + cmd=${1:-tail}; shift + opts=("$@") + + tail_opts=() + os_files=() + for f in ${opts[@]}; do + if [[ -e $f ]]; then + os_files+=($f) + shift + else + if [[ ${#os_files[@]} == 0 ]]; then + tail_opts+=($f) + shift + fi + fi + done + + if [[ ${#os_files[@]} == 0 ]]; then + echo "Need to pass valid files in args..." + return 1 + fi + + os_opts=$* + + [[ $cmd == "less" ]] && cat ${os_files[@]} | ~/.local/bin/os-log-color $os_opts | less -R + [[ $cmd == "tail" ]] && tail ${tail_opts[@]} -F ${os_files[@]} | ~/.local/bin/os-log-color $os_opts +)} + +alias otail="openstack.log_color tail" +alias olog="openstack.log_color less" + +function openstack.help_stestr +{ + cat< /dev/null && return + +function path.append +{ + case ":$PATH:" in + *":$1:"*) :;; # already there + *) PATH="$PATH:$1";; # or PATH="$PATH:$1" + esac +} + +function path.prepend +{ + case ":$PATH:" in + *":$1:"*) :;; # already there + *) PATH="$1:$PATH";; # or PATH="$PATH:$1" + esac +} + + +for p in /bin /usr/bin /usr/sbin /snap/bin /usr/local/bin $HOME/.local/bin; do + path.prepend $p +done + + diff --git a/shell/source/pyenv.sh b/shell/source/pyenv.sh new file mode 100644 index 0000000..bad59ce --- /dev/null +++ b/shell/source/pyenv.sh @@ -0,0 +1,113 @@ +# https://github.com/pyenv/pyenv-installer +export PYENV_ROOT="$HOME/.pyenv" + +# force run those command using pyenv python +alias pip="python3 -m pip" +alias pip3="python3 -m pip" +alias pipx="python3 -m pipx" +alias tox="python3 -m tox" + +function pyenv.load +{ + if [[ -d $PYENV_ROOT ]]; then + if [[ -f $PYENV_ROOT/bin/pyenv ]]; then + [[ $PATH =~ .*${PYENV_ROOT}.* ]] || path.prepend $PYENV_ROOT/bin + eval "$(pyenv init -)" + # https://github.com/pyenv/pyenv-virtualenv/issues/259#issuecomment-1096144748 + eval "$(pyenv virtualenv-init - | sed s/precmd/chpwd/g)" + _pyenv_virtualenv_hook + fi + export PYENV_VIRTUALENV_DISABLE_PROMPT=1 + else + echo "pyenv not installed. > pyenv-update" + fi +} + +[[ -d $PYENV_ROOT ]] && pyenv.load + +function pyenv.help +{ + echo " + # Install a specific python version + build virtualenv with it + $ apt-get install -y clang build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev + $ pyenv install -l + # use clang compiler if it raise error + $ pyenv install 3.9.0 || CC=clang pyenv install 3.9.0 + $ env PYTHON_CONFIGURE_OPTS='--enable-shared' pyenv install --verbose 3.9.13 + $ pyenv virtualenv 3.9.0 nvim + + # init working dir to autoload proper env + $ mkdir nvim && echo nvim > nvim/.python-version + $ pyenv versions + " +} + +function pyenv.install +{ + if [[ ! -f $PYENV_ROOT/bin/pyenv ]]; then + git clone https://github.com/pyenv/pyenv.git $PYENV_ROOT + git clone https://github.com/pyenv/pyenv-virtualenv.git $PYENV_ROOT/plugins/pyenv-virtualenv + else + (cd $PYENV_ROOT && git pull) + (cd $PYENV_ROOT/plugins/pyenv-virtualenv && git pull) + fi +} + +function pyenv.update +{ + pyenv.install +} + +function pyenv.setup_python_version +{ + [[ -z $VIRTUAL_ENV ]] && echo "VIRTUAL_ENV not set" && return + echo $(basename $VIRTUAL_ENV) > .python-version +} + +function pyenv.setup_flake +{ + project_root=$(utils.find_project_root .project) + [[ -z $project_root ]] && project_root=$(utils.find_project_root .git) + [[ -z $project_root ]] && echo "Project root not found" && return + + echo '[flake8] +max-line-length = 120' >> $project_root/.flake8 +} + +function pyenv.setup_pyright +{ + [[ -z $VIRTUAL_ENV ]] && echo "VIRTUAL_ENV not set" && return + VENV=$(basename $VIRTUAL_ENV) + VENVPATH=$(dirname $VIRTUAL_ENV) + + echo '{ + "venvPath": "VENVPATH", + "venv": "VENV", + "reportUnboundVariable": "information", + "reportOptionalMemberAccess": "information" + }' | sed "s,VENVPATH,$VENVPATH," | sed "s,VENV,$VENV," | jq > pyrightconfig.json +} + +function pyenv.setup +{ + [[ -z $VIRTUAL_ENV ]] && echo "VIRTUAL_ENV not set" && return + + pyenv.setup_python_version + pyenv.setup_pyright + pyenv.setup_flake +} + +function pyenv.activate { + pyenv activate $* +} + +alias pya="pyenv.activate" + +function _complete_pyenv_activate +{ + local word=${COMP_WORDS[1]} + COMPREPLY=($(compgen -W "$(find $PYENV_ROOT/versions -maxdepth 1 -type l -exec basename {} \; | xargs)" -- ${word})) +} + +complete -F _complete_pyenv_activate pyenv.activate +complete -F _complete_pyenv_activate pya diff --git a/shell/source/ruby.sh b/shell/source/ruby.sh new file mode 100644 index 0000000..acb2aca --- /dev/null +++ b/shell/source/ruby.sh @@ -0,0 +1,15 @@ +which ruby &> /dev/null || return + +mkdir -p $HOME/.gem +alias gem_install="gem install --user-install" + +# gem install bundler +# bundle install +export BUNDLE_PATH=$HOME/.gem +export GEM_HOME=$HOME/.gem + +if [[ -d $HOME/.gem/ruby ]]; then + v=$(ls $HOME/.gem/ruby | sort -rn | head -1) + GEM_PATH="$HOME/.gem/ruby/${v}/bin" + [[ -d $GEM_PATH ]] && path.append $GEM_PATH +fi diff --git a/shell/source/terraform.sh b/shell/source/terraform.sh new file mode 100644 index 0000000..a6676e6 --- /dev/null +++ b/shell/source/terraform.sh @@ -0,0 +1,55 @@ +which terraform &> /dev/null || return + +function tf +{ + OPTS="" + if [[ $1 == auto-approve ]]; then + shift + OPTS="-auto-approve" + fi + + # Set terraform state dir + # - default is local dir + # - TF_WORKSPACE -> ./terraform.d/$TF_WORKSPACE + if [[ -z $TF_WORKSPACE && -n $OS_REGION_NAME ]]; then + TF_DIR=$OS_REGION_NAME + elif [[ -n $TF_WORKSPACE ]]; then + TFDIR=$TF_WORKSPACE + fi + + [[ -z $TF_DIR ]] && unset TF_DIR || export TF_WORKSPACE=$TF_DIR + terraform $* $OPTS +} + +function terraform.set_workspace +{ + tf_workspace=$1 + [[ -n $tf_workspace ]] && export TF_WORKSPACE=$tf_workspace +} + +function terraform.unset_workspace +{ + unset TF_WORKSPACE +} + +function terraform.list_workspace +{ + [[ -d terraform.tfstate.d ]] && ls terraform.tfstate.d +} + +function _complete_tf_workspace +{ + local word=${COMP_WORDS[1]} + COMPREPLY=($(compgen -W "$(terraform.list_workspace | xargs)" -- ${word})) +} + + +alias tfy="tf auto-approve" +alias tfset=terraform.set_workspace +alias tfunset=terraform.unset_workspace + +complete -C $(which terraform) terraform +complete -C $(which terraform) tf +complete -C $(which terraform) tfy +complete -F _complete_tf_workspace terraform.set_workspace +complete -F _complete_tf_workspace tfset diff --git a/shell/source/utils.sh b/shell/source/utils.sh new file mode 100644 index 0000000..0947e40 --- /dev/null +++ b/shell/source/utils.sh @@ -0,0 +1,190 @@ +function utils.dotfiles_update +{ + [[ ! -e ~/.dotfiles ]] && return 1 + (cd ~/.dotfiles; git fetch; git stash save "$(date +"%m/%d/%Y") - $0"; git reset --hard origin/master) + [[ $SHELL =~ zsh ]] && exec zsh + [[ $SHELL =~ bash ]] && exec bash +} + +function utils.zsh_update +{ + [[ ! -d ~/.zsh ]] && return 1 + pwd=$(pwd) + maxwidth=0 + for module in $(ls ~/.zsh); do + width=$(echo $module | wc -c) + [[ $width -gt $maxwidth ]] && maxwidth=$width + done + set +o monitor + echo "* Update zsh modules (~/.zsh):" + for module in $(ls ~/.zsh); do + ( + cd ~/.zsh/$module + git fetch |& > /dev/null + git reset --hard origin/master |& > /dev/null + if [[ $? -eq 0 ]]; then + value=$(colors.print 10 OK) + else + value=$(colors.print 9 FAIL) + fi + commit=$(git rev-parse --short HEAD) + mod=$(printf "[%-${maxwidth}s]" $module) + printf "%s master[%s]: %s\n" "$(colors.print 13 $mod)" $(colors.print 244 $commit) $value + )& + done + wait + set -o monitor + cd $pwd + exec zsh +} + +function utils.json () +{ + jq=$(which jq) + if [[ -n $jq ]]; then + $jq . + else + python -mjson.tool + fi +} + +function utils.json2yaml () +{ + python -c 'import sys, yaml, json; yaml.safe_dump(json.load(sys.stdin), sys.stdout, default_flow_style=False)' +} + +function utils.uuid () +{ + grep -Po '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}' +} + +# useful to parse docker json logs for ex: docker logs bla | jqlines +function utils.jqlines +{ + jq -Rr '. as $line | (fromjson?) // $line' +} + +# same as jqlines, but interpret \n \t to display properly json value like long stacktrace +function utils.jqlines_format +{ + jq -CRr '. as $line | (fromjson?) // $line' | sed -e 's/\\n/\n/g' -e 's/\\t/ /g' +} + +function utils.jqmap2csv +{ + jq -r '(.[0] | keys_unsorted) as $keys | ([$keys] + map([.[ $keys[] ]])) [] | @csv' +} + +# csv to table display +function utils.pretty_csv { + column -t -s, -n "$@" | less -F -S -X -K +} + +function utils.ssl_info +{ + [[ -z $1 ]] && echo "need domain" && return + + echo -e "== brief info ==" + echo | openssl s_client -connect $1 -brief + + echo -e "\n== Chain Info ==" + echo | openssl s_client -showcerts -connect $1 2>&1 | \ + sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p;/-END CERTIFICATE-/a\\x0' | \ + sed -e '$ d' | xargs -0rl -I% sh -c "echo '%' | openssl x509 -subject -issuer -fingerprint -sha1 -dates -noout" +} + +function utils.ssl_get +{ + [[ -z $1 ]] && echo "need domain" && return + + echo | \ + openssl s_client -showcerts -connect $1 =0.29, taskset + * Remote: xdpyinfo,pulseaudio + + yay -S netevent-git mpv wmctrl tevent vid.stab libvdpau-va-gl" + + echo + echo "Reinit config: + * rm ~/.config/ssh-rdp*config + and ssh-rdp -u user -s remote" + + echo + echo "Ex: without fwd audio + ssh-rdp -u ju -s desk --audioenc null + " +} + +function utils.wireguard_toggle +{ + iface=$(ip --json link show | jq -r '.[] | select(.ifname | test("^wg")) | .ifname') + if [[ -n $iface ]]; then + wg-quick down $iface + else + broadcast=$(ip --json a show | jq -r '.[] | select(.operstate == "UP") | .addr_info.[0].broadcast' | head -1) + if [[ $broadcast == 192.168.1.255 ]]; then + # Do not route 192.168.1.0/24 in tunnel + wg-quick up wg1 + else + wg-quick up wg0 + fi + fi +} + +function utils.find_project_root +{( + rootdir_pattern=${1:-.project} + + prev=. + while [[ $PWD != "$prev" ]] ; do + proot=$(find "$PWD" -maxdepth 1 -name $rootdir_pattern | grep .) + [[ $? -eq 0 ]] && dirname $proot && exit + prev=$PWD + cd .. + done +)} + +alias dotup="utils.dotfiles_update" +alias zup="utils.zsh_update" +alias json="utils.json" +alias ssl_info="utils.ssl_info" +alias ssl_get="utils.ssl_get" +alias randpass="utils.randpass" +alias randpass64="utils.randpass_b64" +alias passgen="utils.randpass" +alias passgen64="utils.randpass_b64" +alias uuid="utils.uuid" +alias wg-toggle="utils.wireguard_toggle" diff --git a/shell/source/xdg.sh b/shell/source/xdg.sh new file mode 100644 index 0000000..978c6f5 --- /dev/null +++ b/shell/source/xdg.sh @@ -0,0 +1,90 @@ +function xdg.get_extension_mimetype +{ + extension=$1 + if [[ -z $extension ]]; then + echo "Need file extension" + return 1 + fi + + if [[ -f $extension ]]; then + file=$extension + else + file=/tmp/get_extension_mimetype.${extension} + touch $file + clean=1 + fi + + xdg-mime query filetype $file + [[ $clean -eq 1 ]] && rm -f $file +} + +function xdg.list_known_applications +{ + find /usr/share/applications $HOME/.local/share/applications -name '*.desktop' | while read desktop; do + basename $desktop + done | sort +} + +function xdg.show_application +{ + application=$1 + app_path=$(find /usr/share/applications $HOME/.local/share/applications -name '*.desktop' | grep $application) + echo -n "File: $app_path\n\n" + cat $app_path +} + +function xdg.get_default_application +{ + extension=$1 + xdg-mime query default $(xdg.get_extension_mimetype $extension) +} + +function xdg.set_default_application +{ + file_or_extension=$1 + app=$2 + + if [[ $# -ne 2 ]]; then + echo "xdg.set_default_application " + return 1 + fi + + mime=$(xdg.get_extension_mimetype $file_or_extension) + xdg.list_known_applications | grep -q "$app" + [[ $? -ne 0 ]] && echo "Unknown app" && return 1 + + xdg-mime default $app $mime +} + +function xdg.open +{ + nohup xdg-open "$*" /tmp/open.log 2>&1 & +} + +function xdg.apply_mimetype +{ + desktop=$1 + [[ -z $desktop ]] && "Need file.desktop with MimeType=.." && return + for t in $(cat $desktop | grep MimeType= | cut -d= -f2- | tr -s ';' ' '); do + xdg-mime default $desktop $t && \ + echo "$desktop applied default for type: $t" + done +} + +function _complete_known_app +{ + local cur=${COMP_WORDS[1]} + [[ $COMP_CWORD -eq 1 ]] && COMPREPLY=($(compgen -f -- "${word}")) + [[ $COMP_CWORD -eq 2 ]] && COMPREPLY=($(compgen -W "$(xdg.list_known_applications)" -- ${cur})) +} + +function _complete_known_app2 +{ + local cur=${COMP_WORDS[1]} + COMPREPLY=($(compgen -W "$(xdg.list_known_applications)" -- ${cur})) +} + +complete -F _complete_known_app xdg.set_default_application +complete -F _complete_known_app2 xdg.show_application + +alias open="xdg.open" diff --git a/shell/zsh/bash.zsh b/shell/zsh/bash.zsh new file mode 100644 index 0000000..ae3157f --- /dev/null +++ b/shell/zsh/bash.zsh @@ -0,0 +1,31 @@ +# +# bash compatibility plugin +# + +function fg { + if [[ $# -eq 1 && $1 = - ]]; then + builtin fg %- + else + builtin fg %"$@" + fi +} + +# allow regex +setopt NO_NOMATCH + +# source bash aliases/completion/functions +[[ -e ~/.bash_aliases ]] && source ~/.bash_aliases + +if [[ -e ~/.shell ]]; then + for src in $(find ~/.shell/ -type f -follow -name '*.sh' ); do + source $src + done +fi + +[[ -d ~/.shell/completions ]] && source ~/.shell/completions/* + +for dir in /etc/profile.d/ ~/.bash_custom/; do + if [[ -d $dir ]]; then + for src in $(find $dir -type f -name '*.sh'); do source $src 2> /dev/null; done + fi +done diff --git a/shell/zsh/default.zsh b/shell/zsh/default.zsh new file mode 100644 index 0000000..8996e2e --- /dev/null +++ b/shell/zsh/default.zsh @@ -0,0 +1,10 @@ +# history +export HISTORY_IGNORE="(ls|cd|pwd|cd ..)" +export HISTSIZE=500000 +export SAVEHIST=500000 +setopt append_history +setopt hist_ignore_all_dups +setopt hist_ignore_space +setopt share_history + +export PROMPT_EOL_MARK='' diff --git a/shell/zsh/rehash.zsh b/shell/zsh/rehash.zsh new file mode 100644 index 0000000..fd6c51d --- /dev/null +++ b/shell/zsh/rehash.zsh @@ -0,0 +1,10 @@ +autoload -U add-zsh-hook + +# rehash on SIGUSR1 +TRAPUSR1() { rehash }; + +# anything newly intalled from last command? +precmd_install() { [[ $history[$[ HISTCMD -1 ]] == *(apt|apt-get|yay|pacman|pamac|pip)* ]] && killall -u $USER -USR1 zsh } + +# do this on precmd +add-zsh-hook precmd precmd_install diff --git a/shell/zsh/theme.zsh b/shell/zsh/theme.zsh new file mode 100644 index 0000000..7d9ff49 --- /dev/null +++ b/shell/zsh/theme.zsh @@ -0,0 +1,37 @@ +function __get_host_color +{ + HOST_COLOR_ARRAY=(5 11 12 13 14 39 45 69 99 123 135 159 202) + fixed_nb=$(awk '{print $1}' <(md5sum <(hostname)) | sed -re 's/[^0-9]//g' | cut -c 1-10) + array_size=${#HOST_COLOR_ARRAY[@]} + color_index=$(((fixed_nb%array_size) + 1)) # Index start at 1 in zsh + echo ${HOST_COLOR_ARRAY[$color_index]} +} + +# Layout +BLOX_SEG__UPPER_LEFT=(time netns docker openstack kube host cwd git exec_time) +BLOX_SEG__UPPER_RIGHT=(terraform nodejs virtualenv pyenv git_repo_name) +BLOX_SEG__LOWER_LEFT=(bgjobs symbol) +BLOX_SEG__LOWER_RIGHT=() + +BLOX_BLOCK__SYMBOL_SYMBOL="❭" +BLOX_CONF__ONELINE=false +BLOX_CONF__UNIFIED_PROMPT=false +BLOX_CONF__PROMPT_PREFIX="\n" +BLOX_BLOCK__HOST_USER_SHOW_ALWAYS=true +BLOX_BLOCK__HOST_MACHINE_SHOW_ALWAYS=false +BLOX_BLOCK__HOST_MACHINE_SHOW_FQDN=true +BLOX_BLOCK__HOST_USER_COLOR='magenta' +BLOX_BLOCK__HOST_MACHINE_COLOR="$(__get_host_color)" +BLOX_BLOCK__HOST_USER_ROOT_COLOR='9' +BLOX_BLOCK__CWD_COLOR='242' +BLOX_BLOCK__CWD_TRUNC='4' +BLOX_BLOCK__GIT_BRANCH_COLOR='245' +BLOX_BLOCK__GIT_CLEAN_SYMBOL="" +BLOX_BLOCK__GIT_DIRTY_SYMBOL="" +BLOX_BLOCK__GIT_UNPULLED_SYMBOL="" +BLOX_BLOCK__GIT_UNPUSHED_SYMBOL="" +BLOX_BLOCK__GIT_STASHED_SYMBOL="" +BLOX_BLOCK__GIT_TAG_DISABLED=1 +BLOX_BLOCK__VIRTUALENV_COLOR='214' +BLOX_BLOCK__BGJOBS_COLOR='110' +BLOX_BLOCK__TIME_COLOR='239' diff --git a/shell/zshrc b/shell/zshrc new file mode 100644 index 0000000..714de48 --- /dev/null +++ b/shell/zshrc @@ -0,0 +1,26 @@ +# vim: set ft=sh: + +# uncomment for profiling +# zmodload zsh/zprof +source ~/.shell/source/path.sh + +[[ ! -d ~/.zsh ]] && mkdir ~/.zsh +[[ ! -d ~/.zsh/myzsh ]] && git clone https://github.com/jcosmao/myzsh.git ~/.zsh/myzsh +[[ ! -d ~/.zsh/blox-zsh-theme ]] && git clone https://github.com/jcosmao/blox-zsh-theme.git ~/.zsh/blox-zsh-theme +[[ ! -d ~/.zsh/zsh-syntax-highlighting ]] && git clone https://github.com/jcosmao/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting +[[ ! -d ~/.zsh/zsh-bash-completions-fallback ]] && git clone https://github.com/jcosmao/zsh-bash-completions-fallback.git ~/.zsh/zsh-bash-completions-fallback + +fpath=(~/.zsh/myzsh/lib ~/.zsh/myzsh/plugins/wd ~/.zsh/zsh-syntax-highlighting ~/.shell/completions $fpath) + +for l in $(ls ~/.zsh/myzsh/lib/); do source ~/.zsh/myzsh/lib/$l; done +for f in $(find ~/.shell/ -name '*.zsh'); do source $f; done +source ~/.zsh/myzsh/plugins/wd/*.zsh +source ~/.zsh/blox-zsh-theme/blox.zsh +source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +source ~/.zsh/zsh-bash-completions-fallback/zsh-bash-completions-fallback.plugin.zsh + +# uncomment for profiling +# zprof + +autoload -U +X bashcompinit && bashcompinit +complete -o nospace -C /home/jcosmao/go/bin/terraform terraform diff --git a/tmux/find_window.sh b/tmux/find_window.sh new file mode 100755 index 0000000..24c76e0 --- /dev/null +++ b/tmux/find_window.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +user=${LC_BASTION:-$USER} + +tmux -L $user list-windows -F '#{window_id} #{window_name}' | while read id name; do + echo $name | grep -Pq $1 && \ + tmux -L $user select-window -t "$id" && \ + exit +done + +exit 0 diff --git a/tmux/move_window.sh b/tmux/move_window.sh new file mode 100755 index 0000000..059d308 --- /dev/null +++ b/tmux/move_window.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +user=${LC_BASTION:-$USER} + +if [[ $# == 0 ]]; then + echo "$0 " + exit 1 +fi + +target_index=$1 +current=$(tmux -L $user display-message -p -F '#{window_index}') +current_window=${2:-$current} + +if [[ $target_index > $current_window ]]; then + min=$current_window + max=$target_index + run=1 +else + min=$target_index + max=$current_window + run=$(( max - min )) +fi + +tmux -L $user select-window -t $min + +for r in $(seq 1 $run); do + for ((i=$min; i<$max; i++)) + do + tmux -L $user swap-window -s :$i -t :$((i+1)) + done +done + +tmux -L $user select-window -t $target_index diff --git a/tmux/order_windows.sh b/tmux/order_windows.sh new file mode 100755 index 0000000..3a10b67 --- /dev/null +++ b/tmux/order_windows.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +user=${LC_BASTION:-$USER} + +tmux -L $user list-windows | awk -v user="$user" -F: '{system("tmux -L "user" move-window -s "$1" -t 100"$1)}' +tmux -L $user list-windows | sort -sk2 | awk -v user="$user" -F: '{system("tmux -L "user" move-window -s "$1" -t "(NR))}' diff --git a/tmux/tm b/tmux/tm new file mode 100755 index 0000000..7687d62 --- /dev/null +++ b/tmux/tm @@ -0,0 +1,198 @@ +#!/usr/bin/env bash +# +# tmux wrapper - help manage sessions in multi user env +# +DEBUG=0 + +function _debug () +{ + if [[ $DEBUG == 1 ]]; then + echo "[DEBUG] $*" + fi +} + +function tmux_conf () +{ + # Check if user config file exits + if [[ -e "$HOME/.tmux.conf" ]]; then + tmux_conf="$HOME/.tmux.conf" + else + tmux_conf='/etc/tmux/tmux.conf' + fi + + echo $tmux_conf +} + +function tmux_ls () +{ + $tmux_cmd ls -F "#{session_name}" 2> /dev/null + return 0 +} + +function tmux_attach_or_new () +{ + session_name=$1 + + # set terminal title + echo -ne "\033]0;$session_name\007" + + if [[ $( tmux_ls | grep -Ec "^$session_name$") == 1 ]]; then + my_session=$(tmux display-message -p '#S' 2> /dev/null) + if [[ -n $TMUX ]]; then + _debug "$tmux_cmd switch-client -t $session_name" + $tmux_cmd switch-client -t $session_name + else + _debug "$tmux_cmd attach-session -t $session_name" + $tmux_cmd attach-session -t "$session_name" + fi + else + _debug "$tmux_cmd new -s $session_name -d" + $tmux_cmd new -s "$session_name" -d + [[ $? -ne 0 ]] && echo "Unable to create session $session_name" && return + + tmux_attach_or_new $session_name + fi +} + +function tmux_exec () +{ + session=$1; shift + cmd="$*" + + current_host=$(hostname -s) + + [[ $( tmux_ls | grep -Ec "^$session$" ) -eq 0 ]] && echo "No tmux session $session" && exit 1 + session_id=$( $tmux_cmd ls -F "#{session_name}:#{session_id}" | grep -P "^$session:" | cut -d: -f2) + + echo "Exec '$cmd' on all windows for tmux session '$session' id = $session_id" + read -r -p "Sure ? [y/N] " response + response=${response,,} # tolower + + if [[ $response =~ ^(yes|y)$ ]]; then + for window_id in $( $tmux_cmd list-windows -F "#{window_id}" -t "$session" ); do + _debug "send-keys -t ${session_id}:${window_id} '${cmd}'" + $tmux_cmd send-keys -t "${session_id}:${window_id}" "[[ \$(hostname -s) != $current_host ]] && ( $cmd )" C-m + done + fi +} + +function tmux_kill () +{ + if [[ "$1" == "all" ]]; then + _debug "$tmux_cmd kill-server" + $tmux_cmd kill-server + else + _debug "$tmux_cmd kill-session -t $1" + $tmux_cmd kill-session -t "$1" + fi +} + +function dump() { + local d=$'\t' + $tmux_cmd list-windows -a -F "#S${d}#W${d}#{pane_current_path}" +} + +function save() { + dump > ~/.tmux-session +} + +function terminal_size() { + stty size 2>/dev/null | awk '{ printf "-x%d -y%d", $2, $1 }' +} + +function session_exists() { + $tmux_cmd has-session -t "$1" 2>/dev/null +} + +function add_window() { + $tmux_cmd new-window -d -t "$1:" -n "$2" -c "$3" +} + +function new_session() { + cd "$3" && $tmux_cmd new-session -d -s "$1" -n "$2" $4 +} + +function restore() { + $tmux_cmd start-server + local count=0 + local dimensions="$(terminal_size)" + + while IFS=$'\t' read session_name window_name dir; do + if [[ -d "$dir" && $window_name != "log" && $window_name != "man" ]]; then + if session_exists "$session_name"; then + add_window "$session_name" "$window_name" "$dir" + else + new_session "$session_name" "$window_name" "$dir" "$dimensions" + count=$(( count + 1 )) + fi + fi + done < ~/.tmux-session + + echo "restored $count sessions" +} + +function print_help () +{ + bin=$(basename "$0") + + [[ $# -ne 0 ]] && echo -e "\nERROR: $@\n" + + echo " + Tmux wrapper + config file: $(tmux_conf) + search conf in: + - $HOME/.tmux.conf + - /etc/tmux/tmux.conf + + $bin [--exec |--kill] + + options: + --exec exec cmd on all session windows + --kill kill session + --save save sessions layout in ~/.tmux-session + --restore restore sessions from ~/.tmux-session + --help this help + + Ex: $bin > list opened sessions + $bin plop > create/attach session plop + $bin --exec 'ls -l' plop > exec cmd on all windows in session 'plop'" + + exit +} + +function main () +{ + export tmux_cmd="$(which tmux) -2 -L $USER -f $(tmux_conf)" + + [[ $# -eq 0 ]] && tmux_ls && exit + + while [[ $# -ne 0 ]]; do + arg="$1"; shift + case "$arg" in + --exec ) cmd="$1"; shift ;; + --kill ) kill=1;; + --save ) save ; exit ;; + --restore ) restore ; exit ;; + --debug ) export DEBUG=1 ;; + --help ) print_help ;; + * ) [[ $arg =~ ^--+.* ]] && print_help "$arg unknown" + if [[ -z $session ]]; then + session="$arg" + else + print_help "session name already set ($session)" + fi + esac + done + + [[ ! -n $session ]] && print_help "Missing session_name" + + if [[ -n $cmd ]]; then + tmux_exec "$session" "$cmd" + elif [[ $kill -eq 1 ]]; then + tmux_kill "$session" + else + tmux_attach_or_new "$session" + fi +} + +main "$@" diff --git a/tmux/tm.completion b/tmux/tm.completion new file mode 100644 index 0000000..7e8b307 --- /dev/null +++ b/tmux/tm.completion @@ -0,0 +1,11 @@ +# vim: ft=sh + +# tmux functions +function _complete_tm_session +{ + COMPREPLY=() + local session_name="${COMP_WORDS[COMP_CWORD]}" + COMPREPLY=($(compgen -W "$(tm)" -- "$session_name") $( tm --help | grep -Eo '\-\-\w+' 2> /dev/null | sort -u | xargs)) +} + +complete -F _complete_tm_session tm diff --git a/tmux/tmux-migrate-options.py b/tmux/tmux-migrate-options.py new file mode 100755 index 0000000..9654d22 --- /dev/null +++ b/tmux/tmux-migrate-options.py @@ -0,0 +1,139 @@ +#!/usr/bin/env python +# vim: set fileencoding=utf-8 +# +# USAGE: +# Back up your tmux old config, run the script and redirect stdout to your conf +# file. Example: +# +# $ cp ~/.tmux.conf ~/.tmux.conf.orig +# $ python ./tmux-migrate-options.py ~/.tmux.conf.orig > ~/.tmux.conf +# +# +# PURPOSE: +# This script accepts the path to a tmux conf file to read, then combines the +# deprecated -fg, -bg, and -attr options into the new -style option, and +# prints the updated tmux conf to stdout. The deprecated options were flagged +# for removal in tmux v1.9, and then removed in tmux v2.9 years later. +# +# The script will place the new "-style" option at the location of the last +# matching prefix for that option family. This means if your config file had +# a triplet of "window-status-bg", "window-status-fg", and "window-status-attr" +# settings, they will be merged into one line at that location with the option +# "window-status-style bg=...,fg=...,", in that order. +# +# If your config file has duplicate settings for, say, -fg, they will all +# appear on the same -style option line, in the same order which should give +# the same effect as before. +# +# The parser used here is a naive regex which should be enough for most configs. +# There is *no effort* to handle tmux conditional lines or cases where you +# already have -style options as well as old -fg, -bg, -attr options. +# If you rely on those to set colors and styles, then you may want to avoid +# this script as it will break your config. +# --- +# ISC License (ISC) +# +# Copyright 2019 April | tbutts +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. +# +from __future__ import print_function, unicode_literals +from io import open + +import os +import re +import sys + + +if len(sys.argv) < 2: + sys.exit("[ERR] specify path to tmux config file") + +tmux_conf = sys.argv[1] + +with open(tmux_conf, mode='r', encoding='utf-8') as tmux_file: + content = tmux_file.readlines() + +if not content: + sys.exit("[ERR] tmux config file appears to be empty") + +OPTION_PREFIXES = [ + "message-command-", + "message-", + "mode-", + "pane-active-border-", + "pane-border-", + "status-left-", + "status-right-", + "status-", + "window-active-", + "window-status-activity-", + "window-status-bell-", + "window-status-current-", + "window-status-last-", + "window-status-", + "window-", +] + +SET_OPTION_RE = r""" + ^\s*[^#]* # ignore comment lines + (?Pset\S*\s+-g) # set, setw, set-option, etc. + \s+ + {prefix} # any of the above option strings + (?P