This commit is contained in:
BobSlacker 2022-12-10 17:13:26 +01:00
commit d03bb9f39b
1405 changed files with 255247 additions and 0 deletions

11
LICENSE Normal file
View File

@ -0,0 +1,11 @@
Copyright 2022 Bob Slacker
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

79
README.md Normal file
View File

@ -0,0 +1,79 @@
# My dotfiles!
System and user configuration files backup.
[![OpenBaSeD](img/based.png)](img/based.png)
# Dependencies for the Puffy theme outside of this repo:
- [Radioactive pointer theme](https://github.com/alvatip/radioactive)
- [Hercules/oomox-baloon icon theme](https://www.gnome-look.org/p/1627603/)
# Installed packages:
- ImageMagick
- astrolog
- automake%1.15
- boost
- chromium
- cmake
- consolekit2
- coreutils
- deluge
- doxygen
- dunst
- emacsno_x11%emacs
- exa
- feh
- ffmpeg
- firefox
- gimp
- git
- gmake
- graphviz
- hexchat
- homebank
- hugoextended
- jpeg
- keepassxcbrowser
- kristall
- lemonbar
- lfm
- libiconv
- libreoffice
- lsw
- lxappearance
- lynis
- meld
- moc
- most
- mpv
- nano
- ncdu
- neofetch
- pcmanfm
- picom
- pkglocatedb
- portslist
- qbittorrent
- qt5ct
- quirks
- scrot
- shotcut
- speedtest-cli
- sshfs-fuse
- stow
- supertux
- sysclean
- tdesktop
- terminator
- tor-browser
- transset-df
- typespeed
- w3mimage
- wget
- wtf
- xarchiver
- xclip
- xdg-user-dirs
- xdotool
- xpdf
- youtube-dl
- zeromq

180
dotfiles/cwm/dot-cwmrc Normal file
View File

@ -0,0 +1,180 @@
# Defaults
sticky yes
snapdist 4
gap 27 0 0 0
moveamount 3
vtile 50
# set font for menus
fontname "fixed:pixelsize=13:style=semicondensed"
# remove all default keybindings
unbind-key all
# Layout
borderwidth 1
color activeborder yellow
color inactiveborder orange
color urgencyborder red
color font yellow
color menubg black
color menufg yellow
# KEYBINDINGS:
# 4 = mod (windows key)
# S = shift
# C = control
# M = meta (alt)
# mod + enter = new terminal
bind-key 4-Return "terminator --geometry 480x325"
#bind-key 4-Return "/home/b2r1s8/.local/bin/term"
# mod + b = browser
bind-key 4-b firefox
# mod+ E = Emacs
bind-key 4-e "emacs"
# ctrl + alt + L = lock screen (xlock)
bind-key CM-l lock
# mod + backspace = hide window
bind-key 4-BackSpace window-hide
# mod + prtsc = screenshot
bind-key 4-Print /home/b2r1s8/.local/bin/printscreen
# mod + M = mocp
bind-key 4-m /home/b2r1s8/.local/bin/mpm
## mocp binds
# Toggle play and pause
bind-key 4-p "mocp -G"
# Toggle shuffle
bind-key 4S-p "mocp -t s"
# Toggle auto next
bind-key 4M-p "mocp -t n"
# Toggle repeat
bind-key 4SM-p "mocp -t r"
# mod + down arrow = lower window's focus
bind-key 4-Down window-lower
# mod + up arrow = raise window's focus
bind-key 4-Up window-raise
# mod/alt + tab = cycle through current windows
bind-key 4-Tab window-cycle
bind-key M-Tab window-cycle
# mod/alt + shift + tab = same thing in reverse
bind-key 4S-Tab window-rcycle
bind-key MS-Tab window-rcycle
# mod + w = kill window
bind-key 4-w window-delete
# set a window's label
bind-key 4-n window-menu-label
# mod + $N = show only windows for group $N
# (you can think of this as switching to virtual desktop $N)
bind-key 4-1 group-only-1
bind-key 4-2 group-only-2
bind-key 4-3 group-only-3
bind-key 4-4 group-only-4
bind-key 4-5 group-only-5
bind-key 4-6 group-only-6
bind-key 4-7 group-only-7
bind-key 4-8 group-only-8
bind-key 4-9 group-only-9
# mod + shift +$N = move window to group $N
bind-key 4S-1 window-movetogroup-1
bind-key 4S-2 window-movetogroup-2
bind-key 4S-3 window-movetogroup-3
bind-key 4S-4 window-movetogroup-4
bind-key 4S-5 window-movetogroup-5
bind-key 4S-6 window-movetogroup-6
bind-key 4S-7 window-movetogroup-7
bind-key 4S-8 window-movetogroup-8
bind-key 4S-9 window-movetogroup-9
# mod + A = toggle showing windows from all groups
bind-key 4-a group-toggle-all
# mod + G = toggle current window's group membership
bind-key 4-g window-group
# mod + right arrow = cycle through the window groups
# (you can think of this as switching to the next virtual desktop)
bind-key 4-Right group-cycle
# mod + left arrow = same thing in reverse
bind-key 4-Left group-rcycle
# mod + S = stick current window to be visible in all groups
bind-key 4-s window-stick
# mod + shift + F = make current window fullscreen
bind-key 4S-f window-fullscreen
# mod + f = maximize current window
bind-key 4-f window-maximize
# mod + equals = maximize window in vertical direction only
bind-key 4-equal window-vmaximize
# mod + shift + equals = maximize window in horizontal direction only
bind-key 4S-equal window-hmaximize
# mod + H,J,K,L = move window left, down, up, right 10 pixels
bind-key 4-h window-move-left
bind-key 4-j window-move-down
bind-key 4-k window-move-up
bind-key 4-l window-move-right
# mod + shift + H,J,K,L = resize window left, down, up, right by 10 pixels
bind-key 4S-h window-resize-left
bind-key 4S-j window-resize-down
bind-key 4S-k window-resize-up
bind-key 4S-l window-resize-right
# mod + V = tile windows vertically, current window to the left
bind-key 4-v window-vtile
# mod + C = tile windows horizontally, current window to the top
bind-key 4-c window-htile
# mod + / = show popup menu of current windows
bind-key 4-slash menu-window
# mod + ? = show popup menu to run a command (configured below)
bind-key 4-question menu-cmd
# mod + d = show popup menu to run an arbitrary command
bind-key 4-d menu-exec
# mod + . = show popup menu of known ssh hosts to connect to
bind-key 4-period menu-ssh
# mod + shift + R = restart cwm, reloading configuration
bind-key 4S-r restart
# mod + shift + E = log out
bind-key 4S-e quit
# unbind default mouse actions
unbind-mouse M-1
unbind-mouse CM-1
unbind-mouse M-2
unbind-mouse M-3
unbind-mouse CMS-3
# mod + left click drag = move window
bind-mouse 4-1 window-move
# mod + right click drag = resize window
bind-mouse 4-3 window-resize
# mod + middle click = lower window's focus
bind-mouse 4-2 window-lower
# mod + shift + middle click = hide window
bind-mouse 4S-2 window-hide
# these commands will appear in the command menu
command "Terminal" urxvtc
command Browser "firefox"
command xclock "xclock -d -update 1 -render"
command xcalc xcalc
# ignore these windows when tiling/cycling
ignore xclock
autogroup 0 xclock
ignore lemonbar
autogroup 0 lemonbar
ignore termbar
autogroup 0 termbar
ignore dunst
autogroup 0 dunst
ignore xmessage
autogroup 0 xmessage

View File

@ -0,0 +1,436 @@
# See dunst(5) for all configuration options
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
### Geometry ###
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = (0, 300)
# The maximum height of a single notification, excluding the frame.
height = 300
# Position the notification in the top right corner
origin = center
# Offset from the origin
offset = 10x50
# Scale factor. It is auto-detected if value is 0.
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 0
### Progress bar ###
# Turn on the progess bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 300
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 20
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
# idle_threshold = 120
### Text ###
font = Monospace 8
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = center
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 0
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
# Paths to default icons.
icon_path = /usr/local/share/icons/gnome/16x16/status/:/usr/local/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/local/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/local/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#222222"
foreground = "#00ff00"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_normal]
background = "#000000"
foreground = "#aaaaaa"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_critical]
background = "#900000"
foreground = "#ffffff"
frame_color = "#ff0000"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#default_icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View File

@ -0,0 +1,11 @@
[Filechooser Settings]
LocationMode=path-bar
ShowHidden=false
ShowSizeColumn=true
GeometryX=104
GeometryY=95
GeometryWidth=948
GeometryHeight=654
SortColumn=name
SortOrder=ascending
StartupMode=recent

View File

@ -0,0 +1,8 @@
file:///home/b2r1s8/Documents Documents
file:///home/b2r1s8/Downloads Downloads
file:///home/b2r1s8/Music Music
file:///home/b2r1s8/Pictures Pictures
file:///home/b2r1s8/Public Public
file:///home/b2r1s8/Templates Templates
file:///home/b2r1s8/tmp tmp
file:///home/b2r1s8/usb usb

View File

@ -0,0 +1,16 @@
[Settings]
gtk-theme-name=Flat-Remix-GTK-Yellow-Darkest
gtk-icon-theme-name=hercules
gtk-font-name=Hack Nerd Font 8
gtk-cursor-theme-name=Radioactive
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=0
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb

View File

