summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Chudnick <sam@chudnick.com>2021-11-06 20:25:45 -0400
committerSam Chudnick <sam@chudnick.com>2021-11-06 20:25:45 -0400
commit82df70eff06e7b44ee84283070d7f801f7fc1d92 (patch)
treed17ea9cc6e012b16ff0cdeffcf4a97b5e5cd2d11
initial commit
-rw-r--r--.config/calcurse/conf33
-rw-r--r--.config/calcurse/keys55
-rw-r--r--.config/cava/config19
-rw-r--r--.config/cmus/rc89
-rw-r--r--.config/dunst/dunstrc69
-rw-r--r--.config/firejail/steam.profile95
-rw-r--r--.config/gtk-2.0/gtkrc-2.04
-rw-r--r--.config/gtk-3.0/settings.ini4
-rw-r--r--.config/htop/htoprc39
-rw-r--r--.config/picom/picom.conf5
-rw-r--r--.config/ranger/rc.conf2
-rw-r--r--.config/shell/.bashrc27
-rw-r--r--.config/shell/aliasrc39
-rw-r--r--.config/shell/profile22
-rw-r--r--.config/shell/shortcutsrc27
-rw-r--r--.config/sxhkd/sxhkdrc89
-rw-r--r--.config/wget/wgetrc1
-rw-r--r--.config/x11/xinitrc24
-rw-r--r--.config/x11/xresources63
-rw-r--r--.config/zathura/zathurarc9
-rw-r--r--.config/zsh/.zprofile19
-rw-r--r--.config/zsh/.zshrc33
-rwxr-xr-x.local/bin/alarm17
-rwxr-xr-x.local/bin/backups/borg-offsite25
-rwxr-xr-x.local/bin/backups/borg-onsite25
-rwxr-xr-x.local/bin/bgscript4
-rwxr-xr-x.local/bin/cmus/toggle-mode14
-rwxr-xr-x.local/bin/cmus/toggle-shuf7
-rwxr-xr-x.local/bin/compile14
-rwxr-xr-x.local/bin/cryptusb/create-cryptusb34
-rwxr-xr-x.local/bin/cryptusb/handle-cryptusb8
-rwxr-xr-x.local/bin/cryptusb/mount-cryptusb5
-rwxr-xr-x.local/bin/cryptusb/sync-cryptusb6
-rwxr-xr-x.local/bin/cryptusb/umount-cryptusb5
-rwxr-xr-x.local/bin/dmenu/mount-device27
-rwxr-xr-x.local/bin/dmenu/unicode-select9
-rwxr-xr-x.local/bin/dmenu/unmount-device19
-rwxr-xr-x.local/bin/exiti34
-rwxr-xr-x.local/bin/ffmpeg-convert60
-rwxr-xr-x.local/bin/get-pkgs8
-rwxr-xr-x.local/bin/kbremaps7
-rwxr-xr-x.local/bin/kill-steam3
-rwxr-xr-x.local/bin/lock7
-rwxr-xr-x.local/bin/mount-media6
-rwxr-xr-x.local/bin/pdf-preview8
-rwxr-xr-x.local/bin/screenshot8
-rwxr-xr-x.local/bin/signal-vol4
-rwxr-xr-x.local/bin/statusbar/bar-calcurse15
-rwxr-xr-x.local/bin/statusbar/bar-cmus25
-rwxr-xr-x.local/bin/statusbar/bar-cpu7
-rwxr-xr-x.local/bin/statusbar/bar-gpu6
-rwxr-xr-x.local/bin/statusbar/bar-ipv49
-rwxr-xr-x.local/bin/statusbar/bar-memory8
-rwxr-xr-x.local/bin/statusbar/bar-storage7
-rwxr-xr-x.local/bin/statusbar/bar-time7
-rwxr-xr-x.local/bin/statusbar/bar-volume13
-rwxr-xr-x.local/bin/stop-alarm5
-rwxr-xr-x.local/bin/sync-music4
-rwxr-xr-x.local/bin/theme/get-gradient13
-rwxr-xr-x.local/bin/theme/gradient.py24
-rwxr-xr-x.local/bin/volctl12
-rwxr-xr-x.local/bin/who-depends13
-rwxr-xr-x.local/bin/windowshot9
-rwxr-xr-x.local/bin/yt-fix42
-rw-r--r--.local/share/unicode_list1326
-rw-r--r--.vim/vimrc104
l---------.zprofile1
67 files changed, 2751 insertions, 0 deletions
diff --git a/.config/calcurse/conf b/.config/calcurse/conf
new file mode 100644
index 0000000..b46b0a7
--- /dev/null
+++ b/.config/calcurse/conf
@@ -0,0 +1,33 @@
1appearance.calendarview=monthly
2appearance.compactpanels=no
3appearance.defaultpanel=calendar
4appearance.layout=5
5appearance.notifybar=yes
6appearance.sidebarwidth=2
7appearance.theme=blue on default
8appearance.todoview=hide-completed
9appearance.headingpos=right-justified
10daemon.enable=no
11daemon.log=no
12format.inputdate=1
13format.notifydate=%a %F
14format.notifytime=%T
15format.outputdate=%D
16format.dayheading=%B %-d, %Y
17general.autogc=no
18general.autosave=yes
19general.confirmdelete=yes
20general.confirmquit=no
21general.firstdayofweek=monday
22general.periodicsave=0
23general.systemdialogs=yes
24notification.command=printf '\a'
25notification.notifyall=flagged-only
26notification.warning=300
27appearance.headerline=yes
28appearance.eventseparator=yes
29appearance.dayseparator=yes
30appearance.emptyline=yes
31appearance.emptyday=--
32general.multipledays=yes
33general.systemevents=yes
diff --git a/.config/calcurse/keys b/.config/calcurse/keys
new file mode 100644
index 0000000..301d367
--- /dev/null
+++ b/.config/calcurse/keys
@@ -0,0 +1,55 @@
1#
2# Calcurse keys configuration file
3#
4# In this file the keybindings used by Calcurse are defined.
5# It is generated automatically by Calcurse and is maintained
6# via the key configuration menu of the interactive user
7# interface. It should not be edited directly.
8
9generic-cancel ESC
10generic-select SPC
11generic-credits @
12generic-help ?
13generic-quit q Q
14generic-save s S ^S
15generic-reload R
16generic-copy c
17generic-paste p ^V
18generic-change-view TAB
19generic-import i I
20generic-export x X
21generic-goto g G
22generic-other-cmd o O
23generic-config-menu C
24generic-redraw ^R
25generic-add-appt ^A
26generic-add-todo ^T
27generic-prev-day T ^H
28generic-next-day t ^L
29generic-prev-week W ^K
30generic-next-week w RET
31generic-prev-month M
32generic-next-month m
33generic-prev-year Y
34generic-next-year y
35generic-scroll-down ^N
36generic-scroll-up ^P
37generic-goto-today ^G
38generic-command :
39move-right l L RGT
40move-left h H LFT
41move-down j J DWN
42move-up k K UP
43start-of-week 0
44end-of-week $
45add-item a A
46del-item d D
47edit-item e E
48view-item v V
49pipe-item |
50flag-item !
51repeat r
52edit-note n N
53view-note >
54raise-priority +
55lower-priority -
diff --git a/.config/cava/config b/.config/cava/config
new file mode 100644
index 0000000..3082f55
--- /dev/null
+++ b/.config/cava/config
@@ -0,0 +1,19 @@
1[color]
2
3gradient = 1
4gradient_count = 8
5gradient_color_1 = '#5350b9'
6gradient_color_2 = '#6d47c2'
7gradient_color_3 = '#903ecb'
8gradient_color_4 = '#be35d4'
9gradient_color_5 = '#dd2cc5'
10gradient_color_6 = '#e62395'
11gradient_color_7 = '#ef1a5c'
12gradient_color_8 = '#f81118'
13
14
15[smoothing]
16
17integral = 75
18gravity = 85
19
diff --git a/.config/cmus/rc b/.config/cmus/rc
new file mode 100644
index 0000000..4ffe095
--- /dev/null
+++ b/.config/cmus/rc
@@ -0,0 +1,89 @@
1# Colorscheme "night"
2set color_cmdline_attr=default
3set color_cmdline_bg=default
4set color_cmdline_fg=255
5set color_cur_sel_attr=default
6set color_error=196
7set color_info=220
8set color_separator=green
9set color_statusline_attr=default
10set color_statusline_bg=234
11set color_statusline_fg=45
12set color_titleline_attr=default
13set color_titleline_bg=default
14set color_titleline_fg=46
15set color_trackwin_album_attr=bold
16set color_trackwin_album_bg=default
17set color_trackwin_album_fg=default
18set color_win_attr=default
19set color_win_bg=default
20set color_win_cur=46
21set color_win_cur_attr=default
22set color_win_cur_sel_attr=default
23set color_win_cur_sel_bg=235
24set color_win_cur_sel_fg=118
25set color_win_dir=250
26set color_win_fg=255
27set color_win_inactive_cur_sel_attr=default
28set color_win_inactive_cur_sel_bg=233
29set color_win_inactive_cur_sel_fg=46
30set color_win_inactive_sel_attr=default
31set color_win_inactive_sel_bg=234
32set color_win_inactive_sel_fg=green
33set color_win_sel_attr=default
34set color_win_sel_bg=235
35set color_win_sel_fg=45
36set color_win_title_attr=default
37set color_win_title_bg=234
38set color_win_title_fg=45
39
40# Settings
41set aaa_mode=all
42set auto_expand_albums_follow=false
43set auto_expand_albums_search=false
44set auto_expand_albums_selcur=false
45set auto_reshuffle=true
46set confirm_run=true
47set continue=true
48set continue_album=true
49set display_artist_sort_name=false
50set dsp.alsa.device=default
51set follow=true
52set lib_sort=album tracknumber title date
53set mixer.alsa.channel=Master
54set mixer.alsa.device=default
55set mixer.pulse.restore_volume=1
56set mouse=false
57set mpris=false
58set output_plugin=alsa
59set play_library=true
60set play_sorted=false
61set repeat=true
62set resume=true
63set set_term_title=true
64set show_all_tracks=true
65set show_current_bitrate=false
66set show_playback_position=true
67set show_remaining_time=false
68set shuffle=true
69set smart_artist_sort=true
70
71# Keybindings
72bind -f common [ vol -1% -1%
73bind -f common ] vol +1% +1%
74bind -f common D win-remove
75bind -f common h win-next
76bind -f common j win-down
77bind -f common k win-up
78bind -f common l win-next
79bind -f common n search-next
80bind -f common N search-prev
81bind -f common ^D win-page-down
82bind -f common ^U win-page-up
83bind -f common q quit
84bind -f common { vol -5% -5%
85bind -f common } vol +5% +5%
86bind -f common g win-top
87bind -f common G win-bottom
88bind -f common left seek -5
89bind -f common right seek +5
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..fda72f3
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,69 @@
1[global]
2 ### Display ###
3 monitor = 0
4 follow = none
5 geometry = "0x5-2+25"
6 indicate_hidden = yes
7 shrink = no
8 transparency = 10
9 notification_height = 0
10 separator_height = 2
11 padding = 8
12 horizontal_padding = 8
13 frame_width = 3
14 frame_color = "#666666"
15 separator_color = frame
16 sort = yes
17 idle_threshold = 120
18 font = Monospace 10
19 line_height = 0
20 markup = full
21 format = "<b>%s</b>\n%b"
22 alignment = left
23 show_age_threshold = 60
24 word_wrap = yes
25 ellipsize = middle
26 ignore_newline = no
27 stack_duplicates = false
28 hide_duplicate_count = false
29 show_indicators = yes
30
31 ### Icons ###
32 icon_position = off
33 max_icon_size = 32
34 sticky_history = yes
35 history_length = 20
36
37 ### Misc/Advanced ###
38 dmenu = /usr/bin/dmenu -p dunst:
39 browser = /usr/bin/firejail /usr/bin/firefox-esr -new-tab
40 always_run_script = true
41 title = Dunst
42 class = Dunst
43 startup_notification = false
44 force_xinerama = false
45
46[experimental]
47 per_monitor_dpi = false
48
49[shortcuts]
50 close = ctrl+space
51 close_all = ctrl+shift+space
52 history = ctrl+grave
53 context = ctrl+shift+period
54
55[urgency_low]
56 background = "#131313"
57 foreground = "#d6dbe5"
58 timeout = 10
59
60[urgency_normal]
61 background = "#131313"
62 foreground = "#d6dbe5"
63 timeout = 10
64
65[urgency_critical]
66 background = "#131313"
67 foreground = "#d6dbe5"
68 frame_color = "#5294e2"
69 timeout = 0
diff --git a/.config/firejail/steam.profile b/.config/firejail/steam.profile
new file mode 100644
index 0000000..b29c801
--- /dev/null
+++ b/.config/firejail/steam.profile
@@ -0,0 +1,95 @@
1# Firejail profile for steam
2# Description: Valve's Steam digital software delivery system
3# This file is overwritten after every install/update
4# Persistent local customizations
5include steam.local
6# Persistent global definitions
7include globals.local
8
9noblacklist ${HOME}/.local/share/aspyr-media
10noblacklist ${HOME}/.local/share/feral-interactive
11noblacklist ${HOME}/.local/share/Paradox Interactive
12noblacklist ${HOME}/.local/share/Steam
13noblacklist ${HOME}/.local/share/vulkan
14noblacklist ${HOME}/.paradoxinteractive
15noblacklist ${HOME}/.paradoxlauncher
16noblacklist ${HOME}/.steam
17noblacklist ${HOME}/.steampath
18noblacklist ${HOME}/.steampid
19# needed for STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 to work
20noblacklist /sbin
21noblacklist /usr/sbin
22
23# Allow java (blacklisted by disable-devel.inc)
24include allow-java.inc
25
26# Allow python (blacklisted by disable-interpreters.inc)
27include allow-python2.inc
28include allow-python3.inc
29
30include disable-common.inc
31include disable-devel.inc
32include disable-interpreters.inc
33include disable-passwdmgr.inc
34include disable-programs.inc
35
36mkdir ${HOME}/.local/share/aspyr-media
37mkdir ${HOME}/.local/share/feral-interactive
38mkdir ${HOME}/.local/share/Paradox Interactive
39mkdir ${HOME}/.local/share/Steam
40mkdir ${HOME}/.local/share/vulkan
41mkdir ${HOME}/.paradoxinteractive
42mkdir ${HOME}/.paradoxlauncher
43mkdir ${HOME}/.steam
44mkfile ${HOME}/.steampath
45mkfile ${HOME}/.steampid
46whitelist ${HOME}/.local/share/aspyr-media
47whitelist ${HOME}/.local/share/feral-interactive
48whitelist ${HOME}/.local/share/Paradox Interactive
49whitelist ${HOME}/.local/share/Steam
50whitelist ${HOME}/.local/share/vulkan
51whitelist ${HOME}/.paradoxinteractive
52whitelist ${HOME}/.paradoxlauncher
53whitelist ${HOME}/.steam
54whitelist ${HOME}/.steampath
55whitelist ${HOME}/.steampid
56include whitelist-common.inc
57include whitelist-var-common.inc
58
59caps.drop all
60#ipc-namespace
61netfilter
62nodvd
63# nVidia users may need to comment / ignore nogroups and noroot
64nogroups
65nonewprivs
66noroot
67notv
68nou2f
69# novideo should be commented for VR
70novideo
71net none
72#protocol unix,inet,inet6,netlink
73# seccomp sometimes causes issues (see #2951, #3267),
74# comment it or add 'ignore seccomp' to steam.local if so.
75# seccomp
76shell none
77# tracelog breaks integrated browser
78#tracelog
79
80# private-bin is disabled while in testing, but has been tested working with multiple games
81private-bin awk,basename,bash,bsdtar,bzip2,cat,chmod,cksum,cmp,comm,compress,cp,curl,cut,date,dbus-launch,dbus-send,desktop-file-edit,desktop-file-install,desktop-file-validate,dirname,echo,env,expr,file,find,getopt,grep,gtar,gzip,head,hostname,id,lbzip2,ldconfig,ldd,ln,ls,lsb_release,lsof,lspci,lz4,lzip,lzma,lzop,md5sum,mkdir,mktemp,mv,netstat,ps,pulseaudio,python*,readlink,realpath,rm,sed,sh,sha1sum,sha256sum,sha512sum,sleep,sort,steam,steamdeps,steam-native,steam-runtime,sum,tail,tar,tclsh,test,touch,tr,umask,uname,update-desktop-database,wc,wget,which,whoami,xterm,xz,zenity
82# extra programs are available which might be needed for select games
83#private-bin java,java-config,mono
84# picture viewers are needed for viewing screenshots
85#private-bin eog,eom,gthumb,pix,viewnior,xviewer
86
87# comment the following line if you need controller support
88private-dev
89# private-etc breaks a small selection of games on some systems, comment to support those
90private-etc alsa,alternatives,asound.conf,bumblebee,ca-certificates,crypto-policies,dbus-1,drirc,fonts,group,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,localtime,lsb-release,machine-id,mime.types,nvidia,os-release,passwd,pki,pulse,resolv.conf,services,ssl
91private-tmp
92
93# breaks appindicator support
94dbus-user none
95dbus-system none
diff --git a/.config/gtk-2.0/gtkrc-2.0 b/.config/gtk-2.0/gtkrc-2.0
new file mode 100644
index 0000000..f028395
--- /dev/null
+++ b/.config/gtk-2.0/gtkrc-2.0
@@ -0,0 +1,4 @@
1gtk-theme-name="Arc-Dark"
2gtk-icon-theme-name="Adwaita"
3gtk-font-name="Sans 10"
4gtk-cursor-theme-name="Adwaita"
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
new file mode 100644
index 0000000..5000f09
--- /dev/null
+++ b/.config/gtk-3.0/settings.ini
@@ -0,0 +1,4 @@
1[Settings]
2gtk-theme-name=Arc-Dark
3gtk-icon-theme-name="Adwaita"
4gtk-font-name=Sans 10
diff --git a/.config/htop/htoprc b/.config/htop/htoprc
new file mode 100644
index 0000000..4f6016b
--- /dev/null
+++ b/.config/htop/htoprc
@@ -0,0 +1,39 @@
1# Beware! This file is rewritten by htop when settings are changed in the interface.
2# The parser is also very primitive, and not human-friendly.
3fields=0 48 20 46 47 1
4sort_key=47
5sort_direction=1
6tree_sort_key=0
7tree_sort_direction=1
8hide_kernel_threads=1
9hide_userland_threads=1
10shadow_other_users=0
11show_thread_names=0
12show_program_path=0
13highlight_base_name=0
14highlight_megabytes=1
15highlight_threads=1
16highlight_changes=0
17highlight_changes_delay_secs=5
18find_comm_in_cmdline=0
19strip_exe_from_cmdline=0
20show_merged_command=0
21tree_view=1
22tree_view_always_by_pid=0
23header_margin=1
24detailed_cpu_time=0
25cpu_count_from_one=1
26show_cpu_usage=1
27show_cpu_frequency=0
28show_cpu_temperature=1
29degree_fahrenheit=0
30update_process_names=0
31account_guest_in_cpu_meter=0
32color_scheme=0
33enable_mouse=1
34delay=15
35left_meters=Memory Blank Uptime
36left_meter_modes=1 2 2
37right_meters=CPU Blank NetworkIO
38right_meter_modes=1 2 2
39hide_function_bar=0
diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf
new file mode 100644
index 0000000..4723dcd
--- /dev/null
+++ b/.config/picom/picom.conf
@@ -0,0 +1,5 @@
1opacity-rule = [
2 "90:class_g = 'URxvt'",
3 "90:class_g = 'Steam'",
4 "95:class_g = 'KeePassXC'"
5];
diff --git a/.config/ranger/rc.conf b/.config/ranger/rc.conf
new file mode 100644
index 0000000..89ed69b
--- /dev/null
+++ b/.config/ranger/rc.conf
@@ -0,0 +1,2 @@
1set colorscheme solarized
2set preview_images True
diff --git a/.config/shell/.bashrc b/.config/shell/.bashrc
new file mode 100644
index 0000000..1a66eb0
--- /dev/null
+++ b/.config/shell/.bashrc
@@ -0,0 +1,27 @@
1# Source aliases and shortcuts
2source ~/.config/shell/aliasrc
3source ~/.config/shell/shortcutsrc
4
5# History file settings
6HISTSIZE=
7HISTFILE="~/.cache/bash_history"
8HISTFILESIZE=
9HISTTIMEFORMAT="%a, %d %b %Y %T %z "
10
11# Shell Options
12set -o vi
13shopt -s autocd
14shopt -s histappend
15shopt -s checkwinsize
16
17# Prompt
18color_prompt=yes
19PS1='\[\033[1;30m\][\u@\h:]\[\033[1;31m\]\W\[\033[1;30m\]\[\033[0m\]\$ '
20
21if ! shopt -oq posix; then
22 if [ -f /usr/share/bash-completion/bash_completion ]; then
23 . /usr/share/bash-completion/bash_completion
24 elif [ -f /etc/bash_completion ]; then
25 . /etc/bash_completion
26 fi
27fi
diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc
new file mode 100644
index 0000000..c1a2de9
--- /dev/null
+++ b/.config/shell/aliasrc
@@ -0,0 +1,39 @@
1#!/bin/sh
2
3# Add color to commands
4alias \
5 diff="diff --color=auto" \
6 dir="dir --color=auto" \
7 vdir="vdir --color=auto" \
8 egrep="egrep --color=auto" \
9 fgrep="fgrep --color=auto" \
10 grep="grep --color=auto" \
11 ls="ls --group-directories-first --color=auto"
12
13# Git
14alias \
15 g='git' \
16 gd='git --git-dir=$HOME/dotfiles/ --work-tree=$HOME'
17
18# Shorten other commands
19alias \
20 ports="ss -tuanp" \
21 py="python3" \
22 rb="/usr/sbin/reboot" \
23 sd="/usr/sbin/shutdown now" \
24 sx="startx" \
25 svm="sudo systemctl start libvirtd" \
26 v="vim" \
27 yta="youtube-dl -f bestaudio --download-archive ~/media/youtube/archive" \
28 ytv="youtube-dl -f bestvideo[height\<=1080]+bestaudio/best[height\<=1080] --download-archive ~/media/youtube/archive" \
29 z="zathura"
30
31# Start commands with specific options always
32alias \
33 calcurse="calcurse -D ~/.config/calcurse" \
34 cp="cp -iv" \
35 ffmpeg="ffmpeg -hide_banner" \
36 mv="mv -iv" \
37 rm="rm -Iv"
38
39source $XDG_CONFIG_HOME/shell/private-aliasrc
diff --git a/.config/shell/profile b/.config/shell/profile
new file mode 100644
index 0000000..e806ba1
--- /dev/null
+++ b/.config/shell/profile
@@ -0,0 +1,22 @@
1#!/bin/bash
2# Profile file - executed by login shells
3
4# Add ~/.local/bin and all subdirectories to path
5script_dirs="$(find ~/.local/bin/ -type d | grep -v "git")"
6script_dirs="$(echo $script_dirs | tr ' ' ':')"
7export PATH=$PATH:$script_dirs
8
9export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
10export LESSHISTFILE='-'
11export XDG_CACHE_HOME="$HOME/.cache"
12export XDG_CONFIG_HOME="$HOME/.config"
13export XDG_DATA_HOME="$HOME/.local/share"
14export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
15export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
16export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
17export BROWSER="firefox"
18export EDITOR="vim"
19export TERMINAL="urxvtc"
20
21eval `ssh-agent -s`
22[ "$(tty)" = "/dev/tty1" ] && startx "$XINITRC"
diff --git a/.config/shell/shortcutsrc b/.config/shell/shortcutsrc
new file mode 100644
index 0000000..b8486be
--- /dev/null
+++ b/.config/shell/shortcutsrc
@@ -0,0 +1,27 @@
1#!/bin/sh
2alias \
3 bin='cd $HOME/.local/bin' \
4 brc='vim $HOME/.bashrc' \
5 cac='cd $HOME/.cache' \
6 cfa='vim $HOME/.config/shell/aliasrc' \
7 cff='vim $XDG_CONFIG_HOME/fontconfig/fonts.conf' \
8 cfg='cd $HOME/.config/' \
9 cfs='vim $HOME/.config/shell/shortcutsrc' \
10 dat='cd $HOME/.local/share' \
11 dbc='cd $HOME/.local/src/dwmblocks; vim ~/.local/src/dwmblocks/blocks.h' \
12 dwc='cd $HOME/.local/src/dwm; vim ~/.local/src/dwm/config.h' \
13 dws='cd $HOME/.local/src/dwm' \
14 gms='cd $HOME/.steam/debian-installation/steamapps/common' \
15 h='cd $HOME' \
16 hkc='vim $HOME/.config/sxhkd/sxhkdrc' \
17 i3b='cd $HOME/.config/i3blocks/' \
18 i3c='vim $HOME/.config/i3/config' \
19 mus='cd ~/media/music' \
20 pro='cd $HOME/programs/' \
21 pic='cd $HOME/pictures/' \
22 sbs='cd $HOME/.local/bin/statusbar' \
23 src='cd $HOME/.local/src' \
24 vrc='vim $HOME/.vim/vimrc' \
25 xrc='vim $HOME/.config/x11/xinitrc' \
26 xrs='vim $HOME/.config/x11/xresources' \
27 zrc='vim $HOME/.config/zsh/.zshrc'
diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc
new file mode 100644
index 0000000..315b852
--- /dev/null
+++ b/.config/sxhkd/sxhkdrc
@@ -0,0 +1,89 @@
1# Lock screen
2super + shift + x
3 lock
4
5# Take a screenshot
6super + Print
7 screenshot
8super + Shift + Print
9 windowshot
10
11# Wallpaper bindings
12super + w
13 bgscript
14
15# Show Keybinding Help
16super + F1
17 bind-help
18
19# Cmus Bindings
20super + m
21 urxvt -name "cmus" -e cmus; sleep 1; pkill -RTMIN+12 dwmblocks
22super + shift + m
23 cmus-remote --raw q; pkill -RTMIN+12 dwmblocks
24super + {comma, greater, less}
25 cmus-remote --{pause,next,prev}; pkill -RTMIN+12 dwmblocks
26super + {period, slash}
27 $HOME/.local/bin/cmus/toggle-{mode,shuf}
28
29# Volume Control
30super + {bracketleft, bracketright}
31 volctl 5 {-,+}
32super + shift + {braceleft, braceright}
33 volctl 10 {-,+}
34super + equal
35 amixer sset Master 50% unmute && signal-vol
36super + backslash
37 amixer sset Master toggle && signal-vol
38
39# Program Bindings
40super + q
41 urxvt -e htop
42super + w
43 wireshark
44super + e
45 urxvt -e vim
46super + r
47 urxvt -e ranger
48super + a
49 urxvt -e calcurse -D ~/.config/calcurse
50super + s
51 firejail steam
52super + shift + s
53 kill-steam
54super + d
55 dmenu_run
56super + f
57 firejail firefox
58super + shift + f
59 firefox
60super + x
61 keepassxc
62super + c
63 urxvt -e cli-brary
64super + v
65 virt-manager
66super + Return
67 urxvt
68
69# Function Key Bindings
70
71# Most if not all bindings here should be redundant, as I do not want to have to
72# rely on these keys for primary and/or common bindings
73
74Pause
75 cmus-remote --pause; pkill -RTMIN+12 dwmblocks
76XF86AudioStop
77 cmus-remote --pause; pkill -RTMIN+12 dwmblocks
78XF86AudioPlay
79 cmus-remote --pause; pkill -RTMIN+12 dwmblocks
80XF86AudioNext
81 cmus-remote --seek +5
82shift + XF86AudioPrev
83 cmus-remote --seek -1m
84shift + XF86AudioNext
85 cmus-remote --seek +1m
86XF86AudioLowerVolume
87 volctl 1 -
88XF86AudioRaiseVolume
89 volctl 1 +
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..25b2fab
--- /dev/null
+++ b/.config/x11/xinitrc
@@ -0,0 +1,24 @@
1# disable screensaver
2xset s off
3# disable power saving
4xset -dpms
5# set refresh rate
6xrandr -r 144
7# set background
8bgscript
9# remap keys
10kbremaps
11# load Xresources
12xrdb ~/.config/x11/xresources
13# start compositor
14picom --config ~/.config/picom/picom.conf &
15# start notification daemon
16dunst &
17# start unclutter
18unclutter &
19# start keybind daemon
20sxhkd &
21# start status bar
22dwmblocks &
23# start window manager (and keep starting when shutdown)
24dwm
diff --git a/.config/x11/xresources b/.config/x11/xresources
new file mode 100644
index 0000000..33df06e
--- /dev/null
+++ b/.config/x11/xresources
@@ -0,0 +1,63 @@
1URxvt.scrollBar: false
2*.font: xft:monospace:size=12
3
4! Brogrammer
5*.foreground: #d6dbe5
6*.background: #131313
7*.color0: #1f1f1f
8*.color1: #f81118
9*.color2: #2dc55e
10*.color3: #ecba0f
11*.color4: #2a84d2
12*.color5: #4e5ab7
13*.color6: #1081d6
14*.color7: #d6dbe5
15*.color8: #d6dbe5
16*.color9: #de352e
17*.color10: #1dd361
18*.color11: #f3bd09
19*.color12: #1081d6
20*.color13: #5350b9
21*.color14: #0f7ddb
22*.color15: #ffffff
23*.colorBD: #d6dbe5
24
25! Dracula
26!*.foreground: #F8F8F2
27!*.background: #282A36
28!*.color0: #000000
29!*.color8: #4D4D4D
30!*.color1: #FF5555
31!*.color9: #FF6E67
32!*.color2: #50FA7B
33!*.color10: #5AF78E
34!*.color3: #F1FA8C
35!*.color11: #F4F99D
36!*.color4: #BD93F9
37!*.color12: #CAA9FA
38!*.color5: #FF79C6
39!*.color13: #FF92D0
40!*.color6: #8BE9FD
41!*.color14: #9AEDFE
42!*.color7: #BFBFBF
43!*.color15: #E6E6E6
44
45! Gruvbox
46!*.color0: #1d2021
47!*.color1: #cc241d
48!*.color2: #98971a
49!*.color3: #d79921
50!*.color4: #458588
51!*.color5: #b16286
52!*.color6: #689d6a
53!*.color7: #a89984
54!*.color8: #928374
55!*.color9: #fb4934
56!*.color10: #b8bb26
57!*.color11: #fabd2f
58!*.color12: #83a598
59!*.color13: #d3869b
60!*.color14: #8ec07c
61!*.color15: #ebdbb2
62!*.color256: #1d2021
63!*.color257: #ebdbb2
diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc
new file mode 100644
index 0000000..5e7a57d
--- /dev/null
+++ b/.config/zathura/zathurarc
@@ -0,0 +1,9 @@
1set sandbox normal
2set statusbar-h-padding 0
3set statusbar-v-padding 0
4set page-padding 1
5set selection-clipboard clipboard
6map u scroll half-up
7map d scroll half-down
8map c recolor
9map g goto top
diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile
new file mode 100644
index 0000000..59a6032
--- /dev/null
+++ b/.config/zsh/.zprofile
@@ -0,0 +1,19 @@
1#!/bin/zsh
2# Profile file - executed by login shells
3
4export PATH=$PATH:~/.local/bin:~/.local/bin/cryptusb:~/.local/bin/private:~/.local/bin/statusbar:~/.local/bin/theme:~/.local/bin/cmus:~/.local/bin/dmenu:~/.local/bin/backups:~/.local/bin/backups/borg
5export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
6export LESSHISTFILE='-'
7export XDG_CACHE_HOME="$HOME/.cache"
8export XDG_CONFIG_HOME="$HOME/.config"
9export XDG_DATA_HOME="$HOME/.local/share"
10export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
11export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
12export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
13
14export BROWSER="firefox"
15export EDITOR="vim"
16export TERMINAL="urxvtc"
17
18eval `ssh-agent -s`
19[ "$(tty)" = "/dev/tty1" ] && startx "$XINITRC"
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
new file mode 100644
index 0000000..30e3f64
--- /dev/null
+++ b/.config/zsh/.zshrc
@@ -0,0 +1,33 @@
1# Source aliases and shortcuts
2source ~/.config/shell/aliasrc
3source ~/.config/shell/shortcutsrc
4
5# History file settings
6HISTSIZE=100000000
7SAVEHIST=100000000
8HISTFILE="$HOME/.cache/zsh/history"
9
10# Shell options
11bindkey -v
12export KEYTIMEOUT=1
13setopt autocd
14stty stop undef
15setopt histappend
16
17# Prompt
18autoload -U colors && colors
19PS1="%B%{$fg[black]%}[%b%{$fg[yellow]%}%n%B%{$fg[black]%}-at-%b%{$fg[yellow]%}%M%B%{$fg[black]%}]%b%{$fg[red]%}%1~%{$reset_color%}$ "
20
21# Autocomplete Settings
22autoload -U compinit
23zstyle ":completion:*" menu select
24zmodload zsh/complist
25compinit
26_comp_options+=(globdots)
27# Vim keys in menu select
28bindkey -M menuselect 'h' vi-backward-char
29bindkey -M menuselect 'k' vi-up-line-or-history
30bindkey -M menuselect 'l' vi-forward-char
31bindkey -M menuselect 'j' vi-down-line-or-history
32
33source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2>/dev/null
diff --git a/.local/bin/alarm b/.local/bin/alarm
new file mode 100755
index 0000000..2909ecf
--- /dev/null
+++ b/.local/bin/alarm
@@ -0,0 +1,17 @@
1#!/bin/sh
2
3[ $1 = "-h" -o $1 = "--help" ] && echo "usage: alarm time sound_file" && exit 0
4[ $# != 2 ] && echo "usage: alarm time sound_file" && exit 1
5
6echo "alarm set for $1"
7echo "$(basename "$2") is the alarm tone"
8
9while [ $(date +%H:%M) != "$1" ]
10do
11 sleep 1
12done
13
14amixer -q sset Master 100% unmute
15pkill -RTMIN+10 i3blocks
16mpv --loop=inf $2
17
diff --git a/.local/bin/backups/borg-offsite b/.local/bin/backups/borg-offsite
new file mode 100755
index 0000000..dfc9c01
--- /dev/null
+++ b/.local/bin/backups/borg-offsite
@@ -0,0 +1,25 @@
1#!/bin/sh
2# Full system backup with Borg
3
4# Backup root partition
5sudo borg create --verbose --list --stats --show-rc --exclude-caches --one-file-system \
6 --exclude '/dev/*' \
7 --exclude '/proc/*' \
8 --exclude '/sys/*' \
9 --exclude '/tmp/*' \
10 --exclude '/mnt/*' \
11 --exclude '/media/*' \
12 "/mnt/offsite-backup/titan::root-{now:%Y-%m-%d}" /
13
14# Backup boot parition
15sudo borg create --verbose --list --stats --show-rc --exclude-caches --one-file-system \
16 "/mnt/offsite-backup/titan::boot-{now:%Y-%m-%d}" /boot
17
18# Backup home partition
19sudo borg create --verbose --list --stats --show-rc --exclude-caches --one-file-system \
20 "/mnt/offsite-backup/titan::home-{now:%Y-%m-%d}" /home
21
22# Backup var partition
23sudo borg create --verbose --list --stats --show-rc --exclude-caches --one-file-system \
24 "/mnt/offsite-backup/titan::var-{now:%Y-%m-%d}" /var
25
diff --git a/.local/bin/backups/borg-onsite b/.local/bin/backups/borg-onsite
new file mode 100755
index 0000000..658c425
--- /dev/null
+++ b/.local/bin/backups/borg-onsite
@@ -0,0 +1,25 @@
1#!/bin/sh
2# Full system backup with Borg
3
4# Backup root partition
5sudo borg create --verbose --list --stats --show-rc --exclude-caches --one-file-system \
6 --exclude '/dev/*' \
7 --exclude '/proc/*' \
8 --exclude '/sys/*' \
9 --exclude '/tmp/*' \
10 --exclude '/mnt/*' \
11 --exclude '/media/*' \
12 "/mnt/onsite-backup/titan::root-{now:%Y-%m-%d}" /
13
14# Backup boot parition
15sudo borg create --verbose --list --stats --show-rc --exclude-caches --one-file-system \
16 "/mnt/onsite-backup/titan::boot-{now:%Y-%m-%d}" /boot
17
18# Backup home partition
19sudo borg create --verbose --list --stats --show-rc --exclude-caches --one-file-system \
20 "/mnt/onsite-backup/titan::home-{now:%Y-%m-%d}" /home
21
22# Backup var partition
23sudo borg create --verbose --list --stats --show-rc --exclude-caches --one-file-system \
24 "/mnt/onsite-backup/titan::var-{now:%Y-%m-%d}" /var
25
diff --git a/.local/bin/bgscript b/.local/bin/bgscript
new file mode 100755
index 0000000..4ec7706
--- /dev/null
+++ b/.local/bin/bgscript
@@ -0,0 +1,4 @@
1#!/bin/sh
2
3#feh --no-fehbg --recursive --randomize --bg-scale ~/pictures/wallpapers
4feh --no-fehbg --bg-scale ~/pictures/wallpapers/miscbest/4.jpg
diff --git a/.local/bin/cmus/toggle-mode b/.local/bin/cmus/toggle-mode
new file mode 100755
index 0000000..e73edc6
--- /dev/null
+++ b/.local/bin/cmus/toggle-mode
@@ -0,0 +1,14 @@
1#!/bin/sh
2# Toggles the cmus aaa mode (all,album,artist)
3
4cmus-remote -C "toggle aaa_mode"
5mode=$(cmus-remote -Q | grep "aaa_mode" | cut -d ' ' -f 3)
6artist=$(cmus-remote -Q | grep "tag artist" | cut -d ' ' -f 3-)
7album=$(cmus-remote -Q | grep "tag album" | cut -d ' ' -f 3-)
8
9[ "$mode" = "all" ] && dunstctl close-all && notify-send "Playing from full library" \
10 && exit
11[ "$mode" = "artist" ] && dunstctl close-all && notify-send "Playing by artist: $artist" \
12 && exit
13[ "$mode" = "album" ] && dunstctl close-all && notify-send "Playing from album: $album" \
14 && exit
diff --git a/.local/bin/cmus/toggle-shuf b/.local/bin/cmus/toggle-shuf
new file mode 100755
index 0000000..57c2606
--- /dev/null
+++ b/.local/bin/cmus/toggle-shuf
@@ -0,0 +1,7 @@
1#!/bin/sh
2# Toggle and report status of shuffle mode in cmus
3
4cmus-remote --shuffle
5status=$(cmus-remote -Q | grep shuffle | cut -d ' ' -f 3)
6dunstctl close-all
7[ "$status" = "true" ] && notify-send "Shuffle on" || notify-send "Shuffle off"
diff --git a/.local/bin/compile b/.local/bin/compile
new file mode 100755
index 0000000..837766b
--- /dev/null
+++ b/.local/bin/compile
@@ -0,0 +1,14 @@
1#!/bin/sh
2
3# Script for automatic compilation (or interpretation) of various file types
4# The filename needs to be passed to this script as the only argument
5file="$1"
6base="${file%.*}"
7ext="${file##*.}"
8
9case $ext in
10 mom) groff -mom -Tpdf "$file" > "$base.pdf" ;;
11 ms) groff -me -Tpdf "$file" > "$base.pdf" ;;
12 me) groff -me -Tpdf "$file" > "$base.pdf" ;;
13 py) python3 "$file" ;;
14esac
diff --git a/.local/bin/cryptusb/create-cryptusb b/.local/bin/cryptusb/create-cryptusb
new file mode 100755
index 0000000..e0f49fe
--- /dev/null
+++ b/.local/bin/cryptusb/create-cryptusb
@@ -0,0 +1,34 @@
1#!/bin/sh
2# Prompts for and creates a LUKS encrypted partition on a device
3
4# Get disks connected to the system that are hotpluggable (USBs)
5devices="$(lsblk -lp -o NAME,SIZE,HOTPLUG,TYPE | grep "1 disk" | awk '{print $1,"-",$2}')"
6[ "$devices" = "" ] && echo "no devices available" && exit 0
7
8# Prompt for device selection from the user
9select=$(echo "$devices" | dmenu -i -p "Select a device")
10[ "$select" = "" ] && echo "no device selected" && exit 0
11
12# Get confirmation since this is a potentially dangerous operation
13yn=$(echo "No\nYes" | dmenu -i -p "Create encrypted partition on $select")
14[ "$yn" != "Yes" ] && exit 0
15
16# Get device path from selection string
17usb=$(echo $select | cut -d ' ' -f 1)
18echo $usb
19
20# Create LUKS partition on selected device (user will be promted for password to encrypt)
21sudo cryptsetup --type luks2 luksFormat "$usb"
22
23# Open device and create filesystem on partition
24echo "creating filesystem"
25map_name="crypt-create"
26sudo cryptsetup open "$usb" "$map_name"
27sudo mkfs.ext4 "/dev/mapper/$map_name"
28
29# Close device after creating filesystem
30sudo cryptsetup close "$map_name"
31
32echo "done"
33
34
diff --git a/.local/bin/cryptusb/handle-cryptusb b/.local/bin/cryptusb/handle-cryptusb
new file mode 100755
index 0000000..63d6ef4
--- /dev/null
+++ b/.local/bin/cryptusb/handle-cryptusb
@@ -0,0 +1,8 @@
1#!/bin/sh
2# Single script for easy handling of encrypted USB
3# Calls mount, sync, and umount scripts to automatically handle what is commonly
4# run for encrypted USBs
5
6mount-cryptusb && notify-send "Encrypted USB mounted"
7sync-cryptusb && notify-send "Encrypted USB synced"
8umount-cryptusb && notify-send "Encrypted USB unmounted"
diff --git a/.local/bin/cryptusb/mount-cryptusb b/.local/bin/cryptusb/mount-cryptusb
new file mode 100755
index 0000000..882734c
--- /dev/null
+++ b/.local/bin/cryptusb/mount-cryptusb
@@ -0,0 +1,5 @@
1#!/bin/sh
2# Mounts LUKS encrypted USB
3
4sudo cryptsetup open /dev/sdc cryptusb
5sudo mount /dev/mapper/cryptusb /mnt/cryptusb
diff --git a/.local/bin/cryptusb/sync-cryptusb b/.local/bin/cryptusb/sync-cryptusb
new file mode 100755
index 0000000..e9d3f1a
--- /dev/null
+++ b/.local/bin/cryptusb/sync-cryptusb
@@ -0,0 +1,6 @@
1#!/bin/sh
2# Syncs important files to encrypted USB
3
4rsync -avP --exclude=".steam*" --exclude="virtual_machines*" --exclude="media*" \
5 --exclude="*.iso" --exclude="*.qcow2" \
6 $HOME/ /mnt/cryptusb/$USER@$(hostname)/
diff --git a/.local/bin/cryptusb/umount-cryptusb b/.local/bin/cryptusb/umount-cryptusb
new file mode 100755
index 0000000..c3c4b93
--- /dev/null
+++ b/.local/bin/cryptusb/umount-cryptusb
@@ -0,0 +1,5 @@
1#!/bin/sh
2# Unmounts LUKS encrypted USB
3
4sudo umount /mnt/cryptusb
5sudo cryptsetup close cryptusb
diff --git a/.local/bin/dmenu/mount-device b/.local/bin/dmenu/mount-device
new file mode 100755
index 0000000..e325a65
--- /dev/null
+++ b/.local/bin/dmenu/mount-device
@@ -0,0 +1,27 @@
1#!/bin/sh
2# Script for mounting block devices
3
4# Set askpass program for authentication
5export SUDO_ASKPASS=/usr/bin/ssh-askpass
6
7# Check for and get device to mount from user
8devs="$(lsblk -lp | grep "part $" | awk '{print $1,"-",$4}')"
9[ "$devs" = "" ] && exit 0
10dev="$(echo $devs | dmenu -i -p "Select device" | cut -d ' ' -f 1)"
11[ "$dev" = "" ] && exit 0
12
13# Attempt to mount without mountpoint for devices in /etc/fstab
14sudo -A mount "$dev" 2>/dev/null && exit 0
15
16# Get mountpoint from user
17mntpnt="$(find /mnt -maxdepth 3 -type d 2>/dev/null | dmenu -i -p "Select mountpoint")"
18[ "$mntpnt" = "" ] && exit 1
19
20# If selected mountpoint does not exist ask to create it
21# If user decides not to create non-existent drive, exit
22[ ! -d $mntpnt ] && create="$(echo "No\nYes" | \
23 dmenu -i -p "$mntpnt does not exist, would you like to create it?")" && \
24 ([ "$create" = "Yes" ] && sudo -A mkdir -p $mntpnt || exit 0)
25
26sudo -A mount $dev $mntpnt && pgrep -x dunst && notify-send "$dev mounted to $mntpnt"
27
diff --git a/.local/bin/dmenu/unicode-select b/.local/bin/dmenu/unicode-select
new file mode 100755
index 0000000..f42cd6e
--- /dev/null
+++ b/.local/bin/dmenu/unicode-select
@@ -0,0 +1,9 @@
1#!/bin/sh
2# Select unicode character via dmenu and copy to clipboard
3
4line="$(cat ~/.local/share/unicode_list | dmenu -i -l 10)"
5grep "$line" ~/.local/src/unicode_list | tr -d [:print:] |
6 xclip -r -selection "clipboard" &&
7 notify-send "$(xclip -selection "clipboard" -o) copied to clipboard"
8
9
diff --git a/.local/bin/dmenu/unmount-device b/.local/bin/dmenu/unmount-device
new file mode 100755
index 0000000..75cb10f
--- /dev/null
+++ b/.local/bin/dmenu/unmount-device
@@ -0,0 +1,19 @@
1#!/bin/sh
2# Script for unmounting filesystems
3
4# Set askpass program for authentication
5export SUDO_ASKPASS=/usr/bin/ssh-askpass
6
7# Get list of unmountable filesystems excluding critical ones (/, /home, /boot, etc...)
8exclude="\(/\|/boot\|/boot/efi\|/var\|/tmp\|/home\)$"
9parts="$(lsblk -lp | grep "part /" | grep -v "$exclude" | awk '{print $7,"-",$4}')"
10[ "$parts" = "" ] && exit 0
11
12# Get filesystem to unmount from user
13select="$(echo "$parts" | dmenu -i -p "Select filesystem to unmount" | cut -d ' ' -f 1)"
14[ "$select" = "" ] && exit 0
15dev="$(lsblk -lp | grep "$select" | awk '{print $1}')"
16
17# Unmount the filesystem
18sudo -A umount $select && pgrep -x dunst && notify-send "Unmounted $select ($dev)" \
19 || notify-send "Error: unable to unmount $select" "Are you in it?"
diff --git a/.local/bin/exiti3 b/.local/bin/exiti3
new file mode 100755
index 0000000..0fe76bf
--- /dev/null
+++ b/.local/bin/exiti3
@@ -0,0 +1,4 @@
1#!/bin/sh
2read -p "Exit i3 [Y]/n?" exit
3[ "$exit" = "Y" ] && i3-msg exit
4
diff --git a/.local/bin/ffmpeg-convert b/.local/bin/ffmpeg-convert
new file mode 100755
index 0000000..171a97b
--- /dev/null
+++ b/.local/bin/ffmpeg-convert
@@ -0,0 +1,60 @@
1#!/bin/sh
2
3# Converts audio/video files to a different specified container format with ffmpeg
4# Depends on the youtube-filename-fixer script for cleaining up YouTube filenames
5
6usage() {
7 echo "usage: ffmpeg-convert [options] container video_codec audio_codec files"
8 echo "\npositional parameters"
9 echo "\tcontainer\textension of the container that is being converted to"
10 echo "\tvideo_codec\tvideo codec of the output file"
11 echo "\taudio_codec\taudio codec of the output file"
12 echo "\noptions"
13 echo "\t-d\tdelete original files after conversion"
14 echo "\t-h\tshow this help and exit"
15}
16stdin() {
17 while read -r infile
18 do
19 outfile="$(echo $infile | rev | cut -d '.' -f 2 | rev)$container"
20 echo "converting $infile -> $outfile..."
21 ffmpeg -nostdin -loglevel 16 -i "$infile" -c:v $video -c:a $audio "$outfile"
22 [ $delete -eq 1 ] && rm -v "$infile"
23 done
24}
25cli() {
26 for infile in $@
27 do
28 outfile="$(echo $infile | rev | cut -d '.' -f 2 | rev)$container"
29 echo "converting $infile -> $outfile..."
30 ffmpeg -nostdin -loglevel 16 -i "$infile" -c:v $video -c:a $audio "$outfile"
31 [ $delete -eq 1 ] && rm -v "$infile"
32 done
33}
34
35options=$(getopt -o 'dhs' -- "$@")
36eval set -- "$options"
37delete=0
38stdin=0
39while true
40do
41 case $1 in
42 '-h') usage ; exit 0 ;;
43 '-d') delete=1; shift; continue ;;
44 '-s') stdin=1; shift; continue ;;
45 '--') shift; break;;
46 *) echo "internal error"; exit 1 ;;
47 esac
48done
49[ $# -ge 3 ] || (usage && exit 1)
50
51# Set variables specified on command line
52container="$1"; shift; video="$1"; shift; audio="$1"; shift;
53
54# Prepend a dot to the container name if not specified already
55[ "${container#.}" = "$container" ] && container=".$container"
56
57# If there is only one file argument and it is "-"
58[ $stdin -eq 1 ] && stdin || cli $@
59
60
diff --git a/.local/bin/get-pkgs b/.local/bin/get-pkgs
new file mode 100755
index 0000000..19e64f3
--- /dev/null
+++ b/.local/bin/get-pkgs
@@ -0,0 +1,8 @@
1#!/bin/sh
2# Creates files containing lists of installed and manually installed packages
3# in cache directory
4
5pkgdir="$HOME/.cache/packages"
6apt list --installed | tail -n+2 | cut -d '/' -f 1 > $pkgdir/installed
7apt list --manual-installed | tail -n+2 |
8 cut -d '/' -f 1 > $pkgdir/manual-installed
diff --git a/.local/bin/kbremaps b/.local/bin/kbremaps
new file mode 100755
index 0000000..b914b7f
--- /dev/null
+++ b/.local/bin/kbremaps
@@ -0,0 +1,7 @@
1#!/bin/sh
2# Script for keyboard changes
3
4# Change autorepeat rate
5xset r rate 300 50
6# Remap caps lock and escape
7setxkbmap -option caps:swapescape
diff --git a/.local/bin/kill-steam b/.local/bin/kill-steam
new file mode 100755
index 0000000..5572ae7
--- /dev/null
+++ b/.local/bin/kill-steam
@@ -0,0 +1,3 @@
1#!/bin/sh
2
3pkill -f steam
diff --git a/.local/bin/lock b/.local/bin/lock
new file mode 100755
index 0000000..223ac59
--- /dev/null
+++ b/.local/bin/lock
@@ -0,0 +1,7 @@
1#!/bin/sh
2# Locks the screen with a blurred screenshot of the current window as the lock image
3# Also pauses any music that is playing
4
5maim | convert - -paint 5 ~/.cache/lock.png
6[ "$(cmus-remote -Q | head -1 | cut -d ' ' -f 2)" != "playing" ] || cmus-remote --pause
7i3lock -u -e -i ~/.cache/lock.png
diff --git a/.local/bin/mount-media b/.local/bin/mount-media
new file mode 100755
index 0000000..e748941
--- /dev/null
+++ b/.local/bin/mount-media
@@ -0,0 +1,6 @@
1#!/bin/sh
2# Uses sshfs to locally mount media directories
3# Check if the media computer is reachable and if so mount the media
4ping -W 0.01 -c 1 prometheus >/dev/null && \
5 sshfs sisko@prometheus:/mnt/raid/media/ $HOME/media/prometheus/
6
diff --git a/.local/bin/pdf-preview b/.local/bin/pdf-preview
new file mode 100755
index 0000000..1587f36
--- /dev/null
+++ b/.local/bin/pdf-preview
@@ -0,0 +1,8 @@
1#!/bin/sh
2
3# Typically called from vim
4# Displays a pdf preview of an in-progress groff document
5# Takes the filename as the only argument
6# The pdf file is expected to have the same name as the groff document
7
8zathura "${1%.*}.pdf" &
diff --git a/.local/bin/screenshot b/.local/bin/screenshot
new file mode 100755
index 0000000..3f24f70
--- /dev/null
+++ b/.local/bin/screenshot
@@ -0,0 +1,8 @@
1#!/bin/sh
2# Take screenshot with interactive area selection
3# Saves screenshot with timestamp in directory named after the date
4
5time=$(date +%b-%d-%Y-%T.%N)
6day=$(date +%b-%d-%Y)
7[ -d ~/pictures/screenshots/$day ] || mkdir ~/pictures/screenshots/$day
8maim -s > ~/pictures/screenshots/$day/$time.png && notify-send "Screenshot Taken"
diff --git a/.local/bin/signal-vol b/.local/bin/signal-vol
new file mode 100755
index 0000000..e5739f6
--- /dev/null
+++ b/.local/bin/signal-vol
@@ -0,0 +1,4 @@
1#!/bin/sh
2# Signals the dwmblocks volume block to update
3
4pkill -RTMIN+10 dwmblocks
diff --git a/.local/bin/statusbar/bar-calcurse b/.local/bin/statusbar/bar-calcurse
new file mode 100755
index 0000000..dca82f3
--- /dev/null
+++ b/.local/bin/statusbar/bar-calcurse
@@ -0,0 +1,15 @@
1#!/bin/sh
2
3#i3blocks calcurse module
4
5case $BUTTON in
6 3)notify-send -t 5000 "$(calcurse -D ~/.config/calcurse/ -c ~/.config/calcurse/apts -a)";;
7 1)notify-send -t 20000 "$(calcurse -D ~/.config/calcurse/ -c ~/.config/calcurse/apts -r7)";;
8 2)notify-send -t 5000 "$(calcurse -D ~/.config/calcurse/ -t)"
9esac
10
11name="$(calcurse -D ~/.config/calcurse/ -c ~/.config/calcurse/apts -n | grep "\[" | sed "s/\s*\[/\[/" | cut -d ' ' -f 2-)"
12[ "$name" = "" ] && echo "Nothing Scheduled" && exit 0
13time="$(grep "$name" ~/.config/calcurse/apts | head -1 | cut -d ' ' -f 3)"
14[ ${time%%:*} -gt 12 ] && time="$((${time%%:*}-12)):${time##*:} PM" || time="$time AM"
15echo "$name @ $time"
diff --git a/.local/bin/statusbar/bar-cmus b/.local/bin/statusbar/bar-cmus
new file mode 100755
index 0000000..947f950
--- /dev/null
+++ b/.local/bin/statusbar/bar-cmus
@@ -0,0 +1,25 @@
1#!/bin/sh
2
3case $BUTTON in
4 1)notify-send "$(cmus-remote -Q | grep position | awk '{ printf "%02i:%02i", $2/60, $2%60}')/$(cmus-remote -Q | grep duration | awk '{ printf "%02i:%02i\n", $2/60, $2%60} ') ($(cmus-remote -Q | grep status | cut -d ' ' -f 2-))
5Artist: $(cmus-remote -Q | grep "tag artist " | cut -d ' ' -f 3-)
6Album: $(cmus-remote -Q | grep "tag album " | cut -d ' ' -f 3-)
7Track: $(cmus-remote -Q | grep "tag title " | cut -d ' ' -f 3-)
8Genre: $(cmus-remote -Q | grep "tag genre " | cut -d ' ' -f 3-)
9Mode: $(cmus-remote -Q | grep "aaa_mode" | cut -d ' ' -f 3)
10Format: $(cmus-remote -Q | grep file | rev | cut -d '.' -f 1 | rev)
11Shuffle: $(cmus-remote -Q | grep "set shuffle " | cut -d ' ' -f 3-)
12Repeat: $(cmus-remote -Q | grep "set repeat_current " | cut -d ' ' -f 3-)";;
13
14 3)urxvt -e vim ~/.local/bin/statusbar/cmus;;
15 4)cmus-remote --next;;
16 5)cmus-remote --prev;;
17esac
18
19pgrep -x cmus >/dev/null || exit 0
20
21status="$(cmus-remote -Q | grep status | cut -d ' ' -f 2)"
22artist="$(cmus-remote -Q | grep "tag artist" | cut -d ' ' -f 3- | tr -d "\n")"
23track="$(cmus-remote -Q | grep "tag title" | cut -d ' ' -f 3- | tr -d "\n")"
24echo -n "$artist - $track"
25[ "$status" = "playing" ] || echo -n " [P]"
diff --git a/.local/bin/statusbar/bar-cpu b/.local/bin/statusbar/bar-cpu
new file mode 100755
index 0000000..c21fe20
--- /dev/null
+++ b/.local/bin/statusbar/bar-cpu
@@ -0,0 +1,7 @@
1#!/bin/sh
2case $BUTTON in
3 1) notify-send "$(ps axc -o cmd:15,%cpu --sort=-%cpu | head -6)";;
4 3) urxvt -e vim ~/.local/bin/statusbar/cpu
5esac
6mpstat 1 1 | awk '/Average/ { printf "%.2f% ",100-$12 }'
7temp="$(sensors | awk '/Tctl/ { print $2 } ')"; echo -n ${temp#+}
diff --git a/.local/bin/statusbar/bar-gpu b/.local/bin/statusbar/bar-gpu
new file mode 100755
index 0000000..5351a2f
--- /dev/null
+++ b/.local/bin/statusbar/bar-gpu
@@ -0,0 +1,6 @@
1#!/bin/sh
2
3temp="$(sensors | awk '/edge/ { print $2 } ')"
4fan="$(sensors | awk '/fan1/ { print $2 } ')"
5power="$(sensors | awk '/power1/ { print $2 } ')"
6echo -n "${temp#+} $fan RPM"
diff --git a/.local/bin/statusbar/bar-ipv4 b/.local/bin/statusbar/bar-ipv4
new file mode 100755
index 0000000..4e51eca
--- /dev/null
+++ b/.local/bin/statusbar/bar-ipv4
@@ -0,0 +1,9 @@
1#!/bin/sh
2
3case $BUTTON in
4 1)notify-send --expire-time=60000 "IP Addresses" "$(ip a | awk '/\/24|\/64/ {if($5=="temporary")print $2 " " $5;else print $2;}')";;
5 3)urxvt -e ~/.local/bin/statusbar/ipv4
6esac
7ip a | awk '/\/24/ { print $2 }' | cut -d '/' -f 1
8
9
diff --git a/.local/bin/statusbar/bar-memory b/.local/bin/statusbar/bar-memory
new file mode 100755
index 0000000..1e98cca
--- /dev/null
+++ b/.local/bin/statusbar/bar-memory
@@ -0,0 +1,8 @@
1#!/bin/sh
2
3case $BUTTON in
4 1)notify-send "$(ps axc -o cmd:15,%mem --sort=-%mem | head -6)";;
5 3)urxvt -e vim ~/.local/bin/statusbar/memory
6esac
7free --si -h | grep Mem | awk '{ print $3 "/" $2 }'
8
diff --git a/.local/bin/statusbar/bar-storage b/.local/bin/statusbar/bar-storage
new file mode 100755
index 0000000..d7b5fcf
--- /dev/null
+++ b/.local/bin/statusbar/bar-storage
@@ -0,0 +1,7 @@
1#!/bin/sh
2
3case $BUTTON in
4 1)notify-send "$(df -H | grep "Filesystem\|/dev/sd")";;
5 3)urxvt -e vim ~/.local/bin/statusbar/storage
6esac
7df -H | awk '/\/home/ { print $4 }'
diff --git a/.local/bin/statusbar/bar-time b/.local/bin/statusbar/bar-time
new file mode 100755
index 0000000..f61a268
--- /dev/null
+++ b/.local/bin/statusbar/bar-time
@@ -0,0 +1,7 @@
1#!/bin/sh
2
3case $BUTTON in
4 1)notify-send "$(ncal -hb)";;
5 3)urxvt -e vim ~/.local/bin/statusbar/time
6esac
7date +"%r %A %D"
diff --git a/.local/bin/statusbar/bar-volume b/.local/bin/statusbar/bar-volume
new file mode 100755
index 0000000..d9bcc9d
--- /dev/null
+++ b/.local/bin/statusbar/bar-volume
@@ -0,0 +1,13 @@
1#!/bin/sh
2# i3blocks volume module
3
4case $BUTTON in
5 1)urxvt -e alsamixer;;
6 3)urxvt -e vim ~/.local/bin/statusbar/volume;;
7 4)amixer -q sset Master 1%+ unmute;;
8 5)amixer -q sset Master 1%- unmute;;
9esac
10
11stats=$(amixer sget Master | grep "Front Left:" | cut -d ' ' -f 7,8 | tr -d '[]')
12[ "${stats##* }" = "on" ] && echo -n "${stats%% *}" || echo -n "${stats%% *}"
13
diff --git a/.local/bin/stop-alarm b/.local/bin/stop-alarm
new file mode 100755
index 0000000..4607b11
--- /dev/null
+++ b/.local/bin/stop-alarm
@@ -0,0 +1,5 @@
1#!/bin/sh
2
3pkill mpv
4amixer -q sset Master 50%
5pkill -RTMIN+10 i3blocks
diff --git a/.local/bin/sync-music b/.local/bin/sync-music
new file mode 100755
index 0000000..4619a23
--- /dev/null
+++ b/.local/bin/sync-music
@@ -0,0 +1,4 @@
1#!/bin/sh
2# Sync music from media computer to local computer
3
4rsync -av sisko@prometheus:/mnt/raid/media/music/ $HOME/media/music/
diff --git a/.local/bin/theme/get-gradient b/.local/bin/theme/get-gradient
new file mode 100755
index 0000000..91f9391
--- /dev/null
+++ b/.local/bin/theme/get-gradient
@@ -0,0 +1,13 @@
1#!/bin/sh
2# Gets and sets a color gradient for cava
3
4start="$1"
5end="$2"
6colors=$(~/.local/bin/theme/gradient.py $start $end 7)
7
8num=1
9path="$HOME/.config/cava/config"
10for color in $colors; do
11 sed -i "s/gradient_color_$num.*$/gradient_color_$num = '$color'/" $path
12 num=$((num+1))
13done
diff --git a/.local/bin/theme/gradient.py b/.local/bin/theme/gradient.py
new file mode 100755
index 0000000..f95bb07
--- /dev/null
+++ b/.local/bin/theme/gradient.py
@@ -0,0 +1,24 @@
1#!/usr/bin/python3
2# Gets a color gradient based on input color and number
3# Depends on python3-colour
4
5import colour,sys
6
7if len(sys.argv) != 4:
8 print("arg error")
9 sys.exit(1)
10
11start = sys.argv[1]
12end = sys.argv[2]
13num = int(sys.argv[3])
14
15grad = colour.color_scale(colour.hex2hsl(start),colour.hex2hsl(end),num)
16grad_hex = []
17for hsl in grad:
18 grad_hex.append(colour.hsl2hex(hsl))
19
20for color in grad_hex:
21 sys.stdout.write(color + "\n")
22
23
24
diff --git a/.local/bin/volctl b/.local/bin/volctl
new file mode 100755
index 0000000..faa8de6
--- /dev/null
+++ b/.local/bin/volctl
@@ -0,0 +1,12 @@
1#!/bin/sh
2# Script for volume control
3#
4# Accepts either a number and a +,- operator (volctl 5 +) or "toggle" (volctl toggle)
5
6# If the lone argument is "toggle", toggle mute/unmute
7[ "$1" = "toggle" ] && amixer -q sset Master toggle && signal-vol && exit
8
9num=$1
10dir=$2
11
12amixer -q sset Master $num%$dir unmute && signal-vol
diff --git a/.local/bin/who-depends b/.local/bin/who-depends
new file mode 100755
index 0000000..d1fb0c2
--- /dev/null
+++ b/.local/bin/who-depends
@@ -0,0 +1,13 @@
1#!/bin/sh
2
3# Script that takes a package as an argument and returns installed packages
4# that are dependent on it
5
6[ $# -eq 1 ] || echo "usage: who-depends package"
7apt list --installed | tail -n+2 | cut -d '/' -f 1 > /tmp/whodepends
8pkg="$1"
9deps_all=$(apt-cache rdepends $pkg | tail -n+3 | sed "s/^\s*//")
10for dep in $deps_all
11do
12 grep -lq "$dep" /tmp/whodepends && echo "$dep"
13done
diff --git a/.local/bin/windowshot b/.local/bin/windowshot
new file mode 100755
index 0000000..a7b143b
--- /dev/null
+++ b/.local/bin/windowshot
@@ -0,0 +1,9 @@
1#!/bin/sh
2# Take screenshot of current window
3# Saves screenshot with timestamp in directory named after the date
4
5time=$(date +%b-%d-%Y-%T.%N)
6day=$(date +%b-%d-%Y)
7[ -d "~/pictures/screenshots/$day" ] || mkdir -p ~/pictures/screenshots/$day
8maim > ~/pictures/screenshots/$day/$time.png && notify-send "Screenshot Taken"
9
diff --git a/.local/bin/yt-fix b/.local/bin/yt-fix
new file mode 100755
index 0000000..69e771a
--- /dev/null
+++ b/.local/bin/yt-fix
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3# Takes files downloaded through youtube-dl and cleans up their filenames
4
5stdin() {
6 while read -r infile
7 do
8 ext=".$(echo $infile | rev | cut -d '.' -f 1 | rev)"
9 ext_length=${#ext}
10 remove=$((12+$ext_length))
11 filename="$(echo $infile | rev | cut -c $remove- | rev)"
12 mv "$infile" "$filename$ext"
13 done
14}
15
16cli() {
17 for infile in "$@"
18 do
19 ext=".$(echo $infile | rev | cut -d '.' -f 1 | rev)"
20 ext_length=${#ext}
21 remove=$((12+$ext_length))
22 filename="$(echo $infile | rev | cut -c $remove- | rev)"
23 mv "$infile" "$filename$ext"
24 done
25}
26
27options=$(getopt -o 'hsx' -- "$@")
28eval set -- "$options"
29read_stdin=0
30noext=0
31while true
32do
33 case "$1" in
34 '-h') echo "usage: yt-fix [options] [files]\n\th\tprint this help and exit\n\tx\tdo not include extension in output\n\ts\tread from stdin"; exit 0;;
35 '-s') read_stdin=1; shift; continue;;
36 '-x') noext=1; shift; continue;;
37 '--') shift; break;;
38 esac
39done
40
41[ $read_stdin -eq 0 ] && cli "$@" || stdin
42
diff --git a/.local/share/unicode_list b/.local/share/unicode_list
new file mode 100644
index 0000000..39d5aa1
--- /dev/null
+++ b/.local/share/unicode_list
@@ -0,0 +1,1326 @@
1U+00A9 COPYRIGHT SIGN ©
2U+00AE REGISTERED SIGN ®
3U+203C DOUBLE EXCLAMATION MARK !!
4U+2049 EXCLAMATION QUESTION MARK â‰
5U+2122 TRADE MARK SIGN â„¢
6U+2139 INFORMATION SOURCE Media controls
7U+2194 LEFT RIGHT ARROW ↔
8U+2195 UP DOWN ARROW Vertical
9U+2196 NORTH WEST ARROW ↖
10U+2197 NORTH EAST ARROW ↗
11U+2198 SOUTH EAST ARROW ↘
12U+2199 SOUTH WEST ARROW ↙
13U+21A9 LEFTWARDS ARROW WITH HOOK ↩
14U+21AA RIGHTWARDS ARROW WITH HOOK ↪
15U+231A WATCH ⌚
16U+231B HOURGLASS ⌛
17U+2328 KEYBOARD ⌨
18U+23CF EJECT SYMBOL â
19U+23E9 BLACK RIGHT-POINTING DOUBLE TRIANGLE Media Controlsâ©
20U+23EA BLACK LEFT-POINTING DOUBLE TRIANGLE Media Controls âª
21U+23EB BLACK UP-POINTING DOUBLE TRIANGLE Media Controls â«
22U+23EC BLACK DOWN-POINTING DOUBLE TRIANGLE Media Controls â¬
23U+23ED BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR Media Controls â­
24U+23EE BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR Media Controls â®
25U+23EF BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR Media Controls â¯
26U+23F0 ALARM CLOCK â°
27U+23F1 STOPWATCH â±
28U+23F2 TIMER CLOCK â²
29U+23F3 HOURGLASS WITH FLOWING SAND â³
30U+23F8 DOUBLE VERTICAL BAR Media Controls â¸
31U+23F9 BLACK SQUARE FOR STOP Media Controls â¹
32U+23FA BLACK CIRCLE FOR RECORD Media Controls âº
33U+24C2 CIRCLED LATIN CAPITAL LETTER M â“‚
34U+25AA BLACK SMALL SQUARE â–ª
35U+25AB WHITE SMALL SQUARE â–«
36U+25B6 BLACK RIGHT-POINTING TRIANGLE Media Controls â–¶
37U+25C0 BLACK LEFT-POINTING TRIANGLE Media Controls â—€
38U+25FB WHITE MEDIUM SQUARE â—»
39U+25FC BLACK MEDIUM SQUARE â—¼
40U+25FD WHITE MEDIUM SMALL SQUARE â—½
41U+25FE BLACK MEDIUM SMALL SQUARE â—¾
42U+2600 BLACK SUN WITH RAYS ☀
43U+2601 CLOUD â˜
44U+2602 UMBRELLA ☂
45U+2603 SNOWMAN ☃
46U+2604 COMET ☄
47U+260E BLACK TELEPHONE ☎
48U+2611 BALLOT BOX WITH CHECK ☑
49U+2614 UMBRELLA WITH RAIN DROPS ☔
50U+2615 HOT BEVERAGE ☕
51U+2618 SHAMROCK ☘
52U+261D WHITE UP POINTING INDEX â˜
53U+2620 SKULL AND CROSSBONES ☠
54U+2622 RADIOACTIVE SIGN ☢
55U+2623 BIOHAZARD SIGN ☣
56U+2626 ORTHODOX CROSS ☦
57U+262A STAR AND CRESCENT ☪
58U+262E PEACE SYMBOL ☮
59U+262F YIN YANG ☯
60U+2638 WHEEL OF DHARMA ☸
61U+2639 WHITE FROWNING FACE ☹
62U+263A WHITE SMILING FACE ☺
63U+2640 FEMALE SIGN ♀
64U+2642 MALE SIGN ♂
65U+2648 ARIES ♈
66U+2649 TAURUS ♉
67U+264A GEMINI ♊
68U+264B CANCER ♋
69U+264C LEO ♌
70U+264D VIRGO â™
71U+264E LIBRA ♎
72U+264F SCORPIUS â™
73U+2650 SAGITTARIUS â™
74U+2651 CAPRICORN ♑
75U+2652 AQUARIUS â™’
76U+2653 PISCES ♓
77U+265F BLACK CHESS PAWN ♟
78U+2660 BLACK SPADE SUIT Suit (cards) â™ 
79U+2663 BLACK CLUB SUIT Suit (cards) ♣
80U+2665 BLACK HEART SUIT Suit (cards) ♥
81U+2666 BLACK DIAMOND SUIT Suit (cards) ♦
82U+2668 HOT SPRINGS ♨
83U+267B BLACK UNIVERSAL RECYCLING SYMBOL â™»
84U+267E PERMANENT PAPER SIGN ♾
85U+267F WHEELCHAIR SYMBOL ♿
86U+2692 HAMMER AND PICK âš’
87U+2693 ANCHOR âš“
88U+2694 CROSSED SWORDS âš”
89U+2695 STAFF OF AESCULAPIUS âš•
90U+2696 SCALES âš–
91U+2697 ALEMBIC âš—
92U+2699 GEAR âš™
93U+269B ATOM SYMBOL âš›
94U+269C FLEUR-DE-LIS ⚜
95U+26A0 WARNING SIGN âš 
96U+26A1 HIGH VOLTAGE SIGN âš¡
97U+26A7 MALE WITH STROKE AND MALE AND FEMALE SIGN ⚧
98U+26AA MEDIUM WHITE CIRCLE ⚪
99U+26AB MEDIUM BLACK CIRCLE Media controls âš«
100U+26B0 COFFIN âš°
101U+26B1 FUNERAL URN âš±
102U+26BD SOCCER BALL âš½
103U+26BE BASEBALL âš¾
104U+26C4 SNOWMAN WITHOUT SNOW ⛄
105U+26C5 SUN BEHIND CLOUD â›…
106U+26C8 THUNDER CLOUD AND RAIN ⛈
107U+26CE OPHIUCHUS ⛎
108U+26CF PICK â›
109U+26D1 HELMET WITH WHITE CROSS ⛑
110U+26D3 CHAINS ⛓
111U+26D4 NO ENTRY â›”
112U+26E9 SHINTO SHRINE ⛩
113U+26EA CHURCH ⛪
114U+26F0 MOUNTAIN â›°
115U+26F1 UMBRELLA ON GROUND â›±
116U+26F2 FOUNTAIN ⛲
117U+26F3 FLAG IN HOLE ⛳
118U+26F4 FERRY â›´
119U+26F5 SAILBOAT ⛵
120U+26F7 SKIER â›·
121U+26F8 ICE SKATE ⛸
122U+26F9 PERSON WITH BALL ⛹
123U+26FA TENT ⛺
124U+26FD FUEL PUMP ⛽
125U+2702 BLACK SCISSORS ✂
126U+2705 WHITE HEAVY CHECK MARK ✅
127U+2708 AIRPLANE ✈
128U+2709 ENVELOPE ✉
129U+270A RAISED FIST ✊
130U+270B RAISED HAND ✋
131U+270C VICTORY HAND ✌
132U+270D WRITING HAND âœ
133U+270F PENCIL âœ
134U+2712 BLACK NIB ✒
135U+2714 HEAVY CHECK MARK ✔
136U+2716 HEAVY MULTIPLICATION X X mark
137U+271D LATIN CROSS âœ
138U+2721 STAR OF DAVID ✡
139U+2728 SPARKLES ✨
140U+2733 EIGHT SPOKED ASTERISK ✳
141U+2734 EIGHT POINTED BLACK STAR ✴
142U+2744 SNOWFLAKE â„
143U+2747 SPARKLE â‡
144U+274C CROSS MARK âŒ
145U+274E NEGATIVE SQUARED CROSS MARK âŽ
146U+2753 BLACK QUESTION MARK ORNAMENT â“
147U+2754 WHITE QUESTION MARK ORNAMENT â”
148U+2755 WHITE EXCLAMATION MARK ORNAMENT â•
149U+2757 HEAVY EXCLAMATION MARK SYMBOL â—
150U+2763 HEAVY HEART EXCLAMATION MARK ORNAMENT â£
151U+2764 HEAVY BLACK HEART â¤
152U+2795 HEAVY PLUS SIGN âž•
153U+2796 HEAVY MINUS SIGN âž–
154U+2797 HEAVY DIVISION SIGN âž—
155U+27A1 BLACK RIGHTWARDS ARROW âž¡
156U+27B0 CURLY LOOP Loop the loop
157U+27BF DOUBLE CURLY LOOP Loop the loop
158U+2934 ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS ⤴
159U+2935 ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS ⤵
160U+2B05 LEFTWARDS BLACK ARROW ⬅
161U+2B06 UPWARDS BLACK ARROW ⬆
162U+2B07 DOWNWARDS BLACK ARROW ↓
163U+2B1B BLACK LARGE SQUARE ⬛
164U+2B1C WHITE LARGE SQUARE ⬜
165U+2B50 WHITE MEDIUM STAR â­
166U+2B55 HEAVY LARGE CIRCLE â­•
167U+3030 WAVY DASH 〰
168U+303D PART ALTERNATION MARK 〽
169U+3297 CIRCLED IDEOGRAPH CONGRATULATION ç¥ã„
170U+3299 CIRCLED IDEOGRAPH SECRET 秘
171U+1F004 MAHJONG TILE RED DRAGON 🀄
172U+1F0CF PLAYING CARD BLACK JOKER ðŸƒ
173U+1F170 NEGATIVE SQUARED LATIN CAPITAL LETTER A 🅰
174U+1F171 NEGATIVE SQUARED LATIN CAPITAL LETTER B 🅱
175U+1F17E NEGATIVE SQUARED LATIN CAPITAL LETTER O 🅾
176U+1F17F NEGATIVE SQUARED LATIN CAPITAL LETTER P 🅿
177U+1F18E NEGATIVE SQUARED AB 🆎
178U+1F191 SQUARED CL CL
179U+1F192 SQUARED COOL 🆒
180U+1F193 SQUARED FREE 🆓
181U+1F194 SQUARED ID 🆔
182U+1F195 SQUARED NEW New 🆕
183U+1F196 SQUARED NG No Good 🆖
184U+1F197 SQUARED OK 🆗
185U+1F198 SQUARED SOS 🆘
186U+1F199 SQUARED UP WITH EXCLAMATION MARK Up 🆙
187U+1F19A SQUARED VS Versus 🆚
188U+1F201 SQUARED KATAKANA KOKO ðŸˆ
189U+1F202 SQUARED KATAKANA SA 🈂
190U+1F21A SQUARED CJK UNIFIED IDEOGRAPH-7121 🈚
191U+1F232 SQUARED CJK UNIFIED IDEOGRAPH-7981 ç¦
192U+1F233 SQUARED CJK UNIFIED IDEOGRAPH-7A7A 空
193U+1F234 SQUARED CJK UNIFIED IDEOGRAPH-5408 åˆ
194U+1F235 SQUARED CJK UNIFIED IDEOGRAPH-6E80 満
195U+1F236 SQUARED CJK UNIFIED IDEOGRAPH-6709 有
196U+1F237 SQUARED CJK UNIFIED IDEOGRAPH-6708 月
197U+1F238 SQUARED CJK UNIFIED IDEOGRAPH-7533 申
198U+1F239 SQUARED CJK UNIFIED IDEOGRAPH-5272 割
199U+1F23A SQUARED CJK UNIFIED IDEOGRAPH-55B6 å–¶
200U+1F250 CIRCLED IDEOGRAPH ADVANTAGE å¾—
201U+1F251 CIRCLED IDEOGRAPH ACCEPT å¯
202U+1F300 CYCLONE 🌀
203U+1F301 FOGGY ðŸŒ
204U+1F302 CLOSED UMBRELLA 🌂
205U+1F303 NIGHT WITH STARS 🌃
206U+1F304 SUNRISE OVER MOUNTAINS 🌄
207U+1F305 SUNRISE 🌅
208U+1F306 CITYSCAPE AT DUSK 🌆
209U+1F307 SUNSET OVER BUILDINGS 🌇
210U+1F308 RAINBOW 🌈
211U+1F309 BRIDGE AT NIGHT 🌉
212U+1F30A WATER WAVE 🌊
213U+1F30B VOLCANO 🌋
214U+1F30C MILKY WAY 🌌
215U+1F30D EARTH GLOBE EUROPE-AFRICA ðŸŒ
216U+1F30E EARTH GLOBE AMERICAS 🌎
217U+1F30F EARTH GLOBE ASIA-AUSTRALIA ðŸŒ
218U+1F310 GLOBE WITH MERIDIANS ðŸŒ
219U+1F311 NEW MOON SYMBOL 🌑
220U+1F312 WAXING CRESCENT MOON SYMBOL 🌒
221U+1F313 FIRST QUARTER MOON SYMBOL 🌓
222U+1F314 WAXING GIBBOUS MOON SYMBOL 🌔
223U+1F315 FULL MOON SYMBOL 🌕
224U+1F316 WANING GIBBOUS MOON SYMBOL 🌖
225U+1F317 LAST QUARTER MOON SYMBOL 🌗
226U+1F318 WANING CRESCENT MOON SYMBOL 🌘
227U+1F319 CRESCENT MOON 🌙
228U+1F31A NEW MOON WITH FACE 🌚
229U+1F31B FIRST QUARTER MOON WITH FACE 🌛
230U+1F31C LAST QUARTER MOON WITH FACE 🌜
231U+1F31D FULL MOON WITH FACE ðŸŒ
232U+1F31E SUN WITH FACE 🌞
233U+1F31F GLOWING STAR 🌟
234U+1F320 SHOOTING STAR 🌠
235U+1F321 THERMOMETER 🌡
236U+1F324 WHITE SUN WITH SMALL CLOUD 🌤
237U+1F325 WHITE SUN BEHIND CLOUD 🌥
238U+1F326 WHITE SUN BEHIND CLOUD WITH RAIN 🌦
239U+1F327 CLOUD WITH RAIN 🌧
240U+1F328 CLOUD WITH SNOW 🌨
241U+1F329 CLOUD WITH LIGHTNING 🌩
242U+1F32A CLOUD WITH TORNADO 🌪
243U+1F32B FOG 🌫
244U+1F32C WIND BLOWING FACE 🌬
245U+1F32D HOT DOG 🌭
246U+1F32E TACO 🌮
247U+1F32F BURRITO 🌯
248U+1F330 CHESTNUT 🌰
249U+1F331 SEEDLING 🌱
250U+1F332 EVERGREEN TREE 🌲
251U+1F333 DECIDUOUS TREE 🌳
252U+1F334 PALM TREE 🌴
253U+1F335 CACTUS 🌵
254U+1F336 HOT PEPPER 🌶
255U+1F337 TULIP 🌷
256U+1F338 CHERRY BLOSSOM 🌸
257U+1F339 ROSE 🌹
258U+1F33A HIBISCUS 🌺
259U+1F33B SUNFLOWER 🌻
260U+1F33C BLOSSOM 🌼
261U+1F33D EAR OF MAIZE 🌽
262U+1F33E EAR OF RICE 🌾
263U+1F33F HERB 🌿
264U+1F340 FOUR LEAF CLOVER ðŸ€
265U+1F341 MAPLE LEAF ðŸ
266U+1F342 FALLEN LEAF ðŸ‚
267U+1F343 LEAF FLUTTERING IN WIND ðŸƒ
268U+1F344 MUSHROOM ðŸ„
269U+1F345 TOMATO ðŸ…
270U+1F346 AUBERGINE ðŸ†
271U+1F347 GRAPES ðŸ‡
272U+1F348 MELON ðŸˆ
273U+1F349 WATERMELON ðŸ‰
274U+1F34A TANGERINE ðŸŠ
275U+1F34B LEMON ðŸ‹
276U+1F34C BANANA ðŸŒ
277U+1F34D PINEAPPLE ðŸ
278U+1F34E RED APPLE ðŸŽ
279U+1F34F GREEN APPLE ðŸ
280U+1F350 PEAR ðŸ
281U+1F351 PEACH ðŸ‘
282U+1F352 CHERRIES ðŸ’
283U+1F353 STRAWBERRY ðŸ“
284U+1F354 HAMBURGER ðŸ”
285U+1F355 SLICE OF PIZZA ðŸ•
286U+1F356 MEAT ON BONE ðŸ–
287U+1F357 POULTRY LEG ðŸ—
288U+1F358 RICE CRACKER ðŸ˜
289U+1F359 RICE BALL ðŸ™
290U+1F35A COOKED RICE ðŸš
291U+1F35B CURRY AND RICE ðŸ›
292U+1F35C STEAMING BOWL ðŸœ
293U+1F35D SPAGHETTI ðŸ
294U+1F35E BREAD ðŸž
295U+1F35F FRENCH FRIES ðŸŸ
296U+1F360 ROASTED SWEET POTATO ðŸ 
297U+1F361 DANGO ðŸ¡
298U+1F362 ODEN ðŸ¢
299U+1F363 SUSHI ðŸ£
300U+1F364 FRIED SHRIMP ðŸ¤
301U+1F365 FISH CAKE WITH SWIRL DESIGN ðŸ¥
302U+1F366 SOFT ICE CREAM ðŸ¦
303U+1F367 SHAVED ICE ðŸ§
304U+1F368 ICE CREAM ðŸ¨
305U+1F369 DOUGHNUT ðŸ©
306U+1F36A COOKIE ðŸª
307U+1F36B CHOCOLATE BAR ðŸ«
308U+1F36C CANDY ðŸ¬
309U+1F36D LOLLIPOP ðŸ­
310U+1F36E CUSTARD ðŸ®
311U+1F36F HONEY POT ðŸ¯
312U+1F370 SHORTCAKE ðŸ°
313U+1F371 BENTO BOX ðŸ±
314U+1F372 POT OF FOOD ðŸ²
315U+1F373 COOKING ðŸ³
316U+1F374 FORK AND KNIFE ðŸ´
317U+1F375 TEACUP WITHOUT HANDLE ðŸµ
318U+1F376 SAKE BOTTLE AND CUP ðŸ¶
319U+1F377 WINE GLASS ðŸ·
320U+1F378 COCKTAIL GLASS ðŸ¸
321U+1F379 TROPICAL DRINK ðŸ¹
322U+1F37A BEER MUG ðŸº
323U+1F37B CLINKING BEER MUGS ðŸ»
324U+1F37C BABY BOTTLE ðŸ¼
325U+1F37D FORK AND KNIFE WITH PLATE ðŸ½
326U+1F37E BOTTLE WITH POPPING CORK ðŸ¾
327U+1F37F POPCORN ðŸ¿
328U+1F380 RIBBON 🎀
329U+1F381 WRAPPED PRESENT ðŸŽ
330U+1F382 BIRTHDAY CAKE 🎂
331U+1F383 JACK-O-LANTERN 🎃
332U+1F384 CHRISTMAS TREE 🎄
333U+1F385 FATHER CHRISTMAS 🎅
334U+1F386 FIREWORKS 🎆
335U+1F387 FIREWORK SPARKLER 🎇
336U+1F388 BALLOON 🎈
337U+1F389 PARTY POPPER 🎉
338U+1F38A CONFETTI BALL 🎊
339U+1F38B TANABATA TREE 🎋
340U+1F38C CROSSED FLAGS 🎌
341U+1F38D PINE DECORATION ðŸŽ
342U+1F38E JAPANESE DOLLS 🎎
343U+1F38F CARP STREAMER ðŸŽ
344U+1F390 WIND CHIME ðŸŽ
345U+1F391 MOON VIEWING CEREMONY 🎑
346U+1F392 SCHOOL SATCHEL 🎒
347U+1F393 GRADUATION CAP 🎓
348U+1F396 MILITARY MEDAL 🎖
349U+1F397 REMINDER RIBBON 🎗
350U+1F399 STUDIO MICROPHONE 🎙
351U+1F39A LEVEL SLIDER 🎚
352U+1F39B CONTROL KNOBS 🎛
353U+1F39E FILM FRAMES 🎞
354U+1F39F ADMISSION TICKETS 🎟
355U+1F3A0 CAROUSEL HORSE 🎠
356U+1F3A1 FERRIS WHEEL 🎡
357U+1F3A2 ROLLER COASTER 🎢
358U+1F3A3 FISHING POLE AND FISH 🎣
359U+1F3A4 MICROPHONE 🎤
360U+1F3A5 MOVIE CAMERA 🎥
361U+1F3A6 CINEMA 🎦
362U+1F3A7 HEADPHONE 🎧
363U+1F3A8 ARTIST PALETTE 🎨
364U+1F3A9 TOP HAT 🎩
365U+1F3AA CIRCUS TENT 🎪
366U+1F3AB TICKET 🎫
367U+1F3AC CLAPPER BOARD 🎬
368U+1F3AD PERFORMING ARTS 🎭
369U+1F3AE VIDEO GAME 🎮
370U+1F3AF DIRECT HIT 🎯
371U+1F3B0 SLOT MACHINE 🎰
372U+1F3B1 BILLIARDS 🎱
373U+1F3B2 GAME DIE 🎲
374U+1F3B3 BOWLING 🎳
375U+1F3B4 FLOWER PLAYING CARDS 🎴
376U+1F3B5 MUSICAL NOTE 🎵
377U+1F3B6 MULTIPLE MUSICAL NOTES 🎶
378U+1F3B7 SAXOPHONE 🎷
379U+1F3B8 GUITAR 🎸
380U+1F3B9 MUSICAL KEYBOARD 🎹
381U+1F3BA TRUMPET 🎺
382U+1F3BB VIOLIN 🎻
383U+1F3BC MUSICAL SCORE 🎼
384U+1F3BD RUNNING SHIRT WITH SASH 🎽
385U+1F3BE TENNIS RACQUET AND BALL 🎾
386U+1F3BF SKI AND SKI BOOT 🎿
387U+1F3C0 BASKETBALL AND HOOP ðŸ€
388U+1F3C1 CHEQUERED FLAG ðŸ
389U+1F3C2 SNOWBOARDER ðŸ‚
390U+1F3C3 RUNNER ðŸƒ
391U+1F3C4 SURFER ðŸ„
392U+1F3C5 SPORTS MEDAL ðŸ…
393U+1F3C6 TROPHY ðŸ†
394U+1F3C7 HORSE RACING ðŸ‡
395U+1F3C8 AMERICAN FOOTBALL ðŸˆ
396U+1F3C9 RUGBY FOOTBALL ðŸ‰
397U+1F3CA SWIMMER ðŸŠ
398U+1F3CB WEIGHT LIFTER ðŸ‹
399U+1F3CC GOLFER ðŸŒ
400U+1F3CD RACING MOTORCYCLE ðŸ
401U+1F3CE RACING CAR ðŸŽ
402U+1F3CF CRICKET BAT AND BALL ðŸ
403U+1F3D0 VOLLEYBALL ðŸ
404U+1F3D1 FIELD HOCKEY STICK AND BALL ðŸ‘
405U+1F3D2 ICE HOCKEY STICK AND PUCK ðŸ’
406U+1F3D3 TABLE TENNIS PADDLE AND BALL ðŸ“
407U+1F3D4 SNOW CAPPED MOUNTAIN ðŸ”
408U+1F3D5 CAMPING ðŸ•
409U+1F3D6 BEACH WITH UMBRELLA ðŸ–
410U+1F3D7 BUILDING CONSTRUCTION ðŸ—
411U+1F3D8 HOUSE BUILDINGS ðŸ˜
412U+1F3D9 CITYSCAPE ðŸ™
413U+1F3DA DERELICT HOUSE BUILDING ðŸš
414U+1F3DB CLASSICAL BUILDING ðŸ›
415U+1F3DC DESERT ðŸœ
416U+1F3DD DESERT ISLAND ðŸ
417U+1F3DE NATIONAL PARK ðŸž
418U+1F3DF STADIUM ðŸŸ
419U+1F3E0 HOUSE BUILDING ðŸ 
420U+1F3E1 HOUSE WITH GARDEN ðŸ¡
421U+1F3E2 OFFICE BUILDING ðŸ¢
422U+1F3E3 JAPANESE POST OFFICE 〒
423U+1F3E4 EUROPEAN POST OFFICE ðŸ¤
424U+1F3E5 HOSPITAL ðŸ¥
425U+1F3E6 BANK ðŸ¦
426U+1F3E7 AUTOMATED TELLER MACHINE ðŸ§
427U+1F3E8 HOTEL ðŸ¨
428U+1F3E9 LOVE HOTEL ðŸ©
429U+1F3EA CONVENIENCE STORE ðŸª
430U+1F3EB SCHOOL ðŸ«
431U+1F3EC DEPARTMENT STORE ðŸ¬
432U+1F3ED FACTORY ðŸ­
433U+1F3EE IZAKAYA LANTERN ðŸ®
434U+1F3EF JAPANESE CASTLE ðŸ¯
435U+1F3F0 EUROPEAN CASTLE ðŸ°
436U+1F3F3 WAVING WHITE FLAG ðŸ³
437U+1F3F4 WAVING BLACK FLAG ðŸ´
438U+1F3F5 ROSETTE ðŸµ
439U+1F3F7 LABEL ðŸ·
440U+1F3F8 BADMINTON RACQUET AND SHUTTLECOCK ðŸ¸
441U+1F3F9 BOW AND ARROW ðŸ¹
442U+1F3FA AMPHORA ðŸº
443U+1F3FB EMOJI MODIFIER FITZPATRICK TYPE-1-2 ðŸ»
444U+1F3FC EMOJI MODIFIER FITZPATRICK TYPE-3 ðŸ¼
445U+1F3FD EMOJI MODIFIER FITZPATRICK TYPE-4 ðŸ½
446U+1F3FE EMOJI MODIFIER FITZPATRICK TYPE-5 ðŸ¾
447U+1F3FF EMOJI MODIFIER FITZPATRICK TYPE-6 ðŸ¿
448U+1F400 RAT ðŸ€
449U+1F401 MOUSE ðŸ
450U+1F402 OX ðŸ‚
451U+1F403 WATER BUFFALO ðŸƒ
452U+1F404 COW ðŸ„
453U+1F405 TIGER ðŸ…
454U+1F406 LEOPARD ðŸ†
455U+1F407 RABBIT ðŸ‡
456U+1F408 CAT ðŸˆ
457U+1F409 DRAGON ðŸ‰
458U+1F40A CROCODILE ðŸŠ
459U+1F40B WHALE ðŸ‹
460U+1F40C SNAIL ðŸŒ
461U+1F40D SNAKE ðŸ
462U+1F40E HORSE ðŸŽ
463U+1F40F RAM ðŸ
464U+1F410 GOAT ðŸ
465U+1F411 SHEEP ðŸ‘
466U+1F412 MONKEY ðŸ’
467U+1F413 ROOSTER ðŸ“
468U+1F414 CHICKEN ðŸ”
469U+1F415 DOG ðŸ•
470U+1F416 PIG ðŸ–
471U+1F417 BOAR ðŸ—
472U+1F418 ELEPHANT ðŸ˜
473U+1F419 OCTOPUS ðŸ™
474U+1F41A SPIRAL SHELL ðŸš
475U+1F41B BUG Bug
476U+1F41C ANT ðŸœ
477U+1F41D HONEYBEE ðŸ
478U+1F41E LADY BEETLE ðŸž
479U+1F41F FISH ðŸŸ
480U+1F420 TROPICAL FISH ðŸ 
481U+1F421 BLOWFISH ðŸ¡
482U+1F422 TURTLE ðŸ¢
483U+1F423 HATCHING CHICK ðŸ£
484U+1F424 BABY CHICK ðŸ¤
485U+1F425 FRONT-FACING BABY CHICK ðŸ¥
486U+1F426 BIRD ðŸ¦
487U+1F427 PENGUIN ðŸ§
488U+1F428 KOALA ðŸ¨
489U+1F429 POODLE ðŸ©
490U+1F42A DROMEDARY CAMEL ðŸª
491U+1F42B BACTRIAN CAMEL ðŸ«
492U+1F42C DOLPHIN ðŸ¬
493U+1F42D MOUSE FACE ðŸ­
494U+1F42E COW FACE ðŸ®
495U+1F42F TIGER FACE ðŸ¯
496U+1F430 RABBIT FACE ðŸ°
497U+1F431 CAT FACE ðŸ±
498U+1F432 DRAGON FACE ðŸ²
499U+1F433 SPOUTING WHALE ðŸ³
500U+1F434 HORSE FACE ðŸ´
501U+1F435 MONKEY FACE ðŸµ
502U+1F436 DOG FACE ðŸ¶
503U+1F437 PIG FACE ðŸ·
504U+1F438 FROG FACE ðŸ¸
505U+1F439 HAMSTER FACE ðŸ¹
506U+1F43A WOLF FACE ðŸº
507U+1F43B BEAR FACE ðŸ»
508U+1F43C PANDA FACE ðŸ¼
509U+1F43D PIG NOSE ðŸ½
510U+1F43E PAW PRINTS ðŸ¾
511U+1F43F CHIPMUNK ðŸ¿
512U+1F440 EYES 👀
513U+1F441 EYE ðŸ‘
514U+1F442 EAR 👂
515U+1F443 NOSE 👃
516U+1F444 MOUTH 👄
517U+1F445 TONGUE 👅
518U+1F446 WHITE UP POINTING BACKHAND INDEX 👆
519U+1F447 WHITE DOWN POINTING BACKHAND INDEX 👇
520U+1F448 WHITE LEFT POINTING BACKHAND INDEX 👈
521U+1F449 WHITE RIGHT POINTING BACKHAND INDEX 👉
522U+1F44A FISTED HAND SIGN Fist (hand) 👊
523U+1F44B WAVING HAND SIGN 👋
524U+1F44C OK HAND SIGN 👌
525U+1F44D THUMBS UP SIGN ðŸ‘
526U+1F44E THUMBS DOWN SIGN 👎
527U+1F44F CLAPPING HANDS SIGN ðŸ‘
528U+1F450 OPEN HANDS SIGN ðŸ‘
529U+1F451 CROWN 👑
530U+1F452 WOMANS HAT 👒
531U+1F453 EYEGLASSES 👓
532U+1F454 NECKTIE 👔
533U+1F455 T-SHIRT 👕
534U+1F456 JEANS 👖
535U+1F457 DRESS 👗
536U+1F458 KIMONO 👘
537U+1F459 BIKINI 👙
538U+1F45A WOMANS CLOTHES 👚
539U+1F45B PURSE 👛
540U+1F45C HANDBAG 👜
541U+1F45D POUCH Pouch
542U+1F45E MANS SHOE 👞
543U+1F45F ATHLETIC SHOE 👟
544U+1F460 HIGH-HEELED SHOE 👠
545U+1F461 WOMANS SANDAL 👡
546U+1F462 WOMANS BOOTS 👢
547U+1F463 FOOTPRINTS 👣
548U+1F464 BUST IN SILHOUETTE 👤
549U+1F465 BUSTS IN SILHOUETTE 👥
550U+1F466 BOY 👦
551U+1F467 GIRL 👧
552U+1F468 MAN 👨
553U+1F469 WOMAN 👩
554U+1F46A FAMILY 👪
555U+1F46B MAN AND WOMAN HOLDING HANDS 👫
556U+1F46C TWO MEN HOLDING HANDS 👬
557U+1F46D TWO WOMEN HOLDING HANDS 👭
558U+1F46E POLICE OFFICER 👮
559U+1F46F WOMAN WITH BUNNY EARS 👯
560U+1F470 BRIDE WITH VEIL 👰
561U+1F471 PERSON WITH BLOND HAIR 👱
562U+1F472 MAN WITH GUA PI MAO 👲
563U+1F473 MAN WITH TURBAN 👳
564U+1F474 OLDER MAN 👴
565U+1F475 OLDER WOMAN 👵
566U+1F476 BABY 👶
567U+1F477 CONSTRUCTION WORKER 👷
568U+1F478 PRINCESS 👸
569U+1F479 JAPANESE OGRE 👹
570U+1F47A JAPANESE GOBLIN 👺
571U+1F47B GHOST 👻
572U+1F47C BABY ANGEL 👼
573U+1F47D EXTRATERRESTRIAL ALIEN 👽
574U+1F47F IMP 👿
575U+1F480 SKULL 💀
576U+1F482 GUARDSMAN 💂
577U+1F483 DANCER 💃
578U+1F484 LIPSTICK 💄
579U+1F485 NAIL POLISH 💅
580U+1F486 FACE MASSAGE 💆
581U+1F487 HAIRCUT 💇
582U+1F488 BARBER POLE 💈
583U+1F489 SYRINGE 💉
584U+1F48A PILL 💊
585U+1F48B KISS MARK 💋
586U+1F48C LOVE LETTER 💌
587U+1F48D RING ðŸ’
588U+1F48E GEM STONE 💎
589U+1F48F KISS ðŸ’
590U+1F490 BOUQUET ðŸ’
591U+1F491 COUPLE WITH HEART 💑
592U+1F492 WEDDING 💒
593U+1F493 BEATING HEART 💓
594U+1F494 BROKEN HEART 💔
595U+1F495 TWO HEARTS 💕
596U+1F496 SPARKLING HEART 💖
597U+1F497 GROWING HEART 💗
598U+1F498 HEART WITH ARROW 💘
599U+1F499 BLUE HEART 💙
600U+1F49A GREEN HEART 💚
601U+1F49B YELLOW HEART 💛
602U+1F49C PURPLE HEART 💜
603U+1F49D HEART WITH RIBBON ðŸ’
604U+1F49E REVOLVING HEARTS 💞
605U+1F49F HEART DECORATION 💟
606U+1F4A0 DIAMOND SHAPE WITH A DOT INSIDE 💠
607U+1F4A1 ELECTRIC LIGHT BULB 💡
608U+1F4A2 ANGER SYMBOL 💢
609U+1F4A3 BOMB 💣
610U+1F4A4 SLEEPING SYMBOL 💤
611U+1F4A5 COLLISION SYMBOL 💥
612U+1F4A6 SPLASHING SWEAT SYMBOL 💦
613U+1F4A7 DROPLET 💧
614U+1F4A8 DASH SYMBOL 💨
615U+1F4A9 PILE OF POO 💩
616U+1F4AA FLEXED BICEPS 💪
617U+1F4AB DIZZY SYMBOL 💫
618U+1F4AC SPEECH BALLOON 💬
619U+1F4AD THOUGHT BALLOON 💭
620U+1F4AE WHITE FLOWER 💮
621U+1F4AF HUNDRED POINTS SYMBOL 💯
622U+1F4B0 MONEY BAG 💰
623U+1F4B1 CURRENCY EXCHANGE 💱
624U+1F4B2 HEAVY DOLLAR SIGN 💲
625U+1F4B3 CREDIT CARD 💳
626U+1F4B4 BANKNOTE WITH YEN SIGN 💴
627U+1F4B5 BANKNOTE WITH DOLLAR SIGN 💵
628U+1F4B6 BANKNOTE WITH EURO SIGN 💶
629U+1F4B7 BANKNOTE WITH POUND SIGN 💷
630U+1F4B8 MONEY WITH WINGS 💸
631U+1F4B9 CHART WITH UPWARDS TREND AND YEN SIGN 💹
632U+1F4BA SEAT 💺
633U+1F4BB PERSONAL COMPUTER 💻
634U+1F4BC BRIEFCASE 💼
635U+1F4BD MINIDISC 💽
636U+1F4BE FLOPPY DISK 💾
637U+1F4BF OPTICAL DISC 💿
638U+1F4C0 DVD 📀
639U+1F4C1 FILE FOLDER ðŸ“
640U+1F4C2 OPEN FILE FOLDER 📂
641U+1F4C3 PAGE WITH CURL 📃
642U+1F4C4 PAGE FACING UP 📄
643U+1F4C5 CALENDAR 📅
644U+1F4C6 TEAR-OFF CALENDAR 📆
645U+1F4C7 CARD INDEX 📇
646U+1F4C8 CHART WITH UPWARDS TREND 📈
647U+1F4C9 CHART WITH DOWNWARDS TREND 📉
648U+1F4CA BAR CHART 📊
649U+1F4CB CLIPBOARD 📋
650U+1F4CC PUSHPIN 📌
651U+1F4CD ROUND PUSHPIN ðŸ“
652U+1F4CE PAPERCLIP 📎
653U+1F4CF STRAIGHT RULER ðŸ“
654U+1F4D0 TRIANGULAR RULER ðŸ“
655U+1F4D1 BOOKMARK TABS 📑
656U+1F4D2 LEDGER 📒
657U+1F4D3 NOTEBOOK 📓
658U+1F4D4 NOTEBOOK WITH DECORATIVE COVER 📔
659U+1F4D5 CLOSED BOOK 📕
660U+1F4D6 OPEN BOOK 📖
661U+1F4D7 GREEN BOOK 📗
662U+1F4D8 BLUE BOOK 📘
663U+1F4D9 ORANGE BOOK 📙
664U+1F4DA BOOKS 📚
665U+1F4DB NAME BADGE 📛
666U+1F4DC SCROLL 📜
667U+1F4DD MEMO ðŸ“
668U+1F4DE TELEPHONE RECEIVER 📞
669U+1F4DF PAGER 📟
670U+1F4E0 FAX MACHINE 📠
671U+1F4E1 SATELLITE ANTENNA 📡
672U+1F4E2 PUBLIC ADDRESS LOUDSPEAKER 📢
673U+1F4E3 CHEERING MEGAPHONE 📣
674U+1F4E4 OUTBOX TRAY 📤
675U+1F4E5 INBOX TRAY 📥
676U+1F4E6 PACKAGE 📦
677U+1F4E7 E-MAIL SYMBOL 📧
678U+1F4E8 INCOMING ENVELOPE 📨
679U+1F4E9 ENVELOPE WITH DOWNWARDS ARROW ABOVE 📩
680U+1F4EA CLOSED MAILBOX WITH LOWERED FLAG 📪
681U+1F4EB CLOSED MAILBOX WITH RAISED FLAG 📫
682U+1F4EC OPEN MAILBOX WITH RAISED FLAG 📬
683U+1F4ED OPEN MAILBOX WITH LOWERED FLAG 📭
684U+1F4EE POSTBOX 📮
685U+1F4EF POSTAL HORN 📯
686U+1F4F0 NEWSPAPER 📰
687U+1F4F1 MOBILE PHONE 📱
688U+1F4F2 MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT 📲
689U+1F4F3 VIBRATION MODE 📳
690U+1F4F4 MOBILE PHONE OFF 📴
691U+1F4F5 NO MOBILE PHONES 📵
692U+1F4F6 ANTENNA WITH BARS 📶
693U+1F4F7 CAMERA 📷
694U+1F4F8 CAMERA WITH FLASH 📸
695U+1F4F9 VIDEO CAMERA 📹
696U+1F4FA TELEVISION 📺
697U+1F4FB RADIO 📻
698U+1F4FC VIDEOCASSETTE 📼
699U+1F4FD FILM PROJECTOR 📽
700U+1F4FF PRAYER BEADS 📿
701U+1F500 TWISTED RIGHTWARDS ARROWS 🔀
702U+1F501 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS ðŸ”
703U+1F502 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY 🔂
704U+1F503 CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS 🔃
705U+1F504 ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS 🔄
706U+1F505 LOW BRIGHTNESS SYMBOL 🔅
707U+1F506 HIGH BRIGHTNESS SYMBOL 🔆
708U+1F507 SPEAKER WITH CANCELLATION STROKE Mute
709U+1F508 SPEAKER 🔈
710U+1F509 SPEAKER WITH ONE SOUND WAVE 🔉
711U+1F50A SPEAKER WITH THREE SOUND WAVES 🔊
712U+1F50B BATTERY 🔋
713U+1F50C ELECTRIC PLUG 🔌
714U+1F50D LEFT-POINTING MAGNIFYING GLASS ðŸ”
715U+1F50E RIGHT-POINTING MAGNIFYING GLASS 🔎
716U+1F50F LOCK WITH INK PEN ðŸ”
717U+1F510 CLOSED LOCK WITH KEY ðŸ”
718U+1F511 KEY 🔑
719U+1F512 LOCK 🔒
720U+1F513 OPEN LOCK 🔓
721U+1F514 BELL Bell character
722U+1F515 BELL WITH CANCELLATION STROKE 🔕
723U+1F516 BOOKMARK 🔖
724U+1F517 LINK SYMBOL 🔗
725U+1F518 RADIO BUTTON 🔘
726U+1F519 BACK WITH LEFTWARDS ARROW ABOVE 🔙
727U+1F51A END WITH LEFTWARDS ARROW ABOVE 🔚
728U+1F51B ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE 🔛
729U+1F51C SOON WITH RIGHTWARDS ARROW ABOVE 🔜
730U+1F51D TOP WITH UPWARDS ARROW ABOVE ðŸ”
731U+1F51E NO ONE UNDER EIGHTEEN SYMBOL Age of majority 🔞
732U+1F51F KEYCAP TEN 🔟
733U+1F520 INPUT SYMBOL FOR LATIN CAPITAL LETTERS 🔠
734U+1F521 INPUT SYMBOL FOR LATIN SMALL LETTERS 🔡
735U+1F522 INPUT SYMBOL FOR NUMBERS 🔢
736U+1F523 INPUT SYMBOL FOR SYMBOLS 🔣
737U+1F524 INPUT SYMBOL FOR LATIN LETTERS 🔤
738U+1F525 FIRE 🔥
739U+1F526 ELECTRIC TORCH 🔦
740U+1F527 WRENCH 🔧
741U+1F528 HAMMER 🔨
742U+1F529 NUT AND BOLT 🔩
743U+1F52A HOCHO 🔪
744U+1F52B PISTOL 🔫
745U+1F52C MICROSCOPE 🔬
746U+1F52D TELESCOPE 🔭
747U+1F52E CRYSTAL BALL 🔮
748U+1F52F SIX POINTED STAR WITH MIDDLE DOT 🔯
749U+1F530 JAPANESE SYMBOL FOR BEGINNER 🔰
750U+1F531 TRIDENT EMBLEM 🔱
751U+1F532 BLACK SQUARE BUTTON 🔲
752U+1F533 WHITE SQUARE BUTTON 🔳
753U+1F534 LARGE RED CIRCLE 🔴
754U+1F535 LARGE BLUE CIRCLE 🔵
755U+1F536 LARGE ORANGE DIAMOND 🔶
756U+1F537 LARGE BLUE DIAMOND 🔷
757U+1F538 SMALL ORANGE DIAMOND 🔸
758U+1F539 SMALL BLUE DIAMOND 🔹
759U+1F53A UP-POINTING RED TRIANGLE 🔺
760U+1F53B DOWN-POINTING RED TRIANGLE 🔻
761U+1F53C UP-POINTING SMALL RED TRIANGLE 🔼
762U+1F53D DOWN-POINTING SMALL RED TRIANGLE 🔽
763U+1F549 OM SYMBOL 🕉
764U+1F54A DOVE OF PEACE 🕊
765U+1F54B KAABA 🕋
766U+1F54C MOSQUE 🕌
767U+1F54D SYNAGOGUE ðŸ•
768U+1F54E MENORAH WITH NINE BRANCHES 🕎
769U+1F550 CLOCK FACE ONE OCLOCK ðŸ•
770U+1F551 CLOCK FACE TWO OCLOCK 🕑
771U+1F552 CLOCK FACE THREE OCLOCK 🕒
772U+1F553 CLOCK FACE FOUR OCLOCK 🕓
773U+1F554 CLOCK FACE FIVE OCLOCK 🕔
774U+1F555 CLOCK FACE SIX OCLOCK 🕕
775U+1F556 CLOCK FACE SEVEN OCLOCK 🕖
776U+1F557 CLOCK FACE EIGHT OCLOCK 🕗
777U+1F558 CLOCK FACE NINE OCLOCK 🕘
778U+1F559 CLOCK FACE TEN OCLOCK 🕙
779U+1F55A CLOCK FACE ELEVEN OCLOCK 🕚
780U+1F55B CLOCK FACE TWELVE OCLOCK 🕛
781U+1F55C CLOCK FACE ONE-THIRTY 🕜
782U+1F55D CLOCK FACE TWO-THIRTY ðŸ•
783U+1F55E CLOCK FACE THREE-THIRTY 🕞
784U+1F55F CLOCK FACE FOUR-THIRTY 🕟
785U+1F560 CLOCK FACE FIVE-THIRTY 🕠
786U+1F561 CLOCK FACE SIX-THIRTY 🕡
787U+1F562 CLOCK FACE SEVEN-THIRTY 🕢
788U+1F563 CLOCK FACE EIGHT-THIRTY 🕣
789U+1F564 CLOCK FACE NINE-THIRTY 🕤
790U+1F565 CLOCK FACE TEN-THIRTY 🕥
791U+1F566 CLOCK FACE ELEVEN-THIRTY 🕦
792U+1F567 CLOCK FACE TWELVE-THIRTY 🕧
793U+1F56F CANDLE 🕯
794U+1F570 MANTELPIECE CLOCK 🕰
795U+1F573 HOLE Hole 🕳
796U+1F574 MAN IN BUSINESS SUIT LEVITATING 🕴
797U+1F575 SLEUTH OR SPY 🕵
798U+1F576 DARK SUNGLASSES 🕶
799U+1F577 SPIDER 🕷
800U+1F578 SPIDER WEB 🕸
801U+1F579 JOYSTICK 🕹
802U+1F57A MAN DANCING 🕺
803U+1F587 LINKED PAPERCLIPS 🖇
804U+1F58A LOWER LEFT BALLPOINT PEN 🖊
805U+1F58B LOWER LEFT FOUNTAIN PEN 🖋
806U+1F58C LOWER LEFT PAINTBRUSH 🖌
807U+1F58D LOWER LEFT CRAYON ðŸ–
808U+1F590 RAISED HAND WITH FINGERS SPLAYED ðŸ–
809U+1F595 REVERSED HAND WITH MIDDLE FINGER EXTENDED 🖕
810U+1F596 RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS 🖖
811U+1F5A4 BLACK HEART 🖤
812U+1F5A5 DESKTOP COMPUTER 🖥
813U+1F5A8 PRINTER 🖨
814U+1F5B1 THREE BUTTON MOUSE 🖱
815U+1F5B2 TRACKBALL 🖲
816U+1F5BC FRAME WITH PICTURE 🖼
817U+1F5C2 CARD INDEX DIVIDERS 🗂
818U+1F5C3 CARD FILE BOX 🗃
819U+1F5C4 FILE CABINET 🗄
820U+1F5D1 WASTEBASKET 🗑
821U+1F5D2 SPIRAL NOTE PAD 🗒
822U+1F5D3 SPIRAL CALENDAR PAD 🗓
823U+1F5DC COMPRESSION 🗜
824U+1F5DD OLD KEY ðŸ—
825U+1F5DE ROLLED-UP NEWSPAPER 🗞
826U+1F5E1 DAGGER KNIFE 🗡
827U+1F5E3 SPEAKING HEAD IN SILHOUETTE 🗣
828U+1F5E8 LEFT SPEECH BUBBLE 🗨
829U+1F5EF RIGHT ANGER BUBBLE 🗯
830U+1F5F3 BALLOT BOX WITH BALLOT 🗳
831U+1F5FA WORLD MAP 🗺
832U+1F5FB MOUNT FUJI 🗻
833U+1F5FC TOKYO TOWER 🗼
834U+1F5FD STATUE OF LIBERTY 🗽
835U+1F5FE SILHOUETTE OF JAPAN 🗾
836U+1F5FF MOYAI 🗿
837U+1F600 GRINNING FACE 😀
838U+1F601 GRINNING FACE WITH SMILING EYES ðŸ˜
839U+1F602 FACE WITH TEARS OF JOY 😂
840U+1F603 SMILING FACE WITH OPEN MOUTH 😃
841U+1F604 SMILING FACE WITH OPEN MOUTH AND SMILING EYES 😄
842U+1F605 SMILING FACE WITH OPEN MOUTH AND COLD SWEAT 😅
843U+1F606 SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES 😆
844U+1F607 SMILING FACE WITH HALO 😇
845U+1F608 SMILING FACE WITH HORNS 😈
846U+1F609 WINKING FACE 😉
847U+1F60A SMILING FACE WITH SMILING EYES 😊
848U+1F60B FACE SAVOURING DELICIOUS FOOD 😋
849U+1F60C RELIEVED FACE 😌
850U+1F60D SMILING FACE WITH HEART-SHAPED EYES ðŸ˜
851U+1F60E SMILING FACE WITH SUNGLASSES 😎
852U+1F60F SMIRKING FACE ðŸ˜
853U+1F610 NEUTRAL FACE ðŸ˜
854U+1F611 EXPRESSIONLESS FACE 😑
855U+1F612 UNAMUSED FACE 😒
856U+1F613 FACE WITH COLD SWEAT 😓
857U+1F614 PENSIVE FACE 😔
858U+1F615 CONFUSED FACE 😕
859U+1F616 CONFOUNDED FACE 😖
860U+1F617 KISSING FACE 😗
861U+1F618 FACE THROWING A KISS 😘
862U+1F619 KISSING FACE WITH SMILING EYES 😙
863U+1F61A KISSING FACE WITH CLOSED EYES 😚
864U+1F61B FACE WITH STUCK-OUT TONGUE 😛
865U+1F61C FACE WITH STUCK-OUT TONGUE AND WINKING EYE 😜
866U+1F61D FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES ðŸ˜
867U+1F61E DISAPPOINTED FACE 😞
868U+1F61F WORRIED FACE 😟
869U+1F620 ANGRY FACE 😠
870U+1F621 POUTING FACE 😡
871U+1F622 CRYING FACE 😢
872U+1F623 PERSEVERING FACE 😣
873U+1F624 FACE WITH LOOK OF TRIUMPH 😤
874U+1F625 DISAPPOINTED BUT RELIEVED FACE 😥
875U+1F626 FROWNING FACE WITH OPEN MOUTH 😦
876U+1F627 ANGUISHED FACE 😧
877U+1F628 FEARFUL FACE 😨
878U+1F629 WEARY FACE 😩
879U+1F62A SLEEPY FACE 😪
880U+1F62B TIRED FACE 😫
881U+1F62C GRIMACING FACE 😬
882U+1F62D LOUDLY CRYING FACE 😭
883U+1F62E FACE WITH OPEN MOUTH 😮
884U+1F62F HUSHED FACE 😯
885U+1F630 FACE WITH OPEN MOUTH AND COLD SWEAT 😰
886U+1F631 FACE SCREAMING IN FEAR 😱
887U+1F632 ASTONISHED FACE 😲
888U+1F633 FLUSHED FACE 😳
889U+1F634 SLEEPING FACE 😴
890U+1F635 DIZZY FACE 😵
891U+1F636 FACE WITHOUT MOUTH 😶
892U+1F637 FACE WITH MEDICAL MASK 😷
893U+1F638 GRINNING CAT FACE WITH SMILING EYES 😸
894U+1F639 CAT FACE WITH TEARS OF JOY 😹
895U+1F63A SMILING CAT FACE WITH OPEN MOUTH 😺
896U+1F63B SMILING CAT FACE WITH HEART-SHAPED EYES 😻
897U+1F63C CAT FACE WITH WRY SMILE 😼
898U+1F63D KISSING CAT FACE WITH CLOSED EYES 😽
899U+1F63E POUTING CAT FACE 😾
900U+1F63F CRYING CAT FACE 😿
901U+1F640 WEARY CAT FACE 🙀
902U+1F641 SLIGHTLY FROWNING FACE ðŸ™
903U+1F642 SLIGHTLY SMILING FACE 🙂
904U+1F643 UPSIDE-DOWN FACE 🙃
905U+1F644 FACE WITH ROLLING EYES 🙄
906U+1F645 FACE WITH NO GOOD GESTURE 🙅
907U+1F646 FACE WITH OK GESTURE 🙆
908U+1F647 PERSON BOWING DEEPLY 🙇
909U+1F648 SEE-NO-EVIL MONKEY 🙈
910U+1F649 HEAR-NO-EVIL MONKEY 🙉
911U+1F64A SPEAK-NO-EVIL MONKEY 🙊
912U+1F64B HAPPY PERSON RAISING ONE HAND 🙋
913U+1F64C PERSON RAISING BOTH HANDS IN CELEBRATION 🙌
914U+1F64D PERSON FROWNING ðŸ™
915U+1F64E PERSON WITH POUTING FACE 🙎
916U+1F64F PERSON WITH FOLDED HANDS ðŸ™
917U+1F680 ROCKET 🚀
918U+1F681 HELICOPTER ðŸš
919U+1F682 STEAM LOCOMOTIVE 🚂
920U+1F683 RAILWAY CAR 🚃
921U+1F684 HIGH-SPEED TRAIN 🚄
922U+1F685 HIGH-SPEED TRAIN WITH BULLET NOSE 🚅
923U+1F686 TRAIN 🚆
924U+1F687 METRO 🚇
925U+1F688 LIGHT RAIL 🚈
926U+1F689 STATION 🚉
927U+1F68A TRAM 🚊
928U+1F68B TRAM CAR 🚋
929U+1F68C BUS 🚌
930U+1F68D ONCOMING BUS ðŸš
931U+1F68E TROLLEYBUS 🚎
932U+1F68F BUS STOP ðŸš
933U+1F690 MINIBUS ðŸš
934U+1F691 AMBULANCE 🚑
935U+1F692 FIRE ENGINE 🚒
936U+1F693 POLICE CAR 🚓
937U+1F694 ONCOMING POLICE CAR 🚔
938U+1F695 TAXI 🚕
939U+1F696 ONCOMING TAXI 🚖
940U+1F697 AUTOMOBILE 🚗
941U+1F698 ONCOMING AUTOMOBILE 🚘
942U+1F699 RECREATIONAL VEHICLE 🚙
943U+1F69A DELIVERY TRUCK 🚚
944U+1F69B ARTICULATED LORRY 🚛
945U+1F69C TRACTOR 🚜
946U+1F69D MONORAIL ðŸš
947U+1F69E MOUNTAIN RAILWAY 🚞
948U+1F69F SUSPENSION RAILWAY 🚟
949U+1F6A0 MOUNTAIN CABLEWAY 🚠
950U+1F6A1 AERIAL TRAMWAY 🚡
951U+1F6A2 SHIP 🚢
952U+1F6A3 ROWBOAT 🚣
953U+1F6A4 SPEEDBOAT 🚤
954U+1F6A5 HORIZONTAL TRAFFIC LIGHT 🚥
955U+1F6A6 VERTICAL TRAFFIC LIGHT 🚦
956U+1F6A7 CONSTRUCTION SIGN 🚧
957U+1F6A8 POLICE CARS REVOLVING LIGHT 🚨
958U+1F6A9 TRIANGULAR FLAG ON POST 🚩
959U+1F6AA DOOR 🚪
960U+1F6AB NO ENTRY SIGN 🚫
961U+1F6AC SMOKING SYMBOL 🚬
962U+1F6AD NO SMOKING SYMBOL 🚭
963U+1F6AE PUT LITTER IN ITS PLACE SYMBOL 🚮
964U+1F6AF DO NOT LITTER SYMBOL 🚯
965U+1F6B0 POTABLE WATER SYMBOL 🚰
966U+1F6B1 NON-POTABLE WATER SYMBOL 🚱
967U+1F6B2 BICYCLE 🚲
968U+1F6B3 NO BICYCLES 🚳
969U+1F6B4 BICYCLIST 🚴
970U+1F6B5 MOUNTAIN BICYCLIST 🚵
971U+1F6B6 PEDESTRIAN 🚶
972U+1F6B7 NO PEDESTRIANS 🚷
973U+1F6B8 CHILDREN CROSSING 🚸
974U+1F6B9 MENS SYMBOL 🚹
975U+1F6BA WOMENS SYMBOL 🚺
976U+1F6BB RESTROOM 🚻
977U+1F6BC BABY SYMBOL 🚼
978U+1F6BD TOILET 🚽
979U+1F6BE WATER CLOSET 🚾
980U+1F6BF SHOWER 🚿
981U+1F6C0 BATH 🛀
982U+1F6C1 BATHTUB ðŸ›
983U+1F6C2 PASSPORT CONTROL 🛂
984U+1F6C3 CUSTOMS 🛃
985U+1F6C4 BAGGAGE CLAIM 🛄
986U+1F6C5 LEFT LUGGAGE 🛅
987U+1F6CB COUCH AND LAMP 🛋
988U+1F6CC SLEEPING ACCOMMODATION 🛌
989U+1F6CD SHOPPING BAGS ðŸ›
990U+1F6CE BELLHOP BELL 🛎
991U+1F6CF BED ðŸ›
992U+1F6D0 PLACE OF WORSHIP ðŸ›
993U+1F6D1 OCTAGONAL SIGN 🛑
994U+1F6D2 SHOPPING TROLLEY 🛒
995U+1F6D5 HINDU TEMPLE 🛕
996U+1F6D6 HUT 🛖
997U+1F6D7 ELEVATOR 🛗
998U+1F6E0 HAMMER AND WRENCH 🛠
999U+1F6E1 SHIELD 🛡
1000U+1F6E2 OIL DRUM 🛢
1001U+1F6E3 MOTORWAY 🛣
1002U+1F6E4 RAILWAY TRACK 🛤
1003U+1F6E5 MOTOR BOAT 🛥
1004U+1F6E9 SMALL AIRPLANE 🛩
1005U+1F6EB AIRPLANE DEPARTURE 🛫
1006U+1F6EC AIRPLANE ARRIVING 🛬
1007U+1F6F0 SATELLITE 🛰
1008U+1F6F3 PASSENGER SHIP 🛳
1009U+1F6F4 SCOOTER 🛴
1010U+1F6F5 MOTOR SCOOTER 🛵
1011U+1F6F6 CANOE 🛶
1012U+1F6F7 SLED 🛷
1013U+1F6F8 FLYING SAUCER 🛸
1014U+1F6F9 SKATEBOARD 🛹
1015U+1F6FA AUTO RICKSHAW 🛺
1016U+1F6FB PICKUP TRUCK 🛻
1017U+1F6FC ROLLER SKATE 🛼
1018U+1F7E0 LARGE ORANGE CIRCLE 🟠
1019U+1F7E1 LARGE YELLOW CIRCLE 🟡
1020U+1F7E2 LARGE GREEN CIRCLE 🟢
1021U+1F7E3 LARGE PURPLE CIRCLE 🟣
1022U+1F7E4 LARGE BROWN CIRCLE 🟤
1023U+1F7E5 LARGE RED SQUARE 🟥
1024U+1F7E6 LARGE BLUE SQUARE 🟦
1025U+1F7E7 LARGE ORANGE SQUARE 🟧
1026U+1F7E8 LARGE YELLOW SQUARE 🟨
1027U+1F7E9 LARGE GREEN SQUARE 🟩
1028U+1F7EA LARGE PURPLE SQUARE 🟪
1029U+1F7EB LARGE BROWN SQUARE 🟫
1030U+1F90C PINCHED FINGERS 🤌
1031U+1F90D WHITE HEART ðŸ¤
1032U+1F90E BROWN HEART 🤎
1033U+1F90F PINCHING HAND ðŸ¤
1034U+1F910 ZIPPER-MOUTH FACE ðŸ¤
1035U+1F911 MONEY-MOUTH FACE 🤑
1036U+1F912 FACE WITH THERMOMETER 🤒
1037U+1F913 NERD FACE 🤓
1038U+1F914 THINKING FACE 🤔
1039U+1F915 FACE WITH HEAD-BANDAGE 🤕
1040U+1F916 ROBOT FACE 🤖
1041U+1F917 HUGGING FACE 🤗
1042U+1F918 SIGN OF THE HORNS 🤘
1043U+1F919 CALL ME HAND 🤙
1044U+1F91A RAISED BACK OF HAND 🤚
1045U+1F91B LEFT-FACING FIST 🤛
1046U+1F91C RIGHT-FACING FIST 🤜
1047U+1F91D HANDSHAKE ðŸ¤
1048U+1F91E HAND WITH INDEX AND MIDDLE FINGERS CROSSED 🤞
1049U+1F91F I LOVE YOU HAND SIGN 🤟
1050U+1F920 FACE WITH COWBOY HAT 🤠
1051U+1F921 CLOWN FACE 🤡
1052U+1F922 NAUSEATED FACE 🤢
1053U+1F923 ROLLING ON THE FLOOR LAUGHING 🤣
1054U+1F924 DROOLING FACE 🤤
1055U+1F925 LYING FACE 🤥
1056U+1F926 FACE PALM 🤦
1057U+1F927 SNEEZING FACE 🤧
1058U+1F928 FACE WITH ONE EYEBROW RAISED 🤨
1059U+1F929 GRINNING FACE WITH STAR EYES 🤩
1060U+1F92A GRINNING FACE WITH ONE LARGE AND ONE SMALL EYE 🤪
1061U+1F92B FACE WITH FINGER COVERING CLOSED LIPS 🤫
1062U+1F92C SERIOUS FACE WITH SYMBOLS COVERING MOUTH 🤬
1063U+1F92D SMILING FACE WITH SMILING EYES AND HAND COVERING MOUTH 🤭
1064U+1F92E FACE WITH OPEN MOUTH VOMITING 🤮
1065U+1F92F SHOCKED FACE WITH EXPLODING HEAD 🤯
1066U+1F930 PREGNANT WOMAN 🤰
1067U+1F931 BREAST-FEEDING 🤱
1068U+1F932 PALMS UP TOGETHER 🤲
1069U+1F933 SELFIE 🤳
1070U+1F934 PRINCE 🤴
1071U+1F935 MAN IN TUXEDO 🤵
1072U+1F936 MOTHER CHRISTMAS 🤶
1073U+1F937 SHRUG 🤷
1074U+1F938 PERSON DOING CARTWHEEL 🤸
1075U+1F939 JUGGLING 🤹
1076U+1F93A FENCER 🤺
1077U+1F93C WRESTLERS 🤼
1078U+1F93D WATER POLO 🤽
1079U+1F93E HANDBALL 🤾
1080U+1F93F DIVING MASK 🤿
1081U+1F940 WILTED FLOWER 🥀
1082U+1F941 DRUM WITH DRUMSTICKS ðŸ¥
1083U+1F942 CLINKING GLASSES 🥂
1084U+1F943 TUMBLER GLASS 🥃
1085U+1F944 SPOON 🥄
1086U+1F945 GOAL NET 🥅
1087U+1F947 FIRST PLACE MEDAL 🥇
1088U+1F948 SECOND PLACE MEDAL 🥈
1089U+1F949 THIRD PLACE MEDAL 🥉
1090U+1F94A BOXING GLOVE 🥊
1091U+1F94B MARTIAL ARTS UNIFORM 🥋
1092U+1F94C CURLING STONE 🥌
1093U+1F94D LACROSSE STICK AND BALL ðŸ¥
1094U+1F94E SOFTBALL 🥎
1095U+1F94F FLYING DISC ðŸ¥
1096U+1F950 CROISSANT ðŸ¥
1097U+1F951 AVOCADO 🥑
1098U+1F952 CUCUMBER 🥒
1099U+1F953 BACON 🥓
1100U+1F954 POTATO 🥔
1101U+1F955 CARROT 🥕
1102U+1F956 BAGUETTE BREAD 🥖
1103U+1F957 GREEN SALAD 🥗
1104U+1F958 SHALLOW PAN OF FOOD 🥘
1105U+1F959 STUFFED FLATBREAD 🥙
1106U+1F95A EGG 🥚
1107U+1F95B GLASS OF MILK 🥛
1108U+1F95C PEANUTS 🥜
1109U+1F95D KIWIFRUIT ðŸ¥
1110U+1F95E PANCAKES 🥞
1111U+1F95F DUMPLING 🥟
1112U+1F960 FORTUNE COOKIE 🥠
1113U+1F961 TAKEOUT BOX 🥡
1114U+1F962 CHOPSTICKS 🥢
1115U+1F963 BOWL WITH SPOON 🥣
1116U+1F964 CUP WITH STRAW 🥤
1117U+1F965 COCONUT 🥥
1118U+1F966 BROCCOLI 🥦
1119U+1F967 PIE 🥧
1120U+1F968 PRETZEL 🥨
1121U+1F969 CUT OF MEAT 🥩
1122U+1F96A SANDWICH 🥪
1123U+1F96B CANNED FOOD 🥫
1124U+1F96C LEAFY GREEN 🥬
1125U+1F96D MANGO 🥭
1126U+1F96E MOON CAKE 🥮
1127U+1F96F BAGEL 🥯
1128U+1F970 SMILING FACE WITH SMILING EYES AND THREE HEARTS 🥰
1129U+1F971 YAWNING FACE 🥱
1130U+1F972 SMILING FACE WITH TEAR 🥲
1131U+1F973 FACE WITH PARTY HORN AND PARTY HAT 🥳
1132U+1F974 FACE WITH UNEVEN EYES AND WAVY MOUTH 🥴
1133U+1F975 OVERHEATED FACE 🥵
1134U+1F976 FREEZING FACE 🥶
1135U+1F977 NINJA 🥷
1136U+1F978 DISGUISED FACE 🥸
1137U+1F97A FACE WITH PLEADING EYES 🥺
1138U+1F97B SARI 🥻
1139U+1F97C LAB COAT 🥼
1140U+1F97D GOGGLES 🥽
1141U+1F97E HIKING BOOT 🥾
1142U+1F97F FLAT SHOE 🥿
1143U+1F980 CRAB 🦀
1144U+1F981 LION FACE ðŸ¦
1145U+1F982 SCORPION 🦂
1146U+1F983 TURKEY 🦃
1147U+1F984 UNICORN FACE 🦄
1148U+1F985 EAGLE 🦅
1149U+1F986 DUCK 🦆
1150U+1F987 BAT 🦇
1151U+1F988 SHARK 🦈
1152U+1F989 OWL 🦉
1153U+1F98A FOX FACE 🦊
1154U+1F98B BUTTERFLY 🦋
1155U+1F98C DEER 🦌
1156U+1F98D GORILLA ðŸ¦
1157U+1F98E LIZARD 🦎
1158U+1F98F RHINOCEROS ðŸ¦
1159U+1F990 SHRIMP ðŸ¦
1160U+1F991 SQUID 🦑
1161U+1F992 GIRAFFE FACE 🦒
1162U+1F993 ZEBRA FACE 🦓
1163U+1F994 HEDGEHOG 🦔
1164U+1F995 SAUROPOD 🦕
1165U+1F996 T-REX 🦖
1166U+1F997 CRICKET 🦗
1167U+1F998 KANGAROO 🦘
1168U+1F999 LLAMA 🦙
1169U+1F99A PEACOCK 🦚
1170U+1F99B HIPPOPOTAMUS 🦛
1171U+1F99C PARROT 🦜
1172U+1F99D RACCOON ðŸ¦
1173U+1F99E LOBSTER 🦞
1174U+1F99F MOSQUITO 🦟
1175U+1F9A0 MICROBE 🦠
1176U+1F9A1 BADGER 🦡
1177U+1F9A2 SWAN 🦢
1178U+1F9A3 MAMMOTH 🦣
1179U+1F9A4 DODO 🦤
1180U+1F9A5 SLOTH 🦥
1181U+1F9A6 OTTER 🦦
1182U+1F9A7 ORANGUTAN 🦧
1183U+1F9A8 SKUNK 🦨
1184U+1F9A9 FLAMINGO 🦩
1185U+1F9AA OYSTER 🦪
1186U+1F9AB BEAVER 🦫
1187U+1F9AC BISON 🦬
1188U+1F9AD SEAL 🦭
1189U+1F9AE GUIDE DOG 🦮
1190U+1F9AF PROBING CANE 🦯
1191U+1F9B0 EMOJI COMPONENT RED HAIR 🦰
1192U+1F9B1 EMOJI COMPONENT CURLY HAIR 🦱
1193U+1F9B2 EMOJI COMPONENT BALD 🦲
1194U+1F9B3 EMOJI COMPONENT WHITE HAIR 🦳
1195U+1F9B4 BONE 🦴
1196U+1F9B5 LEG 🦵
1197U+1F9B6 FOOT 🦶
1198U+1F9B7 TOOTH 🦷
1199U+1F9B8 SUPERHERO 🦸
1200U+1F9B9 SUPERVILLAIN 🦹
1201U+1F9BA SAFETY VEST 🦺
1202U+1F9BB EAR WITH HEARING AID 🦻
1203U+1F9BC MOTORIZED WHEELCHAIR 🦼
1204U+1F9BD MANUAL WHEELCHAIR 🦽
1205U+1F9BE MECHANICAL ARM 🦾
1206U+1F9BF MECHANICAL LEG 🦿
1207U+1F9C0 CHEESE WEDGE 🧀
1208U+1F9C1 CUPCAKE ðŸ§
1209U+1F9C2 SALT SHAKER 🧂
1210U+1F9C3 BEVERAGE BOX 🧃
1211U+1F9C4 GARLIC 🧄
1212U+1F9C5 ONION 🧅
1213U+1F9C6 FALAFEL 🧆
1214U+1F9C7 WAFFLE 🧇
1215U+1F9C8 BUTTER 🧈
1216U+1F9C9 MATE DRINK 🧉
1217U+1F9CA ICE CUBE 🧊
1218U+1F9CB BUBBLE TEA 🧋
1219U+1F9CD STANDING PERSON ðŸ§
1220U+1F9CE KNEELING PERSON 🧎
1221U+1F9CF DEAF PERSON ðŸ§
1222U+1F9D0 FACE WITH MONOCLE ðŸ§
1223U+1F9D1 ADULT 🧑
1224U+1F9D2 CHILD 🧒
1225U+1F9D3 OLDER ADULT 🧓
1226U+1F9D4 BEARDED PERSON 🧔
1227U+1F9D5 PERSON WITH HEADSCARF 🧕
1228U+1F9D6 PERSON IN STEAMY ROOM 🧖
1229U+1F9D7 PERSON CLIMBING 🧗
1230U+1F9D8 PERSON IN LOTUS POSITION 🧘
1231U+1F9D9 MAGE 🧙
1232U+1F9DA FAIRY 🧚
1233U+1F9DB VAMPIRE 🧛
1234U+1F9DC MERPERSON Merfolk 🧜
1235U+1F9DD ELF ðŸ§
1236U+1F9DE GENIE 🧞
1237U+1F9DF ZOMBIE 🧟
1238U+1F9E0 BRAIN 🧠
1239U+1F9E1 ORANGE HEART 🧡
1240U+1F9E2 BILLED CAP 🧢
1241U+1F9E3 SCARF 🧣
1242U+1F9E4 GLOVES 🧤
1243U+1F9E5 COAT 🧥
1244U+1F9E6 SOCKS 🧦
1245U+1F9E7 RED GIFT ENVELOPE 🧧
1246U+1F9E8 FIRECRACKER 🧨
1247U+1F9E9 JIGSAW PUZZLE PIECE 🧩
1248U+1F9EA TEST TUBE 🧪
1249U+1F9EB PETRI DISH 🧫
1250U+1F9EC DNA DOUBLE HELIX 🧬
1251U+1F9ED COMPASS 🧭
1252U+1F9EE ABACUS 🧮
1253U+1F9EF FIRE EXTINGUISHER 🧯
1254U+1F9F0 TOOLBOX 🧰
1255U+1F9F1 BRICK 🧱
1256U+1F9F2 MAGNET 🧲
1257U+1F9F3 LUGGAGE 🧳
1258U+1F9F4 LOTION BOTTLE 🧴
1259U+1F9F5 SPOOL OF THREAD 🧵
1260U+1F9F6 BALL OF YARN 🧶
1261U+1F9F7 SAFETY PIN 🧷
1262U+1F9F8 TEDDY BEAR 🧸
1263U+1F9F9 BROOM 🧹
1264U+1F9FA BASKET 🧺
1265U+1F9FB ROLL OF PAPER 🧻
1266U+1F9FC BAR OF SOAP 🧼
1267U+1F9FD SPONGE 🧽
1268U+1F9FE RECEIPT 🧾
1269U+1F9FF NAZAR AMULET 🧿
1270U+1FA70 BALLET SHOES 🩰
1271U+1FA71 ONE-PIECE SWIMSUIT 🩱
1272U+1FA72 BRIEFS 🩲
1273U+1FA73 SHORTS 🩳
1274U+1FA74 THONG SANDAL
1275U+1FA78 DROP OF BLOOD 🩸
1276U+1FA79 ADHESIVE BANDAGE 🩹
1277U+1FA7A STETHOSCOPE 🩺
1278U+1FA80 YO-YO 🪀
1279U+1FA81 KITE ðŸª
1280U+1FA82 PARACHUTE 🪂
1281U+1FA83 BOOMERANG 🪃
1282U+1FA84 MAGIC WAND 🪄
1283U+1FA85 PINATA 🪅
1284U+1FA86 NESTING DOLLS 🪆
1285U+1FA90 RINGED PLANET ðŸª
1286U+1FA91 CHAIR 🪑
1287U+1FA92 RAZOR 🪒
1288U+1FA93 AXE 🪓
1289U+1FA94 DIYA LAMP 🪔
1290U+1FA95 BANJO 🪕
1291U+1FA96 MILITARY HELMET 🪖
1292U+1FA97 ACCORDION 🪗
1293U+1FA98 LONG DRUM 🪘
1294U+1FA99 COIN 🪙
1295U+1FA9A CARPENTRY SAW 🪚
1296U+1FA9B SCREWDRIVER 🪛
1297U+1FA9C LADDER 🪜
1298U+1FA9D HOOK ðŸª
1299U+1FA9E MIRROR 🪞
1300U+1FA9F WINDOW 🪟
1301U+1FAA0 PLUNGER 🪠
1302U+1FAA1 SEWING NEEDLE 🪡
1303U+1FAA2 KNOT 🪢
1304U+1FAA3 BUCKET 🪣
1305U+1FAA4 MOUSE TRAP 🪤
1306U+1FAA5 TOOTHBRUSH 🪥
1307U+1FAA6 HEADSTONE 🪦
1308U+1FAA7 PLACARD 🪧
1309U+1FAA8 ROCK 🪨
1310U+1FAB0 FLY 🪰
1311U+1FAB1 WORM 🪱
1312U+1FAB2 BEETLE 🪲
1313U+1FAB3 COCKROACH 🪳
1314U+1FAB4 POTTED PLANT 🪴
1315U+1FAB5 WOOD 🪵
1316U+1FAB6 FEATHER 🪶
1317U+1FAC0 ANATOMICAL HEART 🫀
1318U+1FAC1 LUNGS ðŸ«
1319U+1FAC2 PEOPLE HUGGING 🫂
1320U+1FAD0 BLUEBERRIES ðŸ«
1321U+1FAD1 BELL PEPPER 🫑
1322U+1FAD2 OLIVE 🫒
1323U+1FAD3 FLATBREAD 🫓
1324U+1FAD4 TAMALE 🫔
1325U+1FAD5 FONDUE 🫕
1326U+1FAD6 TEAPOT ø¼Ÿ«–
diff --git a/.vim/vimrc b/.vim/vimrc
new file mode 100644
index 0000000..a3ea897
--- /dev/null
+++ b/.vim/vimrc
@@ -0,0 +1,104 @@
1" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
2" the call to :runtime you can find below. If you wish to change any of those
3" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
4" will be overwritten everytime an upgrade of the vim packages is performed.
5" It is recommended to make changes after sourcing debian.vim since it alters
6" the value of the 'compatible' option.
7
8" This line should not be removed as it ensures that various options are
9" properly set to work with the Vim-related packages available in Debian.
10runtime! debian.vim
11" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
12" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
13" any settings in these files.
14" If you don't want that to happen, uncomment the below line to prevent
15" defaults.vim from being loaded.
16" let g:skip_defaults_vim = 1
17
18" Uncomment the next line to make Vim more Vi-compatible
19" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
20" options, so any other options should be set AFTER setting 'compatible'.
21"set compatible
22
23" Vim5 and later versions support syntax highlighting. Uncommenting the next
24" line enables syntax highlighting by default.
25syntax on
26
27" If using a dark background within the editing area and syntax highlighting
28" turn on this option as well
29set background=dark
30
31" Uncomment the following to have Vim jump to the last position when
32" reopening a file
33"au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
34
35" Uncomment the following to have Vim load indentation rules and plugins
36" according to the detected filetype.
37filetype plugin indent on
38
39" The following are commented out as they cause vim to behave a lot
40" differently from regular Vi. They are highly recommended though.
41let mapleader =" " " Map leader
42set showcmd " Show (partial) command in status line.
43set showmatch " Show matching brackets.
44set ignorecase " Do case insensitive matching
45set smartcase " Do smart case matching
46set incsearch " Incremental search
47set autowrite " Automatically save before commands like :next and :make
48set hidden " Hide buffers when they are abandoned
49set mouse=a " Enable mouse usage (all modes)
50set number " Enable line numbers
51set relativenumber " Enable line numbers to be displayed relative to current position
52set tabstop=4 " Set default tab size to 4 spaces
53set autoindent " Keep current tab depth on new line
54colorscheme slate " Enable my custom colorscheme
55
56" Document compilation
57map <leader>c :!compile % <CR><CR>
58" Document Preview
59map <leader>p :!pdf-preview % <CR><CR>
60" Spell Check
61map <leader>s :setlocal spell! spelllang=en_us<CR>
62" Disable auto comment continuation
63autocmd filetype * set formatoptions-=cro
64
65
66" C mappings
67autocmd filetype c inoremap ;c /* */<Left><Left><Left>
68autocmd filetype c inoremap ;p printf(" \n");<Esc>5hi
69
70" Python mappings
71autocmd filetype python noremap <C-m> i<Return><Return><Return>def main():<Return>pass<Return><Return><Return>if __name__ == '__main__':<Return>main()<Esc>gg
72
73" Java 'IDE' remappings
74autocmd filetype java inoremap [p System.out.println();<Left><Left>
75autocmd filetype java noremap <C-m> ipublic class {<Return>public static void main(String[] args) {<Return><Return>}<Return>}<Esc>ggwwhhi
76autocmd filetype java noremap <C-c> ipublic class {<Return><Return>}<Esc>ggwwhhi
77
78" Groff Mappings
79autocmd filetype nroff inoremap ;c .\"
80autocmd filetype nroff inoremap ;b \*[BOLDER]'\*[BOLDERX] <Esc>F'cl
81autocmd filetype nroff inoremap ;h .HEADING
82
83" Restart sxhkd when config file is changed
84autocmd BufWritePost *sxhkdrc !pkill -SIGUSR1 sxhkd
85
86" Recompile and restart dwmblocks when file is changed
87autocmd BufWritePost ~/.local/src/dwmblocks/blocks.h !cd ~/.local/src/dwmblocks/; sudo make install && pkill dwmblocks; setsid -f dwmblocks
88
89" Recompile dwm when config.h is changed
90autocmd BufWritePost ~/.local/src/dwm/config.h !cd ~/.local/src/dwm/; sudo make install
91
92" Reload Xresources when saved
93autocmd BufWritePost ~/.config/x11/xresources !xrdb ~/.config/x11/xresources
94
95" Reload dunst after editing configuration file
96autocmd BufWritePost ~/.config/dunst/dunstrc !pkill dunst; setsid -f dunst
97
98"set completeopt =menuone,longest
99
100" Source a global configuration file if available
101if filereadable("/etc/vim/vimrc.local")
102 source /etc/vim/vimrc.local
103endif
104
diff --git a/.zprofile b/.zprofile
new file mode 120000
index 0000000..6928145
--- /dev/null
+++ b/.zprofile
@@ -0,0 +1 @@
.config/zsh/.zprofile \ No newline at end of file