diff --git a/.config/X11/xinitrc b/.config/X11/xinitrc deleted file mode 100644 index 4a7c6e8..0000000 --- a/.config/X11/xinitrc +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -xrdb -merge ~/.Xresources -[ -f "$HOME/.xprofile" ] && . ~/.xprofile -#xrdb -merge ~/.Xresources -wal -n -i ~/.config/wall.png -b '#000000' -while true; do - # Log stderror to a file - #dwm 2> ~/.dwm.log - # No error logging - dwm >/dev/null 2>&1 -done -#exec i3 -#exec bspwm diff --git a/.config/Xresources b/.config/Xresources deleted file mode 100644 index c883396..0000000 --- a/.config/Xresources +++ /dev/null @@ -1,208 +0,0 @@ -!! Transparency (0-1): -*.alpha: 0.8 -st.alpha: 0.1 - -!! Set a default font and font size as below: - -*.dpi: 180 - -/* name dark light */ -/* black 0 8 */ -/* red 1 9 */ -/* green 2 10 */ -/* yellow 3 11 */ -/* blue 4 12 */ -/* purple 5 13 */ -/* cyan 6 14 */ -/* white 7 15 */ - -/* !! gruvbox: */ -/* *.color0: #1d2021 */ -/* *.color1: #cc241d */ -/* *.color2: #98971a */ -/* *.color3: #d79921 */ -/* *.color4: #458588 */ -/* *.color5: #b16286 */ -/* *.color6: #689d6a */ -/* *.color7: #a89984 */ -/* *.color8: #928374 */ -/* *.color9: #fb4934 */ -/* *.color10: #b8bb26 */ -/* *.color11: #fabd2f */ -/* *.color12: #83a598 */ -/* *.color13: #d3869b */ -/* *.color14: #8ec07c */ -/* *.color15: #ebdbb2 */ -/* *.color256: #1d2021 */ -/* *.color257: #ebdbb2 */ - -/* !! gruvbox light: */ -/* *.color0: #fbf1c7 */ -/* *.color1: #cc241d */ -/* *.color2: #98971a */ -/* *.color3: #d79921 */ -/* *.color4: #458588 */ -/* *.color5: #b16286 */ -/* *.color6: #689d6a */ -/* *.color7: #7c6f64 */ -/* *.color8: #928374 */ -/* *.color9: #9d0006 */ -/* *.color10: #79740e */ -/* *.color11: #b57614 */ -/* *.color12: #076678 */ -/* *.color13: #8f3f71 */ -/* *.color14: #427b58 */ -/* *.color15: #3c3836 */ -/* *.background: #fbf1c7 */ -/* *.foreground: #282828 */ -/* st.alpha: 0.9 */ - -/* !! brogrammer: */ -/* *.foreground: #d6dbe5 */ -/* *.background: #131313 */ -/* *.color0: #1f1f1f */ -/* *.color8: #d6dbe5 */ -/* *.color1: #f81118 */ -/* *.color9: #de352e */ -/* *.color2: #2dc55e */ -/* *.color10: #1dd361 */ -/* *.color3: #ecba0f */ -/* *.color11: #f3bd09 */ -/* *.color4: #2a84d2 */ -/* *.color12: #1081d6 */ -/* *.color5: #4e5ab7 */ -/* *.color13: #5350b9 */ -/* *.color6: #1081d6 */ -/* *.color14: #0f7ddb */ -/* *.color7: #d6dbe5 */ -/* *.color15: #ffffff */ -/* *.colorBD: #d6dbe5 */ - -/* ! base16 */ -/* *.color0: #181818 */ -/* *.color1: #ab4642 */ -/* *.color2: #a1b56c */ -/* *.color3: #f7ca88 */ -/* *.color4: #7cafc2 */ -/* *.color5: #ba8baf */ -/* *.color6: #86c1b9 */ -/* *.color7: #d8d8d8 */ -/* *.color8: #585858 */ -/* *.color9: #ab4642 */ -/* *.color10: #a1b56c */ -/* *.color11: #f7ca88 */ -/* *.color12: #7cafc2 */ -/* *.color13: #ba8baf */ -/* *.color14: #86c1b9 */ -/* *.color15: #f8f8f8 */ - -/* !! solarized */ -/* *.color0: #073642 */ -/* *.color1: #dc322f */ -/* *.color2: #859900 */ -/* *.color3: #b58900 */ -/* *.color4: #268bd2 */ -/* *.color5: #d33682 */ -/* *.color6: #2aa198 */ -/* *.color7: #eee8d5 */ -/* *.color9: #cb4b16 */ -/* *.color8: #fdf6e3 */ -/* *.color10: #586e75 */ -/* *.color11: #657b83 */ -/* *.color12: #839496 */ -/* *.color13: #6c71c4 */ -/* *.color14: #93a1a1 */ -/* *.color15: #fdf6e3 */ - -/* !! xterm */ -/* *.color0: #000000 */ -/* *.color1: #cd0000 */ -/* *.color2: #00cd00 */ -/* *.color3: #cdcd00 */ -/* *.color4: #0000cd */ -/* *.color5: #cd00cd */ -/* *.color6: #00cdcd */ -/* *.color7: #e5e5e5 */ -/* *.color8: #4d4d4d */ -/* *.color9: #ff0000 */ -/* *.color10: #00ff00 */ -/* *.color11: #ffff00 */ -/* *.color12: #0000ff */ -/* *.color13: #ff00ff */ -/* *.color14: #00ffff */ -/* *.color15: #aabac8 */ -/* *.background: #000000 */ - -/* ! Dracula Xresources palette */ -/* *.foreground: #F8F8F2 */ -/* *.background: #282A36 */ -/* *.color0: #000000 */ -/* *.color8: #4D4D4D */ -/* *.color1: #FF5555 */ -/* *.color9: #FF6E67 */ -/* *.color2: #50FA7B */ -/* *.color10: #5AF78E */ -/* *.color3: #F1FA8C */ -/* *.color11: #F4F99D */ -/* *.color4: #BD93F9 */ -/* *.color12: #CAA9FA */ -/* *.color5: #FF79C6 */ -/* *.color13: #FF92D0 */ -/* *.color6: #8BE9FD */ -/* *.color14: #9AEDFE */ -/* *.color7: #BFBFBF */ -/* *.color15: #E6E6E6 */ - -/* *.background: .color0 */ -/* *.color256: 0#1d2021 */ -/* *.color257: 15#ebdbb2 */ - - -/* !nord */ -#define bblack #000000 -#define nord0 #2E3440 -#define nord1 #3B4252 -#define nord2 #434C5E -#define nord3 #4C566A -#define nord4 #D8DEE9 -#define nord5 #E5E9F0 -#define nord6 #ECEFF4 -#define nord7 #8FBCBB -#define nord8 #88C0D0 -#define nord9 #81A1C1 -#define nord10 #5E81AC -#define nord11 #BF616A -#define nord12 #D08770 -#define nord13 #EBCB8B -#define nord14 #A3BE8C -#define nord15 #B48EAD - -*.foreground: nord4 -*.background: bblack -*.cursorColor: nord4 -*fading: 35 -*fadeColor: nord3 - -Sxiv.font: monospace-10 -Sxiv.txtcolor: nord6 -Sxiv.background: bblack -Sxiv.foreground: nord6 - -xterm*saveLines: 2000 - -*.color0: nord1 -*.color1: nord11 -*.color2: nord14 -*.color3: nord13 -*.color4: nord9 -*.color5: nord15 -*.color6: nord8 -*.color7: nord5 -*.color8: nord3 -*.color9: nord11 -*.color10: nord14 -*.color11: nord13 -*.color12: nord9 -*.color13: nord15 -*.color14: nord7 -*.color15: nord6 diff --git a/.config/aliasrc b/.config/aliasrc deleted file mode 100644 index 7c2fd68..0000000 --- a/.config/aliasrc +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh - -# Use neovim for vim if present. -command -v nvim >/dev/null && alias vim="nvim" vimdiff="nvim -d" - -# Verbosity and settings that you pretty much just always are going to want. -alias \ - bat="cat /sys/class/power_supply/BAT?/capacity" \ - cp="cp -iv" \ - mv="mv -iv" \ - rm="rm -v" \ - mkd="mkdir -pv" \ - yt="youtube-dl --add-metadata -o '%(upload_date)s-%(title)s.%(ext)s' -i" \ - yta="yt -x --add-metadata -f bestaudio/best" -o '%(upload_date)s-%(title)s.%(ext)s'\ - ffmpeg="ffmpeg -hide_banner" \ - sage="sage -q" \ - abook="abook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook" - -# Colorize commands when possible. -alias \ - ls="ls -hN --color=auto --group-directories-first" \ - grep="grep --color=auto" \ - diff="diff --color=auto" \ - ccat="highlight --out-format=ansi" - -# These common commands are just too long! Abbreviate them. -alias \ - ka="killall" \ - g="git" \ - trem="transmission-remote" \ - YT="youtube-viewer" \ - sdn="sudo shutdown -h now" \ - f="$FILE" \ - e="$EDITOR" \ - v="$EDITOR" \ - p="sudo pacman" \ - xi="sudo xbps-install" \ - xr="sudo xbps-remove -R" \ - xq="xbps-query" \ - z="zathura"\ - q="exit"\ - dunstpause="notify-send 'dunst' 'Pausing dunst...'; sleep 2; notify-send 'DUNST_COMMAND_PAUSE'"\ - dunstresume="notify-send 'dunst' 'Resuming dunst...' && notify-send 'DUNST_COMMAND_RESUME'"\ - glog="git log --all --graph --decorate"\ - clog="config log --all --graph --decorate"\ - cam="mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o-set=input_format=mjpeg av://v4l2:/dev/video0"\ - pa="paru" - -# Some other stuff -alias \ - magit="nvim -c MagitOnly" \ - ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/zshnameddirrc" \ - weath="less -S ${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" \ - tmux="tmux -f ${XDG_CONFIG_HOME:-$HOME/.config}/tmux/tmux.conf"\ - cast="mkchromecast --video --control -i"\ - castaudio="mkchromecast --control --screencast --b 320"\ - -alias config='/usr/bin/git --git-dir=/home/alex/.local/share/git_dotfiles --work-tree=/home/alex' diff --git a/.config/alsa/asoundrc b/.config/alsa/asoundrc deleted file mode 100644 index 38722f0..0000000 --- a/.config/alsa/asoundrc +++ /dev/null @@ -1,21 +0,0 @@ -# Find and use input "Microphone" for input -pcm.usb -{ - type hw - card Microphone -} -pcm.!default -{ - type asym - playback.pcm - { - # Use the dmix plug to allow multiple outputs. - type plug - slave.pcm "dmix" - } - capture.pcm - { - type plug - slave.pcm "usb" - } -} diff --git a/.config/calcurse/.calcurse.pid b/.config/calcurse/.calcurse.pid deleted file mode 100644 index 382d2d7..0000000 --- a/.config/calcurse/.calcurse.pid +++ /dev/null @@ -1 +0,0 @@ -6827 diff --git a/.config/calcurse/conf b/.config/calcurse/conf index 9312851..88e05af 100644 --- a/.config/calcurse/conf +++ b/.config/calcurse/conf @@ -6,12 +6,13 @@ appearance.headerline=yes appearance.eventseparator=yes appearance.dayseparator=yes appearance.emptyline=yes +appearance.emptyday=-- appearance.notifybar=yes appearance.sidebarwidth=0 -appearance.theme=blue on black +appearance.theme=blue on default appearance.todoview=hide-completed appearance.headingpos=right-justified -daemon.enable=yes +daemon.enable=no daemon.log=no format.inputdate=1 format.notifydate=%a %F @@ -24,9 +25,8 @@ general.confirmdelete=yes general.confirmquit=yes general.firstdayofweek=monday general.multipledays=yes -general.periodicsave=1 +general.periodicsave=0 general.systemevents=yes -general.systemdialogs=yes -notification.command=appointments notif -notification.notifyall=all -notification.warning=900 +notification.command=printf '\a' +notification.notifyall=flagged-only +notification.warning=300 diff --git a/.config/calcurse/keys b/.config/calcurse/keys index 0f5ee8d..49b4826 100644 --- a/.config/calcurse/keys +++ b/.config/calcurse/keys @@ -6,50 +6,51 @@ # via the key configuration menu of the interactive user # interface. It should not be edited directly. -generic-cancel ESC -generic-select SPC -generic-credits @ -generic-help ? -generic-quit q Q -generic-save s S ^S -generic-reload R -generic-copy c -generic-paste p ^V -generic-change-view TAB -generic-import i I -generic-export x X -generic-goto g G -generic-other-cmd o O -generic-config-menu C -generic-redraw ^R -generic-add-appt ^A -generic-add-todo ^T -generic-prev-day T ^H -generic-next-day t ^L -generic-prev-week W ^K -generic-next-week w -generic-prev-month M -generic-next-month m -generic-prev-year Y -generic-next-year y -generic-scroll-down ^N -generic-scroll-up ^P -generic-goto-today ^G -generic-command : -move-right l L RGT -move-left h H LFT -move-down j J DWN -move-up k K UP -start-of-week 0 -end-of-week $ -add-item a A -del-item d D -edit-item e E -view-item v V RET -pipe-item | -flag-item ! -repeat r -edit-note n N -view-note > -raise-priority + -lower-priority - +generic-cancel ESC +generic-select SPC +generic-credits @ +generic-help ? +generic-quit q Q +generic-save s S ^S +generic-reload R +generic-copy c +generic-paste p ^V +generic-change-view TAB +generic-prev-view KEY_BTAB +generic-import i I +generic-export x X +generic-goto g G +generic-other-cmd o O +generic-config-menu C +generic-redraw ^R +generic-add-appt ^A +generic-add-todo ^T +generic-prev-day T ^H +generic-next-day t ^L +generic-prev-week W ^K +generic-next-week w +generic-prev-month M +generic-next-month m +generic-prev-year Y +generic-next-year y +generic-scroll-down ^N +generic-scroll-up ^P +generic-goto-today ^G +generic-command : +move-right l L RGT +move-left h H LFT +move-down j J DWN +move-up k K UP +start-of-week 0 +end-of-week $ +add-item a A +del-item d D +edit-item e E +view-item v V RET +pipe-item | +flag-item ! +repeat r +edit-note n N +view-note > +raise-priority + +lower-priority - diff --git a/.config/coc/extensions/node_modules/coc-vimtex/Readme.md b/.config/coc/extensions/node_modules/coc-vimtex/Readme.md deleted file mode 100644 index d14e891..0000000 --- a/.config/coc/extensions/node_modules/coc-vimtex/Readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# coc-vimtex - -Tex completion source use [vimtex](https://github.com/lervag/vimtex). - -## Install - -In your vim/neovim, run command: - -``` -:CocInstall coc-vimtex -``` - -Or add this plugin's folder to your vim's runtimepath. - -## Options - -- `coc.source.vimtex.disableSyntaxes` disabled syntax names. -- `coc.source.vimtex.enable` set to false to disable this source. -- `coc.source.vimtex.priority` priority of source, default `99`. -- `coc.source.vimtex.shortcut` shortcut used in `menu` of completion item. - -## License - -MIT diff --git a/.config/coc/extensions/node_modules/coc-vimtex/package.json b/.config/coc/extensions/node_modules/coc-vimtex/package.json deleted file mode 100644 index a4f1465..0000000 --- a/.config/coc/extensions/node_modules/coc-vimtex/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "coc-vimtex", - "version": "1.0.4", - "description": "vimtex integration for coc.nvim", - "main": "src/index.js", - "publisher": "chemzqm", - "keywords": [ - "coc.nvim", - "vimtex" - ], - "engines": { - "coc": "^0.0.56" - }, - "activationEvents": [ - "onLanguage:tex", - "onLanguage:plaintex", - "onLanguage:latex" - ], - "contributes": { - "configuration": { - "type": "object", - "properties": { - "coc.source.vimtex.enable": { - "type": "boolean", - "default": true - }, - "coc.source.vimtex.priority": { - "type": "integer", - "default": 99 - } - } - } - }, - "author": "chemzqm@gmail.com", - "repository": { - "type": "git", - "url": "git+https://github.com/neoclide/coc-vimtex.git" - }, - "license": "MIT", - "devDependencies": { - "@types/node": "^10.12.24", - "coc.nvim": "^0.0.74", - "rimraf": "^2.6.3" - }, - "dependencies": {} -} diff --git a/.config/coc/extensions/node_modules/coc-vimtex/src/index.js b/.config/coc/extensions/node_modules/coc-vimtex/src/index.js deleted file mode 100644 index 27781ac..0000000 --- a/.config/coc/extensions/node_modules/coc-vimtex/src/index.js +++ /dev/null @@ -1,66 +0,0 @@ -const {sources, workspace, SourceType} = require('coc.nvim') -const {convertRegex, byteSlice} = require('./util') - -exports.activate = async context => { - let config = workspace.getConfiguration('coc.source.vimtex') - let {nvim} = workspace - - let regex = await nvim.getVar('vimtex#re#deoplete') - if (!regex) { - workspace.showMessage('vimtex not loaded', 'error') - return - } - let pattern = new RegExp(convertRegex(regex) + '$') - - function convertItems(list) { - let res = [] - for (let item of list) { - if (typeof item == 'string') { - res.push(Object.assign({word: item})) - } - if (item.hasOwnProperty('word')) { - res.push(item) - } - } - return res - } - - let source = { - name: 'vimtex', - enable: config.get('enable', true), - priority: config.get('priority', 99), - filetypes: ['tex', 'plaintex', 'latex'], - sourceType: SourceType.Remote, - triggerPatterns: [pattern], - doComplete: async opt => { - let {nvim} = workspace - let func = 'vimtex#complete#omnifunc' - let {line, colnr, col} = opt - let startcol = col - try { - startcol = await nvim.call(func, [1, '']) - startcol = Number(startcol) - } catch (e) { - workspace.showMessage(`vim error from ${func} :${e.message}`, 'error') - return null - } - // invalid startcol - if (isNaN(startcol) || startcol < 0 || startcol > colnr) return null - let text = byteSlice(line, startcol, colnr - 1) - let words = await nvim.call(func, [0, text]) - if (words.hasOwnProperty('words')) { - words = words.words - } - let res = {items: convertItems(words)} - res.startcol = startcol - return res - } - } - - sources.addSource(source) - context.subscriptions.push({ - dispose: () => { - sources.removeSource(source) - } - }) -} diff --git a/.config/coc/extensions/node_modules/coc-vimtex/src/util.js b/.config/coc/extensions/node_modules/coc-vimtex/src/util.js deleted file mode 100644 index d5518ec..0000000 --- a/.config/coc/extensions/node_modules/coc-vimtex/src/util.js +++ /dev/null @@ -1,56 +0,0 @@ -/****************************************************************** -MIT License http://www.opensource.org/licenses/mit-license.php -Author Qiming Zhao (https://github.com/chemzqm) -*******************************************************************/ - -const conditionRe = /\(\?\(\?:\w+\).+\|/ -const bellRe = /\\a/ -const commentRe = /\(\?#.*?\)/ -const stringStartRe = /\\A/ -const lookBehindRe = /\(\?<[!=].*?\)/ -const namedCaptureRe = /\(\?P<\w+>.*?\)/ -const namedReferenceRe = /\(\?P=(\w+)\)/ -const braceRe = /\^\]/ -const regex = new RegExp(`${bellRe.source}|${commentRe.source}|${stringStartRe.source}|${lookBehindRe.source}|${namedCaptureRe.source}|${namedReferenceRe.source}|${braceRe}`, 'g') - -/** - * Convert python regex to javascript regex, - * throw error when unsupported pattern found - * - * @public - * @param {string} str - * @returns {string} - */ -exports.convertRegex = function(str) { - if (str.indexOf('\\z') !== -1) { - throw new Error('pattern \\z not supported') - } - if (str.indexOf('(?s)') !== -1) { - throw new Error('pattern (?s) not supported') - } - if (str.indexOf('(?x)') !== -1) { - throw new Error('pattern (?x) not supported') - } - if (str.indexOf('\n') !== -1) { - throw new Error('multiple line pattern not supported') - } - if (conditionRe.test(str)) { - throw new Error('condition pattern not supported') - } - return str.replace(regex, (match, p1) => { - if (match == '^]') return '^\\]' - if (match == '\\a') return '' - if (match.startsWith('(?#')) return '' - if (match == '\\A') return '^' - if (match.startsWith('(?<')) return '(?' + match.slice(3) - if (match.startsWith('(?P<')) return '(?' + match.slice(3) - if (match.startsWith('(?P=')) return `\\k<${p1}>` - return '' - }) -} - - -exports.byteSlice = function (content, start, end) { - let buf = Buffer.from(content, 'utf8') - return buf.slice(start, end).toString('utf8') -} diff --git a/.config/coc/extensions/package.json b/.config/coc/extensions/package.json deleted file mode 100644 index 382695b..0000000 --- a/.config/coc/extensions/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "dependencies": { - "coc-clangd": ">=0.7.0", - "coc-html": ">=1.4.1", - "coc-json": ">=1.3.2", - "coc-pyright": ">=1.1.101", - "coc-sh": ">=0.6.0", - "coc-vimtex": ">=1.0.4" - } -} diff --git a/.config/coc/history.json b/.config/coc/history.json deleted file mode 100644 index 36c9d4d..0000000 --- a/.config/coc/history.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "diagnostics": { - "%2Fhome%2Falex%2F": { - "local%2Fbin%2Ftools": [ - " " - ], - "local%2Fsrc%2Fbthandler": [ - " " - ], - "local%2Fsrc%2Fbibel": [ - " " - ], - "local%2Fsrc%2Favl": [ - " " - ], - "local%2Fbin": [ - " " - ] - }, - "%2Fhome%2Falex": [ - "kk", - " " - ], - "%2Fhome%2Falex%2Fdrv%2FDocuments%2Fencyclicals%2FleoXIII": [ - " " - ] - } -} \ No newline at end of file diff --git a/.config/coc/lists b/.config/coc/lists deleted file mode 100644 index 20a174f..0000000 --- a/.config/coc/lists +++ /dev/null @@ -1 +0,0 @@ -diagnostics \ No newline at end of file diff --git a/.config/coc/memos.json b/.config/coc/memos.json deleted file mode 100644 index 9e26dfe..0000000 --- a/.config/coc/memos.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/.config/coc/mru b/.config/coc/mru deleted file mode 100644 index e69de29..0000000 diff --git a/.config/directories b/.config/directories deleted file mode 100644 index 879219c..0000000 --- a/.config/directories +++ /dev/null @@ -1,11 +0,0 @@ -# You can add comments to these files with # -h ~/ -d ~/Documents -D ~/Downloads -m ~/Music -pp ~/Pictures -vv ~/Videos -cf ${XDG_CONFIG_HOME:-$HOME/.config} -cac ${XDG_CACHE_HOME:-$HOME/.cache} -sc ~/.local/bin -mn /mnt diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc index 98b56a5..5dcaa5d 100644 --- a/.config/dunst/dunstrc +++ b/.config/dunst/dunstrc @@ -17,7 +17,7 @@ # # If this option is set to mouse or keyboard, the monitor option # will be ignored. - follow = none + follow = mouse ### Geometry ### @@ -186,7 +186,7 @@ ignore_newline = no # Stack together notifications with the same content - stack_duplicates = true + stack_duplicates = false # Hide the count of stacked notifications with the same content hide_duplicate_count = false diff --git a/.config/dunst/dunstrc_old b/.config/dunst/dunstrc_old deleted file mode 100644 index abf5586..0000000 --- a/.config/dunst/dunstrc_old +++ /dev/null @@ -1,152 +0,0 @@ -[global] - monitor = 0 - follow = keyboard - geometry = "350x5-0+24" - indicate_hidden = yes - shrink = yes - transparency = 20 - notification_height = 0 - separator_height = 2 - padding = 0 - horizontal_padding = 8 - frame_width = 3 - frame_color = "#282828" - - # Define a color for the separator. - # possible values are: - # * auto: dunst tries to find a color fitting to the background; - # * foreground: use the same color as the foreground; - # * frame: use the same color as the frame; - # * anything else will be interpreted as a X color. - separator_color = frame - - # Sort messages by urgency. - sort = yes - - idle_threshold = 120 - font = Monospace 14 - line_height = 0 - markup = full - - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # %n progress value if set without any extra characters - # %% Literal % - # Markup is allowed - format = "%s\n%b" - - alignment = left - show_age_threshold = 60 - word_wrap = yes - ellipsize = middle - ignore_newline = no - stack_duplicates = true - hide_duplicate_count = true - show_indicators = yes - icon_position = left - max_icon_size = 40 - #icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/:/usr/share/icons/Adwaita/256x256/status/ - sticky_history = yes - history_length = 20 - dmenu = /usr/bin/dmenu -p dunst: - browser = /usr/bin/firefox -new-tab - - # Always run rule-defined scripts, even if the notification is suppressed - always_run_script = true - - title = Dunst - class = Dunst - startup_notification = false - force_xinerama = false -[experimental] - per_monitor_dpi = false - -[shortcuts] - close = ctrl+space - close_all = ctrl+shift+space - history = ctrl+grave - context = ctrl+shift+period - -[urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - background = "#282828" - foreground = "#928374" - timeout = 5 - # Icon for notifications with low urgency, uncomment to enable - #icon = /path/to/icon - -[urgency_normal] - background = "#458588" - foreground = "#ebdbb2" - timeout = 5 - -[urgency_critical] - background = "#cc2421" - foreground = "#ebdbb2" - frame_color = "#fabd2f" - timeout = 0 - -# Every section that isn't one of the above is interpreted as a rules to -# override settings for certain messages. -# Messages can be matched by "appname", "summary", "body", "icon", "category", -# "msg_urgency" and you can override the "timeout", "urgency", "foreground", -# "background", "new_icon" and "format". -# Shell-like globbing will get expanded. -# -# SCRIPTING -# You can specify a script that gets run when the rule matches by -# setting the "script" option. -# The script will be called as follows: -# script appname summary body icon urgency -# where urgency can be "LOW", "NORMAL" or "CRITICAL". -# -# NOTE: if you don't want a notification to be displayed, set the format -# to "". -# NOTE: It might be helpful to run dunst -print in a terminal in order -# to find fitting options for rules. - -#[espeak] -# summary = "*" -# script = dunst_espeak.sh - -#[script-test] -# summary = "*script*" -# script = dunst_test.sh - -#[ignore] -# # This notification will not be displayed -# summary = "foobar" -# format = "" - -#[history-ignore] -# # This notification will not be saved in history -# summary = "foobar" -# history_ignore = yes - -#[signed_on] -# appname = Pidgin -# summary = "*signed on*" -# urgency = low -# -#[signed_off] -# appname = Pidgin -# summary = *signed off* -# urgency = low -# -#[says] -# appname = Pidgin -# summary = *says* -# urgency = critical -# -#[twitter] -# appname = Pidgin -# summary = *twitter.com* -# urgency = normal -# -# vim: ft=cfg diff --git a/.config/emoji b/.config/emoji deleted file mode 100644 index 35c1e1b..0000000 --- a/.config/emoji +++ /dev/null @@ -1,1644 +0,0 @@ -๐Ÿ˜€ grinning face; U+1F600 -๐Ÿ˜ƒ grinning face with big eyes; U+1F603 -๐Ÿ˜„ grinning face with smiling eyes; U+1F604 -๐Ÿ˜ beaming face with smiling eyes; U+1F601 -๐Ÿ˜† grinning squinting face; U+1F606 -๐Ÿ˜… grinning face with sweat; U+1F605 -๐Ÿคฃ rolling on the floor laughing; U+1F923 -๐Ÿ˜‚ face with tears of joy; U+1F602 -๐Ÿ™‚ slightly smiling face; U+1F642 -๐Ÿ™ƒ upside-down face; U+1F643 -๐Ÿ˜‰ winking face; U+1F609 -๐Ÿ˜Š smiling face with smiling eyes; U+1F60A -๐Ÿ˜‡ smiling face with halo; U+1F607 -๐Ÿฅฐ smiling face with 3 hearts; U+1F970 -๐Ÿ˜ smiling face with heart-eyes; U+1F60D -๐Ÿคฉ star-struck; U+1F929 -๐Ÿ˜˜ face blowing a kiss; U+1F618 -๐Ÿ˜— kissing face; U+1F617 -โ˜บ smiling face; U+263A -๐Ÿ˜š kissing face with closed eyes; U+1F61A -๐Ÿ˜™ kissing face with smiling eyes; U+1F619 -๐Ÿ˜‹ face savoring food; U+1F60B -๐Ÿ˜› face with tongue; U+1F61B -๐Ÿ˜œ winking face with tongue; U+1F61C -๐Ÿคช zany face; U+1F92A -๐Ÿ˜ squinting face with tongue; U+1F61D -๐Ÿค‘ money-mouth face; U+1F911 -๐Ÿค— hugging face; U+1F917 -๐Ÿคญ face with hand over mouth; U+1F92D -๐Ÿคซ shushing face; U+1F92B -๐Ÿค” thinking face; U+1F914 -๐Ÿค zipper-mouth face; U+1F910 -๐Ÿคจ face with raised eyebrow; U+1F928 -๐Ÿ˜ neutral face; U+1F610 -๐Ÿ˜‘ expressionless face; U+1F611 -๐Ÿ˜ถ face without mouth; U+1F636 -๐Ÿ˜ smirking face; U+1F60F -๐Ÿ˜’ unamused face; U+1F612 -๐Ÿ™„ face with rolling eyes; U+1F644 -๐Ÿ˜ฌ grimacing face; U+1F62C -๐Ÿคฅ lying face; U+1F925 -๐Ÿ˜Œ relieved face; U+1F60C -๐Ÿ˜” pensive face; U+1F614 -๐Ÿ˜ช sleepy face; U+1F62A -๐Ÿคค drooling face; U+1F924 -๐Ÿ˜ด sleeping face; U+1F634 -๐Ÿ˜ท face with medical mask; U+1F637 -๐Ÿค’ face with thermometer; U+1F912 -๐Ÿค• face with head-bandage; U+1F915 -๐Ÿคข nauseated face; U+1F922 -๐Ÿคฎ face vomiting; U+1F92E -๐Ÿคง sneezing face; U+1F927 -๐Ÿฅต hot face; U+1F975 -๐Ÿฅถ cold face; U+1F976 -๐Ÿฅด woozy face; U+1F974 -๐Ÿ˜ต dizzy face; U+1F635 -๐Ÿคฏ exploding head; U+1F92F -๐Ÿค  cowboy hat face; U+1F920 -๐Ÿฅณ partying face; U+1F973 -๐Ÿ˜Ž smiling face with sunglasses; U+1F60E -๐Ÿค“ nerd face; U+1F913 -๐Ÿง face with monocle; U+1F9D0 -๐Ÿ˜• confused face; U+1F615 -๐Ÿ˜Ÿ worried face; U+1F61F -๐Ÿ™ slightly frowning face; U+1F641 -โ˜น frowning face; U+2639 -๐Ÿ˜ฎ face with open mouth; U+1F62E -๐Ÿ˜ฏ hushed face; U+1F62F -๐Ÿ˜ฒ astonished face; U+1F632 -๐Ÿ˜ณ flushed face; U+1F633 -๐Ÿฅบ pleading face; U+1F97A -๐Ÿ˜ฆ frowning face with open mouth; U+1F626 -๐Ÿ˜ง anguished face; U+1F627 -๐Ÿ˜จ fearful face; U+1F628 -๐Ÿ˜ฐ anxious face with sweat; U+1F630 -๐Ÿ˜ฅ sad but relieved face; U+1F625 -๐Ÿ˜ข crying face; U+1F622 -๐Ÿ˜ญ loudly crying face; U+1F62D -๐Ÿ˜ฑ face screaming in fear; U+1F631 -๐Ÿ˜– confounded face; U+1F616 -๐Ÿ˜ฃ persevering face; U+1F623 -๐Ÿ˜ž disappointed face; U+1F61E -๐Ÿ˜“ downcast face with sweat; U+1F613 -๐Ÿ˜ฉ weary face; U+1F629 -๐Ÿ˜ซ tired face; U+1F62B -๐Ÿ˜ค face with steam from nose; U+1F624 -๐Ÿ˜ก pouting face; U+1F621 -๐Ÿ˜  angry face; U+1F620 -๐Ÿคฌ face with symbols on mouth; U+1F92C -๐Ÿ˜ˆ smiling face with horns; U+1F608 -๐Ÿ‘ฟ angry face with horns; U+1F47F -๐Ÿ’€ skull; U+1F480 -โ˜  skull and crossbones; U+2620 -๐Ÿ’ฉ pile of poo; U+1F4A9 -๐Ÿคก clown face; U+1F921 -๐Ÿ‘น ogre; U+1F479 -๐Ÿ‘บ goblin; U+1F47A -๐Ÿ‘ป ghost; U+1F47B -๐Ÿ‘ฝ alien; U+1F47D -๐Ÿ‘พ alien monster; U+1F47E -๐Ÿค– robot face; U+1F916 -๐Ÿ˜บ grinning cat face; U+1F63A -๐Ÿ˜ธ grinning cat face with smiling eyes; U+1F638 -๐Ÿ˜น cat face with tears of joy; U+1F639 -๐Ÿ˜ป smiling cat face with heart-eyes; U+1F63B -๐Ÿ˜ผ cat face with wry smile; U+1F63C -๐Ÿ˜ฝ kissing cat face; U+1F63D -๐Ÿ™€ weary cat face; U+1F640 -๐Ÿ˜ฟ crying cat face; U+1F63F -๐Ÿ˜พ pouting cat face; U+1F63E -๐Ÿ™ˆ see-no-evil monkey; U+1F648 -๐Ÿ™‰ hear-no-evil monkey; U+1F649 -๐Ÿ™Š speak-no-evil monkey; U+1F64A -๐Ÿ’‹ kiss mark; U+1F48B -๐Ÿ’Œ love letter; U+1F48C -๐Ÿ’˜ heart with arrow; U+1F498 -๐Ÿ’ heart with ribbon; U+1F49D -๐Ÿ’– sparkling heart; U+1F496 -๐Ÿ’— growing heart; U+1F497 -๐Ÿ’“ beating heart; U+1F493 -๐Ÿ’ž revolving hearts; U+1F49E -๐Ÿ’• two hearts; U+1F495 -๐Ÿ’Ÿ heart decoration; U+1F49F -โฃ heavy heart exclamation; U+2763 -๐Ÿ’” broken heart; U+1F494 -โค red heart; U+2764 -๐Ÿงก orange heart; U+1F9E1 -๐Ÿ’› yellow heart; U+1F49B -๐Ÿ’š green heart; U+1F49A -๐Ÿ’™ blue heart; U+1F499 -๐Ÿ’œ purple heart; U+1F49C -๐Ÿ–ค black heart; U+1F5A4 -๐Ÿ’ฏ hundred points; U+1F4AF -๐Ÿ’ข anger symbol; U+1F4A2 -๐Ÿ’ฅ collision; U+1F4A5 -๐Ÿ’ซ dizzy; U+1F4AB -๐Ÿ’ฆ sweat droplets; U+1F4A6 -๐Ÿ’จ dashing away; U+1F4A8 -๐Ÿ•ณ hole; U+1F573 -๐Ÿ’ฃ bomb; U+1F4A3 -๐Ÿ’ฌ speech balloon; U+1F4AC -๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ eye in speech bubble; U+1F441 U+FE0F U+200D U+1F5E8 U+FE0F -๐Ÿ—จ left speech bubble; U+1F5E8 -๐Ÿ—ฏ right anger bubble; U+1F5EF -๐Ÿ’ญ thought balloon; U+1F4AD -๐Ÿ’ค zzz; U+1F4A4 -๐Ÿ‘‹ waving hand; U+1F44B -๐Ÿคš raised back of hand; U+1F91A -๐Ÿ– hand with fingers splayed; U+1F590 -โœ‹ raised hand; U+270B -๐Ÿ–– vulcan salute; U+1F596 -๐Ÿ‘Œ OK hand; U+1F44C -โœŒ victory hand; U+270C -๐Ÿคž crossed fingers; U+1F91E -๐ŸคŸ love-you gesture; U+1F91F -๐Ÿค˜ sign of the horns; U+1F918 -๐Ÿค™ call me hand; U+1F919 -๐Ÿ‘ˆ backhand index pointing left; U+1F448 -๐Ÿ‘‰ backhand index pointing right; U+1F449 -๐Ÿ‘† backhand index pointing up; U+1F446 -๐Ÿ–• middle finger; U+1F595 -๐Ÿ‘‡ backhand index pointing down; U+1F447 -โ˜ index pointing up; U+261D -๐Ÿ‘ thumbs up; U+1F44D -๐Ÿ‘Ž thumbs down; U+1F44E -โœŠ raised fist; U+270A -๐Ÿ‘Š oncoming fist; U+1F44A -๐Ÿค› left-facing fist; U+1F91B -๐Ÿคœ right-facing fist; U+1F91C -๐Ÿ‘ clapping hands; U+1F44F -๐Ÿ™Œ raising hands; U+1F64C -๐Ÿ‘ open hands; U+1F450 -๐Ÿคฒ palms up together; U+1F932 -๐Ÿค handshake; U+1F91D -๐Ÿ™ folded hands; U+1F64F -โœ writing hand; U+270D -๐Ÿ’… nail polish; U+1F485 -๐Ÿคณ selfie; U+1F933 -๐Ÿ’ช flexed biceps; U+1F4AA -๐Ÿฆต leg; U+1F9B5 -๐Ÿฆถ foot; U+1F9B6 -๐Ÿ‘‚ ear; U+1F442 -๐Ÿ‘ƒ nose; U+1F443 -๐Ÿง  brain; U+1F9E0 -๐Ÿฆท tooth; U+1F9B7 -๐Ÿฆด bone; U+1F9B4 -๐Ÿ‘€ eyes; U+1F440 -๐Ÿ‘ eye; U+1F441 -๐Ÿ‘… tongue; U+1F445 -๐Ÿ‘„ mouth; U+1F444 -๐Ÿ‘ถ baby; U+1F476 -๐Ÿง’ child; U+1F9D2 -๐Ÿ‘ฆ boy; U+1F466 -๐Ÿ‘ง girl; U+1F467 -๐Ÿง‘ person; U+1F9D1 -๐Ÿ‘ฑ person: blond hair; U+1F471 -๐Ÿ‘จ man; U+1F468 -๐Ÿ‘ฑโ€โ™‚๏ธ man: blond hair; U+1F471 U+200D U+2642 U+FE0F -๐Ÿ‘จโ€๐Ÿฆฐ man: red hair; U+1F468 U+200D U+1F9B0 -๐Ÿ‘จโ€๐Ÿฆฑ man: curly hair; U+1F468 U+200D U+1F9B1 -๐Ÿ‘จโ€๐Ÿฆณ man: white hair; U+1F468 U+200D U+1F9B3 -๐Ÿ‘จโ€๐Ÿฆฒ man: bald; U+1F468 U+200D U+1F9B2 -๐Ÿง” man: beard; U+1F9D4 -๐Ÿ‘ฉ woman; U+1F469 -๐Ÿ‘ฑโ€โ™€๏ธ woman: blond hair; U+1F471 U+200D U+2640 U+FE0F -๐Ÿ‘ฉโ€๐Ÿฆฐ woman: red hair; U+1F469 U+200D U+1F9B0 -๐Ÿ‘ฉโ€๐Ÿฆฑ woman: curly hair; U+1F469 U+200D U+1F9B1 -๐Ÿ‘ฉโ€๐Ÿฆณ woman: white hair; U+1F469 U+200D U+1F9B3 -๐Ÿ‘ฉโ€๐Ÿฆฒ woman: bald; U+1F469 U+200D U+1F9B2 -๐Ÿง“ older person; U+1F9D3 -๐Ÿ‘ด old man; U+1F474 -๐Ÿ‘ต old woman; U+1F475 -๐Ÿ™ person frowning; U+1F64D -๐Ÿ™โ€โ™‚๏ธ man frowning; U+1F64D U+200D U+2642 U+FE0F -๐Ÿ™โ€โ™€๏ธ woman frowning; U+1F64D U+200D U+2640 U+FE0F -๐Ÿ™Ž person pouting; U+1F64E -๐Ÿ™Žโ€โ™‚๏ธ man pouting; U+1F64E U+200D U+2642 U+FE0F -๐Ÿ™Žโ€โ™€๏ธ woman pouting; U+1F64E U+200D U+2640 U+FE0F -๐Ÿ™… person gesturing NO; U+1F645 -๐Ÿ™…โ€โ™‚๏ธ man gesturing NO; U+1F645 U+200D U+2642 U+FE0F -๐Ÿ™…โ€โ™€๏ธ woman gesturing NO; U+1F645 U+200D U+2640 U+FE0F -๐Ÿ™† person gesturing OK; U+1F646 -๐Ÿ™†โ€โ™‚๏ธ man gesturing OK; U+1F646 U+200D U+2642 U+FE0F -๐Ÿ™†โ€โ™€๏ธ woman gesturing OK; U+1F646 U+200D U+2640 U+FE0F -๐Ÿ’ person tipping hand; U+1F481 -๐Ÿ’โ€โ™‚๏ธ man tipping hand; U+1F481 U+200D U+2642 U+FE0F -๐Ÿ’โ€โ™€๏ธ woman tipping hand; U+1F481 U+200D U+2640 U+FE0F -๐Ÿ™‹ person raising hand; U+1F64B -๐Ÿ™‹โ€โ™‚๏ธ man raising hand; U+1F64B U+200D U+2642 U+FE0F -๐Ÿ™‹โ€โ™€๏ธ woman raising hand; U+1F64B U+200D U+2640 U+FE0F -๐Ÿ™‡ person bowing; U+1F647 -๐Ÿ™‡โ€โ™‚๏ธ man bowing; U+1F647 U+200D U+2642 U+FE0F -๐Ÿ™‡โ€โ™€๏ธ woman bowing; U+1F647 U+200D U+2640 U+FE0F -๐Ÿคฆ person facepalming; U+1F926 -๐Ÿคฆโ€โ™‚๏ธ man facepalming; U+1F926 U+200D U+2642 U+FE0F -๐Ÿคฆโ€โ™€๏ธ woman facepalming; U+1F926 U+200D U+2640 U+FE0F -๐Ÿคท person shrugging; U+1F937 -๐Ÿคทโ€โ™‚๏ธ man shrugging; U+1F937 U+200D U+2642 U+FE0F -๐Ÿคทโ€โ™€๏ธ woman shrugging; U+1F937 U+200D U+2640 U+FE0F -๐Ÿ‘จโ€โš•๏ธ man health worker; U+1F468 U+200D U+2695 U+FE0F -๐Ÿ‘ฉโ€โš•๏ธ woman health worker; U+1F469 U+200D U+2695 U+FE0F -๐Ÿ‘จโ€๐ŸŽ“ man student; U+1F468 U+200D U+1F393 -๐Ÿ‘ฉโ€๐ŸŽ“ woman student; U+1F469 U+200D U+1F393 -๐Ÿ‘จโ€๐Ÿซ man teacher; U+1F468 U+200D U+1F3EB -๐Ÿ‘ฉโ€๐Ÿซ woman teacher; U+1F469 U+200D U+1F3EB -๐Ÿ‘จโ€โš–๏ธ man judge; U+1F468 U+200D U+2696 U+FE0F -๐Ÿ‘ฉโ€โš–๏ธ woman judge; U+1F469 U+200D U+2696 U+FE0F -๐Ÿ‘จโ€๐ŸŒพ man farmer; U+1F468 U+200D U+1F33E -๐Ÿ‘ฉโ€๐ŸŒพ woman farmer; U+1F469 U+200D U+1F33E -๐Ÿ‘จโ€๐Ÿณ man cook; U+1F468 U+200D U+1F373 -๐Ÿ‘ฉโ€๐Ÿณ woman cook; U+1F469 U+200D U+1F373 -๐Ÿ‘จโ€๐Ÿ”ง man mechanic; U+1F468 U+200D U+1F527 -๐Ÿ‘ฉโ€๐Ÿ”ง woman mechanic; U+1F469 U+200D U+1F527 -๐Ÿ‘จโ€๐Ÿญ man factory worker; U+1F468 U+200D U+1F3ED -๐Ÿ‘ฉโ€๐Ÿญ woman factory worker; U+1F469 U+200D U+1F3ED -๐Ÿ‘จโ€๐Ÿ’ผ man office worker; U+1F468 U+200D U+1F4BC -๐Ÿ‘ฉโ€๐Ÿ’ผ woman office worker; U+1F469 U+200D U+1F4BC -๐Ÿ‘จโ€๐Ÿ”ฌ man scientist; U+1F468 U+200D U+1F52C -๐Ÿ‘ฉโ€๐Ÿ”ฌ woman scientist; U+1F469 U+200D U+1F52C -๐Ÿ‘จโ€๐Ÿ’ป man technologist; U+1F468 U+200D U+1F4BB -๐Ÿ‘ฉโ€๐Ÿ’ป woman technologist; U+1F469 U+200D U+1F4BB -๐Ÿ‘จโ€๐ŸŽค man singer; U+1F468 U+200D U+1F3A4 -๐Ÿ‘ฉโ€๐ŸŽค woman singer; U+1F469 U+200D U+1F3A4 -๐Ÿ‘จโ€๐ŸŽจ man artist; U+1F468 U+200D U+1F3A8 -๐Ÿ‘ฉโ€๐ŸŽจ woman artist; U+1F469 U+200D U+1F3A8 -๐Ÿ‘จโ€โœˆ๏ธ man pilot; U+1F468 U+200D U+2708 U+FE0F -๐Ÿ‘ฉโ€โœˆ๏ธ woman pilot; U+1F469 U+200D U+2708 U+FE0F -๐Ÿ‘จโ€๐Ÿš€ man astronaut; U+1F468 U+200D U+1F680 -๐Ÿ‘ฉโ€๐Ÿš€ woman astronaut; U+1F469 U+200D U+1F680 -๐Ÿ‘จโ€๐Ÿš’ man firefighter; U+1F468 U+200D U+1F692 -๐Ÿ‘ฉโ€๐Ÿš’ woman firefighter; U+1F469 U+200D U+1F692 -๐Ÿ‘ฎ police officer; U+1F46E -๐Ÿ‘ฎโ€โ™‚๏ธ man police officer; U+1F46E U+200D U+2642 U+FE0F -๐Ÿ‘ฎโ€โ™€๏ธ woman police officer; U+1F46E U+200D U+2640 U+FE0F -๐Ÿ•ต detective; U+1F575 -๐Ÿ•ต๏ธโ€โ™‚๏ธ man detective; U+1F575 U+FE0F U+200D U+2642 U+FE0F -๐Ÿ•ต๏ธโ€โ™€๏ธ woman detective; U+1F575 U+FE0F U+200D U+2640 U+FE0F -๐Ÿ’‚ guard; U+1F482 -๐Ÿ’‚โ€โ™‚๏ธ man guard; U+1F482 U+200D U+2642 U+FE0F -๐Ÿ’‚โ€โ™€๏ธ woman guard; U+1F482 U+200D U+2640 U+FE0F -๐Ÿ‘ท construction worker; U+1F477 -๐Ÿ‘ทโ€โ™‚๏ธ man construction worker; U+1F477 U+200D U+2642 U+FE0F -๐Ÿ‘ทโ€โ™€๏ธ woman construction worker; U+1F477 U+200D U+2640 U+FE0F -๐Ÿคด prince; U+1F934 -๐Ÿ‘ธ princess; U+1F478 -๐Ÿ‘ณ person wearing turban; U+1F473 -๐Ÿ‘ณโ€โ™‚๏ธ man wearing turban; U+1F473 U+200D U+2642 U+FE0F -๐Ÿ‘ณโ€โ™€๏ธ woman wearing turban; U+1F473 U+200D U+2640 U+FE0F -๐Ÿ‘ฒ man with Chinese cap; U+1F472 -๐Ÿง• woman with headscarf; U+1F9D5 -๐Ÿคต man in tuxedo; U+1F935 -๐Ÿ‘ฐ bride with veil; U+1F470 -๐Ÿคฐ pregnant woman; U+1F930 -๐Ÿคฑ breast-feeding; U+1F931 -๐Ÿ‘ผ baby angel; U+1F47C -๐ŸŽ… Santa Claus; U+1F385 -๐Ÿคถ Mrs. Claus; U+1F936 -๐Ÿฆธ superhero; U+1F9B8 -๐Ÿฆธโ€โ™‚๏ธ man superhero; U+1F9B8 U+200D U+2642 U+FE0F -๐Ÿฆธโ€โ™€๏ธ woman superhero; U+1F9B8 U+200D U+2640 U+FE0F -๐Ÿฆน supervillain; U+1F9B9 -๐Ÿฆนโ€โ™‚๏ธ man supervillain; U+1F9B9 U+200D U+2642 U+FE0F -๐Ÿฆนโ€โ™€๏ธ woman supervillain; U+1F9B9 U+200D U+2640 U+FE0F -๐Ÿง™ mage; U+1F9D9 -๐Ÿง™โ€โ™‚๏ธ man mage; U+1F9D9 U+200D U+2642 U+FE0F -๐Ÿง™โ€โ™€๏ธ woman mage; U+1F9D9 U+200D U+2640 U+FE0F -๐Ÿงš fairy; U+1F9DA -๐Ÿงšโ€โ™‚๏ธ man fairy; U+1F9DA U+200D U+2642 U+FE0F -๐Ÿงšโ€โ™€๏ธ woman fairy; U+1F9DA U+200D U+2640 U+FE0F -๐Ÿง› vampire; U+1F9DB -๐Ÿง›โ€โ™‚๏ธ man vampire; U+1F9DB U+200D U+2642 U+FE0F -๐Ÿง›โ€โ™€๏ธ woman vampire; U+1F9DB U+200D U+2640 U+FE0F -๐Ÿงœ merperson; U+1F9DC -๐Ÿงœโ€โ™‚๏ธ merman; U+1F9DC U+200D U+2642 U+FE0F -๐Ÿงœโ€โ™€๏ธ mermaid; U+1F9DC U+200D U+2640 U+FE0F -๐Ÿง elf; U+1F9DD -๐Ÿงโ€โ™‚๏ธ man elf; U+1F9DD U+200D U+2642 U+FE0F -๐Ÿงโ€โ™€๏ธ woman elf; U+1F9DD U+200D U+2640 U+FE0F -๐Ÿงž genie; U+1F9DE -๐Ÿงžโ€โ™‚๏ธ man genie; U+1F9DE U+200D U+2642 U+FE0F -๐Ÿงžโ€โ™€๏ธ woman genie; U+1F9DE U+200D U+2640 U+FE0F -๐ŸงŸ zombie; U+1F9DF -๐ŸงŸโ€โ™‚๏ธ man zombie; U+1F9DF U+200D U+2642 U+FE0F -๐ŸงŸโ€โ™€๏ธ woman zombie; U+1F9DF U+200D U+2640 U+FE0F -๐Ÿ’† person getting massage; U+1F486 -๐Ÿ’†โ€โ™‚๏ธ man getting massage; U+1F486 U+200D U+2642 U+FE0F -๐Ÿ’†โ€โ™€๏ธ woman getting massage; U+1F486 U+200D U+2640 U+FE0F -๐Ÿ’‡ person getting haircut; U+1F487 -๐Ÿ’‡โ€โ™‚๏ธ man getting haircut; U+1F487 U+200D U+2642 U+FE0F -๐Ÿ’‡โ€โ™€๏ธ woman getting haircut; U+1F487 U+200D U+2640 U+FE0F -๐Ÿšถ person walking; U+1F6B6 -๐Ÿšถโ€โ™‚๏ธ man walking; U+1F6B6 U+200D U+2642 U+FE0F -๐Ÿšถโ€โ™€๏ธ woman walking; U+1F6B6 U+200D U+2640 U+FE0F -๐Ÿƒ person running; U+1F3C3 -๐Ÿƒโ€โ™‚๏ธ man running; U+1F3C3 U+200D U+2642 U+FE0F -๐Ÿƒโ€โ™€๏ธ woman running; U+1F3C3 U+200D U+2640 U+FE0F -๐Ÿ’ƒ woman dancing; U+1F483 -๐Ÿ•บ man dancing; U+1F57A -๐Ÿ•ด man in suit levitating; U+1F574 -๐Ÿ‘ฏ people with bunny ears; U+1F46F -๐Ÿ‘ฏโ€โ™‚๏ธ men with bunny ears; U+1F46F U+200D U+2642 U+FE0F -๐Ÿ‘ฏโ€โ™€๏ธ women with bunny ears; U+1F46F U+200D U+2640 U+FE0F -๐Ÿง– person in steamy room; U+1F9D6 -๐Ÿง–โ€โ™‚๏ธ man in steamy room; U+1F9D6 U+200D U+2642 U+FE0F -๐Ÿง–โ€โ™€๏ธ woman in steamy room; U+1F9D6 U+200D U+2640 U+FE0F -๐Ÿง— person climbing; U+1F9D7 -๐Ÿง—โ€โ™‚๏ธ man climbing; U+1F9D7 U+200D U+2642 U+FE0F -๐Ÿง—โ€โ™€๏ธ woman climbing; U+1F9D7 U+200D U+2640 U+FE0F -๐Ÿคบ person fencing; U+1F93A -๐Ÿ‡ horse racing; U+1F3C7 -โ›ท skier; U+26F7 -๐Ÿ‚ snowboarder; U+1F3C2 -๐ŸŒ person golfing; U+1F3CC -๐ŸŒ๏ธโ€โ™‚๏ธ man golfing; U+1F3CC U+FE0F U+200D U+2642 U+FE0F -๐ŸŒ๏ธโ€โ™€๏ธ woman golfing; U+1F3CC U+FE0F U+200D U+2640 U+FE0F -๐Ÿ„ person surfing; U+1F3C4 -๐Ÿ„โ€โ™‚๏ธ man surfing; U+1F3C4 U+200D U+2642 U+FE0F -๐Ÿ„โ€โ™€๏ธ woman surfing; U+1F3C4 U+200D U+2640 U+FE0F -๐Ÿšฃ person rowing boat; U+1F6A3 -๐Ÿšฃโ€โ™‚๏ธ man rowing boat; U+1F6A3 U+200D U+2642 U+FE0F -๐Ÿšฃโ€โ™€๏ธ woman rowing boat; U+1F6A3 U+200D U+2640 U+FE0F -๐ŸŠ person swimming; U+1F3CA -๐ŸŠโ€โ™‚๏ธ man swimming; U+1F3CA U+200D U+2642 U+FE0F -๐ŸŠโ€โ™€๏ธ woman swimming; U+1F3CA U+200D U+2640 U+FE0F -โ›น person bouncing ball; U+26F9 -โ›น๏ธโ€โ™‚๏ธ man bouncing ball; U+26F9 U+FE0F U+200D U+2642 U+FE0F -โ›น๏ธโ€โ™€๏ธ woman bouncing ball; U+26F9 U+FE0F U+200D U+2640 U+FE0F -๐Ÿ‹ person lifting weights; U+1F3CB -๐Ÿ‹๏ธโ€โ™‚๏ธ man lifting weights; U+1F3CB U+FE0F U+200D U+2642 U+FE0F -๐Ÿ‹๏ธโ€โ™€๏ธ woman lifting weights; U+1F3CB U+FE0F U+200D U+2640 U+FE0F -๐Ÿšด person biking; U+1F6B4 -๐Ÿšดโ€โ™‚๏ธ man biking; U+1F6B4 U+200D U+2642 U+FE0F -๐Ÿšดโ€โ™€๏ธ woman biking; U+1F6B4 U+200D U+2640 U+FE0F -๐Ÿšต person mountain biking; U+1F6B5 -๐Ÿšตโ€โ™‚๏ธ man mountain biking; U+1F6B5 U+200D U+2642 U+FE0F -๐Ÿšตโ€โ™€๏ธ woman mountain biking; U+1F6B5 U+200D U+2640 U+FE0F -๐Ÿคธ person cartwheeling; U+1F938 -๐Ÿคธโ€โ™‚๏ธ man cartwheeling; U+1F938 U+200D U+2642 U+FE0F -๐Ÿคธโ€โ™€๏ธ woman cartwheeling; U+1F938 U+200D U+2640 U+FE0F -๐Ÿคผ people wrestling; U+1F93C -๐Ÿคผโ€โ™‚๏ธ men wrestling; U+1F93C U+200D U+2642 U+FE0F -๐Ÿคผโ€โ™€๏ธ women wrestling; U+1F93C U+200D U+2640 U+FE0F -๐Ÿคฝ person playing water polo; U+1F93D -๐Ÿคฝโ€โ™‚๏ธ man playing water polo; U+1F93D U+200D U+2642 U+FE0F -๐Ÿคฝโ€โ™€๏ธ woman playing water polo; U+1F93D U+200D U+2640 U+FE0F -๐Ÿคพ person playing handball; U+1F93E -๐Ÿคพโ€โ™‚๏ธ man playing handball; U+1F93E U+200D U+2642 U+FE0F -๐Ÿคพโ€โ™€๏ธ woman playing handball; U+1F93E U+200D U+2640 U+FE0F -๐Ÿคน person juggling; U+1F939 -๐Ÿคนโ€โ™‚๏ธ man juggling; U+1F939 U+200D U+2642 U+FE0F -๐Ÿคนโ€โ™€๏ธ woman juggling; U+1F939 U+200D U+2640 U+FE0F -๐Ÿง˜ person in lotus position; U+1F9D8 -๐Ÿง˜โ€โ™‚๏ธ man in lotus position; U+1F9D8 U+200D U+2642 U+FE0F -๐Ÿง˜โ€โ™€๏ธ woman in lotus position; U+1F9D8 U+200D U+2640 U+FE0F -๐Ÿ›€ person taking bath; U+1F6C0 -๐Ÿ›Œ person in bed; U+1F6CC -๐Ÿ‘ญ women holding hands; U+1F46D -๐Ÿ‘ซ woman and man holding hands; U+1F46B -๐Ÿ‘ฌ men holding hands; U+1F46C -๐Ÿ’ kiss; U+1F48F -๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ kiss: woman, man; U+1F469 U+200D U+2764 U+FE0F U+200D U+1F48B U+200D U+1F468 -๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ kiss: man, man; U+1F468 U+200D U+2764 U+FE0F U+200D U+1F48B U+200D U+1F468 -๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ kiss: woman, woman; U+1F469 U+200D U+2764 U+FE0F U+200D U+1F48B U+200D U+1F469 -๐Ÿ’‘ couple with heart; U+1F491 -๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ couple with heart: woman, man; U+1F469 U+200D U+2764 U+FE0F U+200D U+1F468 -๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ couple with heart: man, man; U+1F468 U+200D U+2764 U+FE0F U+200D U+1F468 -๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ couple with heart: woman, woman; U+1F469 U+200D U+2764 U+FE0F U+200D U+1F469 -๐Ÿ‘ช family; U+1F46A -๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ family: man, woman, boy; U+1F468 U+200D U+1F469 U+200D U+1F466 -๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง family: man, woman, girl; U+1F468 U+200D U+1F469 U+200D U+1F467 -๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: man, woman, girl, boy; U+1F468 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466 -๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: man, woman, boy, boy; U+1F468 U+200D U+1F469 U+200D U+1F466 U+200D U+1F466 -๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง family: man, woman, girl, girl; U+1F468 U+200D U+1F469 U+200D U+1F467 U+200D U+1F467 -๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ family: man, man, boy; U+1F468 U+200D U+1F468 U+200D U+1F466 -๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง family: man, man, girl; U+1F468 U+200D U+1F468 U+200D U+1F467 -๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: man, man, girl, boy; U+1F468 U+200D U+1F468 U+200D U+1F467 U+200D U+1F466 -๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: man, man, boy, boy; U+1F468 U+200D U+1F468 U+200D U+1F466 U+200D U+1F466 -๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง family: man, man, girl, girl; U+1F468 U+200D U+1F468 U+200D U+1F467 U+200D U+1F467 -๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ family: woman, woman, boy; U+1F469 U+200D U+1F469 U+200D U+1F466 -๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง family: woman, woman, girl; U+1F469 U+200D U+1F469 U+200D U+1F467 -๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: woman, woman, girl, boy; U+1F469 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466 -๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: woman, woman, boy, boy; U+1F469 U+200D U+1F469 U+200D U+1F466 U+200D U+1F466 -๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง family: woman, woman, girl, girl; U+1F469 U+200D U+1F469 U+200D U+1F467 U+200D U+1F467 -๐Ÿ‘จโ€๐Ÿ‘ฆ family: man, boy; U+1F468 U+200D U+1F466 -๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: man, boy, boy; U+1F468 U+200D U+1F466 U+200D U+1F466 -๐Ÿ‘จโ€๐Ÿ‘ง family: man, girl; U+1F468 U+200D U+1F467 -๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: man, girl, boy; U+1F468 U+200D U+1F467 U+200D U+1F466 -๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง family: man, girl, girl; U+1F468 U+200D U+1F467 U+200D U+1F467 -๐Ÿ‘ฉโ€๐Ÿ‘ฆ family: woman, boy; U+1F469 U+200D U+1F466 -๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: woman, boy, boy; U+1F469 U+200D U+1F466 U+200D U+1F466 -๐Ÿ‘ฉโ€๐Ÿ‘ง family: woman, girl; U+1F469 U+200D U+1F467 -๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: woman, girl, boy; U+1F469 U+200D U+1F467 U+200D U+1F466 -๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง family: woman, girl, girl; U+1F469 U+200D U+1F467 U+200D U+1F467 -๐Ÿ—ฃ speaking head; U+1F5E3 -๐Ÿ‘ค bust in silhouette; U+1F464 -๐Ÿ‘ฅ busts in silhouette; U+1F465 -๐Ÿ‘ฃ footprints; U+1F463 -๐Ÿฆฐ red hair; U+1F9B0 -๐Ÿฆฑ curly hair; U+1F9B1 -๐Ÿฆณ white hair; U+1F9B3 -๐Ÿฆฒ bald; U+1F9B2 -๐Ÿต monkey face; U+1F435 -๐Ÿ’ monkey; U+1F412 -๐Ÿฆ gorilla; U+1F98D -๐Ÿถ dog face; U+1F436 -๐Ÿ• dog; U+1F415 -๐Ÿฉ poodle; U+1F429 -๐Ÿบ wolf face; U+1F43A -๐ŸฆŠ fox face; U+1F98A -๐Ÿฆ raccoon; U+1F99D -๐Ÿฑ cat face; U+1F431 -๐Ÿˆ cat; U+1F408 -๐Ÿฆ lion face; U+1F981 -๐Ÿฏ tiger face; U+1F42F -๐Ÿ… tiger; U+1F405 -๐Ÿ† leopard; U+1F406 -๐Ÿด horse face; U+1F434 -๐ŸŽ horse; U+1F40E -๐Ÿฆ„ unicorn face; U+1F984 -๐Ÿฆ“ zebra; U+1F993 -๐ŸฆŒ deer; U+1F98C -๐Ÿฎ cow face; U+1F42E -๐Ÿ‚ ox; U+1F402 -๐Ÿƒ water buffalo; U+1F403 -๐Ÿ„ cow; U+1F404 -๐Ÿท pig face; U+1F437 -๐Ÿ– pig; U+1F416 -๐Ÿ— boar; U+1F417 -๐Ÿฝ pig nose; U+1F43D -๐Ÿ ram; U+1F40F -๐Ÿ‘ ewe; U+1F411 -๐Ÿ goat; U+1F410 -๐Ÿช camel; U+1F42A -๐Ÿซ two-hump camel; U+1F42B -๐Ÿฆ™ llama; U+1F999 -๐Ÿฆ’ giraffe; U+1F992 -๐Ÿ˜ elephant; U+1F418 -๐Ÿฆ rhinoceros; U+1F98F -๐Ÿฆ› hippopotamus; U+1F99B -๐Ÿญ mouse face; U+1F42D -๐Ÿ mouse; U+1F401 -๐Ÿ€ rat; U+1F400 -๐Ÿน hamster face; U+1F439 -๐Ÿฐ rabbit face; U+1F430 -๐Ÿ‡ rabbit; U+1F407 -๐Ÿฟ chipmunk; U+1F43F -๐Ÿฆ” hedgehog; U+1F994 -๐Ÿฆ‡ bat; U+1F987 -๐Ÿป bear face; U+1F43B -๐Ÿจ koala; U+1F428 -๐Ÿผ panda face; U+1F43C -๐Ÿฆ˜ kangaroo; U+1F998 -๐Ÿฆก badger; U+1F9A1 -๐Ÿพ paw prints; U+1F43E -๐Ÿฆƒ turkey; U+1F983 -๐Ÿ” chicken; U+1F414 -๐Ÿ“ rooster; U+1F413 -๐Ÿฃ hatching chick; U+1F423 -๐Ÿค baby chick; U+1F424 -๐Ÿฅ front-facing baby chick; U+1F425 -๐Ÿฆ bird; U+1F426 -๐Ÿง penguin; U+1F427 -๐Ÿ•Š dove; U+1F54A -๐Ÿฆ… eagle; U+1F985 -๐Ÿฆ† duck; U+1F986 -๐Ÿฆข swan; U+1F9A2 -๐Ÿฆ‰ owl; U+1F989 -๐Ÿฆš peacock; U+1F99A -๐Ÿฆœ parrot; U+1F99C -๐Ÿธ frog face; U+1F438 -๐ŸŠ crocodile; U+1F40A -๐Ÿข turtle; U+1F422 -๐ŸฆŽ lizard; U+1F98E -๐Ÿ snake; U+1F40D -๐Ÿฒ dragon face; U+1F432 -๐Ÿ‰ dragon; U+1F409 -๐Ÿฆ• sauropod; U+1F995 -๐Ÿฆ– T-Rex; U+1F996 -๐Ÿณ spouting whale; U+1F433 -๐Ÿ‹ whale; U+1F40B -๐Ÿฌ dolphin; U+1F42C -๐ŸŸ fish; U+1F41F -๐Ÿ  tropical fish; U+1F420 -๐Ÿก blowfish; U+1F421 -๐Ÿฆˆ shark; U+1F988 -๐Ÿ™ octopus; U+1F419 -๐Ÿš spiral shell; U+1F41A -๐ŸŒ snail; U+1F40C -๐Ÿฆ‹ butterfly; U+1F98B -๐Ÿ› bug; U+1F41B -๐Ÿœ ant; U+1F41C -๐Ÿ honeybee; U+1F41D -๐Ÿž lady beetle; U+1F41E -๐Ÿฆ— cricket; U+1F997 -๐Ÿ•ท spider; U+1F577 -๐Ÿ•ธ spider web; U+1F578 -๐Ÿฆ‚ scorpion; U+1F982 -๐ŸฆŸ mosquito; U+1F99F -๐Ÿฆ  microbe; U+1F9A0 -๐Ÿ’ bouquet; U+1F490 -๐ŸŒธ cherry blossom; U+1F338 -๐Ÿ’ฎ white flower; U+1F4AE -๐Ÿต rosette; U+1F3F5 -๐ŸŒน rose; U+1F339 -๐Ÿฅ€ wilted flower; U+1F940 -๐ŸŒบ hibiscus; U+1F33A -๐ŸŒป sunflower; U+1F33B -๐ŸŒผ blossom; U+1F33C -๐ŸŒท tulip; U+1F337 -๐ŸŒฑ seedling; U+1F331 -๐ŸŒฒ evergreen tree; U+1F332 -๐ŸŒณ deciduous tree; U+1F333 -๐ŸŒด palm tree; U+1F334 -๐ŸŒต cactus; U+1F335 -๐ŸŒพ sheaf of rice; U+1F33E -๐ŸŒฟ herb; U+1F33F -โ˜˜ shamrock; U+2618 -๐Ÿ€ four leaf clover; U+1F340 -๐Ÿ maple leaf; U+1F341 -๐Ÿ‚ fallen leaf; U+1F342 -๐Ÿƒ leaf fluttering in wind; U+1F343 -๐Ÿ‡ grapes; U+1F347 -๐Ÿˆ melon; U+1F348 -๐Ÿ‰ watermelon; U+1F349 -๐ŸŠ tangerine; U+1F34A -๐Ÿ‹ lemon; U+1F34B -๐ŸŒ banana; U+1F34C -๐Ÿ pineapple; U+1F34D -๐Ÿฅญ mango; U+1F96D -๐ŸŽ red apple; U+1F34E -๐Ÿ green apple; U+1F34F -๐Ÿ pear; U+1F350 -๐Ÿ‘ peach; U+1F351 -๐Ÿ’ cherries; U+1F352 -๐Ÿ“ strawberry; U+1F353 -๐Ÿฅ kiwi fruit; U+1F95D -๐Ÿ… tomato; U+1F345 -๐Ÿฅฅ coconut; U+1F965 -๐Ÿฅ‘ avocado; U+1F951 -๐Ÿ† eggplant; U+1F346 -๐Ÿฅ” potato; U+1F954 -๐Ÿฅ• carrot; U+1F955 -๐ŸŒฝ ear of corn; U+1F33D -๐ŸŒถ hot pepper; U+1F336 -๐Ÿฅ’ cucumber; U+1F952 -๐Ÿฅฌ leafy green; U+1F96C -๐Ÿฅฆ broccoli; U+1F966 -๐Ÿ„ mushroom; U+1F344 -๐Ÿฅœ peanuts; U+1F95C -๐ŸŒฐ chestnut; U+1F330 -๐Ÿž bread; U+1F35E -๐Ÿฅ croissant; U+1F950 -๐Ÿฅ– baguette bread; U+1F956 -๐Ÿฅจ pretzel; U+1F968 -๐Ÿฅฏ bagel; U+1F96F -๐Ÿฅž pancakes; U+1F95E -๐Ÿง€ cheese wedge; U+1F9C0 -๐Ÿ– meat on bone; U+1F356 -๐Ÿ— poultry leg; U+1F357 -๐Ÿฅฉ cut of meat; U+1F969 -๐Ÿฅ“ bacon; U+1F953 -๐Ÿ” hamburger; U+1F354 -๐ŸŸ french fries; U+1F35F -๐Ÿ• pizza; U+1F355 -๐ŸŒญ hot dog; U+1F32D -๐Ÿฅช sandwich; U+1F96A -๐ŸŒฎ taco; U+1F32E -๐ŸŒฏ burrito; U+1F32F -๐Ÿฅ™ stuffed flatbread; U+1F959 -๐Ÿฅš egg; U+1F95A -๐Ÿณ cooking; U+1F373 -๐Ÿฅ˜ shallow pan of food; U+1F958 -๐Ÿฒ pot of food; U+1F372 -๐Ÿฅฃ bowl with spoon; U+1F963 -๐Ÿฅ— green salad; U+1F957 -๐Ÿฟ popcorn; U+1F37F -๐Ÿง‚ salt; U+1F9C2 -๐Ÿฅซ canned food; U+1F96B -๐Ÿฑ bento box; U+1F371 -๐Ÿ˜ rice cracker; U+1F358 -๐Ÿ™ rice ball; U+1F359 -๐Ÿš cooked rice; U+1F35A -๐Ÿ› curry rice; U+1F35B -๐Ÿœ steaming bowl; U+1F35C -๐Ÿ spaghetti; U+1F35D -๐Ÿ  roasted sweet potato; U+1F360 -๐Ÿข oden; U+1F362 -๐Ÿฃ sushi; U+1F363 -๐Ÿค fried shrimp; U+1F364 -๐Ÿฅ fish cake with swirl; U+1F365 -๐Ÿฅฎ moon cake; U+1F96E -๐Ÿก dango; U+1F361 -๐ŸฅŸ dumpling; U+1F95F -๐Ÿฅ  fortune cookie; U+1F960 -๐Ÿฅก takeout box; U+1F961 -๐Ÿฆ€ crab; U+1F980 -๐Ÿฆž lobster; U+1F99E -๐Ÿฆ shrimp; U+1F990 -๐Ÿฆ‘ squid; U+1F991 -๐Ÿฆ soft ice cream; U+1F366 -๐Ÿง shaved ice; U+1F367 -๐Ÿจ ice cream; U+1F368 -๐Ÿฉ doughnut; U+1F369 -๐Ÿช cookie; U+1F36A -๐ŸŽ‚ birthday cake; U+1F382 -๐Ÿฐ shortcake; U+1F370 -๐Ÿง cupcake; U+1F9C1 -๐Ÿฅง pie; U+1F967 -๐Ÿซ chocolate bar; U+1F36B -๐Ÿฌ candy; U+1F36C -๐Ÿญ lollipop; U+1F36D -๐Ÿฎ custard; U+1F36E -๐Ÿฏ honey pot; U+1F36F -๐Ÿผ baby bottle; U+1F37C -๐Ÿฅ› glass of milk; U+1F95B -โ˜• hot beverage; U+2615 -๐Ÿต teacup without handle; U+1F375 -๐Ÿถ sake; U+1F376 -๐Ÿพ bottle with popping cork; U+1F37E -๐Ÿท wine glass; U+1F377 -๐Ÿธ cocktail glass; U+1F378 -๐Ÿน tropical drink; U+1F379 -๐Ÿบ beer mug; U+1F37A -๐Ÿป clinking beer mugs; U+1F37B -๐Ÿฅ‚ clinking glasses; U+1F942 -๐Ÿฅƒ tumbler glass; U+1F943 -๐Ÿฅค cup with straw; U+1F964 -๐Ÿฅข chopsticks; U+1F962 -๐Ÿฝ fork and knife with plate; U+1F37D -๐Ÿด fork and knife; U+1F374 -๐Ÿฅ„ spoon; U+1F944 -๐Ÿ”ช kitchen knife; U+1F52A -๐Ÿบ amphora; U+1F3FA -๐ŸŒ globe showing Europe-Africa; U+1F30D -๐ŸŒŽ globe showing Americas; U+1F30E -๐ŸŒ globe showing Asia-Australia; U+1F30F -๐ŸŒ globe with meridians; U+1F310 -๐Ÿ—บ world map; U+1F5FA -๐Ÿ—พ map of Japan; U+1F5FE -๐Ÿงญ compass; U+1F9ED -๐Ÿ” snow-capped mountain; U+1F3D4 -โ›ฐ mountain; U+26F0 -๐ŸŒ‹ volcano; U+1F30B -๐Ÿ—ป mount fuji; U+1F5FB -๐Ÿ• camping; U+1F3D5 -๐Ÿ– beach with umbrella; U+1F3D6 -๐Ÿœ desert; U+1F3DC -๐Ÿ desert island; U+1F3DD -๐Ÿž national park; U+1F3DE -๐ŸŸ stadium; U+1F3DF -๐Ÿ› classical building; U+1F3DB -๐Ÿ— building construction; U+1F3D7 -๐Ÿงฑ brick; U+1F9F1 -๐Ÿ˜ houses; U+1F3D8 -๐Ÿš derelict house; U+1F3DA -๐Ÿ  house; U+1F3E0 -๐Ÿก house with garden; U+1F3E1 -๐Ÿข office building; U+1F3E2 -๐Ÿฃ Japanese post office; U+1F3E3 -๐Ÿค post office; U+1F3E4 -๐Ÿฅ hospital; U+1F3E5 -๐Ÿฆ bank; U+1F3E6 -๐Ÿจ hotel; U+1F3E8 -๐Ÿฉ love hotel; U+1F3E9 -๐Ÿช convenience store; U+1F3EA -๐Ÿซ school; U+1F3EB -๐Ÿฌ department store; U+1F3EC -๐Ÿญ factory; U+1F3ED -๐Ÿฏ Japanese castle; U+1F3EF -๐Ÿฐ castle; U+1F3F0 -๐Ÿ’’ wedding; U+1F492 -๐Ÿ—ผ Tokyo tower; U+1F5FC -๐Ÿ—ฝ Statue of Liberty; U+1F5FD -โ›ช church; U+26EA -๐Ÿ•Œ mosque; U+1F54C -๐Ÿ• synagogue; U+1F54D -โ›ฉ shinto shrine; U+26E9 -๐Ÿ•‹ kaaba; U+1F54B -โ›ฒ fountain; U+26F2 -โ›บ tent; U+26FA -๐ŸŒ foggy; U+1F301 -๐ŸŒƒ night with stars; U+1F303 -๐Ÿ™ cityscape; U+1F3D9 -๐ŸŒ„ sunrise over mountains; U+1F304 -๐ŸŒ… sunrise; U+1F305 -๐ŸŒ† cityscape at dusk; U+1F306 -๐ŸŒ‡ sunset; U+1F307 -๐ŸŒ‰ bridge at night; U+1F309 -โ™จ hot springs; U+2668 -๐ŸŒŒ milky way; U+1F30C -๐ŸŽ  carousel horse; U+1F3A0 -๐ŸŽก ferris wheel; U+1F3A1 -๐ŸŽข roller coaster; U+1F3A2 -๐Ÿ’ˆ barber pole; U+1F488 -๐ŸŽช circus tent; U+1F3AA -๐Ÿš‚ locomotive; U+1F682 -๐Ÿšƒ railway car; U+1F683 -๐Ÿš„ high-speed train; U+1F684 -๐Ÿš… bullet train; U+1F685 -๐Ÿš† train; U+1F686 -๐Ÿš‡ metro; U+1F687 -๐Ÿšˆ light rail; U+1F688 -๐Ÿš‰ station; U+1F689 -๐ŸšŠ tram; U+1F68A -๐Ÿš monorail; U+1F69D -๐Ÿšž mountain railway; U+1F69E -๐Ÿš‹ tram car; U+1F68B -๐ŸšŒ bus; U+1F68C -๐Ÿš oncoming bus; U+1F68D -๐ŸšŽ trolleybus; U+1F68E -๐Ÿš minibus; U+1F690 -๐Ÿš‘ ambulance; U+1F691 -๐Ÿš’ fire engine; U+1F692 -๐Ÿš“ police car; U+1F693 -๐Ÿš” oncoming police car; U+1F694 -๐Ÿš• taxi; U+1F695 -๐Ÿš– oncoming taxi; U+1F696 -๐Ÿš— automobile; U+1F697 -๐Ÿš˜ oncoming automobile; U+1F698 -๐Ÿš™ sport utility vehicle; U+1F699 -๐Ÿšš delivery truck; U+1F69A -๐Ÿš› articulated lorry; U+1F69B -๐Ÿšœ tractor; U+1F69C -๐ŸŽ racing car; U+1F3CE -๐Ÿ motorcycle; U+1F3CD -๐Ÿ›ต motor scooter; U+1F6F5 -๐Ÿšฒ bicycle; U+1F6B2 -๐Ÿ›ด kick scooter; U+1F6F4 -๐Ÿ›น skateboard; U+1F6F9 -๐Ÿš bus stop; U+1F68F -๐Ÿ›ฃ motorway; U+1F6E3 -๐Ÿ›ค railway track; U+1F6E4 -๐Ÿ›ข oil drum; U+1F6E2 -โ›ฝ fuel pump; U+26FD -๐Ÿšจ police car light; U+1F6A8 -๐Ÿšฅ horizontal traffic light; U+1F6A5 -๐Ÿšฆ vertical traffic light; U+1F6A6 -๐Ÿ›‘ stop sign; U+1F6D1 -๐Ÿšง construction; U+1F6A7 -โš“ anchor; U+2693 -โ›ต sailboat; U+26F5 -๐Ÿ›ถ canoe; U+1F6F6 -๐Ÿšค speedboat; U+1F6A4 -๐Ÿ›ณ passenger ship; U+1F6F3 -โ›ด ferry; U+26F4 -๐Ÿ›ฅ motor boat; U+1F6E5 -๐Ÿšข ship; U+1F6A2 -โœˆ airplane; U+2708 -๐Ÿ›ฉ small airplane; U+1F6E9 -๐Ÿ›ซ airplane departure; U+1F6EB -๐Ÿ›ฌ airplane arrival; U+1F6EC -๐Ÿ’บ seat; U+1F4BA -๐Ÿš helicopter; U+1F681 -๐ŸšŸ suspension railway; U+1F69F -๐Ÿš  mountain cableway; U+1F6A0 -๐Ÿšก aerial tramway; U+1F6A1 -๐Ÿ›ฐ satellite; U+1F6F0 -๐Ÿš€ rocket; U+1F680 -๐Ÿ›ธ flying saucer; U+1F6F8 -๐Ÿ›Ž bellhop bell; U+1F6CE -๐Ÿงณ luggage; U+1F9F3 -โŒ› hourglass done; U+231B -โณ hourglass not done; U+23F3 -โŒš watch; U+231A -โฐ alarm clock; U+23F0 -โฑ stopwatch; U+23F1 -โฒ timer clock; U+23F2 -๐Ÿ•ฐ mantelpiece clock; U+1F570 -๐Ÿ•› twelve oโ€™clock; U+1F55B -๐Ÿ•ง twelve-thirty; U+1F567 -๐Ÿ• one oโ€™clock; U+1F550 -๐Ÿ•œ one-thirty; U+1F55C -๐Ÿ•‘ two oโ€™clock; U+1F551 -๐Ÿ• two-thirty; U+1F55D -๐Ÿ•’ three oโ€™clock; U+1F552 -๐Ÿ•ž three-thirty; U+1F55E -๐Ÿ•“ four oโ€™clock; U+1F553 -๐Ÿ•Ÿ four-thirty; U+1F55F -๐Ÿ•” five oโ€™clock; U+1F554 -๐Ÿ•  five-thirty; U+1F560 -๐Ÿ•• six oโ€™clock; U+1F555 -๐Ÿ•ก six-thirty; U+1F561 -๐Ÿ•– seven oโ€™clock; U+1F556 -๐Ÿ•ข seven-thirty; U+1F562 -๐Ÿ•— eight oโ€™clock; U+1F557 -๐Ÿ•ฃ eight-thirty; U+1F563 -๐Ÿ•˜ nine oโ€™clock; U+1F558 -๐Ÿ•ค nine-thirty; U+1F564 -๐Ÿ•™ ten oโ€™clock; U+1F559 -๐Ÿ•ฅ ten-thirty; U+1F565 -๐Ÿ•š eleven oโ€™clock; U+1F55A -๐Ÿ•ฆ eleven-thirty; U+1F566 -๐ŸŒ‘ new moon; U+1F311 -๐ŸŒ’ waxing crescent moon; U+1F312 -๐ŸŒ“ first quarter moon; U+1F313 -๐ŸŒ” waxing gibbous moon; U+1F314 -๐ŸŒ• full moon; U+1F315 -๐ŸŒ– waning gibbous moon; U+1F316 -๐ŸŒ— last quarter moon; U+1F317 -๐ŸŒ˜ waning crescent moon; U+1F318 -๐ŸŒ™ crescent moon; U+1F319 -๐ŸŒš new moon face; U+1F31A -๐ŸŒ› first quarter moon face; U+1F31B -๐ŸŒœ last quarter moon face; U+1F31C -๐ŸŒก thermometer; U+1F321 -โ˜€ sun; U+2600 -๐ŸŒ full moon face; U+1F31D -๐ŸŒž sun with face; U+1F31E -โญ star; U+2B50 -๐ŸŒŸ glowing star; U+1F31F -๐ŸŒ  shooting star; U+1F320 -โ˜ cloud; U+2601 -โ›… sun behind cloud; U+26C5 -โ›ˆ cloud with lightning and rain; U+26C8 -๐ŸŒค sun behind small cloud; U+1F324 -๐ŸŒฅ sun behind large cloud; U+1F325 -๐ŸŒฆ sun behind rain cloud; U+1F326 -๐ŸŒง cloud with rain; U+1F327 -๐ŸŒจ cloud with snow; U+1F328 -๐ŸŒฉ cloud with lightning; U+1F329 -๐ŸŒช tornado; U+1F32A -๐ŸŒซ fog; U+1F32B -๐ŸŒฌ wind face; U+1F32C -๐ŸŒ€ cyclone; U+1F300 -๐ŸŒˆ rainbow; U+1F308 -๐ŸŒ‚ closed umbrella; U+1F302 -โ˜‚ umbrella; U+2602 -โ˜” umbrella with rain drops; U+2614 -โ›ฑ umbrella on ground; U+26F1 -โšก high voltage; U+26A1 -โ„ snowflake; U+2744 -โ˜ƒ snowman; U+2603 -โ›„ snowman without snow; U+26C4 -โ˜„ comet; U+2604 -๐Ÿ”ฅ fire; U+1F525 -๐Ÿ’ง droplet; U+1F4A7 -๐ŸŒŠ water wave; U+1F30A -๐ŸŽƒ jack-o-lantern; U+1F383 -๐ŸŽ„ Christmas tree; U+1F384 -๐ŸŽ† fireworks; U+1F386 -๐ŸŽ‡ sparkler; U+1F387 -๐Ÿงจ firecracker; U+1F9E8 -โœจ sparkles; U+2728 -๐ŸŽˆ balloon; U+1F388 -๐ŸŽ‰ party popper; U+1F389 -๐ŸŽŠ confetti ball; U+1F38A -๐ŸŽ‹ tanabata tree; U+1F38B -๐ŸŽ pine decoration; U+1F38D -๐ŸŽŽ Japanese dolls; U+1F38E -๐ŸŽ carp streamer; U+1F38F -๐ŸŽ wind chime; U+1F390 -๐ŸŽ‘ moon viewing ceremony; U+1F391 -๐Ÿงง red envelope; U+1F9E7 -๐ŸŽ€ ribbon; U+1F380 -๐ŸŽ wrapped gift; U+1F381 -๐ŸŽ— reminder ribbon; U+1F397 -๐ŸŽŸ admission tickets; U+1F39F -๐ŸŽซ ticket; U+1F3AB -๐ŸŽ– military medal; U+1F396 -๐Ÿ† trophy; U+1F3C6 -๐Ÿ… sports medal; U+1F3C5 -1st place medal; U+1F947 ๐Ÿฅ‡ -2nd place medal; U+1F948 ๐Ÿฅˆ -3rd place medal; U+1F949 ๐Ÿฅ‰ -โšฝ soccer ball; U+26BD -โšพ baseball; U+26BE -๐ŸฅŽ softball; U+1F94E -๐Ÿ€ basketball; U+1F3C0 -๐Ÿ volleyball; U+1F3D0 -๐Ÿˆ american football; U+1F3C8 -๐Ÿ‰ rugby football; U+1F3C9 -๐ŸŽพ tennis; U+1F3BE -๐Ÿฅ flying disc; U+1F94F -๐ŸŽณ bowling; U+1F3B3 -๐Ÿ cricket game; U+1F3CF -๐Ÿ‘ field hockey; U+1F3D1 -๐Ÿ’ ice hockey; U+1F3D2 -๐Ÿฅ lacrosse; U+1F94D -๐Ÿ“ ping pong; U+1F3D3 -๐Ÿธ badminton; U+1F3F8 -๐ŸฅŠ boxing glove; U+1F94A -๐Ÿฅ‹ martial arts uniform; U+1F94B -๐Ÿฅ… goal net; U+1F945 -โ›ณ flag in hole; U+26F3 -โ›ธ ice skate; U+26F8 -๐ŸŽฃ fishing pole; U+1F3A3 -๐ŸŽฝ running shirt; U+1F3BD -๐ŸŽฟ skis; U+1F3BF -๐Ÿ›ท sled; U+1F6F7 -๐ŸฅŒ curling stone; U+1F94C -๐ŸŽฏ direct hit; U+1F3AF -๐ŸŽฑ pool 8 ball; U+1F3B1 -๐Ÿ”ฎ crystal ball; U+1F52E -๐Ÿงฟ nazar amulet; U+1F9FF -๐ŸŽฎ video game; U+1F3AE -๐Ÿ•น joystick; U+1F579 -๐ŸŽฐ slot machine; U+1F3B0 -๐ŸŽฒ game die; U+1F3B2 -๐Ÿงฉ jigsaw; U+1F9E9 -๐Ÿงธ teddy bear; U+1F9F8 -โ™  spade suit; U+2660 -โ™ฅ heart suit; U+2665 -โ™ฆ diamond suit; U+2666 -โ™ฃ club suit; U+2663 -โ™Ÿ chess pawn; U+265F -๐Ÿƒ joker; U+1F0CF -๐Ÿ€„ mahjong red dragon; U+1F004 -๐ŸŽด flower playing cards; U+1F3B4 -๐ŸŽญ performing arts; U+1F3AD -๐Ÿ–ผ framed picture; U+1F5BC -๐ŸŽจ artist palette; U+1F3A8 -๐Ÿงต thread; U+1F9F5 -๐Ÿงถ yarn; U+1F9F6 -๐Ÿ‘“ glasses; U+1F453 -๐Ÿ•ถ sunglasses; U+1F576 -๐Ÿฅฝ goggles; U+1F97D -๐Ÿฅผ lab coat; U+1F97C -๐Ÿ‘” necktie; U+1F454 -๐Ÿ‘• t-shirt; U+1F455 -๐Ÿ‘– jeans; U+1F456 -๐Ÿงฃ scarf; U+1F9E3 -๐Ÿงค gloves; U+1F9E4 -๐Ÿงฅ coat; U+1F9E5 -๐Ÿงฆ socks; U+1F9E6 -๐Ÿ‘— dress; U+1F457 -๐Ÿ‘˜ kimono; U+1F458 -๐Ÿ‘™ bikini; U+1F459 -๐Ÿ‘š womanโ€™s clothes; U+1F45A -๐Ÿ‘› purse; U+1F45B -๐Ÿ‘œ handbag; U+1F45C -๐Ÿ‘ clutch bag; U+1F45D -๐Ÿ› shopping bags; U+1F6CD -๐ŸŽ’ backpack; U+1F392 -๐Ÿ‘ž manโ€™s shoe; U+1F45E -๐Ÿ‘Ÿ running shoe; U+1F45F -๐Ÿฅพ hiking boot; U+1F97E -๐Ÿฅฟ flat shoe; U+1F97F -๐Ÿ‘  high-heeled shoe; U+1F460 -๐Ÿ‘ก womanโ€™s sandal; U+1F461 -๐Ÿ‘ข womanโ€™s boot; U+1F462 -๐Ÿ‘‘ crown; U+1F451 -๐Ÿ‘’ womanโ€™s hat; U+1F452 -๐ŸŽฉ top hat; U+1F3A9 -๐ŸŽ“ graduation cap; U+1F393 -๐Ÿงข billed cap; U+1F9E2 -โ›‘ rescue workerโ€™s helmet; U+26D1 -๐Ÿ“ฟ prayer beads; U+1F4FF -๐Ÿ’„ lipstick; U+1F484 -๐Ÿ’ ring; U+1F48D -๐Ÿ’Ž gem stone; U+1F48E -๐Ÿ”‡ muted speaker; U+1F507 -๐Ÿ”ˆ speaker low volume; U+1F508 -๐Ÿ”‰ speaker medium volume; U+1F509 -๐Ÿ”Š speaker high volume; U+1F50A -๐Ÿ“ข loudspeaker; U+1F4E2 -๐Ÿ“ฃ megaphone; U+1F4E3 -๐Ÿ“ฏ postal horn; U+1F4EF -๐Ÿ”” bell; U+1F514 -๐Ÿ”• bell with slash; U+1F515 -๐ŸŽผ musical score; U+1F3BC -๐ŸŽต musical note; U+1F3B5 -๐ŸŽถ musical notes; U+1F3B6 -๐ŸŽ™ studio microphone; U+1F399 -๐ŸŽš level slider; U+1F39A -๐ŸŽ› control knobs; U+1F39B -๐ŸŽค microphone; U+1F3A4 -๐ŸŽง headphone; U+1F3A7 -๐Ÿ“ป radio; U+1F4FB -๐ŸŽท saxophone; U+1F3B7 -๐ŸŽธ guitar; U+1F3B8 -๐ŸŽน musical keyboard; U+1F3B9 -๐ŸŽบ trumpet; U+1F3BA -๐ŸŽป violin; U+1F3BB -๐Ÿฅ drum; U+1F941 -๐Ÿ“ฑ mobile phone; U+1F4F1 -๐Ÿ“ฒ mobile phone with arrow; U+1F4F2 -โ˜Ž telephone; U+260E -๐Ÿ“ž telephone receiver; U+1F4DE -๐Ÿ“Ÿ pager; U+1F4DF -๐Ÿ“  fax machine; U+1F4E0 -๐Ÿ”‹ battery; U+1F50B -๐Ÿ”Œ electric plug; U+1F50C -๐Ÿ’ป laptop computer; U+1F4BB -๐Ÿ–ฅ desktop computer; U+1F5A5 -๐Ÿ–จ printer; U+1F5A8 -โŒจ keyboard; U+2328 -๐Ÿ–ฑ computer mouse; U+1F5B1 -๐Ÿ–ฒ trackball; U+1F5B2 -๐Ÿ’ฝ computer disk; U+1F4BD -๐Ÿ’พ floppy disk; U+1F4BE -๐Ÿ’ฟ optical disk; U+1F4BF -๐Ÿ“€ dvd; U+1F4C0 -๐Ÿงฎ abacus; U+1F9EE -๐ŸŽฅ movie camera; U+1F3A5 -๐ŸŽž film frames; U+1F39E -๐Ÿ“ฝ film projector; U+1F4FD -๐ŸŽฌ clapper board; U+1F3AC -๐Ÿ“บ television; U+1F4FA -๐Ÿ“ท camera; U+1F4F7 -๐Ÿ“ธ camera with flash; U+1F4F8 -๐Ÿ“น video camera; U+1F4F9 -๐Ÿ“ผ videocassette; U+1F4FC -๐Ÿ” magnifying glass tilted left; U+1F50D -๐Ÿ”Ž magnifying glass tilted right; U+1F50E -๐Ÿ•ฏ candle; U+1F56F -๐Ÿ’ก light bulb; U+1F4A1 -๐Ÿ”ฆ flashlight; U+1F526 -๐Ÿฎ red paper lantern; U+1F3EE -๐Ÿ“” notebook with decorative cover; U+1F4D4 -๐Ÿ“• closed book; U+1F4D5 -๐Ÿ“– open book; U+1F4D6 -๐Ÿ“— green book; U+1F4D7 -๐Ÿ“˜ blue book; U+1F4D8 -๐Ÿ“™ orange book; U+1F4D9 -๐Ÿ“š books; U+1F4DA -๐Ÿ““ notebook; U+1F4D3 -๐Ÿ“’ ledger; U+1F4D2 -๐Ÿ“ƒ page with curl; U+1F4C3 -๐Ÿ“œ scroll; U+1F4DC -๐Ÿ“„ page facing up; U+1F4C4 -๐Ÿ“ฐ newspaper; U+1F4F0 -๐Ÿ—ž rolled-up newspaper; U+1F5DE -๐Ÿ“‘ bookmark tabs; U+1F4D1 -๐Ÿ”– bookmark; U+1F516 -๐Ÿท label; U+1F3F7 -๐Ÿ’ฐ money bag; U+1F4B0 -๐Ÿ’ด yen banknote; U+1F4B4 -๐Ÿ’ต dollar banknote; U+1F4B5 -๐Ÿ’ถ euro banknote; U+1F4B6 -๐Ÿ’ท pound banknote; U+1F4B7 -๐Ÿ’ธ money with wings; U+1F4B8 -๐Ÿ’ณ credit card; U+1F4B3 -๐Ÿงพ receipt; U+1F9FE -๐Ÿ’น chart increasing with yen; U+1F4B9 -๐Ÿ’ฑ currency exchange; U+1F4B1 -๐Ÿ’ฒ heavy dollar sign; U+1F4B2 -โœ‰ envelope; U+2709 -๐Ÿ“ง e-mail; U+1F4E7 -๐Ÿ“จ incoming envelope; U+1F4E8 -๐Ÿ“ฉ envelope with arrow; U+1F4E9 -๐Ÿ“ค outbox tray; U+1F4E4 -๐Ÿ“ฅ inbox tray; U+1F4E5 -๐Ÿ“ฆ package; U+1F4E6 -๐Ÿ“ซ closed mailbox with raised flag; U+1F4EB -๐Ÿ“ช closed mailbox with lowered flag; U+1F4EA -๐Ÿ“ฌ open mailbox with raised flag; U+1F4EC -๐Ÿ“ญ open mailbox with lowered flag; U+1F4ED -๐Ÿ“ฎ postbox; U+1F4EE -๐Ÿ—ณ ballot box with ballot; U+1F5F3 -โœ pencil; U+270F -โœ’ black nib; U+2712 -๐Ÿ–‹ fountain pen; U+1F58B -๐Ÿ–Š pen; U+1F58A -๐Ÿ–Œ paintbrush; U+1F58C -๐Ÿ– crayon; U+1F58D -๐Ÿ“ memo; U+1F4DD -๐Ÿ’ผ briefcase; U+1F4BC -๐Ÿ“ file folder; U+1F4C1 -๐Ÿ“‚ open file folder; U+1F4C2 -๐Ÿ—‚ card index dividers; U+1F5C2 -๐Ÿ“… calendar; U+1F4C5 -๐Ÿ“† tear-off calendar; U+1F4C6 -๐Ÿ—’ spiral notepad; U+1F5D2 -๐Ÿ—“ spiral calendar; U+1F5D3 -๐Ÿ“‡ card index; U+1F4C7 -๐Ÿ“ˆ chart increasing; U+1F4C8 -๐Ÿ“‰ chart decreasing; U+1F4C9 -๐Ÿ“Š bar chart; U+1F4CA -๐Ÿ“‹ clipboard; U+1F4CB -๐Ÿ“Œ pushpin; U+1F4CC -๐Ÿ“ round pushpin; U+1F4CD -๐Ÿ“Ž paperclip; U+1F4CE -๐Ÿ–‡ linked paperclips; U+1F587 -๐Ÿ“ straight ruler; U+1F4CF -๐Ÿ“ triangular ruler; U+1F4D0 -โœ‚ scissors; U+2702 -๐Ÿ—ƒ card file box; U+1F5C3 -๐Ÿ—„ file cabinet; U+1F5C4 -๐Ÿ—‘ wastebasket; U+1F5D1 -๐Ÿ”’ locked; U+1F512 -๐Ÿ”“ unlocked; U+1F513 -๐Ÿ” locked with pen; U+1F50F -๐Ÿ” locked with key; U+1F510 -๐Ÿ”‘ key; U+1F511 -๐Ÿ— old key; U+1F5DD -๐Ÿ”จ hammer; U+1F528 -โ› pick; U+26CF -โš’ hammer and pick; U+2692 -๐Ÿ›  hammer and wrench; U+1F6E0 -๐Ÿ—ก dagger; U+1F5E1 -โš” crossed swords; U+2694 -๐Ÿ”ซ pistol; U+1F52B -๐Ÿน bow and arrow; U+1F3F9 -๐Ÿ›ก shield; U+1F6E1 -๐Ÿ”ง wrench; U+1F527 -๐Ÿ”ฉ nut and bolt; U+1F529 -โš™ gear; U+2699 -๐Ÿ—œ clamp; U+1F5DC -โš– balance scale; U+2696 -๐Ÿ”— link; U+1F517 -โ›“ chains; U+26D3 -๐Ÿงฐ toolbox; U+1F9F0 -๐Ÿงฒ magnet; U+1F9F2 -โš— alembic; U+2697 -๐Ÿงช test tube; U+1F9EA -๐Ÿงซ petri dish; U+1F9EB -๐Ÿงฌ dna; U+1F9EC -๐Ÿ”ฌ microscope; U+1F52C -๐Ÿ”ญ telescope; U+1F52D -๐Ÿ“ก satellite antenna; U+1F4E1 -๐Ÿ’‰ syringe; U+1F489 -๐Ÿ’Š pill; U+1F48A -๐Ÿšช door; U+1F6AA -๐Ÿ› bed; U+1F6CF -๐Ÿ›‹ couch and lamp; U+1F6CB -๐Ÿšฝ toilet; U+1F6BD -๐Ÿšฟ shower; U+1F6BF -๐Ÿ› bathtub; U+1F6C1 -๐Ÿงด lotion bottle; U+1F9F4 -๐Ÿงท safety pin; U+1F9F7 -๐Ÿงน broom; U+1F9F9 -๐Ÿงบ basket; U+1F9FA -๐Ÿงป roll of paper; U+1F9FB -๐Ÿงผ soap; U+1F9FC -๐Ÿงฝ sponge; U+1F9FD -๐Ÿงฏ fire extinguisher; U+1F9EF -๐Ÿ›’ shopping cart; U+1F6D2 -๐Ÿšฌ cigarette; U+1F6AC -โšฐ coffin; U+26B0 -โšฑ funeral urn; U+26B1 -๐Ÿ—ฟ moai; U+1F5FF -๐Ÿง ATM sign; U+1F3E7 -๐Ÿšฎ litter in bin sign; U+1F6AE -๐Ÿšฐ potable water; U+1F6B0 -โ™ฟ wheelchair symbol; U+267F -๐Ÿšน menโ€™s room; U+1F6B9 -๐Ÿšบ womenโ€™s room; U+1F6BA -๐Ÿšป restroom; U+1F6BB -๐Ÿšผ baby symbol; U+1F6BC -๐Ÿšพ water closet; U+1F6BE -๐Ÿ›‚ passport control; U+1F6C2 -๐Ÿ›ƒ customs; U+1F6C3 -๐Ÿ›„ baggage claim; U+1F6C4 -๐Ÿ›… left luggage; U+1F6C5 -โš  warning; U+26A0 -๐Ÿšธ children crossing; U+1F6B8 -โ›” no entry; U+26D4 -๐Ÿšซ prohibited; U+1F6AB -๐Ÿšณ no bicycles; U+1F6B3 -๐Ÿšญ no smoking; U+1F6AD -๐Ÿšฏ no littering; U+1F6AF -๐Ÿšฑ non-potable water; U+1F6B1 -๐Ÿšท no pedestrians; U+1F6B7 -๐Ÿ“ต no mobile phones; U+1F4F5 -๐Ÿ”ž no one under eighteen; U+1F51E -โ˜ข radioactive; U+2622 -โ˜ฃ biohazard; U+2623 -โฌ† up arrow; U+2B06 -โ†— up-right arrow; U+2197 -โžก right arrow; U+27A1 -โ†˜ down-right arrow; U+2198 -โฌ‡ down arrow; U+2B07 -โ†™ down-left arrow; U+2199 -โฌ… left arrow; U+2B05 -โ†– up-left arrow; U+2196 -โ†• up-down arrow; U+2195 -โ†” left-right arrow; U+2194 -โ†ฉ right arrow curving left; U+21A9 -โ†ช left arrow curving right; U+21AA -โคด right arrow curving up; U+2934 -โคต right arrow curving down; U+2935 -๐Ÿ”ƒ clockwise vertical arrows; U+1F503 -๐Ÿ”„ counterclockwise arrows button; U+1F504 -๐Ÿ”™ BACK arrow; U+1F519 -๐Ÿ”š END arrow; U+1F51A -๐Ÿ”› ON! arrow; U+1F51B -๐Ÿ”œ SOON arrow; U+1F51C -๐Ÿ” TOP arrow; U+1F51D -๐Ÿ› place of worship; U+1F6D0 -โš› atom symbol; U+269B -๐Ÿ•‰ om; U+1F549 -โœก star of David; U+2721 -โ˜ธ wheel of dharma; U+2638 -โ˜ฏ yin yang; U+262F -โœ latin cross; U+271D -โ˜ฆ orthodox cross; U+2626 -โ˜ช star and crescent; U+262A -โ˜ฎ peace symbol; U+262E -๐Ÿ•Ž menorah; U+1F54E -๐Ÿ”ฏ dotted six-pointed star; U+1F52F -โ™ˆ Aries; U+2648 -โ™‰ Taurus; U+2649 -โ™Š Gemini; U+264A -โ™‹ Cancer; U+264B -โ™Œ Leo; U+264C -โ™ Virgo; U+264D -โ™Ž Libra; U+264E -โ™ Scorpio; U+264F -โ™ Sagittarius; U+2650 -โ™‘ Capricorn; U+2651 -โ™’ Aquarius; U+2652 -โ™“ Pisces; U+2653 -โ›Ž Ophiuchus; U+26CE -๐Ÿ”€ shuffle tracks button; U+1F500 -๐Ÿ” repeat button; U+1F501 -๐Ÿ”‚ repeat single button; U+1F502 -โ–ถ play button; U+25B6 -โฉ fast-forward button; U+23E9 -โญ next track button; U+23ED -โฏ play or pause button; U+23EF -โ—€ reverse button; U+25C0 -โช fast reverse button; U+23EA -โฎ last track button; U+23EE -๐Ÿ”ผ upwards button; U+1F53C -โซ fast up button; U+23EB -๐Ÿ”ฝ downwards button; U+1F53D -โฌ fast down button; U+23EC -โธ pause button; U+23F8 -โน stop button; U+23F9 -โบ record button; U+23FA -โ eject button; U+23CF -๐ŸŽฆ cinema; U+1F3A6 -๐Ÿ”… dim button; U+1F505 -๐Ÿ”† bright button; U+1F506 -๐Ÿ“ถ antenna bars; U+1F4F6 -๐Ÿ“ณ vibration mode; U+1F4F3 -๐Ÿ“ด mobile phone off; U+1F4F4 -โ™€ female sign; U+2640 -โ™‚ male sign; U+2642 -โš• medical symbol; U+2695 -โ™พ infinity; U+267E -โ™ป recycling symbol; U+267B -โšœ fleur-de-lis; U+269C -๐Ÿ”ฑ trident emblem; U+1F531 -๐Ÿ“› name badge; U+1F4DB -๐Ÿ”ฐ Japanese symbol for beginner; U+1F530 -โญ• heavy large circle; U+2B55 -โœ… white heavy check mark; U+2705 -โ˜‘ ballot box with check; U+2611 -โœ” heavy check mark; U+2714 -โœ– heavy multiplication x; U+2716 -โŒ cross mark; U+274C -โŽ cross mark button; U+274E -โž• heavy plus sign; U+2795 -โž– heavy minus sign; U+2796 -โž— heavy division sign; U+2797 -โžฐ curly loop; U+27B0 -โžฟ double curly loop; U+27BF -ใ€ฝ part alternation mark; U+303D -โœณ eight-spoked asterisk; U+2733 -โœด eight-pointed star; U+2734 -โ‡ sparkle; U+2747 -โ€ผ double exclamation mark; U+203C -โ‰ exclamation question mark; U+2049 -โ“ question mark; U+2753 -โ” white question mark; U+2754 -โ• white exclamation mark; U+2755 -โ— exclamation mark; U+2757 -ใ€ฐ wavy dash; U+3030 -ยฉ copyright; U+00A9 -ยฎ registered; U+00AE -โ„ข trade mark; U+2122 -#๏ธโƒฃ keycap: #; U+0023 U+FE0F U+20E3 -*๏ธโƒฃ keycap: *; U+002A U+FE0F U+20E3 -0๏ธโƒฃ keycap: 0; U+0030 U+FE0F U+20E3 -1๏ธโƒฃ keycap: 1; U+0031 U+FE0F U+20E3 -2๏ธโƒฃ keycap: 2; U+0032 U+FE0F U+20E3 -3๏ธโƒฃ keycap: 3; U+0033 U+FE0F U+20E3 -4๏ธโƒฃ keycap: 4; U+0034 U+FE0F U+20E3 -5๏ธโƒฃ keycap: 5; U+0035 U+FE0F U+20E3 -6๏ธโƒฃ keycap: 6; U+0036 U+FE0F U+20E3 -7๏ธโƒฃ keycap: 7; U+0037 U+FE0F U+20E3 -8๏ธโƒฃ keycap: 8; U+0038 U+FE0F U+20E3 -9๏ธโƒฃ keycap: 9; U+0039 U+FE0F U+20E3 -๐Ÿ”Ÿ keycap: 10; U+1F51F -๐Ÿ”  input latin uppercase; U+1F520 -๐Ÿ”ก input latin lowercase; U+1F521 -๐Ÿ”ข input numbers; U+1F522 -๐Ÿ”ฃ input symbols; U+1F523 -๐Ÿ”ค input latin letters; U+1F524 -๐Ÿ…ฐ A button (blood type); U+1F170 -๐Ÿ†Ž AB button (blood type); U+1F18E -๐Ÿ…ฑ B button (blood type); U+1F171 -๐Ÿ†‘ CL button; U+1F191 -๐Ÿ†’ COOL button; U+1F192 -๐Ÿ†“ FREE button; U+1F193 -โ„น information; U+2139 -๐Ÿ†” ID button; U+1F194 -โ“‚ circled M; U+24C2 -๐Ÿ†• NEW button; U+1F195 -๐Ÿ†– NG button; U+1F196 -๐Ÿ…พ O button (blood type); U+1F17E -๐Ÿ†— OK button; U+1F197 -๐Ÿ…ฟ P button; U+1F17F -๐Ÿ†˜ SOS button; U+1F198 -๐Ÿ†™ UP! button; U+1F199 -๐Ÿ†š VS button; U+1F19A -๐Ÿˆ Japanese โ€œhereโ€ button; U+1F201 -๐Ÿˆ‚ Japanese โ€œservice chargeโ€ button; U+1F202 -๐Ÿˆท Japanese โ€œmonthly amountโ€ button; U+1F237 -๐Ÿˆถ Japanese โ€œnot free of chargeโ€ button; U+1F236 -๐Ÿˆฏ Japanese โ€œreservedโ€ button; U+1F22F -๐Ÿ‰ Japanese โ€œbargainโ€ button; U+1F250 -๐Ÿˆน Japanese โ€œdiscountโ€ button; U+1F239 -๐Ÿˆš Japanese โ€œfree of chargeโ€ button; U+1F21A -๐Ÿˆฒ Japanese โ€œprohibitedโ€ button; U+1F232 -๐Ÿ‰‘ Japanese โ€œacceptableโ€ button; U+1F251 -๐Ÿˆธ Japanese โ€œapplicationโ€ button; U+1F238 -๐Ÿˆด Japanese โ€œpassing gradeโ€ button; U+1F234 -๐Ÿˆณ Japanese โ€œvacancyโ€ button; U+1F233 -ใŠ— Japanese โ€œcongratulationsโ€ button; U+3297 -ใŠ™ Japanese โ€œsecretโ€ button; U+3299 -๐Ÿˆบ Japanese โ€œopen for businessโ€ button; U+1F23A -๐Ÿˆต Japanese โ€œno vacancyโ€ button; U+1F235 -๐Ÿ”ด red circle; U+1F534 -๐Ÿ”ต blue circle; U+1F535 -โšช white circle; U+26AA -โšซ black circle; U+26AB -โฌœ white large square; U+2B1C -โฌ› black large square; U+2B1B -โ—ผ black medium square; U+25FC -โ—ป white medium square; U+25FB -โ—ฝ white medium-small square; U+25FD -โ—พ black medium-small square; U+25FE -โ–ซ white small square; U+25AB -โ–ช black small square; U+25AA -๐Ÿ”ถ large orange diamond; U+1F536 -๐Ÿ”ท large blue diamond; U+1F537 -๐Ÿ”ธ small orange diamond; U+1F538 -๐Ÿ”น small blue diamond; U+1F539 -๐Ÿ”บ red triangle pointed up; U+1F53A -๐Ÿ”ป red triangle pointed down; U+1F53B -๐Ÿ’  diamond with a dot; U+1F4A0 -๐Ÿ”˜ radio button; U+1F518 -๐Ÿ”ฒ black square button; U+1F532 -๐Ÿ”ณ white square button; U+1F533 -๐Ÿ chequered flag; U+1F3C1 -๐Ÿšฉ triangular flag; U+1F6A9 -๐ŸŽŒ crossed flags; U+1F38C -๐Ÿด black flag; U+1F3F4 -๐Ÿณ white flag; U+1F3F3 -๐Ÿณ๏ธโ€๐ŸŒˆ rainbow flag; U+1F3F3 U+FE0F U+200D U+1F308 -๐Ÿดโ€โ˜ ๏ธ pirate flag; U+1F3F4 U+200D U+2620 U+FE0F -๐Ÿ‡ฆ๐Ÿ‡จ flag: Ascension Island; U+1F1E6 U+1F1E8 -๐Ÿ‡ฆ๐Ÿ‡ฉ flag: Andorra; U+1F1E6 U+1F1E9 -๐Ÿ‡ฆ๐Ÿ‡ช flag: United Arab Emirates; U+1F1E6 U+1F1EA -๐Ÿ‡ฆ๐Ÿ‡ซ flag: Afghanistan; U+1F1E6 U+1F1EB -๐Ÿ‡ฆ๐Ÿ‡ฌ flag: Antigua & Barbuda; U+1F1E6 U+1F1EC -๐Ÿ‡ฆ๐Ÿ‡ฎ flag: Anguilla; U+1F1E6 U+1F1EE -๐Ÿ‡ฆ๐Ÿ‡ฑ flag: Albania; U+1F1E6 U+1F1F1 -๐Ÿ‡ฆ๐Ÿ‡ฒ flag: Armenia; U+1F1E6 U+1F1F2 -๐Ÿ‡ฆ๐Ÿ‡ด flag: Angola; U+1F1E6 U+1F1F4 -๐Ÿ‡ฆ๐Ÿ‡ถ flag: Antarctica; U+1F1E6 U+1F1F6 -๐Ÿ‡ฆ๐Ÿ‡ท flag: Argentina; U+1F1E6 U+1F1F7 -๐Ÿ‡ฆ๐Ÿ‡ธ flag: American Samoa; U+1F1E6 U+1F1F8 -๐Ÿ‡ฆ๐Ÿ‡น flag: Austria; U+1F1E6 U+1F1F9 -๐Ÿ‡ฆ๐Ÿ‡บ flag: Australia; U+1F1E6 U+1F1FA -๐Ÿ‡ฆ๐Ÿ‡ผ flag: Aruba; U+1F1E6 U+1F1FC -๐Ÿ‡ฆ๐Ÿ‡ฝ flag: ร…land Islands; U+1F1E6 U+1F1FD -๐Ÿ‡ฆ๐Ÿ‡ฟ flag: Azerbaijan; U+1F1E6 U+1F1FF -๐Ÿ‡ง๐Ÿ‡ฆ flag: Bosnia & Herzegovina; U+1F1E7 U+1F1E6 -๐Ÿ‡ง๐Ÿ‡ง flag: Barbados; U+1F1E7 U+1F1E7 -๐Ÿ‡ง๐Ÿ‡ฉ flag: Bangladesh; U+1F1E7 U+1F1E9 -๐Ÿ‡ง๐Ÿ‡ช flag: Belgium; U+1F1E7 U+1F1EA -๐Ÿ‡ง๐Ÿ‡ซ flag: Burkina Faso; U+1F1E7 U+1F1EB -๐Ÿ‡ง๐Ÿ‡ฌ flag: Bulgaria; U+1F1E7 U+1F1EC -๐Ÿ‡ง๐Ÿ‡ญ flag: Bahrain; U+1F1E7 U+1F1ED -๐Ÿ‡ง๐Ÿ‡ฎ flag: Burundi; U+1F1E7 U+1F1EE -๐Ÿ‡ง๐Ÿ‡ฏ flag: Benin; U+1F1E7 U+1F1EF -๐Ÿ‡ง๐Ÿ‡ฑ flag: St. Barthรฉlemy; U+1F1E7 U+1F1F1 -๐Ÿ‡ง๐Ÿ‡ฒ flag: Bermuda; U+1F1E7 U+1F1F2 -๐Ÿ‡ง๐Ÿ‡ณ flag: Brunei; U+1F1E7 U+1F1F3 -๐Ÿ‡ง๐Ÿ‡ด flag: Bolivia; U+1F1E7 U+1F1F4 -๐Ÿ‡ง๐Ÿ‡ถ flag: Caribbean Netherlands; U+1F1E7 U+1F1F6 -๐Ÿ‡ง๐Ÿ‡ท flag: Brazil; U+1F1E7 U+1F1F7 -๐Ÿ‡ง๐Ÿ‡ธ flag: Bahamas; U+1F1E7 U+1F1F8 -๐Ÿ‡ง๐Ÿ‡น flag: Bhutan; U+1F1E7 U+1F1F9 -๐Ÿ‡ง๐Ÿ‡ป flag: Bouvet Island; U+1F1E7 U+1F1FB -๐Ÿ‡ง๐Ÿ‡ผ flag: Botswana; U+1F1E7 U+1F1FC -๐Ÿ‡ง๐Ÿ‡พ flag: Belarus; U+1F1E7 U+1F1FE -๐Ÿ‡ง๐Ÿ‡ฟ flag: Belize; U+1F1E7 U+1F1FF -๐Ÿ‡จ๐Ÿ‡ฆ flag: Canada; U+1F1E8 U+1F1E6 -๐Ÿ‡จ๐Ÿ‡จ flag: Cocos (Keeling) Islands; U+1F1E8 U+1F1E8 -๐Ÿ‡จ๐Ÿ‡ฉ flag: Congo - Kinshasa; U+1F1E8 U+1F1E9 -๐Ÿ‡จ๐Ÿ‡ซ flag: Central African Republic; U+1F1E8 U+1F1EB -๐Ÿ‡จ๐Ÿ‡ฌ flag: Congo - Brazzaville; U+1F1E8 U+1F1EC -๐Ÿ‡จ๐Ÿ‡ญ flag: Switzerland; U+1F1E8 U+1F1ED -๐Ÿ‡จ๐Ÿ‡ฎ flag: Cรดte dโ€™Ivoire; U+1F1E8 U+1F1EE -๐Ÿ‡จ๐Ÿ‡ฐ flag: Cook Islands; U+1F1E8 U+1F1F0 -๐Ÿ‡จ๐Ÿ‡ฑ flag: Chile; U+1F1E8 U+1F1F1 -๐Ÿ‡จ๐Ÿ‡ฒ flag: Cameroon; U+1F1E8 U+1F1F2 -๐Ÿ‡จ๐Ÿ‡ณ flag: China; U+1F1E8 U+1F1F3 -๐Ÿ‡จ๐Ÿ‡ด flag: Colombia; U+1F1E8 U+1F1F4 -๐Ÿ‡จ๐Ÿ‡ต flag: Clipperton Island; U+1F1E8 U+1F1F5 -๐Ÿ‡จ๐Ÿ‡ท flag: Costa Rica; U+1F1E8 U+1F1F7 -๐Ÿ‡จ๐Ÿ‡บ flag: Cuba; U+1F1E8 U+1F1FA -๐Ÿ‡จ๐Ÿ‡ป flag: Cape Verde; U+1F1E8 U+1F1FB -๐Ÿ‡จ๐Ÿ‡ผ flag: Curaรงao; U+1F1E8 U+1F1FC -๐Ÿ‡จ๐Ÿ‡ฝ flag: Christmas Island; U+1F1E8 U+1F1FD -๐Ÿ‡จ๐Ÿ‡พ flag: Cyprus; U+1F1E8 U+1F1FE -๐Ÿ‡จ๐Ÿ‡ฟ flag: Czechia; U+1F1E8 U+1F1FF -๐Ÿ‡ฉ๐Ÿ‡ช flag: Germany; U+1F1E9 U+1F1EA -๐Ÿ‡ฉ๐Ÿ‡ฌ flag: Diego Garcia; U+1F1E9 U+1F1EC -๐Ÿ‡ฉ๐Ÿ‡ฏ flag: Djibouti; U+1F1E9 U+1F1EF -๐Ÿ‡ฉ๐Ÿ‡ฐ flag: Denmark; U+1F1E9 U+1F1F0 -๐Ÿ‡ฉ๐Ÿ‡ฒ flag: Dominica; U+1F1E9 U+1F1F2 -๐Ÿ‡ฉ๐Ÿ‡ด flag: Dominican Republic; U+1F1E9 U+1F1F4 -๐Ÿ‡ฉ๐Ÿ‡ฟ flag: Algeria; U+1F1E9 U+1F1FF -๐Ÿ‡ช๐Ÿ‡ฆ flag: Ceuta & Melilla; U+1F1EA U+1F1E6 -๐Ÿ‡ช๐Ÿ‡จ flag: Ecuador; U+1F1EA U+1F1E8 -๐Ÿ‡ช๐Ÿ‡ช flag: Estonia; U+1F1EA U+1F1EA -๐Ÿ‡ช๐Ÿ‡ฌ flag: Egypt; U+1F1EA U+1F1EC -๐Ÿ‡ช๐Ÿ‡ญ flag: Western Sahara; U+1F1EA U+1F1ED -๐Ÿ‡ช๐Ÿ‡ท flag: Eritrea; U+1F1EA U+1F1F7 -๐Ÿ‡ช๐Ÿ‡ธ flag: Spain; U+1F1EA U+1F1F8 -๐Ÿ‡ช๐Ÿ‡น flag: Ethiopia; U+1F1EA U+1F1F9 -๐Ÿ‡ช๐Ÿ‡บ flag: European Union; U+1F1EA U+1F1FA -๐Ÿ‡ซ๐Ÿ‡ฎ flag: Finland; U+1F1EB U+1F1EE -๐Ÿ‡ซ๐Ÿ‡ฏ flag: Fiji; U+1F1EB U+1F1EF -๐Ÿ‡ซ๐Ÿ‡ฐ flag: Falkland Islands; U+1F1EB U+1F1F0 -๐Ÿ‡ซ๐Ÿ‡ฒ flag: Micronesia; U+1F1EB U+1F1F2 -๐Ÿ‡ซ๐Ÿ‡ด flag: Faroe Islands; U+1F1EB U+1F1F4 -๐Ÿ‡ซ๐Ÿ‡ท flag: France; U+1F1EB U+1F1F7 -๐Ÿ‡ฌ๐Ÿ‡ฆ flag: Gabon; U+1F1EC U+1F1E6 -๐Ÿ‡ฌ๐Ÿ‡ง flag: United Kingdom; U+1F1EC U+1F1E7 -๐Ÿ‡ฌ๐Ÿ‡ฉ flag: Grenada; U+1F1EC U+1F1E9 -๐Ÿ‡ฌ๐Ÿ‡ช flag: Georgia; U+1F1EC U+1F1EA -๐Ÿ‡ฌ๐Ÿ‡ซ flag: French Guiana; U+1F1EC U+1F1EB -๐Ÿ‡ฌ๐Ÿ‡ฌ flag: Guernsey; U+1F1EC U+1F1EC -๐Ÿ‡ฌ๐Ÿ‡ญ flag: Ghana; U+1F1EC U+1F1ED -๐Ÿ‡ฌ๐Ÿ‡ฎ flag: Gibraltar; U+1F1EC U+1F1EE -๐Ÿ‡ฌ๐Ÿ‡ฑ flag: Greenland; U+1F1EC U+1F1F1 -๐Ÿ‡ฌ๐Ÿ‡ฒ flag: Gambia; U+1F1EC U+1F1F2 -๐Ÿ‡ฌ๐Ÿ‡ณ flag: Guinea; U+1F1EC U+1F1F3 -๐Ÿ‡ฌ๐Ÿ‡ต flag: Guadeloupe; U+1F1EC U+1F1F5 -๐Ÿ‡ฌ๐Ÿ‡ถ flag: Equatorial Guinea; U+1F1EC U+1F1F6 -๐Ÿ‡ฌ๐Ÿ‡ท flag: Greece; U+1F1EC U+1F1F7 -๐Ÿ‡ฌ๐Ÿ‡ธ flag: South Georgia & South Sandwich Islands; U+1F1EC U+1F1F8 -๐Ÿ‡ฌ๐Ÿ‡น flag: Guatemala; U+1F1EC U+1F1F9 -๐Ÿ‡ฌ๐Ÿ‡บ flag: Guam; U+1F1EC U+1F1FA -๐Ÿ‡ฌ๐Ÿ‡ผ flag: Guinea-Bissau; U+1F1EC U+1F1FC -๐Ÿ‡ฌ๐Ÿ‡พ flag: Guyana; U+1F1EC U+1F1FE -๐Ÿ‡ญ๐Ÿ‡ฐ flag: Hong Kong SAR China; U+1F1ED U+1F1F0 -๐Ÿ‡ญ๐Ÿ‡ฒ flag: Heard & McDonald Islands; U+1F1ED U+1F1F2 -๐Ÿ‡ญ๐Ÿ‡ณ flag: Honduras; U+1F1ED U+1F1F3 -๐Ÿ‡ญ๐Ÿ‡ท flag: Croatia; U+1F1ED U+1F1F7 -๐Ÿ‡ญ๐Ÿ‡น flag: Haiti; U+1F1ED U+1F1F9 -๐Ÿ‡ญ๐Ÿ‡บ flag: Hungary; U+1F1ED U+1F1FA -๐Ÿ‡ฎ๐Ÿ‡จ flag: Canary Islands; U+1F1EE U+1F1E8 -๐Ÿ‡ฎ๐Ÿ‡ฉ flag: Indonesia; U+1F1EE U+1F1E9 -๐Ÿ‡ฎ๐Ÿ‡ช flag: Ireland; U+1F1EE U+1F1EA -๐Ÿ‡ฎ๐Ÿ‡ฑ flag: Israel; U+1F1EE U+1F1F1 -๐Ÿ‡ฎ๐Ÿ‡ฒ flag: Isle of Man; U+1F1EE U+1F1F2 -๐Ÿ‡ฎ๐Ÿ‡ณ flag: India; U+1F1EE U+1F1F3 -๐Ÿ‡ฎ๐Ÿ‡ด flag: British Indian Ocean Territory; U+1F1EE U+1F1F4 -๐Ÿ‡ฎ๐Ÿ‡ถ flag: Iraq; U+1F1EE U+1F1F6 -๐Ÿ‡ฎ๐Ÿ‡ท flag: Iran; U+1F1EE U+1F1F7 -๐Ÿ‡ฎ๐Ÿ‡ธ flag: Iceland; U+1F1EE U+1F1F8 -๐Ÿ‡ฎ๐Ÿ‡น flag: Italy; U+1F1EE U+1F1F9 -๐Ÿ‡ฏ๐Ÿ‡ช flag: Jersey; U+1F1EF U+1F1EA -๐Ÿ‡ฏ๐Ÿ‡ฒ flag: Jamaica; U+1F1EF U+1F1F2 -๐Ÿ‡ฏ๐Ÿ‡ด flag: Jordan; U+1F1EF U+1F1F4 -๐Ÿ‡ฏ๐Ÿ‡ต flag: Japan; U+1F1EF U+1F1F5 -๐Ÿ‡ฐ๐Ÿ‡ช flag: Kenya; U+1F1F0 U+1F1EA -๐Ÿ‡ฐ๐Ÿ‡ฌ flag: Kyrgyzstan; U+1F1F0 U+1F1EC -๐Ÿ‡ฐ๐Ÿ‡ญ flag: Cambodia; U+1F1F0 U+1F1ED -๐Ÿ‡ฐ๐Ÿ‡ฎ flag: Kiribati; U+1F1F0 U+1F1EE -๐Ÿ‡ฐ๐Ÿ‡ฒ flag: Comoros; U+1F1F0 U+1F1F2 -๐Ÿ‡ฐ๐Ÿ‡ณ flag: St. Kitts & Nevis; U+1F1F0 U+1F1F3 -๐Ÿ‡ฐ๐Ÿ‡ต flag: North Korea; U+1F1F0 U+1F1F5 -๐Ÿ‡ฐ๐Ÿ‡ท flag: South Korea; U+1F1F0 U+1F1F7 -๐Ÿ‡ฐ๐Ÿ‡ผ flag: Kuwait; U+1F1F0 U+1F1FC -๐Ÿ‡ฐ๐Ÿ‡พ flag: Cayman Islands; U+1F1F0 U+1F1FE -๐Ÿ‡ฐ๐Ÿ‡ฟ flag: Kazakhstan; U+1F1F0 U+1F1FF -๐Ÿ‡ฑ๐Ÿ‡ฆ flag: Laos; U+1F1F1 U+1F1E6 -๐Ÿ‡ฑ๐Ÿ‡ง flag: Lebanon; U+1F1F1 U+1F1E7 -๐Ÿ‡ฑ๐Ÿ‡จ flag: St. Lucia; U+1F1F1 U+1F1E8 -๐Ÿ‡ฑ๐Ÿ‡ฎ flag: Liechtenstein; U+1F1F1 U+1F1EE -๐Ÿ‡ฑ๐Ÿ‡ฐ flag: Sri Lanka; U+1F1F1 U+1F1F0 -๐Ÿ‡ฑ๐Ÿ‡ท flag: Liberia; U+1F1F1 U+1F1F7 -๐Ÿ‡ฑ๐Ÿ‡ธ flag: Lesotho; U+1F1F1 U+1F1F8 -๐Ÿ‡ฑ๐Ÿ‡น flag: Lithuania; U+1F1F1 U+1F1F9 -๐Ÿ‡ฑ๐Ÿ‡บ flag: Luxembourg; U+1F1F1 U+1F1FA -๐Ÿ‡ฑ๐Ÿ‡ป flag: Latvia; U+1F1F1 U+1F1FB -๐Ÿ‡ฑ๐Ÿ‡พ flag: Libya; U+1F1F1 U+1F1FE -๐Ÿ‡ฒ๐Ÿ‡ฆ flag: Morocco; U+1F1F2 U+1F1E6 -๐Ÿ‡ฒ๐Ÿ‡จ flag: Monaco; U+1F1F2 U+1F1E8 -๐Ÿ‡ฒ๐Ÿ‡ฉ flag: Moldova; U+1F1F2 U+1F1E9 -๐Ÿ‡ฒ๐Ÿ‡ช flag: Montenegro; U+1F1F2 U+1F1EA -๐Ÿ‡ฒ๐Ÿ‡ซ flag: St. Martin; U+1F1F2 U+1F1EB -๐Ÿ‡ฒ๐Ÿ‡ฌ flag: Madagascar; U+1F1F2 U+1F1EC -๐Ÿ‡ฒ๐Ÿ‡ญ flag: Marshall Islands; U+1F1F2 U+1F1ED -๐Ÿ‡ฒ๐Ÿ‡ฐ flag: Macedonia; U+1F1F2 U+1F1F0 -๐Ÿ‡ฒ๐Ÿ‡ฑ flag: Mali; U+1F1F2 U+1F1F1 -๐Ÿ‡ฒ๐Ÿ‡ฒ flag: Myanmar (Burma); U+1F1F2 U+1F1F2 -๐Ÿ‡ฒ๐Ÿ‡ณ flag: Mongolia; U+1F1F2 U+1F1F3 -๐Ÿ‡ฒ๐Ÿ‡ด flag: Macau SAR China; U+1F1F2 U+1F1F4 -๐Ÿ‡ฒ๐Ÿ‡ต flag: Northern Mariana Islands; U+1F1F2 U+1F1F5 -๐Ÿ‡ฒ๐Ÿ‡ถ flag: Martinique; U+1F1F2 U+1F1F6 -๐Ÿ‡ฒ๐Ÿ‡ท flag: Mauritania; U+1F1F2 U+1F1F7 -๐Ÿ‡ฒ๐Ÿ‡ธ flag: Montserrat; U+1F1F2 U+1F1F8 -๐Ÿ‡ฒ๐Ÿ‡น flag: Malta; U+1F1F2 U+1F1F9 -๐Ÿ‡ฒ๐Ÿ‡บ flag: Mauritius; U+1F1F2 U+1F1FA -๐Ÿ‡ฒ๐Ÿ‡ป flag: Maldives; U+1F1F2 U+1F1FB -๐Ÿ‡ฒ๐Ÿ‡ผ flag: Malawi; U+1F1F2 U+1F1FC -๐Ÿ‡ฒ๐Ÿ‡ฝ flag: Mexico; U+1F1F2 U+1F1FD -๐Ÿ‡ฒ๐Ÿ‡พ flag: Malaysia; U+1F1F2 U+1F1FE -๐Ÿ‡ฒ๐Ÿ‡ฟ flag: Mozambique; U+1F1F2 U+1F1FF -๐Ÿ‡ณ๐Ÿ‡ฆ flag: Namibia; U+1F1F3 U+1F1E6 -๐Ÿ‡ณ๐Ÿ‡จ flag: New Caledonia; U+1F1F3 U+1F1E8 -๐Ÿ‡ณ๐Ÿ‡ช flag: Niger; U+1F1F3 U+1F1EA -๐Ÿ‡ณ๐Ÿ‡ซ flag: Norfolk Island; U+1F1F3 U+1F1EB -๐Ÿ‡ณ๐Ÿ‡ฌ flag: Nigeria; U+1F1F3 U+1F1EC -๐Ÿ‡ณ๐Ÿ‡ฎ flag: Nicaragua; U+1F1F3 U+1F1EE -๐Ÿ‡ณ๐Ÿ‡ฑ flag: Netherlands; U+1F1F3 U+1F1F1 -๐Ÿ‡ณ๐Ÿ‡ด flag: Norway; U+1F1F3 U+1F1F4 -๐Ÿ‡ณ๐Ÿ‡ต flag: Nepal; U+1F1F3 U+1F1F5 -๐Ÿ‡ณ๐Ÿ‡ท flag: Nauru; U+1F1F3 U+1F1F7 -๐Ÿ‡ณ๐Ÿ‡บ flag: Niue; U+1F1F3 U+1F1FA -๐Ÿ‡ณ๐Ÿ‡ฟ flag: New Zealand; U+1F1F3 U+1F1FF -๐Ÿ‡ด๐Ÿ‡ฒ flag: Oman; U+1F1F4 U+1F1F2 -๐Ÿ‡ต๐Ÿ‡ฆ flag: Panama; U+1F1F5 U+1F1E6 -๐Ÿ‡ต๐Ÿ‡ช flag: Peru; U+1F1F5 U+1F1EA -๐Ÿ‡ต๐Ÿ‡ซ flag: French Polynesia; U+1F1F5 U+1F1EB -๐Ÿ‡ต๐Ÿ‡ฌ flag: Papua New Guinea; U+1F1F5 U+1F1EC -๐Ÿ‡ต๐Ÿ‡ญ flag: Philippines; U+1F1F5 U+1F1ED -๐Ÿ‡ต๐Ÿ‡ฐ flag: Pakistan; U+1F1F5 U+1F1F0 -๐Ÿ‡ต๐Ÿ‡ฑ flag: Poland; U+1F1F5 U+1F1F1 -๐Ÿ‡ต๐Ÿ‡ฒ flag: St. Pierre & Miquelon; U+1F1F5 U+1F1F2 -๐Ÿ‡ต๐Ÿ‡ณ flag: Pitcairn Islands; U+1F1F5 U+1F1F3 -๐Ÿ‡ต๐Ÿ‡ท flag: Puerto Rico; U+1F1F5 U+1F1F7 -๐Ÿ‡ต๐Ÿ‡ธ flag: Palestinian Territories; U+1F1F5 U+1F1F8 -๐Ÿ‡ต๐Ÿ‡น flag: Portugal; U+1F1F5 U+1F1F9 -๐Ÿ‡ต๐Ÿ‡ผ flag: Palau; U+1F1F5 U+1F1FC -๐Ÿ‡ต๐Ÿ‡พ flag: Paraguay; U+1F1F5 U+1F1FE -๐Ÿ‡ถ๐Ÿ‡ฆ flag: Qatar; U+1F1F6 U+1F1E6 -๐Ÿ‡ท๐Ÿ‡ช flag: Rรฉunion; U+1F1F7 U+1F1EA -๐Ÿ‡ท๐Ÿ‡ด flag: Romania; U+1F1F7 U+1F1F4 -๐Ÿ‡ท๐Ÿ‡ธ flag: Serbia; U+1F1F7 U+1F1F8 -๐Ÿ‡ท๐Ÿ‡บ flag: Russia; U+1F1F7 U+1F1FA -๐Ÿ‡ท๐Ÿ‡ผ flag: Rwanda; U+1F1F7 U+1F1FC -๐Ÿ‡ธ๐Ÿ‡ฆ flag: Saudi Arabia; U+1F1F8 U+1F1E6 -๐Ÿ‡ธ๐Ÿ‡ง flag: Solomon Islands; U+1F1F8 U+1F1E7 -๐Ÿ‡ธ๐Ÿ‡จ flag: Seychelles; U+1F1F8 U+1F1E8 -๐Ÿ‡ธ๐Ÿ‡ฉ flag: Sudan; U+1F1F8 U+1F1E9 -๐Ÿ‡ธ๐Ÿ‡ช flag: Sweden; U+1F1F8 U+1F1EA -๐Ÿ‡ธ๐Ÿ‡ฌ flag: Singapore; U+1F1F8 U+1F1EC -๐Ÿ‡ธ๐Ÿ‡ญ flag: St. Helena; U+1F1F8 U+1F1ED -๐Ÿ‡ธ๐Ÿ‡ฎ flag: Slovenia; U+1F1F8 U+1F1EE -๐Ÿ‡ธ๐Ÿ‡ฏ flag: Svalbard & Jan Mayen; U+1F1F8 U+1F1EF -๐Ÿ‡ธ๐Ÿ‡ฐ flag: Slovakia; U+1F1F8 U+1F1F0 -๐Ÿ‡ธ๐Ÿ‡ฑ flag: Sierra Leone; U+1F1F8 U+1F1F1 -๐Ÿ‡ธ๐Ÿ‡ฒ flag: San Marino; U+1F1F8 U+1F1F2 -๐Ÿ‡ธ๐Ÿ‡ณ flag: Senegal; U+1F1F8 U+1F1F3 -๐Ÿ‡ธ๐Ÿ‡ด flag: Somalia; U+1F1F8 U+1F1F4 -๐Ÿ‡ธ๐Ÿ‡ท flag: Suriname; U+1F1F8 U+1F1F7 -๐Ÿ‡ธ๐Ÿ‡ธ flag: South Sudan; U+1F1F8 U+1F1F8 -๐Ÿ‡ธ๐Ÿ‡น flag: Sรฃo Tomรฉ & Prรญncipe; U+1F1F8 U+1F1F9 -๐Ÿ‡ธ๐Ÿ‡ป flag: El Salvador; U+1F1F8 U+1F1FB -๐Ÿ‡ธ๐Ÿ‡ฝ flag: Sint Maarten; U+1F1F8 U+1F1FD -๐Ÿ‡ธ๐Ÿ‡พ flag: Syria; U+1F1F8 U+1F1FE -๐Ÿ‡ธ๐Ÿ‡ฟ flag: Swaziland; U+1F1F8 U+1F1FF -๐Ÿ‡น๐Ÿ‡ฆ flag: Tristan da Cunha; U+1F1F9 U+1F1E6 -๐Ÿ‡น๐Ÿ‡จ flag: Turks & Caicos Islands; U+1F1F9 U+1F1E8 -๐Ÿ‡น๐Ÿ‡ฉ flag: Chad; U+1F1F9 U+1F1E9 -๐Ÿ‡น๐Ÿ‡ซ flag: French Southern Territories; U+1F1F9 U+1F1EB -๐Ÿ‡น๐Ÿ‡ฌ flag: Togo; U+1F1F9 U+1F1EC -๐Ÿ‡น๐Ÿ‡ญ flag: Thailand; U+1F1F9 U+1F1ED -๐Ÿ‡น๐Ÿ‡ฏ flag: Tajikistan; U+1F1F9 U+1F1EF -๐Ÿ‡น๐Ÿ‡ฐ flag: Tokelau; U+1F1F9 U+1F1F0 -๐Ÿ‡น๐Ÿ‡ฑ flag: Timor-Leste; U+1F1F9 U+1F1F1 -๐Ÿ‡น๐Ÿ‡ฒ flag: Turkmenistan; U+1F1F9 U+1F1F2 -๐Ÿ‡น๐Ÿ‡ณ flag: Tunisia; U+1F1F9 U+1F1F3 -๐Ÿ‡น๐Ÿ‡ด flag: Tonga; U+1F1F9 U+1F1F4 -๐Ÿ‡น๐Ÿ‡ท flag: Turkey; U+1F1F9 U+1F1F7 -๐Ÿ‡น๐Ÿ‡น flag: Trinidad & Tobago; U+1F1F9 U+1F1F9 -๐Ÿ‡น๐Ÿ‡ป flag: Tuvalu; U+1F1F9 U+1F1FB -๐Ÿ‡น๐Ÿ‡ผ flag: Taiwan; U+1F1F9 U+1F1FC -๐Ÿ‡น๐Ÿ‡ฟ flag: Tanzania; U+1F1F9 U+1F1FF -๐Ÿ‡บ๐Ÿ‡ฆ flag: Ukraine; U+1F1FA U+1F1E6 -๐Ÿ‡บ๐Ÿ‡ฌ flag: Uganda; U+1F1FA U+1F1EC -๐Ÿ‡บ๐Ÿ‡ฒ flag: U.S. Outlying Islands; U+1F1FA U+1F1F2 -๐Ÿ‡บ๐Ÿ‡ณ flag: United Nations; U+1F1FA U+1F1F3 -๐Ÿ‡บ๐Ÿ‡ธ flag: United States; U+1F1FA U+1F1F8 -๐Ÿ‡บ๐Ÿ‡พ flag: Uruguay; U+1F1FA U+1F1FE -๐Ÿ‡บ๐Ÿ‡ฟ flag: Uzbekistan; U+1F1FA U+1F1FF -๐Ÿ‡ป๐Ÿ‡ฆ flag: Vatican City; U+1F1FB U+1F1E6 -๐Ÿ‡ป๐Ÿ‡จ flag: St. Vincent & Grenadines; U+1F1FB U+1F1E8 -๐Ÿ‡ป๐Ÿ‡ช flag: Venezuela; U+1F1FB U+1F1EA -๐Ÿ‡ป๐Ÿ‡ฌ flag: British Virgin Islands; U+1F1FB U+1F1EC -๐Ÿ‡ป๐Ÿ‡ฎ flag: U.S. Virgin Islands; U+1F1FB U+1F1EE -๐Ÿ‡ป๐Ÿ‡ณ flag: Vietnam; U+1F1FB U+1F1F3 -๐Ÿ‡ป๐Ÿ‡บ flag: Vanuatu; U+1F1FB U+1F1FA -๐Ÿ‡ผ๐Ÿ‡ซ flag: Wallis & Futuna; U+1F1FC U+1F1EB -๐Ÿ‡ผ๐Ÿ‡ธ flag: Samoa; U+1F1FC U+1F1F8 -๐Ÿ‡ฝ๐Ÿ‡ฐ flag: Kosovo; U+1F1FD U+1F1F0 -๐Ÿ‡พ๐Ÿ‡ช flag: Yemen; U+1F1FE U+1F1EA -๐Ÿ‡พ๐Ÿ‡น flag: Mayotte; U+1F1FE U+1F1F9 -๐Ÿ‡ฟ๐Ÿ‡ฆ flag: South Africa; U+1F1FF U+1F1E6 -๐Ÿ‡ฟ๐Ÿ‡ฒ flag: Zambia; U+1F1FF U+1F1F2 -๐Ÿ‡ฟ๐Ÿ‡ผ flag: Zimbabwe; U+1F1FF U+1F1FC -๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ flag: England; U+1F3F4 U+E0067 U+E0062 U+E0065 U+E006E U+E0067 U+E007F -๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ flag: Scotland; U+1F3F4 U+E0067 U+E0062 U+E0073 U+E0063 U+E0074 U+E007F -๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ flag: Wales; U+1F3F4 U+E0067 U+E0062 U+E0077 U+E006C U+E0073 U+E007F diff --git a/.config/files b/.config/files deleted file mode 100644 index 6e07499..0000000 --- a/.config/files +++ /dev/null @@ -1,15 +0,0 @@ -bf ${XDG_CONFIG_HOME:-$HOME/.config}/files -bd ${XDG_CONFIG_HOME:-$HOME/.config}/directories -bw ${XDG_CONFIG_HOME:-$HOME/.config}/bookmarks -cfa ${XDG_CONFIG_HOME:-$HOME/.config}/aliasrc -cfz $ZDOTDIR/.zshrc -cfv ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim -cfm ${XDG_CONFIG_HOME:-$HOME/.config}/mutt/muttrc -cfx ${XDG_CONFIG_HOME:-$HOME/.config}/Xresources -cfu ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls -cfn ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/config -cfmb ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/bindings -cfmc ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/config -cfk ${XDG_CONFIG_HOME:-$HOME/.config}/sxhkd/sxhkdrc -cfi ${XDG_CONFIG_HOME:-$HOME/.config}/i3/config -cfb ${XDG_CONFIG_HOME:-$HOME/.config}/i3blocks/config diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf index 3427ece..761ae00 100755 --- a/.config/fontconfig/fonts.conf +++ b/.config/fontconfig/fonts.conf @@ -1,28 +1,40 @@ - - - serif - Linux Libertine - - - sans-serif - Cantarell - - - sans - Cantarell - - - monospace - Inconsolata - - - - - monospace - Symbola - - + + serif + + Libertinus Serif + Joy Pixels + Noto Color Emoji + FontAwesome + + + + sans-serif + + Libertinus Sans + Joy Pixels + Noto Color Emoji + FontAwesome + + + + sans + + Libertinus Sans + Joy Pixels + Noto Color Emoji + FontAwesome + + + + monospace + + Noto Sans Mono + Libertinus Mono + FontAwesome + Braille + + diff --git a/.config/gtk-2.0/gtkrc-2.0 b/.config/gtk-2.0/gtkrc-2.0 index 53337d1..da4d02e 100644 --- a/.config/gtk-2.0/gtkrc-2.0 +++ b/.config/gtk-2.0/gtkrc-2.0 @@ -1,11 +1,11 @@ # DO NOT EDIT! This file will be overwritten by LXAppearance. # Any customization should be done in ~/.gtkrc-2.0.mine instead. -include "/home/alex/.gtkrc-2.0.mine" -gtk-theme-name="Kripton" +include "~/.gtkrc-2.0.mine" +gtk-theme-name="Arc-Gruvbox" gtk-icon-theme-name="Adwaita" gtk-font-name="Sans 10" -gtk-cursor-theme-name="Kripton" +gtk-cursor-theme-name="Adwaita" gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_TEXT gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR diff --git a/.config/gtk-3.0/bookmarks b/.config/gtk-3.0/bookmarks deleted file mode 100644 index 76e0ff6..0000000 --- a/.config/gtk-3.0/bookmarks +++ /dev/null @@ -1,2 +0,0 @@ -file:///home/alex/.config/openvpn/cfgs -file:///home/alex/Drive diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini index a20595c..371c307 100644 --- a/.config/gtk-3.0/settings.ini +++ b/.config/gtk-3.0/settings.ini @@ -1,6 +1,5 @@ [Settings] -#gtk-theme-name=Arc-Gruvbox -gtk-theme-name=Kripton +gtk-theme-name=Arc-Gruvbox gtk-icon-theme-name=Adwaita gtk-font-name=Sans 10 gtk-cursor-theme-size=0 diff --git a/.config/homepage/bookmarks b/.config/homepage/bookmarks deleted file mode 100644 index 81cbd56..0000000 --- a/.config/homepage/bookmarks +++ /dev/null @@ -1,15 +0,0 @@ -aur.archlinux.org/ -file:///home/dt/.surf/html/homepage.html -distrowatch.com/ -https://gitlab.com/dwt1 -https://www.youtube.com/c/DistroTube/ -https://www.patreon.com/distrotube -https://socialblade.com/youtube/c/distrotube -https://mastodon.technology/web/accounts/85897 -https://diasp.org/stream -https://www.reddit.com/r/linux/ -https://forum.members.fsf.org/ -google.com/?gws_rd=ssl -suckless.org/ -https://distrowatch.com/ -https://www.omgubuntu.co.uk/ diff --git a/.config/homepage/html/empty.html b/.config/homepage/html/empty.html deleted file mode 100644 index 020dbe3..0000000 --- a/.config/homepage/html/empty.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - vimb - - - - - - diff --git a/.config/homepage/html/homepage.html b/.config/homepage/html/homepage.html deleted file mode 100644 index 977d27a..0000000 --- a/.config/homepage/html/homepage.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - Home - - - - - -
-
-
-
-
-
-
-
-
-
- -
- - - - diff --git a/.config/homepage/script.js b/.config/homepage/script.js deleted file mode 100644 index e69de29..0000000 diff --git a/.config/homepage/styles/archlinux.css b/.config/homepage/styles/archlinux.css deleted file mode 100644 index 85b71a2..0000000 --- a/.config/homepage/styles/archlinux.css +++ /dev/null @@ -1,186 +0,0 @@ -body { - font-size: 13px !important; - background: #282a36 !important; - color: #d0d0d0 !important; -} -a { - color: #9cc4ff !important; -} -#archnavbar { - min-height: 40px !important; - padding: 10px 15px !important; - background: #282a36 !important; - border-bottom: 0px !important; -} -.article-content p, h4 a { - font-size: 1.3em !important; -} -h4, h4 a, li a { - font-size: 1.3em !important; -} -h4 a, li a, #content h1, #content h2, #content h3 { - color: #82aaff !important; -} -#news h3 a { - font-size: 1.3em !important; - background: #82aaff !important; - color: #282a36 !important; -} -h3 span.arrow { - display: none !important; -} -#pkgsearch { - background: #9cc4ff !important; -} -label { - color: #282a36 !important; -} -.box { - font-size: 1.3em; - background: #000000 !important; - color: #d0d0d0 !important; - border: 1px solid #555 !important; -} -pre { - background: #9cc4ff !important; - margin: 1em 0px !important; - border: 1px solid #666666 !important; -} -code { - color: #282a36 !important; - background: #9cc4ff !important; -} -p code { - color: #000 !important; - font-size: 12px !important; - background: #ff8b92 !important; -} - - -dl dt{ - color: #ff8b92 !important; - font-size: 1.2em; -} -dd a{ - color: #82aaff !important; - font-size: 1.2em; -} - - -/* ARCH WIKI */ - -#mw-panel .portal .body li { - font-size: 0.9em !important; -} -#mw-panel .portal h3 { - color: #ff8b92 !important; - font-size: 0.9em !important; -} -#content { - background: #282a36 !important; - border: none !important; -} -#toc, .toc, .mw-warning, .toccolours { - background-color: #000000 !important; - border: 1px solid #666666 !important; - color: #d0d0d0 !important; -} -.tocnumber, .toctogglelabel { - color: #d0d0d0 !important; -} -.mw-body-content p { - color: #d0d0d0 !important; -} -div#mw-head { - top: 38px !important; -} -div.vectorTabs li.selected { - border: 1px solid #666666 !important; - border-bottom-color: #666666 !important; - background-color: #000000 !important; - padding-bottom: 20px !important; -} -.vectorTabs span { - background: none !important; -} -.catlinks { - border: 1px solid #666666 !important; - background-color: #000000 !important; -} -.mw-body, .parsoid-body { - color: #d0d0d0 !important; - font-size: 1.2em !important; -} - - -/* AUR */ -.results th { - background-color: #282a36 !important; -} -.results tr:nth-child(2n+1), #article-list tr:nth-child(2n+1) { - background: #282a36 !important; -} -.results tr:nth-child(2n), #article-list tr:nth-child(2n) { - background: #1f212a !important; -} - - - -/* ARCH FORUMS */ -#brdmenu, #brdmenu a { - background: #000000 !important; - border-color: #444444 !important; -} -#brdmenu.inbox { - margin-left: 30px !important; -} -.pun, .punwrap { - background: #282a36 !important; - border: none !important; -} -.pun .blocktable th { - background: #000000 !important; - border-color: #000 !important; - color: #ff8b92 !important; -} -#punindex .blocktable h2 { - font-size: 1.2em !important; - color: #ff8b92 !important; -} -tr.rowodd { - background: #282a36 !important; -} -tr.roweven { - background: #282a36 !important; -} -.pun .blocktable td { - border-color: #444444 !important; -} -.pun .blockpost { - background: #282a36 !important; - border-color: #444444 !important; -} -.pun .blockpost h2 { - background: #000000 !important; - border: none !important; - color: #82aaff !important; -} -.pun .blockpost .postbody, .pun .blockpost .postfoot { - background: #282a36 !important; - border-color: #444444 !important; -} -#punviewtopic .blockpost dt, #punmoderate .blockpost dt { - top: -1.8em !important; - color: #ff8b92 !important; -} -.pun .postmsg, #punhelp code, #punhelp samp { - color: #d0d0d0 !important; -} -.pun .codebox { - border-color: #444444 !important; - background: #9cc4ff !important; - color: #000000 !important; -} -.pun .codebox pre { - border: none !important; -} diff --git a/.config/homepage/styles/arcolinux-info.css b/.config/homepage/styles/arcolinux-info.css deleted file mode 100644 index 9b0b8d4..0000000 --- a/.config/homepage/styles/arcolinux-info.css +++ /dev/null @@ -1,27 +0,0 @@ -body { - font-size: 13px; - background-color: #282a36 !important; - color: #d0d0d0 !important; -} -#main-header { - background-color: #282a36 !important; - margin: 0; -} - -#et-navigation > ul > li > a { - color: #c3e88d !important; -} - -.widget_text .textwidget { - background-color: #434758 !important; - -} - -h4.widgettitle { - color: #d0d0d0 !important; - background-color: #434758 !important; -} - -.textwidget p { - color: #d0d0d0 !important; -} \ No newline at end of file diff --git a/.config/homepage/styles/arcolinuxforum.css b/.config/homepage/styles/arcolinuxforum.css deleted file mode 100644 index 58174a5..0000000 --- a/.config/homepage/styles/arcolinuxforum.css +++ /dev/null @@ -1,48 +0,0 @@ -body { - font-size: 13px; - background-color: #282a36 !important; - background-image: none !important; - color: #d0d0d0 !important; -} -h1 { - color: #e1acff !important; -} -.above { - border: 0px !important; - background: #282a36 !important; -} -.backhead { - background: #282a36 !important; - border: 0px !important; - box-shadow: inset 0px -1px 0 #282a36 !important; -} -.headerbar { - background: #282a36 !important; -} -.site-description p { - color: #c3e88d !important; -} -div#content { - background: #282a36 !important; -} -div.forabg { - background: #22232e !important; -} -dl.row-item { - color: #d0d0d0; - text-shadow: none; -} -ul.topiclist { - background: # !important; -} -li.row { - - background-color: #282a36 !important; - padding: 4px; - text-shadow: none; - -} -a.forumtitle { - color: #e1acff !important; - text-shadow: none; -} \ No newline at end of file diff --git a/.config/homepage/styles/empty.css b/.config/homepage/styles/empty.css deleted file mode 100644 index c7324a2..0000000 --- a/.config/homepage/styles/empty.css +++ /dev/null @@ -1,186 +0,0 @@ -body { - font-size: 13px !important; - background: #000000!important; - color: #d0d0d0 !important; -} -a { - color: #9cc4ff !important; -} -#archnavbar { - min-height: 40px !important; - padding: 10px 15px !important; - background: #282a36 !important; - border-bottom: 0px !important; -} -.article-content p, h4 a { - font-size: 1.3em !important; -} -h4, h4 a, li a { - font-size: 1.3em !important; -} -h4 a, li a, #content h1, #content h2, #content h3 { - color: #82aaff !important; -} -#news h3 a { - font-size: 1.3em !important; - background: #82aaff !important; - color: #282a36 !important; -} -h3 span.arrow { - display: none !important; -} -#pkgsearch { - background: #9cc4ff !important; -} -label { - color: #282a36 !important; -} -.box { - font-size: 1.3em; - background: #000000 !important; - color: #d0d0d0 !important; - border: 1px solid #555 !important; -} -pre { - background: #9cc4ff !important; - margin: 1em 0px !important; - border: 1px solid #666666 !important; -} -code { - color: #282a36 !important; - background: #9cc4ff !important; -} -p code { - color: #000 !important; - font-size: 12px !important; - background: #ff8b92 !important; -} - - -dl dt{ - color: #ff8b92 !important; - font-size: 1.2em; -} -dd a{ - color: #82aaff !important; - font-size: 1.2em; -} - - -/* ARCH WIKI */ - -#mw-panel .portal .body li { - font-size: 0.9em !important; -} -#mw-panel .portal h3 { - color: #ff8b92 !important; - font-size: 0.9em !important; -} -#content { - background: #282a36 !important; - border: none !important; -} -#toc, .toc, .mw-warning, .toccolours { - background-color: #000000 !important; - border: 1px solid #666666 !important; - color: #d0d0d0 !important; -} -.tocnumber, .toctogglelabel { - color: #d0d0d0 !important; -} -.mw-body-content p { - color: #d0d0d0 !important; -} -div#mw-head { - top: 38px !important; -} -div.vectorTabs li.selected { - border: 1px solid #666666 !important; - border-bottom-color: #666666 !important; - background-color: #000000 !important; - padding-bottom: 20px !important; -} -.vectorTabs span { - background: none !important; -} -.catlinks { - border: 1px solid #666666 !important; - background-color: #000000 !important; -} -.mw-body, .parsoid-body { - color: #d0d0d0 !important; - font-size: 1.2em !important; -} - - -/* AUR */ -.results th { - background-color: #282a36 !important; -} -.results tr:nth-child(2n+1), #article-list tr:nth-child(2n+1) { - background: #282a36 !important; -} -.results tr:nth-child(2n), #article-list tr:nth-child(2n) { - background: #1f212a !important; -} - - - -/* ARCH FORUMS */ -#brdmenu, #brdmenu a { - background: #000000 !important; - border-color: #444444 !important; -} -#brdmenu.inbox { - margin-left: 30px !important; -} -.pun, .punwrap { - background: #282a36 !important; - border: none !important; -} -.pun .blocktable th { - background: #000000 !important; - border-color: #000 !important; - color: #ff8b92 !important; -} -#punindex .blocktable h2 { - font-size: 1.2em !important; - color: #ff8b92 !important; -} -tr.rowodd { - background: #282a36 !important; -} -tr.roweven { - background: #282a36 !important; -} -.pun .blocktable td { - border-color: #444444 !important; -} -.pun .blockpost { - background: #282a36 !important; - border-color: #444444 !important; -} -.pun .blockpost h2 { - background: #000000 !important; - border: none !important; - color: #82aaff !important; -} -.pun .blockpost .postbody, .pun .blockpost .postfoot { - background: #282a36 !important; - border-color: #444444 !important; -} -#punviewtopic .blockpost dt, #punmoderate .blockpost dt { - top: -1.8em !important; - color: #ff8b92 !important; -} -.pun .postmsg, #punhelp code, #punhelp samp { - color: #d0d0d0 !important; -} -.pun .codebox { - border-color: #444444 !important; - background: #9cc4ff !important; - color: #000000 !important; -} -.pun .codebox pre { - border: none !important; -} diff --git a/.config/homepage/styles/homepage.css b/.config/homepage/styles/homepage.css deleted file mode 100644 index 6f94d49..0000000 --- a/.config/homepage/styles/homepage.css +++ /dev/null @@ -1,125 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Roboto+Mono'); -@import url('https://fonts.googleapis.com/css?family=Roboto'); -@import url('https://fonts.googleapis.com/css?family=Anton'); - -body { - background-color: #282a36; - margin: 0px; -} - -.container { - width: 100%; - height: 100vh; - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; -} - -#clock { - font-family: sans-serif; - font-size: 4.0rem; - font-weight: 600; - font-family: "Anton"; - color: #fff; - margin-bottom: .25em; -} - -#search { - width: 100%; - height: 100vh; - background-color: #000000; - display: none; - position: absolute; - box-sizing: border-box; - flex-direction: column; - align-items: center; - justify-content: center; -} - -#search-field { - width: 90%; - padding: .75em 1em; - box-sizing: border-box; - background-color: #000000; - border: solid 0px #000000; - font-family: "Roboto Mono"; - font-size: 4rem; - color: #f2f2f2; - outline: none; - border-radius: 3px; - margin-bottom: 1em; - text-align: center; -} - -.weather-container { - width: 30%; - background-color: #000000; - padding: 1em; - border-radius: 3px; - font-family: "Roboto Mono"; - font-size: 1.2rem; - color: #fff; - text-align: center; -} -.inline { - display: inline-block; -} - -.bookmark-container { - display: flex; - flex-direction: row; - justify-content: center; - width: 60%; - margin: 1em 0em; -} - -@media only screen and (max-width: 960px) { - .container { - height: auto; - } - #clock { - margin-top: 1em; - } - .container > .bookmark-container { - flex-direction: column; - width: 60%; - } - .bookmark-container > .bookmark-set { - width: auto; - margin: 1em 0em; - } -} - -.bookmark-set{ - padding: 1em; - background-color: #000000; - border-radius: 3px; - font-family: "Roboto Mono"; - font-size: .85rem; - width: 25%; - height: 16em; - margin: 0em .5em; -} -.bookmark-inner-container { - overflow-y: scroll; - height: 80%; - vertical-align: top; -} -.bookmark-title { - font-family: "Roboto"; - font-size: 1.2rem; - font-weight: 600; - color: #ededed; - margin: 0em 0em .35em 0em; -} -.bookmark { - text-decoration: none; - color: #8c8c8b; - display:block; - margin: .4em 0em; -} -.bookmark:hover { - color: #fff; -} - diff --git a/.config/homepage/styles/suckless.css b/.config/homepage/styles/suckless.css deleted file mode 100644 index 4b41535..0000000 --- a/.config/homepage/styles/suckless.css +++ /dev/null @@ -1,41 +0,0 @@ -body { - font-size: 13px; - background-color: #282a36 !important; - color: #d0d0d0 !important; -} - -#header { - background-color: #282a36 !important; - clear: both; - color: #c3e88d !important; -} - -a { - color: #82aaff !important; -} - -#header a { - color: #e1acff !important; -} - -#menu { - clear: both; - color: #c792ea; - font-weight: bold; - overflow: hidden; - padding: 0.7ex; - border: 0px !important; -} - -#menu a { - color: #d0d0d0 !important; -} - -#nav li a:hover { - background-color: #282a36 !important; -} - -h1, h2 { - color: #f07178 !important; -} - diff --git a/.config/homepage/styles/wikipedia.css b/.config/homepage/styles/wikipedia.css deleted file mode 100644 index b2127c8..0000000 --- a/.config/homepage/styles/wikipedia.css +++ /dev/null @@ -1,4 +0,0 @@ -* { - background-color: #282A36; - color: #eee; -} diff --git a/.config/lf/lfrc b/.config/lf/lfrc deleted file mode 100644 index 18176b9..0000000 --- a/.config/lf/lfrc +++ /dev/null @@ -1,70 +0,0 @@ -# Luke's lf settings - -# Basic vars -set shell sh -set previewer ~/.config/lf/scope -set shellopts '-eu' -set ifs "\n" -set scrolloff 10 -set color256 -set icons # Enable icons. Requires nerd fonts and LF_ICONS variable. - -# cmds/functions -cmd open ${{ - case $(file --mime-type $f -b) in - text/troff) man ./ $f;; - text/*) $EDITOR $fx;; - image/x-xcf|image/svg+xml) setsid gimp $f >/dev/null 2>&1 & ;; - image/*) rotdir $f | setsid sxiv -aio 2>&1 | lf-select & ;; - audio/*) mpv --input-ipc-server=/tmp/mpvsoc$(date +%%s) $f ;; - video/*) setsid mpv --input-ipc-server=/tmp/mpvsoc$(date +%%s) $f -quiet >/dev/null 2>&1 & ;; - application/pdf) setsid zathura $fx >/dev/null 2>&1 & ;; - *) for f in $fx; do setsid $OPENER $f >/dev/null 2>&1 & done;; - esac -}} - -cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1 - -cmd delete ${{ - set -f - printf "%s\n\t" "$fx" - printf "delete?[y/N]" - read ans - [ $ans = "y" ] && rm -rf $fx -}} - -cmd moveto ${{ - set -f - clear; echo "Move to where?" - dest="$(cut -d' ' -f2- ~/.config/directories | fzf)" && - eval mv -iv $fx $dest && - notify-send "๐Ÿšš File(s) moved." "File(s) moved to $dest." -}} - -cmd copyto ${{ - set -f - clear; echo "Copy to where?" - dest="$(cut -d' ' -f2- ~/.config/directories | fzf)" && - eval cp -ivr $fx $dest && - notify-send "๐Ÿ“‹ File(s) copied." "File(s) copies to $dest." -}} - -# Bindings -map c $lf -remote "send $id cd $(cut -d' ' -f2 ~/.config/directories | fzf)" -map $lf -remote "send $id select '$(fzf)'" -map J $lf -remote "send $id cd $(cut -d' ' -f2 ~/.config/directories | fzf)" -map gh -map g top -map D delete -map C copyto -map M moveto -map a push %mkdir -map r push :rename -map R $lf -remote "send $id push :rename$f" -map reload -map shell -map x $$f -map X !$f -map o &mimeopen $f -map O $mimeopen --ask $f -map - $/home/alex/.config/lf/draw_img.sh $f diff --git a/.config/lf/scope b/.config/lf/scope deleted file mode 100755 index 94822ef..0000000 --- a/.config/lf/scope +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -set -C -f -u -#IFS=$'\n' -IFS="$(printf '%b_' '\n')"; IFS="${IFS%_}" - -# ANSI color codes are supported. -# STDIN is disabled, so interactive scripts won't work properly - -# This script is considered a configuration file and must be updated manually. - -# Meanings of exit codes: -# code | meaning | action of ranger -# -----+------------+------------------------------------------- -# 0 | success | Display stdout as preview -# 1 | no preview | Display no preview at all -# 2 | plain text | Display the plain content of the file - -# Script arguments -FILE_PATH="${1}" # Full path of the highlighted file -HEIGHT="${2}" - -#FILE_EXTENSION="${FILE_PATH##*.}" -#FILE_EXTENSION_LOWER=$(echo ${FILE_EXTENSION} | tr '[:upper:]' '[:lower:]') - -# Settings -HIGHLIGHT_SIZE_MAX=262143 # 256KiB -HIGHLIGHT_TABWIDTH=8 -HIGHLIGHT_STYLE='pablo' - - -handle_mime() { - local mimetype="${1}" - case "${mimetype}" in - text/html) w3m -dump "${FILE_PATH}" ;; - text/troff) man ./ "${FILE_PATH}" | col -b ;; - text/* | */xml) - if [ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]; then - exit 2 - fi - if [ "$( tput colors )" -ge 256 ]; then - local highlight_format='xterm256' - else - local highlight_format='ansi' - fi - highlight --replace-tabs="${HIGHLIGHT_TABWIDTH}" --out-format="${highlight_format}" \ - --style="${HIGHLIGHT_STYLE}" --force -- "${FILE_PATH}" ;; - application/zip) atool --list -- "${FILE_PATH}" ;; - image/*) chafa --fill=block --symbols=block -c 256 -s 80x"${HEIGHT}" "${FILE_PATH}" || exit 1;; - audio/*|application/octet-stream) mediainfo "${FILE_PATH}" || exit 1;; - video/*) ffmpegthumbnailer -s 0 -i "${FILE_PATH}" -m -o "$HOME/.cache/thumb.jpg" && chafa --fill=all --symbols=all -c 256 -s 80x80 "$HOME/.cache/thumb.jpg" || exit 1;; - */pdf) pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - ;; - *opendocument*) odt2txt "${FILE_PATH}" ;; - esac -} - -MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )" -handle_mime "${MIMETYPE}" -exit 1 diff --git a/.config/mbsync/mailsync.patch b/.config/mbsync/mailsync.patch new file mode 100644 index 0000000..43eb4d9 --- /dev/null +++ b/.config/mbsync/mailsync.patch @@ -0,0 +1,4 @@ +41c41 +< *systemd*|*openrc*) export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus ;; +--- +> *systemd*|*openrc*) export DBUS_SESSION_BUS_ADDRESS=$(cat /tmp/dbus_session_bus_address);; diff --git a/.config/mbsync/patch_mailsync.sh b/.config/mbsync/patch_mailsync.sh new file mode 100644 index 0000000..22cb9a0 --- /dev/null +++ b/.config/mbsync/patch_mailsync.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +cd bin +patch -p1 < mailsync.patch diff --git a/.config/mimeapps.list b/.config/mimeapps.list new file mode 100644 index 0000000..9124fce --- /dev/null +++ b/.config/mimeapps.list @@ -0,0 +1,20 @@ +[Default Applications] + +# xdg-open will use these settings to determine how to open filetypes. +# These .desktop entries can also be seen and changed in ~/.local/share/applications/ + +text/x-shellscript=text.desktop; +x-scheme-handler/magnet=torrent.desktop; +application/x-bittorrent=torrent.desktop; +x-scheme-handler/mailto=mail.desktop; +text/plain=text.desktop; +application/postscript=pdf.desktop; +application/pdf=pdf.desktop; +image/png=img.desktop; +image/jpeg=img.desktop; +image/gif=img.desktop; +application/rss+xml=rss.desktop +video/x-matroska=video.desktop +video/mp4=video.desktop +x-scheme-handler/lbry=lbry.desktop +inode/directory=file.desktop diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf index 7724068..fce25b4 100644 --- a/.config/mpd/mpd.conf +++ b/.config/mpd/mpd.conf @@ -1,27 +1,21 @@ -db_file "~/.config/mpd/database" -log_file "~/.config/mpd/log" -music_directory "~/msc" -playlist_directory "~/.config/mpd/playlists" -pid_file "~/.config/mpd/pid" -state_file "~/.config/mpd/state" -sticker_file "~/.config/mpd/sticker.sql" +music_directory "~/msc" +playlist_directory "~/.config/mpd/playlists" auto_update "yes" - bind_to_address "127.0.0.1" restore_paused "yes" max_output_buffer_size "16384" -max_playlist_length "300000" audio_output { - type "pulse" - name "pulse audio" - mixer_type "software" + type "pulse" + name "pulse" + #type "alsa" + #name "ALSA" } audio_output { -type "fifo" -name "toggle_visualizer" -path "/tmp/mpd.fifo" -format "44100:16:2" + type "fifo" + name "Visualizer feed" + path "/tmp/mpd.fifo" + format "44100:16:2" } diff --git a/.config/mpd/playlists/lofi.m3u b/.config/mpd/playlists/lofi.m3u deleted file mode 100644 index 9c96d37..0000000 --- a/.config/mpd/playlists/lofi.m3u +++ /dev/null @@ -1,5 +0,0 @@ -lofi/20190127-ใ€๏ผก๏ผณ๏ผซใ€€๏ผญ๏ผฅใ€€๏ผฏ๏ผต๏ผดใ€€๏ผฏ๏ผฎใ€€๏ผกใ€€๏ผค๏ผก๏ผด๏ผฅใ€‘_ Japanese Lofi _ Japanese_Anime Lofi Hip Hop Mix.m4a -lofi/20170505-close your eyes (lo-fi_chill mix).mkv -lofi/20191208-1 A.M Study Session ๐Ÿ“š - [lofi hip hop_chill beats].opus -lofi/20190915-i found my home in your arms - lofi hip hop mix.opus -lofi/20200316-Just take care of yourself โ— lofi hip hop mix โ— Nostalgia.opus diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf index 5c957f1..2ef914e 100644 --- a/.config/mpv/input.conf +++ b/.config/mpv/input.conf @@ -61,8 +61,8 @@ j no-osd seek -5 exact # seek exactly 5 seconds backward #Alt+right add video-pan-x -0.1 # move the video left #Alt+up add video-pan-y 0.1 # move the video down #Alt+down add video-pan-y -0.1 # move the video up -#Alt++ add video-zoom 0.1 # zoom in -#Alt+- add video-zoom -0.1 # zoom out +Alt++ add video-zoom 0.1 # zoom in +Alt+- add video-zoom -0.1 # zoom out #Alt+BS set video-zoom 0 ; set video-pan-x 0 ; set video-pan-y 0 # reset zoom and pan settings #PGUP add chapter 1 # seek to the next chapter #PGDWN add chapter -1 # seek to the previous chapter @@ -157,7 +157,8 @@ j no-osd seek -5 exact # seek exactly 5 seconds backward #ctrl+w quit #E cycle edition # switch edition #l ab-loop # set/clear A-B loop points -#L cycle-values loop-file "inf" "no" # toggle infinite looping +ctrl+l cycle-values loop-playlist yes no ; show-text "${?=loop-playlist==inf:Playlist looping enabled}${?=loop-playlist==no:Playlist looping disabled}" +L cycle-values loop-file "inf" "no" # toggle infinite looping #ctrl+c quit 4 #DEL script-binding osc/visibility # cycle OSC visibility between never, auto (mouse-move) and always #ctrl+h cycle-values hwdec "auto" "no" # toggle hardware decoding diff --git a/.config/mpv/script-opts/youtube-upnext.conf b/.config/mpv/script-opts/youtube-upnext.conf index 3c56ce0..55f6486 100644 --- a/.config/mpv/script-opts/youtube-upnext.conf +++ b/.config/mpv/script-opts/youtube-upnext.conf @@ -17,7 +17,7 @@ cursor_selected=โ— - cursor_unselected=โ—‹ - # font size scales by window, if false requires larger font and padding sizes -scale_playlist_by_window=no +scale_playlist_by_window=yes # playlist ass style overrides inside curly brackets, \keyvalue is one field, extra \ for escape in lua # example {\\fnUbuntu\\fs10\\b0\\bord1} equals: font=Ubuntu, size=10, bold=no, border=1 @@ -54,4 +54,4 @@ check_certificate=yes # If you don't set this, the script may create a cookie file for you # For example "C:\\Users\\Username\\cookies.txt" # Or "C:/Users/Username/cookies.txt" -#cookies=cookies.txt \ No newline at end of file +#cookies=cookies.txt diff --git a/.config/mpv/scripts/modules.lua b/.config/mpv/scripts/modules.lua new file mode 100644 index 0000000..703f372 --- /dev/null +++ b/.config/mpv/scripts/modules.lua @@ -0,0 +1,3 @@ +local mpv_config_dir_path = require("mp").command_native({"expand-path", "~~/"}) +function load(relative_path) dofile(mpv_config_dir_path .. "/script_modules/" .. relative_path) end +load("mpvSockets/mpvSockets.lua") diff --git a/.config/mpv/scripts/sponsorblock-minimal.lua b/.config/mpv/scripts/sponsorblock-minimal.lua new file mode 120000 index 0000000..cb3390f --- /dev/null +++ b/.config/mpv/scripts/sponsorblock-minimal.lua @@ -0,0 +1 @@ +/usr/lib/mpv/sponsorblock-minimal.lua \ No newline at end of file diff --git a/.config/mpv/scripts/youtube-upnext.lua b/.config/mpv/scripts/youtube-upnext.lua index 15e7f8c..9c6873d 100644 --- a/.config/mpv/scripts/youtube-upnext.lua +++ b/.config/mpv/scripts/youtube-upnext.lua @@ -33,7 +33,7 @@ local opts = { cursor_unselected = "โ—‹ ", --font size scales by window, if false requires larger font and padding sizes - scale_playlist_by_window=false, + scale_playlist_by_window=true, --playlist ass style overrides inside curly brackets, \keyvalue is one field, extra \ for escape in lua --example {\\fnUbuntu\\fs10\\b0\\bord1} equals: font=Ubuntu, size=10, bold=no, border=1 @@ -225,6 +225,7 @@ local function get_invidious(url) label=v.title .. " - " .. v.author, file=string.format(opts.youtube_url, v.videoId) }) + msg.verbose(v.author) end mp.osd_message("upnext fetch from Invidious succeeded", 10) return res diff --git a/.config/mutt/accounts/1-abocken@ethz.ch.muttrc b/.config/mutt/accounts/1-abocken@ethz.ch.muttrc new file mode 100644 index 0000000..3c92608 --- /dev/null +++ b/.config/mutt/accounts/1-abocken@ethz.ch.muttrc @@ -0,0 +1,47 @@ +# vim: filetype=neomuttrc +# muttrc file for account abocken@ethz.ch +set realname = "Alexander Bocken" +set from = "abocken@ethz.ch" +set sendmail = "msmtp -a abocken@ethz.ch" +alias me Alexander Bocken +set folder = "/home/alex/.local/share/mail/abocken@ethz.ch" +set header_cache = /home/alex/.cache/mutt-wizard/abocken@ethz.ch/headers +set message_cachedir = /home/alex/.cache/mutt-wizard/abocken@ethz.ch/bodies +set mbox_type = Maildir + + +bind index,pager gg noop +bind index,pager g noop +bind index,pager M noop +bind index,pager C noop +bind index gg first-entry +unmailboxes * +unalternates * +unset signature +unmacro index o +macro index o "mailsync abocken@ethz.ch" "run mbsync to sync abocken@ethz.ch" + +mailboxes "=Calendar" "=Deleted Items" "=Drafts" "=INBOX" "=Journal" "=Junk E-Mail" "=Notes" "=Outbox" "=Sent" "=Sent Items" "=Tasks" "=Trash" +set postponed = "+Drafts" +macro index,pager gd "=Drafts" "go to drafts" +macro index,pager Md ";=Drafts" "move mail to drafts" +macro index,pager Cd ";=Drafts" "copy mail to drafts" +macro index,pager gi "=INBOX" "go to inbox" +macro index,pager Mi ";=INBOX" "move mail to inbox" +macro index,pager Ci ";=INBOX" "copy mail to inbox" +set spoolfile = "+INBOX" +macro index,pager gj "=Junk" "go to junk" +macro index,pager Mj ";=Junk" "move mail to junk" +macro index,pager Cj ";=Junk" "copy mail to junk" +set record = "+Sent" +macro index,pager gs "=Sent" "go to sent" +macro index,pager Ms ";=Sent" "move mail to sent" +macro index,pager Cs ";=Sent" "copy mail to sent" +set record = "+Sent" +macro index,pager gs "=Sent" "go to sent" +macro index,pager Ms ";=Sent" "move mail to sent" +macro index,pager Cs ";=Sent" "copy mail to sent" +macro index,pager gt "=Trash" "go to trash" +macro index,pager Mt ";=Trash" "move mail to trash" +macro index,pager Ct ";=Trash" "copy mail to trash" +set trash = "+Trash" diff --git a/.config/mutt/accounts/alexander@aaathats3as.com.muttrc b/.config/mutt/accounts/alexander@aaathats3as.com.muttrc new file mode 100644 index 0000000..c9ba7ac --- /dev/null +++ b/.config/mutt/accounts/alexander@aaathats3as.com.muttrc @@ -0,0 +1,22 @@ +# vim: filetype=neomuttrc +# muttrc file for account alexander@aaathats3as.com +set realname = "Alexander" +set from = "alexander@aaathats3as.com" +set sendmail = "msmtp -a alexander@aaathats3as.com" +alias me Alexander +set folder = "/home/alex/.local/share/mail/alexander@aaathats3as.com" +set header_cache = /home/alex/.cache/mutt-wizard/alexander@aaathats3as.com/headers +set message_cachedir = /home/alex/.cache/mutt-wizard/alexander@aaathats3as.com/bodies +set mbox_type = Maildir +set hostname = "aaathats3as.com" +source /usr/share/mutt-wizard/switch.muttrc +set spoolfile = +INBOX +set postponed = +Drafts +set trash = +Trash +set record = +Sent + +macro index o "mailsync alexander@aaathats3as.com" "run mbsync to sync alexander@aaathats3as.com" +macro index \eg "unset wait_keygpg --list-secret-keys; printf 'Enter email ID of user to publish: '; read eID; printf 'Enter fingerprint of GPG key to publish: '; read eFGPT; /usr/libexec/gpg-wks-client --create \$eFGPT \$eID | msmtp --read-envelope-from --read-recipients -a alexander@aaathats3as.com" "publish GPG key to WKS provider" +macro index \eh "/usr/libexec/gpg-wks-client --receive | msmtp --read-envelope-from --read-recipients -a alexander@aaathats3as.com" "confirm GPG publication" + +mailboxes "=Junk" "=Trash" "=INBOX" diff --git a/.config/mutt/accounts/alexander@bocken.org.muttrc b/.config/mutt/accounts/alexander@bocken.org.muttrc new file mode 100644 index 0000000..aa047db --- /dev/null +++ b/.config/mutt/accounts/alexander@bocken.org.muttrc @@ -0,0 +1,22 @@ +# vim: filetype=neomuttrc +# muttrc file for account alexander@bocken.org +set realname = "Alexander Bocken" +set from = "alexander@bocken.org" +set sendmail = "msmtp -a alexander@bocken.org" +alias me Alexander Bocken +set folder = "/home/alex/.local/share/mail/alexander@bocken.org" +set header_cache = /home/alex/.cache/mutt-wizard/alexander@bocken.org/headers +set message_cachedir = /home/alex/.cache/mutt-wizard/alexander@bocken.org/bodies +set mbox_type = Maildir +set hostname = "bocken.org" +#source /usr/share/mutt-wizard/switch.muttrc +set spoolfile = +INBOX +set postponed = +Drafts +set trash = +Trash +set record = +Sent + +macro index o "mailsync alexander@bocken.org" "run mbsync to sync alexander@bocken.org" +macro index \eg "unset wait_keygpg --list-secret-keys; printf 'Enter email ID of user to publish: '; read eID; printf 'Enter fingerprint of GPG key to publish: '; read eFGPT; /usr/lib/gnupg/gpg-wks-client --create \$eFGPT \$eID | msmtp --read-envelope-from --read-recipients -a alexander@bocken.org" "publish GPG key to WKS provider" +macro index \eh "/usr/lib/gnupg/gpg-wks-client --receive | msmtp --read-envelope-from --read-recipients -a alexander@bocken.org" "confirm GPG publication" + +mailboxes "=Archive/Archive" "=Trash/Trash" "=Sent" "=Junk" "=Drafts" "=INBOX" diff --git a/.config/mutt/mailcap b/.config/mutt/mailcap deleted file mode 100644 index 8db666f..0000000 --- a/.config/mutt/mailcap +++ /dev/null @@ -1,25 +0,0 @@ -text/plain; $EDITOR %s ; -text/html; openfile %s ; nametemplate=%s.html -text/html; lynx -assume_charset=%{charset} -display_charset=utf-8 -dump %s; nametemplate=%s.html; copiousoutput; -image/*; openfile %s ; -video/*; setsid mpv --quiet %s &; copiousoutput -application/pdf; openfile %s ; -application/pgp-encrypted; gpg -d '%s'; copiousoutput; -application/pgp-keys; gpg --import '%s'; copiousoutput; - -## PDF -#application;zathura %s -#image/pdf;zathura %s -## Images -#image/bmp;sxiv %s -#image/gif;sxiv %s -#image/libm;sxiv %s -#image/jpg;sxiv %s -#image/jpeg;sxiv %s -#image/png;sxiv %s -#image/tiff;sxiv %s -#image/x-png;sxiv %s - -#Text -#text/html; qutebrowser %s -text/calendar; calendaradd %s diff --git a/.config/mutt/muttrc b/.config/mutt/muttrc index 556a192..1f04bc6 100644 --- a/.config/mutt/muttrc +++ b/.config/mutt/muttrc @@ -1,81 +1,19 @@ # vim: filetype=neomuttrc -source /usr/local/share/mutt-wizard/mutt-wizard.muttrc # mw-autogenerated -set mailcap_path = /home/alex/.config/mutt/mailcap #overwrite default mailcap location +source /usr/share/mutt-wizard/mutt-wizard.muttrc +source /home/alex/.config/mutt/accounts/alexander@bocken.org.muttrc +macro index,pager i1 'source /home/alex/.config/mutt/accounts/alexander@bocken.org.muttrc!;' "switch to alexander@bocken.org" +macro index,pager i2 'source /home/alex/.config/mutt/accounts/1-abocken@ethz.ch.muttrc!;' "switch to abocken@ethz.ch" +set forward_attachments = ask-yes +macro compose m \ +"set pipe_decode\ +pandoc -f gfm -t plain -o /tmp/msg.txt\ +pandoc -s --self-contained -o /tmp/msg.html --resource-path ~/.config/mutt/templates/ --template email\ +unset pipe_decode\ +/tmp/msg.txt\ +/tmp/msg.html\ +" \ +"Convert markdown to HTML5 and plaintext alternative content types" -macro index,pager i2 'source /home/alex/.config/mutt/accounts/2-ethz.muttrc!;' "switch to abocken@ethz.ch" # mw-autogenerated -source /home/alex/.config/mutt/accounts/1-bocken.muttrc # mw-autogenerated -macro index,pager i1 'source /home/alex/.config/mutt/accounts/1-bocken.muttrc!;' "switch to alexander@bocken.org" # mw-autogenerated -macro index,pager i3 'source /home/alex/.config/mutt/accounts/3-moodle.muttrc!;' "switch to moodle@bocken.org" # mw-autogenerated -macro index,pager i4 'source /home/alex/.config/mutt/accounts/5-bockenspam.muttrc!;' "switch to spam@bocken.org" # mw-autogenerated - -# Default index colors: -color index default default '.*' -color index_author cyan default '.*' -color index_number black default -color index_subject blue default '.*' - -# New mail is boldened: -color index brightwhite black "~N" -color index_author brightwhite black "~N" -color index_subject brightwhite black "~N" - -# Tagged mail is highlighted: -color index brightdefault blue "~T" -color index_author brightcyan blue "~T" -color index_subject brightblue blue "~T" - -# Other colors and aesthetic settings: -mono bold bold -mono underline underline -mono indicator reverse -mono error bold -color normal default default -color indicator brightblack blue -color sidebar_highlight red default -color sidebar_divider brightblack black -color sidebar_flagged red black -color sidebar_new green black -color normal brightblue default -color error red default -color tilde black default -color message cyan default -color markers red white -color attachment white default -color search brightmagenta default -color status white black -color hdrdefault brightgreen default -color quoted green default -color quoted1 blue default -color quoted2 cyan default -color quoted3 yellow default -color quoted4 red default -color quoted5 brightred default -color signature brightgreen default -color bold black default -color underline black default -color normal default default - -# Regex highlighting: -color header blue default ".*" -color header brightmagenta default "^(From)" -color header brightcyan default "^(Subject)" -color header brightwhite default "^(CC|BCC)" -color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses -color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL -color body green default "\`[^\`]*\`" # Green text between ` and ` -color body brightblue default "^# \.*" # Headings as bold blue -color body brightcyan default "^## \.*" # Subheadings as bold cyan -color body brightblack default "^### \.*" # Subsubheadings as bold green -color body blue default "^(\t| )*(-|\\*) \.*" # List items as blue -color body brightcyan default "[;:][-o][)/(|]" # emoticons -color body brightcyan default "[;:][)(|]" # emoticons -color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon? -color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon? -color body red default "(BAD signature)" -color body cyan default "(Good signature)" -color body brightblack default "^gpg: Good signature .*" -color body brightyellow default "^gpg: " -color body brightyellow red "^gpg: BAD signature from.*" -mono body bold "^gpg: Good signature" -mono body bold "^gpg: BAD signature from.*" -color body cyan default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" +set query_command = "abook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook --mutt-query '%s'" +macro index,pager a "set my_pipe_decode=\$pipe_decode pipe_decodeabook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook --add-emailset pipe_decode=\$my_pipe_decode; unset my_pipe_decode" "add the sender address to abook" +macro index,pager i3 'source /home/alex/.config/mutt/accounts/alexander@aaathats3as.com.muttrc!;' "switch to alexander@aaathats3as.com" diff --git a/.config/mutt/templates/email.html b/.config/mutt/templates/email.html new file mode 100644 index 0000000..90015f0 --- /dev/null +++ b/.config/mutt/templates/email.html @@ -0,0 +1,29 @@ + + + + + + + + +$for(css)$ + +$endfor$ + +$for(header-includes)$ + $header-includes$ +$endfor$ + + + $body$ + $for(include-after)$ + $include-after$ + $endfor$ + + diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config index 44f8ae7..00f499a 100644 --- a/.config/ncmpcpp/config +++ b/.config/ncmpcpp/config @@ -352,7 +352,7 @@ media_library_albums_split_by_date = no # #lines_scrolled = 2 # -lyrics_fetchers = genius, azlyrics, sing365, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet +lyrics_fetchers = azlyrics, sing365, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet, genius # #follow_now_playing_lyrics = no # diff --git a/.config/ncmpcpp/config_ b/.config/ncmpcpp/config_ deleted file mode 100644 index 7c6452e..0000000 --- a/.config/ncmpcpp/config_ +++ /dev/null @@ -1,545 +0,0 @@ -############################################################################## -## This is the example configuration file. Copy it to $HOME/.ncmpcpp/config ## -## or $XDG_CONFIG_HOME/ncmpcpp/config and set up your preferences. ## -############################################################################## -# -##### directories ###### -## -## Directory for storing ncmpcpp related files. Changing it is useful if you -## want to store everything somewhere else and provide command line setting for -## alternative location to config file which defines that while launching -## ncmpcpp. -## -# -ncmpcpp_directory = ~/.config/ncmpcpp -# -## -## Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other -## MPD clients (eg. ncmpc) also use that location. -## -# -lyrics_directory = ~/.config/lyrics -# -##### connection settings ##### -# -#mpd_host = 127.0.0.1 -# -#mpd_port = 6600 -# -#mpd_connection_timeout = 5 -# -## Needed for tag editor and file operations to work. -## -mpd_music_dir = "~/drv/Music" -# -#mpd_crossfade_time = 5 -# -##### music visualizer ##### -## -## Note: In order to make music visualizer work you'll need to use mpd fifo -## output, whose format parameter has to be set to 44100:16:1 for mono -## visualization or 44100:16:2 for stereo visualization. Example configuration -## (it has to be put into mpd.conf): -## -## audio_output { -## type "fifo" -## name "Visualizer feed" -## path "/tmp/mpd.fifo" -## format "44100:16:2" -## } -## -# -#visualizer_fifo_path = /tmp/mpd.fifo -# -## -## Note: Below parameter is needed for ncmpcpp to determine which output -## provides data for visualizer and thus allow syncing between visualization and -## sound as currently there are some problems with it. -## -# -#visualizer_output_name = Visualizer feed -# -## -## If you set format to 44100:16:2, make it 'yes'. -## -#visualizer_in_stereo = yes -# -## -## Note: Below parameter defines how often ncmpcpp has to "synchronize" -## visualizer and audio outputs. 30 seconds is optimal value, but if you -## experience synchronization problems, set it to lower value. Keep in mind -## that sane values start with >=10. -## -# -#visualizer_sync_interval = 30 -# -## -## Note: To enable spectrum frequency visualization you need to compile ncmpcpp -## with fftw3 support. -## -# -## Available values: spectrum, wave, wave_filled, ellipse. -## -visualizer_type = spectrum -# -#visualizer_look = โ—ๅ -#visualizer_look = ๅ -# -#visualizer_color = blue, cyan, green, yellow, magenta, red -# -## Alternative subset of 256 colors for terminals that support it. -## -#visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161 -# -##### system encoding ##### -## -## ncmpcpp should detect your charset encoding but if it failed to do so, you -## can specify charset encoding you are using here. -## -## Note: You can see whether your ncmpcpp build supports charset detection by -## checking output of `ncmpcpp --version`. -## -## Note: Since MPD uses UTF-8 by default, setting this option makes sense only -## if your encoding is different. -## -# -#system_encoding = "" -# -##### delays ##### -# -## Time of inactivity (in seconds) after playlist highlighting will be disabled -## (0 = always on). -## -#playlist_disable_highlight_delay = 5 -# -## Defines how long messages are supposed to be visible. -## -message_delay_time = 1 -# -##### song format ##### -## -## For a song format you can use: -## -## %l - length -## %f - filename -## %D - directory -## %a - artist -## %A - album artist -## %t - title -## %b - album -## %y - date -## %n - track number (01/12 -> 01) -## %N - full track info (01/12 -> 01/12) -## %g - genre -## %c - composer -## %p - performer -## %d - disc -## %C - comment -## %P - priority -## $R - begin right alignment -## -## If you want to make sure that a part of the format is displayed only when -## certain tags are present, you can archieve it by grouping them with brackets, -## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are -## present or '' otherwise. It is also possible to define a list of -## alternatives by providing several groups and separating them with '|', -## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is -## not present. -## -## Note: If you want to set limit on maximal length of a tag, just put the -## appropriate number between % and character that defines tag type, e.g. to -## make album take max. 20 terminal cells, use '%20b'. -## -## In addition, formats support markers used for text attributes. They are -## followed by character '$'. After that you can put: -## -## - 0 - default window color (discards all other colors) -## - 1 - black -## - 2 - red -## - 3 - green -## - 4 - yellow -## - 5 - blue -## - 6 - magenta -## - 7 - cyan -## - 8 - white -## - 9 - end of current color -## - b - bold text -## - u - underline text -## - r - reverse colors -## - a - use alternative character set -## -## If you don't want to use a non-color attribute anymore, just put it again, -## but this time insert character '/' between '$' and attribute character, -## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with -## reversed colors. -## -## If you want to use 256 colors and/or background colors in formats (the naming -## scheme is described below in section about color definitions), it can be done -## with the syntax $(COLOR), e.g. to set the artist tag to one of the -## non-standard colors and make it have yellow background, you need to write -## $(197_yellow)%a$(end). Note that for standard colors this is interchangable -## with attributes listed above. -## -## Note: colors can be nested. -## -# -song_list_format = {$4%a - }{%t}|{$8%f$9}$R{$3(%l)$9} -# -song_status_format = $b{{$8"%t"}} $3by {$4%a{ $3in $7%b{ (%y)}} $3}|{$8%f} -# -song_library_format = {%n - }{%t}|{%f} -# -alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b -# -alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D} -# -current_item_prefix = $(cyan)$r$b -# -current_item_suffix = $/r$(end)$/b -# -current_item_inactive_column_prefix = $(magenta)$r -# -current_item_inactive_column_suffix = $/r$(end) -# -#now_playing_prefix = $b -# -#now_playing_suffix = $/b -# -#browser_playlist_prefix = "$2playlist$9 " -# -#selected_item_prefix = $6 -# -#selected_item_suffix = $9 -# -#modified_item_prefix = $3> $9 -# -## -## Note: attributes are not supported for the following variables. -## -#song_window_title_format = {%a - }{%t}|{%f} -## -## Note: Below variables are used for sorting songs in browser. The sort mode -## determines how songs are sorted, and can be used in combination with a sort -## format to specify a custom sorting format. Available values for -## browser_sort_mode are "name", "mtime", "format" and "noop". -## -# -#browser_sort_mode = name -# -#browser_sort_format = {%a - }{%t}|{%f} {(%l)} -# -##### columns settings ##### -## -## syntax of song columns list format is "column column etc." -## -## - syntax for each column is: -## -## (width of the column)[color of the column]{displayed tag} -## -## Note: Width is by default in %, if you want a column to have fixed size, add -## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of -## screen (so the real width will depend on actual screen size), whereas -## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen -## is. -## -## - color is optional (if you want the default one, leave the field empty). -## -## Note: You can give a column additional attributes by putting appropriate -## character after displayed tag character. Available attributes are: -## -## - r - column will be right aligned -## - E - if tag is empty, empty tag marker won't be displayed -## -## You can also: -## -## - give a column custom name by putting it after attributes, separated with -## character ':', e.g. {lr:Length} gives you right aligned column of lengths -## named "Length". -## -## - define sequence of tags, that have to be displayed in case predecessor is -## empty in a way similar to the one in classic song format, i.e. using '|' -## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to -## display artist tag and then composer and performer if previous ones are not -## available. -## -# -#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l} -# -##### various settings ##### -# -## -## Note: Custom command that will be executed each time song changes. Useful for -## notifications etc. -## -execute_on_song_change = "pkill -RTMIN+11 dwmblocks" -# -## -## Note: Custom command that will be executed each time player state -## changes. The environment variable MPD_PLAYER_STATE is set to the current -## state (either unknown, play, pause, or stop) for its duration. -## -# -execute_on_player_state_change = "pkill -RTMIN+11 dwmblocks" -# -#playlist_show_mpd_host = no -# -#playlist_show_remaining_time = no -# -#playlist_shorten_total_times = no -# -#playlist_separate_albums = no -# -## -## Note: Possible display modes: classic, columns. -## -playlist_display_mode = columns -# -browser_display_mode = columns -# -search_engine_display_mode = classic -# -#playlist_editor_display_mode = classic -# -#discard_colors_if_item_is_selected = yes -# -#show_duplicate_tags = true -# -#incremental_seeking = yes -# -#seek_time = 1 -# -#volume_change_step = 2 -# -#autocenter_mode = no -# -#centered_cursor = no -# -## -## Note: You can specify third character which will be used to build 'empty' -## part of progressbar. -## -progressbar_look = -> -# -## Available values: database, playlist. -## -#default_place_to_search_in = database -# -## Available values: classic, alternative. -## -user_interface = alternative -# -#data_fetching_delay = yes -# -## Available values: artist, album_artist, date, genre, composer, performer. -## -media_library_primary_tag = artist -# -media_library_albums_split_by_date = no -# -## Available values: wrapped, normal. -## -#default_find_mode = wrapped -# -#default_tag_editor_pattern = %n - %t -# -#header_visibility = yes -# -#statusbar_visibility = yes -# -#titles_visibility = yes -# -#header_text_scrolling = yes -# -#cyclic_scrolling = no -# -#lines_scrolled = 2 -# -#lyrics_fetchers = lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet -# -#follow_now_playing_lyrics = no -# -#fetch_lyrics_for_current_song_in_background = no -# -#store_lyrics_in_song_dir = no -# -#generate_win32_compatible_filenames = yes -# -#allow_for_physical_item_deletion = no -# -## -## Note: If you set this variable, ncmpcpp will try to get info from last.fm in -## language you set and if it fails, it will fall back to english. Otherwise it -## will use english the first time. -## -## Note: Language has to be expressed as an ISO 639 alpha-2 code. -## -#lastfm_preferred_language = en -# -#space_add_mode = add_remove -# -#show_hidden_files_in_local_browser = no -# -## -## How shall screen switcher work? -## -## - "previous" - switch between the current and previous screen. -## - "screen1,...,screenN" - switch between given sequence of screens. -## -## Screens available for use: help, playlist, browser, search_engine, -## media_library, playlist_editor, tag_editor, outputs, visualizer, clock, -## lyrics, last_fm. -## -#screen_switcher_mode = playlist, browser -# -## -## Note: You can define startup screen by choosing screen from the list above. -## -startup_screen = browser -# -## -## Note: You can define startup slave screen by choosing screen from the list -## above or an empty value for no slave screen. -## -#startup_slave_screen = "" -# -#startup_slave_screen_focus = no -# -## -## Default width of locked screen (in %). Acceptable values are from 20 to 80. -## -# -#locked_screen_width_part = 50 -# -#ask_for_locked_screen_width_part = yes -# -#jump_to_now_playing_song_at_start = yes -# -#ask_before_clearing_playlists = yes -# -#clock_display_seconds = no -# -display_volume_level = yes -# -#display_bitrate = no -# -#display_remaining_time = no -# -## Available values: none, basic, extended, perl. -## -#regular_expressions = perl -# -## -## Note: if below is enabled, ncmpcpp will ignore leading "The" word while -## sorting items in browser, tags in media library, etc. -## -ignore_leading_the = yes -# -## -## Note: if below is enabled, ncmpcpp will ignore diacritics while searching and -## filtering lists. This takes an effect only if boost was compiled with ICU -## support. -## -#ignore_diacritics = no -# -#block_search_constraints_change_if_items_found = yes -# -#mouse_support = yes -# -#mouse_list_scroll_whole_page = yes -# -#empty_tag_marker = -# -#tags_separator = " | " -# -#tag_editor_extended_numeration = no -# -#media_library_sort_by_mtime = no -# -enable_window_title = yes -# -## -## Note: You can choose default search mode for search engine. Available modes -## are: -## -## - 1 - use mpd built-in searching (no regexes, pattern matching) -## -## - 2 - use ncmpcpp searching (pattern matching with support for regexes, but -## if your mpd is on a remote machine, downloading big database to process -## it can take a while -## -## - 3 - match only exact values (this mode uses mpd function for searching in -## database and local one for searching in current playlist) -## -# -#search_engine_default_search_mode = 1 -# -external_editor = vim -# -## Note: set to yes if external editor is a console application. -## -use_console_editor = yes -# -##### colors definitions ##### -## -## It is possible to set a background color by setting a color value -## "_", e.g. red_black will set foregound color to red -## and background color to black. -## -## In addition, for terminals that support 256 colors it is possible to set one -## of them by using a number in range [1, 256] instead of color name, -## e.g. numerical value corresponding to red_black is 2_1. To find out if the -## terminal supports 256 colors, run ncmpcpp and check out the bottom of the -## help screen for list of available colors and their numerical values. -## -## What is more, there are two special values for the background color: -## "transparent" and "current". The first one explicitly sets the background to -## be transparent, while the second one allows you to preserve current -## background color and change only the foreground one. It's used implicitly -## when background color is not specified. -## -## Moreover, it is possible to attach format information to selected color -## variables by appending to their end a colon followed by one or more format -## flags, e.g. black:b or red:ur. The following variables support this syntax: -## visualizer_color, color1, color2, empty_tag_color, volume_color, -## state_line_color, state_flags_color, progressbar_color, -## progressbar_elapsed_color, player_state_color, statusbar_time_color, -## alternative_ui_separator_color. -## -## Note: due to technical limitations of older ncurses version, if 256 colors -## are used there is a possibility that you'll be able to use only colors with -## transparent background. -# -#colors_enabled = yes -# -empty_tag_color = magenta -# -#header_window_color = magenta -# -#volume_color = default -# -#state_line_color = default -# -#state_flags_color = default:b -# -main_window_color = white -# -#color1 = white -# -#color2 = green -# -progressbar_color = black:b -# -progressbar_elapsed_color = blue:b -# -statusbar_color = red -# -statusbar_time_color = cyan:b -# -#player_state_color = default:b -# -#alternative_ui_separator_color = black:b -# -#window_border_color = green -# -#active_window_border = red -# diff --git a/.config/ncmpcpp/error.log b/.config/ncmpcpp/error.log deleted file mode 100644 index e7c3a1c..0000000 --- a/.config/ncmpcpp/error.log +++ /dev/null @@ -1,27 +0,0 @@ -writeCommonTags: couldn't write 'track' tag to 'School Shooter - Negative XP/soundcloud/20190602-NXP.m4a' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'School Shooter - Negative XP/soundcloud/20190602-NXP.m4a' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/20190127-ใ€๏ผก๏ผณ๏ผซใ€€๏ผญ๏ผฅใ€€๏ผฏ๏ผต๏ผดใ€€๏ผฏ๏ผฎใ€€๏ผกใ€€๏ผค๏ผก๏ผด๏ผฅใ€‘_ Japanese Lofi _ Japanese_Anime Lofi Hip Hop Mix.m4a' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/20191208-1 A.M Study Session ๐Ÿ“š - [lofi hip hop_chill beats].opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20171021-kudasai - the girl i haven't met.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20171105-kudasai - a night together.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20171208-kudasai - memories with her.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20171223-kudasai - attached.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180207-kudasai - oh darling.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180304-kudasai - a light of mine.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180325-kudasai - when i see you.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180420-kudasai - flowers next to me.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180501-kudasai - vibrancy.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180520-luv.ly & kudasai - beingwithu.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180618-kudasai - technicolor.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180727-kudasai - dream of her.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180804-luv.ly & kudasai - solicitude.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20180922-kudasai - she said, i wonder.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20181001-kudasai - midnight.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20181014-marc - kid in the sky w_ kudasai.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20181022-kudasai - you make colors out of grey.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20181108-kudasai - serenade.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20181206-kudasai - sapphire.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20181229-kudasai - separate ways.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20190217-kudasai - love lasts.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20190224-kudasai & slippery salazar - metrolink.opus' as it's not a positive integer -writeCommonTags: couldn't write 'track' tag to 'lofi/kudasai/20190828-kudasai - Platinum.opus' as it's not a positive integer diff --git a/.config/newsboat/config b/.config/newsboat/config index 6e946bd..884967c 100644 --- a/.config/newsboat/config +++ b/.config/newsboat/config @@ -18,21 +18,21 @@ bind-key h quit bind-key a toggle-article-read bind-key n next-unread bind-key N prev-unread +bind-key D pb-download bind-key U show-urls bind-key x pb-delete -bind-key D delete-article color listnormal cyan default -color listfocus white black bold +color listfocus black yellow standout bold color listnormal_unread blue default -color listfocus_unread white black bold +color listfocus_unread yellow default bold color info red black bold color article white default bold browser linkhandler macro , open-in-browser macro t set browser "qndl" ; open-in-browser ; set browser linkhandler -macro a set browser "tsp youtube-dl --add-metadata -xic -f bestaudio/best" ; open-in-browser ; set browser linkhandler +macro a set browser "tsp yt-dlp --embed-metadata -xic -f bestaudio/best" ; open-in-browser ; set browser linkhandler macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler macro w set browser "lynx" ; open-in-browser ; set browser linkhandler macro d set browser "dmenuhandler" ; open-in-browser ; set browser linkhandler @@ -42,6 +42,7 @@ macro p set browser "peertubetorrent %u 480" ; open-in-browser ; set browser lin macro P set browser "peertubetorrent %u 1080" ; open-in-browser ; set browser linkhandler notify-program "newsboatnotifs" +highlight all "---.*---" yellow highlight all ".*---.*---.*" red default bold highlight feedlist ".*(0/0))" black highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold diff --git a/.config/sxiv/exec/key-handler b/.config/nsxiv/exec/key-handler similarity index 62% rename from .config/sxiv/exec/key-handler rename to .config/nsxiv/exec/key-handler index 96901db..f3dd7dc 100755 --- a/.config/sxiv/exec/key-handler +++ b/.config/nsxiv/exec/key-handler @@ -1,17 +1,15 @@ -#!/usr/bin/env sh -while read file +#!/bin/sh +while read -r file do case "$1" in "w") setbg "$file" & ;; "c") - [ -z "$destdir" ] && destdir="$(sed "s/\s.*#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/directories | awk '{print $2}' | dmenu -l 20 -i -p "Copy file(s) to where?" | sed "s|~|$HOME|g")" - [ -z "$destdir" ] && exit + [ -z "$destdir" ] && destdir="$(sed "s/\s.*#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | dmenu -l 20 -i -p "Copy file(s) to where?" | sed "s|~|$HOME|g")" [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit - cp "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "sxiv" "$file copied to $destdir." & + cp "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file copied to $destdir." & ;; "m") - [ -z "$destdir" ] && destdir="$(sed "s/\s.*#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/directories | awk '{print $2}' | dmenu -l 20 -i -p "Move file(s) to where?" | sed "s|~|$HOME|g")" - [ -z "$destdir" ] && exit + [ -z "$destdir" ] && destdir="$(sed "s/\s.*#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | dmenu -l 20 -i -p "Move file(s) to where?" | sed "s|~|$HOME|g")" [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit mv "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file moved to $destdir." & ;; @@ -22,13 +20,14 @@ do "f") convert -flop "$file" "$file" ;; "y") - echo -n "$file" | xclip -selection clipboard && + printf "%s" "$file" | tr -d '\n' | xclip -selection clipboard && notify-send "$file copied to clipboard" & ;; "Y") - readlink -f "$file" | xclip -selection clipboard && + readlink -f "$file" | tr -d '\n' | xclip -selection clipboard && notify-send "$(readlink -f "$file") copied to clipboard" & ;; "d") [ "$(printf "No\\nYes" | dmenu -i -p "Really delete $file?")" = "Yes" ] && rm "$file" && notify-send "$file deleted." ;; - "g") ifinstalled gimp && gimp "$file" & ;; + "g") ifinstalled gimp && setsid -f gimp "$file" ;; + "i") notify-send "File information" "$(mediainfo "$file")" ;; esac done diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100644 index 18164dc..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1,511 +0,0 @@ -let mapleader ="," - -if ! filereadable(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim"')) - echo "Downloading junegunn/vim-plug to manage plugins..." - silent !mkdir -p ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/ - silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim - autocmd VimEnter * PlugInstall -endif - -call plug#begin(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/plugged"')) -Plug 'tpope/vim-surround' -Plug 'preservim/nerdtree' -Plug 'junegunn/goyo.vim' -Plug 'jreybert/vimagit' -Plug 'lukesmithxyz/vimling' -Plug 'vimwiki/vimwiki' -Plug 'vim-airline/vim-airline' -Plug 'tpope/vim-commentary' -Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'} -Plug 'ap/vim-css-color' -Plug 'lervag/vimtex' -Plug 'arcticicestudio/nord-vim' -Plug 'rhysd/vim-grammarous' -Plug 'jalvesaq/Nvim-R', {'branch': 'stable'} -Plug 'da-h/AirLatex.vim', {'do': ':UpdateRemotePlugins'} -call plug#end() - -set title -set bg=light -set go=a -set mouse=a -set nohlsearch -set clipboard+=unnamedplus -set noshowmode -set noruler -set laststatus=0 -set noshowcmd -set undofile -colorscheme nord - -" Some basics: - nnoremap c "_c - set nocompatible - filetype plugin on - syntax on - set encoding=utf-8 - set number relativenumber - -" Enable autocompletion: - set wildmode=longest,list,full -" Disables automatic commenting on newline: - autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o -" Perform dot commands over visual blocks: - vnoremap . :normal . -" Goyo plugin makes text more readable when writing prose: - map f :Goyo \| set bg=light \| set linebreak -" Spell-check set to o, 'o' for 'orthography': - map o :setlocal spell! spelllang=en_us -" Splits open at the bottom and right, which is non-retarded, unlike vim defaults. - set splitbelow splitright - -" Nerd tree - map n :NERDTreeToggle - autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif - if has('nvim') - let NERDTreeBookmarksFile = stdpath('data') . '/NERDTreeBookmarks' - else - let NERDTreeBookmarksFile = '~/.vim' . '/NERDTreeBookmarks' - endif - -" Nvim-R Defintions for R IDE -let g:R_assign = 3 " do (not) map _ to <- for assignment -vmap RDSendSelection -nmap RDSendLine -let R_nvimpager = 'tab' " display R docs in new tab -let R_start_libs = 'base,stats,graphics,grDevices,utils,methods' -let R_hl_term = 0 -" let Rout_more_colors = 1 - -" AirLatex -" your login-name -let g:AirLatexUsername="cookies:overleaf_session2=s%3A0TKey254b9595rC63gLQZsvRwg9b9564.CwNUf292zMuPmgNPAZ4z%2FOgLBTDk2ynd%2BgmPXJXmuYE" - -"This allows for change paste motion cp{motion} -nmap cp :set opfunc=ChangePasteg@ -function! ChangePaste(type, ...) - silent exe "normal! `[v`]\"_c" - silent exe "normal! p" -endfunction - -" optional: set server name -let g:AirLatexDomain="www.overleaf.com" - -let g:AirLatexAllowInsecure=0 - -" vimtex: -let g:vimtex_view_method = 'zathura' -let g:vimtex_compiler_latexmk = { 'build_dir' : '', - \ 'callback' : 1, - \ 'continuous' : 1, - \ 'executable' : 'latexmk', - \ 'hooks' : [], - \ 'options' : [ - \ '-pdflatex="pdflatex --shell-escape %O %S"', - \ '-verbose', - \ '-file-line-error', - \ '-synctex=1', - \ '-interaction=nonstopmode', - \ ], - \} - - -" vimling: - "nm d :call ToggleDeadKeys() - "imap d :call ToggleDeadKeys()a - "nm i :call ToggleIPA() - "imap i :call ToggleIPA()a - "nm q :call ToggleProse() - -" Shortcutting split navigation, saving a keypress: - map h - map j - map k - map l - -" Replace ex mode with gq - map Q gq - -" Check file in shellcheck: - map s :!clear && shellcheck -x % - -" Open my bibliography file in split - map b :!( st nvim $BIB & ) > /dev/null 2>&1 - map r :vsp$REFER - -" Replace all is aliased to S. - nnoremap S :%s//g - -" Compile document, be it groff/LaTeX/markdown/etc. - map c :w! \| !compiler "%" - -" Open corresponding .pdf/.html or preview - map p :!opout % - -" start browser-sync for easier refresh with web-dev - nnoremap bs :!browser-sync start --server --files . > /dev/null 2>&1 & -" Runs a script that cleans out tex build files whenever I close out of a .tex file. - autocmd VimLeave *.tex !texclear % - -" Ensure files are read as what I want: - let g:vimwiki_ext2syntax = {'.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'} - map v :VimwikiIndex - let g:vimwiki_list = [{'path': '~/vimwiki', 'syntax': 'markdown', 'ext': '.md'}] - autocmd BufRead,BufNewFile /tmp/calcurse*,~/.calcurse/notes/* set filetype=markdown - autocmd BufRead,BufNewFile *.ms,*.me,*.mom,*.man set filetype=groff - autocmd BufRead,BufNewFile *.tex set filetype=tex - -" Save file as sudo on files that require root permission - cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! - -" Enable Goyo by default for mutt writing - autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80 - autocmd BufRead,BufNewFile /tmp/neomutt* :Goyo | set bg=light - autocmd BufRead,BufNewFile /tmp/neomutt* map ZZ :Goyo\|x! - autocmd BufRead,BufNewFile /tmp/neomutt* map ZQ :Goyo\|q! - -" Automatically deletes all trailing whitespace and newlines at end of file on save. & reset cursor position - autocmd BufWritePre * let currPos = getpos(".") - autocmd BufWritePre * %s/\s\+$//e - autocmd BufWritePre * %s/\n\+\%$//e - autocmd BufWritePre *.[ch] %s/\%$/\r/e - autocmd BufWritePre * cal cursor(currPos[1], currPos[2]) - -" When shortcut files are updated, renew bash and ranger configs with new material: - autocmd BufWritePost bm-files,bm-dirs !shortcuts -" Run xrdb whenever Xdefaults or Xresources are updated. - autocmd BufRead,BufNewFile Xresources,Xdefaults,xresources,xdefaults set filetype=xdefaults - autocmd BufWritePost Xresources,Xdefaults,xresources,xdefaults !xrdb % -" Recompile dwmblocks on config edit. - autocmd BufWritePost ~/.local/src/dwmblocks/config.h !cd ~/.local/src/dwmblocks/; sudo make install && { killall -q dwmblocks;setsid -f dwmblocks } - -" Navigating with guides - inoremap /<++>"_c4l - vnoremap /<++>"_c4l - map /<++>"_c4l - - -" Turns off highlighting on the bits of code that are changed, so the line that is changed is highlighted but the actual text that has changed stands out on the line and is readable. -if &diff - highlight! link DiffText MatchParen -endif - -" Function for toggling the bottom statusbar: -let s:hidden_all = 1 -function! ToggleHiddenAll() - if s:hidden_all == 0 - let s:hidden_all = 1 - set noshowmode - set noruler - set laststatus=0 - set noshowcmd - else - let s:hidden_all = 0 - set showmode - set ruler - set laststatus=2 - set showcmd - endif -endfunction -nnoremap h :call ToggleHiddenAll() -"""LATEX - " Word count: - autocmd FileType tex map w :w !detex \| wc -w - " Code snippets - """autocmd FileType tex inoremap ,fr \begin{frame}\frametitle{}<++>\end{frame}<++>6kf}i - autocmd FileType tex inoremap ,fi \begin{fitch}\end{fitch}<++>3kA - autocmd FileType tex inoremap ,exe \begin{exe}\ex\end{exe}<++>3kA - autocmd FileType tex inoremap ,bf \textbf{}<++>T{i - autocmd FileType tex vnoremap , ``>2la}?\\{a - autocmd FileType tex inoremap ,it \textit{}<++>T{i - autocmd FileType tex inoremap ,ct \textcite{}<++>T{i - autocmd FileType tex inoremap ,cp \parencite{}<++>T{i - autocmd FileType tex inoremap ,glos {\gll<++>\\<++>\\\trans{``<++>''}}2k2bcw - autocmd FileType tex inoremap ,x \begin{xlist}\ex\end{xlist}kA - autocmd FileType tex inoremap ,ol \begin{enumerate}\end{enumerate}<++>3kA\item - autocmd FileType tex inoremap ,ul \begin{itemize}\end{itemize}<++>3kA\item - autocmd FileType tex inoremap ,li \item[] - autocmd FileType tex inoremap ,ref \ref{}<++>T{i - autocmd FileType tex inoremap ,tab \begin{tabular}<++>\end{tabular}<++>4kA{}i - autocmd FileType tex inoremap ,ot \begin{tableau}\inp{<++>}\const{<++>}<++><++>\end{tableau}<++>5kA{}i - autocmd FileType tex inoremap ,can \cand{}<++>T{i - autocmd FileType tex inoremap ,con \const{}<++>T{i - autocmd FileType tex inoremap ,v \vio{}<++>T{i - autocmd FileType tex inoremap ,a \href{}{<++>}<++>2T{i - autocmd FileType tex inoremap ,sc \textsc{}<++>T{i - autocmd FileType tex inoremap ,chap \chapter{}<++>2kf}i - autocmd FileType tex inoremap ,sec \section{}<++>2kf}i - autocmd FileType tex inoremap ,ssec \subsection{}<++>2kf}i - autocmd FileType tex inoremap ,sssec \subsubsection{}<++>2kf}i - autocmd FileType tex inoremap ,st F{i*f}i - autocmd FileType tex inoremap ,beg \begin{DELRN}<++>\end{DELRN}<++>4k0fR:MultipleCursorsFindDELRNc - autocmd FileType tex inoremap ,up /usepackageo\usepackage{}i - autocmd FileType tex nnoremap ,up /usepackageo\usepackage{}i - autocmd FileType tex inoremap ,tt \texttt{}<++>T{i - autocmd FileType tex inoremap ,bt {\blindtext} - autocmd FileType tex inoremap ,nu $\varnothing$ - autocmd FileType tex inoremap ,col \begin{columns}[T]\begin{column}{.5\textwidth}\end{column}\begin{column}{.5\textwidth}<++>\end{column}\end{columns}5kA - autocmd FileType tex inoremap ,rn (\ref{})<++>F}i - autocmd FileType tex inoremap ,fr \dfrac{}{<++>} <++> T{2hi - autocmd FileType tex inoremap ,sqrt \sqrt{}<++> T{i - autocmd FileType tex inoremap ,b( \left(\right)<++>T(i - autocmd FileType tex inoremap ,bb \mathbb{}<++>T{i - autocmd FileType tex inoremap ,b{ \left\{\right\}<++>T{i - autocmd FileType tex inoremap ,b[ \left[\right]<++>T[i - autocmd FileType tex inoremap ,rm \mathrm{}<++>T{i - autocmd FileType tex inoremap ,abs \left\|\right\|<++>3ba - autocmd FileType tex inoremap ,em \emph{}<++>T{i - autocmd FileType tex inoremap ,tabb \begin{tabbing}\hspace*{3cm}\=\hspace*{3cm}\= \kill\end{tabbing}<++>3kA - autocmd FileType tex inoremap ,txt \text{}<++>T{i - autocmd FileType tex inoremap ,sfr \sfrac{}{<++>}<++>2T{i - - - - -"""HTML - autocmd FileType html inoremap ,b <++>FbT>i - autocmd FileType html inoremap ,it <++>FeT>i - autocmd FileType html inoremap ,1

<++>2kf<++>2kf<++>2kf

<++>02kf>a - autocmd FileType html inoremap ,a href=""><++><++>14hi - autocmd FileType html inoremap ,e target="_blank"href=""><++><++>14hi - autocmd FileType html inoremap ,ul
<++>03kfo
  • F>a - autocmd FileType html inoremap ,ol
    <++>03kf<++>Fcf"a - autocmd FileType html inoremap ,td <++>Fdcit - autocmd FileType html inoremap ,tr <++>kf<++>Fhcit - autocmd FileType html inoremap ,tab
    O - autocmd FileType html inoremap ,gr F>a - autocmd FileType html inoremap ,rd F>a - autocmd FileType html inoremap ,yl F>a - autocmd FileType html inoremap ,dt
    <++>
    <++>2kcit - autocmd FileType html inoremap ,dl
    <++>3kcc - "autocmd FileType html inoremap & & - autocmd FileType html inoremap ,fr <++><++>2T/2hi - autocmd FileType html inoremap ,o โšฌ - autocmd FileType html inoremap ,cr โ™ฑ - autocmd FileType html inoremap ,pl

    Taa - autocmd FileType html inoremap ,pd

    Tea - autocmd FileType html inoremap ,dg ยฐC - "autocmd FileType html inoremap รก á - "autocmd FileType html inoremap รฉ é - "autocmd FileType html inoremap รญ í - "autocmd FileType html inoremap รณ ó - "autocmd FileType html inoremap รบ ú - "autocmd FileType html inoremap รค ä - "autocmd FileType html inoremap รซ ë - "autocmd FileType html inoremap รฏ ï - "autocmd FileType html inoremap รถ ö - "autocmd FileType html inoremap รผ ü - "autocmd FileType html inoremap รฃ ã - "autocmd FileType html inoremap แบฝ &etilde; - "autocmd FileType html inoremap ฤฉ ĩ - "autocmd FileType html inoremap รต õ - "autocmd FileType html inoremap ลฉ ũ - "autocmd FileType html inoremap รฑ ñ - "autocmd FileType html inoremap ร  à - "autocmd FileType html inoremap รจ è - "autocmd FileType html inoremap รฌ ì - "autocmd FileType html inoremap รฒ ò - "autocmd FileType html inoremap รน ù - - -""".bib - autocmd FileType bib inoremap ,a @article{author={<++>},year={<++>},title={<++>},journal={<++>},volume={<++>},pages={<++>},}<++>8kA,i - autocmd FileType bib inoremap ,b @book{author={<++>},year={<++>},title={<++>},publisher={<++>},}<++>6kA,i - autocmd FileType bib inoremap ,c @incollection{author={<++>},title={<++>},booktitle={<++>},editor={<++>},year={<++>},publisher={<++>},}<++>8kA,i - -"MARKDOWN - autocmd Filetype markdown,rmd map w yiWi[Ea](pa) - autocmd Filetype markdown,rmd inoremap ,n --- - autocmd Filetype markdown,rmd inoremap ,b ****<++>F*hi - autocmd Filetype markdown,rmd inoremap ,s ~~~~<++>F~hi - autocmd Filetype markdown,rmd inoremap ,e **<++>F*i - autocmd Filetype markdown,rmd inoremap ,h ====<++>F=hi - autocmd Filetype markdown,rmd inoremap ,i ![](<++>)<++>F[a - autocmd Filetype markdown,rmd inoremap ,a [](<++>)<++>F[a - autocmd Filetype markdown,rmd inoremap ,1 #<++>kA - autocmd Filetype markdown,rmd inoremap ,2 ##<++>kA - autocmd Filetype markdown,rmd inoremap ,3 ###<++>kA - autocmd Filetype markdown,rmd inoremap ,l -------- - autocmd Filetype markdown,rmd inoremap ,r ```{r}```2kO - autocmd Filetype markdown,rmd inoremap ,p ```{python}```2kO - autocmd Filetype mardown,rmd inoremap ,c ``````2kO - -""".xml - autocmd FileType xml inoremap ,e <++>isPermaLink="false"><++>:put=strftime('%a, %d %b %Y %H:%M:%S %z')kJA<++>]]>?<enter>cit - autocmd FileType xml inoremap ,a <a href="<++>"><++></a><++><Esc>F"ci" - - -"""I like COC -" Set internal encoding of vim, not needed on neovim, since coc.nvim using some -" unicode characters in the file autoload/float.vim -set encoding=utf-8 - -" TextEdit might fail if hidden is not set. -set hidden - -" Some servers have issues with backup files, see #649. -set nobackup -set nowritebackup - -" Give more space for displaying messages. -set cmdheight=2 - -" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable -" delays and poor user experience. -set updatetime=300 - -" Don't pass messages to |ins-completion-menu|. -set shortmess+=c - -" Always show the signcolumn, otherwise it would shift the text each time -" diagnostics appear/become resolved. -if has("nvim-0.5.0") || has("patch-8.1.1564") - " Recently vim can merge signcolumn and number column into one - set signcolumn=number -else - set signcolumn=yes -endif - -" Use tab for trigger completion with characters ahead and navigate. -" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by -" other plugin before putting this into your config. -inoremap <silent><expr> <TAB> - \ pumvisible() ? "\<C-n>" : - \ "\<tab>" -inoremap <expr><S-tab> pumvisible() ? "\<C-p>" : "\<C-h>" - -" Use <c-space> to trigger completion. -if has('nvim') - inoremap <silent><expr> <c-space> pumvisible() ? coc#_select_confirm() - \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" -else - inoremap <silent><expr> <c-@> coc#refresh() -endif - -" Make <CR> auto-select the first completion item and notify coc.nvim to -" format on enter, <cr> could be remapped by other vim plugin -inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm() - \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. -nmap <silent> [g <Plug>(coc-diagnostic-prev) -nmap <silent> ]g <Plug>(coc-diagnostic-next) - -" GoTo code navigation. -nmap <silent> gd <Plug>(coc-definition) -nmap <silent> gy <Plug>(coc-type-definition) -nmap <silent> gi <Plug>(coc-implementation) -nmap <silent> gr <Plug>(coc-references) - -" Use K to show documentation in preview window. -nnoremap <silent> K :call <SID>show_documentation()<CR> - -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('<cword>') - elseif (coc#rpc#ready()) - call CocActionAsync('doHover') - else - execute '!' . &keywordprg . " " . expand('<cword>') - endif -endfunction - -" Highlight the symbol and its references when holding the cursor. -autocmd CursorHold * silent call CocActionAsync('highlight') - -" Symbol renaming. -nmap <leader>rn <Plug>(coc-rename) - -" Formatting selected code. -xmap <leader>f <Plug>(coc-format-selected) -nmap <leader>f <Plug>(coc-format-selected) - -augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s). - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder. - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') -augroup end - -" Applying codeAction to the selected region. -" Example: `<leader>aap` for current paragraph -xmap <leader>a <Plug>(coc-codeaction-selected) -nmap <leader>a <Plug>(coc-codeaction-selected) - -" Remap keys for applying codeAction to the current buffer. -nmap <leader>ac <Plug>(coc-codeaction) -" Apply AutoFix to problem on the current line. -nmap <leader>qf <Plug>(coc-fix-current) - -" Run the Code Lens action on the current line. -nmap <leader>cl <Plug>(coc-codelens-action) - -" Map function and class text objects -" NOTE: Requires 'textDocument.documentSymbol' support from the language server. -xmap if <Plug>(coc-funcobj-i) -omap if <Plug>(coc-funcobj-i) -xmap af <Plug>(coc-funcobj-a) -omap af <Plug>(coc-funcobj-a) -xmap ic <Plug>(coc-classobj-i) -omap ic <Plug>(coc-classobj-i) -xmap ac <Plug>(coc-classobj-a) -omap ac <Plug>(coc-classobj-a) - -" Remap <C-f> and <C-b> for scroll float windows/popups. -if has('nvim-0.4.0') || has('patch-8.2.0750') - nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" - nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" - inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>" - inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>" - vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" - vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" -endif - -" Use CTRL-S for selections ranges. -" Requires 'textDocument/selectionRange' support of language server. -nmap <silent> <C-s> <Plug>(coc-range-select) -xmap <silent> <C-s> <Plug>(coc-range-select) - -" Add `:Format` command to format current buffer. -command! -nargs=0 Format :call CocActionAsync('format') - -" Add `:Fold` command to fold current buffer. -command! -nargs=? Fold :call CocAction('fold', <f-args>) - -" Add `:OR` command for organize imports of the current buffer. -command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') - -" Add (Neo)Vim's native statusline support. -" NOTE: Please see `:h coc-status` for integrations with external plugins that -" provide custom statusline: lightline.vim, vim-airline. -set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} - -" Mappings for CoCList -" Show all diagnostics. -nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr> -" Manage extensions. -nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr> -" Show commands. -nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr> -" Find symbol of current document. -nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr> -" Search workspace symbols. -nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr> -" Do default action for next item. -nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR> -" Do default action for previous item. -nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR> -" Resume latest coc list. -nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR> - -inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" - -inoremap <silent><expr> <NUL> coc#refresh() diff --git a/.config/openvpn/cfgs/Argentina.ovpn b/.config/openvpn/cfgs/Argentina.ovpn deleted file mode 100644 index 968ae07..0000000 --- a/.config/openvpn/cfgs/Argentina.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote ar1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Australia.ovpn b/.config/openvpn/cfgs/Australia.ovpn deleted file mode 100644 index 93525d1..0000000 --- a/.config/openvpn/cfgs/Australia.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote au1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Austria.ovpn b/.config/openvpn/cfgs/Austria.ovpn deleted file mode 100644 index 969d3f4..0000000 --- a/.config/openvpn/cfgs/Austria.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote at1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Belgium.ovpn b/.config/openvpn/cfgs/Belgium.ovpn deleted file mode 100644 index 71ce1a5..0000000 --- a/.config/openvpn/cfgs/Belgium.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote be1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Brazil.ovpn b/.config/openvpn/cfgs/Brazil.ovpn deleted file mode 100644 index 338541a..0000000 --- a/.config/openvpn/cfgs/Brazil.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote br1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Canada.ovpn b/.config/openvpn/cfgs/Canada.ovpn deleted file mode 100644 index 456ff0a..0000000 --- a/.config/openvpn/cfgs/Canada.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote ca1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Cyprus.ovpn b/.config/openvpn/cfgs/Cyprus.ovpn deleted file mode 100644 index c7ebde2..0000000 --- a/.config/openvpn/cfgs/Cyprus.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote cy1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Denmark.ovpn b/.config/openvpn/cfgs/Denmark.ovpn deleted file mode 100644 index 918db44..0000000 --- a/.config/openvpn/cfgs/Denmark.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote dk1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Finland.ovpn b/.config/openvpn/cfgs/Finland.ovpn deleted file mode 100644 index d13cec8..0000000 --- a/.config/openvpn/cfgs/Finland.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote fl1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/France.ovpn b/.config/openvpn/cfgs/France.ovpn deleted file mode 100644 index 00c686c..0000000 --- a/.config/openvpn/cfgs/France.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote fr1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Germany.ovpn b/.config/openvpn/cfgs/Germany.ovpn deleted file mode 100644 index 4a7e9e4..0000000 --- a/.config/openvpn/cfgs/Germany.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote de1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Hong Kong.ovpn b/.config/openvpn/cfgs/Hong Kong.ovpn deleted file mode 100644 index e6ba533..0000000 --- a/.config/openvpn/cfgs/Hong Kong.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote hk1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Hungary.ovpn b/.config/openvpn/cfgs/Hungary.ovpn deleted file mode 100644 index 1c46cce..0000000 --- a/.config/openvpn/cfgs/Hungary.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote hu1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/India.ovpn b/.config/openvpn/cfgs/India.ovpn deleted file mode 100644 index 62eb6f0..0000000 --- a/.config/openvpn/cfgs/India.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote in1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Ireland.ovpn b/.config/openvpn/cfgs/Ireland.ovpn deleted file mode 100644 index 195c49e..0000000 --- a/.config/openvpn/cfgs/Ireland.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote ie1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Israel.ovpn b/.config/openvpn/cfgs/Israel.ovpn deleted file mode 100644 index c977d8e..0000000 --- a/.config/openvpn/cfgs/Israel.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote il1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Italy.ovpn b/.config/openvpn/cfgs/Italy.ovpn deleted file mode 100644 index d1db794..0000000 --- a/.config/openvpn/cfgs/Italy.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote it1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Japan.ovpn b/.config/openvpn/cfgs/Japan.ovpn deleted file mode 100644 index 4e76f19..0000000 --- a/.config/openvpn/cfgs/Japan.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote jp1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Mexico.ovpn b/.config/openvpn/cfgs/Mexico.ovpn deleted file mode 100644 index 912a480..0000000 --- a/.config/openvpn/cfgs/Mexico.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote mx1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/NewZealand.ovpn b/.config/openvpn/cfgs/NewZealand.ovpn deleted file mode 100644 index bab65b2..0000000 --- a/.config/openvpn/cfgs/NewZealand.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote nz1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Norway.ovpn b/.config/openvpn/cfgs/Norway.ovpn deleted file mode 100644 index 1ec1719..0000000 --- a/.config/openvpn/cfgs/Norway.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote no1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Poland.ovpn b/.config/openvpn/cfgs/Poland.ovpn deleted file mode 100644 index b81e452..0000000 --- a/.config/openvpn/cfgs/Poland.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote pl1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Portugal.ovpn b/.config/openvpn/cfgs/Portugal.ovpn deleted file mode 100644 index 0b834ab..0000000 --- a/.config/openvpn/cfgs/Portugal.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote pt1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Romania.ovpn b/.config/openvpn/cfgs/Romania.ovpn deleted file mode 100644 index f22f026..0000000 --- a/.config/openvpn/cfgs/Romania.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote ro1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Singapore.ovpn b/.config/openvpn/cfgs/Singapore.ovpn deleted file mode 100644 index ff4b152..0000000 --- a/.config/openvpn/cfgs/Singapore.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote sg1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/South Africa.ovpn b/.config/openvpn/cfgs/South Africa.ovpn deleted file mode 100644 index 15c63a3..0000000 --- a/.config/openvpn/cfgs/South Africa.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote za1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Spain.ovpn b/.config/openvpn/cfgs/Spain.ovpn deleted file mode 100644 index 27c2724..0000000 --- a/.config/openvpn/cfgs/Spain.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote es1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Sweden.ovpn b/.config/openvpn/cfgs/Sweden.ovpn deleted file mode 100644 index 5067d5b..0000000 --- a/.config/openvpn/cfgs/Sweden.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote se1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/Switzerland.ovpn b/.config/openvpn/cfgs/Switzerland.ovpn deleted file mode 100644 index 0cc8fab..0000000 --- a/.config/openvpn/cfgs/Switzerland.ovpn +++ /dev/null @@ -1,47 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote ch1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -keepalive 10 120 -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -auth-user-pass -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/The Netherlands.ovpn b/.config/openvpn/cfgs/The Netherlands.ovpn deleted file mode 100644 index 493067f..0000000 --- a/.config/openvpn/cfgs/The Netherlands.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote nl1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/UK.ovpn b/.config/openvpn/cfgs/UK.ovpn deleted file mode 100644 index d17d63a..0000000 --- a/.config/openvpn/cfgs/UK.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote uk1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/US East.ovpn b/.config/openvpn/cfgs/US East.ovpn deleted file mode 100644 index 4db8c15..0000000 --- a/.config/openvpn/cfgs/US East.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote us1.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/openvpn/cfgs/US West.ovpn b/.config/openvpn/cfgs/US West.ovpn deleted file mode 100644 index caa85ff..0000000 --- a/.config/openvpn/cfgs/US West.ovpn +++ /dev/null @@ -1,45 +0,0 @@ -client -dev tun -proto udp -cipher AES-256-CBC -remote-cert-tls server -remote us2.safervpn.net 1194 # - Your server IP and OpenVPN Port -resolv-retry infinite -nobind -tun-mtu 1500 -tun-mtu-extra 32 -mssfix 1450 -persist-key -persist-tun -comp-lzo no -verb 3 -<ca> ------BEGIN CERTIFICATE----- -MIIE1jCCA76gAwIBAgIJAOnRq4FWsZgYMA0GCSqGSIb3DQEBCwUAMIGiMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzERMA8G -A1UEChMIU2FmZXJWUE4xETAPBgNVBAsTCFNhZmVyVlBOMREwDwYDVQQDEwhTYWZl -clZQTjERMA8GA1UEKRMIU2FmZXJWUE4xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRA -c2FmZXJ2cG4uY29tMB4XDTE3MDgzMTA5NDEyM1oXDTI3MDgyOTA5NDEyM1owgaIx -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2Nv -MREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJWUE4xETAPBgNVBAMT -CFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqGSIb3DQEJARYUc3Vw -cG9ydEBzYWZlcnZwbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCqNV7oJZrUqD/mBSWlKi/sGRE2y3Yphs5m/vmmS4GPrc8lyaI1idhv44MGZ0i1 -XCkJFZmaVQk7NUz5npz9hcnxN3MiZd/5Kv8Vo4aQkL0xQ7euto71LIgTqbJvTJjW -kowsVVgartGK2ewfCd+KV6k5oBImlDdSnLW1pq82Kg+YcnXxdaFc8RpNWdBbdxBe -tb4k6JcoZHuk9Zq5gi5Nnhtjc6lheCRzTGZ2hslDfJ58yMpR0jTMC3Rd+G+sM0q3 -/gEEEW34ckUgCb5j6Kq35LUlnuonnViBnEzFR/MTizMARFj7VYkzOpxSsxJ6Epan -JP8Zgbz81z4A822hosakl7kTAgMBAAGjggELMIIBBzAdBgNVHQ4EFgQUKSnUrJLQ -omrGvdncxKkKT7Rxrj8wgdcGA1UdIwSBzzCBzIAUKSnUrJLQomrGvdncxKkKT7Rx -rj+hgaikgaUwgaIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM -U2FuRnJhbmNpc2NvMREwDwYDVQQKEwhTYWZlclZQTjERMA8GA1UECxMIU2FmZXJW -UE4xETAPBgNVBAMTCFNhZmVyVlBOMREwDwYDVQQpEwhTYWZlclZQTjEjMCEGCSqG -SIb3DQEJARYUc3VwcG9ydEBzYWZlcnZwbi5jb22CCQDp0auBVrGYGDAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB704c0nixfDuJ7OiFBUmkhmDUFEIhl -D35wxlthKYRs8tBzetZEipFGdyUOwuWiuwG/BuOwuP7fPS9uP4u4EPKjA5kL/Z/V -E743q50PS4L/kT3ZFyUrcisUKajAr5Gu+o6rzA6F4+QYu26iBbKewNrrb+riF1wR -GKthc6W++Awt+oVyKtVNyS2QokuBFcSu5IiVsfGqJ8TmffvFBqKUUjWopmP+qiYR -8+0qwHing/S/C9S72ZxhM9DF3et1dXFuHf/69YL8/u36tyKMqy/JVhByAlc87cRI -tcRGaviUttBeSw4j1Y6XrycVkhn4LzizWrqrmfCikhx26MrIeWK5JxYL ------END CERTIFICATE----- -</ca> diff --git a/.config/pass-git-helper/git-pass-mapping.ini b/.config/pass-git-helper/git-pass-mapping.ini index 3c4e784..89b03de 100644 --- a/.config/pass-git-helper/git-pass-mapping.ini +++ b/.config/pass-git-helper/git-pass-mapping.ini @@ -1,3 +1,11 @@ +[DEFAULT] +username_extractor=regex_search +regex_username=^user: (.*)$ + [github.com] -Username=AlexBocken +username=AlexBocken target=dev/Github_Token + +[bocken.org] +username=Alexander +target=dev/personal_gitea diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf index c528cb4..7d6a56c 100644 --- a/.config/picom/picom.conf +++ b/.config/picom/picom.conf @@ -9,6 +9,7 @@ # shadow = false #shadow = true; +opacity-rule = ["10:class_g = 'Dunst'"]; # The blur radius for shadows, in pixels. (defaults to 12) # shadow-radius = 12 @@ -140,7 +141,7 @@ focus-exclude = [ "class_g = 'Cairo-clock'" ]; # Parameters for background blurring, see the *BLUR* section for more information. blur-method = "dual_kawase" -blur-size = 10 +blur-size = 1 # # blur-deviation = false # @@ -150,7 +151,7 @@ blur-strength = 7 # Bad in performance, with driver-dependent behavior. # The name of the switch may change without prior notifications. # -blur-background =false +blur-background = false # Blur background of windows when the window frame is not opaque. # Implies: @@ -166,7 +167,7 @@ blur-background-fixed = false # Specify the blur convolution kernel, with the following format: # example: -blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +#blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; # #blur-kern = "" #blur-kern = "5x5box"; diff --git a/.config/pinentry/preexec b/.config/pinentry/preexec new file mode 100755 index 0000000..93603c7 --- /dev/null +++ b/.config/pinentry/preexec @@ -0,0 +1,5 @@ +#!/hint/sh + +# Define additional functionality for pinentry. For example +test -e /usr/lib/libgcr-base-3.so.1 && exec /usr/bin/pinentry-gnome3 "$@" +#test -e /usr/lib/libQt5Widgets.so.5 && exec /usr/bin/pinentry-qt "$@" diff --git a/.config/pipewire/pipewire.conf b/.config/pipewire/pipewire.conf new file mode 100644 index 0000000..b8a3672 --- /dev/null +++ b/.config/pipewire/pipewire.conf @@ -0,0 +1,247 @@ +# Daemon config file for PipeWire version "0.3.40" # +# +# Copy and edit this file in /etc/pipewire for system-wide changes +# or in ~/.config/pipewire for local changes. + +context.properties = { + ## Configure properties in the system. + #library.name.system = support/libspa-support + #context.data-loop.library.name.system = support/libspa-support + #support.dbus = true + #link.max-buffers = 64 + link.max-buffers = 16 # version < 3 clients can't handle more + #mem.warn-mlock = false + #mem.allow-mlock = true + #mem.mlock-all = false + #clock.power-of-two-quantum = true + #log.level = 2 + #cpu.zero.denormals = true + + core.daemon = true # listening for socket connections + core.name = pipewire-0 # core name and socket name + + ## Properties for the DSP configuration. + #default.clock.rate = 48000 + #default.clock.allowed-rates = [ 48000 ] + #default.clock.quantum = 1024 + #default.clock.min-quantum = 32 + #default.clock.max-quantum = 8192 + #default.video.width = 640 + #default.video.height = 480 + #default.video.rate.num = 25 + #default.video.rate.denom = 1 + # + # These overrides are only applied when running in a vm. + vm.overrides = { + default.clock.min-quantum = 1024 + } +} + +context.spa-libs = { + #<factory-name regex> = <library-name> + # + # Used to find spa factory names. It maps an spa factory name + # regular expression to a library name that should contain + # that factory. + # + audio.convert.* = audioconvert/libspa-audioconvert + api.alsa.* = alsa/libspa-alsa + api.v4l2.* = v4l2/libspa-v4l2 + api.libcamera.* = libcamera/libspa-libcamera + api.bluez5.* = bluez5/libspa-bluez5 + api.vulkan.* = vulkan/libspa-vulkan + api.jack.* = jack/libspa-jack + support.* = support/libspa-support + #videotestsrc = videotestsrc/libspa-videotestsrc + #audiotestsrc = audiotestsrc/libspa-audiotestsrc +} + +context.modules = [ + #{ name = <module-name> + # [ args = { <key> = <value> ... } ] + # [ flags = [ [ ifexists ] [ nofail ] ] + #} + # + # Loads a module with the given parameters. + # If ifexists is given, the module is ignored when it is not found. + # If nofail is given, module initialization failures are ignored. + # + + # Uses RTKit to boost the data thread priority. + { name = libpipewire-module-rtkit + args = { + #nice.level = -11 + #rt.prio = 88 + #rt.time.soft = 2000000 + #rt.time.hard = 2000000 + } + flags = [ ifexists nofail ] + } + + # Set thread priorities without using RTKit. + #{ name = libpipewire-module-rt + # args = { + # nice.level = -11 + # rt.prio = 88 + # rt.time.soft = 2000000 + # rt.time.hard = 2000000 + # } + # flags = [ ifexists nofail ] + #} + + # The native communication protocol. + { name = libpipewire-module-protocol-native } + + # The profile module. Allows application to access profiler + # and performance data. It provides an interface that is used + # by pw-top and pw-profiler. + { name = libpipewire-module-profiler } + + # Allows applications to create metadata objects. It creates + # a factory for Metadata objects. + { name = libpipewire-module-metadata } + + # Creates a factory for making devices that run in the + # context of the PipeWire server. + { name = libpipewire-module-spa-device-factory } + + # Creates a factory for making nodes that run in the + # context of the PipeWire server. + { name = libpipewire-module-spa-node-factory } + + # Allows creating nodes that run in the context of the + # client. Is used by all clients that want to provide + # data to PipeWire. + { name = libpipewire-module-client-node } + + # Allows creating devices that run in the context of the + # client. Is used by the session manager. + { name = libpipewire-module-client-device } + + # The portal module monitors the PID of the portal process + # and tags connections with the same PID as portal + # connections. + { name = libpipewire-module-portal + flags = [ ifexists nofail ] + } + + # The access module can perform access checks and block + # new clients. + { name = libpipewire-module-access + args = { + # access.allowed to list an array of paths of allowed + # apps. + #access.allowed = [ + # /usr/bin/pipewire-media-session + #] + + # An array of rejected paths. + #access.rejected = [ ] + + # An array of paths with restricted access. + #access.restricted = [ ] + + # Anything not in the above lists gets assigned the + # access.force permission. + #access.force = flatpak + } + } + + # Makes a factory for wrapping nodes in an adapter with a + # converter and resampler. + { name = libpipewire-module-adapter } + + # Makes a factory for creating links between ports. + { name = libpipewire-module-link-factory } + + # Provides factories to make session manager objects. + { name = libpipewire-module-session-manager } +] + +context.objects = [ + #{ factory = <factory-name> + # [ args = { <key> = <value> ... } ] + # [ flags = [ [ nofail ] ] + #} + # + # Creates an object from a PipeWire factory with the given parameters. + # If nofail is given, errors are ignored (and no object is created). + # + #{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } } + #{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] } + #{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } } + #{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } } + #{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } } + #{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } } + + # A default dummy driver. This handles nodes marked with the "node.always-driver" + # property when no other driver is currently active. JACK clients need this. + { factory = spa-node-factory + args = { + factory.name = support.node.driver + node.name = Dummy-Driver + node.group = pipewire.dummy + priority.driver = 20000 + } + } + { factory = spa-node-factory + args = { + factory.name = support.node.driver + node.name = Freewheel-Driver + priority.driver = 19000 + node.group = pipewire.freewheel + node.freewheel = true + } + } + # This creates a new Source node. It will have input ports + # that you can link, to provide audio for this source. + #{ factory = adapter + # args = { + # factory.name = support.null-audio-sink + # node.name = "my-mic" + # node.description = "Microphone" + # media.class = "Audio/Source/Virtual" + # audio.position = "FL,FR" + # } + #} + + # This creates a single PCM source device for the given + # alsa device path hw:0. You can change source to sink + # to make a sink in the same way. + #{ factory = adapter + # args = { + # factory.name = api.alsa.pcm.source + # node.name = "alsa-source" + # node.description = "PCM Source" + # media.class = "Audio/Source" + # api.alsa.path = "hw:0" + # api.alsa.period-size = 1024 + # api.alsa.headroom = 0 + # api.alsa.disable-mmap = false + # api.alsa.disable-batch = false + # audio.format = "S16LE" + # audio.rate = 48000 + # audio.channels = 2 + # audio.position = "FL,FR" + # } + #} +] + +context.exec = [ + #{ path = <program-name> [ args = "<arguments>" ] } + # + # Execute the given program with arguments. + # + # You can optionally start the session manager here, + # but it is better to start it as a systemd service. + # Run the session manager with -h for options. + # + { path = "/usr/bin/wireplumber" args = "" } + # + # You can optionally start the pulseaudio-server here as well + # but it is better to start it as a systemd service. + # It can be interesting to start another daemon here that listens + # on another address with the -a option (eg. -a tcp:4713). + # + { path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" } +] diff --git a/.config/qutebrowser/autoconfig.yml b/.config/qutebrowser/autoconfig.yml new file mode 100644 index 0000000..c66a0d4 --- /dev/null +++ b/.config/qutebrowser/autoconfig.yml @@ -0,0 +1,10 @@ +# If a config.py file exists, this file is ignored unless it's explicitly loaded +# via config.load_autoconfig(). For more information, see: +# https://github.com/qutebrowser/qutebrowser/blob/main/doc/help/configuring.asciidoc#loading-autoconfigyml +# DO NOT edit this file by hand, qutebrowser will overwrite it. +# Instead, create a config.py - see :help for details. + +config_version: 2 +settings: + content.notifications.enabled: + https://stream.bocken.org: true diff --git a/.config/qutebrowser/bookmarks/urls b/.config/qutebrowser/bookmarks/urls deleted file mode 100644 index b8d9dcc..0000000 --- a/.config/qutebrowser/bookmarks/urls +++ /dev/null @@ -1,8 +0,0 @@ -https://ostechnix.com/setup-japanese-language-environment-arch-linux/ How To Setup Japanese Language Environment In Arch Linux -https://fsspx.today/chapel/zaitzkofen/ Zaitzkofen - Chapel app -https://www.derbackprofi.at/rezept/rezeptsammlung/detail/handkaisersemmel-2017.html Der BACKPROFI -ย Rezeptsammlung -https://www.wagners-kulinarium.at/die-wiener-kaisersemmel/ Die Wiener Kaisersemmel - Familienrezept - Wagners Kulinarium -https://www.vatican.va/content/john-paul-ii/de/apost_letters/2002/documents/hf_jp-ii_apl_20021016_rosarium-virginis-mariae.html Rosarium Virginis Mariae รผber den Rosenkranz (16. Oktober 2002) | Johannes Paul II. -https://traditionalcatholicprayers.com/2019/11/12/how-to-pray-the-rosary-in-latin/ How to Pray the Rosary in Latin | Traditional Catholic Prayers -https://www.einfachbacken.de/rezepte/krapfen-klassiker-selber-machen?portions=12 Krapfen - Klassiker selber machen | Einfach Backen -https://www.backyardchickens.com/articles/how-to-process-your-quail-including-gory-pictures.75834/ How to Process your Quail (Including Gory Pictures) | BackYard Chickens - Learn How to Raise Chickens diff --git a/.config/qutebrowser/config.py b/.config/qutebrowser/config.py index c1e6ff4..a90853c 100644 --- a/.config/qutebrowser/config.py +++ b/.config/qutebrowser/config.py @@ -61,18 +61,14 @@ c.statusbar.show = "always" c.tabs.show = "never" c.tabs.tabs_are_windows = True -from os import environ -from os.path import join -if not(config_home:= environ["XDG_CONFIG_HOME"]): - config_home = expanduser("~/.config") -local_startpage : str = join(config_home, "qutebrowser/startpage.html") +local_startpage : str = "https://bocken.org" c.url.start_pages = local_startpage c.url.default_page = local_startpage c.url.open_base_url = True -c.url.searchengines = { - "DEFAULT": "https://duckduckgo.com/?q={}", +searchengines = { + "brave": "https://search.brave.com/search?q={}&source=web", "cactus": "https://latin.cactus2000.de/index.php?q={}", "ddg": "https://duckduckgo.com/?q={}", "dw": "https://www.dwds.de/wb/{}", @@ -83,7 +79,9 @@ c.url.searchengines = { "oz": "http://www.ozdic.com/collocation-dictionary/{}", "re": "https://bocken.org/rezepte/?q={}", "yt": "https://www.youtube.com/results?search_query={}" - } + } +searchengines["DEFAULT"] = searchengines["brave"] +c.url.searchengines = searchengines c.zoom.default = "160%" diff --git a/.config/qutebrowser/dracula/.gitignore b/.config/qutebrowser/dracula/.gitignore deleted file mode 100644 index 4949fe8..0000000 --- a/.config/qutebrowser/dracula/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/bookmarks/ -quickmarks diff --git a/.config/qutebrowser/dracula/INSTALL.md b/.config/qutebrowser/dracula/INSTALL.md deleted file mode 100644 index 7c61e78..0000000 --- a/.config/qutebrowser/dracula/INSTALL.md +++ /dev/null @@ -1,31 +0,0 @@ -### [qutebrowser](https://www.qutebrowser.org/) - -#### Install using Git - -If you are a git user, you can install the theme and keep up to date by cloning the repo: - - $ git clone https://github.com/dracula/qutebrowser-dracula-theme.git dracula - -#### Install manually - -Download using the [GitHub .zip download](https://github.com/dracula/qutebrowser.git) option and unzip. - -#### Activating theme - -- Find your *[qutebrowser configuration directory](https://www.qutebrowser.org/doc/help/configuring.html#configpy)* (see e.g. `:version` in qutebrowser). This folder should be located at the "config" location listed on qute://version, which is typically ~/.config/qutebrowser/ on Linux, ~/.qutebrowser/ on macOS, and %APPDATA%/qutebrowser/config/ on Windows. -- Move the repository folder to `dracula` inside the configuration directory. -- In your [qutebrowser config.py file](https://www.qutebrowser.org/doc/help/configuring.html#configpy), include the following: - -```python -import dracula.draw - -# Load existing settings made via :set -config.load_autoconfig() - -dracula.draw.blood(c, { - 'spacing': { - 'vertical': 6, - 'horizontal': 8 - } -}) -``` diff --git a/.config/qutebrowser/dracula/__init__.py b/.config/qutebrowser/dracula/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.config/qutebrowser/dracula/__pycache__/__init__.cpython-38.pyc b/.config/qutebrowser/dracula/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 35d495a..0000000 Binary files a/.config/qutebrowser/dracula/__pycache__/__init__.cpython-38.pyc and /dev/null differ diff --git a/.config/qutebrowser/dracula/__pycache__/draw.cpython-311.pyc b/.config/qutebrowser/dracula/__pycache__/draw.cpython-311.pyc new file mode 100644 index 0000000..e60c0b1 Binary files /dev/null and b/.config/qutebrowser/dracula/__pycache__/draw.cpython-311.pyc differ diff --git a/.config/qutebrowser/dracula/__pycache__/draw.cpython-38.pyc b/.config/qutebrowser/dracula/__pycache__/draw.cpython-38.pyc deleted file mode 100644 index 9c26f68..0000000 Binary files a/.config/qutebrowser/dracula/__pycache__/draw.cpython-38.pyc and /dev/null differ diff --git a/.config/qutebrowser/dracula/readme.md b/.config/qutebrowser/dracula/readme.md deleted file mode 100644 index 1e914ea..0000000 --- a/.config/qutebrowser/dracula/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# Dracula for [qutebrowser](https://www.qutebrowser.org/) - -> A dark theme for [qutebrowser](https://www.qutebrowser.org/). - -![Screenshot](./screenshot.png) - -## Install - -All instructions can be found at [draculatheme.com/qutebrowser](https://draculatheme.com/qutebrowser). - -## Team - -This theme is maintained by the following person(s) and a bunch of [awesome contributors](https://github.com/dracula/qutebrowser/graphs/contributors). - -[![Evan Nagle](https://avatars2.githubusercontent.com/u/556537?s=88&v=4&s=70)](https://github.com/evannagle) | ---- | -[Evan Nagle](https://github.com/evannagle) | - -## License - -[MIT License](./LICENSE) diff --git a/.config/qutebrowser/dracula/screenshot.png b/.config/qutebrowser/dracula/screenshot.png deleted file mode 100644 index 5dbcba4..0000000 Binary files a/.config/qutebrowser/dracula/screenshot.png and /dev/null differ diff --git a/.config/qutebrowser/quickmarks b/.config/qutebrowser/quickmarks deleted file mode 100644 index a44c039..0000000 --- a/.config/qutebrowser/quickmarks +++ /dev/null @@ -1,8 +0,0 @@ -ys https://www.youtube.com/feed/subscriptions -moo https://moodle-app2.let.ethz.ch/my/ -fit https://boards.4channel.org/fit/ -wsg https://boards.4channel.org/wsg/ -bant https://boards.4chan.org/bant/ -mystudies https://www.lehrbetrieb.ethz.ch/myStudies/studWillkommen.view -out https://boards.4channel.org/out/ -g https://boards.4channel.org/g/ diff --git a/.config/qutebrowser/startpage.html b/.config/qutebrowser/startpage.html deleted file mode 100644 index 20d3cd8..0000000 --- a/.config/qutebrowser/startpage.html +++ /dev/null @@ -1,9 +0,0 @@ -<!DOCTYPE html> - -<html dir="ltr" lang="en"> -<head> - <title>Startpage - - - - diff --git a/.config/ranger/colorschemes/__pycache__/__init__.cpython-310.opt-1.pyc b/.config/ranger/colorschemes/__pycache__/__init__.cpython-310.opt-1.pyc new file mode 100644 index 0000000..364cc83 Binary files /dev/null and b/.config/ranger/colorschemes/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/.config/ranger/colorschemes/__pycache__/__init__.cpython-310.pyc b/.config/ranger/colorschemes/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..364cc83 Binary files /dev/null and b/.config/ranger/colorschemes/__pycache__/__init__.cpython-310.pyc differ diff --git a/.config/ranger/colorschemes/__pycache__/__init__.cpython-311.opt-1.pyc b/.config/ranger/colorschemes/__pycache__/__init__.cpython-311.opt-1.pyc new file mode 100644 index 0000000..40e36b6 Binary files /dev/null and b/.config/ranger/colorschemes/__pycache__/__init__.cpython-311.opt-1.pyc differ diff --git a/.config/ranger/colorschemes/__pycache__/__init__.cpython-311.pyc b/.config/ranger/colorschemes/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..b803b7e Binary files /dev/null and b/.config/ranger/colorschemes/__pycache__/__init__.cpython-311.pyc differ diff --git a/.config/ranger/colorschemes/__pycache__/default.cpython-310.opt-1.pyc b/.config/ranger/colorschemes/__pycache__/default.cpython-310.opt-1.pyc new file mode 100644 index 0000000..ff7c6ae Binary files /dev/null and b/.config/ranger/colorschemes/__pycache__/default.cpython-310.opt-1.pyc differ diff --git a/.config/ranger/colorschemes/__pycache__/default.cpython-310.pyc b/.config/ranger/colorschemes/__pycache__/default.cpython-310.pyc new file mode 100644 index 0000000..ff7c6ae Binary files /dev/null and b/.config/ranger/colorschemes/__pycache__/default.cpython-310.pyc differ diff --git a/.config/ranger/colorschemes/__pycache__/default.cpython-311.opt-1.pyc b/.config/ranger/colorschemes/__pycache__/default.cpython-311.opt-1.pyc new file mode 100644 index 0000000..2b7f5fe Binary files /dev/null and b/.config/ranger/colorschemes/__pycache__/default.cpython-311.opt-1.pyc differ diff --git a/.config/ranger/colorschemes/__pycache__/default.cpython-311.pyc b/.config/ranger/colorschemes/__pycache__/default.cpython-311.pyc new file mode 100644 index 0000000..c1079fc Binary files /dev/null and b/.config/ranger/colorschemes/__pycache__/default.cpython-311.pyc differ diff --git a/.config/ranger/rc.conf b/.config/ranger/rc.conf index dc1d7de..e104a0c 100644 --- a/.config/ranger/rc.conf +++ b/.config/ranger/rc.conf @@ -281,16 +281,12 @@ set save_tabs_on_exit false # Enable scroll wrapping - moving down while on the last item will wrap around to # the top and vice versa. set wrap_scroll false -map gNe cd ~/eth/negotiation -map gMe cd ~/eth/mech2 -map gWu cd ~/eth/wuf2 -map gIn cd ~/eth/inno -map gDa cd ~/eth/data -map gRt cd ~/eth/rt2 -map gCh cd ~/eth/chemie +map grm cd ~/eth/hrm +map gpm cd ~/eth/pm +map gre cd ~/eth/recht +map grt cd ~/eth/rt2 map gvl cd vl map gus cd รผs -map gco cd coll map gz cd zsf @@ -741,4 +737,4 @@ tmap eval -q fm.ui.taskview.task_remove() tmap redraw_window tmap taskview_close copytmap q Q w -map shell st ranger '%d' & disown +map shell st ranger '%d' & disown > /dev/null 2>&1 diff --git a/.config/ranger/rifle.conf b/.config/ranger/rifle.conf index 6aa6e9a..7375f67 100644 --- a/.config/ranger/rifle.conf +++ b/.config/ranger/rifle.conf @@ -54,38 +54,42 @@ # Rarely installed browsers get higher priority; It is assumed that if you # install a rare browser, you probably use it. Firefox/konqueror/w3m on the # other hand are often only installed as fallback browsers. -ext x?html?, has surf, X, flag f = surf -- file://"$1" -ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@" -ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@" -ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@" -ext x?html?, has dwb, X, flag f = dwb -- "$@" -ext x?html?, has jumanji, X, flag f = jumanji -- "$@" -ext x?html?, has luakit, X, flag f = luakit -- "$@" -ext x?html?, has uzbl, X, flag f = uzbl -- "$@" -ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@" -ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@" -ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@" -ext x?html?, has midori, X, flag f = midori -- "$@" -ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@" -ext x?html?, has chromium, X, flag f = chromium -- "$@" -ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@" -ext x?html?, has opera, X, flag f = opera -- "$@" -ext x?html?, has firefox, X, flag f = firefox -- "$@" -ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@" -ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@" -ext x?html?, has epiphany, X, flag f = epiphany -- "$@" -ext x?html?, has konqueror, X, flag f = konqueror -- "$@" -ext x?html?, has elinks, terminal = elinks "$@" -ext x?html?, has links2, terminal = links2 "$@" -ext x?html?, has links, terminal = links "$@" -ext x?html?, has lynx, terminal = lynx -- "$@" -ext x?html?, has w3m, terminal = w3m "$@" +# Commented out since i want to open htmls in EDITOR +#ext x?html?, has surf, X, flag f = surf -- file://"$1" +#ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@" +#ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@" +#ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@" +#ext x?html?, has dwb, X, flag f = dwb -- "$@" +#ext x?html?, has jumanji, X, flag f = jumanji -- "$@" +#ext x?html?, has luakit, X, flag f = luakit -- "$@" +#ext x?html?, has uzbl, X, flag f = uzbl -- "$@" +#ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@" +#ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@" +#ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@" +#ext x?html?, has midori, X, flag f = midori -- "$@" +#ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@" +#ext x?html?, has chromium, X, flag f = chromium -- "$@" +#ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@" +#ext x?html?, has opera, X, flag f = opera -- "$@" +#ext x?html?, has firefox, X, flag f = firefox -- "$@" +#ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@" +#ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@" +#ext x?html?, has epiphany, X, flag f = epiphany -- "$@" +#ext x?html?, has konqueror, X, flag f = konqueror -- "$@" +#ext x?html?, has elinks, terminal = elinks "$@" +#ext x?html?, has links2, terminal = links2 "$@" +#ext x?html?, has links, terminal = links "$@" +#ext x?html?, has lynx, terminal = lynx -- "$@" +#ext x?html?, has w3m, terminal = w3m "$@" #------------------------------------------- # Misc #------------------------------------------- #Import calendar files into calcurse +ext sc, has sc-im, X, flag t = sc-im -- "$@" mime text/calendar, has calcurse, flag f = calendaradd "$@" +name ^.*\.bands\.agr$, has xmgrace, X, flag f = xmgrace -- "$@" + # Define the "editor" for text files as first action mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@" @@ -93,6 +97,8 @@ mime ^text, label pager = "$PAGER" -- "$@" !mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@" !mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@" +ext rs = $EDITOR -- "$1" + ext 1 = man "$1" ext s[wmf]c, has zsnes, X = zsnes "$1" ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1" @@ -155,6 +161,7 @@ ext pdf, has okular, X, flag f = okular -- "$@" ext pdf, has epdfview, X, flag f = epdfview -- "$@" ext pdf, has qpdfview, X, flag f = qpdfview "$@" ext pdf, has open, X, flag f = open "$@" +mime application/pdf, has zathura, X, flag f = zathura -- "$@" ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER" @@ -172,14 +179,18 @@ ext djvu, has djview, X, flag f = djview -- "$@" ext epub|mobi|cbz, has zathura, X, flag f = zathura -- "$@" ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@" +mime application/x-bittorrent, has tremc, flag f = tremc -- "$@" #------------------------------------------- # Image Viewing: #------------------------------------------- mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@" mime ^image/svg, has display, X, flag f = display -- "$@" +mime ^image/x-xcf, has gimp, X, flag f = gimp -- "$@" mime ^image, has pqiv, X, flag f = pqiv -- "$@" -mime ^image, has sxiv, X, flag f = sxiv -s f -- "$@" +mime ^image, has nsxiv, nsxiv-rifle, X, flag f = nsxiv-rifle -- "$@" +mime ^image, has nsxiv, X, flag f = nsxiv-rifle -- "$@" +mime ^image, has sxiv, X, flag f = sxiv -- "$@" mime ^image, has feh, X, flag f = feh -- "$@" mime ^image, has mirage, X, flag f = mirage -- "$@" mime ^image, has ristretto, X, flag f = ristretto "$@" @@ -189,7 +200,6 @@ mime ^image, has nomacs, X, flag f = nomacs -- "$@" mime ^image, has geeqie, X, flag f = geeqie -- "$@" mime ^image, has gwenview, X, flag f = gwenview -- "$@" mime ^image, has gimp, X, flag f = gimp -- "$@" -ext xcf, X, flag f = gimp -- "$@" #------------------------------------------- # Archives diff --git a/.config/ranger/scope.sh b/.config/ranger/scope.sh index 9c4420a..95ffdb9 100755 --- a/.config/ranger/scope.sh +++ b/.config/ranger/scope.sh @@ -128,9 +128,9 @@ handle_image() { local mimetype="${1}" case "${mimetype}" in ## SVG - # image/svg+xml|image/svg) - # convert -- "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6 - # exit 1;; + image/svg+xml|image/svg) + convert -- "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6 + exit 1;; ## DjVu image/vnd.djvu) diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc new file mode 100644 index 0000000..c7221ce --- /dev/null +++ b/.config/shell/aliasrc @@ -0,0 +1,62 @@ +#!/bin/sh + +# Use neovim for vim if present. +[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d" + +# Use $XINITRC variable if file exists. +[ -f "$XINITRC" ] && alias startx="startx $XINITRC" + +# Use $MBSYNCRC variable if file exists. +[ -f "$MBSYNCRC" ] && alias mbsync="mbsync -c $MBSYNCRC" + +# sudo not required for some system commands +for command in mount umount sv pacman updatedb su shutdown poweroff reboot ; do + alias $command="sudo $command" +done; unset command + +# Verbosity and settings that you pretty much just always are going to want. +alias \ + cp="cp -iv" \ + mv="mv -iv" \ + rm="rm -vI" \ + bc="bc -ql" \ + mkd="mkdir -pv" \ + yt="yt-dlp --embed-metadata -i" \ + yta="yt -x -f bestaudio/best" \ + ffmpeg="ffmpeg -hide_banner" + +# Colorize commands when possible. +alias \ + ls="ls -hN --color=auto --group-directories-first" \ + grep="grep --color=auto" \ + diff="diff --color=auto" \ + ccat="highlight --out-format=ansi" \ + ip="ip -color=auto" + +# These common commands are just too long! Abbreviate them. +alias \ + ka="killall" \ + g="git" \ + trem="transmission-remote" \ + YT="youtube-viewer" \ + sdn="shutdown -h now" \ + e="$EDITOR" \ + v="$EDITOR" \ + p="pacman" \ + xi="sudo xbps-install" \ + xr="sudo xbps-remove -R" \ + xq="xbps-query" \ + z="zathura" + +alias \ + lf="lfub" \ + magit="nvim -c MagitOnly" \ + ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" \ + weath="less -S ${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport"\ + glog="git log --all --graph --decorate"\ + clog="config log --all --graph --decorate" + +# force config location +alias \ + config="/usr/bin/git --git-dir=/home/alex/.local/share/git_dotfiles --work-tree=$HOME"\ + abook="abook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook" diff --git a/.config/shell/bm-dirs b/.config/shell/bm-dirs new file mode 100644 index 0000000..9d212ec --- /dev/null +++ b/.config/shell/bm-dirs @@ -0,0 +1,14 @@ +# You can add comments to these files with # +cac ${XDG_CACHE_HOME:-$HOME/.cache} +cf ${XDG_CONFIG_HOME:-$HOME/.config} +D ${XDG_DOWNLOAD_DIR:-$HOME/Downloads} +d ${XDG_DOCUMENTS_DIR:-$HOME/Documents} +dt ${XDG_DATA_HOME:-$HOME/.local/share} +rr $HOME/.local/src +h $HOME +m ${XDG_MUSIC_DIR:-$HOME/Music} +mn /mnt +pp ${XDG_PICTURES_DIR:-$HOME/Pictures} +sc $HOME/.local/bin +src $HOME/.local/src +vv ${XDG_VIDEOS_DIR:-$HOME/Videos} diff --git a/.config/shell/bm-files b/.config/shell/bm-files new file mode 100644 index 0000000..2e8864b --- /dev/null +++ b/.config/shell/bm-files @@ -0,0 +1,23 @@ +# These files automatically update when edited/saved in vim: + +# keys filename description +bf ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files # This file, a list of bookmarked files +bd ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs # A list of bookmarked directories similar to this file +cfx ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources # Colors, themes and variables for X11 +cfb ~/.local/src/dwmblocks/config.h # dwmblocks: the status bar for dwm + + +# These do not update automatically, but on the next new instance of a program: + +cfv ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim # vim/neovim config +cfz $ZDOTDIR/.zshrc # zsh (shell) config +cfa ${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc # aliases used by zsh (and potentially other shells) +cfp ${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile # profile file for login settings for zsh +cfm ${XDG_CONFIG_HOME:-$HOME/.config}/mutt/muttrc # mutt (email client) config +cfn ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/config # newsboat (RSS reader) +cfu ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls # RSS urls for newsboat +cfmb ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/bindings # ncmpcpp (music player) keybinds file +cfmc ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/config # ncmpcpp (music player) config +cfl ${XDG_CONFIG_HOME:-$HOME/.config}/lf/lfrc # lf (file browser) config +cfL ${XDG_CONFIG_HOME:-$HOME/.config}/lf/scope # lf's scope/preview file +cfX ${XDG_CONFIG_HOME:-$HOME/.config}/nsxiv/exec/key-handler # nsxiv (image viewer) key/script handler diff --git a/.config/inputrc b/.config/shell/inputrc similarity index 100% rename from .config/inputrc rename to .config/shell/inputrc diff --git a/.config/shell/profile b/.config/shell/profile new file mode 100644 index 0000000..3cd17e2 --- /dev/null +++ b/.config/shell/profile @@ -0,0 +1,117 @@ +#!/bin/zsh + +# zsh profile file. Runs on login. Environmental variables are set here. + +# If you don't plan on reverting to bash, you can remove the link in ~/.profile +# to clean up. + +# Adds `~/.local/bin` to $PATH +export PATH="$PATH:$(du "$HOME/.local/bin" | cut -f2 | tr '\n' ':' | sed 's/:*$//')" + +# Default programs: +export EDITOR="nvim" +export PAGER="less" +export TERMINAL="st" +export BROWSER="qutebrowser" +export READER="zathura" +export FILE="ranger" +export PIC="sxiv" +export SHELL="zsh" + +# ~/ Clean-up: +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_CACHE_HOME="$HOME/.cache" +export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc" + +# XDG USER DIRECOTRIES +export XDG_DESKTOP_DIR="$HOME" +export XDG_DOCUMENTS_DIR="$HOME/dox" +export XDG_DOWNLOAD_DIR="$HOME/dls" +export XDG_MUSIC_DIR="$HOME/msc" +export XDG_PICTURES_DIR="$HOME/pics" +export XDG_VIDEOS_DIR="$HOME/vids" + + +#Various stuff +export BIB="$XDG_DOCUMENTS_DIR/bib.bib" + +#export XDG_RUNTIME_DIR="$HOME/.cache/xdg_run" # Messes up Audio for some reason, might be useful to figure out in the future how to fix +#export XAUTHORITY="$HOME/.cache/xdg_run/Xauthority" # This line will break some DMs. +export CHROOT="${HOME}/.local/src/chroot" +export NOTMUCH_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/notmuch-config" +export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" +export LESSHISTFILE="-" +export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc" +export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/inputrc" +export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" +export ALSA_CONFIG_PATH="$XDG_CONFIG_HOME/alsa/asoundrc" +export GNUPGHOME="$XDG_DATA_HOME/gnupg" +#export GNUPGHOME="$HOME/.gnupg" +export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default" +export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi" +export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store" +export PASSWORD_STORE_GPG_OPTS='--homedir=/home/alex/.local/share/gnupg' +export TMUX_TMPDIR="$XDG_RUNTIME_DIR" +export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android" +export CARGO_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/cargo" +export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go" +export GOMODCACHE="$XDG_CACHE_HOME/go/mod" +export ANSIBLE_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/ansible/ansible.cfg" +export UNISON="$XDG_DATA_HOME/unison" +export HISTFILE="$XDG_DATA_HOME/history" +export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config" +export ELECTRUMDIR="$XDG_DATA_HOME/electrum" +export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc" +export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history" +export MAILCAPS="${XDG_CONFIG_HOME:-$HOME/.config}/mutt/mailcap" +export CABAL_CONFIG="$XDG_CONFIG_HOME"/cabal/config +export CABAL_DIR="$XDG_CACHE_HOME"/cabal +export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle +export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter +export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter +export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java +export JULIA_DEPOT_PATH="$XDG_DATA_HOME/julia:$JULIA_DEPOT_PATH" +export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages +export MAXIMA_USERDIR="$XDG_CONFIG_HOME"/maxima +export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat +export TEXMFHOME=$XDG_DATA_HOME/texmf +export TEXMFVAR=$XDG_CACHE_HOME/texlive/texmf-var +export TEXMFCONFIG=$XDG_CONFIG_HOME/texlive/texmf-config +export R_ENVIRON_USER=$XDG_CONFIG_HOME/R/rEnviron + + +# Other program settings: +export DICS="/usr/share/stardict/dic/" +export SUDO_ASKPASS="$HOME/.local/bin/dmenupass" +export FZF_DEFAULT_OPTS="--layout=reverse --height 40%" +export LESS=-R +export LESS_TERMCAP_mb="$(printf '%b' '')" +export LESS_TERMCAP_md="$(printf '%b' '')" +export LESS_TERMCAP_me="$(printf '%b' '')" +export LESS_TERMCAP_so="$(printf '%b' '')" +export LESS_TERMCAP_se="$(printf '%b' '')" +export LESS_TERMCAP_us="$(printf '%b' '')" +export LESS_TERMCAP_ue="$(printf '%b' '')" +export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" +export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. +export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. +export _JAVA_AWT_WM_NONREPARENTING=1 # Java doesn't understand tiling windows +export AWT_TOOLKIT="MToolkit wmname LG3D" #May have to install wmname + +# Settings for Japanese input +#export GTK_IM_MODULE='ibus' +#export QT_IM_MODULE='ibus' +#export XMODIFIERS=@im='ibus' +#GTK_IM_MODULE=fcitx +#QT_IM_MODULE=fcitx +#XMODIFIERS=@im=fcitx +#ibus-daemon -drx #Toolbar for anthy + +[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 + +# Start graphical server on tty1 if not already running. +[ "$(tty)" = "/dev/tty1" ] && ! ps -e | grep -qw Xorg && exec startx $XINITRC + +# Switch escape and caps if tty and no passwd required: +sudo -n loadkeys ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/ttymaps.kmap 2>/dev/null diff --git a/.config/shell/shortcutrc b/.config/shell/shortcutrc new file mode 100644 index 0000000..b7dd579 --- /dev/null +++ b/.config/shell/shortcutrc @@ -0,0 +1,30 @@ +# vim: filetype=sh +alias cac="cd /home/alex/.cache && ls -A" \ +cf="cd /home/alex/.config && ls -A" \ +D="cd /home/alex/Downloads && ls -A" \ +d="cd /home/alex/Documents && ls -A" \ +dt="cd /home/alex/.local/share && ls -A" \ +rr="cd /home/alex/.local/src && ls -A" \ +h="cd /home/alex && ls -A" \ +m="cd /home/alex/Music && ls -A" \ +mn="cd /mnt && ls -A" \ +pp="cd /home/alex/Pictures && ls -A" \ +sc="cd /home/alex/.local/bin && ls -A" \ +src="cd /home/alex/.local/src && ls -A" \ +vv="cd /home/alex/Videos && ls -A" \ +bf="$EDITOR /home/alex/.config/shell/bm-files" \ +bd="$EDITOR /home/alex/.config/shell/bm-dirs" \ +cfx="$EDITOR /home/alex/.config/x11/xresources" \ +cfb="$EDITOR ~/.local/src/dwmblocks/config.h" \ +cfv="$EDITOR /home/alex/.config/nvim/init.vim" \ +cfz="$EDITOR /home/alex/.config/zsh/.zshrc" \ +cfa="$EDITOR /home/alex/.config/shell/aliasrc" \ +cfp="$EDITOR /home/alex/.config/shell/profile" \ +cfm="$EDITOR /home/alex/.config/mutt/muttrc" \ +cfn="$EDITOR /home/alex/.config/newsboat/config" \ +cfu="$EDITOR /home/alex/.config/newsboat/urls" \ +cfmb="$EDITOR /home/alex/.config/ncmpcpp/bindings" \ +cfmc="$EDITOR /home/alex/.config/ncmpcpp/config" \ +cfl="$EDITOR /home/alex/.config/lf/lfrc" \ +cfL="$EDITOR /home/alex/.config/lf/scope" \ +cfX="$EDITOR /home/alex/.config/nsxiv/exec/key-handler" \ diff --git a/.config/shell/zshnameddirrc b/.config/shell/zshnameddirrc new file mode 100644 index 0000000..504b1e7 --- /dev/null +++ b/.config/shell/zshnameddirrc @@ -0,0 +1,29 @@ +hash -d cac=/home/alex/.cache +hash -d cf=/home/alex/.config +hash -d D=/home/alex/Downloads +hash -d d=/home/alex/Documents +hash -d dt=/home/alex/.local/share +hash -d rr=/home/alex/.local/src +hash -d h=/home/alex +hash -d m=/home/alex/Music +hash -d mn=/mnt +hash -d pp=/home/alex/Pictures +hash -d sc=/home/alex/.local/bin +hash -d src=/home/alex/.local/src +hash -d vv=/home/alex/Videos +hash -d bf=/home/alex/.config/shell/bm-files +hash -d bd=/home/alex/.config/shell/bm-dirs +hash -d cfx=/home/alex/.config/x11/xresources +hash -d cfb=~/.local/src/dwmblocks/config.h +hash -d cfv=/home/alex/.config/nvim/init.vim +hash -d cfz=/home/alex/.config/zsh/.zshrc +hash -d cfa=/home/alex/.config/shell/aliasrc +hash -d cfp=/home/alex/.config/shell/profile +hash -d cfm=/home/alex/.config/mutt/muttrc +hash -d cfn=/home/alex/.config/newsboat/config +hash -d cfu=/home/alex/.config/newsboat/urls +hash -d cfmb=/home/alex/.config/ncmpcpp/bindings +hash -d cfmc=/home/alex/.config/ncmpcpp/config +hash -d cfl=/home/alex/.config/lf/lfrc +hash -d cfL=/home/alex/.config/lf/scope +hash -d cfX=/home/alex/.config/nsxiv/exec/key-handler diff --git a/.config/shortcutrc b/.config/shortcutrc deleted file mode 100644 index 3081b9d..0000000 --- a/.config/shortcutrc +++ /dev/null @@ -1,2 +0,0 @@ -# vim: filetype=sh -#alias diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc deleted file mode 100644 index 31a1cf5..0000000 --- a/.config/sxhkd/sxhkdrc +++ /dev/null @@ -1,3 +0,0 @@ -# Basic binds -~ctrl + space - dunstctl close diff --git a/.config/transmission-daemon/settings.json b/.config/transmission-daemon/settings.json deleted file mode 100644 index 515fe9b..0000000 --- a/.config/transmission-daemon/settings.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "alt-speed-down": 50, - "alt-speed-enabled": false, - "alt-speed-time-begin": 540, - "alt-speed-time-day": 127, - "alt-speed-time-enabled": false, - "alt-speed-time-end": 1020, - "alt-speed-up": 50, - "bind-address-ipv4": "0.0.0.0", - "bind-address-ipv6": "::", - "blocklist-enabled": false, - "blocklist-url": "http://www.example.com/blocklist", - "cache-size-mb": 4, - "dht-enabled": true, - "download-dir": "/home/alex/dls", - "download-queue-enabled": true, - "download-queue-size": 15, - "encryption": 2, - "idle-seeding-limit": 30, - "idle-seeding-limit-enabled": false, - "incomplete-dir": "/home/alex/dls", - "incomplete-dir-enabled": false, - "lpd-enabled": false, - "message-level": 2, - "peer-congestion-algorithm": "", - "peer-id-ttl-hours": 6, - "peer-limit-global": 200, - "peer-limit-per-torrent": 50, - "peer-port": 51413, - "peer-port-random-high": 65535, - "peer-port-random-low": 49152, - "peer-port-random-on-start": false, - "peer-socket-tos": "default", - "pex-enabled": true, - "port-forwarding-enabled": true, - "preallocation": 1, - "prefetch-enabled": true, - "queue-stalled-enabled": true, - "queue-stalled-minutes": 30, - "ratio-limit": 2, - "ratio-limit-enabled": false, - "rename-partial-files": true, - "rpc-authentication-required": false, - "rpc-bind-address": "0.0.0.0", - "rpc-enabled": true, - "rpc-host-whitelist": "", - "rpc-host-whitelist-enabled": true, - "rpc-password": "{3d07ccc105cd3fb50502a091e4636a21569d1b0ekXDsxTuV", - "rpc-port": 9091, - "rpc-url": "/transmission/", - "rpc-username": "", - "rpc-whitelist": "127.0.0.1,::1", - "rpc-whitelist-enabled": true, - "scrape-paused-torrents-enabled": true, - "script-torrent-done-enabled": false, - "script-torrent-done-filename": "", - "seed-queue-enabled": false, - "seed-queue-size": 10, - "speed-limit-down": 100, - "speed-limit-down-enabled": false, - "speed-limit-up": 0, - "speed-limit-up-enabled": true, - "start-added-torrents": true, - "trash-original-torrent-files": false, - "umask": 18, - "upload-slots-per-torrent": 14, - "utp-enabled": true -} diff --git a/.config/transmission/dht.dat b/.config/transmission/dht.dat deleted file mode 100644 index 7037be6..0000000 Binary files a/.config/transmission/dht.dat and /dev/null differ diff --git a/.config/transmission/settings.json b/.config/transmission/settings.json deleted file mode 100644 index eadf725..0000000 --- a/.config/transmission/settings.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "alt-speed-down": 50, - "alt-speed-enabled": false, - "alt-speed-time-begin": 540, - "alt-speed-time-day": 127, - "alt-speed-time-enabled": false, - "alt-speed-time-end": 1020, - "alt-speed-up": 50, - "bind-address-ipv4": "0.0.0.0", - "bind-address-ipv6": "::", - "blocklist-enabled": false, - "blocklist-updates-enabled": true, - "blocklist-url": "http://www.example.com/blocklist", - "cache-size-mb": 4, - "compact-view": false, - "details-window-height": 755, - "details-window-width": 898, - "dht-enabled": true, - "download-dir": "/home/alex/dls", - "download-queue-enabled": true, - "download-queue-size": 1, - "encryption": 1, - "idle-seeding-limit": 30, - "idle-seeding-limit-enabled": false, - "incomplete-dir": "/home/alex/dls", - "incomplete-dir-enabled": false, - "inhibit-desktop-hibernation": false, - "lpd-enabled": false, - "main-window-height": 1569, - "main-window-is-maximized": 0, - "main-window-width": 1580, - "main-window-x": 3848, - "main-window-y": 47, - "message-level": 2, - "open-dialog-dir": "/home/alex", - "peer-congestion-algorithm": "", - "peer-id-ttl-hours": 6, - "peer-limit-global": 200, - "peer-limit-per-torrent": 50, - "peer-port": 51413, - "peer-port-random-high": 65535, - "peer-port-random-low": 49152, - "peer-port-random-on-start": false, - "peer-socket-tos": "default", - "pex-enabled": true, - "port-forwarding-enabled": true, - "preallocation": 1, - "prefetch-enabled": true, - "queue-stalled-enabled": true, - "queue-stalled-minutes": 30, - "ratio-limit": 2, - "ratio-limit-enabled": false, - "recent-download-dir-1": "/home/alex", - "rename-partial-files": true, - "rpc-authentication-required": false, - "rpc-bind-address": "0.0.0.0", - "rpc-enabled": false, - "rpc-host-whitelist": "", - "rpc-host-whitelist-enabled": true, - "rpc-password": "{aba01cb2975d64d146c5dfb84f2458b01063cc55NiUxAaqs", - "rpc-port": 9091, - "rpc-url": "/transmission/", - "rpc-username": "", - "rpc-whitelist": "127.0.0.1", - "rpc-whitelist-enabled": true, - "scrape-paused-torrents-enabled": true, - "script-torrent-done-enabled": false, - "script-torrent-done-filename": "", - "seed-queue-enabled": false, - "seed-queue-size": 10, - "show-backup-trackers": false, - "show-extra-peer-details": true, - "show-filterbar": true, - "show-notification-area-icon": false, - "show-options-window": true, - "show-statusbar": true, - "show-toolbar": true, - "show-tracker-scrapes": true, - "sort-mode": "sort-by-name", - "sort-reversed": false, - "speed-limit-down": 100, - "speed-limit-down-enabled": false, - "speed-limit-up": 100, - "speed-limit-up-enabled": false, - "start-added-torrents": true, - "statusbar-stats": "session-transfer", - "torrent-added-notification-enabled": true, - "torrent-complete-notification-enabled": true, - "torrent-complete-sound-command": "canberra-gtk-play -i complete-download -d 'transmission torrent downloaded'", - "torrent-complete-sound-enabled": true, - "trash-can-enabled": true, - "trash-original-torrent-files": false, - "umask": 18, - "upload-slots-per-torrent": 14, - "user-has-given-informed-consent": true, - "utp-enabled": true, - "watch-dir": "/home/alex", - "watch-dir-enabled": false -} diff --git a/.config/transmission/stats.json b/.config/transmission/stats.json deleted file mode 100644 index 43bc925..0000000 --- a/.config/transmission/stats.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "downloaded-bytes": 8816381636, - "files-added": 51, - "seconds-active": 9627, - "session-count": 7, - "uploaded-bytes": 482195634 -} diff --git a/.config/tremc/settings.cfg b/.config/tremc/settings.cfg deleted file mode 100644 index cd7ba41..0000000 --- a/.config/tremc/settings.cfg +++ /dev/null @@ -1,108 +0,0 @@ -[Connection] -password = -username = alex -port = 443 -host = new.bocken.org -path = /transmission/rpc -ssl = True - -[Sorting] -# Set startup torrent list sort order. Possible sort keys are: -# name, addedDate, percentDone, seeders, leechers, sizeWhenDone, status, -# uploadedEver, rateUpload, rateDownload, uploadRatio, peersConnected, -# downloadDir, mainTrackerDomain. -# Prepend ':' for reversed sort. -# Examples: -# -# order = :name -# Sorts by torrent name in reversed alphabetical order. -# -# order = sizeWhenDone -# Sorts by torrent size, small to large. -order = name - -[Filtering] -# Set startup torrent list filter. Possible filter keys are: -# uploading, downloading, active, paused, seeding, incomplete, verifying, -# private, isolated, selected, honors. -# Use 'invert=True' to shoe only torrents not matching filter. -filter = -invert = False - -[Misc] -lines_per_torrent = 3 -torrentname_is_progressbar = True -file_viewer = dl_torrent_and_view.sh %%s -file_open_in_terminal = True -view_selected = False -rdns = True -geoip_database = /xyz -torrent_numbers = True - -[Colors] -# Set colors of various interface elements. -# Each element has background and foreground color. -# Each color is default or one of the eight curses colors: -# Black, White, Red, Green, Blue, Cyan, Yellow, Magenta. -# Default is the default background or foreground color. -header = bg:white,fg:black -footer = bg:white,fg:black -title_seed = bg:green,fg:black -title_incomplete = bg:black,fg:white -title_download = bg:blue,fg:black -title_idle = bg:cyan,fg:black -title_verify = bg:magenta,fg:black -title_paused = bg:yellow,fg:black -title_error = bg:red,fg:default -download_rate = bg:default,fg:blue -upload_rate = bg:default,fg:red -eta+ratio = bg:default,fg:default -filter_status = bg:black,fg:red -multi_filter_status = bg:default,fg:blue -selection = bg:white,fg:black -window = bg:black,fg:white -dialog = bg:black,fg:white -dialog_important = bg:black,fg:red -file_prio_high = bg:black,fg:red -file_prio_normal = bg:black,fg:default -file_prio_low = bg:black,fg:yellow -file_prio_off = bg:black,fg:blue - -[Profiles] -# Define filter/sort profiles. See README.md for details. -# Examples: -# -# profile1 = regex#=ubuntu#=:uploadRatio -# A profile named '1' shows only torrents whose name contains ubuntu (case -# insensitive match), sorted by upload ratio from large to small. -# This profile can be selected from the profile menu or by pressing '1'. -# -# profile2 = incomplete#=#=percentDone -# A profile named '2' shows incomplete torrents sorted by progress. -# -# profileABC = regex#=ubuntu#=:incomplete#= #& # location#=/torrents#=peersConnected -# A profile named 'ABC' shows only torrents that satisfy one of the -# conditions: -# 1. Name contains ubuntu and complete; -# 2. Download location is /torrents. -# The torrent list is sorted by number of peers connected. -# This profile can be selected from the profile menu. - -# Show all torrents, sort by name: -profile0 = - - -[ListKeys] -# Configure keys in torrent list only. -backslash = select_search_torrent_fulltext -gt = select_search_torrent_regex_fulltext -y = toggle_torrent_numbers - -[DetailsKeys] -# Configure keys in torrent details only. -y = view_file - -[CommonKeys] -# Configure keys globally. -Y = verify_torrent -v = move_torrent diff --git a/.config/X11/Xres_casting b/.config/x11/Xres_casting similarity index 100% rename from .config/X11/Xres_casting rename to .config/x11/Xres_casting diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc new file mode 100755 index 0000000..879e130 --- /dev/null +++ b/.config/x11/xinitrc @@ -0,0 +1,20 @@ +#!/bin/sh + +# xinitrc runs automatically when you run startx. + +# There are some small but important commands that need to be run when we start +# the graphical environment. There is a link to this file in ~/.xprofile +# because that file is run automatically if someone uses a display manager +# (login screen) and so they are needed there. To prevent doubling up commands, +# I source them here with the line below. + +if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/x11/xprofile" ]; then + . "${XDG_CONFIG_HOME:-$HOME/.config}/x11/xprofile" +else + . "$HOME/.xprofile" +fi + +rm -f /tmp/killdwm +until [ -f /tmp/killdwm ]; do + dwm +done diff --git a/.config/x11/xprofile b/.config/x11/xprofile new file mode 100755 index 0000000..8954009 --- /dev/null +++ b/.config/x11/xprofile @@ -0,0 +1,24 @@ +#!/bin/sh + +# This file runs when a DM logs you into a graphical session. +# If you use startx/xinit like a Chad, this file will also be sourced. + +dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY +xrdb -merge ~/.config/x11/Xresources +#mpv --no-video "$XDG_CONFIG_HOME/windows_xp_startup.ogg" +setbg & # set the background with the `setbg` script + +xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources & xrdbpid=$! # Uncomment to use Xresources colors/settings on startup +autostart="picom mpd dunst unclutter dwmblocks update_musicbar pipewire remapd" + +for program in $autostart; do + pidof -s "$program" || setsid -f "$program" +done >/dev/null 2>&1 +xrandr --auto +xrandr --dpi 180 # Set DPI. User may want to use a larger number for larger screens. +xrandr --listactivemonitors | grep -qE '1920.*x1080.*HDMI-1-3$' && ( xrandr --output HDMI-1-3 --scale 1.666666666666 && setbg ) # set scale for 2nd monitor if connected + +echo "$DBUS_SESSION_BUS_ADDRESS" > /tmp/dbus_session_bus_address + +# Ensure that xrdb has finished running before moving on to start the WM/DE. +[ -n "$xrdbpid" ] && wait "$xrdbpid" diff --git a/.config/X11/Xresources b/.config/x11/xresources similarity index 95% rename from .config/X11/Xresources rename to .config/x11/xresources index 0514e7f..3b79510 100644 --- a/.config/X11/Xresources +++ b/.config/x11/xresources @@ -1,6 +1,7 @@ !! Transparency (0-1): *.alpha: 0.8 st.alpha: 0.1 +Nsxiv.window.alpha: 0.1 *.dpi: 180 @@ -31,7 +32,7 @@ st.alpha: 0.1 Sxiv.font: monospace-10 Sxiv.txtcolor: nord6 -Sxiv.background: bblack +Sxiv.background: nord0 Sxiv.foreground: nord6 xterm*saveLines: 2000 diff --git a/.config/xinitrc b/.config/xinitrc deleted file mode 100755 index 13fe486..0000000 --- a/.config/xinitrc +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# xinitrc runs automatically when you run startx. - -# There are some small but important commands that need to be run when we start -# the graphical environment. I keep those commands in ~/config/xprofile because -# that file is run automatically if someone uses a display manager (login -# screen) and so they are needed there. To prevent doubling up commands, I -# source them here with the line below. - -# export STATUSBAR="i3blocks" # Uncomment this line when using i3. - -[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/xprofile" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/xprofile" 2>&1 /dev/null - -# Your default LARBS WM is determined in your `~/.profile` on login. Here we -# run the proper command to run when the graphical environment starts. - -# Comment/uncomment these lines depending on what wm you want to use. Also -# check the i3blocks line above. -rm -f /tmp/killdwm -while ! [ -f /tmp/killdwm ]; do - dwm -done -#ssh-agent dwm -# ssh-agent i3 diff --git a/.config/xprofile b/.config/xprofile deleted file mode 100755 index dd15698..0000000 --- a/.config/xprofile +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# This file runs when a DM logs you into a graphical session. -# If you use startx/xinit like a Chad, this file will also be sourced. - -# This file's true location is in ~/.config/xprofile and a link exists to it in -# ~/.xprofile. If you do not use a DM, you may remove the link to it to have a -# cleaner home. - -# Fix Gnome Apps Slow Start due to failing services -# Add this when you include flatpak in your system -dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY -xrdb -merge ${XDG_CONFIG_HOME:-$HOME/.config}/X11/Xresources # Uncomment to use Xresources colors/settings on startup -mpd & # music player daemon-you might prefer it as a service though -remaps & # run the remaps script, switching caps/esc and more; check it for more info -setbg & # set the background with the `setbg` script -#wal -i ${XDG_CONFIG_HOME:-$HOME/.config}/wall.png -b '#000000' -#xcompmgr & # xcompmgr for transparency (and apparently to reduce tearing) -picom --experimental-backends & #ME NEED BLUR -dunst & # dunst for notifications -dwmblocks 2> /dev/null & -xset r rate 300 50 & # Speed xrate up -xbanish -t 2 & -element-desktop --hidden & -transmission-daemon & -ibus-daemon -drx & -#echo "$HOME/.config/mpd/state" | entr -nps pkill -RTMIN+11 dwmblocks & -xrandr --listactivemonitors | grep -q '1920.*x1080.*HDMI-1$' && ( xrandr --output HDMI-1 --scale 1.5 && setbg ) # set scale for 2nd monitor if connected -redshift & # Bluefilter based on time -keynav & # emulate mouse clicks with vim-bindings and starting with Ctrl+; -update_musicbar & # update music statusbar the instant state changes diff --git a/.config/zsh/.zcompdump b/.config/zsh/.zcompdump new file mode 100644 index 0000000..c676519 --- /dev/null +++ b/.config/zsh/.zcompdump @@ -0,0 +1,1849 @@ +#files: 827 version: 5.9 + +_comps=( +'-' '_precommand' +'.' '_source' +'5g' '_go' +'5l' '_go' +'6g' '_go' +'6l' '_go' +'8g' '_go' +'8l' '_go' +'a2ps' '_a2ps' +'aaaa' '_hosts' +'aap' '_aap' +'abcde' '_abcde' +'ack' '_ack' +'ack2' '_ack' +'ack-grep' '_ack' +'ack-standalone' '_ack' +'acpi' '_acpi' +'acpitool' '_acpitool' +'acroread' '_acroread' +'adb' '_adb' +'add-zle-hook-widget' '_add-zle-hook-widget' +'add-zsh-hook' '_add-zsh-hook' +'admin' '_sccs' +'ali' '_mh' +'alias' '_alias' +'amaya' '_webbrowser' +'analyseplugin' '_analyseplugin' +'animate' '_imagemagick' +'anno' '_mh' +'ansible' '_ansible' +'ansible-config' '_ansible' +'ansible-console' '_ansible' +'ansible-doc' '_ansible' +'ansible-galaxy' '_ansible' +'ansible-inventory' '_ansible' +'ansible-playbook' '_ansible' +'ansible-pull' '_ansible' +'ansible-vault' '_ansible' +'ant' '_ant' +'antiword' '_antiword' +'aodh' '_openstack' +'aoss' '_precommand' +'apache2ctl' '_apachectl' +'apachectl' '_apachectl' +'aplay' '_alsa-utils' +'apm' '_apm' +'appletviewer' '_java' +'apropos' '_man' +'apvlv' '_pdf' +'arduino-ctags' '_ctags' +'arecord' '_alsa-utils' +'arena' '_webbrowser' +'_arguments' '__arguments' +'arp' '_arp' +'arping' '_arping' +'-array-value-' '_value' +'asciidoctor' '_asciidoctor' +'asciinema' '_asciinema' +'ash' '_sh' +'-assign-parameter-' '_assign' +'at' '_at' +'atq' '_at' +'atrm' '_at' +'attr' '_attr' +'augtool' '_augeas' +'autoload' '_typeset' +'avahi-browse' '_avahi' +'avahi-browse-domains' '_avahi' +'avahi-resolve' '_avahi' +'avahi-resolve-address' '_avahi' +'avahi-resolve-host-name' '_avahi' +'awk' '_awk' +'b2sum' '_md5sum' +'barbican' '_openstack' +'base32' '_base64' +'base64' '_base64' +'basename' '_basename' +'basenc' '_basenc' +'bash' '_bash' +'bat' '_bat' +'batch' '_at' +'baz' '_baz' +'beep' '_beep' +'bg' '_jobs_bg' +'bibtex' '_bibtex' +'bindkey' '_bindkey' +'bison' '_bison' +'bluetoothctl' '_bluetoothctl' +'bmake' '_make' +'bogofilter' '_bogofilter' +'bogotune' '_bogofilter' +'bogoutil' '_bogofilter' +'bootctl' '_bootctl' +'bpython' '_bpython' +'bpython2' '_bpython' +'bpython2-gtk' '_bpython' +'bpython2-urwid' '_bpython' +'bpython3' '_bpython' +'bpython3-gtk' '_bpython' +'bpython3-urwid' '_bpython' +'bpython-gtk' '_bpython' +'bpython-urwid' '_bpython' +'-brace-parameter-' '_brace_parameter' +'brctl' '_brctl' +'bsdgrep' '_grep' +'bsdtar' '_tar' +'btdownloadcurses' '_bittorrent' +'btdownloadgui' '_bittorrent' +'btdownloadheadless' '_bittorrent' +'btlaunchmany' '_bittorrent' +'btlaunchmanycurses' '_bittorrent' +'btmakemetafile' '_bittorrent' +'btreannounce' '_bittorrent' +'btrename' '_bittorrent' +'btrfs' '_btrfs' +'btshowmetainfo' '_bittorrent' +'bttrack' '_bittorrent' +'buildhash' '_ispell' +'builtin' '_builtin' +'bun' '_bun' +'bunzip2' '_bzip2' +'burst' '_mh' +'busctl' '_busctl' +'bzcat' '_bzip2' +'bzegrep' '_grep' +'bzfgrep' '_grep' +'bzgrep' '_grep' +'bzip2' '_bzip2' +'bzip2recover' '_bzip2' +'bzr' '_bzr' +'c++' '_gcc' +'cabal' '_cabal' +'cal' '_cal' +'calendar' '_calendar' +'cargo' '_cargo' +'cat' '_cat' +'catchsegv' '_precommand' +'cc' '_gcc' +'ccal' '_ccal' +'cd' '_cd' +'cdc' '_sccs' +'cdcd' '_cdcd' +'cdr' '_cdr' +'cdrdao' '_cdrdao' +'cdrecord' '_cdrecord' +'ceilometer' '_openstack' +'certtool' '_gnutls' +'cftp' '_twisted' +'chage' '_users' +'chattr' '_chattr' +'chcon' '_chcon' +'chdir' '_cd' +'checkupdates' '_checkupdates' +'chfn' '_users' +'chgrp' '_chown' +'chimera' '_webbrowser' +'chkconfig' '_chkconfig' +'chkstow' '_stow' +'chmod' '_chmod' +'choom' '_choom' +'chown' '_chown' +'chpass' '_chsh' +'chroot' '_chroot' +'chrt' '_chrt' +'chsh' '_chsh' +'ci' '_rcs' +'cifsiostat' '_sysstat' +'cinder' '_openstack' +'ckeygen' '_twisted' +'cksum' '_cksum' +'clang' '_gcc' +'clang++' '_gcc' +'clay' '_clay' +'clear' '_nothing' +'cloudkitty' '_openstack' +'clusterdb' '_postgresql' +'cmp' '_cmp' +'co' '_rcs' +'code' '_code' +'column' '_column' +'comb' '_sccs' +'combine' '_imagemagick' +'combinediff' '_patchutils' +'comm' '_comm' +'-command-' '_autocd' +'command' '_command' +'-command-line-' '_normal' +'comp' '_mh' +'compadd' '_compadd' +'compdef' '_compdef' +'composer' '_composer' +'composer.phar' '_composer' +'composite' '_imagemagick' +'compress' '_compress' +'conch' '_twisted' +'-condition-' '_condition' +'config.status' '_configure' +'configure' '_configure' +'convert' '_imagemagick' +'coredumpctl' '_coredumpctl' +'cowsay' '_cowsay' +'cowthink' '_cowsay' +'cp' '_cp' +'cpio' '_cpio' +'cplay' '_cplay' +'cpupower' '_cpupower' +'createdb' '_postgresql' +'createuser' '_postgresql' +'crontab' '_crontab' +'crsh' '_cssh' +'cryptsetup' '_cryptsetup' +'cscope' '_cscope' +'csh' '_sh' +'csplit' '_csplit' +'cssh' '_cssh' +'ctags' '_ctags' +'ctags-exuberant' '_ctags' +'ctags-universal' '_ctags' +'curl' '_curl' +'cut' '_cut' +'cvs' '_cvs' +'darcs' '_darcs' +'dash' '_sh' +'date' '_date' +'dbus-launch' '_dbus' +'dbus-monitor' '_dbus' +'dbus-send' '_dbus' +'dconf' '_dconf' +'dcop' '_dcop' +'dcopclient' '_dcop' +'dcopfind' '_dcop' +'dcopobject' '_dcop' +'dcopref' '_dcop' +'dcopstart' '_dcop' +'dd' '_dd' +'declare' '_typeset' +'-default-' '_default' +'delta' '_sccs' +'designate' '_openstack' +'devtodo' '_devtodo' +'df' '_df' +'dhclient' '_dhclient' +'dhclient3' '_dhclient' +'dict' '_dict' +'diff' '_diff' +'diff3' '_diff3' +'diffstat' '_diffstat' +'dig' '_dig' +'dillo' '_webbrowser' +'dircmp' '_directories' +'dirs' '_dirs' +'disable' '_disable' +'disown' '_jobs_fg' +'display' '_imagemagick' +'dist' '_mh' +'django-admin' '_django' +'django-admin.py' '_django' +'dkms' '_dkms' +'dmake' '_make' +'dmesg' '_dmesg' +'dmidecode' '_dmidecode' +'doas' '_doas' +'domainname' '_yp' +'dos2unix' '_dos2unix' +'drill' '_drill' +'dropbox' '_dropbox' +'dropdb' '_postgresql' +'dropuser' '_postgresql' +'dsh' '_dsh' +'dtruss' '_dtruss' +'du' '_du' +'dvibook' '_dvi' +'dviconcat' '_dvi' +'dvicopy' '_dvi' +'dvidvi' '_dvi' +'dvipdf' '_dvi' +'dvips' '_dvi' +'dviselect' '_dvi' +'dvitodvi' '_dvi' +'dvitype' '_dvi' +'dwb' '_webbrowser' +'e2label' '_e2label' +'eatmydata' '_precommand' +'ecasound' '_ecasound' +'echotc' '_echotc' +'echoti' '_echoti' +'ed' '_ed' +'egrep' '_grep' +'elfdump' '_elfdump' +'elinks' '_elinks' +'emulate' '_emulate' +'enable' '_enable' +'enscript' '_enscript' +'entr' '_entr' +'env' '_env' +'eog' '_eog' +'epdfview' '_pdf' +'epsffit' '_psutils' +'-equal-' '_equal' +'erb' '_ruby' +'espeak' '_espeak' +'etags' '_etags' +'ethtool' '_ethtool' +'eu-nm' '_nm' +'eu-objdump' '_objdump' +'eu-readelf' '_readelf' +'eu-strings' '_strings' +'eval' '_precommand' +'eview' '_vim' +'evim' '_vim' +'evince' '_evince' +'ex' '_vi' +'exec' '_exec' +'expand' '_unexpand' +'export' '_typeset' +'express' '_webbrowser' +'extcheck' '_java' +'extractres' '_psutils' +'fakeroot' '_fakeroot' +'false' '_nothing' +'fc' '_fc' +'fc-list' '_xft_fonts' +'fc-match' '_xft_fonts' +'feh' '_feh' +'fetchmail' '_fetchmail' +'ffmpeg' '_ffmpeg' +'fg' '_jobs_fg' +'fgrep' '_grep' +'figlet' '_figlet' +'filterdiff' '_patchutils' +'find' '_find' +'findaffix' '_ispell' +'findmnt' '_findmnt' +'finger' '_finger' +'firefox' '_mozilla' +'-first-' '_first' +'fixdlsrps' '_psutils' +'fixfmps' '_psutils' +'fixmacps' '_psutils' +'fixpsditps' '_psutils' +'fixpspps' '_psutils' +'fixscribeps' '_psutils' +'fixtpps' '_psutils' +'fixwfwps' '_psutils' +'fixwpps' '_psutils' +'fixwwps' '_psutils' +'flac' '_flac' +'flex' '_flex' +'flex++' '_flex' +'flipdiff' '_patchutils' +'flist' '_mh' +'flists' '_mh' +'float' '_typeset' +'fmt' '_fmt' +'fmttest' '_mh' +'fned' '_zed' +'fnext' '_mh' +'fold' '_fold' +'folder' '_mh' +'folders' '_mh' +'fortune' '_fortune' +'forw' '_mh' +'fprev' '_mh' +'free' '_free' +'freebsd-make' '_make' +'freezer' '_openstack' +'fsh' '_fsh' +'ftp' '_hosts' +'functions' '_typeset' +'fuser' '_fuser' +'fusermount' '_fusermount' +'fwhois' '_whois' +'g++' '_gcc' +'galeon' '_webbrowser' +'gawk' '_awk' +'gb2sum' '_md5sum' +'gbase32' '_base64' +'gbase64' '_base64' +'gbasename' '_basename' +'gcat' '_cat' +'gcc' '_gcc' +'gccgo' '_go' +'gchgrp' '_chown' +'gchmod' '_chmod' +'gchown' '_chown' +'gchroot' '_chroot' +'gcksum' '_cksum' +'gcmp' '_cmp' +'gcomm' '_comm' +'gcore' '_gcore' +'gcp' '_cp' +'gcut' '_cut' +'gdate' '_date' +'gdb' '_gdb' +'gdd' '_dd' +'gdf' '_df' +'gdiff' '_diff' +'gdu' '_du' +'geany' '_geany' +'gegrep' '_grep' +'gem' '_gem' +'genisoimage' '_genisoimage' +'genv' '_env' +'get' '_sccs' +'getafm' '_psutils' +'getconf' '_getconf' +'getent' '_getent' +'getfacl' '_getfacl' +'getfacl.exe' '_getfacl' +'getfattr' '_attr' +'getmail' '_getmail' +'getopt' '_getopt' +'getopts' '_vars' +'gex' '_vim' +'gexpand' '_unexpand' +'gfgrep' '_grep' +'gfind' '_find' +'gfmt' '_fmt' +'gfold' '_fold' +'ggetopt' '_getopt' +'ggrep' '_grep' +'ggv' '_gnome-gv' +'ghead' '_head' +'ghostscript' '_ghostscript' +'ghostview' '_pspdf' +'gid' '_id' +'ginstall' '_install' +'git' '_git' +'git-cvsserver' '_git' +'gitk' '_git' +'git-receive-pack' '_git' +'git-shell' '_git' +'git-upload-archive' '_git' +'git-upload-pack' '_git' +'gjoin' '_join' +'glance' '_openstack' +'gln' '_ln' +'global' '_global' +'glocate' '_locate' +'gls' '_ls' +'gm' '_graphicsmagick' +'gmake' '_make' +'gmd5sum' '_md5sum' +'gmkdir' '_mkdir' +'gmkfifo' '_mkfifo' +'gmknod' '_mknod' +'gmktemp' '_mktemp' +'gmplayer' '_mplayer' +'gmv' '_mv' +'gnl' '_nl' +'gnocchi' '_openstack' +'gnome-gv' '_gnome-gv' +'gnumfmt' '_numfmt' +'gnupod_addsong' '_gnupod' +'gnupod_addsong.pl' '_gnupod' +'gnupod_check' '_gnupod' +'gnupod_check.pl' '_gnupod' +'gnupod_INIT' '_gnupod' +'gnupod_INIT.pl' '_gnupod' +'gnupod_search' '_gnupod' +'gnupod_search.pl' '_gnupod' +'gnutls-cli' '_gnutls' +'gnutls-cli-debug' '_gnutls' +'gnutls-serv' '_gnutls' +'god' '_od' +'gofmt' '_go' +'gpasswd' '_gpasswd' +'gpaste' '_paste' +'gpatch' '_patch' +'gpg' '_gpg' +'gpg2' '_gpg' +'gpgv' '_gpg' +'gpg-zip' '_gpg' +'gphoto2' '_gphoto2' +'gprintenv' '_printenv' +'gprof' '_gprof' +'gqview' '_gqview' +'gradle' '_gradle' +'gradlew' '_gradle' +'grail' '_webbrowser' +'greadlink' '_readlink' +'grep' '_grep' +'grepdiff' '_patchutils' +'grm' '_rm' +'grmdir' '_rmdir' +'groff' '_groff' +'groupadd' '_user_admin' +'groupdel' '_groups' +'groupmod' '_user_admin' +'groups' '_users' +'growisofs' '_growisofs' +'gs' '_ghostscript' +'gsbj' '_pspdf' +'gsdj' '_pspdf' +'gsdj500' '_pspdf' +'gsed' '_sed' +'gseq' '_seq' +'gsettings' '_gsettings' +'gsha1sum' '_md5sum' +'gsha224sum' '_md5sum' +'gsha256sum' '_md5sum' +'gsha384sum' '_md5sum' +'gsha512sum' '_md5sum' +'gshred' '_shred' +'gshuf' '_shuf' +'gslj' '_pspdf' +'gslp' '_pspdf' +'gsnd' '_pspdf' +'gsort' '_sort' +'gsplit' '_split' +'gstat' '_stat' +'gstdbuf' '_stdbuf' +'gstrings' '_strings' +'gstty' '_stty' +'gsum' '_cksum' +'gtac' '_tac' +'gtail' '_tail' +'gtar' '_tar' +'gtee' '_tee' +'gtimeout' '_timeout' +'gtouch' '_touch' +'gtr' '_tr' +'gtty' '_tty' +'guilt' '_guilt' +'guilt-add' '_guilt' +'guilt-applied' '_guilt' +'guilt-delete' '_guilt' +'guilt-files' '_guilt' +'guilt-fold' '_guilt' +'guilt-fork' '_guilt' +'guilt-header' '_guilt' +'guilt-help' '_guilt' +'guilt-import' '_guilt' +'guilt-import-commit' '_guilt' +'guilt-init' '_guilt' +'guilt-new' '_guilt' +'guilt-next' '_guilt' +'guilt-patchbomb' '_guilt' +'guilt-pop' '_guilt' +'guilt-prev' '_guilt' +'guilt-push' '_guilt' +'guilt-rebase' '_guilt' +'guilt-refresh' '_guilt' +'guilt-rm' '_guilt' +'guilt-series' '_guilt' +'guilt-status' '_guilt' +'guilt-top' '_guilt' +'guilt-unapplied' '_guilt' +'guname' '_uname' +'gunexpand' '_unexpand' +'guniq' '_uniq' +'gunzip' '_gzip' +'guptime' '_uptime' +'gv' '_gv' +'gview' '_vim' +'gvim' '_vim' +'gvimdiff' '_vim' +'gwc' '_wc' +'gwho' '_who' +'gxargs' '_xargs' +'gzcat' '_gzip' +'gzegrep' '_grep' +'gzfgrep' '_grep' +'gzgrep' '_grep' +'gzilla' '_webbrowser' +'gzip' '_gzip' +'hash' '_hash' +'hd' '_hexdump' +'head' '_head' +'heat' '_openstack' +'help' '_sccs' +'hexdump' '_hexdump' +'hilite' '_precommand' +'histed' '_zed' +'history' '_fc' +'host' '_host' +'hostname' '_hostname' +'hostnamectl' '_hostnamectl' +'hotjava' '_webbrowser' +'htop' '_htop' +'iceweasel' '_mozilla' +'icombine' '_ispell' +'iconv' '_iconv' +'iconvconfig' '_iconvconfig' +'id' '_id' +'identify' '_imagemagick' +'ifconfig' '_ifconfig' +'ifdown' '_net_interfaces' +'iftop' '_iftop' +'ifup' '_net_interfaces' +'ijoin' '_ispell' +'img2sixel' '_img2sixel' +'import' '_imagemagick' +'inc' '_mh' +'includeres' '_psutils' +'info' '_texinfo' +'infocmp' '_terminals' +'initctl' '_initctl' +'initdb' '_postgresql' +'insmod' '_modutils' +'install' '_install' +'install-info' '_texinfo' +'integer' '_typeset' +'interdiff' '_patchutils' +'ionice' '_ionice' +'iostat' '_iostat' +'ip' '_ip' +'ip6tables' '_iptables' +'ip6tables-restore' '_iptables' +'ip6tables-save' '_iptables' +'ipkg' '_opkg' +'ipsec' '_ipsec' +'ipset' '_ipset' +'iptables' '_iptables' +'iptables-restore' '_iptables' +'iptables-save' '_iptables' +'irb' '_ruby' +'ironic' '_openstack' +'irssi' '_irssi' +'isag' '_sysstat' +'ispell' '_ispell' +'iwconfig' '_iwconfig' +'jadetex' '_tex' +'jar' '_java' +'jarsigner' '_java' +'java' '_java' +'javac' '_java' +'javadoc' '_java' +'javah' '_java' +'javap' '_java' +'jdb' '_java' +'jobs' '_jobs_builtin' +'joe' '_joe' +'join' '_join' +'journalctl' '_journalctl' +'jq' '_jq' +'jupyter' '_jupyter' +'kdeconnect-cli' '_kdeconnect' +'kernel-install' '_kernel-install' +'keystone' '_openstack' +'keytool' '_java' +'kfmclient' '_kfmclient' +'kill' '_kill' +'killall' '_killall' +'killall5' '_killall' +'kioclient' '_kfmclient' +'knock' '_knock' +'konqueror' '_webbrowser' +'kpartx' '_kpartx' +'kpdf' '_pdf' +'ksh' '_sh' +'ksh88' '_sh' +'ksh93' '_sh' +'kvno' '_kvno' +'last' '_last' +'lastb' '_last' +'latex' '_tex' +'latexmk' '_tex' +'ldconfig' '_ldconfig' +'ldconfig.real' '_ldconfig' +'ldd' '_ldd' +'less' '_less' +'let' '_math' +'lftp' '_ncftp' +'lha' '_lha' +'libinput' '_libinput' +'light' '_webbrowser' +'limit' '_limit' +'links' '_links' +'links2' '_links' +'linux' '_uml' +'lldb' '_lldb' +'llvm-g++' '_gcc' +'llvm-gcc' '_gcc' +'llvm-objdump' '_objdump' +'ln' '_ln' +'loadkeys' '_loadkeys' +'local' '_typeset' +'locale' '_locale' +'localectl' '_localectl' +'localedef' '_localedef' +'locate' '_locate' +'log' '_nothing' +'logger' '_logger' +'loginctl' '_loginctl' +'logname' '_nothing' +'look' '_look' +'losetup' '_losetup' +'lp' '_lp' +'lpadmin' '_lp' +'lpinfo' '_lp' +'lpoptions' '_lp' +'lpq' '_lp' +'lpr' '_lp' +'lprm' '_lp' +'lpstat' '_lp' +'ls' '_ls' +'lsattr' '_lsattr' +'lsblk' '_lsblk' +'lsdiff' '_patchutils' +'lsinitcpio' '_mkinitcpio' +'lsmod' '_modutils' +'lsns' '_lsns' +'lsof' '_lsof' +'lsusb' '_lsusb' +'ltrace' '_ltrace' +'lua' '_lua' +'luarocks' '_luarocks' +'lynx' '_lynx' +'lz4' '_lz4' +'lz4c' '_lz4' +'lz4c32' '_lz4' +'lz4cat' '_lz4' +'lzcat' '_xz' +'lzma' '_xz' +'lzop' '_lzop' +'mac2unix' '_dos2unix' +'machinectl' '_machinectl' +'magnum' '_openstack' +'mail' '_mail' +'Mail' '_mail' +'mailx' '_mail' +'make' '_make' +'makeinfo' '_texinfo' +'makepkg' '_pacman' +'man' '_man' +'manage.py' '_django' +'manila' '_openstack' +'mark' '_mh' +'mat' '_mat' +'mat2' '_mat2' +'-math-' '_math' +'matlab' '_matlab' +'mattrib' '_mtools' +'mcd' '_mtools' +'mcopy' '_mtools' +'md2' '_cksum' +'md4' '_cksum' +'md5' '_cksum' +'md5sum' '_md5sum' +'mdadm' '_mdadm' +'mdel' '_mtools' +'mdeltree' '_mtools' +'mdir' '_mtools' +'mdu' '_mtools' +'mencal' '_mencal' +'mere' '_mere' +'merge' '_rcs' +'metaflac' '_flac' +'mformat' '_mtools' +'mgv' '_pspdf' +'mhfixmsg' '_mh' +'mhlist' '_mh' +'mhmail' '_mh' +'mhn' '_mh' +'mhparam' '_mh' +'mhpath' '_mh' +'mhshow' '_mh' +'mhstore' '_mh' +'mii-tool' '_mii-tool' +'mistral' '_openstack' +'mkdir' '_mkdir' +'mkfifo' '_mkfifo' +'mkinitcpio' '_mkinitcpio' +'mkisofs' '_growisofs' +'mknod' '_mknod' +'mksh' '_sh' +'mktemp' '_mktemp' +'mktunes' '_gnupod' +'mktunes.pl' '_gnupod' +'mlabel' '_mtools' +'mlocate' '_locate' +'mmd' '_mtools' +'mmm' '_webbrowser' +'mmount' '_mtools' +'mmove' '_mtools' +'modinfo' '_modutils' +'modprobe' '_modutils' +'module' '_module' +'mogrify' '_imagemagick' +'monasca' '_openstack' +'mondoarchive' '_mondo' +'montage' '_imagemagick' +'moosic' '_moosic' +'Mosaic' '_webbrowser' +'mosh' '_mosh' +'mount' '_mount' +'mozilla' '_mozilla' +'mozilla-firefox' '_mozilla' +'mozilla-xremote-client' '_mozilla' +'mpc' '_mpc' +'mplayer' '_mplayer' +'mpstat' '_sysstat' +'mpv' '_mpv' +'mr' '_myrepos' +'mrd' '_mtools' +'mread' '_mtools' +'mren' '_mtools' +'msgchk' '_mh' +'mt' '_mt' +'mtn' '_monotone' +'mtoolstest' '_mtools' +'mtr' '_mtr' +'mtype' '_mtools' +'munchlist' '_ispell' +'mupdf' '_mupdf' +'murano' '_openstack' +'mush' '_mail' +'mutt' '_mutt' +'mv' '_mv' +'mvim' '_vim' +'mw' '_mutt-wizard.zsh' +'mx' '_hosts' +'mysql' '_mysql_utils' +'mysqladmin' '_mysql_utils' +'mysqldiff' '_mysqldiff' +'mysqldump' '_mysql_utils' +'mysqlimport' '_mysql_utils' +'mysqlshow' '_mysql_utils' +'nail' '_mail' +'native2ascii' '_java' +'nautilus' '_nautilus' +'nawk' '_awk' +'nc' '_netcat' +'ncal' '_cal' +'ncftp' '_ncftp' +'ncl' '_nedit' +'nedit' '_nedit' +'nedit-nc' '_nedit' +'netcat' '_netcat' +'netrik' '_webbrowser' +'netscape' '_netscape' +'netstat' '_netstat' +'networkctl' '_networkctl' +'neutron' '_openstack' +'new' '_mh' +'newgrp' '_groups' +'next' '_mh' +'nginx' '_nginx' +'ngrep' '_ngrep' +'nice' '_nice' +'ninja' '_ninja' +'nkf' '_nkf' +'nl' '_nl' +'nm' '_nm' +'nmap' '_nmap' +'nmblookup' '_samba' +'nmcli' '_networkmanager' +'nocorrect' '_precommand' +'noglob' '_precommand' +'nohup' '_precommand' +'notmuch' '_notmuch' +'nova' '_openstack' +'npm' '_npm' +'ns' '_hosts' +'nsenter' '_nsenter' +'nslookup' '_nslookup' +'ntalk' '_other_accounts' +'numfmt' '_numfmt' +'nvim' '_vim' +'objdump' '_objdump' +'od' '_od' +'ogg123' '_vorbis' +'oggdec' '_vorbis' +'oggenc' '_vorbis' +'ogginfo' '_vorbis' +'oksh' '_sh' +'okular' '_okular' +'oomctl' '_oomctl' +'openstack' '_openstack' +'opera' '_webbrowser' +'opera-next' '_webbrowser' +'opkg' '_opkg' +'opusdec' '_opustools' +'opusenc' '_opustools' +'opusinfo' '_opustools' +'p4' '_perforce' +'p4d' '_perforce' +'pacat' '_pulseaudio' +'paccache' '_paccache' +'pacdiff' '_pacdiff' +'pack' '_pack' +'packf' '_mh' +'paclist' '_paclist' +'paclog-pkglist' '_paclog-pkglist' +'pacman' '_pacman' +'pacman-conf' '_pacman' +'pacman-key' '_pacman' +'pacman.static' '_pacman' +'pacmd' '_pulseaudio' +'pacscripts' '_pacscripts' +'pacsearch' '_pacsearch' +'pacsort' '_pacsort' +'pactl' '_pulseaudio' +'pactree' '_pactree' +'padsp' '_pulseaudio' +'pandoc' '_pandoc' +'paplay' '_pulseaudio' +'-parameter-' '_parameter' +'parec' '_pulseaudio' +'parecord' '_pulseaudio' +'paru' '_paru' +'pass' '_pass' +'passwd' '_users' +'paste' '_paste' +'pasuspender' '_pulseaudio' +'patch' '_patch' +'pax' '_pax' +'pcat' '_pack' +'pcp-htop' '_htop' +'pcred' '_pids' +'pdf2dsc' '_pdf' +'pdf2ps' '_pdf' +'pdffonts' '_pdf' +'pdfimages' '_pdf' +'pdfinfo' '_pdf' +'pdfjadetex' '_tex' +'pdflatex' '_tex' +'pdfopt' '_pdf' +'pdftex' '_tex' +'pdftexi2dvi' '_texinfo' +'pdftk' '_pdftk' +'pdftopbm' '_pdf' +'pdftops' '_pdf' +'pdftotext' '_pdf' +'pdksh' '_sh' +'perf' '_perf' +'perl' '_perl' +'perldoc' '_perldoc' +'pfiles' '_pids' +'pflags' '_pids' +'pg_config' '_postgresql' +'pg_ctl' '_postgresql' +'pg_dump' '_postgresql' +'pg_dumpall' '_postgresql' +'pg_isready' '_postgresql' +'pgrep' '_pgrep' +'pg_restore' '_postgresql' +'pg_upgrade' '_postgresql' +'php' '_php' +'pick' '_mh' +'picocom' '_picocom' +'pidof' '_pidof' +'pidstat' '_sysstat' +'pigz' '_gzip' +'pine' '_pine' +'pinef' '_pine' +'pinfo' '_texinfo' +'ping' '_ping' +'ping6' '_ping' +'pkgadd' '_pkgadd' +'pkg-config' '_pkg-config' +'pkginfo' '_pkginfo' +'pkgrm' '_pkgrm' +'pkill' '_pgrep' +'pldd' '_pids' +'pmake' '_make' +'pman' '_perl_modules' +'pmap' '_pmap' +'pmcat' '_perl_modules' +'pmdesc' '_perl_modules' +'pmeth' '_perl_modules' +'pmexp' '_perl_modules' +'pmfunc' '_perl_modules' +'pmload' '_perl_modules' +'pmls' '_perl_modules' +'pmpath' '_perl_modules' +'pmvers' '_perl_modules' +'podgrep' '_perl_modules' +'podpath' '_perl_modules' +'podtoc' '_perl_modules' +'poff' '_pon' +'policytool' '_java' +'pon' '_pon' +'popd' '_directory_stack' +'postconf' '_postfix' +'postgres' '_postgresql' +'postmaster' '_postgresql' +'postqueue' '_postfix' +'postsuper' '_postfix' +'pr' '_pr' +'prev' '_mh' +'print' '_print' +'printenv' '_printenv' +'printf' '_print' +'prompt' '_prompt' +'prove' '_prove' +'prs' '_sccs' +'prt' '_sccs' +'prun' '_pids' +'ps' '_ps' +'ps2ascii' '_pspdf' +'ps2epsi' '_postscript' +'ps2pdf' '_postscript' +'ps2pdf12' '_postscript' +'ps2pdf13' '_postscript' +'ps2pdf14' '_postscript' +'ps2pdfwr' '_postscript' +'ps2ps' '_postscript' +'psbook' '_psutils' +'psed' '_sed' +'psig' '_pids' +'psmerge' '_psutils' +'psmulti' '_postscript' +'psnup' '_psutils' +'psql' '_postgresql' +'psresize' '_psutils' +'psselect' '_psutils' +'pstack' '_pids' +'pstoedit' '_pspdf' +'pstop' '_pids' +'pstops' '_psutils' +'pstotgif' '_pspdf' +'pswrap' '_postscript' +'ptx' '_ptx' +'pulseaudio' '_pulseaudio' +'pump' '_pump' +'pushd' '_cd' +'pv' '_pv' +'pwait' '_pids' +'pwdx' '_pids' +'pwgen' '_pwgen' +'pyhtmlizer' '_twisted' +'qdbus' '_qdbus' +'qiv' '_qiv' +'_qrcp' '_qrcp' +'qrcp' '_qrcp' +'quilt' '_quilt' +'r' '_fc' +'rake' '_rake' +'rankmirrors' '_rankmirrors' +'ranlib' '_ranlib' +'rar' '_rar' +'rc' '_sh' +'rclone' '_rclone' +'rcp' '_rlogin' +'rcs' '_rcs' +'rcsdiff' '_rcs' +'rdesktop' '_rdesktop' +'read' '_read' +'readelf' '_readelf' +'readlink' '_readlink' +'readonly' '_typeset' +'-redirect-' '_redirect' +'-redirect-,<,bunzip2' '_bzip2' +'-redirect-,<,bzip2' '_bzip2' +'-redirect-,>,bzip2' '_bzip2' +'-redirect-,<,compress' '_compress' +'-redirect-,>,compress' '_compress' +'-redirect-,-default-,-default-' '_files' +'-redirect-,<,gunzip' '_gzip' +'-redirect-,<,gzip' '_gzip' +'-redirect-,>,gzip' '_gzip' +'-redirect-,<,uncompress' '_compress' +'-redirect-,<,unxz' '_xz' +'-redirect-,<,xz' '_xz' +'-redirect-,>,xz' '_xz' +'refile' '_mh' +'rehash' '_hash' +'reindexdb' '_postgresql' +'reload' '_initctl' +'remsh' '_rlogin' +'renice' '_renice' +'repl' '_mh' +'resolvectl' '_resolvectl' +'restart' '_initctl' +'retawq' '_webbrowser' +'rgrep' '_grep' +'rgview' '_vim' +'rgvim' '_vim' +'ri' '_ri' +'rlogin' '_rlogin' +'rm' '_rm' +'rmd160' '_cksum' +'rmdel' '_sccs' +'rmdir' '_rmdir' +'rmf' '_mh' +'rmic' '_java' +'rmid' '_java' +'rmiregistry' '_java' +'rmm' '_mh' +'rmmod' '_modutils' +'route' '_route' +'rrdtool' '_rrdtool' +'rsh' '_rlogin' +'rsync' '_rsync' +'rtin' '_tin' +'rubber' '_rubber' +'rubber-info' '_rubber' +'rubber-pipe' '_rubber' +'ruby' '_ruby' +'ruby-mri' '_ruby' +'run-help' '_run-help' +'rup' '_hosts' +'rusage' '_precommand' +'rview' '_vim' +'rvim' '_vim' +'rwho' '_hosts' +'rxvt' '_urxvt' +'s2p' '_sed' +'sact' '_sccs' +'sadf' '_sysstat' +'sahara' '_openstack' +'sar' '_sysstat' +'scan' '_mh' +'sccs' '_sccs' +'sccsdiff' '_sccs' +'sched' '_sched' +'schedtool' '_schedtool' +'scons' '_scons' +'scp' '_ssh' +'screen' '_screen' +'script' '_script' +'scriptreplay' '_script' +'seaf-cli' '_seafile' +'sed' '_sed' +'senlin' '_openstack' +'seq' '_seq' +'serialver' '_java' +'service' '_service' +'set' '_set' +'setfacl' '_setfacl' +'setfacl.exe' '_setfacl' +'setfattr' '_attr' +'setopt' '_setopt' +'setpriv' '_setpriv' +'setsid' '_setsid' +'setxkbmap' '_setxkbmap' +'sftp' '_ssh' +'sh' '_sh' +'sha1' '_cksum' +'sha1sum' '_md5sum' +'sha224sum' '_md5sum' +'sha256' '_cksum' +'sha256sum' '_md5sum' +'sha384' '_cksum' +'sha384sum' '_md5sum' +'sha512' '_cksum' +'sha512sum' '_md5sum' +'sha512t256' '_cksum' +'shasum' '_shasum' +'shift' '_arrays' +'show' '_mh' +'showchar' '_psutils' +'showmount' '_showmount' +'shred' '_shred' +'shuf' '_shuf' +'shutdown' '_shutdown' +'sisu' '_sisu' +'skein1024' '_cksum' +'skein256' '_cksum' +'skein512' '_cksum' +'skipstone' '_webbrowser' +'slabtop' '_slabtop' +'slitex' '_tex' +'slocate' '_locate' +'slogin' '_ssh' +'slrn' '_slrn' +'smartctl' '_smartmontools' +'smbclient' '_samba' +'smbcontrol' '_samba' +'smbstatus' '_samba' +'soa' '_hosts' +'socket' '_socket' +'sort' '_sort' +'sortm' '_mh' +'source' '_source' +'spamassassin' '_spamassassin' +'split' '_split' +'splitdiff' '_patchutils' +'sqlite' '_sqlite' +'sqlite3' '_sqlite' +'sqsh' '_sqsh' +'sr' '_surfraw' +'srptool' '_gnutls' +'ss' '_ss' +'ssh' '_ssh' +'ssh-add' '_ssh' +'ssh-agent' '_ssh' +'ssh-copy-id' '_ssh' +'sshfs' '_sshfs' +'ssh-keygen' '_ssh' +'ssh-keyscan' '_ssh' +'star' '_tar' +'start' '_initctl' +'stat' '_stat' +'status' '_initctl' +'stdbuf' '_stdbuf' +'stg' '_stgit' +'stop' '_initctl' +'stow' '_stow' +'strace' '_strace' +'strace64' '_strace' +'strftime' '_strftime' +'strings' '_strings' +'strip' '_strip' +'strongswan' '_ipsec' +'stty' '_stty' +'su' '_su' +'subl' '_sublimetext' +'-subscript-' '_subscript' +'sudo' '_sudo' +'sudoedit' '_sudo' +'sum' '_cksum' +'surfraw' '_surfraw' +'sv' '_runit' +'svn' '_subversion' +'svnadmin' '_subversion' +'svnadmin-static' '_subversion' +'svnlite' '_subversion' +'svnliteadmin' '_subversion' +'swaks' '_swaks' +'swanctl' '_swanctl' +'swift' '_swift' +'swiftc' '_swift' +'sync' '_nothing' +'sysctl' '_sysctl' +'systemctl' '_systemctl' +'systemd-analyze' '_systemd-analyze' +'systemd-ask-password' '_systemd' +'systemd-cat' '_systemd' +'systemd-cgls' '_systemd' +'systemd-cgtop' '_systemd' +'systemd-delta' '_systemd-delta' +'systemd-detect-virt' '_systemd' +'systemd-inhibit' '_systemd-inhibit' +'systemd-machine-id-setup' '_systemd' +'systemd-notify' '_systemd' +'systemd-nspawn' '_systemd-nspawn' +'systemd-path' '_systemd-path' +'systemd-resolve' '_resolvectl' +'systemd-run' '_systemd-run' +'systemd-tmpfiles' '_systemd-tmpfiles' +'systemd-tty-ask-password-agent' '_systemd' +'tac' '_tac' +'tacker' '_openstack' +'tail' '_tail' +'talk' '_other_accounts' +'tar' '_tar' +'tardy' '_tardy' +'tcpdump' '_tcpdump' +'tcp_open' '_tcpsys' +'tcptraceroute' '_tcptraceroute' +'tcsh' '_sh' +'tda' '_devtodo' +'tdd' '_devtodo' +'tde' '_devtodo' +'tdr' '_devtodo' +'tee' '_tee' +'telnet' '_telnet' +'tex' '_tex' +'texi2any' '_texinfo' +'texi2dvi' '_texinfo' +'texi2pdf' '_texinfo' +'texindex' '_texinfo' +'tg' '_topgit' +'tidy' '_tidy' +'tig' '_git' +'-tilde-' '_tilde' +'time' '_precommand' +'timedatectl' '_timedatectl' +'timeout' '_timeout' +'times' '_nothing' +'tin' '_tin' +'tkconch' '_twisted' +'tkinfo' '_texinfo' +'tla' '_tla' +'tload' '_tload' +'tmux' '_tmux' +'todo' '_devtodo' +'todo.sh' '_todo.sh' +'toilet' '_toilet' +'top' '_top' +'totdconfig' '_totd' +'touch' '_touch' +'tpb' '_tpb' +'tput' '_tput' +'tr' '_tr' +'tracepath' '_tracepath' +'tracepath6' '_tracepath' +'traceroute' '_hosts' +'transmission-remote' '_transmission' +'trap' '_trap' +'tree' '_tree' +'tremc' '_tremc' +'trial' '_twisted' +'trove' '_openstack' +'true' '_nothing' +'truncate' '_truncate' +'truss' '_truss' +'tryaffix' '_ispell' +'tty' '_tty' +'ttyctl' '_ttyctl' +'tunctl' '_uml' +'tune2fs' '_tune2fs' +'tunes2pod' '_gnupod' +'tunes2pod.pl' '_gnupod' +'twidge' '_twidge' +'twist' '_twisted' +'twistd' '_twisted' +'txt' '_hosts' +'type' '_which' +'typeset' '_typeset' +'udevadm' '_udevadm' +'ulimit' '_ulimit' +'uml_mconsole' '_uml' +'uml_moo' '_uml' +'uml_switch' '_uml' +'umount' '_mount' +'unace' '_unace' +'unalias' '_aliases' +'uname' '_uname' +'uncompress' '_compress' +'unexpand' '_unexpand' +'unfunction' '_functions' +'unget' '_sccs' +'unhash' '_unhash' +'uniq' '_uniq' +'unison' '_unison' +'units' '_units' +'unix2dos' '_dos2unix' +'unix2mac' '_dos2unix' +'unlimit' '_limits' +'unlz4' '_lz4' +'unlzma' '_xz' +'unpack' '_pack' +'unpigz' '_gzip' +'unrar' '_rar' +'unset' '_vars' +'unsetopt' '_setopt' +'unshare' '_unshare' +'unwrapdiff' '_patchutils' +'unxz' '_xz' +'unzip' '_zip' +'updpkgsums' '_updpkgsums' +'uptime' '_uptime' +'urxvt' '_urxvt' +'urxvt256c' '_urxvt' +'urxvt256cc' '_urxvt' +'urxvt256c-ml' '_urxvt' +'urxvt256c-mlc' '_urxvt' +'urxvtc' '_urxvt' +'useradd' '_user_admin' +'userdel' '_users' +'usermod' '_user_admin' +'vacuumdb' '_postgresql' +'val' '_sccs' +'valgrind' '_valgrind' +'-value-' '_value' +'-value-,ADB_TRACE,-default-' '_adb' +'-value-,ANDROID_LOG_TAGS,-default-' '_adb' +'-value-,ANDROID_SERIAL,-default-' '_adb' +'-value-,ANSIBLE_INVENTORY_ENABLED,-default-' '_ansible' +'-value-,ANSIBLE_STDOUT_CALLBACK,-default-' '_ansible' +'-value-,ANT_ARGS,-default-' '_ant' +'-value-,CFLAGS,-default-' '_gcc' +'-value-,CPPFLAGS,-default-' '_gcc' +'-value-,CXXFLAGS,-default-' '_gcc' +'-value-,-default-,-command-' '_zargs' +'-value-,-default-,-default-' '_value' +'-value-,DISPLAY,-default-' '_x_display' +'-value-,GREP_OPTIONS,-default-' '_grep' +'-value-,GZIP,-default-' '_gzip' +'-value-,LANG,-default-' '_locales' +'-value-,LANGUAGE,-default-' '_locales' +'-value-,LD_DEBUG,-default-' '_ld_debug' +'-value-,LDFLAGS,-default-' '_gcc' +'-value-,LESSCHARSET,-default-' '_less' +'-value-,LESS,-default-' '_less' +'-value-,LOOPDEV_DEBUG,-default-' '_losetup' +'-value-,LPDEST,-default-' '_printers' +'-value-,MPD_HOST,-default' '_mpc' +'-value-,P4CLIENT,-default-' '_perforce' +'-value-,P4MERGE,-default-' '_perforce' +'-value-,P4PORT,-default-' '_perforce' +'-value-,P4USER,-default-' '_perforce' +'-value-,PERLDOC,-default-' '_perldoc' +'-value-,PRINTER,-default-' '_printers' +'-value-,PROMPT2,-default-' '_ps1234' +'-value-,PROMPT3,-default-' '_ps1234' +'-value-,PROMPT4,-default-' '_ps1234' +'-value-,PROMPT,-default-' '_ps1234' +'-value-,PS1,-default-' '_ps1234' +'-value-,PS2,-default-' '_ps1234' +'-value-,PS3,-default-' '_ps1234' +'-value-,PS4,-default-' '_ps1234' +'-value-,RPROMPT2,-default-' '_ps1234' +'-value-,RPROMPT,-default-' '_ps1234' +'-value-,RPS1,-default-' '_ps1234' +'-value-,RPS2,-default-' '_ps1234' +'-value-,SPROMPT,-default-' '_ps1234' +'-value-,TERM,-default-' '_terminals' +'-value-,TERMINFO_DIRS,-default-' '_dir_list' +'-value-,TZ,-default-' '_time_zone' +'-value-,VALGRIND_OPTS,-default-' '_valgrind' +'-value-,WWW_HOME,-default-' '_urls' +'-value-,XML_CATALOG_FILES,-default-' '_xmlsoft' +'-value-,XZ_DEFAULTS,-default-' '_xz' +'-value-,XZ_OPT,-default-' '_xz' +'-vared-' '_in_vared' +'vared' '_vared' +'vcs_info_hookadd' '_vcs_info' +'vcs_info_hookdel' '_vcs_info' +'vi' '_vi' +'view' '_vi' +'vim' '_vim' +'vimdiff' '_vim' +'virsh' '_libvirt' +'virt-admin' '_libvirt' +'virt-host-validate' '_libvirt' +'virt-pki-validate' '_libvirt' +'virt-xml-validate' '_libvirt' +'visudo' '_visudo' +'vitrage' '_openstack' +'vmstat' '_vmstat' +'vncserver' '_vnc' +'vncviewer' '_vnc' +'vorbiscomment' '_vorbis' +'vpnc' '_vpnc' +'vpnc-connect' '_vpnc' +'vserver' '_vserver' +'w' '_w' +'w3m' '_w3m' +'wait' '_wait' +'watch' '_watch' +'watcher' '_openstack' +'wc' '_wc' +'wget' '_wget' +'what' '_sccs' +'whatis' '_man' +'whence' '_which' +'where' '_which' +'whereis' '_whereis' +'which' '_which' +'who' '_who' +'whoami' '_nothing' +'whois' '_whois' +'whom' '_mh' +'wiggle' '_wiggle' +'wipefs' '_wipefs' +'wodim' '_cdrecord' +'wpa_cli' '_wpa_cli' +'write' '_users_on' +'www' '_webbrowser' +'xargs' '_xargs' +'xattr' '_attr' +'xauth' '_xauth' +'xautolock' '_xautolock' +'xclip' '_xclip' +'xdpyinfo' '_x_utils' +'xdvi' '_xdvi' +'xelatex' '_tex' +'xetex' '_tex' +'xev' '_x_utils' +'xfd' '_x_utils' +'xfig' '_xfig' +'xfontsel' '_x_utils' +'xfreerdp' '_rdesktop' +'xhost' '_x_utils' +'xinput' '_xinput' +'xkill' '_x_utils' +'xli' '_xloadimage' +'xloadimage' '_xloadimage' +'xlsatoms' '_x_utils' +'xlsclients' '_x_utils' +'xml' '_xmlstarlet' +'xmllint' '_xmlsoft' +'xmlstarlet' '_xmlstarlet' +'xmms2' '_xmms2' +'xmodmap' '_xmodmap' +'xmosaic' '_webbrowser' +'xon' '_x_utils' +'xournal' '_xournal' +'xpdf' '_xpdf' +'xping' '_hosts' +'xprop' '_x_utils' +'xrandr' '_xrandr' +'xrdb' '_x_utils' +'xscreensaver-command' '_xscreensaver' +'xset' '_xset' +'xsetbg' '_xloadimage' +'xsetroot' '_x_utils' +'xsltproc' '_xmlsoft' +'xterm' '_xterm' +'xtightvncviewer' '_vnc' +'xtp' '_imagemagick' +'xv' '_xv' +'xview' '_xloadimage' +'xvnc4viewer' '_vnc' +'xvncviewer' '_vnc' +'xwallpaper' '_xwallpaper' +'xwd' '_x_utils' +'xwininfo' '_x_utils' +'xwit' '_xwit' +'xwud' '_x_utils' +'xxd' '_xxd' +'xz' '_xz' +'xzcat' '_xz' +'yafc' '_yafc' +'yash' '_sh' +'yay' '_yay' +'ypbind' '_yp' +'ypcat' '_yp' +'ypmatch' '_yp' +'yppasswd' '_yp' +'yppoll' '_yp' +'yppush' '_yp' +'ypserv' '_yp' +'ypset' '_yp' +'ypwhich' '_yp' +'ypxfr' '_yp' +'ytalk' '_other_accounts' +'yt-dlp' '_yt-dlp' +'zargs' '_zargs' +'zathura' '_zathura' +'zcalc' '_zcalc' +'-zcalc-line-' '_zcalc_line' +'zcat' '_zcat' +'zcompile' '_zcompile' +'zcp' '_zmv' +'zdb' '_zfs' +'zdelattr' '_zattr' +'zdump' '_zdump' +'zeal' '_zeal' +'zed' '_zed' +'zegrep' '_grep' +'zen' '_webbrowser' +'zf_chgrp' '_chown' +'zf_chmod' '_chmod' +'zf_chown' '_chown' +'zfgrep' '_grep' +'zf_ln' '_ln' +'zf_mkdir' '_mkdir' +'zf_mv' '_mv' +'zf_rm' '_rm' +'zf_rmdir' '_rmdir' +'zfs' '_zfs' +'zgetattr' '_zattr' +'zgrep' '_grep' +'zip' '_zip' +'zipinfo' '_zip' +'zle' '_zle' +'zlistattr' '_zattr' +'zln' '_zmv' +'zmail' '_mail' +'zmodload' '_zmodload' +'zmv' '_zmv' +'zone' '_hosts' +'zparseopts' '_zparseopts' +'zpool' '_zfs' +'zpty' '_zpty' +'zsetattr' '_zattr' +'zsh' '_zsh' +'zsh-mime-handler' '_zsh-mime-handler' +'zsocket' '_zsocket' +'zstat' '_stat' +'zstyle' '_zstyle' +'ztodo' '_ztodo' +'zun' '_openstack' +'zxpdf' '_xpdf' +) + +_services=( +'bzcat' 'bunzip2' +'gchgrp' 'chgrp' +'gchown' 'chown' +'gnupod_addsong.pl' 'gnupod_addsong' +'gnupod_check.pl' 'gnupod_check' +'gnupod_INIT.pl' 'gnupod_INIT' +'gnupod_search.pl' 'gnupod_search' +'gpg2' 'gpg' +'gzcat' 'gunzip' +'iceweasel' 'firefox' +'lzcat' 'unxz' +'lzma' 'xz' +'Mail' 'mail' +'mailx' 'mail' +'mktunes.pl' 'mktunes' +'nail' 'mail' +'ncl' 'nc' +'nedit-nc' 'nc' +'pacman.static' 'pacman' +'pcat' 'unpack' +'-redirect-,<,bunzip2' 'bunzip2' +'-redirect-,<,bzip2' 'bzip2' +'-redirect-,>,bzip2' 'bunzip2' +'-redirect-,<,compress' 'compress' +'-redirect-,>,compress' 'uncompress' +'-redirect-,<,gunzip' 'gunzip' +'-redirect-,<,gzip' 'gzip' +'-redirect-,>,gzip' 'gunzip' +'-redirect-,<,uncompress' 'uncompress' +'-redirect-,<,unxz' 'unxz' +'-redirect-,<,xz' 'xz' +'-redirect-,>,xz' 'unxz' +'remsh' 'rsh' +'slogin' 'ssh' +'svnadmin-static' 'svnadmin' +'svnlite' 'svn' +'svnliteadmin' 'svnadmin' +'tunes2pod.pl' 'tunes2pod' +'unlzma' 'unxz' +'xelatex' 'latex' +'xetex' 'tex' +'xzcat' 'unxz' +'zf_chgrp' 'chgrp' +'zf_chown' 'chown' +) + +_patcomps=( +'*/(init|rc[0-9S]#).d/*' '_init_d' +'notmuch-*' '_notmuch' +) + +_postpatcomps=( +'_*' '_compadd' +'c++-*' '_gcc' +'g++-*' '_gcc' +'gcc-*' '_gcc' +'gem[0-9.]#' '_gem' +'lua[0-9.-]##' '_lua' +'(p[bgpn]m*|*top[bgpn]m)' '_pbm' +'php[0-9.-]' '_php' +'pip[0-9.]#' '_pip' +'pydoc[0-9.]#' '_pydoc' +'python[0-9.]#' '_python' +'qemu(|-system-*)' '_qemu' +'(ruby|[ei]rb)[0-9.]#' '_ruby' +'shasum(|5).*' '_shasum' +'(texi(2*|ndex))' '_texi' +'(tiff*|*2tiff|pal2rgb)' '_tiff' +'-value-,(ftp|http(|s))_proxy,-default-' '_urls' +'-value-,LC_*,-default-' '_locales' +'-value-,*path,-default-' '_directories' +'-value-,*PATH,-default-' '_dir_list' +'-value-,RUBY(LIB|OPT|PATH),-default-' '_ruby' +'*/X11(|R<4->)/*' '_x_arguments' +'yodl(|2*)' '_yodl' +'zf*' '_zftp' +) + +_compautos=( +'_call_program' '+X' +) + +zle -C _bash_complete-word .complete-word _bash_completions +zle -C _bash_list-choices .list-choices _bash_completions +zle -C _complete_debug .complete-word _complete_debug +zle -C _complete_help .complete-word _complete_help +zle -C _complete_tag .complete-word _complete_tag +zle -C _correct_filename .complete-word _correct_filename +zle -C _correct_word .complete-word _correct_word +zle -C _expand_alias .complete-word _expand_alias +zle -C _expand_word .complete-word _expand_word +zle -C _history-complete-newer .complete-word _history_complete_word +zle -C _history-complete-older .complete-word _history_complete_word +zle -C _list_expansions .list-choices _expand_word +zle -C _most_recent_file .complete-word _most_recent_file +zle -C _next_tags .list-choices _next_tags +zle -C _read_comp .complete-word _read_comp +bindkey '^X^R' _read_comp +bindkey '^X?' _complete_debug +bindkey '^XC' _correct_filename +bindkey '^Xa' _expand_alias +bindkey '^Xc' _correct_word +bindkey '^Xd' _list_expansions +bindkey '^Xe' _expand_word +bindkey '^Xh' _complete_help +bindkey '^Xm' _most_recent_file +bindkey '^Xn' _next_tags +bindkey '^Xt' _complete_tag +bindkey '^X~' _bash_list-choices +bindkey '^[,' _history-complete-newer +bindkey '^[/' _history-complete-older +bindkey '^[~' _bash_complete-word + +autoload -Uz _bat _bluetoothctl _bootctl _bun _busctl \ + _cargo _checkupdates _coredumpctl _curl _email-notmuch \ + _hostnamectl _img2sixel _journalctl _jupyter _kernel-install \ + _libinput _localectl _loginctl _machinectl _mkinitcpio \ + _mpv _mutt-wizard.zsh _networkctl _ninja _notmuch \ + _oomctl _paccache _pacdiff _paclist _paclog-pkglist \ + _pacman _pacscripts _pacsearch _pacsort _pactree \ + _paru _pass _pulseaudio _qrcp _rankmirrors \ + _rclone _resolvectl _sd_hosts_or_user_at_host _sd_machines _sd_outputmodes \ + _sd_unit_files _systemctl _systemd _systemd-analyze _systemd-delta \ + _systemd-inhibit _systemd-nspawn _systemd-path _systemd-run _systemd-tmpfiles \ + _timedatectl _tremc _udevadm _updpkgsums _xwallpaper \ + _yay _yt-dlp _zathura _cdr _all_labels \ + _all_matches _alternative _approximate _arg_compile _arguments \ + _bash_completions _cache_invalid _call_function _combination _complete \ + _complete_debug _complete_help _complete_help_generic _complete_tag _comp_locale \ + _correct _correct_filename _correct_word _describe _description \ + _dispatch _expand _expand_alias _expand_word _extensions \ + _external_pwds _generic _guard _history _history_complete_word \ + _ignored _list _main_complete _match _menu \ + _message _most_recent_file _multi_parts _next_label _next_tags \ + _normal _nothing _numbers _oldlist _pick_variant \ + _prefix _read_comp _regex_arguments _regex_words _requested \ + _retrieve_cache _sep_parts _sequence _set_command _setup \ + _store_cache _sub_commands _tags _user_expand _values \ + _wanted _acpi _acpitool _alsa-utils _analyseplugin \ + _basenc _brctl _btrfs _capabilities _chattr \ + _chcon _choom _chrt _cpupower _cryptsetup \ + _dkms _e2label _ethtool _findmnt _free \ + _fuse_arguments _fusermount _fuse_values _gpasswd _htop \ + _iconvconfig _ionice _ipset _iptables _iwconfig \ + _kpartx _losetup _lsattr _lsblk _lsns \ + _lsusb _ltrace _mat _mat2 _mdadm \ + _mii-tool _modutils _mondo _networkmanager _nsenter \ + _opkg _perf _pidof _pmap _qdbus \ + _schedtool _selinux_contexts _selinux_roles _selinux_types _selinux_users \ + _setpriv _setsid _slabtop _ss _sshfs \ + _strace _sysstat _tload _tpb _tracepath \ + _tune2fs _uml _unshare _valgrind _vserver \ + _wakeup_capable_devices _wipefs _wpa_cli _a2ps _aap \ + _abcde _absolute_command_paths _ack _adb _ansible \ + _ant _antiword _apachectl _apm _arch_archives \ + _arch_namespace _arp _arping _asciidoctor _asciinema \ + _at _attr _augeas _avahi _awk \ + _base64 _basename _bash _baudrates _baz \ + _beep _bibtex _bind_addresses _bison _bittorrent \ + _bogofilter _bpf_filters _bpython _bzip2 _bzr \ + _cabal _cal _calendar _canonical_paths _cat \ + _ccal _cdcd _cdrdao _cdrecord _chkconfig \ + _chmod _chown _chroot _chsh _cksum \ + _clay _cmdambivalent _cmdstring _cmp _column \ + _comm _composer _compress _configure _cowsay \ + _cp _cpio _cplay _crontab _cscope \ + _csplit _cssh _ctags _ctags_tags _curl \ + _cut _cvs _darcs _date _date_formats \ + _dates _dbus _dconf _dd _devtodo \ + _df _dhclient _dict _dict_words _diff \ + _diff3 _diff_options _diffstat _dig _directories \ + _dir_list _django _dmesg _dmidecode _dns_types \ + _doas _domains _dos2unix _drill _dropbox \ + _dsh _dtruss _du _dvi _ecasound \ + _ed _elfdump _elinks _email_addresses _enscript \ + _entr _env _espeak _etags _fakeroot \ + _feh _fetchmail _ffmpeg _figlet _file_modes \ + _files _file_systems _find _find_net_interfaces _finger \ + _flac _flex _fmt _fold _fortune \ + _fsh _fuser _gcc _gcore _gdb \ + _gem _genisoimage _getconf _getent _getfacl \ + _getmail _getopt _ghostscript _git _global \ + _global_tags _gnu_generic _gnupod _gnutls _go \ + _gpg _gphoto2 _gprof _gradle _graphicsmagick \ + _grep _groff _groups _growisofs _gsettings \ + _guilt _gzip _have_glob_qual _head _hexdump \ + _host _hostname _hosts _iconv _id \ + _ifconfig _iftop _imagemagick _initctl _init_d \ + _install _iostat _ip _ipsec _irssi \ + _ispell _java _java_class _joe _join \ + _jq _killall _knock _kvno _last \ + _ldconfig _ldd _ld_debug _less _lha \ + _libvirt _links _list_files _lldb _ln \ + _loadkeys _locale _localedef _locales _locate \ + _logger _look _lp _ls _lsof \ + _lua _luarocks _lynx _lz4 _lzop \ + _mail _mailboxes _make _man _md5sum \ + _mencal _mh _mime_types _mkdir _mkfifo \ + _mknod _mktemp _module _monotone _moosic \ + _mosh _mount _mpc _mt _mtools \ + _mtr _mutt _mv _my_accounts _myrepos \ + _mysqldiff _mysql_utils _ncftp _netcat _net_interfaces \ + _netstat _newsgroups _nginx _ngrep _nice \ + _nkf _nl _nm _nmap _npm \ + _nslookup _numfmt _objdump _object_files _od \ + _openstack _opustools _other_accounts _pack _pandoc \ + _paste _patch _patchutils _path_commands _path_files \ + _pax _pbm _pdf _perforce _perl \ + _perl_basepods _perldoc _perl_modules _pgids _pgrep \ + _php _picocom _pids _pine _ping \ + _pip _pkgadd _pkg-config _pkginfo _pkg_instance \ + _pkgrm _pon _ports _postfix _postgresql \ + _postscript _pr _printenv _printers _process_names \ + _prove _ps _pspdf _psutils _ptx \ + _pump _pv _pwgen _pydoc _python \ + _python_modules _qemu _quilt _rake _ranlib \ + _rar _rclone _rcs _readelf _readlink \ + _remote_files _renice _ri _rlogin _rm \ + _rmdir _route _rrdtool _rsync _rubber \ + _ruby _runit _samba _sccs _scons \ + _screen _script _seafile _sed _seq \ + _service _services _setfacl _sh _shasum \ + _showmount _shred _shuf _shutdown _signals \ + _sisu _slrn _smartmontools _socket _sort \ + _spamassassin _split _sqlite _sqsh _ssh \ + _ssh_hosts _stat _stdbuf _stgit _stow \ + _strings _strip _stty _su _subversion \ + _sudo _surfraw _swaks _swanctl _swift \ + _sys_calls _sysctl _tac _tail _tar \ + _tar_archive _tardy _tcpdump _tcptraceroute _tee \ + _telnet _terminals _tex _texi _texinfo \ + _tidy _tiff _tilde_files _timeout _time_zone \ + _tin _tla _tmux _todo.sh _toilet \ + _top _topgit _totd _touch _tput \ + _tr _transmission _tree _truncate _truss \ + _tty _ttys _twidge _twisted _umountable \ + _unace _uname _unexpand _uniq _unison \ + _units _uptime _urls _user_admin _user_at_host \ + _users _users_on _vi _vim _visudo \ + _vmstat _vorbis _vpnc _w _w3m \ + _watch _wc _webbrowser _wget _whereis \ + _who _whois _wiggle _xargs _xmlsoft \ + _xmlstarlet _xmms2 _xxd _xz _yafc \ + _yodl _yp _zcat _zdump _zfs \ + _zfs_dataset _zfs_pool _zip _zsh _acroread \ + _code _dcop _eog _evince _geany \ + _gnome-gv _gqview _gv _kdeconnect _kfmclient \ + _matlab _mozilla _mplayer _mupdf _nautilus \ + _nedit _netscape _okular _pdftk _qiv \ + _rdesktop _setxkbmap _sublimetext _urxvt _vnc \ + _x_arguments _xauth _xautolock _x_borderwidth _xclip \ + _x_color _x_colormapid _x_cursor _x_display _xdvi \ + _x_extension _xfig _x_font _xft_fonts _x_geometry \ + _xinput _x_keysym _xloadimage _x_locale _x_modifier \ + _xmodmap _x_name _xournal _xpdf _xrandr \ + _x_resource _xscreensaver _x_selection_timeout _xset _xt_arguments \ + _xterm _x_title _xt_session_id _x_utils _xv \ + _x_visual _x_window _xwit _zeal _add-zle-hook-widget \ + _add-zsh-hook _alias _aliases __arguments _arrays \ + _assign _autocd _bindkey _brace_parameter _builtin \ + _cd _command _command_names _compadd _compdef \ + _completers _condition _default _delimiters _directory_stack \ + _dirs _disable _dynamic_directory_name _echotc _echoti \ + _emulate _enable _equal _exec _fc \ + _file_descriptors _first _functions _globflags _globqual_delims \ + _globquals _hash _history_modifiers _in_vared _jobs \ + _jobs_bg _jobs_builtin _jobs_fg _kill _limit \ + _limits _math _math_params _mere _module_math_func \ + _options _options_set _options_unset _parameter _parameters \ + _precommand _print _prompt _ps1234 _read \ + _redirect _run-help _sched _set _setopt \ + _source _strftime _subscript _suffix_alias_files _tcpsys \ + _tilde _trap _ttyctl _typeset _ulimit \ + _unhash _user_math_func _value _vared _vars \ + _vcs_info _vcs_info_hooks _wait _which _widgets \ + _zargs _zattr _zcalc _zcalc_line _zcompile \ + _zed _zftp _zle _zmodload _zmv \ + _zparseopts _zpty _zsh-mime-handler _zsocket _zstyle \ + _ztodo +autoload -Uz +X _call_program + +typeset -gUa _comp_assocs +_comp_assocs=( '' ) diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 3b0e9e9..0270382 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -17,9 +17,9 @@ SAVEHIST=10000 HISTFILE=~/.cache/zsh/history # Load aliases and shortcuts if existent. -[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shortcutrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shortcutrc" -[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/aliasrc" -[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/zshnameddirrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/zshnameddirrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" # Basic auto/tab complete: autoload -U compinit @@ -101,8 +101,9 @@ bindkey '^e' edit-command-line #Fuzzy finder integration -source $HOME/.local/src/fzf/shell/key-bindings.zsh +source /usr/share/fzf/key-bindings.zsh +#source /usr/share/zsh/plugins/*/*.zsh #AUTOSUGGEST CONFIG bindkey '^ ' autosuggest-accept bindkey '^' autosuggest-accept @@ -113,8 +114,9 @@ ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20 #Might be useful for large buffers, but async ZSH_AUTOSUGGEST_STRATEGY=(match_prev_cmd completion) # completion strategy, possible values: history, completion, match_prev_cmd or a combination of those ZLE_PROMPT_INDENT=0 -source $HOME/.local/src/zsh-autosuggestions/zsh-autosuggestions.zsh +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh # increment/decriment via Ctrl+a, Ctrl+x source $HOME/.local/src/vi-increment/vi-increment.zsh # Load syntax highlighting; should be last. -source $HOME/.local/src/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null +source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null +LS_COLORS='rs=0:di=41;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'; diff --git a/.gtkrc-2.0 b/.gtkrc-2.0 new file mode 120000 index 0000000..20593d7 --- /dev/null +++ b/.gtkrc-2.0 @@ -0,0 +1 @@ +.config/gtk-2.0/gtkrc-2.0 \ No newline at end of file diff --git a/.local/bin/SCRIPTS.md b/.local/bin/SCRIPTS.md deleted file mode 100644 index 08bca91..0000000 --- a/.local/bin/SCRIPTS.md +++ /dev/null @@ -1,87 +0,0 @@ -# Directory of Scripts - -I keep all my user-created scripts here in `~/.local/bin/`. Scripts are sorted -into sub-directories for easy management, and all are seamlessly added to -`$PATH` with the command below in `~/.profile`: - -``` -export PATH="$(du $HOME/.local/bin/ | cut -f2 | tr '\n' ':')$PATH" -``` - -## `statusbar/` - -For modules used in i3blocks. - -- `battery` -- i3blocks module. Shows available power remaining with icon indicating battery status. Colors indicate different levels of charge. -- `clock` -- Shows time and date. If clicked, brings up calender or coming calcuse events. -- `cpu` -- Shows CPU temperature. If clicked, shows most processor-intensive processes. -- `help` -- Module which appears as a question mark. Brings up readme if clicked. -- `internet` -- Shows whether machine is connected to wifi and ethernet. If clicked, brings up `nmtui`. -- `mailbox` -- i3blocks module for use with mutt-wizard. Shows unread mail and if `mailsync.sh` is running. -- `mem` -- Shows memory usage. If clicked, shows most memory-intensive processes. -- `music` -- i3blocks module. Shows current song; if paused, name will be grayed and italic. -- `mpdupdate` -- A daemon running by default that will update the i3mpd block on mpd change. -- `news` -- Shows unread newsboat articles. Brings up newsboat or refreshes RSS feeds. -- `pacpackages` -- i3blocks module. Detects new installable upgrades. Only works if you use cronjobs to automatically sync repositories. -- `popupgrade` -- Called by clicking on the update icon if there are new packages. Spawns a `yay` upgrade of the main Arch repos and AUR packages, updates the i3blocks module once complete. -- `torrent` -- i3blocks module. Shows torrents idle (โŒ›๏ธ), downloading (โฌ‡๏ธ) or finished (๐ŸŒฑ). -- `volume` -- i3blocks module. Shows volume percentage or mute notification. -- `weather` -- i3blocks module. Gets weather forcast from wttr.in and returns today's precipitation chance (โ˜”), daily low (โ„๏ธ) and daily high (โ˜€๏ธ). - -## `cron/` - -For scripts meant to be cronjobs. None are active by default on LARBS. - -- `checkup` -- If connected to internet, syncs package repositories and downloads (but does not install) any potential updates. Gives `notify-send` notifications of when it is active since other `pacman` install commands cannot be run simultaneously. You may need to grant your user the ability to run `pacman -Syyuw --noconfirm` without a password (done in `/etc/sudoers`). -- `cronbat` -- Gives a dunst notification if the battery is less than 25%. -- `crontog` -- Not actually a cronjob, but just turns off/on all user cronjobs. -- `getforecast` -- Updates the weather forecast. This is automatically run by `weather` if there hasn't been a new forecast today. -- `newsup` -- Updates newsboat RSS feeds if connected to internet. Will also display a newspaper update icon on i3blocks if it has not be user disabled. - -## `tools/` - -Scripts intended to be run either manually by the user or linked to a shortcut -in vim or another program. - -- `compiler` -- Compiles a markdown, R markdown or LaTeX document with the approriate command. Will also run `make && sudo make install` if in a `config.h` file. Otherwise it will create a sent presentation. This can be thought of a general output handler. I have it bound to `c` in vim. -- `dmenuhandler` -- Give this script a url and it will offer dmenu options for opening it. Used by `newsboat` and some other programs as a link handler. -- `extract` -- Will detect file type of archive and run appropriate extraction command. -- `getbib` -- Use crossref.org to automatically detect bibtex entry of a .pdf. Attempts to search for the .pdf's DOI. Returns nothing if none detected. -- `getkeys` -- Get the LARBS documentation on what bindings exist for main programs. -- `linkhandler` -- The automatic link handler used by `newsboat` and other programs. Urls of video sites or of video files are opened in `mpv`, images are downloaded/opened in `feh`, music files are downloaded with `wget` and all other urls are opened in the default browser. -- `lmc` -- A music controller that simplifies music/audio management and improves the interface with i3blocks. Check inside to see what it does. This is what i3 audio/music commands run by default. If you use a difference music system or ALSA, you can change this script rather than changing all the shortcuts in different places. -- `note` -- Give this script some text/a message as an argument. It will print it to the terminal, and if `dunst` is running, display a notification. -- `opout` -- "Open output", opens the corresponding `.pdf` file if run on a `.md`, `.tex` or `.rmd` file, or if given an `.html` file, will open it in the browser. Bound to `p` in my vim config to reveal typical output. -- `pauseallmpv` -- Pauses all mpv instances by sending the `,` key to each. Used by several scripts, but can be used alone as well. It will not pause an audio only mpv instance. If you know how to add a hack to do this, feel free to PR it or email me an addition. -- `remaps` -- Remaps capslock to escape when pressed and super/mod when held. Maps the menu key to super as well. Runs the US international keyboard setup. If you want another keyboard setup, edit this fine. -- `shortcuts` -- For updating bash and ranger shortcuts. Reads `~/.config/bmdirs` and `~/.config/bmfiles` for pairs of keypresses and directories and files, then autoproduces bash aliases and ranger shortcuts for them which output to `~/.config/shortcutrc` and `~/.config/ranger/shortcuts.conf` respectively. These are read automatically by my bash and ranger configs. You don't have to run this script manually though, as it's run by vim whenever you edit one of the `~/.bm*` files. -- `speedvid` -- Speed up a given video file (`$1`) by a given ammount (`$2`). -- `tpb` -- Search Pirate Bay for the certain search terms given as arguments. -- `texclear` -- Remove all `.tex` related build files. This is run by my vim when I stop editing any `.tex` file. -- `transadd` -- The mimeapp default script for handling torrent magnet links. Starts `transmission-daemon` if not running and adds the link. - -## `i3cmds` - -These are scripts linked to bindings in i3. They typically perform -user-interface actions or involve dmenu. - -- `bottomleft` and `bottomright` -- Makes the currently selected window float in one of the bottom corners of the screen. `bottomleft` is bound to `mod+B` by default. -- `camtoggle` -- Starts/kills /dev/video0 webcam. Placed in bottom right by default. -- `ddspawn` -- This is the script called to create, show and hide the dropdown tmux terminal mapped to `mod+u`, but also the dropdown calculator mapped to `mod+a`. Give the script an argument that is a script the window will run. If a window does not already exist, `ddspawn` creates it, if it does, `ddspawn` will toggle its visibility. The the script itself for usage. -- `displayselect` -- Select which displays to use. Bound to `mod+F3`. -- `dmenumount` -- Gives a dmenu prompt for mounting USB drives or Android devices. Bound to `mod+F9`. Will do nothing if none are available. -- `dmenurecord` -- Gives a list of recording commands: `audio`, `video` and `screencast` (both) in dmenu for selection. Bound to `mod+PrintScreen` by default. Should be killed by `killrecording`. -- `dmenuumount` -- Unmount a mounted non-essential partition. Bound to `mod+F10`. Will do nothing if none are mounted. It will not try to unmount essential system partitions. -- `dmenuunicode` -- Shows a searchable dmenu prompt of emoji characters. The selected emoji is copied to the system clipboard, while its character code is copied to primary selection (middle mouse button). -- `dropdowncalc` -- The dropdown calculator script called by `ddspawn` and bound to `mod+a` by default. Will run an R calculator if installed, otherwise python. -- `ducksearch` -- Show a dmenu prompt and search for the inputed text in DuckDuckGo. Can take bangtags as expected, i.e. typing in `!aw Arch Linux` will search the Arch Wiki for "Arch Linux" or `!yt Luke Smith` will search YouTube for "Luke Smith", etc. -- `i3resize` -- A script that allows intuitive resizing of windows. Mapped to `mod+Y/U/I/O`. -- `killrecording` -- End a recording started by `dmenurecord` the proper way without file trucation or lingering background processes, mapped to `mod+Delete` by default. -- `lockscreen` -- The screen locker. Gives a confirm prompt and if user says yes, all audio will be paused and the screen will be distorted and locked and screen will soon time out. User must insert password to unlock. Mapped to `mod+x` by default. -- `newspod` -- A silly line that has a script all to itself due to i3's idiosyncracies. Starts `newsboat`, if `newsboat` cannot open because of another instance being open, opens `podboat`. -- `prompt` -- Gives a Yes/No prompt to a question given as an argument. Used by numerous bindings like `mod+shift+x`, `mod+shift+backspace` and `mod+shift+escape`. -- `samedir` -- Opens a terminal window in the same directory as the window currently selection. Bound to `mod+shift+enter`. -- `td-toggle` -- Gives a dmenu prompt to start `transmission-daemon` if not running, or the kill it if it is. Obviously you need `transmission-cli` installed for this to work. Mapped to `mod+F7` by default. -- `tmuxdd` -- The startup script for the dropdown terminal (toggleable with `mod+u`). Either attaches to an existing tmux session or begins a new one. -- `toggletouchpad` -- As the name suggests, turns off TouchPad if on, and turns it on if off. Requires `xf86-input-synaptics`. If your laptop has a special button for this, it will be mapped by default. -- `tutorialvids` -- A dmenu prompt that gives some options of tutorial videos to watch. Bound to `mod+shift+e`. diff --git a/.local/bin/booksplit b/.local/bin/booksplit deleted file mode 100755 index 2e0b9a3..0000000 --- a/.local/bin/booksplit +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh - -# Requires ffmpeg (audio splitting) and my `tag` wrapper script. - -[ ! -f "$2" ] && printf "The first file should be the audio, the second should be the timecodes.\\n" && exit - -echo "Enter the album/book title:"; read -r booktitle - -#echo "Enter the artist/author:"; read -r author - -echo "Enter the publication year:"; read -r year - -inputaudio="$1" - -# Get a safe file name from the book. -#iconv -cf UTF-8 -t ASCII//TRANSLIT -escbook="$(echo "$booktitle" | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")" - -! mkdir -p "$escbook" && echo "Do you have write access in this directory?" && exit 1 - -# As long as the extension is in the tag script, it'll work. -ext="opus" -#ext="${1#*.}" - -# Get the total number of tracks from the number of lines. -total="$(wc -l < "$2")" - -while read -r x; -do - end="$(echo "$x" | cut -f1)" - - [ -n "$start" ] && - echo "From $start to $end; $track $title" - file="$escbook/$(printf "%.2d" "$track")-$esctitle.$ext" - [ -n "$start" ] && echo "Splitting \"$title\"..." && - ffmpeg -nostdin -y -i "$inputaudio" -ss "$start" -to "$end" -vn -c copy "$file" && - echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file" - title="$(echo "$x" | cut -f 2)" - author="$(echo "$x" | cut -f 3)" - #| iconv -cf UTF-8 -t ASCII//TRANSLIT - esctitle="$(echo "$title" | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '_' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")" - track="$((track+1))" - start="$end" -done < "$2" -# The last track must be done outside the loop. -echo "From $start to the end: $title" -file="$escbook/$(printf "%.2d" "$track")-$esctitle.$ext" -echo "Splitting \"$title\"..." && ffmpeg -nostdin -y -loglevel -8 -i "$inputaudio" -ss "$start" -vn -c copy "$file" && - echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file" diff --git a/.local/bin/bt b/.local/bin/bt deleted file mode 100755 index d4b294e..0000000 --- a/.local/bin/bt +++ /dev/null @@ -1,247 +0,0 @@ -#!/bin/sh -SCAN_PERIOD=5 -AUTOTRUST=false #trust every newly paired device -AUTOSCAN=false #immediately start scanning when started to speed up pairing process -#If you want to update symbols in your status bar add your details below: -bar="dwmblocks" -barsignal="4" - -#locations of blacklist and hard coded list of paired devices (watch out, need to modify Makefile as well if you want to change these values and still use make install) -BLACKLIST=${XDG_DATA_HOME:-$HOME/.local/share}/bt/blacklist -PAIRLIST=${XDG_DATA_HOME:-$HOME/.local/share}/bt/paired - -actions="pair -unpair" - -[ "$AUTOTRUST" = false ] && actions="${actions} -trust" - -#Checks for necessary programs to be present. Very unlikely not to be present but let's just err on the safer side. -for prog in dmenu bluetoothctl awk cat date nl; do - if ! hash "$prog" 2>/dev/null; then - printf 'bthandler: %s: command not found\n' "$prog" >&2 - exit 127 - fi -done - -power(){ - powerstatus="$( bluetoothctl show | grep Powered | awk '{print $2}' )" - if [ "$powerstatus" = "no" ]; then - [ "$1" = on ] && bluetoothctl power on - elif [ "$powerstatus" = "yes" ]; then - [ "$1" = off ] && bluetoothctl power off - fi -} - -scan(){ - scanstatus="$( bluetoothctl show | grep Discovering | awk '{print $2}' )" - if [ "$1" = on ]; then - #sets variable in case scanning was no already on before the start of bt - [ -f /tmp/bt_start_scan$$ ] || start_scan="$( date +'%s' )" - if [ "$scanstatus" = "no" ]; then - bluetoothctl scan on & - start_scan="$( date +'%s' )" - fi - echo "$start_scan" > /tmp/bt_start_scan$$ - elif [ "$1" = off ]; then - if [ "$scanstatus" = "yes" ]; then - bluetoothctl scan off - fi - fi -} - -#Check bluetoothctl paired-devices for new devices to be hardcoded into pair list -update_pair_list(){ - btctl_paired_devices="$(bluetoothctl paired-devices)" - if [ -n "$btctl_paired_devices" ] - then - btctl_not_in_list="$( echo "$btctl_paired_devices" | grep -vf "$PAIRLIST")" - [ -n "$btctl_not_in_list" ] && echo "$btctl_not_in_list" >> "$PAIRLIST" - fi -} - - -#start scanning as early as possible to speed up pairing process -startup(){ - #remove old tmp files - for f in /tmp/* - do - case $f in - /tmp/bt_start_scan*) rm "$f";; - *) true;; - esac - done - if $AUTOSCAN - then - power on - scan on - fi -} - - -if [ "$1" = "edit" ]; then - case $2 in - "pairlist")${EDITOR:-vim} "$PAIRLIST" && exit;; - "blacklist")${EDITOR:-vim} "$BLACKLIST" && exit;; - *)true;; - esac -fi -#Sadly needs to be run without '&' for now, since it otherwise breaks start_scan variable -startup & -update_pair_list & - -# include head command here to speed up launch if too many devices are listed (long uptime and long scanning will lead to this depending on your surroundings) -# shellcheck disable=SC1091 -if bluetoothctl devices | head | awk '{print "bluetoothctl info "$2}' | . /dev/stdin | grep -q "Connected: yes" -then - actions="$(printf "disconnect\n%s" "$actions")" -fi - - -#Compile list of all Bluetooth IDS of paired devices (from bluetoothctl and from hardcoded list) -bt_IDS="$( ( bluetoothctl paired-devices && cat "$PAIRLIST" ) | sort -u | awk '{print $2}' )" - -#Compile list of all device Names of paired devices (from bluetoothctl and from hardcoded list) -paired_devices="$( ( bluetoothctl paired-devices && cat "$PAIRLIST" ) | sort -u | awk '{for (i=3; i /dev/null - pkill -RTMIN+$barsignal $bar - exit 0 -} - -pair(){ - #since this function can get called indefinitely, make sure to always be scanning and controller has power in the case that it got deactived by some other process. - power on - scan on - #check whether $SCAN_PERIOD seconds has already passed since starting scanning, if not, wait for the rest of that time. - start_scan="$(cat /tmp/bt_start_scan$$)" - if [ $(( $(date +'%s') - $start_scan )) -lt $SCAN_PERIOD ]; then - sleep_period="$(( $SCAN_PERIOD - $( date +'%s') + $start_scan ))" - [ "$sleep_period" -gt 1 ] && plural="s" - notify-send "Bluetooth" "Searching for devices, please wait $sleep_period second$plural" - sleep "$sleep_period" - fi - all_devices="$( bluetoothctl devices )" - if [ "$paired_devices" = "" ]; then - new_devices="$( echo "$all_devices" | awk '{for (i=3; i /tmp/paired_devices$$ - filtered_devices="$( echo "$all_devices" | grep -v "$paired_devices")" - bt_IDS="$( echo "$filtered_devices" | awk '{print $2}' )" - new_devices="$( echo "$filtered_devices" | awk '{for (i=3; i /tmp/bt_start_scan$$ - pair - else - dev_no=$( echo "$new_devices" | nl | grep "$choice" | awk '{print $1}') - dev_id=$( echo "$bt_IDS" | nl | grep -P "^.*$dev_no\t" | awk '{print $2}' ) - #only attempt to connect if pairing succeeds - bluetoothctl pair "$dev_id" && ( pair_succesful=true && bluetoothctl connect "$dev_id" ) || pair_succesful=false - if $AUTOTRUST; then - bluetoothctl trust "$dev_id" - fi - #if device is not already hard coded as paired, add to paired devices list - if $pair_succesful && [ "$( grep "$dev_id" "$PAIRLIST")" = "" ] || [ "$(wc -l "$PAIRLIST")" -eq 0 ] - then - echo to be added to "$PAIRLIST": - echo Device "$dev_id" "$choice" - echo Device "$dev_id" "$choice" >> "$PAIRLIST" - fi - fi - fi -} - -case $choice in - "power on") bluetoothctl power on;; - "power off") bluetoothctl power off;; - "scan on") bluetoothctl power on && echo power on && sleep 2 - ([ -n "$TERMINAL" ] && $TERMINAL -e bluetoothctl scan on ) || st bluetoothctl scan on;; - "pair") pair;; - "unpair") choice=$( echo "$paired_devices" | dmenu -l 10 -i -p 'remove which paired device?') - if [ -n "$choice" ]; then - dev_no=$( echo "$paired_devices" | nl | grep -P "[0-9]+\t$choice$" | awk '{print $1}') - dev_id=$( echo "$bt_IDS" | nl | grep -P "^.*$dev_no\t" | awk '{print $2}' ) - bluetoothctl remove "$dev_id" - #remove device to unpair from hard coded paired devices list - new_paired_list="$( grep -v "$dev_id" "$PAIRLIST" )" - if [ "$new_paired_list" != "" ] - then - echo "$new_paired_list" > "$PAIRLIST" - else - rm -rf "$PAIRLIST" - touch "$PAIRLIST" - fi - fi;; - - "trust") - #search through all devices which are connected and only list those as options - # shellcheck disable=SC1091 - untrusted_devices="$( awk '{print "bluetoothctl info "$2}' "$PAIRLIST" | . /dev/stdin | grep -E '(Alias:|Trusted:)' | sed -e 'N;s/\n/;/;s/^.?*Alias: //' | grep "Trusted: no" | awk -F ';' '{print $1}' )" - if [ "$( echo "$untrusted_devices" | wc -l )" -gt 0 ] - then - choice=$( echo "$untrusted_devices" | dmenu -l 10 -i -p 'remove which paired device?') - else - notify-send "Bluetooth" "No paired devices that are not trusted" - fi - if [ -n "$choice" ]; then - dev_no=$( echo "$paired_devices" | nl | grep -P "[0-9]+\t$choice$" | awk '{print $1}') - dev_id=$( echo "$bt_IDS" | nl | grep -P "^.*$dev_no\t" | awk '{print $2}' ) - bluetoothctl trust "$dev_id" - fi;; - "disconnect") - #search through all devices which are connected and only list those as options - # shellcheck disable=SC1091 - connected_devices="$( bluetoothctl devices | awk '{print "bluetoothctl info "$2}' | . /dev/stdin | grep -E '(Alias:|Connected:)' | sed -e 'N;s/\n/;/;s/^.?*Alias: //' | grep "Connected: yes" | awk -F ';' '{print $1}' )" - echo "$connected_devices" - #only open dmenu prompt if there is more than one connected device - if [ "$( echo "$connected_devices" | wc -l )" -gt 1 ] - then - choice=$( echo "$connected_devices" | dmenu -l 10 -i -p 'remove which paired device?') - else - choice="$connected_devices" - fi - #only there was a choice (instead of canceling the dmenu) - if [ -n "$choice" ]; then - dev_no=$( echo "$paired_devices" | nl | grep -P "[0-9]+\t$choice$" | awk '{print $1}') - dev_id=$( echo "$bt_IDS" | nl | grep -P "^.*$dev_no\t" | awk '{print $2}' ) - bluetoothctl disconnect "$dev_id" - fi;; - "blacklist") - choice=$( echo "$paired_devices" | dmenu -l 10 -i -p 'blacklist which paired device from selection?') - if [ -n "$choice" ]; then - echo "$choice" >> "$BLACKLIST" - fi;; - *) - dev_no=$( echo "$paired_devices" | nl | grep -P "[0-9]+\t$choice$" | awk '{print $1}') - [ "$dev_no" != "" ] && dev_id=$( echo "$bt_IDS" | nl | grep -P "^.*$dev_no\t" | awk '{print $2}') - if [ -n "$dev_id" ]; then - power on - if bluetoothctl info "$dev_id" | grep -q "Connected: yes" - then - bluetoothctl disconnect "$dev_id" - else - bluetoothctl devices | grep -q "$dev_id" || bluetoothctl pair "$dev_id" - bluetoothctl connect "$dev_id" - fi - fi;; -esac - -cleanup diff --git a/.local/bin/cabl b/.local/bin/cabl deleted file mode 100755 index 8bc59c5..0000000 --- a/.local/bin/cabl +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# Dependencies are xclip and xorg-xprop. -# qrencode required for qrcode generation. -# groff/zathura required for man pages. -prim="$(xclip -o -selection 'clipboard')"; [ -z "$prim" ] && exit - -PID=$(xprop -id "$(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')" | grep -m 1 PID | cut -d " " -f 3) -PID=$(echo "$(pstree -lpA "$PID" | tail -n 1)" | awk -F'---' '{print $NF}' | sed -re 's/[^0-9]//g') -cd "$(readlink /proc/"$PID"/cwd)" -[ -f "$prim" ] && xdg-open "$prim" && exit -[ -d "$prim" ] && "$TERMINAL" "$prim" && exit - -websearch() { "$BROWSER" "https://duckduckgo.com/?q=$@" ;} -wikipedia() { "$BROWSER" "https://en.wikipedia.org/wiki/$@" ;} -wiktionary() { "$BROWSER" "https://en.wiktionary.org/wiki/$@" ;} -maps() { "$BROWSER" "https://www.openstreetmap.org/search?query=$@" ;} -ebay() { "$BROWSER" "https://www.ebay.com/sch/$@" ;} - -echo "$prim" | grep "^.*\.[A-Za-z]\+.*" >/dev/null && gotourl() { "$BROWSER" "$@" ;} -echo "$prim" | grep "^.*@.*\.[A-Za-z]\+$" >/dev/null && email() { xdg-email "$@" ;} -command -v qrencode >/dev/null && qrcode() { qrencode "$@" -s 10 -o /tmp/qr.png && xdg-open /tmp/qr.png ;} -man -k "^$prim$" >/dev/null && manual() { man -Tpdf "$prim" | zathura - ;} - -func="$(declare -F | awk '{print $3}' | dmenu -p "Plumb \"$(echo "$prim" | cut -c -30)\" to?" -i -l 15)" - -[ -z "$func" ] || "$func" "$prim" diff --git a/.local/bin/castscreen b/.local/bin/castscreen deleted file mode 100755 index 21bfd4e..0000000 --- a/.local/bin/castscreen +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -xrandr --output eDP-1 --mode 1920x1080 --auto -xrdb -merge ~/.config/X11/Xres_casting -setbg -#wal -q -i ~/.config/wall.png -b '000000' -pkill dwm -pgrep dwmblocks && dwmblocks & st mkchromecast --video --control --screencast -s -xrandr --output eDP-1 --mode 3200x1800 --auto -xrdb -merge ~/.config/X11/Xresources -setbg -#wal -q -i ~/.config/wall.png -b '000000' -pkill dwm -pgrep dwmblocks && dwmblocks & disown diff --git a/.local/bin/compiler b/.local/bin/compiler deleted file mode 100755 index d191407..0000000 --- a/.local/bin/compiler +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -# This script will compile or run another finishing operation on a document. I -# have this script run via vim. -# -# Compiles .tex. groff (.mom, .ms), .rmd, .md. Opens .sent files as sent -# presentations. Runs scripts based on extention or shebang - -file=$(readlink -f "$1") -dir=$(dirname "$file") -base="${file%.*}" - -cd "$dir" || exit - -textype() { \ - command="pdflatex" - ( sed 5q "$file" | grep -i -q 'xelatex' ) && command="xelatex" - $command --output-directory="$dir" "$base" && - grep -i addbibresource "$file" >/dev/null && - biber --input-directory "$dir" "$base" && - $command --output-directory="$dir" "$base" && - $command --output-directory="$dir" "$base" - } - -case "$file" in - *\.ms) refer -PS -e "$file" | groff -me -ms -kept -T pdf > "$base".pdf ;; - *\.mom) refer -PS -e "$file" | groff -mom -kept -T pdf > "$base".pdf ;; - *\.[0-9]) refer -PS -e "$file" | groff -mandoc -T pdf > "$base".pdf ;; - *\.[rR]md) Rscript -e "rmarkdown::render('$file', quiet=TRUE)" ;; - *\.tex) textype "$file" ;; - *\.md) pandoc "$file" -V geometry:margin=1in --pdf-engine=xelatex -o "$base".pdf ;; - *config.h) sudo make install ;; - *\.c) cc "$file" -o "$base" && "$base" ;; - *\.py) python "$file" ;; - *\.m) octave "$file" ;; - *\.scad) openscad -o "$base".stl "$file" ;; - *\.go) go run "$file" ;; - *\.sent) setsid sent "$file" 2>/dev/null & ;; - *) sed 1q "$file" | grep "^#!/" | sed "s/^#!//" | xargs -r -I % "$file" ;; -esac diff --git a/.local/bin/cookies2nsformat b/.local/bin/cookies2nsformat new file mode 100755 index 0000000..13d9329 --- /dev/null +++ b/.local/bin/cookies2nsformat @@ -0,0 +1,33 @@ +#!/bin/node +/** + * @file Convert cookies copy/pasted from Chrome's Application -> Storage -> Cookies -> [domain] table, + * into the Netscape cookies format used by tools like `curl` or `youtube-dl`. + */ +const fs = require('fs'); + +const filename = process.argv[2]; +if (!filename) { + console.error(`Usage: node convert-cookies.js > netscape-cookies.txt`); + console.error(); + console.error(`Make sure to replace with the name of the\nfile in which you copy/pasted the cookies from Chrome's Application -> Storage -> Cookies.`); + console.error(`\nThen, pass the 'netscape-cookies.txt' file to 'curl' or 'youtube-dl' or any other tool\nthat reads cookies in the Netscape cookies format.`); + process.exit(1); +} + +const content = fs.readFileSync(filename, 'utf8'); +const cookies = content.split('\n'); + +console.log('# Netscape HTTP Cookie File'); + +for (const cookie of cookies) { + let [name, value, domain, path, expiration, /* size */, httpOnly] = cookie.split('\t'); + if (!name) + continue; + if (domain.charAt(0) !== '.') + domain = '.' + domain; + httpOnly = httpOnly === 'โœ“' ? 'TRUE' : 'FALSE' + if (expiration === 'Session') + expiration = new Date(Date.now() + 86400 * 1000); + expiration = Math.trunc(new Date(expiration).getTime() / 1000); + console.log([domain, 'TRUE', path, httpOnly, expiration, name, value].join('\t')); +} diff --git a/.local/bin/cron/IMPORTANT_NOTE.md b/.local/bin/cron/README.md similarity index 73% rename from .local/bin/cron/IMPORTANT_NOTE.md rename to .local/bin/cron/README.md index f5a130b..fa0c354 100644 --- a/.local/bin/cron/IMPORTANT_NOTE.md +++ b/.local/bin/cron/README.md @@ -5,7 +5,7 @@ These cronjobs have components that require information about your current displ When you add them as cronjobs, I recommend you precede the command with commands as those below: ``` -export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus; export DISPLAY=:0; . $HOME/.zprofile; then_command_goes_here +export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $USER)/bus; export DISPLAY=:0; . $HOME/.zprofile; then_command_goes_here ``` This ensures that notifications will display, xdotool commands will function and environmental variables will work as well. diff --git a/.local/bin/cron/checkup b/.local/bin/cron/checkup index 34ed61e..bd3c634 100755 --- a/.local/bin/cron/checkup +++ b/.local/bin/cron/checkup @@ -2,8 +2,6 @@ # Syncs repositories and downloads updates, meant to be run as a cronjob. -ping -q -c 1 1.1.1.1 > /dev/null || exit - notify-send "๐Ÿ“ฆ Repository Sync" "Checking for package updates..." sudo pacman -Syyuw --noconfirm || notify-send "Error downloading updates. diff --git a/.local/bin/cron/cronbat b/.local/bin/cron/cronbat deleted file mode 100755 index 2dc0950..0000000 --- a/.local/bin/cron/cronbat +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -# Notify me with notify-send if my battery is below 25%. -# You can set this to run via cron. - -[ "$(cat /sys/class/power_supply/BAT0/status)" = "Charging" ] && exit -[ "$(cat /sys/class/power_supply/BAT0/capacity)" -lt 25 ] && -export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus && -notify-send -u critical "Battery critically low." diff --git a/.local/bin/cron/crontog b/.local/bin/cron/crontog index 8168012..c9a640f 100755 --- a/.local/bin/cron/crontog +++ b/.local/bin/cron/crontog @@ -1,6 +1,6 @@ #!/bin/sh # Toggles all cronjobs off/on. -# Stores disabled crontabs in ~/.consaved until restored. +# Stores disabled crontabs in ~/.config/cronsaved until restored. -([ -f ${XDG_CONFIG_HOME:-$HOME/.config}/cronsaved ] && crontab - < ${XDG_CONFIG_HOME:-$HOME/.config}/cronsaved && rm ${XDG_CONFIG_HOME:-$HOME/.config}/cronsaved && notify-send "๐Ÿ•“ Cronjobs re-enabled.") || ( crontab -l > ${XDG_CONFIG_HOME:-$HOME/.config}/cronsaved && crontab -r && notify-send "๐Ÿ•“ Cronjobs saved and disabled.") +([ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved ] && crontab - < "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && rm "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && notify-send "๐Ÿ•“ Cronjobs re-enabled.") || ( crontab -l > "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && crontab -r && notify-send "๐Ÿ•“ Cronjobs saved and disabled.") diff --git a/.local/bin/cron/newsup b/.local/bin/cron/newsup index bf8898e..ed266d7 100755 --- a/.local/bin/cron/newsup +++ b/.local/bin/cron/newsup @@ -3,11 +3,9 @@ # Set as a cron job to check for new RSS entries for newsboat. # If newsboat is open, sends it an "R" key to refresh. -ping -q -c 1 1.1.1.1 > /dev/null || exit - /usr/bin/notify-send "๐Ÿ“ฐ Updating RSS feeds..." -ps ax | grep -q newsboat$ && /usr/bin/xdotool key --window "$(/usr/bin/xdotool search --name newsboat)" R && exit +pgrep -f newsboat$ && /usr/bin/xdotool key --window "$(/usr/bin/xdotool search --name "^newsboat$")" R && exit echo ๐Ÿ”ƒ > /tmp/newsupdate pkill -RTMIN+6 "${STATUSBAR:-dwmblocks}" diff --git a/.local/bin/cv b/.local/bin/cv deleted file mode 100755 index e41c6bc..0000000 --- a/.local/bin/cv +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -source $HOME/.config/aliasrc -alldata="/tmp/allfiles" -videos="/tmp/videos" -du -a ~/vids/* --time | sort -u | awk '!($1="")' | sort -bg | awk '!($1="")' | awk '!($1="")' | sed 's/^ //' | tac > $alldata -touch $videos -while read line; do - [ -f "$line" ] && echo $line >> $videos -done <$alldata -choice=$( cat $videos | dmenu -i -l 50 -p "Choose a video to watch:" ) -[ -n "$choice" ] && st mkchromecast --video --control -i "$choice" -rm -f "$alldata" -rm -f "$videos" diff --git a/.local/bin/ddspawn b/.local/bin/ddspawn deleted file mode 100755 index d4a4034..0000000 --- a/.local/bin/ddspawn +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# Toggle floating dropdown terminal in i3, or start if non-existing. -# $1 is the script run in the terminal. -# All other args are terminal settings. -# Terminal names are in dropdown_* to allow easily setting i3 settings. - -[ -z "$1" ] && exit - -script=$1 -shift -if xwininfo -tree -root | grep "(\"dropdown_$script\" "; -then - echo "Window detected." - i3 "[instance=\"dropdown_$script\"] scratchpad show; [instance=\"dropdown_$script\"] move position center" -else - echo "Window not detected... spawning." - i3 "exec --no-startup-id $TERMINAL -n dropdown_$script $@ -e $script" -fi diff --git a/.local/bin/displayselect b/.local/bin/displayselect index e73e2f4..3ca344e 100755 --- a/.local/bin/displayselect +++ b/.local/bin/displayselect @@ -5,7 +5,12 @@ # selection" which opens arandr. #automatically scale HD screens to better work with hidpi -scale_factor_HD=${1:-1.6} +scale_factor_HD=${1:-1.6666} +scale_outputs="HDMI-3 +DP-2 +HDMI-1-3 +DP1-2" + #fixes issue that script gets called twice for some reason [ "$(pgrep -c displayselect)" -gt 1 ] && exit @@ -40,9 +45,9 @@ twoscreen() { # If multi-monitor is selected and there are two screens. primary=$(echo "$screens" | dmenu -i -p "Select primary display:") secondary=$(echo "$screens" | grep -v "$primary") direction=$(printf "left\\nright" | dmenu -i -p "What side of $primary should $secondary be on?") - if [ "$primary" = "HDMI-1" ]; then + if $(echo "$scale_outputs" | grep -q "$primary"); then xrandr --output "$primary" --auto --scale $scale_factor_HD --output "$secondary" --"$direction"-of "$primary" --auto --scale 1.0x1.0 - elif [ "$secondary" = "HDMI-1" ]; then + elif $(echo "$scale_outputs" | grep -q "$seconday"); then xrandr --output "$primary" --auto --scale 1.0x1.0 --output "$secondary" --"$direction"-of "$primary" --auto --scale $scale_factor_HD else xrandr --output "$primary" --auto --scale 1.0x1.0 --output "$secondary" --"$direction"-of "$primary" --auto --scale 1.0x1.0 @@ -65,7 +70,7 @@ multimon() { # Multi-monitor handler. esac ;} onescreen() { # If only one output available or chosen. - xrandr --output "$1" --auto --scale 1.0x1.0 $(echo "$allposs" | grep -v "$1" | awk '{print "--output", $1, "--off"}' | tr '\n' ' ') + xrandr --output "$1" --auto --scale 1 $(echo "$allposs" | grep -v "$1" | awk '{print "--output", $1, "--off"}' | tr '\n' ' ') } postrun() { # Stuff to run to clean up. diff --git a/.local/bin/dmenuhandler b/.local/bin/dmenuhandler new file mode 100755 index 0000000..e50178a --- /dev/null +++ b/.local/bin/dmenuhandler @@ -0,0 +1,21 @@ +#!/bin/sh + +# Feed this script a link and it will give dmenu +# some choice programs to use to open it. +feed="${1:-$(true | dmenu -p 'Paste URL or file path')}" + +case "$(printf "copy url\\nnsxiv\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv loop\\nmpv float\\nqueue download\\nqueue yt-dlp\\nqueue yt-dlp audio" | dmenu -i -p "Open it with?")" in + "copy url") echo "$feed" | xclip -selection clipboard ;; + mpv) setsid -f mpv -quiet "$feed" >/dev/null 2>&1 ;; + "mpv loop") setsid -f mpv -quiet --loop "$feed" >/dev/null 2>&1 ;; + "mpv float") setsid -f "$TERMINAL" -e mpv --geometry=+0-0 --autofit=30% --title="mpvfloat" "$feed" >/dev/null 2>&1 ;; + "queue yt-dlp") qndl "$feed" >/dev/null 2>&1 ;; + "queue yt-dlp audio") qndl "$feed" 'yt-dlp -o "%(title)s.%(ext)s" -f bestaudio --embed-metadata --restrict-filenames' ;; + "queue download") qndl "$feed" 'curl -LO' >/dev/null 2>&1 ;; + PDF) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && zathura "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; + nsxiv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && nsxiv -a "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; + vim) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && setsid -f "$TERMINAL" -e "$EDITOR" "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; + setbg) curl -L "$feed" > $XDG_CACHE_HOME/pic ; xwallpaper --zoom $XDG_CACHE_HOME/pic >/dev/null 2>&1 ;; + browser) setsid -f "$BROWSER" "$feed" >/dev/null 2>&1 ;; + lynx) lynx "$feed" >/dev/null 2>&1 ;; +esac diff --git a/.local/bin/dmenumountcifs b/.local/bin/dmenumountcifs new file mode 100755 index 0000000..46c2b57 --- /dev/null +++ b/.local/bin/dmenumountcifs @@ -0,0 +1,19 @@ +#!/bin/sh +# Gives a dmenu prompt to mount unmounted local NAS shares for read/write. +# Requirements - "%wheel ALL=(ALL) NOPASSWD: ALL" +# +# Browse for mDNS/DNS-SD services using the Avahi daemon... +srvname=$(avahi-browse _smb._tcp -t | awk '{print $4}' | dmenu -i -p "Which NAS?") || exit 1 +notify-send "Searching for network shares..." "Please wait..." +# Choose share disk... +share=$(smbclient -L "$srvname" -N | grep Disk | awk '{print $1}' | dmenu -i -p "Mount which share?") || exit 1 +# Format URL... +share2mnt=//"$srvname".local/"$share" + +sharemount() { + mounted=$(mount -v | grep "$share2mnt") || ([ ! -d /mnt/"$share" ] && sudo mkdir /mnt/"$share") + [ -z "$mounted" ] && sudo mount -t cifs "$share2mnt" -o user=nobody,password="",noperm /mnt/"$share" && notify-send "Netshare $share mounted" && exit 0 + notify-send "Netshare $share already mounted"; exit 1 +} + +sharemount diff --git a/.local/bin/dmenurecord b/.local/bin/dmenurecord index bb8233a..990b7b3 100755 --- a/.local/bin/dmenurecord +++ b/.local/bin/dmenurecord @@ -9,6 +9,8 @@ # # If there is already a running instance, user will be prompted to end it. +getdim() { xrandr | sed -n "s/\s*\([0-9]\+x[0-9]\+\).*\*.*/\1/p" ;} + updateicon() { \ echo "$1" > /tmp/recordingicon pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}" @@ -16,49 +18,32 @@ updateicon() { \ killrecording() { recpid="$(cat /tmp/recordingpid)" - # kill with SIGTERM, allowing finishing touches. kill -15 "$recpid" rm -f /tmp/recordingpid updateicon "" pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}" - # even after SIGTERM, ffmpeg may still run, so SIGKILL it. - sleep 3 - kill -9 "$recpid" - exit } screencast() { \ ffmpeg -y \ -f x11grab \ - -framerate 60 \ - -s "$(xdpyinfo | grep dimensions | awk '{print $2;}')" \ + -framerate 30 \ + -s "$(getdim)" \ -i "$DISPLAY" \ - -r 30 \ - -c:v h264 -crf 0 -preset ultrafast -c:a aac \ + -r 24 \ + -use_wallclock_as_timestamps 1 \ + -f alsa -thread_queue_size 1024 -i default \ + -c:v h264 \ + -crf 0 -preset ultrafast -c:a aac \ "$HOME/screencast-$(date '+%y%m%d-%H%M-%S').mp4" & echo $! > /tmp/recordingpid updateicon "โบ๏ธ๐ŸŽ™๏ธ" } -screencast_old() { \ - ffmpeg -y \ - -f x11grab \ - -framerate 60 \ - -s "$(xdpyinfo | grep dimensions | awk '{print $2;}')" \ - -i "$DISPLAY" \ - -f alsa -i default \ - -r 30 \ - -c:v h264 -crf 0 -preset ultrafast -c:a aac \ - "$HOME/screencast-$(date '+%y%m%d-%H%M-%S').mp4" & - echo $! > /tmp/recordingpid - updateicon "โบ๏ธ๐ŸŽ™๏ธ" - } - - - video() { ffmpeg \ -f x11grab \ - -s "$(xdpyinfo | grep dimensions | awk '{print $2;}')" \ + -framerate 30 \ + -s "$(getdim)" \ -i "$DISPLAY" \ -c:v libx264 -qp 0 -r 30 \ "$HOME/video-$(date '+%y%m%d-%H%M-%S').mkv" & @@ -95,11 +80,12 @@ audio() { \ } askrecording() { \ - choice=$(printf "screencast\\nvideo\\naudio\\nwebcam\\nwebcam (hi-def)" | dmenu -i -p "Select recording style:") + choice=$(printf "screencast\\nvideo\\nvideo selected\\naudio\\nwebcam\\nwebcam (hi-def)" | dmenu -i -p "Select recording style:") case "$choice" in screencast) screencast;; audio) audio;; video) video;; + *selected) videoselected;; webcam) webcam;; "webcam (hi-def)") webcamhidef;; esac @@ -110,11 +96,28 @@ asktoend() { \ [ "$response" = "Yes" ] && killrecording } +videoselected() +{ + slop -f "%x %y %w %h" > /tmp/slop + read -r X Y W H < /tmp/slop + rm /tmp/slop + + ffmpeg \ + -f x11grab \ + -framerate 30 \ + -video_size "$W"x"$H" \ + -i :0.0+"$X,$Y" \ + -c:v libx264 -qp 0 -r 30 \ + "$HOME/box-$(date '+%y%m%d-%H%M-%S').mkv" & + echo $! > /tmp/recordingpid + updateicon "โบ๏ธ" +} case "$1" in screencast) screencast;; audio) audio;; video) video;; + *selected) videoselected;; kill) killrecording;; *) ([ -f /tmp/recordingpid ] && asktoend && exit) || askrecording;; esac diff --git a/.local/bin/dmenuunicode b/.local/bin/dmenuunicode deleted file mode 100755 index 15799a3..0000000 --- a/.local/bin/dmenuunicode +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -# The famous "get a menu of emojis to copy" script. - -# Must have xclip installed to even show menu. -xclip -h 2>/dev/null || exit 1 - -chosen=$(cut -d ';' -f1 ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/emoji | dmenu -i -l 20 | sed "s/ .*//") - -[ "$chosen" != "" ] || exit - -# If you run this command with an argument, it will automatically insert the character. -if [ -n "$1" ]; then - xdotool key Shift+Insert -else - echo "$chosen" | tr -d '\n' | xclip -selection clipboard - notify-send "'$chosen' copied to clipboard." & -fi diff --git a/.local/bin/dmenuvpn b/.local/bin/dmenuvpn index 292a0f9..bf1f586 100755 --- a/.local/bin/dmenuvpn +++ b/.local/bin/dmenuvpn @@ -8,12 +8,16 @@ choice="$(ls "${XDG_CONFIG_HOME}/openvpn/cfgs" | sed 's/\.ovpn//' | awk 'BEGIN { [ -z "$choice" ] && exit if [ "$choice" = "ETH" ]; then if [ $(pgrep -c openconnect) -eq 0 ]; then + transmission-remote -u 0 + transmission-remote -d 0 pass "$ETH_password_path" | sudo openconnect -g student-net -u "$ETH_user" --passwd-on-stdin sslvpn.ethz.ch & - if ping -c 3 -W 3 -q webprint.ethz.ch ;then - notify-send "ETH VPN" "ETH VPN connected" - fi -elif ping -c 1 -W 2 -q webprint.ethz.ch ;then + if ping -c 3 -W 3 -q webprint.ethz.ch ;then + notify-send "ETH VPN" "ETH VPN connected" + fi + elif ping -c 1 -W 2 -q webprint.ethz.ch ;then sudo pkill openconnect && notify-send "ETH VPN" "ETH VPN disconnected" + transmission-remote -U + transmission-remote -D fi else printf '%s\n%s\n' "$USER" "$(pass $PASS_DIR)" > /tmp/tmp_pass diff --git a/.local/bin/emoji b/.local/bin/emoji deleted file mode 120000 index 9d1a3c4..0000000 --- a/.local/bin/emoji +++ /dev/null @@ -1 +0,0 @@ -/home/alex/.local/bin/dmenuunicode \ No newline at end of file diff --git a/.local/bin/emoji b/.local/bin/emoji new file mode 100755 index 0000000..dd12bc3 --- /dev/null +++ b/.local/bin/emoji @@ -0,0 +1,18 @@ +#!/bin/sh + +# The famous "get a menu of emojis to copy" script. + +# Get user selection via dmenu from emoji file. +chosen=$(cut -d ';' -f1 ~/.local/share/larbs/chars/* | dmenu -i -l 30 | sed "s/ .*//") + +# Exit if none chosen. +[ -z "$chosen" ] && exit + +# If you run this command with an argument, it will automatically insert the +# character. Otherwise, show a message that the emoji has been copied. +if [ -n "$1" ]; then + xdotool type "$chosen" +else + printf "%s" "$chosen" | xclip -selection clipboard + notify-send "'$chosen' copied to clipboard." & +fi diff --git a/.local/bin/ethupdate b/.local/bin/ethupdate new file mode 100755 index 0000000..ce1f4fd --- /dev/null +++ b/.local/bin/ethupdate @@ -0,0 +1,14 @@ +#!/bin/sh +rclone_out="$(rclone copy --verbose OLAT: ~/eth/.olat 2>&1)" +echo "$rclone_out" | tee -i $HOME/rclone.log +rclone_out="$(echo "$rclone_out" | grep INFO | grep "Copied (new)" | cut -d':' -f2 | cut -d'/' -f1,3,4,5 --complement)" +[ -n "$rclone_out" ] && + /usr/bin/env DISPLAY=:0 /usr/bin/notify-send 'new files (olat):' "$rclone_out" + +cd $HOME/eth/.moodle +pgrep moodle-dl || [ -f running.lock ] && rm running.lock + +log="$(moodle-dl | sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g")" +notifs="$(echo "$log" | grep -E '^\+' | sed 's/^+\s*/+/g')" +[ $(printf %s "$notifs" | wc -l) -gt 0 ] && + /usr/bin/env DISPLAY=:0 /usr/bin/notify-send 'new files (moodle):' "$notifs" diff --git a/.local/bin/f2py b/.local/bin/f2py deleted file mode 100755 index 40ce6f8..0000000 --- a/.local/bin/f2py +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -import re -import sys -from numpy.f2py.f2py2e import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.local/bin/f2py3 b/.local/bin/f2py3 deleted file mode 100755 index 40ce6f8..0000000 --- a/.local/bin/f2py3 +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -import re -import sys -from numpy.f2py.f2py2e import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.local/bin/f2py3.8 b/.local/bin/f2py3.8 deleted file mode 100755 index 40ce6f8..0000000 --- a/.local/bin/f2py3.8 +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -import re -import sys -from numpy.f2py.f2py2e import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.local/bin/getbib b/.local/bin/getbib new file mode 100755 index 0000000..121dd6e --- /dev/null +++ b/.local/bin/getbib @@ -0,0 +1,14 @@ +#!/bin/sh +[ -z "$1" ] && echo "Give either a pdf file or a DOI as an argument." && exit + +if [ -f "$1" ]; then + # Try to get DOI from pdfinfo or pdftotext output. + doi=$(pdfinfo "$1" | grep -io "doi:.*") || + doi=$(pdftotext "$1" 2>/dev/null - | sed -n '/[dD][oO][iI]:/{s/.*[dD][oO][iI]:\s*\(\S\+[[:alnum:]]\).*/\1/p;q}') || + exit 1 +else + doi="$1" +fi + +# Check crossref.org for the bib citation. +curl -s "https://api.crossref.org/works/$doi/transform/application/x-bibtex" -w "\\n" diff --git a/.local/bin/getbib_ b/.local/bin/getbib_ new file mode 100755 index 0000000..8675aae --- /dev/null +++ b/.local/bin/getbib_ @@ -0,0 +1,14 @@ +#!/bin/sh +[ -z "$1" ] && echo "Give either a pdf file or a DOI as an argument." && exit + +if [ -f "$1" ]; then + # Try to get DOI from pdfinfo or pdftotext output. + doi=$(pdfinfo "$1" | grep -io "doi:.*") || + doi=$(pdftotext "$1" 2>/dev/null - | grep -io "doi:.*" -m 1) || + exit 1 +else + doi="$1" +fi + +# Check crossref.org for the bib citation. +curl -s "https://api.crossref.org/works/$doi/transform/application/x-bibtex" -w "\\n" diff --git a/.local/bin/getcomproot b/.local/bin/getcomproot new file mode 100755 index 0000000..d34a2e4 --- /dev/null +++ b/.local/bin/getcomproot @@ -0,0 +1,12 @@ +#!/bin/bash + +# A helper script for LaTeX/groff files used by `compiler` and `opout`. +# The user can add the root file of a larger project as a comment as below: +# % root = mainfile.tex +# And the compiler script will run on that instead of the opened file. + +texroot="$(grep -i "^.\+\s*root\s*=\s*\S\+" "$1")" +texroot="${texroot##*=}" +texroot="${texroot//[\"\' ]}" + +[ -f "$texroot" ] && readlink -f "$texroot" || exit 1 diff --git a/.local/bin/getkeys b/.local/bin/getkeys index 0a0e86e..266f29a 100755 --- a/.local/bin/getkeys +++ b/.local/bin/getkeys @@ -1,5 +1,5 @@ #!/bin/sh -cat ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/getkeys/"$1" 2>/dev/null && exit +cat "${XDG_DATA_HOME:-$HOME/.local/share}"/larbs/getkeys/"$1" 2>/dev/null && exit echo "Run command with one of the following arguments for info about that program:" -ls ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/getkeys +ls "${XDG_DATA_HOME:-$HOME/.local/share}"/larbs/getkeys diff --git a/.local/bin/ifinstalled b/.local/bin/ifinstalled deleted file mode 100755 index 04c0eef..0000000 --- a/.local/bin/ifinstalled +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -# Some optional functions in LARBS require programs not installed by default. I -# use this little script to check to see if a command exists and if it doesn't -# it informs the user that they need that command to continue. This is used in -# various other scripts for clarity's sake. - -pacman -Qq "$1" >/dev/null || { notify-send "๐Ÿ“ฆ $1" "must be installed for this function." && exit 1 ;} diff --git a/.local/bin/launch_polybar b/.local/bin/launch_polybar deleted file mode 100755 index 8786be6..0000000 --- a/.local/bin/launch_polybar +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -# Terminate already running bar instances -killall -q polybar - -# Wait until the processes have been shut down -while pidof polybar >/dev/null; do sleep 1; done - -for i in $(polybar -m | awk -F: '{print $1}'); do MONITOR=$i polybar default & done diff --git a/.local/bin/lf-select b/.local/bin/lf-select deleted file mode 100755 index 3b2a17a..0000000 --- a/.local/bin/lf-select +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -# Reads file names from stdin and selects them in lf. - -while read -r file; do - [ -z "$file" ] && continue - lf -remote "send select \"$file\"" - lf -remote "send toggle" -done diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler new file mode 100755 index 0000000..fa74caf --- /dev/null +++ b/.local/bin/linkhandler @@ -0,0 +1,23 @@ +#!/bin/sh + +# Feed script a url or file location. +# If an image, it will view in sxiv, +# if a video or gif, it will view in mpv +# if a music file or pdf, it will download, +# otherwise it opens link in browser. + +# If no url given. Opens browser. For using script as $BROWSER. +[ -z "$1" ] && { "$BROWSER"; exit; } + +case "$1" in + *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) + setsid -f mpv -quiet "$1" >/dev/null 2>&1 ;; + *png|*jpg|*jpe|*jpeg|*gif) + curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; + *pdf|*cbz|*cbr) + curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; + *mp3|*flac|*opus|*mp3?source*) + qndl "$1" 'curl -LO' >/dev/null 2>&1 ;; + *) + [ -f "$1" ] && setsid -f "$TERMINAL" -e "$EDITOR" "$1" >/dev/null 2>&1 || setsid -f "$BROWSER" "$1" >/dev/null 2>&1 +esac diff --git a/.local/bin/lmc b/.local/bin/lmc deleted file mode 100755 index d431495..0000000 --- a/.local/bin/lmc +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -NUM="${2:-5}" - -# Uncomment the following line to use Pulseaudio. -# PULSE=true - -if [ "$PULSE" ]; then - toggle() { pulsemixer --toggle-mute ;} - mute() { pulsemixer --mute ;} - up() { pulsemixer --change-volume +"$NUM" ;} - down() { pulsemixer --change-volume -"$NUM" ;} - control() { pulsemixer ;} -else - toggle() { amixer sset Master toggle ;} - mute() { amixer sset Master mute ;} - up() { amixer sset Master "$NUM"%+ ;} - down() { amixer sset Master "$NUM"%- ;} - control() { alsamixer ;} -fi - -case "$1" in - toggle) toggle ;; - mute) mute ;; - up) up ;; - down) down ;; - control) control ;; -esac diff --git a/.local/bin/maimpick b/.local/bin/maimpick index 3619dbb..5de26c1 100755 --- a/.local/bin/maimpick +++ b/.local/bin/maimpick @@ -4,11 +4,15 @@ # choose the kind of screenshot to take, including copying the image or even # highlighting an area to copy. scrotcucks on suicidewatch right now. +# variables +output="$(date '+%y%m%d-%H%M-%S').png" +xclip_cmd="xclip -sel clip -t image/png" + case "$(printf "a selected area\\ncurrent window\\nfull screen\\na selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)" | dmenu -l 6 -i -p "Screenshot which area?")" in - "a selected area") maim -s -u pic-selected-"$(date '+%y%m%d-%H%M-%S').png" ;; - "current window") maim -i "$(xdotool getactivewindow)" -u pic-window-"$(date '+%y%m%d-%H%M-%S').png" ;; - "full screen") maim -u pic-full-"$(date '+%y%m%d-%H%M-%S').png" ;; - "a selected area (copy)") maim -s -u | xclip -selection clipboard -t image/png ;; - "current window (copy)") maim -u -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png ;; - "full screen (copy)") maim -u | xclip -selection clipboard -t image/png ;; + "a selected area") maim -u -s pic-selected-"${output}" ;; + "current window") maim -q -d 0.2 -i "$(xdotool getactivewindow)" pic-window-"${output}" ;; + "full screen") maim -q -d 0.2 pic-full-"${output}" ;; + "a selected area (copy)") maim -u -s | ${xclip_cmd} ;; + "current window (copy)") maim -q -d 0.2 -i "$(xdotool getactivewindow)" | ${xclip_cmd} ;; + "full screen (copy)") maim -q -d 0.2 | ${xclip_cmd} ;; esac diff --git a/.local/bin/manga-py b/.local/bin/manga-py deleted file mode 100755 index 64af40b..0000000 --- a/.local/bin/manga-py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'manga-py==1.19.7','console_scripts','manga-py' -__requires__ = 'manga-py==1.19.7' -import re -import sys -from pkg_resources import load_entry_point - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('manga-py==1.19.7', 'console_scripts', 'manga-py')() - ) diff --git a/.local/bin/markdown_py b/.local/bin/markdown_py deleted file mode 100755 index ca0b785..0000000 --- a/.local/bin/markdown_py +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -import re -import sys -from markdown.__main__ import run -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(run()) diff --git a/.local/bin/mounter b/.local/bin/mounter new file mode 100755 index 0000000..b532e08 --- /dev/null +++ b/.local/bin/mounter @@ -0,0 +1,114 @@ +#!/bin/bash + +# Mounts Android Phones and USB drives (encrypted or not). This script will +# replace the older `dmenumount` which had extra steps and couldn't handle +# encrypted drives. +# TODO: Try decrypt for drives in crtypttab +# TODO: Add some support for connecting iPhones (although they are annoying). + +IFS=' +' +# Function for escaping cell-phone names. +escape(){ echo "$@" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g" ;} + +# Check for phones. +phones="$(simple-mtpfs -l 2>/dev/null | sed "s/^/๐Ÿ“ฑ/")" +mountedphones="$(grep "simple-mtpfs" /etc/mtab)" +# If there are already mounted phones, remove them from the list of mountables. +[ -n "$mountedphones" ] && phones="$(for phone in $phones; do + for mounted in $mountedphones; do + escphone="$(escape "$phone")" + [[ "$mounted" =~ "$escphone" ]] && break 1 + done && continue 1 + echo "$phone" +done)" + +# Check for drives. +lsblkoutput="$(lsblk -rpo "uuid,name,type,size,label,mountpoint,fstype")" +# Get all LUKS drives +allluks="$(echo "$lsblkoutput" | grep crypto_LUKS)" +# Get a list of the LUKS drive UUIDs already decrypted. +decrypted="$(find /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-* | sed "s|.*LUKS2-||;s|-.*||")" +# Functioning for formatting drives correctly for dmenu: +filter() { sed "s/ /:/g" | awk -F':' '$7==""{printf "%s%s (%s) %s\n",$1,$3,$5,$6}' ; } + +# Get only LUKS drives that are not decrypted. +unopenedluks="$(for drive in $allluks; do + uuid="${drive%% *}" + uuid="${uuid//-}" # This is a bashism. + for open in $decrypted; do + [ "$uuid" = "$open" ] && break 1 + done && continue 1 + echo "๐Ÿ”’ $drive" +done | filter)" + +# Get all normal, non-encrypted or decrypted partitions that are not mounted. +normalparts="$(echo "$lsblkoutput"| grep -v crypto_LUKS | grep 'part\|rom\|crypt' | sed "s/^/๐Ÿ’พ /" | filter )" + +# Add all to one variable. If no mountable drives found, exit. +alldrives="$(echo "$phones +$unopenedluks +$normalparts" | sed "/^$/d;s/ *$//")" + +# Quit the script if a sequential command fails. +set -e + +test -n "$alldrives" + +# Feed all found drives to dmenu and get user choice. +chosen="$(echo "$alldrives" | dmenu -p "Mount which drive?" -i)" + +# Function for prompting user for a mountpoint. +getmount(){ + mp="$(find /mnt /media /mount /home -maxdepth 1 -type d 2>/dev/null | dmenu -i -p "Mount this drive where?")" + test -n "$mp" + if [ ! -d "$mp" ]; then + mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") + [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") + fi +} + +attemptmount(){ + # Attempt to mount without a mountpoint, to see if drive is in fstab. + sudo -A mount "$chosen" || return 1 + notify-send "๐Ÿ’พDrive Mounted." "$chosen mounted." + exit +} + +case "$chosen" in + ๐Ÿ’พ*) + chosen="${chosen%% *}" + chosen="${chosen:1}" # This is a bashism. + attemptmount || getmount + sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)" + notify-send "๐Ÿ’พDrive Mounted." "$chosen mounted to $mp." + ;; + + ๐Ÿ”’*) + chosen="${chosen%% *}" + chosen="${chosen:1}" # This is a bashism. + # Number the drive. + while true; do + [ -f "/dev/mapper/usb$num" ] || break + num="$(printf "%02d" "$((num +1))")" + done + + # Decrypt in a terminal window + ${TERMINAL:-st} -n floatterm -g 60x1 -e sudo cryptsetup open "$chosen" "usb$num" + # Check if now decrypted. + test -b "/dev/mapper/usb$num" + + attemptmount || getmount + sudo -A mount "/dev/mapper/usb$num" "$mp" -o uid="$(id -u)",gid="$(id -g)" + notify-send "๐Ÿ”“Decrypted drive Mounted." "$chosen decrypted and mounted to $mp." + ;; + + ๐Ÿ“ฑ*) + notify-send "โ—Note" "Remember to allow file access on your phone now." + getmount + number="${chosen%%:*}" + number="${chosen:1}" # This is a bashism. + sudo -A simple-mtpfs -o allow_other -o fsname="simple-mtpfs-$(escape "$chosen")" --device "$number" "$mp" + notify-send "๐Ÿค– Android Mounted." "Android device mounted to $mp." + ;; +esac diff --git a/.local/bin/muccadoro b/.local/bin/muccadoro deleted file mode 100755 index 63cbd90..0000000 --- a/.local/bin/muccadoro +++ /dev/null @@ -1,304 +0,0 @@ -#!/usr/bin/env bash -set -o nounset -o pipefail -# Before doing anything, check if the required programs are installed. See -# . Some of these can probably be reasonably assumed -# to be present, but err on the side of caution. -for prog in awk cowsay figlet notify-send stty tput; do - if ! hash "$prog" 2>/dev/null; then - printf 'muccadoro: %s: command not found\n' "$prog" >&2 - exit 127 - fi -done - - -temp_loc=/tmp/pomptemptimes -temp_timeloc=/tmp/mucc_time -statusbar="dwmblocks" -update_signal="3" - -freetime=${2:-w} -if [ "$freetime" = "f" ]; then - temp_loc=/tmp/pomptemptimesft -fi - -declare -i silly=1 - -# http://mywiki.wooledge.org/BashFAQ/035#getopts -# http://wiki.bash-hackers.org/howto/getopts_tutorial -while getopts ':s' opt; do - case $opt in - s) (( ++silly ));; - esac -done -shift "$((OPTIND-1))" # Shift off the options and optional --. - -# One pomodoro lasts "$1" minutes. The default duration is 25 minutes. -declare -i duration=$((${1:-25}*60)) num_pomodoros=4 - -(( silly %= 5 )) -if (( silly )); then - declare -i silliness=$((2**(4-silly))) - # `apps` stands for appearances, of course. - declare -a apps=('' '-b' '-d' '-g' '-p' '-s' '-t' '-w' '-e oO' '-e Oo' '-e ><' '-e -o' - '-e o-' '-e >o' '-e o<') - num_apps=${#apps[@]} - cowtell() { - app_num=$((RANDOM % (silliness * num_apps))) - (( app_num >= num_apps )) && app_num=0 - cowsay -n ${apps[app_num]} - } -else - cowtell() { - cowsay -n - } -fi - -summary= - -# Standard output must be a terminal. See . Save -# the original stdout to file descriptor 3 (see ). -exec 3>&1 &>/dev/tty - -# Save the current terminal settings. -initial_tty_settings=$(stty -g) - -# Revert all changed terminal settings (FIXME: restore everything from saved settings) and -# print a summary. -cleanup() { - tput rmcup - tput cnorm - stty "$initial_tty_settings" - [[ $summary ]] && echo -ne "$summary" >&3 - rm -f $temp_loc - rm -f $temp_timeloc - pkill -RTMIN+$update_signal $statusbar -} - -trap cleanup EXIT - -# Switch to the alternate screen. See , xterm(1), -# terminfo(5), and . -tput smcup - -# TODO: explain. See -# . -tput civis - -# Don't echo characters typed on the tty. See . -stty -echo - -# Output empty lines before the message so the message is displayed at the bottom of the -# terminal. See . Also, instead of `clear`ing -# (which causes flickering), pad all lines of the message with spaces all the way to the -# right edge of the terminal, thereby overwriting any currently displayed characters. See -# . TODO: probably just use Bash and not -# awk. -pad() { - awk -v lines="$(tput lines)" -v cols="$(tput cols)" ' - NR!=1 && FNR==1 { n=lines-NR; for(; n>0; n--) printf "%-"cols"s\n", "" } - NR==FNR { next } - { printf "%-"cols"s\n", $0 }' <(echo "$1"){,} -} - -pp() { - tput cup 0 0 # TODO: explain. - pad "$1" -} - -ppp() { - tput cup 0 0 - # FIXME: probably just check once if we have lolcat. - pad "$1" | { lolcat 2>/dev/null || cat; } -} - -declare -a lyrics -declare -i line_index=0 -lyrics=( - "Can't stop, addicted to the shindig;" - "Chop Top, he says I'm gonna win big;" - "Choose not a life of imitation;" - "Distant cousin to the reservation;" - "Defunct the pistol that you pay for;" - "This punk, the feeling that you stay for;" - "In time I want to be your best friend;" - "East side lovers living on the west end;" - "Knocked out but boy you better come to;" - "Don't die, you know the truth as some do;" - "Go write your message on the pavement;" - "Burn so bright I wonder what the wave meant;" -) - -declare -i state=0 - -cant-stop() { - (( state == 2 )) && return - state=2 - tty_settings=$(stty -g) - trap '' INT - stty susp undef - pp "$(cowsay -e '><' -W $(($(tput cols)-3)) ${lyrics[line_index]})" - - ((++line_index)); ((line_index%=${#lyrics[@]})) - sleep 2 & wait $! - stty "$tty_settings" - count-state -} - -# SIGTSTP handler. -on-tstp() { - # Signal all processes in the process group $$ (the group leader) to continue. See - # kill(1), and . Pomodoros are not - # interruptible. - kill -CONT -- -$$ - if (( state == 1 )); then - cant-stop - fi -} -trap on-tstp TSTP - -count-state() { - # 130 is the exit status for termination by Ctrl-C. See - # . - trap 'trap on-int INT; on-int; return 130' INT - state=1 -} - -dead-state() { - trap on-int INT - state=0 -} - -pause-state() { - trap on-int INT - state=0 -} - -on-int() { - if (( state==0 )); then - # We are supposed to kill ourselves with SIGINT instead of using `exit`. See - # . - trap - INT - kill -INT $$ - elif (( state==1 )); then - dead-state - elif (( state==2 )); then - count-state - fi -} - -# XXX: beware of bugs due to SIGINT (Ctrl-C) being received during the short timeframe in -# which another function invoked by this one is executing. The `return 1` statement of -# the SIGINT trap will be ran in the context of the inner function. -pomodoro() { - count-state - while :; do - # Handle signals immediately, not after `sleep` exits. See - # . - sleep 1 & - # See . - planned_end_time=$(( $start_time_secs + $duration )) - seconds=$(( $planned_end_time - $( date +'%s') )) - the_time=$((seconds/60)):$(printf '%02d' $((seconds%60))) - # Keep in mind that almost everything causes new values to be assigned to `$?`: - # $ false - # $ (( $? )) && echo $? - # 0 - # $ false || { (( $? != 148 )) && echo $?; } - # 0 - # In both cases, when `echo $?` is executed, `$?` is no longer 1. - fail=$? - if (( fail && fail != 148 )); then - return $fail - fi - text=$(figlet -f small "$the_time" ) #remove | cowtell - fail=$? - if (( ! fail )); then - pp "$text" - fail=$? - echo "$the_time" > $temp_timeloc - pkill -RTMIN+$update_signal $statusbar - (( fail && fail != 148 )) && return $fail - elif (( fail != 148 )); then - return $fail - fi - wait - ((--seconds <= 0)) && return 0 - done - return 1 -} - -flush-stdin() { - # See . - read -r -d '' -t 0.1 -n 1000 -} - -# FIXME: why `dummy` (http://wiki.bash-hackers.org/commands/builtin/read#press_any_key). -pause() { - # See . - read -r -n 1${1:+ -t $1} -} - -for (( n=1; n<=num_pomodoros; ++n )); do - declare -i seconds=$duration - declare -i start_time_secs=$(date +'%s') - start_time=$(date --date "@$start_time_secs" +'%H:%M') - pomodoro - fail=$? - if (( fail == 130 )); then - end_time=$(date +'%H:%M') - end_time_secs=$(date -d $end_time +'%s') - day=$(date '+%Y%b%d') - summary+="Abandoned: $start_time to $end_time ($((($end_time_secs - $start_time_secs)/ 60))) $day\n" - #summary+="Abandoned: $start_time to $(date +'%H:%M')\n" - # Pomodoros are atomic. - pp "$(cowsay -d -W $(($(tput cols)-3)) 'You abandoned pomodoro '$n'. Press any' \ - 'key to restart it.')" - rm -f $temp_timeloc - pkill -RTMIN+$update_signal $statusbar - pause - (( --n )) - continue - elif (( fail )); then - exit $fail - fi - pause-state - tty_settings=$(stty -g) - stty susp undef - end_time_secs=$(date +'%s') - end_time=$(date --date "@$end_time_secs" +'%H:%M') - #end_time_secs=$(date -d $end_time +'%s') - #start_time_secs=$(date -d $start_time +'%s') - day=$(date '+%Y%b%d') - summary+="Pomodoro $n: $start_time to $end_time ($(( ($end_time_secs - $start_time_secs )/60))) $day\n" - #summary+="Pomodoro $n: $start_time to $(date +'%H:%M') \n" - if (( n!=num_pomodoros )); then - start_time=$(date +'%s') - notify-send "You completed pomodoro $n. Take a short break (3-5 minutes)." - # - # - echo "($n*$duration)/60" | bc > $temp_loc - pkill -RTMIN+$update_signal $statusbar - # TODO: it may be nice to create this message asynchronously with `lolcat -f` since - # lolcat is a bit slow. That's not a priority, though. - ppp "$(cowsay -e '^^' -W $(($(tput cols)-3)) 'You completed pomodoro '$n'. Take' \ - 'a short break (3-5 minutes), then press any key to continue.')" - rm -f $temp_timeloc - pkill -RTMIN+$update_signal $statusbar - flush-stdin - if ! pause 180; then - pp "$(cowsay -w -W $(($(tput cols)-3)) 'Press any key to continue.')" - pause 120 || { - notify-send -u critical 'Time to start the next pomodoro.'; pause; - } - fi - break_duration=$((($(date +'%s')-start_time+30)/60)) - summary+="Break: about $break_duration minute" - (( break_duration != 1 )) && summary+=s # plural - summary+='\n' - fi - stty "$tty_settings" -done - -notify-send "You completed all $num_pomodoros pomodoros!" - -# vim: tw=90 sts=-1 sw=3 et diff --git a/.local/bin/noisereduce b/.local/bin/noisereduce new file mode 100755 index 0000000..c344760 --- /dev/null +++ b/.local/bin/noisereduce @@ -0,0 +1,81 @@ +#!/usr/bin/sh + +usage () +{ + printf "Usage : noisereduce \n" + exit +} + +# Tests for requirements +ifinstalled ffmpeg || { echo >&2 "We require 'ffmpeg' but it's not installed."; exit 1; } +ifinstalled sox || { echo >&2 "We require 'ffmpeg' but it's not installed."; exit 1; } + +if [ "$#" -ne 2 ] +then + usage +fi + +if [ ! -e "$1" ] +then + printf "File not found: %s\n" "$1" + exit +fi + +if [ -e "$2" ] +then + printf "File %s already exists, overwrite? [y/N]\n: " "$2" + read -r yn + case $yn in + [Yy]* ) ;; + * ) exit;; + esac +fi + +inBasename=$(basename "$1") +inExt="${inBasename##*.}" + +isVideoStr=$(ffprobe -v warning -show_streams "$1" | grep codec_type=video) +if [ -n "$isVideoStr" ] +then + isVideo=1 + printf "Detected %s as a video file\n" "$inBasename" +else + isVideo=0 + printf "Detected %s as an audio file\n" "$inBasename" +fi + +printf "Sample noise start time [00:00:00]: " +read -r sampleStart +if [ -z "$sampleStart" ] ; then sampleStart="00:00:00"; fi +printf "Sample noise end time [00:00:00.900]: " +read -r sampleEnd +if [ -z "$sampleEnd" ] ; then sampleEnd="00:00:00.900"; fi +printf "Noise reduction amount [0.21]: " +read -r sensitivity +if [ -z "$sensitivity" ] ; then sensitivity="0.21"; fi + + +tmpVidFile="/tmp/noiseclean_tmpvid.$inExt" +tmpAudFile="/tmp/noiseclean_tmpaud.wav" +noiseAudFile="/tmp/noiseclean_noiseaud.wav" +noiseProfFile="/tmp/noiseclean_noise.prof" +tmpAudCleanFile="/tmp/noiseclean_tmpaud-clean.wav" + +printf "Cleaning noise on %s...\n" "$1" + +if [ $isVideo -eq "1" ]; then + ffmpeg -v warning -y -i "$1" -qscale:v 0 -vcodec copy -an "$tmpVidFile" + ffmpeg -v warning -y -i "$1" -qscale:a 0 "$tmpAudFile" +else + cp "$1" "$tmpAudFile" +fi +ffmpeg -v warning -y -i "$1" -vn -ss "$sampleStart" -t "$sampleEnd" "$noiseAudFile" +sox "$noiseAudFile" -n noiseprof "$noiseProfFile" +sox "$tmpAudFile" "$tmpAudCleanFile" noisered "$noiseProfFile" "$sensitivity" +if [ $isVideo -eq "1" ]; then + ffmpeg -v warning -y -i "$tmpAudCleanFile" -i "$tmpVidFile" -vcodec copy -qscale:v 0 -qscale:a 0 "$2" +else + cp "$tmpAudCleanFile" "$2" +fi + +printf "Done" diff --git a/.local/bin/opout b/.local/bin/opout deleted file mode 100755 index 28af763..0000000 --- a/.local/bin/opout +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# opout: "open output": A general handler for opening a file's intended output, -# usually the pdf of a compiled document. I find this useful especially -# running from vim. - -basename="$(echo "$1" | sed 's/\.[^\/.]*$//')" - -case "$1" in - *.tex|*.m[dse]|*.[rR]md|*.mom|*.[0-9]) setsid xdg-open "$basename".pdf >/dev/null 2>&1 & ;; - *.html) setsid "$BROWSER" "$basename".html >/dev/null 2>&1 & ;; - *.sent) setsid sent "$1" >/dev/null 2>&1 & ;; -esac diff --git a/.local/bin/pauseallmpv b/.local/bin/pauseallmpv index 15b9f59..d69a414 100755 --- a/.local/bin/pauseallmpv +++ b/.local/bin/pauseallmpv @@ -6,5 +6,5 @@ # (with other things) by default and is used in some other places. for i in $(ls /tmp/mpvSockets/*); do - echo '{ "command": ["set_property", "pause", true] }' | socat - $i; + echo '{ "command": ["set_property", "pause", true] }' | socat - "$i"; done diff --git a/.local/bin/podentr b/.local/bin/podentr deleted file mode 100755 index 9a8313a..0000000 --- a/.local/bin/podentr +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# entr command to run `queueandnotify` when newsboat queue is changed - -[ "$(pgrep -x $(basename $0) | wc -l)" -gt 2 ] && exit - -echo ${XDG_DATA_HOME:-$HOME/.local/share}/newsboat/queue | entr -p queueandnotify 2>/dev/null diff --git a/.local/bin/pom b/.local/bin/pom deleted file mode 100755 index 2852042..0000000 --- a/.local/bin/pom +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -SAVE_DIR=~/eth/pomodoros -case $1 in - add) start=$2 - start_secs=$(date -d $start +'%s') - end=$3 - end_secs=$(date -d $end +'%s') - duration="$(( ($end_secs - $start_secs)/60 ))" - echo "Pomodoro 1: $start to $end ($duration) $(date '+%Y%b%d')" | tee -ai $SAVE_DIR;; - *) xdotool key super+shift+9 - muccadoro $1 | tee -ai "$SAVE_DIR";; -esac -pkill -RTMIN+3 dwmblocks diff --git a/.local/bin/pomft b/.local/bin/pomft deleted file mode 100755 index aeef88d..0000000 --- a/.local/bin/pomft +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -SAVE_DIR=~/bks/pomodoros_freetime -case $1 in - add) start=$2 - start_secs=$(date -d $start +'%s') - end=$3 - end_secs=$(date -d $end +'%s') - duration="$(( ($end_secs - $start_secs)/60 ))" - echo "Pomodoro 1: $start to $end ($duration) $(date '+%Y%b%d')" | tee -ai $SAVE_DIR;; - *) muccadoro ${1:-25} 'f' | tee -ai "$SAVE_DIR";; -esac -pkill -RTMIN+3 dwmblocks diff --git a/.local/bin/print_slides b/.local/bin/print_slides index 0ee7d4f..2c0f37d 100755 --- a/.local/bin/print_slides +++ b/.local/bin/print_slides @@ -5,26 +5,27 @@ VIRTUAL_PRINTER_DIR="/var/spool/cups-pdf/$USER" # Printer to print magazine layout on PRINTER="Canon-MF220" -for file in $@; do - lpr -P Virtual_PDF_Printer -o number-up=2 -o orientation-requested=4 -o fit-to-page -o media=a4 "$file" - str="." - until lpc status | grep -A 4 'Virtual_PDF_Printer:' | tail -n1 | grep 'no entries'; do - printf "\033[s\033[uPrinting to file for two slides per a5 page" - printf "%s" $str - printf "\033[u" - str=$str. - sleep 1 - done - echo "virtual printing done." - last_job_id="$(ls "$VIRTUAL_PRINTER_DIR" | grep -o '[0-9]*\.pdf$' | grep '[0-9]' | cut -d'.' -f1 | sort -n | tail -n1)" - #echo "last_job_id:$last_job_id" - file_two_page="$(ls $VIRTUAL_PRINTER_DIR/*${last_job_id}.pdf)" - #echo "file_two_page:$file_two_page" - printf "Invoking a5ona4..." - a5ona4 "$file_two_page" > /dev/null - echo "Done." - rm "$file_two_page" - only_filename_two_page="$( echo "$file_two_page"| awk -F/ '{print $NS}' )" - echo "Magazine layout of $file being sent to printer..." - lpr -P $PRINTER -o media=A4 -o Duplex=DuplexTumble -o sides=two-sided-short-edge -o BindEdge=Bottom -o media=a4 -r a5ona4_$file* +PRINTER=Virtual_PDF_Printer +file="$@" +lpr -P Virtual_PDF_Printer -o number-up=2 -o orientation-requested=4 -o fit-to-page -o media=a4 "$file" +str="." +until lpc status | grep -A 4 'Virtual_PDF_Printer:' | tail -n1 | grep 'no entries'; do + printf "\033[s\033[uPrinting to file for two slides per a5 page" + printf "%s" $str + printf "\033[u" + str=$str. + sleep 1 done +echo "virtual printing done." +last_job_id="$(ls "$VIRTUAL_PRINTER_DIR" | grep -o '[0-9]*\.pdf$' | grep '[0-9]' | cut -d'.' -f1 | sort -n | tail -n1)" +#echo "last_job_id:$last_job_id" +file_two_page="$(ls $VIRTUAL_PRINTER_DIR/*${last_job_id}.pdf)" +#echo "file_two_page:$file_two_page" +printf "Invoking a5ona4..." +a5ona4 "$file_two_page" > /dev/null +echo "Done." +rm "$file_two_page" +only_filename_two_page="$( echo "$file_two_page"| awk -F/ '{print $NS}' )" +echo "Magazine layout of $file being sent to printer..." +file_without_suffix="$(echo "$file" | sed 's/[ \(\)]/_/g; s/\.pdf$//')" +lpr -P $PRINTER -o media=A4 -o Duplex=DuplexTumble -o sides=two-sided-short-edge -o BindEdge=Bottom -o media=a4 -r a5ona4_${file_without_suffix}* diff --git a/.local/bin/prompt b/.local/bin/prompt index cda9a4a..34caacf 100755 --- a/.local/bin/prompt +++ b/.local/bin/prompt @@ -5,4 +5,4 @@ # For example: # `./prompt "Do you want to shutdown?" "shutdown -h now"` -[ "$(printf "No\\nYes" | dmenu -i -n -p "$1" -nb darkred -sb red -sf white -nf gray )" = "Yes" ] && $2 +[ "$(printf "No\\nYes" | dmenu -i -p "$1" -nb darkred -sb red -sf white -nf gray -n)" = "Yes" ] && $2 diff --git a/.local/bin/pyls b/.local/bin/pyls deleted file mode 100755 index 681e269..0000000 --- a/.local/bin/pyls +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -import re -import sys -from pyls.__main__ import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.local/bin/qndl b/.local/bin/qndl deleted file mode 100755 index f5bd14f..0000000 --- a/.local/bin/qndl +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# $1 is a url; $2 is a command -[ -z "$1" ] && exit -base="$(basename "$1")" -notify-send "โณ Queuing $base..." -cmd="$2" -[ -z "$cmd" ] && cmd="youtube-dl --add-metadata" -idnum="$(tsp $cmd "$1")" -realname="$(echo "$base" | sed "s/?\(source\|dest\).*//;s/%20/ /g")" -tsp -D "$idnum" mv "$base" "$realname" -tsp -D "$idnum" notify-send "๐Ÿ‘ $realname done." diff --git a/.local/bin/queueandnotify b/.local/bin/queueandnotify deleted file mode 100755 index a54b13e..0000000 --- a/.local/bin/queueandnotify +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -# Podboat sucks. This script replaces it. -# It reads the newsboat queue, queuing downloads with taskspooler. -# It also removes the junk from extentions. -queuefile="${XDG_DATA_HOME:-$HOME/.local/share}/newsboat/queue" - -while read -r line; do - [ -z "$line" ] && continue - url="$(echo "$line" | awk '{print $1}')" - qndl "$url" "curl -LO" -done < "$queuefile" - -echo > "$queuefile" diff --git a/.local/bin/refbar b/.local/bin/refbar deleted file mode 100755 index 78b5018..0000000 --- a/.local/bin/refbar +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -# Refresh the dwmbar. -# Send SIGTRAP signal to dwmbar script, which will handle it with a trap. -pkill -SIGTRAP dwmbar diff --git a/.local/bin/remapd b/.local/bin/remapd new file mode 100755 index 0000000..ee4cf39 --- /dev/null +++ b/.local/bin/remapd @@ -0,0 +1,8 @@ +#!/bin/bash + +# Rerun the remaps script whenever a new input device is added. + +while :; do + remaps + grep -qP -m1 '[^un]bind.+\/[^:]+\(usb\)' <(udevadm monitor -u -t seat -s input -s usb) +done diff --git a/.local/bin/remaps b/.local/bin/remaps index 13f3776..343cd13 100755 --- a/.local/bin/remaps +++ b/.local/bin/remaps @@ -9,3 +9,5 @@ setxkbmap -option caps:super -variant intl killall xcape 2>/dev/null ; xcape -e 'Super_L=Escape' # Map the menu button to right super as well. xmodmap -e 'keycode 135 = Super_R' +# Turn off the caps lock if on since there is no longer a key for it. +xset -q | grep "Caps Lock:\s*on" && xdotool key Caps_Lock diff --git a/.local/bin/ripper b/.local/bin/ripper deleted file mode 100755 index 7483e44..0000000 --- a/.local/bin/ripper +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/sh -#A script that checks multiple youtube and bitchute channels for new videos to download via youtube-dl -#This script works considerably faster than just giving youtube-dl a channel URI. -#The YouTube implementation now uses a YoutubeData API v3 key to work more reliably. -#This can be quite quota taxing, as each channel search is 1% of the allotted qutoa for the day. -#-> checking n YT channels => n% of daily quota required to run this script -#Keep this in mind when running it as a cronjob -#Either insert this key in plain text below at the variable "APIKEY" or do it via ENV vars or a password manager -#Since bitchute still doesn't have an API I'm using lynx to emulate a user. -#This can limit the number of recent videos available. For a whole download of bitchute channels consider other methods first. -#For youtube the videos per channel are limited to the last 500 uploaded videos. For the rest you can just use youtube-dl itself - -#needed if run as cronjob -XDG_VIDEOS_DIR=$HOME/vids #TODO ADJUST FOR PERSONAL USE HERE! -export XDG_VIDEOS_DIR -DLARCHIVE="${XDG_VIDEOS_DIR:-$HOME/Videos}/.downloaded" -DLLOC="${XDG_VIDEOS_DIR:-$HOME/Videos}" -#FORMAT OF CHANNELSFILE: -#Youtube: include the channel URI: https://www.youtube.com/channel/ -#Bitchute: normal channel URI: https://www.bitchute.com/channel/ -#Lines starting with '#' will be ignored in this file -CHANNELSFILE="${XDG_VIDEOS_DIR:-$HOME/Videos}/.channels" -BLACKLIST="${XDG_VIDEOS_DIR:-$HOME/Videos}/.blacklist" - -# Required to display notifications if run as a cronjob: -DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus -export DBUS_SESSION_BUS_ADDRESS -export DISPLAY=:0.0 -export XDG_DATA_HOME=/home/alex/.local/share -# Required to have pass work if run as cronjob -export PASSWORD_STORE_GPG_OPTS="--homedir=$XDG_DATA_HOME/gnupg" -export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" -[ -d "$HOME/.local/share/password-store" ] && export PASSWORD_STORE_DIR="$HOME/.local/share/password-store" - -APIKEY="$(pass show API/Youtube\ Data\ API\ v3 | head -n1 )" -LEGACYMODE=$1 #set to anything nonzero to ignore YT API - -[ -n "$LEGACYMODE" ] && printf "Using YT Legacy fallback mode...\nThis is less reliable than the API requests.\nOnly expect to find the last 5 videos or so per channel\n" -if [ "$(pgrep -c ripper)" -gt 1 ]; then - echo "Ripper already running, exiting new instance..." - exit -fi - -echo "Scanning for new Videos to download" - - -##YOUTUBE -echo "Scanning on Youtube..." -IDs="$( grep 'youtube' "$CHANNELSFILE" | grep -v '^#' | grep 'channel' | sed 's/https:\/\/www\.youtube\.com\/channel\///')" -not_correctly_formatted="$(grep 'youtube' "$CHANNELSFILE" | grep -v '^#' | grep -v 'https:\/\/www\.youtube\.com\/channel\/')" -if [ -n "$not_correctly_formatted" ]; then - echo Please fix the following channel urls to be scannable: - echo "$not_correctly_formatted" | while read -r line; do - printf 'Given URI:\t%s\n' "$line" - printf 'Potentially correct channel URI:\n\thttps://www.youtube.com/channel/%s\n' "$(curl "$line" -s | grep -Eo 'externalId":"[^"]*"' | sed 's|^externalId":"||; s|"||g')" - done - echo "They need to be in the 'https://www.youtube.com/channel/...' format" -fi -for channel_id in $IDs; do - echo "YT-ID: $channel_id" - if [ -z "$LEGACYMODE" ]; then - json="$(curl -s "https://www.googleapis.com/youtube/v3/search?key=$APIKEY&channelId=$channel_id&part=snippet,id&order=date&maxResults=500")" - #Fallback to legacy mode if API quota is exceeded - if [ "$(echo "$json" | jq '."error"."errors"[]."reason"' 2> /dev/null )" = '"quotaExceeded"' ];then - echo "YT API Quota exceeded, using fallback" - LEGACYMODE=1 - fi - fi - if [ -n "$LEGACYMODE" ];then - curl -s "https://www.youtube.com/feeds/videos.xml?channel_id=$channel_id" > /tmp/"${channel_id}.xml" - python -c "from lxml import etree -file=\"/tmp/${channel_id}.xml\" -root = etree.parse(file) -for el in root.iter(): - if(el.tag in '{http://www.youtube.com/xml/schemas/2015}videoId'): - print(el.text)" | - sed 's/^/https:\/\/www\.youtube\.com\/watch\?v=/' | grep -vf "$BLACKLIST" >> /tmp/todownload$$ - rm -f "/tmp/${channel_id}.xml" - else - #Only try to download videos, not sheduled livestreams - echo "$json" | jq '.items[] | select(.snippet.liveBroadcastContent != "upcoming") | .id.videoId' | - tr -d '"' | grep -v '^null$'| - sed 's/^/https:\/\/www\.youtube\.com\/watch\?v=/' | - grep -vf "$BLACKLIST" >> /tmp/todownload$$ - fi -done -grep 'youtube' "$DLARCHIVE" | sed 's/youtube /https:\/\/www\.youtube\.com\/watch?v=/' > /tmp/alreadydownloaded$$ - -##BITCHUTE -#This section is quite generic and could probably be easily adapted for other video hosting websites -echo "Scanning on Bitchute..." -BC_CHANNELS="$(grep 'bitchute' "$CHANNELSFILE" | grep -v '^#')" -for channel in $BC_CHANNELS; do - printf 'BC channel: %s\n' "$( echo "$channel" | sed 's|https://www.bitchute.com/channel/||; s|/||')" - lynx --read_timeout=5 --dump --nonumbers -listonly "$channel"| grep 'bitchute\.com\/video' | sort -u | grep -vf "$BLACKLIST" >> /tmp/todownload$$ -done -grep 'bitchute' "$DLARCHIVE" | sed 's/bitchute /https:\/\/www\.bitchute\.com\/video\//' >> /tmp/alreadydownloaded$$ - -##DOWNLOAD VIDEOS FROM ACCUMULATED LINKS -grep -vf /tmp/alreadydownloaded$$ /tmp/todownload$$ | sort -u > /tmp/new_videos$$ -rm -f /tmp/alreadydownloaded$$ /tmp/todownload$$ -number=$(wc -l /tmp/new_videos$$ | cut -d ' ' -f 1 ) -if [ "$number" -gt 0 ]; then - [ "$number" -gt 1 ] && plural="s" - notify-send "Channel Ripper" "$number new video$plural available for download, downloading now." - echo "$number new video$plural for download available, downloading now." - if [ "$number" -lt 10 ];then - youtube-dl --get-filename -o "'%(uploader)s' '%(title)s'" -a /tmp/new_videos$$ | xargs -L1 notify-send - fi - youtube-dl --hls-prefer-native -i --download-archive "$DLARCHIVE" -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' --add-metadata -o "$DLLOC/%(uploader)s/%(upload_date)s-%(title)s.%(ext)s" -a /tmp/new_videos$$ - rm -f /tmp/new_videos$$ - notify-send "Channel Ripper" "Finished downloading" -fi - -if [ "$number" -eq 0 ]; then - echo "No new videos" -fi diff --git a/.local/bin/rotdir b/.local/bin/rotdir new file mode 100755 index 0000000..d171f29 --- /dev/null +++ b/.local/bin/rotdir @@ -0,0 +1,12 @@ +#!/bin/sh + +# When I open an image from the file manager in nsxiv (the image viewer), I want +# to be able to press the next/previous keys to key through the rest of the +# images in the same directory. This script "rotates" the content of a +# directory based on the first chosen file, so that if I open the 15th image, +# if I press next, it will go to the 16th etc. Autistic, I know, but this is +# one of the reasons that nsxiv is great for being able to read standard input. + +[ -z "$1" ] && echo "usage: rotdir regex 2>&1" && exit 1 +base="$(basename "$1")" +ls "$PWD" | awk -v BASE="$base" 'BEGIN { lines = ""; m = 0; } { if ($0 == BASE) { m = 1; } } { if (!m) { if (lines) { lines = lines"\n"; } lines = lines""$0; } else { print $0; } } END { print lines; }' diff --git a/.local/bin/samedir b/.local/bin/samedir index 73facfd..0a19707 100755 --- a/.local/bin/samedir +++ b/.local/bin/samedir @@ -2,7 +2,9 @@ # Open a terminal window in the same directory as the currently active window. -PID=$(xprop -id "$(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')" | grep -m 1 PID | cut -d " " -f 3) -PID="$(pstree -lpA "$PID" | tail -n 1 | awk -F'---' '{print $NF}' | sed -re 's/[^0-9]//g')" +PID=$(xprop -id "$(xprop -root | xprop -root | sed -n "/_NET_ACTIVE_WINDOW/ s/^.*# // p")" | sed -n "/PID/ s/^.*= // p") +PID="$(pstree -lpA "$PID")" +PID="${PID##*(}" +PID="${PID%)}" cd "$(readlink /proc/"$PID"/cwd)" || return 1 "$TERMINAL" diff --git a/.local/bin/setbg b/.local/bin/setbg new file mode 100755 index 0000000..b0938fd --- /dev/null +++ b/.local/bin/setbg @@ -0,0 +1,33 @@ +#!/bin/sh + +# This script does the following: +# Run by itself, set the wallpaper (at X start). +# If given a file, set that as the new wallpaper. +# If given a directory, choose random file in it. +# If wal is installed, also generates a colorscheme. + +# Location of link to wallpaper link. +bgloc="${XDG_DATA_HOME:-$HOME/.local/share/}/bg" + +# Configuration files of applications that have their themes changed by pywal. +dunstconf="${XDG_CONFIG_HOME:-$HOME/.config}/dunst/dunstrc" +zathuraconf="${XDG_CONFIG_HOME:-$HOME/.config}/zathura/zathurarc" + +trueloc="$(readlink -f "$1")" && +case "$(file --mime-type -b "$trueloc")" in + image/* ) ln -sf "$(readlink -f "$1")" "$bgloc" && notify-send -i "$bgloc" "Changing wallpaper..." ;; + inode/directory ) ln -sf "$(find "$trueloc" -iregex '.*.\(jpg\|jpeg\|png\|gif\)' -type f | shuf -n 1)" "$bgloc" && notify-send -i "$bgloc" "Random Wallpaper chosen." ;; + *) notify-send "Error" "Not a valid image." ; exit 1;; +esac + +# If pywal is installed, use it. +if command -v wal >/dev/null 2>&1 ; then + wal -i "$(readlink -f $bgloc)" -o "${XDG_CONFIG_HOME:-$HOME/.config}/wal/postrun" >/dev/null 2>&1 && + pidof dwm >/dev/null && xdotool key super+F12 +# If pywal is removed, return config files to normal. +else + [ -f "$dunstconf.bak" ] && unlink "$dunstconf" && mv "$dunstconf.bak" "$dunstconf" + [ -f "$zathuraconf.bak" ] && unlink "$zathuraconf" && mv "$zathuraconf.bak" "$zathuraconf" +fi + +xwallpaper --zoom "$bgloc" diff --git a/.local/bin/shortcuts b/.local/bin/shortcuts deleted file mode 100755 index 19d3ffd..0000000 --- a/.local/bin/shortcuts +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -# Output locations. Unactivated progs should go to /dev/null. -shell_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/shortcutrc" -zsh_named_dirs="${XDG_CONFIG_HOME:-$HOME/.config}/zshnameddirrc" -ranger_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/ranger/shortcuts.conf" -qute_shortcuts="/dev/null" -fish_shortcuts="/dev/null" -vifm_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/vifm/vifmshortcuts" - -# Remove, prepare files -rm -f "$ranger_shortcuts" "$qute_shortcuts" "$zsh_named_dirs" 2>/dev/null -printf "# vim: filetype=sh\\n" > "$fish_shortcuts" -printf "# vim: filetype=sh\\nalias " > "$shell_shortcuts" -printf "\" vim: filetype=vim\\n" > "$vifm_shortcuts" - -# Format the `directories` file in the correct syntax and sent it to all three configs. -sed "s/\s*#.*$//;/^\s*$/d" "${XDG_CONFIG_HOME:-$HOME/.config}/directories" | tee >(awk '{print $1"=\"cd "$2" && ls -a\" \\"}' >> "$shell_shortcuts") \ - >(awk '{print "hash -d "$1"="$2}' >> "$zsh_named_dirs") \ - >(awk '{print "abbr", $1, "\"cd " $2 "; and ls -a\""}' >> "$fish_shortcuts") \ - >(awk '{print "map g" $1, ":cd", $2 "\nmap t" $1, ":cd", $2 "\nmap M" $1, ":cd", $2 ":mo\nmap Y" $1, ":cd", $2 ":co" }' >> "$vifm_shortcuts") \ - >(awk '{print "config.bind(\";"$1"\", \"set downloads.location.directory "$2" ;; hint links download\")"}' >> "$qute_shortcuts") \ - | awk '{print "map g"$1" cd "$2"\nmap t"$1" tab_new "$2"\nmap m"$1" shell mv -v %s "$2"\nmap Y"$1" shell cp -rv %s "$2}' >> "$ranger_shortcuts" - -# Format the `files` file in the correct syntax and sent it to both configs. -sed "s/\s*#.*$//;/^\s*$/d" "${XDG_CONFIG_HOME:-$HOME/.config}/files" | tee >(awk '{print $1"=\"$EDITOR "$2"\" \\"}' >> "$shell_shortcuts") \ - >(awk '{print "abbr", $1, "\"$EDITOR "$2"\""}' >> "$fish_shortcuts") \ - >(awk '{print "map", $1, ":e", $2 "" }' >> "$vifm_shortcuts") \ - | awk '{print "map "$1" shell $EDITOR "$2}' >> "$ranger_shortcuts" diff --git a/.local/bin/statusbar/corona b/.local/bin/statusbar/corona deleted file mode 100755 index 8858bfe..0000000 --- a/.local/bin/statusbar/corona +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -( [ "$(stat -c %y ~/.cache/corona | cut -d' ' -f1)" != "$(date '+%Y-%m-%d')" ] || [ "$1" = "up" ] )&& - curl -s https://corona-stats.online/Switzerland | sed -r "s/[[:cntrl:]]\[[0-9]{1,3}m//g" > ~/.cache/corona && notify-send "Corona" "Stats updated"; sleep 5; pkill -RTMIN+15 dwmblocks - -increase=$( grep "Switzerland" ~/.cache/corona | - sed "s/\s*//g; s/โ•‘//g; s/โ”‚/;/g" | awk -F';' '{print $4}' ) -[ "$increase" != "" ] && ( grep "Switzerland" ~/.cache/corona | - sed "s/\s*//g; s/โ•‘//g; s/โ”‚/;/g" | - awk -F';' '{print "๐Ÿ˜ท"$3 " ("$4") ๐Ÿ’€"$5 }' ) || ( grep "Switzerland" ~/.cache/corona | - sed "s/\s*//g; s/โ•‘//g; s/โ”‚/;/g" | - awk -F';' '{print "๐Ÿ˜ท"$3 " ๐Ÿ’€"$5 }' ) diff --git a/.local/bin/statusbar/crypto b/.local/bin/statusbar/crypto deleted file mode 100755 index 31e88b3..0000000 --- a/.local/bin/statusbar/crypto +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh - -# Shows the price for desired cryptocurrencies. Module updates automatically -# every calendar day, but can also be updated with a middle click. - -# Currencies should be ;-separated: -# human-readable name;urlname;icon -coins="Bitcoin;btc;๐Ÿ’ฐ -Etherium;eth;๐Ÿธ -Basic Attention Token;bat;๐Ÿฆ -LBC;lbc;๐Ÿ“š" - -# Directory where currency info is stored. -dir="${XDG_DATA_HOME:-$HOME/.local/share}/crypto-prices" - -getprices() { # The command to get the desired prices - printf "๐Ÿ”ƒ "; printprices - { rm -rf "${dir:?}/*" - echo "$coins" | while IFS=';' read -r human web icon; do - val="$(curl -s "rate.sx/1$web")" && - echo "$icon;$val;$human" > "$dir/$web" - done; [ -d "$dir" ] && touch "$dir" - pkill -RTMIN+13 "${STATUSBAR:-dwmblocks}" ;} & - exit - } - -printprices() { # Print/format all prices - for x in "$dir"/*; do - [ -f "$x" ] || break - info="$(cut -d';' -f-2 --output-delimiter=' ' "$x")" - printf "%s $%0.2f " $info - done | sed 's/ $//' - } - -[ ! -d "$dir" ] && mkdir -p "$dir" && { getprices; exit ;} - -# If currencies haven't been updated today, try to update them. -[ "$(stat -c %x "$HOME/.local/share/crypto-prices" | cut -d' ' -f1)" != "$(date '+%Y-%m-%d')" ] && - { ping -q -c 1 1.1.1.1 >/dev/null 2>&1 && getprices || exit ;} - -case $BLOCK_BUTTON in - 1) uptime="$(date -d "$(stat -c %x "$dir")" '+%D at %T' | sed "s|$(date '+%D')|Today|")" - notify-send "Exact prices in USD" "$(awk -F';' '{print $1, $3 ":\n\t$" $2}' "$dir"/*) -Last updated: - $uptime" ;; - 2) getprices ;; - 3) notify-send "๐Ÿ’ธ Crypto-currency module" "\- Left click for exact prices. -- Middle click to update. -- Shows ๐Ÿ”ƒ if updating prices. -- Manually add/remove currencies to list in the script." ;; -esac - -printprices diff --git a/.local/bin/statusbar/getpomminutes b/.local/bin/statusbar/getpomminutes deleted file mode 100755 index d883376..0000000 --- a/.local/bin/statusbar/getpomminutes +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -day=$(date '+%Y%b%d') -logged=$(grep -v Break ~/eth/pomodoros | grep $(date '+%Y%b%d') | grep -Eo "\(.*\)" | paste -sd+ | bc) -temp=$(cat /tmp/pomptemptimes 2>/dev/null) -min=$([ "$logged" != "" ] && ([ "$temp" != "" ] && echo "$logged + $temp" | bc || echo $logged ) || ([ "$temp" != "" ] && echo $temp)) -[ -n "$min" ] && printf '๐Ÿ…%s' "$min" -printf '\n' diff --git a/.local/bin/statusbar/getpomminutesft b/.local/bin/statusbar/getpomminutesft deleted file mode 100755 index 03e5938..0000000 --- a/.local/bin/statusbar/getpomminutesft +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -day=$(date '+%Y%b%d') -logged=$(grep -v Break ~/bks/pomodoros_freetime | grep $(date '+%Y%b%d') | grep -Eo "\(.*\)" | paste -sd+ | bc) -temp=$(cat /tmp/pomptemptimesft 2>/dev/null) -min=$([ "$logged" != "" ] && ([ "$temp" != "" ] && echo "$logged + $temp" | bc || echo $logged ) || ([ "$temp" != "" ] && echo $temp)) -[ -n "$min" ] && printf '๐Ÿ“š%s'"$min" -printf '\n' diff --git a/.local/bin/statusbar/headset_connected b/.local/bin/statusbar/headset_connected deleted file mode 100755 index 6b0efc7..0000000 --- a/.local/bin/statusbar/headset_connected +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -if pactl list sinks | grep -qE 'device.icon_name = \"audio-(headset|headphones)-bluetooth\"'; then - printf '๐ŸŽง' -fi -printf '\n' diff --git a/.local/bin/statusbar/help b/.local/bin/statusbar/help deleted file mode 100755 index 4916d5c..0000000 --- a/.local/bin/statusbar/help +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -case $BLOCK_BUTTON in - 1) groff -mom ~/.local/share/larbs/readme.mom -Tpdf | zathura - ;; - 2) i3 restart ;; - 3) pgrep -x dunst >/dev/null && notify-send "โ“ Help module" "\- Left click to open LARBS guide. -- Middle click to refresh i3.";; -esac; echo "โ“" diff --git a/.local/bin/statusbar/help-icon b/.local/bin/statusbar/help-icon deleted file mode 100755 index 4d8e3c2..0000000 --- a/.local/bin/statusbar/help-icon +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# The clickable help menu. Middle click to restart wm. - -# If dwm is running, use dwm's readme and restart. -ps ax | grep -q "\sdwm$" && - READMEFILE=/usr/local/share/dwm/larbs.mom - restartwm() { pkill -HUP dwm ;} || - restartwm() { i3 restart ;} - -case $BLOCK_BUTTON in - 1) groff -mom "${READMEFILE:-${XDG_DATA_HOME:-$HOME/.local/share}/larbs/readme.mom}" -Tpdf | zathura - ;; - 2) restartwm ;; - 3) notify-send "โ“ Help module" "\- Left click to open LARBS guide. -- Middle click to refresh window manager.";; -esac; echo "โ“" diff --git a/.local/bin/statusbar/iplocate b/.local/bin/statusbar/iplocate deleted file mode 100755 index 4ca4f10..0000000 --- a/.local/bin/statusbar/iplocate +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -# Gets your public ip address checks which country you are in and -# displays that information in the statusbar -# -# https://www.maketecheasier.com/ip-address-geolocation-lookups-linux/ -ifinstalled "geoiplookup" || exit -addr="$(curl ifconfig.me 2>/dev/null)" || exit -grep "flag: " ~/.config/emoji | grep "$(geoiplookup $addr | sed 's/.*, //')" | sed "s/flag: //;s/;.*//" diff --git a/.local/bin/statusbar/moonphase b/.local/bin/statusbar/moonphase deleted file mode 100755 index 12ed90b..0000000 --- a/.local/bin/statusbar/moonphase +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# Shows the current moon phase. Requires `pom-perl`. - -mnphs=$(pom $1 | grep -o 'New\|Waxing Crescent\|First Quarter\|Waxing Gibbous\|Full\|Waning Gibbous\|Last Quarter\|Waning Crescent' | grep -m1 '.') -prcnt=$(pom $1 | grep -o '[[:digit:]]*%' | grep -o '[[:digit:]]*' ) -case "$mnphs" in - "New") icon="๐ŸŒ‘" prcnt="0" ;; - "Waxing Crescent") icon="๐ŸŒ’" ;; - "First Quarter") icon="๐ŸŒ“" prcnt="50" ;; - "Waxing Gibbous") icon="๐ŸŒ”" ;; - "Full") icon="๐ŸŒ•" prcnt="100" ;; - "Waning Gibbous") icon="๐ŸŒ–" ;; - "Last Quarter") icon="๐ŸŒ—" prcnt="50" ;; - "Waning Crescent") icon="๐ŸŒ˜" ;; - *) echo errorrrr ;; -esac - -case $BLOCK_BUTTON in - 1) $mnphs ;; - 2) $mnphs ;; - 3) notify-send " ๐ŸŒœ$(pom)" ;; -esac - -echo "$icon" "$prcnt"% diff --git a/.local/bin/statusbar/mpdupdate b/.local/bin/statusbar/mpdupdate deleted file mode 100755 index cd45481..0000000 --- a/.local/bin/statusbar/mpdupdate +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# Whenever the mpd state changes, update the mpd i3 module. -#kill -0 "$(cat /tmp/mpdupdate)" 2>/dev/null && exit || echo $$ > /tmp/mpdupdate - -#sleep 5 && while : ; do - #pkill -RTMIN+11 dwmblocks - #mpc idle >/dev/null || exit -#done -pkill -RTMIN+11 dwmblocks diff --git a/.local/bin/statusbar/music b/.local/bin/statusbar/music deleted file mode 100755 index c435fb1..0000000 --- a/.local/bin/statusbar/music +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -if [ "$( mpc status | grep -c '\[playing\]')" -eq 1 ]; then - full_length="$(mpc status | sed "/^volume:/d" | tac | sed -e "s/\\[paused\\].*//g;s/\\[playing\\].*//g" | tr -d '\n' | sed -e "s/$/ /g")" - #remove full directory structure if no title present and too long - if [ ${#full_length} -gt 40 ]; then - echo "${full_length##*/}" - else - echo "$full_length" - fi -else - printf '\n' -fi diff --git a/.local/bin/statusbar/music_old b/.local/bin/statusbar/music_old deleted file mode 100755 index 93c2c9c..0000000 --- a/.local/bin/statusbar/music_old +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -filter() { - sed "/^volume:/d" | tac | sed -e "s/\\&/&/g;s/\\[paused\\].*//g;s/\\[playing\\].*//g" | tr -d '\n' | sed -e "s/$/<\\/span>/g" - } - -case $BLOCK_BUTTON in - 1) mpc status | filter && setsid "$TERMINAL" -e ncmpcpp & ;; # right click, pause/unpause - 2) mpc toggle | filter ;; # right click, pause/unpause - 3) mpc status | filter && pgrep -x dunst >/dev/null && notify-send "๐ŸŽต Music module" "\- Shows mpd song playing. -- Italic when paused. -- Left click opens ncmpcpp. -- Middle click pauses. -- Scroll changes track.";; # right click, pause/unpause - 4) mpc prev | filter ;; # scroll up, previous - 5) mpc next | filter ;; # scroll down, next - *) mpc status | filter ;; -esac; exit diff --git a/.local/bin/statusbar/appointments b/.local/bin/statusbar/sb-appointments similarity index 72% rename from .local/bin/statusbar/appointments rename to .local/bin/statusbar/sb-appointments index e87be50..982b97e 100755 --- a/.local/bin/statusbar/appointments +++ b/.local/bin/statusbar/sb-appointments @@ -1,6 +1,16 @@ #!/bin/sh #Print the next appointment for the day for statusbar #or generate notification for upcoming appointment +notify_mins_before=10 + + +calcurse -a | perl -pe 's/([0-9]{2}:[0-9]{2})\n/\1/' | tail -n+2 | perl -pe 's/^\s*-\s*([0-9]{2}:[0-9]{2})\s*->\s*([0-9]{2}:[0-9]{2})\s*(.*?)$/\1\t\2\t\3/' | + while read -r appointment; do + start=$(echo "$appointment" | cut -d'\t' -f1) + end=$(echo "$appointment" | cut -d'\t' -f2) + description=$(echo "$appointment" | cut -d'\t' -f3) + done + diff=$(calcurse --next | sed -n 's/^\s*//; s/\[//;s/\]//p' | cut -f1 -d ' ' | perl -pe 's/0([0-9])/\1/g' ) if [ -n "$diff" ]; then secs=$(( $(echo "$diff" | cut -f1 -d ':') * 3600 + $(echo "$diff" | cut -f2 -d ':') *60 )) @@ -12,8 +22,11 @@ if [ -n "$diff" ]; then fi if [ "$1" = "notif" ]; then msg="$(printf '%s\n%s' "$(date --date "@$time_appointment" +'%H:%M')" "$appointment")" + check_for_notif "$msg" notify-send "Appointment coming up" "$msg" + printf "%s\n%s\n" $(date -I) $msg >> /tmp/apts_notif else + #Fix this ugly thing lmao midnight=$(( $(date --date "$(date | sed 's/..:..:../23:59:59/; s/ PM//; s/ AM//')" +%s) + 1 )) if [ $midnight -gt "$time_appointment" ]; then #only print appointment if dunst-notifications are also shown -> "privacy screen" diff --git a/.local/bin/statusbar/battery b/.local/bin/statusbar/sb-battery similarity index 100% rename from .local/bin/statusbar/battery rename to .local/bin/statusbar/sb-battery diff --git a/.local/bin/statusbar/btstatus b/.local/bin/statusbar/sb-btstatus similarity index 100% rename from .local/bin/statusbar/btstatus rename to .local/bin/statusbar/sb-btstatus diff --git a/.local/bin/statusbar/clock b/.local/bin/statusbar/sb-clock similarity index 100% rename from .local/bin/statusbar/clock rename to .local/bin/statusbar/sb-clock diff --git a/.local/bin/statusbar/cpu b/.local/bin/statusbar/sb-cpu similarity index 100% rename from .local/bin/statusbar/cpu rename to .local/bin/statusbar/sb-cpu diff --git a/.local/bin/statusbar/current_day b/.local/bin/statusbar/sb-current_day similarity index 100% rename from .local/bin/statusbar/current_day rename to .local/bin/statusbar/sb-current_day diff --git a/.local/bin/statusbar/disk b/.local/bin/statusbar/sb-disk similarity index 100% rename from .local/bin/statusbar/disk rename to .local/bin/statusbar/sb-disk diff --git a/.local/bin/statusbar/dunststatus b/.local/bin/statusbar/sb-dunststatus similarity index 100% rename from .local/bin/statusbar/dunststatus rename to .local/bin/statusbar/sb-dunststatus diff --git a/.local/bin/statusbar/getbright b/.local/bin/statusbar/sb-getbright similarity index 100% rename from .local/bin/statusbar/getbright rename to .local/bin/statusbar/sb-getbright diff --git a/.local/bin/statusbar/getmail b/.local/bin/statusbar/sb-getmail similarity index 100% rename from .local/bin/statusbar/getmail rename to .local/bin/statusbar/sb-getmail diff --git a/.local/bin/statusbar/internet b/.local/bin/statusbar/sb-internet similarity index 61% rename from .local/bin/statusbar/internet rename to .local/bin/statusbar/sb-internet index b7f8dc9..11d5f93 100755 --- a/.local/bin/statusbar/internet +++ b/.local/bin/statusbar/sb-internet @@ -12,8 +12,13 @@ esac [ "$(cat /sys/class/net/w*/operstate)" = 'down' ] && wifiicon="๐Ÿ“ก" -[ -z "${wifiicon+var}" ] && wifiicon="๐Ÿ“ถ" #[ ! -n "${wifiicon+var}" ] && wifiicon=$(grep "^\s*w" /proc/net/wireless | awk '{ print "๐Ÿ“ถ", int($3 * 100 / 70) "%" }') -printf "%s%s\n" "$wifiicon" "$(cat /sys/class/net/w*/operstate | sed "s/down/โŽ/;s/up//")" +if [ -d /sys/class/net/e* ]; then + wifiicon=๐ŸŒ + printf "%s%s\n" "$wifiicon" "$(cat /sys/class/net/e*/operstate | sed "s/down/โŽ/;s/up//")" +else + [ -z "${wifiicon+var}" ] && wifiicon="๐Ÿ“ถ" + printf "%s%s\n" "$wifiicon" "$(cat /sys/class/net/w*/operstate | sed "s/down/โŽ/;s/up//")" +fi diff --git a/.local/bin/statusbar/mailbox b/.local/bin/statusbar/sb-mailbox similarity index 100% rename from .local/bin/statusbar/mailbox rename to .local/bin/statusbar/sb-mailbox diff --git a/.local/bin/statusbar/memory b/.local/bin/statusbar/sb-memory similarity index 100% rename from .local/bin/statusbar/memory rename to .local/bin/statusbar/sb-memory diff --git a/.local/bin/statusbar/sb-music b/.local/bin/statusbar/sb-music new file mode 100755 index 0000000..ac172f7 --- /dev/null +++ b/.local/bin/statusbar/sb-music @@ -0,0 +1,16 @@ +#!/bin/sh +if [ "$( mpc status | grep -c '\[playing\]')" -eq 1 ]; then + if [ ! -f /tmp/nodunst ]; then + full_length="$(mpc status | sed "/^volume:/d" | tac | sed -e "s/\\[paused\\].*//g;s/\\[playing\\].*//g" | tr -d '\n' | sed -e "s/$/ /g")" + #remove full directory structure if no title present and too long + if [ ${#full_length} -gt 40 ]; then + echo "${full_length##*/}" + else + echo "$full_length" + fi + else + printf '\n' + fi +else + printf '\n' +fi diff --git a/.local/bin/statusbar/nettraf b/.local/bin/statusbar/sb-nettraf similarity index 100% rename from .local/bin/statusbar/nettraf rename to .local/bin/statusbar/sb-nettraf diff --git a/.local/bin/statusbar/news b/.local/bin/statusbar/sb-news similarity index 100% rename from .local/bin/statusbar/news rename to .local/bin/statusbar/sb-news diff --git a/.local/bin/statusbar/pacpackages b/.local/bin/statusbar/sb-pacpackages similarity index 100% rename from .local/bin/statusbar/pacpackages rename to .local/bin/statusbar/sb-pacpackages diff --git a/.local/bin/statusbar/torrent b/.local/bin/statusbar/sb-torrent similarity index 100% rename from .local/bin/statusbar/torrent rename to .local/bin/statusbar/sb-torrent diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume new file mode 100755 index 0000000..2137c15 --- /dev/null +++ b/.local/bin/statusbar/sb-volume @@ -0,0 +1,52 @@ +#!/bin/sh + +# Prints the current volume or ๐Ÿ”‡ if muted. Uses PulseAudio by default, +# uncomment the ALSA lines if you remove PulseAudio. + +case $BLOCK_BUTTON in + # 1) setsid "$TERMINAL" -e alsamixer & ;; + # 2) amixer sset Master toggle ;; + # 4) amixer sset Master 5%+ >/dev/null 2>/dev/null ;; + # 5) amixer sset Master 5%- >/dev/null 2>/dev/null ;; + 1) setsid "$TERMINAL" -e pulsemixer & ;; + 2) pamixer -t ;; + 4) pamixer --allow-boost -i 1 ;; + 5) pamixer --allow-boost -d 1 ;; + 3) notify-send "๐Ÿ“ข Volume module" "\- Shows volume ๐Ÿ”Š, ๐Ÿ”‡ if muted. +- Middle click to mute. +- Scroll to change." +esac + +#volstat="$(pactl list sinks)" +## volstat="$(amixer get Master)" # ALSA only equivalent. +# +## Uses active sink if one is running, otherwise just go for the default one (First one listed in pactl list sinks) +#if [ -z "$(echo "$volstat" | grep -A10 'State: RUNNING' )" ]; then +# echo "$volstat" | grep -q "Mute: yes" && printf "๐Ÿ”‡\\n" && exit +#else +# echo "$volstat" | grep -A10 "State: RUNNING" | grep -q "Mute: yes" && printf "๐Ÿ”‡\\n" && exit +#fi +## echo "$volstat" | grep "\[off\]" >/dev/null && printf "๐Ÿ”‡\\n" && exit # ALSA +# +## Uses active sink if one is running, otherwise just go for the default one (First one listed in pactl list sinks) +#if [ -z "$(echo "$volstat" | grep -A10 'State: RUNNING' )" ]; then +# vol="$(echo "$volstat" | grep '[0-9]\+%' | sed "s,.* \([0-9]\+\)%.*,\1,;1q")" +#else +# vol="$(echo "$volstat" | grep -A10 "State: RUNNING" | grep '[0-9]\+%' | sed "s,.* \([0-9]\+\)%.*,\1,;1q")" +#fi + +# vol=$(echo "$volstat" | grep -o "\[[0-9]\+%\]" | sed "s/[^0-9]*//g;1q") # ALSA +vol="$(pamixer --get-volume-human | tr -d '%')" +if echo "$vol" | grep -q muted; then + printf '๐Ÿ”‡\n' + +else + if [ "$vol" -gt "70" ]; then + icon="๐Ÿ”Š" + elif [ "$vol" -lt "30" ]; then + icon="๐Ÿ”ˆ" + else + icon="๐Ÿ”‰" + fi + printf "%s%s%%\\n" "$icon" "$vol" +fi diff --git a/.local/bin/statusbar/statusbarinfo b/.local/bin/statusbar/statusbarinfo deleted file mode 100755 index 2b3e58c..0000000 --- a/.local/bin/statusbar/statusbarinfo +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -echo " - ____ _ _ _ -/ ___|| |_ __ _| |_ _ _ ___| |__ __ _ _ __ -\___ \| __/ _\` | __| | | / __| '_ \ / _\` | '__| - ___) | || (_| | |_| |_| \__ \ |_) | (_| | | -|____/ \__\__,_|\__|\__,_|___/_.__/ \__,_|_| - -This is a list of the statusbar modules. - -๐Ÿ“ฆ5 \033[31mpacpackages\033[0m: updatable packages (must have pacman -Sy run in root cronjob to check). -๐Ÿ“ฐ 41 \033[32mnews\033[0m: unread RSS entries in newsboat. -โ˜” 83% โ„๏ธ 69ยฐ ๐ŸŒž 80ยฐ \033[33mweather\033[0m: โ˜” for precipitation, ๐ŸŒž and โ„ for daily high and low. -๐Ÿ“ฌ 20 \033[34mmailbox\033[0m: number of unread mail if mutt-wizard is active. -๐Ÿ”‰ 62% \033[35mvolume\033[0m: master sink volume. -๐Ÿ”Œ83% \033[36mbattery\033[0m: ๐Ÿ”Œ for charging, ๐Ÿ”‹ for discharging, โšก for full. -๐Ÿ“ถ 80% โŽ \033[37minternet\033[0m: ๐Ÿ“ถ for wifi with % (๐Ÿ“ก if none), ๐ŸŒ for ethernet. (โŽ if none). - -Obviously the time and date are displayed as well. - -Optional script modules: - -Edit \033[32m~/.local/src/dwmblocks/config.h\033[0m to add these or your own if you'd like (and recompile and restart dwmblocks). - -'memory' ๐Ÿง  559Mi/3.7Gi Current used memory/total memory. -'cpu' ๐ŸŒก +46.0ยฐC CPU temperature. -'disk' ๐Ÿ–ฅ : 28G/30G Remaining disk space... -'disk ~' ๐Ÿ : 641G/850G ...can be given directory argument. -'moonphase' ๐ŸŒ• 39% Phase of the moon (requires \033[32m\`pom-perl\`\033[0m). -'iplocate' ๐Ÿ‡บ๐Ÿ‡ธ United States Your own or VPN location (requires \033[32m\`geoiplookup\`\033[0m). -" | less diff --git a/.local/bin/statusbar/sync_status b/.local/bin/statusbar/sync_status deleted file mode 100755 index fc4d7f3..0000000 --- a/.local/bin/statusbar/sync_status +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -string="$(insync get_status)" - -case "$string" in - SYNCED) echo '๐Ÿ”—' ;; - OFFLINE) echo '๐Ÿ”—' ;; - SYNCING) echo '๐Ÿ”„' ;; -esac diff --git a/.local/bin/statusbar/volume b/.local/bin/statusbar/volume deleted file mode 100755 index 0442eca..0000000 --- a/.local/bin/statusbar/volume +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh - -# Prints the current volume or ๐Ÿ”‡ if muted. Uses PulseAudio by default, -# uncomment the ALSA lines if you remove PulseAudio. - -case $BLOCK_BUTTON in - # 1) setsid "$TERMINAL" -e alsamixer & ;; - # 2) amixer sset Master toggle ;; - # 4) amixer sset Master 5%+ >/dev/null 2>/dev/null ;; - # 5) amixer sset Master 5%- >/dev/null 2>/dev/null ;; - 1) setsid "$TERMINAL" -e pulsemixer & ;; - 2) pamixer -t ;; - 4) pamixer --allow-boost -i 1 ;; - 5) pamixer --allow-boost -d 1 ;; - 3) notify-send "๐Ÿ“ข Volume module" "\- Shows volume ๐Ÿ”Š, ๐Ÿ”‡ if muted. -- Middle click to mute. -- Scroll to change." -esac - -volstat="$(pactl list sinks)" -# volstat="$(amixer get Master)" # ALSA only equivalent. - -# Uses active sink if one is running, otherwise just go for the default one (First one listed in pactl list sinks) -if [ -z "$(echo "$volstat" | grep -A10 'State: RUNNING' )" ]; then - echo "$volstat" | grep -q "Mute: yes" && printf "๐Ÿ”‡\\n" && exit -else - echo "$volstat" | grep -A10 "State: RUNNING" | grep -q "Mute: yes" && printf "๐Ÿ”‡\\n" && exit -fi -# echo "$volstat" | grep "\[off\]" >/dev/null && printf "๐Ÿ”‡\\n" && exit # ALSA - -# Uses active sink if one is running, otherwise just go for the default one (First one listed in pactl list sinks) -if [ -z "$(echo "$volstat" | grep -A10 'State: RUNNING' )" ]; then - vol="$(echo "$volstat" | grep '[0-9]\+%' | sed "s,.* \([0-9]\+\)%.*,\1,;1q")" -else - vol="$(echo "$volstat" | grep -A10 "State: RUNNING" | grep '[0-9]\+%' | sed "s,.* \([0-9]\+\)%.*,\1,;1q")" -fi - -# vol=$(echo "$volstat" | grep -o "\[[0-9]\+%\]" | sed "s/[^0-9]*//g;1q") # ALSA - -if [ "$vol" -gt "70" ]; then - icon="๐Ÿ”Š" -elif [ "$vol" -lt "30" ]; then - icon="๐Ÿ”ˆ" -else - icon="๐Ÿ”‰" -fi - -printf "%s%s%%\\n" "$icon" "$vol" diff --git a/.local/bin/statusbar/volume_ b/.local/bin/statusbar/volume_ deleted file mode 100755 index 3bbb32b..0000000 --- a/.local/bin/statusbar/volume_ +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -case $BLOCK_BUTTON in - 1) setsid "$TERMINAL" -e pulsemixer & ;; - 2) pulsemixer --toggle-mute ;; - 4) pulsemixer --change-volume +5 ;; - 5) pulsemixer --change-volume -5 ;; - 3) pgrep -x dunst >/dev/null && notify-send "๐Ÿ“ข Volume module" "\- Shows volume ๐Ÿ”Š, ๐Ÿ”‡ if muted. -- Middle click to mute. -- Scroll to change." -esac - -[ "$(pulsemixer --get-mute)" = "1" ] && printf "๐Ÿ”‡\\n" && exit - -vol=$(pulsemixer --get-volume | awk '{print $1}') - -if [ "$vol" -gt "70" ]; then - icon="๐Ÿ”Š" -elif [ "$vol" -lt "30" ]; then - icon="๐Ÿ”ˆ" -else - icon="๐Ÿ”‰" -fi - -printf "%s %s%%\\n" "$icon" "$vol" diff --git a/.local/bin/statusbar/weather b/.local/bin/statusbar/weather deleted file mode 100755 index 944b603..0000000 --- a/.local/bin/statusbar/weather +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -meteobluelink="https://www.meteoblue.com/en/weather/forecast/multimodel/zurich_switzerland_2657896" -multimodel_path="$XDG_DATA_HOME/$(date -I)_multimodel.png" - -last_downloaded_path="$(for file in "$XDG_DATA_HOME"/*_multimodel.png; do - echo "$file" -done | head -n1)" -last_downloaded="$(echo "${last_downloaded_path%_multimodel.png}" | awk 'BEGIN{FS="/"} {print $NF}')" -if [ "$last_downloaded" = "*" ]; then - FLAG_download=true -else - if [ "$(date -I)" != "$last_downloaded" ]; then - echo "Last report is from another day, downloading for today..." - rm "$XDG_DATA_HOME"/*_multimodel.png - FLAG_download=true - else - FLAG_download=false - fi -fi -if [ $FLAG_download = 'true' ]; then - mb_imagelink="$(lynx --dump --listonly --nonumbers "$meteobluelink" | grep meteogram_multiSimple_hd)" - curl -L "$mb_imagelink" -o "$multimodel_path" -else - echo "currently downloaded multimodel is from today, showing cached version" -fi -sxiv "$XDG_DATA_HOME"/*_multimodel.png diff --git a/.local/bin/sysact b/.local/bin/sysact deleted file mode 100755 index aaef469..0000000 --- a/.local/bin/sysact +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -# A dmenu wrapper script for system functions. - -cmds="\ -lock screen slock -leave dwm kill -TERM $(pidof -s dwm) -refresh dwm kill -HUP $(pidof -s dwm) -reboot sudo -A reboot -shutdown sudo -A shutdown -h now" - -choice="$(echo "$cmds" | cut -d' ' -f 1 | dmenu)" || exit 1 - -`echo "$cmds" | grep "^$choice " | cut -d ' ' -f2-` diff --git a/.local/bin/td-toggle b/.local/bin/td-toggle deleted file mode 100755 index d2ba76a..0000000 --- a/.local/bin/td-toggle +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# If transmission-daemon is running, will ask to kill, else will ask to start. - -if pidof transmission-daemon >/dev/null ; -then - [ "$(printf "No\\nYes" | dmenu -i -p "Turn off transmission-daemon?")" = "Yes" ] && killall transmission-da && notify-send "transmission-daemon disabled." -else - ifinstalled transmission-cli || exit - [ "$(printf "No\\nYes" | dmenu -i -p "Turn on transmission daemon?")" = "Yes" ] && transmission-daemon && notify-send "tranmission-daemon enabled." -fi -sleep 3 && pkill -RTMIN+7 "${STATUSBAR:-dwmblocks}" diff --git a/.local/bin/test2 b/.local/bin/test2 deleted file mode 100755 index 14b2eb6..0000000 --- a/.local/bin/test2 +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -echo $1 -echo $2 diff --git a/.local/bin/testscript b/.local/bin/testscript deleted file mode 100755 index b0be37b..0000000 --- a/.local/bin/testscript +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -[ -n "$1" ] && echo "$1" > "/home/alex/test" diff --git a/.local/bin/texclear b/.local/bin/texclear new file mode 100755 index 0000000..4cdb02e --- /dev/null +++ b/.local/bin/texclear @@ -0,0 +1,16 @@ +#!/bin/sh + +# Clears the build files of a LaTeX/XeLaTeX build. +# I have vim run this file whenever I exit a .tex file. + +case "$1" in + *.tex) + file=$(readlink -f "$1") + dir=$(dirname "$file") + base="${file%.*}" + find "$dir" -maxdepth 1 -type f -regextype gnu-awk -regex "^$base\\.(4tc|xref|tmp|pyc|pyg|pyo|fls|vrb|fdb_latexmk|bak|swp|aux|log|synctex\\(busy\\)|lof|lot|maf|idx|mtc|mtc0|nav|out|snm|toc|bcf|run\\.xml|synctex\\.gz|blg|bbl)" -delete + rm -rdf "$dir/_minted-$(basename -- "$base")" + ;; + *) printf "Give .tex file as argument.\\n" ;; +esac + diff --git a/.local/bin/tldextract b/.local/bin/tldextract deleted file mode 100755 index 613634a..0000000 --- a/.local/bin/tldextract +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -import re -import sys -from tldextract.cli import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.local/bin/tools/arkenfox-auto-update b/.local/bin/tools/arkenfox-auto-update new file mode 100755 index 0000000..7664a4f --- /dev/null +++ b/.local/bin/tools/arkenfox-auto-update @@ -0,0 +1,23 @@ +#!/bin/sh + +# A wrapper for the arkenfox-updater that runs it on all pre-existing Arkenfox +# user.js files on the machine. + +# On installation of LARBS, this file is copied to /usr/local/lib/ where it is +# run by a pacman hook set up. The user should not have to run this manually. + +# Search for all Firefox and Librewolf profiles using Arkenfox. +profiles="$(grep -sH "arkenfox user.js" \ + /home/*/.librewolf/*.default-release/user.js \ + /home/*/.mozilla/firefox/*.default-release/user.js)" + +IFS=' +' + +# Update each found profile. +for profile in $profiles; do + userjs=${profile%%/user.js*} + user=$(stat -c '%U' "$userjs") || continue + + su -l "$user" -c "arkenfox-updater -c -p $userjs -s" +done diff --git a/.local/bin/tools/booksplit b/.local/bin/tools/booksplit new file mode 100755 index 0000000..079d85f --- /dev/null +++ b/.local/bin/tools/booksplit @@ -0,0 +1,43 @@ +#!/bin/sh + +# Requires ffmpeg + +[ ! -f "$2" ] && printf "The first file should be the audio, the second should be the timecodes.\\n" && exit + +echo "Enter the album/book title:"; read -r booktitle +echo "Enter the artist/author:"; read -r author +echo "Enter the publication year:"; read -r year + +inputaudio="$1" +ext="${1##*.}" + +# Get a safe file name from the book. +escbook="$(echo "$booktitle" | iconv -c -f UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")" + +! mkdir -p "$escbook" && + echo "Do you have write access in this directory?" && + exit 1 + +# Get the total number of tracks from the number of lines. +total="$(wc -l < "$2")" + +cmd="ffmpeg -i \"$inputaudio\" -nostdin -y" + +while read -r x; +do + end="$(echo "$x" | cut -d' ' -f1)" + file="$escbook/$(printf "%.2d" "$track")-$esctitle.$ext" + if [ -n "$start" ]; then + cmd="$cmd -metadata artist=\"$author\" -metadata title=\"$title\" -metadata album=\"$booktitle\" -metadata year=\"$year\" -metadata track=\"$track\" -metadata total=\"$total\" -ss \"$start\" -to \"$end\" -vn -c:a copy \"$file\" " + fi + title="$(echo "$x" | cut -d' ' -f2-)" + esctitle="$(echo "$title" | iconv -c -f UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")" + track="$((track+1))" + start="$end" +done < "$2" + +# Last track must be added out of the loop. +file="$escbook/$(printf "%.2d" "$track")-$esctitle.$ext" +cmd="$cmd -metadata artist=\"$author\" -metadata title=\"$title\" -metadata album=\"$booktitle\" -metadata year=\"$year\" -metadata track=\"$track\" -ss \"$start\" -vn -c copy \"$file\"" + +eval "$cmd" diff --git a/.local/bin/tools/bt_blacklist b/.local/bin/tools/bt_blacklist deleted file mode 100644 index 96e7896..0000000 --- a/.local/bin/tools/bt_blacklist +++ /dev/null @@ -1 +0,0 @@ -MX Master diff --git a/.local/bin/tools/bthandler_ b/.local/bin/tools/bthandler_ deleted file mode 100755 index cdc7e52..0000000 --- a/.local/bin/tools/bthandler_ +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash -#wait time to discover new devices in seconds -SCAN_PERIOD=5 -BLACKLIST=$HOME/.local/bin/tools/bt_blacklist -actions="turn off\nturn on\npair\nunpair" - -#Checks for necessary programs to be present. Very unlikely not to be present but let's just err on the safer side. -for prog in dmenu bluetoothctl awk cat; do - if ! hash "$prog" 2>/dev/null; then - printf 'bthandler: %s: command not found\n' "$prog" >&2 - exit 127 - fi -done - - -bluetoothctl paired-devices | awk '{print $2}' > /tmp/bt_IDS -bluetoothctl paired-devices | awk '{for (i=3; i /tmp/paired_devices -grep -vf "$BLACKLIST" /tmp/paired_devices > /tmp/disp_devices - -#Don't print empty device list, removes unnecessary empty choice in dmenu -len=$(cat /tmp/disp_devices | wc -l) -[ $len -gt 0 ] && choice=$( printf "$(< /tmp/disp_devices)\n$actions" | dmenu -i -p 'What BT action would you like to perform:' ) -[ $len -eq 0 ] && choice=$( printf "$actions" | dmenu -i -p 'What BT action would you like to perform:' ) - -cleanup(){ - rm -f /tmp/bt_devices - rm -f /tmp/bt_IDS - rm -f /tmp/paired_devices - rm -f /tmp/new_devices - rm -f /tmp/disp_devices - bluetoothctl scan off > /dev/null - exit -} - - -case $choice in - "turn on") bluetoothctl power on - cleanup;; - "turn off") bluetoothctl power off - cleanup;; - "scan on") bluetoothctl power on && echo power on && sleep 2 - [ -n $TERMINAL ] && ($TERMINAL -e bluetoothctl scan on ) || st bluetoothctl scan on - cleanup;; - "pair") bluetoothctl power on - bluetoothctl scan on & disown - notify-send "Bluetooth" "Searching for devices, please wait a bit" - sleep $SCAN_PERIOD - bluetoothctl devices | awk '{for (i=3; i /tmp/bt_devices - grep -vf /tmp/paired_devices /tmp/bt_devices > /tmp/new_devices - choice=$( cat /tmp/new_devices | dmenu -l 10 -i -p 'pair with which device?' ) - if [ -n "$choice" ]; then - bluetoothctl devices | awk '{print $2}' > /tmp/bt_IDS - dev_no=$(cat -n /tmp/bt_devices | grep "$choice" | awk '{print $1}') - dev_id=$(cat -n /tmp/bt_IDS | grep -E $dev_no"[[:space:]]" | awk '{print $2}' ) - - bluetoothctl pair $dev_id && sleep 2 - bluetoothctl connect $dev_id - fi - cleanup;; - "unpair") choice=$( cat /tmp/paired_devices | dmenu -l 10 -i -p 'remove which paired device?') - if [ -n "choice" ]; then - dev_no=$(cat -n /tmp/paired_devices | grep "$choice" | awk '{print $1}') - dev_id=$(cat -n /tmp/bt_IDS | grep -E $dev_no"[[:space:]]" | awk '{print $2}' ) - bluetoo - bluetoothctl remove $dev_id - fi - cleanup;; -esac - -if [ -n "$choice" ]; then - dev_no=$(cat -n /tmp/paired_devices | grep "$choice" | awk '{print $1}') - dev_id=$(cat -n /tmp/bt_IDS | grep $dev_no | awk '{print $2}') - bluetoothctl power on - bluetoothctl connect $dev_id -fi - -cleanup diff --git a/.local/bin/tools/casttest b/.local/bin/tools/casttest deleted file mode 100755 index 807a57c..0000000 --- a/.local/bin/tools/casttest +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -video=$1 -speed=${2:-1} -echo "speed: $speed" -slowness="$( echo $speed | bc -l )" -echo "slowness: $slowness" -rate=$( ffmpeg -i $video | sed -n "s/.*, \(.*\) tbr.*/\1/p" ) -echo "oldrate: $rate" -newrate=$( echo "scale=0; $speed * $rate" | bc -l ) -echo "newrate: $newrate" -command=ffmpeg -re -i "$video" -r $newrate filter:v "setpts=$slowness*PTS" pipe:1 -mkchromecast --video --control --command "$command" diff --git a/.local/bin/tools/castyt b/.local/bin/tools/castyt index c15c550..66eebcd 100755 --- a/.local/bin/tools/castyt +++ b/.local/bin/tools/castyt @@ -1,2 +1,2 @@ #!/bin/sh -mkchromecast --notifications --video --control -y $1 2>/dev/null || true +mkchromecast --video --control -y $1 2>/dev/null || true diff --git a/.local/bin/tools/clip b/.local/bin/tools/clip deleted file mode 100755 index 770cd5f..0000000 --- a/.local/bin/tools/clip +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -xclip -o -selection "clipboard" diff --git a/.local/bin/tools/dl_torrent_and_view.sh b/.local/bin/tools/dl_torrent_and_view.sh deleted file mode 100755 index 9922d5a..0000000 --- a/.local/bin/tools/dl_torrent_and_view.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -filepath_remote="$(echo "$1" | sed 's/\[/\\[/g; s/\\]/\\]/g')" -filename="${1##*/}" -remote=rezepte.bocken.org -notify-send "Downloading $filename" -download_path="$HOME/dls" -download_file="$download_path/$filename" -rsync -rvPu "root@$remote:$filepath_remote" "$download_file" -clear -rifle "$download_file" || ranger $download_path diff --git a/.local/bin/tools/dmenuhandler b/.local/bin/tools/dmenuhandler index ecdc267..c3393ae 100755 --- a/.local/bin/tools/dmenuhandler +++ b/.local/bin/tools/dmenuhandler @@ -11,14 +11,14 @@ makepathabsolute(){ echo "$dl_location" } -choices="$(printf 'mpv\\ncopy url\\nqueue download\\nrifle file\\nqueue youtube-dl\\nbrowser\\nrip media\\ncast')" +choices="$(printf 'mpv\ncopy url\nqueue download\nrifle file\nqueue youtube-dl\nbrowser\nrip media\ncast')" if echo "$1" | grep -q "4chan"; then - choices="$(printf '%s\\nwatch thread' "$choices")" + choices="$(printf '%s\nwatch thread' "$choices")" fi choice="$(echo "$choices" | dmenu -i -p "Open link with what program?")" case "$choice" in "copy url") echo "$1" | xclip -selection clipboard ;; - mpv) setsid mpv --quiet --ytdl-format='bestvideo[height<=1080]+bestaudio/best[height<=1080]' "$1" & ;; + mpv) setsid mpv --quiet --ytdl-format='bestvideo[height<=1080]+bestaudio/best[height<=1080]' --force-window=yes "$1" & ;; "mpv (loop)") setsid mpv --input-ipc-server=/tmp/mpvsoc$(date +%s) -quiet --loop "$1" >/dev/null 2>&1 & ;; "queue download") name="$( dmenuinput 'Name for file:' )" [ -z "$name" ] && tsp curl -C - -LO "$1" >/dev/null 2>&1 @@ -32,7 +32,7 @@ case "$choice" in #"mpv (float)") setsid mpv --input-ipc-server=/tmp/mpvsoc$(date +%s) --geometry=+0-0 --autofit=30% --title="mpvfloat" "$1" >/dev/null 2>&1 & ;; "rifle file") curl -L "$1" -o "/tmp/riflefile" rifle /tmp/riflefile;; - "watch thread") dest="$(dmenuinput 'name of folder:')" + "watch thread") dest="$(find $HOME -maxdepth 5 -type d -not -path "$HOME/.*" | dmenu -i -p 'name of folder:')" [ -z "$dest" ] && exit echo "dmenuhandler:$dest" mkdir -p "$(makepathabsolute "$dest")" diff --git a/.local/bin/tools/email_handler b/.local/bin/tools/email_handler deleted file mode 100755 index 850a07a..0000000 --- a/.local/bin/tools/email_handler +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -input=$1 -while read -r str -do - [[ $(grep -c "$str" "$input") == 1 ]] && echo $str -done < "$input" diff --git a/.local/bin/tools/epdf b/.local/bin/tools/epdf deleted file mode 100755 index 7add619..0000000 --- a/.local/bin/tools/epdf +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -pdf="$(du -a --time ETH/ | awk '!($1="")' | sort -r | grep '\.pdf' | awk '!($1="")' | awk '!($1="")' | sed 's/^ //' | dmenu -l 20 )" -[ -z $pdf ] || $READER "$pdf" diff --git a/.local/bin/tools/ext b/.local/bin/tools/ext deleted file mode 120000 index 14970c2..0000000 --- a/.local/bin/tools/ext +++ /dev/null @@ -1 +0,0 @@ -/home/alex/.local/bin/tools/extract \ No newline at end of file diff --git a/.local/bin/tools/fix_devices b/.local/bin/tools/fix_devices deleted file mode 100644 index 8f76e31..0000000 --- a/.local/bin/tools/fix_devices +++ /dev/null @@ -1,3 +0,0 @@ - -Device 00:00:00:00:3F:F3 TOZO-T10-R -Device 00:00:00:00:3F:F3 TOZO-T10-R diff --git a/.local/bin/tools/getkeys b/.local/bin/tools/getkeys deleted file mode 100755 index 444f4c0..0000000 --- a/.local/bin/tools/getkeys +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -cat ~/.config/getkeys/"$1" 2>/dev/null && exit -echo "Run command with one of the following arguments for info about that program:" -ls ~/.config/getkeys diff --git a/.local/bin/tools/gomuks_profile b/.local/bin/tools/gomuks_profile new file mode 100755 index 0000000..aea1e92 --- /dev/null +++ b/.local/bin/tools/gomuks_profile @@ -0,0 +1,2 @@ +#!/bin/sh +name=$1 GOMUKS_CACHE_HOME="$XDG_CACHE_HOME/gomuks_$name" GOMUKS_CONFIG_HOME="$XDG_CONFIG_HOME/gomuks_$name" GOMUKS_DATA_HOME="$XDG_DATA_HOME/gomuks_$name" DEBUG_DIR="/tmp/gomuks_$name" GOMUKS_DOWNLOAD_HOME="$HOME" gomuks diff --git a/.local/bin/tools/hover b/.local/bin/tools/hover index 4354328..0d83f79 100755 --- a/.local/bin/tools/hover +++ b/.local/bin/tools/hover @@ -26,7 +26,7 @@ screenheight="$( echo "$dim" | grep -Eo 'x[0-9]{1,5}+' | tr -d 'x+')" newheight=$(( 2 * screenheight / 5 )) newwidth=$(( 2 * screenwidth / 5 )) # fit your borderwidth setup of your WM or windows could bleed over to other display -borderwidth=2 +borderwidth=1 # see https://specifications.freedesktop.org/wm-spec/wm-spec-1.3.html for gravity specs # I do not believe that gravity is being respected in dwm. diff --git a/.local/bin/tools/importvocabs b/.local/bin/tools/importvocabs deleted file mode 100755 index fe5e69a..0000000 --- a/.local/bin/tools/importvocabs +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -#arg 1: xlsx file -current_dir="$pwd" -cd $HOME/src/GRE/ -find *.xlsx | xargs git rm -find *.csv | xargs git rm -cd "$current_dir" -xlsx2csv -d 'tab' $1 | tail -n +3 > "$HOME/src/GRE/${1%xlsx}csv" -mv $1 $HOME/src/GRE -cd $HOME/src/GRE/ -git add "$1" -git add "${1%xlsx}csv" -cd "$current_dir" diff --git a/.local/bin/tools/mand b/.local/bin/tools/mand deleted file mode 100755 index 3056d80..0000000 --- a/.local/bin/tools/mand +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# macho - an interactive man page finder using fzf -# from: https://hiphish.github.io/blog/2020/05/31/macho-man-command-on-steroids/ - -while getopts ":s:" opt; do - case $opt in - s ) SECTION=$OPTARG; shift; shift;; - \?) echo "Invalid option: -$OPTARG" >&2; exit 1;; - : ) echo "Option -$OPTARG requires an argument" >&2; exit 1;; - esac -done - -manual=$(apropos -s ${SECTION:-''} ${@:-.} | \ - grep -v -E '^.+ \(0\)' |\ - awk '{print $2 " " $1}' | \ - sort | \ - dmenu -i -l 20 -p "Manual: " | \ - sed -E 's/^\((.+)\)/\1/') - -echo $manual -[ -z "$manual" ] && exit 0; - -man -T"${FORMAT:-pdf}" $manual | ${READER:-zathura} - diff --git a/.local/bin/tools/nsxiv-rifle b/.local/bin/tools/nsxiv-rifle new file mode 100755 index 0000000..e3fcb29 --- /dev/null +++ b/.local/bin/tools/nsxiv-rifle @@ -0,0 +1,51 @@ +#!/bin/sh + +TMPDIR="${TMPDIR:-/tmp}" +tmp="$TMPDIR/nsxiv_rifle_$$" + +is_img_extension() { + grep -iE '\.(jpe?g|png|gif|svg|webp|tiff|heif|avif|ico|bmp)$' +} + +listfiles() { + find -L "$1" -maxdepth 1 -type f -print | + is_img_extension | sort | tee "$tmp" +} + +open_img() { + file="$1"; shift; + # only go through listfiles() if the file has a valid img extension + if echo "$file" | is_img_extension >/dev/null 2>&1; then + trap 'rm -f $tmp' EXIT + count="$(listfiles "///${file%/*}" | grep -nF "$file")" + fi + if [ -n "$count" ]; then + nsxiv -i -n "${count%%:*}" "$@" -- < "$tmp" + else + # fallback incase file didn't have a valid extension, or we couldn't + # find it inside the list + nsxiv "$@" -- "$file" + fi +} + +uri2path() { + python3 - "$@" <<'___HEREDOC' +from urllib.parse import unquote, urlparse +from sys import argv +for arg in argv[1:]: + print(unquote(urlparse(arg).path)) +___HEREDOC +} + +[ "$1" = '--' ] && shift +case "$1" in + "") echo "Usage: ${0##*/} PICTURES" >&2; exit 1 ;; + /*) open_img "$1" ;; + "~"/*) open_img "$HOME/${1#"~"/}" ;; + file:///*) open_img "$(uri2path "$1")" ;; + trash:///*) + trash_dir="${XDG_DATA_HOME:-$HOME/.local/share}/Trash/files" + open_img "${trash_dir}$(uri2path "$1")" -N "nsxiv_trash" + ;; + *) open_img "$PWD/$1" ;; +esac diff --git a/.local/bin/tools/opout b/.local/bin/tools/opout deleted file mode 100755 index c742aa9..0000000 --- a/.local/bin/tools/opout +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# opout: "open output": A general handler for opening a file's intended output. -# I find this useful especially running from vim. - -basename="$(echo "$1" | sed 's/\.[^\/.]*$//')" - -case "$1" in - *.tex|*.md|*.rmd|*.ms|*.me|*.mom) setsid "$READER" "$basename".pdf >/dev/null 2>&1 & ;; - *.html) setsid "$BROWSER" --new-window "$basename".html >/dev/null 2>&1 & ;; - *.sent) setsid sent "$1" >/dev/null 2>&1 & ;; -esac diff --git a/.local/bin/tools/passmenu2 b/.local/bin/tools/passmenu2 index cfcda87..0bffce5 100755 --- a/.local/bin/tools/passmenu2 +++ b/.local/bin/tools/passmenu2 @@ -15,6 +15,7 @@ DONE=0 LEVEL=0 PREVSELECTION="" SELECTION="" +DEFAULT_USER="alexander@bocken.org" while [ "$DONE" -eq 0 ] ; do password_files=( "$STARTDIR"/* ) @@ -48,7 +49,15 @@ while [ "$DONE" -eq 0 ] ; do pass otp show -c "$SELECTION" > $HOME/.cache/passstring else pass show -c "$SELECTION" > $HOME/.cache/passstring - pass show "$SELECTION" | awk 'NR == 2 {print $NF}' | xclip -r -i -selection primary + if [ $? -eq 0 ]; then + var=$(pass show "$SELECTION" | awk 'NR == 2 {print $NF}') + if [ -z $var ]; then + var=$DEFAULT_USER + fi + echo $var | xclip -r -i -selection primary + else + exit 1 + fi fi sed -e "s/^/\"/" -e "s/$/\"/" $HOME/.cache/passstring | xargs -r notify-send "Password" -t 4000 sleep 45 diff --git a/.local/bin/tools/patch_mailsync b/.local/bin/tools/patch_mailsync deleted file mode 100755 index a89aee5..0000000 --- a/.local/bin/tools/patch_mailsync +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -sudo sed -i '/case "$(readlink -f \/sbin\/init)" in/,+2d' $(which mailsync) diff --git a/.local/bin/tools/pauseallmpv b/.local/bin/tools/pauseallmpv deleted file mode 100755 index c5da220..0000000 --- a/.local/bin/tools/pauseallmpv +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -for i in $(ls /tmp/mpvsoc*); do - echo '{ "command": ["set_property", "pause", true] }' | socat - $i; -done diff --git a/.local/bin/tools/plot b/.local/bin/tools/plot deleted file mode 100755 index ee76a2d..0000000 --- a/.local/bin/tools/plot +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -if [ $# -eq 1 ]; then - A=0 - B=1 - F="$( echo "$1" | sed -E 's/\"//g' )" -elif [ $# -eq 2 ]; then - A=0 - B="$1" - F="$( echo "$2" | sed -E 's/\"//g' )" - -elif [ $# -eq 3 ]; then - A="$1" - B="$2" - F="$( echo "$3" | sed -E 's/\"//g' )" -else - echo "Please use 1,2 or 3 arguments for plotting" - exit -fi - -python -c "from numpy import * -import matplotlib.pyplot as plt - -def plot(a, b, f): - x = linspace(a, b, 1000) - y = eval(f) - plt.plot(x, y) - plt.show() - -plot($A,$B,\"$F\")" diff --git a/.local/bin/tools/polybox_sync b/.local/bin/tools/polybox_sync deleted file mode 100755 index 67bf948..0000000 --- a/.local/bin/tools/polybox_sync +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -# Required if run as a cronjob: -export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus -export PASSWORD_STORE_GPG_OPTS="--homedir=$HOME/.local/share/gnupg" -export PASSWORD_STORE_DIR="$HOME/.local/share/password-store" - -ping 1.1.1.1 -c 1 && owncloudcmd -s -u abocken -p "$(pass ETH/nETHz\ -\ abocken@ethz.ch)" $HOME/eth/polybox https://polybox.ethz.ch diff --git a/.local/bin/tools/print_zine b/.local/bin/tools/print_zine new file mode 100755 index 0000000..86be13d --- /dev/null +++ b/.local/bin/tools/print_zine @@ -0,0 +1,5 @@ +#!/bin/sh +PRINTER="Canon-MF220" +#PRINTER=Virtual_PDF_Printer +a5ona4 "$1" +lpr -P $PRINTER -o media=A4 -o Duplex=DuplexTumble -o sides=two-sided-short-edge -o BindEdge=Bottom -o media=a4 -r "a5ona4_$1" diff --git a/.local/bin/tools/pw b/.local/bin/tools/pw deleted file mode 100755 index b6597dc..0000000 --- a/.local/bin/tools/pw +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -passmenu2 -#group=$(pass list | sed 's/\x1B\[[0-9;]\+[A-Za-z]//g' | grep -Ev "Password|mutt-wizard" | grep -v ' .โ”€โ”€' | sed -E 's/โ”œโ”€โ”€|โ””โ”€โ”€| //' | sed 's/ //' | dmenu -l 20 -p 'choose group:') -# -#if [ -n "$group" ] -#then -# account=$(pass list "$group" | sed 1d | sed -E 's/โ”œโ”€โ”€|โ””โ”€โ”€| //'| sed 's/ //' | dmenu -l 20 -p "choose account from $group:") -# -# if [ -n "$account" ] -# then -# temp="$group/$account" -# echo "$temp" -# pass -c "$temp" > $HOME/.cache/passstring -# sed -e "s/^/\"/" -e "s/$/\"/" $HOME/.cache/passstring | xargs notify-send "Password" -# rm $HOME/.cache/passstring -# sleep 45 -# notify-send "Password" "password cleared from clipboard" -# fi -#fi diff --git a/.local/bin/tools/qndl b/.local/bin/tools/qndl deleted file mode 100755 index a99d37e..0000000 --- a/.local/bin/tools/qndl +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $1 is a url; $2 is a command -[ -z "$1" ] && exit -base="$(basename "$1")" -notify-send "โณ Queuing $base..." -cmd="$2" -[ -z "$cmd" ] && cmd="youtube-dl --add-metadata" -idnum="$(tsp $cmd "$1")" -realname="$(echo "$base" | sed "s/?\(source\|dest\).*//;s/%20/ /g")" -tsp -D "$idnum" mv "$base" "$realname" -tsp -D "$idnum" notify-send "๐Ÿ‘ $realname done." diff --git a/.local/bin/tools/queueandnotify b/.local/bin/tools/queueandnotify deleted file mode 100755 index a1417ec..0000000 --- a/.local/bin/tools/queueandnotify +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# Podboat sucks. This script replaces it. -# It reads the newsboat queue, queuing downloads with taskspooler. -# It also removes the junk from extentions. -queuefile="$HOME/.local/share/newsboat/queue" - -while read -r line; do - [ -z "$line" ] && continue - url="$(echo "$line" | awk '{print $1}')" - qndl "$url" "curl -LO" -done < "$queuefile" - -echo > "$queuefile" diff --git a/.local/bin/tools/refbar b/.local/bin/tools/refbar deleted file mode 100755 index b346cf0..0000000 --- a/.local/bin/tools/refbar +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env sh - -# Refresh the dwmbar. -# Send SIGTRAP signal to dwmbar script, which will handle it with a trap. -pkill -SIGTRAP dwmbar diff --git a/.local/bin/tools/restart b/.local/bin/tools/restart deleted file mode 100755 index bdcad40..0000000 --- a/.local/bin/tools/restart +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -pkill $1 -setsid $1 diff --git a/.local/bin/tools/rotdir b/.local/bin/tools/rotdir deleted file mode 100755 index e7103db..0000000 --- a/.local/bin/tools/rotdir +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -[ -z "$1" ] && echo "usage: rotdir regex 2>&1" && exit 1 -base="$(basename $1)" - ls "$PWD" | awk "BEGIN { lines = \"\"; m = 0; } /^$base$/ { m = 1; } { if (!m) { if (lines) { lines = lines\"\n\"; } lines = lines\"\"\$0; } else { print \$0; } } END { print lines; }" diff --git a/.local/bin/tools/score b/.local/bin/tools/score deleted file mode 100755 index 94c13d5..0000000 --- a/.local/bin/tools/score +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -categories=$(( $(cat $1 | grep -oE '[0-9]*$' | wc -l ) - 1 )) -grep -oE '[0-9]*$' $1 | head -n $categories | paste -sd+ | bc diff --git a/.local/bin/tools/search b/.local/bin/tools/search deleted file mode 100755 index f0def24..0000000 --- a/.local/bin/tools/search +++ /dev/null @@ -1 +0,0 @@ -find -iname "*$1*" diff --git a/.local/bin/tools/searx b/.local/bin/tools/searx index f624f56..95de16e 100755 --- a/.local/bin/tools/searx +++ b/.local/bin/tools/searx @@ -1,12 +1,10 @@ #!/bin/sh -# Gives a dmenu prompt to search DuckDuckGo. -# Without input, will open DuckDuckGo.com. +# Gives a dmenu prompt to searx +# Without input, will open mainpage. # URLs will be directly handed to the browser. -# Anything else, it search it. -mainpage="https://duckduckgo.com" -searchpage="https://duckduckgo.com/?q=%s" +mainpage="https://bocken.org/searx" +searchpage="https://bocken.org/searx/search?q=%s" browser=${BROWSER:-firefox} - if [ -z "$(xclip -o -selection clipboard)" ]; then choice=$(printf "๐Ÿ”\n" | dmenu -i -p "Searx:") || exit 1 else diff --git a/.local/bin/tools/select_emailrecipient b/.local/bin/tools/select_emailrecipient new file mode 100755 index 0000000..55de420 --- /dev/null +++ b/.local/bin/tools/select_emailrecipient @@ -0,0 +1,3 @@ +#!/bin/sh +abook --config /home/alex/.config/abook/abookrc --datafile /home/alex/.local/share/abook/addressbook --mutt-query "" | + dmenu -l 10 | perl -pe 's/([^\t]*)\t([^\t]*)/\1 <\2>/' diff --git a/.local/bin/tools/shortcuts b/.local/bin/tools/shortcuts deleted file mode 100755 index 1c4f278..0000000 --- a/.local/bin/tools/shortcuts +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# Output locations. Unactivated progs should go to /dev/null. -shell_shortcuts="$HOME/.config/shortcutrc" -ranger_shortcuts="/dev/null" -qute_shortcuts="/dev/null" -fish_shortcuts="/dev/null" -vifm_shortcuts="$HOME/.config/vifm/vifmshortcuts" - -# Remove, prepare files -rm -f "$ranger_shortcuts" "$qute_shortcuts" 2>/dev/null -printf "# vim: filetype=sh\\n" > "$fish_shortcuts" -printf "# vim: filetype=sh\\nalias " > "$shell_shortcuts" -printf "\" vim: filetype=vim\\n" > "$vifm_shortcuts" - -# Format the `bmdirs` file in the correct syntax and sent it to all three configs. -sed "s/\s*#.*$//;/^\s*$/d" "$HOME/.config/bmdirs" | tee >(awk '{print $1"=\"cd "$2" && ls -a\" \\"}' >> "$shell_shortcuts") \ - >(awk '{print "abbr", $1, "\"cd " $2 "; and ls -a\""}' >> "$fish_shortcuts") \ - >(awk '{print "map g" $1, ":cd", $2 "\nmap t" $1, ":cd", $2 "\nmap M" $1, ":cd", $2 ":mo\nmap Y" $1, ":cd", $2 ":co" }' >> "$vifm_shortcuts") \ - >(awk '{print "config.bind(\";"$1"\", \"set downloads.location.directory "$2" ;; hint links download\")"}' >> "$qute_shortcuts") \ - | awk '{print "map g"$1" cd "$2"\nmap t"$1" tab_new "$2"\nmap m"$1" shell mv -v %s "$2"\nmap Y"$1" shell cp -rv %s "$2}' >> "$ranger_shortcuts" - -# Format the `configs` file in the correct syntax and sent it to both configs. -sed "s/\s*#.*$//;/^\s*$/d" "$HOME/.config/bmfiles" | tee >(awk '{print $1"=\"$EDITOR "$2"\" \\"}' >> "$shell_shortcuts") \ - >(awk '{print "abbr", $1, "\"$EDITOR "$2"\""}' >> "$fish_shortcuts") \ - >(awk '{print "map", $1, ":e", $2 "" }' >> "$vifm_shortcuts") \ - | awk '{print "map "$1" shell $EDITOR "$2}' >> "$ranger_shortcuts" diff --git a/.local/bin/tools/startmpv b/.local/bin/tools/startmpv index e09a155..83632cf 100755 --- a/.local/bin/tools/startmpv +++ b/.local/bin/tools/startmpv @@ -5,7 +5,7 @@ if echo "$1" | grep -qE 'youtube.*list'; then js_playlist_index_loc="$HOME/src/youtube-playlist-video-ids" # The above mentioned script needs Youtube API access, (see the repo for more info on that) # I've saved my API key in my password manager, I reccomend you to do something similar. - API_key="$(pass show 'Misc/Youtube Data API v3' | head -n1 )" + API_key="$(pass show 'dev/Youtube Data API v3' | head -n1 )" index="$(echo "$1" | perl -pe "s|&index=([0-9]+)|\1|")" playlist_id="$( echo "$1" | perl -pe "s|^.*?(\?\|&)list=(.*?)|\2|; s|&index=[0-9]+||" )" notify-send "startmpv" "Searching for all videos in playlist..." diff --git a/.local/bin/tools/startzoom b/.local/bin/tools/startzoom deleted file mode 100755 index 513ee8c..0000000 --- a/.local/bin/tools/startzoom +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -sh /opt/zoom/zoom.sh diff --git a/.local/bin/tools/temp_bt b/.local/bin/tools/temp_bt deleted file mode 100755 index a8e7e20..0000000 --- a/.local/bin/tools/temp_bt +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -bluetoothctl power on -bluetoothctl scan on diff --git a/.local/bin/tools/toprim b/.local/bin/tools/toprim deleted file mode 100755 index 4bfad47..0000000 --- a/.local/bin/tools/toprim +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -xclip -o -selection "primary" | xclip -i -selection 'clipboard' diff --git a/.local/bin/tools/transadd b/.local/bin/tools/transadd index 762773f..8944844 100755 --- a/.local/bin/tools/transadd +++ b/.local/bin/tools/transadd @@ -6,6 +6,6 @@ host=https://new.bocken.org:443/transmission user=alex -password=$(pass show server/transmission) +password=$(pass show server/seenas/transmission) transmission-remote $host -n $user:$password -a "$@" && notify-send "๐Ÿ”ฝ Torrent added." pkill -RTMIN+12 dwmblocks diff --git a/.local/bin/tools/vifmimg b/.local/bin/tools/vifmimg deleted file mode 100755 index 1569962..0000000 --- a/.local/bin/tools/vifmimg +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -[ -z "$FIFO_UEBERZUG" ] && exit - -readonly ID_PREVIEW="preview" - -if [ "$1" = "draw" ]; then - declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" [x]="$2" [y]="$3" [max_width]="$4" [max_height]="$5" [path]="${PWD}/$6") > "$FIFO_UEBERZUG" -elif [ "$1" = "videopreview" ]; then - [ ! -f "/tmp/$6.png" ] && ffmpegthumbnailer -i "${PWD}/$6" -o "/tmp/$6.png" -s 0 -q 10 && - declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" [x]="$2" [y]="$3" [max_width]="$4" [max_height]="$5" [path]="/tmp/$6.png") > "$FIFO_UEBERZUG" -else - declare -p -A cmd=([action]=remove [identifier]="$ID_PREVIEW") > "$FIFO_UEBERZUG" -fi diff --git a/.local/bin/tools/vpnstatus b/.local/bin/tools/vpnstatus index a803e96..8b069f6 100755 --- a/.local/bin/tools/vpnstatus +++ b/.local/bin/tools/vpnstatus @@ -1,5 +1,5 @@ #!/bin/bash -pgrep openconnect > /dev/null && if ping -c 1 -W 1 -q webprint.ethz.ch > /dev/null +pgrep openconnect > /dev/null || if ping -c 1 -W 1 -q webprint.ethz.ch > /dev/null then printf '๐Ÿ”ฌ' fi diff --git a/.local/bin/tools/vu b/.local/bin/tools/vu deleted file mode 100755 index 778835a..0000000 --- a/.local/bin/tools/vu +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env sh -export FIFO_UEBERZUG="/tmp/vifm-ueberzug-${PPID}" - -cleanup() { - rm "$FIFO_UEBERZUG" 2>/dev/null - pkill -P $$ 2>/dev/null -} - -rm "$FIFO_UEBERZUG" 2>/dev/null -mkfifo "$FIFO_UEBERZUG" -trap cleanup EXIT -tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser bash & - -vifm -cleanup diff --git a/.local/bin/tools/watchit b/.local/bin/tools/watchit deleted file mode 100755 index 8a1d895..0000000 --- a/.local/bin/tools/watchit +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -HOME=$(tput cup 0 0) -ED=$(tput ed) -EL=$(tput el) -printf '%s%s' "$HOME" "$ED" - -cleanup(){ - tput cnorm - exit -} -trap cleanup INT - - -tput civis -while true -do - ROWS=$(tput lines) - COLS=$(tput cols) - CMD="$*" - ${SHELL:=sh} -c "$CMD" | head -n $ROWS | while IFS= read LINE; do - printf '%-*.*s%s\n' $COLS $COLS "$LINE" "$EL" - done - printf '%s%s' "$ED" "$HOME" - sleep 0.2 -done -tput cnorm diff --git a/.local/bin/tools/wv b/.local/bin/tools/wv deleted file mode 100755 index e28da97..0000000 --- a/.local/bin/tools/wv +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -videos="/tmp/videos$$" -du -a ~/vids/* ~/dls/* --time | awk '!($1="")' | sort -bgr -k1 | awk '!($1="")' | awk '!($1="")' | sed 's/^ //' | grep -v "$(find ~/vids/* ~/dls/* -type d | sed 's/$/\$/; s/\[/\\[/g; s/\]/\\]/g')" | sed "s|$HOME|\~|" > $videos -path="$(dmenu -i -l 30 -p "Choose a video to watch:" <"$videos" | sed "s|\~|$HOME|")" -rm "$videos" -if [ -n "$path" ];then - echo "$path" | - while read -r pathfile; do - rifle "$pathfile" & - done -fi diff --git a/.local/bin/torwrap b/.local/bin/torwrap deleted file mode 100755 index 4f94053..0000000 --- a/.local/bin/torwrap +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -ifinstalled tremc-git transmission-cli || exit - -! pidof transmission-daemon >/dev/null && transmission-daemon && notify-send "Starting torrent daemon..." - -$TERMINAL -e tremc; pkill -RTMIN+7 "${STATUSBAR:-dwmblocks}" diff --git a/.local/bin/tutorialvids b/.local/bin/tutorialvids deleted file mode 100755 index 5ca5c50..0000000 --- a/.local/bin/tutorialvids +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -vidlist=" -status bar https://www.youtube.com/watch?v=gKumet6b-WY -sxiv (image viewer) https://www.youtube.com/watch?v=GYW9i_u5PYs -st (terminal) https://www.youtube.com/watch?v=9H75enWM22k -i3 (window manager) https://www.youtube.com/watch?v=GKviflL9XeI -pacman (installing/managing programs) https://www.youtube.com/watch?v=-dEuXTMzRKs -mutt (email) https://www.youtube.com/watch?v=2U3vRbF7v5A -ncmpcpp (music player) https://www.youtube.com/watch?v=sZIEdI9TS2U -newsboat (RSS reader) https://www.youtube.com/watch?v=dUFCRqs822w -ranger (file manager) https://www.youtube.com/watch?v=L6Vu7WPkoJo -zathura (pdf viewer) https://www.youtube.com/watch?v=V_Iz4zdyRM4 -gpg keys https://www.youtube.com/watch?v=DMGIlj7u7Eo -calcurse (calendar) https://www.youtube.com/watch?v=hvc-pHjbhdE -urlview https://www.youtube.com/watch?v=IgzpAjFgbCw -colorschemes with pywal https://www.youtube.com/watch?v=Es79N_9BblE -vi mode in shell https://www.youtube.com/watch?v=GqoJQft5R2E -" -echo "$vidlist" | grep -P "^$(echo "$vidlist" | grep "https:" | sed 's/\t.*//g' | dmenu -i -p "Learn about what? (ESC to cancel)" -l 20 | awk '{print $1}')\s" | sed 's/.*\t//' | xargs -r mpv diff --git a/.local/bin/ueberzug b/.local/bin/ueberzug deleted file mode 100755 index 35c201c..0000000 --- a/.local/bin/ueberzug +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'ueberzug==18.1.5','console_scripts','ueberzug' -__requires__ = 'ueberzug==18.1.5' -import re -import sys -from pkg_resources import load_entry_point - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('ueberzug==18.1.5', 'console_scripts', 'ueberzug')() - ) diff --git a/.local/bin/ueberzug_ b/.local/bin/ueberzug_ deleted file mode 100755 index 35c201c..0000000 --- a/.local/bin/ueberzug_ +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'ueberzug==18.1.5','console_scripts','ueberzug' -__requires__ = 'ueberzug==18.1.5' -import re -import sys -from pkg_resources import load_entry_point - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('ueberzug==18.1.5', 'console_scripts', 'ueberzug')() - ) diff --git a/.local/bin/unix b/.local/bin/unix deleted file mode 100755 index a9fb96e..0000000 --- a/.local/bin/unix +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -#original artwork by http://www.sanderfocus.nl/#/portfolio/tech-heroes -#converted to shell by #nixers @ irc.unix.chat - -cat << 'eof' - ,_ ,_==โ–„โ–‚ - , โ–‚โ–ƒโ–„โ–„โ–…โ–…โ–…โ–‚โ–…ยพ. / / - โ–„โ–†<ยด "ยปโ–“โ–“โ–“%\ / / / / - ,โ–…7" ยด>โ–“โ–“โ–“% / / > / >/% - โ–ยถโ–“ ,ยปโ–“โ–“ยพยด /> %/%// / / - โ–“โ–ƒโ–…โ–…โ–…โ–ƒ,,โ–„โ–…โ–…โ–…ร†\// ///>// />/ / - Vโ•‘ยซยผ.;โ†’ โ•‘<ยซ.,`=// />//%/% / / - //โ• <ยด -ยฒ,)(โ–“~"-โ•/ยพ/ %/>/ /> - / / / โ–% -./โ–„โ–ƒโ–„โ–…โ–, /7//;//% / / - / ////`โ–Œโ– %zWv xXโ–“โ–‡โ–Œ//&;% / / - / / / %//%/ยพยฝยดโ–Œโ–ƒโ–„โ–„โ–„โ–„โ–ƒโ–ƒโ–ยถ\/& / - </ /)VY>7; \_ UNIX IS VERY SIMPLE IT JUST NEEDS A - / /</ //<///<_/%\โ–“ V%W%ยฃ)XY _/%โ€พ\_, GENIUS TO UNDERSTAND ITS SIMPLICITY - / / //%/_,=--^/%/%%\ยพ%ยถ%%} /%%%%%%;\, - %/< /_/ %%%%%;X%%\%%;, _/%%%;, \ - / / %%%%%%;, \%%l%%;// _/%;, dmr - / %%%;, <;\-=-/ / - ;, l -eof diff --git a/.local/bin/unix_ b/.local/bin/unix_ deleted file mode 100755 index 14d7ef0..0000000 --- a/.local/bin/unix_ +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -#original artwork by http://www.sanderfocus.nl/#/portfolio/tech-heroes -#converted to shell by #nixers @ irc.unix.chat - -cat << 'eof' - ,_ ,_==โ–„โ–‚ - , โ–‚โ–ƒโ–„โ–„โ–…โ–…โ–…โ–‚โ–…ยพ. / / - โ–„โ–†<ยด "ยปโ–“โ–“โ–“%\ / / / / - ,โ–…7" ยด>โ–“โ–“โ–“% / / > / >/% - โ–ยถโ–“ ,ยปโ–“โ–“ยพยด /> %/%// / / - โ–“โ–ƒโ–…โ–…โ–…โ–ƒ,,โ–„โ–…โ–…โ–…ร†\// ///>// />/ / - Vโ•‘ยซยผ.;โ†’ โ•‘<ยซ.,`=// />//%/% / / - //โ• <ยด -ยฒ,)(โ–“~"-โ•/ยพ/ %/>/ /> - / / / โ–% -./โ–„โ–ƒโ–„โ–…โ–, /7//;//% / / - / ////`โ–Œโ– %zWv xXโ–“โ–‡โ–Œ//&;% / / - / / / %//%/ยพยฝยดโ–Œโ–ƒโ–„โ–„โ–„โ–„โ–ƒโ–ƒโ–ยถ\/& / - </ /)VY>7; \_ UNIX IS VERY SIMPLE IT JUST NEEDS A - / /</ //<///<_/%\โ–“ V%W%ยฃ)XY _/%โ€พ\_, GENIUS TO UNDERSTAND ITS SIMPLICITY - / / //%/_,=--^/%/%%\ยพ%ยถ%%} /%%%%%%;\, - %/< /_/ %%%%%;X%%\%%;, _/%%%;, \ - / / %%%%%%;, \%%l%%;// _/%;, dmr - / %%%;, <;\-=-/ / - ;, l -eof \ No newline at end of file diff --git a/.local/bin/unmounter b/.local/bin/unmounter new file mode 100755 index 0000000..7f1dbf5 --- /dev/null +++ b/.local/bin/unmounter @@ -0,0 +1,28 @@ +#!/bin/sh + +# Unmount USB drives or Android phones. Replaces the older `dmenuumount`. Fewer +# prompt and also de-decrypts LUKS drives that are unmounted. + +set -e + +mounteddroids="$(grep simple-mtpfs /etc/mtab | awk '{print "๐Ÿ“ฑ" $2}')" +lsblkoutput="$(lsblk -nrpo "name,type,size,mountpoint")" +mounteddrives="$(echo "$lsblkoutput" | awk '($2=="part"||$2="crypt")&&$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "๐Ÿ’พ%s (%s)\n",$4,$3}')" + +allunmountable="$(echo "$mounteddroids +$mounteddrives" | sed "/^$/d;s/ *$//")" +test -n "$allunmountable" + +chosen="$(echo "$allunmountable" | dmenu -i -p "Unmount which drive?")" +chosen="${chosen%% *}" +test -n "$chosen" + +sudo -A umount -l "/${chosen#*/}" +notify-send "Device unmounted." "$chosen has been unmounted." + +# Close the chosen drive if decrypted. +cryptid="$(echo "$lsblkoutput" | grep "/${chosen#*/}$")" +cryptid="${cryptid%% *}" +test -b /dev/mapper/"${cryptid##*/}" +sudo -A cryptsetup close "$cryptid" +notify-send "๐Ÿ”’Device dencryption closed." "Drive is now securely locked again." diff --git a/.local/bin/update_musicbar b/.local/bin/update_musicbar index 6cc0719..82de12e 100755 --- a/.local/bin/update_musicbar +++ b/.local/bin/update_musicbar @@ -1,5 +1,5 @@ #!/bin/sh while true; do mpc idle player > /dev/null - pkill -RTMIN+11 dwmblocks + pkill -RTMIN+8 dwmblocks done diff --git a/.local/bin/vifmimg b/.local/bin/vifmimg deleted file mode 100755 index 8fb8eed..0000000 --- a/.local/bin/vifmimg +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -[ -z "$FIFO_UEBERZUG" ] && exit - -readonly ID_PREVIEW="preview" - -if [ "$1" = "draw" ]; then - declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" [x]="$2" [y]="$3" [max_width]="$4" [max_height]="$5" [path]="${PWD}/$6") > "$FIFO_UEBERZUG" -elif [ "$1" = "videopreview" ]; then - [ ! -f "/tmp/$6.png" ] && ffmpegthumbnailer -i "${PWD}/$6" -o "/tmp/$6.png" -s 0 -q 10 && - declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" [x]="$2" [y]="$3" [max_width]="$4" [max_height]="$5" [path]="/tmp/$6.png") > "$FIFO_UEBERZUG" -else - declare -p -A cmd=([action]=remove [identifier]="$ID_PREVIEW") > "$FIFO_UEBERZUG" -fi diff --git a/.local/bin/vnc b/.local/bin/vnc deleted file mode 100755 index 84e0af9..0000000 --- a/.local/bin/vnc +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash -# ---------------------------------------------------------------------------- -# "THE BEER-WARE LICENSE" (Revision 42): -# wrote this file. As long as you retain this notice you -# can do whatever you want with this stuff. If we meet some day, and you think -# this stuff is worth it, you can buy me a beer in return. - Bumsik Kim -# ---------------------------------------------------------------------------- - -# Configuration -WIDTH=1920 # 1368 for iPad Pro -HEIGHT=1080 # 1024 for iPad Pro -MODE_NAME="mode_ipad" # Set whatever name you like, you may need to change - # this when you change resolution, or just reboot. -DIS_NAME="VIRTUAL1" # Don't change it unless you know what it is -RANDR_POS="--right-of" # Default position setting for xrandr command - -# Parse arguments -while [ "$#" -gt 0 ]; do - case $1 in - -l|--left) RANDR_POS="--left-of" ;; - -r|--right) RANDR_POS="--right-of" ;; - -a|--above) RANDR_POS="--above" ;; - -b|--below) RANDR_POS="--below" ;; - -p|--portrait) TMP=$WIDTH; WIDTH=$HEIGHT; HEIGHT=$TMP - MODE_NAME="$MODE_NAME""_port" ;; - -h|--hidpi) WIDTH=$(($WIDTH * 2)); HEIGHT=$(($HEIGHT * 2)) - MODE_NAME="$MODE_NAME""_hidpi" ;; - *) echo "'$1' cannot be a monitor position"; exit 1 ;; - esac - shift -done - -# Detect primary display -PRIMARY_DISPLAY=$(xrandr | perl -ne 'print "$1" if /(\w*)\s*connected\s*primary/') - -# Add display mode -RANDR_MODE=$(cvt "$WIDTH" "$HEIGHT" 60 | sed '2s/^.*Modeline\s*\".*\"//;2q;d') -xrandr --addmode $DIS_NAME $MODE_NAME 2>/dev/null -# If the mode doesn't exist then make mode and retry -if ! [ $? -eq 0 ]; then - xrandr --newmode $MODE_NAME $RANDR_MODE - xrandr --addmode $DIS_NAME $MODE_NAME -fi - -# Show display first -xrandr --output $DIS_NAME --mode $MODE_NAME -# Then move display -sleep 5 # A short delay is needed. Otherwise sometimes the below command is ignored. -xrandr --output $DIS_NAME $RANDR_POS $PRIMARY_DISPLAY - -# Cleanup before exit -function finish { - xrandr --output $DIS_NAME --off - xrandr --delmode $DIS_NAME $MODE_NAME - echo "Second monitor disabled." -} - -trap finish EXIT - -# Get the display's position -CLIP_POS=$(xrandr | perl -ne 'print "$1" if /'$DIS_NAME'\s*connected\s*(\d*x\d*\+\d*\+\d*)/') -echo $CLIP_POS -# Share screen -x11vnc -multiptr -repeat -clip $CLIP_POS -# Possible alternative is x0vncserver but it does not show the mouse cursor. -# x0vncserver -display :0 -geometry $DIS_NAME -overlaymode -passwordfile ~/.vnc/passwd -if ! [ $? -eq 0 ]; then - echo x11vnc failed, did you \'apt-get install x11vnc\'? -fi diff --git a/.local/bin/wal b/.local/bin/wal deleted file mode 100755 index 7cd22a8..0000000 --- a/.local/bin/wal +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'pywal==3.3.0','console_scripts','wal' -__requires__ = 'pywal==3.3.0' -import re -import sys -from pkg_resources import load_entry_point - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('pywal==3.3.0', 'console_scripts', 'wal')() - ) diff --git a/.local/bin/wheel b/.local/bin/wheel deleted file mode 100755 index 8149efb..0000000 --- a/.local/bin/wheel +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -import re -import sys -from wheel.cli import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.local/bin/xlsx2csv b/.local/bin/xlsx2csv deleted file mode 100755 index 4ab987f..0000000 --- a/.local/bin/xlsx2csv +++ /dev/null @@ -1,1137 +0,0 @@ -#!/usr/bin/python -# -# Copyright information -# -# Copyright (C) 2010-2018 Dilshod Temirkhodjaev -# -# License -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -from __future__ import print_function - -__author__ = "Dilshod Temirkhodjaev " -__license__ = "GPL-2+" -__version__ = "0.7.6" - -import csv, datetime, zipfile, string, sys, os, re, signal -import xml.parsers.expat -from xml.dom import minidom - -try: - # python2.4 - from cStringIO import StringIO -except: - pass -try: - from argparse import ArgumentParser -except: - # python2.4 - from optparse import OptionParser - -# see also ruby-roo lib at: http://github.com/hmcgowan/roo -FORMATS = { - 'general': 'float', - '0': 'float', - '0.00': 'float', - '#,##0': 'float', - '#,##0.00': 'float', - '0%': 'percentage', - '0.00%': 'percentage', - '0.00e+00': 'float', - 'mm-dd-yy': 'date', - 'd-mmm-yy': 'date', - 'd-mmm': 'date', - 'mmm-yy': 'date', - 'h:mm am/pm': 'date', - 'h:mm:ss am/pm': 'date', - 'h:mm': 'time', - 'h:mm:ss': 'time', - 'm/d/yy h:mm': 'date', - '#,##0 ;(#,##0)': 'float', - '#,##0 ;[red](#,##0)': 'float', - '#,##0.00;(#,##0.00)': 'float', - '#,##0.00;[red](#,##0.00)': 'float', - 'mm:ss': 'time', - '[h]:mm:ss': 'time', - 'mmss.0': 'time', - '##0.0e+0': 'float', - '@': 'float', - 'yyyy\\-mm\\-dd': 'date', - 'dd/mm/yy': 'date', - 'hh:mm:ss': 'time', - "dd/mm/yy\\ hh:mm": 'date', - 'dd/mm/yyyy hh:mm:ss': 'date', - 'yy-mm-dd': 'date', - 'd-mmm-yyyy': 'date', - 'm/d/yy': 'date', - 'm/d/yyyy': 'date', - 'dd-mmm-yyyy': 'date', - 'dd/mm/yyyy': 'date', - 'mm/dd/yy h:mm am/pm': 'date', - 'mm/dd/yy hh:mm': 'date', - 'mm/dd/yyyy h:mm am/pm': 'date', - 'mm/dd/yyyy hh:mm:ss': 'date', - 'yyyy-mm-dd hh:mm:ss': 'date', - '#,##0;(#,##0)': 'float', - '_(* #,##0_);_(* (#,##0);_(* "-"??_);_(@_)': 'float', - '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)': 'float' -} -STANDARD_FORMATS = { - 0: 'general', - 1: '0', - 2: '0.00', - 3: '#,##0', - 4: '#,##0.00', - 9: '0%', - 10: '0.00%', - 11: '0.00e+00', - 12: '# ?/?', - 13: '# ??/??', - 14: 'mm-dd-yy', - 15: 'd-mmm-yy', - 16: 'd-mmm', - 17: 'mmm-yy', - 18: 'h:mm am/pm', - 19: 'h:mm:ss am/pm', - 20: 'h:mm', - 21: 'h:mm:ss', - 22: 'm/d/yy h:mm', - 37: '#,##0 ;(#,##0)', - 38: '#,##0 ;[red](#,##0)', - 39: '#,##0.00;(#,##0.00)', - 40: '#,##0.00;[red](#,##0.00)', - 45: 'mm:ss', - 46: '[h]:mm:ss', - 47: 'mmss.0', - 48: '##0.0e+0', - 49: '@', -} -CONTENT_TYPES = { - 'shared_strings', - 'styles', - 'workbook', - 'worksheet', - 'relationships', -} - -DEFAULT_APP_PATH = "/xl" -DEFAULT_WORKBOOK_PATH = DEFAULT_APP_PATH + "/workbook.xml" - - -class XlsxException(Exception): - pass - - -class InvalidXlsxFileException(XlsxException): - pass - - -class SheetNotFoundException(XlsxException): - pass - - -class OutFileAlreadyExistsException(XlsxException): - pass - - -class Xlsx2csv: - """ - Usage: Xlsx2csv("test.xslx", **params).convert("test.csv", sheetid=1) - Input: - xlsxfile - path to file or filehandle - options: - sheetid - sheet no to convert (0 for all sheets) - dateformat - override date/time format - timeformat - override time format - floatformat - override float format - quoting - if and how to quote - delimiter - csv columns delimiter symbol - sheetdelimiter - sheets delimiter used when processing all sheets - skip_empty_lines - skip empty lines - skip_trailing_columns - skip trailing columns - hyperlinks - include hyperlinks - include_sheet_pattern - only include sheets named matching given pattern - exclude_sheet_pattern - exclude sheets named matching given pattern - """ - - def __init__(self, xlsxfile, **options): - options.setdefault("delimiter", ",") - options.setdefault("quoting", csv.QUOTE_MINIMAL) - options.setdefault("sheetdelimiter", "--------") - options.setdefault("dateformat", None) - options.setdefault("timeformat", None) - options.setdefault("floatformat", None) - options.setdefault("scifloat", False) - options.setdefault("skip_empty_lines", False) - options.setdefault("skip_trailing_columns", False) - options.setdefault("escape_strings", False) - options.setdefault("hyperlinks", False) - options.setdefault("include_sheet_pattern", ["^.*$"]) - options.setdefault("exclude_sheet_pattern", []) - options.setdefault("merge_cells", False) - options.setdefault("ignore_formats", ['']) - options.setdefault("lineterminator", "\n") - - self.options = options - try: - self.ziphandle = zipfile.ZipFile(xlsxfile) - except (zipfile.BadZipfile, IOError): - raise InvalidXlsxFileException("Invalid xlsx file: " + str(xlsxfile)) - - self.py3 = sys.version_info[0] == 3 - - self.content_types = self._parse(ContentTypes, "/[Content_Types].xml") - self.shared_strings = self._parse(SharedStrings, self.content_types.types["shared_strings"]) - self.styles = self._parse(Styles, self.content_types.types["styles"]) - self.workbook = self._parse(Workbook, self.content_types.types["workbook"]) - workbook_relationships = list(filter(lambda r: "book" in r, self.content_types.types["relationships"]))[0] - self.workbook.relationships = self._parse(Relationships, workbook_relationships) - if self.options['escape_strings']: - self.shared_strings.escape_strings() - - def __del__(self): - # make sure to close zip file, ziphandler does have a close() method - self.ziphandle.close() - - def getSheetIdByName(self, name): - for s in self.workbook.sheets: - if s['name'] == name: - return s['index'] - return None - - def convert(self, outfile, sheetid=1): - """outfile - path to file or filehandle""" - if sheetid > 0: - self._convert(sheetid, outfile) - else: - if isinstance(outfile, str): - if not os.path.exists(outfile): - os.makedirs(outfile) - elif os.path.isfile(outfile): - raise OutFileAlreadyExistsException("File " + str(outfile) + " already exists!") - for s in self.workbook.sheets: - sheetname = s['name'] - - # filter sheets by include pattern - include_sheet_pattern = self.options['include_sheet_pattern'] - if type(include_sheet_pattern) == type(""): # optparser lib fix - include_sheet_pattern = [include_sheet_pattern] - if len(include_sheet_pattern) > 0: - include = False - for pattern in include_sheet_pattern: - include = pattern and len(pattern) > 0 and re.match(pattern, sheetname) - if include: - break - if not include: - continue - - # filter sheets by exclude pattern - exclude_sheet_pattern = self.options['exclude_sheet_pattern'] - if type(exclude_sheet_pattern) == type(""): # optparser lib fix - exclude_sheet_pattern = [exclude_sheet_pattern] - exclude = False - for pattern in exclude_sheet_pattern: - exclude = pattern and len(pattern) > 0 and re.match(pattern, sheetname) - if exclude: - break - if exclude: - continue - - if not self.py3: - sheetname = sheetname.encode('utf-8') - of = outfile - if isinstance(outfile, str): - of = os.path.join(outfile, sheetname + '.csv') - elif self.options['sheetdelimiter'] and len(self.options['sheetdelimiter']): - of.write(self.options['sheetdelimiter'] + " " + str(s['index']) + " - " + sheetname + self.options['lineterminator']) - self._convert(s['index'], of) - - def _convert(self, sheet_index, outfile): - closefile = False - if isinstance(outfile, str): - if sys.version_info[0] == 2: - outfile = open(outfile, 'wb+') - elif sys.version_info[0] == 3: - outfile = open(outfile, 'w+', encoding=self.options['outputencoding'], newline="") - else: - sys.stderr.write("error: version of your python is not supported: " + str(sys.version_info) + "\n") - sys.exit(1) - closefile = True - try: - writer = csv.writer(outfile, quoting=self.options['quoting'], delimiter=self.options['delimiter'], - lineterminator=self.options['lineterminator']) - - sheets_filtered = list(filter(lambda s: s['index'] == sheet_index, self.workbook.sheets)) - if len(sheets_filtered) == 0: - eprint("Sheet with index %i not found or can't be handled" % sheet_index) - return 1 - - sheet_path = None - # using sheet relation information - if 'relation_id' in sheets_filtered[0] and sheets_filtered[0]['relation_id'] is not None: - - relation_id = sheets_filtered[0]['relation_id'] - if relation_id in self.workbook.relationships.relationships and \ - 'target' in self.workbook.relationships.relationships[relation_id]: - relationship = self.workbook.relationships.relationships[relation_id] - sheet_path = "/xl/" + relationship['target'] - - if sheet_path is None: - sheet_path = "/xl/worksheets/sheet%i.xml" % sheet_index - if sheet_path is None: - sheet_path = "/xl/worksheets/worksheet%i.xml" % sheet_index - if sheet_path is None and sheet_index == 1: - sheet_path = self.content_types.types["worksheet"] - if sheet_path is None: - raise SheetNotFoundException("Sheet %i not found" % sheet_index) - sheet_file = self._filehandle(sheet_path) - sheet = Sheet(self.workbook, self.shared_strings, self.styles, sheet_file) - try: - relationships_path = os.path.join(os.path.dirname(sheet_path), - "_rels", - os.path.basename(sheet_path) + ".rels") - sheet.relationships = self._parse(Relationships, relationships_path) - sheet.set_dateformat(self.options['dateformat']) - sheet.set_timeformat(self.options['timeformat']) - sheet.set_floatformat(self.options['floatformat']) - sheet.set_skip_empty_lines(self.options['skip_empty_lines']) - sheet.set_skip_trailing_columns(self.options['skip_trailing_columns']) - sheet.set_include_hyperlinks(self.options['hyperlinks']) - sheet.set_merge_cells(self.options['merge_cells']) - sheet.set_scifloat(self.options['scifloat']) - sheet.set_ignore_formats(self.options['ignore_formats']) - if self.options['escape_strings'] and sheet.filedata: - sheet.filedata = re.sub(r"([^<>]+) ([^<>]+)", r"\1\\n\2", - re.sub(r"([^<>]+) ([^<>]+)", r"\1\\t\2", - re.sub(r"([^<>]+) ([^<>]+)", r"\1\\r\2", sheet.filedata))) - sheet.to_csv(writer) - finally: - sheet_file.close() - sheet.close() - finally: - if closefile: - outfile.close() - - def _filehandle(self, filename): - for name in filter(lambda f: filename and f.lower() == filename.lower()[1:], self.ziphandle.namelist()): - # python2.4 fix - if not hasattr(self.ziphandle, "open"): - return StringIO(self.ziphandle.read(name)) - return self.ziphandle.open(name, "r") - return None - - def _parse(self, klass, filename): - instance = klass() - filehandle = self._filehandle(filename) - if filehandle: - instance.parse(filehandle) - filehandle.close() - return instance - - -class Workbook: - def __init__(self): - self.sheets = list() - self.date1904 = False - - def parse(self, filehandle): - workbookDoc = minidom.parseString(filehandle.read()) - if workbookDoc.firstChild.namespaceURI: - fileVersion = workbookDoc.firstChild.getElementsByTagNameNS(workbookDoc.firstChild.namespaceURI, - "fileVersion") - else: - fileVersion = workbookDoc.firstChild.getElementsByTagName("fileVersion") - if len(fileVersion) == 0: - self.appName = DEFAULT_APP_PATH - else: - try: - if workbookDoc.firstChild.namespaceURI: - self.appName = \ - workbookDoc.firstChild.getElementsByTagNameNS( - workbookDoc.firstChild.namespaceURI, "fileVersion")[0]._attrs['appName'].value - else: - self.appName = workbookDoc.firstChild.getElementsByTagName("fileVersion")[0]._attrs['appName'].value - except KeyError: - # no app name - self.appName = DEFAULT_APP_PATH - try: - if workbookDoc.firstChild.namespaceURI: - self.date1904 = \ - workbookDoc.firstChild.getElementsByTagNameNS( - workbookDoc.firstChild.namespaceURI, "workbookPr")[0]._attrs['date1904'].value.lower().strip() \ - != "false" - else: - self.date1904 = \ - workbookDoc.firstChild.getElementsByTagName("workbookPr")[0] \ - ._attrs['date1904'].value.lower().strip() \ - != "false" - except: - pass - - if workbookDoc.firstChild.namespaceURI: - sheets = workbookDoc.firstChild.getElementsByTagNameNS(workbookDoc.firstChild.namespaceURI, "sheets")[0] - else: - sheets = workbookDoc.firstChild.getElementsByTagName("sheets")[0] - if workbookDoc.firstChild.namespaceURI: - sheetNodes = sheets.getElementsByTagNameNS(workbookDoc.firstChild.namespaceURI, "sheet") - else: - sheetNodes = sheets.getElementsByTagName("sheet") - for i, sheetNode in enumerate(sheetNodes): - attrs = sheetNode._attrs - name = attrs["name"].value - relation_id = None - if 'r:id' in attrs: - relation_id = attrs['r:id'].value - self.sheets.append({'name': name, 'relation_id': relation_id, 'index': i + 1, 'id': i + 1}) # remove id starting 0.8.0 version - - -class ContentTypes: - def __init__(self): - self.types = {} - for type in CONTENT_TYPES: - self.types[type] = None - - def parse(self, filehandle): - types = minidom.parseString(filehandle.read()).firstChild - if not types: - return - if types.namespaceURI: - overrideNodes = types.getElementsByTagNameNS(types.namespaceURI, "Override") - else: - overrideNodes = types.getElementsByTagName("Override") - for override in overrideNodes: - attrs = override._attrs - type = attrs.get('ContentType').value - name = attrs.get('PartName').value - if type == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": - self.types["workbook"] = name - elif type == "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": - self.types["styles"] = name - elif type == "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": - # BUG preserved only last sheet - self.types["worksheet"] = name - elif type == "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml": - self.types["shared_strings"] = name - elif type == "application/vnd.openxmlformats-package.relationships+xml": - if self.types["relationships"] is None: - self.types["relationships"] = list() - self.types["relationships"].append(name) - - if self.types["workbook"] is None: - self.types["workbook"] = DEFAULT_WORKBOOK_PATH - if self.types["relationships"] is None: - self.types["relationships"] = [os.path.dirname(self.types["workbook"]) + "/_rels/" + \ - os.path.basename(self.types["workbook"]) + ".rels"] - - -class Relationships: - def __init__(self): - self.relationships = {} - - def parse(self, filehandle): - doc = minidom.parseString(filehandle.read()) - if doc.namespaceURI: - relationships = doc.getElementsByTagNameNS(doc.namespaceURI, "Relationships") - else: - relationships = doc.getElementsByTagName("Relationships") - if not relationships: - return - if doc.namespaceURI: - relationshipNodes = relationships[0].getElementsByTagNameNS(doc.namespaceURI, "Relationship") - else: - relationshipNodes = relationships[0].getElementsByTagName("Relationship") - for rel in relationshipNodes: - attrs = rel._attrs - rId = attrs.get('Id') - if rId: - vtype = attrs.get('Type') - target = attrs.get('Target') - self.relationships[str(rId.value)] = { - "type": vtype and str(vtype.value) or None, - "target": target and str(target.value) or None - } - - -class Styles: - def __init__(self): - self.numFmts = {} - self.cellXfs = [] - - def parse(self, filehandle): - styles = minidom.parseString(filehandle.read()).firstChild - # numFmts - if styles.namespaceURI: - numFmtsElement = styles.getElementsByTagNameNS(styles.namespaceURI, "numFmts") - else: - numFmtsElement = styles.getElementsByTagName("numFmts") - if len(numFmtsElement) == 1: - for numFmt in numFmtsElement[0].childNodes: - if numFmt.nodeType == minidom.Node.ELEMENT_NODE: - numFmtId = int(numFmt._attrs['numFmtId'].value) - formatCode = numFmt._attrs['formatCode'].value.lower().replace('\\', '') - self.numFmts[numFmtId] = formatCode - - if styles.namespaceURI: - cellXfsElement = styles.getElementsByTagNameNS(styles.namespaceURI, "cellXfs") - else: - cellXfsElement = styles.getElementsByTagName("cellXfs") - if len(cellXfsElement) == 1: - for cellXfs in cellXfsElement[0].childNodes: - if cellXfs.nodeType != minidom.Node.ELEMENT_NODE or not ( - cellXfs.nodeName == "xf" or cellXfs.nodeName.endswith(":xf")): - continue - if cellXfs._attrs and 'numFmtId' in cellXfs._attrs: - numFmtId = int(cellXfs._attrs['numFmtId'].value) - if self.chk_exists(numFmtId) == None: - numFmtId = int(cellXfs._attrs['applyNumberFormat'].value) - self.cellXfs.append(numFmtId) - else: - self.cellXfs.append(None) - - # When Unknown Numformat ID assign applyNumberFormat - def chk_exists(self, numFmtId): - xfs_numfmt = numFmtId - format_str = None - if xfs_numfmt in self.numFmts: - format_str = self.numFmts[xfs_numfmt] - elif xfs_numfmt in STANDARD_FORMATS: - format_str = STANDARD_FORMATS[xfs_numfmt] - return format_str - - -class SharedStrings: - def __init__(self): - self.parser = None - self.strings = [] - self.si = False - self.t = False - self.rPh = False - self.value = "" - - def parse(self, filehandle): - self.parser = xml.parsers.expat.ParserCreate() - self.parser.CharacterDataHandler = self.handleCharData - self.parser.StartElementHandler = self.handleStartElement - self.parser.EndElementHandler = self.handleEndElement - self.parser.ParseFile(filehandle) - - def escape_strings(self): - for i in range(0, len(self.strings)): - self.strings[i] = self.strings[i].replace("\r", "\\r").replace("\n", "\\n").replace("\t", "\\t") - - def handleCharData(self, data): - if self.t: - self.value += data - - def handleStartElement(self, name, attrs): - # ignore namespace - i = name.find(":") - if i >= 0: - name = name[i + 1:] - - if name == 'si': - self.si = True - self.value = "" - elif name == 't' and self.rPh: - self.t = False - elif name == 't' and self.si: - self.t = True - elif name == 'rPh': - self.rPh = True - - def handleEndElement(self, name): - # ignore namespace - i = name.find(":") - if i >= 0: - name = name[i + 1:] - - if name == 'si': - self.si = False - self.strings.append(self.value) - elif name == 't': - self.t = False - elif name == 'rPh': - self.rPh = False - - -class Sheet: - def __init__(self, workbook, sharedString, styles, filehandle): - self.py3 = sys.version_info[0] == 3 - self.parser = None - self.writer = None - self.sharedString = None - self.styles = None - self.relationships = None - self.columns_count = -1 - - self.in_sheet = False - self.in_row = False - self.in_cell = False - self.in_cell_value = False - - self.columns = {} - self.lastRowNum = 0 - self.rowNum = None - self.colType = None - self.cellId = None - self.s_attr = None - self.data = None - self.max_columns = -1 - - self.dateformat = None - self.timeformat = "%H:%M" # default time format - self.floatformat = None - self.skip_empty_lines = False - self.skip_trailing_columns = False - - self.filedata = None - self.filehandle = filehandle - self.workbook = workbook - self.sharedStrings = sharedString.strings - self.styles = styles - - self.hyperlinks = {} - self.mergeCells = {} - self.ignore_formats = [] - - self.colIndex = 0 - self.colNum = "" - - def close(self): - # Make sure Worksheet is closed, parsers lib does not have a close() function, so simply delete it - self.parser = None - - def set_dateformat(self, dateformat): - self.dateformat = dateformat - - def set_timeformat(self, timeformat): - if timeformat: - self.timeformat = timeformat - - def set_floatformat(self, floatformat): - self.floatformat = floatformat - - def set_skip_empty_lines(self, skip): - self.skip_empty_lines = skip - - def set_skip_trailing_columns(self, skip): - self.skip_trailing_columns = skip - - def set_ignore_formats(self, ignore_formats): - self.ignore_formats = ignore_formats - - def set_merge_cells(self, mergecells): - if not mergecells: - return - if not self.filedata: - self.filedata = self.filehandle.read() - data = str(self.filedata) # python3: convert byte buffer to string - - # find worksheet tag, we need namespaces from it - start = data.find("", start) - worksheet = data[start: end + 1] - - # find hyperlinks part - start = data.find("") - data = data[start: end + 13] - - # parse hyperlinks - doc = minidom.parseString(worksheet + data + "").firstChild - - if doc.namespaceURI: - mergeCells = doc.getElementsByTagNameNS(doc.namespaceURI, "mergeCell") - else: - mergeCells = doc.getElementsByTagName("mergeCell") - for mergeCell in mergeCells: - attrs = mergeCell._attrs - if 'ref' in attrs.keys(): - rangeStr = attrs['ref'].value - rng = rangeStr.split(":") - if len(rng) > 1: - for cell in self._range(rangeStr): - self.mergeCells[cell] = {} - self.mergeCells[cell]['copyFrom'] = rng[0] - - def set_scifloat(self, scifloat): - self.scifloat = scifloat - - def set_include_hyperlinks(self, hyperlinks): - if not hyperlinks or not self.relationships or not self.relationships.relationships: - return - # we must read file first to get hyperlinks, but we don't wont to parse whole file - if not self.filedata: - self.filedata = self.filehandle.read() - data = str(self.filedata) # python3: convert byte buffer to string - - # find worksheet tag, we need namespaces from it - start = data.find("", start) - worksheet = data[start: end + 1] - - # find hyperlinks part - start = data.find("") - if start < 0: - # hyperlinks not found - return - end = data.find("") - data = data[start: end + 13] - - # parse hyperlinks - doc = minidom.parseString(worksheet + data + "").firstChild - if doc.namespaceURI: - hiperlinkNodes = doc.getElementsByTagNameNS(doc.namespaceURI, "hyperlink") - else: - hiperlinkNodes = doc.getElementsByTagName("hyperlink") - for hlink in hiperlinkNodes: - attrs = hlink._attrs - ref = rId = None - for k in attrs.keys(): - if k == "ref": - ref = str(attrs[k].value) - if k.endswith(":id"): - rId = str(attrs[k].value) - if not ref or not rId: - continue - rel = self.relationships.relationships.get(rId) - if not rel: - continue - target = rel.get('target') - for cell in self._range(ref): - self.hyperlinks[cell] = target - - def to_csv(self, writer): - self.writer = writer - self.parser = xml.parsers.expat.ParserCreate() - self.parser.buffer_text = True - self.parser.CharacterDataHandler = self.handleCharData - self.parser.StartElementHandler = self.handleStartElement - self.parser.EndElementHandler = self.handleEndElement - if self.filedata: - self.parser.Parse(self.filedata) - else: - self.parser.ParseFile(self.filehandle) - - def handleCharData(self, data): - if self.in_cell_value: - self.collected_string += data - self.data = self.collected_string - if self.colType == "s": # shared string - self.data = self.sharedStrings[int(self.data)] - elif self.colType == "b": # boolean - self.data = (int(data) == 1 and "TRUE") or (int(data) == 0 and "FALSE") or data - elif self.colType == "str" or self.colType == "inlineStr": - self.data = data - elif self.s_attr: - s = int(self.s_attr) - - # get cell format - format_str = "general" - xfs_numfmt = self.styles.cellXfs[s] - if xfs_numfmt in self.styles.numFmts: - format_str = self.styles.numFmts[xfs_numfmt] - elif xfs_numfmt in STANDARD_FORMATS: - format_str = STANDARD_FORMATS[xfs_numfmt] - - # get format type - if not format_str: - eprint("unknown format %s at %d" % (format_str, xfs_numfmt)) - return - - format_type = None - if format_str in FORMATS: - format_type = FORMATS[format_str] - elif re.match("^\d+(\.\d+)?$", self.data) and re.match(".*[hsmdyY]", format_str) and not re.match( - '.*\[.*[dmhys].*\]', format_str): - # it must be date format - if float(self.data) < 1: - format_type = "time" - else: - format_type = "date" - elif re.match("^-?\d+(.\d+)?$", self.data) or ( - self.scifloat and re.match("^-?\d+(.\d+)?([eE]-?\d+)?$", self.data)): - format_type = "float" - if format_type == 'date' and self.dateformat == 'float': - format_type = "float" - if format_type and not format_type in self.ignore_formats: - try: - if format_type == 'date': # date/time - if self.workbook.date1904: - date = datetime.datetime(1904, 1, 1) + datetime.timedelta(float(self.data)) - else: - date = datetime.datetime(1899, 12, 30) + datetime.timedelta(float(self.data)) - if self.dateformat: - # str(dateformat) - python2.5 bug, see: http://bugs.python.org/issue2782 - self.data = date.strftime(str(self.dateformat)) - else: - # ignore ";@", don't know what does it mean right now - # ignore "[$-409], [$-f409], [$-16001]" and similar format codes - dateformat = re.sub(r"\[\$\-[A-z0-9]*\]", "", format_str, 1) \ - .replace(";@", "").replace("yyyy", "%Y").replace("yy", "%y") \ - .replace("hh:mm", "%H:%M").replace("h", "%I").replace("%H%H", "%H") \ - .replace("ss", "%S").replace("dddd", "d").replace("dd", "d").replace("d", "%d") \ - .replace("am/pm", "%p").replace("mmmm", "%B").replace("mmm", "%b") \ - .replace(":mm", ":%M").replace("m", "%m").replace("%m%m", "%m") - self.data = date.strftime(str(dateformat)).strip() - elif format_type == 'time': # time - t = int(round((float(self.data) % 1) * 24 * 60 * 60, 6)) # it should be in seconds - d = datetime.time(int((t // 3600) % 24), int((t // 60) % 60), int(t % 60)) - self.data = d.strftime(self.timeformat) - elif format_type == 'float' and ('E' in self.data or 'e' in self.data): - self.data = str(self.floatformat or '%f') % float(self.data) - # if cell is general, be aggressive about stripping any trailing 0s, decimal points, etc. - elif format_type == 'float' and format_str == 'general': - self.data = ("%f" % (float(self.data))).rstrip('0').rstrip('.') - elif format_type == 'float' and format_str[0:3] == '0.0': - if self.floatformat: - self.data = str(self.floatformat) % float(self.data) - else: - L = len(format_str.split(".")[1]) - if '%' in format_str: - L += 1 - self.data = ("%." + str(L) + "f") % float(self.data) - elif format_type == 'float': - # unsupported float formatting - self.data = ("%f" % (float(self.data))).rstrip('0').rstrip('.') - - except (ValueError, OverflowError): # this catch must be removed, it's hiding potential problems - eprint("Error: potential invalid date format.") - # invalid date format - pass - - def handleStartElement(self, name, attrs): - has_namespace = name.find(":") > 0 - if self.in_row and (name == 'c' or (has_namespace and name.endswith(':c'))): - self.colType = attrs.get("t") - self.s_attr = attrs.get("s") - self.cellId = attrs.get("r") - if self.cellId: - self.colNum = self.cellId[:len(self.cellId) - len(self.rowNum)] - self.colIndex = 0 - else: - self.colIndex += 1 - self.data = "" - self.in_cell = True - elif self.in_cell and ( - (name == 'v' or name == 'is') or (has_namespace and (name.endswith(':v') or name.endswith(':is')))): - self.in_cell_value = True - self.collected_string = "" - elif self.in_sheet and (name == 'row' or (has_namespace and name.endswith(':row'))) and ('r' in attrs): - self.rowNum = attrs['r'] - self.in_row = True - self.colIndex = 0 - self.colNum = "" - self.columns = {} - self.spans = None - if 'spans' in attrs: - self.spans = [int(i) for i in attrs['spans'].split(" ")[-1].split(":")] - elif name == 't': - # reset collected string - self.collected_string = "" - - elif name == 'sheetData' or (has_namespace and name.endswith(':sheetData')): - self.in_sheet = True - elif name == 'dimension': - rng = attrs.get("ref").split(":") - if len(rng) > 1: - start = re.match("^([A-Z]+)(\d+)$", rng[0]) - if (start): - end = re.match("^([A-Z]+)(\d+)$", rng[1]) - startCol = start.group(1) - endCol = end.group(1) - self.columns_count = 0 - for cell in self._range(startCol + "1:" + endCol + "1"): - self.columns_count += 1 - - def handleEndElement(self, name): - has_namespace = name.find(":") > 0 - if self.in_cell and ((name == 'v' or name == 'is' or name == 't') or ( - has_namespace and (name.endswith(':v') or name.endswith(':is')))): - self.in_cell_value = False - elif self.in_cell and (name == 'c' or (has_namespace and name.endswith(':c'))): - t = 0 - for i in self.colNum: t = t * 26 + ord(i) - 64 - d = self.data - if self.hyperlinks: - hyperlink = self.hyperlinks.get(self.cellId) - if hyperlink: - d = "" + d + "" - if self.colNum + self.rowNum in self.mergeCells.keys(): - if 'copyFrom' in self.mergeCells[self.colNum + self.rowNum].keys() and \ - self.mergeCells[self.colNum + self.rowNum]['copyFrom'] == self.colNum + self.rowNum: - self.mergeCells[self.colNum + self.rowNum]['value'] = d - else: - d = self.mergeCells[self.mergeCells[self.colNum + self.rowNum]['copyFrom']]['value'] - - self.columns[t - 1 + self.colIndex] = d - - if self.in_row and (name == 'row' or (has_namespace and name.endswith(':row'))): - if len(self.columns.keys()) > 0: - d = [""] * (max(self.columns.keys()) + 1) - for k in self.columns.keys(): - val = self.columns[k] - if not self.py3: - val = val.encode("utf-8") - d[k] = val - if self.spans: - l = self.spans[1] - if len(d) < l: - d += (l - len(d)) * [''] - - # write empty lines - if not self.skip_empty_lines: - for i in range(self.lastRowNum, int(self.rowNum) - 1): - self.writer.writerow([]) - self.lastRowNum = int(self.rowNum) - - # write line to csv - if not self.skip_empty_lines or d.count('') != len(d): - while len(d) < self.columns_count: - d.append("") - - if self.skip_trailing_columns: - if self.max_columns < 0: - self.max_columns = len(d) - while len(d) > 0 and d[-1] == "": - d = d[0:-1] - self.max_columns = self.max_columns - 1 - elif self.max_columns > 0: - d = d[0:self.max_columns] - self.writer.writerow(d) - - self.in_row = False - elif self.in_sheet and (name == 'sheetData' or (has_namespace and name.endswith(':sheetData'))): - self.in_sheet = False - - # rangeStr: "A3:C12" or "D5" - # example: for cell in _range("A1:Z12"): print cell - def _range(self, rangeStr): - rng = rangeStr.split(":") - if len(rng) == 1: - yield rangeStr - else: - start = re.match("^([A-Z]+)(\d+)$", rng[0]) - end = re.match("^([A-Z]+)(\d+)$", rng[1]) - if not start or not end: - return - startCol = start.group(1) - startRow = int(start.group(2)) - endCol = end.group(1) - endRow = int(end.group(2)) - col = startCol - while True: - for row in range(startRow, endRow + 1): - yield col + str(row) - if col == endCol: - break - t = 0 - for i in col: t = t * 26 + ord(i) - 64 - col = "" - while t >= 0: - col = chr(t % 26 + 65) + col - t = t // 26 - 1 - - -def convert_recursive(path, sheetid, outfile, kwargs): - for name in os.listdir(path): - fullpath = os.path.join(path, name) - if os.path.isdir(fullpath): - convert_recursive(fullpath, sheetid, outfile, kwargs) - else: - outfilepath = outfile - if len(outfilepath) == 0 and fullpath.lower().endswith(".xlsx"): - outfilepath = fullpath[:-4] + 'csv' - - print("Converting %s to %s" % (fullpath, outfilepath)) - try: - Xlsx2csv(fullpath, **kwargs).convert(outfilepath, sheetid) - except zipfile.BadZipfile: - print("File %s is not a zip file" % fullpath) - - -if __name__ == "__main__": - try: - signal.signal(signal.SIGPIPE, signal.SIG_DFL) - signal.signal(signal.SIGINT, signal.SIG_DFL) - except AttributeError: - pass - - if "ArgumentParser" in globals(): - parser = ArgumentParser(description="xlsx to csv converter") - parser.add_argument('infile', metavar='xlsxfile', help="xlsx file path") - parser.add_argument('outfile', metavar='outfile', nargs='?', help="output csv file path") - parser.add_argument('-v', '--version', action='version', version=__version__) - nargs_plus = "+" - argparser = True - else: - parser = OptionParser(usage="%prog [options] infile [outfile]", version=__version__) - parser.add_argument = parser.add_option - nargs_plus = 1 - argparser = False - - if sys.version_info[0] == 2 and sys.version_info[1] < 5: - inttype = "int" - else: - inttype = int - parser.add_argument("-a", "--all", dest="all", default=False, action="store_true", - help="export all sheets") - parser.add_argument("-c", "--outputencoding", dest="outputencoding", default="utf-8", action="store", - help="encoding of output csv ** Python 3 only ** (default: utf-8)") - parser.add_argument("-d", "--delimiter", dest="delimiter", default=",", - help="delimiter - columns delimiter in csv, 'tab' or 'x09' for a tab (default: comma ',')") - parser.add_argument("--hyperlinks", "--hyperlinks", dest="hyperlinks", action="store_true", default=False, - help="include hyperlinks") - parser.add_argument("-e", "--escape", dest='escape_strings', default=False, action="store_true", - help="Escape \\r\\n\\t characters") - parser.add_argument("-E", "--exclude_sheet_pattern", nargs=nargs_plus, dest="exclude_sheet_pattern", default="", - help="exclude sheets named matching given pattern, only effects when -a option is enabled.") - parser.add_argument("-f", "--dateformat", dest="dateformat", - help="override date/time format (ex. %%Y/%%m/%%d)") - parser.add_argument("-t", "--timeformat", dest="timeformat", - help="override time format (ex. %%H/%%M/%%S)") - parser.add_argument("--floatformat", dest="floatformat", - help="override float format (ex. %%.15f)") - parser.add_argument("--sci-float", dest="scifloat", default=False, action="store_true", - help="force scientific notation to float") - parser.add_argument("-I", "--include_sheet_pattern", nargs=nargs_plus, dest="include_sheet_pattern", default="^.*$", - help="only include sheets named matching given pattern, only effects when -a option is enabled.") - parser.add_argument("--ignore-formats", nargs=nargs_plus, type=str, dest="ignore_formats", default=[''], - help="Ignores format for specific data types.") - parser.add_argument("-l", "--lineterminator", dest="lineterminator", default="\n", - help="line terminator - lines terminator in csv, '\\n' '\\r\\n' or '\\r' (default: \\n)") - parser.add_argument("-m", "--merge-cells", dest="merge_cells", default=False, action="store_true", - help="merge cells") - parser.add_argument("-n", "--sheetname", dest="sheetname", default=None, - help="sheet name to convert") - parser.add_argument("-i", "--ignoreempty", dest="skip_empty_lines", default=False, action="store_true", - help="skip empty lines") - parser.add_argument("--skipemptycolumns", dest="skip_trailing_columns", default=False, action="store_true", - help="skip trailing empty columns") - parser.add_argument("-p", "--sheetdelimiter", dest="sheetdelimiter", default="--------", - help="sheet delimiter used to separate sheets, pass '' if you do not need delimiter, or 'x07' " - "or '\\f' for form feed (default: '--------')") - parser.add_argument("-q", "--quoting", dest="quoting", default="minimal", - help="quoting - fields quoting in csv, 'none' 'minimal' 'nonnumeric' or 'all' (default: minimal)") - parser.add_argument("-s", "--sheet", dest="sheetid", default=1, type=inttype, - help="sheet number to convert") - - if argparser: - options = parser.parse_args() - else: - (options, args) = parser.parse_args() - if len(args) < 1: - parser.print_usage() - sys.stderr.write("error: too few arguments" + os.linesep) - sys.exit(1) - options.infile = args[0] - options.outfile = len(args) > 1 and args[1] or None - - if len(options.delimiter) == 1: - pass - elif options.delimiter == 'tab' or options.delimiter == '\\t': - options.delimiter = '\t' - elif options.delimiter == 'comma': - options.delimiter = ',' - elif options.delimiter[0] == 'x': - options.delimiter = chr(int(options.delimiter[1:])) - else: - sys.stderr.write("error: invalid delimiter\n") - sys.exit(1) - - if options.quoting == 'none': - options.quoting = csv.QUOTE_NONE - elif options.quoting == 'minimal': - options.quoting = csv.QUOTE_MINIMAL - elif options.quoting == 'nonnumeric': - options.quoting = csv.QUOTE_NONNUMERIC - elif options.quoting == 'all': - options.quoting = csv.QUOTE_ALL - else: - sys.stderr.write("error: invalid quoting\n") - sys.exit(1) - - if options.lineterminator == '\n': - pass - elif options.lineterminator == '\\n': - options.lineterminator = '\n' - elif options.lineterminator == '\\r': - options.lineterminator = '\r' - elif options.lineterminator == '\\r\\n': - options.lineterminator = '\r\n' - else: - sys.stderr.write("error: invalid line terminator\n") - sys.exit(1) - - if options.sheetdelimiter == '--------': - pass - elif options.sheetdelimiter == '': - pass - elif options.sheetdelimiter == '\\f': - options.sheetdelimiter = '\f' - elif options.sheetdelimiter[0] == 'x': - options.sheetdelimiter = chr(int(options.sheetdelimiter[1:])) - else: - sys.stderr.write("error: invalid sheet delimiter\n") - sys.exit(1) - - kwargs = { - 'delimiter': options.delimiter, - 'quoting': options.quoting, - 'sheetdelimiter': options.sheetdelimiter, - 'dateformat': options.dateformat, - 'timeformat': options.timeformat, - 'floatformat': options.floatformat, - 'scifloat': options.scifloat, - 'skip_empty_lines': options.skip_empty_lines, - 'skip_trailing_columns': options.skip_trailing_columns, - 'escape_strings': options.escape_strings, - 'hyperlinks': options.hyperlinks, - 'include_sheet_pattern': options.include_sheet_pattern, - 'exclude_sheet_pattern': options.exclude_sheet_pattern, - 'merge_cells': options.merge_cells, - 'outputencoding': options.outputencoding, - 'lineterminator': options.lineterminator, - 'ignore_formats': options.ignore_formats - } - sheetid = options.sheetid - if options.all: - sheetid = 0 - - outfile = options.outfile or sys.stdout - try: - if os.path.isdir(options.infile): - convert_recursive(options.infile, sheetid, outfile, kwargs) - else: - xlsx2csv = Xlsx2csv(options.infile, **kwargs) - if options.sheetname: - sheetid = xlsx2csv.getSheetIdByName(options.sheetname) - if not sheetid: - raise XlsxException("Sheet '%s' not found" % options.sheetname) - xlsx2csv.convert(outfile, sheetid) - except XlsxException: - _, e, _ = sys.exc_info() - sys.stderr.write(str(e) + "\n") - sys.exit(1) - - -def eprint(*args, **kwargs): - print(*args, file=sys.stderr, **kwargs) diff --git a/.local/share/applications/file.desktop b/.local/share/applications/file.desktop index 369bdc0..9ac96cf 100644 --- a/.local/share/applications/file.desktop +++ b/.local/share/applications/file.desktop @@ -1,4 +1,4 @@ [Desktop Entry] Type=Application Name=File Manager -Exec=/usr/local/bin/st -e lf %u +Exec=/usr/local/bin/st -e ranger %u diff --git a/.local/share/applications/img.desktop b/.local/share/applications/img.desktop index 42aa81e..97c0d69 100644 --- a/.local/share/applications/img.desktop +++ b/.local/share/applications/img.desktop @@ -1,4 +1,4 @@ [Desktop Entry] Type=Application Name=Image viewer -Exec=/usr/bin/sxiv -a %f +Exec=/usr/local/bin/nsxiv -a %f diff --git a/.local/share/applications/mimeinfo.cache b/.local/share/applications/mimeinfo.cache index 1191348..6b2e69e 100644 --- a/.local/share/applications/mimeinfo.cache +++ b/.local/share/applications/mimeinfo.cache @@ -1,5 +1,7 @@ [MIME Cache] -application/pdf=wine-extension-pdf.desktop; +application/pdf=chromium.desktop;wine-extension-pdf.desktop; +application/rdf+xml=chromium.desktop; +application/rss+xml=chromium.desktop; application/rtf=wine-extension-rtf.desktop; application/vnd.ms-htmlhelp=wine-extension-chm.desktop; application/winhlp=wine-extension-hlp.desktop; @@ -7,14 +9,18 @@ application/x-mswinurl=wine-extension-url.desktop; application/x-mswrite=wine-extension-wri.desktop; application/x-wine-extension-ini=wine-extension-ini.desktop; application/x-wine-extension-msp=wine-extension-msp.desktop; -application/xml=wine-extension-xml.desktop; -image/gif=wine-extension-gif.desktop; -image/jpeg=wine-extension-jfif.desktop;wine-extension-jpe.desktop; -image/png=wine-extension-png.desktop; -text/html=browser.desktop;wine-extension-htm.desktop; +application/xhtml+xml=chromium.desktop; +application/xhtml_xml=chromium.desktop; +application/xml=chromium.desktop;wine-extension-xml.desktop; +image/gif=chromium.desktop;wine-extension-gif.desktop; +image/jpeg=chromium.desktop;wine-extension-jfif.desktop;wine-extension-jpe.desktop; +image/png=chromium.desktop;wine-extension-png.desktop; +image/webp=chromium.desktop; +text/html=browser.desktop;chromium.desktop;wine-extension-htm.desktop; text/plain=wine-extension-txt.desktop; text/vbscript=wine-extension-vbs.desktop; +text/xml=chromium.desktop; x-scheme-handler/about=browser.desktop; -x-scheme-handler/http=browser.desktop; -x-scheme-handler/https=browser.desktop; +x-scheme-handler/http=browser.desktop;chromium.desktop; +x-scheme-handler/https=browser.desktop;chromium.desktop; x-scheme-handler/unknown=browser.desktop; diff --git a/.local/share/applications/monero-gui.desktop b/.local/share/applications/monero-gui.desktop deleted file mode 100644 index e5e22a7..0000000 --- a/.local/share/applications/monero-gui.desktop +++ /dev/null @@ -1,16 +0,0 @@ -[Desktop Entry] -Name=Monero GUI -GenericName=Monero-GUI -X-GNOME-FullName=Monero-GUI -Comment=Monero GUI -Keywords=Monero; -Exec=/usr/bin/monero-wallet-gui %u -Terminal=false -Type=Application -Icon=monero -Categories=Network;GNOME;Qt; -MimeType=x-scheme-handler/monero;x-scheme-handler/moneroseed -StartupNotify=true -X-GNOME-Bugzilla-Bugzilla=GNOME -X-GNOME-UsesNotifications=true - diff --git a/.local/share/applications/video.desktop b/.local/share/applications/video.desktop new file mode 100644 index 0000000..a29a0b1 --- /dev/null +++ b/.local/share/applications/video.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Video viewer +Exec=/usr/bin/mpv -quiet %f diff --git a/.local/share/applications/wine-extension-chm.desktop b/.local/share/applications/wine-extension-chm.desktop deleted file mode 100644 index 22b8e3f..0000000 --- a/.local/share/applications/wine-extension-chm.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=hh -MimeType=application/vnd.ms-htmlhelp; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen chm.file %f -NoDisplay=true -StartupNotify=true -Icon=A35F_hh.0 diff --git a/.local/share/applications/wine-extension-gif.desktop b/.local/share/applications/wine-extension-gif.desktop deleted file mode 100644 index d743be4..0000000 --- a/.local/share/applications/wine-extension-gif.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Wine Internet Explorer -MimeType=image/gif; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen giffile %f -NoDisplay=true -StartupNotify=true -Icon=7596_iexplore.0 diff --git a/.local/share/applications/wine-extension-hlp.desktop b/.local/share/applications/wine-extension-hlp.desktop deleted file mode 100644 index 4a2ddd0..0000000 --- a/.local/share/applications/wine-extension-hlp.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=winhlp32 -MimeType=application/winhlp; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen hlpfile %f -NoDisplay=true -StartupNotify=true -Icon=4137_winhlp32.0 diff --git a/.local/share/applications/wine-extension-htm.desktop b/.local/share/applications/wine-extension-htm.desktop deleted file mode 100644 index 2117bc9..0000000 --- a/.local/share/applications/wine-extension-htm.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=winebrowser -MimeType=text/html; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen htmlfile %f -NoDisplay=true -StartupNotify=true -Icon=7765_winebrowser.0 diff --git a/.local/share/applications/wine-extension-ini.desktop b/.local/share/applications/wine-extension-ini.desktop deleted file mode 100644 index dfd3d24..0000000 --- a/.local/share/applications/wine-extension-ini.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=notepad -MimeType=application/x-wine-extension-ini; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen inifile %f -NoDisplay=true -StartupNotify=true -Icon=1E64_notepad.0 diff --git a/.local/share/applications/wine-extension-jfif.desktop b/.local/share/applications/wine-extension-jfif.desktop deleted file mode 100644 index 87b6c14..0000000 --- a/.local/share/applications/wine-extension-jfif.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Wine Internet Explorer -MimeType=image/jpeg; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen pjpegfile %f -NoDisplay=true -StartupNotify=true -Icon=7596_iexplore.0 diff --git a/.local/share/applications/wine-extension-jpe.desktop b/.local/share/applications/wine-extension-jpe.desktop deleted file mode 100644 index a500316..0000000 --- a/.local/share/applications/wine-extension-jpe.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Wine Internet Explorer -MimeType=image/jpeg; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen jpegfile %f -NoDisplay=true -StartupNotify=true -Icon=7596_iexplore.0 diff --git a/.local/share/applications/wine-extension-msp.desktop b/.local/share/applications/wine-extension-msp.desktop deleted file mode 100644 index 66bfe4a..0000000 --- a/.local/share/applications/wine-extension-msp.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Wine Installer -MimeType=application/x-wine-extension-msp; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen Msi.Patch %f -NoDisplay=true -StartupNotify=true -Icon=2402_msiexec.0 diff --git a/.local/share/applications/wine-extension-pdf.desktop b/.local/share/applications/wine-extension-pdf.desktop deleted file mode 100644 index effc2e0..0000000 --- a/.local/share/applications/wine-extension-pdf.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=winebrowser -MimeType=application/pdf; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen pdffile %f -NoDisplay=true -StartupNotify=true -Icon=7765_winebrowser.0 diff --git a/.local/share/applications/wine-extension-png.desktop b/.local/share/applications/wine-extension-png.desktop deleted file mode 100644 index 378a2ee..0000000 --- a/.local/share/applications/wine-extension-png.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Wine Internet Explorer -MimeType=image/png; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen pngfile %f -NoDisplay=true -StartupNotify=true -Icon=7596_iexplore.0 diff --git a/.local/share/applications/wine-extension-rtf.desktop b/.local/share/applications/wine-extension-rtf.desktop deleted file mode 100644 index 2460fe6..0000000 --- a/.local/share/applications/wine-extension-rtf.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=wordpad -MimeType=application/rtf; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen rtffile %f -NoDisplay=true -StartupNotify=true -Icon=97C1_wordpad.0 diff --git a/.local/share/applications/wine-extension-txt.desktop b/.local/share/applications/wine-extension-txt.desktop deleted file mode 100644 index 6aee932..0000000 --- a/.local/share/applications/wine-extension-txt.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=notepad -MimeType=text/plain; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen txtfile %f -NoDisplay=true -StartupNotify=true -Icon=1E64_notepad.0 diff --git a/.local/share/applications/wine-extension-url.desktop b/.local/share/applications/wine-extension-url.desktop deleted file mode 100644 index ec83e02..0000000 --- a/.local/share/applications/wine-extension-url.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=rundll32 -MimeType=application/x-mswinurl; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen InternetShortcut %f -NoDisplay=true -StartupNotify=true -Icon=1CD8_rundll32.0 diff --git a/.local/share/applications/wine-extension-vbs.desktop b/.local/share/applications/wine-extension-vbs.desktop deleted file mode 100644 index 2686182..0000000 --- a/.local/share/applications/wine-extension-vbs.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=A Wine application -MimeType=text/vbscript; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen VBSFile %f -NoDisplay=true -StartupNotify=true diff --git a/.local/share/applications/wine-extension-wri.desktop b/.local/share/applications/wine-extension-wri.desktop deleted file mode 100644 index a30ae4e..0000000 --- a/.local/share/applications/wine-extension-wri.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=wordpad -MimeType=application/x-mswrite; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen wrifile %f -NoDisplay=true -StartupNotify=true -Icon=97C1_wordpad.0 diff --git a/.local/share/applications/wine-extension-xml.desktop b/.local/share/applications/wine-extension-xml.desktop deleted file mode 100644 index bbf4b96..0000000 --- a/.local/share/applications/wine-extension-xml.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=winebrowser -MimeType=application/xml; -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine start /ProgIDOpen xmlfile %f -NoDisplay=true -StartupNotify=true -Icon=7765_winebrowser.0 diff --git a/.local/share/applications/wine/Programs/Heimat Defender Rebellion.desktop b/.local/share/applications/wine/Programs/Heimat Defender Rebellion.desktop deleted file mode 100644 index 5c31034..0000000 --- a/.local/share/applications/wine/Programs/Heimat Defender Rebellion.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=Heimat Defender Rebellion -Exec=env WINEPREFIX="/home/alex/.local/share/wineprefixes/default" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/alex/.local/share/wineprefixes/default/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/Heimat\\ Defender\\ Rebellion.lnk -Type=Application -StartupNotify=true -Path=/home/alex/.local/share/wineprefixes/default/dosdevices/c:/Program Files (x86)/Heimat Defender Rebellion -Icon=B3C3_HeimatDefender.0 -StartupWMClass=heimatdefender.exe diff --git a/.local/share/larbs/chars/emoji b/.local/share/larbs/chars/emoji new file mode 100644 index 0000000..6803731 --- /dev/null +++ b/.local/share/larbs/chars/emoji @@ -0,0 +1,1630 @@ +๐Ÿ˜€ grinning face +๐Ÿ˜ƒ grinning face with big eyes +๐Ÿ˜„ grinning face with smiling eyes +๐Ÿ˜ beaming face with smiling eyes +๐Ÿ˜† grinning squinting face +๐Ÿ˜… grinning face with sweat +๐Ÿคฃ rolling on the floor laughing +๐Ÿ˜‚ face with tears of joy +๐Ÿ™‚ slightly smiling face +๐Ÿ™ƒ upside-down face +๐Ÿซ  melting face +๐Ÿ˜‰ winking face +๐Ÿ˜Š smiling face with smiling eyes +๐Ÿ˜‡ smiling face with halo +๐Ÿฅฐ smiling face with hearts +๐Ÿ˜ smiling face with heart-eyes +๐Ÿคฉ star-struck +๐Ÿ˜˜ face blowing a kiss +๐Ÿ˜— kissing face +โ˜บ๏ธ smiling face +๐Ÿ˜š kissing face with closed eyes +๐Ÿ˜™ kissing face with smiling eyes +๐Ÿฅฒ smiling face with tear +๐Ÿ˜‹ face savoring food +๐Ÿ˜› face with tongue +๐Ÿ˜œ winking face with tongue +๐Ÿคช zany face +๐Ÿ˜ squinting face with tongue +๐Ÿค‘ money-mouth face +๐Ÿค— smiling face with open hands +๐Ÿคญ face with hand over mouth +๐Ÿซข face with open eyes and hand over mouth +๐Ÿซฃ face with peeking eye +๐Ÿคซ shushing face +๐Ÿค” thinking face +๐Ÿซก saluting face +๐Ÿค zipper-mouth face +๐Ÿคจ face with raised eyebrow +๐Ÿ˜ neutral face +๐Ÿ˜‘ expressionless face +๐Ÿ˜ถ face without mouth +๐Ÿซฅ dotted line face +๐Ÿ˜ smirking face +๐Ÿ˜’ unamused face +๐Ÿ™„ face with rolling eyes +๐Ÿ˜ฌ grimacing face +๐Ÿคฅ lying face +๐Ÿ˜Œ relieved face +๐Ÿ˜” pensive face +๐Ÿ˜ช sleepy face +๐Ÿคค drooling face +๐Ÿ˜ด sleeping face +๐Ÿ˜ท face with medical mask +๐Ÿค’ face with thermometer +๐Ÿค• face with head-bandage +๐Ÿคข nauseated face +๐Ÿคฎ face vomiting +๐Ÿคง sneezing face +๐Ÿฅต hot face +๐Ÿฅถ cold face +๐Ÿฅด woozy face +๐Ÿ˜ต face with crossed-out eyes +๐Ÿคฏ exploding head +๐Ÿค  cowboy hat face +๐Ÿฅณ partying face +๐Ÿฅธ disguised face +๐Ÿ˜Ž smiling face with sunglasses +๐Ÿค“ nerd face +๐Ÿง face with monocle +๐Ÿ˜• confused face +๐Ÿซค face with diagonal mouth +๐Ÿ˜Ÿ worried face +๐Ÿ™ slightly frowning face +โ˜น๏ธ frowning face +๐Ÿ˜ฎ face with open mouth +๐Ÿ˜ฏ hushed face +๐Ÿ˜ฒ astonished face +๐Ÿ˜ณ flushed face +๐Ÿฅบ pleading face +๐Ÿฅน face holding back tears +๐Ÿ˜ฆ frowning face with open mouth +๐Ÿ˜ง anguished face +๐Ÿ˜จ fearful face +๐Ÿ˜ฐ anxious face with sweat +๐Ÿ˜ฅ sad but relieved face +๐Ÿ˜ข crying face +๐Ÿ˜ญ loudly crying face +๐Ÿ˜ฑ face screaming in fear +๐Ÿ˜– confounded face +๐Ÿ˜ฃ persevering face +๐Ÿ˜ž disappointed face +๐Ÿ˜“ downcast face with sweat +๐Ÿ˜ฉ weary face +๐Ÿ˜ซ tired face +๐Ÿฅฑ yawning face +๐Ÿ˜ค face with steam from nose +๐Ÿ˜ก pouting face +๐Ÿ˜  angry face +๐Ÿคฌ face with symbols on mouth +๐Ÿ˜ˆ smiling face with horns +๐Ÿ‘ฟ angry face with horns +๐Ÿ’€ skull +โ˜ ๏ธ skull and crossbones +๐Ÿ’ฉ pile of poo +๐Ÿคก clown face +๐Ÿ‘น ogre +๐Ÿ‘บ goblin +๐Ÿ‘ป ghost +๐Ÿ‘ฝ alien +๐Ÿ‘พ alien monster +๐Ÿค– robot +๐Ÿ˜บ grinning cat +๐Ÿ˜ธ grinning cat with smiling eyes +๐Ÿ˜น cat with tears of joy +๐Ÿ˜ป smiling cat with heart-eyes +๐Ÿ˜ผ cat with wry smile +๐Ÿ˜ฝ kissing cat +๐Ÿ™€ weary cat +๐Ÿ˜ฟ crying cat +๐Ÿ˜พ pouting cat +๐Ÿ™ˆ see-no-evil monkey +๐Ÿ™‰ hear-no-evil monkey +๐Ÿ™Š speak-no-evil monkey +๐Ÿ’‹ kiss mark +๐Ÿ’Œ love letter +๐Ÿ’˜ heart with arrow +๐Ÿ’ heart with ribbon +๐Ÿ’– sparkling heart +๐Ÿ’— growing heart +๐Ÿ’“ beating heart +๐Ÿ’ž revolving hearts +๐Ÿ’• two hearts +๐Ÿ’Ÿ heart decoration +โฃ๏ธ heart exclamation +๐Ÿ’” broken heart +โค๏ธ red heart +๐Ÿงก orange heart +๐Ÿ’› yellow heart +๐Ÿ’š green heart +๐Ÿ’™ blue heart +๐Ÿ’œ purple heart +๐ŸคŽ brown heart +๐Ÿ–ค black heart +๐Ÿค white heart +๐Ÿ’ฏ hundred points +๐Ÿ’ข anger symbol +๐Ÿ’ฅ collision +๐Ÿ’ซ dizzy +๐Ÿ’ฆ sweat droplets +๐Ÿ’จ dashing away +๐Ÿ•ณ๏ธ hole +๐Ÿ’ฃ bomb +๐Ÿ’ฌ speech balloon +๐Ÿ—จ๏ธ left speech bubble +๐Ÿ—ฏ๏ธ right anger bubble +๐Ÿ’ญ thought balloon +๐Ÿ’ค zzz +๐Ÿ‘‹ waving hand +๐Ÿคš raised back of hand +๐Ÿ–๏ธ hand with fingers splayed +โœ‹ raised hand +๐Ÿ–– vulcan salute +๐Ÿซฑ rightwards hand +๐Ÿซฒ leftwards hand +๐Ÿซณ palm down hand +๐Ÿซด palm up hand +๐Ÿ‘Œ OK hand +๐ŸคŒ pinched fingers +๐Ÿค pinching hand +โœŒ๏ธ victory hand +๐Ÿคž crossed fingers +๐Ÿซฐ hand with index finger and thumb crossed +๐ŸคŸ love-you gesture +๐Ÿค˜ sign of the horns +๐Ÿค™ call me hand +๐Ÿ‘ˆ backhand index pointing left +๐Ÿ‘‰ backhand index pointing right +๐Ÿ‘† backhand index pointing up +๐Ÿ–• middle finger +๐Ÿ‘‡ backhand index pointing down +โ˜๏ธ index pointing up +๐Ÿซต index pointing at the viewer +๐Ÿ‘ thumbs up +๐Ÿ‘Ž thumbs down +โœŠ raised fist +๐Ÿ‘Š oncoming fist +๐Ÿค› left-facing fist +๐Ÿคœ right-facing fist +๐Ÿ‘ clapping hands +๐Ÿ™Œ raising hands +๐Ÿซถ heart hands +๐Ÿ‘ open hands +๐Ÿคฒ palms up together +๐Ÿค handshake +๐Ÿ™ folded hands +โœ๏ธ writing hand +๐Ÿ’… nail polish +๐Ÿคณ selfie +๐Ÿ’ช flexed biceps +๐Ÿฆพ mechanical arm +๐Ÿฆฟ mechanical leg +๐Ÿฆต leg +๐Ÿฆถ foot +๐Ÿ‘‚ ear +๐Ÿฆป ear with hearing aid +๐Ÿ‘ƒ nose +๐Ÿง  brain +๐Ÿซ€ anatomical heart +๐Ÿซ lungs +๐Ÿฆท tooth +๐Ÿฆด bone +๐Ÿ‘€ eyes +๐Ÿ‘๏ธ eye +๐Ÿ‘… tongue +๐Ÿ‘„ mouth +๐Ÿซฆ biting lip +๐Ÿ‘ถ baby +๐Ÿง’ child +๐Ÿ‘ฆ boy +๐Ÿ‘ง girl +๐Ÿง‘ person +๐Ÿ‘ฑ person: blond hair +๐Ÿ‘จ man +๐Ÿง” person: beard +๐Ÿ‘ฉ woman +๐Ÿง“ older person +๐Ÿ‘ด old man +๐Ÿ‘ต old woman +๐Ÿ™ person frowning +๐Ÿ™Ž person pouting +๐Ÿ™… person gesturing NO +๐Ÿ™† person gesturing OK +๐Ÿ’ person tipping hand +๐Ÿ™‹ person raising hand +๐Ÿง deaf person +๐Ÿ™‡ person bowing +๐Ÿคฆ person facepalming +๐Ÿคท person shrugging +๐Ÿ‘ฎ police officer +๐Ÿ•ต๏ธ detective +๐Ÿ’‚ guard +๐Ÿฅท ninja +๐Ÿ‘ท construction worker +๐Ÿซ… person with crown +๐Ÿคด prince +๐Ÿ‘ธ princess +๐Ÿ‘ณ person wearing turban +๐Ÿ‘ฒ person with skullcap +๐Ÿง• woman with headscarf +๐Ÿคต person in tuxedo +๐Ÿ‘ฐ person with veil +๐Ÿคฐ pregnant woman +๐Ÿซƒ pregnant man +๐Ÿซ„ pregnant person +๐Ÿคฑ breast-feeding +๐Ÿ‘ผ baby angel +๐ŸŽ… Santa Claus +๐Ÿคถ Mrs. Claus +๐Ÿฆธ superhero +๐Ÿฆน supervillain +๐Ÿง™ mage +๐Ÿงš fairy +๐Ÿง› vampire +๐Ÿงœ merperson +๐Ÿง elf +๐Ÿงž genie +๐ŸงŸ zombie +๐ŸงŒ troll +๐Ÿ’† person getting massage +๐Ÿ’‡ person getting haircut +๐Ÿšถ person walking +๐Ÿง person standing +๐ŸงŽ person kneeling +๐Ÿƒ person running +๐Ÿ’ƒ woman dancing +๐Ÿ•บ man dancing +๐Ÿ•ด๏ธ person in suit levitating +๐Ÿ‘ฏ people with bunny ears +๐Ÿง– person in steamy room +๐Ÿง— person climbing +๐Ÿคบ person fencing +๐Ÿ‡ horse racing +โ›ท๏ธ skier +๐Ÿ‚ snowboarder +๐ŸŒ๏ธ person golfing +๐Ÿ„ person surfing +๐Ÿšฃ person rowing boat +๐ŸŠ person swimming +โ›น๏ธ person bouncing ball +๐Ÿ‹๏ธ person lifting weights +๐Ÿšด person biking +๐Ÿšต person mountain biking +๐Ÿคธ person cartwheeling +๐Ÿคผ people wrestling +๐Ÿคฝ person playing water polo +๐Ÿคพ person playing handball +๐Ÿคน person juggling +๐Ÿง˜ person in lotus position +๐Ÿ›€ person taking bath +๐Ÿ›Œ person in bed +๐Ÿ‘ญ women holding hands +๐Ÿ‘ซ woman and man holding hands +๐Ÿ‘ฌ men holding hands +๐Ÿ’ kiss +๐Ÿ’‘ couple with heart +๐Ÿ‘ช family +๐Ÿ—ฃ๏ธ speaking head +๐Ÿ‘ค bust in silhouette +๐Ÿ‘ฅ busts in silhouette +๐Ÿซ‚ people hugging +๐Ÿ‘ฃ footprints +๐Ÿต monkey face +๐Ÿ’ monkey +๐Ÿฆ gorilla +๐Ÿฆง orangutan +๐Ÿถ dog face +๐Ÿ• dog +๐Ÿฆฎ guide dog +๐Ÿฉ poodle +๐Ÿบ wolf +๐ŸฆŠ fox +๐Ÿฆ raccoon +๐Ÿฑ cat face +๐Ÿˆ cat +๐Ÿฆ lion +๐Ÿฏ tiger face +๐Ÿ… tiger +๐Ÿ† leopard +๐Ÿด horse face +๐ŸŽ horse +๐Ÿฆ„ unicorn +๐Ÿฆ“ zebra +๐ŸฆŒ deer +๐Ÿฆฌ bison +๐Ÿฎ cow face +๐Ÿ‚ ox +๐Ÿƒ water buffalo +๐Ÿ„ cow +๐Ÿท pig face +๐Ÿ– pig +๐Ÿ— boar +๐Ÿฝ pig nose +๐Ÿ ram +๐Ÿ‘ ewe +๐Ÿ goat +๐Ÿช camel +๐Ÿซ two-hump camel +๐Ÿฆ™ llama +๐Ÿฆ’ giraffe +๐Ÿ˜ elephant +๐Ÿฆฃ mammoth +๐Ÿฆ rhinoceros +๐Ÿฆ› hippopotamus +๐Ÿญ mouse face +๐Ÿ mouse +๐Ÿ€ rat +๐Ÿน hamster +๐Ÿฐ rabbit face +๐Ÿ‡ rabbit +๐Ÿฟ๏ธ chipmunk +๐Ÿฆซ beaver +๐Ÿฆ” hedgehog +๐Ÿฆ‡ bat +๐Ÿป bear +๐Ÿจ koala +๐Ÿผ panda +๐Ÿฆฅ sloth +๐Ÿฆฆ otter +๐Ÿฆจ skunk +๐Ÿฆ˜ kangaroo +๐Ÿฆก badger +๐Ÿพ paw prints +๐Ÿฆƒ turkey +๐Ÿ” chicken +๐Ÿ“ rooster +๐Ÿฃ hatching chick +๐Ÿค baby chick +๐Ÿฅ front-facing baby chick +๐Ÿฆ bird +๐Ÿง penguin +๐Ÿ•Š๏ธ dove +๐Ÿฆ… eagle +๐Ÿฆ† duck +๐Ÿฆข swan +๐Ÿฆ‰ owl +๐Ÿฆค dodo +๐Ÿชถ feather +๐Ÿฆฉ flamingo +๐Ÿฆš peacock +๐Ÿฆœ parrot +๐Ÿธ frog +๐ŸŠ crocodile +๐Ÿข turtle +๐ŸฆŽ lizard +๐Ÿ snake +๐Ÿฒ dragon face +๐Ÿ‰ dragon +๐Ÿฆ• sauropod +๐Ÿฆ– T-Rex +๐Ÿณ spouting whale +๐Ÿ‹ whale +๐Ÿฌ dolphin +๐Ÿฆญ seal +๐ŸŸ fish +๐Ÿ  tropical fish +๐Ÿก blowfish +๐Ÿฆˆ shark +๐Ÿ™ octopus +๐Ÿš spiral shell +๐Ÿชธ coral +๐ŸŒ snail +๐Ÿฆ‹ butterfly +๐Ÿ› bug +๐Ÿœ ant +๐Ÿ honeybee +๐Ÿชฒ beetle +๐Ÿž lady beetle +๐Ÿฆ— cricket +๐Ÿชณ cockroach +๐Ÿ•ท๏ธ spider +๐Ÿ•ธ๏ธ spider web +๐Ÿฆ‚ scorpion +๐ŸฆŸ mosquito +๐Ÿชฐ fly +๐Ÿชฑ worm +๐Ÿฆ  microbe +๐Ÿ’ bouquet +๐ŸŒธ cherry blossom +๐Ÿ’ฎ white flower +๐Ÿชท lotus +๐Ÿต๏ธ rosette +๐ŸŒน rose +๐Ÿฅ€ wilted flower +๐ŸŒบ hibiscus +๐ŸŒป sunflower +๐ŸŒผ blossom +๐ŸŒท tulip +๐ŸŒฑ seedling +๐Ÿชด potted plant +๐ŸŒฒ evergreen tree +๐ŸŒณ deciduous tree +๐ŸŒด palm tree +๐ŸŒต cactus +๐ŸŒพ sheaf of rice +๐ŸŒฟ herb +โ˜˜๏ธ shamrock +๐Ÿ€ four leaf clover +๐Ÿ maple leaf +๐Ÿ‚ fallen leaf +๐Ÿƒ leaf fluttering in wind +๐Ÿชน empty nest +๐Ÿชบ nest with eggs +๐Ÿ‡ grapes +๐Ÿˆ melon +๐Ÿ‰ watermelon +๐ŸŠ tangerine +๐Ÿ‹ lemon +๐ŸŒ banana +๐Ÿ pineapple +๐Ÿฅญ mango +๐ŸŽ red apple +๐Ÿ green apple +๐Ÿ pear +๐Ÿ‘ peach +๐Ÿ’ cherries +๐Ÿ“ strawberry +๐Ÿซ blueberries +๐Ÿฅ kiwi fruit +๐Ÿ… tomato +๐Ÿซ’ olive +๐Ÿฅฅ coconut +๐Ÿฅ‘ avocado +๐Ÿ† eggplant +๐Ÿฅ” potato +๐Ÿฅ• carrot +๐ŸŒฝ ear of corn +๐ŸŒถ๏ธ hot pepper +๐Ÿซ‘ bell pepper +๐Ÿฅ’ cucumber +๐Ÿฅฌ leafy green +๐Ÿฅฆ broccoli +๐Ÿง„ garlic +๐Ÿง… onion +๐Ÿ„ mushroom +๐Ÿฅœ peanuts +๐Ÿซ˜ beans +๐ŸŒฐ chestnut +๐Ÿž bread +๐Ÿฅ croissant +๐Ÿฅ– baguette bread +๐Ÿซ“ flatbread +๐Ÿฅจ pretzel +๐Ÿฅฏ bagel +๐Ÿฅž pancakes +๐Ÿง‡ waffle +๐Ÿง€ cheese wedge +๐Ÿ– meat on bone +๐Ÿ— poultry leg +๐Ÿฅฉ cut of meat +๐Ÿฅ“ bacon +๐Ÿ” hamburger +๐ŸŸ french fries +๐Ÿ• pizza +๐ŸŒญ hot dog +๐Ÿฅช sandwich +๐ŸŒฎ taco +๐ŸŒฏ burrito +๐Ÿซ” tamale +๐Ÿฅ™ stuffed flatbread +๐Ÿง† falafel +๐Ÿฅš egg +๐Ÿณ cooking +๐Ÿฅ˜ shallow pan of food +๐Ÿฒ pot of food +๐Ÿซ• fondue +๐Ÿฅฃ bowl with spoon +๐Ÿฅ— green salad +๐Ÿฟ popcorn +๐Ÿงˆ butter +๐Ÿง‚ salt +๐Ÿฅซ canned food +๐Ÿฑ bento box +๐Ÿ˜ rice cracker +๐Ÿ™ rice ball +๐Ÿš cooked rice +๐Ÿ› curry rice +๐Ÿœ steaming bowl +๐Ÿ spaghetti +๐Ÿ  roasted sweet potato +๐Ÿข oden +๐Ÿฃ sushi +๐Ÿค fried shrimp +๐Ÿฅ fish cake with swirl +๐Ÿฅฎ moon cake +๐Ÿก dango +๐ŸฅŸ dumpling +๐Ÿฅ  fortune cookie +๐Ÿฅก takeout box +๐Ÿฆ€ crab +๐Ÿฆž lobster +๐Ÿฆ shrimp +๐Ÿฆ‘ squid +๐Ÿฆช oyster +๐Ÿฆ soft ice cream +๐Ÿง shaved ice +๐Ÿจ ice cream +๐Ÿฉ doughnut +๐Ÿช cookie +๐ŸŽ‚ birthday cake +๐Ÿฐ shortcake +๐Ÿง cupcake +๐Ÿฅง pie +๐Ÿซ chocolate bar +๐Ÿฌ candy +๐Ÿญ lollipop +๐Ÿฎ custard +๐Ÿฏ honey pot +๐Ÿผ baby bottle +๐Ÿฅ› glass of milk +โ˜• hot beverage +๐Ÿซ– teapot +๐Ÿต teacup without handle +๐Ÿถ sake +๐Ÿพ bottle with popping cork +๐Ÿท wine glass +๐Ÿธ cocktail glass +๐Ÿน tropical drink +๐Ÿบ beer mug +๐Ÿป clinking beer mugs +๐Ÿฅ‚ clinking glasses +๐Ÿฅƒ tumbler glass +๐Ÿซ— pouring liquid +๐Ÿฅค cup with straw +๐Ÿง‹ bubble tea +๐Ÿงƒ beverage box +๐Ÿง‰ mate +๐ŸงŠ ice +๐Ÿฅข chopsticks +๐Ÿฝ๏ธ fork and knife with plate +๐Ÿด fork and knife +๐Ÿฅ„ spoon +๐Ÿ”ช kitchen knife +๐Ÿซ™ jar +๐Ÿบ amphora +๐ŸŒ globe showing Europe-Africa +๐ŸŒŽ globe showing Americas +๐ŸŒ globe showing Asia-Australia +๐ŸŒ globe with meridians +๐Ÿ—บ๏ธ world map +๐Ÿ—พ map of Japan +๐Ÿงญ compass +๐Ÿ”๏ธ snow-capped mountain +โ›ฐ๏ธ mountain +๐ŸŒ‹ volcano +๐Ÿ—ป mount fuji +๐Ÿ•๏ธ camping +๐Ÿ–๏ธ beach with umbrella +๐Ÿœ๏ธ desert +๐Ÿ๏ธ desert island +๐Ÿž๏ธ national park +๐ŸŸ๏ธ stadium +๐Ÿ›๏ธ classical building +๐Ÿ—๏ธ building construction +๐Ÿงฑ brick +๐Ÿชจ rock +๐Ÿชต wood +๐Ÿ›– hut +๐Ÿ˜๏ธ houses +๐Ÿš๏ธ derelict house +๐Ÿ  house +๐Ÿก house with garden +๐Ÿข office building +๐Ÿฃ Japanese post office +๐Ÿค post office +๐Ÿฅ hospital +๐Ÿฆ bank +๐Ÿจ hotel +๐Ÿฉ love hotel +๐Ÿช convenience store +๐Ÿซ school +๐Ÿฌ department store +๐Ÿญ factory +๐Ÿฏ Japanese castle +๐Ÿฐ castle +๐Ÿ’’ wedding +๐Ÿ—ผ Tokyo tower +๐Ÿ—ฝ Statue of Liberty +โ›ช church +๐Ÿ•Œ mosque +๐Ÿ›• hindu temple +๐Ÿ• synagogue +โ›ฉ๏ธ shinto shrine +๐Ÿ•‹ kaaba +โ›ฒ fountain +โ›บ tent +๐ŸŒ foggy +๐ŸŒƒ night with stars +๐Ÿ™๏ธ cityscape +๐ŸŒ„ sunrise over mountains +๐ŸŒ… sunrise +๐ŸŒ† cityscape at dusk +๐ŸŒ‡ sunset +๐ŸŒ‰ bridge at night +โ™จ๏ธ hot springs +๐ŸŽ  carousel horse +๐Ÿ› playground slide +๐ŸŽก ferris wheel +๐ŸŽข roller coaster +๐Ÿ’ˆ barber pole +๐ŸŽช circus tent +๐Ÿš‚ locomotive +๐Ÿšƒ railway car +๐Ÿš„ high-speed train +๐Ÿš… bullet train +๐Ÿš† train +๐Ÿš‡ metro +๐Ÿšˆ light rail +๐Ÿš‰ station +๐ŸšŠ tram +๐Ÿš monorail +๐Ÿšž mountain railway +๐Ÿš‹ tram car +๐ŸšŒ bus +๐Ÿš oncoming bus +๐ŸšŽ trolleybus +๐Ÿš minibus +๐Ÿš‘ ambulance +๐Ÿš’ fire engine +๐Ÿš“ police car +๐Ÿš” oncoming police car +๐Ÿš• taxi +๐Ÿš– oncoming taxi +๐Ÿš— automobile +๐Ÿš˜ oncoming automobile +๐Ÿš™ sport utility vehicle +๐Ÿ›ป pickup truck +๐Ÿšš delivery truck +๐Ÿš› articulated lorry +๐Ÿšœ tractor +๐ŸŽ๏ธ racing car +๐Ÿ๏ธ motorcycle +๐Ÿ›ต motor scooter +๐Ÿฆฝ manual wheelchair +๐Ÿฆผ motorized wheelchair +๐Ÿ›บ auto rickshaw +๐Ÿšฒ bicycle +๐Ÿ›ด kick scooter +๐Ÿ›น skateboard +๐Ÿ›ผ roller skate +๐Ÿš bus stop +๐Ÿ›ฃ๏ธ motorway +๐Ÿ›ค๏ธ railway track +๐Ÿ›ข๏ธ oil drum +โ›ฝ fuel pump +๐Ÿ›ž wheel +๐Ÿšจ police car light +๐Ÿšฅ horizontal traffic light +๐Ÿšฆ vertical traffic light +๐Ÿ›‘ stop sign +๐Ÿšง construction +โš“ anchor +๐Ÿ›Ÿ ring buoy +โ›ต sailboat +๐Ÿ›ถ canoe +๐Ÿšค speedboat +๐Ÿ›ณ๏ธ passenger ship +โ›ด๏ธ ferry +๐Ÿ›ฅ๏ธ motor boat +๐Ÿšข ship +โœˆ๏ธ airplane +๐Ÿ›ฉ๏ธ small airplane +๐Ÿ›ซ airplane departure +๐Ÿ›ฌ airplane arrival +๐Ÿช‚ parachute +๐Ÿ’บ seat +๐Ÿš helicopter +๐ŸšŸ suspension railway +๐Ÿš  mountain cableway +๐Ÿšก aerial tramway +๐Ÿ›ฐ๏ธ satellite +๐Ÿš€ rocket +๐Ÿ›ธ flying saucer +๐Ÿ›Ž๏ธ bellhop bell +๐Ÿงณ luggage +โŒ› hourglass done +โณ hourglass not done +โŒš watch +โฐ alarm clock +โฑ๏ธ stopwatch +โฒ๏ธ timer clock +๐Ÿ•ฐ๏ธ mantelpiece clock +๐Ÿ•› twelve oโ€™clock +๐Ÿ•ง twelve-thirty +๐Ÿ• one oโ€™clock +๐Ÿ•œ one-thirty +๐Ÿ•‘ two oโ€™clock +๐Ÿ• two-thirty +๐Ÿ•’ three oโ€™clock +๐Ÿ•ž three-thirty +๐Ÿ•“ four oโ€™clock +๐Ÿ•Ÿ four-thirty +๐Ÿ•” five oโ€™clock +๐Ÿ•  five-thirty +๐Ÿ•• six oโ€™clock +๐Ÿ•ก six-thirty +๐Ÿ•– seven oโ€™clock +๐Ÿ•ข seven-thirty +๐Ÿ•— eight oโ€™clock +๐Ÿ•ฃ eight-thirty +๐Ÿ•˜ nine oโ€™clock +๐Ÿ•ค nine-thirty +๐Ÿ•™ ten oโ€™clock +๐Ÿ•ฅ ten-thirty +๐Ÿ•š eleven oโ€™clock +๐Ÿ•ฆ eleven-thirty +๐ŸŒ‘ new moon +๐ŸŒ’ waxing crescent moon +๐ŸŒ“ first quarter moon +๐ŸŒ” waxing gibbous moon +๐ŸŒ• full moon +๐ŸŒ– waning gibbous moon +๐ŸŒ— last quarter moon +๐ŸŒ˜ waning crescent moon +๐ŸŒ™ crescent moon +๐ŸŒš new moon face +๐ŸŒ› first quarter moon face +๐ŸŒœ last quarter moon face +๐ŸŒก๏ธ thermometer +โ˜€๏ธ sun +๐ŸŒ full moon face +๐ŸŒž sun with face +๐Ÿช ringed planet +โญ star +๐ŸŒŸ glowing star +๐ŸŒ  shooting star +๐ŸŒŒ milky way +โ˜๏ธ cloud +โ›… sun behind cloud +โ›ˆ๏ธ cloud with lightning and rain +๐ŸŒค๏ธ sun behind small cloud +๐ŸŒฅ๏ธ sun behind large cloud +๐ŸŒฆ๏ธ sun behind rain cloud +๐ŸŒง๏ธ cloud with rain +๐ŸŒจ๏ธ cloud with snow +๐ŸŒฉ๏ธ cloud with lightning +๐ŸŒช๏ธ tornado +๐ŸŒซ๏ธ fog +๐ŸŒฌ๏ธ wind face +๐ŸŒ€ cyclone +๐ŸŒˆ rainbow +๐ŸŒ‚ closed umbrella +โ˜‚๏ธ umbrella +โ˜” umbrella with rain drops +โ›ฑ๏ธ umbrella on ground +โšก high voltage +โ„๏ธ snowflake +โ˜ƒ๏ธ snowman +โ›„ snowman without snow +โ˜„๏ธ comet +๐Ÿ”ฅ fire +๐Ÿ’ง droplet +๐ŸŒŠ water wave +๐ŸŽƒ jack-o-lantern +๐ŸŽ„ Christmas tree +๐ŸŽ† fireworks +๐ŸŽ‡ sparkler +๐Ÿงจ firecracker +โœจ sparkles +๐ŸŽˆ balloon +๐ŸŽ‰ party popper +๐ŸŽŠ confetti ball +๐ŸŽ‹ tanabata tree +๐ŸŽ pine decoration +๐ŸŽŽ Japanese dolls +๐ŸŽ carp streamer +๐ŸŽ wind chime +๐ŸŽ‘ moon viewing ceremony +๐Ÿงง red envelope +๐ŸŽ€ ribbon +๐ŸŽ wrapped gift +๐ŸŽ—๏ธ reminder ribbon +๐ŸŽŸ๏ธ admission tickets +๐ŸŽซ ticket +๐ŸŽ–๏ธ military medal +๐Ÿ† trophy +๐Ÿ… sports medal +๐Ÿฅ‡ 1st place medal +๐Ÿฅˆ 2nd place medal +๐Ÿฅ‰ 3rd place medal +โšฝ soccer ball +โšพ baseball +๐ŸฅŽ softball +๐Ÿ€ basketball +๐Ÿ volleyball +๐Ÿˆ american football +๐Ÿ‰ rugby football +๐ŸŽพ tennis +๐Ÿฅ flying disc +๐ŸŽณ bowling +๐Ÿ cricket game +๐Ÿ‘ field hockey +๐Ÿ’ ice hockey +๐Ÿฅ lacrosse +๐Ÿ“ ping pong +๐Ÿธ badminton +๐ŸฅŠ boxing glove +๐Ÿฅ‹ martial arts uniform +๐Ÿฅ… goal net +โ›ณ flag in hole +โ›ธ๏ธ ice skate +๐ŸŽฃ fishing pole +๐Ÿคฟ diving mask +๐ŸŽฝ running shirt +๐ŸŽฟ skis +๐Ÿ›ท sled +๐ŸฅŒ curling stone +๐ŸŽฏ bullseye +๐Ÿช€ yo-yo +๐Ÿช kite +๐ŸŽฑ pool 8 ball +๐Ÿ”ฎ crystal ball +๐Ÿช„ magic wand +๐Ÿงฟ nazar amulet +๐Ÿชฌ hamsa +๐ŸŽฎ video game +๐Ÿ•น๏ธ joystick +๐ŸŽฐ slot machine +๐ŸŽฒ game die +๐Ÿงฉ puzzle piece +๐Ÿงธ teddy bear +๐Ÿช… piรฑata +๐Ÿชฉ mirror ball +๐Ÿช† nesting dolls +โ™ ๏ธ spade suit +โ™ฅ๏ธ heart suit +โ™ฆ๏ธ diamond suit +โ™ฃ๏ธ club suit +โ™Ÿ๏ธ chess pawn +๐Ÿƒ joker +๐Ÿ€„ mahjong red dragon +๐ŸŽด flower playing cards +๐ŸŽญ performing arts +๐Ÿ–ผ๏ธ framed picture +๐ŸŽจ artist palette +๐Ÿงต thread +๐Ÿชก sewing needle +๐Ÿงถ yarn +๐Ÿชข knot +๐Ÿ‘“ glasses +๐Ÿ•ถ๏ธ sunglasses +๐Ÿฅฝ goggles +๐Ÿฅผ lab coat +๐Ÿฆบ safety vest +๐Ÿ‘” necktie +๐Ÿ‘• t-shirt +๐Ÿ‘– jeans +๐Ÿงฃ scarf +๐Ÿงค gloves +๐Ÿงฅ coat +๐Ÿงฆ socks +๐Ÿ‘— dress +๐Ÿ‘˜ kimono +๐Ÿฅป sari +๐Ÿฉฑ one-piece swimsuit +๐Ÿฉฒ briefs +๐Ÿฉณ shorts +๐Ÿ‘™ bikini +๐Ÿ‘š womanโ€™s clothes +๐Ÿ‘› purse +๐Ÿ‘œ handbag +๐Ÿ‘ clutch bag +๐Ÿ›๏ธ shopping bags +๐ŸŽ’ backpack +๐Ÿฉด thong sandal +๐Ÿ‘ž manโ€™s shoe +๐Ÿ‘Ÿ running shoe +๐Ÿฅพ hiking boot +๐Ÿฅฟ flat shoe +๐Ÿ‘  high-heeled shoe +๐Ÿ‘ก womanโ€™s sandal +๐Ÿฉฐ ballet shoes +๐Ÿ‘ข womanโ€™s boot +๐Ÿ‘‘ crown +๐Ÿ‘’ womanโ€™s hat +๐ŸŽฉ top hat +๐ŸŽ“ graduation cap +๐Ÿงข billed cap +๐Ÿช– military helmet +โ›‘๏ธ rescue workerโ€™s helmet +๐Ÿ“ฟ prayer beads +๐Ÿ’„ lipstick +๐Ÿ’ ring +๐Ÿ’Ž gem stone +๐Ÿ”‡ muted speaker +๐Ÿ”ˆ speaker low volume +๐Ÿ”‰ speaker medium volume +๐Ÿ”Š speaker high volume +๐Ÿ“ข loudspeaker +๐Ÿ“ฃ megaphone +๐Ÿ“ฏ postal horn +๐Ÿ”” bell +๐Ÿ”• bell with slash +๐ŸŽผ musical score +๐ŸŽต musical note +๐ŸŽถ musical notes +๐ŸŽ™๏ธ studio microphone +๐ŸŽš๏ธ level slider +๐ŸŽ›๏ธ control knobs +๐ŸŽค microphone +๐ŸŽง headphone +๐Ÿ“ป radio +๐ŸŽท saxophone +๐Ÿช— accordion +๐ŸŽธ guitar +๐ŸŽน musical keyboard +๐ŸŽบ trumpet +๐ŸŽป violin +๐Ÿช• banjo +๐Ÿฅ drum +๐Ÿช˜ long drum +๐Ÿ“ฑ mobile phone +๐Ÿ“ฒ mobile phone with arrow +โ˜Ž๏ธ telephone +๐Ÿ“ž telephone receiver +๐Ÿ“Ÿ pager +๐Ÿ“  fax machine +๐Ÿ”‹ battery +๐Ÿชซ low battery +๐Ÿ”Œ electric plug +๐Ÿ’ป laptop +๐Ÿ–ฅ๏ธ desktop computer +๐Ÿ–จ๏ธ printer +โŒจ๏ธ keyboard +๐Ÿ–ฑ๏ธ computer mouse +๐Ÿ–ฒ๏ธ trackball +๐Ÿ’ฝ computer disk +๐Ÿ’พ floppy disk +๐Ÿ’ฟ optical disk +๐Ÿ“€ dvd +๐Ÿงฎ abacus +๐ŸŽฅ movie camera +๐ŸŽž๏ธ film frames +๐Ÿ“ฝ๏ธ film projector +๐ŸŽฌ clapper board +๐Ÿ“บ television +๐Ÿ“ท camera +๐Ÿ“ธ camera with flash +๐Ÿ“น video camera +๐Ÿ“ผ videocassette +๐Ÿ” magnifying glass tilted left +๐Ÿ”Ž magnifying glass tilted right +๐Ÿ•ฏ๏ธ candle +๐Ÿ’ก light bulb +๐Ÿ”ฆ flashlight +๐Ÿฎ red paper lantern +๐Ÿช” diya lamp +๐Ÿ“” notebook with decorative cover +๐Ÿ“• closed book +๐Ÿ“– open book +๐Ÿ“— green book +๐Ÿ“˜ blue book +๐Ÿ“™ orange book +๐Ÿ“š books +๐Ÿ““ notebook +๐Ÿ“’ ledger +๐Ÿ“ƒ page with curl +๐Ÿ“œ scroll +๐Ÿ“„ page facing up +๐Ÿ“ฐ newspaper +๐Ÿ—ž๏ธ rolled-up newspaper +๐Ÿ“‘ bookmark tabs +๐Ÿ”– bookmark +๐Ÿท๏ธ label +๐Ÿ’ฐ money bag +๐Ÿช™ coin +๐Ÿ’ด yen banknote +๐Ÿ’ต dollar banknote +๐Ÿ’ถ euro banknote +๐Ÿ’ท pound banknote +๐Ÿ’ธ money with wings +๐Ÿ’ณ credit card +๐Ÿงพ receipt +๐Ÿ’น chart increasing with yen +โœ‰๏ธ envelope +๐Ÿ“ง e-mail +๐Ÿ“จ incoming envelope +๐Ÿ“ฉ envelope with arrow +๐Ÿ“ค outbox tray +๐Ÿ“ฅ inbox tray +๐Ÿ“ฆ package +๐Ÿ“ซ closed mailbox with raised flag +๐Ÿ“ช closed mailbox with lowered flag +๐Ÿ“ฌ open mailbox with raised flag +๐Ÿ“ญ open mailbox with lowered flag +๐Ÿ“ฎ postbox +๐Ÿ—ณ๏ธ ballot box with ballot +โœ๏ธ pencil +โœ’๏ธ black nib +๐Ÿ–‹๏ธ fountain pen +๐Ÿ–Š๏ธ pen +๐Ÿ–Œ๏ธ paintbrush +๐Ÿ–๏ธ crayon +๐Ÿ“ memo +๐Ÿ’ผ briefcase +๐Ÿ“ file folder +๐Ÿ“‚ open file folder +๐Ÿ—‚๏ธ card index dividers +๐Ÿ“… calendar +๐Ÿ“† tear-off calendar +๐Ÿ—’๏ธ spiral notepad +๐Ÿ—“๏ธ spiral calendar +๐Ÿ“‡ card index +๐Ÿ“ˆ chart increasing +๐Ÿ“‰ chart decreasing +๐Ÿ“Š bar chart +๐Ÿ“‹ clipboard +๐Ÿ“Œ pushpin +๐Ÿ“ round pushpin +๐Ÿ“Ž paperclip +๐Ÿ–‡๏ธ linked paperclips +๐Ÿ“ straight ruler +๐Ÿ“ triangular ruler +โœ‚๏ธ scissors +๐Ÿ—ƒ๏ธ card file box +๐Ÿ—„๏ธ file cabinet +๐Ÿ—‘๏ธ wastebasket +๐Ÿ”’ locked +๐Ÿ”“ unlocked +๐Ÿ” locked with pen +๐Ÿ” locked with key +๐Ÿ”‘ key +๐Ÿ—๏ธ old key +๐Ÿ”จ hammer +๐Ÿช“ axe +โ›๏ธ pick +โš’๏ธ hammer and pick +๐Ÿ› ๏ธ hammer and wrench +๐Ÿ—ก๏ธ dagger +โš”๏ธ crossed swords +๐Ÿ”ซ water pistol +๐Ÿชƒ boomerang +๐Ÿน bow and arrow +๐Ÿ›ก๏ธ shield +๐Ÿชš carpentry saw +๐Ÿ”ง wrench +๐Ÿช› screwdriver +๐Ÿ”ฉ nut and bolt +โš™๏ธ gear +๐Ÿ—œ๏ธ clamp +โš–๏ธ balance scale +๐Ÿฆฏ white cane +๐Ÿ”— link +โ›“๏ธ chains +๐Ÿช hook +๐Ÿงฐ toolbox +๐Ÿงฒ magnet +๐Ÿชœ ladder +โš—๏ธ alembic +๐Ÿงช test tube +๐Ÿงซ petri dish +๐Ÿงฌ dna +๐Ÿ”ฌ microscope +๐Ÿ”ญ telescope +๐Ÿ“ก satellite antenna +๐Ÿ’‰ syringe +๐Ÿฉธ drop of blood +๐Ÿ’Š pill +๐Ÿฉน adhesive bandage +๐Ÿฉผ crutch +๐Ÿฉบ stethoscope +๐Ÿฉป x-ray +๐Ÿšช door +๐Ÿ›— elevator +๐Ÿชž mirror +๐ŸชŸ window +๐Ÿ›๏ธ bed +๐Ÿ›‹๏ธ couch and lamp +๐Ÿช‘ chair +๐Ÿšฝ toilet +๐Ÿช  plunger +๐Ÿšฟ shower +๐Ÿ› bathtub +๐Ÿชค mouse trap +๐Ÿช’ razor +๐Ÿงด lotion bottle +๐Ÿงท safety pin +๐Ÿงน broom +๐Ÿงบ basket +๐Ÿงป roll of paper +๐Ÿชฃ bucket +๐Ÿงผ soap +๐Ÿซง bubbles +๐Ÿชฅ toothbrush +๐Ÿงฝ sponge +๐Ÿงฏ fire extinguisher +๐Ÿ›’ shopping cart +๐Ÿšฌ cigarette +โšฐ๏ธ coffin +๐Ÿชฆ headstone +โšฑ๏ธ funeral urn +๐Ÿ—ฟ moai +๐Ÿชง placard +๐Ÿชช identification card +๐Ÿง ATM sign +๐Ÿšฎ litter in bin sign +๐Ÿšฐ potable water +โ™ฟ wheelchair symbol +๐Ÿšน menโ€™s room +๐Ÿšบ womenโ€™s room +๐Ÿšป restroom +๐Ÿšผ baby symbol +๐Ÿšพ water closet +๐Ÿ›‚ passport control +๐Ÿ›ƒ customs +๐Ÿ›„ baggage claim +๐Ÿ›… left luggage +โš ๏ธ warning +๐Ÿšธ children crossing +โ›” no entry +๐Ÿšซ prohibited +๐Ÿšณ no bicycles +๐Ÿšญ no smoking +๐Ÿšฏ no littering +๐Ÿšฑ non-potable water +๐Ÿšท no pedestrians +๐Ÿ“ต no mobile phones +๐Ÿ”ž no one under eighteen +โ˜ข๏ธ radioactive +โ˜ฃ๏ธ biohazard +โฌ†๏ธ up arrow +โ†—๏ธ up-right arrow +โžก๏ธ right arrow +โ†˜๏ธ down-right arrow +โฌ‡๏ธ down arrow +โ†™๏ธ down-left arrow +โฌ…๏ธ left arrow +โ†–๏ธ up-left arrow +โ†•๏ธ up-down arrow +โ†”๏ธ left-right arrow +โ†ฉ๏ธ right arrow curving left +โ†ช๏ธ left arrow curving right +โคด๏ธ right arrow curving up +โคต๏ธ right arrow curving down +๐Ÿ”ƒ clockwise vertical arrows +๐Ÿ”„ counterclockwise arrows button +๐Ÿ”™ BACK arrow +๐Ÿ”š END arrow +๐Ÿ”› ON! arrow +๐Ÿ”œ SOON arrow +๐Ÿ” TOP arrow +๐Ÿ› place of worship +โš›๏ธ atom symbol +๐Ÿ•‰๏ธ om +โœก๏ธ star of David +โ˜ธ๏ธ wheel of dharma +โ˜ฏ๏ธ yin yang +โœ๏ธ latin cross +โ˜ฆ๏ธ orthodox cross +โ˜ช๏ธ star and crescent +โ˜ฎ๏ธ peace symbol +๐Ÿ•Ž menorah +๐Ÿ”ฏ dotted six-pointed star +โ™ˆ Aries +โ™‰ Taurus +โ™Š Gemini +โ™‹ Cancer +โ™Œ Leo +โ™ Virgo +โ™Ž Libra +โ™ Scorpio +โ™ Sagittarius +โ™‘ Capricorn +โ™’ Aquarius +โ™“ Pisces +โ›Ž Ophiuchus +๐Ÿ”€ shuffle tracks button +๐Ÿ” repeat button +๐Ÿ”‚ repeat single button +โ–ถ๏ธ play button +โฉ fast-forward button +โญ๏ธ next track button +โฏ๏ธ play or pause button +โ—€๏ธ reverse button +โช fast reverse button +โฎ๏ธ last track button +๐Ÿ”ผ upwards button +โซ fast up button +๐Ÿ”ฝ downwards button +โฌ fast down button +โธ๏ธ pause button +โน๏ธ stop button +โบ๏ธ record button +โ๏ธ eject button +๐ŸŽฆ cinema +๐Ÿ”… dim button +๐Ÿ”† bright button +๐Ÿ“ถ antenna bars +๐Ÿ“ณ vibration mode +๐Ÿ“ด mobile phone off +โ™€๏ธ female sign +โ™‚๏ธ male sign +โšง๏ธ transgender symbol +โœ–๏ธ multiply +โž• plus +โž– minus +โž— divide +๐ŸŸฐ heavy equals sign +โ™พ๏ธ infinity +โ€ผ๏ธ double exclamation mark +โ‰๏ธ exclamation question mark +โ“ red question mark +โ” white question mark +โ• white exclamation mark +โ— red exclamation mark +ใ€ฐ๏ธ wavy dash +๐Ÿ’ฑ currency exchange +๐Ÿ’ฒ heavy dollar sign +โš•๏ธ medical symbol +โ™ป๏ธ recycling symbol +โšœ๏ธ fleur-de-lis +๐Ÿ”ฑ trident emblem +๐Ÿ“› name badge +๐Ÿ”ฐ Japanese symbol for beginner +โญ• hollow red circle +โœ… check mark button +โ˜‘๏ธ check box with check +โœ”๏ธ check mark +โŒ cross mark +โŽ cross mark button +โžฐ curly loop +โžฟ double curly loop +ใ€ฝ๏ธ part alternation mark +โœณ๏ธ eight-spoked asterisk +โœด๏ธ eight-pointed star +โ‡๏ธ sparkle +ยฉ๏ธ copyright +ยฎ๏ธ registered +โ„ข๏ธ trade mark +#๏ธโƒฃ keycap: # +*๏ธโƒฃ keycap: * +0๏ธโƒฃ keycap: 0 +1๏ธโƒฃ keycap: 1 +2๏ธโƒฃ keycap: 2 +3๏ธโƒฃ keycap: 3 +4๏ธโƒฃ keycap: 4 +5๏ธโƒฃ keycap: 5 +6๏ธโƒฃ keycap: 6 +7๏ธโƒฃ keycap: 7 +8๏ธโƒฃ keycap: 8 +9๏ธโƒฃ keycap: 9 +๐Ÿ”Ÿ keycap: 10 +๐Ÿ”  input latin uppercase +๐Ÿ”ก input latin lowercase +๐Ÿ”ข input numbers +๐Ÿ”ฃ input symbols +๐Ÿ”ค input latin letters +๐Ÿ…ฐ๏ธ A button (blood type) +๐Ÿ†Ž AB button (blood type) +๐Ÿ…ฑ๏ธ B button (blood type) +๐Ÿ†‘ CL button +๐Ÿ†’ COOL button +๐Ÿ†“ FREE button +โ„น๏ธ information +๐Ÿ†” ID button +โ“‚๏ธ circled M +๐Ÿ†• NEW button +๐Ÿ†– NG button +๐Ÿ…พ๏ธ O button (blood type) +๐Ÿ†— OK button +๐Ÿ…ฟ๏ธ P button +๐Ÿ†˜ SOS button +๐Ÿ†™ UP! button +๐Ÿ†š VS button +๐Ÿˆ Japanese โ€œhereโ€ button +๐Ÿˆ‚๏ธ Japanese โ€œservice chargeโ€ button +๐Ÿˆท๏ธ Japanese โ€œmonthly amountโ€ button +๐Ÿˆถ Japanese โ€œnot free of chargeโ€ button +๐Ÿˆฏ Japanese โ€œreservedโ€ button +๐Ÿ‰ Japanese โ€œbargainโ€ button +๐Ÿˆน Japanese โ€œdiscountโ€ button +๐Ÿˆš Japanese โ€œfree of chargeโ€ button +๐Ÿˆฒ Japanese โ€œprohibitedโ€ button +๐Ÿ‰‘ Japanese โ€œacceptableโ€ button +๐Ÿˆธ Japanese โ€œapplicationโ€ button +๐Ÿˆด Japanese โ€œpassing gradeโ€ button +๐Ÿˆณ Japanese โ€œvacancyโ€ button +ใŠ—๏ธ Japanese โ€œcongratulationsโ€ button +ใŠ™๏ธ Japanese โ€œsecretโ€ button +๐Ÿˆบ Japanese โ€œopen for businessโ€ button +๐Ÿˆต Japanese โ€œno vacancyโ€ button +๐Ÿ”ด red circle +๐ŸŸ  orange circle +๐ŸŸก yellow circle +๐ŸŸข green circle +๐Ÿ”ต blue circle +๐ŸŸฃ purple circle +๐ŸŸค brown circle +โšซ black circle +โšช white circle +๐ŸŸฅ red square +๐ŸŸง orange square +๐ŸŸจ yellow square +๐ŸŸฉ green square +๐ŸŸฆ blue square +๐ŸŸช purple square +๐ŸŸซ brown square +โฌ› black large square +โฌœ white large square +โ—ผ๏ธ black medium square +โ—ป๏ธ white medium square +โ—พ black medium-small square +โ—ฝ white medium-small square +โ–ช๏ธ black small square +โ–ซ๏ธ white small square +๐Ÿ”ถ large orange diamond +๐Ÿ”ท large blue diamond +๐Ÿ”ธ small orange diamond +๐Ÿ”น small blue diamond +๐Ÿ”บ red triangle pointed up +๐Ÿ”ป red triangle pointed down +๐Ÿ’  diamond with a dot +๐Ÿ”˜ radio button +๐Ÿ”ณ white square button +๐Ÿ”ฒ black square button +๐Ÿ chequered flag +๐Ÿšฉ triangular flag +๐ŸŽŒ crossed flags +๐Ÿด black flag +๐Ÿณ๏ธ white flag +๐Ÿ‡ฆ๐Ÿ‡จ flag: Ascension Island +๐Ÿ‡ฆ๐Ÿ‡ฉ flag: Andorra +๐Ÿ‡ฆ๐Ÿ‡ช flag: United Arab Emirates +๐Ÿ‡ฆ๐Ÿ‡ซ flag: Afghanistan +๐Ÿ‡ฆ๐Ÿ‡ฌ flag: Antigua & Barbuda +๐Ÿ‡ฆ๐Ÿ‡ฎ flag: Anguilla +๐Ÿ‡ฆ๐Ÿ‡ฑ flag: Albania +๐Ÿ‡ฆ๐Ÿ‡ฒ flag: Armenia +๐Ÿ‡ฆ๐Ÿ‡ด flag: Angola +๐Ÿ‡ฆ๐Ÿ‡ถ flag: Antarctica +๐Ÿ‡ฆ๐Ÿ‡ท flag: Argentina +๐Ÿ‡ฆ๐Ÿ‡ธ flag: American Samoa +๐Ÿ‡ฆ๐Ÿ‡น flag: Austria +๐Ÿ‡ฆ๐Ÿ‡บ flag: Australia +๐Ÿ‡ฆ๐Ÿ‡ผ flag: Aruba +๐Ÿ‡ฆ๐Ÿ‡ฝ flag: ร…land Islands +๐Ÿ‡ฆ๐Ÿ‡ฟ flag: Azerbaijan +๐Ÿ‡ง๐Ÿ‡ฆ flag: Bosnia & Herzegovina +๐Ÿ‡ง๐Ÿ‡ง flag: Barbados +๐Ÿ‡ง๐Ÿ‡ฉ flag: Bangladesh +๐Ÿ‡ง๐Ÿ‡ช flag: Belgium +๐Ÿ‡ง๐Ÿ‡ซ flag: Burkina Faso +๐Ÿ‡ง๐Ÿ‡ฌ flag: Bulgaria +๐Ÿ‡ง๐Ÿ‡ญ flag: Bahrain +๐Ÿ‡ง๐Ÿ‡ฎ flag: Burundi +๐Ÿ‡ง๐Ÿ‡ฏ flag: Benin +๐Ÿ‡ง๐Ÿ‡ฑ flag: St. Barthรฉlemy +๐Ÿ‡ง๐Ÿ‡ฒ flag: Bermuda +๐Ÿ‡ง๐Ÿ‡ณ flag: Brunei +๐Ÿ‡ง๐Ÿ‡ด flag: Bolivia +๐Ÿ‡ง๐Ÿ‡ถ flag: Caribbean Netherlands +๐Ÿ‡ง๐Ÿ‡ท flag: Brazil +๐Ÿ‡ง๐Ÿ‡ธ flag: Bahamas +๐Ÿ‡ง๐Ÿ‡น flag: Bhutan +๐Ÿ‡ง๐Ÿ‡ป flag: Bouvet Island +๐Ÿ‡ง๐Ÿ‡ผ flag: Botswana +๐Ÿ‡ง๐Ÿ‡พ flag: Belarus +๐Ÿ‡ง๐Ÿ‡ฟ flag: Belize +๐Ÿ‡จ๐Ÿ‡ฆ flag: Canada +๐Ÿ‡จ๐Ÿ‡จ flag: Cocos (Keeling) Islands +๐Ÿ‡จ๐Ÿ‡ฉ flag: Congo - Kinshasa +๐Ÿ‡จ๐Ÿ‡ซ flag: Central African Republic +๐Ÿ‡จ๐Ÿ‡ฌ flag: Congo - Brazzaville +๐Ÿ‡จ๐Ÿ‡ญ flag: Switzerland +๐Ÿ‡จ๐Ÿ‡ฎ flag: Cรดte dโ€™Ivoire +๐Ÿ‡จ๐Ÿ‡ฐ flag: Cook Islands +๐Ÿ‡จ๐Ÿ‡ฑ flag: Chile +๐Ÿ‡จ๐Ÿ‡ฒ flag: Cameroon +๐Ÿ‡จ๐Ÿ‡ณ flag: China +๐Ÿ‡จ๐Ÿ‡ด flag: Colombia +๐Ÿ‡จ๐Ÿ‡ต flag: Clipperton Island +๐Ÿ‡จ๐Ÿ‡ท flag: Costa Rica +๐Ÿ‡จ๐Ÿ‡บ flag: Cuba +๐Ÿ‡จ๐Ÿ‡ป flag: Cape Verde +๐Ÿ‡จ๐Ÿ‡ผ flag: Curaรงao +๐Ÿ‡จ๐Ÿ‡ฝ flag: Christmas Island +๐Ÿ‡จ๐Ÿ‡พ flag: Cyprus +๐Ÿ‡จ๐Ÿ‡ฟ flag: Czechia +๐Ÿ‡ฉ๐Ÿ‡ช flag: Germany +๐Ÿ‡ฉ๐Ÿ‡ฌ flag: Diego Garcia +๐Ÿ‡ฉ๐Ÿ‡ฏ flag: Djibouti +๐Ÿ‡ฉ๐Ÿ‡ฐ flag: Denmark +๐Ÿ‡ฉ๐Ÿ‡ฒ flag: Dominica +๐Ÿ‡ฉ๐Ÿ‡ด flag: Dominican Republic +๐Ÿ‡ฉ๐Ÿ‡ฟ flag: Algeria +๐Ÿ‡ช๐Ÿ‡ฆ flag: Ceuta & Melilla +๐Ÿ‡ช๐Ÿ‡จ flag: Ecuador +๐Ÿ‡ช๐Ÿ‡ช flag: Estonia +๐Ÿ‡ช๐Ÿ‡ฌ flag: Egypt +๐Ÿ‡ช๐Ÿ‡ญ flag: Western Sahara +๐Ÿ‡ช๐Ÿ‡ท flag: Eritrea +๐Ÿ‡ช๐Ÿ‡ธ flag: Spain +๐Ÿ‡ช๐Ÿ‡น flag: Ethiopia +๐Ÿ‡ช๐Ÿ‡บ flag: European Union +๐Ÿ‡ซ๐Ÿ‡ฎ flag: Finland +๐Ÿ‡ซ๐Ÿ‡ฏ flag: Fiji +๐Ÿ‡ซ๐Ÿ‡ฐ flag: Falkland Islands +๐Ÿ‡ซ๐Ÿ‡ฒ flag: Micronesia +๐Ÿ‡ซ๐Ÿ‡ด flag: Faroe Islands +๐Ÿ‡ซ๐Ÿ‡ท flag: France +๐Ÿ‡ฌ๐Ÿ‡ฆ flag: Gabon +๐Ÿ‡ฌ๐Ÿ‡ง flag: United Kingdom +๐Ÿ‡ฌ๐Ÿ‡ฉ flag: Grenada +๐Ÿ‡ฌ๐Ÿ‡ช flag: Georgia +๐Ÿ‡ฌ๐Ÿ‡ซ flag: French Guiana +๐Ÿ‡ฌ๐Ÿ‡ฌ flag: Guernsey +๐Ÿ‡ฌ๐Ÿ‡ญ flag: Ghana +๐Ÿ‡ฌ๐Ÿ‡ฎ flag: Gibraltar +๐Ÿ‡ฌ๐Ÿ‡ฑ flag: Greenland +๐Ÿ‡ฌ๐Ÿ‡ฒ flag: Gambia +๐Ÿ‡ฌ๐Ÿ‡ณ flag: Guinea +๐Ÿ‡ฌ๐Ÿ‡ต flag: Guadeloupe +๐Ÿ‡ฌ๐Ÿ‡ถ flag: Equatorial Guinea +๐Ÿ‡ฌ๐Ÿ‡ท flag: Greece +๐Ÿ‡ฌ๐Ÿ‡ธ flag: South Georgia & South Sandwich Islands +๐Ÿ‡ฌ๐Ÿ‡น flag: Guatemala +๐Ÿ‡ฌ๐Ÿ‡บ flag: Guam +๐Ÿ‡ฌ๐Ÿ‡ผ flag: Guinea-Bissau +๐Ÿ‡ฌ๐Ÿ‡พ flag: Guyana +๐Ÿ‡ญ๐Ÿ‡ฐ flag: Hong Kong SAR China +๐Ÿ‡ญ๐Ÿ‡ฒ flag: Heard & McDonald Islands +๐Ÿ‡ญ๐Ÿ‡ณ flag: Honduras +๐Ÿ‡ญ๐Ÿ‡ท flag: Croatia +๐Ÿ‡ญ๐Ÿ‡น flag: Haiti +๐Ÿ‡ญ๐Ÿ‡บ flag: Hungary +๐Ÿ‡ฎ๐Ÿ‡จ flag: Canary Islands +๐Ÿ‡ฎ๐Ÿ‡ฉ flag: Indonesia +๐Ÿ‡ฎ๐Ÿ‡ช flag: Ireland +๐Ÿ‡ฎ๐Ÿ‡ฑ flag: Israel +๐Ÿ‡ฎ๐Ÿ‡ฒ flag: Isle of Man +๐Ÿ‡ฎ๐Ÿ‡ณ flag: India +๐Ÿ‡ฎ๐Ÿ‡ด flag: British Indian Ocean Territory +๐Ÿ‡ฎ๐Ÿ‡ถ flag: Iraq +๐Ÿ‡ฎ๐Ÿ‡ท flag: Iran +๐Ÿ‡ฎ๐Ÿ‡ธ flag: Iceland +๐Ÿ‡ฎ๐Ÿ‡น flag: Italy +๐Ÿ‡ฏ๐Ÿ‡ช flag: Jersey +๐Ÿ‡ฏ๐Ÿ‡ฒ flag: Jamaica +๐Ÿ‡ฏ๐Ÿ‡ด flag: Jordan +๐Ÿ‡ฏ๐Ÿ‡ต flag: Japan +๐Ÿ‡ฐ๐Ÿ‡ช flag: Kenya +๐Ÿ‡ฐ๐Ÿ‡ฌ flag: Kyrgyzstan +๐Ÿ‡ฐ๐Ÿ‡ญ flag: Cambodia +๐Ÿ‡ฐ๐Ÿ‡ฎ flag: Kiribati +๐Ÿ‡ฐ๐Ÿ‡ฒ flag: Comoros +๐Ÿ‡ฐ๐Ÿ‡ณ flag: St. Kitts & Nevis +๐Ÿ‡ฐ๐Ÿ‡ต flag: North Korea +๐Ÿ‡ฐ๐Ÿ‡ท flag: South Korea +๐Ÿ‡ฐ๐Ÿ‡ผ flag: Kuwait +๐Ÿ‡ฐ๐Ÿ‡พ flag: Cayman Islands +๐Ÿ‡ฐ๐Ÿ‡ฟ flag: Kazakhstan +๐Ÿ‡ฑ๐Ÿ‡ฆ flag: Laos +๐Ÿ‡ฑ๐Ÿ‡ง flag: Lebanon +๐Ÿ‡ฑ๐Ÿ‡จ flag: St. Lucia +๐Ÿ‡ฑ๐Ÿ‡ฎ flag: Liechtenstein +๐Ÿ‡ฑ๐Ÿ‡ฐ flag: Sri Lanka +๐Ÿ‡ฑ๐Ÿ‡ท flag: Liberia +๐Ÿ‡ฑ๐Ÿ‡ธ flag: Lesotho +๐Ÿ‡ฑ๐Ÿ‡น flag: Lithuania +๐Ÿ‡ฑ๐Ÿ‡บ flag: Luxembourg +๐Ÿ‡ฑ๐Ÿ‡ป flag: Latvia +๐Ÿ‡ฑ๐Ÿ‡พ flag: Libya +๐Ÿ‡ฒ๐Ÿ‡ฆ flag: Morocco +๐Ÿ‡ฒ๐Ÿ‡จ flag: Monaco +๐Ÿ‡ฒ๐Ÿ‡ฉ flag: Moldova +๐Ÿ‡ฒ๐Ÿ‡ช flag: Montenegro +๐Ÿ‡ฒ๐Ÿ‡ซ flag: St. Martin +๐Ÿ‡ฒ๐Ÿ‡ฌ flag: Madagascar +๐Ÿ‡ฒ๐Ÿ‡ญ flag: Marshall Islands +๐Ÿ‡ฒ๐Ÿ‡ฐ flag: North Macedonia +๐Ÿ‡ฒ๐Ÿ‡ฑ flag: Mali +๐Ÿ‡ฒ๐Ÿ‡ฒ flag: Myanmar (Burma) +๐Ÿ‡ฒ๐Ÿ‡ณ flag: Mongolia +๐Ÿ‡ฒ๐Ÿ‡ด flag: Macao SAR China +๐Ÿ‡ฒ๐Ÿ‡ต flag: Northern Mariana Islands +๐Ÿ‡ฒ๐Ÿ‡ถ flag: Martinique +๐Ÿ‡ฒ๐Ÿ‡ท flag: Mauritania +๐Ÿ‡ฒ๐Ÿ‡ธ flag: Montserrat +๐Ÿ‡ฒ๐Ÿ‡น flag: Malta +๐Ÿ‡ฒ๐Ÿ‡บ flag: Mauritius +๐Ÿ‡ฒ๐Ÿ‡ป flag: Maldives +๐Ÿ‡ฒ๐Ÿ‡ผ flag: Malawi +๐Ÿ‡ฒ๐Ÿ‡ฝ flag: Mexico +๐Ÿ‡ฒ๐Ÿ‡พ flag: Malaysia +๐Ÿ‡ฒ๐Ÿ‡ฟ flag: Mozambique +๐Ÿ‡ณ๐Ÿ‡ฆ flag: Namibia +๐Ÿ‡ณ๐Ÿ‡จ flag: New Caledonia +๐Ÿ‡ณ๐Ÿ‡ช flag: Niger +๐Ÿ‡ณ๐Ÿ‡ซ flag: Norfolk Island +๐Ÿ‡ณ๐Ÿ‡ฌ flag: Nigeria +๐Ÿ‡ณ๐Ÿ‡ฎ flag: Nicaragua +๐Ÿ‡ณ๐Ÿ‡ฑ flag: Netherlands +๐Ÿ‡ณ๐Ÿ‡ด flag: Norway +๐Ÿ‡ณ๐Ÿ‡ต flag: Nepal +๐Ÿ‡ณ๐Ÿ‡ท flag: Nauru +๐Ÿ‡ณ๐Ÿ‡บ flag: Niue +๐Ÿ‡ณ๐Ÿ‡ฟ flag: New Zealand +๐Ÿ‡ด๐Ÿ‡ฒ flag: Oman +๐Ÿ‡ต๐Ÿ‡ฆ flag: Panama +๐Ÿ‡ต๐Ÿ‡ช flag: Peru +๐Ÿ‡ต๐Ÿ‡ซ flag: French Polynesia +๐Ÿ‡ต๐Ÿ‡ฌ flag: Papua New Guinea +๐Ÿ‡ต๐Ÿ‡ญ flag: Philippines +๐Ÿ‡ต๐Ÿ‡ฐ flag: Pakistan +๐Ÿ‡ต๐Ÿ‡ฑ flag: Poland +๐Ÿ‡ต๐Ÿ‡ฒ flag: St. Pierre & Miquelon +๐Ÿ‡ต๐Ÿ‡ณ flag: Pitcairn Islands +๐Ÿ‡ต๐Ÿ‡ท flag: Puerto Rico +๐Ÿ‡ต๐Ÿ‡ธ flag: Palestinian Territories +๐Ÿ‡ต๐Ÿ‡น flag: Portugal +๐Ÿ‡ต๐Ÿ‡ผ flag: Palau +๐Ÿ‡ต๐Ÿ‡พ flag: Paraguay +๐Ÿ‡ถ๐Ÿ‡ฆ flag: Qatar +๐Ÿ‡ท๐Ÿ‡ช flag: Rรฉunion +๐Ÿ‡ท๐Ÿ‡ด flag: Romania +๐Ÿ‡ท๐Ÿ‡ธ flag: Serbia +๐Ÿ‡ท๐Ÿ‡บ flag: Russia +๐Ÿ‡ท๐Ÿ‡ผ flag: Rwanda +๐Ÿ‡ธ๐Ÿ‡ฆ flag: Saudi Arabia +๐Ÿ‡ธ๐Ÿ‡ง flag: Solomon Islands +๐Ÿ‡ธ๐Ÿ‡จ flag: Seychelles +๐Ÿ‡ธ๐Ÿ‡ฉ flag: Sudan +๐Ÿ‡ธ๐Ÿ‡ช flag: Sweden +๐Ÿ‡ธ๐Ÿ‡ฌ flag: Singapore +๐Ÿ‡ธ๐Ÿ‡ญ flag: St. Helena +๐Ÿ‡ธ๐Ÿ‡ฎ flag: Slovenia +๐Ÿ‡ธ๐Ÿ‡ฏ flag: Svalbard & Jan Mayen +๐Ÿ‡ธ๐Ÿ‡ฐ flag: Slovakia +๐Ÿ‡ธ๐Ÿ‡ฑ flag: Sierra Leone +๐Ÿ‡ธ๐Ÿ‡ฒ flag: San Marino +๐Ÿ‡ธ๐Ÿ‡ณ flag: Senegal +๐Ÿ‡ธ๐Ÿ‡ด flag: Somalia +๐Ÿ‡ธ๐Ÿ‡ท flag: Suriname +๐Ÿ‡ธ๐Ÿ‡ธ flag: South Sudan +๐Ÿ‡ธ๐Ÿ‡น flag: Sรฃo Tomรฉ & Prรญncipe +๐Ÿ‡ธ๐Ÿ‡ป flag: El Salvador +๐Ÿ‡ธ๐Ÿ‡ฝ flag: Sint Maarten +๐Ÿ‡ธ๐Ÿ‡พ flag: Syria +๐Ÿ‡ธ๐Ÿ‡ฟ flag: Eswatini +๐Ÿ‡น๐Ÿ‡ฆ flag: Tristan da Cunha +๐Ÿ‡น๐Ÿ‡จ flag: Turks & Caicos Islands +๐Ÿ‡น๐Ÿ‡ฉ flag: Chad +๐Ÿ‡น๐Ÿ‡ซ flag: French Southern Territories +๐Ÿ‡น๐Ÿ‡ฌ flag: Togo +๐Ÿ‡น๐Ÿ‡ญ flag: Thailand +๐Ÿ‡น๐Ÿ‡ฏ flag: Tajikistan +๐Ÿ‡น๐Ÿ‡ฐ flag: Tokelau +๐Ÿ‡น๐Ÿ‡ฑ flag: Timor-Leste +๐Ÿ‡น๐Ÿ‡ฒ flag: Turkmenistan +๐Ÿ‡น๐Ÿ‡ณ flag: Tunisia +๐Ÿ‡น๐Ÿ‡ด flag: Tonga +๐Ÿ‡น๐Ÿ‡ท flag: Turkey +๐Ÿ‡น๐Ÿ‡น flag: Trinidad & Tobago +๐Ÿ‡น๐Ÿ‡ป flag: Tuvalu +๐Ÿ‡น๐Ÿ‡ผ flag: Taiwan +๐Ÿ‡น๐Ÿ‡ฟ flag: Tanzania +๐Ÿ‡บ๐Ÿ‡ฆ flag: Ukraine +๐Ÿ‡บ๐Ÿ‡ฌ flag: Uganda +๐Ÿ‡บ๐Ÿ‡ฒ flag: U.S. Outlying Islands +๐Ÿ‡บ๐Ÿ‡ณ flag: United Nations +๐Ÿ‡บ๐Ÿ‡ธ flag: United States +๐Ÿ‡บ๐Ÿ‡พ flag: Uruguay +๐Ÿ‡บ๐Ÿ‡ฟ flag: Uzbekistan +๐Ÿ‡ป๐Ÿ‡ฆ flag: Vatican City +๐Ÿ‡ป๐Ÿ‡จ flag: St. Vincent & Grenadines +๐Ÿ‡ป๐Ÿ‡ช flag: Venezuela +๐Ÿ‡ป๐Ÿ‡ฌ flag: British Virgin Islands +๐Ÿ‡ป๐Ÿ‡ฎ flag: U.S. Virgin Islands +๐Ÿ‡ป๐Ÿ‡ณ flag: Vietnam +๐Ÿ‡ป๐Ÿ‡บ flag: Vanuatu +๐Ÿ‡ผ๐Ÿ‡ซ flag: Wallis & Futuna +๐Ÿ‡ผ๐Ÿ‡ธ flag: Samoa +๐Ÿ‡ฝ๐Ÿ‡ฐ flag: Kosovo +๐Ÿ‡พ๐Ÿ‡ช flag: Yemen +๐Ÿ‡พ๐Ÿ‡น flag: Mayotte +๐Ÿ‡ฟ๐Ÿ‡ฆ flag: South Africa +๐Ÿ‡ฟ๐Ÿ‡ฒ flag: Zambia +๐Ÿ‡ฟ๐Ÿ‡ผ flag: Zimbabwe +๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ flag: England +๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ flag: Scotland +๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ flag: Wales diff --git a/.local/share/larbs/chars/font-awesome b/.local/share/larbs/chars/font-awesome new file mode 100644 index 0000000..3283be3 --- /dev/null +++ b/.local/share/larbs/chars/font-awesome @@ -0,0 +1,1456 @@ +๏‰ฎ 500px; f26e +๏จ accessible-icon; f368 +๏ฉ accusoft; f369 +๏šฏ acquisitions-incorporated; f6af +๏™ ad; f641 +๏Šน address-book; f2b9 +๏Šป address-card; f2bb +๏‚ adjust; f042 +๏…ฐ adn; f170 +๏ช adversal; f36a +๏ซ affiliatetheme; f36b +๏— air-freshener; f5d0 +๏ ด airbnb; f834 +๏ฌ algolia; f36c +๏€ท align-center; f037 +๏€น align-justify; f039 +๏€ถ align-left; f036 +๏€ธ align-right; f038 +๏™‚ alipay; f642 +๏‘ก allergies; f461 +๏‰ฐ amazon; f270 +๏ฌ amazon-pay; f42c +๏ƒน ambulance; f0f9 +๏Šฃ american-sign-language-interpreting; f2a3 +๏ญ amilia; f36d +๏„ฝ anchor; f13d +๏…ป android; f17b +๏ˆ‰ angellist; f209 +๏„ƒ angle-double-down; f103 +๏„€ angle-double-left; f100 +๏„ angle-double-right; f101 +๏„‚ angle-double-up; f102 +๏„‡ angle-down; f107 +๏„„ angle-left; f104 +๏„… angle-right; f105 +๏„† angle-up; f106 +๏•– angry; f556 +๏ฎ angrycreative; f36e +๏  angular; f420 +๏™„ ankh; f644 +๏ฏ app-store; f36f +๏ฐ app-store-ios; f370 +๏ฑ apper; f371 +๏…น apple; f179 +๏—‘ apple-alt; f5d1 +๏• apple-pay; f415 +๏†‡ archive; f187 +๏•— archway; f557 +๏˜ arrow-alt-circle-down; f358 +๏™ arrow-alt-circle-left; f359 +๏š arrow-alt-circle-right; f35a +๏› arrow-alt-circle-up; f35b +๏‚ซ arrow-circle-down; f0ab +๏‚จ arrow-circle-left; f0a8 +๏‚ฉ arrow-circle-right; f0a9 +๏‚ช arrow-circle-up; f0aa +๏ฃ arrow-down; f063 +๏  arrow-left; f060 +๏ก arrow-right; f061 +๏ข arrow-up; f062 +๏‚ฒ arrows-alt; f0b2 +๏Œท arrows-alt-h; f337 +๏Œธ arrows-alt-v; f338 +๏บ artstation; f77a +๏Šข assistive-listening-systems; f2a2 +๏ฉ asterisk; f069 +๏ฒ asymmetrik; f372 +๏‡บ at; f1fa +๏•˜ atlas; f558 +๏ป atlassian; f77b +๏—’ atom; f5d2 +๏ณ audible; f373 +๏Šž audio-description; f29e +๏œ autoprefixer; f41c +๏ด avianex; f374 +๏ก aviato; f421 +๏•™ award; f559 +๏ต aws; f375 +๏ผ baby; f77c +๏ฝ baby-carriage; f77d +๏•š backspace; f55a +๏Š backward; f04a +๏Ÿฅ bacon; f7e5 +๎™ bacteria e059 +๎š bacterium e05a +๏™ฆ bahai; f666 +๏‰Ž balance-scale; f24e +๏”• balance-scale-left; f515 +๏”– balance-scale-right; f516 +๏ž ban; f05e +๏‘ข band-aid; f462 +๏‹• bandcamp; f2d5 +๏€ช barcode; f02a +๏ƒ‰ bars; f0c9 +๏ณ baseball-ball; f433 +๏ด basketball-ball; f434 +๏‹ bath; f2cd +๏‰„ battery-empty; f244 +๏‰€ battery-full; f240 +๏‰‚ battery-half; f242 +๏‰ƒ battery-quarter; f243 +๏‰ battery-three-quarters; f241 +๏ ต battle-net; f835 +๏ˆถ bed; f236 +๏ƒผ beer; f0fc +๏†ด behance; f1b4 +๏†ต behance-square; f1b5 +๏ƒณ bell; f0f3 +๏‡ถ bell-slash; f1f6 +๏•› bezier-curve; f55b +๏™‡ bible; f647 +๏ˆ† bicycle; f206 +๏กŠ biking; f84a +๏ธ bimobject; f378 +๏‡ฅ binoculars; f1e5 +๏ž€ biohazard; f780 +๏‡ฝ birthday-cake; f1fd +๏…ฑ bitbucket; f171 +๏น bitcoin; f379 +๏บ bity; f37a +๏‰พ black-tie; f27e +๏ป blackberry; f37b +๏”— blender; f517 +๏šถ blender-phone; f6b6 +๏Š blind; f29d +๏ž blog; f781 +๏ผ blogger; f37c +๏ฝ blogger-b; f37d +๏Š“ bluetooth; f293 +๏Š” bluetooth-b; f294 +๏€ฒ bold; f032 +๏ƒง bolt; f0e7 +๏‡ข bomb; f1e2 +๏—— bone; f5d7 +๏•œ bong; f55c +๏€ญ book; f02d +๏šท book-dead; f6b7 +๏Ÿฆ book-medical; f7e6 +๏”˜ book-open; f518 +๏—š book-reader; f5da +๏€ฎ bookmark; f02e +๏ ถ bootstrap; f836 +๏กŒ border-all; f84c +๏ก border-none; f850 +๏ก“ border-style; f853 +๏ถ bowling-ball; f436 +๏‘ฆ box; f466 +๏’ž box-open; f49e +๎› box-tissue e05b +๏‘จ boxes; f468 +๏Šก braille; f2a1 +๏—œ brain; f5dc +๏Ÿฌ bread-slice; f7ec +๏‚ฑ briefcase; f0b1 +๏‘ฉ briefcase-medical; f469 +๏”™ broadcast-tower; f519 +๏”š broom; f51a +๏• brush; f55d +๏…š btc; f15a +๏ ท buffer; f837 +๏†ˆ bug; f188 +๏†ญ building; f1ad +๏‚ก bullhorn; f0a1 +๏…€ bullseye; f140 +๏‘ช burn; f46a +๏ฟ buromobelexperte; f37f +๏ˆ‡ bus; f207 +๏•ž bus-alt; f55e +๏™Š business-time; f64a +๏ขฆ buy-n-large; f8a6 +๏‡ฌ calculator; f1ec +๏„ณ calendar; f133 +๏ณ calendar-alt; f073 +๏‰ด calendar-check; f274 +๏žƒ calendar-day; f783 +๏‰ฒ calendar-minus; f272 +๏‰ฑ calendar-plus; f271 +๏‰ณ calendar-times; f273 +๏ž„ calendar-week; f784 +๏€ฐ camera; f030 +๏‚ƒ camera-retro; f083 +๏šป campground; f6bb +๏ž… canadian-maple-leaf; f785 +๏ž† candy-cane; f786 +๏•Ÿ cannabis; f55f +๏‘ซ capsules; f46b +๏†น car; f1b9 +๏—ž car-alt; f5de +๏—Ÿ car-battery; f5df +๏—ก car-crash; f5e1 +๏—ค car-side; f5e4 +๏ฃฟ caravan; f8ff +๏ƒ— caret-down; f0d7 +๏ƒ™ caret-left; f0d9 +๏ƒš caret-right; f0da +๏… caret-square-down; f150 +๏†‘ caret-square-left; f191 +๏…’ caret-square-right; f152 +๏…‘ caret-square-up; f151 +๏ƒ˜ caret-up; f0d8 +๏ž‡ carrot; f787 +๏ˆ˜ cart-arrow-down; f218 +๏ˆ— cart-plus; f217 +๏žˆ cash-register; f788 +๏šพ cat; f6be +๏ญ cc-amazon-pay; f42d +๏‡ณ cc-amex; f1f3 +๏– cc-apple-pay; f416 +๏‰Œ cc-diners-club; f24c +๏‡ฒ cc-discover; f1f2 +๏‰‹ cc-jcb; f24b +๏‡ฑ cc-mastercard; f1f1 +๏‡ด cc-paypal; f1f4 +๏‡ต cc-stripe; f1f5 +๏‡ฐ cc-visa; f1f0 +๏Ž€ centercode; f380 +๏ž‰ centos; f789 +๏‚ฃ certificate; f0a3 +๏›€ chair; f6c0 +๏”› chalkboard; f51b +๏”œ chalkboard-teacher; f51c +๏—ง charging-station; f5e7 +๏‡พ chart-area; f1fe +๏‚€ chart-bar; f080 +๏ˆ chart-line; f201 +๏ˆ€ chart-pie; f200 +๏€Œ check; f00c +๏˜ check-circle; f058 +๏•  check-double; f560 +๏…Š check-square; f14a +๏Ÿฏ cheese; f7ef +๏น chess; f439 +๏บ chess-bishop; f43a +๏ผ chess-board; f43c +๏ฟ chess-king; f43f +๏‘ chess-knight; f441 +๏‘ƒ chess-pawn; f443 +๏‘… chess-queen; f445 +๏‘‡ chess-rook; f447 +๏„บ chevron-circle-down; f13a +๏„ท chevron-circle-left; f137 +๏„ธ chevron-circle-right; f138 +๏„น chevron-circle-up; f139 +๏ธ chevron-down; f078 +๏“ chevron-left; f053 +๏” chevron-right; f054 +๏ท chevron-up; f077 +๏†ฎ child; f1ae +๏‰จ chrome; f268 +๏ ธ chromecast; f838 +๏” church; f51d +๏„‘ circle; f111 +๏‡Ž circle-notch; f1ce +๏™ city; f64f +๏Ÿฒ clinic-medical; f7f2 +๏Œจ clipboard; f328 +๏‘ฌ clipboard-check; f46c +๏‘ญ clipboard-list; f46d +๏€— clock; f017 +๏‰ clone; f24d +๏ˆŠ closed-captioning; f20a +๏ƒ‚ cloud; f0c2 +๏Ž cloud-download-alt; f381 +๏œป cloud-meatball; f73b +๏›ƒ cloud-moon; f6c3 +๏œผ cloud-moon-rain; f73c +๏œฝ cloud-rain; f73d +๏€ cloud-showers-heavy; f740 +๏›„ cloud-sun; f6c4 +๏ƒ cloud-sun-rain; f743 +๏Ž‚ cloud-upload-alt; f382 +๎ฝ cloudflare e07d +๏Žƒ cloudscale; f383 +๏Ž„ cloudsmith; f384 +๏Ž… cloudversify; f385 +๏•ก cocktail; f561 +๏„ก code; f121 +๏„ฆ code-branch; f126 +๏‡‹ codepen; f1cb +๏Š„ codiepie; f284 +๏ƒด coffee; f0f4 +๏€“ cog; f013 +๏‚… cogs; f085 +๏”ž coins; f51e +๏ƒ› columns; f0db +๏ต comment; f075 +๏‰บ comment-alt; f27a +๏™‘ comment-dollar; f651 +๏’ญ comment-dots; f4ad +๏Ÿต comment-medical; f7f5 +๏’ณ comment-slash; f4b3 +๏‚† comments; f086 +๏™“ comments-dollar; f653 +๏”Ÿ compact-disc; f51f +๏…Ž compass; f14e +๏ฆ compress; f066 +๏ข compress-alt; f422 +๏žŒ compress-arrows-alt; f78c +๏•ข concierge-bell; f562 +๏ž confluence; f78d +๏ˆŽ connectdevelop; f20e +๏‰ญ contao; f26d +๏•ฃ cookie; f563 +๏•ค cookie-bite; f564 +๏ƒ… copy; f0c5 +๏‡น copyright; f1f9 +๏ขž cotton-bureau; f89e +๏’ธ couch; f4b8 +๏Žˆ cpanel; f388 +๏‰ž creative-commons; f25e +๏“ง creative-commons-by; f4e7 +๏“จ creative-commons-nc; f4e8 +๏“ฉ creative-commons-nc-eu; f4e9 +๏“ช creative-commons-nc-jp; f4ea +๏“ซ creative-commons-nd; f4eb +๏“ฌ creative-commons-pd; f4ec +๏“ญ creative-commons-pd-alt; f4ed +๏“ฎ creative-commons-remix; f4ee +๏“ฏ creative-commons-sa; f4ef +๏“ฐ creative-commons-sampling; f4f0 +๏“ฑ creative-commons-sampling-plus; f4f1 +๏“ฒ creative-commons-share; f4f2 +๏“ณ creative-commons-zero; f4f3 +๏‚ credit-card; f09d +๏›‰ critical-role; f6c9 +๏„ฅ crop; f125 +๏•ฅ crop-alt; f565 +๏™” cross; f654 +๏› crosshairs; f05b +๏”  crow; f520 +๏”ก crown; f521 +๏Ÿท crutch; f7f7 +๏„ผ css3; f13c +๏Ž‹ css3-alt; f38b +๏†ฒ cube; f1b2 +๏†ณ cubes; f1b3 +๏ƒ„ cut; f0c4 +๏ŽŒ cuttlefish; f38c +๏Ž d-and-d; f38d +๏›Š d-and-d-beyond; f6ca +๎’ dailymotion e052 +๏ˆ dashcube; f210 +๏‡€ database; f1c0 +๏Šค deaf; f2a4 +๎ท deezer e077 +๏†ฅ delicious; f1a5 +๏‡ democrat; f747 +๏ŽŽ deploydog; f38e +๏Ž deskpro; f38f +๏„ˆ desktop; f108 +๏›Œ dev; f6cc +๏†ฝ deviantart; f1bd +๏™• dharmachakra; f655 +๏ž dhl; f790 +๏‘ฐ diagnoses; f470 +๏ž‘ diaspora; f791 +๏”ข dice; f522 +๏› dice-d20; f6cf +๏›‘ dice-d6; f6d1 +๏”ฃ dice-five; f523 +๏”ค dice-four; f524 +๏”ฅ dice-one; f525 +๏”ฆ dice-six; f526 +๏”ง dice-three; f527 +๏”จ dice-two; f528 +๏†ฆ digg; f1a6 +๏Ž‘ digital-ocean; f391 +๏•ฆ digital-tachograph; f566 +๏—ซ directions; f5eb +๏Ž’ discord; f392 +๏Ž“ discourse; f393 +๏Ÿบ disease; f7fa +๏”ฉ divide; f529 +๏•ง dizzy; f567 +๏‘ฑ dna; f471 +๏Ž” dochub; f394 +๏Ž• docker; f395 +๏›“ dog; f6d3 +๏…• dollar-sign; f155 +๏‘ฒ dolly; f472 +๏‘ด dolly-flatbed; f474 +๏’น donate; f4b9 +๏”ช door-closed; f52a +๏”ซ door-open; f52b +๏†’ dot-circle; f192 +๏’บ dove; f4ba +๏€™ download; f019 +๏Ž– draft2digital; f396 +๏•จ drafting-compass; f568 +๏›• dragon; f6d5 +๏—ฎ draw-polygon; f5ee +๏…ฝ dribbble; f17d +๏Ž— dribbble-square; f397 +๏…ซ dropbox; f16b +๏•ฉ drum; f569 +๏•ช drum-steelpan; f56a +๏›— drumstick-bite; f6d7 +๏†ฉ drupal; f1a9 +๏‘‹ dumbbell; f44b +๏ž“ dumpster; f793 +๏ž” dumpster-fire; f794 +๏›™ dungeon; f6d9 +๏Ž™ dyalog; f399 +๏Žš earlybirds; f39a +๏“ด ebay; f4f4 +๏Š‚ edge; f282 +๎ธ edge-legacy e078 +๏„ edit; f044 +๏Ÿป egg; f7fb +๏’ eject; f052 +๏ฐ elementor; f430 +๏… ellipsis-h; f141 +๏…‚ ellipsis-v; f142 +๏—ฑ ello; f5f1 +๏ฃ ember; f423 +๏‡‘ empire; f1d1 +๏ƒ  envelope; f0e0 +๏Šถ envelope-open; f2b6 +๏™˜ envelope-open-text; f658 +๏†™ envelope-square; f199 +๏Š™ envira; f299 +๏”ฌ equals; f52c +๏„ญ eraser; f12d +๏Ž erlang; f39d +๏ฎ ethereum; f42e +๏ž– ethernet; f796 +๏‹— etsy; f2d7 +๏…“ euro-sign; f153 +๏ น evernote; f839 +๏ข exchange-alt; f362 +๏„ช exclamation; f12a +๏ช exclamation-circle; f06a +๏ฑ exclamation-triangle; f071 +๏ฅ expand; f065 +๏ค expand-alt; f424 +๏Œž expand-arrows-alt; f31e +๏ˆพ expeditedssl; f23e +๏ external-link-alt; f35d +๏  external-link-square-alt; f360 +๏ฎ eye; f06e +๏‡ป eye-dropper; f1fb +๏ฐ eye-slash; f070 +๏‚š ; facebook; f09a +๏Žž ; facebook-f; f39e +๏ŽŸ ; facebook-messenger; f39f +๏‚‚ ; facebook-square; f082 +๏กฃ ; fan; f863 +๏›œ ; fantasy-flight-games; f6dc +๏‰ ; fast-backward; f049 +๏ ; fast-forward; f050 +๎€… ; faucet e005 +๏†ฌ ; fax; f1ac +๏”ญ ; feather; f52d +๏•ซ ; feather-alt; f56b +๏ž— ; fedex; f797 +๏ž˜ ; fedora; f798 +๏†‚ ; female; f182 +๏ƒป ; fighter-jet; f0fb +๏ž™ ; figma; f799 +๏…› ; file; f15b +๏…œ ; file-alt; f15c +๏‡† ; file-archive; f1c6 +๏‡‡ ; file-audio; f1c7 +๏‡‰ ; file-code; f1c9 +๏•ฌ ; file-contract; f56c +๏› ; file-csv; f6dd +๏•ญ ; file-download; f56d +๏‡ƒ ; file-excel; f1c3 +๏•ฎ ; file-export; f56e +๏‡… ; file-image; f1c5 +๏•ฏ ; file-import; f56f +๏•ฐ ; file-invoice; f570 +๏•ฑ ; file-invoice-dollar; f571 +๏‘ท ; file-medical; f477 +๏‘ธ ; file-medical-alt; f478 +๏‡ ; file-pdf; f1c1 +๏‡„ ; file-powerpoint; f1c4 +๏•ฒ ; file-prescription; f572 +๏•ณ ; file-signature; f573 +๏•ด ; file-upload; f574 +๏‡ˆ ; file-video; f1c8 +๏‡‚ ; file-word; f1c2 +๏•ต ; fill; f575 +๏•ถ ; fill-drip; f576 +๏€ˆ ; film; f008 +๏‚ฐ ; filter; f0b0 +๏•ท ; fingerprint; f577 +๏ญ ; fire; f06d +๏Ÿค ; fire-alt; f7e4 +๏„ด ; fire-extinguisher; f134 +๏‰ฉ ; firefox; f269 +๎€‡ ; firefox-browser e007 +๏‘น ; first-aid; f479 +๏Šฐ ; first-order; f2b0 +๏”Š ; first-order-alt; f50a +๏Žก ; firstdraft; f3a1 +๏•ธ ; fish; f578 +๏›ž ; fist-raised; f6de +๏€ค ; flag; f024 +๏„ž ; flag-checkered; f11e +๏ ; flag-usa; f74d +๏ƒƒ ; flask; f0c3 +๏…ฎ ; flickr; f16e +๏‘ ; flipboard; f44d +๏•น ; flushed; f579 +๏— ; fly; f417 +๏ป ; folder; f07b +๏™ ; folder-minus; f65d +๏ผ ; folder-open; f07c +๏™ž ; folder-plus; f65e +๏€ฑ ; font; f031 +๏Šด ; font-awesome; f2b4 +๏œ ; font-awesome-alt; f35c +๏ฅ ; font-awesome-flag; f425 +๏Š€ ; fonticons; f280 +๏Žข ; fonticons-fi; f3a2 +๏‘Ž ; football-ball; f44e +๏Š† ; fort-awesome; f286 +๏Žฃ ; fort-awesome-alt; f3a3 +๏ˆ‘ ; forumbee; f211 +๏Ž ; forward; f04e +๏†€ ; foursquare; f180 +๏‹… ; free-code-camp; f2c5 +๏Žค ; freebsd; f3a4 +๏”ฎ ; frog; f52e +๏„™ ; frown; f119 +๏•บ ; frown-open; f57a +๏”‹ ; fulcrum; f50b +๏™ข ; funnel-dollar; f662 +๏‡ฃ ; futbol; f1e3 +๏”Œ galactic-republic; f50c +๏” galactic-senate; f50d +๏„› gamepad; f11b +๏”ฏ gas-pump; f52f +๏ƒฃ gavel; f0e3 +๏Žฅ gem; f3a5 +๏ˆญ genderless; f22d +๏‰ฅ get-pocket; f265 +๏‰  gg; f260 +๏‰ก gg-circle; f261 +๏›ข ghost; f6e2 +๏ซ gift; f06b +๏žœ gifts; f79c +๏‡“ git; f1d3 +๏ก git-alt; f841 +๏‡’ git-square; f1d2 +๏‚› github; f09b +๏„“ github-alt; f113 +๏‚’ github-square; f092 +๏Žฆ gitkraken; f3a6 +๏Š– gitlab; f296 +๏ฆ gitter; f426 +๏žŸ glass-cheers; f79f +๏€€ glass-martini; f000 +๏•ป glass-martini-alt; f57b +๏ž  glass-whiskey; f7a0 +๏”ฐ glasses; f530 +๏Šฅ glide; f2a5 +๏Šฆ glide-g; f2a6 +๏‚ฌ globe; f0ac +๏•ผ globe-africa; f57c +๏•ฝ globe-americas; f57d +๏•พ globe-asia; f57e +๏žข globe-europe; f7a2 +๏Žง gofore; f3a7 +๏‘ golf-ball; f450 +๏Žจ goodreads; f3a8 +๏Žฉ goodreads-g; f3a9 +๏†  google; f1a0 +๏Žช google-drive; f3aa +๎น google-pay e079 +๏Žซ google-play; f3ab +๏Šณ google-plus; f2b3 +๏ƒ• google-plus-g; f0d5 +๏ƒ” google-plus-square; f0d4 +๏‡ฎ google-wallet; f1ee +๏™ค gopuram; f664 +๏† graduation-cap; f19d +๏†„ gratipay; f184 +๏‹– grav; f2d6 +๏”ฑ greater-than; f531 +๏”ฒ greater-than-equal; f532 +๏•ฟ grimace; f57f +๏–€ grin; f580 +๏– grin-alt; f581 +๏–‚ grin-beam; f582 +๏–ƒ grin-beam-sweat; f583 +๏–„ grin-hearts; f584 +๏–… grin-squint; f585 +๏–† grin-squint-tears; f586 +๏–‡ grin-stars; f587 +๏–ˆ grin-tears; f588 +๏–‰ grin-tongue; f589 +๏–Š grin-tongue-squint; f58a +๏–‹ grin-tongue-wink; f58b +๏–Œ grin-wink; f58c +๏– grip-horizontal; f58d +๏žค grip-lines; f7a4 +๏žฅ grip-lines-vertical; f7a5 +๏–Ž grip-vertical; f58e +๏Žฌ gripfire; f3ac +๏Žญ grunt; f3ad +๎พ guilded e07e +๏žฆ guitar; f7a6 +๏Žฎ gulp; f3ae +๏ƒฝ h-square; f0fd +๏‡” hacker-news; f1d4 +๏Žฏ hacker-news-square; f3af +๏—ท hackerrank; f5f7 +๏ … hamburger; f805 +๏›ฃ hammer; f6e3 +๏™ฅ hamsa; f665 +๏’ฝ hand-holding; f4bd +๏’พ hand-holding-heart; f4be +๎œ hand-holding-medical e05c +๏“€ hand-holding-usd; f4c0 +๏“ hand-holding-water; f4c1 +๏‰˜ hand-lizard; f258 +๏ † hand-middle-finger; f806 +๏‰– hand-paper; f256 +๏‰› hand-peace; f25b +๏‚ง hand-point-down; f0a7 +๏‚ฅ hand-point-left; f0a5 +๏‚ค hand-point-right; f0a4 +๏‚ฆ hand-point-up; f0a6 +๏‰š hand-pointer; f25a +๏‰• hand-rock; f255 +๏‰— hand-scissors; f257 +๎ hand-sparkles e05d +๏‰™ hand-spock; f259 +๏“‚ hands; f4c2 +๏“„ hands-helping; f4c4 +๎ž hands-wash e05e +๏Šต handshake; f2b5 +๎Ÿ handshake-alt-slash e05f +๎  handshake-slash e060 +๏›ฆ hanukiah; f6e6 +๏ ‡ hard-hat; f807 +๏Š’ hashtag; f292 +๏ฃ€ hat-cowboy; f8c0 +๏ฃ hat-cowboy-side; f8c1 +๏›จ hat-wizard; f6e8 +๏‚  hdd; f0a0 +๎ก head-side-cough e061 +๎ข head-side-cough-slash e062 +๎ฃ head-side-mask e063 +๎ค head-side-virus e064 +๏‡œ heading; f1dc +๏€ฅ headphones; f025 +๏– headphones-alt; f58f +๏– headset; f590 +๏€„ heart; f004 +๏žฉ heart-broken; f7a9 +๏ˆž heartbeat; f21e +๏”ณ helicopter; f533 +๏–‘ highlighter; f591 +๏›ฌ hiking; f6ec +๏›ญ hippo; f6ed +๏‘’ hips; f452 +๏Žฐ hire-a-helper; f3b0 +๏‡š history; f1da +๎ฟ hive e07f +๏‘“ hockey-puck; f453 +๏žช holly-berry; f7aa +๏€• home; f015 +๏ง hooli; f427 +๏–’ hornbill; f592 +๏›ฐ horse; f6f0 +๏žซ horse-head; f7ab +๏ƒธ hospital; f0f8 +๏‘ฝ hospital-alt; f47d +๏‘พ hospital-symbol; f47e +๏  hospital-user; f80d +๏–“ hot-tub; f593 +๏  hotdog; f80f +๏–” hotel; f594 +๏Žฑ hotjar; f3b1 +๏‰” hourglass; f254 +๏‰“ hourglass-end; f253 +๏‰’ hourglass-half; f252 +๏‰‘ hourglass-start; f251 +๏›ฑ house-damage; f6f1 +๎ฅ house-user e065 +๏‰ผ houzz; f27c +๏›ฒ hryvnia; f6f2 +๏„ป html5; f13b +๏Žฒ hubspot; f3b2 +๏‰† i-cursor; f246 +๏  ice-cream; f810 +๏žญ icicles; f7ad +๏กญ icons; f86d +๏‹ id-badge; f2c1 +๏‹‚ id-card; f2c2 +๏‘ฟ id-card-alt; f47f +๎€“ ideal e013 +๏žฎ igloo; f7ae +๏€พ image; f03e +๏Œ‚ images; f302 +๏‹˜ imdb; f2d8 +๏€œ inbox; f01c +๏€ผ indent; f03c +๏‰ต industry; f275 +๏”ด infinity; f534 +๏„ฉ info; f129 +๏š info-circle; f05a +๎‚€ innosoft e080 +๏…ญ instagram; f16d +๎• instagram-square e055 +๎‚ instalod e081 +๏žฏ intercom; f7af +๏‰ซ internet-explorer; f26b +๏žฐ invision; f7b0 +๏ˆˆ ioxhost; f208 +๏€ณ italic; f033 +๏ บ itch-io; f83a +๏Žด itunes; f3b4 +๏Žต itunes-note; f3b5 +๏“ค java; f4e4 +๏™ฉ jedi; f669 +๏”Ž jedi-order; f50e +๏Žถ jenkins; f3b6 +๏žฑ jira; f7b1 +๏Žท joget; f3b7 +๏–• joint; f595 +๏†ช joomla; f1aa +๏™ช journal-whills; f66a +๏Žธ js; f3b8 +๏Žน js-square; f3b9 +๏‡Œ jsfiddle; f1cc +๏™ซ kaaba; f66b +๏—บ kaggle; f5fa +๏‚„ key; f084 +๏“ต keybase; f4f5 +๏„œ keyboard; f11c +๏Žบ keycdn; f3ba +๏™ญ khanda; f66d +๏Žป kickstarter; f3bb +๏Žผ kickstarter-k; f3bc +๏–– kiss; f596 +๏–— kiss-beam; f597 +๏–˜ kiss-wink-heart; f598 +๏”ต kiwi-bird; f535 +๏ฏ korvue; f42f +๏™ฏ landmark; f66f +๏†ซ language; f1ab +๏„‰ laptop; f109 +๏—ผ laptop-code; f5fc +๎ฆ laptop-house e066 +๏ ’ laptop-medical; f812 +๏Žฝ laravel; f3bd +๏ˆ‚ lastfm; f202 +๏ˆƒ lastfm-square; f203 +๏–™ laugh; f599 +๏–š laugh-beam; f59a +๏–› laugh-squint; f59b +๏–œ laugh-wink; f59c +๏—ฝ layer-group; f5fd +๏ฌ leaf; f06c +๏ˆ’ leanpub; f212 +๏‚” lemon; f094 +๏ less; f41d +๏”ถ less-than; f536 +๏”ท less-than-equal; f537 +๏Žพ level-down-alt; f3be +๏Žฟ level-up-alt; f3bf +๏‡ life-ring; f1cd +๏ƒซ lightbulb; f0eb +๏€ line; f3c0 +๏ƒ link; f0c1 +๏‚Œ linkedin; f08c +๏ƒก linkedin-in; f0e1 +๏Šธ linode; f2b8 +๏…ผ linux; f17c +๏†• lira-sign; f195 +๏€บ list; f03a +๏€ข list-alt; f022 +๏ƒ‹ list-ol; f0cb +๏ƒŠ list-ul; f0ca +๏„ค location-arrow; f124 +๏€ฃ lock; f023 +๏ lock-open; f3c1 +๏Œ‰ long-arrow-alt-down; f309 +๏ŒŠ long-arrow-alt-left; f30a +๏Œ‹ long-arrow-alt-right; f30b +๏ŒŒ long-arrow-alt-up; f30c +๏Šจ low-vision; f2a8 +๏– luggage-cart; f59d +๏˜„ lungs; f604 +๎ง lungs-virus e067 +๏ƒ lyft; f3c3 +๏„ magento; f3c4 +๏ƒ magic; f0d0 +๏ถ magnet; f076 +๏™ด mail-bulk; f674 +๏–ž mailchimp; f59e +๏†ƒ male; f183 +๏” mandalorian; f50f +๏‰น map; f279 +๏–Ÿ map-marked; f59f +๏–  map-marked-alt; f5a0 +๏ map-marker; f041 +๏… map-marker-alt; f3c5 +๏‰ถ map-pin; f276 +๏‰ท map-signs; f277 +๏˜ markdown; f60f +๏–ก marker; f5a1 +๏ˆข mars; f222 +๏ˆง mars-double; f227 +๏ˆฉ mars-stroke; f229 +๏ˆซ mars-stroke-h; f22b +๏ˆช mars-stroke-v; f22a +๏›บ mask; f6fa +๏“ถ mastodon; f4f6 +๏„ถ maxcdn; f136 +๏ฃŠ mdb; f8ca +๏–ข medal; f5a2 +๏† medapps; f3c6 +๏ˆบ medium; f23a +๏‡ medium-m; f3c7 +๏ƒบ medkit; f0fa +๏ˆ medrt; f3c8 +๏‹  meetup; f2e0 +๏–ฃ megaport; f5a3 +๏„š meh; f11a +๏–ค meh-blank; f5a4 +๏–ฅ meh-rolling-eyes; f5a5 +๏”ธ memory; f538 +๏žณ mendeley; f7b3 +๏™ถ menorah; f676 +๏ˆฃ mercury; f223 +๏“ meteor; f753 +๎€š microblog e01a +๏‹› microchip; f2db +๏„ฐ microphone; f130 +๏‰ microphone-alt; f3c9 +๏”น microphone-alt-slash; f539 +๏„ฑ microphone-slash; f131 +๏˜ microscope; f610 +๏Š microsoft; f3ca +๏จ minus; f068 +๏– minus-circle; f056 +๏…† minus-square; f146 +๏žต mitten; f7b5 +๏‹ mix; f3cb +๏Š‰ mixcloud; f289 +๎– mixer e056 +๏Œ mizuni; f3cc +๏„‹ mobile; f10b +๏ mobile-alt; f3cd +๏Š… modx; f285 +๏ monero; f3d0 +๏ƒ– money-bill; f0d6 +๏‘ money-bill-alt; f3d1 +๏”บ money-bill-wave; f53a +๏”ป money-bill-wave-alt; f53b +๏”ผ money-check; f53c +๏”ฝ money-check-alt; f53d +๏–ฆ monument; f5a6 +๏†† moon; f186 +๏–ง mortar-pestle; f5a7 +๏™ธ mosque; f678 +๏ˆœ motorcycle; f21c +๏›ผ mountain; f6fc +๏ฃŒ mouse; f8cc +๏‰… mouse-pointer; f245 +๏žถ mug-hot; f7b6 +๏€ music; f001 +๏’ napster; f3d2 +๏˜’ neos; f612 +๏›ฟ network-wired; f6ff +๏ˆฌ neuter; f22c +๏‡ช newspaper; f1ea +๏–จ nimblr; f5a8 +๏™ node; f419 +๏“ node-js; f3d3 +๏”พ not-equal; f53e +๏’ notes-medical; f481 +๏” npm; f3d4 +๏• ns8; f3d5 +๏– nutritionix; f3d6 +๏‰‡ object-group; f247 +๏‰ˆ object-ungroup; f248 +๎‚‚ octopus-deploy e082 +๏‰ฃ odnoklassniki; f263 +๏‰ค odnoklassniki-square; f264 +๏˜“ oil-can; f613 +๏” old-republic; f510 +๏™น om; f679 +๏ˆฝ opencart; f23d +๏†› openid; f19b +๏‰ช opera; f26a +๏ˆผ optin-monster; f23c +๏ฃ’ orcid; f8d2 +๏š osi; f41a +๏œ€ otter; f700 +๏€ป outdent; f03b +๏— page4; f3d7 +๏†Œ pagelines; f18c +๏ • pager; f815 +๏‡ผ paint-brush; f1fc +๏–ช paint-roller; f5aa +๏”ฟ palette; f53f +๏˜ palfed; f3d8 +๏’‚ pallet; f482 +๏‡˜ paper-plane; f1d8 +๏ƒ† paperclip; f0c6 +๏“ parachute-box; f4cd +๏‡ paragraph; f1dd +๏•€ parking; f540 +๏–ซ passport; f5ab +๏™ป pastafarianism; f67b +๏ƒช paste; f0ea +๏™ patreon; f3d9 +๏Œ pause; f04c +๏Š‹ pause-circle; f28b +๏†ฐ paw; f1b0 +๏‡ญ paypal; f1ed +๏™ผ peace; f67c +๏Œ„ pen; f304 +๏Œ… pen-alt; f305 +๏–ฌ pen-fancy; f5ac +๏–ญ pen-nib; f5ad +๏…‹ pen-square; f14b +๏Œƒ pencil-alt; f303 +๏–ฎ pencil-ruler; f5ae +๏œ„ penny-arcade; f704 +๎จ people-arrows e068 +๏“Ž people-carry; f4ce +๏ – pepper-hot; f816 +๎‚ƒ perbyte e083 +๏Š• percent; f295 +๏• percentage; f541 +๏š periscope; f3da +๏– person-booth; f756 +๏› phabricator; f3db +๏œ phoenix-framework; f3dc +๏”‘ phoenix-squadron; f511 +๏‚• phone; f095 +๏กน phone-alt; f879 +๏ phone-slash; f3dd +๏‚˜ phone-square; f098 +๏กป phone-square-alt; f87b +๏Š  phone-volume; f2a0 +๏กผ photo-video; f87c +๏‘— php; f457 +๏Šฎ pied-piper; f2ae +๏†จ pied-piper-alt; f1a8 +๏“ฅ pied-piper-hat; f4e5 +๏†ง pied-piper-pp; f1a7 +๎€ž pied-piper-square e01e +๏““ piggy-bank; f4d3 +๏’„ pills; f484 +๏ƒ’ pinterest; f0d2 +๏ˆฑ pinterest-p; f231 +๏ƒ“ pinterest-square; f0d3 +๏ ˜ pizza-slice; f818 +๏™ฟ place-of-worship; f67f +๏ฒ plane; f072 +๏–ฏ plane-arrival; f5af +๏–ฐ plane-departure; f5b0 +๎ฉ plane-slash e069 +๏‹ play; f04b +๏…„ play-circle; f144 +๏Ÿ playstation; f3df +๏‡ฆ plug; f1e6 +๏ง plus; f067 +๏• plus-circle; f055 +๏ƒพ plus-square; f0fe +๏‹Ž podcast; f2ce +๏š poll; f681 +๏š‚ poll-h; f682 +๏‹พ poo; f2fe +๏š poo-storm; f75a +๏˜™ poop; f619 +๏  portrait; f3e0 +๏…” pound-sign; f154 +๏€‘ power-off; f011 +๏šƒ pray; f683 +๏š„ praying-hands; f684 +๏–ฑ prescription; f5b1 +๏’… prescription-bottle; f485 +๏’† prescription-bottle-alt; f486 +๏€ฏ print; f02f +๏’‡ procedures; f487 +๏Šˆ product-hunt; f288 +๏•‚ project-diagram; f542 +๎ช pump-medical e06a +๎ซ pump-soap e06b +๏ก pushed; f3e1 +๏„ฎ puzzle-piece; f12e +๏ข python; f3e2 +๏‡– qq; f1d6 +๏€ฉ qrcode; f029 +๏„จ question; f128 +๏™ question-circle; f059 +๏‘˜ quidditch; f458 +๏‘™ quinscape; f459 +๏‹„ quora; f2c4 +๏„ quote-left; f10d +๏„Ž quote-right; f10e +๏š‡ quran; f687 +๏“ท r-project; f4f7 +๏žน radiation; f7b9 +๏žบ radiation-alt; f7ba +๏› rainbow; f75b +๏ด random; f074 +๏žป raspberry-pi; f7bb +๏‹™ ravelry; f2d9 +๏› react; f41b +๏ reacteurope; f75d +๏“• readme; f4d5 +๏‡ rebel; f1d0 +๏•ƒ receipt; f543 +๏ฃ™ record-vinyl; f8d9 +๏†ธ recycle; f1b8 +๏ฃ red-river; f3e3 +๏†ก reddit; f1a1 +๏Š reddit-alien; f281 +๏†ข reddit-square; f1a2 +๏žผ redhat; f7bc +๏€ž redo; f01e +๏‹น redo-alt; f2f9 +๏‰ registered; f25d +๏กฝ remove-format; f87d +๏†‹ renren; f18b +๏ฅ reply; f3e5 +๏„ข reply-all; f122 +๏ฆ replyd; f3e6 +๏ž republican; f75e +๏“ธ researchgate; f4f8 +๏ง resolving; f3e7 +๏žฝ restroom; f7bd +๏น retweet; f079 +๏–ฒ rev; f5b2 +๏“– ribbon; f4d6 +๏œ‹ ring; f70b +๏€˜ road; f018 +๏•„ robot; f544 +๏„ต rocket; f135 +๏จ rocketchat; f3e8 +๏ฉ rockrms; f3e9 +๏“— route; f4d7 +๏‚ž rss; f09e +๏…ƒ rss-square; f143 +๏…˜ ruble-sign; f158 +๏•… ruler; f545 +๏•† ruler-combined; f546 +๏•‡ ruler-horizontal; f547 +๏•ˆ ruler-vertical; f548 +๏œŒ running; f70c +๏…– rupee-sign; f156 +๎บ rust e07a +๏–ณ sad-cry; f5b3 +๏–ด sad-tear; f5b4 +๏‰ง safari; f267 +๏ ป salesforce; f83b +๏ž sass; f41e +๏žฟ satellite; f7bf +๏Ÿ€ satellite-dish; f7c0 +๏ƒ‡ save; f0c7 +๏ช schlix; f3ea +๏•‰ school; f549 +๏•Š screwdriver; f54a +๏ŠŠ scribd; f28a +๏œŽ scroll; f70e +๏Ÿ‚ sd-card; f7c2 +๏€‚ search; f002 +๏šˆ search-dollar; f688 +๏š‰ search-location; f689 +๏€ search-minus; f010 +๏€Ž search-plus; f00e +๏ซ searchengin; f3eb +๏“˜ seedling; f4d8 +๏‹š sellcast; f2da +๏ˆ“ sellsy; f213 +๏ˆณ server; f233 +๏ฌ servicestack; f3ec +๏˜Ÿ shapes; f61f +๏ค share; f064 +๏‡  share-alt; f1e0 +๏‡ก share-alt-square; f1e1 +๏… share-square; f14d +๏ˆ‹ shekel-sign; f20b +๏ญ shield-alt; f3ed +๎ฌ shield-virus e06c +๏ˆš ship; f21a +๏’‹ shipping-fast; f48b +๏ˆ” shirtsinbulk; f214 +๏•‹ shoe-prints; f54b +๎— shopify e057 +๏Š shopping-bag; f290 +๏Š‘ shopping-basket; f291 +๏บ shopping-cart; f07a +๏–ต shopware; f5b5 +๏‹Œ shower; f2cc +๏–ถ shuttle-van; f5b6 +๏“™ sign; f4d9 +๏‹ถ sign-in-alt; f2f6 +๏Šง sign-language; f2a7 +๏‹ต sign-out-alt; f2f5 +๏€’ signal; f012 +๏–ท signature; f5b7 +๏Ÿ„ sim-card; f7c4 +๏ˆ• simplybuilt; f215 +๎ญ sink e06d +๏ฎ sistrix; f3ee +๏ƒจ sitemap; f0e8 +๏”’ sith; f512 +๏Ÿ… skating; f7c5 +๏Ÿ† sketch; f7c6 +๏Ÿ‰ skiing; f7c9 +๏ŸŠ skiing-nordic; f7ca +๏•Œ skull; f54c +๏œ” skull-crossbones; f714 +๏ˆ– skyatlas; f216 +๏…พ skype; f17e +๏†˜ slack; f198 +๏ฏ slack-hash; f3ef +๏œ• slash; f715 +๏ŸŒ sleigh; f7cc +๏‡ž sliders-h; f1de +๏‡ง slideshare; f1e7 +๏„˜ smile; f118 +๏–ธ smile-beam; f5b8 +๏“š smile-wink; f4da +๏Ÿ smog; f75f +๏’ smoking; f48d +๏• smoking-ban; f54d +๏Ÿ sms; f7cd +๏Šซ snapchat; f2ab +๏Šฌ snapchat-ghost; f2ac +๏Šญ snapchat-square; f2ad +๏ŸŽ snowboarding; f7ce +๏‹œ snowflake; f2dc +๏Ÿ snowman; f7d0 +๏Ÿ’ snowplow; f7d2 +๎ฎ soap e06e +๏š– socks; f696 +๏–บ solar-panel; f5ba +๏ƒœ sort; f0dc +๏… sort-alpha-down; f15d +๏ข sort-alpha-down-alt; f881 +๏…ž sort-alpha-up; f15e +๏ข‚ sort-alpha-up-alt; f882 +๏…  sort-amount-down; f160 +๏ข„ sort-amount-down-alt; f884 +๏…ก sort-amount-up; f161 +๏ข… sort-amount-up-alt; f885 +๏ƒ sort-down; f0dd +๏…ข sort-numeric-down; f162 +๏ข† sort-numeric-down-alt; f886 +๏…ฃ sort-numeric-up; f163 +๏ข‡ sort-numeric-up-alt; f887 +๏ƒž sort-up; f0de +๏†พ soundcloud; f1be +๏Ÿ“ sourcetree; f7d3 +๏–ป spa; f5bb +๏†— space-shuttle; f197 +๏ณ speakap; f3f3 +๏ ผ speaker-deck; f83c +๏ข‘ spell-check; f891 +๏œ— spider; f717 +๏„ spinner; f110 +๏–ผ splotch; f5bc +๏†ผ spotify; f1bc +๏–ฝ spray-can; f5bd +๏ƒˆ square; f0c8 +๏‘œ square-full; f45c +๏š˜ square-root-alt; f698 +๏–พ squarespace; f5be +๏† stack-exchange; f18d +๏…ฌ stack-overflow; f16c +๏ก‚ stackpath; f842 +๏–ฟ stamp; f5bf +๏€… star; f005 +๏š™ star-and-crescent; f699 +๏‚‰ star-half; f089 +๏—€ star-half-alt; f5c0 +๏šš star-of-david; f69a +๏˜ก star-of-life; f621 +๏ต staylinked; f3f5 +๏†ถ steam; f1b6 +๏†ท steam-square; f1b7 +๏ถ steam-symbol; f3f6 +๏ˆ step-backward; f048 +๏‘ step-forward; f051 +๏ƒฑ stethoscope; f0f1 +๏ท sticker-mule; f3f7 +๏‰‰ sticky-note; f249 +๏ stop; f04d +๏Š stop-circle; f28d +๏‹ฒ stopwatch; f2f2 +๎ฏ stopwatch-20 e06f +๏•Ž store; f54e +๏• store-alt; f54f +๎ฐ store-alt-slash e070 +๎ฑ store-slash e071 +๏จ strava; f428 +๏• stream; f550 +๏ˆ street-view; f21d +๏ƒŒ strikethrough; f0cc +๏ฉ stripe; f429 +๏ช stripe-s; f42a +๏•‘ stroopwafel; f551 +๏ธ studiovinari; f3f8 +๏†ค stumbleupon; f1a4 +๏†ฃ stumbleupon-circle; f1a3 +๏„ฌ subscript; f12c +๏ˆน subway; f239 +๏ƒฒ suitcase; f0f2 +๏— suitcase-rolling; f5c1 +๏†… sun; f185 +๏‹ superpowers; f2dd +๏„ซ superscript; f12b +๏น supple; f3f9 +๏—‚ surprise; f5c2 +๏Ÿ– suse; f7d6 +๏—ƒ swatchbook; f5c3 +๏ฃก swift; f8e1 +๏—„ swimmer; f5c4 +๏—… swimming-pool; f5c5 +๏ ฝ symfony; f83d +๏š› synagogue; f69b +๏€ก sync; f021 +๏‹ฑ sync-alt; f2f1 +๏’Ž syringe; f48e +๏ƒŽ table; f0ce +๏‘ table-tennis; f45d +๏„Š tablet; f10a +๏บ tablet-alt; f3fa +๏’ tablets; f490 +๏ฝ tachometer-alt; f3fd +๏€ซ tag; f02b +๏€ฌ tags; f02c +๏“› tape; f4db +๏‚ฎ tasks; f0ae +๏†บ taxi; f1ba +๏“น teamspeak; f4f9 +๏˜ฎ teeth; f62e +๏˜ฏ teeth-open; f62f +๏‹† telegram; f2c6 +๏พ telegram-plane; f3fe +๏ฉ temperature-high; f769 +๏ซ temperature-low; f76b +๏‡• tencent-weibo; f1d5 +๏Ÿ— tenge; f7d7 +๏„  terminal; f120 +๏€ด text-height; f034 +๏€ต text-width; f035 +๏€Š th; f00a +๏€‰ th-large; f009 +๏€‹ th-list; f00b +๏š the-red-yeti; f69d +๏˜ฐ theater-masks; f630 +๏—† themeco; f5c6 +๏Šฒ themeisle; f2b2 +๏’‘ thermometer; f491 +๏‹‹ thermometer-empty; f2cb +๏‹‡ thermometer-full; f2c7 +๏‹‰ thermometer-half; f2c9 +๏‹Š thermometer-quarter; f2ca +๏‹ˆ thermometer-three-quarters; f2c8 +๏œฑ think-peaks; f731 +๏…ฅ thumbs-down; f165 +๏…ค thumbs-up; f164 +๏‚ thumbtack; f08d +๏ฟ ticket-alt; f3ff +๎ป tiktok e07b +๏€ times; f00d +๏— times-circle; f057 +๏ƒ tint; f043 +๏—‡ tint-slash; f5c7 +๏—ˆ tired; f5c8 +๏ˆ„ toggle-off; f204 +๏ˆ… toggle-on; f205 +๏Ÿ˜ toilet; f7d8 +๏œž toilet-paper; f71e +๎ฒ toilet-paper-slash e072 +๏•’ toolbox; f552 +๏Ÿ™ tools; f7d9 +๏—‰ tooth; f5c9 +๏š  torah; f6a0 +๏šก torii-gate; f6a1 +๏œข tractor; f722 +๏”“ trade-federation; f513 +๏‰œ trademark; f25c +๏˜ท traffic-light; f637 +๎ trailer e041 +๏ˆธ train; f238 +๏Ÿš tram; f7da +๏ˆค transgender; f224 +๏ˆฅ transgender-alt; f225 +๏‡ธ trash; f1f8 +๏‹ญ trash-alt; f2ed +๏ ฉ trash-restore; f829 +๏ ช trash-restore-alt; f82a +๏†ป tree; f1bb +๏† trello; f181 +๏‚‘ trophy; f091 +๏ƒ‘ truck; f0d1 +๏“ž truck-loading; f4de +๏˜ป truck-monster; f63b +๏“Ÿ truck-moving; f4df +๏˜ผ truck-pickup; f63c +๏•“ tshirt; f553 +๏‡ค tty; f1e4 +๏…ณ tumblr; f173 +๏…ด tumblr-square; f174 +๏‰ฌ tv; f26c +๏‡จ twitch; f1e8 +๏‚™ twitter; f099 +๏‚ twitter-square; f081 +๏ซ typo3; f42b +๏‚ uber; f402 +๏ŸŸ ubuntu; f7df +๏ƒ uikit; f403 +๏ฃจ umbraco; f8e8 +๏ƒฉ umbrella; f0e9 +๏—Š umbrella-beach; f5ca +๎‚„ uncharted e084 +๏ƒ underline; f0cd +๏ƒข undo; f0e2 +๏‹ช undo-alt; f2ea +๏„ uniregistry; f404 +๎‰ unity e049 +๏Šš universal-access; f29a +๏†œ university; f19c +๏„ง unlink; f127 +๏‚œ unlock; f09c +๏„พ unlock-alt; f13e +๎ผ unsplash e07c +๏… untappd; f405 +๏‚“ upload; f093 +๏Ÿ  ups; f7e0 +๏Š‡ usb; f287 +๏€‡ user; f007 +๏† user-alt; f406 +๏“บ user-alt-slash; f4fa +๏“ป user-astronaut; f4fb +๏“ผ user-check; f4fc +๏Šฝ user-circle; f2bd +๏“ฝ user-clock; f4fd +๏“พ user-cog; f4fe +๏“ฟ user-edit; f4ff +๏”€ user-friends; f500 +๏” user-graduate; f501 +๏œจ user-injured; f728 +๏”‚ user-lock; f502 +๏ƒฐ user-md; f0f0 +๏”ƒ user-minus; f503 +๏”„ user-ninja; f504 +๏ ฏ user-nurse; f82f +๏ˆด user-plus; f234 +๏ˆ› user-secret; f21b +๏”… user-shield; f505 +๏”† user-slash; f506 +๏”‡ user-tag; f507 +๏”ˆ user-tie; f508 +๏ˆต user-times; f235 +๏ƒ€ users; f0c0 +๏”‰ users-cog; f509 +๎ณ users-slash e073 +๏Ÿก usps; f7e1 +๏‡ ussunnah; f407 +๏‹ฅ utensil-spoon; f2e5 +๏‹ง utensils; f2e7 +๏ˆ vaadin; f408 +๏—‹ vector-square; f5cb +๏ˆก venus; f221 +๏ˆฆ venus-double; f226 +๏ˆจ venus-mars; f228 +๎‚… vest e085 +๎‚† vest-patches e086 +๏ˆท viacoin; f237 +๏Šฉ viadeo; f2a9 +๏Šช viadeo-square; f2aa +๏’’ vial; f492 +๏’“ vials; f493 +๏‰ viber; f409 +๏€ฝ video; f03d +๏“ข video-slash; f4e2 +๏šง vihara; f6a7 +๏Š vimeo; f40a +๏†” vimeo-square; f194 +๏‰ฝ vimeo-v; f27d +๏‡Š vine; f1ca +๎ด virus e074 +๎ต virus-slash e075 +๎ถ viruses e076 +๏†‰ vk; f189 +๏‹ vnv; f40b +๏ข— voicemail; f897 +๏‘Ÿ volleyball-ball; f45f +๏€ง volume-down; f027 +๏šฉ volume-mute; f6a9 +๏€ฆ volume-off; f026 +๏€จ volume-up; f028 +๏ฒ vote-yea; f772 +๏œฉ vr-cardboard; f729 +๏Ÿ vuejs; f41f +๏•” walking; f554 +๏•• wallet; f555 +๏’” warehouse; f494 +๎‚‡ watchman-monitoring e087 +๏ณ water; f773 +๏ พ wave-square; f83e +๏ ฟ waze; f83f +๏—Œ weebly; f5cc +๏†Š weibo; f18a +๏’– weight; f496 +๏— weight-hanging; f5cd +๏‡— weixin; f1d7 +๏ˆฒ whatsapp; f232 +๏Œ whatsapp-square; f40c +๏†“ wheelchair; f193 +๏ whmcs; f40d +๏‡ซ wifi; f1eb +๏‰ฆ wikipedia-w; f266 +๏œฎ wind; f72e +๏ window-close; f410 +๏‹ window-maximize; f2d0 +๏‹‘ window-minimize; f2d1 +๏‹’ window-restore; f2d2 +๏…บ windows; f17a +๏œฏ wine-bottle; f72f +๏“ฃ wine-glass; f4e3 +๏—Ž wine-glass-alt; f5ce +๏— wix; f5cf +๏œฐ wizards-of-the-coast; f730 +๎‚ˆ wodu e088 +๏”” wolf-pack-battalion; f514 +๏…™ won-sign; f159 +๏†š wordpress; f19a +๏‘ wordpress-simple; f411 +๏Š— wpbeginner; f297 +๏‹ž wpexplorer; f2de +๏Š˜ wpforms; f298 +๏ค wpressr; f3e4 +๏‚ญ wrench; f0ad +๏’— x-ray; f497 +๏’ xbox; f412 +๏…จ xing; f168 +๏…ฉ xing-square; f169 +๏ˆป y-combinator; f23b +๏†ž yahoo; f19e +๏ก€ yammer; f840 +๏“ yandex; f413 +๏” yandex-international; f414 +๏Ÿฃ yarn; f7e3 +๏‡ฉ yelp; f1e9 +๏…— yen-sign; f157 +๏šญ yin-yang; f6ad +๏Šฑ yoast; f2b1 +๏…ง youtube; f167 +๏ฑ youtube-square; f431 +๏˜ฟ zhihu; f63f diff --git a/.local/share/larbs/ttymaps.kmap b/.local/share/larbs/ttymaps.kmap new file mode 100644 index 0000000..51a7042 --- /dev/null +++ b/.local/share/larbs/ttymaps.kmap @@ -0,0 +1,2 @@ +keycode 1 = Caps_Lock +keycode 58 = Escape diff --git a/.profile b/.profile deleted file mode 120000 index c1abe3f..0000000 --- a/.profile +++ /dev/null @@ -1 +0,0 @@ -.zprofile \ No newline at end of file diff --git a/.xprofile b/.xprofile index c000896..61f87a7 120000 --- a/.xprofile +++ b/.xprofile @@ -1 +1 @@ -.config/xprofile \ No newline at end of file +.config/x11/xprofile \ No newline at end of file diff --git a/.zprofile b/.zprofile deleted file mode 100644 index 61e5128..0000000 --- a/.zprofile +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/zsh - -# zsh profile file. Runs on login. Environmental variables are set here. - -# If you don't plan on reverting to bash, you can remove the link in ~/.profile -# to clean up. - -# Adds `~/.local/bin` to $PATH -export PATH="$PATH:$(du "$HOME/.local/bin" | cut -f2 | tr '\n' ':' | sed 's/:*$//')" -# Adds cargo bin path to $PATH -export PATH="$PATH:$(du "$HOME/.local/share/cargo/bin" | cut -f2 | tr '\n' ':' | sed 's/:*$//')" -# Adds MATLAB -#export PATH="$PATH:$(du "/usr/local/MATLAB" | cut -f2 | tr '\n' ':' | sed 's/:*$//')" - -# Default programs: -export EDITOR="nvim" -export PAGER="less" -export TERMINAL="st" -export BROWSER="qutebrowser" -export READER="zathura" -export FILE="ranger" -export PIC="sxiv" -export SHELL="zsh" - -# ~/ Clean-up: -export XDG_CONFIG_HOME="$HOME/.config" -export XDG_DATA_HOME="$HOME/.local/share" -export XDG_CACHE_HOME="$HOME/.cache" -#export XDG_RUNTIME_DIR="$HOME/.cache/xdg_run" # Messes up Audio for some reason, might be useful to figure out in the future how to fix -#export XAUTHORITY="$HOME/.cache/xdg_run/Xauthority" # This line will break some DMs. -export NOTMUCH_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/notmuch-config" -export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" -export LESSHISTFILE="-" -export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc" -export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/inputrc" -export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" -export ALSA_CONFIG_PATH="$XDG_CONFIG_HOME/alsa/asoundrc" -export GNUPGHOME="$XDG_DATA_HOME/gnupg" -#export GNUPGHOME="$HOME/.gnupg" -export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default" -export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi" -export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store" -export TMUX_TMPDIR="$XDG_RUNTIME_DIR" -export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android" -export CARGO_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/cargo" -export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go" -export ANSIBLE_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/ansible/ansible.cfg" -export SSB_HOME="$XDG_DATA_HOME/zoom" -export PASSWORD_STORE_GPG_OPTS='--homedir=/home/alex/.local/share/gnupg' -export MAILCAPS="${XDG_CONFIG_HOME:-$HOME/.config}/mutt/mailcap" -export CABAL_CONFIG="$XDG_CONFIG_HOME"/cabal/config -export CABAL_DIR="$XDG_CACHE_HOME"/cabal -export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle -export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter -export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter -export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java -export JULIA_DEPOT_PATH="$XDG_DATA_HOME/julia:$JULIA_DEPOT_PATH" -export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages -export MAXIMA_USERDIR="$XDG_CONFIG_HOME"/maxima -export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat -export TEXMFHOME=$XDG_DATA_HOME/texmf -export TEXMFVAR=$XDG_CACHE_HOME/texlive/texmf-var -export TEXMFCONFIG=$XDG_CONFIG_HOME/texlive/texmf-config - -# XDG USER DIRECOTRIES -export XDG_DESKTOP_DIR="$HOME" -export XDG_DOCUMENTS_DIR="$HOME/dox" -export XDG_DOWNLOAD_DIR="$HOME/dls" -export XDG_MUSIC_DIR="$HOME/msc" -export XDG_PICTURES_DIR="$HOME/pics" -export XDG_VIDEOS_DIR="$HOME/vids" - -# Other program settings: -export DICS="/usr/share/stardict/dic/" -export SUDO_ASKPASS="$HOME/.local/bin/dmenupass" -export FZF_DEFAULT_OPTS="--layout=reverse --height 40%" -export LESS=-R -export LESS_TERMCAP_mb="$(printf '%b' '')" -export LESS_TERMCAP_md="$(printf '%b' '')" -export LESS_TERMCAP_me="$(printf '%b' '')" -export LESS_TERMCAP_so="$(printf '%b' '')" -export LESS_TERMCAP_se="$(printf '%b' '')" -export LESS_TERMCAP_us="$(printf '%b' '')" -export LESS_TERMCAP_ue="$(printf '%b' '')" -export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" -export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. -export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. -export _JAVA_AWT_WM_NONREPARENTING=1 # Java doesn't understand tiling windows -export AWT_TOOLKIT="MToolkit wmname LG3D" #May have to install wmname - -# Settings for Japanese input -export GTK_IM_MODULE='ibus' -export QT_IM_MODULE='ibus' -export XMODIFIERS=@im='ibus' - -ibus-daemon -drx #Toolbar for anthy - -# This is the list for lf icons: -export LF_ICONS="di=๐Ÿ“:\ -fi=๐Ÿ“ƒ:\ -tw=๐Ÿค:\ -ow=๐Ÿ“‚:\ -ln=โ›“:\ -or=โŒ:\ -ex=๐ŸŽฏ:\ -*.txt=โœ:\ -*.mom=โœ:\ -*.me=โœ:\ -*.ms=โœ:\ -*.png=๐Ÿ–ผ:\ -*.ico=๐Ÿ–ผ:\ -*.jpg=๐Ÿ“ธ:\ -*.jpeg=๐Ÿ“ธ:\ -*.gif=๐Ÿ–ผ:\ -*.svg=๐Ÿ—บ:\ -*.xcf=๐Ÿ–Œ:\ -*.html=๐ŸŒŽ:\ -*.xml=๐Ÿ“ฐ:\ -*.gpg=๐Ÿ”’:\ -*.css=๐ŸŽจ:\ -*.pdf=๐Ÿ“š:\ -*.djvu=๐Ÿ“š:\ -*.epub=๐Ÿ“š:\ -*.csv=๐Ÿ““:\ -*.xlsx=๐Ÿ““:\ -*.tex=๐Ÿ“œ:\ -*.md=๐Ÿ“˜:\ -*.r=๐Ÿ“Š:\ -*.R=๐Ÿ“Š:\ -*.rmd=๐Ÿ“Š:\ -*.Rmd=๐Ÿ“Š:\ -*.mp3=๐ŸŽต:\ -*.opus=๐ŸŽต:\ -*.ogg=๐ŸŽต:\ -*.m4a=๐ŸŽต:\ -*.flac=๐ŸŽผ:\ -*.mkv=๐ŸŽฅ:\ -*.mp4=๐ŸŽฅ:\ -*.webm=๐ŸŽฅ:\ -*.mpeg=๐ŸŽฅ:\ -*.avi=๐ŸŽฅ:\ -*.zip=๐Ÿ“ฆ:\ -*.rar=๐Ÿ“ฆ:\ -*.7z=๐Ÿ“ฆ:\ -*.tar.gz=๐Ÿ“ฆ:\ -*.z64=๐ŸŽฎ:\ -*.v64=๐ŸŽฎ:\ -*.n64=๐ŸŽฎ:\ -*.1=โ„น:\ -*.nfo=โ„น:\ -*.info=โ„น:\ -*.log=๐Ÿ“™:\ -*.iso=๐Ÿ“€:\ -*.img=๐Ÿ“€:\ -*.bib=๐ŸŽ“:\ -*.ged=๐Ÿ‘ช:\ -*.part=๐Ÿ’”:\ -*.torrent=๐Ÿ”ฝ:\ -" - -[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shortcutrc ] && shortcuts >/dev/null 2>&1 & - -# Start graphical server on tty1 if not already running. -[ "$(tty)" = "/dev/tty1" ] && ! ps -e | grep -qw Xorg && exec startx - -# Switch escape and caps if tty and no passwd required: -sudo -n loadkeys ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/ttymaps.kmap 2>/dev/null -source "/home/alex/.local/share/cargo/env" diff --git a/.zprofile b/.zprofile new file mode 120000 index 0000000..8486fca --- /dev/null +++ b/.zprofile @@ -0,0 +1 @@ +.config/shell/profile \ No newline at end of file