@ -0,0 +1,99 @@
# interpreter for shell commands
set shell ksh
# set '-eu' options for shell commands
# These options are used to have safer shell commands. Option '-e' is used to
# exit on error and option '-u' is used to give error for unset variables.
# Option '-f' disables pathname expansion which can be useful when $f, $fs, and
# $fx variables contain names with '*' or '?' characters. However, this option
# is used selectively within individual commands as it can be limiting at
# times.
set shellopts '-eu'
# set internal field separator (IFS) to "\n" for shell commands
# This is useful to automatically split file names in $fs and $fx properly
# since default file separator used in these variables (i.e. 'filesep' option)
# is newline. You need to consider the values of these options and create your
# commands accordingly.
set ifs "\n"
# leave some space at the top and the bottom of the screen
set scrolloff 10
# use enter for shell commands
map <enter> shell
# execute current file (must be executable)
map x $$f
map X !$f
# dedicated keys for file opener actions
map o &mimeopen $f
map O $mimeopen --ask $f
# define a custom 'open' command
# This command is called when current file is not a directory. You may want to
# use either file extensions and/or mime types here. Below uses an editor for
# text files and a file opener for the rest.
cmd open ${{
case $(file --mime-type $f -b) in
text/*) $EDITOR $fx;;
*) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;;
esac
}}
# define a custom 'rename' command without prompt for overwrite
# cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1
# map r push :rename<space>
# make sure trash folder exists
# %mkdir -p ~/.trash
# move current file or selected files to trash folder
# (also see 'man mv' for backup/overwrite options)
cmd trash %set -f; mv $fx ~/.trash
# define a custom 'delete' command
# cmd delete ${{
# set -f
# printf "$fx\n"
# printf "delete?[y/n]"
# read ans
# [ $ans = "y" ] && rm -rf $fx
# }}
# use '<delete>' key for either 'trash' or 'delete' command
# map <delete> trash
# map <delete> delete
# extract the current file with the right command
# (xkcd link: https://xkcd.com/1168/)
cmd extract ${{
set -f
case $f in
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
*.tar.gz|*.tgz) tar xzvf $f;;
*.tar.xz|*.txz) xzcat $f | tar xvf -;;
*.zip) unzip $f;;
*.rar) unrar x $f;;
*.7z) 7z x $f;;
esac
}}
# compress current file or selected files with tar and gunzip
cmd tar ${{
set -f
mkdir $1
cp -r $fx $1
tar czf $1.tar.gz $1
rm -rf $1
}}
# compress current file or selected files with zip
cmd zip ${{
set -f
mkdir $1
cp -r $fx $1
zip -r $1.zip $1
rm -rf $1
}}

View File

@ -0,0 +1,142 @@
############################## LFM dump keys ##############################
#################### Key -> Action ####################
! -> tab_close
# -> show_dirs_size
* -> select_invert
+ -> select_glob
, -> panes_swap
- -> deselect_glob
. -> panes_cycle_view
/ -> find_grep
: -> tab_new
< -> tab_left
= -> pane_other_tab_equal
> -> tab_right
@ -> exec_on_file
A-r -> redraw_screen
A-s -> cursor_goto_file_1char
B -> bookmark_set
C-a -> cursor_home
C-d -> bookmark_select_fromlist
C-down -> cursor_down10
C-e -> cursor_end
C-f -> filters_edit
C-h -> dotfiles_toggle
C-n -> cursor_pagedown
C-o -> open_shell
C-p -> cursor_pageup
C-q -> quit_nochdir
C-r -> refresh
C-s -> cursor_goto_file
C-t -> show_tree
C-u -> panes_swap
C-up -> cursor_up10
C-x -> toggle_powercli
C-y -> history_select_fromlist
L -> link_edit
b -> bookmark_goto
backspace -> cursor_pageup
down -> cursor_down
end -> cursor_end
enter -> dir_enter
f10 -> quit_chdir
f12 -> file_menu
f2 -> rename_file
f3 -> view_file
f4 -> edit_file
f5 -> copy_file
f6 -> move_file2
f7 -> make_dir
f8 -> delete_file
f9 -> main_menu
g -> goto
h -> help_menu
home -> cursor_home
i -> show_file_info
ins -> select
j -> cursor_down
k -> cursor_up
l -> link_create
left -> dir_up
pagedown -> cursor_pagedown
pageup -> cursor_pageup
q -> quit_chdir
right -> dir_enter
s -> sort_files
spc -> cursor_pagedown
t -> touch_file
tab -> pane_change_focus
up -> cursor_up
#################### Action -> Key ####################
bookmark_goto -> b
bookmark_select_fromlist -> C-d
bookmark_set -> B
copy_file -> f5
cursor_down -> down, j
cursor_down10 -> C-down
cursor_end -> C-e, end
cursor_goto_file -> C-s
cursor_goto_file_1char -> A-s
cursor_home -> C-a, home
cursor_pagedown -> C-n, pagedown, spc
cursor_pageup -> C-p, backspace, pageup
cursor_up -> k, up
cursor_up10 -> C-up
delete_file -> f8
deselect_glob -> -
dir_enter -> enter, right
dir_up -> left
dotfiles_toggle -> C-h
edit_file -> f4
exec_on_file -> @
file_menu -> f12
filters_edit -> C-f
find_grep -> /
goto -> g
help_menu -> h
history_select_fromlist -> C-y
link_create -> l
link_edit -> L
main_menu -> f9
make_dir -> f7
move_file2 -> f6
open_shell -> C-o
pane_change_focus -> tab
pane_other_tab_equal -> =
panes_cycle_view -> .
panes_swap -> ,, C-u
quit_chdir -> f10, q
quit_nochdir -> C-q
redraw_screen -> A-r
refresh -> C-r
rename_file -> f2
select -> ins
select_glob -> +
select_invert -> *
show_dirs_size -> #
show_file_info -> i
show_tree -> C-t
sort_files -> s
tab_close -> !
tab_left -> <
tab_new -> :
tab_right -> >
toggle_powercli -> C-x
touch_file -> t
view_file -> f3
Actions with no keys:
. backup_file
. change_owner
. change_perms
. compress_dir
. compress_uncompress_file
. diff_file_with_backup
. move_file
. show_filesystems_info
. uncompress_dir
. uncompress_dir_other_pane
######################################################################

Binary file not shown.

View File

@ -0,0 +1,106 @@
########## lfm - Last File Manager Configuration File v3.x ##########
[Options]
# automatic_file_encoding_conversion: never = -1, ask = 0, always = 1
# sort_type: SortType.none, SortType.byName, SortType.byExt, SortType.byPath, SortType.bySize, SortType.byMTime
automatic_file_encoding_conversion: 0
detach_terminal_at_exec: 1
find_ignorecase: 0
grep_ignorecase: 1
grep_regex: 1
rebuild_vfs: 0
save_configuration_at_exit: 1
save_history_at_exit: 1
show_dotfiles: 1
show_output_after_exec: 1
sort_mix_cases: 1
sort_mix_dirs: 0
sort_reverse: 0
sort_type: SortType.byName
use_wide_chars: 0
[Confirmations]
ask_rebuild_vfs: 1
delete: 1
overwrite: 1
quit: 1
[Misc]
# diff_type: context, unified, ndiff
backup_extension: .bak
diff_type: unified
[Programs]
audio: fmus
ebook: FBReader
editor: nano
graphics: img
pager: most
pdf: rpdf
shell: ksh
video: mpv
web: firefox
[Files]
archive: 7z, arc, arj, ark, bz2, cab, deb, gz, lha, lz, lz4, lzh, rar, rpm, tar, tbz2, tgz, tlz, tlz4, txz, xz, z, zip, zoo
audio: au, flac, mid, midi, mp2, mp3, mpg, ogg, wma, xm
data: cdx, dat, db, dbf, dbi, dbx, dta, fox, mdb, mdn, mdx, msql, mssql, nc, pgsql, sql, sqlite, ssql
devel: ada, asm, awk, bash, c, caml, cc, cgi, cpp, css, diff, el, f, f90, glade, h, hh, hpp, hs, inc, jasm, jav, java, js, lua, m, m4, mak, ml, mli, mll, mlp, mly, pas, pas, patch, php, phps, pl, pm, pov, prg, py, pyw, rb, sh, sl, st, tcl, tk, ui, vala
document: 1, abw, bib, djvu, doc, docx, dtd, dvi, gnumeric, ics, info, letter, lsm, mail, man, msg, odc, odp, odt, po, pps, ppt, pptx, rtf, sdc, sdp, sdw, sgml, sxc, sxp, sxw, tex, text, txt, vcard, vcs, xls, xlsx, xml, xsd, xslt
ebook: azw, azw3, chm, epub, fb2, imp, lit, mobi, prc
graphics: ai, bmp, cdr, dia, dwb, dwg, dxf, eps, gif, ico, jpeg, jpg, omf, pcx, pic, png, rle, svg, tif, tiff, wmf, xbm, xcf, xpm
pdf: pdf, ps
temp: $$$, bak, tmp, ~
video: acc, asf, avi, flv, med, mkv, mol, mov, mp4, mpeg, mpg, mpl, ogv, ogv, swf, wmv
web: htm, html, shtml
[Bookmarks]
0: /
1: /
2: /
3: /
4: /
5: /
6: /
7: /
8: /
9: /
a: /
b: /
c: /
d: /
e: /
f: /
g: /
h: /
i: /
j: /
k: /
l: /
m: /
n: /
o: /
p: /
q: /
r: /
s: /
t: /
u: /
v: /
w: /
x: /
y: /
z: /
[PowerCLI Favs]
0: mv "$f" "{$f.replace('', '')}"
1: less "$f" $
2: find "$p" -name "*" -print0 | xargs --null -0 grep -EHcni "TODO|WARNING|FIXME|BUG"
3: find "$p" -name "*" -print0 | xargs --null -0 grep -EHcni "TODO|WARNING|FIXME|BUG" >output.txt &
4: cp $s "$o"
5:
6:
7:
8:
9:

View File

@ -0,0 +1,70 @@
########## lfm - Last File Manager - Keys ##########
[Main]
# cursor movement
cursor_up: up k
cursor_down: down j
cursor_pageup: pageup backspace C-p
cursor_pagedown: pagedown spc C-n
cursor_up10: C-up
cursor_down10: C-down
cursor_home: home C-a
cursor_end: end C-e
cursor_goto_file: C-s
cursor_goto_file_1char: A-s
# change dir
dir_up: left
dir_enter: right enter
goto: g
bookmark_goto: b
bookmark_set: B
bookmark_select_fromlist: C-d
history_select_fromlist: C-y
# pane & tabs
pane_change_focus: tab
pane_other_tab_equal: =
panes_swap: C-u ,
panes_cycle_view: .
refresh: C-r
redraw_screen: A-r
dotfiles_toggle: C-h
filters_edit: C-f
sort_files: s
show_dirs_size: #
tab_new: :
tab_close: !
tab_left: <
tab_right: >
# selection
select: ins
select_glob: +
deselect_glob: -
select_invert: *
# files
rename_file: F2
view_file: F3
edit_file: F4
copy_file: F5
move_file2: F6
make_dir: F7
delete_file: F8
exec_on_file: @
touch_file: t
link_create: l
link_edit: L
show_file_info: i
# general
find_grep: /
show_tree: C-t
main_menu: F9
file_menu: F12
help_menu: h
open_shell: C-o
toggle_powercli: C-x
quit_chdir: q F10
quit_nochdir: C-q

View File

@ -0,0 +1,15 @@
2022-07-09 05:50:00 root( lfm: 102) I Start lfm
2022-07-09 05:50:00 lfm( ui: 709) I Support wide chars: False
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item diff_file_with_backup
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item compress_uncompress_file
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item backup_file
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item show_filesystems_info
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item compress_dir
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item uncompress_dir
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item uncompress_dir_other_pane
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item change_owner
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item change_perms
2022-07-09 05:50:00 lfm( preferences: 318) W KEYS: Missing Action item move_file
2022-07-09 05:50:00 lfm( preferences: 387) I Load history file from "/home/b2r1s8/.config/lfm/lfm.history"
2022-07-09 05:50:11 lfm( preferences: 392) I Save history file to "/home/b2r1s8/.config/lfm/lfm.history"
2022-07-09 05:50:11 root( lfm: 118) I End lfm, returns: "/home/b2r1s8"

View File

@ -0,0 +1,57 @@
########## lfm - Last File Manager - Theme ##########
# Format is: item: foreground background
# or: item: =previous_item
# Valid colors: white, black, red, green, white, blue, magenta, cyan
# Can use * to intensify a foreground color
[Colors]
header: white* black
tab_active: white* black
tab_inactive: white black
pane_active: white* black
pane_inactive: white black
pane_header_path: white* black
pane_header_titles: white* black
statusbar: =header
powercli_prompt: white* black
powercli_text: white black
selected_files: white black
cursor: black white
cursor_selected: white* black
files_dir: white* black
files_exe: red black
files_reg: white black
files_archive: green black
files_audio: blue black
files_data: magenta* black
files_devel: cyan black
files_document: blue black
files_ebook: =files_document
files_graphics: magenta black
files_pdf: =files_document
files_temp: white black
files_web: =files_document
files_video: =files_audio
dialog: white* black
dialog_title: white* black
button_active: white* red
button_inactive: =dialog_title
dialog_error: black red
dialog_error_title: white red
dialog_error_text: white* red
dialog_perms: green* black
selectitem: white black
selectitem_title: white* black
selectitem_cursor: white* black
entryline: white* cyan
progressbar_fg: black white
progressbar_bg: white cyan
view_white_on_black: white black
view_red_on_black: red black
view_blue_on_black: blue black
view_green_on_black: green black

View File

@ -0,0 +1,50 @@
set atblanks
set autoindent
set backup
set backupdir /home/b2r1s8/.config/nano/backup
set boldtext
set constantshow
set emptyline
set guidestripe 81
set indicator
set linenumbers
set matchbrackets "(<[{)>]}"
#set minibar
set multibuffer
set nohelp
set tabsize 8
set tabstospaces
include /usr/local/share/nano/sh.nanorc
include /usr/local/share/nano/autoconf.nanorc
include /usr/local/share/nano/awk.nanorc
include /usr/local/share/nano/c.nanorc
include /usr/local/share/nano/changelog.nanorc
include /usr/local/share/nano/cmake.nanorc
include /usr/local/share/nano/css.nanorc
include /usr/local/share/nano/default.nanorc
include /usr/local/share/nano/elisp.nanorc
include /usr/local/share/nano/email.nanorc
include /usr/local/share/nano/go.nanorc
include /usr/local/share/nano/groff.nanorc
include /usr/local/share/nano/guile.nanorc
include /usr/local/share/nano/html.nanorc
include /usr/local/share/nano/json.nanorc
include /usr/local/share/nano/lua.nanorc
include /usr/local/share/nano/makefile.nanorc
include /usr/local/share/nano/man.nanorc
include /usr/local/share/nano/markdown.nanorc
include /usr/local/share/nano/nanohelp.nanorc
include /usr/local/share/nano/nanorc.nanorc
include /usr/local/share/nano/objc.nanorc
include /usr/local/share/nano/patch.nanorc
include /usr/local/share/nano/perl.nanorc
include /usr/local/share/nano/php.nanorc
include /usr/local/share/nano/python.nanorc
include /usr/local/share/nano/ruby.nanorc
include /usr/local/share/nano/rust.nanorc
include /usr/local/share/nano/sql.nanorc
include /usr/local/share/nano/tcl.nanorc
include /usr/local/share/nano/tex.nanorc
include /usr/local/share/nano/texinfo.nanorc
include /usr/local/share/nano/xml.nanorc
include /usr/local/share/nano/yaml.nanorc

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
vol="$(sndioctl -n output.level)"
echo "♬: $(echo "scale=0; $vol * 100" | bc | awk -F'[.=]' '{print $1}')%"

View File

@ -0,0 +1,15 @@
#!/usr/bin/env sh
xidle -timeout 600 &
tint2 &
picom -b &
/home/b2r1s8/.fehbg &
xset dpms 0 0 0 &
xset s off -dpms &
xset s 0 0 &
xset s noblank &
xset s noexpose &
uxrvtd
setxkbmap -model thinkpad60 -layout br &

View File

@ -0,0 +1,11 @@
#!/usr/bin/env sh
FULL="$(sysctl -n hw.sensors.acpibat0.watthour0 | awk '{print $1}')"
REAL="$(sysctl -n hw.sensors.acpibat0.watthour3 | awk '{print $1}')"
PERCENT="$(echo "scale=2; ${REAL} / ${FULL} * 100" | bc | awk -F '.' '{print $1}')"
STATE="$(sysctl -n hw.sensors.acpibat0.raw0 | awk '{print $3}' | sed s/\)\,//)"
printf '%s' "${STATE}: ${PERCENT}%"

View File

@ -0,0 +1,27 @@
#!/usr/bin/env sh
conf_loc="/etc"
bkp_loc="/home/b2r1s8/bkp"
bkp_sys(){
pkg_info -zm | sed 's/--//g' > "${bkp_loc}"/pkg_list.txt
cp -vf "${conf_loc}"/doas.conf "${bkp_loc}"/etc/.
cp -vf "${conf_loc}"/fstab "${bkp_loc}"/etc/.
cp -vf "${conf_loc}"/login.conf "${bkp_loc}"/etc/.
cp -vf "${conf_loc}"/rc.conf.local "${bkp_loc}"/etc/.
cp -vf "${conf_loc}"/sysctl.conf "${bkp_loc}"/etc/.
cp -vr "${conf_loc}"/mk.conf "${bkp_loc}"/etc/.
cp -vrf "${conf_loc}"/apm "${bkp_loc}"/etc/.
cp -vrf "${conf_loc}"/X11 "${bkp_loc}"/etc/.
cp -vrf /usr/local/share/wallpapers/* "${bkp_loc}"/usr/local/share/wallpapers/.
}
bkp_home() {
rm -rf "${bkp_loc}"/dotfiles
cp -rvf $HOME/.dotfiles "${bkp_loc}"/dotfiles
}
bkp_sys && bkp_home && echo "Done!" && exit 0

View File

@ -0,0 +1,43 @@
#!/bin/ksh
_date=`date "+%Y-%m-%d"`
_conf_loc="/etc"
_bkp_loc="$HOME/.bkp"
_disk_dest="$HOME/usb/backup"
_bkp_dest="$_disk_dest/$_date"
_key_file="/root/b2bkp.key"
_disk_crypt="8a3789735e648edd"
_bkp_disk="b4aa1e6f2f16d559"
mkdir "${_bkp_dest}"
#function bkp_mount{
# doas bioctl -c C -l "${_disk_crypt}".a -p "${_key_file}" softraid0
# doas mount "${_bkp_disk}" "${_disk_dest}"
#}
bkp_files(){
set -- bkp Desktop Documents Music Pictures Templates Videos tmp
cd "$_bkp_dest"
for d in "$@"; do
echo "Copiando $HOME/$d para $_bkp_dest/$d.tar.bz2"
tar -chjpf "$d".tar.bz2 "$HOME"/"$d"
done
cd
}
#function bkp_umount{
# doas umount "$_disk_dest}"
#}
#bkp_mount && bkp_home && echo "Done!" && bkp_umount && exit 0
bkp_files && echo "Done!" && exit 0

View File

@ -0,0 +1,48 @@
#!/usr/bin/env sh
_vid="$(sysctl -n kern.video.record)"
if [ "$_vid" = "0" ]; then
doas sysctl kern.video.record=1
echo "Allow video record on!"
elif [ "$_vid" = "1" ]; then
echo "Allow video record on!"
fi
_res_list="
1: 320x240: 30, 15
2: 352x288: 30, 15
3: 424x240: 30, 15
4: 640x360: 30, 15
5: 640x480: 30, 15
6: 800x448: 15
7: 960x540: 10
8: 1280x720: 10
"
printf '%s\n' "Choose the webcam output size: $_res_list"
printf '%s' "Choice: " >&2
read -r _choice
case $_choice in
1)
_choice_res="320x240";;
2)
_choice_res="352x288";;
3)
_choice_res="424x240";;
4)
_choice_res="640x360";;
5)
_choice_res="640x480";;
6)
_choice_res="800x448";;
7)
_choice_res="960x540";;
8)
_choice_res="1280x720";;
esac
#printf '%s\n' "${_choice_res}"
ffplay -f v4l2 -input_format mjpeg -video_size "${_choice_res}" -i /dev/video0

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
[ $# -ne 1 ] && { echo "usage: $0 sdX" 1>&2; exit 1; }
doas bioctl -d $1

View File

@ -0,0 +1,7 @@
#!/usr/bin/env sh
CSPEED="$(sysctl -n hw.cpuspeed)"
CP="$(echo "scale=2; $CSPEED / 1024" | bc)"
printf '%s\n' "CPU: ${CP}Ghz"

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
xrandr
xrandr --output DP1 --mode 1920x1080 --left-of LVDS1 --output LVDS1 --primary
fehbg

View File

@ -0,0 +1,3 @@
#!/usr/bin/env sh
urxvtc -e lfm

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
[ $# -ne 1 ] && { echo "usage: $0 name" 1>&2; exit 1; }
ffplay -loglevel 0 -autoexit -hide_banner "$1"

View File

@ -0,0 +1,7 @@
#!/usr/bin/env sh
fspeed="$(sysctl -n hw.sensors.acpithinkpad0.fan0 | awk '{print $1}')"
fp="$(echo "scale=2; $fspeed / 1024" | bc)"
printf '%s' "FAN: ${fp}k RPM"

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
[ $# -ne 1 ] && { echo "usage: $0 name" 1>&2; exit 1; }
ffplay -autoexit -hide_banner -fs "$1"

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
[ $# -ne 1 ] && { echo "usage: $0 name" 1>&2; exit 1; }
feh -B black -g 1000x600 --scale-down "$1"

View File

@ -0,0 +1,384 @@
#!/bin/ksh
# Colors
_pink="%{F#FF00B6}"
_purple="%{F#7C00FF}"
_cyan="%{F#00F0FF}"
_blue="%{F#002EFF}"
_orange="%{F#FF9E00}"
_green="%{F#00FF00}"
_red="%{F#FF0000}"
_yellow="%{F#FFF000}"
# Functions
## Define OS version
_os_type(){
_net=$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')
case $_net in
"em0") _os="Open${_orange}BSD%{F-} ${_cyan}$(sysctl -n kern.osrelease)%{F-} ${_red}$(sysctl -n kern.osversion)%{F-}" ;;
"iwn0") _os="${_cyan}$(sysctl -n kern.osrelease)%{F-} ${_red}$(sysctl -n kern.osversion)%{F-}" ;;
esac
echo "${_os}"
}
## Thelemic date
_thelemic_date(){
# Vars
_dayw=$(date "+%a") ## Day of the week
_daym=$(date "+%d") ## Day of the mounth
_mounth=$(date "+%m") ## Mounth number
_year=$(date "+%Y") ## Current year
_year_zero="1904"
_year_diff="$(echo "${_year} - ${_year_zero}" | bc)"
_year_cicles="$(echo "scale=0; ${_year_diff} / 22" | bc)"
_year_cur_cicle="$(echo "${_year_diff} - (${_year_cicles} * 22)" | bc)"
#_zone="-z -3" ## Time zone
_lat="-20.351034"
_log="-40.284485"
#_coord="-zl ${_log} ${_lat}"
_sun="$(astrolog -n ${_zone} ${_coord} | head -4 | tail -1 | awk '{print $3}' | sed 's/[0-9]//g')"
_sun_pos="$(astrolog -n ${_zone} ${_coord} | head -4 | tail -1 | awk '{print $3}' | ghead -c 2 | sed 's/[A-Z]//')"
_moon="$(astrolog -n ${_zone} ${_coord} | head -5 | tail -1 | awk '{print $2}' | sed 's/[0-9]//g')"
_moon_pos="$(astrolog -n ${_zone} ${_coord} | head -5 | tail -1 | awk '{print $2}' | ghead -c 2 | sed 's/[A-Z]//')"
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
case $_sun in
"Aqu") _sun_done="Aquarii";;
"Gem") _sun_done="Geminorum";;
"Sag") _sun_done="Sagittarii";;
"Tau") _sun_done="Tauri";;
"Ari") _sun_done="Arietis";;
"Pis") _sun_done="Piscis";;
"Cap") _sun_done="Capricorni";;
"Can") _sun_done="Cancri";;
"Sco") _sun_done="Scorpii";;
"Lib") _sun_done="Librae";;
"Leo") _sun_done="Leonis";;
"Vir") _sun_done="Virginis";;
esac
case $_moon in
"Aqu") _moon_done="Aquarii";;
"Gem") _moon_done="Geminorum";;
"Sag") _moon_done="Sagittarii";;
"Tau") _moon_done="Tauri";;
"Ari") _moon_done="Arietis";;
"Pis") _moon_done="Piscis";;
"Cap") _moon_done="Capricorni";;
"Can") _moon_done="Cancri";;
"Sco") _moon_done="Scorpii";;
"Lib") _moon_done="Librae";;
"Leo") _moon_done="Leonis";;
"Vir") _moon_done="Virginis";;
esac
case $_dayw in
"Sun") _dayw_done="Solis";;
"Mon") _dayw_done="Lunae";;
"Tue") _dayw_done="Martis";;
"Wed") _dayw_done="Mercurii";;
"Thu") _dayw_done="Jovis";;
"Fri") _dayw_done="Veneris";;
"Sat") _dayw_done="Saturnis";;
esac
case $_net in
"em0") _date="Sol in ${_sun_pos}° ${_sun_done} : Luna in ${_moon_pos}° ${_moon_done} : Dies ${_dayw_done} : Anno Vviii e.l." ;;
"iwn0") _date="Sol in ${_sun_pos}° ${_sun_done} Luna in ${_moon_pos}° ${_moon_done} Dies ${_dayw_done} Anno Vviii e.l." ;;
esac
# Main function
echo "$_date"
# echo "
# ☉︎ in ${_sun_pos}° ${_sun_done}
# ☽︎ in ${_moon_pos}° ${_moon_done}
# Dies ${_dayw_done}
# Anno V:viii a.n.
#"
}
## Show current group
_grp(){
_cur_grp="$(xprop -root _NET_CURRENT_DESKTOP | awk -F '=' '{print $2}' | sed 's/ //')"
echo "[${_cur_grp}]"
}
## Show memory usage
_mem(){
_smt="$(sysctl -n hw.smt)"
### Define number of threads
if [ "$_smt" = "0" ]; then
_h="7"
elif [ "$_smt" = "1" ]; then
_h="11"
fi
### Get memory usage
_mem_use="$(top -d1 | \
head -n ${_h} | \
tail -1 | \
awk '{print $3}' | \
awk -F / '{print $1}' | \
sed s/M//)"
_b=999
### Build the output
if [ "$_mem_use" -ge "$_b" ]; then
echo "${_blue}Ram:%{F-} ${_green}$(echo "scale=2; $_mem_use / 1024" | bc)G/16G%{F-}"
else
echo "${_blue}Ram:%{F-} ${_green}0$(echo "scale=2; $_mem_use / 1024" | bc)G/16G%{F-}"
fi
}
## Define cpu clock rate
_cpu_clock(){
_CSPEED="$(sysctl -n hw.cpuspeed)"
_CP="$(echo "scale=2; $_CSPEED / 1024" | bc)"
echo "${_orange}CPU:%{F-} ${_green}${_CP}Ghz%{F-}"
}
## Get hardware temperatures
_temp(){
### Some limits
y=60
r=70
### Get cpu temp
_cpu_temp="$(sysctl -n hw.sensors.cpu0.temp0 | awk '{print $1}' | awk -F '.' '{print $1}')"
### Get acpitz temp
_acpitz_temp="$(sysctl -n hw.sensors.acpitz0.temp0 | awk '{print $1}' | awk -F '.' '{print $1}')"
### Correct bug temperature
_temp_c="$(echo "scale=0; $_cpu_temp - 15" | bc)"
_temp_a="$(echo "scale=0; $_acpitz_temp - 15" | bc)"
### Some color acording to temperature
if [ "$_temp_c" -ge "$r" ]; then
_tempc="${_red}${_cpu_temp}ºC%{F-}"
elif [ "$_temp_c" -ge "$y" ]; then
_tempc="%{F#FFF000}${_temp_c}ºC%{F-}"
else
_tempc="${_green}${_temp_c}ºC%{F-}"
fi
if [ "$_temp_a" -ge "$r" ]; then
_tempa="${_red}${_temp_a}ºC%{F-}"
elif [ "$_temp_a" -ge "$y" ]; then
_tempa="%{F#FFF000}${_temp_a}ºC%{F-}"
else
_tempa="${_green}${_temp_a}ºC%{F-}"
fi
### Build output
echo "${_orange}CPU:%{F-} ${_tempc} ${_purple}ACPITZ:%{F-} ${_tempa}"
}
_fan_speed(){
_fspeed="$(sysctl -n hw.sensors.acpithinkpad0.fan0 | awk '{print $1}')"
_fp="$(echo "scale=2; $_fspeed / 1024" | bc)"
echo -e "${_cyan}FAN:%{F-} ${_green}${_fp}kRPM%{F-}"
}
_smt_func(){
_smt="$(sysctl -n hw.smt)"
echo "${_purple}SMT:%{F-} ${_green}${_smt}%{F-}"
}
_sec(){
_sec_lvl="$(sysctl -n kern.securelevel)"
if [ $_sec_lvl = "1" ]; then
_result="${_green}$_sec_lvl%{F-}"
elif [ $_sec_lvl = "2" ]; then
_result="${_orange}$_sec_lvl%{F-}"
else
_result="${_red}ERROR!%{F-}"
fi
echo "${_red}Sec_lvl=%{F-} $_result"
}
## PF Status
_pf(){
_pf_status="$(rcctl get pf | sed 's/pf=//')"
case "$_pf_status" in
"YES") echo "${_cyan}PF: %{F-}${_green}ON%{F-}";;
"NO") echo "${_cyan}PF: %{F-}${_red}OFF%{F-}";;
esac
}
_rec(){
_audio="$(sysctl -n kern.audio.record)"
_video="$(sysctl -n kern.video.record)"
if [ $_audio = 0 ]; then
_audio_color="${_green}$_audio%{F-}"
else
_audio_color="${_orange}$_audio%{F-}"
fi
if [ $_video = 0 ]; then
_video_color="${_green}$_video%{F-}"
else
_video_color="${_orange}$_video%{F-}"
fi
echo "${_blue}Video:%{F-} $_video_color | ${_pink}Audio:%{F-} $_audio_color"
}
_network(){
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
_iplocal="$(ifconfig trunk0 | tail -1 | awk '{print $2}')"
_wifiname="$(ifconfig iwn0 | tail -1 | awk '{print $3}')"
_wifistr="$(ifconfig iwn0 | tail -1 | awk '{print $8}' | sed 's/dBm//')"
if [ "$_wifistr" -ge -45 ]; then
_wifistr_color="${_green}${_wifistr}dbm%{F-}"
elif [ "$_wifistr" -lt -45 ] && [ "$_wifistr" -ge -60 ]; then
_wifistr_color="${_orange}${_wifistr}dbm%{F-}"
elif [ "$_wifistr" -lt -60 ]; then
_wifistr_color="${_red}${_wifistr}dbm%{F-}"
fi
if [ "$_net" = "em0" ]; then
echo "${_pink}${_net}:%{F-} ${_green}${_iplocal}%{F-}"
elif [ "$_net" = "iwn0" ]; then
echo "${_pink}${_wifiname}:%{F-} ${_green}${_iplocal}%{F-} ${_wifistr_color}"
else
echo "${_red}No network!%{F-}"
fi
}
_mail(){
_mail_count="$(grep '^To:' /var/mail/b2r1s8 | wc -l | sed 's/ //g')"
echo "${_cyan}Mail:%{F-}${_green}${_mail_count}%{F-}"
}
_sound(){
_vol="$(sndioctl -n output.level)"
_vol_done="$(echo "scale=0; $_vol * 100" | bc | awk -F'[.=]' '{print $1}')%"
echo "${_orange}Sound:%{F-} ${_green}${_vol_done}"
}
_batt(){
_full="$(sysctl -n hw.sensors.acpibat0.watthour0 | awk '{print $1}')"
_real="$(sysctl -n hw.sensors.acpibat0.watthour3 | awk '{print $1}')"
_percent="$(echo "scale=2; ${_real} / ${_full} * 100" | bc | awk -F '.' '{print $1}')"
_state="$(sysctl -n hw.sensors.acpibat0.raw0 | awk '{print $3}' | sed s/\)\,//)"
case $_state in
"discharging") _states="dis" ;;
"charging") _states="cha" ;;
"idle") _states="idl" ;;
"full") _states="ful" ;;
esac
_y=50
_r=30
if [ "$_percent" -ge "$_y" ]; then
_percent_color="${_green}${_percent}%"
elif [ "$_percent" -ge "$_r" ]; then
_percent_color="${_yellow}${_percent}%"
else
_percent_color="${_red}${_percent}%"
fi
echo "${_purple}${_states}:%{F-} ${_percent_color}"
}
_clock(){
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
_day="$()"
case $_net in
"em0") _date=$(date "+%a %Y-%m-%d e.v. %H:%M:%S") ;;
"iwn0") _date=$(date "+%Y-%m-%d %H:%M") ;;
*) _date=$(date "+%a %Y-%m-%d e.v. %H:%M:%S") ;;
esac
echo -n "$_date"
}
#
#$(_thelemic_date) \
#$(_fan_speed) | \
#$(_smt_func) | \
#$(_sec) | \
#$(_pf) | \
#$(_rec) | \
#(_temp) | \
while true; do
echo "%{l}%{+u}%{+o} \
$(_os_type) \
$(_grp) \
%{c}| $(_mem) | \
$(_network) | \
$(_mail) | \
$(_sound) %{F-}| \
$(_batt) %{F-}|\
%{r}$(_clock) "
sleep 1
done

View File

@ -0,0 +1,380 @@
#!/usr/bin/env sh
# Colors
#_orange="%{F#FF9E00}"
#_green="%{F#00FF00}"
#_cyan="%{F#00F0FF}"
#_pink="%{F#FF00B6}"
#_red="%{F#FF0000}"
#_blue="%{F#002EFF}"
#_purple="%{F#7C00FF}"
#_yellow="%{F#FFF000}"
# Functions
## Define OS version
_os_type(){
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
case $_net in
"em0") _os="OpenBSD $(sysctl -n kern.osrelease) $(sysctl -n kern.osversion)" ;;
"iwn0") _os="$(sysctl -n kern.osrelease) $(sysctl -n kern.osversion)" ;;
esac
echo "${_os}"
}
## Thelemic date
_thelemic_date(){
# Vars
_dayw=$(date "+%a") ## Day of the week
_daym=$(date "+%d") ## Day of the mounth
_mounth=$(date "+%m") ## Mounth number
_year=$(date "+%Y") ## Current year
_year_zero="1904"
_year_diff="$(echo "${_year} - ${_year_zero}" | bc)"
_year_cicles="$(echo "scale=0; ${_year_diff} / 22" | bc)"
_year_cur_cicle="$(echo "${_year_diff} - (${_year_cicles} * 22)" | bc)"
#_zone="-z -3" ## Time zone
_lat="-20.351034"
_log="-40.284485"
#_coord="-zl ${_log} ${_lat}"
_sun="$(astrolog -n ${_zone} ${_coord} | head -4 | tail -1 | awk '{print $3}' | sed 's/[0-9]//g')"
_sun_pos="$(astrolog -n ${_zone} ${_coord} | head -4 | tail -1 | awk '{print $3}' | ghead -c 2 | sed 's/[A-Z]//')"
_moon="$(astrolog -n ${_zone} ${_coord} | head -5 | tail -1 | awk '{print $2}' | sed 's/[0-9]//g')"
_moon_pos="$(astrolog -n ${_zone} ${_coord} | head -5 | tail -1 | awk '{print $2}' | ghead -c 2 | sed 's/[A-Z]//')"
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
case $_sun in
"Aqu") _sun_done="Aquarii";;
"Gem") _sun_done="Geminorum";;
"Sag") _sun_done="Sagittarii";;
"Tau") _sun_done="Tauri";;
"Ari") _sun_done="Arietis";;
"Pis") _sun_done="Piscis";;
"Cap") _sun_done="Capricorni";;
"Can") _sun_done="Cancri";;
"Sco") _sun_done="Scorpii";;
"Lib") _sun_done="Librae";;
"Leo") _sun_done="Leonis";;
"Vir") _sun_done="Virginis";;
esac
case $_moon in
"Aqu") _moon_done="Aquarii";;
"Gem") _moon_done="Geminorum";;
"Sag") _moon_done="Sagittarii";;
"Tau") _moon_done="Tauri";;
"Ari") _moon_done="Arietis";;
"Pis") _moon_done="Piscis";;
"Cap") _moon_done="Capricorni";;
"Can") _moon_done="Cancri";;
"Sco") _moon_done="Scorpii";;
"Lib") _moon_done="Librae";;
"Leo") _moon_done="Leonis";;
"Vir") _moon_done="Virginis";;
esac
case $_dayw in
"Sun") _dayw_done="Solis";;
"Mon") _dayw_done="Lunae";;
"Tue") _dayw_done="Martis";;
"Wed") _dayw_done="Mercurii";;
"Thu") _dayw_done="Jovis";;
"Fri") _dayw_done="Veneris";;
"Sat") _dayw_done="Saturnis";;
esac
case $_net in
"em0") _date="Sol in ${_sun_pos}° ${_sun_done} : Luna in ${_moon_pos}° ${_moon_done} : Dies ${_dayw_done} : Anno Vviii e.l." ;;
"iwn0") _date="Sol in ${_sun_pos}° ${_sun_done} Luna in ${_moon_pos}° ${_moon_done} Dies ${_dayw_done} Anno Vviii e.l." ;;
esac
# Main function
echo "$_date"
# echo "
# ☉︎ in ${_sun_pos}° ${_sun_done}
# ☽︎ in ${_moon_pos}° ${_moon_done}
# Dies ${_dayw_done}
# Anno V:viii a.n.
#"
}
## Show current group
_grp(){
_cur_grp="$(xprop -root _NET_CURRENT_DESKTOP | awk -F '=' '{print $2}' | sed 's/ //')"
echo "${_orange}Grp: ${_green}${_cur_grp}"
}
## Show memory usage
_mem(){
_smt="$(sysctl -n hw.smt)"
### Define number of threads
if [ "$_smt" = "0" ]; then
_h="7"
elif [ "$_smt" = "1" ]; then
_h="11"
fi
### Get memory usage
_mem_use="$(top -d1 | \
head -n ${_h} | \
tail -1 | \
awk '{print $3}' | \
awk -F / '{print $1}' | \
sed s/M//)"
_b=999
### Build the output
if [ "$_mem_use" -ge "$_b" ]; then
echo "${_cyan}: ${_green}$(echo "scale=2; $_mem_use / 1024" | bc)G/16G"
else
echo "${_cyan}: ${_green}0$(echo "scale=2; $_mem_use / 1024" | bc)G/16G"
fi
}
## Define cpu clock rate
_cpu_clock(){
_CSPEED="$(sysctl -n hw.cpuspeed)"
_CP="$(echo "scale=2; $_CSPEED / 1024" | bc)"
echo "${_orange}CPU: ${_green}${_CP}Ghz"
}
## Get hardware temperatures
_temp(){
### Some limits
y=60
r=70
### Get cpu temp
_cpu_temp="$(sysctl -n hw.sensors.cpu0.temp0 | awk '{print $1}' | awk -F '.' '{print $1}')"
### Get acpitz temp
_acpitz_temp="$(sysctl -n hw.sensors.acpitz0.temp0 | awk '{print $1}' | awk -F '.' '{print $1}')"
### Correct bug temperature
_temp_c="$(echo "scale=0; $_cpu_temp - 15" | bc)"
_temp_a="$(echo "scale=0; $_acpitz_temp - 15" | bc)"
### Some color acording to temperature
if [ "$_temp_c" -ge "$r" ]; then
_tempc="${_red}${_cpu_temp}ºC"
elif [ "$_temp_c" -ge "$y" ]; then
_tempc="%{F#FFF000}${_temp_c}ºC"
else
_tempc="${_green}${_temp_c}ºC"
fi
if [ "$_temp_a" -ge "$r" ]; then
_tempa="${_red}${_temp_a}ºC"
elif [ "$_temp_a" -ge "$y" ]; then
_tempa="%{F#FFF000}${_temp_a}ºC"
else
_tempa="${_green}${_temp_a}ºC"
fi
### Build output
echo "${_pink}CPU: ${_tempc} ${_purple}ACPITZ: ${_tempa}"
}
_fan_speed(){
_fspeed="$(sysctl -n hw.sensors.acpithinkpad0.fan0 | awk '{print $1}')"
_fp="$(echo "scale=2; $_fspeed / 1024" | bc)"
echo -e "${_yellow}FAN: ${_green}${_fp}kRPM"
}
_smt_func(){
_smt="$(sysctl -n hw.smt)"
echo "${_orange}SMT: ${_green}${_smt}"
}
_sec(){
_sec_lvl="$(sysctl -n kern.securelevel)"
if [ $_sec_lvl = "1" ]; then
_result="${_green}$_sec_lvl"
elif [ $_sec_lvl = "2" ]; then
_result="${_orange}$_sec_lvl"
else
_result="${_red}ERROR!"
fi
echo "${_red}Sec_lvl= $_result"
}
## PF Status
_pf(){
_pf_status="$(rcctl get pf | sed 's/pf=//')"
case "$_pf_status" in
"YES") echo "${_pink}PF: ${_green}ON";;
"NO") echo "${_pink}PF: ${_red}OFF";;
esac
}
_rec(){
_audio="$(sysctl -n kern.audio.record)"
_video="$(sysctl -n kern.video.record)"
if [ $_audio = 0 ]; then
_audio_color="${_green}$_audio"
else
_audio_color="${_orange}$_audio"
fi
if [ $_video = 0 ]; then
_video_color="${_green}$_video"
else
_video_color="${_orange}$_video"
fi
echo "${_blue}Video: $_video_color ${_purple}Audio: $_audio_color"
}
_network(){
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
_iplocal="$(ifconfig trunk0 | tail -1 | awk '{print $2}')"
_wifiname="$(ifconfig iwn0 | tail -1 | awk '{print $3}')"
_wifistr="$(ifconfig iwn0 | tail -1 | awk '{print $8}' | sed 's/dBm//')"
if [ "$_wifistr" -ge -45 ]; then
_wifistr_color="${_green}${_wifistr}dbm"
elif [ "$_wifistr" -lt -45 ] && [ "$_wifistr" -ge -60 ]; then
_wifistr_color="${_orange}${_wifistr}dbm"
elif [ "$_wifistr" -lt -60 ]; then
_wifistr_color="${_red}${_wifistr}dbm"
fi
if [ "$_net" = "em0" ]; then
echo "${_cyan}${_net}: ${_green}${_iplocal}"
elif [ "$_net" = "iwn0" ]; then
echo "${_cyan}${_wifiname}: ${_green}${_iplocal} ${_wifistr_color}"
else
echo "No network!"
fi
}
_mail(){
_mail_count="$(grep '^To:' /var/mail/b2r1s8 | wc -l | sed 's/ //g')"
case $_mail_count in
"0") echo ":${_mail_count}";;
*) echo ":${_mail_count}";;
esac
}
_sound(){
_vol="$(sndioctl -n output.level)"
_vol_done="$(echo "scale=0; $_vol * 100" | bc | awk -F'[.=]' '{print $1}')%"
echo "${_pink}Sound: ${_green}${_vol_done}"
}
_batt(){
_full="$(sysctl -n hw.sensors.acpibat0.watthour0 | awk '{print $1}')"
_real="$(sysctl -n hw.sensors.acpibat0.watthour3 | awk '{print $1}')"
_percent="$(echo "scale=2; ${_real} / ${_full} * 100" | bc | awk -F '.' '{print $1}')"
_state="$(sysctl -n hw.sensors.acpibat0.raw0 | awk '{print $3}' | sed s/\)\,//)"
case $_state in
"discharging") _states="dis" ;;
"charging") _states="cha" ;;
"idle") _states="idl" ;;
"full") _states="ful" ;;
esac
_y=50
_r=30
if [ "$_percent" -ge "$_y" ]; then
_percent_color="${_green}${_percent}%"
elif [ "$_percent" -ge "$_r" ]; then
_percent_color="${_yellow}${_percent}%"
else
_percent_color="${_red}${_percent}%"
fi
echo "${_orange}${_states}: ${_percent_color}"
}
_clock(){
_net="$(ifconfig trunk0 | grep active | head -1 | awk '{print $1}')"
_day="$()"
case $_net in
"em0") _date=$(date "+%a %Y-%m-%d e.v. %H:%M:%S") ;;
"iwn0") _date=$(date "+%Y-%m-%d e.v. %H:%M:%S") ;;
*) _date=$(date "+%a %Y-%m-%d e.v. %H:%M:%S") ;;
esac
echo -n "$_date"
}
#$(_os_type) \
#$(_smt_func) \
#$(_sec) \
#$(_pf) \
#$(_rec) \
#$(_temp) \
#$(_fan_speed) \
#$(_thelemic_date) \
while true; do
echo " \
$(_grp) $(_mem) $(_network) $(_mail) $(_sound) $(_batt) $(_clock) "
sleep 1
done

View File

@ -0,0 +1,6 @@
#!/usr/bin/env sh
pkill lemonbar
pkill infos.sh
/home/b2r1s8/.local/bin/infos | lemonbar -g 1366x27 -F "#FFFF00" -u 1 -n "lemonbar" &

View File

@ -0,0 +1,12 @@
#!/usr/bin/env sh
MEM="$(top -d1 | head -11 | tail -1 | awk '{print $3}' | awk -F / '{print $1}' | sed s/M//)"
b=999
if [ "$MEM" -ge "$b" ]; then
printf '%s' "Ram: $(echo "scale=2; $MEM / 1024" | bc)G/16G"
else
printf '%s' "Ram: 0$(echo "scale=2; $MEM / 1024" | bc)G/16G"
fi

View File

@ -0,0 +1,6 @@
#!/usr/bin/env sh
terminator -e "mocp --theme puffy_theme"
#urxvtc -e mocp --theme black_theme
#urxvtc -e mocp --theme transparent-background
#terminator -e "mocp --theme holly_theme"

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
[ $# -ne 1 ] && { echo "usage: $0 sdXy" 1>&2; exit 1; }
doas bioctl -c C -l $1 softraid0

View File

@ -0,0 +1,6 @@
#!/usr/bin/env sh
RED="[0;31m"
NORM="[0m"
echo "$(sysctl -n kern.ostype) $(sysctl -n kern.osrelease) $(sysctl -n kern.osversion)"

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
sav="$HOME/Pictures/sys_images/screenshots/obsd"
scrot -b -p -d 3 -s -f -q 100 -e 'xclip -selection clipboard -t image/png -i $f' "$sav"/ss_%Y-%m-%d_%H.%M.%S.png

View File

@ -0,0 +1,37 @@
#!/usr/bin/env sh
[ $# -ne 1 ] && { echo "usage: $0 name" 1>&2; exit 1; }
_vid="$(sysctl -n kern.video.record)"
_aud="$(sysctl -n kern.audio.record)"
if [ "$_vid" = "0" ]; then
doas sysctl kern.video.record=1
echo "Allow video record on!"
elif [ "$_vid" = "1" ]; then
echo "Allow video record on!"
fi
if [ "$_aud" = "0" ]; then
doas sysctl kern.audio.record=1
echo "Allow audio record on!"
elif [ "$_aud" = "1" ]; then
echo "Allow audio record on!"
fi
sndioctl input.level=1
trap 'kill 0' INT
aucat -o "$1.wav" &
ffmpeg \
-loglevel fatal \
-f x11grab \
-video_size 1366x768 \
-framerate 15 \
-i $DISPLAY \
-vcodec libx264 \
-preset ultrafast \
"$1.mkv"
kill 0

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
[ $# -ne 1 ] && { echo "usage: $0 name" 1>&2; exit 1; }
xpdf -rv -mattecolor Black -fg Yellow -bg Black "$1"

View File

@ -0,0 +1,13 @@
#!/usr/bin/env sh
[ $# -ne 1 ] && { echo "usage: $0 name" 1>&2; exit 1; }
ffmpeg -i "$1" -af "afftdn=nf=-25" 1-"$1"
#ffmpeg -i 1-"$1" -af "afftdn=nf=-25" 2-"$1"
ffmpeg -i 1-"$1" -af "highpass=f=200, lowpass=f=3000" 3-"$1"
ffmpeg -i 3-"$1" -af "volume=3" done-"$1"
rm -vf {1,2}*

View File

@ -0,0 +1,3 @@
#!/usr/bin/env sh
printf '%s' "CPU: $(sysctl -n hw.sensors.cpu0.temp0 | awk '{print $1}' | awk -F '.' '{print $1}')ºC ACPITZ: $(sysctl -n hw.sensors.acpitz0.temp0 | awk '{print $1}' | awk -F '.' '{print $1}')ºC"

View File

@ -0,0 +1,3 @@
#!/usr/bin/env sh
terminator -e "tmux"

View File

@ -0,0 +1,70 @@
#!/usr/bin/env sh
# Vars
_dayw=$(date "+%a") ## Day of the week
_daym=$(date "+%d") ## Day of the mounth
_mounth=$(date "+%m") ## Mounth number
_year=$(date "+%Y") ## Current year
_year_zero="1904"
_year_diff="$(echo "${_year} - ${_year_zero}" | bc)"
_year_cicles="$(echo "scale=0; ${_year_diff} / 22" | bc)"
_year_cur_cicle="$(echo "${_year_diff} - (${_year_cicles} * 22)" | bc)"
#_zone="-z +2" ## Time zone
_lat="35.922318399657875"
_log="14.381111311157396"
#_coord="-zl ${_log} ${_lat}"
_sun="$(astrolog -n ${_zone} ${_coord} | head -4 | tail -1 | awk '{print $3}' | sed 's/[0-9]//g')"
_sun_pos="$(astrolog -n ${_zone} ${_coord} | head -4 | tail -1 | awk '{print $3}' | ghead -c 2 | sed 's/[A-Z]//')"
_moon="$(astrolog -n ${_zone} ${_coord} | head -5 | tail -1 | awk '{print $2}' | sed 's/[0-9]//g')"
_moon_pos="$(astrolog -n ${_zone} ${_coord} | head -5 | tail -1 | awk '{print $2}' | ghead -c 2 | sed 's/[A-Z]//')"
case $_sun in
"Aqu") _sun_done="Acquario";;
"Gem") _sun_done="Gemelli";;
"Sag") _sun_done="Sagittarii";;
"Tau") _sun_done="Toro";;
"Ari") _sun_done="Ariete";;
"Pis") _sun_done="Pesci";;
"Cap") _sun_done="Capricorno";;
"Can") _sun_done="Cancro";;
"Sco") _sun_done="Scorpione";;
"Lib") _sun_done="Bilancia";;
"Leo") _sun_done="Leone";;
"Vir") _sun_done="Vergine";;
esac
case $_moon in
"Aqu") _moon_done="Acquario";;
"Gem") _moon_done="Gemelli";;
"Sag") _moon_done="Sagittarii";;
"Tau") _moon_done="Toro";;
"Ari") _moon_done="Ariete";;
"Pis") _moon_done="Pesci";;
"Cap") _moon_done="Capricorno";;
"Can") _moon_done="Cancro";;
"Sco") _moon_done="Scorpione";;
"Lib") _moon_done="Bilancia";;
"Leo") _moon_done="Leone";;
"Vir") _moon_done="Vergine";;
esac
case $_dayw in
"Sun") _dayw_done="Solis";;
"Mon") _dayw_done="Lunae";;
"Tue") _dayw_done="Martis";;
"Wed") _dayw_done="Mercurii";;
"Thu") _dayw_done="Jovis";;
"Fri") _dayw_done="Veneris";;
"Sat") _dayw_done="Saturnis";;
esac
# Main function
#echo "☉︎ in ${_sun_pos}° ${_sun_done} : ☽︎ in ${_moon_pos}° ${_moon_done} : dies ${_dayw_done} : Anno Vviii a.n."
echo "
☉︎ in ${_sun_pos}° ${_sun_done}
☽︎ in ${_moon_pos}° ${_moon_done}
Dies ${_dayw_done}
Anno V:viii a.n.
93, 93/93 A.·.A.·.
"

View File

@ -0,0 +1,3 @@
#!/usr/bin/env sh
urxvtc -e mail

View File

@ -0,0 +1,30 @@
#!/usr/bin/env sh
upsrc(){
echo "Changing to the src directory."
cd /usr/src
cvs -q up -Pd -rOPENBSD_7_1
echo "Done!"
}
uports(){
echo "Changing to the ports directory."
cd /usr/ports
cvs -q up -Pd -rOPENBSD_7_1
echo "Done!."
}
upfaq(){
echo "Changing to the faq directory."
cd $HOME/Templates/unixlike/openbsd/projects
cvs update -P www/faq
echo "Done!."
}
upsrc && uports && upfaq && cd && exit 0

View File

@ -0,0 +1,15 @@
#!/usr/bin/env sh
[ $# -ne 1 ] && { echo "usage: $0 name" 1>&2; exit 1; }
ffmpeg -i "$1".wav -af "afftdn=nf=-25" "$1"-1.wav
ffmpeg -i "$1"-1.wav -af "afftdn=nf=-25" "$1"-2.wav
ffmpeg -i "$1"-2.wav -af "highpass=f=200, lowpass=f=3000" "$1"-3.wav
ffmpeg -i "$1"-3.wav -af "volume=4" "$1"-done.wav
ffmpeg -i "$1".mkv -i "$1"-done.wav -c:v copy -c:a aac "$1".mp4
rm -vf "$1"-{1,2,3,done}*

View File

@ -0,0 +1,16 @@
#!/usr/bin/env sh
printf '%s\n'
printf '%s\n\n' "Wellcome to OpenBSD"
printf '%s\n\n' "Kernel Version: $(sysctl -n kern.version)"
printf '%s\n' "CPU Temperature: $(sysctl -n hw.sensors.cpu0.temp0)"
printf '%s\n' "ACPITZ Temperature: $(sysctl -n hw.sensors.acpitz0.temp0)"
printf '%s\n' "CPU Speed: $(sysctl -n hw.cpuspeed)"
printf '%s\n\n' "FAN Speed: $(sysctl -n hw.sensors.acpithinkpad0.fan0)"
top -d1 | head -11 | tail -1

View File

@ -0,0 +1,9 @@
#!/usr/bin/env sh
if [ -d $HOME/.fonts ]; then
for i in $HOME/.fonts/*; do
xset fp+ $i
done
xset fp rehash
fi

View File

@ -0,0 +1,10 @@
#!/usr/bin/env sh
while true; do
xset dpms 0 0 0
xset s off -dpms
xset s 0 0
xset s noblank
xset s noexpose
exit 0
done

View File

@ -0,0 +1,185 @@
184
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-ascii-0
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-ibm-cp850
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-ibm-cp852
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-ibm-cp866
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso10646-1
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-1
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-10
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-13
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-15
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-16
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-2
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-3
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-4
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-5
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-7
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-9
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-e
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-r
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-ru
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-u
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-uni
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-microsoft-cp1252
Hack bold italic nerd font complete mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-suneu-greek
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-ascii-0
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-ibm-cp850
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-ibm-cp852
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-ibm-cp866
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso10646-1
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-1
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-10
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-13
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-15
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-16
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-2
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-3
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-4
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-5
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-7
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-9
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-e
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-r
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-ru
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-u
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-uni
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-microsoft-cp1252
Hack bold italic nerd font complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-suneu-greek
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-adobe-standard
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-ascii-0
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-ibm-cp850
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-ibm-cp852
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso10646-1
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-1
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-10
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-13
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-15
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-16
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-2
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-3
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-4
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-5
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-7
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-9
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-e
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-r
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-ru
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-u
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-uni
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-microsoft-cp1252
Hack bold nerd font complete mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-suneu-greek
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-adobe-standard
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-ascii-0
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-ibm-cp850
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-ibm-cp852
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso10646-1
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-1
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-10
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-13
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-15
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-16
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-2
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-3
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-4
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-5
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-7
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-9
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-e
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-r
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-ru
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-u
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-uni
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-microsoft-cp1252
Hack bold nerd font complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-suneu-greek
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-ascii-0
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-ibm-cp850
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-ibm-cp852
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-ibm-cp866
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso10646-1
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-1
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-10
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-13
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-15
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-16
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-2
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-3
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-4
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-5
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-7
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-9
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-e
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-r
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-ru
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-u
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-uni
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-microsoft-cp1252
Hack italic nerd font complete mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-suneu-greek
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-ascii-0
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-ibm-cp850
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-ibm-cp852
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-ibm-cp866
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso10646-1
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-1
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-10
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-13
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-15
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-16
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-2
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-3
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-4
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-5
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-7
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-9
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-e
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-r
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-ru
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-u
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-uni
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-microsoft-cp1252
Hack italic nerd font complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-suneu-greek
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-adobe-standard
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-ascii-0
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-ibm-cp850
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-ibm-cp852
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-ibm-cp866
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso10646-1
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-1
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-10
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-13
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-15
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-16
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-2
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-3
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-4
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-5
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-7
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-9
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-e
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-r
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-ru
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-u
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-uni
Hack regular nerd font complete mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-microsoft-cp1252
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-adobe-standard
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-ascii-0
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-ibm-cp850
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-ibm-cp852
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-ibm-cp866
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso10646-1
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-1
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-10
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-13
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-15
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-16
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-2
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-3
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-4
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-5
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-7
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-9
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-e
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-r
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-ru
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-u
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-uni
Hack regular nerd font complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-microsoft-cp1252

View File

@ -0,0 +1,185 @@
184
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-ascii-0
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-ibm-cp850
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-ibm-cp852
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-ibm-cp866
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso10646-1
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-1
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-10
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-13
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-15
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-16
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-2
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-3
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-4
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-5
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-7
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-iso8859-9
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-e
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-r
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-ru
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-u
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-koi8-uni
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-microsoft-cp1252
Hack Bold Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-i-normal--0-0-0-0-m-0-suneu-greek
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-ascii-0
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-ibm-cp850
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-ibm-cp852
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-ibm-cp866
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso10646-1
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-1
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-10
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-13
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-15
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-16
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-2
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-3
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-4
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-5
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-7
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-iso8859-9
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-e
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-r
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-ru
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-u
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-koi8-uni
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-microsoft-cp1252
Hack Bold Italic Nerd Font Complete.ttf -misc-hack nerd font-bold-i-normal--0-0-0-0-p-0-suneu-greek
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-adobe-standard
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-ascii-0
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-ibm-cp850
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-ibm-cp852
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso10646-1
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-1
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-10
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-13
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-15
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-16
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-2
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-3
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-4
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-5
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-7
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-iso8859-9
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-e
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-r
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-ru
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-u
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-koi8-uni
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-microsoft-cp1252
Hack Bold Nerd Font Complete Mono.ttf -misc-hack nerd font mono-bold-r-normal--0-0-0-0-m-0-suneu-greek
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-adobe-standard
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-ascii-0
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-ibm-cp850
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-ibm-cp852
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso10646-1
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-1
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-10
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-13
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-15
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-16
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-2
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-3
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-4
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-5
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-7
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-iso8859-9
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-e
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-r
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-ru
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-u
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-koi8-uni
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-microsoft-cp1252
Hack Bold Nerd Font Complete.ttf -misc-hack nerd font-bold-r-normal--0-0-0-0-p-0-suneu-greek
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-ascii-0
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-ibm-cp850
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-ibm-cp852
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-ibm-cp866
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso10646-1
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-1
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-10
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-13
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-15
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-16
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-2
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-3
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-4
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-5
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-7
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-iso8859-9
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-e
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-r
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-ru
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-u
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-koi8-uni
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-microsoft-cp1252
Hack Italic Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-i-normal--0-0-0-0-m-0-suneu-greek
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-ascii-0
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-ibm-cp850
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-ibm-cp852
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-ibm-cp866
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso10646-1
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-1
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-10
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-13
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-15
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-16
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-2
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-3
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-4
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-5
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-7
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-iso8859-9
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-e
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-r
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-ru
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-u
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-koi8-uni
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-microsoft-cp1252
Hack Italic Nerd Font Complete.ttf -misc-hack nerd font-medium-i-normal--0-0-0-0-p-0-suneu-greek
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-adobe-standard
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-ascii-0
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-ibm-cp850
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-ibm-cp852
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-ibm-cp866
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso10646-1
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-1
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-10
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-13
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-15
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-16
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-2
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-3
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-4
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-5
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-7
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-iso8859-9
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-e
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-r
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-ru
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-u
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-koi8-uni
Hack Regular Nerd Font Complete Mono.ttf -misc-hack nerd font mono-medium-r-normal--0-0-0-0-m-0-microsoft-cp1252
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-adobe-standard
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-ascii-0
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-ibm-cp850
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-ibm-cp852
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-ibm-cp866
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso10646-1
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-1
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-10
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-13
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-15
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-16
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-2
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-3
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-4
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-5
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-7
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-iso8859-9
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-e
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-r
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-ru
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-u
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-koi8-uni
Hack Regular Nerd Font Complete.ttf -misc-hack nerd font-medium-r-normal--0-0-0-0-p-0-microsoft-cp1252

View File

@ -0,0 +1,20 @@
((("win" .
[1 0 0])
("_cap_r" .
[2 0 0 0 0 0])
("_cap" .
[1 0 0 0])
("case" .
[0 0 0 1])
("_state" .
[2 0 0 0 0 0])
("kern.audio.record" .
[0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0])
(":config" .
[1 0 0 0 0 0 0])
(":ensure" .
[1 0 0 0 0 0 1])
("use-package" .
[0 0 0 1 0 0 0 0 0 0 1])
("!/usr/bin/env" .
[1 0 0 0 0 0 0 0 0 0 0 0 0])))

View File

@ -0,0 +1,574 @@
(setq user-full-name "b2r1s8"
user-mail-address "")
;; The default is 800 kilobytes. Measured in bytes.
(setq gc-cons-threshold (* 50 1000 1000))
;; Profile emacs startup
(add-hook 'emacs-startup-hook
(lambda ()
(message "*** Emacs loaded in %s with %d garbage collections."
(format "%.2f seconds"
(float-time
(time-subtract after-init-time before-init-time)))
gcs-done)))
;; Fist things first
(setq inhibit-startup-message t)
(tool-bar-mode -1) ;; Remove tool bar C-x u undo | C-w cut | M-w copy | C-y paste
(menu-bar-mode -1) ;; Remove menus
(scroll-bar-mode -1) ;; Remove scroll bar
(global-hl-line-mode t) ;; Show current line
(global-prettify-symbols-mode t) ;; Prettify symbols mode
(set-face-attribute 'default nil :height 80) ;; Font size
(column-number-mode 1) ;; Colummns numeration
(show-paren-mode 1) ;; Show parent parentesis
(setq visible-bell t) ;; Visible bell
;;(setq-default header-line-format mode-line-format)
(setq-default mode-line-format nil)
(setq-default header-line-format nil)
(setq
backup-by-copying t ; don't clobber symlinks
backup-directory-alist
'(("." . "~/.emacs.d/backups/")) ; don't litter my fs tree
delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t) ; use versioned backups
;; Tabbar
(use-package tabbar)
(tab-bar-mode 1) ;; Additing tabs
;; Show time and date on the mode line
(setq display-time-day-and-date t)
(setq display-time-format "%a %b %F %R")
(display-time-mode 1)
;; Frame tansparency
(set-frame-parameter (selected-frame) 'alpha '(75 . 75))
(add-to-list 'default-frame-alist '(alpha . (75 . 75)))
(set-frame-parameter (selected-frame) 'fullscreen 'maximized)
(add-to-list 'default-frame-alist '(fullscreen . maximized))
;; Line numbers
(global-linum-mode t)
(setq linum-format "%2d \u2502")
(dolist (mode '(org-mode-hook
term-mode-hook
shell-mode-hook
treemacs-mode-hook
eshell-mode-hook))
(add-hook mode (lambda () (display-line-numbers-mode 0))))
;; Border
(setq frame-resize-pixelwise t)
(set-frame-parameter nil 'fullscreen 'fullboth)
;; Keep all backup and auto-save files in one directory
(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))
(setq auto-save-file-name-transforms '((".*" "~/.emacs.d/auto-save-list/" t)))
;; UTF-8 please
(setq locale-coding-system 'utf-8) ; pretty
(set-terminal-coding-system 'utf-8) ; pretty
(set-keyboard-coding-system 'utf-8) ; pretty
(set-selection-coding-system 'utf-8) ; please
(prefer-coding-system 'utf-8) ; with sugar on top
;; Identation:
(setq-default tab-width 2)
(setq-default standard-indent 2)
(setq c-basic-offset tab-width)
(setq-default electric-indent-inhibit t)
(setq-default indent-tabs-mode nil)
(setq backward-delete-char-untabify-method 'nil)
;; Enable bracket pair-matching
(setq electric-pair-pairs '(
(?\{ . ?\})
(?\( . ?\))
(?\[ . ?\])
(?\" . ?\")
))
(electric-pair-mode t)
;;; Mude o foco p/ novas janelas
(defun split-and-follow-horizontally ()
(interactive)
(split-window-below)
(balance-windows)
(other-window 1))
(defun split-and-follow-vertically ()
(interactive)
(split-window-right)
(balance-windows)
(other-window 1))
;; Alias
(defalias 'yes-or-no-p 'y-or-n-p)
(defalias 'open 'find-file-other-window)
(defalias 'clean 'eshell/clear-scrollback)
(defalias 'list-buffers 'ibuffer)
(global-unset-key (kbd "C-z")) ;; Unbind C-z
(global-unset-key (kbd "C-Z")) ;; Unbind C-Z
(global-set-key (kbd "s-<up>") 'windmove-up)
(global-set-key (kbd "s-<down>") 'windmove-down)
(global-set-key (kbd "s-<right>") 'windmove-right)
(global-set-key (kbd "s-<left>") 'windmove-left)
(global-set-key (kbd "C-<tab>") 'other-window)
(global-set-key (kbd "C-x 3") 'split-and-follow-vertically)
(global-set-key (kbd "C-x 2") 'split-and-follow-horizontally)
(global-set-key (kbd "C-c l") 'org-store-link)
(global-set-key (kbd "C-c a") 'org-agenda)
(global-set-key (kbd "C-c c") 'org-capture)
;; Open new tab on the dashboard
(defun new-tab ()
(interactive)
(tab-new-to)
(switch-to-buffer (get-buffer-create "*dashboard*")))
(global-set-key (kbd "s-x") 'new-tab)
(global-set-key (kbd "s-X") 'tab-close)
;; Configuring desktop
;;(require 'desktop)
;; (desktop-save-mode 1)
;; (defun my-desktop-save ()
;; (interactive)
;; ;; Don't call desktop-save-in-desktop-dir, as it prints a message.
;; (if (eq (desktop-owner) (emacs-pid))
;; (desktop-save desktop-dirname)))
;; (add-hook 'auto-save-hook 'my-desktop-save)
;;
;;(setq clean-buffer-list-delay-general 1)
;;
;;;; Configuring midnight
;;(require 'midnight)
;;(midnight-delay-set 'midnight-delay "6:30am")
(use-package dashboard
:ensure t
:defer nil
:preface
(defun init-edit ()
"Edit initialization file."
(interactive)
(find-file "~/.emacs.d/init.el"))
(defun conf-edit ()
"Edit configuration file."
(interactive)
(find-file "~/.emacs.d/config.org"))
(defun create-scratch-buffer ()
"Create a scratch buffer."
(interactive)
(switch-to-buffer (get-buffer-create "*scratch*"))
(lisp-interaction-mode))
:config
(dashboard-setup-startup-hook)
(setq dashboard-items '((recents . 25)))
(setq dashboard-banner-logo-title "Welcome to Emacs!")
(setq dashboard-startup-banner "~/.emacs.d/img/emacs.png")
(setq dashboard-center-content t)
(setq dashboard-show-shortcuts nil)
(setq dashboard-set-init-info t)
(setq dashboard-init-info (format "%d packages loaded in %s"
(length package-activated-list) (emacs-init-time)))
(setq dashboard-set-footer nil)
(setq dashboard-set-navigator t)
(setq dashboard-navigator-buttons
`(((,nil
"Open init.el file."
"Open Emacs initialization file for easy editing."
(lambda (&rest _) (init-edit))
'default)
(nil
"Open config.org file."
"Open Emacs configuration file for easy editing."
(lambda (&rest _) (conf-edit))
'default)
(nil
"Open scratch buffer."
"Switch to the scratch buffer."
(lambda (&rest _) (create-scratch-buffer))
'default)))))
(use-package pdf-tools
:defer t
:commands (pdf-view-mode pdf-tools-install)
:mode ("\\.[pP][dD][fF]\\'" . pdf-view-mode)
:load-path "site-lisp/pdf-tools/lisp"
:magic ("%PDF" . pdf-view-mode)
:config
(pdf-tools-install)
(define-pdf-cache-function pagelabels)
:hook ((pdf-view-mode-hook . (lambda () (display-line-numbers-mode -1)))
(pdf-view-mode-hook . pdf-tools-enable-minor-modes)))
(use-package pdf-view-restore
:after pdf-tools
:config
(add-hook 'pdf-view-mode-hook 'pdf-view-restore-mode))
;;(use-package org-pdftools
;; :hook (org-load-hook . org-pdftools-setup-link))
(add-hook 'pdf-view-mode-hook (lambda() (linum-mode -1)))
;; Org init
(use-package org
:config
(add-hook 'org-mode-hook
'(lambda ()
(visual-line-mode 1)))
(setq org-display-inline-images t)
(setq org-redisplay-inline-images t)
(setq org-startup-with-inline-images "inlineimages")
(setq org-directory "~/.emacs.d/org")
(setq org-agenda-files (list "inbox.org"))
(global-set-key (kbd "C-<f1>") (lambda()
(interactive)
(outline-show-all))))
(use-package org-bullets
:config
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
(use-package htmlize
:ensure t)
;; src exec
(org-babel-do-load-languages 'org-babel-load-languages
'(
(shell . t)
)
)
(setq org-src-fontify-natively t
org-src-window-setup 'current-window
org-src-strip-leading-and-trailing-blank-lines t
org-src-preserve-indentation t
org-src-tab-acts-natively t)
(require 'org-tempo)
;; And that'll allow you to type "<sh", "<el", "<py", "<conf" followed by tab to create src blocks for those languages, and you can add as many others as you want.
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
(add-to-list 'org-structure-template-alist '("py" . "src python"))
(add-to-list 'org-structure-template-alist '("conf" . "src conf"))
;; Org default head
;;(add-to-list 'org-structure-template-alist
;; '("p" "#+title:\n#+author: b2r1s8@gen2\n#+date:\n#+startup: hidestars odd overview\n\n? "))
(use-package doom-modeline
:ensure t
:init (doom-modeline-mode 1))
(setq doom-modeline-height 5)
;; Hide mode-line when is not usefull
(setq doom-hide-modeline-mode t)
;; The limit of the window width.
;; If `window-width' is smaller than the limit, some information won't be displayed.
(setq doom-modeline-window-width-limit fill-column)
;; Whether display the icon for `major-mode'. It respects `doom-modeline-icon'.
(setq doom-modeline-major-mode-icon t)
;; Whether display the colorful icon for `major-mode'.
;; It respects `all-the-icons-color-icons'.
(setq doom-modeline-major-mode-color-icon t)
;; Whether display the icon for the buffer state. It respects `doom-modeline-icon'.
(setq doom-modeline-buffer-state-icon t)
;; Whether display the modification icon for the buffer.
;; It respects `doom-modeline-icon' and `doom-modeline-buffer-state-icon'.
(setq doom-modeline-buffer-modification-icon t)
;; Whether display the buffer encoding.
(setq doom-modeline-buffer-encoding t)
;; If non-nil, only display one number for checker information if applicable.
(setq doom-modeline-checker-simple-format t)
;; Whether display the workspace name. Non-nil to display in the mode-line.
(setq doom-modeline-workspace-name t)
(use-package ace-window
:ensure t
:bind (("C-o" . ace-window)))
(use-package which-key
:ensure t
:diminish which-key-mode
:init
(which-key-mode)
:config
(setq which-key-idle-delay 0.3))
(use-package swiper
:ensure t
:bind ("s-s" . 'swiper))
(use-package beacon
:ensure t
:diminish beacon-mode
:init
(beacon-mode 1))
(use-package async
:ensure t
:init
(dired-async-mode 1))
(use-package page-break-lines
:ensure t
:diminish (page-break-lines-mode visual-line-mode))
(use-package undo-tree
:ensure t
:diminish undo-tree-mode)
(use-package saveplace
:defer nil
:config
(save-place-mode))
(use-package eldoc
:diminish eldoc-mode)
(use-package try
:ensure t)
(use-package auto-complete
:ensure t
:init
(progn
(ac-config-default)
(global-auto-complete-mode t)))
(use-package neotree
:ensure t
:bind (("C-\\" . 'neotree-toggle))) ;; Ativa a tree
(use-package color-theme-modern
:ensure t)
(use-package flycheck
:ensure t
:init (global-flycheck-mode t))
(use-package recentf
:config
(recentf-mode t)
(setq recentf-max-saved-items 500))
(use-package expand-region
:ensure t
:bind ("C-@" . er/expand-region))
(use-package smooth-scrolling
:ensure t
:config
(smooth-scrolling-mode))
(use-package emmet-mode
:ensure t
:commands emmet-mode
:config
(add-hook 'html-mode-hook 'emmet-mode)
(add-hook 'css-mode-hookg 'emmet-mode))
(use-package scratch
:ensure t
:commands scratch)
(use-package shell-pop
:ensure t
:bind ("M-<f12>" . shell-pop))
(use-package quickrun
:defer 10
:ensure t
:bind ("C-c r" . quickrun))
(use-package terminal-here
:ensure t
:bind (("C-c o t" . terminal-here-launch)
("C-c o p" . terminal-here-project-launch)))
(use-package whitespace)
(require 'whitespace)
(setq whitespace-line-column 80) ;; limit line length
(setq whitespace-style '(face lines-tail))
;; Automatically clean whitespace
(use-package ws-butler
:hook ((text-mode . ws-butler-mode)
(prog-mode . ws-butler-mode)))
(use-package ivy
:diminish
:bind (("C-s" . swiper)
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-f" . ivy-alt-done)
("C-l" . ivy-alt-done)
("C-j" . ivy-next-line)
("C-k" . ivy-previous-line)
:map ivy-switch-buffer-map
("C-k" . ivy-previous-line)
("C-l" . ivy-done)
("C-d" . ivy-switch-buffer-kill)
:map ivy-reverse-i-search-map
("C-k" . ivy-previous-line)
("C-d" . ivy-reverse-i-search-kill))
:init
(ivy-mode 1)
:config
(setq ivy-use-virtual-buffers t)
(setq ivy-wrap t)
(setq ivy-count-format "(%d/%d) ")
(setq enable-recursive-minibuffers t)
;; Use different regex strategies per completion command
(push '(completion-at-point . ivy--regex-fuzzy) ivy-re-builders-alist) ;; This doesn't seem to work...
(push '(swiper . ivy--regex-ignore-order) ivy-re-builders-alist)
(push '(counsel-M-x . ivy--regex-ignore-order) ivy-re-builders-alist)
;; Set minibuffer height for different commands
(setf (alist-get 'counsel-projectile-ag ivy-height-alist) 15)
(setf (alist-get 'counsel-projectile-rg ivy-height-alist) 15)
(setf (alist-get 'swiper ivy-height-alist) 15)
(setf (alist-get 'counsel-switch-buffer ivy-height-alist) 7))
(use-package ivy-hydra
:defer t
:after hydra)
(use-package ivy-rich
:init
(ivy-rich-mode 1)
:after counsel
:config
(setq ivy-format-function #'ivy-format-function-line)
(setq ivy-rich-display-transformers-list
(plist-put ivy-rich-display-transformers-list
'ivy-switch-buffer
'(:columns
((ivy-rich-candidate (:width 40))
(ivy-rich-switch-buffer-indicators (:width 4 :face error :align right)); return the buffer indicators
(ivy-rich-switch-buffer-major-mode (:width 12 :face warning)) ; return the major mode info
(ivy-rich-switch-buffer-project (:width 15 :face success)) ; return project name using `projectile'
(ivy-rich-switch-buffer-path (:width (lambda (x) (ivy-rich-switch-buffer-shorten-path x (ivy-rich-minibuffer-width 0.3)))))) ; return file path relative to project root or `default-directory' if project is nil
:predicate
(lambda (cand)
(if-let ((buffer (get-buffer cand)))
;; Don't mess with EXWM buffers
(with-current-buffer buffer
(not (derived-mode-p 'exwm-mode)))))))))
(use-package counsel
:after ivy
:bind (("M-x" . counsel-M-x)
("C-x b" . counsel-ibuffer)
("C-x C-f" . counsel-find-file)
("C-M-j" . counsel-switch-buffer)
("C-M-l" . counsel-imenu)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
:config
(setq ivy-initial-inputs-alist nil)) ;; Don't start searches with ^
(use-package flx ;; Improves sorting for fuzzy-matched results
:after ivy
:defer t
:init
(setq ivy-flx-limit 10000))
(use-package wgrep)
(use-package ivy-posframe
:disabled
:custom
(ivy-posframe-width 115)
(ivy-posframe-min-width 115)
(ivy-posframe-height 10)
(ivy-posframe-min-height 10)
:config
(setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-frame-center)))
(setq ivy-posframe-parameters '((parent-frame . nil)
(left-fringe . 8)
(right-fringe . 8)))
(ivy-posframe-mode 1))
(use-package prescient
:after counsel
:config
(prescient-persist-mode 1))
(use-package ivy-prescient
:after prescient
:config
(ivy-prescient-mode 1))
;;(dw/leader-key-def
;; "r" '(ivy-resume :which-key "ivy resume")
;; "f" '(:ignore t :which-key "files")
;; "ff" '(counsel-find-file :which-key "open file")
;; "C-f" 'counsel-find-file
;; "fr" '(counsel-recentf :which-key "recent files")
;; "fR" '(revert-buffer :which-key "revert file")
;; "fj" '(counsel-file-jump :which-key "jump to file"))
;; Dired
(require 'dired-x)
(setq dired-omit-files "^\\...+$")
(add-hook 'dired-mode-hook (lambda () (dired-omit-mode 1)))
(add-hook 'dired-mode-hook 'auto-revert-mode)
(setq global-auto-revert-non-file-buffers t)
(setq auto-revert-verbose nil)
;; Elpher
(advice-add 'eww-browse-url :around 'elpher:eww-browse-url)
;; eww
(defun elpher:eww-browse-url (original url &optional new-window)
"Handle gemini links."
(cond ((string-match-p "\\`\\(gemini\\|gopher\\)://" url)
(require 'elpher)
(elpher-go url))
(t (funcall original url new-window))))
;;; Eshell
(setq eshell-prompt-regexp "^[^αλ\n]*[αλ] ")
(setq eshell-prompt-function
(lambda nil
(concat
(if (string= (eshell/pwd) (getenv "HOME"))
(propertize "~" 'face `(:foreground "#99CCFF"))
(replace-regexp-in-string
(getenv "HOME")
(propertize "~" 'face `(:foreground "#99CCFF"))
(propertize (eshell/pwd) 'face `(:foreground "#99CCFF"))))
(if (= (user-uid) 0)
(propertize " α " 'face `(:foreground "#FF6666"))
(propertize " λ " 'face `(:foreground "#A6E22E"))))))
(setq eshell-highlight-prompt nil)
(require 'emms-setup)
(emms-all)
(emms-default-players)
(setq emms-source-file-default-directory "~/songs/")
(setq emms-info-asynchronously nil)
(setq emms-playlist-buffer-name "*Music*")
;; ERC
;;(erc :server "irc.freenode.net" :port 6667 :nick "b2r1s8")
;;(setq erc-autojoin-channels-alist
;; '(("freenode.net" "#gentoo" "#gentoo-chat" "#ratpoison" "#perl" "#monero" "#emacs" "#emacs-beginners" "#emacs-offtopic" "#org-mode")))

View File

@ -0,0 +1,876 @@
#+title: Emacs Configuration
#+author: b2r1s8@gen2
#+date: 2021-02-08
#+startup: hidestars odd overview
I've been using emacs for a while now and dicided that it is time to convert my configs to org mode.
This configuration uses the [[https://github.com/jwiegley/use-package][use-package]] package from John Wiegley, which is
a fantastic way to manage package configurations.
* Personal Information
#+begin_src emacs-lisp
(setq user-full-name "b2r1s8"
user-mail-address "")
#+end_src
* Sane defaults
The default emacs config is ugly and not efficient.
** Startup Performance
Make startup faster by reducing the frequency of garbage collection and then use a hook to measure Emacs startup time.
#+begin_src emacs-lisp
;; The default is 800 kilobytes. Measured in bytes.
(setq gc-cons-threshold (* 50 1000 1000))
;; Profile emacs startup
(add-hook 'emacs-startup-hook
(lambda ()
(message "*** Emacs loaded in %s with %d garbage collections."
(format "%.2f seconds"
(float-time
(time-subtract after-init-time before-init-time)))
gcs-done)))
#+end_src
** Customizing emacs
#+begin_src emacs-lisp
;; Fist things first
(setq inhibit-startup-message t)
(tool-bar-mode -1) ;; Remove tool bar C-x u undo | C-w cut | M-w copy | C-y paste
(menu-bar-mode -1) ;; Remove menus
(scroll-bar-mode -1) ;; Remove scroll bar
(global-hl-line-mode t) ;; Show current line
(global-prettify-symbols-mode t) ;; Prettify symbols mode
(set-face-attribute 'default nil :height 80) ;; Font size
(column-number-mode 1) ;; Colummns numeration
(show-paren-mode 1) ;; Show parent parentesis
(setq visible-bell t) ;; Visible bell
;;(setq-default header-line-format mode-line-format)
(setq-default mode-line-format nil)
(setq-default header-line-format nil)
(setq
backup-by-copying t ; don't clobber symlinks
backup-directory-alist
'(("." . "~/.emacs.d/backups/")) ; don't litter my fs tree
delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t) ; use versioned backups
;; Tabbar
(use-package tabbar)
(tab-bar-mode 1) ;; Additing tabs
;; Show time and date on the mode line
(setq display-time-day-and-date t)
(setq display-time-format "%a %b %F %R")
(display-time-mode 1)
;; Frame tansparency
(set-frame-parameter (selected-frame) 'alpha '(75 . 75))
(add-to-list 'default-frame-alist '(alpha . (75 . 75)))
(set-frame-parameter (selected-frame) 'fullscreen 'maximized)
(add-to-list 'default-frame-alist '(fullscreen . maximized))
;; Line numbers
(global-linum-mode t)
(setq linum-format "%2d \u2502")
(dolist (mode '(org-mode-hook
term-mode-hook
shell-mode-hook
treemacs-mode-hook
eshell-mode-hook))
(add-hook mode (lambda () (display-line-numbers-mode 0))))
;; Border
(setq frame-resize-pixelwise t)
(set-frame-parameter nil 'fullscreen 'fullboth)
;; Keep all backup and auto-save files in one directory
(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))
(setq auto-save-file-name-transforms '((".*" "~/.emacs.d/auto-save-list/" t)))
;; UTF-8 please
(setq locale-coding-system 'utf-8) ; pretty
(set-terminal-coding-system 'utf-8) ; pretty
(set-keyboard-coding-system 'utf-8) ; pretty
(set-selection-coding-system 'utf-8) ; please
(prefer-coding-system 'utf-8) ; with sugar on top
;; Identation:
(setq-default tab-width 2)
(setq-default standard-indent 2)
(setq c-basic-offset tab-width)
(setq-default electric-indent-inhibit t)
(setq-default indent-tabs-mode nil)
(setq backward-delete-char-untabify-method 'nil)
;; Enable bracket pair-matching
(setq electric-pair-pairs '(
(?\{ . ?\})
(?\( . ?\))
(?\[ . ?\])
(?\" . ?\")
))
(electric-pair-mode t)
#+end_src
** Changing how focus work
This fuction change the focus to the new window
#+begin_src emacs-lisp
;;; Mude o foco p/ novas janelas
(defun split-and-follow-horizontally ()
(interactive)
(split-window-below)
(balance-windows)
(other-window 1))
(defun split-and-follow-vertically ()
(interactive)
(split-window-right)
(balance-windows)
(other-window 1))
#+end_src
** Alias
Some alias that make my life easier
#+begin_src emacs-lisp
;; Alias
(defalias 'yes-or-no-p 'y-or-n-p)
(defalias 'open 'find-file-other-window)
(defalias 'clean 'eshell/clear-scrollback)
(defalias 'list-buffers 'ibuffer)
#+end_src
** Key binds
Some key binds to make my life easier
#+begin_src emacs-lisp
(global-unset-key (kbd "C-z")) ;; Unbind C-z
(global-unset-key (kbd "C-Z")) ;; Unbind C-Z
(global-set-key (kbd "s-<up>") 'windmove-up)
(global-set-key (kbd "s-<down>") 'windmove-down)
(global-set-key (kbd "s-<right>") 'windmove-right)
(global-set-key (kbd "s-<left>") 'windmove-left)
(global-set-key (kbd "C-<tab>") 'other-window)
(global-set-key (kbd "C-x 3") 'split-and-follow-vertically)
(global-set-key (kbd "C-x 2") 'split-and-follow-horizontally)
(global-set-key (kbd "C-c l") 'org-store-link)
(global-set-key (kbd "C-c a") 'org-agenda)
(global-set-key (kbd "C-c c") 'org-capture)
#+end_src
** Functions
Some Functions that I use.
*** Dashboard
#+begin_src emacs-lisp
;; Open new tab on the dashboard
(defun new-tab ()
(interactive)
(tab-new-to)
(switch-to-buffer (get-buffer-create "*dashboard*")))
(global-set-key (kbd "s-x") 'new-tab)
(global-set-key (kbd "s-X") 'tab-close)
#+end_src
*** Midnight + cleanbuffer-list
#+begin_src emacs-lisp
;; Configuring desktop
;;(require 'desktop)
;; (desktop-save-mode 1)
;; (defun my-desktop-save ()
;; (interactive)
;; ;; Don't call desktop-save-in-desktop-dir, as it prints a message.
;; (if (eq (desktop-owner) (emacs-pid))
;; (desktop-save desktop-dirname)))
;; (add-hook 'auto-save-hook 'my-desktop-save)
;;
;;(setq clean-buffer-list-delay-general 1)
;;
;;;; Configuring midnight
;;(require 'midnight)
;;(midnight-delay-set 'midnight-delay "6:30am")
#+end_src
* Packages
Some packages that I use.
** Dashboard
A beatiful and usefull dashboard.
#+begin_src emacs-lisp
(use-package dashboard
:ensure t
:defer nil
:preface
(defun init-edit ()
"Edit initialization file."
(interactive)
(find-file "~/.emacs.d/init.el"))
(defun conf-edit ()
"Edit configuration file."
(interactive)
(find-file "~/.emacs.d/config.org"))
(defun create-scratch-buffer ()
"Create a scratch buffer."
(interactive)
(switch-to-buffer (get-buffer-create "*scratch*"))
(lisp-interaction-mode))
:config
(dashboard-setup-startup-hook)
(setq dashboard-items '((recents . 25)))
(setq dashboard-banner-logo-title "Welcome to Emacs!")
(setq dashboard-startup-banner "~/.emacs.d/img/emacs.png")
(setq dashboard-center-content t)
(setq dashboard-show-shortcuts nil)
(setq dashboard-set-init-info t)
(setq dashboard-init-info (format "%d packages loaded in %s"
(length package-activated-list) (emacs-init-time)))
(setq dashboard-set-footer nil)
(setq dashboard-set-navigator t)
(setq dashboard-navigator-buttons
`(((,nil
"Open init.el file."
"Open Emacs initialization file for easy editing."
(lambda (&rest _) (init-edit))
'default)
(nil
"Open config.org file."
"Open Emacs configuration file for easy editing."
(lambda (&rest _) (conf-edit))
'default)
(nil
"Open scratch buffer."
"Switch to the scratch buffer."
(lambda (&rest _) (create-scratch-buffer))
'default)))))
#+end_src
** PDFTools
Change viewdoc to pdfview with pdftools
#+begin_src emacs-lisp
(use-package pdf-tools
:defer t
:commands (pdf-view-mode pdf-tools-install)
:mode ("\\.[pP][dD][fF]\\'" . pdf-view-mode)
:load-path "site-lisp/pdf-tools/lisp"
:magic ("%PDF" . pdf-view-mode)
:config
(pdf-tools-install)
(define-pdf-cache-function pagelabels)
:hook ((pdf-view-mode-hook . (lambda () (display-line-numbers-mode -1)))
(pdf-view-mode-hook . pdf-tools-enable-minor-modes)))
(use-package pdf-view-restore
:after pdf-tools
:config
(add-hook 'pdf-view-mode-hook 'pdf-view-restore-mode))
;;(use-package org-pdftools
;; :hook (org-load-hook . org-pdftools-setup-link))
(add-hook 'pdf-view-mode-hook (lambda() (linum-mode -1)))
#+end_src
** ORG Mode
Org mode configurantion.
#+begin_src emacs-lisp
;; Org init
(use-package org
:config
(add-hook 'org-mode-hook
'(lambda ()
(visual-line-mode 1)))
(setq org-display-inline-images t)
(setq org-redisplay-inline-images t)
(setq org-startup-with-inline-images "inlineimages")
(setq org-directory "~/.emacs.d/org")
(setq org-agenda-files (list "inbox.org"))
(global-set-key (kbd "C-<f1>") (lambda()
(interactive)
(outline-show-all))))
(use-package org-bullets
:config
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
(use-package htmlize
:ensure t)
;; src exec
(org-babel-do-load-languages 'org-babel-load-languages
'(
(shell . t)
)
)
(setq org-src-fontify-natively t
org-src-window-setup 'current-window
org-src-strip-leading-and-trailing-blank-lines t
org-src-preserve-indentation t
org-src-tab-acts-natively t)
(require 'org-tempo)
;; And that'll allow you to type "<sh", "<el", "<py", "<conf" followed by tab to create src blocks for those languages, and you can add as many others as you want.
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
(add-to-list 'org-structure-template-alist '("py" . "src python"))
(add-to-list 'org-structure-template-alist '("conf" . "src conf"))
;; Org default head
;;(add-to-list 'org-structure-template-alist
;; '("p" "#+title:\n#+author: b2r1s8@gen2\n#+date:\n#+startup: hidestars odd overview\n\n? "))
#+end_src
** Doom-modeline
Default Doom-modeline
#+begin_src emacs-lisp
(use-package doom-modeline
:ensure t
:init (doom-modeline-mode 1))
(setq doom-modeline-height 5)
;; Hide mode-line when is not usefull
(setq doom-hide-modeline-mode t)
;; The limit of the window width.
;; If `window-width' is smaller than the limit, some information won't be displayed.
(setq doom-modeline-window-width-limit fill-column)
;; Whether display the icon for `major-mode'. It respects `doom-modeline-icon'.
(setq doom-modeline-major-mode-icon t)
;; Whether display the colorful icon for `major-mode'.
;; It respects `all-the-icons-color-icons'.
(setq doom-modeline-major-mode-color-icon t)
;; Whether display the icon for the buffer state. It respects `doom-modeline-icon'.
(setq doom-modeline-buffer-state-icon t)
;; Whether display the modification icon for the buffer.
;; It respects `doom-modeline-icon' and `doom-modeline-buffer-state-icon'.
(setq doom-modeline-buffer-modification-icon t)
;; Whether display the buffer encoding.
(setq doom-modeline-buffer-encoding t)
;; If non-nil, only display one number for checker information if applicable.
(setq doom-modeline-checker-simple-format t)
;; Whether display the workspace name. Non-nil to display in the mode-line.
(setq doom-modeline-workspace-name t)
#+end_src
** Ace window
This packages make easy to move around windows.
- x -> delete window
- m -> swap windows
- M -> move window
- c -> copy window
- j -> select buffer
- n -> select the previous window
- u -> select buffer in the other window
- c -> split window fairly, either vertically or horizontally
- v -> split window vertically
- b -> split window horizontally
- o -> maximize current window
- ? -> show these command bindings
#+begin_src emacs-lisp
(use-package ace-window
:ensure t
:bind (("C-o" . ace-window)))
#+end_src
** Which-key
#+begin_src emacs-lisp
(use-package which-key
:ensure t
:diminish which-key-mode
:init
(which-key-mode)
:config
(setq which-key-idle-delay 0.3))
#+end_src
** Swiper
#+begin_src emacs-lisp
(use-package swiper
:ensure t
:bind ("s-s" . 'swiper))
#+end_src
** Beacon
#+begin_src emacs-lisp
(use-package beacon
:ensure t
:diminish beacon-mode
:init
(beacon-mode 1))
#+end_src
** Async
#+begin_src emacs-lisp
(use-package async
:ensure t
:init
(dired-async-mode 1))
#+end_src
** Page-break-lines
#+begin_src emacs-lisp
(use-package page-break-lines
:ensure t
:diminish (page-break-lines-mode visual-line-mode))
#+end_src
** Undoo-tree
#+begin_src emacs-lisp
(use-package undo-tree
:ensure t
:diminish undo-tree-mode)
#+end_src
** Saveplace
#+begin_src emacs-lisp
(use-package saveplace
:defer nil
:config
(save-place-mode))
#+end_src
** Eldoc
#+begin_src emacs-lisp
(use-package eldoc
:diminish eldoc-mode)
#+end_src
** Try
#+begin_src emacs-lisp
(use-package try
:ensure t)
#+end_src
** Auto-complete
#+begin_src emacs-lisp
(use-package auto-complete
:ensure t
:init
(progn
(ac-config-default)
(global-auto-complete-mode t)))
#+end_src
** Neotree
#+begin_src emacs-lisp
(use-package neotree
:ensure t
:bind (("C-\\" . 'neotree-toggle))) ;; Ativa a tree
#+end_src
** Color-theme-modern
#+begin_src emacs-lisp
(use-package color-theme-modern
:ensure t)
#+end_src
** Flycheck
#+begin_src emacs-lisp
(use-package flycheck
:ensure t
:init (global-flycheck-mode t))
#+end_src
** Recentf
#+begin_src emacs-lisp
(use-package recentf
:config
(recentf-mode t)
(setq recentf-max-saved-items 500))
#+end_src
** Expand region
#+begin_src emacs-lisp
(use-package expand-region
:ensure t
:bind ("C-@" . er/expand-region))
#+end_src
** Smoothscrolling
This makes it so ~C-n~-ing and ~C-p~-ing won't make the buffer jump
around so much.
#+begin_src emacs-lisp
(use-package smooth-scrolling
:ensure t
:config
(smooth-scrolling-mode))
#+end_src
** Webmode
#+begin_src emacs-lisp :tangle no
(use-package web-mode
:ensure t)
#+end_src
** Emmet
According to [[http://emmet.io/][their website]], "Emmet — the essential toolkit for web-developers."
#+begin_src emacs-lisp
(use-package emmet-mode
:ensure t
:commands emmet-mode
:config
(add-hook 'html-mode-hook 'emmet-mode)
(add-hook 'css-mode-hookg 'emmet-mode))
#+end_src
** Scratch major mode
Convenient package to create =*scratch*= buffers that are based on the
current buffer's major mode. This is more convienent than manually
creating a buffer to do some scratch work or reusing the initial
=*scratch*= buffer.
#+begin_src emacs-lisp
(use-package scratch
:ensure t
:commands scratch)
#+end_src
** Shell pop
#+BEGIN_SRC emacs-lisp
(use-package shell-pop
:ensure t
:bind ("M-<f12>" . shell-pop))
#+END_SRC
** Quickrun
#+BEGIN_SRC emacs-lisp
(use-package quickrun
:defer 10
:ensure t
:bind ("C-c r" . quickrun))
#+END_SRC
** terminal-here
#+begin_src emacs-lisp
(use-package terminal-here
:ensure t
:bind (("C-c o t" . terminal-here-launch)
("C-c o p" . terminal-here-project-launch)))
#+end_src
** Whitespace
#+begin_src emacs-lisp
(use-package whitespace)
(require 'whitespace)
(setq whitespace-line-column 80) ;; limit line length
(setq whitespace-style '(face lines-tail))
;; Automatically clean whitespace
(use-package ws-butler
:hook ((text-mode . ws-butler-mode)
(prog-mode . ws-butler-mode)))
#+end_src
** Ivy
I currently use Ivy, Counsel, and Swiper to navigate around files, buffers, and
projects super quickly. Here are some workflow notes on how to best use Ivy:
- While in an Ivy minibuffer, you can search within the current results by using =S-Space=.
- To quickly jump to an item in the minibuffer, use =C-'= to get Avy line jump keys.
- To see actions for the selected minibuffer item, use =M-o= and then press the action's key.
- *Super useful*: Use =C-c C-o= to open =ivy-occur= to open the search results in a separate buffer. From there you can click any item to perform the ivy action.
#+begin_src emacs-lisp
(use-package ivy
:diminish
:bind (("C-s" . swiper)
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-f" . ivy-alt-done)
("C-l" . ivy-alt-done)
("C-j" . ivy-next-line)
("C-k" . ivy-previous-line)
:map ivy-switch-buffer-map
("C-k" . ivy-previous-line)
("C-l" . ivy-done)
("C-d" . ivy-switch-buffer-kill)
:map ivy-reverse-i-search-map
("C-k" . ivy-previous-line)
("C-d" . ivy-reverse-i-search-kill))
:init
(ivy-mode 1)
:config
(setq ivy-use-virtual-buffers t)
(setq ivy-wrap t)
(setq ivy-count-format "(%d/%d) ")
(setq enable-recursive-minibuffers t)
;; Use different regex strategies per completion command
(push '(completion-at-point . ivy--regex-fuzzy) ivy-re-builders-alist) ;; This doesn't seem to work...
(push '(swiper . ivy--regex-ignore-order) ivy-re-builders-alist)
(push '(counsel-M-x . ivy--regex-ignore-order) ivy-re-builders-alist)
;; Set minibuffer height for different commands
(setf (alist-get 'counsel-projectile-ag ivy-height-alist) 15)
(setf (alist-get 'counsel-projectile-rg ivy-height-alist) 15)
(setf (alist-get 'swiper ivy-height-alist) 15)
(setf (alist-get 'counsel-switch-buffer ivy-height-alist) 7))
(use-package ivy-hydra
:defer t
:after hydra)
(use-package ivy-rich
:init
(ivy-rich-mode 1)
:after counsel
:config
(setq ivy-format-function #'ivy-format-function-line)
(setq ivy-rich-display-transformers-list
(plist-put ivy-rich-display-transformers-list
'ivy-switch-buffer
'(:columns
((ivy-rich-candidate (:width 40))
(ivy-rich-switch-buffer-indicators (:width 4 :face error :align right)); return the buffer indicators
(ivy-rich-switch-buffer-major-mode (:width 12 :face warning)) ; return the major mode info
(ivy-rich-switch-buffer-project (:width 15 :face success)) ; return project name using `projectile'
(ivy-rich-switch-buffer-path (:width (lambda (x) (ivy-rich-switch-buffer-shorten-path x (ivy-rich-minibuffer-width 0.3)))))) ; return file path relative to project root or `default-directory' if project is nil
:predicate
(lambda (cand)
(if-let ((buffer (get-buffer cand)))
;; Don't mess with EXWM buffers
(with-current-buffer buffer
(not (derived-mode-p 'exwm-mode)))))))))
(use-package counsel
:after ivy
:bind (("M-x" . counsel-M-x)
("C-x b" . counsel-ibuffer)
("C-x C-f" . counsel-find-file)
("C-M-j" . counsel-switch-buffer)
("C-M-l" . counsel-imenu)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
:config
(setq ivy-initial-inputs-alist nil)) ;; Don't start searches with ^
(use-package flx ;; Improves sorting for fuzzy-matched results
:after ivy
:defer t
:init
(setq ivy-flx-limit 10000))
(use-package wgrep)
(use-package ivy-posframe
:disabled
:custom
(ivy-posframe-width 115)
(ivy-posframe-min-width 115)
(ivy-posframe-height 10)
(ivy-posframe-min-height 10)
:config
(setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-frame-center)))
(setq ivy-posframe-parameters '((parent-frame . nil)
(left-fringe . 8)
(right-fringe . 8)))
(ivy-posframe-mode 1))
(use-package prescient
:after counsel
:config
(prescient-persist-mode 1))
(use-package ivy-prescient
:after prescient
:config
(ivy-prescient-mode 1))
;;(dw/leader-key-def
;; "r" '(ivy-resume :which-key "ivy resume")
;; "f" '(:ignore t :which-key "files")
;; "ff" '(counsel-find-file :which-key "open file")
;; "C-f" 'counsel-find-file
;; "fr" '(counsel-recentf :which-key "recent files")
;; "fR" '(revert-buffer :which-key "revert file")
;; "fj" '(counsel-file-jump :which-key "jump to file"))
#+end_src
** Packages config
Configuration for packages
#+begin_src emacs-lisp
;; Dired
(require 'dired-x)
(setq dired-omit-files "^\\...+$")
(add-hook 'dired-mode-hook (lambda () (dired-omit-mode 1)))
(add-hook 'dired-mode-hook 'auto-revert-mode)
(setq global-auto-revert-non-file-buffers t)
(setq auto-revert-verbose nil)
;; Elpher
(advice-add 'eww-browse-url :around 'elpher:eww-browse-url)
;; eww
(defun elpher:eww-browse-url (original url &optional new-window)
"Handle gemini links."
(cond ((string-match-p "\\`\\(gemini\\|gopher\\)://" url)
(require 'elpher)
(elpher-go url))
(t (funcall original url new-window))))
;;; Eshell
(setq eshell-prompt-regexp "^[^αλ\n]*[αλ] ")
(setq eshell-prompt-function
(lambda nil
(concat
(if (string= (eshell/pwd) (getenv "HOME"))
(propertize "~" 'face `(:foreground "#99CCFF"))
(replace-regexp-in-string
(getenv "HOME")
(propertize "~" 'face `(:foreground "#99CCFF"))
(propertize (eshell/pwd) 'face `(:foreground "#99CCFF"))))
(if (= (user-uid) 0)
(propertize " α " 'face `(:foreground "#FF6666"))
(propertize " λ " 'face `(:foreground "#A6E22E"))))))
(setq eshell-highlight-prompt nil)
(require 'emms-setup)
(emms-all)
(emms-default-players)
(setq emms-source-file-default-directory "~/songs/")
(setq emms-info-asynchronously nil)
(setq emms-playlist-buffer-name "*Music*")
;; ERC
;;(erc :server "irc.freenode.net" :port 6667 :nick "b2r1s8")
;;(setq erc-autojoin-channels-alist
;; '(("freenode.net" "#gentoo" "#gentoo-chat" "#ratpoison" "#perl" "#monero" "#emacs" "#emacs-beginners" "#emacs-offtopic" "#org-mode")))
#+end_src

View File

@ -0,0 +1,78 @@
;;; ace-window-autoloads.el --- automatically extracted autoloads
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "ace-window" "ace-window.el" (0 0 0 0))
;;; Generated autoloads from ace-window.el
(autoload 'ace-select-window "ace-window" "\
Ace select window." t nil)
(autoload 'ace-delete-window "ace-window" "\
Ace delete window." t nil)
(autoload 'ace-swap-window "ace-window" "\
Ace swap window." t nil)
(autoload 'ace-delete-other-windows "ace-window" "\
Ace delete other windows." t nil)
(autoload 'ace-display-buffer "ace-window" "\
Make `display-buffer' and `pop-to-buffer' select using `ace-window'.
See sample config for `display-buffer-base-action' and `display-buffer-alist':
https://github.com/abo-abo/ace-window/wiki/display-buffer.
\(fn BUFFER ALIST)" nil nil)
(autoload 'ace-window "ace-window" "\
Select a window.
Perform an action based on ARG described below.
By default, behaves like extended `other-window'.
See `aw-scope' which extends it to work with frames.
Prefixed with one \\[universal-argument], does a swap between the
selected window and the current window, so that the selected
buffer moves to current window (and current buffer moves to
selected window).
Prefixed with two \\[universal-argument]'s, deletes the selected
window.
\(fn ARG)" t nil)
(defvar ace-window-display-mode nil "\
Non-nil if Ace-Window-Display mode is enabled.
See the `ace-window-display-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `ace-window-display-mode'.")
(custom-autoload 'ace-window-display-mode "ace-window" nil)
(autoload 'ace-window-display-mode "ace-window" "\
Minor mode for showing the ace window key in the mode line.
If called interactively, enable Ace-Window-Display mode if ARG is
positive, and disable it if ARG is zero or negative. If called
from Lisp, also enable the mode if ARG is omitted or nil, and
toggle it if ARG is `toggle'; disable the mode otherwise.
\(fn &optional ARG)" t nil)
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ace-window" '("ace-window-mode" "aw-")))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; ace-window-autoloads.el ends here

View File

@ -0,0 +1,2 @@
;;; Generated package description from ace-window.el -*- no-byte-compile: t -*-
(define-package "ace-window" "20200606.1259" "Quickly switch windows." '((avy "0.5.0")) :commit "0577c426a9833ab107bab46c60d1885c611b2fb9" :authors '(("Oleh Krehel" . "ohwoeowho@gmail.com")) :maintainer '("Oleh Krehel" . "ohwoeowho@gmail.com") :keywords '("window" "location") :url "https://github.com/abo-abo/ace-window")

View File

@ -0,0 +1,958 @@
;;; ace-window.el --- Quickly switch windows. -*- lexical-binding: t -*-
;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
;; Author: Oleh Krehel <ohwoeowho@gmail.com>
;; Maintainer: Oleh Krehel <ohwoeowho@gmail.com>
;; URL: https://github.com/abo-abo/ace-window
;; Package-Version: 20200606.1259
;; Package-Commit: 0577c426a9833ab107bab46c60d1885c611b2fb9
;; Version: 0.10.0
;; Package-Requires: ((avy "0.5.0"))
;; Keywords: window, location
;; This file is part of GNU Emacs.
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; For a full copy of the GNU General Public License
;; see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The main function, `ace-window' is meant to replace `other-window'
;; by assigning each window a short, unique label. When there are only
;; two windows present, `other-window' is called (unless
;; aw-dispatch-always is set non-nil). If there are more, each
;; window will have its first label character highlighted. Once a
;; unique label is typed, ace-window will switch to that window.
;;
;; To setup this package, just add to your .emacs:
;;
;; (global-set-key (kbd "M-o") 'ace-window)
;;
;; replacing "M-o" with an appropriate shortcut.
;;
;; By default, ace-window uses numbers for window labels so the window
;; labeling is intuitively ordered. But if you prefer to type keys on
;; your home row for quicker access, use this setting:
;;
;; (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l))
;;
;; Whenever ace-window prompts for a window selection, it grays out
;; all the window characters, highlighting window labels in red. To
;; disable this behavior, set this:
;;
;; (setq aw-background nil)
;;
;; If you want to know the selection characters ahead of time, turn on
;; `ace-window-display-mode'.
;;
;; When prefixed with one `universal-argument', instead of switching
;; to the selected window, the selected window is swapped with the
;; current one.
;;
;; When prefixed with two `universal-argument', the selected window is
;; deleted instead.
;;; Code:
(require 'avy)
(require 'ring)
(require 'subr-x)
;;* Customization
(defgroup ace-window nil
"Quickly switch current window."
:group 'convenience
:prefix "aw-")
(defcustom aw-keys '(?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9)
"Keys for selecting window."
:type '(repeat character))
(defcustom aw-scope 'global
"The scope used by `ace-window'."
:type '(choice
(const :tag "visible frames" visible)
(const :tag "global" global)
(const :tag "frame" frame)))
(defcustom aw-translate-char-function #'identity
"Function to translate user input key into another key.
For example, to make SPC do the same as ?a, use
\(lambda (c) (if (= c 32) ?a c))."
:type '(choice
(const :tag "Off" #'identity)
(const :tag "Ignore Case" #'downcase)
(function :tag "Custom")))
(defcustom aw-minibuffer-flag nil
"When non-nil, also display `ace-window-mode' string in the minibuffer when ace-window is active."
:type 'boolean)
(defcustom aw-ignored-buffers '("*Calc Trail*" " *LV*")
"List of buffers and major-modes to ignore when choosing a window from the window list.
Active only when `aw-ignore-on' is non-nil."
:type '(repeat string))
(defcustom aw-ignore-on t
"When t, `ace-window' will ignore buffers and major-modes in `aw-ignored-buffers'.
Use M-0 `ace-window' to toggle this value."
:type 'boolean)
(defcustom aw-ignore-current nil
"When t, `ace-window' will ignore `selected-window'."
:type 'boolean)
(defcustom aw-background t
"When t, `ace-window' will dim out all buffers temporarily when used."
:type 'boolean)
(defcustom aw-leading-char-style 'char
"Style of the leading char overlay."
:type '(choice
(const :tag "single char" 'char)
(const :tag "full path" 'path)))
(defcustom aw-dispatch-always nil
"When non-nil, `ace-window' will issue a `read-char' even for one window.
This will make `ace-window' act different from `other-window' for
one or two windows."
:type 'boolean)
(defcustom aw-dispatch-when-more-than 2
"If the number of windows is more than this, activate ace-window-ness."
:type 'integer)
(defcustom aw-reverse-frame-list nil
"When non-nil `ace-window' will order frames for selection in
the reverse of `frame-list'"
:type 'boolean)
(defcustom aw-frame-offset '(13 . 23)
"Increase in pixel offset for new ace-window frames relative to the selected frame.
Its value is an (x-offset . y-offset) pair in pixels."
:type '(cons integer integer))
(defcustom aw-frame-size nil
"Frame size to make new ace-window frames.
Its value is a (width . height) pair in pixels or nil for the default frame size.
(0 . 0) is special and means make the frame size the same as the last selected frame size."
:type '(cons integer integer))
(defcustom aw-char-position 'top-left
"Window positions of the character overlay.
Consider changing this if the overlay tends to overlap with other things."
:type '(choice
(const :tag "top left corner only" 'top-left)
(const :tag "both left corners" 'left)))
;; Must be defined before `aw-make-frame-char' since its :set function references this.
(defvar aw-dispatch-alist
'((?x aw-delete-window "Delete Window")
(?m aw-swap-window "Swap Windows")
(?M aw-move-window "Move Window")
(?c aw-copy-window "Copy Window")
(?j aw-switch-buffer-in-window "Select Buffer")
(?n aw-flip-window)
(?u aw-switch-buffer-other-window "Switch Buffer Other Window")
(?e aw-execute-command-other-window "Execute Command Other Window")
(?F aw-split-window-fair "Split Fair Window")
(?v aw-split-window-vert "Split Vert Window")
(?b aw-split-window-horz "Split Horz Window")
(?o delete-other-windows "Delete Other Windows")
(?T aw-transpose-frame "Transpose Frame")
;; ?i ?r ?t are used by hyperbole.el
(?? aw-show-dispatch-help))
"List of actions for `aw-dispatch-default'.
Each action is a list of either:
(char function description) where function takes a single window argument
or
(char function) where function takes no argument and the description is omitted.")
(defun aw-set-make-frame-char (option value)
;; Signal an error if `aw-make-frame-char' is ever set to an invalid
;; or conflicting value.
(when value
(cond ((not (characterp value))
(user-error "`aw-make-frame-char' must be a character, not `%s'" value))
((memq value aw-keys)
(user-error "`aw-make-frame-char' is `%c'; this conflicts with the same character in `aw-keys'" value))
((assq value aw-dispatch-alist)
(user-error "`aw-make-frame-char' is `%c'; this conflicts with the same character in `aw-dispatch-alist'" value))))
(set option value))
(defcustom aw-make-frame-char ?z
"Non-existing ace window label character that triggers creation of a new single-window frame for display."
:set 'aw-set-make-frame-char
:type 'character)
(defface aw-leading-char-face
'((((class color)) (:foreground "red"))
(((background dark)) (:foreground "gray100"))
(((background light)) (:foreground "gray0"))
(t (:foreground "gray100" :underline nil)))
"Face for each window's leading char.")
(defface aw-minibuffer-leading-char-face
'((t :inherit aw-leading-char-face))
"Face for minibuffer leading char.")
(defface aw-background-face
'((t (:foreground "gray40")))
"Face for whole window background during selection.")
(defface aw-mode-line-face
'((t (:inherit mode-line-buffer-id)))
"Face used for displaying the ace window key in the mode-line.")
(defface aw-key-face
'((t :inherit font-lock-builtin-face))
"Face used by `aw-show-dispatch-help'.")
;;* Implementation
(defun aw-ignored-p (window)
"Return t if WINDOW should be ignored when choosing from the window list."
(or (and aw-ignore-on
;; Ignore major-modes and buffer-names in `aw-ignored-buffers'.
(or (memq (buffer-local-value 'major-mode (window-buffer window))
aw-ignored-buffers)
(member (buffer-name (window-buffer window)) aw-ignored-buffers)))
;; ignore child frames
(and (fboundp 'frame-parent) (frame-parent (window-frame window)))
;; Ignore selected window if `aw-ignore-current' is non-nil.
(and aw-ignore-current
(equal window (selected-window)))
;; When `ignore-window-parameters' is nil, ignore windows whose
;; `no-other-window or `no-delete-other-windows' parameter is non-nil.
(unless ignore-window-parameters
(cl-case this-command
(ace-select-window (window-parameter window 'no-other-window))
(ace-delete-window (window-parameter window 'no-delete-other-windows))
(ace-delete-other-windows (window-parameter
window 'no-delete-other-windows))))))
(defun aw-window-list ()
"Return the list of interesting windows."
(sort
(cl-remove-if
(lambda (w)
(let ((f (window-frame w)))
(or (not (and (frame-live-p f)
(frame-visible-p f)))
(string= "initial_terminal" (terminal-name f))
(aw-ignored-p w))))
(cl-case aw-scope
(visible
(cl-mapcan #'window-list (visible-frame-list)))
(global
(cl-mapcan #'window-list (frame-list)))
(frame
(window-list))
(t
(error "Invalid `aw-scope': %S" aw-scope))))
'aw-window<))
(defvar aw-overlays-back nil
"Hold overlays for when `aw-background' is t.")
(defvar ace-window-mode nil
"Minor mode during the selection process.")
;; register minor mode
(or (assq 'ace-window-mode minor-mode-alist)
(nconc minor-mode-alist
(list '(ace-window-mode ace-window-mode))))
(defvar aw-empty-buffers-list nil
"Store the read-only empty buffers which had to be modified.
Modify them back eventually.")
(defvar aw--windows-hscroll nil
"List of (window . hscroll-columns) items, each listing a window whose
horizontal scroll will be restored upon ace-window action completion.")
(defvar aw--windows-points nil
"List of (window . point) items. The point position had to be
moved in order to display the overlay.")
(defun aw--done ()
"Clean up mode line and overlays."
;; mode line
(aw-set-mode-line nil)
;; background
(mapc #'delete-overlay aw-overlays-back)
(setq aw-overlays-back nil)
(avy--remove-leading-chars)
(dolist (b aw-empty-buffers-list)
(with-current-buffer b
(when (string= (buffer-string) " ")
(let ((inhibit-read-only t))
(delete-region (point-min) (point-max))))))
(setq aw-empty-buffers-list nil)
(aw--restore-windows-hscroll)
(let (c)
(while (setq c (pop aw--windows-points))
(with-selected-window (car c)
(goto-char (cdr c))))))
(defun aw--restore-windows-hscroll ()
"Restore horizontal scroll of windows from `aw--windows-hscroll' list."
(let (wnd hscroll)
(mapc (lambda (wnd-and-hscroll)
(setq wnd (car wnd-and-hscroll)
hscroll (cdr wnd-and-hscroll))
(when (window-live-p wnd)
(set-window-hscroll wnd hscroll)))
aw--windows-hscroll))
(setq aw--windows-hscroll nil))
(defun aw--overlay-str (wnd pos path)
"Return the replacement text for an overlay in WND at POS,
accessible by typing PATH."
(let ((old-str (or
(ignore-errors
(with-selected-window wnd
(buffer-substring pos (1+ pos))))
"")))
(concat
(cl-case aw-leading-char-style
(char
(string (avy--key-to-char (car (last path)))))
(path
(mapconcat
(lambda (x) (string (avy--key-to-char x)))
(reverse path)
""))
(t
(error "Bad `aw-leading-char-style': %S"
aw-leading-char-style)))
(cond ((string-equal old-str "\t")
(make-string (1- tab-width) ?\ ))
((string-equal old-str "\n")
"\n")
(t
(make-string
(max 0 (1- (string-width old-str)))
?\ ))))))
(defun aw--point-visible-p ()
"Return non-nil if point is visible in the selected window.
Return nil when horizontal scrolling has moved it off screen."
(and (>= (- (current-column) (window-hscroll)) 0)
(< (- (current-column) (window-hscroll))
(window-width))))
(defun aw--lead-overlay (path leaf)
"Create an overlay using PATH at LEAF.
LEAF is (PT . WND)."
;; Properly adds overlay in visible region of most windows except for any one
;; receiving output while this function is executing, since that moves point,
;; potentially shifting the added overlay outside the window's visible region.
(let ((wnd (cdr leaf))
;; Prevent temporary movement of point from scrolling any window.
(scroll-margin 0))
(with-selected-window wnd
(when (= 0 (buffer-size))
(push (current-buffer) aw-empty-buffers-list)
(let ((inhibit-read-only t))
(insert " ")))
;; If point is not visible due to horizontal scrolling of the
;; window, this next expression temporarily scrolls the window
;; right until point is visible, so that the leading-char can be
;; seen when it is inserted. When ace-window's action finishes,
;; the horizontal scroll is restored by (aw--done).
(while (and (not (aw--point-visible-p))
(not (zerop (window-hscroll)))
(progn (push (cons (selected-window) (window-hscroll)) aw--windows-hscroll) t)
(not (zerop (scroll-right)))))
(let* ((ws (window-start))
(prev nil)
(vertical-pos (if (eq aw-char-position 'left) -1 0))
(horizontal-pos (if (zerop (window-hscroll)) 0 (1+ (window-hscroll))))
(old-pt (point))
(pt
(progn
;; If leading-char is to be displayed at the top-left, move
;; to the first visible line in the window, otherwise, move
;; to the last visible line.
(move-to-window-line vertical-pos)
(move-to-column horizontal-pos)
;; Find a nearby point that is not at the end-of-line but
;; is visible so have space for the overlay.
(setq prev (1- (point)))
(while (and (>= prev ws) (/= prev (point)) (eolp))
(setq prev (point))
(unless (bobp)
(line-move -1 t)
(move-to-column horizontal-pos)))
(recenter vertical-pos)
(point)))
(ol (make-overlay pt (1+ pt) (window-buffer wnd))))
(if (= (aw--face-rel-height) 1)
(goto-char old-pt)
(when (/= pt old-pt)
(goto-char (+ pt 1))
(push (cons wnd old-pt) aw--windows-points)))
(overlay-put ol 'display (aw--overlay-str wnd pt path))
(if (window-minibuffer-p wnd)
(overlay-put ol 'face 'aw-minibuffer-leading-char-face)
(overlay-put ol 'face 'aw-leading-char-face))
(overlay-put ol 'window wnd)
(push ol avy--overlays-lead)))))
(defun aw--make-backgrounds (wnd-list)
"Create a dim background overlay for each window on WND-LIST."
(when aw-background
(setq aw-overlays-back
(mapcar (lambda (w)
(let ((ol (make-overlay
(window-start w)
(window-end w)
(window-buffer w))))
(overlay-put ol 'face 'aw-background-face)
ol))
wnd-list))))
(defvar aw-dispatch-function 'aw-dispatch-default
"Function to call when a character not in `aw-keys' is pressed.")
(defvar aw-action nil
"Function to call at the end of `aw-select'.")
(defun aw-set-mode-line (str)
"Set mode line indicator to STR."
(setq ace-window-mode str)
(when (and aw-minibuffer-flag ace-window-mode)
(message "%s" (string-trim-left str)))
(force-mode-line-update))
(defun aw--dispatch-action (char)
"Return item from `aw-dispatch-alist' matching CHAR."
(assoc char aw-dispatch-alist))
(defun aw-make-frame ()
"Make a new Emacs frame using the values of `aw-frame-size' and `aw-frame-offset'."
(make-frame
(delq nil
(list
;; This first parameter is important because an
;; aw-dispatch-alist command may not want to leave this
;; frame with input focus. If it is given focus, the
;; command may not be able to return focus to a different
;; frame since this is done asynchronously by the window
;; manager.
'(no-focus-on-map . t)
(when aw-frame-size
(cons 'width
(if (zerop (car aw-frame-size))
(frame-width)
(car aw-frame-size))))
(when aw-frame-size
(cons 'height
(if (zerop (cdr aw-frame-size))
(frame-height)
(car aw-frame-size))))
(cons 'left (+ (car aw-frame-offset)
(car (frame-position))))
(cons 'top (+ (cdr aw-frame-offset)
(cdr (frame-position))))))))
(defun aw-use-frame (window)
"Create a new frame using the contents of WINDOW.
The new frame is set to the same size as the previous frame, offset by
`aw-frame-offset' (x . y) pixels."
(aw-switch-to-window window)
(aw-make-frame))
(defun aw-clean-up-avy-current-path ()
"Edit `avy-current-path' so only window label characters remain."
;; Remove any possible ace-window command char that may
;; precede the last specified window label, so
;; functions can use `avy-current-path' as the chosen
;; window label.
(when (and (> (length avy-current-path) 0)
(assq (aref avy-current-path 0) aw-dispatch-alist))
(setq avy-current-path (substring avy-current-path 1))))
(defun aw-dispatch-default (char)
"Perform an action depending on CHAR."
(cond ((and (fboundp 'avy-mouse-event-window)
(avy-mouse-event-window char)))
((= char (aref (kbd "C-g") 0))
(throw 'done 'exit))
((and aw-make-frame-char (= char aw-make-frame-char))
;; Make a new frame and perform any action on its window.
(let ((start-win (selected-window))
(end-win (frame-selected-window (aw-make-frame))))
(if aw-action
;; Action must be called from the start-win. The action
;; determines which window to leave selected.
(progn (select-frame-set-input-focus (window-frame start-win))
(funcall aw-action end-win))
;; Select end-win when no action
(aw-switch-to-window end-win)))
(throw 'done 'exit))
(t
(let ((action (aw--dispatch-action char)))
(if action
(cl-destructuring-bind (_key fn &optional description) action
(if (and fn description)
(prog1 (setq aw-action fn)
(aw-set-mode-line (format " Ace - %s" description)))
(if (commandp fn)
(call-interactively fn)
(funcall fn))
(throw 'done 'exit)))
(aw-clean-up-avy-current-path)
;; Prevent any char from triggering an avy dispatch command.
(let ((avy-dispatch-alist))
(avy-handler-default char)))))))
(defcustom aw-display-mode-overlay t
"When nil, don't display overlays. Rely on the mode line instead."
:type 'boolean)
(defvar ace-window-display-mode)
(defun aw-select (mode-line &optional action)
"Return a selected other window.
Amend MODE-LINE to the mode line for the duration of the selection."
(setq aw-action action)
(let ((start-window (selected-window))
(next-window-scope (cl-case aw-scope
('visible 'visible)
('global 'visible)
('frame 'frame)))
(wnd-list (aw-window-list))
window)
(setq window
(cond ((<= (length wnd-list) 1)
(when aw-dispatch-always
(setq aw-action
(unwind-protect
(catch 'done
(funcall aw-dispatch-function (read-char)))
(aw--done)))
(when (eq aw-action 'exit)
(setq aw-action nil)))
(or (car wnd-list) start-window))
((and (<= (+ (length wnd-list) (if (aw-ignored-p start-window) 1 0))
aw-dispatch-when-more-than)
(not aw-dispatch-always)
(not aw-ignore-current))
(let ((wnd (next-window nil nil next-window-scope)))
(while (and (or (not (memq wnd wnd-list))
(aw-ignored-p wnd))
(not (equal wnd start-window)))
(setq wnd (next-window wnd nil next-window-scope)))
wnd))
(t
(let ((candidate-list
(mapcar (lambda (wnd)
(cons (aw-offset wnd) wnd))
wnd-list)))
(aw--make-backgrounds wnd-list)
(aw-set-mode-line mode-line)
;; turn off helm transient map
(remove-hook 'post-command-hook 'helm--maybe-update-keymap)
(unwind-protect
(let* ((avy-handler-function aw-dispatch-function)
(avy-translate-char-function aw-translate-char-function)
(transient-mark-mode nil)
(res (avy-read (avy-tree candidate-list aw-keys)
(if (and ace-window-display-mode
(null aw-display-mode-overlay))
(lambda (_path _leaf))
#'aw--lead-overlay)
#'avy--remove-leading-chars)))
(if (eq res 'exit)
(setq aw-action nil)
(or (cdr res)
start-window)))
(aw--done))))))
(if aw-action
(funcall aw-action window)
window)))
;;* Interactive
;;;###autoload
(defun ace-select-window ()
"Ace select window."
(interactive)
(aw-select " Ace - Window"
#'aw-switch-to-window))
;;;###autoload
(defun ace-delete-window ()
"Ace delete window."
(interactive)
(aw-select " Ace - Delete Window"
#'aw-delete-window))
;;;###autoload
(defun ace-swap-window ()
"Ace swap window."
(interactive)
(aw-select " Ace - Swap Window"
#'aw-swap-window))
;;;###autoload
(defun ace-delete-other-windows ()
"Ace delete other windows."
(interactive)
(aw-select " Ace - Delete Other Windows"
#'delete-other-windows))
;;;###autoload
(defun ace-display-buffer (buffer alist)
"Make `display-buffer' and `pop-to-buffer' select using `ace-window'.
See sample config for `display-buffer-base-action' and `display-buffer-alist':
https://github.com/abo-abo/ace-window/wiki/display-buffer."
(let* ((aw-ignore-current (cdr (assq 'inhibit-same-window alist)))
(rf (cdr (assq 'reusable-frames alist)))
(aw-scope (cl-case rf
((nil) 'frame)
(visible 'visible)
((0 t) 'global))))
(unless (or (<= (length (aw-window-list)) 1)
(not aw-scope))
(window--display-buffer
buffer (aw-select "Ace - Display Buffer") 'reuse))))
(declare-function transpose-frame "ext:transpose-frame")
(defun aw-transpose-frame (w)
"Select any window on frame and `tranpose-frame'."
(transpose-frame (window-frame w)))
;;;###autoload
(defun ace-window (arg)
"Select a window.
Perform an action based on ARG described below.
By default, behaves like extended `other-window'.
See `aw-scope' which extends it to work with frames.
Prefixed with one \\[universal-argument], does a swap between the
selected window and the current window, so that the selected
buffer moves to current window (and current buffer moves to
selected window).
Prefixed with two \\[universal-argument]'s, deletes the selected
window."
(interactive "p")
(setq avy-current-path "")
(cl-case arg
(0
(let ((aw-ignore-on (not aw-ignore-on)))
(ace-select-window)))
(4 (ace-swap-window))
(16 (ace-delete-window))
(t (ace-select-window))))
;;* Utility
(unless (fboundp 'frame-position)
(defun frame-position (&optional frame)
(let ((pl (frame-parameter frame 'left))
(pt (frame-parameter frame 'top)))
(when (consp pl)
(setq pl (eval pl)))
(when (consp pt)
(setq pt (eval pt)))
(cons pl pt))))
(defun aw-window< (wnd1 wnd2)
"Return true if WND1 is less than WND2.
This is determined by their respective window coordinates.
Windows are numbered top down, left to right."
(let* ((f1 (window-frame wnd1))
(f2 (window-frame wnd2))
(e1 (window-edges wnd1))
(e2 (window-edges wnd2))
(p1 (frame-position f1))
(p2 (frame-position f2))
(nl (or (null (car p1)) (null (car p2)))))
(cond ((and (not nl) (< (car p1) (car p2)))
(not aw-reverse-frame-list))
((and (not nl) (> (car p1) (car p2)))
aw-reverse-frame-list)
((< (car e1) (car e2))
t)
((> (car e1) (car e2))
nil)
((< (cadr e1) (cadr e2))
t))))
(defvar aw--window-ring (make-ring 10)
"Hold the window switching history.")
(defun aw--push-window (window)
"Store WINDOW to `aw--window-ring'."
(when (or (zerop (ring-length aw--window-ring))
(not (equal
(ring-ref aw--window-ring 0)
window)))
(ring-insert aw--window-ring (selected-window))))
(defun aw--pop-window ()
"Return the removed top of `aw--window-ring'."
(let (res)
(condition-case nil
(while (or (not (window-live-p
(setq res (ring-remove aw--window-ring 0))))
(equal res (selected-window))))
(error
(if (= (length (aw-window-list)) 2)
(progn
(other-window 1)
(setq res (selected-window)))
(error "No previous windows stored"))))
res))
(defun aw-switch-to-window (window)
"Switch to the window WINDOW."
(let ((frame (window-frame window)))
(aw--push-window (selected-window))
(when (and (frame-live-p frame)
(not (eq frame (selected-frame))))
(select-frame-set-input-focus frame))
(if (window-live-p window)
(select-window window)
(error "Got a dead window %S" window))))
(defun aw-flip-window ()
"Switch to the window you were previously in."
(interactive)
(aw-switch-to-window (aw--pop-window)))
(defun aw-show-dispatch-help ()
"Display action shortucts in echo area."
(interactive)
(message "%s" (mapconcat
(lambda (action)
(cl-destructuring-bind (key fn &optional description) action
(format "%s: %s"
(propertize
(char-to-string key)
'face 'aw-key-face)
(or description fn))))
aw-dispatch-alist
"\n"))
;; Prevent this from replacing any help display
;; in the minibuffer.
(let (aw-minibuffer-flag)
(mapc #'delete-overlay aw-overlays-back)
(call-interactively 'ace-window)))
(defun aw-delete-window (window &optional kill-buffer)
"Delete window WINDOW.
When KILL-BUFFER is non-nil, also kill the buffer."
(let ((frame (window-frame window)))
(when (and (frame-live-p frame)
(not (eq frame (selected-frame))))
(select-frame-set-input-focus (window-frame window)))
(if (= 1 (length (window-list)))
(delete-frame frame)
(if (window-live-p window)
(let ((buffer (window-buffer window)))
(delete-window window)
(when kill-buffer
(kill-buffer buffer)))
(error "Got a dead window %S" window)))))
(defun aw-switch-buffer-in-window (window)
"Select buffer in WINDOW."
(aw-switch-to-window window)
(aw--switch-buffer))
(declare-function ivy-switch-buffer "ext:ivy")
(defun aw--switch-buffer ()
(cond ((bound-and-true-p ivy-mode)
(ivy-switch-buffer))
((bound-and-true-p ido-mode)
(ido-switch-buffer))
(t
(call-interactively 'switch-to-buffer))))
(defcustom aw-swap-invert nil
"When non-nil, the other of the two swapped windows gets the point."
:type 'boolean)
(defun aw-swap-window (window)
"Swap buffers of current window and WINDOW."
(cl-labels ((swap-windows (window1 window2)
"Swap the buffers of WINDOW1 and WINDOW2."
(let ((buffer1 (window-buffer window1))
(buffer2 (window-buffer window2)))
(set-window-buffer window1 buffer2)
(set-window-buffer window2 buffer1)
(select-window window2))))
(let ((frame (window-frame window))
(this-window (selected-window)))
(when (and (frame-live-p frame)
(not (eq frame (selected-frame))))
(select-frame-set-input-focus (window-frame window)))
(when (and (window-live-p window)
(not (eq window this-window)))
(aw--push-window this-window)
(if aw-swap-invert
(swap-windows window this-window)
(swap-windows this-window window))))))
(defun aw-move-window (window)
"Move the current buffer to WINDOW.
Switch the current window to the previous buffer."
(let ((buffer (current-buffer)))
(switch-to-buffer (other-buffer))
(aw-switch-to-window window)
(switch-to-buffer buffer)))
(defun aw-copy-window (window)
"Copy the current buffer to WINDOW - including window-start and point."
(let ((buffer (current-buffer))
(window-start (window-start))
(point (point)))
(aw-switch-to-window window)
(switch-to-buffer buffer)
(set-window-start (frame-selected-window) window-start)
(goto-char point)))
(defun aw-split-window-vert (window)
"Split WINDOW vertically."
(select-window window)
(split-window-vertically))
(defun aw-split-window-horz (window)
"Split WINDOW horizontally."
(select-window window)
(split-window-horizontally))
(defcustom aw-fair-aspect-ratio 2
"The aspect ratio to aim for when splitting windows.
Sizes are based on the number of characters, not pixels.
Increase to prefer wider windows, or decrease for taller windows."
:type 'number)
(defun aw-split-window-fair (window)
"Split WINDOW vertically or horizontally, based on its current dimensions.
Modify `aw-fair-aspect-ratio' to tweak behavior."
(let ((w (window-body-width window))
(h (window-body-height window)))
(if (< (* h aw-fair-aspect-ratio) w)
(aw-split-window-horz window)
(aw-split-window-vert window))))
(defun aw-switch-buffer-other-window (window)
"Switch buffer in WINDOW."
(aw-switch-to-window window)
(unwind-protect
(aw--switch-buffer)
(aw-flip-window)))
(defun aw-execute-command-other-window (window)
"Execute a command in WINDOW."
(aw-switch-to-window window)
(unwind-protect
(funcall
(key-binding
(read-key-sequence
"Enter key sequence: ")))
(aw-flip-window)))
(defun aw--face-rel-height ()
(let ((h (face-attribute 'aw-leading-char-face :height)))
(cond
((eq h 'unspecified)
1)
((floatp h)
(max (floor h) 1))
((integerp h)
1)
(t
(error "unexpected: %s" h)))))
(defun aw-offset (window)
"Return point in WINDOW that's closest to top left corner.
The point is writable, i.e. it's not part of space after newline."
(let ((h (window-hscroll window))
(beg (window-start window))
(end (window-end window))
(inhibit-field-text-motion t))
(with-current-buffer (window-buffer window)
(save-excursion
(goto-char beg)
(forward-line (1-
(min
(count-lines
(point)
(point-max))
(aw--face-rel-height))))
(while (and (< (point) end)
(< (- (line-end-position)
(line-beginning-position))
h))
(forward-line))
(+ (point) h)))))
(defun aw--after-make-frame (f)
(aw-update)
(make-frame-visible f))
;;* Mode line
;;;###autoload
(define-minor-mode ace-window-display-mode
"Minor mode for showing the ace window key in the mode line."
:global t
(if ace-window-display-mode
(progn
(aw-update)
(set-default
'mode-line-format
`((ace-window-display-mode
(:eval (window-parameter (selected-window) 'ace-window-path)))
,@(assq-delete-all
'ace-window-display-mode
(default-value 'mode-line-format))))
(force-mode-line-update t)
(add-hook 'window-configuration-change-hook 'aw-update)
;; Add at the end so does not precede select-frame call.
(add-hook 'after-make-frame-functions #'aw--after-make-frame t))
(set-default
'mode-line-format
(assq-delete-all
'ace-window-display-mode
(default-value 'mode-line-format)))
(remove-hook 'window-configuration-change-hook 'aw-update)
(remove-hook 'after-make-frame-functions 'aw--after-make-frame)))
(defun aw-update ()
"Update ace-window-path window parameter for all windows.
Ensure all windows are labeled so the user can select a specific
one, even from the set of windows typically ignored when making a
window list."
(let ((aw-ignore-on)
(aw-ignore-current)
(ignore-window-parameters t))
(avy-traverse
(avy-tree (aw-window-list) aw-keys)
(lambda (path leaf)
(set-window-parameter
leaf 'ace-window-path
(propertize
(apply #'string (reverse path))
'face 'aw-mode-line-face))))))
(provide 'ace-window)
;;; ace-window.el ends here

View File

@ -0,0 +1,75 @@
;;; all-the-icons-autoloads.el --- automatically extracted autoloads
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "all-the-icons" "all-the-icons.el" (0 0 0 0))
;;; Generated autoloads from all-the-icons.el
(autoload 'all-the-icons-icon-for-dir "all-the-icons" "\
Get the formatted icon for DIR.
ARG-OVERRIDES should be a plist containining `:height',
`:v-adjust' or `:face' properties like in the normal icon
inserting functions.
Note: You want chevron, please use `all-the-icons-icon-for-dir-with-chevron'.
\(fn DIR &rest ARG-OVERRIDES)" nil nil)
(autoload 'all-the-icons-icon-for-file "all-the-icons" "\
Get the formatted icon for FILE.
ARG-OVERRIDES should be a plist containining `:height',
`:v-adjust' or `:face' properties like in the normal icon
inserting functions.
\(fn FILE &rest ARG-OVERRIDES)" nil nil)
(autoload 'all-the-icons-icon-for-mode "all-the-icons" "\
Get the formatted icon for MODE.
ARG-OVERRIDES should be a plist containining `:height',
`:v-adjust' or `:face' properties like in the normal icon
inserting functions.
\(fn MODE &rest ARG-OVERRIDES)" nil nil)
(autoload 'all-the-icons-icon-for-url "all-the-icons" "\
Get the formatted icon for URL.
If an icon for URL isn't found in `all-the-icons-url-alist', a globe is used.
ARG-OVERRIDES should be a plist containining `:height',
`:v-adjust' or `:face' properties like in the normal icon
inserting functions.
\(fn URL &rest ARG-OVERRIDES)" nil nil)
(autoload 'all-the-icons-install-fonts "all-the-icons" "\
Helper function to download and install the latests fonts based on OS.
When PFX is non-nil, ignore the prompt and just install
\(fn &optional PFX)" t nil)
(autoload 'all-the-icons-insert "all-the-icons" "\
Interactive icon insertion function.
When Prefix ARG is non-nil, insert the propertized icon.
When FAMILY is non-nil, limit the candidates to the icon set matching it.
\(fn &optional ARG FAMILY)" t nil)
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "all-the-icons" '("all-the-icons-")))
;;;***
;;;### (autoloads nil nil ("all-the-icons-faces.el" "all-the-icons-pkg.el")
;;;;;; (0 0 0 0))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; all-the-icons-autoloads.el ends here

View File

@ -0,0 +1,230 @@
;;; all-the-icons-faces.el --- A module of faces for all-the-icons
;; Copyright (C) 2016 Dominic Charlesworth <dgc336@gmail.com>
;; Author: Dominic Charlesworth <dgc336@gmail.com>
;; Version: 1.0.0
;; Package-Requires: ((emacs "24.3"))
;; URL: https://github.com/domtronn/all-the-icons.el
;; Keywords: convenient, lisp
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License
;; as published by the Free Software Foundation; either version 3
;; of the License, or (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; This file contains all of the faces used by the package for
;; colouring icons
;;; Code:
(defgroup all-the-icons-faces nil
"Manage how All The Icons icons are coloured and themed."
:prefix "all-the-icons-"
:group 'tools
:group 'all-the-icons)
;; red
(defface all-the-icons-red
'((((background dark)) :foreground "#AC4142")
(((background light)) :foreground "#AC4142"))
"Face for red icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lred
'((((background dark)) :foreground "#EB595A")
(((background light)) :foreground "#EB595A"))
"Face for lred icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dred
'((((background dark)) :foreground "#843031")
(((background light)) :foreground "#843031"))
"Face for dred icons"
:group 'all-the-icons-faces)
(defface all-the-icons-red-alt
'((((background dark)) :foreground "#ce5643")
(((background light)) :foreground "#843031"))
"Face for dred icons"
:group 'all-the-icons-faces)
;; green
(defface all-the-icons-green
'((((background dark)) :foreground "#90A959")
(((background light)) :foreground "#90A959"))
"Face for green icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lgreen
'((((background dark)) :foreground "#C6E87A")
(((background light)) :foreground "#3D6837"))
"Face for lgreen icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dgreen
'((((background dark)) :foreground "#6D8143")
(((background light)) :foreground "#6D8143"))
"Face for dgreen icons"
:group 'all-the-icons-faces)
;; yellow
(defface all-the-icons-yellow
'((((background dark)) :foreground "#FFD446")
(((background light)) :foreground "#FFCC0E"))
"Face for yellow icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lyellow
'((((background dark)) :foreground "#FFC16D")
(((background light)) :foreground "#FF9300"))
"Face for lyellow icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dyellow
'((((background dark)) :foreground "#B48D56")
(((background light)) :foreground "#B48D56"))
"Face for dyellow icons"
:group 'all-the-icons-faces)
;; blue
(defface all-the-icons-blue
'((((background dark)) :foreground "#6A9FB5")
(((background light)) :foreground "#6A9FB5"))
"Face for blue icons"
:group 'all-the-icons-faces)
(defface all-the-icons-blue-alt
'((((background dark)) :foreground "#2188b6")
(((background light)) :foreground "#2188b6"))
"Face for blue icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lblue
'((((background dark)) :foreground "#8FD7F4")
(((background light)) :foreground "#677174"))
"Face for lblue icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dblue
'((((background dark)) :foreground "#446674")
(((background light)) :foreground "#446674"))
"Face for dblue icons"
:group 'all-the-icons-faces)
;; maroon
(defface all-the-icons-maroon
'((((background dark)) :foreground "#8F5536")
(((background light)) :foreground "#8F5536"))
"Face for maroon icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lmaroon
'((((background dark)) :foreground "#CE7A4E")
(((background light)) :foreground "#CE7A4E"))
"Face for lmaroon icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dmaroon
'((((background dark)) :foreground "#72584B")
(((background light)) :foreground "#72584B"))
"Face for dmaroon icons"
:group 'all-the-icons-faces)
;; purple
(defface all-the-icons-purple
'((((background dark)) :foreground "#AA759F")
(((background light)) :foreground "#68295B"))
"Face for purple icons"
:group 'all-the-icons-faces)
(defface all-the-icons-purple-alt
'((((background dark)) :foreground "#5D54E1")
(((background light)) :foreground "#5D54E1"))
"Face for purple icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lpurple
'((((background dark)) :foreground "#E69DD6")
(((background light)) :foreground "#E69DD6"))
"Face for lpurple icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dpurple
'((((background dark)) :foreground "#694863")
(((background light)) :foreground "#694863"))
"Face for dpurple icons"
:group 'all-the-icons-faces)
;; orange
(defface all-the-icons-orange
'((((background dark)) :foreground "#D4843E")
(((background light)) :foreground "#D4843E"))
"Face for orange icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lorange
'((((background dark)) :foreground "#FFA500")
(((background light)) :foreground "#FFA500"))
"Face for lorange icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dorange
'((((background dark)) :foreground "#915B2D")
(((background light)) :foreground "#915B2D"))
"Face for dorange icons"
:group 'all-the-icons-faces)
;; cyan
(defface all-the-icons-cyan
'((((background dark)) :foreground "#75B5AA")
(((background light)) :foreground "#75B5AA"))
"Face for cyan icons"
:group 'all-the-icons-faces)
(defface all-the-icons-cyan-alt
'((((background dark)) :foreground "#61dafb")
(((background light)) :foreground "#0595bd"))
"Face for cyan icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lcyan
'((((background dark)) :foreground "#A5FDEC")
(((background light)) :foreground "#2C7D6E"))
"Face for lcyan icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dcyan
'((((background dark)) :foreground "#48746D")
(((background light)) :foreground "#48746D"))
"Face for dcyan icons"
:group 'all-the-icons-faces)
;; pink
(defface all-the-icons-pink
'((((background dark)) :foreground "#F2B4B8")
(((background light)) :foreground "#FC505B"))
"Face for pink icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lpink
'((((background dark)) :foreground "#FFBDC1")
(((background light)) :foreground "#FF505B"))
"Face for lpink icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dpink
'((((background dark)) :foreground "#B18286")
(((background light)) :foreground "#7E5D5F"))
"Face for dpink icons"
:group 'all-the-icons-faces)
;; silver
(defface all-the-icons-silver
'((((background dark)) :foreground "#716E68")
(((background light)) :foreground "#716E68"))
"Face for silver icons"
:group 'all-the-icons-faces)
(defface all-the-icons-lsilver
'((((background dark)) :foreground "#B9B6AA")
(((background light)) :foreground "#7F7869"))
"Face for lsilver icons"
:group 'all-the-icons-faces)
(defface all-the-icons-dsilver
'((((background dark)) :foreground "#838484")
(((background light)) :foreground "#838484"))
"Face for dsilver icons"
:group 'all-the-icons-faces)
(provide 'all-the-icons-faces)
;;; all-the-icons-faces.el ends here

View File

@ -0,0 +1,12 @@
(define-package "all-the-icons" "20220628.2233" "A library for inserting Developer icons"
'((emacs "24.3"))
:commit "9c90dbaa31a2fdc163e4394514bf9ee359e46ee5" :authors
'(("Dominic Charlesworth" . "dgc336@gmail.com"))
:maintainer
'("Dominic Charlesworth" . "dgc336@gmail.com")
:keywords
'("convenient" "lisp")
:url "https://github.com/domtronn/all-the-icons.el")
;; Local Variables:
;; no-byte-compile: t
;; End:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
(defvar all-the-icons-data/alltheicons-alist
'(
( "apache" . "\xe909" )
( "atom" . "\xe917" )
( "aws" . "\xe90c" )
( "bower" . "\xe918" )
( "c" . "\xe915" )
( "c-line" . "\xe90f" )
( "clojure" . "\xe919" )
( "clojure-line" . "\xe91a" )
( "coffeescript" . "\xe914" )
( "cplusplus" . "\xe913" )
( "cplusplus-line" . "\xe910" )
( "csharp" . "\xe911" )
( "csharp-line" . "\xe912" )
( "css3" . "\xe91b" )
( "css3-alt" . "\xe91c" )
( "d3" . "\xe90e" )
( "dlang" . "\xe935" )
( "elixir" . "\xe936" )
( "erlang" . "\xe934" )
( "git" . "\xe907" )
( "go" . "\xe91d" )
( "google-drive" . "\xe91e" )
( "grunt" . "\xe90d" )
( "grunt-line" . "\xe91f" )
( "gulp" . "\xe920" )
( "haskell" . "\xe921" )
( "html5" . "\xe932" )
( "jasmine" . "\xe904" )
( "java" . "\xe922" )
( "javascript" . "\xe906" )
( "javascript-badge" . "\xe923" )
( "javascript-shield" . "\xe924" )
( "less" . "\xe90b" )
( "nginx" . "\xe933" )
( "nodejs" . "\xe925" )
( "perl" . "\xe905" )
( "perldocs" . "\xe926" )
( "postgresql" . "\xe938" )
( "prolog" . "\xe927" )
( "python" . "\xe928" )
( "react" . "\xe929" )
( "ruby" . "\xe92a" )
( "ruby-alt" . "\xe92b" )
( "rust" . "\xe92c" )
( "sass" . "\xe92d" )
( "scala" . "\xe908" )
( "script" . "\xe90a" )
( "spring" . "\xe937" )
( "stylus" . "\xe92e" )
( "svg" . "\xe903" )
( "swift" . "\xe92f" )
( "terminal" . "\xe930" )
( "terminal-alt" . "\xe931" )
( "battery-charging" . "\xe939" )
( "arrow-left" . "\xe93a" )
( "arrow-right" . "\xe93b" )
( "cup-left" . "\xe93c" )
( "cup-right" . "\xe93d" )
( "slant-left" . "\xe93e" )
( "slant-right" . "\xe93f" )
( "wave-left" . "\xe940" )
( "wave-right" . "\xe941" )
))
(provide 'data-alltheicons)

View File

@ -0,0 +1,641 @@
(defvar all-the-icons-data/fa-icon-alist
'(
("500px" . "\xf26e")
("adjust" . "\xf042")
("adn" . "\xf170")
("align-center" . "\xf037")
("align-justify" . "\xf039")
("align-left" . "\xf036")
("align-right" . "\xf038")
("amazon" . "\xf270")
("ambulance" . "\xf0f9")
("american-sign-language-interpreting" . "\xf2a3")
("anchor" . "\xf13d")
("android" . "\xf17b")
("angellist" . "\xf209")
("angle-double-down" . "\xf103")
("angle-double-left" . "\xf100")
("angle-double-right" . "\xf101")
("angle-double-up" . "\xf102")
("angle-down" . "\xf107")
("angle-left" . "\xf104")
("angle-right" . "\xf105")
("angle-up" . "\xf106")
("apple" . "\xf179")
("archive" . "\xf187")
("area-chart" . "\xf1fe")
("arrow-circle-down" . "\xf0ab")
("arrow-circle-left" . "\xf0a8")
("arrow-circle-o-down" . "\xf01a")
("arrow-circle-o-left" . "\xf190")
("arrow-circle-o-right" . "\xf18e")
("arrow-circle-o-up" . "\xf01b")
("arrow-circle-right" . "\xf0a9")
("arrow-circle-up" . "\xf0aa")
("arrow-down" . "\xf063")
("arrow-left" . "\xf060")
("arrow-right" . "\xf061")
("arrow-up" . "\xf062")
("arrows" . "\xf047")
("arrows-alt" . "\xf0b2")
("arrows-h" . "\xf07e")
("arrows-v" . "\xf07d")
("assistive-listening-systems" . "\xf2a2")
("asterisk" . "\xf069")
("at" . "\xf1fa")
("audio-description" . "\xf29e")
("backward" . "\xf04a")
("balance-scale" . "\xf24e")
("ban" . "\xf05e")
("bar-chart" . "\xf080")
("barcode" . "\xf02a")
("bars" . "\xf0c9")
("battery-empty" . "\xf244")
("battery-full" . "\xf240")
("battery-half" . "\xf242")
("battery-quarter" . "\xf243")
("battery-three-quarters" . "\xf241")
("bed" . "\xf236")
("beer" . "\xf0fc")
("behance" . "\xf1b4")
("behance-square" . "\xf1b5")
("bell" . "\xf0f3")
("bell-o" . "\xf0a2")
("bell-slash" . "\xf1f6")
("bell-slash-o" . "\xf1f7")
("bicycle" . "\xf206")
("binoculars" . "\xf1e5")
("birthday-cake" . "\xf1fd")
("bitbucket" . "\xf171")
("bitbucket-square" . "\xf172")
("black-tie" . "\xf27e")
("blind" . "\xf29d")
("bluetooth" . "\xf293")
("bluetooth-b" . "\xf294")
("bold" . "\xf032")
("bolt" . "\xf0e7")
("bomb" . "\xf1e2")
("book" . "\xf02d")
("bookmark" . "\xf02e")
("bookmark-o" . "\xf097")
("braille" . "\xf2a1")
("briefcase" . "\xf0b1")
("btc" . "\xf15a")
("bug" . "\xf188")
("building" . "\xf1ad")
("building-o" . "\xf0f7")
("bullhorn" . "\xf0a1")
("bullseye" . "\xf140")
("bus" . "\xf207")
("buysellads" . "\xf20d")
("calculator" . "\xf1ec")
("calendar" . "\xf073")
("calendar-check-o" . "\xf274")
("calendar-minus-o" . "\xf272")
("calendar-o" . "\xf133")
("calendar-plus-o" . "\xf271")
("calendar-times-o" . "\xf273")
("camera" . "\xf030")
("camera-retro" . "\xf083")
("car" . "\xf1b9")
("caret-down" . "\xf0d7")
("caret-left" . "\xf0d9")
("caret-right" . "\xf0da")
("caret-square-o-down" . "\xf150")
("caret-square-o-left" . "\xf191")
("caret-square-o-right" . "\xf152")
("caret-square-o-up" . "\xf151")
("caret-up" . "\xf0d8")
("cart-arrow-down" . "\xf218")
("cart-plus" . "\xf217")
("cc" . "\xf20a")
("cc-amex" . "\xf1f3")
("cc-diners-club" . "\xf24c")
("cc-discover" . "\xf1f2")
("cc-jcb" . "\xf24b")
("cc-mastercard" . "\xf1f1")
("cc-paypal" . "\xf1f4")
("cc-stripe" . "\xf1f5")
("cc-visa" . "\xf1f0")
("certificate" . "\xf0a3")
("chain-broken" . "\xf127")
("check" . "\xf00c")
("check-circle" . "\xf058")
("check-circle-o" . "\xf05d")
("check-square" . "\xf14a")
("check-square-o" . "\xf046")
("chevron-circle-down" . "\xf13a")
("chevron-circle-left" . "\xf137")
("chevron-circle-right" . "\xf138")
("chevron-circle-up" . "\xf139")
("chevron-down" . "\xf078")
("chevron-left" . "\xf053")
("chevron-right" . "\xf054")
("chevron-up" . "\xf077")
("child" . "\xf1ae")
("chrome" . "\xf268")
("circle" . "\xf111")
("circle-o" . "\xf10c")
("circle-o-notch" . "\xf1ce")
("circle-thin" . "\xf1db")
("clipboard" . "\xf0ea")
("clock-o" . "\xf017")
("clone" . "\xf24d")
("cloud" . "\xf0c2")
("cloud-download" . "\xf0ed")
("cloud-upload" . "\xf0ee")
("code" . "\xf121")
("code-fork" . "\xf126")
("codepen" . "\xf1cb")
("codiepie" . "\xf284")
("coffee" . "\xf0f4")
("cog" . "\xf013")
("cogs" . "\xf085")
("columns" . "\xf0db")
("comment" . "\xf075")
("comment-o" . "\xf0e5")
("commenting" . "\xf27a")
("commenting-o" . "\xf27b")
("comments" . "\xf086")
("comments-o" . "\xf0e6")
("compass" . "\xf14e")
("compress" . "\xf066")
("connectdevelop" . "\xf20e")
("contao" . "\xf26d")
("copyright" . "\xf1f9")
("creative-commons" . "\xf25e")
("credit-card" . "\xf09d")
("credit-card-alt" . "\xf283")
("crop" . "\xf125")
("crosshairs" . "\xf05b")
("css3" . "\xf13c")
("cube" . "\xf1b2")
("cubes" . "\xf1b3")
("cutlery" . "\xf0f5")
("dashcube" . "\xf210")
("database" . "\xf1c0")
("deaf" . "\xf2a4")
("delicious" . "\xf1a5")
("desktop" . "\xf108")
("deviantart" . "\xf1bd")
("diamond" . "\xf219")
("digg" . "\xf1a6")
("dot-circle-o" . "\xf192")
("download" . "\xf019")
("dribbble" . "\xf17d")
("dropbox" . "\xf16b")
("drupal" . "\xf1a9")
("edge" . "\xf282")
("eject" . "\xf052")
("ellipsis-h" . "\xf141")
("ellipsis-v" . "\xf142")
("empire" . "\xf1d1")
("envelope" . "\xf0e0")
("envelope-o" . "\xf003")
("envelope-square" . "\xf199")
("envira" . "\xf299")
("eraser" . "\xf12d")
("eur" . "\xf153")
("exchange" . "\xf0ec")
("exclamation" . "\xf12a")
("exclamation-circle" . "\xf06a")
("exclamation-triangle" . "\xf071")
("expand" . "\xf065")
("expeditedssl" . "\xf23e")
("external-link" . "\xf08e")
("external-link-square" . "\xf14c")
("eye" . "\xf06e")
("eye-slash" . "\xf070")
("eyedropper" . "\xf1fb")
("facebook" . "\xf09a")
("facebook-official" . "\xf230")
("facebook-square" . "\xf082")
("fast-backward" . "\xf049")
("fast-forward" . "\xf050")
("fax" . "\xf1ac")
("female" . "\xf182")
("fighter-jet" . "\xf0fb")
("file" . "\xf15b")
("file-archive-o" . "\xf1c6")
("file-audio-o" . "\xf1c7")
("file-code-o" . "\xf1c9")
("file-excel-o" . "\xf1c3")
("file-image-o" . "\xf1c5")
("file-o" . "\xf016")
("file-pdf-o" . "\xf1c1")
("file-powerpoint-o" . "\xf1c4")
("file-text" . "\xf15c")
("file-text-o" . "\xf0f6")
("file-video-o" . "\xf1c8")
("file-word-o" . "\xf1c2")
("files-o" . "\xf0c5")
("film" . "\xf008")
("filter" . "\xf0b0")
("fire" . "\xf06d")
("fire-extinguisher" . "\xf134")
("firefox" . "\xf269")
("first-order" . "\xf2b0")
("flag" . "\xf024")
("flag-checkered" . "\xf11e")
("flag-o" . "\xf11d")
("flask" . "\xf0c3")
("flickr" . "\xf16e")
("floppy-o" . "\xf0c7")
("folder" . "\xf07b")
("folder-o" . "\xf114")
("folder-open" . "\xf07c")
("folder-open-o" . "\xf115")
("font" . "\xf031")
("font-awesome" . "\xf2b4")
("fonticons" . "\xf280")
("fort-awesome" . "\xf286")
("forumbee" . "\xf211")
("forward" . "\xf04e")
("foursquare" . "\xf180")
("frown-o" . "\xf119")
("futbol-o" . "\xf1e3")
("gamepad" . "\xf11b")
("gavel" . "\xf0e3")
("gbp" . "\xf154")
("genderless" . "\xf22d")
("get-pocket" . "\xf265")
("gg" . "\xf260")
("gg-circle" . "\xf261")
("gift" . "\xf06b")
("git" . "\xf1d3")
("git-square" . "\xf1d2")
("github" . "\xf09b")
("github-alt" . "\xf113")
("github-square" . "\xf092")
("gitlab" . "\xf296")
("glass" . "\xf000")
("glide" . "\xf2a5")
("glide-g" . "\xf2a6")
("globe" . "\xf0ac")
("google" . "\xf1a0")
("google-plus" . "\xf0d5")
("google-plus-official" . "\xf2b3")
("google-plus-square" . "\xf0d4")
("google-wallet" . "\xf1ee")
("graduation-cap" . "\xf19d")
("gratipay" . "\xf184")
("h-square" . "\xf0fd")
("hacker-news" . "\xf1d4")
("hand-lizard-o" . "\xf258")
("hand-o-down" . "\xf0a7")
("hand-o-left" . "\xf0a5")
("hand-o-right" . "\xf0a4")
("hand-o-up" . "\xf0a6")
("hand-paper-o" . "\xf256")
("hand-peace-o" . "\xf25b")
("hand-pointer-o" . "\xf25a")
("hand-rock-o" . "\xf255")
("hand-scissors-o" . "\xf257")
("hand-spock-o" . "\xf259")
("hashtag" . "\xf292")
("hdd-o" . "\xf0a0")
("header" . "\xf1dc")
("headphones" . "\xf025")
("heart" . "\xf004")
("heart-o" . "\xf08a")
("heartbeat" . "\xf21e")
("history" . "\xf1da")
("home" . "\xf015")
("hospital-o" . "\xf0f8")
("hourglass" . "\xf254")
("hourglass-end" . "\xf253")
("hourglass-half" . "\xf252")
("hourglass-o" . "\xf250")
("hourglass-start" . "\xf251")
("houzz" . "\xf27c")
("html5" . "\xf13b")
("i-cursor" . "\xf246")
("ils" . "\xf20b")
("inbox" . "\xf01c")
("indent" . "\xf03c")
("industry" . "\xf275")
("info" . "\xf129")
("info-circle" . "\xf05a")
("inr" . "\xf156")
("instagram" . "\xf16d")
("internet-explorer" . "\xf26b")
("ioxhost" . "\xf208")
("italic" . "\xf033")
("joomla" . "\xf1aa")
("jpy" . "\xf157")
("jsfiddle" . "\xf1cc")
("key" . "\xf084")
("keyboard-o" . "\xf11c")
("krw" . "\xf159")
("language" . "\xf1ab")
("laptop" . "\xf109")
("lastfm" . "\xf202")
("lastfm-square" . "\xf203")
("leaf" . "\xf06c")
("leanpub" . "\xf212")
("lemon-o" . "\xf094")
("level-down" . "\xf149")
("level-up" . "\xf148")
("life-ring" . "\xf1cd")
("lightbulb-o" . "\xf0eb")
("line-chart" . "\xf201")
("link" . "\xf0c1")
("linkedin" . "\xf0e1")
("linkedin-square" . "\xf08c")
("linux" . "\xf17c")
("list" . "\xf03a")
("list-alt" . "\xf022")
("list-ol" . "\xf0cb")
("list-ul" . "\xf0ca")
("location-arrow" . "\xf124")
("lock" . "\xf023")
("long-arrow-down" . "\xf175")
("long-arrow-left" . "\xf177")
("long-arrow-right" . "\xf178")
("long-arrow-up" . "\xf176")
("low-vision" . "\xf2a8")
("magic" . "\xf0d0")
("magnet" . "\xf076")
("male" . "\xf183")
("map" . "\xf279")
("map-marker" . "\xf041")
("map-o" . "\xf278")
("map-pin" . "\xf276")
("map-signs" . "\xf277")
("mars" . "\xf222")
("mars-double" . "\xf227")
("mars-stroke" . "\xf229")
("mars-stroke-h" . "\xf22b")
("mars-stroke-v" . "\xf22a")
("maxcdn" . "\xf136")
("meanpath" . "\xf20c")
("medium" . "\xf23a")
("medkit" . "\xf0fa")
("meh-o" . "\xf11a")
("mercury" . "\xf223")
("microphone" . "\xf130")
("microphone-slash" . "\xf131")
("minus" . "\xf068")
("minus-circle" . "\xf056")
("minus-square" . "\xf146")
("minus-square-o" . "\xf147")
("mixcloud" . "\xf289")
("mobile" . "\xf10b")
("modx" . "\xf285")
("money" . "\xf0d6")
("moon-o" . "\xf186")
("motorcycle" . "\xf21c")
("mouse-pointer" . "\xf245")
("music" . "\xf001")
("neuter" . "\xf22c")
("newspaper-o" . "\xf1ea")
("object-group" . "\xf247")
("object-ungroup" . "\xf248")
("odnoklassniki" . "\xf263")
("odnoklassniki-square" . "\xf264")
("opencart" . "\xf23d")
("openid" . "\xf19b")
("opera" . "\xf26a")
("optin-monster" . "\xf23c")
("outdent" . "\xf03b")
("pagelines" . "\xf18c")
("paint-brush" . "\xf1fc")
("paper-plane" . "\xf1d8")
("paper-plane-o" . "\xf1d9")
("paperclip" . "\xf0c6")
("paragraph" . "\xf1dd")
("pause" . "\xf04c")
("pause-circle" . "\xf28b")
("pause-circle-o" . "\xf28c")
("paw" . "\xf1b0")
("paypal" . "\xf1ed")
("pencil" . "\xf040")
("pencil-square" . "\xf14b")
("pencil-square-o" . "\xf044")
("percent" . "\xf295")
("phone" . "\xf095")
("phone-square" . "\xf098")
("picture-o" . "\xf03e")
("pie-chart" . "\xf200")
("pied-piper" . "\xf2ae")
("pied-piper-alt" . "\xf1a8")
("pied-piper-pp" . "\xf1a7")
("pinterest" . "\xf0d2")
("pinterest-p" . "\xf231")
("pinterest-square" . "\xf0d3")
("plane" . "\xf072")
("play" . "\xf04b")
("play-circle" . "\xf144")
("play-circle-o" . "\xf01d")
("plug" . "\xf1e6")
("plus" . "\xf067")
("plus-circle" . "\xf055")
("plus-square" . "\xf0fe")
("plus-square-o" . "\xf196")
("power-off" . "\xf011")
("print" . "\xf02f")
("product-hunt" . "\xf288")
("puzzle-piece" . "\xf12e")
("qq" . "\xf1d6")
("qrcode" . "\xf029")
("question" . "\xf128")
("question-circle" . "\xf059")
("question-circle-o" . "\xf29c")
("quote-left" . "\xf10d")
("quote-right" . "\xf10e")
("random" . "\xf074")
("rebel" . "\xf1d0")
("recycle" . "\xf1b8")
("reddit" . "\xf1a1")
("reddit-alien" . "\xf281")
("reddit-square" . "\xf1a2")
("refresh" . "\xf021")
("registered" . "\xf25d")
("renren" . "\xf18b")
("repeat" . "\xf01e")
("reply" . "\xf112")
("reply-all" . "\xf122")
("retweet" . "\xf079")
("road" . "\xf018")
("rocket" . "\xf135")
("rss" . "\xf09e")
("rss-square" . "\xf143")
("rub" . "\xf158")
("safari" . "\xf267")
("scissors" . "\xf0c4")
("scribd" . "\xf28a")
("search" . "\xf002")
("search-minus" . "\xf010")
("search-plus" . "\xf00e")
("sellsy" . "\xf213")
("server" . "\xf233")
("share" . "\xf064")
("share-alt" . "\xf1e0")
("share-alt-square" . "\xf1e1")
("share-square" . "\xf14d")
("share-square-o" . "\xf045")
("shield" . "\xf132")
("ship" . "\xf21a")
("shirtsinbulk" . "\xf214")
("shopping-bag" . "\xf290")
("shopping-basket" . "\xf291")
("shopping-cart" . "\xf07a")
("sign-in" . "\xf090")
("sign-language" . "\xf2a7")
("sign-out" . "\xf08b")
("signal" . "\xf012")
("simplybuilt" . "\xf215")
("sitemap" . "\xf0e8")
("skyatlas" . "\xf216")
("skype" . "\xf17e")
("slack" . "\xf198")
("sliders" . "\xf1de")
("slideshare" . "\xf1e7")
("smile-o" . "\xf118")
("snapchat" . "\xf2ab")
("snapchat-ghost" . "\xf2ac")
("snapchat-square" . "\xf2ad")
("sort" . "\xf0dc")
("sort-alpha-asc" . "\xf15d")
("sort-alpha-desc" . "\xf15e")
("sort-amount-asc" . "\xf160")
("sort-amount-desc" . "\xf161")
("sort-asc" . "\xf0de")
("sort-desc" . "\xf0dd")
("sort-numeric-asc" . "\xf162")
("sort-numeric-desc" . "\xf163")
("soundcloud" . "\xf1be")
("space-shuttle" . "\xf197")
("spinner" . "\xf110")
("spoon" . "\xf1b1")
("spotify" . "\xf1bc")
("square" . "\xf0c8")
("square-o" . "\xf096")
("stack-exchange" . "\xf18d")
("stack-overflow" . "\xf16c")
("star" . "\xf005")
("star-half" . "\xf089")
("star-half-o" . "\xf123")
("star-o" . "\xf006")
("steam" . "\xf1b6")
("steam-square" . "\xf1b7")
("step-backward" . "\xf048")
("step-forward" . "\xf051")
("stethoscope" . "\xf0f1")
("sticky-note" . "\xf249")
("sticky-note-o" . "\xf24a")
("stop" . "\xf04d")
("stop-circle" . "\xf28d")
("stop-circle-o" . "\xf28e")
("street-view" . "\xf21d")
("strikethrough" . "\xf0cc")
("stumbleupon" . "\xf1a4")
("stumbleupon-circle" . "\xf1a3")
("subscript" . "\xf12c")
("subway" . "\xf239")
("suitcase" . "\xf0f2")
("sun-o" . "\xf185")
("superscript" . "\xf12b")
("table" . "\xf0ce")
("tablet" . "\xf10a")
("tachometer" . "\xf0e4")
("tag" . "\xf02b")
("tags" . "\xf02c")
("tasks" . "\xf0ae")
("taxi" . "\xf1ba")
("television" . "\xf26c")
("tencent-weibo" . "\xf1d5")
("terminal" . "\xf120")
("text-height" . "\xf034")
("text-width" . "\xf035")
("th" . "\xf00a")
("th-large" . "\xf009")
("th-list" . "\xf00b")
("themeisle" . "\xf2b2")
("thumb-tack" . "\xf08d")
("thumbs-down" . "\xf165")
("thumbs-o-down" . "\xf088")
("thumbs-o-up" . "\xf087")
("thumbs-up" . "\xf164")
("ticket" . "\xf145")
("times" . "\xf00d")
("times-circle" . "\xf057")
("times-circle-o" . "\xf05c")
("tint" . "\xf043")
("toggle-off" . "\xf204")
("toggle-on" . "\xf205")
("trademark" . "\xf25c")
("train" . "\xf238")
("transgender" . "\xf224")
("transgender-alt" . "\xf225")
("trash" . "\xf1f8")
("trash-o" . "\xf014")
("tree" . "\xf1bb")
("trello" . "\xf181")
("tripadvisor" . "\xf262")
("trophy" . "\xf091")
("truck" . "\xf0d1")
("try" . "\xf195")
("tty" . "\xf1e4")
("tumblr" . "\xf173")
("tumblr-square" . "\xf174")
("twitch" . "\xf1e8")
("twitter" . "\xf099")
("twitter-square" . "\xf081")
("umbrella" . "\xf0e9")
("underline" . "\xf0cd")
("undo" . "\xf0e2")
("universal-access" . "\xf29a")
("university" . "\xf19c")
("unlock" . "\xf09c")
("unlock-alt" . "\xf13e")
("upload" . "\xf093")
("usb" . "\xf287")
("usd" . "\xf155")
("user" . "\xf007")
("user-md" . "\xf0f0")
("user-plus" . "\xf234")
("user-secret" . "\xf21b")
("user-times" . "\xf235")
("users" . "\xf0c0")
("venus" . "\xf221")
("venus-double" . "\xf226")
("venus-mars" . "\xf228")
("viacoin" . "\xf237")
("viadeo" . "\xf2a9")
("viadeo-square" . "\xf2aa")
("video-camera" . "\xf03d")
("vimeo" . "\xf27d")
("vimeo-square" . "\xf194")
("vine" . "\xf1ca")
("vk" . "\xf189")
("volume-control-phone" . "\xf2a0")
("volume-down" . "\xf027")
("volume-off" . "\xf026")
("volume-up" . "\xf028")
("weibo" . "\xf18a")
("weixin" . "\xf1d7")
("whatsapp" . "\xf232")
("wheelchair" . "\xf193")
("wheelchair-alt" . "\xf29b")
("wifi" . "\xf1eb")
("wikipedia-w" . "\xf266")
("windows" . "\xf17a")
("wordpress" . "\xf19a")
("wpbeginner" . "\xf297")
("wpforms" . "\xf298")
("wrench" . "\xf0ad")
("xing" . "\xf168")
("xing-square" . "\xf169")
("y-combinator" . "\xf23b")
("yahoo" . "\xf19e")
("yelp" . "\xf1e9")
("yoast" . "\xf2b1")
("youtube" . "\xf167")
("youtube-play" . "\xf16a")
("youtube-square" . "\xf166")
))
(provide 'data-faicons)

View File

@ -0,0 +1,492 @@
(defvar all-the-icons-data/file-icon-alist
'(
( "1c" . "\xa5ea" )
( "1c-alt" . "\xea28" )
( "MJML" . "\xea6f" )
( "R" . "\xe905" )
( "abap" . "\xe92b" )
( "abif" . "\xea4e" )
( "access" . "\xe9ea" )
( "actionscript" . "\xe92e" )
( "ada" . "\xe90b" )
( "ae" . "\xe9f3" )
( "ai" . "\xe6b4" )
( "akka" . "\xea0e" )
( "alex" . "\x29cb" )
( "alloy" . "\xe935" )
( "alpine-linux" . "\xe9ff" )
( "ampl" . "\xe94e" )
( "amx" . "\xe99b" )
( "angelscript" . "\xea5b" )
( "ansible" . "\x24b6" )
( "ansible-alt" . "\x61" )
( "ant" . "\xe93e" )
( "antlr" . "\xe92c" )
( "antwar" . "\x2591" )
( "api-blueprint" . "\xe92d" )
( "apl" . "\x234b" )
( "apl-old" . "\xe909" )
( "apple" . "\xe925" )
( "appveyor" . "\xe923" )
( "arc" . "\xe92f" )
( "arch-linux" . "\x41" )
( "arduino" . "\xe930" )
( "arttext" . "\x24d0" )
( "asciidoc" . "\xe918" )
( "assembly" . "\xEB4F" )
( "ats" . "\xe934" )
( "audacity" . "\xe9f9" )
( "augeas" . "\xe931" )
( "aurelia" . "\xea48" )
( "auto-hotkey" . "\xe932" )
( "autoit" . "\xe933" )
( "babel" . "\xe91f" )
( "bazel" . "\xea5a" )
( "bem" . "\xea59" )
( "bib" . "\xe601" )
( "bintray" . "\xea6e" )
( "bithound" . "\xea2a" )
( "blender" . "\xe9fa" )
( "bluespec" . "\xe93c" )
( "boo" . "\xe939" )
( "brain" . "\xe93a" )
( "brakeman" . "\xe9d6" )
( "bro" . "\xe93b" )
( "broccoli" . "\xe922" )
( "brotli" . "\xea6c" )
( "browserslist" . "\xea80" )
( "brunch" . "\xea47" )
( "buck" . "\xea46" )
( "build-boot" . "\xf103" )
( "bundler" . "\xea45" )
( "byond" . "\xe962" )
( "cabal" . "\xe9c2" )
( "caddy" . "\xea58" )
( "cake" . "\xe9e3" )
( "cakefile" . "\xe924" )
( "cakephp" . "\xea43" )
( "cakephp-old" . "\xe9d3" )
( "cc" . "\xe9d5" )
( "ceylon" . "\xe94f" )
( "chai" . "\x63" )
( "chapel" . "\xe950" )
( "chartjs" . "\xea0b" )
( "chef" . "\xea42" )
( "chuck" . "\xe943" )
( "circle-ci" . "\xea12" )
( "cirru" . "\xe951" )
( "ckeditor" . "\xea0c" )
( "clarion" . "\xe952" )
( "clean" . "\xe95b" )
( "click" . "\xe95c" )
( "clips" . "\xe940" )
( "clj" . "\xf105" )
( "cljs" . "\xf104" )
( "closure-template" . "\xea82" )
( "cmake" . "\xe93f" )
( "cobol" . "\xea44" )
( "codecov" . "\x2602" )
( "codekit" . "\xea41" )
( "codemirror" . "\xea0d" )
( "codeship" . "\xea6a" )
( "cold-fusion" . "\xe929" )
( "clisp" . "\xe972" )
( "composer" . "\xe683" )
( "config" . "\xf07c" )
( "coq" . "\xe95f" )
( "cordova" . "\xea11" )
( "cp" . "\xe942" )
( "cpan" . "\xea87" )
( "creole" . "\xe95e" )
( "crystal" . "\xe902" )
( "cs-script" . "\xe9e2" )
( "csound" . "\xe9f0" )
( "cucumber" . "\xf02b" )
( "cython" . "\xe963" )
( "d3" . "\xea10" )
( "darcs" . "\xe964" )
( "dart" . "\xe698" )
( "dashboard" . "\xf07d" )
( "dbase" . "\xe9f1" )
( "default" . "\x1f5cc" )
( "delphi" . "\xea40" )
( "devicetree" . "\xea57" )
( "diff" . "\xe960" )
( "dockerfile" . "\xf106" )
( "doclets" . "\xea3f" )
( "doge" . "\xe946" )
( "dom" . "\xea71" )
( "donejs" . "\x1f3c1" )
( "doxygen" . "\xe928" )
( "dragula" . "\x1f44c" )
( "drone" . "\xea3d" )
( "dyalog" . "\xe90c" )
( "dylib" . "\xea15" )
( "e" . "\x45" )
( "eagle" . "\xe965" )
( "easybuild" . "\xea85" )
( "ec" . "\xe9c9" )
( "ecere" . "\xe966" )
( "edge" . "\xea78" )
( "editorconfig" . "\xea1b" )
( "eiffel" . "\xe967" )
( "ejs" . "\xea4b" )
( "electron" . "\xea27" )
( "elm" . "\xf102" )
( "emacs" . "\xe926" )
( "elisp" . "\xe926" )
( "ember" . "\xe61b" )
( "emberscript" . "\xe968" )
( "eq" . "\xea0a" )
( "esdoc" . "\xea5c" )
( "eslint" . "\xea0f" )
( "eslint-old" . "\xe90e" )
( "excel" . "\xe9ee" )
( "fabfile" . "\xe94b" )
( "factor" . "\xe96a" )
( "fancy" . "\xe96b" )
( "fantom" . "\xe96f" )
( "fbx" . "\xe9fc" )
( "ffmpeg" . "\xea22" )
( "finder" . "\xe9e9" )
( "firebase" . "\xea7f" )
( "flow" . "\xe921" )
( "flux" . "\xe969" )
( "font" . "\xe90f" )
( "fontforge" . "\xfb00" )
( "fortran" . "\xe90a" )
( "franca" . "\xea56" )
( "freemarker" . "\xe970" )
( "frege" . "\xe96e" )
( "fsharp" . "\xe6a7" )
( "fuel-ux" . "\xea09" )
( "gams" . "\xe973" )
( "gap" . "\xe971" )
( "gdb" . "\xea08" )
( "genshi" . "\xe976" )
( "gentoo" . "\xe96d" )
( "gf" . "\xe978" )
( "gitlab" . "\xea3c" )
( "glade" . "\xe938" )
( "glyphs" . "\x47" )
( "gn" . "\xea25" )
( "gnu" . "\xe679" )
( "go" . "\xeaae" )
( "godot" . "\xe974" )
( "golo" . "\xe979" )
( "gosu" . "\xe97a" )
( "gradle" . "\xe903" )
( "graphql" . "\xe97c" )
( "graphviz" . "\xe97d" )
( "groovy" . "\xe904" )
( "grunt" . "\xe611" )
( "gulp" . "\xe610" )
( "hack" . "\xe9ce" )
( "haml" . "\xf15b" )
( "harbour" . "\xe97b" )
( "hashicorp" . "\xe97e" )
( "haxe" . "\xe907" )
( "haxedevelop" . "\xea3b" )
( "hg" . "\x263f" )
( "hoplon" . "\xea4d" )
( "hy" . "\xe97f" )
( "icu" . "\xea23" )
( "id" . "\xe9f4" )
( "idl" . "\xe947" )
( "idris" . "\xe983" )
( "igorpro" . "\xe980" )
( "image" . "\xf012" )
( "inform7" . "\xe984" )
( "inno" . "\xe985" )
( "io" . "\xe981" )
( "ioke" . "\xe982" )
( "ionic-project" . "\xf14b" )
( "isabelle" . "\xe945" )
( "j" . "\xe937" )
( "jade" . "\xe90d" )
( "jake" . "\xe948" )
( "jasmine" . "\xea3a" )
( "jenkins" . "\xe667" )
( "jest" . "\xea39" )
( "jinja" . "\xe944" )
( "jison" . "\xea55" )
( "jolie" . "\xea75" )
( "jsonld" . "\xe958" )
( "jsx" . "\xf100" )
( "jsx-2" . "\xf101" )
( "jsx2-alt" . "\xe9e6" )
( "julia" . "\x26ec" )
( "junos" . "\xea81" )
( "jupyter" . "\xe987" )
( "karma" . "\xe9cd" )
( "keynote" . "\xe9e5" )
( "khronos" . "\xe9f8" )
( "kicad" . "\xea4c" )
( "kitchenci" . "\xea38" )
( "kivy" . "\xe901" )
( "knockout" . "\x4b" )
( "kotlin" . "\xe989" )
( "krl" . "\xe988" )
( "labview" . "\xe98a" )
( "lasso" . "\xe98c" )
( "leaflet" . "\xea07" )
( "lean" . "\x4c" )
( "lerna" . "\xea37" )
( "lfe" . "\xe94c" )
( "libuv" . "\xea21" )
( "lightwave" . "\xe9fb" )
( "lime" . "\xea36" )
( "lisp" . "\xe908" )
( "livescript" . "\xe914" )
( "llvm" . "\xe91d" )
( "logtalk" . "\xe98d" )
( "lookml" . "\xe98e" )
( "lsl" . "\xe98b" )
( "lua" . "\xe91b" )
( "mako" . "\xe98f" )
( "man-page" . "\xe936" )
( "mapbox" . "\xe941" )
( "markdownlint" . "\xf0c9" )
( "marko" . "\xe920" )
( "mathematica" . "\xe990" )
( "mathjax" . "\xea06" )
( "matlab" . "\xe991" )
( "max" . "\xe993" )
( "maxscript" . "\xe900" )
( "maya" . "\xe9f6" )
( "mediawiki" . "\xe954" )
( "mercury" . "\xe994" )
( "meson" . "\xea54" )
( "metal" . "\x4d" )
( "meteor" . "\xe6a5" )
( "microsoft-infopath" . "\xea35" )
( "minecraft" . "\xe9dc" )
( "minizinc" . "\xea53" )
( "mirah" . "\xe995" )
( "miranda" . "\xea52" )
( "mocha" . "\x26fe" )
( "modula-2" . "\xe996" )
( "moment" . "\x1f558" )
( "moment-tz" . "\x1f30d" )
( "monkey" . "\xe997" )
( "moustache" . "\xe60f" )
( "mruby" . "\xea18" )
( "mupad" . "\xe9ca" )
( "nano" . "\xea76" )
( "nanoc" . "\xea51" )
( "nant" . "\xe9e1" )
( "nasm" . "\xea72" )
( "neko" . "\xea05" )
( "netlogo" . "\xe99c" )
( "new-relic" . "\xe9d7" )
( "nginx" . "\xf146b" )
( "nib" . "\x2712" )
( "nimrod" . "\xe998" )
( "nit" . "\xe999" )
( "nix" . "\xe99a" )
( "nmap" . "\xe94d" )
( "nodemon" . "\xea26" )
( "normalize" . "\xea04" )
( "npm" . "\xe91c" )
( "npm-old" . "\xf17b" )
( "nsis" . "\xea1e" )
( "nsis-old" . "\xe992" )
( "nuclide" . "\xea34" )
( "nuget" . "\xe9d9" )
( "numpy" . "\xe99d" )
( "nunjucks" . "\xe953" )
( "nvidia" . "\xe95d" )
( "nxc" . "\xea6b" )
( "obj" . "\xe9e8" )
( "objective-j" . "\xe99e" )
( "ocaml" . "\xe91a" )
( "octave" . "\xea33" )
( "onenote" . "\xe9eb" )
( "ooc" . "\xe9cb" )
( "opa" . "\x2601" )
( "opencl" . "\xe99f" )
( "opengl" . "\xea7a" )
( "openoffice" . "\xe9e4" )
( "openscad" . "\xe911" )
( "org" . "\xe917" )
( "owl" . "\xe957" )
( "ox" . "\xe9a1" )
( "oxygene" . "\xe9bf" )
( "oz" . "\xe9be" )
( "p4" . "\xea50" )
( "pan" . "\xe9bd" )
( "papyrus" . "\xe9bc" )
( "parrot" . "\xe9bb" )
( "pascal" . "\xe92a" )
( "patch" . "\xe961" )
( "pawn" . "\x265f" )
( "pb" . "\xea14" )
( "pegjs" . "\xea74" )
( "raku" . "\xe96c" )
( "phalcon" . "\xe94a" )
( "phoenix" . "\xea5f" )
( "php" . "\xf147" )
( "phpunit" . "\xea32" )
( "pickle" . "\xe9c4" )
( "pike" . "\xe9b9" )
( "platformio" . "\xea2c" )
( "pm2" . "\x2630" )
( "pod" . "\xea84" )
( "pogo" . "\xe9b8" )
( "pointwise" . "\xe977" )
( "polymer" . "\xea2b" )
( "pony" . "\xe9b7" )
( "postcss" . "\xe910" )
( "postscript" . "\xe955" )
( "povray" . "\x50" )
( "powerpoint" . "\xe9ec" )
( "powershell" . "\xe9da" )
( "precision" . "\x2295" )
( "premiere" . "\xe9f5" )
( "processing" . "\xe9a0" )
( "progress" . "\xe9c0" )
( "propeller" . "\xe9b5" )
( "proselint" . "\xea6d" )
( "protractor" . "\xe9de" )
( "ps" . "\xe6b8" )
( "pug" . "\xea13" )
( "pug-alt" . "\xe9d0" )
( "puppet" . "\xf0c3" )
( "purebasic" . "\x1b5" )
( "purescript" . "\xe9b2" )
( "racket" . "\xe9b1" )
( "raml" . "\xe913" )
( "rascal" . "\xea24" )
( "rdoc" . "\xe9b0" )
( "realbasic" . "\xe9af" )
( "reason" . "\xea1d" )
( "rebol" . "\xe9ae" )
( "red" . "\xe9ad" )
( "redux" . "\xea30" )
( "regex" . "\x2a" )
( "rexx" . "\xea16" )
( "rhino" . "\xea4a" )
( "ring" . "\x1f48d" )
( "riot" . "\xe919" )
( "robot" . "\xe9ac" )
( "rollup" . "\xea20" )
( "rollup-old" . "\xe9fd" )
( "rot" . "\x1f764" )
( "rspec" . "\xea31" )
( "rst" . "\xe9cc" )
( "sage" . "\xe9ab" )
( "saltstack" . "\xe915" )
( "sas" . "\xe95a" )
( "sbt" . "\xe9d2" )
( "sc" . "\xe9a2" )
( "scheme" . "\x3bb" )
( "scilab" . "\xe9a9" )
( "scrutinizer" . "\xe9d4" )
( "self" . "\xe9a8" )
( "sequelize" . "\xea2f" )
( "sf" . "\xe9db" )
( "shen" . "\xe9a7" )
( "shipit" . "\x26f5" )
( "shippable" . "\xea2d" )
( "shopify" . "\xe9cf" )
( "shuriken" . "\x272b" )
( "silverstripe" . "\xe800" )
( "sinatra" . "\xea03" )
( "sketch" . "\xe927" )
( "sketchup-layout" . "\xea7c" )
( "sketchup-make" . "\xea7e" )
( "sketchup-stylebuilder" . "\xea7d" )
( "slash" . "\xe9a6" )
( "snyk" . "\xea1c" )
( "solidity" . "\xea86" )
( "sparql" . "\xe959" )
( "spray" . "\xea02" )
( "sqf" . "\xe9a5" )
( "sqlite" . "\xe9dd" )
( "squarespace" . "\xea5e" )
( "stan" . "\xe9a4" )
( "stata" . "\xe9a3" )
( "storyist" . "\xe9ef" )
( "strings" . "\xe9e0" )
( "stylelint" . "\xe93d" )
( "stylus" . "\x73" )
( "stylus-full" . "\xe9f7" )
( "stylus-orb" . "\x53" )
( "sublime" . "\xe986" )
( "sv" . "\xe9c3" )
( "svelte" . "\x33dc" )
( "svn" . "\xea17" )
( "swagger" . "\xea29" )
( "tag" . "\xf015" )
( "tcl" . "\xe956" )
( "telegram" . "\x2708" )
( "terminal" . "\xf0c8" )
( "tern" . "\x1f54a" )
( "terraform" . "\xe916" )
( "test-coffeescript" . "\xea62" )
( "test-dir" . "\xea60" )
( "test-generic" . "\xea63" )
( "test-js" . "\xea64" )
( "test-perl" . "\xea65" )
( "test-python" . "\xea66" )
( "test-react" . "\xea67" )
( "test-ruby" . "\xea68" )
( "test-typescript" . "\xea69" )
( "tex" . "\xe600" )
( "textile" . "\x74" )
( "textmate" . "\x2122" )
( "thor" . "\xe9d8" )
( "tinymce" . "\xea01" )
( "tsx" . "\xe9d1" )
( "tsx-alt" . "\xe9e7" )
( "tt" . "\x54" )
( "turing" . "\xe9b6" )
( "twig" . "\x2e19" )
( "twine" . "\xea5d" )
( "txl" . "\xe9c1" )
( "typedoc" . "\xe9fe" )
( "typescript" . "\xe912" )
( "typescript-alt" . "\x2a6" )
( "typings" . "\xe9df" )
( "uno" . "\xe9b3" )
( "unreal" . "\x75" )
( "urweb" . "\xe9ba" )
( "v8" . "\xea1f" )
( "vagrant" . "\x56" )
( "vcl" . "\xe9b4" )
( "verilog" . "\xe949" )
( "vertex-shader" . "\xea79" )
( "vhdl" . "\xe9aa" )
( "video" . "\xf057" )
( "virtualbox" . "\xea3e" )
( "virtualbox-alt" . "\xea2e" )
( "visio" . "\xea83" )
( "vmware" . "\xea49" )
( "vue" . "\xe906" )
( "wasm" . "\xea70" )
( "watchman" . "\xea4f" )
( "webgl" . "\xea7b" )
( "webpack" . "\xea61" )
( "webpack-old" . "\xe91e" )
( "wercker" . "\xea19" )
( "word" . "\xe9ed" )
( "x10" . "\x2169" )
( "xamarin" . "\xea77" )
( "xmos" . "\x58" )
( "xpages" . "\xe9c5" )
( "xtend" . "\xe9c6" )
( "yarn" . "\xea1a" )
( "yasm" . "\xea73" )
( "yin-yang" . "\x262f" )
( "yoyo" . "\xe975" )
( "yui" . "\xea00" )
( "zbrush" . "\xe9f2" )
( "zephir" . "\xe9c7" )
("zig" . "\x7A")
( "zimpl" . "\xe9c8" )
)
)
(provide 'data-fileicons)

View File

@ -0,0 +1,935 @@
(defvar all-the-icons-data/material-icons-alist
'(("3d_rotation" . "\xe84d")
("ac_unit" . "\xeb3b")
("access_alarm" . "\xe190")
("access_alarms" . "\xe191")
("access_time" . "\xe192")
("accessibility" . "\xe84e")
("accessible" . "\xe914")
("account_balance" . "\xe84f")
("account_balance_wallet" . "\xe850")
("account_box" . "\xe851")
("account_circle" . "\xe853")
("adb" . "\xe60e")
("add" . "\xe145")
("add_a_photo" . "\xe439")
("add_alarm" . "\xe193")
("add_alert" . "\xe003")
("add_box" . "\xe146")
("add_circle" . "\xe147")
("add_circle_outline" . "\xe148")
("add_location" . "\xe567")
("add_shopping_cart" . "\xe854")
("add_to_photos" . "\xe39d")
("add_to_queue" . "\xe05c")
("adjust" . "\xe39e")
("airline_seat_flat" . "\xe630")
("airline_seat_flat_angled" . "\xe631")
("airline_seat_individual_suite" . "\xe632")
("airline_seat_legroom_extra" . "\xe633")
("airline_seat_legroom_normal" . "\xe634")
("airline_seat_legroom_reduced" . "\xe635")
("airline_seat_recline_extra" . "\xe636")
("airline_seat_recline_normal" . "\xe637")
("airplanemode_active" . "\xe195")
("airplanemode_inactive" . "\xe194")
("airplay" . "\xe055")
("airport_shuttle" . "\xeb3c")
("alarm" . "\xe855")
("alarm_add" . "\xe856")
("alarm_off" . "\xe857")
("alarm_on" . "\xe858")
("album" . "\xe019")
("all_inclusive" . "\xeb3d")
("all_out" . "\xe90b")
("android" . "\xe859")
("announcement" . "\xe85a")
("apps" . "\xe5c3")
("archive" . "\xe149")
("arrow_back" . "\xe5c4")
("arrow_downward" . "\xe5db")
("arrow_drop_down" . "\xe5c5")
("arrow_drop_down_circle" . "\xe5c6")
("arrow_drop_up" . "\xe5c7")
("arrow_forward" . "\xe5c8")
("arrow_upward" . "\xe5d8")
("art_track" . "\xe060")
("aspect_ratio" . "\xe85b")
("assessment" . "\xe85c")
("assignment" . "\xe85d")
("assignment_ind" . "\xe85e")
("assignment_late" . "\xe85f")
("assignment_return" . "\xe860")
("assignment_returned" . "\xe861")
("assignment_turned_in" . "\xe862")
("assistant" . "\xe39f")
("assistant_photo" . "\xe3a0")
("attach_file" . "\xe226")
("attach_money" . "\xe227")
("attachment" . "\xe2bc")
("audiotrack" . "\xe3a1")
("autorenew" . "\xe863")
("av_timer" . "\xe01b")
("backspace" . "\xe14a")
("backup" . "\xe864")
("battery_alert" . "\xe19c")
("battery_charging_full" . "\xe1a3")
("battery_full" . "\xe1a4")
("battery_std" . "\xe1a5")
("battery_unknown" . "\xe1a6")
("beach_access" . "\xeb3e")
("beenhere" . "\xe52d")
("block" . "\xe14b")
("bluetooth" . "\xe1a7")
("bluetooth_audio" . "\xe60f")
("bluetooth_connected" . "\xe1a8")
("bluetooth_disabled" . "\xe1a9")
("bluetooth_searching" . "\xe1aa")
("blur_circular" . "\xe3a2")
("blur_linear" . "\xe3a3")
("blur_off" . "\xe3a4")
("blur_on" . "\xe3a5")
("book" . "\xe865")
("bookmark" . "\xe866")
("bookmark_border" . "\xe867")
("border_all" . "\xe228")
("border_bottom" . "\xe229")
("border_clear" . "\xe22a")
("border_color" . "\xe22b")
("border_horizontal" . "\xe22c")
("border_inner" . "\xe22d")
("border_left" . "\xe22e")
("border_outer" . "\xe22f")
("border_right" . "\xe230")
("border_style" . "\xe231")
("border_top" . "\xe232")
("border_vertical" . "\xe233")
("branding_watermark" . "\xe06b")
("brightness_1" . "\xe3a6")
("brightness_2" . "\xe3a7")
("brightness_3" . "\xe3a8")
("brightness_4" . "\xe3a9")
("brightness_5" . "\xe3aa")
("brightness_6" . "\xe3ab")
("brightness_7" . "\xe3ac")
("brightness_auto" . "\xe1ab")
("brightness_high" . "\xe1ac")
("brightness_low" . "\xe1ad")
("brightness_medium" . "\xe1ae")
("broken_image" . "\xe3ad")
("brush" . "\xe3ae")
("bubble_chart" . "\xe6dd")
("bug_report" . "\xe868")
("build" . "\xe869")
("burst_mode" . "\xe43c")
("business" . "\xe0af")
("business_center" . "\xeb3f")
("cached" . "\xe86a")
("cake" . "\xe7e9")
("call" . "\xe0b0")
("call_end" . "\xe0b1")
("call_made" . "\xe0b2")
("call_merge" . "\xe0b3")
("call_missed" . "\xe0b4")
("call_missed_outgoing" . "\xe0e4")
("call_received" . "\xe0b5")
("call_split" . "\xe0b6")
("call_to_action" . "\xe06c")
("camera" . "\xe3af")
("camera_alt" . "\xe3b0")
("camera_enhance" . "\xe8fc")
("camera_front" . "\xe3b1")
("camera_rear" . "\xe3b2")
("camera_roll" . "\xe3b3")
("cancel" . "\xe5c9")
("card_giftcard" . "\xe8f6")
("card_membership" . "\xe8f7")
("card_travel" . "\xe8f8")
("casino" . "\xeb40")
("cast" . "\xe307")
("cast_connected" . "\xe308")
("center_focus_strong" . "\xe3b4")
("center_focus_weak" . "\xe3b5")
("change_history" . "\xe86b")
("chat" . "\xe0b7")
("chat_bubble" . "\xe0ca")
("chat_bubble_outline" . "\xe0cb")
("check" . "\xe5ca")
("check_box" . "\xe834")
("check_box_outline_blank" . "\xe835")
("check_circle" . "\xe86c")
("chevron_left" . "\xe5cb")
("chevron_right" . "\xe5cc")
("child_care" . "\xeb41")
("child_friendly" . "\xeb42")
("chrome_reader_mode" . "\xe86d")
("class" . "\xe86e")
("clear" . "\xe14c")
("clear_all" . "\xe0b8")
("close" . "\xe5cd")
("closed_caption" . "\xe01c")
("cloud" . "\xe2bd")
("cloud_circle" . "\xe2be")
("cloud_done" . "\xe2bf")
("cloud_download" . "\xe2c0")
("cloud_off" . "\xe2c1")
("cloud_queue" . "\xe2c2")
("cloud_upload" . "\xe2c3")
("code" . "\xe86f")
("collections" . "\xe3b6")
("collections_bookmark" . "\xe431")
("color_lens" . "\xe3b7")
("colorize" . "\xe3b8")
("comment" . "\xe0b9")
("compare" . "\xe3b9")
("compare_arrows" . "\xe915")
("computer" . "\xe30a")
("confirmation_number" . "\xe638")
("contact_mail" . "\xe0d0")
("contact_phone" . "\xe0cf")
("contacts" . "\xe0ba")
("content_copy" . "\xe14d")
("content_cut" . "\xe14e")
("content_paste" . "\xe14f")
("control_point" . "\xe3ba")
("control_point_duplicate" . "\xe3bb")
("copyright" . "\xe90c")
("create" . "\xe150")
("create_new_folder" . "\xe2cc")
("credit_card" . "\xe870")
("crop" . "\xe3be")
("crop_16_9" . "\xe3bc")
("crop_3_2" . "\xe3bd")
("crop_5_4" . "\xe3bf")
("crop_7_5" . "\xe3c0")
("crop_din" . "\xe3c1")
("crop_free" . "\xe3c2")
("crop_landscape" . "\xe3c3")
("crop_original" . "\xe3c4")
("crop_portrait" . "\xe3c5")
("crop_rotate" . "\xe437")
("crop_square" . "\xe3c6")
("dashboard" . "\xe871")
("data_usage" . "\xe1af")
("date_range" . "\xe916")
("dehaze" . "\xe3c7")
("delete" . "\xe872")
("delete_forever" . "\xe92b")
("delete_sweep" . "\xe16c")
("description" . "\xe873")
("desktop_mac" . "\xe30b")
("desktop_windows" . "\xe30c")
("details" . "\xe3c8")
("developer_board" . "\xe30d")
("developer_mode" . "\xe1b0")
("device_hub" . "\xe335")
("devices" . "\xe1b1")
("devices_other" . "\xe337")
("dialer_sip" . "\xe0bb")
("dialpad" . "\xe0bc")
("directions" . "\xe52e")
("directions_bike" . "\xe52f")
("directions_boat" . "\xe532")
("directions_bus" . "\xe530")
("directions_car" . "\xe531")
("directions_railway" . "\xe534")
("directions_run" . "\xe566")
("directions_subway" . "\xe533")
("directions_transit" . "\xe535")
("directions_walk" . "\xe536")
("disc_full" . "\xe610")
("dns" . "\xe875")
("do_not_disturb" . "\xe612")
("do_not_disturb_alt" . "\xe611")
("do_not_disturb_off" . "\xe643")
("do_not_disturb_on" . "\xe644")
("dock" . "\xe30e")
("domain" . "\xe7ee")
("done" . "\xe876")
("done_all" . "\xe877")
("donut_large" . "\xe917")
("donut_small" . "\xe918")
("drafts" . "\xe151")
("drag_handle" . "\xe25d")
("drive_eta" . "\xe613")
("dvr" . "\xe1b2")
("edit" . "\xe3c9")
("edit_location" . "\xe568")
("eject" . "\xe8fb")
("email" . "\xe0be")
("enhanced_encryption" . "\xe63f")
("equalizer" . "\xe01d")
("error" . "\xe000")
("error_outline" . "\xe001")
("euro_symbol" . "\xe926")
("ev_station" . "\xe56d")
("event" . "\xe878")
("event_available" . "\xe614")
("event_busy" . "\xe615")
("event_note" . "\xe616")
("event_seat" . "\xe903")
("exit_to_app" . "\xe879")
("expand_less" . "\xe5ce")
("expand_more" . "\xe5cf")
("explicit" . "\xe01e")
("explore" . "\xe87a")
("exposure" . "\xe3ca")
("exposure_neg_1" . "\xe3cb")
("exposure_neg_2" . "\xe3cc")
("exposure_plus_1" . "\xe3cd")
("exposure_plus_2" . "\xe3ce")
("exposure_zero" . "\xe3cf")
("extension" . "\xe87b")
("face" . "\xe87c")
("fast_forward" . "\xe01f")
("fast_rewind" . "\xe020")
("favorite" . "\xe87d")
("favorite_border" . "\xe87e")
("featured_play_list" . "\xe06d")
("featured_video" . "\xe06e")
("feedback" . "\xe87f")
("fiber_dvr" . "\xe05d")
("fiber_manual_record" . "\xe061")
("fiber_new" . "\xe05e")
("fiber_pin" . "\xe06a")
("fiber_smart_record" . "\xe062")
("file_download" . "\xe2c4")
("file_upload" . "\xe2c6")
("filter" . "\xe3d3")
("filter_1" . "\xe3d0")
("filter_2" . "\xe3d1")
("filter_3" . "\xe3d2")
("filter_4" . "\xe3d4")
("filter_5" . "\xe3d5")
("filter_6" . "\xe3d6")
("filter_7" . "\xe3d7")
("filter_8" . "\xe3d8")
("filter_9" . "\xe3d9")
("filter_9_plus" . "\xe3da")
("filter_b_and_w" . "\xe3db")
("filter_center_focus" . "\xe3dc")
("filter_drama" . "\xe3dd")
("filter_frames" . "\xe3de")
("filter_hdr" . "\xe3df")
("filter_list" . "\xe152")
("filter_none" . "\xe3e0")
("filter_tilt_shift" . "\xe3e2")
("filter_vintage" . "\xe3e3")
("find_in_page" . "\xe880")
("find_replace" . "\xe881")
("fingerprint" . "\xe90d")
("first_page" . "\xe5dc")
("fitness_center" . "\xeb43")
("flag" . "\xe153")
("flare" . "\xe3e4")
("flash_auto" . "\xe3e5")
("flash_off" . "\xe3e6")
("flash_on" . "\xe3e7")
("flight" . "\xe539")
("flight_land" . "\xe904")
("flight_takeoff" . "\xe905")
("flip" . "\xe3e8")
("flip_to_back" . "\xe882")
("flip_to_front" . "\xe883")
("folder" . "\xe2c7")
("folder_open" . "\xe2c8")
("folder_shared" . "\xe2c9")
("folder_special" . "\xe617")
("font_download" . "\xe167")
("format_align_center" . "\xe234")
("format_align_justify" . "\xe235")
("format_align_left" . "\xe236")
("format_align_right" . "\xe237")
("format_bold" . "\xe238")
("format_clear" . "\xe239")
("format_color_fill" . "\xe23a")
("format_color_reset" . "\xe23b")
("format_color_text" . "\xe23c")
("format_indent_decrease" . "\xe23d")
("format_indent_increase" . "\xe23e")
("format_italic" . "\xe23f")
("format_line_spacing" . "\xe240")
("format_list_bulleted" . "\xe241")
("format_list_numbered" . "\xe242")
("format_paint" . "\xe243")
("format_quote" . "\xe244")
("format_shapes" . "\xe25e")
("format_size" . "\xe245")
("format_strikethrough" . "\xe246")
("format_textdirection_l_to_r" . "\xe247")
("format_textdirection_r_to_l" . "\xe248")
("format_underlined" . "\xe249")
("forum" . "\xe0bf")
("forward" . "\xe154")
("forward_10" . "\xe056")
("forward_30" . "\xe057")
("forward_5" . "\xe058")
("free_breakfast" . "\xeb44")
("fullscreen" . "\xe5d0")
("fullscreen_exit" . "\xe5d1")
("functions" . "\xe24a")
("g_translate" . "\xe927")
("gamepad" . "\xe30f")
("games" . "\xe021")
("gavel" . "\xe90e")
("gesture" . "\xe155")
("get_app" . "\xe884")
("gif" . "\xe908")
("golf_course" . "\xeb45")
("gps_fixed" . "\xe1b3")
("gps_not_fixed" . "\xe1b4")
("gps_off" . "\xe1b5")
("grade" . "\xe885")
("gradient" . "\xe3e9")
("grain" . "\xe3ea")
("graphic_eq" . "\xe1b8")
("grid_off" . "\xe3eb")
("grid_on" . "\xe3ec")
("group" . "\xe7ef")
("group_add" . "\xe7f0")
("group_work" . "\xe886")
("hd" . "\xe052")
("hdr_off" . "\xe3ed")
("hdr_on" . "\xe3ee")
("hdr_strong" . "\xe3f1")
("hdr_weak" . "\xe3f2")
("headset" . "\xe310")
("headset_mic" . "\xe311")
("healing" . "\xe3f3")
("hearing" . "\xe023")
("help" . "\xe887")
("help_outline" . "\xe8fd")
("high_quality" . "\xe024")
("highlight" . "\xe25f")
("highlight_off" . "\xe888")
("history" . "\xe889")
("home" . "\xe88a")
("hot_tub" . "\xeb46")
("hotel" . "\xe53a")
("hourglass_empty" . "\xe88b")
("hourglass_full" . "\xe88c")
("http" . "\xe902")
("https" . "\xe88d")
("image" . "\xe3f4")
("image_aspect_ratio" . "\xe3f5")
("import_contacts" . "\xe0e0")
("import_export" . "\xe0c3")
("important_devices" . "\xe912")
("inbox" . "\xe156")
("indeterminate_check_box" . "\xe909")
("info" . "\xe88e")
("info_outline" . "\xe88f")
("input" . "\xe890")
("insert_chart" . "\xe24b")
("insert_comment" . "\xe24c")
("insert_drive_file" . "\xe24d")
("insert_emoticon" . "\xe24e")
("insert_invitation" . "\xe24f")
("insert_link" . "\xe250")
("insert_photo" . "\xe251")
("invert_colors" . "\xe891")
("invert_colors_off" . "\xe0c4")
("iso" . "\xe3f6")
("keyboard" . "\xe312")
("keyboard_arrow_down" . "\xe313")
("keyboard_arrow_left" . "\xe314")
("keyboard_arrow_right" . "\xe315")
("keyboard_arrow_up" . "\xe316")
("keyboard_backspace" . "\xe317")
("keyboard_capslock" . "\xe318")
("keyboard_hide" . "\xe31a")
("keyboard_return" . "\xe31b")
("keyboard_tab" . "\xe31c")
("keyboard_voice" . "\xe31d")
("kitchen" . "\xeb47")
("label" . "\xe892")
("label_outline" . "\xe893")
("landscape" . "\xe3f7")
("language" . "\xe894")
("laptop" . "\xe31e")
("laptop_chromebook" . "\xe31f")
("laptop_mac" . "\xe320")
("laptop_windows" . "\xe321")
("last_page" . "\xe5dd")
("launch" . "\xe895")
("layers" . "\xe53b")
("layers_clear" . "\xe53c")
("leak_add" . "\xe3f8")
("leak_remove" . "\xe3f9")
("lens" . "\xe3fa")
("library_add" . "\xe02e")
("library_books" . "\xe02f")
("library_music" . "\xe030")
("lightbulb_outline" . "\xe90f")
("line_style" . "\xe919")
("line_weight" . "\xe91a")
("linear_scale" . "\xe260")
("link" . "\xe157")
("linked_camera" . "\xe438")
("list" . "\xe896")
("live_help" . "\xe0c6")
("live_tv" . "\xe639")
("local_activity" . "\xe53f")
("local_airport" . "\xe53d")
("local_atm" . "\xe53e")
("local_bar" . "\xe540")
("local_cafe" . "\xe541")
("local_car_wash" . "\xe542")
("local_convenience_store" . "\xe543")
("local_dining" . "\xe556")
("local_drink" . "\xe544")
("local_florist" . "\xe545")
("local_gas_station" . "\xe546")
("local_grocery_store" . "\xe547")
("local_hospital" . "\xe548")
("local_hotel" . "\xe549")
("local_laundry_service" . "\xe54a")
("local_library" . "\xe54b")
("local_mall" . "\xe54c")
("local_movies" . "\xe54d")
("local_offer" . "\xe54e")
("local_parking" . "\xe54f")
("local_pharmacy" . "\xe550")
("local_phone" . "\xe551")
("local_pizza" . "\xe552")
("local_play" . "\xe553")
("local_post_office" . "\xe554")
("local_printshop" . "\xe555")
("local_see" . "\xe557")
("local_shipping" . "\xe558")
("local_taxi" . "\xe559")
("location_city" . "\xe7f1")
("location_disabled" . "\xe1b6")
("location_off" . "\xe0c7")
("location_on" . "\xe0c8")
("location_searching" . "\xe1b7")
("lock" . "\xe897")
("lock_open" . "\xe898")
("lock_outline" . "\xe899")
("looks" . "\xe3fc")
("looks_3" . "\xe3fb")
("looks_4" . "\xe3fd")
("looks_5" . "\xe3fe")
("looks_6" . "\xe3ff")
("looks_one" . "\xe400")
("looks_two" . "\xe401")
("loop" . "\xe028")
("loupe" . "\xe402")
("low_priority" . "\xe16d")
("loyalty" . "\xe89a")
("mail" . "\xe158")
("mail_outline" . "\xe0e1")
("map" . "\xe55b")
("markunread" . "\xe159")
("markunread_mailbox" . "\xe89b")
("memory" . "\xe322")
("menu" . "\xe5d2")
("merge_type" . "\xe252")
("message" . "\xe0c9")
("mic" . "\xe029")
("mic_none" . "\xe02a")
("mic_off" . "\xe02b")
("mms" . "\xe618")
("mode_comment" . "\xe253")
("mode_edit" . "\xe254")
("monetization_on" . "\xe263")
("money_off" . "\xe25c")
("monochrome_photos" . "\xe403")
("mood" . "\xe7f2")
("mood_bad" . "\xe7f3")
("more" . "\xe619")
("more_horiz" . "\xe5d3")
("more_vert" . "\xe5d4")
("motorcycle" . "\xe91b")
("mouse" . "\xe323")
("move_to_inbox" . "\xe168")
("movie" . "\xe02c")
("movie_creation" . "\xe404")
("movie_filter" . "\xe43a")
("multiline_chart" . "\xe6df")
("music_note" . "\xe405")
("music_video" . "\xe063")
("my_location" . "\xe55c")
("nature" . "\xe406")
("nature_people" . "\xe407")
("navigate_before" . "\xe408")
("navigate_next" . "\xe409")
("navigation" . "\xe55d")
("near_me" . "\xe569")
("network_cell" . "\xe1b9")
("network_check" . "\xe640")
("network_locked" . "\xe61a")
("network_wifi" . "\xe1ba")
("new_releases" . "\xe031")
("next_week" . "\xe16a")
("nfc" . "\xe1bb")
("no_encryption" . "\xe641")
("no_sim" . "\xe0cc")
("not_interested" . "\xe033")
("note" . "\xe06f")
("note_add" . "\xe89c")
("notifications" . "\xe7f4")
("notifications_active" . "\xe7f7")
("notifications_none" . "\xe7f5")
("notifications_off" . "\xe7f6")
("notifications_paused" . "\xe7f8")
("offline_pin" . "\xe90a")
("ondemand_video" . "\xe63a")
("opacity" . "\xe91c")
("open_in_browser" . "\xe89d")
("open_in_new" . "\xe89e")
("open_with" . "\xe89f")
("pages" . "\xe7f9")
("pageview" . "\xe8a0")
("palette" . "\xe40a")
("pan_tool" . "\xe925")
("panorama" . "\xe40b")
("panorama_fish_eye" . "\xe40c")
("panorama_horizontal" . "\xe40d")
("panorama_vertical" . "\xe40e")
("panorama_wide_angle" . "\xe40f")
("party_mode" . "\xe7fa")
("pause" . "\xe034")
("pause_circle_filled" . "\xe035")
("pause_circle_outline" . "\xe036")
("payment" . "\xe8a1")
("people" . "\xe7fb")
("people_outline" . "\xe7fc")
("perm_camera_mic" . "\xe8a2")
("perm_contact_calendar" . "\xe8a3")
("perm_data_setting" . "\xe8a4")
("perm_device_information" . "\xe8a5")
("perm_identity" . "\xe8a6")
("perm_media" . "\xe8a7")
("perm_phone_msg" . "\xe8a8")
("perm_scan_wifi" . "\xe8a9")
("person" . "\xe7fd")
("person_add" . "\xe7fe")
("person_outline" . "\xe7ff")
("person_pin" . "\xe55a")
("person_pin_circle" . "\xe56a")
("personal_video" . "\xe63b")
("pets" . "\xe91d")
("phone" . "\xe0cd")
("phone_android" . "\xe324")
("phone_bluetooth_speaker" . "\xe61b")
("phone_forwarded" . "\xe61c")
("phone_in_talk" . "\xe61d")
("phone_iphone" . "\xe325")
("phone_locked" . "\xe61e")
("phone_missed" . "\xe61f")
("phone_paused" . "\xe620")
("phonelink" . "\xe326")
("phonelink_erase" . "\xe0db")
("phonelink_lock" . "\xe0dc")
("phonelink_off" . "\xe327")
("phonelink_ring" . "\xe0dd")
("phonelink_setup" . "\xe0de")
("photo" . "\xe410")
("photo_album" . "\xe411")
("photo_camera" . "\xe412")
("photo_filter" . "\xe43b")
("photo_library" . "\xe413")
("photo_size_select_actual" . "\xe432")
("photo_size_select_large" . "\xe433")
("photo_size_select_small" . "\xe434")
("picture_as_pdf" . "\xe415")
("picture_in_picture" . "\xe8aa")
("picture_in_picture_alt" . "\xe911")
("pie_chart" . "\xe6c4")
("pie_chart_outlined" . "\xe6c5")
("pin_drop" . "\xe55e")
("place" . "\xe55f")
("play_arrow" . "\xe037")
("play_circle_filled" . "\xe038")
("play_circle_outline" . "\xe039")
("play_for_work" . "\xe906")
("playlist_add" . "\xe03b")
("playlist_add_check" . "\xe065")
("playlist_play" . "\xe05f")
("plus_one" . "\xe800")
("poll" . "\xe801")
("polymer" . "\xe8ab")
("pool" . "\xeb48")
("portable_wifi_off" . "\xe0ce")
("portrait" . "\xe416")
("power" . "\xe63c")
("power_input" . "\xe336")
("power_settings_new" . "\xe8ac")
("pregnant_woman" . "\xe91e")
("present_to_all" . "\xe0df")
("print" . "\xe8ad")
("priority_high" . "\xe645")
("public" . "\xe80b")
("publish" . "\xe255")
("query_builder" . "\xe8ae")
("question_answer" . "\xe8af")
("queue" . "\xe03c")
("queue_music" . "\xe03d")
("queue_play_next" . "\xe066")
("radio" . "\xe03e")
("radio_button_checked" . "\xe837")
("radio_button_unchecked" . "\xe836")
("rate_review" . "\xe560")
("receipt" . "\xe8b0")
("recent_actors" . "\xe03f")
("record_voice_over" . "\xe91f")
("redeem" . "\xe8b1")
("redo" . "\xe15a")
("refresh" . "\xe5d5")
("remove" . "\xe15b")
("remove_circle" . "\xe15c")
("remove_circle_outline" . "\xe15d")
("remove_from_queue" . "\xe067")
("remove_red_eye" . "\xe417")
("remove_shopping_cart" . "\xe928")
("reorder" . "\xe8fe")
("repeat" . "\xe040")
("repeat_one" . "\xe041")
("replay" . "\xe042")
("replay_10" . "\xe059")
("replay_30" . "\xe05a")
("replay_5" . "\xe05b")
("reply" . "\xe15e")
("reply_all" . "\xe15f")
("report" . "\xe160")
("report_problem" . "\xe8b2")
("restaurant" . "\xe56c")
("restaurant_menu" . "\xe561")
("restore" . "\xe8b3")
("restore_page" . "\xe929")
("ring_volume" . "\xe0d1")
("room" . "\xe8b4")
("room_service" . "\xeb49")
("rotate_90_degrees_ccw" . "\xe418")
("rotate_left" . "\xe419")
("rotate_right" . "\xe41a")
("rounded_corner" . "\xe920")
("router" . "\xe328")
("rowing" . "\xe921")
("rss_feed" . "\xe0e5")
("rv_hookup" . "\xe642")
("satellite" . "\xe562")
("save" . "\xe161")
("scanner" . "\xe329")
("schedule" . "\xe8b5")
("school" . "\xe80c")
("screen_lock_landscape" . "\xe1be")
("screen_lock_portrait" . "\xe1bf")
("screen_lock_rotation" . "\xe1c0")
("screen_rotation" . "\xe1c1")
("screen_share" . "\xe0e2")
("sd_card" . "\xe623")
("sd_storage" . "\xe1c2")
("search" . "\xe8b6")
("security" . "\xe32a")
("select_all" . "\xe162")
("send" . "\xe163")
("sentiment_dissatisfied" . "\xe811")
("sentiment_neutral" . "\xe812")
("sentiment_satisfied" . "\xe813")
("sentiment_very_dissatisfied" . "\xe814")
("sentiment_very_satisfied" . "\xe815")
("settings" . "\xe8b8")
("settings_applications" . "\xe8b9")
("settings_backup_restore" . "\xe8ba")
("settings_bluetooth" . "\xe8bb")
("settings_brightness" . "\xe8bd")
("settings_cell" . "\xe8bc")
("settings_ethernet" . "\xe8be")
("settings_input_antenna" . "\xe8bf")
("settings_input_component" . "\xe8c0")
("settings_input_composite" . "\xe8c1")
("settings_input_hdmi" . "\xe8c2")
("settings_input_svideo" . "\xe8c3")
("settings_overscan" . "\xe8c4")
("settings_phone" . "\xe8c5")
("settings_power" . "\xe8c6")
("settings_remote" . "\xe8c7")
("settings_system_daydream" . "\xe1c3")
("settings_voice" . "\xe8c8")
("share" . "\xe80d")
("shop" . "\xe8c9")
("shop_two" . "\xe8ca")
("shopping_basket" . "\xe8cb")
("shopping_cart" . "\xe8cc")
("short_text" . "\xe261")
("show_chart" . "\xe6e1")
("shuffle" . "\xe043")
("signal_cellular_4_bar" . "\xe1c8")
("signal_cellular_connected_no_internet_4_bar" . "\xe1cd")
("signal_cellular_no_sim" . "\xe1ce")
("signal_cellular_null" . "\xe1cf")
("signal_cellular_off" . "\xe1d0")
("signal_wifi_4_bar" . "\xe1d8")
("signal_wifi_4_bar_lock" . "\xe1d9")
("signal_wifi_off" . "\xe1da")
("sim_card" . "\xe32b")
("sim_card_alert" . "\xe624")
("skip_next" . "\xe044")
("skip_previous" . "\xe045")
("slideshow" . "\xe41b")
("slow_motion_video" . "\xe068")
("smartphone" . "\xe32c")
("smoke_free" . "\xeb4a")
("smoking_rooms" . "\xeb4b")
("sms" . "\xe625")
("sms_failed" . "\xe626")
("snooze" . "\xe046")
("sort" . "\xe164")
("sort_by_alpha" . "\xe053")
("spa" . "\xeb4c")
("space_bar" . "\xe256")
("speaker" . "\xe32d")
("speaker_group" . "\xe32e")
("speaker_notes" . "\xe8cd")
("speaker_notes_off" . "\xe92a")
("speaker_phone" . "\xe0d2")
("spellcheck" . "\xe8ce")
("star" . "\xe838")
("star_border" . "\xe83a")
("star_half" . "\xe839")
("stars" . "\xe8d0")
("stay_current_landscape" . "\xe0d3")
("stay_current_portrait" . "\xe0d4")
("stay_primary_landscape" . "\xe0d5")
("stay_primary_portrait" . "\xe0d6")
("stop" . "\xe047")
("stop_screen_share" . "\xe0e3")
("storage" . "\xe1db")
("store" . "\xe8d1")
("store_mall_directory" . "\xe563")
("straighten" . "\xe41c")
("streetview" . "\xe56e")
("strikethrough_s" . "\xe257")
("style" . "\xe41d")
("subdirectory_arrow_left" . "\xe5d9")
("subdirectory_arrow_right" . "\xe5da")
("subject" . "\xe8d2")
("subscriptions" . "\xe064")
("subtitles" . "\xe048")
("subway" . "\xe56f")
("supervisor_account" . "\xe8d3")
("surround_sound" . "\xe049")
("swap_calls" . "\xe0d7")
("swap_horiz" . "\xe8d4")
("swap_vert" . "\xe8d5")
("swap_vertical_circle" . "\xe8d6")
("switch_camera" . "\xe41e")
("switch_video" . "\xe41f")
("sync" . "\xe627")
("sync_disabled" . "\xe628")
("sync_problem" . "\xe629")
("system_update" . "\xe62a")
("system_update_alt" . "\xe8d7")
("tab" . "\xe8d8")
("tab_unselected" . "\xe8d9")
("tablet" . "\xe32f")
("tablet_android" . "\xe330")
("tablet_mac" . "\xe331")
("tag_faces" . "\xe420")
("tap_and_play" . "\xe62b")
("terrain" . "\xe564")
("text_fields" . "\xe262")
("text_format" . "\xe165")
("textsms" . "\xe0d8")
("texture" . "\xe421")
("theaters" . "\xe8da")
("thumb_down" . "\xe8db")
("thumb_up" . "\xe8dc")
("thumbs_up_down" . "\xe8dd")
("time_to_leave" . "\xe62c")
("timelapse" . "\xe422")
("timeline" . "\xe922")
("timer" . "\xe425")
("timer_10" . "\xe423")
("timer_3" . "\xe424")
("timer_off" . "\xe426")
("title" . "\xe264")
("toc" . "\xe8de")
("today" . "\xe8df")
("toll" . "\xe8e0")
("tonality" . "\xe427")
("touch_app" . "\xe913")
("toys" . "\xe332")
("track_changes" . "\xe8e1")
("traffic" . "\xe565")
("train" . "\xe570")
("tram" . "\xe571")
("transfer_within_a_station" . "\xe572")
("transform" . "\xe428")
("translate" . "\xe8e2")
("trending_down" . "\xe8e3")
("trending_flat" . "\xe8e4")
("trending_up" . "\xe8e5")
("tune" . "\xe429")
("turned_in" . "\xe8e6")
("turned_in_not" . "\xe8e7")
("tv" . "\xe333")
("unarchive" . "\xe169")
("undo" . "\xe166")
("unfold_less" . "\xe5d6")
("unfold_more" . "\xe5d7")
("update" . "\xe923")
("usb" . "\xe1e0")
("verified_user" . "\xe8e8")
("vertical_align_bottom" . "\xe258")
("vertical_align_center" . "\xe259")
("vertical_align_top" . "\xe25a")
("vibration" . "\xe62d")
("video_call" . "\xe070")
("video_label" . "\xe071")
("video_library" . "\xe04a")
("videocam" . "\xe04b")
("videocam_off" . "\xe04c")
("videogame_asset" . "\xe338")
("view_agenda" . "\xe8e9")
("view_array" . "\xe8ea")
("view_carousel" . "\xe8eb")
("view_column" . "\xe8ec")
("view_comfy" . "\xe42a")
("view_compact" . "\xe42b")
("view_day" . "\xe8ed")
("view_headline" . "\xe8ee")
("view_list" . "\xe8ef")
("view_module" . "\xe8f0")
("view_quilt" . "\xe8f1")
("view_stream" . "\xe8f2")
("view_week" . "\xe8f3")
("vignette" . "\xe435")
("visibility" . "\xe8f4")
("visibility_off" . "\xe8f5")
("voice_chat" . "\xe62e")
("voicemail" . "\xe0d9")
("volume_down" . "\xe04d")
("volume_mute" . "\xe04e")
("volume_off" . "\xe04f")
("volume_up" . "\xe050")
("vpn_key" . "\xe0da")
("vpn_lock" . "\xe62f")
("wallpaper" . "\xe1bc")
("warning" . "\xe002")
("watch" . "\xe334")
("watch_later" . "\xe924")
("wb_auto" . "\xe42c")
("wb_cloudy" . "\xe42d")
("wb_incandescent" . "\xe42e")
("wb_iridescent" . "\xe436")
("wb_sunny" . "\xe430")
("wc" . "\xe63d")
("web" . "\xe051")
("web_asset" . "\xe069")
("weekend" . "\xe16b")
("whatshot" . "\xe80e")
("widgets" . "\xe1bd")
("wifi" . "\xe63e")
("wifi_lock" . "\xe1e1")
("wifi_tethering" . "\xe1e2")
("work" . "\xe8f9")
("wrap_text" . "\xe25b")
("youtube_searched_for" . "\xe8fa")
("zoom_in" . "\xe8ff")
("zoom_out" . "\xe900")
("zoom_out_map" . "\xe56b")))
(provide 'data-material)

View File

@ -0,0 +1,165 @@
(defvar all-the-icons-data/octicons-alist
'(
("alert" . "\xf02d")
("arrow-down" . "\xf03f")
("arrow-left" . "\xf040")
("arrow-right" . "\xf03e")
("arrow-small-down" . "\xf0a0")
("arrow-small-left" . "\xf0a1")
("arrow-small-right" . "\xf071")
("arrow-small-up" . "\xf09f")
("arrow-up" . "\xf03d")
("book" . "\xf007")
("bookmark" . "\xf07b")
("briefcase" . "\xf0d3")
("broadcast" . "\xf048")
("browser" . "\xf0c5")
("bug" . "\xf091")
("calendar" . "\xf068")
("check" . "\xf03a")
("checklist" . "\xf076")
("chevron-down" . "\xf0a3")
("chevron-left" . "\xf0a4")
("chevron-right" . "\xf078")
("chevron-up" . "\xf0a2")
("circle-slash" . "\xf084")
("circuit-board" . "\xf0d6")
("clippy" . "\xf035")
("clock" . "\xf046")
("cloud-download" . "\xf00b")
("cloud-upload" . "\xf00c")
("code" . "\xf05f")
("comment" . "\xf02b")
("comment-discussion" . "\xf04f")
("credit-card" . "\xf045")
("dash" . "\xf0ca")
("dashboard" . "\xf07d")
("database" . "\xf096")
("device-camera" . "\xf056")
("device-camera-video" . "\xf057")
("device-desktop" . "\xf27c")
("device-mobile" . "\xf038")
("diff" . "\xf04d")
("diff-added" . "\xf06b")
("diff-ignored" . "\xf099")
("diff-modified" . "\xf06d")
("diff-removed" . "\xf06c")
("diff-renamed" . "\xf06e")
("ellipsis" . "\xf09a")
("eye" . "\xf04e")
("file-binary" . "\xf094")
("file-code" . "\xf010")
("file-directory" . "\xf016")
("file-media" . "\xf012")
("file-pdf" . "\xf014")
("file-submodule" . "\xf017")
("file-symlink-directory" . "\xf0b1")
("file-symlink-file" . "\xf0b0")
("file-text" . "\xf011")
("file-zip" . "\xf013")
("flame" . "\xf0d2")
("fold" . "\xf0cc")
("gear" . "\xf02f")
("gift" . "\xf042")
("gist" . "\xf00e")
("gist-secret" . "\xf08c")
("git-branch" . "\xf020")
("git-commit" . "\xf01f")
("git-compare" . "\xf0ac")
("git-merge" . "\xf023")
("git-pull-request" . "\xf009")
("globe" . "\xf0b6")
("graph" . "\xf043")
("beaker" . "\xf0dd")
("heart" . "\x2665")
("history" . "\xf07e")
("home" . "\xf08d")
("horizontal-rule" . "\xf070")
("hourglass" . "\xf09e")
("hubot" . "\xf09d")
("inbox" . "\xf0cf")
("info" . "\xf059")
("issue-closed" . "\xf028")
("issue-opened" . "\xf026")
("issue-reopened" . "\xf027")
("jersey" . "\xf019")
("key" . "\xf049")
("keyboard" . "\xf00d")
("law" . "\xf0d8")
("light-bulb" . "\xf000")
("link" . "\xf05c")
("link-external" . "\xf07f")
("list-ordered" . "\xf062")
("list-unordered" . "\xf061")
("location" . "\xf060")
("lock" . "\xf06a")
("logo-github" . "\xf092")
("mail" . "\xf03b")
("mail-read" . "\xf03c")
("mail-reply" . "\xf051")
("mark-github" . "\xf00a")
("markdown" . "\xf0c9")
("megaphone" . "\xf077")
("mention" . "\xf0be")
("milestone" . "\xf075")
("mirror" . "\xf024")
("mortar-board" . "\xf0d7")
("mute" . "\xf080")
("no-newline" . "\xf09c")
("octoface" . "\xf008")
("organization" . "\xf037")
("package" . "\xf0c4")
("paintcan" . "\xf0d1")
("pencil" . "\xf058")
("person" . "\xf018")
("pin" . "\xf041")
("plug" . "\xf0d4")
("plus" . "\xf05d")
("primitive-dot" . "\xf052")
("primitive-square" . "\xf053")
("pulse" . "\xf085")
("puzzle" . "\xf0c0")
("question" . "\xf02c")
("quote" . "\xf063")
("radio-tower" . "\xf030")
("repo" . "\xf001")
("repo-clone" . "\xf04c")
("repo-force-push" . "\xf04a")
("repo-forked" . "\xf002")
("repo-pull" . "\xf006")
("repo-push" . "\xf005")
("rocket" . "\xf033")
("rss" . "\xf034")
("ruby" . "\xf047")
("search" . "\xf02e")
("server" . "\xf097")
("settings" . "\xf07c")
("sign-in" . "\xf036")
("sign-out" . "\xf032")
("squirrel" . "\xf0b2")
("star" . "\xf02a")
("steps" . "\xf0c7")
("stop" . "\xf08f")
("sync" . "\xf087")
("tag" . "\xf015")
("telescope" . "\xf088")
("terminal" . "\xf0c8")
("three-bars" . "\xf05e")
("thumbsdown" . "\xf0db")
("thumbsup" . "\xf0da")
("tools" . "\xf031")
("trashcan" . "\xf0d0")
("triangle-down" . "\xf05b")
("triangle-left" . "\xf044")
("triangle-right" . "\xf05a")
("triangle-up" . "\xf0aa")
("unfold" . "\xf039")
("unmute" . "\xf0ba")
("versions" . "\xf064")
("x" . "\xf081")
("zap" . "\x26A1")
))
(provide 'data-octicons)

View File

@ -0,0 +1,594 @@
(defvar all-the-icons-data/weather-icons-alist
'(
("alien" . "\xf075")
("barometer" . "\xf079")
("celsius" . "\xf03c")
("cloud" . "\xf041")
("cloud-down" . "\xf03d")
("cloud-refresh" . "\xf03e")
("cloud-up" . "\xf040")
("cloudy" . "\xf013")
("cloudy-gusts" . "\xf011")
("cloudy-windy" . "\xf012")
("day-cloudy" . "\xf002")
("day-cloudy-gusts" . "\xf000")
("day-cloudy-high" . "\xf07d")
("day-cloudy-windy" . "\xf001")
("day-fog" . "\xf003")
("day-hail" . "\xf004")
("day-haze" . "\xf0b6")
("day-light-wind" . "\xf0c4")
("day-lightning" . "\xf005")
("day-rain" . "\xf008")
("day-rain-mix" . "\xf006")
("day-rain-wind" . "\xf007")
("day-showers" . "\xf009")
("day-sleet" . "\xf0b2")
("day-sleet-storm" . "\xf068")
("day-snow" . "\xf00a")
("day-snow-thunderstorm" . "\xf06b")
("day-snow-wind" . "\xf065")
("day-sprinkle" . "\xf00b")
("day-storm-showers" . "\xf00e")
("day-sunny" . "\xf00d")
("day-sunny-overcast" . "\xf00c")
("day-thunderstorm" . "\xf010")
("day-windy" . "\xf085")
("degrees" . "\xf042")
("direction-down" . "\xf044")
("direction-down-left" . "\xf043")
("direction-down-right" . "\xf088")
("direction-left" . "\xf048")
("direction-right" . "\xf04d")
("direction-up" . "\xf058")
("direction-up-left" . "\xf087")
("direction-up-right" . "\xf057")
("dust" . "\xf063")
("earthquake" . "\xf0c6")
("fahrenheit" . "\xf045")
("fire" . "\xf0c7")
("flood" . "\xf07c")
("fog" . "\xf014")
("forecast-io-clear-day" . "\xf00d")
("forecast-io-clear-night" . "\xf02e")
("forecast-io-cloudy" . "\xf013")
("forecast-io-fog" . "\xf014")
("forecast-io-hail" . "\xf015")
("forecast-io-partly-cloudy-day" . "\xf002")
("forecast-io-partly-cloudy-night" . "\xf031")
("forecast-io-rain" . "\xf019")
("forecast-io-sleet" . "\xf0b5")
("forecast-io-snow" . "\xf01b")
("forecast-io-thunderstorm" . "\xf01e")
("forecast-io-tornado" . "\xf056")
("forecast-io-wind" . "\xf050")
("gale-warning" . "\xf0cd")
("hail" . "\xf015")
("horizon" . "\xf047")
("horizon-alt" . "\xf046")
("hot" . "\xf072")
("humidity" . "\xf07a")
("hurricane" . "\xf073")
("hurricane-warning" . "\xf0cf")
("lightning" . "\xf016")
("lunar-eclipse" . "\xf070")
("meteor" . "\xf071")
("moon-0" . "\xf095")
("moon-1" . "\xf096")
("moon-10" . "\xf09f")
("moon-11" . "\xf0a0")
("moon-12" . "\xf0a1")
("moon-13" . "\xf0a2")
("moon-14" . "\xf0a3")
("moon-15" . "\xf0a4")
("moon-16" . "\xf0a5")
("moon-17" . "\xf0a6")
("moon-18" . "\xf0a7")
("moon-19" . "\xf0a8")
("moon-2" . "\xf097")
("moon-20" . "\xf0a9")
("moon-21" . "\xf0aa")
("moon-22" . "\xf0ab")
("moon-23" . "\xf0ac")
("moon-24" . "\xf0ad")
("moon-25" . "\xf0ae")
("moon-26" . "\xf0af")
("moon-27" . "\xf0b0")
("moon-3" . "\xf098")
("moon-4" . "\xf099")
("moon-5" . "\xf09a")
("moon-6" . "\xf09b")
("moon-7" . "\xf09c")
("moon-8" . "\xf09d")
("moon-9" . "\xf09e")
("moon-alt-first-quarter" . "\xf0d6")
("moon-alt-full" . "\xf0dd")
("moon-alt-new" . "\xf0eb")
("moon-alt-third-quarter" . "\xf0e4")
("moon-alt-waning-crescent-1" . "\xf0e5")
("moon-alt-waning-crescent-2" . "\xf0e6")
("moon-alt-waning-crescent-3" . "\xf0e7")
("moon-alt-waning-crescent-4" . "\xf0e8")
("moon-alt-waning-crescent-5" . "\xf0e9")
("moon-alt-waning-crescent-6" . "\xf0ea")
("moon-alt-waning-gibbous-1" . "\xf0de")
("moon-alt-waning-gibbous-2" . "\xf0df")
("moon-alt-waning-gibbous-3" . "\xf0e0")
("moon-alt-waning-gibbous-4" . "\xf0e1")
("moon-alt-waning-gibbous-5" . "\xf0e2")
("moon-alt-waning-gibbous-6" . "\xf0e3")
("moon-alt-waxing-crescent-1" . "\xf0d0")
("moon-alt-waxing-crescent-2" . "\xf0d1")
("moon-alt-waxing-crescent-3" . "\xf0d2")
("moon-alt-waxing-crescent-4" . "\xf0d3")
("moon-alt-waxing-crescent-5" . "\xf0d4")
("moon-alt-waxing-crescent-6" . "\xf0d5")
("moon-alt-waxing-gibbous-1" . "\xf0d7")
("moon-alt-waxing-gibbous-2" . "\xf0d8")
("moon-alt-waxing-gibbous-3" . "\xf0d9")
("moon-alt-waxing-gibbous-4" . "\xf0da")
("moon-alt-waxing-gibbous-5" . "\xf0db")
("moon-alt-waxing-gibbous-6" . "\xf0dc")
("moon-first-quarter" . "\xf09c")
("moon-full" . "\xf0a3")
("moon-new" . "\xf095")
("moon-third-quarter" . "\xf0aa")
("moon-waning-crescent-1" . "\xf0ab")
("moon-waning-crescent-2" . "\xf0ac")
("moon-waning-crescent-3" . "\xf0ad")
("moon-waning-crescent-4" . "\xf0ae")
("moon-waning-crescent-5" . "\xf0af")
("moon-waning-crescent-6" . "\xf0b0")
("moon-waning-gibbous-1" . "\xf0a4")
("moon-waning-gibbous-2" . "\xf0a5")
("moon-waning-gibbous-3" . "\xf0a6")
("moon-waning-gibbous-4" . "\xf0a7")
("moon-waning-gibbous-5" . "\xf0a8")
("moon-waning-gibbous-6" . "\xf0a9")
("moon-waxing-crescent-1" . "\xf096")
("moon-waxing-crescent-2" . "\xf097")
("moon-waxing-crescent-3" . "\xf098")
("moon-waxing-crescent-4" . "\xf099")
("moon-waxing-crescent-5" . "\xf09a")
("moon-waxing-crescent-6" . "\xf09b")
("moon-waxing-gibbous-1" . "\xf09d")
("moon-waxing-gibbous-2" . "\xf09e")
("moon-waxing-gibbous-3" . "\xf09f")
("moon-waxing-gibbous-4" . "\xf0a0")
("moon-waxing-gibbous-5" . "\xf0a1")
("moon-waxing-gibbous-6" . "\xf0a2")
("moonrise" . "\xf0c9")
("moonset" . "\xf0ca")
("na" . "\xf07b")
("night-alt-cloudy" . "\xf086")
("night-alt-cloudy-gusts" . "\xf022")
("night-alt-cloudy-high" . "\xf07e")
("night-alt-cloudy-windy" . "\xf023")
("night-alt-hail" . "\xf024")
("night-alt-lightning" . "\xf025")
("night-alt-partly-cloudy" . "\xf081")
("night-alt-rain" . "\xf028")
("night-alt-rain-mix" . "\xf026")
("night-alt-rain-wind" . "\xf027")
("night-alt-showers" . "\xf029")
("night-alt-sleet" . "\xf0b4")
("night-alt-sleet-storm" . "\xf06a")
("night-alt-snow" . "\xf02a")
("night-alt-snow-thunderstorm" . "\xf06d")
("night-alt-snow-wind" . "\xf067")
("night-alt-sprinkle" . "\xf02b")
("night-alt-storm-showers" . "\xf02c")
("night-alt-thunderstorm" . "\xf02d")
("night-clear" . "\xf02e")
("night-cloudy" . "\xf031")
("night-cloudy-gusts" . "\xf02f")
("night-cloudy-high" . "\xf080")
("night-cloudy-windy" . "\xf030")
("night-fog" . "\xf04a")
("night-hail" . "\xf032")
("night-lightning" . "\xf033")
("night-partly-cloudy" . "\xf083")
("night-rain" . "\xf036")
("night-rain-mix" . "\xf034")
("night-rain-wind" . "\xf035")
("night-showers" . "\xf037")
("night-sleet" . "\xf0b3")
("night-sleet-storm" . "\xf069")
("night-snow" . "\xf038")
("night-snow-thunderstorm" . "\xf06c")
("night-snow-wind" . "\xf066")
("night-sprinkle" . "\xf039")
("night-storm-showers" . "\xf03a")
("night-thunderstorm" . "\xf03b")
("owm-200" . "\xf01e")
("owm-201" . "\xf01e")
("owm-202" . "\xf01e")
("owm-210" . "\xf016")
("owm-211" . "\xf016")
("owm-212" . "\xf016")
("owm-221" . "\xf016")
("owm-230" . "\xf01e")
("owm-231" . "\xf01e")
("owm-232" . "\xf01e")
("owm-300" . "\xf01c")
("owm-301" . "\xf01c")
("owm-302" . "\xf019")
("owm-310" . "\xf017")
("owm-311" . "\xf019")
("owm-312" . "\xf019")
("owm-313" . "\xf01a")
("owm-314" . "\xf019")
("owm-321" . "\xf01c")
("owm-500" . "\xf01c")
("owm-501" . "\xf019")
("owm-502" . "\xf019")
("owm-503" . "\xf019")
("owm-504" . "\xf019")
("owm-511" . "\xf017")
("owm-520" . "\xf01a")
("owm-521" . "\xf01a")
("owm-522" . "\xf01a")
("owm-531" . "\xf01d")
("owm-600" . "\xf01b")
("owm-601" . "\xf01b")
("owm-602" . "\xf0b5")
("owm-611" . "\xf017")
("owm-612" . "\xf017")
("owm-615" . "\xf017")
("owm-616" . "\xf017")
("owm-620" . "\xf017")
("owm-621" . "\xf01b")
("owm-622" . "\xf01b")
("owm-701" . "\xf01a")
("owm-711" . "\xf062")
("owm-721" . "\xf0b6")
("owm-731" . "\xf063")
("owm-741" . "\xf014")
("owm-761" . "\xf063")
("owm-762" . "\xf063")
("owm-771" . "\xf011")
("owm-781" . "\xf056")
("owm-800" . "\xf00d")
("owm-801" . "\xf011")
("owm-802" . "\xf011")
("owm-803" . "\xf012")
("owm-804" . "\xf013")
("owm-900" . "\xf056")
("owm-901" . "\xf01d")
("owm-902" . "\xf073")
("owm-903" . "\xf076")
("owm-904" . "\xf072")
("owm-905" . "\xf021")
("owm-906" . "\xf015")
("owm-957" . "\xf050")
("owm-day-200" . "\xf010")
("owm-day-201" . "\xf010")
("owm-day-202" . "\xf010")
("owm-day-210" . "\xf005")
("owm-day-211" . "\xf005")
("owm-day-212" . "\xf005")
("owm-day-221" . "\xf005")
("owm-day-230" . "\xf010")
("owm-day-231" . "\xf010")
("owm-day-232" . "\xf010")
("owm-day-300" . "\xf00b")
("owm-day-301" . "\xf00b")
("owm-day-302" . "\xf008")
("owm-day-310" . "\xf008")
("owm-day-311" . "\xf008")
("owm-day-312" . "\xf008")
("owm-day-313" . "\xf008")
("owm-day-314" . "\xf008")
("owm-day-321" . "\xf00b")
("owm-day-500" . "\xf00b")
("owm-day-501" . "\xf008")
("owm-day-502" . "\xf008")
("owm-day-503" . "\xf008")
("owm-day-504" . "\xf008")
("owm-day-511" . "\xf006")
("owm-day-520" . "\xf009")
("owm-day-521" . "\xf009")
("owm-day-522" . "\xf009")
("owm-day-531" . "\xf00e")
("owm-day-600" . "\xf00a")
("owm-day-601" . "\xf0b2")
("owm-day-602" . "\xf00a")
("owm-day-611" . "\xf006")
("owm-day-612" . "\xf006")
("owm-day-615" . "\xf006")
("owm-day-616" . "\xf006")
("owm-day-620" . "\xf006")
("owm-day-621" . "\xf00a")
("owm-day-622" . "\xf00a")
("owm-day-701" . "\xf009")
("owm-day-711" . "\xf062")
("owm-day-721" . "\xf0b6")
("owm-day-731" . "\xf063")
("owm-day-741" . "\xf003")
("owm-day-761" . "\xf063")
("owm-day-762" . "\xf063")
("owm-day-781" . "\xf056")
("owm-day-800" . "\xf00d")
("owm-day-801" . "\xf000")
("owm-day-802" . "\xf000")
("owm-day-803" . "\xf000")
("owm-day-804" . "\xf00c")
("owm-day-900" . "\xf056")
("owm-day-902" . "\xf073")
("owm-day-903" . "\xf076")
("owm-day-904" . "\xf072")
("owm-day-906" . "\xf004")
("owm-day-957" . "\xf050")
("owm-night-200" . "\xf02d")
("owm-night-201" . "\xf02d")
("owm-night-202" . "\xf02d")
("owm-night-210" . "\xf025")
("owm-night-211" . "\xf025")
("owm-night-212" . "\xf025")
("owm-night-221" . "\xf025")
("owm-night-230" . "\xf02d")
("owm-night-231" . "\xf02d")
("owm-night-232" . "\xf02d")
("owm-night-300" . "\xf02b")
("owm-night-301" . "\xf02b")
("owm-night-302" . "\xf028")
("owm-night-310" . "\xf028")
("owm-night-311" . "\xf028")
("owm-night-312" . "\xf028")
("owm-night-313" . "\xf028")
("owm-night-314" . "\xf028")
("owm-night-321" . "\xf02b")
("owm-night-500" . "\xf02b")
("owm-night-501" . "\xf028")
("owm-night-502" . "\xf028")
("owm-night-503" . "\xf028")
("owm-night-504" . "\xf028")
("owm-night-511" . "\xf026")
("owm-night-520" . "\xf029")
("owm-night-521" . "\xf029")
("owm-night-522" . "\xf029")
("owm-night-531" . "\xf02c")
("owm-night-600" . "\xf02a")
("owm-night-601" . "\xf0b4")
("owm-night-602" . "\xf02a")
("owm-night-611" . "\xf026")
("owm-night-612" . "\xf026")
("owm-night-615" . "\xf026")
("owm-night-616" . "\xf026")
("owm-night-620" . "\xf026")
("owm-night-621" . "\xf02a")
("owm-night-622" . "\xf02a")
("owm-night-701" . "\xf029")
("owm-night-711" . "\xf062")
("owm-night-721" . "\xf0b6")
("owm-night-731" . "\xf063")
("owm-night-741" . "\xf04a")
("owm-night-761" . "\xf063")
("owm-night-762" . "\xf063")
("owm-night-781" . "\xf056")
("owm-night-800" . "\xf02e")
("owm-night-801" . "\xf022")
("owm-night-802" . "\xf022")
("owm-night-803" . "\xf022")
("owm-night-804" . "\xf086")
("owm-night-900" . "\xf056")
("owm-night-902" . "\xf073")
("owm-night-903" . "\xf076")
("owm-night-904" . "\xf072")
("owm-night-906" . "\xf024")
("owm-night-957" . "\xf050")
("rain" . "\xf019")
("rain-mix" . "\xf017")
("rain-wind" . "\xf018")
("raindrop" . "\xf078")
("raindrops" . "\xf04e")
("refresh" . "\xf04c")
("refresh-alt" . "\xf04b")
("sandstorm" . "\xf082")
("showers" . "\xf01a")
("sleet" . "\xf0b5")
("small-craft-advisory" . "\xf0cc")
("smog" . "\xf074")
("smoke" . "\xf062")
("snow" . "\xf01b")
("snow" . "\xf01b")
("snow-wind" . "\xf064")
("snowflake-cold" . "\xf076")
("solar-eclipse" . "\xf06e")
("sprinkle" . "\xf01c")
("stars" . "\xf077")
("storm-showers" . "\xf01d")
("storm-showers" . "\xf01d")
("storm-warning" . "\xf0ce")
("strong-wind" . "\xf050")
("sunrise" . "\xf051")
("sunset" . "\xf052")
("thermometer" . "\xf055")
("thermometer-exterior" . "\xf053")
("thermometer-internal" . "\xf054")
("thunderstorm" . "\xf01e")
("thunderstorm" . "\xf01e")
("time-1" . "\xf08a")
("time-10" . "\xf093")
("time-11" . "\xf094")
("time-12" . "\xf089")
("time-2" . "\xf08b")
("time-3" . "\xf08c")
("time-4" . "\xf08d")
("time-5" . "\xf08e")
("time-6" . "\xf08f")
("time-7" . "\xf090")
("time-8" . "\xf091")
("time-9" . "\xf092")
("tornado" . "\xf056")
("train" . "\xf0cb")
("tsunami" . "\xf0c5")
("umbrella" . "\xf084")
("volcano" . "\xf0c8")
("wind-beaufort-0" . "\xf0b7")
("wind-beaufort-1" . "\xf0b8")
("wind-beaufort-10" . "\xf0c1")
("wind-beaufort-11" . "\xf0c2")
("wind-beaufort-12" . "\xf0c3")
("wind-beaufort-2" . "\xf0b9")
("wind-beaufort-3" . "\xf0ba")
("wind-beaufort-4" . "\xf0bb")
("wind-beaufort-5" . "\xf0bc")
("wind-beaufort-6" . "\xf0bd")
("wind-beaufort-7" . "\xf0be")
("wind-beaufort-8" . "\xf0bf")
("wind-beaufort-9" . "\xf0c0")
("wind-direction" . "\xf0b1")
("windy" . "\xf021")
("wmo4680-00" . "\xf055")
("wmo4680-01" . "\xf013")
("wmo4680-02" . "\xf055")
("wmo4680-03" . "\xf013")
("wmo4680-04" . "\xf014")
("wmo4680-05" . "\xf014")
("wmo4680-10" . "\xf014")
("wmo4680-11" . "\xf014")
("wmo4680-12" . "\xf016")
("wmo4680-18" . "\xf050")
("wmo4680-20" . "\xf014")
("wmo4680-21" . "\xf017")
("wmo4680-22" . "\xf017")
("wmo4680-23" . "\xf019")
("wmo4680-24" . "\xf01b")
("wmo4680-25" . "\xf015")
("wmo4680-26" . "\xf01e")
("wmo4680-27" . "\xf063")
("wmo4680-28" . "\xf063")
("wmo4680-29" . "\xf063")
("wmo4680-30" . "\xf014")
("wmo4680-31" . "\xf014")
("wmo4680-32" . "\xf014")
("wmo4680-33" . "\xf014")
("wmo4680-34" . "\xf014")
("wmo4680-35" . "\xf014")
("wmo4680-40" . "\xf017")
("wmo4680-41" . "\xf01c")
("wmo4680-42" . "\xf019")
("wmo4680-43" . "\xf01c")
("wmo4680-44" . "\xf019")
("wmo4680-45" . "\xf015")
("wmo4680-46" . "\xf015")
("wmo4680-47" . "\xf01b")
("wmo4680-48" . "\xf01b")
("wmo4680-50" . "\xf01c")
("wmo4680-51" . "\xf01c")
("wmo4680-52" . "\xf019")
("wmo4680-53" . "\xf019")
("wmo4680-54" . "\xf076")
("wmo4680-55" . "\xf076")
("wmo4680-56" . "\xf076")
("wmo4680-57" . "\xf01c")
("wmo4680-58" . "\xf019")
("wmo4680-60" . "\xf01c")
("wmo4680-61" . "\xf01c")
("wmo4680-62" . "\xf019")
("wmo4680-63" . "\xf019")
("wmo4680-64" . "\xf015")
("wmo4680-65" . "\xf015")
("wmo4680-66" . "\xf015")
("wmo4680-67" . "\xf017")
("wmo4680-68" . "\xf017")
("wmo4680-70" . "\xf01b")
("wmo4680-71" . "\xf01b")
("wmo4680-72" . "\xf01b")
("wmo4680-73" . "\xf01b")
("wmo4680-74" . "\xf076")
("wmo4680-75" . "\xf076")
("wmo4680-76" . "\xf076")
("wmo4680-77" . "\xf01b")
("wmo4680-78" . "\xf076")
("wmo4680-80" . "\xf019")
("wmo4680-81" . "\xf01c")
("wmo4680-82" . "\xf019")
("wmo4680-83" . "\xf019")
("wmo4680-84" . "\xf01d")
("wmo4680-85" . "\xf017")
("wmo4680-86" . "\xf017")
("wmo4680-87" . "\xf017")
("wmo4680-89" . "\xf015")
("wmo4680-90" . "\xf016")
("wmo4680-91" . "\xf01d")
("wmo4680-92" . "\xf01e")
("wmo4680-93" . "\xf01e")
("wmo4680-94" . "\xf016")
("wmo4680-95" . "\xf01e")
("wmo4680-96" . "\xf01e")
("wmo4680-99" . "\xf056")
("wu-chanceflurries" . "\xf064")
("wu-chancerain" . "\xf019")
("wu-chancesleat" . "\xf0b5")
("wu-chancesnow" . "\xf01b")
("wu-chancetstorms" . "\xf01e")
("wu-clear" . "\xf00d")
("wu-cloudy" . "\xf002")
("wu-flurries" . "\xf064")
("wu-hazy" . "\xf0b6")
("wu-mostlycloudy" . "\xf002")
("wu-mostlysunny" . "\xf00d")
("wu-partlycloudy" . "\xf002")
("wu-partlysunny" . "\xf00d")
("wu-rain" . "\xf01a")
("wu-sleat" . "\xf0b5")
("wu-snow" . "\xf01b")
("wu-sunny" . "\xf00d")
("wu-tstorms" . "\xf01e")
("wu-unknown" . "\xf00d")
("yahoo-0" . "\xf056")
("yahoo-1" . "\xf00e")
("yahoo-10" . "\xf015")
("yahoo-11" . "\xf01a")
("yahoo-12" . "\xf01a")
("yahoo-13" . "\xf01b")
("yahoo-14" . "\xf00a")
("yahoo-15" . "\xf064")
("yahoo-16" . "\xf01b")
("yahoo-17" . "\xf015")
("yahoo-18" . "\xf017")
("yahoo-19" . "\xf063")
("yahoo-2" . "\xf073")
("yahoo-20" . "\xf014")
("yahoo-21" . "\xf021")
("yahoo-22" . "\xf062")
("yahoo-23" . "\xf050")
("yahoo-24" . "\xf050")
("yahoo-25" . "\xf076")
("yahoo-26" . "\xf013")
("yahoo-27" . "\xf031")
("yahoo-28" . "\xf002")
("yahoo-29" . "\xf031")
("yahoo-3" . "\xf01e")
("yahoo-30" . "\xf002")
("yahoo-31" . "\xf02e")
("yahoo-32" . "\xf00d")
("yahoo-3200" . "\xf077")
("yahoo-33" . "\xf083")
("yahoo-34" . "\xf00c")
("yahoo-35" . "\xf017")
("yahoo-36" . "\xf072")
("yahoo-37" . "\xf00e")
("yahoo-38" . "\xf00e")
("yahoo-39" . "\xf00e")
("yahoo-4" . "\xf01e")
("yahoo-40" . "\xf01a")
("yahoo-41" . "\xf064")
("yahoo-42" . "\xf01b")
("yahoo-43" . "\xf064")
("yahoo-44" . "\xf00c")
("yahoo-45" . "\xf00e")
("yahoo-46" . "\xf01b")
("yahoo-47" . "\xf00e")
("yahoo-5" . "\xf017")
("yahoo-6" . "\xf017")
("yahoo-7" . "\xf017")
("yahoo-8" . "\xf015")
("yahoo-9" . "\xf01a")
))
(provide 'data-weathericons)

View File

@ -0,0 +1,46 @@
;;; all-the-icons-ivy-rich-autoloads.el --- automatically extracted autoloads
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "all-the-icons-ivy-rich" "all-the-icons-ivy-rich.el"
;;;;;; (0 0 0 0))
;;; Generated autoloads from all-the-icons-ivy-rich.el
(defvar all-the-icons-ivy-rich-mode nil "\
Non-nil if All-The-Icons-Ivy-Rich mode is enabled.
See the `all-the-icons-ivy-rich-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `all-the-icons-ivy-rich-mode'.")
(custom-autoload 'all-the-icons-ivy-rich-mode "all-the-icons-ivy-rich" nil)
(autoload 'all-the-icons-ivy-rich-mode "all-the-icons-ivy-rich" "\
Better experience with icons for ivy.
If called interactively, enable All-The-Icons-Ivy-Rich mode if
ARG is positive, and disable it if ARG is zero or negative. If
called from Lisp, also enable the mode if ARG is omitted or nil,
and toggle it if ARG is `toggle'; disable the mode otherwise.
\(fn &optional ARG)" t nil)
(autoload 'all-the-icons-ivy-rich-reload "all-the-icons-ivy-rich" "\
Reload `all-the-icons-ivy-rich'." t nil)
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "all-the-icons-ivy-rich" '("all-the-icons-ivy-rich-")))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; all-the-icons-ivy-rich-autoloads.el ends here

View File

@ -0,0 +1,2 @@
;;; Generated package description from all-the-icons-ivy-rich.el -*- no-byte-compile: t -*-
(define-package "all-the-icons-ivy-rich" "20220625.1332" "Better experience with icons for ivy" '((emacs "25.1") (ivy-rich "0.1.0") (all-the-icons "2.2.0")) :commit "616a39f71484b15d21d89ca40cd174e0ca15b8f4" :authors '(("Vincent Zhang" . "seagle0128@gmail.com")) :maintainer '("Vincent Zhang" . "seagle0128@gmail.com") :keywords '("convenience" "icons" "ivy") :url "https://github.com/seagle0128/all-the-icons-ivy-rich")

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
Good signature from 066DAFCB81E42C40 GNU ELPA Signing Agent (2019) <elpasign@elpa.gnu.org> (trust undefined) created at 2022-07-13T06:05:03-0300 using RSA

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
Good signature from 066DAFCB81E42C40 GNU ELPA Signing Agent (2019) <elpasign@elpa.gnu.org> (trust undefined) created at 2022-06-06T06:05:03-0300 using RSA

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
(1 (org . [(20210929) ( ) "Outline-based notes management and organizer" tar])
(org-plus-contrib . [(20210929) ( ) "Outline-based notes management and organizer" tar]))

View File

@ -0,0 +1,195 @@
;;; async-autoloads.el --- automatically extracted autoloads
;;
;;; Code:
(add-to-list 'load-path (directory-file-name
(or (file-name-directory #$) (car load-path))))
;;;### (autoloads nil "async" "async.el" (0 0 0 0))
;;; Generated autoloads from async.el
(autoload 'async-start-process "async" "\
Start the executable PROGRAM asynchronously named NAME. See `async-start'.
PROGRAM is passed PROGRAM-ARGS, calling FINISH-FUNC with the
process object when done. If FINISH-FUNC is nil, the future
object will return the process object when the program is
finished. Set DEFAULT-DIRECTORY to change PROGRAM's current
working directory.
\(fn NAME PROGRAM FINISH-FUNC &rest PROGRAM-ARGS)" nil nil)
(autoload 'async-start "async" "\
Execute START-FUNC (often a lambda) in a subordinate Emacs process.
When done, the return value is passed to FINISH-FUNC. Example:
(async-start
;; What to do in the child process
(lambda ()
(message \"This is a test\")
(sleep-for 3)
222)
;; What to do when it finishes
(lambda (result)
(message \"Async process done, result should be 222: %s\"
result)))
If FINISH-FUNC is nil or missing, a future is returned that can
be inspected using `async-get', blocking until the value is
ready. Example:
(let ((proc (async-start
;; What to do in the child process
(lambda ()
(message \"This is a test\")
(sleep-for 3)
222))))
(message \"I'm going to do some work here\") ;; ....
(message \"Waiting on async process, result should be 222: %s\"
(async-get proc)))
If you don't want to use a callback, and you don't care about any
return value from the child process, pass the `ignore' symbol as
the second argument (if you don't, and never call `async-get', it
will leave *emacs* process buffers hanging around):
(async-start
(lambda ()
(delete-file \"a remote file on a slow link\" nil))
\\='ignore)
Special case:
If the output of START-FUNC is a string with properties
e.g. (buffer-string) RESULT will be transformed in a list where the
car is the string itself (without props) and the cdr the rest of
properties, this allows using in FINISH-FUNC the string without
properties and then apply the properties in cdr to this string (if
needed).
Properties handling special objects like markers are returned as
list to allow restoring them later.
See <https://github.com/jwiegley/emacs-async/issues/145> for more infos.
Note: Even when FINISH-FUNC is present, a future is still
returned except that it yields no value (since the value is
passed to FINISH-FUNC). Call `async-get' on such a future always
returns nil. It can still be useful, however, as an argument to
`async-ready' or `async-wait'.
\(fn START-FUNC &optional FINISH-FUNC)" nil nil)
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "async" '("async-")))
;;;***
;;;### (autoloads nil "async-bytecomp" "async-bytecomp.el" (0 0 0
;;;;;; 0))
;;; Generated autoloads from async-bytecomp.el
(autoload 'async-byte-recompile-directory "async-bytecomp" "\
Compile all *.el files in DIRECTORY asynchronously.
All *.elc files are systematically deleted before proceeding.
\(fn DIRECTORY &optional QUIET)" nil nil)
(defvar async-bytecomp-package-mode nil "\
Non-nil if Async-Bytecomp-Package mode is enabled.
See the `async-bytecomp-package-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `async-bytecomp-package-mode'.")
(custom-autoload 'async-bytecomp-package-mode "async-bytecomp" nil)
(autoload 'async-bytecomp-package-mode "async-bytecomp" "\
Byte compile asynchronously packages installed with package.el.
Async compilation of packages can be controlled by
`async-bytecomp-allowed-packages'.
If called interactively, enable Async-Bytecomp-Package mode if
ARG is positive, and disable it if ARG is zero or negative. If
called from Lisp, also enable the mode if ARG is omitted or nil,
and toggle it if ARG is `toggle'; disable the mode otherwise.
\(fn &optional ARG)" t nil)
(autoload 'async-byte-compile-file "async-bytecomp" "\
Byte compile Lisp code FILE asynchronously.
Same as `byte-compile-file' but asynchronous.
\(fn FILE)" t nil)
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "async-bytecomp" '("async-")))
;;;***
;;;### (autoloads nil "dired-async" "dired-async.el" (0 0 0 0))
;;; Generated autoloads from dired-async.el
(defvar dired-async-mode nil "\
Non-nil if Dired-Async mode is enabled.
See the `dired-async-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `dired-async-mode'.")
(custom-autoload 'dired-async-mode "dired-async" nil)
(autoload 'dired-async-mode "dired-async" "\
Do dired actions asynchronously.
If called interactively, enable Dired-Async mode if ARG is
positive, and disable it if ARG is zero or negative. If called
from Lisp, also enable the mode if ARG is omitted or nil, and
toggle it if ARG is `toggle'; disable the mode otherwise.
\(fn &optional ARG)" t nil)
(autoload 'dired-async-do-copy "dired-async" "\
Run dired-do-copy asynchronously.
\(fn &optional ARG)" t nil)
(autoload 'dired-async-do-symlink "dired-async" "\
Run dired-do-symlink asynchronously.
\(fn &optional ARG)" t nil)
(autoload 'dired-async-do-hardlink "dired-async" "\
Run dired-do-hardlink asynchronously.
\(fn &optional ARG)" t nil)
(autoload 'dired-async-do-rename "dired-async" "\
Run dired-do-rename asynchronously.
\(fn &optional ARG)" t nil)
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "dired-async" '("dired-async-")))
;;;***
;;;### (autoloads nil "smtpmail-async" "smtpmail-async.el" (0 0 0
;;;;;; 0))
;;; Generated autoloads from smtpmail-async.el
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "smtpmail-async" '("async-smtpmail-")))
;;;***
;;;### (autoloads nil nil ("async-pkg.el") (0 0 0 0))
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; async-autoloads.el ends here

View File

@ -0,0 +1,211 @@
;;; async-bytecomp.el --- Compile elisp files asynchronously -*- lexical-binding: t -*-
;; Copyright (C) 2014-2019 Free Software Foundation, Inc.
;; Authors: John Wiegley <jwiegley@gmail.com>
;; Thierry Volpiatto <thievol@posteo.net>
;; Keywords: dired async byte-compile
;; X-URL: https://github.com/jwiegley/dired-async
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; This package provide the `async-byte-recompile-directory' function
;; which allows, as the name says to recompile a directory outside of
;; your running emacs.
;; The benefit is your files will be compiled in a clean environment without
;; the old *.el files loaded.
;; Among other things, this fix a bug in package.el which recompile
;; the new files in the current environment with the old files loaded, creating
;; errors in most packages after upgrades.
;;
;; NB: This package is advicing the function `package--compile'.
;;; Code:
(require 'cl-lib)
(require 'async)
(require 'bytecomp)
(declare-function package-desc-name "package.el")
(declare-function package-desc-dir "package.el")
(defcustom async-bytecomp-allowed-packages 'all
"Packages in this list will be compiled asynchronously by `package--compile'.
All the dependencies of these packages will be compiled async too,
so no need to add dependencies to this list.
The value of this variable can also be the symbol `all' (default), in this case
all packages are always compiled asynchronously."
:group 'async
:type '(choice
(const :tag "All packages" all)
(repeat symbol)))
(defvar async-byte-compile-log-file
(concat user-emacs-directory "async-bytecomp.log"))
(defvar async-bytecomp-load-variable-regexp "\\`load-path\\'"
"The variable used by `async-inject-variables' when (re)compiling async.")
;;;###autoload
(defun async-byte-recompile-directory (directory &optional quiet)
"Compile all *.el files in DIRECTORY asynchronously.
All *.elc files are systematically deleted before proceeding."
(cl-loop with dir = (directory-files directory t "\\.elc\\'")
unless dir return nil
for f in dir
when (file-exists-p f) do (delete-file f))
;; Ensure async is reloaded when async.elc is deleted.
;; This happen when recompiling its own directory.
(load "async")
(let ((call-back
(lambda (&optional _ignore)
(if (file-exists-p async-byte-compile-log-file)
(let ((buf (get-buffer-create byte-compile-log-buffer))
(n 0))
(with-current-buffer buf
(goto-char (point-max))
(let ((inhibit-read-only t))
(insert-file-contents async-byte-compile-log-file)
(compilation-mode))
(display-buffer buf)
(delete-file async-byte-compile-log-file)
(unless quiet
(save-excursion
(goto-char (point-min))
(while (re-search-forward "^.*:Error:" nil t)
(cl-incf n)))
(if (> n 0)
(message "Failed to compile %d files in directory `%s'" n directory)
(message "Directory `%s' compiled asynchronously with warnings" directory)))))
(unless quiet
(message "Directory `%s' compiled asynchronously with success" directory))))))
(async-start
`(lambda ()
(require 'bytecomp)
,(async-inject-variables async-bytecomp-load-variable-regexp)
(let ((default-directory (file-name-as-directory ,directory))
error-data)
(add-to-list 'load-path default-directory)
(byte-recompile-directory ,directory 0 t)
(when (get-buffer byte-compile-log-buffer)
(setq error-data (with-current-buffer byte-compile-log-buffer
(buffer-substring-no-properties (point-min) (point-max))))
(unless (string= error-data "")
(with-temp-file ,async-byte-compile-log-file
(erase-buffer)
(insert error-data))))))
call-back)
(unless quiet (message "Started compiling asynchronously directory %s" directory))))
(defvar package-archive-contents)
(defvar package-alist)
(declare-function package-desc-reqs "package.el" (cl-x))
(defun async-bytecomp--get-package-deps (pkgs)
;; Same as `package--get-deps' but parse instead `package-archive-contents'
;; because PKG is not already installed and not present in `package-alist'.
;; However fallback to `package-alist' in case PKG no more present
;; in `package-archive-contents' due to modification to `package-archives'.
;; See issue #58.
(let ((seen '()))
(while pkgs
(let ((pkg (pop pkgs)))
(unless (memq pkg seen)
(let ((pkg-desc (cadr (or (assq pkg package-archive-contents)
(assq pkg package-alist)))))
(when pkg-desc
(push pkg seen)
(setq pkgs (append (mapcar #'car (package-desc-reqs pkg-desc))
pkgs)))))))
seen))
(defun async--package-compile (orig-fun pkg-desc &rest args)
(let ((cur-package (package-desc-name pkg-desc))
(pkg-dir (package-desc-dir pkg-desc)))
(if (or (member async-bytecomp-allowed-packages '(t all (all)))
(memq cur-package (async-bytecomp--get-package-deps
async-bytecomp-allowed-packages)))
(progn
;; FIXME: Why do we use (eq cur-package 'async) once
;; and (string= cur-package "async") afterwards?
(when (eq cur-package 'async)
(fmakunbound 'async-byte-recompile-directory))
;; Add to `load-path' the latest version of async and
;; reload it when reinstalling async.
(when (string= cur-package "async")
(cl-pushnew pkg-dir load-path)
(load "async-bytecomp"))
;; `async-byte-recompile-directory' will add directory
;; as needed to `load-path'.
(async-byte-recompile-directory (package-desc-dir pkg-desc) t))
(apply orig-fun pkg-desc args))))
;;;###autoload
(define-minor-mode async-bytecomp-package-mode
"Byte compile asynchronously packages installed with package.el.
Async compilation of packages can be controlled by
`async-bytecomp-allowed-packages'."
:group 'async
:global t
(if async-bytecomp-package-mode
(advice-add 'package--compile :around #'async--package-compile)
(advice-remove 'package--compile #'async--package-compile)))
;;;###autoload
(defun async-byte-compile-file (file)
"Byte compile Lisp code FILE asynchronously.
Same as `byte-compile-file' but asynchronous."
(interactive "fFile: ")
(let ((call-back
(lambda (&optional _ignore)
(let ((bn (file-name-nondirectory file)))
(if (file-exists-p async-byte-compile-log-file)
(let ((buf (get-buffer-create byte-compile-log-buffer))
start)
(with-current-buffer buf
(goto-char (setq start (point-max)))
(let ((inhibit-read-only t))
(insert-file-contents async-byte-compile-log-file)
(compilation-mode))
(display-buffer buf)
(delete-file async-byte-compile-log-file)
(save-excursion
(goto-char start)
(if (re-search-forward "^.*:Error:" nil t)
(message "Failed to compile `%s'" bn)
(message "`%s' compiled asynchronously with warnings" bn)))))
(message "`%s' compiled asynchronously with success" bn))))))
(async-start
`(lambda ()
(require 'bytecomp)
,(async-inject-variables async-bytecomp-load-variable-regexp)
(let ((default-directory ,(file-name-directory file)))
(add-to-list 'load-path default-directory)
(byte-compile-file ,file)
(when (get-buffer byte-compile-log-buffer)
(setq error-data (with-current-buffer byte-compile-log-buffer
(buffer-substring-no-properties (point-min) (point-max))))
(unless (string= error-data "")
(with-temp-file ,async-byte-compile-log-file
(erase-buffer)
(insert error-data))))))
call-back)))
(provide 'async-bytecomp)
;;; async-bytecomp.el ends here

View File

@ -0,0 +1,12 @@
(define-package "async" "20220630.57" "Asynchronous processing in Emacs"
'((emacs "24.4"))
:commit "7f4ed1e8b44e0b88eadb2efeeaf97f32c38f14c4" :authors
'(("John Wiegley" . "jwiegley@gmail.com"))
:maintainer
'("Thierry Volpiatto" . "thievol@posteo.net")
:keywords
'("async")
:url "https://github.com/jwiegley/emacs-async")
;; Local Variables:
;; no-byte-compile: t
;; End:

View File

@ -0,0 +1,439 @@
;;; async.el --- Asynchronous processing in Emacs -*- lexical-binding: t -*-
;; Copyright (C) 2012-2019 Free Software Foundation, Inc.
;; Author: John Wiegley <jwiegley@gmail.com>
;; Maintainer: Thierry Volpiatto <thievol@posteo.net>
;; Created: 18 Jun 2012
;; Version: 1.9.5
;; Package-Requires: ((emacs "24.4"))
;; Keywords: async
;; X-URL: https://github.com/jwiegley/emacs-async
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;; Adds the ability to call asynchronous functions and process with ease. See
;; the documentation for `async-start' and `async-start-process'.
;;; Code:
(eval-when-compile (require 'cl-lib))
(defgroup async nil
"Simple asynchronous processing in Emacs"
:group 'emacs)
(defcustom async-variables-noprops-function #'async--purecopy
"Default function to remove text properties in variables."
:type 'function)
(defvar async-debug nil)
(defvar async-send-over-pipe t)
(defvar async-in-child-emacs nil)
(defvar async-callback nil)
(defvar async-callback-for-process nil)
(defvar async-callback-value nil)
(defvar async-callback-value-set nil)
(defvar async-current-process nil)
(defvar async--procvar nil)
;; For emacs<29 (only exists in emacs-29+).
(defvar print-symbols-bare)
(defun async--purecopy (object)
"Remove text properties in OBJECT.
Argument OBJECT may be a list or a string, if anything else it
is returned unmodified."
(cond ((stringp object)
(substring-no-properties object))
((consp object)
(cl-loop for elm in object
;; A string.
if (stringp elm)
collect (substring-no-properties elm)
else
;; Proper lists.
if (and (consp elm) (null (cdr (last elm))))
collect (async--purecopy elm)
else
;; Dotted lists.
;; We handle here only dotted list where car and cdr
;; are atoms i.e. (x . y) and not (x . (x . y)) or
;; (x . (x y)) which should fit most cases.
if (and (consp elm) (cdr (last elm)))
collect (let ((key (car elm))
(val (cdr elm)))
(cons (if (stringp key)
(substring-no-properties key)
key)
(if (stringp val)
(substring-no-properties val)
val)))
else
collect elm))
(t object)))
(defun async-inject-variables
(include-regexp &optional predicate exclude-regexp noprops)
"Return a `setq' form that replicates part of the calling environment.
It sets the value for every variable matching INCLUDE-REGEXP and
also PREDICATE. It will not perform injection for any variable
matching EXCLUDE-REGEXP (if present) or representing a `syntax-table'
i.e. ending by \"-syntax-table\".
When NOPROPS is non nil it tries to strip out text properties of each
variable's value with `async-variables-noprops-function'.
It is intended to be used as follows:
(async-start
\\=`(lambda ()
(require \\='smtpmail)
(with-temp-buffer
(insert ,(buffer-substring-no-properties (point-min) (point-max)))
;; Pass in the variable environment for smtpmail
,(async-inject-variables \"\\\\=`\\(smtpmail\\|\\(user-\\)?mail\\)-\")
(smtpmail-send-it)))
\\='ignore)"
`(setq
,@(let (bindings)
(mapatoms
(lambda (sym)
(let* ((sname (and (boundp sym) (symbol-name sym)))
(value (and sname (symbol-value sym))))
(when (and sname
(or (null include-regexp)
(string-match include-regexp sname))
(or (null exclude-regexp)
(not (string-match exclude-regexp sname)))
(not (string-match "-syntax-table\\'" sname)))
(unless (or (stringp value)
(memq value '(nil t))
(numberp value)
(vectorp value))
(setq value `(quote ,value)))
(when noprops
(setq value (funcall async-variables-noprops-function
value)))
(when (or (null predicate)
(funcall predicate sym))
(setq bindings (cons value bindings)
bindings (cons sym bindings)))))))
bindings)))
(defalias 'async-inject-environment 'async-inject-variables)
(defun async-handle-result (func result buf)
(if (null func)
(progn
(set (make-local-variable 'async-callback-value) result)
(set (make-local-variable 'async-callback-value-set) t))
(unwind-protect
(if (and (listp result)
(eq 'async-signal (nth 0 result)))
(signal (car (nth 1 result))
(cdr (nth 1 result)))
(funcall func result))
(unless async-debug
(kill-buffer buf)))))
(defun async-when-done (proc &optional _change)
"Process sentinel used to retrieve the value from the child process."
(when (eq 'exit (process-status proc))
(with-current-buffer (process-buffer proc)
(let ((async-current-process proc))
(if (= 0 (process-exit-status proc))
(if async-callback-for-process
(if async-callback
(prog1
(funcall async-callback proc)
(unless async-debug
(kill-buffer (current-buffer))))
(set (make-local-variable 'async-callback-value) proc)
(set (make-local-variable 'async-callback-value-set) t))
;; Maybe strip out unreadable "#"; They are replaced by
;; empty string unless they are prefixing a special
;; object like a marker. See issue #145.
(goto-char (point-min))
(save-excursion
;; Transform markers in list like
;; (marker (moves after insertion) at 2338 in
;; test\.org) so that remap text properties function
;; can parse it to restitute marker.
(while (re-search-forward "#<\\([^>]*\\)>" nil t)
(replace-match (concat "(" (match-string 1) ")") t t)))
(while (re-search-forward "#(" nil t)
(replace-match "(" t t))
(goto-char (point-max))
(backward-sexp)
(async-handle-result async-callback (read (current-buffer))
(current-buffer)))
(set (make-local-variable 'async-callback-value)
(list 'error
(format "Async process '%s' failed with exit code %d"
(process-name proc) (process-exit-status proc))))
(set (make-local-variable 'async-callback-value-set) t))))))
(defun async--receive-sexp (&optional stream)
;; FIXME: Why use `utf-8-auto' instead of `utf-8-unix'? This is
;; a communication channel over which we have complete control,
;; so we get to choose exactly which encoding and EOL we use, isn't it?
(let ((sexp (decode-coding-string (base64-decode-string (read stream))
'utf-8-auto))
;; Parent expects UTF-8 encoded text.
(coding-system-for-write 'utf-8-auto))
(if async-debug
(message "Received sexp {{{%s}}}" (pp-to-string sexp)))
(setq sexp (read sexp))
(if async-debug
(message "Read sexp {{{%s}}}" (pp-to-string sexp)))
(eval sexp t)))
(defun async--insert-sexp (sexp)
(let (print-level
print-length
(print-escape-nonascii t)
(print-circle t)
;; Fix bug#153 in emacs-29 with symbol's positions.
(print-symbols-bare t))
(prin1 sexp (current-buffer))
;; Just in case the string we're sending might contain EOF
(encode-coding-region (point-min) (point-max) 'utf-8-auto)
(base64-encode-region (point-min) (point-max) t)
(goto-char (point-min)) (insert ?\")
(goto-char (point-max)) (insert ?\" ?\n)))
(defun async--transmit-sexp (process sexp)
(with-temp-buffer
(if async-debug
(message "Transmitting sexp {{{%s}}}" (pp-to-string sexp)))
(async--insert-sexp sexp)
(process-send-region process (point-min) (point-max))))
(defun async-batch-invoke ()
"Called from the child Emacs process' command line."
;; Make sure 'message' and 'prin1' encode stuff in UTF-8, as parent
;; process expects.
(let ((coding-system-for-write 'utf-8-auto))
(setq async-in-child-emacs t
debug-on-error async-debug)
(if debug-on-error
(prin1 (funcall
(async--receive-sexp (unless async-send-over-pipe
command-line-args-left))))
(condition-case err
(prin1 (funcall
(async--receive-sexp (unless async-send-over-pipe
command-line-args-left))))
(error
(prin1 (list 'async-signal err)))))))
(defun async-ready (future)
"Query a FUTURE to see if it is ready.
I.e., if no blocking would result from a call to `async-get' on that FUTURE."
(and (memq (process-status future) '(exit signal))
(let ((buf (process-buffer future)))
(if (buffer-live-p buf)
(with-current-buffer buf
async-callback-value-set)
t))))
(defun async-wait (future)
"Wait for FUTURE to become ready."
(while (not (async-ready future))
(sleep-for 0.05)))
(defun async-get (future)
"Get the value from process FUTURE when it is ready.
FUTURE is returned by `async-start' or `async-start-process' when
its FINISH-FUNC is nil."
(and future (async-wait future))
(let ((buf (process-buffer future)))
(when (buffer-live-p buf)
(with-current-buffer buf
(async-handle-result
#'identity async-callback-value (current-buffer))))))
(defun async-message-p (value)
"Return non-nil of VALUE is an async.el message packet."
(and (listp value)
(plist-get value :async-message)))
(defun async-send (&rest args)
"Send the given messages to the asychronous Emacs PROCESS."
(let ((args (append args '(:async-message t))))
(if async-in-child-emacs
(if async-callback
(funcall async-callback args))
(async--transmit-sexp (car args) (list 'quote (cdr args))))))
(defun async-receive ()
"Send the given messages to the asychronous Emacs PROCESS."
(async--receive-sexp))
;;;###autoload
(defun async-start-process (name program finish-func &rest program-args)
"Start the executable PROGRAM asynchronously named NAME. See `async-start'.
PROGRAM is passed PROGRAM-ARGS, calling FINISH-FUNC with the
process object when done. If FINISH-FUNC is nil, the future
object will return the process object when the program is
finished. Set DEFAULT-DIRECTORY to change PROGRAM's current
working directory."
(let* ((buf (generate-new-buffer (concat "*" name "*")))
(proc (let ((process-connection-type nil))
(apply #'start-process name buf program program-args))))
(with-current-buffer buf
(set (make-local-variable 'async-callback) finish-func)
(set-process-sentinel proc #'async-when-done)
(unless (string= name "emacs")
(set (make-local-variable 'async-callback-for-process) t))
proc)))
(defvar async-quiet-switch "-Q"
"The Emacs parameter to use to call emacs without config.
Can be one of \"-Q\" or \"-q\".
Default is \"-Q\" but it is sometimes useful to use \"-q\" to have a
enhanced config or some more variables loaded.")
;;;###autoload
(defun async-start (start-func &optional finish-func)
"Execute START-FUNC (often a lambda) in a subordinate Emacs process.
When done, the return value is passed to FINISH-FUNC. Example:
(async-start
;; What to do in the child process
(lambda ()
(message \"This is a test\")
(sleep-for 3)
222)
;; What to do when it finishes
(lambda (result)
(message \"Async process done, result should be 222: %s\"
result)))
If FINISH-FUNC is nil or missing, a future is returned that can
be inspected using `async-get', blocking until the value is
ready. Example:
(let ((proc (async-start
;; What to do in the child process
(lambda ()
(message \"This is a test\")
(sleep-for 3)
222))))
(message \"I'm going to do some work here\") ;; ....
(message \"Waiting on async process, result should be 222: %s\"
(async-get proc)))
If you don't want to use a callback, and you don't care about any
return value from the child process, pass the `ignore' symbol as
the second argument (if you don't, and never call `async-get', it
will leave *emacs* process buffers hanging around):
(async-start
(lambda ()
(delete-file \"a remote file on a slow link\" nil))
\\='ignore)
Special case:
If the output of START-FUNC is a string with properties
e.g. (buffer-string) RESULT will be transformed in a list where the
car is the string itself (without props) and the cdr the rest of
properties, this allows using in FINISH-FUNC the string without
properties and then apply the properties in cdr to this string (if
needed).
Properties handling special objects like markers are returned as
list to allow restoring them later.
See <https://github.com/jwiegley/emacs-async/issues/145> for more infos.
Note: Even when FINISH-FUNC is present, a future is still
returned except that it yields no value (since the value is
passed to FINISH-FUNC). Call `async-get' on such a future always
returns nil. It can still be useful, however, as an argument to
`async-ready' or `async-wait'."
(let ((sexp start-func)
;; Subordinate Emacs will send text encoded in UTF-8.
(coding-system-for-read 'utf-8-auto))
(setq async--procvar
(async-start-process
"emacs" (file-truename
(expand-file-name invocation-name
invocation-directory))
finish-func
async-quiet-switch "-l"
;; Using `locate-library' ensure we use the right file
;; when the .elc have been deleted.
(locate-library "async")
"-batch" "-f" "async-batch-invoke"
(if async-send-over-pipe
"<none>"
(with-temp-buffer
(async--insert-sexp (list 'quote sexp))
(buffer-string)))))
(if async-send-over-pipe
(async--transmit-sexp async--procvar (list 'quote sexp)))
async--procvar))
(defmacro async-sandbox(func)
"Evaluate FUNC in a separate Emacs process, synchronously."
`(async-get (async-start ,func)))
(defun async--fold-left (fn forms bindings)
(let ((res forms))
(dolist (binding bindings)
(setq res (funcall fn res
(if (listp binding)
binding
(list binding)))))
res))
(defmacro async-let (bindings &rest forms)
"Implements `let', but each binding is established asynchronously.
For example:
(async-let ((x (foo))
(y (bar)))
(message \"%s %s\" x y))
expands to ==>
(async-start (foo)
(lambda (x)
(async-start (bar)
(lambda (y)
(message \"%s %s\" x y)))))"
(declare (indent 1))
(async--fold-left
(lambda (acc binding)
(let ((fun (pcase (cadr binding)
((and (pred functionp) f) f)
(f `(lambda () ,f)))))
`(async-start ,fun
(lambda (,(car binding))
,acc))))
`(progn ,@forms)
(reverse bindings)))
(provide 'async)
;;; async.el ends here

Some files were not shown because too many files have changed in this diff Show More