From a4498f2f8501feaa4d4ae4eefd758619ae51a4c8 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 7 Apr 2021 22:56:28 +0100 Subject: [PATCH] Inital commit --- .config/dunst/dunstrc | 152 ++ .config/fontconfig/fonts.conf | 35 + .config/gtk-2.0/gtkrc-2.0 | 19 + .config/gtk-3.0/settings.ini | 16 + .config/lf/lfrc | 104 + .config/lf/scope | 58 + .config/mimeapps.list | 17 + .config/mpd/mpd.conf | 21 + .config/mpv/input.conf | 5 + .config/mpv/scripts/modules.lua | 3 + .config/ncmpcpp/bindings | 480 ++++ .config/ncmpcpp/config | 32 + .config/newsboat/config | 55 + .config/newsboat/urls | 0 .config/pulse/daemon.conf | 4 + .config/shell/aliasrc | 96 + .config/shell/bm-dirs | 22 + .config/shell/bm-files | 16 + .config/shell/inputrc | 19 + .config/shell/profile | 144 ++ .config/sxiv/exec/key-handler | 33 + .config/user-dirs.dirs | 1 + .config/wal/postrun | 28 + .config/wal/templates/dunstrc | 152 ++ .config/wal/templates/zathurarc | 35 + .config/wget/wgetrc | 1 + .config/x11/xinitrc | 17 + .config/x11/xprofile | 10 + .config/x11/xresources | 156 ++ .config/zathura/zathurarc | 15 + .config/zsh/.zshrc | 79 + .gitignore | 2 + .gitmodules | 0 .local/bin/compiler | 57 + .local/bin/cron/checkup | 18 + .local/bin/cron/crontog | 6 + .local/bin/cron/newsup | 17 + .local/bin/displayselect | 82 + .local/bin/dmenuhandler | 21 + .local/bin/dmenumount | 67 + .local/bin/dmenupass | 6 + .local/bin/dmenuumount | 44 + .local/bin/dmenuunicode | 18 + .local/bin/ex | 45 + .local/bin/leave | 22 + .local/bin/lfselect | 9 + .local/bin/linkhandler | 23 + .local/bin/maimpick | 14 + .local/bin/newsup | 17 + .local/bin/opout | 13 + .local/bin/qndl | 12 + .local/bin/queueandnotify | 14 + .local/bin/rotdir | 12 + .local/bin/rssadd | 18 + .local/bin/setbg | 24 + .local/bin/shortcuts | 27 + .local/bin/statusbar/sb-battery | 36 + .local/bin/statusbar/sb-clock | 29 + .local/bin/statusbar/sb-cpu | 12 + .local/bin/statusbar/sb-cpubars | 44 + .local/bin/statusbar/sb-disk | 23 + .local/bin/statusbar/sb-forecast | 35 + .local/bin/statusbar/sb-internet | 24 + .local/bin/statusbar/sb-iplocate | 10 + .local/bin/statusbar/sb-kbselect | 16 + .local/bin/statusbar/sb-mailbox | 20 + .local/bin/statusbar/sb-memory | 12 + .local/bin/statusbar/sb-moonphase | 37 + .local/bin/statusbar/sb-mpdup | 8 + .local/bin/statusbar/sb-music | 19 + .local/bin/statusbar/sb-nettraf | 29 + .local/bin/statusbar/sb-news | 17 + .local/bin/statusbar/sb-pacpackages | 29 + .local/bin/statusbar/sb-popupgrade | 9 + .local/bin/statusbar/sb-tasks | 20 + .local/bin/statusbar/sb-volume | 28 + .local/bin/tag | 67 + .local/bin/texclear | 15 + .local/share/applications/file.desktop | 4 + .local/share/applications/img.desktop | 4 + .local/share/applications/mail.desktop | 4 + .local/share/applications/pdf.desktop | 4 + .local/share/applications/rss.desktop | 4 + .local/share/applications/text.desktop | 4 + .local/share/emojis | 3076 ++++++++++++++++++++++++ .profile | 1 + .xprofile | 1 + .zprofile | 1 + 88 files changed, 6055 insertions(+) create mode 100644 .config/dunst/dunstrc create mode 100644 .config/fontconfig/fonts.conf create mode 100644 .config/gtk-2.0/gtkrc-2.0 create mode 100644 .config/gtk-3.0/settings.ini create mode 100644 .config/lf/lfrc create mode 100644 .config/lf/scope create mode 100644 .config/mimeapps.list create mode 100644 .config/mpd/mpd.conf create mode 100644 .config/mpv/input.conf create mode 100644 .config/mpv/scripts/modules.lua create mode 100644 .config/ncmpcpp/bindings create mode 100644 .config/ncmpcpp/config create mode 100644 .config/newsboat/config create mode 100644 .config/newsboat/urls create mode 100644 .config/pulse/daemon.conf create mode 100644 .config/shell/aliasrc create mode 100644 .config/shell/bm-dirs create mode 100644 .config/shell/bm-files create mode 100644 .config/shell/inputrc create mode 100644 .config/shell/profile create mode 100644 .config/sxiv/exec/key-handler create mode 100644 .config/user-dirs.dirs create mode 100644 .config/wal/postrun create mode 100644 .config/wal/templates/dunstrc create mode 100644 .config/wal/templates/zathurarc create mode 100644 .config/wget/wgetrc create mode 100644 .config/x11/xinitrc create mode 100644 .config/x11/xprofile create mode 100644 .config/x11/xresources create mode 100644 .config/zathura/zathurarc create mode 100644 .config/zsh/.zshrc create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 .local/bin/compiler create mode 100644 .local/bin/cron/checkup create mode 100644 .local/bin/cron/crontog create mode 100644 .local/bin/cron/newsup create mode 100644 .local/bin/displayselect create mode 100644 .local/bin/dmenuhandler create mode 100644 .local/bin/dmenumount create mode 100644 .local/bin/dmenupass create mode 100644 .local/bin/dmenuumount create mode 100644 .local/bin/dmenuunicode create mode 100644 .local/bin/ex create mode 100644 .local/bin/leave create mode 100644 .local/bin/lfselect create mode 100644 .local/bin/linkhandler create mode 100644 .local/bin/maimpick create mode 100644 .local/bin/newsup create mode 100644 .local/bin/opout create mode 100644 .local/bin/qndl create mode 100644 .local/bin/queueandnotify create mode 100644 .local/bin/rotdir create mode 100644 .local/bin/rssadd create mode 100644 .local/bin/setbg create mode 100644 .local/bin/shortcuts create mode 100644 .local/bin/statusbar/sb-battery create mode 100644 .local/bin/statusbar/sb-clock create mode 100644 .local/bin/statusbar/sb-cpu create mode 100644 .local/bin/statusbar/sb-cpubars create mode 100644 .local/bin/statusbar/sb-disk create mode 100644 .local/bin/statusbar/sb-forecast create mode 100644 .local/bin/statusbar/sb-internet create mode 100644 .local/bin/statusbar/sb-iplocate create mode 100644 .local/bin/statusbar/sb-kbselect create mode 100644 .local/bin/statusbar/sb-mailbox create mode 100644 .local/bin/statusbar/sb-memory create mode 100644 .local/bin/statusbar/sb-moonphase create mode 100644 .local/bin/statusbar/sb-mpdup create mode 100644 .local/bin/statusbar/sb-music create mode 100644 .local/bin/statusbar/sb-nettraf create mode 100644 .local/bin/statusbar/sb-news create mode 100644 .local/bin/statusbar/sb-pacpackages create mode 100644 .local/bin/statusbar/sb-popupgrade create mode 100644 .local/bin/statusbar/sb-tasks create mode 100644 .local/bin/statusbar/sb-volume create mode 100644 .local/bin/tag create mode 100644 .local/bin/texclear create mode 100644 .local/share/applications/file.desktop create mode 100644 .local/share/applications/img.desktop create mode 100644 .local/share/applications/mail.desktop create mode 100644 .local/share/applications/pdf.desktop create mode 100644 .local/share/applications/rss.desktop create mode 100644 .local/share/applications/text.desktop create mode 100644 .local/share/emojis create mode 120000 .profile create mode 120000 .xprofile create mode 120000 .zprofile diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc new file mode 100644 index 0000000..3a88edb --- /dev/null +++ b/.config/dunst/dunstrc @@ -0,0 +1,152 @@ +[global] + monitor = 0 + follow = keyboard + geometry = "350x5-0+24" + indicate_hidden = yes + shrink = yes + transparency = 20 + notification_height = 0 + 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 = /user/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/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf new file mode 100644 index 0000000..2d58803 --- /dev/null +++ b/.config/fontconfig/fonts.conf @@ -0,0 +1,35 @@ + + + + + serif + + Linux Libertine + Joy Pixels + Noto Color Emoji + + + + sans-serif + + Linux Biolinum + Joy Pixels + Noto Color Emoji + + + + sans + + Linux Biolinum + Joy Pixels + Noto Color Emoji + + + + monospace + + Noto Sans Mono + Liberation Mono + + + diff --git a/.config/gtk-2.0/gtkrc-2.0 b/.config/gtk-2.0/gtkrc-2.0 new file mode 100644 index 0000000..da4d02e --- /dev/null +++ b/.config/gtk-2.0/gtkrc-2.0 @@ -0,0 +1,19 @@ +# DO NOT EDIT! This file will be overwritten by LXAppearance. +# Any customization should be done in ~/.gtkrc-2.0.mine instead. + +include "~/.gtkrc-2.0.mine" +gtk-theme-name="Arc-Gruvbox" +gtk-icon-theme-name="Adwaita" +gtk-font-name="Sans 10" +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 +gtk-button-images=0 +gtk-menu-images=1 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=1 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintfull" +gtk-xft-rgba="rgb" diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..371c307 --- /dev/null +++ b/.config/gtk-3.0/settings.ini @@ -0,0 +1,16 @@ +[Settings] +gtk-theme-name=Arc-Gruvbox +gtk-icon-theme-name=Adwaita +gtk-font-name=Sans 10 +gtk-cursor-theme-size=0 +gtk-toolbar-style=GTK_TOOLBAR_TEXT +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=1 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=1 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintfull +gtk-xft-rgba=rgb +gtk-cursor-theme-name=Adwaita diff --git a/.config/lf/lfrc b/.config/lf/lfrc new file mode 100644 index 0000000..b0682d4 --- /dev/null +++ b/.config/lf/lfrc @@ -0,0 +1,104 @@ +# Basic vars +set shell bash +set shellopts '-eu' +set ifs "\n" +set scrolloff 10 +set icons +set period 1 +set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml" + +# Vars that depend on environmental variables +$lf -remote "send $id set previewer ${XDG_CONFIG_HOME:-$HOME/.config}/lf/scope" + +# cmds/functions +cmd open ${{ + case $(file --mime-type $f -b) in + image/vnd.djvu|application/pdf|application/octet-stream) setsid -f zathura $fx >/dev/null 2>&1 ;; + text/*) $EDITOR $fx;; + image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;; + image/svg+xml) display -- $f ;; + image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" | sxiv -aio 2>/dev/null | lf-select ;; + audio/*) mpv --audio-display=no $f ;; + video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;; + application/pdf|application/vnd*|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;; + *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;; + esac +}} + +cmd mkdir $mkdir -p "$(echo $* | tr ' ' '\ ')" + +cmd extract ${{ + clear; tput cup $(($(tput lines)/3)); tput bold + set -f + printf "%s\n\t" "$fx" + printf "extract?[y/N]" + read ans + [ $ans = "y" ] && ex $fx +}} + +cmd delete ${{ + clear; tput cup $(($(tput lines)/3)); tput bold + set -f + printf "%s\n\t" "$fx" + printf "delete?[y/N]" + read ans + [ $ans = "y" ] && rm -rf -- $fx +}} + +cmd moveto ${{ + clear; tput cup $(($(tput lines)/3)); tput bold + set -f + clear; echo "Move to where?" + dest="$(cut -d' ' -f2- ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|' )" && + for x in $fx; do + eval mv -iv \"$x\" \"$dest\" + done && + notify-send "๐Ÿšš File(s) moved." "File(s) moved to $dest." +}} + +cmd copyto ${{ + clear; tput cup $(($(tput lines)/3)); tput bold + set -f + clear; echo "Copy to where?" + dest="$(cut -d' ' -f2- ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|' )" && + for x in $fx; do + eval cp -ivr \"$x\" \"$dest\" + done && + notify-send "๐Ÿ“‹ File(s) copied." "File(s) copies to $dest." +}} + +cmd setbg "$1" +cmd bulkrename $vidir + +# Bindings +map $lf -remote "send $id select '$(fzf)'" +map J $lf -remote "send $id cd $(cut -d' ' -f2 ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf)" +map gh +map g top +map D delete +map E extract +map C copyto +map M moveto +map push :mkdir +map reload +map set hidden! +map shell +map x $$f +map X !$f +map o &mimeopen $f +map O $mimeopen --ask $f + +map A rename # at the very end +map c push A # new rename +map I push A # at the very beginning +map i push A # before extension +map a push A # after extension +map B bulkrename +map b $setbg $f + +map down +map up +map V push :!nvim + +# Source Bookmarks +source "~/.config/lf/shortcutrc" diff --git a/.config/lf/scope b/.config/lf/scope new file mode 100644 index 0000000..45f9f33 --- /dev/null +++ b/.config/lf/scope @@ -0,0 +1,58 @@ +#!/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;; + video/* | audio/*|application/octet-stream) mediainfo "${FILE_PATH}" || 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/mimeapps.list b/.config/mimeapps.list new file mode 100644 index 0000000..052a354 --- /dev/null +++ b/.config/mimeapps.list @@ -0,0 +1,17 @@ +[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/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 +x-scheme-handler/lbry=lbry.desktop +inode/directory=file.desktop diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf new file mode 100644 index 0000000..b5dabc9 --- /dev/null +++ b/.config/mpd/mpd.conf @@ -0,0 +1,21 @@ +music_directory "~/Tower/Music" +playlist_directory "~/.config/mpd/playlists" + +auto_update "yes" +bind_to_address "127.0.0.1" +restore_paused "yes" +max_output_buffer_size "16384" + +audio_output { + type "pulse" + name "pulse" + #type "alsa" + #name "ALSA" +} + +audio_output { + type "fifo" + name "Visualizer feed" + path "/tmp/mpd.fifo" + format "44100:16:2" +} diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf new file mode 100644 index 0000000..d614b15 --- /dev/null +++ b/.config/mpv/input.conf @@ -0,0 +1,5 @@ +l seek 5 +h seek -5 +j seek -60 +k seek 60 +S cycle sub diff --git a/.config/mpv/scripts/modules.lua b/.config/mpv/scripts/modules.lua new file mode 100644 index 0000000..37b69b3 --- /dev/null +++ b/.config/mpv/scripts/modules.lua @@ -0,0 +1,3 @@ +local mpv_scripts_dir_path = os.getenv("HOME") .. "/.config/mpv/scripts/" +function load(relative_path) dofile(mpv_scripts_dir_path .. relative_path) end +load("mpvSockets/mpvSockets.lua") diff --git a/.config/ncmpcpp/bindings b/.config/ncmpcpp/bindings new file mode 100644 index 0000000..58e2960 --- /dev/null +++ b/.config/ncmpcpp/bindings @@ -0,0 +1,480 @@ +############################################################## +## This is the example bindings file. Copy it to ## +## ~/.ncmpcpp/bindings or $XDG_CONFIG_HOME/ncmpcpp/bindings ## +## and set up your preferences ## +############################################################## +# +#def_key "mouse" +# mouse_event +# +#def_key "up" +# scroll_up +# +#def_key "shift-up" +# select_item +# scroll_up +# +#def_key "down" +# scroll_down +# +#def_key "shift-down" +# select_item +# scroll_down +# +#def_key "[" +# scroll_up_album +# +#def_key "]" +# scroll_down_album +# +#def_key "{" +# scroll_up_artist +# +#def_key "}" +# scroll_down_artist +# +#def_key "page_up" +# page_up +# +#def_key "page_down" +# page_down +# +#def_key "home" +# move_home +# +#def_key "end" +# move_end +# +#def_key "insert" +# select_item +# +#def_key "enter" +# enter_directory +# +#def_key "enter" +# toggle_output +# +#def_key "enter" +# run_action +# +#def_key "enter" +# play_item +# +#def_key "space" +# add_item_to_playlist +# +#def_key "space" +# toggle_lyrics_update_on_song_change +# +#def_key "space" +# toggle_visualization_type +# +#def_key "delete" +# delete_playlist_items +# +#def_key "delete" +# delete_browser_items +# +#def_key "delete" +# delete_stored_playlist +# +#def_key "right" +# next_column +# +#def_key "right" +# slave_screen +# +#def_key "right" +# volume_up +# +#def_key "+" +# volume_up +# +#def_key "left" +# previous_column +# +#def_key "left" +# master_screen +# +#def_key "left" +# volume_down +# +#def_key "-" +# volume_down +# +#def_key ":" +# execute_command +# +#def_key "tab" +# next_screen +# +#def_key "shift-tab" +# previous_screen +# +#def_key "f1" +# show_help +# +#def_key "1" +# show_playlist +# +#def_key "2" +# show_browser +# +#def_key "2" +# change_browse_mode +# +#def_key "3" +# show_search_engine +# +#def_key "3" +# reset_search_engine +# +#def_key "4" +# show_media_library +# +#def_key "4" +# toggle_media_library_columns_mode +# +#def_key "5" +# show_playlist_editor +# +#def_key "6" +# show_tag_editor +# +#def_key "7" +# show_outputs +# +#def_key "8" +# show_visualizer +# +#def_key "=" +# show_clock +# +#def_key "@" +# show_server_info +# +#def_key "s" +# stop +# +#def_key "p" +# pause +# +#def_key ">" +# next +# +#def_key "<" +# previous +# +#def_key "ctrl-h" +# jump_to_parent_directory +# +#def_key "ctrl-h" +# replay_song +# +#def_key "backspace" +# jump_to_parent_directory +# +#def_key "backspace" +# replay_song +# +#def_key "f" +# seek_forward +# +#def_key "b" +# seek_backward +# +#def_key "r" +# toggle_repeat +# +#def_key "z" +# toggle_random +# +#def_key "y" +# save_tag_changes +# +#def_key "y" +# start_searching +# +#def_key "y" +# toggle_single +# +#def_key "R" +# toggle_consume +# +#def_key "Y" +# toggle_replay_gain_mode +# +#def_key "T" +# toggle_add_mode +# +#def_key "|" +# toggle_mouse +# +#def_key "#" +# toggle_bitrate_visibility +# +#def_key "Z" +# shuffle +# +#def_key "x" +# toggle_crossfade +# +#def_key "X" +# set_crossfade +# +#def_key "u" +# update_database +# +#def_key "ctrl-s" +# sort_playlist +# +#def_key "ctrl-s" +# toggle_browser_sort_mode +# +#def_key "ctrl-s" +# toggle_media_library_sort_mode +# +#def_key "ctrl-r" +# reverse_playlist +# +#def_key "ctrl-f" +# apply_filter +# +#def_key "ctrl-_" +# select_found_items +# +#def_key "/" +# find +# +#def_key "/" +# find_item_forward +# +#def_key "?" +# find +# +#def_key "?" +# find_item_backward +# +#def_key "." +# next_found_item +# +#def_key "," +# previous_found_item +# +#def_key "w" +# toggle_find_mode +# +#def_key "e" +# edit_song +# +#def_key "e" +# edit_library_tag +# +#def_key "e" +# edit_library_album +# +#def_key "e" +# edit_directory_name +# +#def_key "e" +# edit_playlist_name +# +#def_key "e" +# edit_lyrics +# +#def_key "i" +# show_song_info +# +#def_key "I" +# show_artist_info +# +#def_key "g" +# jump_to_position_in_song +# +#def_key "l" +# show_lyrics +# +#def_key "ctrl-v" +# select_range +# +#def_key "v" +# reverse_selection +# +#def_key "V" +# remove_selection +# +#def_key "B" +# select_album +# +#def_key "a" +# add_selected_items +# +#def_key "c" +# clear_playlist +# +#def_key "c" +# clear_main_playlist +# +#def_key "C" +# crop_playlist +# +#def_key "C" +# crop_main_playlist +# +#def_key "m" +# move_sort_order_up +# +#def_key "m" +# move_selected_items_up +# +#def_key "n" +# move_sort_order_down +# +#def_key "n" +# move_selected_items_down +# +#def_key "M" +# move_selected_items_to +# +#def_key "A" +# add +# +#def_key "S" +# save_playlist +# +#def_key "o" +# jump_to_playing_song +# +#def_key "G" +# jump_to_browser +# +#def_key "G" +# jump_to_playlist_editor +# +#def_key "~" +# jump_to_media_library +# +#def_key "E" +# jump_to_tag_editor +# +#def_key "U" +# toggle_playing_song_centering +# +#def_key "P" +# toggle_display_mode +# +#def_key "\\" +# toggle_interface +# +#def_key "!" +# toggle_separators_between_albums +# +#def_key "L" +# toggle_lyrics_fetcher +# +#def_key "F" +# fetch_lyrics_in_background +# +#def_key "alt-l" +# toggle_fetching_lyrics_in_background +# +#def_key "ctrl-l" +# toggle_screen_lock +# +#def_key "`" +# toggle_library_tag_type +# +#def_key "`" +# refetch_lyrics +# +#def_key "`" +# add_random_items +# +#def_key "ctrl-p" +# set_selected_items_priority +# +#def_key "q" +# quit +# +# +#def_key "f" +# find +#def_key "f" +# find_item_forward + +def_key "+" + show_clock +def_key "=" + volume_up + +def_key "j" + scroll_down +def_key "k" + scroll_up + +def_key "ctrl-u" + page_up +#push_characters "kkkkkkkkkkkkkkk" +def_key "ctrl-d" + page_down +#push_characters "jjjjjjjjjjjjjjj" +def_key "u" + page_up +#push_characters "kkkkkkkkkkkkkkk" +def_key "d" + page_down +#push_characters "jjjjjjjjjjjjjjj" +def_key "h" + previous_column +def_key "l" + next_column + +def_key "." + show_lyrics + +def_key "n" + next_found_item +def_key "N" + previous_found_item + +# not used but bound +def_key "J" + move_sort_order_down +def_key "K" + move_sort_order_up +def_key "h" + jump_to_parent_directory +def_key "l" + enter_directory +def_key "l" + run_action +def_key "l" + play_item +def_key "m" + show_media_library +def_key "m" + toggle_media_library_columns_mode +def_key "t" + show_tag_editor +def_key "v" + show_visualizer +def_key "G" + move_end +def_key "g" + move_home +#jump_to_position_in_song +def_key "U" + update_database +def_key "s" + reset_search_engine +def_key "s" + show_search_engine +def_key "f" + show_browser +def_key "f" + change_browse_mode +def_key "x" + delete_playlist_items +def_key "P" + show_playlist + diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config new file mode 100644 index 0000000..3632496 --- /dev/null +++ b/.config/ncmpcpp/config @@ -0,0 +1,32 @@ +# vim: filetype=conf + +ncmpcpp_directory = "~/.config/ncmpcpp" +lyrics_directory = "~/.local/share/lyrics" +mpd_music_dir = "~/Music" +message_delay_time = "1" +visualizer_type = "spectrum" +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) +playlist_display_mode = columns +browser_display_mode = columns +progressbar_look = -> +media_library_primary_tag = album_artist +media_library_albums_split_by_date = no +startup_screen = "media_library" +display_volume_level = no +ignore_leading_the = yes +external_editor = nvim +use_console_editor = yes +empty_tag_color = magenta +main_window_color = white +progressbar_color = black:b +progressbar_elapsed_color = blue:b +statusbar_color = red +statusbar_time_color = cyan:b diff --git a/.config/newsboat/config b/.config/newsboat/config new file mode 100644 index 0000000..69d8960 --- /dev/null +++ b/.config/newsboat/config @@ -0,0 +1,55 @@ +#show-read-feeds no +auto-reload yes + +external-url-viewer "urlscan -dc -r 'linkhandler {}'" + +bind-key j down +bind-key k up +bind-key j next articlelist +bind-key k prev articlelist +bind-key J next-feed articlelist +bind-key K prev-feed articlelist +bind-key G end +bind-key g home +bind-key d pagedown +bind-key u pageup +bind-key l open +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 + +color listnormal cyan default +color listfocus black yellow standout bold +color listnormal_unread blue default +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 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 +macro c set browser "echo %u | xclip -r -sel c" ; open-in-browser ; set browser linkhandler +macro C set browser "youtube-viewer --comments=%u" ; open-in-browser ; set browser linkhandler +macro p set browser "peertubetorrent %u 480" ; open-in-browser ; set browser linkhandler +macro P set browser "peertubetorrent %u 1080" ; open-in-browser ; set browser linkhandler + +highlight all "---.*---" yellow +highlight feedlist ".*(0/0))" black +highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold +highlight article "(^Link:.*|^Date:.*)" default default +highlight article "https?://[^ ]+" green default +highlight article "^(Title):.*$" blue default +highlight article "\\[[0-9][0-9]*\\]" magenta default bold +highlight article "\\[image\\ [0-9]+\\]" green default bold +highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold +highlight article ":.*\\(link\\)$" cyan default +highlight article ":.*\\(image\\)$" blue default +highlight article ":.*\\(embedded flash\\)$" magenta default diff --git a/.config/newsboat/urls b/.config/newsboat/urls new file mode 100644 index 0000000..e69de29 diff --git a/.config/pulse/daemon.conf b/.config/pulse/daemon.conf new file mode 100644 index 0000000..ef900f1 --- /dev/null +++ b/.config/pulse/daemon.conf @@ -0,0 +1,4 @@ +# Never exit pulseaudio if idle. This is to deal with an issue of Chromium +# browsers not properly starting Pulseaudio by themselves. When the underlying +# issue is solved, this file/directory should be removed. +exit-idle-time = -1 diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc new file mode 100644 index 0000000..fccec8b --- /dev/null +++ b/.config/shell/aliasrc @@ -0,0 +1,96 @@ +#!/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" + +# sudo not required for some system commands +for x in mount umount sv pacman updatedb su ; do + alias $x="sudo $x" +done + +# 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="youtube-dl --add-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" + +# Abbreviating long commands +alias \ + ka="killall" \ + YT="youtube-viewer" \ + sdn="sudo shutdown -h now" \ + e="$EDITOR" \ + v="$EDITOR" \ + p="sudo pacman" \ + z="zathura" \ + ll="ls -l" \ + la="ls -al" \ + ag="alias | grep" + +# Git aliases +alias \ + g="git" \ + ga="git add" \ + ga="git add --all" \ + gb="git branch" \ + gba="git branch -a" \ + gbd="git branch -d" \ + gbD="git branch -D" \ + gbs="git bisect" \ + gbsb="git bisect bad" \ + gbsg="git bisect good" \ + gbsr="git bisect reset" \ + gbss="git bisect start" \ + gc="git commit -v" \ + gc!="git commit -v --amend" \ + gcn!="git commit -v --no-edit --amend" \ + gca="git commit -v -a" \ + gca!="git commit -v -a --amend" \ + gcan!="git commit -v -a --no-edit --amend" \ + gcam="git commit -a -m" \ + gcm="git checkout $(git_main_branch)" \ + gco="git checkout" \ + gcb="git checkout -b" \ + gf="git fetch" \ + gfa="git fetch --all --prune" \ + gd="git diff" \ + gl="git pull" \ + glg="git log --stat" \ + glgg="git log --graph" \ + glo="git log --oneline --decorate" \ + glgp="git log --stat -p" \ + gm="git merge" \ + gp="git push" \ + grb="git rebase" \ + gsb="git status -sb" \ + gsh="git show" \ + gsps="git show --pretty=short --show-signature" \ + gsta="git stash push" \ + gstaa="git stash apply" \ + gstp="git stash pop" \ + gstl="git stash list" \ + gsts="git stash show --text" \ + gup="git pull --rebase" \ + nah="git reset --hard; git clean -df" \ + gapa="git add --patch -A" \ + gun="git reset --" \ + glgm="git log --stat --author=christopher" \ + glgpm="git log --stat -p --author=christopher" + diff --git a/.config/shell/bm-dirs b/.config/shell/bm-dirs new file mode 100644 index 0000000..b3ed403 --- /dev/null +++ b/.config/shell/bm-dirs @@ -0,0 +1,22 @@ +cac ${XDG_CACHE_HOME:-$HOME/.cache} +cf ${XDG_CONFIG_HOME:-$HOME/.config} +D ${XDG_DOWNLOAD_DIR:-$HOME/Downloads} +d ${XDG_DOCUMENTS_DIR:-$HOME/Tower/Documents} +dt ${XDG_DATA_HOME:-$HOME/.local/share} +h $HOME +m ${XDG_MUSIC_DIR:-$HOME/Tower/Music} +mn /mnt +pp ${XDG_PICTURES_DIR:-$HOME/Tower/Pictures} +sc $HOME/.local/bin +src $HOME/.local/src +vv ${XDG_VIDEOS_DIR:-$HOME/Tower/Videos} +c $HOME/Code +cp $HOME/Code/PHP +cw $HOME/Code/Websites +cj $HOME/Code/JavaScript +cd $HOME/Code/DevOps +cr $HOME/Code/Rust +cm $HOME/Code/MobileApps +cs $HOME/Code/Scala +ct $HOME/Code/Tutorials + diff --git a/.config/shell/bm-files b/.config/shell/bm-files new file mode 100644 index 0000000..ed17fb3 --- /dev/null +++ b/.config/shell/bm-files @@ -0,0 +1,16 @@ +bf ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files +bd ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs +cfx ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources +cfb ~/.local/src/dwmblocks/config.h +cfv ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim +cfz $ZDOTDIR/.zshrc +cfa ${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc +cfp ${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile +cfm ${XDG_CONFIG_HOME:-$HOME/.config}/mutt/muttrc +cfn ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/config +cfu ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls +cfmb ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/bindings +cfmc ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/config +cfl ${XDG_CONFIG_HOME:-$HOME/.config}/lf/lfrc +cfL ${XDG_CONFIG_HOME:-$HOME/.config}/lf/scope +cfX ${XDG_CONFIG_HOME:-$HOME/.config}/sxiv/exec/key-handler diff --git a/.config/shell/inputrc b/.config/shell/inputrc new file mode 100644 index 0000000..32a26e8 --- /dev/null +++ b/.config/shell/inputrc @@ -0,0 +1,19 @@ +$inclue /etc/inputrc +set editing-mode vi +$if mode=vi + + set show-mode-in-prompt on + set vi-ins-mode-string \1\e[6 q\2 + set vi-cmd-mode-string \1\e[2 q\2 + + set keymap vi-command + # these are for vi-command mode + Control-l: clear-screen + Control-a: beginning-of-line + + set keymap vi-insert + # these are for vi-insert mode + Control-l: clear-screen + Control-a: beginning-of-line + +$endif diff --git a/.config/shell/profile b/.config/shell/profile new file mode 100644 index 0000000..0e0e8f4 --- /dev/null +++ b/.config/shell/profile @@ -0,0 +1,144 @@ +#!/bin/zsh + +# profile file. Runs on login. Environmental variables are set here. + +# Adds `~/.local/bin` to $PATH +export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}" + +unsetopt PROMPT_SP + +# Default programs +export EDITOR="nvim" +export TERMINAL="alacritty" +export BROWSER="firefox" + +# ~/ Clean-up: +export TOWER="$HOME/Tower" +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_DOCUMENTS_DIR="$TOWER/Documents" +export XDG_MUSIC_DIR="$TOWER/Music" +export XDG_PICTURES_DIR="$TOWER/Pictures" +export XDG_VIDEOS_DIR="$TOWER/Videos" +export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/x11/xinitrc" +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}/shell/inputrc" +export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" +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 UNISON="${XDG_DATA_HOME:-$HOME/.local/share}/unison" +export HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/history" +export WEECHAT_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/weechat" +export MBSYNCRC="${XDG_CONFIG_HOME:-$HOME/.config}/mbsync/config" +export ELECTRUMDIR="${XDG_DATA_HOME:-$HOME/.local/share}/electrum" + +# Other program settings +export DICS="/usr/share/stardicts/dic/" +export SUDO_ASK_PASS="$HOME/.local/bin/dmenupass" +export FZF_DEFAULT_OPTS="--layout=reverse --height 40%" +export LESS=-R +export LESS_TERMCAP_mb="$(printf '%b' '[1;31m')" +export LESS_TERMCAP_md="$(printf '%b' '[1;36m')" +export LESS_TERMCAP_me="$(printf '%b' '[0m')" +export LESS_TERMCAP_so="$(printf '%b' '[01;44;33m')" +export LESS_TERMCAP_se="$(printf '%b' '[0m')" +export LESS_TERMCAP_us="$(printf '%b' '[1;32m')" +export LESS_TERMCAP_ue="$(printf '%b' '[0m')" +export LESS_OPEN="| /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 # Fix for Java applications in dwm + +# This is the list for lf icons: +export LF_ICONS="di=๐Ÿ“:\ +fi=๐Ÿ“ƒ:\ +tw=๐Ÿค:\ +ow=๐Ÿ“‚:\ +ln=โ›“:\ +or=โŒ:\ +ex=๐ŸŽฏ:\ +*.txt=โœ:\ +*.mom=โœ:\ +*.me=โœ:\ +*.ms=โœ:\ +*.png=๐Ÿ–ผ:\ +*.webp=๐Ÿ–ผ:\ +*.ico=๐Ÿ–ผ:\ +*.jpg=๐Ÿ“ธ:\ +*.jpe=๐Ÿ“ธ:\ +*.jpeg=๐Ÿ“ธ:\ +*.gif=๐Ÿ–ผ:\ +*.svg=๐Ÿ—บ:\ +*.tif=๐Ÿ–ผ:\ +*.tiff=๐Ÿ–ผ:\ +*.xcf=๐Ÿ–Œ:\ +*.html=๐ŸŒŽ:\ +*.xml=๐Ÿ“ฐ:\ +*.gpg=๐Ÿ”’:\ +*.css=๐ŸŽจ:\ +*.pdf=๐Ÿ“š:\ +*.djvu=๐Ÿ“š:\ +*.epub=๐Ÿ“š:\ +*.csv=๐Ÿ““:\ +*.xlsx=๐Ÿ““:\ +*.tex=๐Ÿ“œ:\ +*.md=๐Ÿ“˜:\ +*.r=๐Ÿ“Š:\ +*.R=๐Ÿ“Š:\ +*.rmd=๐Ÿ“Š:\ +*.Rmd=๐Ÿ“Š:\ +*.m=๐Ÿ“Š:\ +*.mp3=๐ŸŽต:\ +*.opus=๐ŸŽต:\ +*.ogg=๐ŸŽต:\ +*.m4a=๐ŸŽต:\ +*.flac=๐ŸŽผ:\ +*.wav=๐ŸŽผ:\ +*.mkv=๐ŸŽฅ:\ +*.mp4=๐ŸŽฅ:\ +*.webm=๐ŸŽฅ:\ +*.mpeg=๐ŸŽฅ:\ +*.avi=๐ŸŽฅ:\ +*.mov=๐ŸŽฅ:\ +*.mpg=๐ŸŽฅ:\ +*.wmv=๐ŸŽฅ:\ +*.m4b=๐ŸŽฅ:\ +*.flv=๐ŸŽฅ:\ +*.zip=๐Ÿ“ฆ:\ +*.rar=๐Ÿ“ฆ:\ +*.7z=๐Ÿ“ฆ:\ +*.tar.gz=๐Ÿ“ฆ:\ +*.z64=๐ŸŽฎ:\ +*.v64=๐ŸŽฎ:\ +*.n64=๐ŸŽฎ:\ +*.gba=๐ŸŽฎ:\ +*.nes=๐ŸŽฎ:\ +*.gdi=๐ŸŽฎ:\ +*.1=โ„น:\ +*.nfo=โ„น:\ +*.info=โ„น:\ +*.log=๐Ÿ“™:\ +*.iso=๐Ÿ“€:\ +*.img=๐Ÿ“€:\ +*.bib=๐ŸŽ“:\ +*.ged=๐Ÿ‘ช:\ +*.part=๐Ÿ’”:\ +*.torrent=๐Ÿ”ฝ:\ +*.jar=โ™จ:\ +*.java=โ™จ:\ +" + +[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && shortcuts >/dev/null 2>&1 & + +[ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx "$XINITRC" + diff --git a/.config/sxiv/exec/key-handler b/.config/sxiv/exec/key-handler new file mode 100644 index 0000000..f164306 --- /dev/null +++ b/.config/sxiv/exec/key-handler @@ -0,0 +1,33 @@ +#!/bin/sh +while read file +do + case "$1" in + "w") setbg "$file" & ;; + "c") + [ -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")" "$file copied to $destdir." & + ;; + "m") + [ -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." & + ;; + "r") + convert -rotate 90 "$file" "$file" ;; + "R") + convert -rotate -90 "$file" "$file" ;; + "f") + convert -flop "$file" "$file" ;; + "y") + echo -n "$file" | tr -d '\n' | xclip -selection clipboard && + notify-send "$file copied to clipboard" & ;; + "Y") + 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") setsid -f gimp "$file" ;; + "i") notify-send "File information" "$(mediainfo "$file")" ;; + esac +done diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs new file mode 100644 index 0000000..5a28707 --- /dev/null +++ b/.config/user-dirs.dirs @@ -0,0 +1 @@ +XDG_DESKTOP_DIR="$HOME/" diff --git a/.config/wal/postrun b/.config/wal/postrun new file mode 100644 index 0000000..1c7b5d9 --- /dev/null +++ b/.config/wal/postrun @@ -0,0 +1,28 @@ + +#!/bin/bash + +source "${HOME}/.cache/wal/colors.sh" + +mkdir -p "${HOME}/.config/dunst" +mkdir -p "${HOME}/.config/zathura" +ln -sf "${HOME}/.cache/wal/dunstrc" "${HOME}/.config/dunst/dunstrc" +ln -sf "${HOME}/.cache/wal/zathurarc" "${HOME}/.config/zathura/zathurarc" + +fix_sequences() { + e=$'\e' + sequences=$(cat) + foreground_color="$(echo -e "${sequences}\c" | grep --color=never -Eo "${e}]10[^${e}\\\\]*?${e}\\\\" | grep --color=never -Eo "#[0-9A-Fa-f]{6}")" + background_color="$(echo -e "${sequences}\c" | grep --color=never -Eo "${e}]11[^${e}\\\\]*?${e}\\\\" | grep --color=never -Eo "#[0-9A-Fa-f]{6}")" + cursor_color="$(echo -e "${sequences}\c" | grep --color=never -Eo "${e}]12[^${e}\\\\]*?${e}\\\\" | grep --color=never -Eo "#[0-9A-Fa-f]{6}")" + + for term in /dev/pts/{0..9}* + do + echo -e "\e]4;256;${cursor_color}\a\c" > "${term}" 2>/dev/nul + echo -e "\e]4;258;${background_color}\a\c" > "${term}" 2>/dev/null + echo -e "\e]4;259;${foreground_color}\a\c" > "${term}" 2>/dev/null + done +} + +fix_sequences <"${HOME}/.cache/wal/sequences" + +pkill dunst; dunst & diff --git a/.config/wal/templates/dunstrc b/.config/wal/templates/dunstrc new file mode 100644 index 0000000..9a62500 --- /dev/null +++ b/.config/wal/templates/dunstrc @@ -0,0 +1,152 @@ +[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 = "{color4}" + + # 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 = "{background}" + foreground = "{foreground}" + timeout = 5 + # Icon for notifications with low urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_normal] + background = "{background}" + foreground = "{foreground}" + timeout = 5 + +[urgency_critical] + background = "{background}" + foreground = "{foreground}" + 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/wal/templates/zathurarc b/.config/wal/templates/zathurarc new file mode 100644 index 0000000..a12bbd3 --- /dev/null +++ b/.config/wal/templates/zathurarc @@ -0,0 +1,35 @@ +set sandbox none +set statusbar-h-padding 0 +set statusbar-v-padding 0 +set page-padding 1 +set selection-clipboard clipboard +map u scroll half-up +map d scroll half-down +map D toggle_page_mode +map r reload +map R rotate +map K zoom in +map J zoom out +map i recolor +map p print + +set default-bg "{background}" +set default-fg "{foreground}" +set statusbar-bg "{background}" +set statusbar-fg "{foreground}" +set inputbar-bg "{background}" +set inputbar-fg "{foreground}" +set notification-bg "{background}" +set notification-fg "{foreground}" +set notification-error-bg "{background}" +set notification-error-fg "{foreground}" +set notification-warning-bg "{background}" +set notification-warning-fg "{foreground}" +set highlight-color "{color3}" +set highlight-active-color "{color4}" +set completion-bg "{color3}" +set completion-fg "{color4}" +set completion-highlight-bg "{color3}" +set completion-highlight-fg "{color4}" +set recolor-lightcolor "{background}" +set recolor-darkcolor "{foreground}" diff --git a/.config/wget/wgetrc b/.config/wget/wgetrc new file mode 100644 index 0000000..4fd7999 --- /dev/null +++ b/.config/wget/wgetrc @@ -0,0 +1 @@ +hsts-file=~/.cache/wget-hsts diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc new file mode 100644 index 0000000..b69ea81 --- /dev/null +++ b/.config/x11/xinitrc @@ -0,0 +1,17 @@ +#!/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 + +ssh-agent dwm diff --git a/.config/x11/xprofile b/.config/x11/xprofile new file mode 100644 index 0000000..e3f5866 --- /dev/null +++ b/.config/x11/xprofile @@ -0,0 +1,10 @@ +#!/bin/sh + +# This file runs when a DM logs you into a graphical session. +# If you use startx/xinit, this file will also be sourced. + +# xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources & # Use Xresources colors/settings on startup +xcompmgr & # xcompmgr for transparency +dunst & # dunst for notifications +xset r rate 300 50 & # Speed xrate up +unclutter & # Remove mouse when idle diff --git a/.config/x11/xresources b/.config/x11/xresources new file mode 100644 index 0000000..611f39a --- /dev/null +++ b/.config/x11/xresources @@ -0,0 +1,156 @@ +!! Transparency (0-1): +*.alpha: 0.8 + +!! Set a default font and font size as below: +*.font: monospace:size=10 + +/* 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 */ diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc new file mode 100644 index 0000000..452e116 --- /dev/null +++ b/.config/zathura/zathurarc @@ -0,0 +1,15 @@ +set sandbox none +set statusbar-h-padding 0 +set statusbar-v-padding 0 +set page-padding 1 +set selection-clipboard clipboard +map u scroll half-up +map d scroll half-down +map D toggle_page_mode +map r reload +map R rotate +map K zoom in +map J zoom out +map i recolor +map p print +map g goto top diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc new file mode 100644 index 0000000..f9ab544 --- /dev/null +++ b/.config/zsh/.zshrc @@ -0,0 +1,79 @@ +# ZSH Config File + +# Enable colors and set prompt +autoload -U colors && colors +PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]{$reset_color%}$%b " +setopt autocd # Automatically cd into typed directory. +stty stop undef # Disable ctrl-s to freeze terminal. +setopt interactive_comments + +# History in cache directory: +HISTSIZE=10000000 +SAVEHIST=10000000 +HISTFILE=~/.cache/zsh/history + +# Load aliases and shortcuts if existent. +[ -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 +zstyle ':completion:*' menu select +zmodload zsh/complist +compinit +_comp_options+=(globdots) # Include hidden files. + +# vi mode +bindkey -v +export KEYTIMEOUT=1 + +# Use vim keys in tab complete menu: +bindkey -M menuselect 'h' vi-backward-char +bindkey -M menuselect 'k' vi-up-line-or-history +bindkey -M menuselect 'l' vi-forward-char +bindkey -M menuselect 'j' vi-down-line-or-history +bindkey -v '^?' backward-delete-char + +# Change cursor shape for different vi modes. +function zle-keymap-select() { + case $KEYMAP in + vicmd) echo -ne '\e[1 q';; # block + viins|main) echo -ne '\e[5 q';; # beam + esac +} +zle -N zle-keymap-select +zle-line-init() { + zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) + echo -ne "\e[5 q" +} +zle -N zle-line-init +echo -ne '\e[5 q' # Use beam shape cursor on startup. +preexec() { + echo -ne '\e[5 q' +} + +# Use lf to switch directories and bind it to ctrl-o +lfcd() { + tmp="$(mktemp)" + lf -last-dir-path="$tmp" "$@" + if [ -f "$tmp" ]; then + dir="$(cat "$tmp")" + rm -f "$tmp" >/dev/null + [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" + fi +} +bindkey -s '^o' 'lfcd\n' + +bindkey -s '^a' 'bc -lq\n' + +bindkey -s '^f' 'cd "$(dirname "$(fzf)")"\n' + +bindkey '^[[P' delete-char + +# Edit line in vim with ctrl-e: +autoload edit-commandd-line; zle -N edit-command-line +bindkey '^e' edit-command-line + +# Load syntax highlighting; should be last. +source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..241e560 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +* + diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..e69de29 diff --git a/.local/bin/compiler b/.local/bin/compiler new file mode 100644 index 0000000..39e149e --- /dev/null +++ b/.local/bin/compiler @@ -0,0 +1,57 @@ +#!/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, .org. Opens .sent files as sent +# presentations. Runs scripts based on extention or shebang. +# +# Note that .tex files which you wish to compile with XeLaTeX should have the +# string "xelatex" somewhere in a comment/command in the first 5 lines. + +file=$(readlink -f "$1") +dir=${file%/*} +base="${file%.*}" +ext="${file##*.}" + +cd "$dir" || exit 1 + +textype() { \ + command="pdflatex" + ( head -n5 "$file" | grep -qi 'xelatex' ) && command="xelatex" + $command --output-directory="$dir" "$base" && + grep -qi addbibresource "$file" && + biber --input-directory "$dir" "$base" && + $command --output-directory="$dir" "$base" && + $command --output-directory="$dir" "$base" +} + +case "$ext" in + # Try to keep these cases in alphabetical order. + [0-9]) preconv "$file" | refer -PS -e | groff -mandoc -T pdf > "$base".pdf ;; + c) cc "$file" -o "$base" && "$base" ;; + cpp) g++ "$file" -o "$base" && "$base" ;; + cs) mcs "$file" && mono "$base".exe ;; + go) go run "$file" ;; + h) sudo make install ;; + java) javac -d classes "$file" && java -cp classes "${1%.*}" ;; + m) octave "$file" ;; + md) if [ -x "$(command -v lowdown)" ]; then + lowdown -d nointem -e super "$file" -Tms | groff -mpdfmark -ms -kept > "$base".pdf + elif [ -x "$(command -v groffdown)" ]; then + groffdown -i "$file" | groff > "$base.pdf" + else + pandoc -t ms --highlight-style=kate -s -o "$base".pdf "$file" + fi ; ;; + mom) preconv "$file" | refer -PS -e | groff -mom -kept -T pdf > "$base".pdf ;; + ms) preconv "$file" | refer -PS -e | groff -me -ms -kept -T pdf > "$base".pdf ;; + org) emacs "$file" --batch -u "$USER" -f org-latex-export-to-pdf ;; + py) python "$file" ;; + [rR]md) Rscript -e "rmarkdown::render('$file', quiet=TRUE)" ;; + rs) cargo build ;; + sass) sassc -a "$file" "$base.css" ;; + scad) openscad -o "$base".stl "$file" ;; + sent) setsid -f sent "$file" 2>/dev/null ;; + tex) textype "$file" ;; + *) head -n1 "$file" | grep "^#!/" | sed "s/^#!//" | xargs -r -I % "$file" ;; +esac diff --git a/.local/bin/cron/checkup b/.local/bin/cron/checkup new file mode 100644 index 0000000..d754317 --- /dev/null +++ b/.local/bin/cron/checkup @@ -0,0 +1,18 @@ +#!/bin/sh + +# Syncs repositories and downloads updates, meant to be run as a cronjob. + +ping -q -c 1 example.org > /dev/null || exit + +notify-send "๐Ÿ“ฆ Repository Sync" "Checking for package updates..." + +sudo pacman -Syyuw --noconfirm || notify-send "Error downloading updates. +Check your internet connection, if pacman is already running, or run update manually to see errors." +pkill -RTMIN+8 "${STATUSBAR:-dwmblocks}" + +if pacman -Qu | grep -v "\[ignored\]" +then + notify-send "๐ŸŽ Repository Sync" "Updates available. Click statusbar icon (๐Ÿ“ฆ) for update." +else + notify-send "๐Ÿ“ฆ Repository Sync" "Sync complete. No new packages for update." +fi diff --git a/.local/bin/cron/crontog b/.local/bin/cron/crontog new file mode 100644 index 0000000..5aba5e6 --- /dev/null +++ b/.local/bin/cron/crontog @@ -0,0 +1,6 @@ +#!/bin/sh + +# Toggles all cronjobs off/on. +# Stores disabled crontabs in ~/.consaved 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.") diff --git a/.local/bin/cron/newsup b/.local/bin/cron/newsup new file mode 100644 index 0000000..29f2b3c --- /dev/null +++ b/.local/bin/cron/newsup @@ -0,0 +1,17 @@ +#!/bin/sh + +# 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 example.org > /dev/null || exit + +/usr/bin/notify-send "๐Ÿ“ฐ Updating RSS feeds..." + +pgrep -f newsboat$ && /usr/bin/xdotool key --window "$(/usr/bin/xdotool search --name newsboat)" R && exit + +echo ๐Ÿ”ƒ > /tmp/newsupdate +pkill -RTMIN+6 "${STATUSBAR:-dwmblocks}" +/usr/bin/newsboat -x reload +rm -f /tmp/newsupdate +pkill -RTMIN+6 "${STATUSBAR:-dwmblocks}" +/usr/bin/notify-send "๐Ÿ“ฐ RSS feed update complete." diff --git a/.local/bin/displayselect b/.local/bin/displayselect new file mode 100644 index 0000000..0227a32 --- /dev/null +++ b/.local/bin/displayselect @@ -0,0 +1,82 @@ +#!/bin/sh + +# A UI for detecting and selecting all displays. Probes xrandr for connected +# displays and lets user select one to use. User may also select "manual +# selection" which opens arandr. + +twoscreen() { # If multi-monitor is selected and there are two screens. + + mirror=$(printf "no\\nyes" | dmenu -i -p "Mirror displays?") + # Mirror displays using native resolution of external display and a scaled + # version for the internal display + if [ "$mirror" = "yes" ]; then + external=$(echo "$screens" | dmenu -i -p "Optimize resolution for:") + internal=$(echo "$screens" | grep -v "$external") + + res_external=$(xrandr --query | sed -n "/^$external/,/\+/p" | \ + tail -n 1 | awk '{print $1}') + res_internal=$(xrandr --query | sed -n "/^$internal/,/\+/p" | \ + tail -n 1 | awk '{print $1}') + + res_ext_x=$(echo "$res_external" | sed 's/x.*//') + res_ext_y=$(echo "$res_external" | sed 's/.*x//') + res_int_x=$(echo "$res_internal" | sed 's/x.*//') + res_int_y=$(echo "$res_internal" | sed 's/.*x//') + + scale_x=$(echo "$res_ext_x / $res_int_x" | bc -l) + scale_y=$(echo "$res_ext_y / $res_int_y" | bc -l) + + xrandr --output "$external" --auto --scale 1.0x1.0 \ + --output "$internal" --auto --same-as "$external" \ + --scale "$scale_x"x"$scale_y" + else + + 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?") + xrandr --output "$primary" --auto --scale 1.0x1.0 --output "$secondary" --"$direction"-of "$primary" --auto --scale 1.0x1.0 + fi + } + +morescreen() { # If multi-monitor is selected and there are more than two screens. + primary=$(echo "$screens" | dmenu -i -p "Select primary display:") + secondary=$(echo "$screens" | grep -v "$primary" | dmenu -i -p "Select secondary display:") + direction=$(printf "left\\nright" | dmenu -i -p "What side of $primary should $secondary be on?") + tertiary=$(echo "$screens" | grep -v "$primary" | grep -v "$secondary" | dmenu -i -p "Select third display:") + xrandr --output "$primary" --auto --output "$secondary" --"$direction"-of "$primary" --auto --output "$tertiary" --"$(printf "left\\nright" | grep -v "$direction")"-of "$primary" --auto + } + +multimon() { # Multi-monitor handler. + case "$(echo "$screens" | wc -l)" in + 2) twoscreen ;; + *) morescreen ;; + esac ;} + +onescreen() { # If only one output available or chosen. + xrandr --output "$1" --auto --scale 1.0x1.0 $(echo "$allposs" | grep -v "\b$1" | awk '{print "--output", $1, "--off"}' | paste -sd ' ' -) + } + +postrun() { # Stuff to run to clean up. + setbg # Fix background if screen size/arangement has changed. + { killall dunst ; setsid -f dunst ;} >/dev/null 2>&1 # Restart dunst to ensure proper location on screen + } + +# Get all possible displays +allposs=$(xrandr -q | grep "connected") + +# Get all connected screens. +screens=$(echo "$allposs" | awk '/ connected/ {print $1}') + +# If there's only one screen +[ "$(echo "$screens" | wc -l)" -lt 2 ] && + { onescreen "$screens"; postrun; notify-send "๐Ÿ’ป Only one screen detected." "Using it in its optimal settings..."; exit ;} + +# Get user choice including multi-monitor and manual selection: +chosen=$(printf "%s\\nmulti-monitor\\nmanual selection" "$screens" | dmenu -i -p "Select display arangement:") && +case "$chosen" in + "manual selection") arandr ; exit ;; + "multi-monitor") multimon ;; + *) onescreen "$chosen" ;; +esac + +postrun diff --git a/.local/bin/dmenuhandler b/.local/bin/dmenuhandler new file mode 100644 index 0000000..e5de8ef --- /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:-$(printf "%s" | dmenu -p 'Paste URL or file path')}" + +case "$(printf "Copy URL\\nsxiv\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv loop\\nmpv float\\nqueue download\\nqueue yt-dl\\nqueue yt-dl 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-dl") qndl "$feed" >/dev/null 2>&1 ;; + "queue yt-dl audio") qndl "$feed" 'youtube-dl --add-metadata -icx -f bestaudio/best' >/dev/null 2>&1 ;; + "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 ;; + sxiv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s/.*\///;s/%20/ /g")" && sxiv -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/dmenumount b/.local/bin/dmenumount new file mode 100644 index 0000000..b98b6a3 --- /dev/null +++ b/.local/bin/dmenumount @@ -0,0 +1,67 @@ +#!/bin/sh + +# Gives a dmenu prompt to mount unmounted drives and Android phones. If +# they're in /etc/fstab, they'll be mounted automatically. Otherwise, you'll +# be prompted to give a mountpoint from already existsing directories. If you +# input a novel directory, it will prompt you to create that directory. + +getmount() { \ + [ -z "$chosen" ] && exit 1 + # shellcheck disable=SC2086 + mp="$(find $1 2>/dev/null | dmenu -i -p "Type in mount point.")" || exit 1 + [ "$mp" = "" ] && exit 1 + if [ ! -d "$mp" ]; then + mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") || exit 1 + [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") + fi + } + +mountusb() { \ + chosen="$(echo "$usbdrives" | dmenu -i -p "Mount which drive?")" || exit 1 + chosen="$(echo "$chosen" | awk '{print $1}')" + sudo -A mount "$chosen" 2>/dev/null && notify-send "๐Ÿ’ป USB mounting" "$chosen mounted." && exit 0 + alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}') + getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted" + partitiontype="$(lsblk -no "fstype" "$chosen")" + case "$partitiontype" in + "vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000;; + "exfat") sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";; + *) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";; + esac + notify-send "๐Ÿ’ป USB mounting" "$chosen mounted to $mp." + } + +mountandroid() { \ + chosen="$(echo "$anddrives" | dmenu -i -p "Which Android device?")" || exit 1 + chosen="$(echo "$chosen" | cut -d : -f 1)" + getmount "$HOME -maxdepth 3 -type d" + simple-mtpfs --device "$chosen" "$mp" + echo "OK" | dmenu -i -p "Tap Allow on your phone if it asks for permission and then press enter" || exit 1 + simple-mtpfs --device "$chosen" "$mp" + notify-send "๐Ÿค– Android Mounting" "Android device mounted to $mp." + } + +asktype() { \ + choice="$(printf "USB\\nAndroid" | dmenu -i -p "Mount a USB drive or Android device?")" || exit 1 + case $choice in + USB) mountusb ;; + Android) mountandroid ;; + esac + } + +anddrives=$(simple-mtpfs -l 2>/dev/null) +usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | grep 'part\|rom' | awk '$4==""{printf "%s (%s)\n",$1,$3}')" + +if [ -z "$usbdrives" ]; then + [ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit + echo "Android device(s) detected." + mountandroid +else + if [ -z "$anddrives" ]; then + echo "USB drive(s) detected." + mountusb + else + echo "Mountable USB drive(s) and Android device(s) detected." + asktype + fi +fi diff --git a/.local/bin/dmenupass b/.local/bin/dmenupass new file mode 100644 index 0000000..2c14e6f --- /dev/null +++ b/.local/bin/dmenupass @@ -0,0 +1,6 @@ +#!/bin/sh + +# This script is the SUDO_ASKPASS variable, meaning that it will be used as a +# password prompt if needed. + +dmenu -fn Monospace-18 -P -p "$1" <&- && echo diff --git a/.local/bin/dmenuumount b/.local/bin/dmenuumount new file mode 100644 index 0000000..26612ef --- /dev/null +++ b/.local/bin/dmenuumount @@ -0,0 +1,44 @@ +#!/bin/sh + +# A dmenu prompt to unmount drives. +# Provides you with mounted partitions, select one to unmount. +# Drives mounted at /, /boot and /home will not be options to unmount. + +unmountusb() { + [ -z "$drives" ] && exit + chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1 + chosen="$(echo "$chosen" | awk '{print $1}')" + [ -z "$chosen" ] && exit + sudo -A umount "$chosen" && notify-send "๐Ÿ’ป USB unmounting" "$chosen unmounted." + } + +unmountandroid() { \ + chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | dmenu -i -p "Unmount which device?")" || exit 1 + [ -z "$chosen" ] && exit + sudo -A umount -l "$chosen" && notify-send "๐Ÿค– Android unmounting" "$chosen unmounted." + } + +asktype() { \ + choice="$(printf "USB\\nAndroid" | dmenu -i -p "Unmount a USB drive or Android device?")" || exit 1 + case "$choice" in + USB) unmountusb ;; + Android) unmountandroid ;; + esac + } + +drives=$(lsblk -nrpo "name,type,size,mountpoint" | awk '$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "%s (%s)\n",$4,$3}') + +if ! grep simple-mtpfs /etc/mtab; then + [ -z "$drives" ] && echo "No drives to unmount." && exit + echo "Unmountable USB drive detected." + unmountusb +else + if [ -z "$drives" ] + then + echo "Unmountable Android device detected." + unmountandroid + else + echo "Unmountable USB drive(s) and Android device(s) detected." + asktype + fi +fi diff --git a/.local/bin/dmenuunicode b/.local/bin/dmenuunicode new file mode 100644 index 0000000..58ae934 --- /dev/null +++ b/.local/bin/dmenuunicode @@ -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/emojis | 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 "$chosen" | xclip -selection clipboard + notify-send "'$chosen' copied to clipboard." & +fi diff --git a/.local/bin/ex b/.local/bin/ex new file mode 100644 index 0000000..927fb5b --- /dev/null +++ b/.local/bin/ex @@ -0,0 +1,45 @@ +#!/bin/sh + +# A general, all-purpose extraction script. Not all extraction programs here +# are installed by LARBS automatically. +# +# Default behavior: Extract archive into new directory +# Behavior with `-c` option: Extract contents into current directory + +while getopts "hc" o; do case "${o}" in + c) extracthere="True" ;; + *) printf "Options:\\n -c: Extract archive into current directory rather than a new one.\\n" && exit 1 ;; +esac done + +if [ -z "$extracthere" ]; then + archive="$(readlink -f "$*")" && + directory="$(echo "$archive" | sed 's/\.[^\/.]*$//')" && + mkdir -p "$directory" && + cd "$directory" || exit 1 +else + archive="$(readlink -f "$(echo "$*" | cut -d' ' -f2)" 2>/dev/null)" +fi + +[ -z "$archive" ] && printf "Give archive to extract as argument.\\n" && exit 1 + +if [ -f "$archive" ] ; then + case "$archive" in + *.tar.bz2|*.tbz2) tar xvjf "$archive" ;; + *.tar.xz) tar -xf "$archive" ;; + *.tar.gz|*.tgz) tar xvzf "$archive" ;; + *.tar.zst) tar -I zstd -xf "$archive" ;; + *.lzma) unlzma "$archive" ;; + *.bz2) bunzip2 "$archive" ;; + *.rar) unrar x -ad "$archive" ;; + *.gz) gunzip "$archive" ;; + *.tar) tar xvf "$archive" ;; + *.zip) unzip "$archive" ;; + *.Z) uncompress "$archive" ;; + *.7z) 7z x "$archive" ;; + *.xz) unxz "$archive" ;; + *.exe) cabextract "$archive" ;; + *) printf "extract: '%s' - unknown archive method\\n" "$archive" ;; + esac +else + printf "File \"%s\" not found.\\n" "$archive" +fi diff --git a/.local/bin/leave b/.local/bin/leave new file mode 100644 index 0000000..5e3acf5 --- /dev/null +++ b/.local/bin/leave @@ -0,0 +1,22 @@ +#!/bin/sh + +# A dmenu wrapper script for system functions. + +# For non-systemd init systems. +case "$(readlink -f /sbin/init)" in + *runit*) hib="sudo -A zzz" ;; + *openrc*) reb="sudo -A openrc-shutdown -r"; shut="sudo -A openrc-shutdown -p 0" ;; +esac + +cmds="\ +๐Ÿ”’ lock slock +๐Ÿšช leave dwm kill -TERM $(pgrep -u $USER "\bdwm$") +โ™ป renew dwm kill -HUP $(pgrep -u $USER "\bdwm$") +๐Ÿป hibernate slock ${hib:-systemctl suspend-then-hibernate -i} +๐Ÿ”ƒ reboot ${reb:-sudo -A reboot} +๐Ÿ–ฅ shutdown ${shut:-sudo -A shutdown -h now} +๐Ÿ“บ display off xset dpms force off" + +choice="$(echo "$cmds" | cut -d' ' -f 1 | dmenu)" || exit 1 + +`echo "$cmds" | grep "^$choice " | cut -d ' ' -f2-` diff --git a/.local/bin/lfselect b/.local/bin/lfselect new file mode 100644 index 0000000..3b2a17a --- /dev/null +++ b/.local/bin/lfselect @@ -0,0 +1,9 @@ +#!/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 100644 index 0000000..aeb1e29 --- /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*) + 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/maimpick b/.local/bin/maimpick new file mode 100644 index 0000000..7125e61 --- /dev/null +++ b/.local/bin/maimpick @@ -0,0 +1,14 @@ +#!/bin/sh + +# This is bound to Shift+PrintScreen by default, requires maim. It lets you +# choose the kind of screenshot to take, including copying the image or even +# highlighting an area to copy. scrotcucks on suicidewatch right now. + +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 pic-selected-"$(date '+%y%m%d-%H%M-%S').png" ;; + "current window") maim -i "$(xdotool getactivewindow)" pic-window-"$(date '+%y%m%d-%H%M-%S').png" ;; + "full screen") maim pic-full-"$(date '+%y%m%d-%H%M-%S').png" ;; + "a selected area (copy)") maim -s | xclip -selection clipboard -t image/png ;; + "current window (copy)") maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png ;; + "full screen (copy)") maim | xclip -selection clipboard -t image/png ;; +esac diff --git a/.local/bin/newsup b/.local/bin/newsup new file mode 100644 index 0000000..29f2b3c --- /dev/null +++ b/.local/bin/newsup @@ -0,0 +1,17 @@ +#!/bin/sh + +# 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 example.org > /dev/null || exit + +/usr/bin/notify-send "๐Ÿ“ฐ Updating RSS feeds..." + +pgrep -f newsboat$ && /usr/bin/xdotool key --window "$(/usr/bin/xdotool search --name newsboat)" R && exit + +echo ๐Ÿ”ƒ > /tmp/newsupdate +pkill -RTMIN+6 "${STATUSBAR:-dwmblocks}" +/usr/bin/newsboat -x reload +rm -f /tmp/newsupdate +pkill -RTMIN+6 "${STATUSBAR:-dwmblocks}" +/usr/bin/notify-send "๐Ÿ“ฐ RSS feed update complete." diff --git a/.local/bin/opout b/.local/bin/opout new file mode 100644 index 0000000..7f452df --- /dev/null +++ b/.local/bin/opout @@ -0,0 +1,13 @@ +#!/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 "${*}" | sed 's/\.[^\/.]*$//')" + +case "${*}" in + *.tex|*.m[dse]|*.[rR]md|*.mom|*.[0-9]) setsid -f xdg-open "$basename".pdf >/dev/null 2>&1 ;; + *.html) setsid -f "$BROWSER" "$basename".html >/dev/null 2>&1 ;; + *.sent) setsid -f sent "$1" >/dev/null 2>&1 ;; +esac diff --git a/.local/bin/qndl b/.local/bin/qndl new file mode 100644 index 0000000..f6fbe87 --- /dev/null +++ b/.local/bin/qndl @@ -0,0 +1,12 @@ +#!/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 -ic" +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 new file mode 100644 index 0000000..a54b13e --- /dev/null +++ b/.local/bin/queueandnotify @@ -0,0 +1,14 @@ +#!/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/rotdir b/.local/bin/rotdir new file mode 100644 index 0000000..86da6db --- /dev/null +++ b/.local/bin/rotdir @@ -0,0 +1,12 @@ +#!/bin/sh + +# When I open an image from the file manager in sxiv (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 sxiv 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/rssadd b/.local/bin/rssadd new file mode 100644 index 0000000..fb60be8 --- /dev/null +++ b/.local/bin/rssadd @@ -0,0 +1,18 @@ +#!/bin/sh + +if echo "$1" | grep "https*://\S\+\.[A-Za-z]\+\S*" >/dev/null; then + url="$1" +else + url="$(grep -Eom1 '<[^>]+(rel="self"|application/[a-z]+\+xml)[^>]+>' "$1" | + sed -E 's_^.*href="(https?://[^"]+)".*$_\1_')" + + ! grep "https*://\S\+\.[A-Za-z]\+\S*" <<<"$url" && + notify-send "That doesn't look like a full URL." && exit 1 +fi + +RSSFILE="${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls" +if awk '{print $1}' "$RSSFILE" | grep "^$url$" >/dev/null; then + notify-send "You already have this RSS feed." +else + echo "$url" >> "$RSSFILE" && notify-send "RSS feed added." +fi diff --git a/.local/bin/setbg b/.local/bin/setbg new file mode 100644 index 0000000..2b6f517 --- /dev/null +++ b/.local/bin/setbg @@ -0,0 +1,24 @@ +#!/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" + +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. +command -v wal >/dev/null 2>&1 && + wal -i "$trueloc" -o "${XDG_CONFIG_HOME:-$HOME/.config}/wal/postrun" >/dev/null 2>&1 && + pidof dwm >/dev/null && xdotool key super+F12 + +xwallpaper --zoom "$bgloc" diff --git a/.local/bin/shortcuts b/.local/bin/shortcuts new file mode 100644 index 0000000..7d02aba --- /dev/null +++ b/.local/bin/shortcuts @@ -0,0 +1,27 @@ +#!/bin/sh + +bmdirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs" +bmfiles="${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files" + +# Output locations. Unactivated progs should go to /dev/null. +shell_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" +zsh_named_dirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" +lf_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/lf/shortcutrc" + +# Remove, prepare files +rm -f "$lf_shortcuts" "$zsh_named_dirs" 2>/dev/null +printf "# vim: filetype=sh\\nalias " > "$shell_shortcuts" + +# Format the `directories` file in the correct syntax and sent it to all three configs. +eval "echo \"$(cat "$bmdirs")\"" | \ +awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\"); + printf(\"%s=\42cd %s && ls -a\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ; + printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\" ; + printf(\"map C%s cd \42%s\42 \n\",\$1,\$2) >> \"$lf_shortcuts\" }" + +# Format the `files` file in the correct syntax and sent it to both configs. +eval "echo \"$(cat "$bmfiles")\"" | \ +awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\"); + printf(\"%s=\42\$EDITOR %s\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ; + printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\" ; + printf(\"map E%s \$\$EDITOR \42%s\42 \n\",\$1,\$2) >> \"$lf_shortcuts\" }" diff --git a/.local/bin/statusbar/sb-battery b/.local/bin/statusbar/sb-battery new file mode 100644 index 0000000..382b31b --- /dev/null +++ b/.local/bin/statusbar/sb-battery @@ -0,0 +1,36 @@ +#!/bin/sh + +# Prints all batteries, their percentage remaining and an emoji corresponding +# to charge status (๐Ÿ”Œ for plugged up, ๐Ÿ”‹ for discharging on battery, etc.). + +case $BLOCK_BUTTON in + 3) notify-send "๐Ÿ”‹ Battery module" "๐Ÿ”‹: discharging +๐Ÿ›‘: not charging +โ™ป: stagnant charge +๐Ÿ”Œ: charging +โšก: charged +โ—: battery very low! +- Scroll to change adjust xbacklight." ;; + 4) xbacklight -inc 10 ;; + 5) xbacklight -dec 10 ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +# Loop through all attached batteries and format the info +for battery in /sys/class/power_supply/BAT?*; do + # If non-first battery, print a space separator. + [ -n "${capacity+x}" ] && printf " " + # Sets up the status and capacity + case "$(cat "$battery/status")" in + "Full") status="โšก" ;; + "Discharging") status="๐Ÿ”‹" ;; + "Charging") status="๐Ÿ”Œ" ;; + "Not charging") status="๐Ÿ›‘" ;; + "Unknown") status="โ™ป๏ธ" ;; + esac + capacity=$(cat "$battery/capacity") + # Will make a warn variable if discharging and low + [ "$status" = "๐Ÿ”‹" ] && [ "$capacity" -le 25 ] && warn="โ—" + # Prints the info + printf "%s%s%d%%" "$status" "$warn" "$capacity"; unset warn +done && exit 0 diff --git a/.local/bin/statusbar/sb-clock b/.local/bin/statusbar/sb-clock new file mode 100644 index 0000000..d25e8d0 --- /dev/null +++ b/.local/bin/statusbar/sb-clock @@ -0,0 +1,29 @@ +#!/bin/sh + +clock=$(date '+%I') + +case "$clock" in + "00") icon="๐Ÿ•›" ;; + "01") icon="๐Ÿ•" ;; + "02") icon="๐Ÿ•‘" ;; + "03") icon="๐Ÿ•’" ;; + "04") icon="๐Ÿ•“" ;; + "05") icon="๐Ÿ•”" ;; + "06") icon="๐Ÿ••" ;; + "07") icon="๐Ÿ•–" ;; + "08") icon="๐Ÿ•—" ;; + "09") icon="๐Ÿ•˜" ;; + "10") icon="๐Ÿ•™" ;; + "11") icon="๐Ÿ•š" ;; + "12") icon="๐Ÿ•›" ;; +esac + +case $BLOCK_BUTTON in + 1) notify-send "This Month" "$(cal --color=always | sed "s/..7m//;s/..27m/<\/span><\/b>/")" && notify-send "Appointments" "$(calcurse -d3)" ;; + 2) setsid -f "$TERMINAL" -e calcurse ;; + 3) notify-send "๐Ÿ“… Time/date module" "\- Left click to show upcoming appointments for the next three days via \`calcurse -d3\` and show the month via \`cal\` +- Middle click opens calcurse if installed" ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +date "+%Y %b %d (%a) $icon%I:%M%p" diff --git a/.local/bin/statusbar/sb-cpu b/.local/bin/statusbar/sb-cpu new file mode 100644 index 0000000..1572b52 --- /dev/null +++ b/.local/bin/statusbar/sb-cpu @@ -0,0 +1,12 @@ +#!/bin/sh + +case $BLOCK_BUTTON in + 1) notify-send "๐Ÿ–ฅ CPU hogs" "$(ps axch -o cmd:15,%cpu --sort=-%cpu | head)\\n(100% per core)" ;; + 2) setsid -f "$TERMINAL" -e htop ;; + 3) notify-send "๐Ÿ–ฅ CPU module " "\- Shows CPU temperature. +- Click to show intensive processes. +- Middle click to open htop." ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +sensors | awk '/Core 0/ {print "๐ŸŒก" $3}' diff --git a/.local/bin/statusbar/sb-cpubars b/.local/bin/statusbar/sb-cpubars new file mode 100644 index 0000000..297424e --- /dev/null +++ b/.local/bin/statusbar/sb-cpubars @@ -0,0 +1,44 @@ +#!/bin/sh + +# Module showing CPU load as a changing bars. +# Just like in polybar. +# Each bar represents amount of load on one core since +# last run. + +# Cache in tmpfs to improve speed and reduce SSD load +cache=/tmp/cpubarscache + +case $BLOCK_BUTTON in + 2) setsid -f "$TERMINAL" -e htop ;; + 3) notify-send "๐Ÿชจ CPU load module" "Each bar represents +one CPU core";; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +# id total idle +stats=$(awk '/cpu[0-9]+/ {printf "%d %d %d\n", substr($1,4), ($2 + $3 + $4 + $5), $5 }' /proc/stat) +[ ! -f $cache ] && echo "$stats" > "$cache" +old=$(cat "$cache") +printf "๐Ÿชจ" +echo "$stats" | while read -r row; do + id=${row%% *} + rest=${row#* } + total=${rest%% *} + idle=${rest##* } + + case "$(echo "$old" | awk '{if ($1 == id) + printf "%d\n", (1 - (idle - $3) / (total - $2))*100 /12.5}' \ + id="$id" total="$total" idle="$idle")" in + + "0") printf "โ–";; + "1") printf "โ–‚";; + "2") printf "โ–ƒ";; + "3") printf "โ–„";; + "4") printf "โ–…";; + "5") printf "โ–†";; + "6") printf "โ–‡";; + "7") printf "โ–ˆ";; + "8") printf "โ–ˆ";; + esac +done; printf "\\n" +echo "$stats" > "$cache" diff --git a/.local/bin/statusbar/sb-disk b/.local/bin/statusbar/sb-disk new file mode 100644 index 0000000..e947509 --- /dev/null +++ b/.local/bin/statusbar/sb-disk @@ -0,0 +1,23 @@ +#!/bin/sh + +# Status bar module for disk space +# $1 should be drive mountpoint, otherwise assumed /. + +location=${1:-/} + +[ -d "$location" ] || exit + +case $BLOCK_BUTTON in + 1) notify-send "๐Ÿ’ฝ Disk space" "$(df -h --output=target,used,size)" ;; + 3) notify-send "๐Ÿ’ฝ Disk module" "\- Shows used hard drive space. +- Click to show all disk info." ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +case "$location" in + "/home"* ) icon="๐Ÿ " ;; + "/mnt"* ) icon="๐Ÿ’พ" ;; + *) icon="๐Ÿ–ฅ";; +esac + +printf "%s: %s\n" "$icon" "$(df -h "$location" | awk ' /[0-9]/ {print $3 "/" $2}')" diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast new file mode 100644 index 0000000..7b8416e --- /dev/null +++ b/.local/bin/statusbar/sb-forecast @@ -0,0 +1,35 @@ +#!/bin/sh + +# Displays todays precipication chance (โ˜”) and daily low (๐Ÿฅถ) and high (๐ŸŒž). +# Usually intended for the statusbar. + +# If we have internet, get a weather report from wttr.in and store it locally. +# You could set up a shell alias to view the full file in a pager in the +# terminal if desired. This function will only be run once a day when needed. +weatherreport="${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" +getforecast() { curl -sf "wttr.in/$LOCATION" > "$weatherreport" || exit 1 ;} + +# Some very particular and terse stream manipulation. We get the maximum +# precipitation chance and the daily high and low from the downloaded file and +# display them with coresponding emojis. +showweather() { printf "%s" "$(sed '16q;d' "$weatherreport" | + grep -wo "[0-9]*%" | sort -rn | sed "s/^/โ˜”/g;1q" | tr -d '\n')" +sed '13q;d' "$weatherreport" | grep -o "m\\([-+]\\)*[0-9]\\+" | sed 's/+//g' | sort -n -t 'm' -k 2n | sed -e 1b -e '$!d' | tr '\n|m' ' ' | awk '{print " ๐Ÿฅถ" $1 "ยฐ","๐ŸŒž" $2 "ยฐ"}' ;} + +case $BLOCK_BUTTON in + 1) setsid -f "$TERMINAL" -e less -Srf "$weatherreport" ;; + 2) getforecast && showweather ;; + 3) notify-send "๐ŸŒˆ Weather module" "\- Left click for full forecast. +- Middle click to update forecast. +โ˜”: Chance of rain/snow +๐Ÿฅถ: Daily low +๐ŸŒž: Daily high" ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +# The test if our forcecast is updated to the day. If it isn't download a new +# weather report from wttr.in with the above function. +[ "$(stat -c %y "$weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || + getforecast + +showweather diff --git a/.local/bin/statusbar/sb-internet b/.local/bin/statusbar/sb-internet new file mode 100644 index 0000000..ee1a160 --- /dev/null +++ b/.local/bin/statusbar/sb-internet @@ -0,0 +1,24 @@ +#!/bin/sh + +# Show wifi ๐Ÿ“ถ and percent strength or ๐Ÿ“ก if none. +# Show ๐ŸŒ if connected to ethernet or โŽ if none. +# Show ๐Ÿ”’ if a vpn connection is active + +case $BLOCK_BUTTON in + 1) "$TERMINAL" -e nmtui; pkill -RTMIN+4 dwmblocks ;; + 3) notify-send "๐ŸŒ Internet module" "\- Click to connect +๐Ÿ“ก: no wifi connection +๐Ÿ“ถ: wifi connection with quality +โŽ: no ethernet +๐ŸŒ: ethernet working +๐Ÿ”’: vpn is active +" ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +case "$(cat /sys/class/net/w*/operstate 2>/dev/null)" in + down) wifiicon="๐Ÿ“ก " ;; + up) wifiicon="$(awk '/^\s*w/ { print "๐Ÿ“ถ", int($3 * 100 / 70) "% " }' /proc/net/wireless)" ;; +esac + +printf "%s%s%s\n" "$wifiicon" "$(sed "s/down/โŽ/;s/up/๐ŸŒ/" /sys/class/net/e*/operstate 2>/dev/null)" "$(sed "s/.*/๐Ÿ”’/" /sys/class/net/tun*/operstate 2>/dev/null)" diff --git a/.local/bin/statusbar/sb-iplocate b/.local/bin/statusbar/sb-iplocate new file mode 100644 index 0000000..02adab8 --- /dev/null +++ b/.local/bin/statusbar/sb-iplocate @@ -0,0 +1,10 @@ +#!/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 "geoip" || exit +addr="$(curl ifconfig.me 2>/dev/null)" || exit +grep "flag: " "${XDG_DATA_HOME:-$HOME/.local/share}/larbs/emoji" | grep "$(geoiplookup "$addr" | sed 's/.*, //')" | sed "s/flag: //;s/;.*//" diff --git a/.local/bin/statusbar/sb-kbselect b/.local/bin/statusbar/sb-kbselect new file mode 100644 index 0000000..f0c923f --- /dev/null +++ b/.local/bin/statusbar/sb-kbselect @@ -0,0 +1,16 @@ +#!/bin/sh +# works on any init system +# requirements: dmenu, xorg-setxkbmap +kb="$(setxkbmap -query | grep -oP 'layout:\s*\K\w+')" || exit 1 + +case $BLOCK_BUTTON in + 1) kb_choice="$(awk '/! layout/{flag=1; next} /! variant/{flag=0} flag {print $2, "- " $1}' /usr/share/X11/xkb/rules/base.lst | dmenu -l 15)" + kb="$(echo "$kb_choice" | awk '{print $3}')" + setxkbmap "$kb" + pkill -RTMIN+30 "${STATUSBAR:-dwmblocks}";; + 3) notify-send "โŒจ Keyboard/language module" "$(printf "%s" "\- Current layout: $(setxkbmap -query | grep -oP 'layout:\s*\K\w+')") +- Left click to change keyboard.";; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +echo "$kb" diff --git a/.local/bin/statusbar/sb-mailbox b/.local/bin/statusbar/sb-mailbox new file mode 100644 index 0000000..5a67428 --- /dev/null +++ b/.local/bin/statusbar/sb-mailbox @@ -0,0 +1,20 @@ +#!/bin/sh + +# Displays number of unread mail and an loading icon if updating. +# When clicked, brings up `neomutt`. + +case $BLOCK_BUTTON in + 1) setsid -f "$TERMINAL" -e neomutt ;; + 2) setsid -f mw sync >/dev/null ;; + 3) notify-send "๐Ÿ“ฌ Mail module" "\- Shows unread mail +- Shows ๐Ÿ”ƒ if syncing mail +- Left click opens neomutt +- Middle click syncs mail" ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +unread="$(find "${XDG_DATA_HOME:-$HOME/.local/share}"/mail/*/[Ii][Nn][Bb][Oo][Xx]/new/* -type f | wc -l 2>/dev/null)" + +pidof mbsync >/dev/null 2>&1 && icon="๐Ÿ”ƒ" + +[ "$unread" = "0" ] && [ "$icon" = "" ] || echo "๐Ÿ“ฌ$unread$icon" diff --git a/.local/bin/statusbar/sb-memory b/.local/bin/statusbar/sb-memory new file mode 100644 index 0000000..01d3daf --- /dev/null +++ b/.local/bin/statusbar/sb-memory @@ -0,0 +1,12 @@ +#!/bin/sh + +case $BLOCK_BUTTON in + 1) notify-send "๐Ÿง  Memory hogs" "$(ps axch -o cmd:15,%mem --sort=-%mem | head)" ;; + 2) setsid -f "$TERMINAL" -e htop ;; + 3) notify-send "๐Ÿง  Memory module" "\- Shows Memory Used/Total. +- Click to show memory hogs. +- Middle click to open htop." ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +free --mebi | sed -n '2{p;q}' | awk '{printf ("๐Ÿง %2.2fGiB/%2.2fGiB\n", ( $3 / 1024), ($2 / 1024))}' diff --git a/.local/bin/statusbar/sb-moonphase b/.local/bin/statusbar/sb-moonphase new file mode 100644 index 0000000..fab8b4d --- /dev/null +++ b/.local/bin/statusbar/sb-moonphase @@ -0,0 +1,37 @@ +#!/bin/sh + +# Shows the current moon phase. + +moonfile="${XDG_DATA_HOME:-$HOME/.local/share}/moonphase" + +[ "$(stat -c %y "$moonfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || + { curl -sf "wttr.in/?format=%m" > "$moonfile" || exit 1 ;} + +icon="$(cat "$moonfile")" + +case "$icon" in + ๐ŸŒ‘) name="New" ;; + ๐ŸŒ’) name="Waxing Crescent" ;; + ๐ŸŒ“) name="First Quarter" ;; + ๐ŸŒ”) name="Waxing Gibbous" ;; + ๐ŸŒ•) name="Full" ;; + ๐ŸŒ–) name="Waning Gibbous" ;; + ๐ŸŒ—) name="Last Quarter" ;; + ๐ŸŒ˜) name="Waning Crescent" ;; + *) exit 1 ;; +esac + +echo "${icon-?}" + +case $BLOCK_BUTTON in + 3) notify-send "๐ŸŒœ Moon phase module" "Displays current moon phase. +- ๐ŸŒ‘: New +- ๐ŸŒ’: Waxing Crescent +- ๐ŸŒ“: First Quarter +- ๐ŸŒ”: Waxing Gibbous +- ๐ŸŒ•: Full +- ๐ŸŒ–: Waning Gibbous +- ๐ŸŒ—: Last Quarter +- ๐ŸŒ˜: Waning Crescent" ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac diff --git a/.local/bin/statusbar/sb-mpdup b/.local/bin/statusbar/sb-mpdup new file mode 100644 index 0000000..af81a7d --- /dev/null +++ b/.local/bin/statusbar/sb-mpdup @@ -0,0 +1,8 @@ +#!/bin/sh + +# This loop will update the mpd statusbar module whenever a command changes the +# music player's status. mpd must be running on X's start for this to work. + +while : ; do + mpc idle >/dev/null && kill -45 "$(pidof "${STATUSBAR:-dwmblocks}")" || break +done diff --git a/.local/bin/statusbar/sb-music b/.local/bin/statusbar/sb-music new file mode 100644 index 0000000..7504313 --- /dev/null +++ b/.local/bin/statusbar/sb-music @@ -0,0 +1,19 @@ +#!/bin/sh + +filter() { mpc | sed "/^volume:/d;s/\\&/&/g;s/\\[paused\\].*/โธ/g;/\\[playing\\].*/d" | paste -sd ' ' -;} + +pidof -x sb-mpdup >/dev/null 2>&1 || sb-mpdup >/dev/null 2>&1 & + +case $BLOCK_BUTTON in + 1) mpc status | filter ; setsid -f "$TERMINAL" -e ncmpcpp ;; # right click, pause/unpause + 2) mpc toggle | filter ;; # right click, pause/unpause + 3) mpc status | filter ; notify-send "๐ŸŽต Music module" "\- Shows mpd song playing. +- โธ 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 + 6) mpc status | filter ; "$TERMINAL" -e "$EDITOR" "$0" ;; + *) mpc status | filter ;; +esac diff --git a/.local/bin/statusbar/sb-nettraf b/.local/bin/statusbar/sb-nettraf new file mode 100644 index 0000000..eb7a73b --- /dev/null +++ b/.local/bin/statusbar/sb-nettraf @@ -0,0 +1,29 @@ +#!/bin/sh + +# Module showing network traffic. Shows how much data has been received (RX) or +# transmitted (TX) since the previous time this script ran. So if run every +# second, gives network traffic per second. + +case $BLOCK_BUTTON in + 1) setsid -f "$TERMINAL" -e bmon ;; + 3) notify-send "๐ŸŒ Network traffic module" "๐Ÿ”ป: Traffic received +๐Ÿ”บ: Traffic transmitted" ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +update() { + sum=0 + for arg; do + read -r i < "$arg" + sum=$(( sum + i )) + done + cache=${XDG_CACHE_HOME:-$HOME/.cache}/${1##*/} + [ -f "$cache" ] && read -r old < "$cache" || old=0 + printf %d\\n "$sum" > "$cache" + printf %d\\n $(( sum - old )) +} + +rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes) +tx=$(update /sys/class/net/[ew]*/statistics/tx_bytes) + +printf "๐Ÿ”ป%4sB ๐Ÿ”บ%4sB\\n" $(numfmt --to=iec $rx) $(numfmt --to=iec $tx) diff --git a/.local/bin/statusbar/sb-news b/.local/bin/statusbar/sb-news new file mode 100644 index 0000000..fe701db --- /dev/null +++ b/.local/bin/statusbar/sb-news @@ -0,0 +1,17 @@ +#!/bin/sh + +# Displays number of unread news items and an loading icon if updating. +# When clicked, brings up `newsboat`. + +case $BLOCK_BUTTON in + 1) setsid "$TERMINAL" -e newsboat ;; + 2) setsid -f newsup >/dev/null exit ;; + 3) notify-send "๐Ÿ“ฐ News module" "\- Shows unread news items +- Shows ๐Ÿ”ƒ if updating with \`newsup\` +- Left click opens newsboat +- Middle click syncs RSS feeds +Note: Only one instance of newsboat (including updates) may be running at a time." ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + + cat /tmp/newsupdate 2>/dev/null || echo "$(newsboat -x print-unread | awk '{ if($1>0) print "๐Ÿ“ฐ" $1}')$(cat "${XDG_CONFIG_HOME:-$HOME/.config}"/newsboat/.update 2>/dev/null)" diff --git a/.local/bin/statusbar/sb-pacpackages b/.local/bin/statusbar/sb-pacpackages new file mode 100644 index 0000000..37ebed3 --- /dev/null +++ b/.local/bin/statusbar/sb-pacpackages @@ -0,0 +1,29 @@ +#!/bin/sh + +# Displays number of upgradeable packages. +# For this to work, have a `pacman -Sy` command run in the background as a +# cronjob every so often as root. This script will then read those packages. +# When clicked, it will run an upgrade via pacman. +# +# Add the following text as a file in /usr/share/libalpm/hooks/statusbar.hook: +# +# [Trigger] +# Operation = Upgrade +# Type = Package +# Target = * +# +# [Action] +# Description = Updating statusbar... +# When = PostTransaction +# Exec = /usr/bin/pkill -RTMIN+8 dwmblocks # Or i3blocks if using i3. + +case $BLOCK_BUTTON in + 1) setsid -f "$TERMINAL" -e sb-popupgrade ;; + 2) notify-send "$(/usr/bin/pacman -Qu)" ;; + 3) notify-send "๐ŸŽ Upgrade module" "๐Ÿ“ฆ: number of upgradable packages +- Left click to upgrade packages +- Middle click to show upgradable packages" ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +pacman -Qu | grep -Fcv "[ignored]" | sed "s/^/๐Ÿ“ฆ/;s/^๐Ÿ“ฆ0$//g" diff --git a/.local/bin/statusbar/sb-popupgrade b/.local/bin/statusbar/sb-popupgrade new file mode 100644 index 0000000..29d6230 --- /dev/null +++ b/.local/bin/statusbar/sb-popupgrade @@ -0,0 +1,9 @@ +#!/bin/sh + +printf "Beginning upgrade.\\n" + +yay -Syu +pkill -RTMIN+8 "${STATUSBAR:-dwmblocks}" + +printf "\\nUpgrade complete.\\nPress to exit window.\\n\\n" +read -r _ diff --git a/.local/bin/statusbar/sb-tasks b/.local/bin/statusbar/sb-tasks new file mode 100644 index 0000000..586300e --- /dev/null +++ b/.local/bin/statusbar/sb-tasks @@ -0,0 +1,20 @@ +#!/bin/sh + +# Originally by Andr3as07 +# Some changes by Luke +# Rebuild by Tenyun + +# This block displays the number running background tasks. Requires tsp. + +num=$(tsp -l | awk -v numr=0 -v numq=0 '{if (/running/)numr++; if (/queued/)numq++} END{print numr+numq"("numq")"}') + +# Handle mouse clicks +case $BLOCK_BUTTON in + 1) setsid -f "$TERMINAL" -e tsp -l ;; + 3) notify-send "Tasks module" "๐Ÿค–: number of running/queued background tasks +- Left click opens tsp" ;; # Right click + 2) $EDITOR "$0" ;; # Middle click +esac + +[ "$num" != "0(0)" ] && + echo "๐Ÿค–$num" diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume new file mode 100644 index 0000000..61588c3 --- /dev/null +++ b/.local/bin/statusbar/sb-volume @@ -0,0 +1,28 @@ +#!/bin/sh + +# Prints the current volume or ๐Ÿ”‡ if muted. + +case $BLOCK_BUTTON in + 1) setsid -f "$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." ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +[ $(pamixer --get-mute) = true ] && echo ๐Ÿ”‡ && exit + +vol="$(pamixer --get-volume)" + +if [ "$vol" -gt "70" ]; then + icon="๐Ÿ”Š" +elif [ "$vol" -lt "30" ]; then + icon="๐Ÿ”ˆ" +else + icon="๐Ÿ”‰" +fi + +echo "$icon$vol%" diff --git a/.local/bin/tag b/.local/bin/tag new file mode 100644 index 0000000..8462b99 --- /dev/null +++ b/.local/bin/tag @@ -0,0 +1,67 @@ +#!/bin/sh + +err() { echo "Usage: + tag [OPTIONS] file +Options: + -a: artist/author + -t: song/chapter title + -A: album/book title + -n: track/chapter number + -N: total number of tracks/chapters + -d: year of publication + -g: genre + -c: comment +You will be prompted for title, artist, album and track if not given." && exit 1 ;} + +while getopts "a:t:A:n:N:d:g:c:f:" o; do case "${o}" in + a) artist="${OPTARG}" ;; + t) title="${OPTARG}" ;; + A) album="${OPTARG}" ;; + n) track="${OPTARG}" ;; + N) total="${OPTARG}" ;; + d) date="${OPTARG}" ;; + g) genre="${OPTARG}" ;; + c) comment="${OPTARG}" ;; + f) file="${OPTARG}" ;; + *) printf "Invalid option: -%s\\n" "$OPTARG" && err ;; +esac done + +shift $((OPTIND - 1)) + +file="$1" + +[ ! -f "$file" ] && echo "Provide file to tag." && err + +[ -z "$title" ] && echo "Enter a title." && read -r title +[ -z "$artist" ] && echo "Enter an artist." && read -r artist +[ -z "$album" ] && echo "Enter an album." && read -r album +[ -z "$track" ] && echo "Enter a track number." && read -r track + +case "$file" in + *.ogg) echo "Title=$title +Artist=$artist +Album=$album +Track=$track +Total=$total +Date=$date +Genre=$genre +Comment=$comment" | vorbiscomment -w "$file" ;; + *.opus) echo "Title=$title +Artist=$artist +Album=$album +Track=$track +Total=$total +Date=$date +Genre=$genre +Comment=$comment" | opustags -i -S "$file" ;; + *.mp3) eyeD3 -Q --remove-all -a "$artist" -A "$album" -t "$title" -n "$track" -N "$total" -Y "$date" "$file" ;; + *.flac) echo "TITLE=$title +ARTIST=$artist +ALBUM=$album +TRACKNUMBER=$track +TOTALTRACKS=$total +DATE=$date +GENRE=$genre +DESCRIPTION=$comment" | metaflac --remove-all-tags --import-tags-from=- "$file" ;; + *) echo "File type not implemented yet." ;; +esac diff --git a/.local/bin/texclear b/.local/bin/texclear new file mode 100644 index 0000000..bd110f3 --- /dev/null +++ b/.local/bin/texclear @@ -0,0 +1,15 @@ +#!/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/share/applications/file.desktop b/.local/share/applications/file.desktop new file mode 100644 index 0000000..33e187f --- /dev/null +++ b/.local/share/applications/file.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=File Manager +Exec=/usr/bin/alacritty -e lf %u diff --git a/.local/share/applications/img.desktop b/.local/share/applications/img.desktop new file mode 100644 index 0000000..42aa81e --- /dev/null +++ b/.local/share/applications/img.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Image viewer +Exec=/usr/bin/sxiv -a %f diff --git a/.local/share/applications/mail.desktop b/.local/share/applications/mail.desktop new file mode 100644 index 0000000..27ff82d --- /dev/null +++ b/.local/share/applications/mail.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Mail +Exec=/usr/bin/alacritty -e neomutt %u diff --git a/.local/share/applications/pdf.desktop b/.local/share/applications/pdf.desktop new file mode 100644 index 0000000..8c38677 --- /dev/null +++ b/.local/share/applications/pdf.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=PDF reader +Exec=/usr/bin/zathura %u diff --git a/.local/share/applications/rss.desktop b/.local/share/applications/rss.desktop new file mode 100644 index 0000000..6fafc4f --- /dev/null +++ b/.local/share/applications/rss.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=RSS feed addition +Exec=/usr/bin/env rssadd %U diff --git a/.local/share/applications/text.desktop b/.local/share/applications/text.desktop new file mode 100644 index 0000000..812da78 --- /dev/null +++ b/.local/share/applications/text.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Text editor +Exec=/usr/bin/alacritty -e nvim %u diff --git a/.local/share/emojis b/.local/share/emojis new file mode 100644 index 0000000..61dc97a --- /dev/null +++ b/.local/share/emojis @@ -0,0 +1,3076 @@ +๐Ÿ˜€ grinning face; 1F600; +๐Ÿ˜ƒ grinning face with big eyes; 1F603; +๐Ÿ˜„ grinning face with smiling eyes; 1F604; +๐Ÿ˜ beaming face with smiling eyes; 1F601; +๐Ÿ˜† grinning squinting face; 1F606; +๐Ÿ˜… grinning face with sweat; 1F605; +๐Ÿคฃ rolling on the floor laughing; 1F923; +๐Ÿ˜‚ face with tears of joy; 1F602; +๐Ÿ™‚ slightly smiling face; 1F642; +๐Ÿ™ƒ upside-down face; 1F643; +๐Ÿ˜‰ winking face; 1F609; +๐Ÿ˜Š smiling face with smiling eyes; 1F60A; +๐Ÿ˜‡ smiling face with halo; 1F607; +๐Ÿฅฐ smiling face with hearts; 1F970; +๐Ÿ˜ smiling face with heart-eyes; 1F60D; +๐Ÿคฉ star-struck; 1F929; +๐Ÿ˜˜ face blowing a kiss; 1F618; +๐Ÿ˜— kissing face; 1F617; +โ˜บ๏ธ smiling face; 263A FE0F; +๐Ÿ˜š kissing face with closed eyes; 1F61A; +๐Ÿ˜™ kissing face with smiling eyes; 1F619; +๐Ÿฅฒ smiling face with tear; 1F972; +๐Ÿ˜‹ face savoring food; 1F60B; +๐Ÿ˜› face with tongue; 1F61B; +๐Ÿ˜œ winking face with tongue; 1F61C; +๐Ÿคช zany face; 1F92A; +๐Ÿ˜ squinting face with tongue; 1F61D; +๐Ÿค‘ money-mouth face; 1F911; +๐Ÿค— hugging face; 1F917; +๐Ÿคญ face with hand over mouth; 1F92D; +๐Ÿคซ shushing face; 1F92B; +๐Ÿค” thinking face; 1F914; +๐Ÿค zipper-mouth face; 1F910; +๐Ÿคจ face with raised eyebrow; 1F928; +๐Ÿ˜ neutral face; 1F610; +๐Ÿ˜‘ expressionless face; 1F611; +๐Ÿ˜ถ face without mouth; 1F636; +๐Ÿ˜ smirking face; 1F60F; +๐Ÿ˜’ unamused face; 1F612; +๐Ÿ™„ face with rolling eyes; 1F644; +๐Ÿ˜ฌ grimacing face; 1F62C; +๐Ÿคฅ lying face; 1F925; +๐Ÿ˜Œ relieved face; 1F60C; +๐Ÿ˜” pensive face; 1F614; +๐Ÿ˜ช sleepy face; 1F62A; +๐Ÿคค drooling face; 1F924; +๐Ÿ˜ด sleeping face; 1F634; +๐Ÿ˜ท face with medical mask; 1F637; +๐Ÿค’ face with thermometer; 1F912; +๐Ÿค• face with head-bandage; 1F915; +๐Ÿคข nauseated face; 1F922; +๐Ÿคฎ face vomiting; 1F92E; +๐Ÿคง sneezing face; 1F927; +๐Ÿฅต hot face; 1F975; +๐Ÿฅถ cold face; 1F976; +๐Ÿฅด woozy face; 1F974; +๐Ÿ˜ต dizzy face; 1F635; +๐Ÿคฏ exploding head; 1F92F; +๐Ÿค  cowboy hat face; 1F920; +๐Ÿฅณ partying face; 1F973; +๐Ÿฅธ disguised face; 1F978; +๐Ÿ˜Ž smiling face with sunglasses; 1F60E; +๐Ÿค“ nerd face; 1F913; +๐Ÿง face with monocle; 1F9D0; +๐Ÿ˜• confused face; 1F615; +๐Ÿ˜Ÿ worried face; 1F61F; +๐Ÿ™ slightly frowning face; 1F641; +โ˜น๏ธ frowning face; 2639 FE0F; +๐Ÿ˜ฎ face with open mouth; 1F62E; +๐Ÿ˜ฏ hushed face; 1F62F; +๐Ÿ˜ฒ astonished face; 1F632; +๐Ÿ˜ณ flushed face; 1F633; +๐Ÿฅบ pleading face; 1F97A; +๐Ÿ˜ฆ frowning face with open mouth; 1F626; +๐Ÿ˜ง anguished face; 1F627; +๐Ÿ˜จ fearful face; 1F628; +๐Ÿ˜ฐ anxious face with sweat; 1F630; +๐Ÿ˜ฅ sad but relieved face; 1F625; +๐Ÿ˜ข crying face; 1F622; +๐Ÿ˜ญ loudly crying face; 1F62D; +๐Ÿ˜ฑ face screaming in fear; 1F631; +๐Ÿ˜– confounded face; 1F616; +๐Ÿ˜ฃ persevering face; 1F623; +๐Ÿ˜ž disappointed face; 1F61E; +๐Ÿ˜“ downcast face with sweat; 1F613; +๐Ÿ˜ฉ weary face; 1F629; +๐Ÿ˜ซ tired face; 1F62B; +๐Ÿฅฑ yawning face; 1F971; +๐Ÿ˜ค face with steam from nose; 1F624; +๐Ÿ˜ก pouting face; 1F621; +๐Ÿ˜  angry face; 1F620; +๐Ÿคฌ face with symbols on mouth; 1F92C; +๐Ÿ˜ˆ smiling face with horns; 1F608; +๐Ÿ‘ฟ angry face with horns; 1F47F; +๐Ÿ’€ skull; 1F480; +โ˜ ๏ธ skull and crossbones; 2620 FE0F; +๐Ÿ’ฉ pile of poo; 1F4A9; +๐Ÿคก clown face; 1F921; +๐Ÿ‘น ogre; 1F479; +๐Ÿ‘บ goblin; 1F47A; +๐Ÿ‘ป ghost; 1F47B; +๐Ÿ‘ฝ alien; 1F47D; +๐Ÿ‘พ alien monster; 1F47E; +๐Ÿค– robot; 1F916; +๐Ÿ˜บ grinning cat; 1F63A; +๐Ÿ˜ธ grinning cat with smiling eyes; 1F638; +๐Ÿ˜น cat with tears of joy; 1F639; +๐Ÿ˜ป smiling cat with heart-eyes; 1F63B; +๐Ÿ˜ผ cat with wry smile; 1F63C; +๐Ÿ˜ฝ kissing cat; 1F63D; +๐Ÿ™€ weary cat; 1F640; +๐Ÿ˜ฟ crying cat; 1F63F; +๐Ÿ˜พ pouting cat; 1F63E; +๐Ÿ™ˆ see-no-evil monkey; 1F648; +๐Ÿ™‰ hear-no-evil monkey; 1F649; +๐Ÿ™Š speak-no-evil monkey; 1F64A; +๐Ÿ’‹ kiss mark; 1F48B; +๐Ÿ’Œ love letter; 1F48C; +๐Ÿ’˜ heart with arrow; 1F498; +๐Ÿ’ heart with ribbon; 1F49D; +๐Ÿ’– sparkling heart; 1F496; +๐Ÿ’— growing heart; 1F497; +๐Ÿ’“ beating heart; 1F493; +๐Ÿ’ž revolving hearts; 1F49E; +๐Ÿ’• two hearts; 1F495; +๐Ÿ’Ÿ heart decoration; 1F49F; +โฃ๏ธ heart exclamation; 2763 FE0F; +๐Ÿ’” broken heart; 1F494; +โค๏ธ red heart; 2764 FE0F; +๐Ÿงก orange heart; 1F9E1; +๐Ÿ’› yellow heart; 1F49B; +๐Ÿ’š green heart; 1F49A; +๐Ÿ’™ blue heart; 1F499; +๐Ÿ’œ purple heart; 1F49C; +๐ŸคŽ brown heart; 1F90E; +๐Ÿ–ค black heart; 1F5A4; +๐Ÿค white heart; 1F90D; +๐Ÿ’ฏ hundred points; 1F4AF; +๐Ÿ’ข anger symbol; 1F4A2; +๐Ÿ’ฅ collision; 1F4A5; +๐Ÿ’ซ dizzy; 1F4AB; +๐Ÿ’ฆ sweat droplets; 1F4A6; +๐Ÿ’จ dashing away; 1F4A8; +๐Ÿ•ณ๏ธ hole; 1F573 FE0F; +๐Ÿ’ฃ bomb; 1F4A3; +๐Ÿ’ฌ speech balloon; 1F4AC; +๐Ÿ—จ๏ธ left speech bubble; 1F5E8 FE0F; +๐Ÿ—ฏ๏ธ right anger bubble; 1F5EF FE0F; +๐Ÿ’ญ thought balloon; 1F4AD; +๐Ÿ’ค zzz; 1F4A4; +๐Ÿ‘‹ waving hand; 1F44B; +๐Ÿคš raised back of hand; 1F91A; +๐Ÿ–๏ธ hand with fingers splayed; 1F590 FE0F; +โœ‹ raised hand; 270B; +๐Ÿ–– vulcan salute; 1F596; +๐Ÿ‘Œ OK hand; 1F44C; +๐ŸคŒ pinched fingers; 1F90C; +๐Ÿค pinching hand; 1F90F; +โœŒ๏ธ victory hand; 270C FE0F; +๐Ÿคž crossed fingers; 1F91E; +๐ŸคŸ love-you gesture; 1F91F; +๐Ÿค˜ sign of the horns; 1F918; +๐Ÿค™ call me hand; 1F919; +๐Ÿ‘ˆ backhand index pointing left; 1F448; +๐Ÿ‘‰ backhand index pointing right; 1F449; +๐Ÿ‘† backhand index pointing up; 1F446; +๐Ÿ–• middle finger; 1F595; +๐Ÿ‘‡ backhand index pointing down; 1F447; +โ˜๏ธ index pointing up; 261D FE0F; +๐Ÿ‘ thumbs up; 1F44D; +๐Ÿ‘Ž thumbs down; 1F44E; +โœŠ raised fist; 270A; +๐Ÿ‘Š oncoming fist; 1F44A; +๐Ÿค› left-facing fist; 1F91B; +๐Ÿคœ right-facing fist; 1F91C; +๐Ÿ‘ clapping hands; 1F44F; +๐Ÿ™Œ raising hands; 1F64C; +๐Ÿ‘ open hands; 1F450; +๐Ÿคฒ palms up together; 1F932; +๐Ÿค handshake; 1F91D; +๐Ÿ™ folded hands; 1F64F; +โœ๏ธ writing hand; 270D FE0F; +๐Ÿ’… nail polish; 1F485; +๐Ÿคณ selfie; 1F933; +๐Ÿ’ช flexed biceps; 1F4AA; +๐Ÿฆพ mechanical arm; 1F9BE; +๐Ÿฆฟ mechanical leg; 1F9BF; +๐Ÿฆต leg; 1F9B5; +๐Ÿฆถ foot; 1F9B6; +๐Ÿ‘‚ ear; 1F442; +๐Ÿฆป ear with hearing aid; 1F9BB; +๐Ÿ‘ƒ nose; 1F443; +๐Ÿง  brain; 1F9E0; +๐Ÿซ€ anatomical heart; 1FAC0; +๐Ÿซ lungs; 1FAC1; +๐Ÿฆท tooth; 1F9B7; +๐Ÿฆด bone; 1F9B4; +๐Ÿ‘€ eyes; 1F440; +๐Ÿ‘๏ธ eye; 1F441 FE0F; +๐Ÿ‘… tongue; 1F445; +๐Ÿ‘„ mouth; 1F444; +๐Ÿ‘ถ baby; 1F476; +๐Ÿง’ child; 1F9D2; +๐Ÿ‘ฆ boy; 1F466; +๐Ÿ‘ง girl; 1F467; +๐Ÿง‘ person; 1F9D1; +๐Ÿ‘ฑ person: blond hair; 1F471; +๐Ÿ‘จ man; 1F468; +๐Ÿง” man: beard; 1F9D4; +๐Ÿ‘ฉ woman; 1F469; +๐Ÿง“ older person; 1F9D3; +๐Ÿ‘ด old man; 1F474; +๐Ÿ‘ต old woman; 1F475; +๐Ÿ™ person frowning; 1F64D; +๐Ÿ™Ž person pouting; 1F64E; +๐Ÿ™… person gesturing NO; 1F645; +๐Ÿ™† person gesturing OK; 1F646; +๐Ÿ’ person tipping hand; 1F481; +๐Ÿ™‹ person raising hand; 1F64B; +๐Ÿง deaf person; 1F9CF; +๐Ÿ™‡ person bowing; 1F647; +๐Ÿคฆ person facepalming; 1F926; +๐Ÿคท person shrugging; 1F937; +๐Ÿ‘ฎ police officer; 1F46E; +๐Ÿ•ต๏ธ detective; 1F575 FE0F; +๐Ÿ’‚ guard; 1F482; +๐Ÿฅท ninja; 1F977; +๐Ÿ‘ท construction worker; 1F477; +๐Ÿคด prince; 1F934; +๐Ÿ‘ธ princess; 1F478; +๐Ÿ‘ณ person wearing turban; 1F473; +๐Ÿ‘ฒ person with skullcap; 1F472; +๐Ÿง• woman with headscarf; 1F9D5; +๐Ÿคต person in tuxedo; 1F935; +๐Ÿ‘ฐ person with veil; 1F470; +๐Ÿคฐ pregnant woman; 1F930; +๐Ÿคฑ breast-feeding; 1F931; +๐Ÿ‘ผ baby angel; 1F47C; +๐ŸŽ… Santa Claus; 1F385; +๐Ÿคถ Mrs. Claus; 1F936; +๐Ÿฆธ superhero; 1F9B8; +๐Ÿฆน supervillain; 1F9B9; +๐Ÿง™ mage; 1F9D9; +๐Ÿงš fairy; 1F9DA; +๐Ÿง› vampire; 1F9DB; +๐Ÿงœ merperson; 1F9DC; +๐Ÿง elf; 1F9DD; +๐Ÿงž genie; 1F9DE; +๐ŸงŸ zombie; 1F9DF; +๐Ÿ’† person getting massage; 1F486; +๐Ÿ’‡ person getting haircut; 1F487; +๐Ÿšถ person walking; 1F6B6; +๐Ÿง person standing; 1F9CD; +๐ŸงŽ person kneeling; 1F9CE; +๐Ÿƒ person running; 1F3C3; +๐Ÿ’ƒ woman dancing; 1F483; +๐Ÿ•บ man dancing; 1F57A; +๐Ÿ•ด๏ธ person in suit levitating; 1F574 FE0F; +๐Ÿ‘ฏ people with bunny ears; 1F46F; +๐Ÿง– person in steamy room; 1F9D6; +๐Ÿง— person climbing; 1F9D7; +๐Ÿคบ person fencing; 1F93A; +๐Ÿ‡ horse racing; 1F3C7; +โ›ท๏ธ skier; 26F7 FE0F; +๐Ÿ‚ snowboarder; 1F3C2; +๐ŸŒ๏ธ person golfing; 1F3CC FE0F; +๐Ÿ„ person surfing; 1F3C4; +๐Ÿšฃ person rowing boat; 1F6A3; +๐ŸŠ person swimming; 1F3CA; +โ›น๏ธ person bouncing ball; 26F9 FE0F; +๐Ÿ‹๏ธ person lifting weights; 1F3CB FE0F; +๐Ÿšด person biking; 1F6B4; +๐Ÿšต person mountain biking; 1F6B5; +๐Ÿคธ person cartwheeling; 1F938; +๐Ÿคผ people wrestling; 1F93C; +๐Ÿคฝ person playing water polo; 1F93D; +๐Ÿคพ person playing handball; 1F93E; +๐Ÿคน person juggling; 1F939; +๐Ÿง˜ person in lotus position; 1F9D8; +๐Ÿ›€ person taking bath; 1F6C0; +๐Ÿ›Œ person in bed; 1F6CC; +๐Ÿ‘ญ women holding hands; 1F46D; +๐Ÿ‘ซ woman and man holding hands; 1F46B; +๐Ÿ‘ฌ men holding hands; 1F46C; +๐Ÿ’ kiss; 1F48F; +๐Ÿ’‘ couple with heart; 1F491; +๐Ÿ‘ช family; 1F46A; +๐Ÿ—ฃ๏ธ speaking head; 1F5E3 FE0F; +๐Ÿ‘ค bust in silhouette; 1F464; +๐Ÿ‘ฅ busts in silhouette; 1F465; +๐Ÿซ‚ people hugging; 1FAC2; +๐Ÿ‘ฃ footprints; 1F463; +๐Ÿต monkey face; 1F435; +๐Ÿ’ monkey; 1F412; +๐Ÿฆ gorilla; 1F98D; +๐Ÿฆง orangutan; 1F9A7; +๐Ÿถ dog face; 1F436; +๐Ÿ• dog; 1F415; +๐Ÿฆฎ guide dog; 1F9AE; +๐Ÿฉ poodle; 1F429; +๐Ÿบ wolf; 1F43A; +๐ŸฆŠ fox; 1F98A; +๐Ÿฆ raccoon; 1F99D; +๐Ÿฑ cat face; 1F431; +๐Ÿˆ cat; 1F408; +๐Ÿฆ lion; 1F981; +๐Ÿฏ tiger face; 1F42F; +๐Ÿ… tiger; 1F405; +๐Ÿ† leopard; 1F406; +๐Ÿด horse face; 1F434; +๐ŸŽ horse; 1F40E; +๐Ÿฆ„ unicorn; 1F984; +๐Ÿฆ“ zebra; 1F993; +๐ŸฆŒ deer; 1F98C; +๐Ÿฆฌ bison; 1F9AC; +๐Ÿฎ cow face; 1F42E; +๐Ÿ‚ ox; 1F402; +๐Ÿƒ water buffalo; 1F403; +๐Ÿ„ cow; 1F404; +๐Ÿท pig face; 1F437; +๐Ÿ– pig; 1F416; +๐Ÿ— boar; 1F417; +๐Ÿฝ pig nose; 1F43D; +๐Ÿ ram; 1F40F; +๐Ÿ‘ ewe; 1F411; +๐Ÿ goat; 1F410; +๐Ÿช camel; 1F42A; +๐Ÿซ two-hump camel; 1F42B; +๐Ÿฆ™ llama; 1F999; +๐Ÿฆ’ giraffe; 1F992; +๐Ÿ˜ elephant; 1F418; +๐Ÿฆฃ mammoth; 1F9A3; +๐Ÿฆ rhinoceros; 1F98F; +๐Ÿฆ› hippopotamus; 1F99B; +๐Ÿญ mouse face; 1F42D; +๐Ÿ mouse; 1F401; +๐Ÿ€ rat; 1F400; +๐Ÿน hamster; 1F439; +๐Ÿฐ rabbit face; 1F430; +๐Ÿ‡ rabbit; 1F407; +๐Ÿฟ๏ธ chipmunk; 1F43F FE0F; +๐Ÿฆซ beaver; 1F9AB; +๐Ÿฆ” hedgehog; 1F994; +๐Ÿฆ‡ bat; 1F987; +๐Ÿป bear; 1F43B; +๐Ÿจ koala; 1F428; +๐Ÿผ panda; 1F43C; +๐Ÿฆฅ sloth; 1F9A5; +๐Ÿฆฆ otter; 1F9A6; +๐Ÿฆจ skunk; 1F9A8; +๐Ÿฆ˜ kangaroo; 1F998; +๐Ÿฆก badger; 1F9A1; +๐Ÿพ paw prints; 1F43E; +๐Ÿฆƒ turkey; 1F983; +๐Ÿ” chicken; 1F414; +๐Ÿ“ rooster; 1F413; +๐Ÿฃ hatching chick; 1F423; +๐Ÿค baby chick; 1F424; +๐Ÿฅ front-facing baby chick; 1F425; +๐Ÿฆ bird; 1F426; +๐Ÿง penguin; 1F427; +๐Ÿ•Š๏ธ dove; 1F54A FE0F; +๐Ÿฆ… eagle; 1F985; +๐Ÿฆ† duck; 1F986; +๐Ÿฆข swan; 1F9A2; +๐Ÿฆ‰ owl; 1F989; +๐Ÿฆค dodo; 1F9A4; +๐Ÿชถ feather; 1FAB6; +๐Ÿฆฉ flamingo; 1F9A9; +๐Ÿฆš peacock; 1F99A; +๐Ÿฆœ parrot; 1F99C; +๐Ÿธ frog; 1F438; +๐ŸŠ crocodile; 1F40A; +๐Ÿข turtle; 1F422; +๐ŸฆŽ lizard; 1F98E; +๐Ÿ snake; 1F40D; +๐Ÿฒ dragon face; 1F432; +๐Ÿ‰ dragon; 1F409; +๐Ÿฆ• sauropod; 1F995; +๐Ÿฆ– T-Rex; 1F996; +๐Ÿณ spouting whale; 1F433; +๐Ÿ‹ whale; 1F40B; +๐Ÿฌ dolphin; 1F42C; +๐Ÿฆญ seal; 1F9AD; +๐ŸŸ fish; 1F41F; +๐Ÿ  tropical fish; 1F420; +๐Ÿก blowfish; 1F421; +๐Ÿฆˆ shark; 1F988; +๐Ÿ™ octopus; 1F419; +๐Ÿš spiral shell; 1F41A; +๐ŸŒ snail; 1F40C; +๐Ÿฆ‹ butterfly; 1F98B; +๐Ÿ› bug; 1F41B; +๐Ÿœ ant; 1F41C; +๐Ÿ honeybee; 1F41D; +๐Ÿชฒ beetle; 1FAB2; +๐Ÿž lady beetle; 1F41E; +๐Ÿฆ— cricket; 1F997; +๐Ÿชณ cockroach; 1FAB3; +๐Ÿ•ท๏ธ spider; 1F577 FE0F; +๐Ÿ•ธ๏ธ spider web; 1F578 FE0F; +๐Ÿฆ‚ scorpion; 1F982; +๐ŸฆŸ mosquito; 1F99F; +๐Ÿชฐ fly; 1FAB0; +๐Ÿชฑ worm; 1FAB1; +๐Ÿฆ  microbe; 1F9A0; +๐Ÿ’ bouquet; 1F490; +๐ŸŒธ cherry blossom; 1F338; +๐Ÿ’ฎ white flower; 1F4AE; +๐Ÿต๏ธ rosette; 1F3F5 FE0F; +๐ŸŒน rose; 1F339; +๐Ÿฅ€ wilted flower; 1F940; +๐ŸŒบ hibiscus; 1F33A; +๐ŸŒป sunflower; 1F33B; +๐ŸŒผ blossom; 1F33C; +๐ŸŒท tulip; 1F337; +๐ŸŒฑ seedling; 1F331; +๐Ÿชด potted plant; 1FAB4; +๐ŸŒฒ evergreen tree; 1F332; +๐ŸŒณ deciduous tree; 1F333; +๐ŸŒด palm tree; 1F334; +๐ŸŒต cactus; 1F335; +๐ŸŒพ sheaf of rice; 1F33E; +๐ŸŒฟ herb; 1F33F; +โ˜˜๏ธ shamrock; 2618 FE0F; +๐Ÿ€ four leaf clover; 1F340; +๐Ÿ maple leaf; 1F341; +๐Ÿ‚ fallen leaf; 1F342; +๐Ÿƒ leaf fluttering in wind; 1F343; +๐Ÿ‡ grapes; 1F347; +๐Ÿˆ melon; 1F348; +๐Ÿ‰ watermelon; 1F349; +๐ŸŠ tangerine; 1F34A; +๐Ÿ‹ lemon; 1F34B; +๐ŸŒ banana; 1F34C; +๐Ÿ pineapple; 1F34D; +๐Ÿฅญ mango; 1F96D; +๐ŸŽ red apple; 1F34E; +๐Ÿ green apple; 1F34F; +๐Ÿ pear; 1F350; +๐Ÿ‘ peach; 1F351; +๐Ÿ’ cherries; 1F352; +๐Ÿ“ strawberry; 1F353; +๐Ÿซ blueberries; 1FAD0; +๐Ÿฅ kiwi fruit; 1F95D; +๐Ÿ… tomato; 1F345; +๐Ÿซ’ olive; 1FAD2; +๐Ÿฅฅ coconut; 1F965; +๐Ÿฅ‘ avocado; 1F951; +๐Ÿ† eggplant; 1F346; +๐Ÿฅ” potato; 1F954; +๐Ÿฅ• carrot; 1F955; +๐ŸŒฝ ear of corn; 1F33D; +๐ŸŒถ๏ธ hot pepper; 1F336 FE0F; +๐Ÿซ‘ bell pepper; 1FAD1; +๐Ÿฅ’ cucumber; 1F952; +๐Ÿฅฌ leafy green; 1F96C; +๐Ÿฅฆ broccoli; 1F966; +๐Ÿง„ garlic; 1F9C4; +๐Ÿง… onion; 1F9C5; +๐Ÿ„ mushroom; 1F344; +๐Ÿฅœ peanuts; 1F95C; +๐ŸŒฐ chestnut; 1F330; +๐Ÿž bread; 1F35E; +๐Ÿฅ croissant; 1F950; +๐Ÿฅ– baguette bread; 1F956; +๐Ÿซ“ flatbread; 1FAD3; +๐Ÿฅจ pretzel; 1F968; +๐Ÿฅฏ bagel; 1F96F; +๐Ÿฅž pancakes; 1F95E; +๐Ÿง‡ waffle; 1F9C7; +๐Ÿง€ cheese wedge; 1F9C0; +๐Ÿ– meat on bone; 1F356; +๐Ÿ— poultry leg; 1F357; +๐Ÿฅฉ cut of meat; 1F969; +๐Ÿฅ“ bacon; 1F953; +๐Ÿ” hamburger; 1F354; +๐ŸŸ french fries; 1F35F; +๐Ÿ• pizza; 1F355; +๐ŸŒญ hot dog; 1F32D; +๐Ÿฅช sandwich; 1F96A; +๐ŸŒฎ taco; 1F32E; +๐ŸŒฏ burrito; 1F32F; +๐Ÿซ” tamale; 1FAD4; +๐Ÿฅ™ stuffed flatbread; 1F959; +๐Ÿง† falafel; 1F9C6; +๐Ÿฅš egg; 1F95A; +๐Ÿณ cooking; 1F373; +๐Ÿฅ˜ shallow pan of food; 1F958; +๐Ÿฒ pot of food; 1F372; +๐Ÿซ• fondue; 1FAD5; +๐Ÿฅฃ bowl with spoon; 1F963; +๐Ÿฅ— green salad; 1F957; +๐Ÿฟ popcorn; 1F37F; +๐Ÿงˆ butter; 1F9C8; +๐Ÿง‚ salt; 1F9C2; +๐Ÿฅซ canned food; 1F96B; +๐Ÿฑ bento box; 1F371; +๐Ÿ˜ rice cracker; 1F358; +๐Ÿ™ rice ball; 1F359; +๐Ÿš cooked rice; 1F35A; +๐Ÿ› curry rice; 1F35B; +๐Ÿœ steaming bowl; 1F35C; +๐Ÿ spaghetti; 1F35D; +๐Ÿ  roasted sweet potato; 1F360; +๐Ÿข oden; 1F362; +๐Ÿฃ sushi; 1F363; +๐Ÿค fried shrimp; 1F364; +๐Ÿฅ fish cake with swirl; 1F365; +๐Ÿฅฎ moon cake; 1F96E; +๐Ÿก dango; 1F361; +๐ŸฅŸ dumpling; 1F95F; +๐Ÿฅ  fortune cookie; 1F960; +๐Ÿฅก takeout box; 1F961; +๐Ÿฆ€ crab; 1F980; +๐Ÿฆž lobster; 1F99E; +๐Ÿฆ shrimp; 1F990; +๐Ÿฆ‘ squid; 1F991; +๐Ÿฆช oyster; 1F9AA; +๐Ÿฆ soft ice cream; 1F366; +๐Ÿง shaved ice; 1F367; +๐Ÿจ ice cream; 1F368; +๐Ÿฉ doughnut; 1F369; +๐Ÿช cookie; 1F36A; +๐ŸŽ‚ birthday cake; 1F382; +๐Ÿฐ shortcake; 1F370; +๐Ÿง cupcake; 1F9C1; +๐Ÿฅง pie; 1F967; +๐Ÿซ chocolate bar; 1F36B; +๐Ÿฌ candy; 1F36C; +๐Ÿญ lollipop; 1F36D; +๐Ÿฎ custard; 1F36E; +๐Ÿฏ honey pot; 1F36F; +๐Ÿผ baby bottle; 1F37C; +๐Ÿฅ› glass of milk; 1F95B; +โ˜• hot beverage; 2615; +๐Ÿซ– teapot; 1FAD6; +๐Ÿต teacup without handle; 1F375; +๐Ÿถ sake; 1F376; +๐Ÿพ bottle with popping cork; 1F37E; +๐Ÿท wine glass; 1F377; +๐Ÿธ cocktail glass; 1F378; +๐Ÿน tropical drink; 1F379; +๐Ÿบ beer mug; 1F37A; +๐Ÿป clinking beer mugs; 1F37B; +๐Ÿฅ‚ clinking glasses; 1F942; +๐Ÿฅƒ tumbler glass; 1F943; +๐Ÿฅค cup with straw; 1F964; +๐Ÿง‹ bubble tea; 1F9CB; +๐Ÿงƒ beverage box; 1F9C3; +๐Ÿง‰ mate; 1F9C9; +๐ŸงŠ ice; 1F9CA; +๐Ÿฅข chopsticks; 1F962; +๐Ÿฝ๏ธ fork and knife with plate; 1F37D FE0F; +๐Ÿด fork and knife; 1F374; +๐Ÿฅ„ spoon; 1F944; +๐Ÿ”ช kitchen knife; 1F52A; +๐Ÿบ amphora; 1F3FA; +๐ŸŒ globe showing Europe-Africa; 1F30D; +๐ŸŒŽ globe showing Americas; 1F30E; +๐ŸŒ globe showing Asia-Australia; 1F30F; +๐ŸŒ globe with meridians; 1F310; +๐Ÿ—บ๏ธ world map; 1F5FA FE0F; +๐Ÿ—พ map of Japan; 1F5FE; +๐Ÿงญ compass; 1F9ED; +๐Ÿ”๏ธ snow-capped mountain; 1F3D4 FE0F; +โ›ฐ๏ธ mountain; 26F0 FE0F; +๐ŸŒ‹ volcano; 1F30B; +๐Ÿ—ป mount fuji; 1F5FB; +๐Ÿ•๏ธ camping; 1F3D5 FE0F; +๐Ÿ–๏ธ beach with umbrella; 1F3D6 FE0F; +๐Ÿœ๏ธ desert; 1F3DC FE0F; +๐Ÿ๏ธ desert island; 1F3DD FE0F; +๐Ÿž๏ธ national park; 1F3DE FE0F; +๐ŸŸ๏ธ stadium; 1F3DF FE0F; +๐Ÿ›๏ธ classical building; 1F3DB FE0F; +๐Ÿ—๏ธ building construction; 1F3D7 FE0F; +๐Ÿงฑ brick; 1F9F1; +๐Ÿชจ rock; 1FAA8; +๐Ÿชต wood; 1FAB5; +๐Ÿ›– hut; 1F6D6; +๐Ÿ˜๏ธ houses; 1F3D8 FE0F; +๐Ÿš๏ธ derelict house; 1F3DA FE0F; +๐Ÿ  house; 1F3E0; +๐Ÿก house with garden; 1F3E1; +๐Ÿข office building; 1F3E2; +๐Ÿฃ Japanese post office; 1F3E3; +๐Ÿค post office; 1F3E4; +๐Ÿฅ hospital; 1F3E5; +๐Ÿฆ bank; 1F3E6; +๐Ÿจ hotel; 1F3E8; +๐Ÿฉ love hotel; 1F3E9; +๐Ÿช convenience store; 1F3EA; +๐Ÿซ school; 1F3EB; +๐Ÿฌ department store; 1F3EC; +๐Ÿญ factory; 1F3ED; +๐Ÿฏ Japanese castle; 1F3EF; +๐Ÿฐ castle; 1F3F0; +๐Ÿ’’ wedding; 1F492; +๐Ÿ—ผ Tokyo tower; 1F5FC; +๐Ÿ—ฝ Statue of Liberty; 1F5FD; +โ›ช church; 26EA; +๐Ÿ•Œ mosque; 1F54C; +๐Ÿ›• hindu temple; 1F6D5; +๐Ÿ• synagogue; 1F54D; +โ›ฉ๏ธ shinto shrine; 26E9 FE0F; +๐Ÿ•‹ kaaba; 1F54B; +โ›ฒ fountain; 26F2; +โ›บ tent; 26FA; +๐ŸŒ foggy; 1F301; +๐ŸŒƒ night with stars; 1F303; +๐Ÿ™๏ธ cityscape; 1F3D9 FE0F; +๐ŸŒ„ sunrise over mountains; 1F304; +๐ŸŒ… sunrise; 1F305; +๐ŸŒ† cityscape at dusk; 1F306; +๐ŸŒ‡ sunset; 1F307; +๐ŸŒ‰ bridge at night; 1F309; +โ™จ๏ธ hot springs; 2668 FE0F; +๐ŸŽ  carousel horse; 1F3A0; +๐ŸŽก ferris wheel; 1F3A1; +๐ŸŽข roller coaster; 1F3A2; +๐Ÿ’ˆ barber pole; 1F488; +๐ŸŽช circus tent; 1F3AA; +๐Ÿš‚ locomotive; 1F682; +๐Ÿšƒ railway car; 1F683; +๐Ÿš„ high-speed train; 1F684; +๐Ÿš… bullet train; 1F685; +๐Ÿš† train; 1F686; +๐Ÿš‡ metro; 1F687; +๐Ÿšˆ light rail; 1F688; +๐Ÿš‰ station; 1F689; +๐ŸšŠ tram; 1F68A; +๐Ÿš monorail; 1F69D; +๐Ÿšž mountain railway; 1F69E; +๐Ÿš‹ tram car; 1F68B; +๐ŸšŒ bus; 1F68C; +๐Ÿš oncoming bus; 1F68D; +๐ŸšŽ trolleybus; 1F68E; +๐Ÿš minibus; 1F690; +๐Ÿš‘ ambulance; 1F691; +๐Ÿš’ fire engine; 1F692; +๐Ÿš“ police car; 1F693; +๐Ÿš” oncoming police car; 1F694; +๐Ÿš• taxi; 1F695; +๐Ÿš– oncoming taxi; 1F696; +๐Ÿš— automobile; 1F697; +๐Ÿš˜ oncoming automobile; 1F698; +๐Ÿš™ sport utility vehicle; 1F699; +๐Ÿ›ป pickup truck; 1F6FB; +๐Ÿšš delivery truck; 1F69A; +๐Ÿš› articulated lorry; 1F69B; +๐Ÿšœ tractor; 1F69C; +๐ŸŽ๏ธ racing car; 1F3CE FE0F; +๐Ÿ๏ธ motorcycle; 1F3CD FE0F; +๐Ÿ›ต motor scooter; 1F6F5; +๐Ÿฆฝ manual wheelchair; 1F9BD; +๐Ÿฆผ motorized wheelchair; 1F9BC; +๐Ÿ›บ auto rickshaw; 1F6FA; +๐Ÿšฒ bicycle; 1F6B2; +๐Ÿ›ด kick scooter; 1F6F4; +๐Ÿ›น skateboard; 1F6F9; +๐Ÿ›ผ roller skate; 1F6FC; +๐Ÿš bus stop; 1F68F; +๐Ÿ›ฃ๏ธ motorway; 1F6E3 FE0F; +๐Ÿ›ค๏ธ railway track; 1F6E4 FE0F; +๐Ÿ›ข๏ธ oil drum; 1F6E2 FE0F; +โ›ฝ fuel pump; 26FD; +๐Ÿšจ police car light; 1F6A8; +๐Ÿšฅ horizontal traffic light; 1F6A5; +๐Ÿšฆ vertical traffic light; 1F6A6; +๐Ÿ›‘ stop sign; 1F6D1; +๐Ÿšง construction; 1F6A7; +โš“ anchor; 2693; +โ›ต sailboat; 26F5; +๐Ÿ›ถ canoe; 1F6F6; +๐Ÿšค speedboat; 1F6A4; +๐Ÿ›ณ๏ธ passenger ship; 1F6F3 FE0F; +โ›ด๏ธ ferry; 26F4 FE0F; +๐Ÿ›ฅ๏ธ motor boat; 1F6E5 FE0F; +๐Ÿšข ship; 1F6A2; +โœˆ๏ธ airplane; 2708 FE0F; +๐Ÿ›ฉ๏ธ small airplane; 1F6E9 FE0F; +๐Ÿ›ซ airplane departure; 1F6EB; +๐Ÿ›ฌ airplane arrival; 1F6EC; +๐Ÿช‚ parachute; 1FA82; +๐Ÿ’บ seat; 1F4BA; +๐Ÿš helicopter; 1F681; +๐ŸšŸ suspension railway; 1F69F; +๐Ÿš  mountain cableway; 1F6A0; +๐Ÿšก aerial tramway; 1F6A1; +๐Ÿ›ฐ๏ธ satellite; 1F6F0 FE0F; +๐Ÿš€ rocket; 1F680; +๐Ÿ›ธ flying saucer; 1F6F8; +๐Ÿ›Ž๏ธ bellhop bell; 1F6CE FE0F; +๐Ÿงณ luggage; 1F9F3; +โŒ› hourglass done; 231B; +โณ hourglass not done; 23F3; +โŒš watch; 231A; +โฐ alarm clock; 23F0; +โฑ๏ธ stopwatch; 23F1 FE0F; +โฒ๏ธ timer clock; 23F2 FE0F; +๐Ÿ•ฐ๏ธ mantelpiece clock; 1F570 FE0F; +๐Ÿ•› twelve oโ€™clock; 1F55B; +๐Ÿ•ง twelve-thirty; 1F567; +๐Ÿ• one oโ€™clock; 1F550; +๐Ÿ•œ one-thirty; 1F55C; +๐Ÿ•‘ two oโ€™clock; 1F551; +๐Ÿ• two-thirty; 1F55D; +๐Ÿ•’ three oโ€™clock; 1F552; +๐Ÿ•ž three-thirty; 1F55E; +๐Ÿ•“ four oโ€™clock; 1F553; +๐Ÿ•Ÿ four-thirty; 1F55F; +๐Ÿ•” five oโ€™clock; 1F554; +๐Ÿ•  five-thirty; 1F560; +๐Ÿ•• six oโ€™clock; 1F555; +๐Ÿ•ก six-thirty; 1F561; +๐Ÿ•– seven oโ€™clock; 1F556; +๐Ÿ•ข seven-thirty; 1F562; +๐Ÿ•— eight oโ€™clock; 1F557; +๐Ÿ•ฃ eight-thirty; 1F563; +๐Ÿ•˜ nine oโ€™clock; 1F558; +๐Ÿ•ค nine-thirty; 1F564; +๐Ÿ•™ ten oโ€™clock; 1F559; +๐Ÿ•ฅ ten-thirty; 1F565; +๐Ÿ•š eleven oโ€™clock; 1F55A; +๐Ÿ•ฆ eleven-thirty; 1F566; +๐ŸŒ‘ new moon; 1F311; +๐ŸŒ’ waxing crescent moon; 1F312; +๐ŸŒ“ first quarter moon; 1F313; +๐ŸŒ” waxing gibbous moon; 1F314; +๐ŸŒ• full moon; 1F315; +๐ŸŒ– waning gibbous moon; 1F316; +๐ŸŒ— last quarter moon; 1F317; +๐ŸŒ˜ waning crescent moon; 1F318; +๐ŸŒ™ crescent moon; 1F319; +๐ŸŒš new moon face; 1F31A; +๐ŸŒ› first quarter moon face; 1F31B; +๐ŸŒœ last quarter moon face; 1F31C; +๐ŸŒก๏ธ thermometer; 1F321 FE0F; +โ˜€๏ธ sun; 2600 FE0F; +๐ŸŒ full moon face; 1F31D; +๐ŸŒž sun with face; 1F31E; +๐Ÿช ringed planet; 1FA90; +โญ star; 2B50; +๐ŸŒŸ glowing star; 1F31F; +๐ŸŒ  shooting star; 1F320; +๐ŸŒŒ milky way; 1F30C; +โ˜๏ธ cloud; 2601 FE0F; +โ›… sun behind cloud; 26C5; +โ›ˆ๏ธ cloud with lightning and rain; 26C8 FE0F; +๐ŸŒค๏ธ sun behind small cloud; 1F324 FE0F; +๐ŸŒฅ๏ธ sun behind large cloud; 1F325 FE0F; +๐ŸŒฆ๏ธ sun behind rain cloud; 1F326 FE0F; +๐ŸŒง๏ธ cloud with rain; 1F327 FE0F; +๐ŸŒจ๏ธ cloud with snow; 1F328 FE0F; +๐ŸŒฉ๏ธ cloud with lightning; 1F329 FE0F; +๐ŸŒช๏ธ tornado; 1F32A FE0F; +๐ŸŒซ๏ธ fog; 1F32B FE0F; +๐ŸŒฌ๏ธ wind face; 1F32C FE0F; +๐ŸŒ€ cyclone; 1F300; +๐ŸŒˆ rainbow; 1F308; +๐ŸŒ‚ closed umbrella; 1F302; +โ˜‚๏ธ umbrella; 2602 FE0F; +โ˜” umbrella with rain drops; 2614; +โ›ฑ๏ธ umbrella on ground; 26F1 FE0F; +โšก high voltage; 26A1; +โ„๏ธ snowflake; 2744 FE0F; +โ˜ƒ๏ธ snowman; 2603 FE0F; +โ›„ snowman without snow; 26C4; +โ˜„๏ธ comet; 2604 FE0F; +๐Ÿ”ฅ fire; 1F525; +๐Ÿ’ง droplet; 1F4A7; +๐ŸŒŠ water wave; 1F30A; +๐ŸŽƒ jack-o-lantern; 1F383; +๐ŸŽ„ Christmas tree; 1F384; +๐ŸŽ† fireworks; 1F386; +๐ŸŽ‡ sparkler; 1F387; +๐Ÿงจ firecracker; 1F9E8; +โœจ sparkles; 2728; +๐ŸŽˆ balloon; 1F388; +๐ŸŽ‰ party popper; 1F389; +๐ŸŽŠ confetti ball; 1F38A; +๐ŸŽ‹ tanabata tree; 1F38B; +๐ŸŽ pine decoration; 1F38D; +๐ŸŽŽ Japanese dolls; 1F38E; +๐ŸŽ carp streamer; 1F38F; +๐ŸŽ wind chime; 1F390; +๐ŸŽ‘ moon viewing ceremony; 1F391; +๐Ÿงง red envelope; 1F9E7; +๐ŸŽ€ ribbon; 1F380; +๐ŸŽ wrapped gift; 1F381; +๐ŸŽ—๏ธ reminder ribbon; 1F397 FE0F; +๐ŸŽŸ๏ธ admission tickets; 1F39F FE0F; +๐ŸŽซ ticket; 1F3AB; +๐ŸŽ–๏ธ military medal; 1F396 FE0F; +๐Ÿ† trophy; 1F3C6; +๐Ÿ… sports medal; 1F3C5; +๐Ÿฅ‡ 1st place medal; 1F947; +๐Ÿฅˆ 2nd place medal; 1F948; +๐Ÿฅ‰ 3rd place medal; 1F949; +โšฝ soccer ball; 26BD; +โšพ baseball; 26BE; +๐ŸฅŽ softball; 1F94E; +๐Ÿ€ basketball; 1F3C0; +๐Ÿ volleyball; 1F3D0; +๐Ÿˆ american football; 1F3C8; +๐Ÿ‰ rugby football; 1F3C9; +๐ŸŽพ tennis; 1F3BE; +๐Ÿฅ flying disc; 1F94F; +๐ŸŽณ bowling; 1F3B3; +๐Ÿ cricket game; 1F3CF; +๐Ÿ‘ field hockey; 1F3D1; +๐Ÿ’ ice hockey; 1F3D2; +๐Ÿฅ lacrosse; 1F94D; +๐Ÿ“ ping pong; 1F3D3; +๐Ÿธ badminton; 1F3F8; +๐ŸฅŠ boxing glove; 1F94A; +๐Ÿฅ‹ martial arts uniform; 1F94B; +๐Ÿฅ… goal net; 1F945; +โ›ณ flag in hole; 26F3; +โ›ธ๏ธ ice skate; 26F8 FE0F; +๐ŸŽฃ fishing pole; 1F3A3; +๐Ÿคฟ diving mask; 1F93F; +๐ŸŽฝ running shirt; 1F3BD; +๐ŸŽฟ skis; 1F3BF; +๐Ÿ›ท sled; 1F6F7; +๐ŸฅŒ curling stone; 1F94C; +๐ŸŽฏ direct hit; 1F3AF; +๐Ÿช€ yo-yo; 1FA80; +๐Ÿช kite; 1FA81; +๐ŸŽฑ pool 8 ball; 1F3B1; +๐Ÿ”ฎ crystal ball; 1F52E; +๐Ÿช„ magic wand; 1FA84; +๐Ÿงฟ nazar amulet; 1F9FF; +๐ŸŽฎ video game; 1F3AE; +๐Ÿ•น๏ธ joystick; 1F579 FE0F; +๐ŸŽฐ slot machine; 1F3B0; +๐ŸŽฒ game die; 1F3B2; +๐Ÿงฉ puzzle piece; 1F9E9; +๐Ÿงธ teddy bear; 1F9F8; +๐Ÿช… piรฑata; 1FA85; +๐Ÿช† nesting dolls; 1FA86; +โ™ ๏ธ spade suit; 2660 FE0F; +โ™ฅ๏ธ heart suit; 2665 FE0F; +โ™ฆ๏ธ diamond suit; 2666 FE0F; +โ™ฃ๏ธ club suit; 2663 FE0F; +โ™Ÿ๏ธ chess pawn; 265F FE0F; +๐Ÿƒ joker; 1F0CF; +๐Ÿ€„ mahjong red dragon; 1F004; +๐ŸŽด flower playing cards; 1F3B4; +๐ŸŽญ performing arts; 1F3AD; +๐Ÿ–ผ๏ธ framed picture; 1F5BC FE0F; +๐ŸŽจ artist palette; 1F3A8; +๐Ÿงต thread; 1F9F5; +๐Ÿชก sewing needle; 1FAA1; +๐Ÿงถ yarn; 1F9F6; +๐Ÿชข knot; 1FAA2; +๐Ÿ‘“ glasses; 1F453; +๐Ÿ•ถ๏ธ sunglasses; 1F576 FE0F; +๐Ÿฅฝ goggles; 1F97D; +๐Ÿฅผ lab coat; 1F97C; +๐Ÿฆบ safety vest; 1F9BA; +๐Ÿ‘” necktie; 1F454; +๐Ÿ‘• t-shirt; 1F455; +๐Ÿ‘– jeans; 1F456; +๐Ÿงฃ scarf; 1F9E3; +๐Ÿงค gloves; 1F9E4; +๐Ÿงฅ coat; 1F9E5; +๐Ÿงฆ socks; 1F9E6; +๐Ÿ‘— dress; 1F457; +๐Ÿ‘˜ kimono; 1F458; +๐Ÿฅป sari; 1F97B; +๐Ÿฉฑ one-piece swimsuit; 1FA71; +๐Ÿฉฒ briefs; 1FA72; +๐Ÿฉณ shorts; 1FA73; +๐Ÿ‘™ bikini; 1F459; +๐Ÿ‘š womanโ€™s clothes; 1F45A; +๐Ÿ‘› purse; 1F45B; +๐Ÿ‘œ handbag; 1F45C; +๐Ÿ‘ clutch bag; 1F45D; +๐Ÿ›๏ธ shopping bags; 1F6CD FE0F; +๐ŸŽ’ backpack; 1F392; +๐Ÿฉด thong sandal; 1FA74; +๐Ÿ‘ž manโ€™s shoe; 1F45E; +๐Ÿ‘Ÿ running shoe; 1F45F; +๐Ÿฅพ hiking boot; 1F97E; +๐Ÿฅฟ flat shoe; 1F97F; +๐Ÿ‘  high-heeled shoe; 1F460; +๐Ÿ‘ก womanโ€™s sandal; 1F461; +๐Ÿฉฐ ballet shoes; 1FA70; +๐Ÿ‘ข womanโ€™s boot; 1F462; +๐Ÿ‘‘ crown; 1F451; +๐Ÿ‘’ womanโ€™s hat; 1F452; +๐ŸŽฉ top hat; 1F3A9; +๐ŸŽ“ graduation cap; 1F393; +๐Ÿงข billed cap; 1F9E2; +๐Ÿช– military helmet; 1FA96; +โ›‘๏ธ rescue workerโ€™s helmet; 26D1 FE0F; +๐Ÿ“ฟ prayer beads; 1F4FF; +๐Ÿ’„ lipstick; 1F484; +๐Ÿ’ ring; 1F48D; +๐Ÿ’Ž gem stone; 1F48E; +๐Ÿ”‡ muted speaker; 1F507; +๐Ÿ”ˆ speaker low volume; 1F508; +๐Ÿ”‰ speaker medium volume; 1F509; +๐Ÿ”Š speaker high volume; 1F50A; +๐Ÿ“ข loudspeaker; 1F4E2; +๐Ÿ“ฃ megaphone; 1F4E3; +๐Ÿ“ฏ postal horn; 1F4EF; +๐Ÿ”” bell; 1F514; +๐Ÿ”• bell with slash; 1F515; +๐ŸŽผ musical score; 1F3BC; +๐ŸŽต musical note; 1F3B5; +๐ŸŽถ musical notes; 1F3B6; +๐ŸŽ™๏ธ studio microphone; 1F399 FE0F; +๐ŸŽš๏ธ level slider; 1F39A FE0F; +๐ŸŽ›๏ธ control knobs; 1F39B FE0F; +๐ŸŽค microphone; 1F3A4; +๐ŸŽง headphone; 1F3A7; +๐Ÿ“ป radio; 1F4FB; +๐ŸŽท saxophone; 1F3B7; +๐Ÿช— accordion; 1FA97; +๐ŸŽธ guitar; 1F3B8; +๐ŸŽน musical keyboard; 1F3B9; +๐ŸŽบ trumpet; 1F3BA; +๐ŸŽป violin; 1F3BB; +๐Ÿช• banjo; 1FA95; +๐Ÿฅ drum; 1F941; +๐Ÿช˜ long drum; 1FA98; +๐Ÿ“ฑ mobile phone; 1F4F1; +๐Ÿ“ฒ mobile phone with arrow; 1F4F2; +โ˜Ž๏ธ telephone; 260E FE0F; +๐Ÿ“ž telephone receiver; 1F4DE; +๐Ÿ“Ÿ pager; 1F4DF; +๐Ÿ“  fax machine; 1F4E0; +๐Ÿ”‹ battery; 1F50B; +๐Ÿ”Œ electric plug; 1F50C; +๐Ÿ’ป laptop; 1F4BB; +๐Ÿ–ฅ๏ธ desktop computer; 1F5A5 FE0F; +๐Ÿ–จ๏ธ printer; 1F5A8 FE0F; +โŒจ๏ธ keyboard; 2328 FE0F; +๐Ÿ–ฑ๏ธ computer mouse; 1F5B1 FE0F; +๐Ÿ–ฒ๏ธ trackball; 1F5B2 FE0F; +๐Ÿ’ฝ computer disk; 1F4BD; +๐Ÿ’พ floppy disk; 1F4BE; +๐Ÿ’ฟ optical disk; 1F4BF; +๐Ÿ“€ dvd; 1F4C0; +๐Ÿงฎ abacus; 1F9EE; +๐ŸŽฅ movie camera; 1F3A5; +๐ŸŽž๏ธ film frames; 1F39E FE0F; +๐Ÿ“ฝ๏ธ film projector; 1F4FD FE0F; +๐ŸŽฌ clapper board; 1F3AC; +๐Ÿ“บ television; 1F4FA; +๐Ÿ“ท camera; 1F4F7; +๐Ÿ“ธ camera with flash; 1F4F8; +๐Ÿ“น video camera; 1F4F9; +๐Ÿ“ผ videocassette; 1F4FC; +๐Ÿ” magnifying glass tilted left; 1F50D; +๐Ÿ”Ž magnifying glass tilted right; 1F50E; +๐Ÿ•ฏ๏ธ candle; 1F56F FE0F; +๐Ÿ’ก light bulb; 1F4A1; +๐Ÿ”ฆ flashlight; 1F526; +๐Ÿฎ red paper lantern; 1F3EE; +๐Ÿช” diya lamp; 1FA94; +๐Ÿ“” notebook with decorative cover; 1F4D4; +๐Ÿ“• closed book; 1F4D5; +๐Ÿ“– open book; 1F4D6; +๐Ÿ“— green book; 1F4D7; +๐Ÿ“˜ blue book; 1F4D8; +๐Ÿ“™ orange book; 1F4D9; +๐Ÿ“š books; 1F4DA; +๐Ÿ““ notebook; 1F4D3; +๐Ÿ“’ ledger; 1F4D2; +๐Ÿ“ƒ page with curl; 1F4C3; +๐Ÿ“œ scroll; 1F4DC; +๐Ÿ“„ page facing up; 1F4C4; +๐Ÿ“ฐ newspaper; 1F4F0; +๐Ÿ—ž๏ธ rolled-up newspaper; 1F5DE FE0F; +๐Ÿ“‘ bookmark tabs; 1F4D1; +๐Ÿ”– bookmark; 1F516; +๐Ÿท๏ธ label; 1F3F7 FE0F; +๐Ÿ’ฐ money bag; 1F4B0; +๐Ÿช™ coin; 1FA99; +๐Ÿ’ด yen banknote; 1F4B4; +๐Ÿ’ต dollar banknote; 1F4B5; +๐Ÿ’ถ euro banknote; 1F4B6; +๐Ÿ’ท pound banknote; 1F4B7; +๐Ÿ’ธ money with wings; 1F4B8; +๐Ÿ’ณ credit card; 1F4B3; +๐Ÿงพ receipt; 1F9FE; +๐Ÿ’น chart increasing with yen; 1F4B9; +โœ‰๏ธ envelope; 2709 FE0F; +๐Ÿ“ง e-mail; 1F4E7; +๐Ÿ“จ incoming envelope; 1F4E8; +๐Ÿ“ฉ envelope with arrow; 1F4E9; +๐Ÿ“ค outbox tray; 1F4E4; +๐Ÿ“ฅ inbox tray; 1F4E5; +๐Ÿ“ฆ package; 1F4E6; +๐Ÿ“ซ closed mailbox with raised flag; 1F4EB; +๐Ÿ“ช closed mailbox with lowered flag; 1F4EA; +๐Ÿ“ฌ open mailbox with raised flag; 1F4EC; +๐Ÿ“ญ open mailbox with lowered flag; 1F4ED; +๐Ÿ“ฎ postbox; 1F4EE; +๐Ÿ—ณ๏ธ ballot box with ballot; 1F5F3 FE0F; +โœ๏ธ pencil; 270F FE0F; +โœ’๏ธ black nib; 2712 FE0F; +๐Ÿ–‹๏ธ fountain pen; 1F58B FE0F; +๐Ÿ–Š๏ธ pen; 1F58A FE0F; +๐Ÿ–Œ๏ธ paintbrush; 1F58C FE0F; +๐Ÿ–๏ธ crayon; 1F58D FE0F; +๐Ÿ“ memo; 1F4DD; +๐Ÿ’ผ briefcase; 1F4BC; +๐Ÿ“ file folder; 1F4C1; +๐Ÿ“‚ open file folder; 1F4C2; +๐Ÿ—‚๏ธ card index dividers; 1F5C2 FE0F; +๐Ÿ“… calendar; 1F4C5; +๐Ÿ“† tear-off calendar; 1F4C6; +๐Ÿ—’๏ธ spiral notepad; 1F5D2 FE0F; +๐Ÿ—“๏ธ spiral calendar; 1F5D3 FE0F; +๐Ÿ“‡ card index; 1F4C7; +๐Ÿ“ˆ chart increasing; 1F4C8; +๐Ÿ“‰ chart decreasing; 1F4C9; +๐Ÿ“Š bar chart; 1F4CA; +๐Ÿ“‹ clipboard; 1F4CB; +๐Ÿ“Œ pushpin; 1F4CC; +๐Ÿ“ round pushpin; 1F4CD; +๐Ÿ“Ž paperclip; 1F4CE; +๐Ÿ–‡๏ธ linked paperclips; 1F587 FE0F; +๐Ÿ“ straight ruler; 1F4CF; +๐Ÿ“ triangular ruler; 1F4D0; +โœ‚๏ธ scissors; 2702 FE0F; +๐Ÿ—ƒ๏ธ card file box; 1F5C3 FE0F; +๐Ÿ—„๏ธ file cabinet; 1F5C4 FE0F; +๐Ÿ—‘๏ธ wastebasket; 1F5D1 FE0F; +๐Ÿ”’ locked; 1F512; +๐Ÿ”“ unlocked; 1F513; +๐Ÿ” locked with pen; 1F50F; +๐Ÿ” locked with key; 1F510; +๐Ÿ”‘ key; 1F511; +๐Ÿ—๏ธ old key; 1F5DD FE0F; +๐Ÿ”จ hammer; 1F528; +๐Ÿช“ axe; 1FA93; +โ›๏ธ pick; 26CF FE0F; +โš’๏ธ hammer and pick; 2692 FE0F; +๐Ÿ› ๏ธ hammer and wrench; 1F6E0 FE0F; +๐Ÿ—ก๏ธ dagger; 1F5E1 FE0F; +โš”๏ธ crossed swords; 2694 FE0F; +๐Ÿ”ซ pistol; 1F52B; +๐Ÿชƒ boomerang; 1FA83; +๐Ÿน bow and arrow; 1F3F9; +๐Ÿ›ก๏ธ shield; 1F6E1 FE0F; +๐Ÿชš carpentry saw; 1FA9A; +๐Ÿ”ง wrench; 1F527; +๐Ÿช› screwdriver; 1FA9B; +๐Ÿ”ฉ nut and bolt; 1F529; +โš™๏ธ gear; 2699 FE0F; +๐Ÿ—œ๏ธ clamp; 1F5DC FE0F; +โš–๏ธ balance scale; 2696 FE0F; +๐Ÿฆฏ white cane; 1F9AF; +๐Ÿ”— link; 1F517; +โ›“๏ธ chains; 26D3 FE0F; +๐Ÿช hook; 1FA9D; +๐Ÿงฐ toolbox; 1F9F0; +๐Ÿงฒ magnet; 1F9F2; +๐Ÿชœ ladder; 1FA9C; +โš—๏ธ alembic; 2697 FE0F; +๐Ÿงช test tube; 1F9EA; +๐Ÿงซ petri dish; 1F9EB; +๐Ÿงฌ dna; 1F9EC; +๐Ÿ”ฌ microscope; 1F52C; +๐Ÿ”ญ telescope; 1F52D; +๐Ÿ“ก satellite antenna; 1F4E1; +๐Ÿ’‰ syringe; 1F489; +๐Ÿฉธ drop of blood; 1FA78; +๐Ÿ’Š pill; 1F48A; +๐Ÿฉน adhesive bandage; 1FA79; +๐Ÿฉบ stethoscope; 1FA7A; +๐Ÿšช door; 1F6AA; +๐Ÿ›— elevator; 1F6D7; +๐Ÿชž mirror; 1FA9E; +๐ŸชŸ window; 1FA9F; +๐Ÿ›๏ธ bed; 1F6CF FE0F; +๐Ÿ›‹๏ธ couch and lamp; 1F6CB FE0F; +๐Ÿช‘ chair; 1FA91; +๐Ÿšฝ toilet; 1F6BD; +๐Ÿช  plunger; 1FAA0; +๐Ÿšฟ shower; 1F6BF; +๐Ÿ› bathtub; 1F6C1; +๐Ÿชค mouse trap; 1FAA4; +๐Ÿช’ razor; 1FA92; +๐Ÿงด lotion bottle; 1F9F4; +๐Ÿงท safety pin; 1F9F7; +๐Ÿงน broom; 1F9F9; +๐Ÿงบ basket; 1F9FA; +๐Ÿงป roll of paper; 1F9FB; +๐Ÿชฃ bucket; 1FAA3; +๐Ÿงผ soap; 1F9FC; +๐Ÿชฅ toothbrush; 1FAA5; +๐Ÿงฝ sponge; 1F9FD; +๐Ÿงฏ fire extinguisher; 1F9EF; +๐Ÿ›’ shopping cart; 1F6D2; +๐Ÿšฌ cigarette; 1F6AC; +โšฐ๏ธ coffin; 26B0 FE0F; +๐Ÿชฆ headstone; 1FAA6; +โšฑ๏ธ funeral urn; 26B1 FE0F; +๐Ÿ—ฟ moai; 1F5FF; +๐Ÿชง placard; 1FAA7; +๐Ÿง ATM sign; 1F3E7; +๐Ÿšฎ litter in bin sign; 1F6AE; +๐Ÿšฐ potable water; 1F6B0; +โ™ฟ wheelchair symbol; 267F; +๐Ÿšน menโ€™s room; 1F6B9; +๐Ÿšบ womenโ€™s room; 1F6BA; +๐Ÿšป restroom; 1F6BB; +๐Ÿšผ baby symbol; 1F6BC; +๐Ÿšพ water closet; 1F6BE; +๐Ÿ›‚ passport control; 1F6C2; +๐Ÿ›ƒ customs; 1F6C3; +๐Ÿ›„ baggage claim; 1F6C4; +๐Ÿ›… left luggage; 1F6C5; +โš ๏ธ warning; 26A0 FE0F; +๐Ÿšธ children crossing; 1F6B8; +โ›” no entry; 26D4; +๐Ÿšซ prohibited; 1F6AB; +๐Ÿšณ no bicycles; 1F6B3; +๐Ÿšญ no smoking; 1F6AD; +๐Ÿšฏ no littering; 1F6AF; +๐Ÿšฑ non-potable water; 1F6B1; +๐Ÿšท no pedestrians; 1F6B7; +๐Ÿ“ต no mobile phones; 1F4F5; +๐Ÿ”ž no one under eighteen; 1F51E; +โ˜ข๏ธ radioactive; 2622 FE0F; +โ˜ฃ๏ธ biohazard; 2623 FE0F; +โฌ†๏ธ up arrow; 2B06 FE0F; +โ†—๏ธ up-right arrow; 2197 FE0F; +โžก๏ธ right arrow; 27A1 FE0F; +โ†˜๏ธ down-right arrow; 2198 FE0F; +โฌ‡๏ธ down arrow; 2B07 FE0F; +โ†™๏ธ down-left arrow; 2199 FE0F; +โฌ…๏ธ left arrow; 2B05 FE0F; +โ†–๏ธ up-left arrow; 2196 FE0F; +โ†•๏ธ up-down arrow; 2195 FE0F; +โ†”๏ธ left-right arrow; 2194 FE0F; +โ†ฉ๏ธ right arrow curving left; 21A9 FE0F; +โ†ช๏ธ left arrow curving right; 21AA FE0F; +โคด๏ธ right arrow curving up; 2934 FE0F; +โคต๏ธ right arrow curving down; 2935 FE0F; +๐Ÿ”ƒ clockwise vertical arrows; 1F503; +๐Ÿ”„ counterclockwise arrows button; 1F504; +๐Ÿ”™ BACK arrow; 1F519; +๐Ÿ”š END arrow; 1F51A; +๐Ÿ”› ON! arrow; 1F51B; +๐Ÿ”œ SOON arrow; 1F51C; +๐Ÿ” TOP arrow; 1F51D; +๐Ÿ› place of worship; 1F6D0; +โš›๏ธ atom symbol; 269B FE0F; +๐Ÿ•‰๏ธ om; 1F549 FE0F; +โœก๏ธ star of David; 2721 FE0F; +โ˜ธ๏ธ wheel of dharma; 2638 FE0F; +โ˜ฏ๏ธ yin yang; 262F FE0F; +โœ๏ธ latin cross; 271D FE0F; +โ˜ฆ๏ธ orthodox cross; 2626 FE0F; +โ˜ช๏ธ star and crescent; 262A FE0F; +โ˜ฎ๏ธ peace symbol; 262E FE0F; +๐Ÿ•Ž menorah; 1F54E; +๐Ÿ”ฏ dotted six-pointed star; 1F52F; +โ™ˆ Aries; 2648; +โ™‰ Taurus; 2649; +โ™Š Gemini; 264A; +โ™‹ Cancer; 264B; +โ™Œ Leo; 264C; +โ™ Virgo; 264D; +โ™Ž Libra; 264E; +โ™ Scorpio; 264F; +โ™ Sagittarius; 2650; +โ™‘ Capricorn; 2651; +โ™’ Aquarius; 2652; +โ™“ Pisces; 2653; +โ›Ž Ophiuchus; 26CE; +๐Ÿ”€ shuffle tracks button; 1F500; +๐Ÿ” repeat button; 1F501; +๐Ÿ”‚ repeat single button; 1F502; +โ–ถ๏ธ play button; 25B6 FE0F; +โฉ fast-forward button; 23E9; +โญ๏ธ next track button; 23ED FE0F; +โฏ๏ธ play or pause button; 23EF FE0F; +โ—€๏ธ reverse button; 25C0 FE0F; +โช fast reverse button; 23EA; +โฎ๏ธ last track button; 23EE FE0F; +๐Ÿ”ผ upwards button; 1F53C; +โซ fast up button; 23EB; +๐Ÿ”ฝ downwards button; 1F53D; +โฌ fast down button; 23EC; +โธ๏ธ pause button; 23F8 FE0F; +โน๏ธ stop button; 23F9 FE0F; +โบ๏ธ record button; 23FA FE0F; +โ๏ธ eject button; 23CF FE0F; +๐ŸŽฆ cinema; 1F3A6; +๐Ÿ”… dim button; 1F505; +๐Ÿ”† bright button; 1F506; +๐Ÿ“ถ antenna bars; 1F4F6; +๐Ÿ“ณ vibration mode; 1F4F3; +๐Ÿ“ด mobile phone off; 1F4F4; +โ™€๏ธ female sign; 2640 FE0F; +โ™‚๏ธ male sign; 2642 FE0F; +โšง๏ธ transgender symbol; 26A7 FE0F; +โœ–๏ธ multiply; 2716 FE0F; +โž• plus; 2795; +โž– minus; 2796; +โž— divide; 2797; +โ™พ๏ธ infinity; 267E FE0F; +โ€ผ๏ธ double exclamation mark; 203C FE0F; +โ‰๏ธ exclamation question mark; 2049 FE0F; +โ“ question mark; 2753; +โ” white question mark; 2754; +โ• white exclamation mark; 2755; +โ— exclamation mark; 2757; +ใ€ฐ๏ธ wavy dash; 3030 FE0F; +๐Ÿ’ฑ currency exchange; 1F4B1; +๐Ÿ’ฒ heavy dollar sign; 1F4B2; +โš•๏ธ medical symbol; 2695 FE0F; +โ™ป๏ธ recycling symbol; 267B FE0F; +โšœ๏ธ fleur-de-lis; 269C FE0F; +๐Ÿ”ฑ trident emblem; 1F531; +๐Ÿ“› name badge; 1F4DB; +๐Ÿ”ฐ Japanese symbol for beginner; 1F530; +โญ• hollow red circle; 2B55; +โœ… check mark button; 2705; +โ˜‘๏ธ check box with check; 2611 FE0F; +โœ”๏ธ check mark; 2714 FE0F; +โŒ cross mark; 274C; +โŽ cross mark button; 274E; +โžฐ curly loop; 27B0; +โžฟ double curly loop; 27BF; +ใ€ฝ๏ธ part alternation mark; 303D FE0F; +โœณ๏ธ eight-spoked asterisk; 2733 FE0F; +โœด๏ธ eight-pointed star; 2734 FE0F; +โ‡๏ธ sparkle; 2747 FE0F; +ยฉ๏ธ copyright; 00A9 FE0F; +ยฎ๏ธ registered; 00AE FE0F; +โ„ข๏ธ trade mark; 2122 FE0F; +#๏ธโƒฃ keycap: #; 0023 FE0F 20E3; +*๏ธโƒฃ keycap: *; 002A FE0F 20E3; +0๏ธโƒฃ keycap: 0; 0030 FE0F 20E3; +1๏ธโƒฃ keycap: 1; 0031 FE0F 20E3; +2๏ธโƒฃ keycap: 2; 0032 FE0F 20E3; +3๏ธโƒฃ keycap: 3; 0033 FE0F 20E3; +4๏ธโƒฃ keycap: 4; 0034 FE0F 20E3; +5๏ธโƒฃ keycap: 5; 0035 FE0F 20E3; +6๏ธโƒฃ keycap: 6; 0036 FE0F 20E3; +7๏ธโƒฃ keycap: 7; 0037 FE0F 20E3; +8๏ธโƒฃ keycap: 8; 0038 FE0F 20E3; +9๏ธโƒฃ keycap: 9; 0039 FE0F 20E3; +๐Ÿ”Ÿ keycap: 10; 1F51F; +๐Ÿ”  input latin uppercase; 1F520; +๐Ÿ”ก input latin lowercase; 1F521; +๐Ÿ”ข input numbers; 1F522; +๐Ÿ”ฃ input symbols; 1F523; +๐Ÿ”ค input latin letters; 1F524; +๐Ÿ…ฐ๏ธ A button (blood type); 1F170 FE0F; +๐Ÿ†Ž AB button (blood type); 1F18E; +๐Ÿ…ฑ๏ธ B button (blood type); 1F171 FE0F; +๐Ÿ†‘ CL button; 1F191; +๐Ÿ†’ COOL button; 1F192; +๐Ÿ†“ FREE button; 1F193; +โ„น๏ธ information; 2139 FE0F; +๐Ÿ†” ID button; 1F194; +โ“‚๏ธ circled M; 24C2 FE0F; +๐Ÿ†• NEW button; 1F195; +๐Ÿ†– NG button; 1F196; +๐Ÿ…พ๏ธ O button (blood type); 1F17E FE0F; +๐Ÿ†— OK button; 1F197; +๐Ÿ…ฟ๏ธ P button; 1F17F FE0F; +๐Ÿ†˜ SOS button; 1F198; +๐Ÿ†™ UP! button; 1F199; +๐Ÿ†š VS button; 1F19A; +๐Ÿˆ Japanese โ€œhereโ€ button; 1F201; +๐Ÿˆ‚๏ธ Japanese โ€œservice chargeโ€ button; 1F202 FE0F; +๐Ÿˆท๏ธ Japanese โ€œmonthly amountโ€ button; 1F237 FE0F; +๐Ÿˆถ Japanese โ€œnot free of chargeโ€ button; 1F236; +๐Ÿˆฏ Japanese โ€œreservedโ€ button; 1F22F; +๐Ÿ‰ Japanese โ€œbargainโ€ button; 1F250; +๐Ÿˆน Japanese โ€œdiscountโ€ button; 1F239; +๐Ÿˆš Japanese โ€œfree of chargeโ€ button; 1F21A; +๐Ÿˆฒ Japanese โ€œprohibitedโ€ button; 1F232; +๐Ÿ‰‘ Japanese โ€œacceptableโ€ button; 1F251; +๐Ÿˆธ Japanese โ€œapplicationโ€ button; 1F238; +๐Ÿˆด Japanese โ€œpassing gradeโ€ button; 1F234; +๐Ÿˆณ Japanese โ€œvacancyโ€ button; 1F233; +ใŠ—๏ธ Japanese โ€œcongratulationsโ€ button; 3297 FE0F; +ใŠ™๏ธ Japanese โ€œsecretโ€ button; 3299 FE0F; +๐Ÿˆบ Japanese โ€œopen for businessโ€ button; 1F23A; +๐Ÿˆต Japanese โ€œno vacancyโ€ button; 1F235; +๐Ÿ”ด red circle; 1F534; +๐ŸŸ  orange circle; 1F7E0; +๐ŸŸก yellow circle; 1F7E1; +๐ŸŸข green circle; 1F7E2; +๐Ÿ”ต blue circle; 1F535; +๐ŸŸฃ purple circle; 1F7E3; +๐ŸŸค brown circle; 1F7E4; +โšซ black circle; 26AB; +โšช white circle; 26AA; +๐ŸŸฅ red square; 1F7E5; +๐ŸŸง orange square; 1F7E7; +๐ŸŸจ yellow square; 1F7E8; +๐ŸŸฉ green square; 1F7E9; +๐ŸŸฆ blue square; 1F7E6; +๐ŸŸช purple square; 1F7EA; +๐ŸŸซ brown square; 1F7EB; +โฌ› black large square; 2B1B; +โฌœ white large square; 2B1C; +โ—ผ๏ธ black medium square; 25FC FE0F; +โ—ป๏ธ white medium square; 25FB FE0F; +โ—พ black medium-small square; 25FE; +โ—ฝ white medium-small square; 25FD; +โ–ช๏ธ black small square; 25AA FE0F; +โ–ซ๏ธ white small square; 25AB FE0F; +๐Ÿ”ถ large orange diamond; 1F536; +๐Ÿ”ท large blue diamond; 1F537; +๐Ÿ”ธ small orange diamond; 1F538; +๐Ÿ”น small blue diamond; 1F539; +๐Ÿ”บ red triangle pointed up; 1F53A; +๐Ÿ”ป red triangle pointed down; 1F53B; +๐Ÿ’  diamond with a dot; 1F4A0; +๐Ÿ”˜ radio button; 1F518; +๐Ÿ”ณ white square button; 1F533; +๐Ÿ”ฒ black square button; 1F532; +๐Ÿ chequered flag; 1F3C1; +๐Ÿšฉ triangular flag; 1F6A9; +๐ŸŽŒ crossed flags; 1F38C; +๐Ÿด black flag; 1F3F4; +๐Ÿณ๏ธ white flag; 1F3F3 FE0F; +๐Ÿ‡ฆ๐Ÿ‡จ flag: Ascension Island; 1F1E6 1F1E8; +๐Ÿ‡ฆ๐Ÿ‡ฉ flag: Andorra; 1F1E6 1F1E9; +๐Ÿ‡ฆ๐Ÿ‡ช flag: United Arab Emirates; 1F1E6 1F1EA; +๐Ÿ‡ฆ๐Ÿ‡ซ flag: Afghanistan; 1F1E6 1F1EB; +๐Ÿ‡ฆ๐Ÿ‡ฌ flag: Antigua & Barbuda; 1F1E6 1F1EC; +๐Ÿ‡ฆ๐Ÿ‡ฎ flag: Anguilla; 1F1E6 1F1EE; +๐Ÿ‡ฆ๐Ÿ‡ฑ flag: Albania; 1F1E6 1F1F1; +๐Ÿ‡ฆ๐Ÿ‡ฒ flag: Armenia; 1F1E6 1F1F2; +๐Ÿ‡ฆ๐Ÿ‡ด flag: Angola; 1F1E6 1F1F4; +๐Ÿ‡ฆ๐Ÿ‡ถ flag: Antarctica; 1F1E6 1F1F6; +๐Ÿ‡ฆ๐Ÿ‡ท flag: Argentina; 1F1E6 1F1F7; +๐Ÿ‡ฆ๐Ÿ‡ธ flag: American Samoa; 1F1E6 1F1F8; +๐Ÿ‡ฆ๐Ÿ‡น flag: Austria; 1F1E6 1F1F9; +๐Ÿ‡ฆ๐Ÿ‡บ flag: Australia; 1F1E6 1F1FA; +๐Ÿ‡ฆ๐Ÿ‡ผ flag: Aruba; 1F1E6 1F1FC; +๐Ÿ‡ฆ๐Ÿ‡ฝ flag: ร…land Islands; 1F1E6 1F1FD; +๐Ÿ‡ฆ๐Ÿ‡ฟ flag: Azerbaijan; 1F1E6 1F1FF; +๐Ÿ‡ง๐Ÿ‡ฆ flag: Bosnia & Herzegovina; 1F1E7 1F1E6; +๐Ÿ‡ง๐Ÿ‡ง flag: Barbados; 1F1E7 1F1E7; +๐Ÿ‡ง๐Ÿ‡ฉ flag: Bangladesh; 1F1E7 1F1E9; +๐Ÿ‡ง๐Ÿ‡ช flag: Belgium; 1F1E7 1F1EA; +๐Ÿ‡ง๐Ÿ‡ซ flag: Burkina Faso; 1F1E7 1F1EB; +๐Ÿ‡ง๐Ÿ‡ฌ flag: Bulgaria; 1F1E7 1F1EC; +๐Ÿ‡ง๐Ÿ‡ญ flag: Bahrain; 1F1E7 1F1ED; +๐Ÿ‡ง๐Ÿ‡ฎ flag: Burundi; 1F1E7 1F1EE; +๐Ÿ‡ง๐Ÿ‡ฏ flag: Benin; 1F1E7 1F1EF; +๐Ÿ‡ง๐Ÿ‡ฑ flag: St. Barthรฉlemy; 1F1E7 1F1F1; +๐Ÿ‡ง๐Ÿ‡ฒ flag: Bermuda; 1F1E7 1F1F2; +๐Ÿ‡ง๐Ÿ‡ณ flag: Brunei; 1F1E7 1F1F3; +๐Ÿ‡ง๐Ÿ‡ด flag: Bolivia; 1F1E7 1F1F4; +๐Ÿ‡ง๐Ÿ‡ถ flag: Caribbean Netherlands; 1F1E7 1F1F6; +๐Ÿ‡ง๐Ÿ‡ท flag: Brazil; 1F1E7 1F1F7; +๐Ÿ‡ง๐Ÿ‡ธ flag: Bahamas; 1F1E7 1F1F8; +๐Ÿ‡ง๐Ÿ‡น flag: Bhutan; 1F1E7 1F1F9; +๐Ÿ‡ง๐Ÿ‡ป flag: Bouvet Island; 1F1E7 1F1FB; +๐Ÿ‡ง๐Ÿ‡ผ flag: Botswana; 1F1E7 1F1FC; +๐Ÿ‡ง๐Ÿ‡พ flag: Belarus; 1F1E7 1F1FE; +๐Ÿ‡ง๐Ÿ‡ฟ flag: Belize; 1F1E7 1F1FF; +๐Ÿ‡จ๐Ÿ‡ฆ flag: Canada; 1F1E8 1F1E6; +๐Ÿ‡จ๐Ÿ‡จ flag: Cocos (Keeling) Islands; 1F1E8 1F1E8; +๐Ÿ‡จ๐Ÿ‡ฉ flag: Congo - Kinshasa; 1F1E8 1F1E9; +๐Ÿ‡จ๐Ÿ‡ซ flag: Central African Republic; 1F1E8 1F1EB; +๐Ÿ‡จ๐Ÿ‡ฌ flag: Congo - Brazzaville; 1F1E8 1F1EC; +๐Ÿ‡จ๐Ÿ‡ญ flag: Switzerland; 1F1E8 1F1ED; +๐Ÿ‡จ๐Ÿ‡ฎ flag: Cรดte dโ€™Ivoire; 1F1E8 1F1EE; +๐Ÿ‡จ๐Ÿ‡ฐ flag: Cook Islands; 1F1E8 1F1F0; +๐Ÿ‡จ๐Ÿ‡ฑ flag: Chile; 1F1E8 1F1F1; +๐Ÿ‡จ๐Ÿ‡ฒ flag: Cameroon; 1F1E8 1F1F2; +๐Ÿ‡จ๐Ÿ‡ณ flag: China; 1F1E8 1F1F3; +๐Ÿ‡จ๐Ÿ‡ด flag: Colombia; 1F1E8 1F1F4; +๐Ÿ‡จ๐Ÿ‡ต flag: Clipperton Island; 1F1E8 1F1F5; +๐Ÿ‡จ๐Ÿ‡ท flag: Costa Rica; 1F1E8 1F1F7; +๐Ÿ‡จ๐Ÿ‡บ flag: Cuba; 1F1E8 1F1FA; +๐Ÿ‡จ๐Ÿ‡ป flag: Cape Verde; 1F1E8 1F1FB; +๐Ÿ‡จ๐Ÿ‡ผ flag: Curaรงao; 1F1E8 1F1FC; +๐Ÿ‡จ๐Ÿ‡ฝ flag: Christmas Island; 1F1E8 1F1FD; +๐Ÿ‡จ๐Ÿ‡พ flag: Cyprus; 1F1E8 1F1FE; +๐Ÿ‡จ๐Ÿ‡ฟ flag: Czechia; 1F1E8 1F1FF; +๐Ÿ‡ฉ๐Ÿ‡ช flag: Germany; 1F1E9 1F1EA; +๐Ÿ‡ฉ๐Ÿ‡ฌ flag: Diego Garcia; 1F1E9 1F1EC; +๐Ÿ‡ฉ๐Ÿ‡ฏ flag: Djibouti; 1F1E9 1F1EF; +๐Ÿ‡ฉ๐Ÿ‡ฐ flag: Denmark; 1F1E9 1F1F0; +๐Ÿ‡ฉ๐Ÿ‡ฒ flag: Dominica; 1F1E9 1F1F2; +๐Ÿ‡ฉ๐Ÿ‡ด flag: Dominican Republic; 1F1E9 1F1F4; +๐Ÿ‡ฉ๐Ÿ‡ฟ flag: Algeria; 1F1E9 1F1FF; +๐Ÿ‡ช๐Ÿ‡ฆ flag: Ceuta & Melilla; 1F1EA 1F1E6; +๐Ÿ‡ช๐Ÿ‡จ flag: Ecuador; 1F1EA 1F1E8; +๐Ÿ‡ช๐Ÿ‡ช flag: Estonia; 1F1EA 1F1EA; +๐Ÿ‡ช๐Ÿ‡ฌ flag: Egypt; 1F1EA 1F1EC; +๐Ÿ‡ช๐Ÿ‡ญ flag: Western Sahara; 1F1EA 1F1ED; +๐Ÿ‡ช๐Ÿ‡ท flag: Eritrea; 1F1EA 1F1F7; +๐Ÿ‡ช๐Ÿ‡ธ flag: Spain; 1F1EA 1F1F8; +๐Ÿ‡ช๐Ÿ‡น flag: Ethiopia; 1F1EA 1F1F9; +๐Ÿ‡ช๐Ÿ‡บ flag: European Union; 1F1EA 1F1FA; +๐Ÿ‡ซ๐Ÿ‡ฎ flag: Finland; 1F1EB 1F1EE; +๐Ÿ‡ซ๐Ÿ‡ฏ flag: Fiji; 1F1EB 1F1EF; +๐Ÿ‡ซ๐Ÿ‡ฐ flag: Falkland Islands; 1F1EB 1F1F0; +๐Ÿ‡ซ๐Ÿ‡ฒ flag: Micronesia; 1F1EB 1F1F2; +๐Ÿ‡ซ๐Ÿ‡ด flag: Faroe Islands; 1F1EB 1F1F4; +๐Ÿ‡ซ๐Ÿ‡ท flag: France; 1F1EB 1F1F7; +๐Ÿ‡ฌ๐Ÿ‡ฆ flag: Gabon; 1F1EC 1F1E6; +๐Ÿ‡ฌ๐Ÿ‡ง flag: United Kingdom; 1F1EC 1F1E7; +๐Ÿ‡ฌ๐Ÿ‡ฉ flag: Grenada; 1F1EC 1F1E9; +๐Ÿ‡ฌ๐Ÿ‡ช flag: Georgia; 1F1EC 1F1EA; +๐Ÿ‡ฌ๐Ÿ‡ซ flag: French Guiana; 1F1EC 1F1EB; +๐Ÿ‡ฌ๐Ÿ‡ฌ flag: Guernsey; 1F1EC 1F1EC; +๐Ÿ‡ฌ๐Ÿ‡ญ flag: Ghana; 1F1EC 1F1ED; +๐Ÿ‡ฌ๐Ÿ‡ฎ flag: Gibraltar; 1F1EC 1F1EE; +๐Ÿ‡ฌ๐Ÿ‡ฑ flag: Greenland; 1F1EC 1F1F1; +๐Ÿ‡ฌ๐Ÿ‡ฒ flag: Gambia; 1F1EC 1F1F2; +๐Ÿ‡ฌ๐Ÿ‡ณ flag: Guinea; 1F1EC 1F1F3; +๐Ÿ‡ฌ๐Ÿ‡ต flag: Guadeloupe; 1F1EC 1F1F5; +๐Ÿ‡ฌ๐Ÿ‡ถ flag: Equatorial Guinea; 1F1EC 1F1F6; +๐Ÿ‡ฌ๐Ÿ‡ท flag: Greece; 1F1EC 1F1F7; +๐Ÿ‡ฌ๐Ÿ‡ธ flag: South Georgia & South Sandwich Islands; 1F1EC 1F1F8; +๐Ÿ‡ฌ๐Ÿ‡น flag: Guatemala; 1F1EC 1F1F9; +๐Ÿ‡ฌ๐Ÿ‡บ flag: Guam; 1F1EC 1F1FA; +๐Ÿ‡ฌ๐Ÿ‡ผ flag: Guinea-Bissau; 1F1EC 1F1FC; +๐Ÿ‡ฌ๐Ÿ‡พ flag: Guyana; 1F1EC 1F1FE; +๐Ÿ‡ญ๐Ÿ‡ฐ flag: Hong Kong SAR China; 1F1ED 1F1F0; +๐Ÿ‡ญ๐Ÿ‡ฒ flag: Heard & McDonald Islands; 1F1ED 1F1F2; +๐Ÿ‡ญ๐Ÿ‡ณ flag: Honduras; 1F1ED 1F1F3; +๐Ÿ‡ญ๐Ÿ‡ท flag: Croatia; 1F1ED 1F1F7; +๐Ÿ‡ญ๐Ÿ‡น flag: Haiti; 1F1ED 1F1F9; +๐Ÿ‡ญ๐Ÿ‡บ flag: Hungary; 1F1ED 1F1FA; +๐Ÿ‡ฎ๐Ÿ‡จ flag: Canary Islands; 1F1EE 1F1E8; +๐Ÿ‡ฎ๐Ÿ‡ฉ flag: Indonesia; 1F1EE 1F1E9; +๐Ÿ‡ฎ๐Ÿ‡ช flag: Ireland; 1F1EE 1F1EA; +๐Ÿ‡ฎ๐Ÿ‡ฑ flag: Israel; 1F1EE 1F1F1; +๐Ÿ‡ฎ๐Ÿ‡ฒ flag: Isle of Man; 1F1EE 1F1F2; +๐Ÿ‡ฎ๐Ÿ‡ณ flag: India; 1F1EE 1F1F3; +๐Ÿ‡ฎ๐Ÿ‡ด flag: British Indian Ocean Territory; 1F1EE 1F1F4; +๐Ÿ‡ฎ๐Ÿ‡ถ flag: Iraq; 1F1EE 1F1F6; +๐Ÿ‡ฎ๐Ÿ‡ท flag: Iran; 1F1EE 1F1F7; +๐Ÿ‡ฎ๐Ÿ‡ธ flag: Iceland; 1F1EE 1F1F8; +๐Ÿ‡ฎ๐Ÿ‡น flag: Italy; 1F1EE 1F1F9; +๐Ÿ‡ฏ๐Ÿ‡ช flag: Jersey; 1F1EF 1F1EA; +๐Ÿ‡ฏ๐Ÿ‡ฒ flag: Jamaica; 1F1EF 1F1F2; +๐Ÿ‡ฏ๐Ÿ‡ด flag: Jordan; 1F1EF 1F1F4; +๐Ÿ‡ฏ๐Ÿ‡ต flag: Japan; 1F1EF 1F1F5; +๐Ÿ‡ฐ๐Ÿ‡ช flag: Kenya; 1F1F0 1F1EA; +๐Ÿ‡ฐ๐Ÿ‡ฌ flag: Kyrgyzstan; 1F1F0 1F1EC; +๐Ÿ‡ฐ๐Ÿ‡ญ flag: Cambodia; 1F1F0 1F1ED; +๐Ÿ‡ฐ๐Ÿ‡ฎ flag: Kiribati; 1F1F0 1F1EE; +๐Ÿ‡ฐ๐Ÿ‡ฒ flag: Comoros; 1F1F0 1F1F2; +๐Ÿ‡ฐ๐Ÿ‡ณ flag: St. Kitts & Nevis; 1F1F0 1F1F3; +๐Ÿ‡ฐ๐Ÿ‡ต flag: North Korea; 1F1F0 1F1F5; +๐Ÿ‡ฐ๐Ÿ‡ท flag: South Korea; 1F1F0 1F1F7; +๐Ÿ‡ฐ๐Ÿ‡ผ flag: Kuwait; 1F1F0 1F1FC; +๐Ÿ‡ฐ๐Ÿ‡พ flag: Cayman Islands; 1F1F0 1F1FE; +๐Ÿ‡ฐ๐Ÿ‡ฟ flag: Kazakhstan; 1F1F0 1F1FF; +๐Ÿ‡ฑ๐Ÿ‡ฆ flag: Laos; 1F1F1 1F1E6; +๐Ÿ‡ฑ๐Ÿ‡ง flag: Lebanon; 1F1F1 1F1E7; +๐Ÿ‡ฑ๐Ÿ‡จ flag: St. Lucia; 1F1F1 1F1E8; +๐Ÿ‡ฑ๐Ÿ‡ฎ flag: Liechtenstein; 1F1F1 1F1EE; +๐Ÿ‡ฑ๐Ÿ‡ฐ flag: Sri Lanka; 1F1F1 1F1F0; +๐Ÿ‡ฑ๐Ÿ‡ท flag: Liberia; 1F1F1 1F1F7; +๐Ÿ‡ฑ๐Ÿ‡ธ flag: Lesotho; 1F1F1 1F1F8; +๐Ÿ‡ฑ๐Ÿ‡น flag: Lithuania; 1F1F1 1F1F9; +๐Ÿ‡ฑ๐Ÿ‡บ flag: Luxembourg; 1F1F1 1F1FA; +๐Ÿ‡ฑ๐Ÿ‡ป flag: Latvia; 1F1F1 1F1FB; +๐Ÿ‡ฑ๐Ÿ‡พ flag: Libya; 1F1F1 1F1FE; +๐Ÿ‡ฒ๐Ÿ‡ฆ flag: Morocco; 1F1F2 1F1E6; +๐Ÿ‡ฒ๐Ÿ‡จ flag: Monaco; 1F1F2 1F1E8; +๐Ÿ‡ฒ๐Ÿ‡ฉ flag: Moldova; 1F1F2 1F1E9; +๐Ÿ‡ฒ๐Ÿ‡ช flag: Montenegro; 1F1F2 1F1EA; +๐Ÿ‡ฒ๐Ÿ‡ซ flag: St. Martin; 1F1F2 1F1EB; +๐Ÿ‡ฒ๐Ÿ‡ฌ flag: Madagascar; 1F1F2 1F1EC; +๐Ÿ‡ฒ๐Ÿ‡ญ flag: Marshall Islands; 1F1F2 1F1ED; +๐Ÿ‡ฒ๐Ÿ‡ฐ flag: North Macedonia; 1F1F2 1F1F0; +๐Ÿ‡ฒ๐Ÿ‡ฑ flag: Mali; 1F1F2 1F1F1; +๐Ÿ‡ฒ๐Ÿ‡ฒ flag: Myanmar (Burma); 1F1F2 1F1F2; +๐Ÿ‡ฒ๐Ÿ‡ณ flag: Mongolia; 1F1F2 1F1F3; +๐Ÿ‡ฒ๐Ÿ‡ด flag: Macao SAR China; 1F1F2 1F1F4; +๐Ÿ‡ฒ๐Ÿ‡ต flag: Northern Mariana Islands; 1F1F2 1F1F5; +๐Ÿ‡ฒ๐Ÿ‡ถ flag: Martinique; 1F1F2 1F1F6; +๐Ÿ‡ฒ๐Ÿ‡ท flag: Mauritania; 1F1F2 1F1F7; +๐Ÿ‡ฒ๐Ÿ‡ธ flag: Montserrat; 1F1F2 1F1F8; +๐Ÿ‡ฒ๐Ÿ‡น flag: Malta; 1F1F2 1F1F9; +๐Ÿ‡ฒ๐Ÿ‡บ flag: Mauritius; 1F1F2 1F1FA; +๐Ÿ‡ฒ๐Ÿ‡ป flag: Maldives; 1F1F2 1F1FB; +๐Ÿ‡ฒ๐Ÿ‡ผ flag: Malawi; 1F1F2 1F1FC; +๐Ÿ‡ฒ๐Ÿ‡ฝ flag: Mexico; 1F1F2 1F1FD; +๐Ÿ‡ฒ๐Ÿ‡พ flag: Malaysia; 1F1F2 1F1FE; +๐Ÿ‡ฒ๐Ÿ‡ฟ flag: Mozambique; 1F1F2 1F1FF; +๐Ÿ‡ณ๐Ÿ‡ฆ flag: Namibia; 1F1F3 1F1E6; +๐Ÿ‡ณ๐Ÿ‡จ flag: New Caledonia; 1F1F3 1F1E8; +๐Ÿ‡ณ๐Ÿ‡ช flag: Niger; 1F1F3 1F1EA; +๐Ÿ‡ณ๐Ÿ‡ซ flag: Norfolk Island; 1F1F3 1F1EB; +๐Ÿ‡ณ๐Ÿ‡ฌ flag: Nigeria; 1F1F3 1F1EC; +๐Ÿ‡ณ๐Ÿ‡ฎ flag: Nicaragua; 1F1F3 1F1EE; +๐Ÿ‡ณ๐Ÿ‡ฑ flag: Netherlands; 1F1F3 1F1F1; +๐Ÿ‡ณ๐Ÿ‡ด flag: Norway; 1F1F3 1F1F4; +๐Ÿ‡ณ๐Ÿ‡ต flag: Nepal; 1F1F3 1F1F5; +๐Ÿ‡ณ๐Ÿ‡ท flag: Nauru; 1F1F3 1F1F7; +๐Ÿ‡ณ๐Ÿ‡บ flag: Niue; 1F1F3 1F1FA; +๐Ÿ‡ณ๐Ÿ‡ฟ flag: New Zealand; 1F1F3 1F1FF; +๐Ÿ‡ด๐Ÿ‡ฒ flag: Oman; 1F1F4 1F1F2; +๐Ÿ‡ต๐Ÿ‡ฆ flag: Panama; 1F1F5 1F1E6; +๐Ÿ‡ต๐Ÿ‡ช flag: Peru; 1F1F5 1F1EA; +๐Ÿ‡ต๐Ÿ‡ซ flag: French Polynesia; 1F1F5 1F1EB; +๐Ÿ‡ต๐Ÿ‡ฌ flag: Papua New Guinea; 1F1F5 1F1EC; +๐Ÿ‡ต๐Ÿ‡ญ flag: Philippines; 1F1F5 1F1ED; +๐Ÿ‡ต๐Ÿ‡ฐ flag: Pakistan; 1F1F5 1F1F0; +๐Ÿ‡ต๐Ÿ‡ฑ flag: Poland; 1F1F5 1F1F1; +๐Ÿ‡ต๐Ÿ‡ฒ flag: St. Pierre & Miquelon; 1F1F5 1F1F2; +๐Ÿ‡ต๐Ÿ‡ณ flag: Pitcairn Islands; 1F1F5 1F1F3; +๐Ÿ‡ต๐Ÿ‡ท flag: Puerto Rico; 1F1F5 1F1F7; +๐Ÿ‡ต๐Ÿ‡ธ flag: Palestinian Territories; 1F1F5 1F1F8; +๐Ÿ‡ต๐Ÿ‡น flag: Portugal; 1F1F5 1F1F9; +๐Ÿ‡ต๐Ÿ‡ผ flag: Palau; 1F1F5 1F1FC; +๐Ÿ‡ต๐Ÿ‡พ flag: Paraguay; 1F1F5 1F1FE; +๐Ÿ‡ถ๐Ÿ‡ฆ flag: Qatar; 1F1F6 1F1E6; +๐Ÿ‡ท๐Ÿ‡ช flag: Rรฉunion; 1F1F7 1F1EA; +๐Ÿ‡ท๐Ÿ‡ด flag: Romania; 1F1F7 1F1F4; +๐Ÿ‡ท๐Ÿ‡ธ flag: Serbia; 1F1F7 1F1F8; +๐Ÿ‡ท๐Ÿ‡บ flag: Russia; 1F1F7 1F1FA; +๐Ÿ‡ท๐Ÿ‡ผ flag: Rwanda; 1F1F7 1F1FC; +๐Ÿ‡ธ๐Ÿ‡ฆ flag: Saudi Arabia; 1F1F8 1F1E6; +๐Ÿ‡ธ๐Ÿ‡ง flag: Solomon Islands; 1F1F8 1F1E7; +๐Ÿ‡ธ๐Ÿ‡จ flag: Seychelles; 1F1F8 1F1E8; +๐Ÿ‡ธ๐Ÿ‡ฉ flag: Sudan; 1F1F8 1F1E9; +๐Ÿ‡ธ๐Ÿ‡ช flag: Sweden; 1F1F8 1F1EA; +๐Ÿ‡ธ๐Ÿ‡ฌ flag: Singapore; 1F1F8 1F1EC; +๐Ÿ‡ธ๐Ÿ‡ญ flag: St. Helena; 1F1F8 1F1ED; +๐Ÿ‡ธ๐Ÿ‡ฎ flag: Slovenia; 1F1F8 1F1EE; +๐Ÿ‡ธ๐Ÿ‡ฏ flag: Svalbard & Jan Mayen; 1F1F8 1F1EF; +๐Ÿ‡ธ๐Ÿ‡ฐ flag: Slovakia; 1F1F8 1F1F0; +๐Ÿ‡ธ๐Ÿ‡ฑ flag: Sierra Leone; 1F1F8 1F1F1; +๐Ÿ‡ธ๐Ÿ‡ฒ flag: San Marino; 1F1F8 1F1F2; +๐Ÿ‡ธ๐Ÿ‡ณ flag: Senegal; 1F1F8 1F1F3; +๐Ÿ‡ธ๐Ÿ‡ด flag: Somalia; 1F1F8 1F1F4; +๐Ÿ‡ธ๐Ÿ‡ท flag: Suriname; 1F1F8 1F1F7; +๐Ÿ‡ธ๐Ÿ‡ธ flag: South Sudan; 1F1F8 1F1F8; +๐Ÿ‡ธ๐Ÿ‡น flag: Sรฃo Tomรฉ & Prรญncipe; 1F1F8 1F1F9; +๐Ÿ‡ธ๐Ÿ‡ป flag: El Salvador; 1F1F8 1F1FB; +๐Ÿ‡ธ๐Ÿ‡ฝ flag: Sint Maarten; 1F1F8 1F1FD; +๐Ÿ‡ธ๐Ÿ‡พ flag: Syria; 1F1F8 1F1FE; +๐Ÿ‡ธ๐Ÿ‡ฟ flag: Eswatini; 1F1F8 1F1FF; +๐Ÿ‡น๐Ÿ‡ฆ flag: Tristan da Cunha; 1F1F9 1F1E6; +๐Ÿ‡น๐Ÿ‡จ flag: Turks & Caicos Islands; 1F1F9 1F1E8; +๐Ÿ‡น๐Ÿ‡ฉ flag: Chad; 1F1F9 1F1E9; +๐Ÿ‡น๐Ÿ‡ซ flag: French Southern Territories; 1F1F9 1F1EB; +๐Ÿ‡น๐Ÿ‡ฌ flag: Togo; 1F1F9 1F1EC; +๐Ÿ‡น๐Ÿ‡ญ flag: Thailand; 1F1F9 1F1ED; +๐Ÿ‡น๐Ÿ‡ฏ flag: Tajikistan; 1F1F9 1F1EF; +๐Ÿ‡น๐Ÿ‡ฐ flag: Tokelau; 1F1F9 1F1F0; +๐Ÿ‡น๐Ÿ‡ฑ flag: Timor-Leste; 1F1F9 1F1F1; +๐Ÿ‡น๐Ÿ‡ฒ flag: Turkmenistan; 1F1F9 1F1F2; +๐Ÿ‡น๐Ÿ‡ณ flag: Tunisia; 1F1F9 1F1F3; +๐Ÿ‡น๐Ÿ‡ด flag: Tonga; 1F1F9 1F1F4; +๐Ÿ‡น๐Ÿ‡ท flag: Turkey; 1F1F9 1F1F7; +๐Ÿ‡น๐Ÿ‡น flag: Trinidad & Tobago; 1F1F9 1F1F9; +๐Ÿ‡น๐Ÿ‡ป flag: Tuvalu; 1F1F9 1F1FB; +๐Ÿ‡น๐Ÿ‡ผ flag: Taiwan; 1F1F9 1F1FC; +๐Ÿ‡น๐Ÿ‡ฟ flag: Tanzania; 1F1F9 1F1FF; +๐Ÿ‡บ๐Ÿ‡ฆ flag: Ukraine; 1F1FA 1F1E6; +๐Ÿ‡บ๐Ÿ‡ฌ flag: Uganda; 1F1FA 1F1EC; +๐Ÿ‡บ๐Ÿ‡ฒ flag: U.S. Outlying Islands; 1F1FA 1F1F2; +๐Ÿ‡บ๐Ÿ‡ณ flag: United Nations; 1F1FA 1F1F3; +๐Ÿ‡บ๐Ÿ‡ธ flag: United States; 1F1FA 1F1F8; +๐Ÿ‡บ๐Ÿ‡พ flag: Uruguay; 1F1FA 1F1FE; +๐Ÿ‡บ๐Ÿ‡ฟ flag: Uzbekistan; 1F1FA 1F1FF; +๐Ÿ‡ป๐Ÿ‡ฆ flag: Vatican City; 1F1FB 1F1E6; +๐Ÿ‡ป๐Ÿ‡จ flag: St. Vincent & Grenadines; 1F1FB 1F1E8; +๐Ÿ‡ป๐Ÿ‡ช flag: Venezuela; 1F1FB 1F1EA; +๐Ÿ‡ป๐Ÿ‡ฌ flag: British Virgin Islands; 1F1FB 1F1EC; +๐Ÿ‡ป๐Ÿ‡ฎ flag: U.S. Virgin Islands; 1F1FB 1F1EE; +๐Ÿ‡ป๐Ÿ‡ณ flag: Vietnam; 1F1FB 1F1F3; +๐Ÿ‡ป๐Ÿ‡บ flag: Vanuatu; 1F1FB 1F1FA; +๐Ÿ‡ผ๐Ÿ‡ซ flag: Wallis & Futuna; 1F1FC 1F1EB; +๐Ÿ‡ผ๐Ÿ‡ธ flag: Samoa; 1F1FC 1F1F8; +๐Ÿ‡ฝ๐Ÿ‡ฐ flag: Kosovo; 1F1FD 1F1F0; +๐Ÿ‡พ๐Ÿ‡ช flag: Yemen; 1F1FE 1F1EA; +๐Ÿ‡พ๐Ÿ‡น flag: Mayotte; 1F1FE 1F1F9; +๐Ÿ‡ฟ๐Ÿ‡ฆ flag: South Africa; 1F1FF 1F1E6; +๐Ÿ‡ฟ๐Ÿ‡ฒ flag: Zambia; 1F1FF 1F1F2; +๐Ÿ‡ฟ๐Ÿ‡ผ flag: Zimbabwe; 1F1FF 1F1FC; +๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ flag: England; 1F3F4725E7F; +๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ flag: Scotland; 1F3F472334F; +๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ flag: Wales; 1F3F4727C3F; +๏™ fa-ad; U+F641 +๏Šน fa-address-book; U+F2B9 +๏Šป fa-address-card; U+F2BB +๏‚ fa-adjust; U+F042 +๏— fa-air-freshener; U+F5D0 +๏€ท fa-align-center; U+F037 +๏€น fa-align-justify; U+F039 +๏€ถ fa-align-left; U+F036 +๏€ธ fa-align-right; U+F038 +๏‘ก fa-allergies; U+F461 +๏ƒน fa-ambulance; U+F0F9 +๏Šฃ fa-american-sign-language-interpreting; U+F2A3 +๏„ฝ fa-anchor; U+F13D +๏„ƒ fa-angle-double-down; U+F103 +๏„€ fa-angle-double-left; U+F100 +๏„ fa-angle-double-right; U+F101 +๏„‚ fa-angle-double-up; U+F102 +๏„‡ fa-angle-down; U+F107 +๏„„ fa-angle-left; U+F104 +๏„… fa-angle-right; U+F105 +๏„† fa-angle-up; U+F106 +๏•– fa-angry; U+F556 +๏™„ fa-ankh; U+F644 +๏—‘ fa-apple-alt; U+F5D1 +๏†‡ fa-archive; U+F187 +๏•— fa-archway; U+F557 +๏˜ fa-arrow-alt-circle-down; U+F358 +๏™ fa-arrow-alt-circle-left; U+F359 +๏š fa-arrow-alt-circle-right; U+F35A +๏› fa-arrow-alt-circle-up; U+F35B +๏‚ซ fa-arrow-circle-down; U+F0AB +๏‚จ fa-arrow-circle-left; U+F0A8 +๏‚ฉ fa-arrow-circle-right; U+F0A9 +๏‚ช fa-arrow-circle-up; U+F0AA +๏ฃ fa-arrow-down; U+F063 +๏  fa-arrow-left; U+F060 +๏ก fa-arrow-right; U+F061 +๏ข fa-arrow-up; U+F062 +๏‚ฒ fa-arrows-alt; U+F0B2 +๏Œท fa-arrows-alt-h; U+F337 +๏Œธ fa-arrows-alt-v; U+F338 +๏Šข fa-assistive-listening-systems; U+F2A2 +๏ฉ fa-asterisk; U+F069 +๏‡บ fa-at; U+F1FA +๏•˜ fa-atlas; U+F558 +๏—’ fa-atom; U+F5D2 +๏Šž fa-audio-description; U+F29E +๏•™ fa-award; U+F559 +๏ผ fa-baby; U+F77C +๏ฝ fa-baby-carriage; U+F77D +๏•š fa-backspace; U+F55A +๏Š fa-backward; U+F04A +๏‰Ž fa-balance-scale; U+F24E +๏ž fa-ban; U+F05E +๏‘ข fa-band-aid; U+F462 +๏€ช fa-barcode; U+F02A +๏ƒ‰ fa-bars; U+F0C9 +๏ณ fa-baseball-ball; U+F433 +๏ด fa-basketball-ball; U+F434 +๏‹ fa-bath; U+F2CD +๏‰„ fa-battery-empty; U+F244 +๏‰€ fa-battery-full; U+F240 +๏‰‚ fa-battery-half; U+F242 +๏‰ƒ fa-battery-quarter; U+F243 +๏‰ fa-battery-three-quarters; U+F241 +๏ˆถ fa-bed; U+F236 +๏ƒผ fa-beer; U+F0FC +๏ƒณ fa-bell; U+F0F3 +๏‡ถ fa-bell-slash; U+F1F6 +๏•› fa-bezier-curve; U+F55B +๏™‡ fa-bible; U+F647 +๏ˆ† fa-bicycle; U+F206 +๏‡ฅ fa-binoculars; U+F1E5 +๏ž€ fa-biohazard; U+F780 +๏‡ฝ fa-birthday-cake; U+F1FD +๏”— fa-blender; U+F517 +๏šถ fa-blender-phone; U+F6B6 +๏Š fa-blind; U+F29D +๏ž fa-blog; U+F781 +๏€ฒ fa-bold; U+F032 +๏ƒง fa-bolt; U+F0E7 +๏‡ข fa-bomb; U+F1E2 +๏—— fa-bone; U+F5D7 +๏•œ fa-bong; U+F55C +๏€ญ fa-book; U+F02D +๏šท fa-book-dead; U+F6B7 +๏”˜ fa-book-open; U+F518 +๏—š fa-book-reader; U+F5DA +๏€ฎ fa-bookmark; U+F02E +๏ถ fa-bowling-ball; U+F436 +๏‘ฆ fa-box; U+F466 +๏’ž fa-box-open; U+F49E +๏‘จ fa-boxes; U+F468 +๏Šก fa-braille; U+F2A1 +๏—œ fa-brain; U+F5DC +๏‚ฑ fa-briefcase; U+F0B1 +๏‘ฉ fa-briefcase-medical; U+F469 +๏”™ fa-broadcast-tower; U+F519 +๏”š fa-broom; U+F51A +๏• fa-brush; U+F55D +๏†ˆ fa-bug; U+F188 +๏†ญ fa-building; U+F1AD +๏‚ก fa-bullhorn; U+F0A1 +๏…€ fa-bullseye; U+F140 +๏‘ช fa-burn; U+F46A +๏ˆ‡ fa-bus; U+F207 +๏•ž fa-bus-alt; U+F55E +๏™Š fa-business-time; U+F64A +๏‡ฌ fa-calculator; U+F1EC +๏„ณ fa-calendar; U+F133 +๏ณ fa-calendar-alt; U+F073 +๏‰ด fa-calendar-check; U+F274 +๏žƒ fa-calendar-day; U+F783 +๏‰ฒ fa-calendar-minus; U+F272 +๏‰ฑ fa-calendar-plus; U+F271 +๏‰ณ fa-calendar-times; U+F273 +๏ž„ fa-calendar-week; U+F784 +๏€ฐ fa-camera; U+F030 +๏‚ƒ fa-camera-retro; U+F083 +๏šป fa-campground; U+F6BB +๏ž† fa-candy-cane; U+F786 +๏•Ÿ fa-cannabis; U+F55F +๏‘ซ fa-capsules; U+F46B +๏†น fa-car; U+F1B9 +๏—ž fa-car-alt; U+F5DE +๏—Ÿ fa-car-battery; U+F5DF +๏—ก fa-car-crash; U+F5E1 +๏—ค fa-car-side; U+F5E4 +๏ƒ— fa-caret-down; U+F0D7 +๏ƒ™ fa-caret-left; U+F0D9 +๏ƒš fa-caret-right; U+F0DA +๏… fa-caret-square-down; U+F150 +๏†‘ fa-caret-square-left; U+F191 +๏…’ fa-caret-square-right; U+F152 +๏…‘ fa-caret-square-up; U+F151 +๏ƒ˜ fa-caret-up; U+F0D8 +๏ž‡ fa-carrot; U+F787 +๏ˆ˜ fa-cart-arrow-down; U+F218 +๏ˆ— fa-cart-plus; U+F217 +๏žˆ fa-cash-register; U+F788 +๏šพ fa-cat; U+F6BE +๏‚ฃ fa-certificate; U+F0A3 +๏›€ fa-chair; U+F6C0 +๏”› fa-chalkboard; U+F51B +๏”œ fa-chalkboard-teacher; U+F51C +๏—ง fa-charging-station; U+F5E7 +๏‡พ fa-chart-area; U+F1FE +๏‚€ fa-chart-bar; U+F080 +๏ˆ fa-chart-line; U+F201 +๏ˆ€ fa-chart-pie; U+F200 +๏€Œ fa-check; U+F00C +๏˜ fa-check-circle; U+F058 +๏•  fa-check-double; U+F560 +๏…Š fa-check-square; U+F14A +๏น fa-chess; U+F439 +๏บ fa-chess-bishop; U+F43A +๏ผ fa-chess-board; U+F43C +๏ฟ fa-chess-king; U+F43F +๏‘ fa-chess-knight; U+F441 +๏‘ƒ fa-chess-pawn; U+F443 +๏‘… fa-chess-queen; U+F445 +๏‘‡ fa-chess-rook; U+F447 +๏„บ fa-chevron-circle-down; U+F13A +๏„ท fa-chevron-circle-left; U+F137 +๏„ธ fa-chevron-circle-right; U+F138 +๏„น fa-chevron-circle-up; U+F139 +๏ธ fa-chevron-down; U+F078 +๏“ fa-chevron-left; U+F053 +๏” fa-chevron-right; U+F054 +๏ท fa-chevron-up; U+F077 +๏†ฎ fa-child; U+F1AE +๏” fa-church; U+F51D +๏„‘ fa-circle; U+F111 +๏‡Ž fa-circle-notch; U+F1CE +๏™ fa-city; U+F64F +๏Œจ fa-clipboard; U+F328 +๏‘ฌ fa-clipboard-check; U+F46C +๏‘ญ fa-clipboard-list; U+F46D +๏€— fa-clock; U+F017 +๏‰ fa-clone; U+F24D +๏ˆŠ fa-closed-captioning; U+F20A +๏ƒ‚ fa-cloud; U+F0C2 +๏ށ fa-cloud-download-alt; U+F381 +๏œป fa-cloud-meatball; U+F73B +๏›ƒ fa-cloud-moon; U+F6C3 +๏œผ fa-cloud-moon-rain; U+F73C +๏œฝ fa-cloud-rain; U+F73D +๏€ fa-cloud-showers-heavy; U+F740 +๏›„ fa-cloud-sun; U+F6C4 +๏ƒ fa-cloud-sun-rain; U+F743 +๏Ž‚ fa-cloud-upload-alt; U+F382 +๏•ก fa-cocktail; U+F561 +๏„ก fa-code; U+F121 +๏„ฆ fa-code-branch; U+F126 +๏ƒด fa-coffee; U+F0F4 +๏€“ fa-cog; U+F013 +๏‚… fa-cogs; U+F085 +๏”ž fa-coins; U+F51E +๏ƒ› fa-columns; U+F0DB +๏ต fa-comment; U+F075 +๏‰บ fa-comment-alt; U+F27A +๏™‘ fa-comment-dollar; U+F651 +๏’ญ fa-comment-dots; U+F4AD +๏’ณ fa-comment-slash; U+F4B3 +๏‚† fa-comments; U+F086 +๏™“ fa-comments-dollar; U+F653 +๏”Ÿ fa-compact-disc; U+F51F +๏…Ž fa-compass; U+F14E +๏ฆ fa-compress; U+F066 +๏žŒ fa-compress-arrows-alt; U+F78C +๏•ข fa-concierge-bell; U+F562 +๏•ฃ fa-cookie; U+F563 +๏•ค fa-cookie-bite; U+F564 +๏ƒ… fa-copy; U+F0C5 +๏‡น fa-copyright; U+F1F9 +๏’ธ fa-couch; U+F4B8 +๏‚ fa-credit-card; U+F09D +๏„ฅ fa-crop; U+F125 +๏•ฅ fa-crop-alt; U+F565 +๏™” fa-cross; U+F654 +๏› fa-crosshairs; U+F05B +๏”  fa-crow; U+F520 +๏”ก fa-crown; U+F521 +๏†ฒ fa-cube; U+F1B2 +๏†ณ fa-cubes; U+F1B3 +๏ƒ„ fa-cut; U+F0C4 +๏‡€ fa-database; U+F1C0 +๏Šค fa-deaf; U+F2A4 +๏‡ fa-democrat; U+F747 +๏„ˆ fa-desktop; U+F108 +๏™• fa-dharmachakra; U+F655 +๏‘ฐ fa-diagnoses; U+F470 +๏”ข fa-dice; U+F522 +๏› fa-dice-d20; U+F6CF +๏›‘ fa-dice-d6; U+F6D1 +๏”ฃ fa-dice-five; U+F523 +๏”ค fa-dice-four; U+F524 +๏”ฅ fa-dice-one; U+F525 +๏”ฆ fa-dice-six; U+F526 +๏”ง fa-dice-three; U+F527 +๏”จ fa-dice-two; U+F528 +๏•ฆ fa-digital-tachograph; U+F566 +๏—ซ fa-directions; U+F5EB +๏”ฉ fa-divide; U+F529 +๏•ง fa-dizzy; U+F567 +๏‘ฑ fa-dna; U+F471 +๏›“ fa-dog; U+F6D3 +๏…• fa-dollar-sign; U+F155 +๏‘ฒ fa-dolly; U+F472 +๏‘ด fa-dolly-flatbed; U+F474 +๏’น fa-donate; U+F4B9 +๏”ช fa-door-closed; U+F52A +๏”ซ fa-door-open; U+F52B +๏†’ fa-dot-circle; U+F192 +๏’บ fa-dove; U+F4BA +๏€™ fa-download; U+F019 +๏•จ fa-drafting-compass; U+F568 +๏›• fa-dragon; U+F6D5 +๏—ฎ fa-draw-polygon; U+F5EE +๏•ฉ fa-drum; U+F569 +๏•ช fa-drum-steelpan; U+F56A +๏›— fa-drumstick-bite; U+F6D7 +๏‘‹ fa-dumbbell; U+F44B +๏ž“ fa-dumpster; U+F793 +๏ž” fa-dumpster-fire; U+F794 +๏›™ fa-dungeon; U+F6D9 +๏„ fa-edit; U+F044 +๏’ fa-eject; U+F052 +๏… fa-ellipsis-h; U+F141 +๏…‚ fa-ellipsis-v; U+F142 +๏ƒ  fa-envelope; U+F0E0 +๏Šถ fa-envelope-open; U+F2B6 +๏™˜ fa-envelope-open-text; U+F658 +๏†™ fa-envelope-square; U+F199 +๏”ฌ fa-equals; U+F52C +๏„ญ fa-eraser; U+F12D +๏ž– fa-ethernet; U+F796 +๏…“ fa-euro-sign; U+F153 +๏ข fa-exchange-alt; U+F362 +๏„ช fa-exclamation; U+F12A +๏ช fa-exclamation-circle; U+F06A +๏ฑ fa-exclamation-triangle; U+F071 +๏ฅ fa-expand; U+F065 +๏Œž fa-expand-arrows-alt; U+F31E +๏ fa-external-link-alt; U+F35D +๏  fa-external-link-square-alt; U+F360 +๏ฎ fa-eye; U+F06E +๏‡ป fa-eye-dropper; U+F1FB +๏ฐ fa-eye-slash; U+F070 +๏‰ fa-fast-backward; U+F049 +๏ fa-fast-forward; U+F050 +๏†ฌ fa-fax; U+F1AC +๏”ญ fa-feather; U+F52D +๏•ซ fa-feather-alt; U+F56B +๏†‚ fa-female; U+F182 +๏ƒป fa-fighter-jet; U+F0FB +๏…› fa-file; U+F15B +๏…œ fa-file-alt; U+F15C +๏‡† fa-file-archive; U+F1C6 +๏‡‡ fa-file-audio; U+F1C7 +๏‡‰ fa-file-code; U+F1C9 +๏•ฌ fa-file-contract; U+F56C +๏› fa-file-csv; U+F6DD +๏•ญ fa-file-download; U+F56D +๏‡ƒ fa-file-excel; U+F1C3 +๏•ฎ fa-file-export; U+F56E +๏‡… fa-file-image; U+F1C5 +๏•ฏ fa-file-import; U+F56F +๏•ฐ fa-file-invoice; U+F570 +๏•ฑ fa-file-invoice-dollar; U+F571 +๏‘ท fa-file-medical; U+F477 +๏‘ธ fa-file-medical-alt; U+F478 +๏‡ fa-file-pdf; U+F1C1 +๏‡„ fa-file-powerpoint; U+F1C4 +๏•ฒ fa-file-prescription; U+F572 +๏•ณ fa-file-signature; U+F573 +๏•ด fa-file-upload; U+F574 +๏‡ˆ fa-file-video; U+F1C8 +๏‡‚ fa-file-word; U+F1C2 +๏•ต fa-fill; U+F575 +๏•ถ fa-fill-drip; U+F576 +๏€ˆ fa-film; U+F008 +๏‚ฐ fa-filter; U+F0B0 +๏•ท fa-fingerprint; U+F577 +๏ญ fa-fire; U+F06D +๏Ÿค fa-fire-alt; U+F7E4 +๏„ด fa-fire-extinguisher; U+F134 +๏‘น fa-first-aid; U+F479 +๏•ธ fa-fish; U+F578 +๏›ž fa-fist-raised; U+F6DE +๏€ค fa-flag; U+F024 +๏„ž fa-flag-checkered; U+F11E +๏ fa-flag-usa; U+F74D +๏ƒƒ fa-flask; U+F0C3 +๏•น fa-flushed; U+F579 +๏ป fa-folder; U+F07B +๏™ fa-folder-minus; U+F65D +๏ผ fa-folder-open; U+F07C +๏™ž fa-folder-plus; U+F65E +๏€ฑ fa-font; U+F031 +๏“ฆ fa-font-awesome-logo-full; U+F4E6 +๏‘Ž fa-football-ball; U+F44E +๏Ž fa-forward; U+F04E +๏”ฎ fa-frog; U+F52E +๏„™ fa-frown; U+F119 +๏•บ fa-frown-open; U+F57A +๏™ข fa-funnel-dollar; U+F662 +๏‡ฃ fa-futbol; U+F1E3 +๏„› fa-gamepad; U+F11B +๏”ฏ fa-gas-pump; U+F52F +๏ƒฃ fa-gavel; U+F0E3 +๏Žฅ fa-gem; U+F3A5 +๏ˆญ fa-genderless; U+F22D +๏›ข fa-ghost; U+F6E2 +๏ซ fa-gift; U+F06B +๏žœ fa-gifts; U+F79C +๏žŸ fa-glass-cheers; U+F79F +๏€€ fa-glass-martini; U+F000 +๏•ป fa-glass-martini-alt; U+F57B +๏ž  fa-glass-whiskey; U+F7A0 +๏”ฐ fa-glasses; U+F530 +๏‚ฌ fa-globe; U+F0AC +๏•ผ fa-globe-africa; U+F57C +๏•ฝ fa-globe-americas; U+F57D +๏•พ fa-globe-asia; U+F57E +๏žข fa-globe-europe; U+F7A2 +๏‘ fa-golf-ball; U+F450 +๏™ค fa-gopuram; U+F664 +๏† fa-graduation-cap; U+F19D +๏”ฑ fa-greater-than; U+F531 +๏”ฒ fa-greater-than-equal; U+F532 +๏•ฟ fa-grimace; U+F57F +๏–€ fa-grin; U+F580 +๏– fa-grin-alt; U+F581 +๏–‚ fa-grin-beam; U+F582 +๏–ƒ fa-grin-beam-sweat; U+F583 +๏–„ fa-grin-hearts; U+F584 +๏–… fa-grin-squint; U+F585 +๏–† fa-grin-squint-tears; U+F586 +๏–‡ fa-grin-stars; U+F587 +๏–ˆ fa-grin-tears; U+F588 +๏–‰ fa-grin-tongue; U+F589 +๏–Š fa-grin-tongue-squint; U+F58A +๏–‹ fa-grin-tongue-wink; U+F58B +๏–Œ fa-grin-wink; U+F58C +๏– fa-grip-horizontal; U+F58D +๏žค fa-grip-lines; U+F7A4 +๏žฅ fa-grip-lines-vertical; U+F7A5 +๏–Ž fa-grip-vertical; U+F58E +๏žฆ fa-guitar; U+F7A6 +๏ƒฝ fa-h-square; U+F0FD +๏›ฃ fa-hammer; U+F6E3 +๏™ฅ fa-hamsa; U+F665 +๏’ฝ fa-hand-holding; U+F4BD +๏’พ fa-hand-holding-heart; U+F4BE +๏“€ fa-hand-holding-usd; U+F4C0 +๏‰˜ fa-hand-lizard; U+F258 +๏‰– fa-hand-paper; U+F256 +๏‰› fa-hand-peace; U+F25B +๏‚ง fa-hand-point-down; U+F0A7 +๏‚ฅ fa-hand-point-left; U+F0A5 +๏‚ค fa-hand-point-right; U+F0A4 +๏‚ฆ fa-hand-point-up; U+F0A6 +๏‰š fa-hand-pointer; U+F25A +๏‰• fa-hand-rock; U+F255 +๏‰— fa-hand-scissors; U+F257 +๏‰™ fa-hand-spock; U+F259 +๏“‚ fa-hands; U+F4C2 +๏“„ fa-hands-helping; U+F4C4 +๏Šต fa-handshake; U+F2B5 +๏›ฆ fa-hanukiah; U+F6E6 +๏Š’ fa-hashtag; U+F292 +๏›จ fa-hat-wizard; U+F6E8 +๏™ฆ fa-haykal; U+F666 +๏‚  fa-hdd; U+F0A0 +๏‡œ fa-heading; U+F1DC +๏€ฅ fa-headphones; U+F025 +๏– fa-headphones-alt; U+F58F +๏– fa-headset; U+F590 +๏€„ fa-heart; U+F004 +๏žฉ fa-heart-broken; U+F7A9 +๏ˆž fa-heartbeat; U+F21E +๏”ณ fa-helicopter; U+F533 +๏–‘ fa-highlighter; U+F591 +๏›ฌ fa-hiking; U+F6EC +๏›ญ fa-hippo; U+F6ED +๏‡š fa-history; U+F1DA +๏‘“ fa-hockey-puck; U+F453 +๏žช fa-holly-berry; U+F7AA +๏€• fa-home; U+F015 +๏›ฐ fa-horse; U+F6F0 +๏žซ fa-horse-head; U+F7AB +๏ƒธ fa-hospital; U+F0F8 +๏‘ฝ fa-hospital-alt; U+F47D +๏‘พ fa-hospital-symbol; U+F47E +๏–“ fa-hot-tub; U+F593 +๏–” fa-hotel; U+F594 +๏‰” fa-hourglass; U+F254 +๏‰“ fa-hourglass-end; U+F253 +๏‰’ fa-hourglass-half; U+F252 +๏‰‘ fa-hourglass-start; U+F251 +๏›ฑ fa-house-damage; U+F6F1 +๏›ฒ fa-hryvnia; U+F6F2 +๏‰† fa-i-cursor; U+F246 +๏žญ fa-icicles; U+F7AD +๏‹ fa-id-badge; U+F2C1 +๏‹‚ fa-id-card; U+F2C2 +๏‘ฟ fa-id-card-alt; U+F47F +๏žฎ fa-igloo; U+F7AE +๏€พ fa-image; U+F03E +๏Œ‚ fa-images; U+F302 +๏€œ fa-inbox; U+F01C +๏€ผ fa-indent; U+F03C +๏‰ต fa-industry; U+F275 +๏”ด fa-infinity; U+F534 +๏„ฉ fa-info; U+F129 +๏š fa-info-circle; U+F05A +๏€ณ fa-italic; U+F033 +๏™ฉ fa-jedi; U+F669 +๏–• fa-joint; U+F595 +๏™ช fa-journal-whills; U+F66A +๏™ซ fa-kaaba; U+F66B +๏‚„ fa-key; U+F084 +๏„œ fa-keyboard; U+F11C +๏™ญ fa-khanda; U+F66D +๏–– fa-kiss; U+F596 +๏–— fa-kiss-beam; U+F597 +๏–˜ fa-kiss-wink-heart; U+F598 +๏”ต fa-kiwi-bird; U+F535 +๏™ฏ fa-landmark; U+F66F +๏†ซ fa-language; U+F1AB +๏„‰ fa-laptop; U+F109 +๏—ผ fa-laptop-code; U+F5FC +๏–™ fa-laugh; U+F599 +๏–š fa-laugh-beam; U+F59A +๏–› fa-laugh-squint; U+F59B +๏–œ fa-laugh-wink; U+F59C +๏—ฝ fa-layer-group; U+F5FD +๏ฌ fa-leaf; U+F06C +๏‚” fa-lemon; U+F094 +๏”ถ fa-less-than; U+F536 +๏”ท fa-less-than-equal; U+F537 +๏Žพ fa-level-down-alt; U+F3BE +๏Žฟ fa-level-up-alt; U+F3BF +๏‡ fa-life-ring; U+F1CD +๏ƒซ fa-lightbulb; U+F0EB +๏ƒ fa-link; U+F0C1 +๏†• fa-lira-sign; U+F195 +๏€บ fa-list; U+F03A +๏€ข fa-list-alt; U+F022 +๏ƒ‹ fa-list-ol; U+F0CB +๏ƒŠ fa-list-ul; U+F0CA +๏„ค fa-location-arrow; U+F124 +๏€ฃ fa-lock; U+F023 +๏ fa-lock-open; U+F3C1 +๏Œ‰ fa-long-arrow-alt-down; U+F309 +๏ŒŠ fa-long-arrow-alt-left; U+F30A +๏Œ‹ fa-long-arrow-alt-right; U+F30B +๏ŒŒ fa-long-arrow-alt-up; U+F30C +๏Šจ fa-low-vision; U+F2A8 +๏– fa-luggage-cart; U+F59D +๏ƒ fa-magic; U+F0D0 +๏ถ fa-magnet; U+F076 +๏™ด fa-mail-bulk; U+F674 +๏†ƒ fa-male; U+F183 +๏‰น fa-map; U+F279 +๏–Ÿ fa-map-marked; U+F59F +๏–  fa-map-marked-alt; U+F5A0 +๏ fa-map-marker; U+F041 +๏… fa-map-marker-alt; U+F3C5 +๏‰ถ fa-map-pin; U+F276 +๏‰ท fa-map-signs; U+F277 +๏–ก fa-marker; U+F5A1 +๏ˆข fa-mars; U+F222 +๏ˆง fa-mars-double; U+F227 +๏ˆฉ fa-mars-stroke; U+F229 +๏ˆซ fa-mars-stroke-h; U+F22B +๏ˆช fa-mars-stroke-v; U+F22A +๏›บ fa-mask; U+F6FA +๏–ข fa-medal; U+F5A2 +๏ƒบ fa-medkit; U+F0FA +๏„š fa-meh; U+F11A +๏–ค fa-meh-blank; U+F5A4 +๏–ฅ fa-meh-rolling-eyes; U+F5A5 +๏”ธ fa-memory; U+F538 +๏™ถ fa-menorah; U+F676 +๏ˆฃ fa-mercury; U+F223 +๏“ fa-meteor; U+F753 +๏‹› fa-microchip; U+F2DB +๏„ฐ fa-microphone; U+F130 +๏‰ fa-microphone-alt; U+F3C9 +๏”น fa-microphone-alt-slash; U+F539 +๏„ฑ fa-microphone-slash; U+F131 +๏˜ fa-microscope; U+F610 +๏จ fa-minus; U+F068 +๏– fa-minus-circle; U+F056 +๏…† fa-minus-square; U+F146 +๏žต fa-mitten; U+F7B5 +๏„‹ fa-mobile; U+F10B +๏ fa-mobile-alt; U+F3CD +๏ƒ– fa-money-bill; U+F0D6 +๏‘ fa-money-bill-alt; U+F3D1 +๏”บ fa-money-bill-wave; U+F53A +๏”ป fa-money-bill-wave-alt; U+F53B +๏”ผ fa-money-check; U+F53C +๏”ฝ fa-money-check-alt; U+F53D +๏–ฆ fa-monument; U+F5A6 +๏†† fa-moon; U+F186 +๏–ง fa-mortar-pestle; U+F5A7 +๏™ธ fa-mosque; U+F678 +๏ˆœ fa-motorcycle; U+F21C +๏›ผ fa-mountain; U+F6FC +๏‰… fa-mouse-pointer; U+F245 +๏žถ fa-mug-hot; U+F7B6 +๏€ fa-music; U+F001 +๏›ฟ fa-network-wired; U+F6FF +๏ˆฌ fa-neuter; U+F22C +๏‡ช fa-newspaper; U+F1EA +๏”พ fa-not-equal; U+F53E +๏’ fa-notes-medical; U+F481 +๏‰‡ fa-object-group; U+F247 +๏‰ˆ fa-object-ungroup; U+F248 +๏˜“ fa-oil-can; U+F613 +๏™น fa-om; U+F679 +๏œ€ fa-otter; U+F700 +๏€ป fa-outdent; U+F03B +๏‡ผ fa-paint-brush; U+F1FC +๏–ช fa-paint-roller; U+F5AA +๏”ฟ fa-palette; U+F53F +๏’‚ fa-pallet; U+F482 +๏‡˜ fa-paper-plane; U+F1D8 +๏ƒ† fa-paperclip; U+F0C6 +๏“ fa-parachute-box; U+F4CD +๏‡ fa-paragraph; U+F1DD +๏•€ fa-parking; U+F540 +๏–ซ fa-passport; U+F5AB +๏™ป fa-pastafarianism; U+F67B +๏ƒช fa-paste; U+F0EA +๏Œ fa-pause; U+F04C +๏Š‹ fa-pause-circle; U+F28B +๏†ฐ fa-paw; U+F1B0 +๏™ผ fa-peace; U+F67C +๏Œ„ fa-pen; U+F304 +๏Œ… fa-pen-alt; U+F305 +๏–ฌ fa-pen-fancy; U+F5AC +๏–ญ fa-pen-nib; U+F5AD +๏…‹ fa-pen-square; U+F14B +๏Œƒ fa-pencil-alt; U+F303 +๏–ฎ fa-pencil-ruler; U+F5AE +๏“Ž fa-people-carry; U+F4CE +๏Š• fa-percent; U+F295 +๏• fa-percentage; U+F541 +๏– fa-person-booth; U+F756 +๏‚• fa-phone; U+F095 +๏ fa-phone-slash; U+F3DD +๏‚˜ fa-phone-square; U+F098 +๏Š  fa-phone-volume; U+F2A0 +๏““ fa-piggy-bank; U+F4D3 +๏’„ fa-pills; U+F484 +๏™ฟ fa-place-of-worship; U+F67F +๏ฒ fa-plane; U+F072 +๏–ฏ fa-plane-arrival; U+F5AF +๏–ฐ fa-plane-departure; U+F5B0 +๏‹ fa-play; U+F04B +๏…„ fa-play-circle; U+F144 +๏‡ฆ fa-plug; U+F1E6 +๏ง fa-plus; U+F067 +๏• fa-plus-circle; U+F055 +๏ƒพ fa-plus-square; U+F0FE +๏‹Ž fa-podcast; U+F2CE +๏š fa-poll; U+F681 +๏š‚ fa-poll-h; U+F682 +๏‹พ fa-poo; U+F2FE +๏š fa-poo-storm; U+F75A +๏˜™ fa-poop; U+F619 +๏  fa-portrait; U+F3E0 +๏…” fa-pound-sign; U+F154 +๏€‘ fa-power-off; U+F011 +๏šƒ fa-pray; U+F683 +๏š„ fa-praying-hands; U+F684 +๏–ฑ fa-prescription; U+F5B1 +๏’… fa-prescription-bottle; U+F485 +๏’† fa-prescription-bottle-alt; U+F486 +๏€ฏ fa-print; U+F02F +๏’‡ fa-procedures; U+F487 +๏•‚ fa-project-diagram; U+F542 +๏„ฎ fa-puzzle-piece; U+F12E +๏€ฉ fa-qrcode; U+F029 +๏„จ fa-question; U+F128 +๏™ fa-question-circle; U+F059 +๏‘˜ fa-quidditch; U+F458 +๏„ fa-quote-left; U+F10D +๏„Ž fa-quote-right; U+F10E +๏š‡ fa-quran; U+F687 +๏žน fa-radiation; U+F7B9 +๏žบ fa-radiation-alt; U+F7BA +๏› fa-rainbow; U+F75B +๏ด fa-random; U+F074 +๏•ƒ fa-receipt; U+F543 +๏†ธ fa-recycle; U+F1B8 +๏€ž fa-redo; U+F01E +๏‹น fa-redo-alt; U+F2F9 +๏‰ fa-registered; U+F25D +๏ฅ fa-reply; U+F3E5 +๏„ข fa-reply-all; U+F122 +๏ž fa-republican; U+F75E +๏žฝ fa-restroom; U+F7BD +๏น fa-retweet; U+F079 +๏“– fa-ribbon; U+F4D6 +๏œ‹ fa-ring; U+F70B +๏€˜ fa-road; U+F018 +๏•„ fa-robot; U+F544 +๏„ต fa-rocket; U+F135 +๏“— fa-route; U+F4D7 +๏‚ž fa-rss; U+F09E +๏…ƒ fa-rss-square; U+F143 +๏…˜ fa-ruble-sign; U+F158 +๏•… fa-ruler; U+F545 +๏•† fa-ruler-combined; U+F546 +๏•‡ fa-ruler-horizontal; U+F547 +๏•ˆ fa-ruler-vertical; U+F548 +๏œŒ fa-running; U+F70C +๏…– fa-rupee-sign; U+F156 +๏–ณ fa-sad-cry; U+F5B3 +๏–ด fa-sad-tear; U+F5B4 +๏žฟ fa-satellite; U+F7BF +๏Ÿ€ fa-satellite-dish; U+F7C0 +๏ƒ‡ fa-save; U+F0C7 +๏•‰ fa-school; U+F549 +๏•Š fa-screwdriver; U+F54A +๏œŽ fa-scroll; U+F70E +๏Ÿ‚ fa-sd-card; U+F7C2 +๏€‚ fa-search; U+F002 +๏šˆ fa-search-dollar; U+F688 +๏š‰ fa-search-location; U+F689 +๏€ fa-search-minus; U+F010 +๏€Ž fa-search-plus; U+F00E +๏“˜ fa-seedling; U+F4D8 +๏ˆณ fa-server; U+F233 +๏˜Ÿ fa-shapes; U+F61F +๏ค fa-share; U+F064 +๏‡  fa-share-alt; U+F1E0 +๏‡ก fa-share-alt-square; U+F1E1 +๏… fa-share-square; U+F14D +๏ˆ‹ fa-shekel-sign; U+F20B +๏ญ fa-shield-alt; U+F3ED +๏ˆš fa-ship; U+F21A +๏’‹ fa-shipping-fast; U+F48B +๏•‹ fa-shoe-prints; U+F54B +๏А fa-shopping-bag; U+F290 +๏Š‘ fa-shopping-basket; U+F291 +๏บ fa-shopping-cart; U+F07A +๏‹Œ fa-shower; U+F2CC +๏–ถ fa-shuttle-van; U+F5B6 +๏“™ fa-sign; U+F4D9 +๏‹ถ fa-sign-in-alt; U+F2F6 +๏Šง fa-sign-language; U+F2A7 +๏‹ต fa-sign-out-alt; U+F2F5 +๏€’ fa-signal; U+F012 +๏–ท fa-signature; U+F5B7 +๏Ÿ„ fa-sim-card; U+F7C4 +๏ƒจ fa-sitemap; U+F0E8 +๏Ÿ… fa-skating; U+F7C5 +๏Ÿ‰ fa-skiing; U+F7C9 +๏ŸŠ fa-skiing-nordic; U+F7CA +๏•Œ fa-skull; U+F54C +๏œ” fa-skull-crossbones; U+F714 +๏œ• fa-slash; U+F715 +๏ŸŒ fa-sleigh; U+F7CC +๏‡ž fa-sliders-h; U+F1DE +๏„˜ fa-smile; U+F118 +๏–ธ fa-smile-beam; U+F5B8 +๏“š fa-smile-wink; U+F4DA +๏Ÿ fa-smog; U+F75F +๏’ fa-smoking; U+F48D +๏• fa-smoking-ban; U+F54D +๏Ÿ fa-sms; U+F7CD +๏ŸŽ fa-snowboarding; U+F7CE +๏‹œ fa-snowflake; U+F2DC +๏Ÿ fa-snowman; U+F7D0 +๏Ÿ’ fa-snowplow; U+F7D2 +๏š– fa-socks; U+F696 +๏–บ fa-solar-panel; U+F5BA +๏ƒœ fa-sort; U+F0DC +๏… fa-sort-alpha-down; U+F15D +๏…ž fa-sort-alpha-up; U+F15E +๏…  fa-sort-amount-down; U+F160 +๏…ก fa-sort-amount-up; U+F161 +๏ƒ fa-sort-down; U+F0DD +๏…ข fa-sort-numeric-down; U+F162 +๏…ฃ fa-sort-numeric-up; U+F163 +๏ƒž fa-sort-up; U+F0DE +๏–ป fa-spa; U+F5BB +๏†— fa-space-shuttle; U+F197 +๏œ— fa-spider; U+F717 +๏„ fa-spinner; U+F110 +๏–ผ fa-splotch; U+F5BC +๏–ฝ fa-spray-can; U+F5BD +๏ƒˆ fa-square; U+F0C8 +๏‘œ fa-square-full; U+F45C +๏š˜ fa-square-root-alt; U+F698 +๏–ฟ fa-stamp; U+F5BF +๏€… fa-star; U+F005 +๏š™ fa-star-and-crescent; U+F699 +๏‚‰ fa-star-half; U+F089 +๏—€ fa-star-half-alt; U+F5C0 +๏šš fa-star-of-david; U+F69A +๏˜ก fa-star-of-life; U+F621 +๏ˆ fa-step-backward; U+F048 +๏‘ fa-step-forward; U+F051 +๏ƒฑ fa-stethoscope; U+F0F1 +๏‰‰ fa-sticky-note; U+F249 +๏ fa-stop; U+F04D +๏Š fa-stop-circle; U+F28D +๏‹ฒ fa-stopwatch; U+F2F2 +๏•Ž fa-store; U+F54E +๏• fa-store-alt; U+F54F +๏• fa-stream; U+F550 +๏ˆ fa-street-view; U+F21D +๏ƒŒ fa-strikethrough; U+F0CC +๏•‘ fa-stroopwafel; U+F551 +๏„ฌ fa-subscript; U+F12C +๏ˆน fa-subway; U+F239 +๏ƒฒ fa-suitcase; U+F0F2 +๏— fa-suitcase-rolling; U+F5C1 +๏†… fa-sun; U+F185 +๏„ซ fa-superscript; U+F12B +๏—‚ fa-surprise; U+F5C2 +๏—ƒ fa-swatchbook; U+F5C3 +๏—„ fa-swimmer; U+F5C4 +๏—… fa-swimming-pool; U+F5C5 +๏š› fa-synagogue; U+F69B +๏€ก fa-sync; U+F021 +๏‹ฑ fa-sync-alt; U+F2F1 +๏’Ž fa-syringe; U+F48E +๏ƒŽ fa-table; U+F0CE +๏‘ fa-table-tennis; U+F45D +๏„Š fa-tablet; U+F10A +๏บ fa-tablet-alt; U+F3FA +๏’ fa-tablets; U+F490 +๏ฝ fa-tachometer-alt; U+F3FD +๏€ซ fa-tag; U+F02B +๏€ฌ fa-tags; U+F02C +๏“› fa-tape; U+F4DB +๏‚ฎ fa-tasks; U+F0AE +๏†บ fa-taxi; U+F1BA +๏˜ฎ fa-teeth; U+F62E +๏˜ฏ fa-teeth-open; U+F62F +๏ฉ fa-temperature-high; U+F769 +๏ซ fa-temperature-low; U+F76B +๏Ÿ— fa-tenge; U+F7D7 +๏„  fa-terminal; U+F120 +๏€ด fa-text-height; U+F034 +๏€ต fa-text-width; U+F035 +๏€Š fa-th; U+F00A +๏€‰ fa-th-large; U+F009 +๏€‹ fa-th-list; U+F00B +๏˜ฐ fa-theater-masks; U+F630 +๏’‘ fa-thermometer; U+F491 +๏‹‹ fa-thermometer-empty; U+F2CB +๏‹‡ fa-thermometer-full; U+F2C7 +๏‹‰ fa-thermometer-half; U+F2C9 +๏‹Š fa-thermometer-quarter; U+F2CA +๏‹ˆ fa-thermometer-three-quarters; U+F2C8 +๏…ฅ fa-thumbs-down; U+F165 +๏…ค fa-thumbs-up; U+F164 +๏‚ fa-thumbtack; U+F08D +๏ฟ fa-ticket-alt; U+F3FF +๏€ fa-times; U+F00D +๏— fa-times-circle; U+F057 +๏ƒ fa-tint; U+F043 +๏—‡ fa-tint-slash; U+F5C7 +๏—ˆ fa-tired; U+F5C8 +๏ˆ„ fa-toggle-off; U+F204 +๏ˆ… fa-toggle-on; U+F205 +๏Ÿ˜ fa-toilet; U+F7D8 +๏œž fa-toilet-paper; U+F71E +๏•’ fa-toolbox; U+F552 +๏Ÿ™ fa-tools; U+F7D9 +๏—‰ fa-tooth; U+F5C9 +๏š  fa-torah; U+F6A0 +๏šก fa-torii-gate; U+F6A1 +๏œข fa-tractor; U+F722 +๏‰œ fa-trademark; U+F25C +๏˜ท fa-traffic-light; U+F637 +๏ˆธ fa-train; U+F238 +๏Ÿš fa-tram; U+F7DA +๏ˆค fa-transgender; U+F224 +๏ˆฅ fa-transgender-alt; U+F225 +๏‡ธ fa-trash; U+F1F8 +๏‹ญ fa-trash-alt; U+F2ED +๏†ป fa-tree; U+F1BB +๏‚‘ fa-trophy; U+F091 +๏ƒ‘ fa-truck; U+F0D1 +๏“ž fa-truck-loading; U+F4DE +๏˜ป fa-truck-monster; U+F63B +๏“Ÿ fa-truck-moving; U+F4DF +๏˜ผ fa-truck-pickup; U+F63C +๏•“ fa-tshirt; U+F553 +๏‡ค fa-tty; U+F1E4 +๏‰ฌ fa-tv; U+F26C +๏ƒฉ fa-umbrella; U+F0E9 +๏—Š fa-umbrella-beach; U+F5CA +๏ƒ fa-underline; U+F0CD +๏ƒข fa-undo; U+F0E2 +๏‹ช fa-undo-alt; U+F2EA +๏Šš fa-universal-access; U+F29A +๏†œ fa-university; U+F19C +๏„ง fa-unlink; U+F127 +๏‚œ fa-unlock; U+F09C +๏„พ fa-unlock-alt; U+F13E +๏‚“ fa-upload; U+F093 +๏€‡ fa-user; U+F007 +๏† fa-user-alt; U+F406 +๏“บ fa-user-alt-slash; U+F4FA +๏“ป fa-user-astronaut; U+F4FB +๏“ผ fa-user-check; U+F4FC +๏Šฝ fa-user-circle; U+F2BD +๏“ฝ fa-user-clock; U+F4FD +๏“พ fa-user-cog; U+F4FE +๏“ฟ fa-user-edit; U+F4FF +๏”€ fa-user-friends; U+F500 +๏” fa-user-graduate; U+F501 +๏œจ fa-user-injured; U+F728 +๏”‚ fa-user-lock; U+F502 +๏ƒฐ fa-user-md; U+F0F0 +๏”ƒ fa-user-minus; U+F503 +๏”„ fa-user-ninja; U+F504 +๏ˆด fa-user-plus; U+F234 +๏ˆ› fa-user-secret; U+F21B +๏”… fa-user-shield; U+F505 +๏”† fa-user-slash; U+F506 +๏”‡ fa-user-tag; U+F507 +๏”ˆ fa-user-tie; U+F508 +๏ˆต fa-user-times; U+F235 +๏ƒ€ fa-users; U+F0C0 +๏”‰ fa-users-cog; U+F509 +๏‹ฅ fa-utensil-spoon; U+F2E5 +๏‹ง fa-utensils; U+F2E7 +๏—‹ fa-vector-square; U+F5CB +๏ˆก fa-venus; U+F221 +๏ˆฆ fa-venus-double; U+F226 +๏ˆจ fa-venus-mars; U+F228 +๏’’ fa-vial; U+F492 +๏’“ fa-vials; U+F493 +๏€ฝ fa-video; U+F03D +๏“ข fa-video-slash; U+F4E2 +๏šง fa-vihara; U+F6A7 +๏‘Ÿ fa-volleyball-ball; U+F45F +๏€ง fa-volume-down; U+F027 +๏šฉ fa-volume-mute; U+F6A9 +๏€ฆ fa-volume-off; U+F026 +๏€จ fa-volume-up; U+F028 +๏ฒ fa-vote-yea; U+F772 +๏œฉ fa-vr-cardboard; U+F729 +๏•” fa-walking; U+F554 +๏•• fa-wallet; U+F555 +๏’” fa-warehouse; U+F494 +๏ณ fa-water; U+F773 +๏’– fa-weight; U+F496 +๏— fa-weight-hanging; U+F5CD +๏†“ fa-wheelchair; U+F193 +๏‡ซ fa-wifi; U+F1EB +๏œฎ fa-wind; U+F72E +๏ fa-window-close; U+F410 +๏‹ fa-window-maximize; U+F2D0 +๏‹‘ fa-window-minimize; U+F2D1 +๏‹’ fa-window-restore; U+F2D2 +๏œฏ fa-wine-bottle; U+F72F +๏“ฃ fa-wine-glass; U+F4E3 +๏—Ž fa-wine-glass-alt; U+F5CE +๏…™ fa-won-sign; U+F159 +๏‚ญ fa-wrench; U+F0AD +๏’— fa-x-ray; U+F497 +๏…— fa-yen-sign; U+F157 +๏šญ fa-yin-yang; U+F6AD +๏Šน fa-address-book; U+F2B9 +๏Šป fa-address-card; U+F2BB +๏•– fa-angry; U+F556 +๏˜ fa-arrow-alt-circle-down; U+F358 +๏™ fa-arrow-alt-circle-left; U+F359 +๏š fa-arrow-alt-circle-right; U+F35A +๏› fa-arrow-alt-circle-up; U+F35B +๏ƒณ fa-bell; U+F0F3 +๏‡ถ fa-bell-slash; U+F1F6 +๏€ฎ fa-bookmark; U+F02E +๏†ญ fa-building; U+F1AD +๏„ณ fa-calendar; U+F133 +๏ณ fa-calendar-alt; U+F073 +๏‰ด fa-calendar-check; U+F274 +๏‰ฒ fa-calendar-minus; U+F272 +๏‰ฑ fa-calendar-plus; U+F271 +๏‰ณ fa-calendar-times; U+F273 +๏… fa-caret-square-down; U+F150 +๏†‘ fa-caret-square-left; U+F191 +๏…’ fa-caret-square-right; U+F152 +๏…‘ fa-caret-square-up; U+F151 +๏‚€ fa-chart-bar; U+F080 +๏˜ fa-check-circle; U+F058 +๏…Š fa-check-square; U+F14A +๏„‘ fa-circle; U+F111 +๏Œจ fa-clipboard; U+F328 +๏€— fa-clock; U+F017 +๏‰ fa-clone; U+F24D +๏ˆŠ fa-closed-captioning; U+F20A +๏ต fa-comment; U+F075 +๏‰บ fa-comment-alt; U+F27A +๏’ญ fa-comment-dots; U+F4AD +๏‚† fa-comments; U+F086 +๏…Ž fa-compass; U+F14E +๏ƒ… fa-copy; U+F0C5 +๏‡น fa-copyright; U+F1F9 +๏‚ fa-credit-card; U+F09D +๏•ง fa-dizzy; U+F567 +๏†’ fa-dot-circle; U+F192 +๏„ fa-edit; U+F044 +๏ƒ  fa-envelope; U+F0E0 +๏Šถ fa-envelope-open; U+F2B6 +๏ฎ fa-eye; U+F06E +๏ฐ fa-eye-slash; U+F070 +๏…› fa-file; U+F15B +๏…œ fa-file-alt; U+F15C +๏‡† fa-file-archive; U+F1C6 +๏‡‡ fa-file-audio; U+F1C7 +๏‡‰ fa-file-code; U+F1C9 +๏‡ƒ fa-file-excel; U+F1C3 +๏‡… fa-file-image; U+F1C5 +๏‡ fa-file-pdf; U+F1C1 +๏‡„ fa-file-powerpoint; U+F1C4 +๏‡ˆ fa-file-video; U+F1C8 +๏‡‚ fa-file-word; U+F1C2 +๏€ค fa-flag; U+F024 +๏•น fa-flushed; U+F579 +๏ป fa-folder; U+F07B +๏ผ fa-folder-open; U+F07C +๏“ฆ fa-font-awesome-logo-full; U+F4E6 +๏„™ fa-frown; U+F119 +๏•บ fa-frown-open; U+F57A +๏‡ฃ fa-futbol; U+F1E3 +๏Žฅ fa-gem; U+F3A5 +๏•ฟ fa-grimace; U+F57F +๏–€ fa-grin; U+F580 +๏– fa-grin-alt; U+F581 +๏–‚ fa-grin-beam; U+F582 +๏–ƒ fa-grin-beam-sweat; U+F583 +๏–„ fa-grin-hearts; U+F584 +๏–… fa-grin-squint; U+F585 +๏–† fa-grin-squint-tears; U+F586 +๏–‡ fa-grin-stars; U+F587 +๏–ˆ fa-grin-tears; U+F588 +๏–‰ fa-grin-tongue; U+F589 +๏–Š fa-grin-tongue-squint; U+F58A +๏–‹ fa-grin-tongue-wink; U+F58B +๏–Œ fa-grin-wink; U+F58C +๏‰˜ fa-hand-lizard; U+F258 +๏‰– fa-hand-paper; U+F256 +๏‰› fa-hand-peace; U+F25B +๏‚ง fa-hand-point-down; U+F0A7 +๏‚ฅ fa-hand-point-left; U+F0A5 +๏‚ค fa-hand-point-right; U+F0A4 +๏‚ฆ fa-hand-point-up; U+F0A6 +๏‰š fa-hand-pointer; U+F25A +๏‰• fa-hand-rock; U+F255 +๏‰— fa-hand-scissors; U+F257 +๏‰™ fa-hand-spock; U+F259 +๏Šต fa-handshake; U+F2B5 +๏‚  fa-hdd; U+F0A0 +๏€„ fa-heart; U+F004 +๏ƒธ fa-hospital; U+F0F8 +๏‰” fa-hourglass; U+F254 +๏‹ fa-id-badge; U+F2C1 +๏‹‚ fa-id-card; U+F2C2 +๏€พ fa-image; U+F03E +๏Œ‚ fa-images; U+F302 +๏„œ fa-keyboard; U+F11C +๏–– fa-kiss; U+F596 +๏–— fa-kiss-beam; U+F597 +๏–˜ fa-kiss-wink-heart; U+F598 +๏–™ fa-laugh; U+F599 +๏–š fa-laugh-beam; U+F59A +๏–› fa-laugh-squint; U+F59B +๏–œ fa-laugh-wink; U+F59C +๏‚” fa-lemon; U+F094 +๏‡ fa-life-ring; U+F1CD +๏ƒซ fa-lightbulb; U+F0EB +๏€ข fa-list-alt; U+F022 +๏‰น fa-map; U+F279 +๏„š fa-meh; U+F11A +๏–ค fa-meh-blank; U+F5A4 +๏–ฅ fa-meh-rolling-eyes; U+F5A5 +๏…† fa-minus-square; U+F146 +๏‘ fa-money-bill-alt; U+F3D1 +๏†† fa-moon; U+F186 +๏‡ช fa-newspaper; U+F1EA +๏‰‡ fa-object-group; U+F247 +๏‰ˆ fa-object-ungroup; U+F248 +๏‡˜ fa-paper-plane; U+F1D8 +๏Š‹ fa-pause-circle; U+F28B +๏…„ fa-play-circle; U+F144 +๏ƒพ fa-plus-square; U+F0FE +๏™ fa-question-circle; U+F059 +๏‰ fa-registered; U+F25D +๏–ณ fa-sad-cry; U+F5B3 +๏–ด fa-sad-tear; U+F5B4 +๏ƒ‡ fa-save; U+F0C7 +๏… fa-share-square; U+F14D +๏„˜ fa-smile; U+F118 +๏–ธ fa-smile-beam; U+F5B8 +๏“š fa-smile-wink; U+F4DA +๏‹œ fa-snowflake; U+F2DC +๏ƒˆ fa-square; U+F0C8 +๏€… fa-star; U+F005 +๏‚‰ fa-star-half; U+F089 +๏‰‰ fa-sticky-note; U+F249 +๏Š fa-stop-circle; U+F28D +๏†… fa-sun; U+F185 +๏—‚ fa-surprise; U+F5C2 +๏…ฅ fa-thumbs-down; U+F165 +๏…ค fa-thumbs-up; U+F164 +๏— fa-times-circle; U+F057 +๏—ˆ fa-tired; U+F5C8 +๏‹ญ fa-trash-alt; U+F2ED +๏€‡ fa-user; U+F007 +๏Šฝ fa-user-circle; U+F2BD +๏ fa-window-close; U+F410 +๏‹ fa-window-maximize; U+F2D0 +๏‹‘ fa-window-minimize; U+F2D1 +๏‹’ fa-window-restore; U+F2D2 +๏‰ฎ fa-500px; U+F26E +๏จ fa-accessible-icon; U+F368 +๏ฉ fa-accusoft; U+F369 +๏šฏ fa-acquisitions-incorporated; U+F6AF +๏…ฐ fa-adn; U+F170 +๏ธ fa-adobe; U+F778 +๏ช fa-adversal; U+F36A +๏ซ fa-affiliatetheme; U+F36B +๏ฌ fa-algolia; U+F36C +๏™‚ fa-alipay; U+F642 +๏‰ฐ fa-amazon; U+F270 +๏ฌ fa-amazon-pay; U+F42C +๏ญ fa-amilia; U+F36D +๏…ป fa-android; U+F17B +๏ˆ‰ fa-angellist; U+F209 +๏ฎ fa-angrycreative; U+F36E +๏  fa-angular; U+F420 +๏ฏ fa-app-store; U+F36F +๏ฐ fa-app-store-ios; U+F370 +๏ฑ fa-apper; U+F371 +๏…น fa-apple; U+F179 +๏• fa-apple-pay; U+F415 +๏บ fa-artstation; U+F77A +๏ฒ fa-asymmetrik; U+F372 +๏ป fa-atlassian; U+F77B +๏ณ fa-audible; U+F373 +๏œ fa-autoprefixer; U+F41C +๏ด fa-avianex; U+F374 +๏ก fa-aviato; U+F421 +๏ต fa-aws; U+F375 +๏‹• fa-bandcamp; U+F2D5 +๏†ด fa-behance; U+F1B4 +๏†ต fa-behance-square; U+F1B5 +๏ธ fa-bimobject; U+F378 +๏…ฑ fa-bitbucket; U+F171 +๏น fa-bitcoin; U+F379 +๏บ fa-bity; U+F37A +๏‰พ fa-black-tie; U+F27E +๏ป fa-blackberry; U+F37B +๏ผ fa-blogger; U+F37C +๏ฝ fa-blogger-b; U+F37D +๏Š“ fa-bluetooth; U+F293 +๏Š” fa-bluetooth-b; U+F294 +๏…š fa-btc; U+F15A +๏ฟ fa-buromobelexperte; U+F37F +๏ˆ fa-buysellads; U+F20D +๏ž… fa-canadian-maple-leaf; U+F785 +๏ญ fa-cc-amazon-pay; U+F42D +๏‡ณ fa-cc-amex; U+F1F3 +๏– fa-cc-apple-pay; U+F416 +๏‰Œ fa-cc-diners-club; U+F24C +๏‡ฒ fa-cc-discover; U+F1F2 +๏‰‹ fa-cc-jcb; U+F24B +๏‡ฑ fa-cc-mastercard; U+F1F1 +๏‡ด fa-cc-paypal; U+F1F4 +๏‡ต fa-cc-stripe; U+F1F5 +๏‡ฐ fa-cc-visa; U+F1F0 +๏Ž€ fa-centercode; U+F380 +๏ž‰ fa-centos; U+F789 +๏‰จ fa-chrome; U+F268 +๏Žƒ fa-cloudscale; U+F383 +๏Ž„ fa-cloudsmith; U+F384 +๏Ž… fa-cloudversify; U+F385 +๏‡‹ fa-codepen; U+F1CB +๏Š„ fa-codiepie; U+F284 +๏ž fa-confluence; U+F78D +๏ˆŽ fa-connectdevelop; U+F20E +๏‰ญ fa-contao; U+F26D +๏Žˆ fa-cpanel; U+F388 +๏‰ž fa-creative-commons; U+F25E +๏“ง fa-creative-commons-by; U+F4E7 +๏“จ fa-creative-commons-nc; U+F4E8 +๏“ฉ fa-creative-commons-nc-eu; U+F4E9 +๏“ช fa-creative-commons-nc-jp; U+F4EA +๏“ซ fa-creative-commons-nd; U+F4EB +๏“ฌ fa-creative-commons-pd; U+F4EC +๏“ญ fa-creative-commons-pd-alt; U+F4ED +๏“ฎ fa-creative-commons-remix; U+F4EE +๏“ฏ fa-creative-commons-sa; U+F4EF +๏“ฐ fa-creative-commons-sampling; U+F4F0 +๏“ฑ fa-creative-commons-sampling-plus; U+F4F1 +๏“ฒ fa-creative-commons-share; U+F4F2 +๏“ณ fa-creative-commons-zero; U+F4F3 +๏›‰ fa-critical-role; U+F6C9 +๏„ผ fa-css3; U+F13C +๏Ž‹ fa-css3-alt; U+F38B +๏ŽŒ fa-cuttlefish; U+F38C +๏Ž fa-d-and-d; U+F38D +๏›Š fa-d-and-d-beyond; U+F6CA +๏ˆ fa-dashcube; U+F210 +๏†ฅ fa-delicious; U+F1A5 +๏ŽŽ fa-deploydog; U+F38E +๏Ž fa-deskpro; U+F38F +๏›Œ fa-dev; U+F6CC +๏†ฝ fa-deviantart; U+F1BD +๏ž fa-dhl; U+F790 +๏ž‘ fa-diaspora; U+F791 +๏†ฆ fa-digg; U+F1A6 +๏Ž‘ fa-digital-ocean; U+F391 +๏Ž’ fa-discord; U+F392 +๏Ž“ fa-discourse; U+F393 +๏Ž” fa-dochub; U+F394 +๏Ž• fa-docker; U+F395 +๏Ž– fa-draft2digital; U+F396 +๏…ฝ fa-dribbble; U+F17D +๏Ž— fa-dribbble-square; U+F397 +๏…ซ fa-dropbox; U+F16B +๏†ฉ fa-drupal; U+F1A9 +๏Ž™ fa-dyalog; U+F399 +๏Žš fa-earlybirds; U+F39A +๏“ด fa-ebay; U+F4F4 +๏Š‚ fa-edge; U+F282 +๏ฐ fa-elementor; U+F430 +๏—ฑ fa-ello; U+F5F1 +๏ฃ fa-ember; U+F423 +๏‡‘ fa-empire; U+F1D1 +๏Š™ fa-envira; U+F299 +๏Ž fa-erlang; U+F39D +๏ฎ fa-ethereum; U+F42E +๏‹— fa-etsy; U+F2D7 +๏ˆพ fa-expeditedssl; U+F23E +๏‚š fa-facebook; U+F09A +๏Žž fa-facebook-f; U+F39E +๏ŽŸ fa-facebook-messenger; U+F39F +๏‚‚ fa-facebook-square; U+F082 +๏›œ fa-fantasy-flight-games; U+F6DC +๏ž— fa-fedex; U+F797 +๏ž˜ fa-fedora; U+F798 +๏ž™ fa-figma; U+F799 +๏‰ฉ fa-firefox; U+F269 +๏Šฐ fa-first-order; U+F2B0 +๏”Š fa-first-order-alt; U+F50A +๏Žก fa-firstdraft; U+F3A1 +๏…ฎ fa-flickr; U+F16E +๏‘ fa-flipboard; U+F44D +๏— fa-fly; U+F417 +๏Šด fa-font-awesome; U+F2B4 +๏œ fa-font-awesome-alt; U+F35C +๏ฅ fa-font-awesome-flag; U+F425 +๏“ฆ fa-font-awesome-logo-full; U+F4E6 +๏Š€ fa-fonticons; U+F280 +๏Žข fa-fonticons-fi; U+F3A2 +๏І fa-fort-awesome; U+F286 +๏Žฃ fa-fort-awesome-alt; U+F3A3 +๏ˆ‘ fa-forumbee; U+F211 +๏†€ fa-foursquare; U+F180 +๏‹… fa-free-code-camp; U+F2C5 +๏Žค fa-freebsd; U+F3A4 +๏”‹ fa-fulcrum; U+F50B +๏”Œ fa-galactic-republic; U+F50C +๏” fa-galactic-senate; U+F50D +๏‰ฅ fa-get-pocket; U+F265 +๏‰  fa-gg; U+F260 +๏‰ก fa-gg-circle; U+F261 +๏‡“ fa-git; U+F1D3 +๏‡’ fa-git-square; U+F1D2 +๏‚› fa-github; U+F09B +๏„“ fa-github-alt; U+F113 +๏‚’ fa-github-square; U+F092 +๏Žฆ fa-gitkraken; U+F3A6 +๏Š– fa-gitlab; U+F296 +๏ฆ fa-gitter; U+F426 +๏Šฅ fa-glide; U+F2A5 +๏Šฆ fa-glide-g; U+F2A6 +๏Žง fa-gofore; U+F3A7 +๏Žจ fa-goodreads; U+F3A8 +๏Žฉ fa-goodreads-g; U+F3A9 +๏†  fa-google; U+F1A0 +๏Žช fa-google-drive; U+F3AA +๏Žซ fa-google-play; U+F3AB +๏Šณ fa-google-plus; U+F2B3 +๏ƒ• fa-google-plus-g; U+F0D5 +๏ƒ” fa-google-plus-square; U+F0D4 +๏‡ฎ fa-google-wallet; U+F1EE +๏†„ fa-gratipay; U+F184 +๏‹– fa-grav; U+F2D6 +๏Žฌ fa-gripfire; U+F3AC +๏Žญ fa-grunt; U+F3AD +๏Žฎ fa-gulp; U+F3AE +๏‡” fa-hacker-news; U+F1D4 +๏Žฏ fa-hacker-news-square; U+F3AF +๏—ท fa-hackerrank; U+F5F7 +๏‘’ fa-hips; U+F452 +๏Žฐ fa-hire-a-helper; U+F3B0 +๏ง fa-hooli; U+F427 +๏–’ fa-hornbill; U+F592 +๏Žฑ fa-hotjar; U+F3B1 +๏‰ผ fa-houzz; U+F27C +๏„ป fa-html5; U+F13B +๏Žฒ fa-hubspot; U+F3B2 +๏‹˜ fa-imdb; U+F2D8 +๏…ญ fa-instagram; U+F16D +๏žฏ fa-intercom; U+F7AF +๏‰ซ fa-internet-explorer; U+F26B +๏žฐ fa-invision; U+F7B0 +๏ˆˆ fa-ioxhost; U+F208 +๏Žด fa-itunes; U+F3B4 +๏Žต fa-itunes-note; U+F3B5 +๏“ค fa-java; U+F4E4 +๏”Ž fa-jedi-order; U+F50E +๏Žถ fa-jenkins; U+F3B6 +๏žฑ fa-jira; U+F7B1 +๏Žท fa-joget; U+F3B7 +๏†ช fa-joomla; U+F1AA +๏Žธ fa-js; U+F3B8 +๏Žน fa-js-square; U+F3B9 +๏‡Œ fa-jsfiddle; U+F1CC +๏—บ fa-kaggle; U+F5FA +๏“ต fa-keybase; U+F4F5 +๏Žบ fa-keycdn; U+F3BA +๏Žป fa-kickstarter; U+F3BB +๏Žผ fa-kickstarter-k; U+F3BC +๏ฏ fa-korvue; U+F42F +๏Žฝ fa-laravel; U+F3BD +๏ˆ‚ fa-lastfm; U+F202 +๏ˆƒ fa-lastfm-square; U+F203 +๏ˆ’ fa-leanpub; U+F212 +๏ fa-less; U+F41D +๏€ fa-line; U+F3C0 +๏‚Œ fa-linkedin; U+F08C +๏ƒก fa-linkedin-in; U+F0E1 +๏Šธ fa-linode; U+F2B8 +๏…ผ fa-linux; U+F17C +๏ƒ fa-lyft; U+F3C3 +๏„ fa-magento; U+F3C4 +๏–ž fa-mailchimp; U+F59E +๏” fa-mandalorian; U+F50F +๏˜ fa-markdown; U+F60F +๏“ถ fa-mastodon; U+F4F6 +๏„ถ fa-maxcdn; U+F136 +๏† fa-medapps; U+F3C6 +๏ˆบ fa-medium; U+F23A +๏‡ fa-medium-m; U+F3C7 +๏ˆ fa-medrt; U+F3C8 +๏‹  fa-meetup; U+F2E0 +๏–ฃ fa-megaport; U+F5A3 +๏žณ fa-mendeley; U+F7B3 +๏Š fa-microsoft; U+F3CA +๏‹ fa-mix; U+F3CB +๏Љ fa-mixcloud; U+F289 +๏Œ fa-mizuni; U+F3CC +๏Š… fa-modx; U+F285 +๏ fa-monero; U+F3D0 +๏’ fa-napster; U+F3D2 +๏˜’ fa-neos; U+F612 +๏–จ fa-nimblr; U+F5A8 +๏˜ fa-nintendo-switch; U+F418 +๏™ fa-node; U+F419 +๏“ fa-node-js; U+F3D3 +๏” fa-npm; U+F3D4 +๏• fa-ns8; U+F3D5 +๏– fa-nutritionix; U+F3D6 +๏‰ฃ fa-odnoklassniki; U+F263 +๏‰ค fa-odnoklassniki-square; U+F264 +๏” fa-old-republic; U+F510 +๏ˆฝ fa-opencart; U+F23D +๏†› fa-openid; U+F19B +๏‰ช fa-opera; U+F26A +๏ˆผ fa-optin-monster; U+F23C +๏š fa-osi; U+F41A +๏— fa-page4; U+F3D7 +๏†Œ fa-pagelines; U+F18C +๏˜ fa-palfed; U+F3D8 +๏™ fa-patreon; U+F3D9 +๏‡ญ fa-paypal; U+F1ED +๏œ„ fa-penny-arcade; U+F704 +๏š fa-periscope; U+F3DA +๏› fa-phabricator; U+F3DB +๏œ fa-phoenix-framework; U+F3DC +๏”‘ fa-phoenix-squadron; U+F511 +๏‘— fa-php; U+F457 +๏Šฎ fa-pied-piper; U+F2AE +๏†จ fa-pied-piper-alt; U+F1A8 +๏“ฅ fa-pied-piper-hat; U+F4E5 +๏†ง fa-pied-piper-pp; U+F1A7 +๏ƒ’ fa-pinterest; U+F0D2 +๏ˆฑ fa-pinterest-p; U+F231 +๏ƒ“ fa-pinterest-square; U+F0D3 +๏Ÿ fa-playstation; U+F3DF +๏Šˆ fa-product-hunt; U+F288 +๏ก fa-pushed; U+F3E1 +๏ข fa-python; U+F3E2 +๏‡– fa-qq; U+F1D6 +๏‘™ fa-quinscape; U+F459 +๏‹„ fa-quora; U+F2C4 +๏“ท fa-r-project; U+F4F7 +๏žป fa-raspberry-pi; U+F7BB +๏‹™ fa-ravelry; U+F2D9 +๏› fa-react; U+F41B +๏ fa-reacteurope; U+F75D +๏“• fa-readme; U+F4D5 +๏‡ fa-rebel; U+F1D0 +๏ฃ fa-red-river; U+F3E3 +๏†ก fa-reddit; U+F1A1 +๏Ё fa-reddit-alien; U+F281 +๏†ข fa-reddit-square; U+F1A2 +๏žผ fa-redhat; U+F7BC +๏†‹ fa-renren; U+F18B +๏ฆ fa-replyd; U+F3E6 +๏“ธ fa-researchgate; U+F4F8 +๏ง fa-resolving; U+F3E7 +๏–ฒ fa-rev; U+F5B2 +๏จ fa-rocketchat; U+F3E8 +๏ฉ fa-rockrms; U+F3E9 +๏‰ง fa-safari; U+F267 +๏ž fa-sass; U+F41E +๏ช fa-schlix; U+F3EA +๏ŠŠ fa-scribd; U+F28A +๏ซ fa-searchengin; U+F3EB +๏‹š fa-sellcast; U+F2DA +๏ˆ“ fa-sellsy; U+F213 +๏ฌ fa-servicestack; U+F3EC +๏ˆ” fa-shirtsinbulk; U+F214 +๏–ต fa-shopware; U+F5B5 +๏ˆ• fa-simplybuilt; U+F215 +๏ฎ fa-sistrix; U+F3EE +๏”’ fa-sith; U+F512 +๏Ÿ† fa-sketch; U+F7C6 +๏ˆ– fa-skyatlas; U+F216 +๏…พ fa-skype; U+F17E +๏†˜ fa-slack; U+F198 +๏ฏ fa-slack-hash; U+F3EF +๏‡ง fa-slideshare; U+F1E7 +๏Šซ fa-snapchat; U+F2AB +๏Šฌ fa-snapchat-ghost; U+F2AC +๏Šญ fa-snapchat-square; U+F2AD +๏†พ fa-soundcloud; U+F1BE +๏Ÿ“ fa-sourcetree; U+F7D3 +๏ณ fa-speakap; U+F3F3 +๏†ผ fa-spotify; U+F1BC +๏–พ fa-squarespace; U+F5BE +๏† fa-stack-exchange; U+F18D +๏…ฌ fa-stack-overflow; U+F16C +๏ต fa-staylinked; U+F3F5 +๏†ถ fa-steam; U+F1B6 +๏†ท fa-steam-square; U+F1B7 +๏ถ fa-steam-symbol; U+F3F6 +๏ท fa-sticker-mule; U+F3F7 +๏จ fa-strava; U+F428 +๏ฉ fa-stripe; U+F429 +๏ช fa-stripe-s; U+F42A +๏ธ fa-studiovinari; U+F3F8 +๏†ค fa-stumbleupon; U+F1A4 +๏†ฃ fa-stumbleupon-circle; U+F1A3 +๏‹ fa-superpowers; U+F2DD +๏น fa-supple; U+F3F9 +๏Ÿ– fa-suse; U+F7D6 +๏“น fa-teamspeak; U+F4F9 +๏‹† fa-telegram; U+F2C6 +๏พ fa-telegram-plane; U+F3FE +๏‡• fa-tencent-weibo; U+F1D5 +๏š fa-the-red-yeti; U+F69D +๏—† fa-themeco; U+F5C6 +๏Šฒ fa-themeisle; U+F2B2 +๏œฑ fa-think-peaks; U+F731 +๏”“ fa-trade-federation; U+F513 +๏† fa-trello; U+F181 +๏‰ข fa-tripadvisor; U+F262 +๏…ณ fa-tumblr; U+F173 +๏…ด fa-tumblr-square; U+F174 +๏‡จ fa-twitch; U+F1E8 +๏‚™ fa-twitter; U+F099 +๏‚ fa-twitter-square; U+F081 +๏ซ fa-typo3; U+F42B +๏‚ fa-uber; U+F402 +๏ŸŸ fa-ubuntu; U+F7DF +๏ƒ fa-uikit; U+F403 +๏„ fa-uniregistry; U+F404 +๏… fa-untappd; U+F405 +๏Ÿ  fa-ups; U+F7E0 +๏Ї fa-usb; U+F287 +๏Ÿก fa-usps; U+F7E1 +๏‡ fa-ussunnah; U+F407 +๏ˆ fa-vaadin; U+F408 +๏ˆท fa-viacoin; U+F237 +๏Šฉ fa-viadeo; U+F2A9 +๏Šช fa-viadeo-square; U+F2AA +๏‰ fa-viber; U+F409 +๏Š fa-vimeo; U+F40A +๏†” fa-vimeo-square; U+F194 +๏‰ฝ fa-vimeo-v; U+F27D +๏‡Š fa-vine; U+F1CA +๏†‰ fa-vk; U+F189 +๏‹ fa-vnv; U+F40B +๏Ÿ fa-vuejs; U+F41F +๏—Œ fa-weebly; U+F5CC +๏†Š fa-weibo; U+F18A +๏‡— fa-weixin; U+F1D7 +๏ˆฒ fa-whatsapp; U+F232 +๏Œ fa-whatsapp-square; U+F40C +๏ fa-whmcs; U+F40D +๏‰ฆ fa-wikipedia-w; U+F266 +๏…บ fa-windows; U+F17A +๏— fa-wix; U+F5CF +๏œฐ fa-wizards-of-the-coast; U+F730 +๏”” fa-wolf-pack-battalion; U+F514 +๏†š fa-wordpress; U+F19A +๏‘ fa-wordpress-simple; U+F411 +๏Š— fa-wpbeginner; U+F297 +๏‹ž fa-wpexplorer; U+F2DE +๏Š˜ fa-wpforms; U+F298 +๏ค fa-wpressr; U+F3E4 +๏’ fa-xbox; U+F412 +๏…จ fa-xing; U+F168 +๏…ฉ fa-xing-square; U+F169 +๏ˆป fa-y-combinator; U+F23B +๏†ž fa-yahoo; U+F19E +๏“ fa-yandex; U+F413 +๏” fa-yandex-international; U+F414 +๏Ÿฃ fa-yarn; U+F7E3 +๏‡ฉ fa-yelp; U+F1E9 +๏Šฑ fa-yoast; U+F2B1 +๏…ง fa-youtube; U+F167 +๏ฑ fa-youtube-square; U+F431 +๏˜ฟ fa-zhihu; U+F63F diff --git a/.profile b/.profile new file mode 120000 index 0000000..8486fca --- /dev/null +++ b/.profile @@ -0,0 +1 @@ +.config/shell/profile \ No newline at end of file diff --git a/.xprofile b/.xprofile new file mode 120000 index 0000000..61f87a7 --- /dev/null +++ b/.xprofile @@ -0,0 +1 @@ +.config/x11/xprofile \ No newline at end of file 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