From b313cbf70c2fe52cb29a1d95323a6cba5098af88 Mon Sep 17 00:00:00 2001 From: Yigit Colakoglu Date: Sat, 5 Jun 2021 12:11:14 +0300 Subject: [PATCH] emacs doom configuration, emojis, wake on lan and more --- .config/X11/xinitrc | 9 +- .config/config.env.default | 2 + .config/doom/cli.el | 7 + .config/doom/config.el | 558 ++- .config/doom/custom.el | 46 + .config/doom/init.el | 77 +- .config/doom/lisp/bison-mode.el | 913 ++++ .config/doom/packages.el | 39 +- .config/doom/templates/template.c | 13 + .config/doom/templates/template.cpp | 13 + .config/doom/templates/template.el | 35 + .config/doom/templates/template.h | 12 + .../doom/templates/template.html | 0 .config/doom/templates/template.java | 12 + .config/doom/templates/template.org | 13 + .config/doom/templates/template.py | 14 + .config/doom/templates/template.sh | 7 + .../doom/templates/template.tex | 8 +- .../doom/themes/doom-material-ocean-theme.el | 238 +- .config/mutt/muttrc | 1 + .config/nextcloud/nextcloud | 2 - .config/nvim/plugin/plugins.vim | 5 - .config/vim/vimrc | 15 +- .config/zsh/.zshrc | 8 + .config/zsh/aliases | 8 + .local/bin/backup | 22 + .local/bin/calconsync | 1 + .local/bin/check-updates | 22 +- .local/bin/dmenu-emoji | 14 + .local/bin/dmenu-logout | 2 + .local/bin/dmenu-refresh | 13 +- .local/bin/dmenu-web | 107 + .local/bin/dmenu-xrandr | 318 ++ .local/bin/dmenu_run_history | 14 +- .local/bin/dmenu_surf | 11 - .local/bin/doom | 9 +- .local/bin/e | 62 + .local/bin/menu-surfraw | 53 - .local/share/dwm/autostart.sh | 3 + .local/share/nerdfont_icons | 3810 ----------------- .local/share/vim/templates/skeleton.c | 14 - .local/share/vim/templates/skeleton.cpp | 14 - .local/share/vim/templates/skeleton.h | 13 - .local/share/vim/templates/skeleton.hpp | 13 - .local/share/vim/templates/skeleton.java | 13 - .local/share/vim/templates/skeleton.py | 15 - .local/share/vim/templates/skeleton.sh | 2 - .local/src/dmenu/config.h | 14 +- .local/src/dmenu/config.mk | 2 +- .local/src/dmenu/dmenu.c | 162 + .local/src/dwm/config.def.h | 4 + .local/src/dwm/config.h | 12 +- .local/src/dwm/dwm.c | 14 +- .local/src/dwm/keybinds.h | 30 +- .local/src/dwm/rules.h | 15 +- .local/src/dwmblocks/config.h | 12 +- .local/src/st/config.h | 146 +- .local/src/st/st | Bin 111928 -> 111928 bytes .local/src/st/st.o | Bin 79968 -> 80456 bytes .local/src/st/x.o | Bin 82640 -> 82072 bytes .profile | 13 +- 61 files changed, 2586 insertions(+), 4438 deletions(-) create mode 100644 .config/doom/cli.el create mode 100644 .config/doom/custom.el create mode 100644 .config/doom/lisp/bison-mode.el create mode 100644 .config/doom/templates/template.c create mode 100644 .config/doom/templates/template.cpp create mode 100644 .config/doom/templates/template.el create mode 100644 .config/doom/templates/template.h rename .local/share/vim/templates/skeleton.html => .config/doom/templates/template.html (100%) create mode 100644 .config/doom/templates/template.java create mode 100644 .config/doom/templates/template.org create mode 100644 .config/doom/templates/template.py create mode 100644 .config/doom/templates/template.sh rename .local/share/vim/templates/skeleton.tex => .config/doom/templates/template.tex (59%) create mode 100755 .local/bin/dmenu-emoji create mode 100755 .local/bin/dmenu-web create mode 100755 .local/bin/dmenu-xrandr delete mode 100755 .local/bin/dmenu_surf create mode 100755 .local/bin/e delete mode 100755 .local/bin/menu-surfraw delete mode 100644 .local/share/nerdfont_icons delete mode 100644 .local/share/vim/templates/skeleton.c delete mode 100644 .local/share/vim/templates/skeleton.cpp delete mode 100644 .local/share/vim/templates/skeleton.h delete mode 100644 .local/share/vim/templates/skeleton.hpp delete mode 100644 .local/share/vim/templates/skeleton.java delete mode 100644 .local/share/vim/templates/skeleton.py delete mode 100644 .local/share/vim/templates/skeleton.sh diff --git a/.config/X11/xinitrc b/.config/X11/xinitrc index d86aecaa..feb96299 100755 --- a/.config/X11/xinitrc +++ b/.config/X11/xinitrc @@ -6,7 +6,13 @@ pkill -f "bash /sbin/clipmenud" pkill -f "/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh" pkill -f devmon -echo "$DBUS_SESSION_BUS_ADDRESS" > /tmp/bus-session +cat << EOF > "$XDG_CACHE_HOME/dbus_settings" +export DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS +export DBUS_SESSION_BUS_PID=$DBUS_SESSION_BUS_PID +export DBUS_SESSION_BUS_WINDOWID=$DBUS_SESSION_BUS_WINDOWID +EOF + +chmod +x "$XDG_CACHE_HOME/dbus_settings" rm -rf $XDG_RUNTIME_DIR/day_cache export XSESSION_PID="$$" @@ -14,6 +20,7 @@ export XSESSION_PID="$$" source ~/.config/config.env + pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY xset b 100 diff --git a/.config/config.env.default b/.config/config.env.default index 13271677..d7c4f340 100644 --- a/.config/config.env.default +++ b/.config/config.env.default @@ -1,5 +1,7 @@ # vim:ft=bash +# This file is used by my dotfiles in some core functions + #!/bin/sh export ETH_IT=enp2s0 diff --git a/.config/doom/cli.el b/.config/doom/cli.el new file mode 100644 index 00000000..d0f3986a --- /dev/null +++ b/.config/doom/cli.el @@ -0,0 +1,7 @@ +;;; cli.el -*- lexical-binding: t; -*- +(setq org-confirm-babel-evaluate nil) + +(defun doom-shut-up-a (orig-fn &rest args) + (quiet! (apply orig-fn args))) + +(advice-add 'org-babel-execute-src-block :around #'doom-shut-up-a) diff --git a/.config/doom/config.el b/.config/doom/config.el index 08bbaa43..b16076c3 100644 --- a/.config/doom/config.el +++ b/.config/doom/config.el @@ -1,160 +1,454 @@ ;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- -;; Place your private configuration here! Remember, you do not need to run 'doom -;; sync' after modifying this file! +;; __ _______ _____ _____ +;; \ \ / / ____| ____|_ _| +;; \ V /| _| | _| | | +;; | | | |___| |___ | | +;; |_| |_____|_____| |_| +;; Yeet's Doom Emacs configuration -;; Some functionality uses this to identify you, e.g. GPG configuration, email -;; clients, file templates and snippets. +;; Global Configuration (setq user-full-name "Yigit Colakoglu" - user-mail-address "yigit@yigitcolakoglu.com") +user-mail-address "yigit@yigitcolakoglu.com") -(add-to-list 'default-frame-alist - '(ns-transparent-titlebar . t)) -(add-to-list 'default-frame-alist - '(ns-appearance . light)) +(setq org-directory "~/Documents/org/") +(setq org-journal-dir "~/Documents/org/journal/") +(setq display-line-numbers-type 'relative) +(setq twittering-allow-insecure-server-cert t) +(setq +ivy-buffer-preview t) (global-auto-revert-mode t) +(global-subword-mode 1) ; Iterate through CamelCase words + +(setq-default + delete-by-moving-to-trash t ; Delete files to trash + window-combination-resize t ; take new window space from all other windows (not just current) + x-stretch-cursor t) ; Stretch cursor to the glyph width + +(setq undo-limit 80000000 ; Raise undo-limit to 80Mb + evil-want-fine-undo t ; By default while in insert all changes are one big blob. Be more granular + auto-save-default t ; Nobody likes to loose work, I certainly don't + truncate-string-ellipsis "…") ; Unicode ellispis are nicer than "...", and also save /precious/ space + + +;; Experimental, delete if you don't like it +(setq evil-vsplit-window-right t + evil-split-window-below t) + +(require 'bison-mode) +(after! bison-mode-hook + (setq imenu-create-index-function + (lambda () + (let ((end)) + (beginning-of-buffer) + (re-search-forward "^%%") + (forward-line 1) + (setq end (save-excursion (re-search-forward "^%%") (point))) + (loop while (re-search-forward "^\\([a-z].*?\\)\\s-*\n?\\s-*:" end t) + collect (cons (match-string 1) (point))))))) + +(defadvice! prompt-for-buffer (&rest _) + :after '(evil-window-split evil-window-vsplit) + (+ivy/switch-buffer)) + +(use-package! ox-hugo + :after ox + ) + +(use-package! elfeed-org + :after elfeed + :config + (elfeed-org) + (setq rmh-elfeed-org-files (list "~/.doom.d/elfeed.org")) + ) + +(use-package! deft + :hook deft-mode-hook + :init + (setq deft-directory org-directory) + (setq deft-recursive t) + ) + +(use-package! hl-todo + :hook (prog-mode . hl-todo-mode) + :config + (setq hl-todo-keyword-faces + `( + ("PROJ" . ,(face-foreground 'error)) + ("SOMEDAY" . ,(face-foreground 'warning)) + ("TODO" . ,(face-foreground 'warning)) + ("PROG" . ,(face-foreground 'error)) + ("NEXT" . ,(face-foreground 'error)) + ("WAIT" . ,(face-foreground 'warning)) + ("CANCEL" . ,(face-foreground 'error)) + ("DELEGATED" . ,(face-foreground 'error)) + ("IDEA" . ,(face-foreground 'warning)) + ("GOAL" . ,(face-foreground 'warning)) + ("DUD" . ,(face-foreground 'error)) + ("RD" . ,(face-foreground 'warning)) + ("RDING" . ,(face-foreground 'warning)) + ("RDNOTE" . ,(face-foreground 'warning)) + ("TMPDROP" . ,(face-foreground 'warning)) + ("DROP" . ,(face-foreground 'error)) + ("FNSHED" . ,(face-foreground 'success)) + ("DONE" . ,(face-foreground 'success))))) + +(use-package! engrave-faces-latex + :after ox-latex) + +(use-package! org-ol-tree + :commands org-ol-tree) + +(use-package! org-chef + :commands (org-chef-insert-recipe org-chef-get-recipe-from-url)) + +(use-package! org-pretty-table + :commands (org-pretty-table-mode global-org-pretty-table-mode)) + +(use-package! aas :commands aas-mode) + +(use-package! laas + :hook (LaTeX-mode . laas-mode) + :config + (defun laas-tex-fold-maybe () + (unless (equal "/" aas-transient-snippet-key) + (+latex-fold-last-macro-a))) + (add-hook 'aas-post-snippet-expand-hook #'laas-tex-fold-maybe)) + +(use-package! calfw-org + :after calfw) + +(use-package! org-agenda + :defer + :init + (setq org-agenda-files (list + (concat org-directory "projects.org") + (concat org-directory "monthly_habits.org") + (concat org-directory "quarterly_habits.org") + (concat org-directory "personal.org") + (concat org-directory "taxes.org") + (concat org-directory "birthdays_and_important_days.org") + (concat org-directory "reading_list.org") + (concat org-directory "school.org") + (concat org-directory "daily_habits.org") + (concat org-directory "weekly_habits.org") + (concat org-directory "reflections/2021_refl.org") + (concat org-directory "someday.org") + (concat org-directory "projects/2021/") + org-journal-dir)) + + :config + (setq org-habit-show-habits-only-for-today t) + ;; Org Agenda Files + + ;; org agenda + (setq org-agenda-time-grid + (quote + ((daily today remove-match) + (700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300) + "......" "----------------"))) + ) + +(use-package! org-super-agenda + :after org-agenda + :init + ;; for some reason org-agenda evil bindings were being weird with j and k + (map! :map org-agenda-keymap "j" #'org-agenda-next-line) + (map! :map org-agenda-mode-map "j" #'org-agenda-next-line) + (map! :map org-super-agenda-header-map "j" #'org-agenda-next-line) + (map! :map org-agenda-keymap "k" #'org-agenda-previous-line) + (map! :map org-agenda-mode-map "k" #'org-agenda-previous-line) + (map! :map org-super-agenda-header-map "k" #'org-agenda-previous-line) + (map! :map org-super-agenda-header-map "k" #'org-agenda-previous-line) + (map! :map org-super-agenda-header-map "k" #'org-agenda-previous-line) + + (setq org-agenda-custom-commands '( + ("r" "Main View" + ((agenda "" ((org-agenda-span 'day) + (org-agenda-start-day "+0d") + (org-agenda-overriding-header "") + (org-super-agenda-groups + '((:name "Today" + :time-grid t + :date today + :order 1 + :scheduled today + :todo "TODAY"))))) + (alltodo "" ((org-agenda-overriding-header "") + (org-super-agenda-groups + '( + (:discard (:habit)) + (:todo "PROJ") + (:todo "PROG") + (:todo "NEXT") + (:todo "WAIT") + (:todo "RD") + (:todo "RDING") + (:todo "RDNOTE") + (:name "Important" :priority "A") + (:todo "TODO") + (:todo "GOAL") + (:discard (:todo "IDEA")) + (:discard (:todo "RD")) + (:discard (:todo "TMPDROP")) + (:discard (:todo "SOMEDAY")) + )))))) + + ("w" "Someday and Idea" + ((alltodo "" ((org-agenda-overriding-header "") + (org-super-agenda-groups + '( + (:todo "IDEA") + (:todo "SOMEDAY") + (:discard (:todo "PROJ")) + (:discard (:todo "PROG")) + (:discard (:todo "NEXT")) + (:discard (:todo "WAIT")) + (:discard (:todo "RDNOTE")) + (:discard (:todo "RD")) + (:discard (:todo "RDING")) + (:discard (:todo "TODO")) + (:discard (:todo "GOAL")) + ) + ))))))) + + + :config + (org-super-agenda-mode)) + +;; Org Roam +(use-package! org-roam + :commands (org-roam-insert org-roam-find-file org-roam) + :init + (setq org-roam-directory (concat org-directory "roam")) + (setq org-roam-buffer-width 0.2) + (map! :leader + :prefix "n" + :desc "Org-Roam-Insert" "i" #'org-roam-insert + :desc "Org-Roam-Find" "/" #'org-roam-find-file + :desc "Org-Roam-Buffer" "r" #'org-roam) + ) + + +;; Attempt to remove lag +(setq key-chord-two-keys-delay 0.7) -(add-hook! 'org-mode-hook (company-mode -1)) -(add-hook! 'org-capture-mode-hook (company-mode -1)) +(after! org (load! "org-conf.el")) -(setq baby-blue '("#d2ecff" "#d2ecff" "brightblue")) +;; Better window management +(map! :map evil-window-map + "SPC" #'rotate-layout + ;; Navigation + "" #'evil-window-left + "" #'evil-window-down + "" #'evil-window-up + "" #'evil-window-right + ;; Swapping windows + "C-" #'+evil/window-move-left + "C-" #'+evil/window-move-down + "C-" #'+evil/window-move-up + "C-" #'+evil/window-move-right) +(after! company + (setq company-idle-delay 0.2 + company-minimum-prefix-length 2)) + +(after! evil-escape (evil-escape-mode -1)) +(after! evil (setq evil-ex-substitute-global t)) ; I like my s/../.. to by global by default + +(setq emojify-emoji-set "twemoji-v2") + +(setq-default history-length 1000) +(setq-default prescient-history-length 1000) + +(set-company-backend! + '(text-mode + markdown-mode + gfm-mode) + '(:seperate + company-ispell + company-files + company-yasnippet)) (setq - doom-theme 'doom-challenger-deep - doom-font (font-spec :family "CaskaydiaCove Nerd Font Mono" :size 16 :weight 'regular) - default-directory "~" - dart-format-on-save t - web-mode-markup-indent-offset 2 - web-mode-code-indent-offset 2 - web-mode-css-indent-offset 2 - mac-command-modifier 'meta - js-indent-level 2 - typescript-indent-level 2 - json-reformat:indent-width 2 - prettier-js-args '("--single-quote") - projectile-project-search-path '("~/Projects/") - dired-dwim-target t - org-ellipsis " ▾ " - org-bullets-bullet-list '("·") - org-tags-column -80 - org-agenda-files (ignore-errors (directory-files +org-dir t "\\.org$" t)) - org-log-done 'time - css-indent-offset 2 - org-refile-targets (quote ((nil :maxlevel . 1))) - org-capture-templates '(("x" "Note" entry - (file+olp+datetree "journal.org") - "**** [ ] %U %?" :prepend t :kill-buffer t) - ("t" "Task" entry - (file+headline "tasks.org" "Inbox") - "* [ ] %?\n%i" :prepend t :kill-buffer t)) - +doom-dashboard-banner-file (expand-file-name "logo.png" doom-private-dir) - +org-capture-todo-file "tasks.org" - org-super-agenda-groups '((:name "Today" - :time-grid t - :scheduled today) - (:name "Due today" - :deadline today) - (:name "Important" - :priority "A") - (:name "Overdue" - :deadline past) - (:name "Due soon" - :deadline future) - (:name "Big Outcomes" - :tag "bo"))) - -(add-hook! reason-mode - (add-hook 'before-save-hook #'refmt-before-save nil t)) - -(add-hook! - js2-mode 'prettier-js-mode - (add-hook 'before-save-hook #'refmt-before-save nil t)) + default-directory "~" + web-mode-markup-indent-offset 4 + ispell-dictionary "en-custom" + web-mode-code-indent-offset 4 + web-mode-css-indent-offset 4 + js-indent-level 4 + json-reformat:indent-width 4 + prettier-js-args '("--single-quote") + projectile-project-search-path '("~/Projects/") + dired-dwim-target t + nand-hdl-directory "~/Projects/nand2tetris" + css-indent-offset 2) + + +(setq auth-sources + '((:source "~/.config/emacs/.authinfo.gpg"))) (defun insert-current-date () (interactive) - (insert (shell-command-to-string "echo -n $(date +%Y-%m-%d)"))) + (insert (shell-command-to-string "echo -n $(date +%Y-%m-%d)"))) + +;; We expect the encoding to be LF UTF-8, so only show the modeline when this is not the case +(defun doom-modeline-conditional-buffer-encoding () + (setq-local doom-modeline-buffer-encoding + (unless (and (memq (plist-get (coding-system-plist buffer-file-coding-system) :category) + '(coding-category-undecided coding-category-utf-8)) + (not (memq (coding-system-eol-type buffer-file-coding-system) '(1 2)))) +t))) + +(add-hook 'after-change-major-mode-hook #'doom-modeline-conditional-buffer-encoding) + + (map! :ne "M-/" #'comment-or-uncomment-region) (map! :ne "SPC / r" #'deadgrep) (map! :ne "SPC n b" #'org-brain-visualize) (map! :ne "SPC i d" #'insert-current-date) -;; (def-package! parinfer ; to configure it -;; :bind (("C-," . parinfer-toggle-mode) -;; ("" . parinfer-smart-tab:dwim-right) -;; ("S-" . parinfer-smart-tab:dwim-left)) -;; :hook ((clojure-mode emacs-lisp-mode common-lisp-mode lisp-mode) . parinfer-mode) -;; :config (setq parinfer-extensions '(defaults pretty-parens evil paredit))) - -(after! org - (set-face-attribute 'org-link nil - :weight 'normal - :background nil) - (set-face-attribute 'org-code nil - :foreground "#a9a1e1" - :background nil) - (set-face-attribute 'org-date nil - :foreground "#5B6268" - :background nil) - (set-face-attribute 'org-level-1 nil - :foreground "steelblue2" - :background nil - :height 1.2 - :weight 'normal) - (set-face-attribute 'org-level-2 nil - :foreground "slategray2" - :background nil - :height 1.0 - :weight 'normal) - (set-face-attribute 'org-level-3 nil - :foreground "SkyBlue2" - :background nil - :height 1.0 - :weight 'normal) - (set-face-attribute 'org-level-4 nil - :foreground "DodgerBlue2" - :background nil - :height 1.0 - :weight 'normal) - (set-face-attribute 'org-level-5 nil - :weight 'normal) - (set-face-attribute 'org-level-6 nil - :weight 'normal) - (set-face-attribute 'org-document-title nil - :foreground "SlateGray1" - :background nil - :height 1.75 - :weight 'bold) - (setq org-fancy-priorities-list '("⚡" "⬆" "⬇" "☕"))) - -(after! web-mode - (add-to-list 'auto-mode-alist '("\\.njk\\'" . web-mode))) - -(defun +data-hideshow-forward-sexp (arg) - (let ((start (current-indentation))) - (forward-line) - (unless (= start (current-indentation)) - (require 'evil-indent-plus) - (let ((range (evil-indent-plus--same-indent-range))) - (goto-char (cadr range)) - (end-of-line))))) - -(add-to-list 'hs-special-modes-alist '(yaml-mode "\\s-*\\_<\\(?:[^:]+\\)\\_>" "" "#" +data-hideshow-forward-sexp nil)) - -(setq org-directory "~/Documents/org/") +;; zoom in/out like we do everywhere else. +(global-set-key (kbd "C-=") 'text-scale-increase) +(global-set-key (kbd "C--") 'text-scale-decrease) +(global-set-key (kbd "") 'text-scale-decrease) +(global-set-key (kbd "") 'text-scale-increase) (setq +magit-hub-features t) +(setq calc-angle-mode 'rad ; radians are rad + calc-symbolic-mode t) ; keeps expressions like \sqrt{2} irrational for as long as possible + +(use-package! calctex + :commands calctex-mode + :init + (add-hook 'calc-mode-hook #'calctex-mode) + :config + (setq calctex-additional-latex-packages " +\\usepackage[usenames]{xcolor} +\\usepackage{soul} +\\usepackage{adjustbox} +\\usepackage{amsmath} +\\usepackage{amssymb} +\\usepackage{siunitx} +\\usepackage{cancel} +\\usepackage{mathtools} +\\usepackage{mathalpha} +\\usepackage{xparse} +\\usepackage{arevmath}" + calctex-additional-latex-macros + (concat calctex-additional-latex-macros + "\n\\let\\evalto\\Rightarrow")) + (defadvice! no-messaging-a (orig-fn &rest args) + :around #'calctex-default-dispatching-render-process + (let ((inhibit-message t) message-log-max) + (apply orig-fn args))) + ;; Fix hardcoded dvichop path (whyyyyyyy) + (let ((vendor-folder (concat (file-truename doom-local-dir) + "straight/" + (format "build-%s" emacs-version) + "/calctex/vendor/"))) + (setq calctex-dvichop-sty (concat vendor-folder "texd/dvichop") + calctex-dvichop-bin (concat vendor-folder "texd/dvichop"))) + (unless (file-exists-p calctex-dvichop-bin) + (message "CalcTeX: Building dvichop binary") + (let ((default-directory (file-name-directory calctex-dvichop-bin))) + (call-process "make" nil nil nil)))) + +(defun greedily-do-daemon-setup () + (require 'org) + (when (require 'elfeed nil t) + (run-at-time nil (* 8 60 60) #'elfeed-update))) + +;; Open new clients in the dashboard +(when (daemonp) + (add-hook 'emacs-startup-hook #'greedily-do-daemon-setup) + (add-hook! 'server-after-make-frame-hook (switch-to-buffer +doom-dashboard-name))) + (set-popup-rule! "^\\*Org Agenda" :side 'bottom :size 0.90 :select t :ttl nil) -(set-popup-rule! "^CAPTURE.*\\.org$" :side 'bottom :size 0.90 :select t :ttl nil) (set-popup-rule! "^\\*org-brain" :side 'right :size 1.00 :select t :ttl nil) -(defun my-open-calendar () +(sp-local-pair + '(org-mode) + "<<" ">>" + :actions '(insert)) + +(setq +zen-text-scale 0.8) + + +(use-package! lexic + :commands lexic-search lexic-list-dictionary + :config + (map! :map lexic-mode-map + :n "q" #'lexic-return-from-lexic + :nv "RET" #'lexic-search-word-at-point + :n "a" #'outline-show-all + :n "h" (cmd! (outline-hide-sublevels 3)) + :n "o" #'lexic-toggle-entry + :n "n" #'lexic-next-entry + :n "N" (cmd! (lexic-next-entry t)) + :n "p" #'lexic-previous-entry + :n "P" (cmd! (lexic-previous-entry t)) + :n "E" (cmd! (lexic-return-from-lexic) ; expand + (switch-to-buffer (lexic-get-buffer))) + :n "M" (cmd! (lexic-return-from-lexic) ; minimise + (lexic-goto-lexic)) + :n "C-p" #'lexic-search-history-backwards + :n "C-n" #'lexic-search-history-forwards + :n "/" (cmd! (call-interactively #'lexic-search)))) + +(defadvice! +lookup/dictionary-definition-lexic (identifier &optional arg) + :override #'+lookup/dictionary-definition + (interactive + (list (or (doom-thing-at-point-or-region 'word) + (read-string "Look up in dictionary: ")) + current-prefix-arg)) + (lexic-search identifier nil nil t)) + +;; Hooks +(add-hook 'nand-hdl-mode-hook 'yas-minor-mode) + +(defun after-org-mode-load () (interactive) - (cfw:open-calendar-buffer - :contents-sources - (list - (cfw:org-create-source "Green") ; org-agenda source - ))) + (setq olivetti-body-width 0.8) + (olivetti-mode) + ) +(add-hook! 'org-mode-hook 'after-org-mode-load) + +;; Auto-Insert +(autoload 'yas-expand-snippet "yasnippet") +(defun my-autoinsert-yas-expand() + "Replace text in yasnippet template." + (yas-expand-snippet (buffer-string) (point-min) (point-max))) + +(setq-default auto-insert-directory "~/.config/doom/templates") +(auto-insert-mode 1) ;;; Adds hook to find-files-hook +(setq-default auto-insert-query nil) ;;; If you don't want to be prompted before insertion +(define-auto-insert "\\.el$" ["template.el" my-autoinsert-yas-expand]) +(define-auto-insert "\\.c$" ["template.c" my-autoinsert-yas-expand]) +(define-auto-insert "\\.cpp$" ["template.cpp" my-autoinsert-yas-expand]) +(define-auto-insert "\\.h$" ["template.h" my-autoinsert-yas-expand]) +(define-auto-insert "\\.cc$" ["template.cpp" my-autoinsert-yas-expand]) +(define-auto-insert "\\.tex$" ["template.tex" my-autoinsert-yas-expand]) +(define-auto-insert "\\.org$" ["template.org" my-autoinsert-yas-expand]) +(define-auto-insert "\\.py$" ["template.py" my-autoinsert-yas-expand]) +(define-auto-insert "\\.java$" ["template.java" my-autoinsert-yas-expand]) +(define-auto-insert "\\.sh$" ["template.sh" my-autoinsert-yas-expand]) +(define-auto-insert "\\.html$" ["template.html" my-autoinsert-yas-expand]) + +(setq yas-snippet-dirs + '("~/.config/doom/snippets")) + +;; Appearance +(delq! t custom-theme-load-path) ;; Don't prompt on startup +(setq doom-theme 'doom-material-ocean) +(setq + doom-big-font (font-spec :family "CasaydiaCove Nerd Font" :size 22) + doom-font (font-spec :family "CaskaydiaCove Nerd Font" :size 16) + doom-variable-pitch-font (font-spec :family "Overpass" :size 16) + doom-unicode-font (font-spec :family "JuliaMono") + doom-serif-font (font-spec :family "IBM Plex Mono" :weight 'light)) + +(setq +doom-dashboard-banner-file (expand-file-name "logo.png" doom-private-dir)) + diff --git a/.config/doom/custom.el b/.config/doom/custom.el new file mode 100644 index 00000000..ad09f224 --- /dev/null +++ b/.config/doom/custom.el @@ -0,0 +1,46 @@ +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(ansi-color-names-vector + ["#1E1C31" "#FF8080" "#95FFA4" "#FFE9AA" "#91DDFF" "#C991E1" "#AAFFE4" "#CBE3E7"]) + '(custom-safe-themes + '("01d5e0971bfe4b70669ba03f632c68ac7e5b9e0bc5eaf760a780d88ca271dae2" default)) + '(fci-rule-color "#858FA5") + '(jdee-db-active-breakpoint-face-colors (cons "#100E23" "#906CFF")) + '(jdee-db-requested-breakpoint-face-colors (cons "#100E23" "#95FFA4")) + '(jdee-db-spec-breakpoint-face-colors (cons "#100E23" "#565575")) + '(objed-cursor-color "#FF8080") + '(pdf-view-midnight-colors (cons "#CBE3E7" "#1E1C31")) + '(rustic-ansi-faces + ["#1E1C31" "#FF8080" "#95FFA4" "#FFE9AA" "#91DDFF" "#C991E1" "#AAFFE4" "#CBE3E7"]) + '(vc-annotate-background "#1E1C31") + '(vc-annotate-color-map + (list + (cons 20 "#95FFA4") + (cons 40 "#b8f7a6") + (cons 60 "#dbf0a8") + (cons 80 "#FFE9AA") + (cons 100 "#ffd799") + (cons 120 "#ffc488") + (cons 140 "#FFB378") + (cons 160 "#eda79b") + (cons 180 "#db9cbd") + (cons 200 "#C991E1") + (cons 220 "#db8bc0") + (cons 240 "#ed85a0") + (cons 260 "#FF8080") + (cons 280 "#d4757d") + (cons 300 "#aa6a7a") + (cons 320 "#805f77") + (cons 340 "#858FA5") + (cons 360 "#858FA5"))) + '(vc-annotate-very-old-color nil)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) +(put 'projectile-ripgrep 'disabled nil) diff --git a/.config/doom/init.el b/.config/doom/init.el index cda920aa..c8f3eff8 100644 --- a/.config/doom/init.el +++ b/.config/doom/init.el @@ -3,43 +3,46 @@ (doom! :feature - ;debugger ; FIXME stepping through code, to help you add bugs - :completion (company ; the ultimate code completion backend - +tng +auto ; as-you-type code completion +childframe) ; a nicer company UI. Emacs +26 only! (ivy - +fuzzy); a search engine for love and life + +icons + +childframe + +prescient + +fuzzy) ; a search engine for love and life :ui deft workspaces ; tab emulation, persistence & separate workspaces doom ; what makes DOOM look the way it does doom-dashboard ; a nifty splash screen for Emacs - modeline ; a snazzy Atom-inspired mode-line + modeline ; a snazzy Atom-inspired mode-line + ophints ; highlight the region an operation acts on doom-quit ; DOOM quit-message prompts when you quit Emacs ophints ; display visual hints when editing in evil hl-todo ; highlight TODO/FIXME/NOTE tags nav-flash ; blink the current line after jumping treemacs ; a project drawer, like neotree but cooler + vc-gutter ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond eob (popup ; tame sudden yet inevitable temporary windows +all ; catch all popups that start with an asterix +defaults) ; default popup rules - vc-gutter ; vcs diff in the fringe - vi-tilde-fringe ; fringe tildes to mark beyond EOB - window-select ; visually switch windows + ;;(ligatures +extra) ; ligatures and symbols to make your code pretty again + (window-select +numbers) ; visually switch windows + zen ; distraction-free coding or writing :emacs - (dired - +icons); making dired pretty [functional] + (dired +icons); making dired pretty [functional] electric ; smarter, keyword-based electric-indent + (ibuffer +icons) ; interactive buffer management + (undo +tree) ; persistent, smarter undo for your inevitable mistakes vc ; version-control and Emacs, sitting in a tree :term - eshell ; a consistent, cross-platform shell (WIP) - vterm + vterm ; the best terminal emulation in Emacs :editor @@ -50,20 +53,25 @@ snippets ; my elves. They type so I don't have to ;;parinfer ; turn lisp into python, sort of rotate-text ; cycle region at point between text candidates + (format) ; automated prettiness + rotate-text ; cycle region at point between text candidates :tools + taskrunner ; taskrunner for gradle, make etc eval ; run code, run (also, repls) gist ; interacting with github gists - (lookup ; helps you navigate your code and documentation - +devdocs ; ...on devdocs.io online - +docsets) ; ...or in Dash docsets locally - ;macos ; MacOS-specific commands make ; run make tasks from Emacs - magit ; + (magit +forge) ; a git porcelain for Emacs pass ; password manager for nerds - ;pdf ; pdf enhancements - ;rgb ; creating color strings - tmux ; an API for interacting with tmux + pdf ; pdf enhancements + rgb ; creating color strings + debugger ; FIXME stepping through code, to help you add bugs + lsp ; Language Server Protocol + direnv ; be direct about your environment + docker ; port everything to containers + editorconfig ; let someone else argue about tabs vs spaces + ein ; tame Jupyter notebooks with emacs + ;;tmux ; an API for interacting with tmux upload ; map local to remote projects via ssh/ftp flycheck flyspell @@ -80,14 +88,18 @@ ;; elixir ; erlang done right ;; elm ; care for a cup of TEA? emacs-lisp ; drown in parentheses - ;;ess ; emacs speaks statistics + ess ; emacs speaks statistics go ; the hipster dialect ;; (haskell +intero) ; a language that's lazier than I am ;; hy ; readability of scheme w/ speed of python - (java +meghanada) ; the poster child for carpal tunnel syndrome - javascript ; all(hope(abandon(ye(who(enter(here)))))) + (java +lsp) ; the poster child for carpal tunnel syndrome + (javascript +lsp) ; all(hope(abandon(ye(who(enter(here)))))) + (julia +lsp) ; a better, faster MATLAB ;; julia ; a better, faster MATLAB - latex ; writing papers in Emacs has never been so fun + (latex ; writing papers in Emacs has never been so fun + +latexmk ; what else would you use? + +cdlatex ; quick maths symbols + +fold) ; fold the clutter away nicities ;; ledger ; an accounting system in Emacs ;; lua ; one-based indices? one-based indices markdown ; writing docs for people to ignore @@ -95,8 +107,13 @@ ;; ocaml ; an objective camel (org ; organize your plain life in plain text +attach ; custom attachment system + +journal +babel ; running code in org - +hugo + +hugo ; Write hugo posts in org-mode + +gnuplot ; Who doesn't love plots + +roam ; roam around your notes + +pandoc ; export-with-pandoc support + +pretty ; yessss my pretties! (nice unicode symbols) +capture ; org-capture in and outside of Emacs +export ; Exporting org to whatever you want +present) ; Emacs for presentations @@ -119,18 +136,20 @@ ;; toward a specific purpose. They may have additional dependencies and ;; should be loaded late. :app - (:if (executable-find "mu") (mu4e +org +gmail)) + ;;(:if (executable-find "mu") (mu4e +org +gmail)) ;;notmuch ;;(wanderlust +gmail) calendar ; A dated approach to timetabling ;;emms ; Multimedia in Emacs is music to my ears everywhere ; *leave* Emacs!? You must be joking. - irc ; how neckbeards socialize + ;;irc ; how neckbeards socialize (rss +org) ; emacs as an RSS reader - ;;twitter ; twitter client https://twitter.com/vnought + twitter ; twitter client https://twitter.com/vnought :config ;; The default module set reasonable defaults for Emacs. It also provides ;; a Spacemacs-inspired keybinding scheme, a custom yasnippet library, ;; and additional ex commands for evil-mode. Use it as a reference for ;; your own modules. - (default +bindings +snippets +evil-commands)) + (default +bindings +snippets +evil-commands +smartparens)) + +(add-load-path! "lisp/") diff --git a/.config/doom/lisp/bison-mode.el b/.config/doom/lisp/bison-mode.el new file mode 100644 index 00000000..430066e7 --- /dev/null +++ b/.config/doom/lisp/bison-mode.el @@ -0,0 +1,913 @@ +;;; bison-mode.el --- Major mode for editing bison, yacc and lex files. + +;; Copyright (C) 1998 Eric Beuscher +;; +;; Author: Eric Beuscher +;; Created: 2 Feb 1998 +;; Version: 0.2 +;; Keywords: bison-mode, yacc-mode + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;;; Commentary: + +;;;; I wrote this since I saw one mode for yacc files out there roaming the +;;;; world. I was daunted by the fact the it was written in 1990, and Emacs +;;;; has evolved so much since then (this I assume based on its evolution since +;;;; i started using it). So I figured if i wanted one, I should make it +;;;; myself. Please excuse idiosyncrasies, as this was my first major mode +;;;; of this kind. The indentation code may be a bit weird, I am not sure, +;;;; it was my first go at doing Emacs indentation, so I look at how other +;;;; modes did it, but then basically did what I thought was right + +;;;; I hope this is useful to other hackers, and happy Bison/Yacc hacking +;;;; If you have ideas/suggestions/problems with this code, I can be reached at +;;;; beuscher@eecs.tulane.edu + +;;;; Eric --- Sat Mar 7 1:40:20 CDT 1998 + +;;;; Bison Sections: +;;;; there are five sections to a bison file (if you include the area above the +;;;; C declarations section. most everything in this file either does +;;;; actions based on which section you are deemed to be in, or based on an +;;;; assumption that the function will only be called from certain sections. +;;;; the function `bison--section-p' is the section parser + +;;;; Indentation: +;;;; indentations are done based on the section of code you are in. there is +;;;; a procedure `bison--within-braced-c-expression-p' that checks for being in +;;;; C code. if you are within c-code, indentations should occur based on +;;;; how you have your C indentation set up. i am pretty sure this is the +;;;; case. +;;;; there are four variables, which control bison indentation within either +;;;; the bison declarations section or the bison grammar section +;;;; `bison-rule-separator-column' +;;;; `bison-rule-separator-column' +;;;; `bison-decl-type-column' +;;;; `bison-decl-token-column' + +;;;; flaw: indentation works on a per-line basis, unless within braced C sexp, +;;;; i should fix this someday +;;;; and to make matters worse, i never took out c-indent-region, so that is +;;;; still the state of the `indent-region-function' variable + +;;;; Electricity: +;;;; by default, there are electric -colon, -pipe, -open-brace, -close-brace, +;;;; -semicolon, -percent, -less-than, -greater-than +;;;; the indentation caused by these work closely with the 4 indentation +;;;; variables mentioned above. +;;;; any of these can be turned off individually by setting the appropriate +;;;; `bison-electric-...' variable. or all of them can be turned off by +;;;; setting `bison-all-electricity-off' + +;;;; todo: should make available a way to use C-electricity if in C sexps + +;;; Code: + +(require 'cc-mode) + +;;;###autoload +(add-to-list 'auto-mode-alist '("\\.y\\'" . bison-mode)) +;;;###autoload +(add-to-list 'auto-mode-alist '("\\.l\\'" . flex-mode)) +;;;###autoload +(add-to-list 'auto-mode-alist '("\\.jison\\'" . jison-mode)) + +;; *************** internal vars *************** + +(defvar bison--declarers '("%union" "%token" "%type" + "%left" "%right" "%nonassoc") + "commands which can declare a token or state type") + +(defvar bison--word-constituent-re "\\(\\sw\\|_\\)") +(defvar bison--production-re + (concat "^" bison--word-constituent-re "+:")) + +(defvar bison--pre-c-decls-section 0 + "section before c-declarations-section, if that section exists") +(defvar bison--c-decls-section 1 + "section denoted by %{ and $} for c-declarations at the top of a bison file") +(defvar bison--bison-decls-section 2 + "section before the rules section") +(defvar bison--grammar-rules-section 3 + "section delimited by %%'s where productions and rules are enumerated") +(defvar bison--c-code-section 4 + "section after the second %% where c-code can be placed") + +(defvar bison--c-decls-section-opener "%{") +(defvar bison--c-decls-section-closer "%}") +(defvar bison--grammar-rules-section-delimeter "%%") + + +;; *************** user-definable vars *************** + +(defvar bison-rule-separator-column 8 + "column for rule and production separators \"|\" and \";\"") +(defvar bison-rule-enumeration-column 16 + "column for beginning enumeration of a production's rules") +(defvar bison-decl-type-column 8 + "columnn in which tokens' and states' types should be when declared") +(defvar bison-decl-token-column 24 + "column in which tokens and states are listed when declared, +as with %token, %type, ...") + + +(defvar bison-all-electricity-off nil + "non-nil means all electric keys will be disabled, +nil means that a bison-electric-* key will be on or off based on the individual +key's electric variable") + +;;; i know lisp has the dual name spaces, but i find it more aesthetically +;;; pleasing to not take advantage of that +(defvar bison-electric-colon-v t + "non-nil means use an electric colon") +(defvar bison-electric-pipe-v t + "non-nil means use an electric pipe") +(defvar bison-electric-open-brace-v t + "non-nil means use an electric open-brace") +(defvar bison-electric-close-brace-v t + "non-nil means use an electric close-brace") +(defvar bison-electric-semicolon-v t + "non-nil means use an electric semicolon") +(defvar bison-electric-percent-v t + "non-nil means use an electric percent") +(defvar bison-electric-less-than-v t + "non-nil means use an electric less-than") +(defvar bison-electric-greater-than-v t + "non-nil means use an electric greater-than") + + +(defconst bison-font-lock-keywords + (append + (list + (cons (concat "^\\(" (regexp-opt bison--declarers) "\\)") + '(1 font-lock-keyword-face)) + ) + c-font-lock-keywords) + "Default expressions to highlight in Bison mode") + +;; *************** utilities *************** + +(defun just-no-space () + "Delete all spaces and tabs around point, leaving no spaces." + (interactive "*") + (skip-chars-backward " \t") + (delete-region (point) (progn (skip-chars-forward " \t") (point))) + t) + +(defun previous-white-space-p () + "return t if there is whitespace between the beginning of the line and the +current (point)" + (save-excursion + (let ((current-point (point))) + (beginning-of-line) + (if (re-search-forward "\\s " current-point t) + t + nil)))) + +(defun previous-non-ws-p () + "return t if there are non-whitespace characters between beginning of line +and \(point\)" + (save-excursion + (let ((current-point (point))) + (beginning-of-line) + (re-search-forward "[^ \t]" current-point t) + ))) + +(defun following-non-ws-p () + "return t if there are non-whitespace characters on the line" + (save-excursion + (let ((current-point (point))) + (end-of-line) + (re-search-backward "[^ \t]+" current-point t) + ))) + +(defun line-of-whitespace-p () + "return t if the line consists of nothiing but whitespace, nil otherwise" + (save-excursion + (let ((eol (progn (end-of-line) (point)))) + (beginning-of-line) ;; should already be there anyway + (not (re-search-forward "[^ \t\n]" eol t))))) + +;; *************** bison-mode *************** + +;;;###autoload +(define-derived-mode bison-mode c-mode "Bison" + "Major mode for editing bison/yacc files." + + ;; try to set the indentation correctly + (setq c-basic-offset 4) + + (c-set-offset 'knr-argdecl-intro 0) + + ;; remove auto and hungry anything + (c-toggle-auto-hungry-state -1) + (c-toggle-auto-newline -1) + (c-toggle-hungry-state -1) + + (use-local-map bison-mode-map) + + (define-key bison-mode-map ":" 'bison-electric-colon) + (define-key bison-mode-map "|" 'bison-electric-pipe) + (define-key bison-mode-map "{" 'bison-electric-open-brace) + (define-key bison-mode-map "}" 'bison-electric-close-brace) + (define-key bison-mode-map ";" 'bison-electric-semicolon) + (define-key bison-mode-map "%" 'bison-electric-percent) + (define-key bison-mode-map "<" 'bison-electric-less-than) + (define-key bison-mode-map ">" 'bison-electric-greater-than) + + (define-key bison-mode-map [tab] 'bison-indent-line) + + (make-local-variable 'indent-line-function) + (setq indent-line-function 'bison-indent-new-line) + (make-local-variable 'comment-start) + (make-local-variable 'comment-end) + (setq comment-start "/*" + comment-end "*/") + (make-local-variable 'font-lock-keywords) + (setq font-lock-keywords nil) + (set (make-local-variable 'font-lock-defaults) '(bison-font-lock-keywords))) + + +;; *************** section parsers *************** + +(defun bison--section-p () + "Return the section that user is currently in" + (save-excursion + (let ((bound (point))) + (goto-char (point-min)) + (bison--section-p-helper bound)))) + +(defun bison--section-p-helper (bound) + (if (re-search-forward + (concat "^" bison--c-decls-section-opener) + bound t) + (if (re-search-forward + (concat "^" bison--c-decls-section-closer) + bound t) + (if (re-search-forward + (concat "^" bison--grammar-rules-section-delimeter) + bound t) + (if (re-search-forward + (concat "^" bison--grammar-rules-section-delimeter) + bound t) + bison--c-code-section + bison--grammar-rules-section) + bison--bison-decls-section) + bison--c-decls-section) + (if (re-search-forward + (concat "^" bison--grammar-rules-section-delimeter) + bound t) + (if (re-search-forward + (concat "^" bison--grammar-rules-section-delimeter) + bound t) + bison--c-code-section + bison--grammar-rules-section) + (if (re-search-forward + (concat "^" bison--c-decls-section-opener) + nil t) + bison--pre-c-decls-section + (if (re-search-forward + (concat "^" bison--grammar-rules-section-delimeter) + nil t) + bison--bison-decls-section + bison--pre-c-decls-section))))) + + +;; *************** syntax parsers *************** + +(defun bison--production-p () + "return t if the \(point\) rests immediately after a production" + (save-excursion + (let ((current-point (point))) + (beginning-of-line) + (let ((position (re-search-forward + bison--production-re current-point t))) + (and position + (not (previous-white-space-p)) + (= position current-point)))))) + +(defun bison--find-production-opener () + "return and goto the point of the nearest production opener above \(point\)" + (re-search-backward bison--production-re nil t)) + + +(defun bison--find-next-production () + "return the position of the beginning of the next production, +or nil if there isnt one" + (save-excursion + (if (re-search-forward bison--production-re nil t) + (progn + (beginning-of-line) + (point)) + nil))) + +(defun bison--find-grammar-end () + "return the position of the end of the grammar rules (assuming we are within +the grammar rules section), or nil if there isnt one" + (save-excursion + (if (re-search-forward + (concat "^" bison--grammar-rules-section-delimeter) + nil t) + (progn + (beginning-of-line) + (point)) + nil))) + +(defun bison--find-grammar-begin () + "return the position of the beginning of the grammar rules (assuming we are +within the grammar rules section), or nil if there isnt one" + (save-excursion + (if (re-search-backward + (concat "^" bison--grammar-rules-section-delimeter) + nil t) + (point) + nil))) + +(defun bison--within-started-production-p () + "is used by bison-electric-* functions to determine actions +return t if within a production, nil if not + +a point is within a production if there is some non whitespace text before +either the beginnings of another production or the end of the grammar rules" + (save-excursion + (let ((bound (cond ((bison--find-next-production)) + ((bison--find-grammar-end)) + (t nil)))) + (if bound + (let ((sval (re-search-forward + (concat "\\(\\s \\|" ;; whitespace or + ;; comments + (regexp-quote comment-start) + "\\(.\\|\n\\)*" ;; comment body + (regexp-quote comment-end) + "\\)+") ;; end or + bound t))) + (if sval + (not (= sval bound)) + nil)) + nil)))) + +(defun bison--within-some-sexp-p (starter ender) + "return t if the \(point\) is within the sexp marked by the re's STARTER and +ENDER" + (save-excursion + (let ((current-point (point))) + (if (re-search-backward starter nil t) ;; find nearest starter + ;; look for ender, if found, then not within sexp + (progn + (goto-char (match-end 0)) + (not (re-search-forward ender current-point t))))))) + +(defun bison--within-c-comment-p () + "return t if the point is within a c comment delimited by \"/*\" \"*/\"" + (bison--within-some-sexp-p (regexp-quote comment-start) + (regexp-quote comment-end))) + + +(defun bison--within-string-p (&optional point) + " +start from the beginning of the buffer and toggle state as un-escaped \"'s are +found." + (let ((point (or point (point))) + (in-p nil)) + (save-excursion + (goto-char (point-min)) + + (while (re-search-forward "[^\\]\"" point t) + (setq in-p (not in-p))) + + in-p))) + +;;; bison--within-braced-c-expression-p +;;; new and improved, no more recursion, does not break when literal strings +;;; contain un-matched braces +(defun bison--within-braced-c-expression-p (section) + "return t if the point is within an sexp delimited by braces \({,}\) +" + (save-excursion + (bison--within-braced-c-expression-p-h section (point)))) + +(defun bison--within-braced-c-expression-p-h (section low-pt) + " +Notes: +save excursion is done higher up, so i dont concern myself here. +" + (cond ((= section bison--pre-c-decls-section) nil) + ((= section bison--c-decls-section) + (let ((opener (save-excursion (search-backward "%{")))) + (bison--within-braced-c-expression-p-h-h opener low-pt))) + ((= section bison--bison-decls-section) + (let ((opener (save-excursion + (or (search-backward "%}" nil t) + (point-min))))) + (bison--within-braced-c-expression-p-h-h opener low-pt))) + ((= section bison--grammar-rules-section) + (let ((opener (save-excursion (bison--find-production-opener)))) + (if opener + (bison--within-braced-c-expression-p-h-h opener low-pt) + nil))) + ((= section bison--c-code-section) + t))) + +(defun bison--within-braced-c-expression-p-h-h (high-pt low-pt) + " +Notes: +HIGH-PT goes toward (point-min), LOW-PT goes toward (point-max) +save excursion is done higher up, so i dont concern myself here. +" + (let ((pt (point))) + (let ((success nil) (count 1) (done nil)) + ;; loop until open brace found, that is not in comment or string literal + (while (and (not done) + (re-search-backward "[^%]{" high-pt t count)) ;find nearest + ;starter + (goto-char (match-end 0)) + (if (or (bison--within-c-comment-p) + (bison--within-string-p)) + + (setq count (+ count 1)) + (progn + (setq success t) + (setq done t)))) + + (if success + (let ((end-pt + (condition-case nil + (progn + (backward-char) + (forward-sexp) + (point)) + (error nil)))) + (if end-pt + (if (> end-pt low-pt) + t ; then in braced-c-exp + nil) + t)) ; if no sexp close brace, then w/in + nil)))) + + +(defun bison--bison-decl-opener-p (bol eol) + "return t if the current line is a bison declaration starter +\(i.e. has a %type, %token, %right, ...\)" + (save-excursion + (goto-char bol) + (re-search-forward + (concat "^" (regexp-opt (copy-sequence bison--declarers))) eol t))) + +(defun bison--production-opener-p (bol eol) + "return t if the current line is a line that introduces a new production" + (save-excursion + (goto-char bol) + (re-search-forward bison--production-re eol t))) + +(defun bison--find-bison-semicolon () + "return the position of next semicolon not within braces, nil otherwise" + (save-excursion + (if (search-forward ";" nil t) + (if (not (bison--within-braced-c-expression-p (bison--section-p))) + (point) + (bison--find-bison-semicolon)) + nil))) + +(defun bison--within-production-body-p (section) + "return t if the \(point\) is within the body of a production + +this procedure will fail if it is in a production header" + (save-excursion + (if (= section bison--grammar-rules-section) + (let ((current-point (point))) + (if (re-search-backward bison--production-re nil t) + t + nil)) + nil))) + +(defun bison--production-alternative-p (bol eol section) + "return t if the current line contains a \"|\" used to designate a rule +alternative" + (save-excursion + (goto-char bol) + (if (search-forward "|" eol t) + (not (bison--within-braced-c-expression-p section)) + nil))) + + +;; *************** indent functions *************** + +(defun bison--handle-indent-c-sexp (section indent-column bol) + (let* ((o-brace (re-search-backward "[^%]{" bol t)) + ) + (if o-brace + (if (save-excursion + (goto-char o-brace) + (bison--within-braced-c-expression-p section)) + (c-indent-line) + (if (= (current-indentation) o-brace) ;; if o-brace is first char + (if (not (= o-brace indent-column)) ;; but not in right spot + (progn + (back-to-indentation) + (just-no-space) + (indent-to-column indent-column)) + ;; else all is good + ) + ;; else, non-ws before o-brace, leave it alone + )) + (c-indent-line)))) + +(defun bison-indent-new-line (&optional c-sexp) + "Indent a fresh line of bison code + +assumes indenting a new line, i.e. at column 0 +" + (interactive) + + (let* ((section (bison--section-p)) + (c-sexp (or c-sexp (bison--within-braced-c-expression-p section))) + ) + (cond + (c-sexp + (cond + ((= section bison--grammar-rules-section) + (c-indent-line + (save-excursion + (forward-line -1) + (let ((bol (save-excursion (beginning-of-line) (point))) + (eol (save-excursion (end-of-line) (point)))) + (if (bison--production-opener-p bol eol) + (list + (cons 'defun-block-intro + (progn + (re-search-forward bison--production-re) ; SIGERR + (- (re-search-forward "[^ \t]") ; SIGERR + 1)))) + nil))))) + (t (c-indent-line)))) + ((= section bison--pre-c-decls-section) + (c-indent-line)) + ((= section bison--bison-decls-section) + (indent-to-column bison-decl-token-column)) + ((= section bison--grammar-rules-section) + (indent-to-column + (save-excursion + (let* ((bound (or (save-excursion (bison--find-production-opener)) + (bison--find-grammar-begin))) + (prev-semi (search-backward ";" bound t)) + ) + (if prev-semi + (if (bison--within-braced-c-expression-p section) ; CRACK + bison-rule-enumeration-column + 0) + (if (save-excursion (bison--find-production-opener)) + bison-rule-enumeration-column + 0)))))) + ((= section bison--c-code-section)) ;;leave-alone + ))) + +(defun bison-indent-line () + "Indent a line of bison code." + (interactive) + + (let* ((pos (- (point-max) (point))) + (reset-pt (function (lambda () + (if (> (- (point-max) pos) (point)) + (goto-char (- (point-max) pos)))))) + (bol (save-excursion (beginning-of-line) (point))) + (eol (save-excursion (end-of-line) (point))) + ) + (let* ((section (bison--section-p)) + (c-sexp (bison--within-braced-c-expression-p section)) + (ws-line (line-of-whitespace-p)) + ) + (cond + ;; if you are a line of whitespace, let indent-new-line take care of it + (ws-line + (bison-indent-new-line c-sexp)) + + ((= section bison--pre-c-decls-section) + ;; leave things alone + ) + + ((= section bison--c-decls-section) + (if c-sexp + (bison--handle-indent-c-sexp section 0 bol) + (if (not (= (current-indentation) 0)) + (progn + (back-to-indentation) + (just-no-space) + (funcall reset-pt))))) + + ((= section bison--bison-decls-section) + (let ((opener (bison--bison-decl-opener-p bol eol))) + (cond + (opener + (goto-char opener) + (skip-chars-forward " \t" eol) + (if (looking-at "{") + (save-excursion + (if (following-non-ws-p) + (progn + (forward-char 1) + (just-no-space) + (newline) + (bison-indent-new-line t)))) + (let ((complete-type t)) + (if (looking-at "<") + (progn + (setq complete-type nil) + (if (not (= (current-column) bison-decl-type-column)) + (progn + (just-no-space) + (indent-to-column bison-decl-type-column)) + (and (re-search-forward + (concat "<" bison--word-constituent-re "+>") + eol t) + (setq complete-type t))))) + (and complete-type + (skip-chars-forward " \t" eol) + (looking-at + (concat "\\(" bison--word-constituent-re "\\|'\\)")) + (if (not (= (current-column) bison-decl-token-column)) + (progn + (just-no-space) + (indent-to-column bison-decl-token-column)))))) + (funcall reset-pt)) + (c-sexp + (bison--handle-indent-c-sexp section 0 bol)) + (t + (back-to-indentation) + ;; only tab in names, leave comments alone + (cond (;; put word-constiuents in bison-decl-token-column + (looking-at bison--word-constituent-re) + (if (not (= (current-column) bison-decl-token-column)) + (progn + (just-no-space) + (indent-to-column bison-decl-token-column)))) + ;; put/keep close-brace in the 0 column + ((looking-at "}") + (if (not (= (current-column) 0)) + (just-no-space))) + ;; leave comments alone + ((looking-at (regexp-quote comment-start)) nil) + ;; else do nothing + ) + (funcall reset-pt))))) + ((= section bison--grammar-rules-section) + (cond + ((bison--production-opener-p bol eol) + (beginning-of-line) + (re-search-forward bison--production-re);; SIGERR + (if (following-non-ws-p) + (if (> (current-column) bison-rule-enumeration-column) + (progn + (just-no-space) + (newline) + (indent-to-column bison-rule-enumeration-column)) + (save-excursion + (re-search-forward bison--word-constituent-re);; SIGERR + (let ((col (current-column))) + (cond ((> col (+ 1 bison-rule-enumeration-column)) + (forward-char -1) + (just-no-space) + (indent-to-column bison-rule-enumeration-column)) + ((< col (+ 1 bison-rule-enumeration-column)) + (forward-char -1) + (indent-to-column + bison-rule-enumeration-column))))))) + (funcall reset-pt)) + ((bison--production-alternative-p bol eol section) + (back-to-indentation);; should put point on "|" + (if (not (= (current-column) bison-rule-separator-column)) + (progn + (just-no-space) + (indent-to-column bison-rule-separator-column))) + (forward-char 1) + (if (following-non-ws-p) + (save-excursion + (re-search-forward bison--word-constituent-re);; SIGERR + (let ((col (current-column))) + (cond ((> col (+ 1 bison-rule-enumeration-column)) + (forward-char -1) + (just-no-space) + (indent-to-column bison-rule-enumeration-column)) + ((< col (+ 1 bison-rule-enumeration-column)) + (forward-char -1) + (indent-to-column + bison-rule-enumeration-column)))))) + (funcall reset-pt)) + (c-sexp + (bison--handle-indent-c-sexp + section bison-rule-enumeration-column bol) + (funcall reset-pt)) + ((bison--within-production-body-p section) + (back-to-indentation) + (if (not (= (current-column) bison-rule-enumeration-column)) + (progn + (just-no-space) + (indent-to-column + bison-rule-enumeration-column))) + (funcall reset-pt)) + (t + (let ((cur-ind (current-indentation))) + (if (eq (save-excursion (search-backward "}" bol t)) + cur-ind) + (if (not (= cur-ind bison-rule-enumeration-column)) + (progn + (back-to-indentation) + (just-no-space) + (indent-to-column bison-rule-enumeration-column) + (funcall reset-pt))) + ;; else leave alone + ))))) + ((= section bison--c-code-section) + (c-indent-line)) + )))) + +;; *************** electric-functions *************** + +(defun bison-electric-colon (arg) + "If the colon <:> delineates a production, + then insert a semicolon on the next line in the BISON-RULE-SEPARATOR-COLUMN, + put the cursor in the BISON-RULE-ENUMERATION-COLUMN for the beginning + of the rule + else just run self-insert-command +A colon delineates a production by the fact that it is immediately preceded by +a word(alphanumerics or '_''s), and there is no previous white space. +" + (interactive "P") + + (self-insert-command (prefix-numeric-value arg)) + (if (and bison-electric-colon-v + (not bison-all-electricity-off)) + (if (and (= bison--grammar-rules-section (bison--section-p)) + (bison--production-p) + (not (bison--within-started-production-p))) + (progn + (save-excursion ; put in a closing semicolon + (newline) + (indent-to-column bison-rule-separator-column) + (insert ";")) + (save-excursion ; remove opening whitespace + (if (re-search-backward + "\\s " + (save-excursion (beginning-of-line) (point)) + t) + (just-no-space))) + (if (not (< (current-column) bison-rule-enumeration-column)) + (newline)) + (indent-to-column bison-rule-enumeration-column))))) + +(defun bison-electric-pipe (arg) + "If the pipe <|> is used as a rule separator within a production, + then move it into BISON-RULE-SEPARATOR-COLUMN + indent to BISON-RULE-ENUMERATION-COLUMN on the same line + else just run self-insert-command +" + (interactive "P") + + (if (and bison-electric-pipe-v + (not bison-all-electricity-off) + (= bison--grammar-rules-section (bison--section-p)) + (line-of-whitespace-p) + ) + (progn + (beginning-of-line) + (just-no-space) + (indent-to-column bison-rule-separator-column) + (self-insert-command (prefix-numeric-value arg)) + (indent-to-column bison-rule-enumeration-column) + ) + (self-insert-command (prefix-numeric-value arg)))) + +(defun bison-electric-open-brace (arg) + "used for the opening brace of a C action definition for production rules, +if there is only whitespace before \(point\), then put open-brace in +bison-rule-enumeration-column" + (interactive "P") + + (if (and bison-electric-open-brace-v + (not bison-all-electricity-off)) + (let ((section (bison--section-p))) + (cond ((and (= section bison--grammar-rules-section) + (not (bison--within-braced-c-expression-p section)) + (not (previous-non-ws-p))) + (if (not (= (current-column) bison-rule-enumeration-column)) + (progn + (just-no-space) + (indent-to-column bison-rule-enumeration-column)))) + ((and (= section bison--bison-decls-section) + (not (bison--within-braced-c-expression-p section)) + (not (previous-non-ws-p))) + (if (not (= (current-column) 0)) + (progn + (just-no-space) + (indent-to-column 0))))))) + + (self-insert-command (prefix-numeric-value arg))) + + +(defun bison-electric-close-brace (arg) + "If the close-brace \"}\" is used as the c-declarations section closer +in \"%}\", then make sure the \"%}\" indents to the beginning of the line" + (interactive "P") + + (self-insert-command (prefix-numeric-value arg)) + + (if (and bison-electric-close-brace-v + (not bison-all-electricity-off)) + (cond ((search-backward "%}" (- (point) 2) t) + (if (= (bison--section-p) bison--c-decls-section) + (progn + (just-no-space) + (forward-char 2)) ; for "%}" + (forward-char 1))) + ))) + +(defun bison-electric-semicolon (arg) + "if the semicolon is used to end a production, then place it in +bison-rule-separator-column + +a semicolon is deemed to be used for ending a production if it is not found +within braces + +this is just self-insert-command as i have yet to write the actual +bison-electric-semicolon function yet +" + (interactive "P") + + (self-insert-command (prefix-numeric-value arg))) + +(defun bison-electric-percent (arg) + "If the percent is a declarer in the bison declaration's section, +then put it in the 0 column." + (interactive "P") + + (if (and bison-electric-percent-v + (not bison-all-electricity-off)) + (let ((section (bison--section-p))) + (if (and (= section bison--bison-decls-section) + (not (bison--within-braced-c-expression-p section)) + (not (previous-non-ws-p)) + (not (= (current-column) 0))) + (just-no-space)))) + + (self-insert-command (prefix-numeric-value arg))) + +(defun bison-electric-less-than (arg) + "If the less-than is a type declarer opener for tokens in the bison +declaration section, then put it in the bison-decl-type-column column." + (interactive "P") + + (if (and bison-electric-less-than-v + (not bison-all-electricity-off)) + (if (and (= (bison--section-p) bison--bison-decls-section) + (bison--bison-decl-opener-p + (save-excursion (beginning-of-line) (point)) + (point))) + (progn + (just-no-space) + (indent-to-column bison-decl-type-column)))) + + (self-insert-command (prefix-numeric-value arg))) + +(defun bison-electric-greater-than (arg) + "If the greater-than is a type declarer closer for tokens in the bison +declaration section, then indent to bison-decl-token-column." + (interactive "P") + + (self-insert-command (prefix-numeric-value arg)) + + (if (and bison-electric-greater-than-v + (not bison-all-electricity-off)) + (let ((current-pt (point)) + (bol (save-excursion (beginning-of-line) (point)))) + (if (and (= (bison--section-p) bison--bison-decls-section) + (bison--bison-decl-opener-p bol (point))) + (if (search-backward "<" bol t) + (if (re-search-forward + (concat "<" bison--word-constituent-re "+>") + current-pt t) + (if (not (following-non-ws-p)) + (progn + (just-no-space) + (indent-to-column bison-decl-token-column))))))))) + +;;;###autoload +(define-derived-mode jison-mode bison-mode "jison" + "Major mode for editing jison files.") +;;;###autoload +(define-derived-mode flex-mode bison-mode "flex" + "Major mode for editing flex files. (bison-mode by any other name)") + +(provide 'bison-mode) +(provide 'jison-mode) +(provide 'flex-mode) + +;;; bison-mode.el ends here diff --git a/.config/doom/packages.el b/.config/doom/packages.el index 167e99d7..f54cde9e 100644 --- a/.config/doom/packages.el +++ b/.config/doom/packages.el @@ -6,7 +6,44 @@ (package! org-fancy-priorities) (package! move-text) (package! vue-mode) -(package! org-super-agenda) (package! deadgrep) (package! sql-indent) (package! org-brain) +(package! calibredb) +(package! nov) +(package! xkcd) +(package! elcord) +(package! tiny) +(package! evil-escape :disable t) +(package! lexic :recipe (:local-repo "lisp/lexic")) + +;; Latex Is Clearly Superior Right??? +(package! aas :recipe (:host github :repo "ymarco/auto-activating-snippets")) +(package! laas :recipe (:local-repo "lisp/LaTeX-auto-activating-snippets")) +(package! auctex) +(package! calctex :recipe (:host github :repo "johnbcoughlin/calctex" + :files ("*.el" "calctex/*.el" "calctex-contrib/*.el" "org-calctex/*.el" "vendor"))) + +;; Org-Mode related +(package! org-super-agenda) +(package! org-caldav) +(package! doct + :recipe (:host github :repo "progfolio/doct")) +(package! org-pretty-table + :recipe (:host github :repo "Fuco1/org-pretty-table")) +(package! org-fragtog) +(package! org-appear :recipe (:host github :repo "awth13/org-appear")) +(package! org-pretty-tags) +(package! org-ol-tree :recipe (:host github :repo "Townk/org-ol-tree")) +(package! org-chef) ;; Real chefs use emacs + +(package! javadoc-help) +(package! nand-hdl-mode + :recipe (:host github :repo "nverno/nand-hdl-mode")) + +(package! browse-kill-ring) +(package! olivetti) +(package! ox-hugo) +(package! polymode) +(package! counsel-org-clock) +(package! mathpix.el :recipe (:host github :repo "jethrokuan/mathpix.el")) diff --git a/.config/doom/templates/template.c b/.config/doom/templates/template.c new file mode 100644 index 00000000..ed90990a --- /dev/null +++ b/.config/doom/templates/template.c @@ -0,0 +1,13 @@ +/* +* `(buffer-name)` +* +* Created by `(user-full-name)` on `(format-time-string "%d/%m/%Y")`. +* Copyright `user-mail-address`. `(format-time-string "%Y")`. All rights reserved. +*/ + +#include + +int main(int argc, char *argv[]) { + +} + diff --git a/.config/doom/templates/template.cpp b/.config/doom/templates/template.cpp new file mode 100644 index 00000000..15c59893 --- /dev/null +++ b/.config/doom/templates/template.cpp @@ -0,0 +1,13 @@ +/* +* `(buffer-name)` +* +* Created by `user-full-name` on `(format-time-string "%d/%m/%Y")`. +* Copyright `user-mail-address`. `(format-time-string "%Y")`. All rights reserved. +*/ + +#include + +int main(int argc, char *argv[]) { + +} + diff --git a/.config/doom/templates/template.el b/.config/doom/templates/template.el new file mode 100644 index 00000000..3aa6e92d --- /dev/null +++ b/.config/doom/templates/template.el @@ -0,0 +1,35 @@ +;;; `(buffer-name)` --- ${1:Description} + +;; Author: `user-full-name` `user-mail-address` +;; Keywords: $2 +;; URL: + +;; Copyright (C) `(format-time-string ""%Y"")`, `user-full-name`, all rights reserved. + +;; 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 . + +;;; Commentary: + +;; + +;;; Code: + +$0 +(provide '`(substring (buffer-name) 0 (- (length (buffer-name)) 3))`) + +;; Local Variables: +;; coding: utf-8 +;; End: + +;;; `(buffer-name)` ends here. diff --git a/.config/doom/templates/template.h b/.config/doom/templates/template.h new file mode 100644 index 00000000..b74ec46b --- /dev/null +++ b/.config/doom/templates/template.h @@ -0,0 +1,12 @@ +/* +* `(buffer-name)` +* +* Created by `(user-full-name)` on `(format-time-string "%d/%m/%Y")`. +* Copyright `user-mail-address`. `(format-time-string "%Y")`. All rights reserved. +*/ + +#ifndef `(replace-regexp-in-string (regexp-quote ".") "_" (buffer-name) nil 'literal))` +#define `(replace-regexp-in-string (regexp-quote ".") "_" (buffer-name) nil 'literal))` + + +#endif /* `(replace-regexp-in-string (regexp-quote .) _ buffer-name nil 'literal))` */ diff --git a/.local/share/vim/templates/skeleton.html b/.config/doom/templates/template.html similarity index 100% rename from .local/share/vim/templates/skeleton.html rename to .config/doom/templates/template.html diff --git a/.config/doom/templates/template.java b/.config/doom/templates/template.java new file mode 100644 index 00000000..63e15f1c --- /dev/null +++ b/.config/doom/templates/template.java @@ -0,0 +1,12 @@ +/* +* `(buffer-name)` +* +* Created by `(user-full-name)` on `(format-time-string "%d/%m/%Y")`. +* Copyright `user-mail-address`. `(format-time-string "%Y")`. All rights reserved. +*/ + +class Untitled { + public static void main(String[] args) { + + } +} diff --git a/.config/doom/templates/template.org b/.config/doom/templates/template.org new file mode 100644 index 00000000..a0390125 --- /dev/null +++ b/.config/doom/templates/template.org @@ -0,0 +1,13 @@ +# -*- coding:utf-8 -*- +#+LANGUAGE: en +#+TITLE: ${1:`(file-name-nondirectory (buffer-file-name))`} +#+AUTHOR: `user-full-name` +#+EMAIL: `user-mail-address` +#+DATE: `(format-time-string "%Y-%m-%d %a" )` +#+DESCRIPTION:$1 +#+KEYWORDS: $2 +#+TAGS:$3 +#+FILETAGS: $4 +#+OPTIONS: H:2 num:nil toc:t \n:t @:t ::t |:t ^:nil -:t f:t *:t <:t +#+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil +#+LATEX_HEADER: \usepackage{fontspec} diff --git a/.config/doom/templates/template.py b/.config/doom/templates/template.py new file mode 100644 index 00000000..be392e4d --- /dev/null +++ b/.config/doom/templates/template.py @@ -0,0 +1,14 @@ +#!/bin/python +# +# `(buffer-name)` +# +# Created by `(user-full-name)` on `(format-time-string "%d/%m/%Y")`. +# Copyright `user-mail-address`. `(format-time-string "%Y")`. All rights reserved. +# + +def main(): + print("hello world") + + +if __name__ == "__main__": + main() diff --git a/.config/doom/templates/template.sh b/.config/doom/templates/template.sh new file mode 100644 index 00000000..06364126 --- /dev/null +++ b/.config/doom/templates/template.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# `(buffer-name)` +# +# Created by `(user-full-name)` on `(format-time-string "%d/%m/%Y")`. +# Copyright `user-mail-address`. `(format-time-string "%Y")`. All rights reserved. + diff --git a/.local/share/vim/templates/skeleton.tex b/.config/doom/templates/template.tex similarity index 59% rename from .local/share/vim/templates/skeleton.tex rename to .config/doom/templates/template.tex index 89f08da6..706b717d 100644 --- a/.local/share/vim/templates/skeleton.tex +++ b/.config/doom/templates/template.tex @@ -1,11 +1,9 @@ % -% [:VIM_EVAL:]expand('%:t')[:END_EVAL:] -% [:VIM_EVAL:]expand('%:p:h:t')[:END_EVAL:] +% `(buffer-name)` % -% Created by Yigit Colakoglu on [:VIM_EVAL:]strftime('%m/%d/%y')[:END_EVAL:]. -% Copyright [:VIM_EVAL:]strftime('%Y')[:END_EVAL:]. Yigit Colakoglu. All rights reserved. +% Created by `(user-full-name)` on `(format-time-string "%d/%m/%Y")`. +% Copyright `user-mail-address`. `(format-time-string "%Y")`. All rights reserved. % - \RequirePackage[l2tabu, orthodox]{nag} \documentclass[12pt]{article} diff --git a/.config/doom/themes/doom-material-ocean-theme.el b/.config/doom/themes/doom-material-ocean-theme.el index 43e2dd0f..ef93f372 100644 --- a/.config/doom/themes/doom-material-ocean-theme.el +++ b/.config/doom/themes/doom-material-ocean-theme.el @@ -1,4 +1,4 @@ -;;; doom-material-theme.el --- inspired by Material Theme by equinusocio -*- no-byte-compile: t; -*- +;;; doom-material-ocean-theme.el --- inspired by VIM Challenger Deep -*- no-byte-compile: t; -*- (require 'doom-themes) ;; @@ -6,151 +6,165 @@ "Options for doom-themes" :group 'doom-themes) +(defcustom doom-material-ocean-brighter-modeline nil + "If non-nil, more vivid colors will be used to style the mode-line." + :group 'doom-material-ocean-theme + :type 'boolean) + +(defcustom doom-material-ocean-brighter-comments nil + "If non-nil, comments will be highlighted in more vivid colors." + :group 'doom-material-ocean-theme + :type 'boolean) + +(defcustom doom-material-ocean-comment-bg doom-material-ocean-brighter-comments + "If non-nil, comments will have a subtle, darker background. Enhancing their +legibility." + :group 'doom-material-ocean-theme + :type 'boolean) + (defcustom doom-material-ocean-padded-modeline doom-themes-padded-modeline - "If non-nil, adds a 4px padding to the mode-line. -Can be an integer to determine the exact padding." + "If non-nil, adds a 4px padding to the mode-line. Can be an integer to +determine the exact padding." :group 'doom-material-ocean-theme :type '(choice integer boolean)) ;; (def-doom-theme doom-material-ocean - "A dark theme inspired by Material Theme by equinusocio" + "A dark theme inspired by VIM Challenger Deep" ;; name default 256 16 - ((bg '("#0F111A" nil nil)) - (bg-alt '("#00010A" nil nil)) - (base0 '("#171F24" "black" "black")) - (base1 '("#1C262B" "#262626" "brightblack")) - (base2 '("#222D32" "#303030" "brightblack")) - (base3 '("#171F24" "#3a3a3a" "brightblack")) - (base4 '("#314048" "#444444" "brightblack")) - (base5 '("#37474F" "#585858" "brightblack")) - (base6 '("#556369" "#626262" "brightblack")) - (base7 '("#737E84" "#767676" "brightblack")) - (base8 '("#9BA3A7" "#a8a8a8" "white")) - (fg '("#E5E9F0" "#e4e4e4" "brightwhite")) - (fg-alt '("#BFC7D5" "#bcbcbc" "white")) - - (grey base5) - - (red '("#BF616A" "#ff0000" "red")) - (orange '("#f78c6c" "#ff5f00" "brightred")) - (green '("#A3BE8C" "#afff00" "green")) - (teal '("#44b9b1" "#00d7af" "brightgreen")) - (yellow '("#EBCB8B" "#ffd700" "brightyellow")) - (blue '("#88C0D0" "#5fafff" "brightblue")) - (dark-blue '("#81A1C1" "#d7ffff" "blue")) - (magenta '("#A48EAD" "#d787d7" "brightmagenta")) - (violet '("#bb80b3" "#d787af" "magenta")) - (cyan '("#89DDFF" "#5fd7ff" "brightcyan")) - (dark-cyan '("#80cbc4" "#00d7af" "cyan")) + ((bg '("#0F111A" "#121212" nil )) + (bg-alt '("#00010A" "#111111" nil )) + (base0 '("#100E23" "#080808" "black" )) + (base1 '("#292F37" "#262626" "brightblack" )) + (base2 '("#3D4551" "#3A3A3A" "brightblack" )) + (base3 '("#4C4B68" "#444466" "brightblack" )) + (base4 '("#565575" "#555577" "brightblack" )) + (base5 '("#858FA5" "#8888AA" "brightblack" )) + (base6 '("#9BA7BF" "#99AABB" "brightblack" )) + (base7 '("#B0BED8" "#BBBBDD" "brightblack" )) + (base8 '("#BAC9E4" "#BBCCEE" "white" )) + (fg-alt '("#B2B2B2" "#BBBBBB" "brightwhite" )) + (fg '("#CBE3E7" "#CCEEEE" "white" )) + + (grey base4) + (red '("#FF8080" "#FF8888" "red" )) + (orange '("#FFB378" "#FFBB77" "brightred" )) + (green '("#95FFA4" "#99FFAA" "green" )) + (teal '("#63F2F1" "#66FFFF" "brightgreen" )) + (yellow '("#FFE9AA" "#FFEEAA" "yellow" )) + (blue '("#91DDFF" "#99DDFF" "brightblue" )) + (dark-blue '("#65B2FF" "#66BBFF" "blue" )) + (magenta '("#C991E1" "#CC99EE" "magenta" )) + (violet '("#906CFF" "#9966FF" "brightmagenta")) + (cyan '("#AAFFE4" "#AAFFEE" "brightcyan" )) + (dark-cyan '("#62D196" "#66DD99" "cyan" )) ;; face categories -- required for all themes - (highlight magenta) - (vertical-bar base2) - (selection base4) - (builtin blue) - (comments base6) - (doc-comments base6) - (constants orange) - (functions blue) - (keywords cyan) - (methods blue) - (operators cyan) - (type magenta) - (strings green) + (highlight violet) + (vertical-bar base1) + (selection violet) + (builtin magenta) + (comments (if doom-material-ocean-brighter-comments dark-blue base4)) + (doc-comments (if doom-material-ocean-brighter-comments (doom-darken dark-cyan 0.3) base5) ) + (constants cyan) + (functions magenta) + (keywords red) + (methods magenta) + (operators teal) + (type blue) + (strings yellow) (variables yellow) (numbers orange) - (region base3) + (region base2) (error red) (warning yellow) (success green) - (vc-modified blue) + (vc-modified orange) (vc-added green) (vc-deleted red) ;; custom categories - (modeline-bg base2) - (modeline-bg-alt (doom-darken bg 0.01)) - (modeline-fg base8) - (modeline-fg-alt comments) - + (hidden `(,(car bg) "black" "black")) + (-modeline-bright doom-material-ocean-brighter-modeline) (-modeline-pad (when doom-material-ocean-padded-modeline - (if (integerp doom-material-ocean-padded-modeline) doom-material-ocean-padded-modeline 4)))) + (if (integerp doom-material-ocean-padded-modeline) doom-material-ocean-padded-modeline 4))) - ;; --- base faces ------------------------ - (((lazy-highlight &override) :background base4 :foreground fg :distant-foreground fg :bold bold) - (doom-modeline-buffer-path :foreground green :weight 'bold) - (doom-modeline-buffer-major-mode :inherit 'doom-modeline-buffer-path) + (modeline-fg nil) + (modeline-fg-alt base5) - ;; highlight-thing highlight-symbol - (highlight-symbol-face :background region :distant-foreground fg-alt) + (modeline-bg + (if -modeline-bright + base3 + `(,(doom-darken (car bg) 0.1) ,@(cdr base0)))) + (modeline-bg-l + (if -modeline-bright + base3 + `(,(doom-darken (car bg) 0.15) ,@(cdr base0)))) + (modeline-bg-inactive `(,(car bg) ,@(cdr base1))) + (modeline-bg-inactive-l (doom-darken bg 0.1))) - ;; highlight-thing - (highlight-thing :background region :distant-foreground fg-alt) - (mode-line - :background modeline-bg :foreground modeline-fg - :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg))) - (mode-line-inactive - :background modeline-bg-alt :foreground modeline-fg-alt - :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-alt))) + ;; --- extra faces ------------------------ + (((secondary-selection &override) :background base0) + (elscreen-tab-other-screen-face :background "#353a42" :foreground "#1e2022") - (fringe :background base2) + ((line-number &override) :foreground base4) + ((line-number-current-line &override) :foreground fg) - ;; --- major-mode faces ------------------------ - ;; man-mode - (Man-overstrike :inherit 'bold :foreground magenta) - (Man-underline :inherit 'underline :foreground blue) + (font-lock-comment-face + :foreground comments + :background (if doom-material-ocean-comment-bg (doom-lighten bg 0.05))) + (font-lock-doc-face + :inherit 'font-lock-comment-face + :foreground doc-comments) - ;; org-mode - ((org-block &override) :background base2) - ((org-block-background &override) :background base2) - ((org-block-begin-line &override) :background base2) + (doom-modeline-bar :background (if -modeline-bright modeline-bg highlight)) - ;; --- plugin faces ------------------- + (mode-line + :background modeline-bg :foreground modeline-fg + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg))) + (mode-line-inactive + :background modeline-bg-inactive :foreground modeline-fg-alt + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive))) + (mode-line-emphasis + :foreground (if -modeline-bright base8 highlight)) + + (solaire-mode-line-face + :inherit 'mode-line + :background modeline-bg-l + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-l))) + (solaire-mode-line-inactive-face + :inherit 'mode-line-inactive + :background modeline-bg-inactive-l + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive-l))) + + ;; --- major-mode faces ------------------- ;; css-mode / scss-mode (css-proprietary-property :foreground orange) (css-property :foreground green) (css-selector :foreground blue) - ;; dired-k - (dired-k-commited :foreground base4) - (dired-k-modified :foreground vc-modified) - (dired-k-ignored :foreground cyan) - (dired-k-added :foreground vc-added) - - ;; ivy - (ivy-current-match :background base5) - - ;; js2-mode - (js2-jsdoc-tag :foreground magenta) - (js2-object-property :foreground yellow) - (js2-object-property-access :foreground cyan) - (js2-function-param :foreground violet) - (js2-jsdoc-type :foreground base8) - (js2-jsdoc-value :foreground cyan) - - ;; lsp - (lsp-headerline-breadcrumb-symbols-face :foreground base7) - - ;; rainbow-delimiters - (rainbow-delimiters-depth-1-face :foreground magenta) - (rainbow-delimiters-depth-2-face :foreground orange) - (rainbow-delimiters-depth-3-face :foreground green) - (rainbow-delimiters-depth-4-face :foreground cyan) - (rainbow-delimiters-depth-5-face :foreground violet) - (rainbow-delimiters-depth-6-face :foreground yellow) - (rainbow-delimiters-depth-7-face :foreground blue) - (rainbow-delimiters-depth-8-face :foreground teal) - (rainbow-delimiters-depth-9-face :foreground dark-cyan) - - ;; rjsx-mode - (rjsx-tag :foreground red) - (rjsx-attr :foreground yellow :slant 'italic :weight 'medium) + ;; markdown-mode + (markdown-markup-face :foreground base5) + (markdown-header-face :inherit 'bold :foreground red) + ((markdown-code-face &override) :background (doom-lighten base3 0.05)) + + ;; outline (affects org-mode) + ((outline-1 &override) :foreground blue :background nil) + + ;; org-mode + ((org-block &override) :background base1) + ((org-block-begin-line &override) :background base1 :foreground comments) + (org-hide :foreground hidden) + (org-link :foreground orange :underline t :weight 'bold) ;; tooltip - (tooltip :background (doom-darken bg-alt 0.2) :foreground fg))) + (tooltip :background base0 :foreground fg)) + + ;; --- extra variables --------------------- + ;; () + ) -(provide 'doom-material-ocean-theme) +;;; doom-material-ocean-theme.el ends here diff --git a/.config/mutt/muttrc b/.config/mutt/muttrc index 05cf59f5..158ee3ed 100644 --- a/.config/mutt/muttrc +++ b/.config/mutt/muttrc @@ -2,6 +2,7 @@ source /home/yigit/.config/mutt/accounts/1-yigitcolakoglu@hotmail.com.muttrc source /home/yigit/.config/mutt/colors.muttrc source /home/yigit/.config/mutt/keys.muttrc +set editor="/usr/bin/nvim" set mailcap_path = /home/yigit/.config/mutt/mailcap:$mailcap_path set mime_type_query_command = "file --mime-type -b %s" set date_format="%y/%m/%d %I:%M%p" diff --git a/.config/nextcloud/nextcloud b/.config/nextcloud/nextcloud index 8f0b99c0..e1973a41 100755 --- a/.config/nextcloud/nextcloud +++ b/.config/nextcloud/nextcloud @@ -15,8 +15,6 @@ declare -A mappings mappings=( ["$NEXTCLOUD_URL/Documents"]="$HOME/Documents" ["$NEXTCLOUD_URL/Photos"]="$HOME/Pictures" - ["$NEXTCLOUD_URL/Private"]="$HOME/Nextcloud/Private" - ["$NEXTCLOUD_URL/Books"]="$HOME/Nextcloud/Books" ["$NEXTCLOUD_URL/InstantUpload"]="$HOME/Nextcloud/InstantUpload" ["$NEXTCLOUD_URL/Past Papers"]="$HOME/Nextcloud/Past Papers" ["$NEXTCLOUD_URL/InstantUpload"]="$HOME/Nextcloud/InstantUpload" diff --git a/.config/nvim/plugin/plugins.vim b/.config/nvim/plugin/plugins.vim index 26ec18aa..3855fe7f 100644 --- a/.config/nvim/plugin/plugins.vim +++ b/.config/nvim/plugin/plugins.vim @@ -5,7 +5,6 @@ Plug 'kaicataldo/material.vim' Plug 'itchyny/lightline.vim' Plug 'mengelbrecht/lightline-bufferline' Plug 'lambdalisue/nerdfont.vim' -Plug 'vimwiki/vimwiki' " Addons Plug 'scrooloose/nerdtree' @@ -45,8 +44,4 @@ Plug 'leafgarland/typescript-vim' Plug 'vim-scripts/cool.vim' Plug 'justinmk/vim-syntax-extra' Plug 'arrufat/vala.vim' - -" Syntax errors -Plug 'ntpeters/vim-better-whitespace' - call plug#end() diff --git a/.config/vim/vimrc b/.config/vim/vimrc index 4677fe64..e8494e59 100644 --- a/.config/vim/vimrc +++ b/.config/vim/vimrc @@ -1,3 +1,10 @@ +"" __ _______ _____ _____ +"" \ \ / / ____| ____|_ _| +"" \ V /| _| | _| | | +"" | | | |___| |___ | | +"" |_| |_____|_____| |_| +"" Yeet's vim configuration + " XDG Base Directory Specification set runtimepath^=$XDG_CONFIG_HOME/vim set runtimepath+=$XDG_DATA_HOME/vim @@ -207,17 +214,11 @@ packadd termdebug if has("autocmd") " Use skeleton files augroup templates - autocmd BufNewFile *.* silent! execute '0r ~/.local/share/vim/templates/skeleton.'.expand(":e") + autocmd BufNewFile *.* silent! execute '0r ~/.config/vim/templates/skeleton.'.expand(":e") autocmd BufNewFile * %substitute#\[:VIM_EVAL:\]\(.\{-\}\)\[:END_EVAL:\]#\=eval(submatch(1))#ge augroup END autocmd BufWinLeave *.tex !texclear %:p " Run texclear on exit autocmd BufRead calcurse-note.* :set filetype=markdown " Use markdown for calcurse notes - - " Enable Goyo by default for mutt writing - autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80 - autocmd BufRead,BufNewFile /tmp/neomutt* :Goyo | set bg=light - autocmd BufRead,BufNewFile /tmp/neomutt* map ZZ :Goyo\|x! - autocmd BufRead,BufNewFile /tmp/neomutt* map ZQ :Goyo\|q! endif diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index d460ca11..12d2c425 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -1,3 +1,11 @@ +## __ _______ _____ _____ +## \ \ / / ____| ____|_ _| +## \ V /| _| | _| | | +## | | | |___| |___ | | +## |_| |_____|_____| |_| +## Yeet's zsh configuration + + #zmodload zsh/zprof eval "$(direnv hook zsh)" >> $XDG_RUNTIME_DIR/direnv #welcome.sh diff --git a/.config/zsh/aliases b/.config/zsh/aliases index ec4905a2..b0affd75 100755 --- a/.config/zsh/aliases +++ b/.config/zsh/aliases @@ -14,6 +14,7 @@ alias ls="ls --color" alias yay="yay --sudoloop" alias lf=lf-ueberzug alias vimorig=$(which vim) + alias vim=nvim weechat(){ @@ -57,3 +58,10 @@ alias bon="sudo bash -c 'rc-service bluetooth start && rfkill unblock bluetooth' alias cx="chmod +x" alias lights_on="curl 'http://yeetclock/setcolor?R=136&G=192&B=208'" + + +alias v="nvim" +alias m='e --eval "(progn (magit-status) (delete-other-windows))"' +alias mt="m -t" +alias et="e -t" + diff --git a/.local/bin/backup b/.local/bin/backup index 2b333402..ec8b4214 100755 --- a/.local/bin/backup +++ b/.local/bin/backup @@ -11,6 +11,24 @@ readonly SSH_KEY="/home/yigit/.ssh/id_skeleton" readonly RSYNC_PROFILE="$SSH_USER@$SSH_HOST:~/snapshots" alias ssh_cmd="ssh -i \"$SSH_KEY\" $SSH_USER@$SSH_HOST" +[ -f "$XDG_CACHE_HOME/dbus_settings" ] && "$XDG_CACHE_HOME/dbus_settings" # Load the dbus settings for current session + +displays="$(ps -u $(id -u) -o pid= \ +| xargs -I PID -r cat /proc/PID/environ 2> /dev/null \ +| tr '\0' '\n' \ +| grep ^DISPLAY=: \ +| sort -u \ +| xargs \ +| cut -d ":" -f2)" +notify() { + IFS="\n" + for x in $displays; do + export DISPLAY=$x + notify-send --app-name="$1" "$2" + done ; +} + +notify " Periodic backup" "Backup is starting" DEVICE=tatooine OPT="-aPh" @@ -41,3 +59,7 @@ ssh_cmd rm -f "~/snapshots/$DEVICE/last" < /dev/null # Create new symlink to latest snapshot for the next backup to hardlink ssh -i "$SSH_KEY" $SSH_USER@$SSH_HOST ln -s "~/snapshots/$DEVICE/$date" "~/snapshots/$DEVICE/last" < /dev/null + +pidof slock > /dev/null && { + shutdown -h now +} diff --git a/.local/bin/calconsync b/.local/bin/calconsync index 947beaa1..822bc073 100755 --- a/.local/bin/calconsync +++ b/.local/bin/calconsync @@ -1,5 +1,6 @@ #!/bin/bash +pidof emacs && emacsclient -e '(org-caldav-sync)' # Sync emacs-caldav as well eval "$(grep -h -- \ "^\s*\(export \)\?\(MBSYNCRC\|PASSWORD_STORE_DIR\|NOTMUCH_CONFIG\|GNUPGHOME\|XDG_DATA_HOME\|XDG_CONFIG_HOME\)=" \ "$HOME/.profile" "$HOME/.bash_profile" "$HOME/.zprofile" "$HOME/.config/zsh/.zprofile" "$HOME/.zshenv" \ diff --git a/.local/bin/check-updates b/.local/bin/check-updates index cb2563e9..00269d60 100755 --- a/.local/bin/check-updates +++ b/.local/bin/check-updates @@ -1,19 +1,23 @@ #!/bin/sh -case "$(readlink -f /sbin/init)" in - *systemd*) export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus ;; -esac +[ -f "$XDG_CACHE_HOME/dbus_settings" ] && "$XDG_CACHE_HOME/dbus_settings" # Load the dbus settings for current session ping -q -c 1 example.org > /dev/null || exit -pgrepoutput="$(pgrep -a X\(org\|wayland\))" -displays="$(echo "$pgrepoutput" | grep -wo "[0-9]*:[0-9]\+" | sort -u)" +displays="$(ps -u $(id -u) -o pid= \ +| xargs -I PID -r cat /proc/PID/environ 2> /dev/null \ +| tr '\0' '\n' \ +| grep ^DISPLAY=: \ +| sort -u \ +| xargs \ +| cut -d ":" -f2)" notify() { - [ -n "$pgrepoutput" ] && for x in ${displays:-:0}; do - export DISPLAY=$x - notify-send --app-name="auto-update" "$1" "$2" - done ; + IFS="\n" + for x in $displays; do + export DISPLAY=$x + notify-send --app-name="$1" "$2" + done ; } notify " Repository Sync" "Checking for package updates..." diff --git a/.local/bin/dmenu-emoji b/.local/bin/dmenu-emoji new file mode 100755 index 00000000..f5515596 --- /dev/null +++ b/.local/bin/dmenu-emoji @@ -0,0 +1,14 @@ +#!/bin/sh + +chosen=$(cut -d ';' -f1 ~/.local/share/emoji | dmenu -i -l 10 | sed "s/ .*//") + +[ -z "$chosen" ] && exit + +if [ -n "$1" ]; then + xdotool type "$chosen" +else + printf "$chosen" | xclip -selection clipboard + + printf %s "$chosen" | xdotool type --clearmodifiers --file - + notify-send -a "Character copied to clipboard" "'$chosen' copied to clipboard." & +fi diff --git a/.local/bin/dmenu-logout b/.local/bin/dmenu-logout index aebe6031..b66807a9 100755 --- a/.local/bin/dmenu-logout +++ b/.local/bin/dmenu-logout @@ -35,6 +35,8 @@ selection=$(printf '%s' "$items" | $DMENU) case $selection in logout) + firefox-sync & + kill -9 "$DBUS_SESSION_BUS_PID" kill -9 "$XSESSION_PID" ;; hibernate) diff --git a/.local/bin/dmenu-refresh b/.local/bin/dmenu-refresh index 3e49a5dc..01f91921 100755 --- a/.local/bin/dmenu-refresh +++ b/.local/bin/dmenu-refresh @@ -16,8 +16,9 @@ dunst clipmenud quark devmon +emacs mpd -mpd-mpris" +mpDris2" # Open menu selection=$(printf '%s' "$items" | $DMENU) @@ -43,14 +44,18 @@ case $selection in mpd & mpd-mpris & ;; - mpd-mpris) - kill -9 $(pidof mpd-mpris) - mpd-mpris & + mpDris2) + kill -9 $(pidof mpDris2) + mpDris2 & ;; dunst) kill -9 $(pidof dunst) dunst & ;; + emacs) + emacsclient -e '(kill-emacs)' + emacs --daemon && emacsclient -c --eval "(delete-frame)" + ;; devmon) pkill -f devmon ~/.local/bin/devmon --exec-on-drive "/sbin/notify-send '禍 drive mounted' '%l (%f) at %d '" \ diff --git a/.local/bin/dmenu-web b/.local/bin/dmenu-web new file mode 100755 index 00000000..ba961bac --- /dev/null +++ b/.local/bin/dmenu-web @@ -0,0 +1,107 @@ +#!/bin/sh + +# title: dmenu_websearch +# license: CC0 +# author: Sunur Efe Vural +# version: Mar 22, 2019 +# dependencies: dmenu, xdotool, hexdump, xprop, setxkbmap, coreutils. + +# A browser-independent address bar with bookmark support. When the +# cursor is on a web browser it acts as the address bar of that browser. + +engine='https://anon.sx/search?q=%s' +bookmarks="$HOME/.local/share/bookmarks" + +gotourl() { + if [ "$nbrowser" = surf ] + then + xprop -id "$winid" -f _SURF_GO 8s -set _SURF_GO "$choice" + elif [ -n "$winid" ] && [ -z "$nbrowser" ] + then + #change layout to us cuz xdotool spasms with non-latin layouts + layout=$(setxkbmap -query | awk '/^layout:/{ print $2 }') + setxkbmap -layout us + xdotool key --clearmodifiers "$shortcut"\ + type --clearmodifiers --delay 2 "$choice" + xdotool key --clearmodifiers Return + setxkbmap -layout "$layout" + elif [ -n "$nbrowser" ] + then + $nbrowser "$choice" + else $BROWSER "$choice" + fi +} + +searchweb() { + #convert search query to percent encoding and insert it into url + choice=$(echo "$choice" | hexdump -v -e '/1 " %02x"') + choice=$(echo "$engine" | sed "s/%s/${choice% 0a}/;s/[[:space:]]/%/g") + gotourl +} + +xprop -root | grep '^_NET_ACTIVE_WINDOW' && { + winid=$(xprop -root _NET_ACTIVE_WINDOW | sed 's/.*[[:space:]]//') + class=$(xprop -id "$winid" WM_CLASS | awk -F'\"' '{ print $(NF - 1) }') + case "$class" in + Firefox) nbrowser='firefox' ;; + #Firefox) shortcut='ctrl+l' ;; # alternative method, uses xdotool + IceCat) nbrowser='icecat' ;; + Chromium) nbrowser='chromium' ;; + Chrome) nbrowser='chrome' ;; + Opera) nbrowser='opera' ;; + Vivaldi) nbrowser='vivaldi' ;; # not tested + Brave) nbrowser='brave' ;; # not tested + Conkeror) nbrowser='conkeror' ;; # not tested + Palemoon) nbrowser='palemoon' ;; # not tested + Iceweasel) nbrowser='iceweasel' ;; # not tested + qutebrowser) nbrowser='qutebrowser' ;; + Midori) nbrowser='midori' ;; # not that good + Luakit) nbrowser='luakit' ;; # uses the last window instance + Uzbl|Vimb) shortcut='o' ;; + Links) shortcut='g' ;; + Netsurf*|Epiphany|Dillo|Konqueror|Arora) shortcut='ctrl+l' ;; + Surf) nbrowser='surf' ; uricur=$(xprop -id "$winid" _SURF_URI |\ + awk -F'\"' '{ print $( NF - 1 ) }') ;; + *) pid=$(xprop -id "$winid" _NET_WM_PID | awk '{ print $3 }') + while pgrep -oP "$pid" >/dev/null + do + pid=$(pgrep -oP "$pid") + done + pname=$(awk '/^Name\:/{ print $NF }' /proc/"$pid"/status) || + winid="" ;; + esac + [ -n "$pname" ] && case "$pname" in + w3m) shortcut="U" ;; + lynx|elinks|links) shortcut="g" ;; + *) winid="" ;; + esac +} + +tmpfile=$(mktemp /tmp/dmenu_websearch.XXXXXX) +trap 'rm "$tmpfile"' 0 1 15 +printf '%s\n%s\n' "$uricur" "$1" > "$tmpfile" +cat "$bookmarks" >> "$tmpfile" +sed -i -E '/^(#|$)/d' "$tmpfile" +choice=$(dmenu -i -p "Go:" -w "$winid" < "$tmpfile") || exit 1 + +# Detect links without protocol (This is WIP) +protocol='^(https?|ftps?|mailto|about|file):///?' +checkurl() { + grep -Fx "$choice" "$tmpfile" && + choice=$(echo "$choice" | awk '{ print $1 }') && return 0 + [ ${#choice} -lt 4 ] && return 1 + echo "$choice" | grep -Z ' ' && return 1 + echo "$choice" | grep -EiZ "$protocol" && return 0 + echo "$choice" | grep -FZ '..' && return 1 + prepath=$(echo "$choice" | sed 's/(\/|#|\?).*//') + echo "$prepath" | grep -FvZ '.' && return 1 + echo "$prepath" | grep -EZ '^([[:alnum:]~_:-]+\.?){1,3}' && return 0 +} + +if checkurl +then + echo "$choice" | grep -EivZ "$protocol" && + choice="http://$choice" + gotourl +else searchweb +fi diff --git a/.local/bin/dmenu-xrandr b/.local/bin/dmenu-xrandr new file mode 100755 index 00000000..b666c8b6 --- /dev/null +++ b/.local/bin/dmenu-xrandr @@ -0,0 +1,318 @@ +#!/usr/bin/zsh +# +# Setup outputs with xrandr as a backend and dmenu as a frontend +# +# external commands: cat, cut, dmenu, grep, sed, xrandr +# Released under GPLv2 +# +# TODO: add dpi support + +typeset XRANDR_TXT # readonly; stdout of running xrandr without any options +typeset -A OUTPUT_CONFIGURED # key=connected output name +typeset -a DISCONNECT_OUTPUTS +typeset OPT_MODE='auto' +typeset OPT_ROTATION='normal' +typeset -ir EXIT_CLEAN=7 +typeset -ir ERR_BAD_ARGS=257 +typeset -ir ERR_BAD_SELECTION=258 +typeset -ir ERR_NO_OPTIONS=259 + +if ! command -v cat &>/dev/null; then + echo 'coreutils seem to be missing. You'\''re gonna have a bad time.' >&2 + exit 255 +elif ! command -v grep &>/dev/null; then + echo 'grep seems to be missing. You'\''re gonna have a bad time.' >&2 + exit 255 +elif ! command -v xrandr &>/dev/null; then + echo 'Ran xrandr-dmenu without xrandr? You'\''re gonna have a bad time.' >&2 + exit 255 +elif ! command -v dmenu &>/dev/null; then + echo 'Ran xrandr-dmenu without dmenu? You'\''re gonna have a bad time.' >&2 + exit 255 +elif ! xset q &>/dev/null; then + echo 'Woah there, cowboy! You need to run this from inside X!' >&2 + exit 1 +fi + +XRANDR_TXT="$(xrandr)" || exit $? + +function () { + typeset opt + typeset output + typeset help_msg="usage: xrandr-dmenu [options] +Setup X outputs position, mode, etc +Input 'exit' or press 'ESC' at any point to cancel. + +Options: + -m Select mode for outputs + -M Use current mode for outputs + -r Select rotation for outputs + -R Use current rotation for outputs" + + while getopts mMrRh opt; do + case "${opt}" in + ('m') OPT_MODE='change' ;; + ('M') OPT_MODE='no_change' ;; + ('r') OPT_ROTATION='change' ;; + ('R') OPT_ROTATION='no_change' ;; + ('h') + echo "${help_msg}" + exit 0 + ;; + ('?') + echo "${help_msg}" + exit 1 + ;; + esac + done + + for output in $(grep ' connected' <<< "${XRANDR_TXT}" | cut -d ' ' -f 1); do + OUTPUT_CONFIGURED[${output}]='false' + done + for output ($(grep ' disconnected' <<< "${XRANDR_TXT}" | cut -d ' ' -f 1)) { + DISCONNECTED_OUTPUTS+=("${output}") + } +} "$@" + +typeset -r XRANDR_TXT +typeset -r OPT_MODE +typeset -r OPT_ROTATION +typeset -r DISCONNECTED_OUTPUTS + +function main() { + typeset prompt + typeset menu + typeset output + typeset mode + typeset rotation + typeset position + typeset xrandr_cmd + + # set primary output + prompt='Select primary output:' + output="$(menu_select "${prompt}" ${(k)=OUTPUT_CONFIGURED})" || bail $? + + position='--primary' + mode="$(select_mode ${output})" || bail $? + rotation="$(select_rotation ${output})" || bail $? + + OUTPUT_CONFIGURED[${output}]='true' + xrandr_cmd="xrandr --output ${output} ${position} ${rotation} ${mode}" + + # set additional outputs + prompt='Select next output:' + while ! all_outputs_configured; do + menu="$(list_unconfigured_outputs)" + output="$(menu_select ${prompt} ${=menu})" || bail $? + + position="$(select_position ${output})" || bail $? + if [[ "${position}" != '--off' ]]; then + mode="$(select_mode ${output})" || bail $? + rotation="$(select_rotation ${output})" || bail $? + fi + + OUTPUT_CONFIGURED[${output}]='true' + xrandr_cmd+=" --output ${output} ${position} ${rotation} ${mode}" + done + + # forcibly '--off' disconnected outputs + for output in ${DISCONNECTED_OUTPUTS}; do + xrandr_cmd+=" --output ${output} --off" + done + + # do the deed + if ! ${=xrandr_cmd}; then + echo "Failed to execute xrandr command:\n${xrandr_cmd}" + bail 255 + fi +} + +################################################################################ +# Uses dmenu to select the position of a given output relative to an already +# configured output. --same-as and --off are considered a position. +# Prints in the form of xrandr option (eg, '--right-of DP1') to stdout +# Global variables: +# ERR_BAD_ARG +# Arguments: +# $1=name of output to configure +# Returns: +# ERR_BAD_ARG for no $1 +################################################################################ +function select_position() { + [[ -z $1 ]] && return "${ERR_BAD_ARG}" + + typeset output + typeset prompt + typeset -a menu + typeset anchor + typeset position + typeset selection + output="$1" + prompt="Select position of ${output}:" + + for anchor in $(list_configured_outputs); do + for position in 'left of' 'right of' 'above' 'below' 'same as'; do + menu+=("${position} ${anchor}") + done + done + menu+=('off') + selection="$(menu_select "${prompt}" ${menu})" || return $? + + case "${selection[(w)1]}" in + (left|right|same) echo "--${selection/ /-}" ;; + (above|below|mirror|off) echo "--${selection}" ;; + esac +} + +################################################################################ +# Uses dmenu to display the detected mode options for a given output and lets +# the user select a mode to use. Prints choice in xrandr option format +# (eg, '--mode 800x600' or '--auto') to stdout +# Global variables: +# XRANDR_TXT +# OPT_MODE +# ERR_BAD_ARGS +# Arguments: +# $1 - name of which output we are working with +# Returns: +# ERR_BAD_ARGS +################################################################################ +function select_mode() { + [[ -z $1 ]] && return "${ERR_BAD_ARGS}" + + typeset output + typeset prompt + typeset menu + typeset selection + output="$1" + prompt="Select mode for ${output}:" + + + if [[ "${OPT_MODE}" == 'auto' ]]; then + echo '--auto' + elif [[ "${OPT_MODE}" == 'no_change' ]]; then + echo '' + else + # TODO: make this not ugly. A better sed should negate the need for cut/grep + menu="$(echo \"${XRANDR_TXT}\" \ + | sed -n '/^'${output}' /,/^[^ ]/ s/ * //p' \ + | cut -d ' ' -f 1 \ + | grep x \ + | cat <(echo auto) -)" + + selection="$(menu_select "${prompt}" ${=menu})" || return $? + + if [[ 'auto' == "${selection}" ]]; then + echo '--auto' + else + echo "--mode ${selection}" + fi + fi +} + +################################################################################ +# Uses dmenu to select the rotation of a given output. Prints the selection in +# xrandr option format (eg '--rotate inverted') to stdout +# Global variables: +# OPT_ROTATION +# ERR_BAD_ARGS +# Arguments: +# $1 - name of which output we are working with +# Returns: +# ERR_BAD_ARGS +################################################################################ +function select_rotation() { + [[ -z $1 ]] && return "${ERR_BAD_ARGS}" + + typeset menu + typeset prompt + prompt="Select rotation of $1:" + menu=('normal' 'inverted' 'left' 'right') + + if [[ "${OPT_ROTATION}" == 'normal' ]]; then + echo '--rotate normal' + elif [[ "${OPT_ROTATION}" == 'no_change' ]]; then + echo '' + else + echo -n "--rotate ${selection}" + menu_select "${prompt}" ${menu} || return $? + fi +} + +################################################################################ +# Uses dmenu to select an option. Undisplayed 'exit' option or pressing 'ESC' +# will return code ${EXIT_CLEAN} to trigger an abort to the script. Validates to +# make sure the selection is an option. If there is only 1 option, it will +# automatically choose it. Prints selection to stdout +# Global variables: +# none +# Arguments: +# $1=prompt +# $2+=menu items +# Returns: +# ERR_BAD_ARGS=bad arguments +# EXIT_CLEAN=user requested exit +################################################################################ +function menu_select() { + [[ -z "$2" ]] && return ${ERR_BAD_ARGS} + + typeset selection + typeset prompt + typeset -a menu + + prompt="$1" + shift + menu=($*) + + if [[ ${#menu} == 1 ]]; then + echo "${menu}" + else + while [[ -z "${menu[(r)${selection}]}" ]]; do + echo "${(F)menu}" | dmenu -p "${prompt}" | read selection + [[ "${(L)selection}" == 'exit' ]] || [[ -z "${selection}" ]] \ + && return ${EXIT_CLEAN} + done + echo "${selection}" + fi +} + +function list_configured_outputs() { + typeset -a list + typeset output + + for output in ${(k)OUTPUT_CONFIGURED}; do + ${OUTPUT_CONFIGURED[$output]} && list+=("${output}") + done + echo "${(F)list}" +} + +function list_unconfigured_outputs() { + typeset -a list + typeset output + + for output in ${(k)OUTPUT_CONFIGURED}; do + ${OUTPUT_CONFIGURED[$output]} || list+=("${output}") + done + echo "${(F)list}" +} + +function all_outputs_configured() { + typeset config + + for config in ${OUTPUT_CONFIGURED}; do + $config || return 257 + done + + return 0 +} + +function bail() { + [[ "$1" == ${EXIT_CLEAN} ]] && exit 0 || exit "$1" +} + +main + +################################################################################ +# vim filetype=zsh autoindent expandtab shiftwidth=2 tabstop=2 +# End +# diff --git a/.local/bin/dmenu_run_history b/.local/bin/dmenu_run_history index 8d436cad..a7ca68e5 100755 --- a/.local/bin/dmenu_run_history +++ b/.local/bin/dmenu_run_history @@ -1,5 +1,6 @@ #!/bin/sh +termcmd="st -c \"dmenu-st\" -e" cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"} if [ -d "$cachedir" ]; then cache=$cachedir/dmenu_run @@ -15,7 +16,7 @@ if stest -dqr -n "$cache" $PATH; then fi unset IFS -awk -v histfile=$historyfile ' +cmd=$(awk -v histfile=$historyfile ' BEGIN { while( (getline < histfile) > 0 ) { sub("^[0-9]+\t","") @@ -23,8 +24,12 @@ awk -v histfile=$historyfile ' x[$0]=1 } } !x[$0]++ ' "$cache" \ - | dmenu "$@" \ - | awk -v histfile=$historyfile ' + | dmenu "$@") + + +case $cmd in + *\! ) ${termcmd} "$(printf "%s" "${cmd}" | cut -d'!' -f1)";; + * ) echo "$cmd" | awk -v histfile=$historyfile ' BEGIN { FS=OFS="\t" while ( (getline < histfile) > 0 ) { @@ -47,4 +52,5 @@ awk -v histfile=$historyfile ' print history[f],f | "sort -t '\t' -k1rn >" histfile } ' \ - | while read cmd; do ${SHELL:-"/bin/sh"} -c "$cmd" & done + | while read cmd; do ${SHELL:-"/bin/sh"} -c "$cmd" & done ;; +esac diff --git a/.local/bin/dmenu_surf b/.local/bin/dmenu_surf deleted file mode 100755 index 7d03b6c0..00000000 --- a/.local/bin/dmenu_surf +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -lines=12 -blacklist='google' - -selection=$(echo "" | dmenu -p "Enter URL") - -if [ ! -z "$selection" ] -then - $BROWSER $selection -fi diff --git a/.local/bin/doom b/.local/bin/doom index 77470fe5..39bb32ca 100755 --- a/.local/bin/doom +++ b/.local/bin/doom @@ -4,4 +4,11 @@ dunstify -r 57 -a "ξ Doom Emacs" "Running \"doom $@\"" $XDG_CONFIG_HOME/emacs/bin/doom $@ -dunstify -r 57 -a "ξ Doom Emacs" "Finished \"doom $@\"" +if [ "$?" = "0" ]; then + dunstify -r 57 -a "ξ Doom Emacs" "Finished \"doom $@\"" + emacsclient -e '(kill-emacs)' + emacs --daemon && emacsclient -c --eval "(delete-frame)" +else + dunstify -r 57 -a "ξ Doom Emacs" "Failed \"doom $@\"" +fi + diff --git a/.local/bin/e b/.local/bin/e new file mode 100755 index 00000000..7d4501b8 --- /dev/null +++ b/.local/bin/e @@ -0,0 +1,62 @@ +#!/bin/bash + +force_tty=false +force_wait=false +stdin_mode="" + +args=() + +while :; do + case "$1" in + -t | -nw | --tty) + force_tty=true + shift ;; + -w | --wait) + force_wait=true + shift ;; + -m | --mode) + stdin_mode=" ($2-mode)" + shift 2 ;; + -h | --help) + echo -e "\033[1mUsage: e [-t] [-m MODE] [OPTIONS] FILE [-]\033[0m + +Emacs client convenience wrapper. + +\033[1mOptions:\033[0m +\033[0;34m-h, --help\033[0m Show this message +\033[0;34m-t, -nw, --tty\033[0m Force terminal mode +\033[0;34m-w, --wait\033[0m Don't supply \033[0;34m--no-wait\033[0m to graphical emacsclient +\033[0;34m-\033[0m Take \033[0;33mstdin\033[0m (when last argument) +\033[0;34m-m MODE, --mode MODE\033[0m Mode to open \033[0;33mstdin\033[0m with + +Run \033[0;32memacsclient --help\033[0m to see help for the emacsclient." + exit 0 ;; + --*=*) + set -- "$@" "${1%%=*}" "${1#*=}" + shift ;; + *) + if [ "$#" = 0 ]; then + break; fi + args+=("$1") + shift ;; + esac +done + +if [ ! "${#args[*]}" = 0 ] && [ "${args[-1]}" = "-" ]; then + unset 'args[-1]' + TMP="$(mktemp /tmp/emacsstdin-XXX)" + cat > "$TMP" + args+=(--eval "(let ((b (generate-new-buffer \"*stdin*\"))) (switch-to-buffer b) (insert-file-contents \"$TMP\") (delete-file \"$TMP\")${stdin_mode})") +fi + +if [ -z "$DISPLAY" ] || $force_tty; then + if [ "$TERM" = "st-256color" ]; then + TERM=xterm-256color emacsclient --tty -create-frame --alternate-editor="nvim" "${args[@]}" + else + emacsclient --tty -create-frame --alternate-editor="nvim" "${args[@]}" + fi +else + if ! $force_wait; then + args+=(--no-wait); fi + emacsclient -create-frame --alternate-editor="nvim" "${args[@]}" +fi diff --git a/.local/bin/menu-surfraw b/.local/bin/menu-surfraw deleted file mode 100755 index cd618db8..00000000 --- a/.local/bin/menu-surfraw +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh - -# Menu Surfraw: https://github.com/TomboFry/menu-surfraw - -# Modified version of https://github.com/onespaceman/menu-calc to display -# available elvi to use in surfraw then get the search term afterwards and open -# it in your browser of choice. - -# Edit here to change what browser you open links in -usage() { - echo "Usage: $0 [OPTIONS] [ELVIS [SEARCHTERM]] - -OPTIONS: - -h, --help Displays this message - -ELVIS: - This is the same as surfraw, any Elvi you have installed. Can be left - blank, as you will be prompted for this in dmenu/rofi. - -SEARCHTERM: - Again, the same as surfraw, the term you are searching for. Can also be - left blank as you will be prompted for this in dmenu/rofi." - exit -} - -case $1 in - "-h"|"--help") usage ;; -esac - -# Path to menu application -if [[ -n $(command -v dmenu) ]]; then - menu="$(command -v dmenu )" -elif [[ -n $(command -v rofi) ]]; then - menu="$(command -v rofi)" -else - echo "Rofi or dmenu not found, exiting." - exit -fi - -answerA=$(echo "$1") -answerB=$(echo "${@:2}") - -# Change what to display in rofi/dmenu -# If both the first prompt and second prompt are not empty, it will finally open -# the search in surfraw -action=$(echo "" | $menu -p "$answerA ") - -if [ "$action" = "" ]; then - exit -fi - -surfraw -browser=$BROWSER $answerA $action - diff --git a/.local/share/dwm/autostart.sh b/.local/share/dwm/autostart.sh index 6c95d195..69d4ad4a 100755 --- a/.local/share/dwm/autostart.sh +++ b/.local/share/dwm/autostart.sh @@ -33,6 +33,9 @@ restart_if_fails "picom --no-fading-openclose" restart_if_fails "xbanish -s" +# Start emacs +restart_if_fails "emacs --daemon && emacsclient -c --eval \"(delete-frame)\"" + ~/.local/bin/firefox-sync & ~/.local/bin/mailsync & diff --git a/.local/share/nerdfont_icons b/.local/share/nerdfont_icons deleted file mode 100644 index 5bfdde1f..00000000 --- a/.local/share/nerdfont_icons +++ /dev/null @@ -1,3810 +0,0 @@ - : nf-custom-c (e61e) - : nf-custom-cpp (e61d) - : nf-custom-electron (e62e) - : nf-custom-elixir (e62d) - : nf-custom-elm (e62c) - : nf-custom-folder (e5ff) - : nf-custom-folder_config (e5fc) - : nf-custom-folder_git (e5fb) - : nf-custom-folder_git_branch (e5fb) - : nf-custom-folder_github (e5fd) - : nf-custom-folder_npm (e5fa) - : nf-custom-folder_open (e5fe) - : nf-custom-go (e626) - : nf-custom-msdos (e629) - : nf-custom-vim (e62b) - : nf-custom-windows (e62a) - : nf-dev-android (e70e) - : nf-dev-angular (e753) - : nf-dev-appcelerator (e7ab) - : nf-dev-apple (e711) - : nf-dev-appstore (e713) - : nf-dev-aptana (e799) - : nf-dev-asterisk (e7ac) - : nf-dev-atlassian (e75b) - : nf-dev-atom (e764) - : nf-dev-aws (e7ad) - : nf-dev-backbone (e752) - : nf-dev-bing_small (e700) - : nf-dev-bintray (e794) - : nf-dev-bitbucket (e703) - : nf-dev-blackberry (e723) - : nf-dev-bootstrap (e747) - : nf-dev-bower (e74d) - : nf-dev-brackets (e79d) - : nf-dev-bugsense (e78d) - : nf-dev-celluloid (e76b) - : nf-dev-chart (e760) - : nf-dev-chrome (e743) - : nf-dev-cisco (e765) - : nf-dev-clojure (e768) - : nf-dev-clojure_alt (e76a) - : nf-dev-cloud9 (e79f) - : nf-dev-coda (e793) - : nf-dev-code (e796) - : nf-dev-code_badge (e7a3) - : nf-dev-codeigniter (e780) - : nf-dev-codepen (e716) - : nf-dev-codrops (e72f) - : nf-dev-coffeescript (e751) - : nf-dev-compass (e761) - : nf-dev-composer (e783) - : nf-dev-creativecommons (e789) - : nf-dev-creativecommons_badge (e78a) - : nf-dev-css3 (e749) - : nf-dev-css3_full (e74a) - : nf-dev-css_tricks (e701) - : nf-dev-cssdeck (e72a) - : nf-dev-dart (e798) - : nf-dev-database (e706) - : nf-dev-debian (e77d) - : nf-dev-digital_ocean (e7ae) - : nf-dev-django (e71d) - : nf-dev-dlang (e7af) - : nf-dev-docker (e7b0) - : nf-dev-doctrine (e774) - : nf-dev-dojo (e71c) - : nf-dev-dotnet (e77f) - : nf-dev-dreamweaver (e79c) - : nf-dev-dropbox (e707) - : nf-dev-drupal (e742) - : nf-dev-eclipse (e79e) - : nf-dev-ember (e71b) - : nf-dev-envato (e75d) - : nf-dev-erlang (e7b1) - : nf-dev-extjs (e78e) - : nf-dev-firebase (e787) - : nf-dev-firefox (e745) - : nf-dev-fsharp (e7a7) - : nf-dev-ghost (e71f) - : nf-dev-ghost_small (e714) - : nf-dev-git (e702) - : nf-dev-git_branch (e725) - : nf-dev-git_commit (e729) - : nf-dev-git_compare (e728) - : nf-dev-git_merge (e727) - : nf-dev-git_pull_request (e726) - : nf-dev-github (e70a) - : nf-dev-github_alt (e708) - : nf-dev-github_badge (e709) - : nf-dev-github_full (e717) - : nf-dev-gnu (e779) - : nf-dev-go (e724) - : nf-dev-google_cloud_platform (e7b2) - : nf-dev-google_drive (e731) - : nf-dev-grails (e7b3) - : nf-dev-groovy (e775) - : nf-dev-grunt (e74c) - : nf-dev-gulp (e763) - : nf-dev-hackernews (e71a) - : nf-dev-haskell (e777) - : nf-dev-heroku (e77b) - : nf-dev-html5 (e736) - : nf-dev-html5_3d_effects (e735) - : nf-dev-html5_connectivity (e734) - : nf-dev-html5_device_access (e733) - : nf-dev-html5_multimedia (e732) - : nf-dev-ie (e744) - : nf-dev-illustrator (e7b4) - : nf-dev-intellij (e7b5) - : nf-dev-ionic (e7a9) - : nf-dev-java (e738) - : nf-dev-javascript (e74e) - : nf-dev-javascript_badge (e781) - : nf-dev-javascript_shield (e74f) - : nf-dev-jekyll_small (e70d) - : nf-dev-jenkins (e767) - : nf-dev-jira (e75c) - : nf-dev-joomla (e741) - : nf-dev-jquery (e750) - : nf-dev-jquery_ui (e754) - : nf-dev-komodo (e792) - : nf-dev-krakenjs (e785) - : nf-dev-krakenjs_badge (e784) - : nf-dev-laravel (e73f) - : nf-dev-less (e758) - : nf-dev-linux (e712) - : nf-dev-magento (e740) - : nf-dev-mailchimp (e79a) - : nf-dev-markdown (e73e) - : nf-dev-materializecss (e7b6) - : nf-dev-meteor (e7a5) - : nf-dev-meteorfull (e7a6) - : nf-dev-mitlicence (e78b) - : nf-dev-modernizr (e720) - : nf-dev-mongodb (e7a4) - : nf-dev-mootools (e790) - : nf-dev-mootools_badge (e78f) - : nf-dev-mozilla (e786) - : nf-dev-msql_server (e77c) - : nf-dev-mysql (e704) - : nf-dev-nancy (e766) - : nf-dev-netbeans (e79b) - : nf-dev-netmagazine (e72e) - : nf-dev-nginx (e776) - : nf-dev-nodejs (e719) - : nf-dev-nodejs_small (e718) - : nf-dev-npm (e71e) - : nf-dev-onedrive (e762) - : nf-dev-openshift (e7b7) - : nf-dev-opensource (e771) - : nf-dev-opera (e746) - : nf-dev-perl (e769) - : nf-dev-phonegap (e730) - : nf-dev-photoshop (e7b8) - : nf-dev-php (e73d) - : nf-dev-postgresql (e76e) - : nf-dev-prolog (e7a1) - : nf-dev-python (e73c) - : nf-dev-rackspace (e7b9) - : nf-dev-raphael (e75f) - : nf-dev-rasberry_pi (e722) - : nf-dev-react (e7ba) - : nf-dev-redhat (e7bb) - : nf-dev-redis (e76d) - : nf-dev-requirejs (e770) - : nf-dev-responsive (e797) - : nf-dev-ruby (e739) - : nf-dev-ruby_on_rails (e73b) - : nf-dev-ruby_rough (e791) - : nf-dev-rust (e7a8) - : nf-dev-safari (e748) - : nf-dev-sass (e74b) - : nf-dev-scala (e737) - : nf-dev-scriptcs (e7bc) - : nf-dev-scrum (e7a0) - : nf-dev-senchatouch (e78c) - : nf-dev-sizzlejs (e788) - : nf-dev-smashing_magazine (e72d) - : nf-dev-snap_svg (e75e) - : nf-dev-sqllite (e7c4) - : nf-dev-stackoverflow (e710) - : nf-dev-streamline (e705) - : nf-dev-stylus (e759) - : nf-dev-sublime (e7aa) - : nf-dev-swift (e755) - : nf-dev-symfony (e756) - : nf-dev-symfony_badge (e757) - : nf-dev-techcrunch (e72c) - : nf-dev-terminal (e795) - : nf-dev-terminal_badge (e7a2) - : nf-dev-travis (e77e) - : nf-dev-trello (e75a) - : nf-dev-typo3 (e772) - : nf-dev-ubuntu (e73a) - : nf-dev-uikit (e773) - : nf-dev-unity_small (e721) - : nf-dev-vim (e7c5) - : nf-dev-visualstudio (e70c) - : nf-dev-w3c (e76c) - : nf-dev-webplatform (e76f) - : nf-dev-windows (e70f) - : nf-dev-wordpress (e70b) - : nf-dev-yahoo (e715) - : nf-dev-yahoo_small (e72b) - : nf-dev-yeoman (e77a) - : nf-dev-yii (e782) - : nf-dev-zend (e778) - : nf-fa-500px (f26e) - : nf-fa-address_book (f2b9) - : nf-fa-address_book_o (f2ba) - : nf-fa-address_card (f2bb) - : nf-fa-address_card_o (f2bc) - : nf-fa-adjust (f042) - : nf-fa-adn (f170) - : nf-fa-align_center (f037) - : nf-fa-align_justify (f039) - : nf-fa-align_left (f036) - : nf-fa-align_right (f038) - : nf-fa-amazon (f270) - : nf-fa-ambulance (f0f9) - : nf-fa-american_sign_language_interpreting (f2a3) - : nf-fa-anchor (f13d) - : nf-fa-android (f17b) - : nf-fa-angellist (f209) - : nf-fa-angle_double_down (f103) - : nf-fa-angle_double_left (f100) - : nf-fa-angle_double_right (f101) - : nf-fa-angle_double_up (f102) - : nf-fa-angle_down (f107) - : nf-fa-angle_left (f104) - : nf-fa-angle_right (f105) - : nf-fa-angle_up (f106) - : nf-fa-apple (f179) - : nf-fa-archive (f187) - : nf-fa-area_chart (f1fe) - : nf-fa-arrow_circle_down (f0ab) - : nf-fa-arrow_circle_left (f0a8) - : nf-fa-arrow_circle_o_down (f01a) - : nf-fa-arrow_circle_o_left (f190) - : nf-fa-arrow_circle_o_right (f18e) - : nf-fa-arrow_circle_o_up (f01b) - : nf-fa-arrow_circle_right (f0a9) - : nf-fa-arrow_circle_up (f0aa) - : nf-fa-arrow_down (f063) - : nf-fa-arrow_left (f060) - : nf-fa-arrow_right (f061) - : nf-fa-arrow_up (f062) - : nf-fa-arrows (f047) - : nf-fa-arrows_alt (f0b2) - : nf-fa-arrows_h (f07e) - : nf-fa-arrows_v (f07d) - : nf-fa-asl_interpreting (f2a3) - : nf-fa-assistive_listening_systems (f2a2) - : nf-fa-asterisk (f069) - : nf-fa-at (f1fa) - : nf-fa-audio_description (f29e) - : nf-fa-automobile (f1b9) - : nf-fa-backward (f04a) - : nf-fa-balance_scale (f24e) - : nf-fa-ban (f05e) - : nf-fa-bandcamp (f2d5) - : nf-fa-bank (f19c) - : nf-fa-bar_chart (f080) - : nf-fa-bar_chart_o (f080) - : nf-fa-barcode (f02a) - : nf-fa-bars (f0c9) - : nf-fa-bath (f2cd) - : nf-fa-bathtub (f2cd) - : nf-fa-battery (f240) - : nf-fa-battery_0 (f244) - : nf-fa-battery_1 (f243) - : nf-fa-battery_2 (f242) - : nf-fa-battery_3 (f241) - : nf-fa-battery_4 (f240) - : nf-fa-battery_empty (f244) - : nf-fa-battery_full (f240) - : nf-fa-battery_half (f242) - : nf-fa-battery_quarter (f243) - : nf-fa-battery_three_quarters (f241) - : nf-fa-bed (f236) - : nf-fa-beer (f0fc) - : nf-fa-behance (f1b4) - : nf-fa-behance_square (f1b5) - : nf-fa-bell (f0f3) - : nf-fa-bell_o (f0a2) - : nf-fa-bell_slash (f1f6) - : nf-fa-bell_slash_o (f1f7) - : nf-fa-bicycle (f206) - : nf-fa-binoculars (f1e5) - : nf-fa-birthday_cake (f1fd) - : nf-fa-bitbucket (f171) - : nf-fa-bitbucket_square (f172) - : nf-fa-bitcoin (f15a) - : nf-fa-black_tie (f27e) - : nf-fa-blind (f29d) - : nf-fa-bluetooth (f293) - : nf-fa-bluetooth_b (f294) - : nf-fa-bold (f032) - : nf-fa-bolt (f0e7) - : nf-fa-bomb (f1e2) - : nf-fa-book (f02d) - : nf-fa-bookmark (f02e) - : nf-fa-bookmark_o (f097) - : nf-fa-braille (f2a1) - : nf-fa-briefcase (f0b1) - : nf-fa-btc (f15a) - : nf-fa-bug (f188) - : nf-fa-building (f1ad) - : nf-fa-building_o (f0f7) - : nf-fa-bullhorn (f0a1) - : nf-fa-bullseye (f140) - : nf-fa-bus (f207) - : nf-fa-buysellads (f20d) - : nf-fa-cab (f1ba) - : nf-fa-calculator (f1ec) - : nf-fa-calendar (f073) - : nf-fa-calendar_check_o (f274) - : nf-fa-calendar_minus_o (f272) - : nf-fa-calendar_o (f133) - : nf-fa-calendar_plus_o (f271) - : nf-fa-calendar_times_o (f273) - : nf-fa-camera (f030) - : nf-fa-camera_retro (f083) - : nf-fa-car (f1b9) - : nf-fa-caret_down (f0d7) - : nf-fa-caret_left (f0d9) - : nf-fa-caret_right (f0da) - : nf-fa-caret_square_o_down (f150) - : nf-fa-caret_square_o_left (f191) - : nf-fa-caret_square_o_right (f152) - : nf-fa-caret_square_o_up (f151) - : nf-fa-caret_up (f0d8) - : nf-fa-cart_arrow_down (f218) - : nf-fa-cart_plus (f217) - : nf-fa-cc (f20a) - : nf-fa-cc_amex (f1f3) - : nf-fa-cc_diners_club (f24c) - : nf-fa-cc_discover (f1f2) - : nf-fa-cc_jcb (f24b) - : nf-fa-cc_mastercard (f1f1) - : nf-fa-cc_paypal (f1f4) - : nf-fa-cc_stripe (f1f5) - : nf-fa-cc_visa (f1f0) - : nf-fa-certificate (f0a3) - : nf-fa-chain (f0c1) - : nf-fa-chain_broken (f127) - : nf-fa-check (f00c) - : nf-fa-check_circle (f058) - : nf-fa-check_circle_o (f05d) - : nf-fa-check_square (f14a) - : nf-fa-check_square_o (f046) - : nf-fa-chevron_circle_down (f13a) - : nf-fa-chevron_circle_left (f137) - : nf-fa-chevron_circle_right (f138) - : nf-fa-chevron_circle_up (f139) - : nf-fa-chevron_down (f078) - : nf-fa-chevron_left (f053) - : nf-fa-chevron_right (f054) - : nf-fa-chevron_up (f077) - : nf-fa-child (f1ae) - : nf-fa-chrome (f268) - : nf-fa-circle (f111) - : nf-fa-circle_o (f10c) - : nf-fa-circle_o_notch (f1ce) - : nf-fa-circle_thin (f1db) - : nf-fa-clipboard (f0ea) - : nf-fa-clock_o (f017) - : nf-fa-clone (f24d) - : nf-fa-close (f00d) - : nf-fa-cloud (f0c2) - : nf-fa-cloud_download (f0ed) - : nf-fa-cloud_upload (f0ee) - : nf-fa-cny (f157) - : nf-fa-code (f121) - : nf-fa-code_fork (f126) - : nf-fa-codepen (f1cb) - : nf-fa-codiepie (f284) - : nf-fa-coffee (f0f4) - : nf-fa-cog (f013) - : nf-fa-cogs (f085) - : nf-fa-columns (f0db) - : nf-fa-comment (f075) - : nf-fa-comment_o (f0e5) - : nf-fa-commenting (f27a) - : nf-fa-commenting_o (f27b) - : nf-fa-comments (f086) - : nf-fa-comments_o (f0e6) - : nf-fa-compass (f14e) - : nf-fa-compress (f066) - : nf-fa-connectdevelop (f20e) - : nf-fa-contao (f26d) - : nf-fa-copy (f0c5) - : nf-fa-copyright (f1f9) - : nf-fa-creative_commons (f25e) - : nf-fa-credit_card (f09d) - : nf-fa-credit_card_alt (f283) - : nf-fa-crop (f125) - : nf-fa-crosshairs (f05b) - : nf-fa-css3 (f13c) - : nf-fa-cube (f1b2) - : nf-fa-cubes (f1b3) - : nf-fa-cut (f0c4) - : nf-fa-cutlery (f0f5) - : nf-fa-dashboard (f0e4) - : nf-fa-dashcube (f210) - : nf-fa-database (f1c0) - : nf-fa-deaf (f2a4) - : nf-fa-deafness (f2a4) - : nf-fa-dedent (f03b) - : nf-fa-delicious (f1a5) - : nf-fa-desktop (f108) - : nf-fa-deviantart (f1bd) - : nf-fa-diamond (f219) - : nf-fa-digg (f1a6) - : nf-fa-dollar (f155) - : nf-fa-dot_circle_o (f192) - : nf-fa-download (f019) - : nf-fa-dribbble (f17d) - : nf-fa-drivers_license (f2c2) - : nf-fa-drivers_license_o (f2c3) - : nf-fa-dropbox (f16b) - : nf-fa-drupal (f1a9) - : nf-fa-edge (f282) - : nf-fa-edit (f044) - : nf-fa-eercast (f2da) - : nf-fa-eject (f052) - : nf-fa-ellipsis_h (f141) - : nf-fa-ellipsis_v (f142) - : nf-fa-empire (f1d1) - : nf-fa-envelope (f0e0) - : nf-fa-envelope_o (f003) - : nf-fa-envelope_open (f2b6) - : nf-fa-envelope_open_o (f2b7) - : nf-fa-envelope_square (f199) - : nf-fa-envira (f299) - : nf-fa-eraser (f12d) - : nf-fa-etsy (f2d7) - : nf-fa-eur (f153) - : nf-fa-euro (f153) - : nf-fa-exchange (f0ec) - : nf-fa-exclamation (f12a) - : nf-fa-exclamation_circle (f06a) - : nf-fa-exclamation_triangle (f071) - : nf-fa-expand (f065) - : nf-fa-expeditedssl (f23e) - : nf-fa-external_link (f08e) - : nf-fa-external_link_square (f14c) - : nf-fa-eye (f06e) - : nf-fa-eye_slash (f070) - : nf-fa-eyedropper (f1fb) - : nf-fa-fa (f2b4) - : nf-fa-facebook (f09a) - : nf-fa-facebook_f (f09a) - : nf-fa-facebook_official (f230) - : nf-fa-facebook_square (f082) - : nf-fa-fast_backward (f049) - : nf-fa-fast_forward (f050) - : nf-fa-fax (f1ac) - : nf-fa-feed (f09e) - : nf-fa-female (f182) - : nf-fa-fighter_jet (f0fb) - : nf-fa-file (f15b) - : nf-fa-file_archive_o (f1c6) - : nf-fa-file_audio_o (f1c7) - : nf-fa-file_code_o (f1c9) - : nf-fa-file_excel_o (f1c3) - : nf-fa-file_image_o (f1c5) - : nf-fa-file_movie_o (f1c8) - : nf-fa-file_o (f016) - : nf-fa-file_pdf_o (f1c1) - : nf-fa-file_photo_o (f1c5) - : nf-fa-file_picture_o (f1c5) - : nf-fa-file_powerpoint_o (f1c4) - : nf-fa-file_sound_o (f1c7) - : nf-fa-file_text (f15c) - : nf-fa-file_text_o (f0f6) - : nf-fa-file_video_o (f1c8) - : nf-fa-file_word_o (f1c2) - : nf-fa-file_zip_o (f1c6) - : nf-fa-files_o (f0c5) - : nf-fa-film (f008) - : nf-fa-filter (f0b0) - : nf-fa-fire (f06d) - : nf-fa-fire_extinguisher (f134) - : nf-fa-firefox (f269) - : nf-fa-first_order (f2b0) - : nf-fa-flag (f024) - : nf-fa-flag_checkered (f11e) - : nf-fa-flag_o (f11d) - : nf-fa-flash (f0e7) - : nf-fa-flask (f0c3) - : nf-fa-flickr (f16e) - : nf-fa-floppy_o (f0c7) - : nf-fa-folder (f07b) - : nf-fa-folder_o (f114) - : nf-fa-folder_open (f07c) - : nf-fa-folder_open_o (f115) - : nf-fa-font (f031) - : nf-fa-font_awesome (f2b4) - : nf-fa-fonticons (f280) - : nf-fa-fort_awesome (f286) - : nf-fa-forumbee (f211) - : nf-fa-forward (f04e) - : nf-fa-foursquare (f180) - : nf-fa-free_code_camp (f2c5) - : nf-fa-frown_o (f119) - : nf-fa-futbol_o (f1e3) - : nf-fa-gamepad (f11b) - : nf-fa-gavel (f0e3) - : nf-fa-gbp (f154) - : nf-fa-ge (f1d1) - : nf-fa-gear (f013) - : nf-fa-gears (f085) - : nf-fa-genderless (f22d) - : nf-fa-get_pocket (f265) - : nf-fa-gg (f260) - : nf-fa-gg_circle (f261) - : nf-fa-gift (f06b) - : nf-fa-git (f1d3) - : nf-fa-git_square (f1d2) - : nf-fa-github (f09b) - : nf-fa-github_alt (f113) - : nf-fa-github_square (f092) - : nf-fa-gitlab (f296) - : nf-fa-gittip (f184) - : nf-fa-glass (f000) - : nf-fa-glide (f2a5) - : nf-fa-glide_g (f2a6) - : nf-fa-globe (f0ac) - : nf-fa-google (f1a0) - : nf-fa-google_plus (f0d5) - : nf-fa-google_plus_circle (f2b3) - : nf-fa-google_plus_official (f2b3) - : nf-fa-google_plus_square (f0d4) - : nf-fa-google_wallet (f1ee) - : nf-fa-graduation_cap (f19d) - : nf-fa-gratipay (f184) - : nf-fa-grav (f2d6) - : nf-fa-group (f0c0) - : nf-fa-h_square (f0fd) - : nf-fa-hacker_news (f1d4) - : nf-fa-hand_grab_o (f255) - : nf-fa-hand_lizard_o (f258) - : nf-fa-hand_o_down (f0a7) - : nf-fa-hand_o_left (f0a5) - : nf-fa-hand_o_right (f0a4) - : nf-fa-hand_o_up (f0a6) - : nf-fa-hand_paper_o (f256) - : nf-fa-hand_peace_o (f25b) - : nf-fa-hand_pointer_o (f25a) - : nf-fa-hand_rock_o (f255) - : nf-fa-hand_scissors_o (f257) - : nf-fa-hand_spock_o (f259) - : nf-fa-hand_stop_o (f256) - : nf-fa-handshake_o (f2b5) - : nf-fa-hard_of_hearing (f2a4) - : nf-fa-hashtag (f292) - : nf-fa-hdd_o (f0a0) - : nf-fa-header (f1dc) - : nf-fa-headphones (f025) - : nf-fa-heart (f004) - : nf-fa-heart_o (f08a) - : nf-fa-heartbeat (f21e) - : nf-fa-history (f1da) - : nf-fa-home (f015) - : nf-fa-hospital_o (f0f8) - : nf-fa-hotel (f236) - : nf-fa-hourglass (f254) - : nf-fa-hourglass_1 (f251) - : nf-fa-hourglass_2 (f252) - : nf-fa-hourglass_3 (f253) - : nf-fa-hourglass_end (f253) - : nf-fa-hourglass_half (f252) - : nf-fa-hourglass_o (f250) - : nf-fa-hourglass_start (f251) - : nf-fa-houzz (f27c) - : nf-fa-html5 (f13b) - : nf-fa-i_cursor (f246) - : nf-fa-id_badge (f2c1) - : nf-fa-id_card (f2c2) - : nf-fa-id_card_o (f2c3) - : nf-fa-ils (f20b) - : nf-fa-image (f03e) - : nf-fa-imdb (f2d8) - : nf-fa-inbox (f01c) - : nf-fa-indent (f03c) - : nf-fa-industry (f275) - : nf-fa-info (f129) - : nf-fa-info_circle (f05a) - : nf-fa-inr (f156) - : nf-fa-instagram (f16d) - : nf-fa-institution (f19c) - : nf-fa-internet_explorer (f26b) - : nf-fa-intersex (f224) - : nf-fa-ioxhost (f208) - : nf-fa-italic (f033) - : nf-fa-joomla (f1aa) - : nf-fa-jpy (f157) - : nf-fa-jsfiddle (f1cc) - : nf-fa-key (f084) - : nf-fa-keyboard_o (f11c) - : nf-fa-krw (f159) - : nf-fa-language (f1ab) - : nf-fa-laptop (f109) - : nf-fa-lastfm (f202) - : nf-fa-lastfm_square (f203) - : nf-fa-leaf (f06c) - : nf-fa-leanpub (f212) - : nf-fa-legal (f0e3) - : nf-fa-lemon_o (f094) - : nf-fa-level_down (f149) - : nf-fa-level_up (f148) - : nf-fa-life_bouy (f1cd) - : nf-fa-life_buoy (f1cd) - : nf-fa-life_ring (f1cd) - : nf-fa-life_saver (f1cd) - : nf-fa-lightbulb_o (f0eb) - : nf-fa-line_chart (f201) - : nf-fa-link (f0c1) - : nf-fa-linkedin (f0e1) - : nf-fa-linkedin_square (f08c) - : nf-fa-linode (f2b8) - : nf-fa-linux (f17c) - : nf-fa-list (f03a) - : nf-fa-list_alt (f022) - : nf-fa-list_ol (f0cb) - : nf-fa-list_ul (f0ca) - : nf-fa-location_arrow (f124) - : nf-fa-lock (f023) - : nf-fa-long_arrow_down (f175) - : nf-fa-long_arrow_left (f177) - : nf-fa-long_arrow_right (f178) - : nf-fa-long_arrow_up (f176) - : nf-fa-low_vision (f2a8) - : nf-fa-magic (f0d0) - : nf-fa-magnet (f076) - : nf-fa-mail_forward (f064) - : nf-fa-mail_reply (f112) - : nf-fa-mail_reply_all (f122) - : nf-fa-male (f183) - : nf-fa-map (f279) - : nf-fa-map_marker (f041) - : nf-fa-map_o (f278) - : nf-fa-map_pin (f276) - : nf-fa-map_signs (f277) - : nf-fa-mars (f222) - : nf-fa-mars_double (f227) - : nf-fa-mars_stroke (f229) - : nf-fa-mars_stroke_h (f22b) - : nf-fa-mars_stroke_v (f22a) - : nf-fa-maxcdn (f136) - : nf-fa-meanpath (f20c) - : nf-fa-medium (f23a) - : nf-fa-medkit (f0fa) - : nf-fa-meetup (f2e0) - : nf-fa-meh_o (f11a) - : nf-fa-mercury (f223) - : nf-fa-microchip (f2db) - : nf-fa-microphone (f130) - : nf-fa-microphone_slash (f131) - : nf-fa-minus (f068) - : nf-fa-minus_circle (f056) - : nf-fa-minus_square (f146) - : nf-fa-minus_square_o (f147) - : nf-fa-mixcloud (f289) - : nf-fa-mobile (f10b) - : nf-fa-mobile_phone (f10b) - : nf-fa-modx (f285) - : nf-fa-money (f0d6) - : nf-fa-moon_o (f186) - : nf-fa-mortar_board (f19d) - : nf-fa-motorcycle (f21c) - : nf-fa-mouse_pointer (f245) - : nf-fa-music (f001) - : nf-fa-navicon (f0c9) - : nf-fa-neuter (f22c) - : nf-fa-newspaper_o (f1ea) - : nf-fa-object_group (f247) - : nf-fa-object_ungroup (f248) - : nf-fa-odnoklassniki (f263) - : nf-fa-odnoklassniki_square (f264) - : nf-fa-opencart (f23d) - : nf-fa-openid (f19b) - : nf-fa-opera (f26a) - : nf-fa-optin_monster (f23c) - : nf-fa-outdent (f03b) - : nf-fa-pagelines (f18c) - : nf-fa-paint_brush (f1fc) - : nf-fa-paper_plane (f1d8) - : nf-fa-paper_plane_o (f1d9) - : nf-fa-paperclip (f0c6) - : nf-fa-paragraph (f1dd) - : nf-fa-paste (f0ea) - : nf-fa-pause (f04c) - : nf-fa-pause_circle (f28b) - : nf-fa-pause_circle_o (f28c) - : nf-fa-paw (f1b0) - : nf-fa-paypal (f1ed) - : nf-fa-pencil (f040) - : nf-fa-pencil_square (f14b) - : nf-fa-pencil_square_o (f044) - : nf-fa-percent (f295) - : nf-fa-phone (f095) - : nf-fa-phone_square (f098) - : nf-fa-photo (f03e) - : nf-fa-picture_o (f03e) - : nf-fa-pie_chart (f200) - : nf-fa-pied_piper (f2ae) - : nf-fa-pied_piper_alt (f1a8) - : nf-fa-pied_piper_pp (f1a7) - : nf-fa-pinterest (f0d2) - : nf-fa-pinterest_p (f231) - : nf-fa-pinterest_square (f0d3) - : nf-fa-plane (f072) - : nf-fa-play (f04b) - : nf-fa-play_circle (f144) - : nf-fa-play_circle_o (f01d) - : nf-fa-plug (f1e6) - : nf-fa-plus (f067) - : nf-fa-plus_circle (f055) - : nf-fa-plus_square (f0fe) - : nf-fa-plus_square_o (f196) - : nf-fa-podcast (f2ce) - : nf-fa-power_off (f011) - : nf-fa-print (f02f) - : nf-fa-product_hunt (f288) - : nf-fa-puzzle_piece (f12e) - : nf-fa-qq (f1d6) - : nf-fa-qrcode (f029) - : nf-fa-question (f128) - : nf-fa-question_circle (f059) - : nf-fa-question_circle_o (f29c) - : nf-fa-quora (f2c4) - : nf-fa-quote_left (f10d) - : nf-fa-quote_right (f10e) - : nf-fa-ra (f1d0) - : nf-fa-random (f074) - : nf-fa-ravelry (f2d9) - : nf-fa-rebel (f1d0) - : nf-fa-recycle (f1b8) - : nf-fa-reddit (f1a1) - : nf-fa-reddit_alien (f281) - : nf-fa-reddit_square (f1a2) - : nf-fa-refresh (f021) - : nf-fa-registered (f25d) - : nf-fa-remove (f00d) - : nf-fa-renren (f18b) - : nf-fa-reorder (f0c9) - : nf-fa-repeat (f01e) - : nf-fa-reply (f112) - : nf-fa-reply_all (f122) - : nf-fa-resistance (f1d0) - : nf-fa-retweet (f079) - : nf-fa-rmb (f157) - : nf-fa-road (f018) - : nf-fa-rocket (f135) - : nf-fa-rotate_left (f0e2) - : nf-fa-rotate_right (f01e) - : nf-fa-rouble (f158) - : nf-fa-rss (f09e) - : nf-fa-rss_square (f143) - : nf-fa-rub (f158) - : nf-fa-ruble (f158) - : nf-fa-rupee (f156) - : nf-fa-s15 (f2cd) - : nf-fa-safari (f267) - : nf-fa-save (f0c7) - : nf-fa-scissors (f0c4) - : nf-fa-scribd (f28a) - : nf-fa-search (f002) - : nf-fa-search_minus (f010) - : nf-fa-search_plus (f00e) - : nf-fa-sellsy (f213) - : nf-fa-send (f1d8) - : nf-fa-send_o (f1d9) - : nf-fa-server (f233) - : nf-fa-share (f064) - : nf-fa-share_alt (f1e0) - : nf-fa-share_alt_square (f1e1) - : nf-fa-share_square (f14d) - : nf-fa-share_square_o (f045) - : nf-fa-shekel (f20b) - : nf-fa-sheqel (f20b) - : nf-fa-shield (f132) - : nf-fa-ship (f21a) - : nf-fa-shirtsinbulk (f214) - : nf-fa-shopping_bag (f290) - : nf-fa-shopping_basket (f291) - : nf-fa-shopping_cart (f07a) - : nf-fa-shower (f2cc) - : nf-fa-sign_in (f090) - : nf-fa-sign_language (f2a7) - : nf-fa-sign_out (f08b) - : nf-fa-signal (f012) - : nf-fa-signing (f2a7) - : nf-fa-simplybuilt (f215) - : nf-fa-sitemap (f0e8) - : nf-fa-skyatlas (f216) - : nf-fa-skype (f17e) - : nf-fa-slack (f198) - : nf-fa-sliders (f1de) - : nf-fa-slideshare (f1e7) - : nf-fa-smile_o (f118) - : nf-fa-snapchat (f2ab) - : nf-fa-snapchat_ghost (f2ac) - : nf-fa-snapchat_square (f2ad) - : nf-fa-snowflake_o (f2dc) - : nf-fa-soccer_ball_o (f1e3) - : nf-fa-sort (f0dc) - : nf-fa-sort_alpha_asc (f15d) - : nf-fa-sort_alpha_desc (f15e) - : nf-fa-sort_amount_asc (f160) - : nf-fa-sort_amount_desc (f161) - : nf-fa-sort_asc (f0de) - : nf-fa-sort_desc (f0dd) - : nf-fa-sort_down (f0dd) - : nf-fa-sort_numeric_asc (f162) - : nf-fa-sort_numeric_desc (f163) - : nf-fa-sort_up (f0de) - : nf-fa-soundcloud (f1be) - : nf-fa-space_shuttle (f197) - : nf-fa-spinner (f110) - : nf-fa-spoon (f1b1) - : nf-fa-spotify (f1bc) - : nf-fa-square (f0c8) - : nf-fa-square_o (f096) - : nf-fa-stack_exchange (f18d) - : nf-fa-stack_overflow (f16c) - : nf-fa-star (f005) - : nf-fa-star_half (f089) - : nf-fa-star_half_empty (f123) - : nf-fa-star_half_full (f123) - : nf-fa-star_half_o (f123) - : nf-fa-star_o (f006) - : nf-fa-steam (f1b6) - : nf-fa-steam_square (f1b7) - : nf-fa-step_backward (f048) - : nf-fa-step_forward (f051) - : nf-fa-stethoscope (f0f1) - : nf-fa-sticky_note (f249) - : nf-fa-sticky_note_o (f24a) - : nf-fa-stop (f04d) - : nf-fa-stop_circle (f28d) - : nf-fa-stop_circle_o (f28e) - : nf-fa-street_view (f21d) - : nf-fa-strikethrough (f0cc) - : nf-fa-stumbleupon (f1a4) - : nf-fa-stumbleupon_circle (f1a3) - : nf-fa-subscript (f12c) - : nf-fa-subway (f239) - : nf-fa-suitcase (f0f2) - : nf-fa-sun_o (f185) - : nf-fa-superpowers (f2dd) - : nf-fa-superscript (f12b) - : nf-fa-support (f1cd) - : nf-fa-table (f0ce) - : nf-fa-tablet (f10a) - : nf-fa-tachometer (f0e4) - : nf-fa-tag (f02b) - : nf-fa-tags (f02c) - : nf-fa-tasks (f0ae) - : nf-fa-taxi (f1ba) - : nf-fa-telegram (f2c6) - : nf-fa-television (f26c) - : nf-fa-tencent_weibo (f1d5) - : nf-fa-terminal (f120) - : nf-fa-text_height (f034) - : nf-fa-text_width (f035) - : nf-fa-th (f00a) - : nf-fa-th_large (f009) - : nf-fa-th_list (f00b) - : nf-fa-themeisle (f2b2) - : nf-fa-thermometer (f2c7) - : nf-fa-thermometer_0 (f2cb) - : nf-fa-thermometer_1 (f2ca) - : nf-fa-thermometer_2 (f2c9) - : nf-fa-thermometer_3 (f2c8) - : nf-fa-thermometer_4 (f2c7) - : nf-fa-thermometer_empty (f2cb) - : nf-fa-thermometer_full (f2c7) - : nf-fa-thermometer_half (f2c9) - : nf-fa-thermometer_quarter (f2ca) - : nf-fa-thermometer_three_quarters (f2c8) - : nf-fa-thumb_tack (f08d) - : nf-fa-thumbs_down (f165) - : nf-fa-thumbs_o_down (f088) - : nf-fa-thumbs_o_up (f087) - : nf-fa-thumbs_up (f164) - : nf-fa-ticket (f145) - : nf-fa-times (f00d) - : nf-fa-times_circle (f057) - : nf-fa-times_circle_o (f05c) - : nf-fa-times_rectangle (f2d3) - : nf-fa-times_rectangle_o (f2d4) - : nf-fa-tint (f043) - : nf-fa-toggle_down (f150) - : nf-fa-toggle_left (f191) - : nf-fa-toggle_off (f204) - : nf-fa-toggle_on (f205) - : nf-fa-toggle_right (f152) - : nf-fa-toggle_up (f151) - : nf-fa-trademark (f25c) - : nf-fa-train (f238) - : nf-fa-transgender (f224) - : nf-fa-transgender_alt (f225) - : nf-fa-trash (f1f8) - : nf-fa-trash_o (f014) - : nf-fa-tree (f1bb) - : nf-fa-trello (f181) - : nf-fa-tripadvisor (f262) - : nf-fa-trophy (f091) - : nf-fa-truck (f0d1) - : nf-fa-try (f195) - : nf-fa-tty (f1e4) - : nf-fa-tumblr (f173) - : nf-fa-tumblr_square (f174) - : nf-fa-turkish_lira (f195) - : nf-fa-tv (f26c) - : nf-fa-twitch (f1e8) - : nf-fa-twitter (f099) - : nf-fa-twitter_square (f081) - : nf-fa-umbrella (f0e9) - : nf-fa-underline (f0cd) - : nf-fa-undo (f0e2) - : nf-fa-universal_access (f29a) - : nf-fa-university (f19c) - : nf-fa-unlink (f127) - : nf-fa-unlock (f09c) - : nf-fa-unlock_alt (f13e) - : nf-fa-unsorted (f0dc) - : nf-fa-upload (f093) - : nf-fa-usb (f287) - : nf-fa-usd (f155) - : nf-fa-user (f007) - : nf-fa-user_circle (f2bd) - : nf-fa-user_circle_o (f2be) - : nf-fa-user_md (f0f0) - : nf-fa-user_o (f2c0) - : nf-fa-user_plus (f234) - : nf-fa-user_secret (f21b) - : nf-fa-user_times (f235) - : nf-fa-users (f0c0) - : nf-fa-vcard (f2bb) - : nf-fa-vcard_o (f2bc) - : nf-fa-venus (f221) - : nf-fa-venus_double (f226) - : nf-fa-venus_mars (f228) - : nf-fa-viacoin (f237) - : nf-fa-viadeo (f2a9) - : nf-fa-viadeo_square (f2aa) - : nf-fa-video_camera (f03d) - : nf-fa-vimeo (f27d) - : nf-fa-vimeo_square (f194) - : nf-fa-vine (f1ca) - : nf-fa-vk (f189) - : nf-fa-volume_control_phone (f2a0) - : nf-fa-volume_down (f027) - : nf-fa-volume_off (f026) - : nf-fa-volume_up (f028) - : nf-fa-warning (f071) - : nf-fa-wechat (f1d7) - : nf-fa-weibo (f18a) - : nf-fa-weixin (f1d7) - : nf-fa-whatsapp (f232) - : nf-fa-wheelchair (f193) - : nf-fa-wheelchair_alt (f29b) - : nf-fa-wifi (f1eb) - : nf-fa-wikipedia_w (f266) - : nf-fa-window_close (f2d3) - : nf-fa-window_close_o (f2d4) - : nf-fa-window_maximize (f2d0) - : nf-fa-window_minimize (f2d1) - : nf-fa-window_restore (f2d2) - : nf-fa-windows (f17a) - : nf-fa-won (f159) - : nf-fa-wordpress (f19a) - : nf-fa-wpbeginner (f297) - : nf-fa-wpexplorer (f2de) - : nf-fa-wpforms (f298) - : nf-fa-wrench (f0ad) - : nf-fa-xing (f168) - : nf-fa-xing_square (f169) - : nf-fa-y_combinator (f23b) - : nf-fa-y_combinator_square (f1d4) - : nf-fa-yahoo (f19e) - : nf-fa-yc (f23b) - : nf-fa-yc_square (f1d4) - : nf-fa-yelp (f1e9) - : nf-fa-yen (f157) - : nf-fa-yoast (f2b1) - : nf-fa-youtube (f167) - : nf-fa-youtube_play (f16a) - : nf-fa-youtube_square (f166) - : nf-fae-apple_fruit (e29e) - : nf-fae-atom (e27f) - : nf-fae-bacteria (e280) - : nf-fae-banana (e281) - : nf-fae-bath (e282) - : nf-fae-bed (e283) - : nf-fae-benzene (e284) - : nf-fae-bigger (e285) - : nf-fae-biohazard (e286) - : nf-fae-blogger_circle (e287) - : nf-fae-blogger_square (e288) - : nf-fae-bones (e289) - : nf-fae-book_open (e28a) - : nf-fae-book_open_o (e28b) - : nf-fae-brain (e28c) - : nf-fae-bread (e28d) - : nf-fae-butterfly (e28e) - : nf-fae-carot (e28f) - : nf-fae-cc_by (e290) - : nf-fae-cc_cc (e291) - : nf-fae-cc_nc (e292) - : nf-fae-cc_nc_eu (e293) - : nf-fae-cc_nc_jp (e294) - : nf-fae-cc_nd (e295) - : nf-fae-cc_remix (e296) - : nf-fae-cc_sa (e297) - : nf-fae-cc_share (e298) - : nf-fae-cc_zero (e299) - : nf-fae-checklist_o (e29a) - : nf-fae-cherry (e29b) - : nf-fae-chess_bishop (e29c) - : nf-fae-chess_horse (e25f) - : nf-fae-chess_king (e260) - : nf-fae-chess_pawn (e261) - : nf-fae-chess_queen (e262) - : nf-fae-chess_tower (e263) - : nf-fae-cheese (e264) - : nf-fae-chicken_thigh (e29f) - : nf-fae-chilli (e265) - : nf-fae-chip (e266) - : nf-fae-cicling (e267) - : nf-fae-cloud (e268) - : nf-fae-cockroach (e269) - : nf-fae-coffe_beans (e26a) - : nf-fae-coins (e26b) - : nf-fae-comb (e26c) - : nf-fae-comet (e26d) - : nf-fae-crown (e26e) - : nf-fae-cup_coffe (e26f) - : nf-fae-dice (e270) - : nf-fae-disco (e271) - : nf-fae-dna (e272) - : nf-fae-donut (e273) - : nf-fae-dress (e274) - : nf-fae-drop (e275) - : nf-fae-ello (e276) - : nf-fae-envelope_open (e277) - : nf-fae-envelope_open_o (e278) - : nf-fae-equal (e279) - : nf-fae-equal_bigger (e27a) - : nf-fae-feedly (e27b) - : nf-fae-file_export (e27c) - : nf-fae-file_import (e27d) - : nf-fae-fingerprint (e23f) - : nf-fae-floppy (e240) - : nf-fae-footprint (e241) - : nf-fae-freecodecamp (e242) - : nf-fae-galaxy (e243) - : nf-fae-galery (e244) - : nf-fae-gift_card (e2a0) - : nf-fae-glass (e245) - : nf-fae-google_drive (e246) - : nf-fae-google_play (e247) - : nf-fae-gps (e248) - : nf-fae-grav (e249) - : nf-fae-guitar (e24a) - : nf-fae-gut (e24b) - : nf-fae-halter (e24c) - : nf-fae-hamburger (e24d) - : nf-fae-hat (e24e) - : nf-fae-hexagon (e24f) - : nf-fae-high_heel (e250) - : nf-fae-hotdog (e251) - : nf-fae-ice_cream (e252) - : nf-fae-id_card (e253) - : nf-fae-imdb (e254) - : nf-fae-infinity (e255) - : nf-fae-injection (e2a1) - : nf-fae-isle (e2a2) - : nf-fae-java (e256) - : nf-fae-layers (e257) - : nf-fae-lips (e258) - : nf-fae-lipstick (e259) - : nf-fae-liver (e25a) - : nf-fae-lollipop (e2a3) - : nf-fae-loyalty_card (e2a4) - : nf-fae-lung (e25b) - : nf-fae-makeup_brushes (e25c) - : nf-fae-maximize (e25d) - : nf-fae-meat (e2a5) - : nf-fae-medicine (e221) - : nf-fae-microscope (e222) - : nf-fae-milk_bottle (e223) - : nf-fae-minimize (e224) - : nf-fae-molecule (e225) - : nf-fae-moon_cloud (e226) - : nf-fae-mountains (e2a6) - : nf-fae-mushroom (e227) - : nf-fae-mustache (e228) - : nf-fae-mysql (e229) - : nf-fae-nintendo (e22a) - : nf-fae-orange (e2a7) - : nf-fae-palette_color (e22b) - : nf-fae-peach (e2a8) - : nf-fae-pear (e2a9) - : nf-fae-pi (e22c) - : nf-fae-pizza (e22d) - : nf-fae-planet (e22e) - : nf-fae-plant (e22f) - : nf-fae-playstation (e230) - : nf-fae-poison (e231) - : nf-fae-popcorn (e232) - : nf-fae-popsicle (e233) - : nf-fae-pulse (e234) - : nf-fae-python (e235) - : nf-fae-quora_circle (e236) - : nf-fae-quora_square (e237) - : nf-fae-radioactive (e238) - : nf-fae-raining (e239) - : nf-fae-real_heart (e23a) - : nf-fae-refrigerator (e23b) - : nf-fae-restore (e23c) - : nf-fae-ring (e23d) - : nf-fae-ruby (e23e) - : nf-fae-ruby_o (e21e) - : nf-fae-ruler (e21f) - : nf-fae-shirt (e218) - : nf-fae-slash (e216) - : nf-fae-smaller (e200) - : nf-fae-snowing (e201) - : nf-fae-soda (e202) - : nf-fae-sofa (e203) - : nf-fae-soup (e204) - : nf-fae-spermatozoon (e205) - : nf-fae-spin_double (e206) - : nf-fae-stomach (e207) - : nf-fae-storm (e208) - : nf-fae-sun_cloud (e21d) - : nf-fae-sushi (e21a) - : nf-fae-tacos (e219) - : nf-fae-telegram (e217) - : nf-fae-telegram_circle (e215) - : nf-fae-telescope (e209) - : nf-fae-thermometer (e20a) - : nf-fae-thermometer_high (e20b) - : nf-fae-thermometer_low (e20c) - : nf-fae-thin_close (e20d) - : nf-fae-toilet (e20e) - : nf-fae-tools (e20f) - : nf-fae-tooth (e210) - : nf-fae-tree (e21c) - : nf-fae-triangle_ruler (e21b) - : nf-fae-umbrella (e220) - : nf-fae-uterus (e211) - : nf-fae-virus (e214) - : nf-fae-w3c (e212) - : nf-fae-walking (e213) - : nf-fae-wallet (e25e) - : nf-fae-wind (e27e) - : nf-fae-xbox (e29d) -⏻ : nf-iec-power (23fb) -⭘ : nf-iec-power_off (2b58) -⏽ : nf-iec-power_on (23fd) -⏾ : nf-iec-sleep_mode (23fe) -⏼ : nf-iec-toggle_power (23fc) - : nf-indent-dotted_guide (e621) - : nf-indent-line (e621) - : nf-indentation-line (e621) - : nf-linux-alpine (f300) - : nf-linux-aosc (f301) - : nf-linux-apple (f302) - : nf-linux-archlinux (f303) - : nf-linux-centos (f304) - : nf-linux-coreos (f305) - : nf-linux-debian (f306) - : nf-linux-devuan (f307) - : nf-linux-docker (f308) - : nf-linux-elementary (f309) - : nf-linux-fedora (f30a) - : nf-linux-fedora_inverse (f30b) - : nf-linux-freebsd (f30c) - : nf-linux-gentoo (f30d) - : nf-linux-linuxmint (f30e) - : nf-linux-linuxmint_inverse (f30f) - : nf-linux-mageia (f310) - : nf-linux-mandriva (f311) - : nf-linux-manjaro (f312) - : nf-linux-nixos (f313) - : nf-linux-opensuse (f314) - : nf-linux-raspberry_pi (f315) - : nf-linux-redhat (f316) - : nf-linux-sabayon (f317) - : nf-linux-slackware (f318) - : nf-linux-slackware_inverse (f319) - : nf-linux-tux (f31a) - : nf-linux-ubuntu (f31b) - : nf-linux-ubuntu_inverse (f31c) - : nf-mdi-access_point (f501) - : nf-mdi-access_point_network (f502) - : nf-mdi-account (f503) - : nf-mdi-account_alert (f504) - : nf-mdi-account_box (f505) - : nf-mdi-account_box_outline (f506) -𣏕 : nf-mdi-account_card_details (fad1) - : nf-mdi-account_check (f507) - : nf-mdi-account_circle (f508) - : nf-mdi-account_convert (f509) -﮺ : nf-mdi-account_edit (fbba) - : nf-mdi-account_key (f50a) - : nf-mdi-account_location (f50b) - : nf-mdi-account_minus (f50c) - : nf-mdi-account_multiple (f50d) -㮝 : nf-mdi-account_multiple_minus (fad2) - : nf-mdi-account_multiple_outline (f50e) - : nf-mdi-account_multiple_plus (f50f) -ﳾ : nf-mdi-account_multiple_plus_outline (fcfe) - : nf-mdi-account_network (f510) - : nf-mdi-account_off (f511) - : nf-mdi-account_outline (f512) - : nf-mdi-account_plus (f513) -ﳿ : nf-mdi-account_plus_outline (fcff) - : nf-mdi-account_remove (f514) - : nf-mdi-account_search (f515) -אָ : nf-mdi-account_settings (fb2f) -אּ : nf-mdi-account_settings_variant (fb30) - : nf-mdi-account_star (f516) - : nf-mdi-account_switch (f518) - : nf-mdi-adjust (f519) - : nf-mdi-air_conditioner (f51a) - : nf-mdi-airballoon (f51b) - : nf-mdi-airplane (f51c) -䀘 : nf-mdi-airplane_landing (fad3) - : nf-mdi-airplane_off (f51d) -䀹 : nf-mdi-airplane_takeoff (fad4) - : nf-mdi-airplay (f51e) - : nf-mdi-alarm (f51f) -ﲌ : nf-mdi-alarm_bell (fc8c) - : nf-mdi-alarm_check (f520) -ﲍ : nf-mdi-alarm_light (fc8d) - : nf-mdi-alarm_multiple (f521) - : nf-mdi-alarm_off (f522) - : nf-mdi-alarm_plus (f523) -ﮌ : nf-mdi-alarm_snooze (fb8c) - : nf-mdi-album (f524) - : nf-mdi-alert (f525) - : nf-mdi-alert_box (f526) - : nf-mdi-alert_circle (f527) -𥉉 : nf-mdi-alert_circle_outline (fad5) -﮻ : nf-mdi-alert_decagram (fbbb) - : nf-mdi-alert_octagon (f528) -ﱥ : nf-mdi-alert_octagram (fc65) - : nf-mdi-alert_outline (f529) -﮼ : nf-mdi-all_inclusive (fbbc) -ﴀ : nf-mdi-allo (fd00) - : nf-mdi-alpha (f52a) - : nf-mdi-alphabetical (f52b) -𥳐 : nf-mdi-altimeter (fad6) - : nf-mdi-amazon (f52c) - : nf-mdi-amazon_clouddrive (f52d) - : nf-mdi-ambulance (f52e) - : nf-mdi-amplifier (f52f) - : nf-mdi-anchor (f530) - : nf-mdi-android (f531) - : nf-mdi-android_debug_bridge (f532) -ﲎ : nf-mdi-android_head (fc8e) - : nf-mdi-android_studio (f533) -ﮰ : nf-mdi-angular (fbb0) -﮽ : nf-mdi-angularjs (fbbd) -𧻓 : nf-mdi-animation (fad7) - : nf-mdi-apple (f534) - : nf-mdi-apple_finder (f535) - : nf-mdi-apple_ios (f536) -בּ : nf-mdi-apple_keyboard_caps (fb31) -גּ : nf-mdi-apple_keyboard_command (fb32) -דּ : nf-mdi-apple_keyboard_control (fb33) -הּ : nf-mdi-apple_keyboard_option (fb34) -וּ : nf-mdi-apple_keyboard_shift (fb35) - : nf-mdi-apple_mobileme (f537) - : nf-mdi-apple_safari (f538) -ﬓ : nf-mdi-application (fb13) -ﲏ : nf-mdi-approval (fc8f) - : nf-mdi-apps (f53a) - : nf-mdi-archive (f53b) - : nf-mdi-arrange_bring_forward (f53c) - : nf-mdi-arrange_bring_to_front (f53d) - : nf-mdi-arrange_send_backward (f53e) - : nf-mdi-arrange_send_to_back (f53f) - : nf-mdi-arrow_all (f540) - : nf-mdi-arrow_bottom_left (f541) - : nf-mdi-arrow_bottom_right (f542) -ﬔ : nf-mdi-arrow_collapse (fb14) - : nf-mdi-arrow_collapse_all (f543) -ﲐ : nf-mdi-arrow_collapse_down (fc90) -ﲑ : nf-mdi-arrow_collapse_left (fc91) -ﲒ : nf-mdi-arrow_collapse_right (fc92) -ﲓ : nf-mdi-arrow_collapse_up (fc93) - : nf-mdi-arrow_down (f544) -ﰬ : nf-mdi-arrow_down_bold (fc2c) -ﰭ : nf-mdi-arrow_down_bold_box (fc2d) -ﰮ : nf-mdi-arrow_down_bold_box_outline (fc2e) - : nf-mdi-arrow_down_bold_circle (f546) - : nf-mdi-arrow_down_bold_circle_outline (f547) - : nf-mdi-arrow_down_bold_hexagon_outline (f548) -﮾ : nf-mdi-arrow_down_box (fbbe) - : nf-mdi-arrow_down_drop_circle (f549) - : nf-mdi-arrow_down_drop_circle_outline (f54a) - : nf-mdi-arrow_down_thick (f545) -ﬕ : nf-mdi-arrow_expand (fb15) - : nf-mdi-arrow_expand_all (f54b) -ﲔ : nf-mdi-arrow_expand_down (fc94) -ﲕ : nf-mdi-arrow_expand_left (fc95) -ﲖ : nf-mdi-arrow_expand_right (fc96) -ﲗ : nf-mdi-arrow_expand_up (fc97) - : nf-mdi-arrow_left (f54c) -ﰯ : nf-mdi-arrow_left_bold (fc2f) -ﰰ : nf-mdi-arrow_left_bold_box (fc30) -ﰱ : nf-mdi-arrow_left_bold_box_outline (fc31) - : nf-mdi-arrow_left_bold_circle (f54e) - : nf-mdi-arrow_left_bold_circle_outline (f54f) - : nf-mdi-arrow_left_bold_hexagon_outline (f550) -﮿ : nf-mdi-arrow_left_box (fbbf) - : nf-mdi-arrow_left_drop_circle (f551) - : nf-mdi-arrow_left_drop_circle_outline (f552) - : nf-mdi-arrow_left_thick (f54d) - : nf-mdi-arrow_right (f553) -ﰲ : nf-mdi-arrow_right_bold (fc32) -ﰳ : nf-mdi-arrow_right_bold_box (fc33) -ﰴ : nf-mdi-arrow_right_bold_box_outline (fc34) - : nf-mdi-arrow_right_bold_circle (f555) - : nf-mdi-arrow_right_bold_circle_outline (f556) - : nf-mdi-arrow_right_bold_hexagon_outline (f557) -﯀ : nf-mdi-arrow_right_box (fbc0) - : nf-mdi-arrow_right_drop_circle (f558) - : nf-mdi-arrow_right_drop_circle_outline (f559) - : nf-mdi-arrow_right_thick (f554) - : nf-mdi-arrow_top_left (f55a) - : nf-mdi-arrow_top_right (f55b) - : nf-mdi-arrow_up (f55c) -ﰵ : nf-mdi-arrow_up_bold (fc35) -ﰶ : nf-mdi-arrow_up_bold_box (fc36) -ﰷ : nf-mdi-arrow_up_bold_box_outline (fc37) - : nf-mdi-arrow_up_bold_circle (f55e) - : nf-mdi-arrow_up_bold_circle_outline (f55f) - : nf-mdi-arrow_up_bold_hexagon_outline (f560) -﯁ : nf-mdi-arrow_up_box (fbc1) - : nf-mdi-arrow_up_drop_circle (f561) - : nf-mdi-arrow_up_drop_circle_outline (f562) - : nf-mdi-arrow_up_thick (f55d) -ﴁ : nf-mdi-artist (fd01) - : nf-mdi-assistant (f563) -﯂ : nf-mdi-asterisk (fbc2) - : nf-mdi-at (f564) -ﴂ : nf-mdi-atlassian (fd02) -ﱦ : nf-mdi-atom (fc66) - : nf-mdi-attachment (f565) - : nf-mdi-audiobook (f566) - : nf-mdi-auto_fix (f567) - : nf-mdi-auto_upload (f568) - : nf-mdi-autorenew (f569) - : nf-mdi-av_timer (f56a) -ﴃ : nf-mdi-azure (fd03) - : nf-mdi-baby (f56b) -ﮍ : nf-mdi-baby_buggy (fb8d) - : nf-mdi-backburger (f56c) - : nf-mdi-backspace (f56d) - : nf-mdi-backup_restore (f56e) -ﭳ : nf-mdi-bandcamp (fb73) - : nf-mdi-bank (f56f) - : nf-mdi-barcode (f570) - : nf-mdi-barcode_scan (f571) - : nf-mdi-barley (f572) - : nf-mdi-barrel (f573) - : nf-mdi-basecamp (f574) - : nf-mdi-basket (f575) - : nf-mdi-basket_fill (f576) - : nf-mdi-basket_unfill (f577) -ﴄ : nf-mdi-basketball (fd04) - : nf-mdi-battery (f578) - : nf-mdi-battery_10 (f579) - : nf-mdi-battery_20 (f57a) - : nf-mdi-battery_30 (f57b) - : nf-mdi-battery_40 (f57c) - : nf-mdi-battery_50 (f57d) - : nf-mdi-battery_60 (f57e) - : nf-mdi-battery_70 (f57f) - : nf-mdi-battery_80 (f580) - : nf-mdi-battery_90 (f581) - : nf-mdi-battery_alert (f582) - : nf-mdi-battery_charging (f583) - : nf-mdi-battery_charging_100 (f584) - : nf-mdi-battery_charging_20 (f585) - : nf-mdi-battery_charging_30 (f586) - : nf-mdi-battery_charging_40 (f587) - : nf-mdi-battery_charging_60 (f588) - : nf-mdi-battery_charging_80 (f589) - : nf-mdi-battery_charging_90 (f58a) -ﴅ : nf-mdi-battery_charging_wireless (fd05) -ﴆ : nf-mdi-battery_charging_wireless_10 (fd06) -ﴇ : nf-mdi-battery_charging_wireless_20 (fd07) -ﴈ : nf-mdi-battery_charging_wireless_30 (fd08) -ﴉ : nf-mdi-battery_charging_wireless_40 (fd09) -ﴊ : nf-mdi-battery_charging_wireless_50 (fd0a) -ﴋ : nf-mdi-battery_charging_wireless_60 (fd0b) -ﴌ : nf-mdi-battery_charging_wireless_70 (fd0c) -ﴍ : nf-mdi-battery_charging_wireless_80 (fd0d) -ﴎ : nf-mdi-battery_charging_wireless_90 (fd0e) -ﴏ : nf-mdi-battery_charging_wireless_alert (fd0f) -ﴐ : nf-mdi-battery_charging_wireless_outline (fd10) - : nf-mdi-battery_minus (f58b) - : nf-mdi-battery_negative (f58c) - : nf-mdi-battery_outline (f58d) - : nf-mdi-battery_plus (f58e) - : nf-mdi-battery_positive (f58f) - : nf-mdi-battery_unknown (f590) - : nf-mdi-beach (f591) -ﮎ : nf-mdi-beaker (fb8e) - : nf-mdi-beats (f596) - : nf-mdi-beer (f597) - : nf-mdi-behance (f598) - : nf-mdi-bell (f599) - : nf-mdi-bell_off (f59a) - : nf-mdi-bell_outline (f59b) - : nf-mdi-bell_plus (f59c) - : nf-mdi-bell_ring (f59d) - : nf-mdi-bell_ring_outline (f59e) - : nf-mdi-bell_sleep (f59f) - : nf-mdi-beta (f5a0) - : nf-mdi-bible (f5a1) - : nf-mdi-bike (f5a2) - : nf-mdi-bing (f5a3) - : nf-mdi-binoculars (f5a4) - : nf-mdi-bio (f5a5) - : nf-mdi-biohazard (f5a6) - : nf-mdi-bitbucket (f5a7) -ﴑ : nf-mdi-bitcoin (fd11) - : nf-mdi-black_mesa (f5a8) - : nf-mdi-blackberry (f5a9) - : nf-mdi-blender (f5aa) - : nf-mdi-blinds (f5ab) - : nf-mdi-block_helper (f5ac) - : nf-mdi-blogger (f5ad) - : nf-mdi-bluetooth (f5ae) - : nf-mdi-bluetooth_audio (f5af) - : nf-mdi-bluetooth_connect (f5b0) - : nf-mdi-bluetooth_off (f5b1) - : nf-mdi-bluetooth_settings (f5b2) - : nf-mdi-bluetooth_transfer (f5b3) - : nf-mdi-blur (f5b4) - : nf-mdi-blur_linear (f5b5) - : nf-mdi-blur_off (f5b6) - : nf-mdi-blur_radial (f5b7) -ﮏ : nf-mdi-bomb (fb8f) -﯃ : nf-mdi-bomb_off (fbc3) - : nf-mdi-bone (f5b8) - : nf-mdi-book (f5b9) -齃 : nf-mdi-book_minus (fad8) - : nf-mdi-book_multiple (f5ba) - : nf-mdi-book_multiple_variant (f5bb) - : nf-mdi-book_open (f5bc) -龎 : nf-mdi-book_open_page_variant (fad9) - : nf-mdi-book_open_variant (f5bd) -﫚 : nf-mdi-book_plus (fada) -ﲘ : nf-mdi-book_secure (fc98) -ﲙ : nf-mdi-book_unsecure (fc99) - : nf-mdi-book_variant (f5be) - : nf-mdi-bookmark (f5bf) - : nf-mdi-bookmark_check (f5c0) - : nf-mdi-bookmark_music (f5c1) - : nf-mdi-bookmark_outline (f5c2) - : nf-mdi-bookmark_plus (f5c4) - : nf-mdi-bookmark_plus_outline (f5c3) - : nf-mdi-bookmark_remove (f5c5) -﫛 : nf-mdi-boombox (fadb) -﯄ : nf-mdi-bootstrap (fbc4) - : nf-mdi-border_all (f5c6) - : nf-mdi-border_bottom (f5c7) - : nf-mdi-border_color (f5c8) - : nf-mdi-border_horizontal (f5c9) - : nf-mdi-border_inside (f5ca) - : nf-mdi-border_left (f5cb) - : nf-mdi-border_none (f5cc) - : nf-mdi-border_outside (f5cd) - : nf-mdi-border_right (f5ce) - : nf-mdi-border_style (f5cf) - : nf-mdi-border_top (f5d0) - : nf-mdi-border_vertical (f5d1) -ﭶ : nf-mdi-bow_tie (fb76) -ﬖ : nf-mdi-bowl (fb16) - : nf-mdi-bowling (f5d2) - : nf-mdi-box (f5d3) - : nf-mdi-box_cutter (f5d4) -זּ : nf-mdi-box_shadow (fb36) -ﬗ : nf-mdi-bridge (fb17) - : nf-mdi-briefcase (f5d5) - : nf-mdi-briefcase_check (f5d6) - : nf-mdi-briefcase_download (f5d7) -ﴒ : nf-mdi-briefcase_outline (fd12) - : nf-mdi-briefcase_upload (f5d8) - : nf-mdi-brightness_1 (f5d9) - : nf-mdi-brightness_2 (f5da) - : nf-mdi-brightness_3 (f5db) - : nf-mdi-brightness_4 (f5dc) - : nf-mdi-brightness_5 (f5dd) - : nf-mdi-brightness_6 (f5de) - : nf-mdi-brightness_7 (f5df) - : nf-mdi-brightness_auto (f5e0) - : nf-mdi-broom (f5e1) - : nf-mdi-brush (f5e2) -﬘ : nf-mdi-buffer (fb18) - : nf-mdi-bug (f5e3) - : nf-mdi-bulletin_board (f5e4) - : nf-mdi-bullhorn (f5e5) -﫜 : nf-mdi-bullseye (fadc) - : nf-mdi-bus (f5e6) -ﲚ : nf-mdi-bus_articulated_end (fc9a) -ﲛ : nf-mdi-bus_articulated_front (fc9b) -ﲜ : nf-mdi-bus_double_decker (fc9c) -ﲝ : nf-mdi-bus_school (fc9d) -ﲞ : nf-mdi-bus_side (fc9e) - : nf-mdi-cached (f5e7) - : nf-mdi-cake (f5e8) - : nf-mdi-cake_layered (f5e9) - : nf-mdi-cake_variant (f5ea) - : nf-mdi-calculator (f5eb) - : nf-mdi-calendar (f5ec) - : nf-mdi-calendar_blank (f5ed) - : nf-mdi-calendar_check (f5ee) - : nf-mdi-calendar_clock (f5ef) - : nf-mdi-calendar_multiple (f5f0) - : nf-mdi-calendar_multiple_check (f5f1) - : nf-mdi-calendar_plus (f5f2) -ﮐ : nf-mdi-calendar_question (fb90) -ﭷ : nf-mdi-calendar_range (fb77) - : nf-mdi-calendar_remove (f5f3) - : nf-mdi-calendar_text (f5f4) - : nf-mdi-calendar_today (f5f5) - : nf-mdi-call_made (f5f6) - : nf-mdi-call_merge (f5f7) - : nf-mdi-call_missed (f5f8) - : nf-mdi-call_received (f5f9) - : nf-mdi-call_split (f5fa) - : nf-mdi-camcorder (f5fb) - : nf-mdi-camcorder_box (f5fc) - : nf-mdi-camcorder_box_off (f5fd) - : nf-mdi-camcorder_off (f5fe) - : nf-mdi-camera (f5ff) -ﮑ : nf-mdi-camera_burst (fb91) - : nf-mdi-camera_enhance (f600) - : nf-mdi-camera_front (f601) - : nf-mdi-camera_front_variant (f602) -ﲟ : nf-mdi-camera_gopro (fc9f) - : nf-mdi-camera_iris (f603) -ﲠ : nf-mdi-camera_metering_center (fca0) -ﲡ : nf-mdi-camera_metering_matrix (fca1) -ﲢ : nf-mdi-camera_metering_partial (fca2) -ﲣ : nf-mdi-camera_metering_spot (fca3) -﫞 : nf-mdi-camera_off (fade) - : nf-mdi-camera_party_mode (f604) - : nf-mdi-camera_rear (f605) - : nf-mdi-camera_rear_variant (f606) - : nf-mdi-camera_switch (f607) - : nf-mdi-camera_timer (f608) -ﰸ : nf-mdi-cancel (fc38) -﫡 : nf-mdi-candle (fae1) - : nf-mdi-candycane (f609) -ﲤ : nf-mdi-cannabis (fca4) - : nf-mdi-car (f60a) - : nf-mdi-car_battery (f60b) - : nf-mdi-car_connected (f60c) -ﲥ : nf-mdi-car_convertible (fca5) -ﲦ : nf-mdi-car_estate (fca6) -ﲧ : nf-mdi-car_hatchback (fca7) -ﲨ : nf-mdi-car_pickup (fca8) -ﲩ : nf-mdi-car_side (fca9) -ﲪ : nf-mdi-car_sports (fcaa) - : nf-mdi-car_wash (f60d) -ﲫ : nf-mdi-caravan (fcab) -﬷ : nf-mdi-cards (fb37) -טּ : nf-mdi-cards_outline (fb38) -יּ : nf-mdi-cards_playing_outline (fb39) -﯅ : nf-mdi-cards_variant (fbc5) - : nf-mdi-carrot (f60e) - : nf-mdi-cart (f60f) -ﭪ : nf-mdi-cart_off (fb6a) - : nf-mdi-cart_outline (f610) - : nf-mdi-cart_plus (f611) - : nf-mdi-case_sensitive_alt (f612) - : nf-mdi-cash (f613) - : nf-mdi-cash_100 (f614) - : nf-mdi-cash_multiple (f615) - : nf-mdi-cash_usd (f616) - : nf-mdi-cast (f617) - : nf-mdi-cast_connected (f618) -ﲈ : nf-mdi-cast_off (fc88) - : nf-mdi-castle (f619) - : nf-mdi-cat (f61a) -ﲬ : nf-mdi-cctv (fcac) -ﱧ : nf-mdi-ceiling_light (fc67) - : nf-mdi-cellphone (f61b) - : nf-mdi-cellphone_android (f61c) - : nf-mdi-cellphone_basic (f61d) - : nf-mdi-cellphone_dock (f61e) - : nf-mdi-cellphone_iphone (f61f) - : nf-mdi-cellphone_link (f620) - : nf-mdi-cellphone_link_off (f621) - : nf-mdi-cellphone_settings (f622) -ﴓ : nf-mdi-cellphone_wireless (fd13) - : nf-mdi-certificate (f623) - : nf-mdi-chair_school (f624) - : nf-mdi-chart_arc (f625) - : nf-mdi-chart_areaspline (f626) - : nf-mdi-chart_bar (f627) -ﱨ : nf-mdi-chart_bar_stacked (fc68) -﫢 : nf-mdi-chart_bubble (fae2) -ﲭ : nf-mdi-chart_donut (fcad) -ﲮ : nf-mdi-chart_donut_variant (fcae) -ﭫ : nf-mdi-chart_gantt (fb6b) - : nf-mdi-chart_histogram (f628) - : nf-mdi-chart_line (f629) -ﱩ : nf-mdi-chart_line_stacked (fc69) -ﲯ : nf-mdi-chart_line_variant (fcaf) - : nf-mdi-chart_pie (f62a) -ﭬ : nf-mdi-chart_scatterplot_hexbin (fb6c) -ﭭ : nf-mdi-chart_timeline (fb6d) - : nf-mdi-check (f62b) - : nf-mdi-check_all (f62c) -﫟 : nf-mdi-check_circle (fadf) -﫠 : nf-mdi-check_circle_outline (fae0) - : nf-mdi-checkbox_blank (f62d) - : nf-mdi-checkbox_blank_circle (f62e) - : nf-mdi-checkbox_blank_circle_outline (f62f) - : nf-mdi-checkbox_blank_outline (f630) - : nf-mdi-checkbox_marked (f631) - : nf-mdi-checkbox_marked_circle (f632) - : nf-mdi-checkbox_marked_circle_outline (f633) - : nf-mdi-checkbox_marked_outline (f634) - : nf-mdi-checkbox_multiple_blank (f635) -ךּ : nf-mdi-checkbox_multiple_blank_circle (fb3a) -כּ : nf-mdi-checkbox_multiple_blank_circle_outline (fb3b) - : nf-mdi-checkbox_multiple_blank_outline (f636) - : nf-mdi-checkbox_multiple_marked (f637) -לּ : nf-mdi-checkbox_multiple_marked_circle (fb3c) -﬽ : nf-mdi-checkbox_multiple_marked_circle_outline (fb3d) - : nf-mdi-checkbox_multiple_marked_outline (f638) - : nf-mdi-checkerboard (f639) - : nf-mdi-chemical_weapon (f63a) - : nf-mdi-chevron_double_down (f63b) - : nf-mdi-chevron_double_left (f63c) - : nf-mdi-chevron_double_right (f63d) - : nf-mdi-chevron_double_up (f63e) - : nf-mdi-chevron_down (f63f) - : nf-mdi-chevron_left (f640) - : nf-mdi-chevron_right (f641) - : nf-mdi-chevron_up (f642) -ﲰ : nf-mdi-chili_hot (fcb0) -ﲱ : nf-mdi-chili_medium (fcb1) -ﲲ : nf-mdi-chili_mild (fcb2) -﬙ : nf-mdi-chip (fb19) - : nf-mdi-church (f643) -ﱣ : nf-mdi-circle (fc63) -ﱤ : nf-mdi-circle_outline (fc64) - : nf-mdi-cisco_webex (f644) - : nf-mdi-city (f645) - : nf-mdi-clipboard (f646) - : nf-mdi-clipboard_account (f647) - : nf-mdi-clipboard_alert (f648) - : nf-mdi-clipboard_arrow_down (f649) - : nf-mdi-clipboard_arrow_left (f64a) - : nf-mdi-clipboard_check (f64b) -﯆ : nf-mdi-clipboard_flow (fbc6) - : nf-mdi-clipboard_outline (f64c) -ﱏ : nf-mdi-clipboard_plus (fc4f) - : nf-mdi-clipboard_text (f64d) - : nf-mdi-clippy (f64e) - : nf-mdi-clock (f64f) -鬒 : nf-mdi-clock_alert (facd) - : nf-mdi-clock_end (f650) - : nf-mdi-clock_fast (f651) - : nf-mdi-clock_in (f652) - : nf-mdi-clock_out (f653) - : nf-mdi-clock_start (f654) - : nf-mdi-close (f655) - : nf-mdi-close_box (f656) - : nf-mdi-close_box_outline (f657) - : nf-mdi-close_circle (f658) - : nf-mdi-close_circle_outline (f659) - : nf-mdi-close_network (f65a) - : nf-mdi-close_octagon (f65b) - : nf-mdi-close_octagon_outline (f65c) -﯇ : nf-mdi-close_outline (fbc7) - : nf-mdi-closed_caption (f65d) - : nf-mdi-cloud (f65e) -ﲳ : nf-mdi-cloud_braces (fcb3) - : nf-mdi-cloud_check (f65f) - : nf-mdi-cloud_circle (f660) - : nf-mdi-cloud_download (f661) - : nf-mdi-cloud_off_outline (f663) - : nf-mdi-cloud_outline (f662) - : nf-mdi-cloud_print (f664) - : nf-mdi-cloud_print_outline (f665) -מּ : nf-mdi-cloud_sync (fb3e) -ﲴ : nf-mdi-cloud_tags (fcb4) - : nf-mdi-cloud_upload (f666) -ﴔ : nf-mdi-clover (fd14) - : nf-mdi-code_array (f667) - : nf-mdi-code_braces (f668) - : nf-mdi-code_brackets (f669) - : nf-mdi-code_equal (f66a) - : nf-mdi-code_greater_than (f66b) - : nf-mdi-code_greater_than_or_equal (f66c) - : nf-mdi-code_less_than (f66d) - : nf-mdi-code_less_than_or_equal (f66e) - : nf-mdi-code_not_equal (f66f) - : nf-mdi-code_not_equal_variant (f670) - : nf-mdi-code_parentheses (f671) - : nf-mdi-code_string (f672) - : nf-mdi-code_tags (f673) -ﮒ : nf-mdi-code_tags_check (fb92) - : nf-mdi-codepen (f674) - : nf-mdi-coffee (f675) -﯈ : nf-mdi-coffee_outline (fbc8) - : nf-mdi-coffee_to_go (f676) - : nf-mdi-coin (f677) -ﮓ : nf-mdi-coins (fb93) -﬿ : nf-mdi-collage (fb3f) - : nf-mdi-color_helper (f678) - : nf-mdi-comment (f679) - : nf-mdi-comment_account (f67a) - : nf-mdi-comment_account_outline (f67b) - : nf-mdi-comment_alert (f67c) - : nf-mdi-comment_alert_outline (f67d) - : nf-mdi-comment_check (f67e) - : nf-mdi-comment_check_outline (f67f) - : nf-mdi-comment_multiple_outline (f680) - : nf-mdi-comment_outline (f681) - : nf-mdi-comment_plus_outline (f682) - : nf-mdi-comment_processing (f683) - : nf-mdi-comment_processing_outline (f684) -ﴕ : nf-mdi-comment_question (fd15) - : nf-mdi-comment_question_outline (f685) -﫝 : nf-mdi-comment_remove (fadd) - : nf-mdi-comment_remove_outline (f686) - : nf-mdi-comment_text (f687) - : nf-mdi-comment_text_outline (f688) - : nf-mdi-compare (f689) - : nf-mdi-compass (f68a) - : nf-mdi-compass_outline (f68b) - : nf-mdi-console (f68c) -ﲵ : nf-mdi-console_line (fcb5) - : nf-mdi-contact_mail (f68d) -﯉ : nf-mdi-contacts (fbc9) - : nf-mdi-content_copy (f68e) - : nf-mdi-content_cut (f68f) - : nf-mdi-content_duplicate (f690) - : nf-mdi-content_paste (f691) - : nf-mdi-content_save (f692) - : nf-mdi-content_save_all (f693) -ﴖ : nf-mdi-content_save_outline (fd16) -﬚ : nf-mdi-content_save_settings (fb1a) - : nf-mdi-contrast (f694) - : nf-mdi-contrast_box (f695) - : nf-mdi-contrast_circle (f696) - : nf-mdi-cookie (f697) -﫥 : nf-mdi-copyright (fae5) -ﲶ : nf-mdi-corn (fcb6) - : nf-mdi-counter (f698) - : nf-mdi-cow (f699) - : nf-mdi-creation (f6c8) - : nf-mdi-credit_card (f69a) - : nf-mdi-credit_card_multiple (f69b) -﫣 : nf-mdi-credit_card_off (fae3) -ﭴ : nf-mdi-credit_card_plus (fb74) - : nf-mdi-credit_card_scan (f69c) - : nf-mdi-crop (f69d) - : nf-mdi-crop_free (f69e) - : nf-mdi-crop_landscape (f69f) - : nf-mdi-crop_portrait (f6a0) -ﮔ : nf-mdi-crop_rotate (fb94) - : nf-mdi-crop_square (f6a1) - : nf-mdi-crosshairs (f6a2) - : nf-mdi-crosshairs_gps (f6a3) - : nf-mdi-crown (f6a4) - : nf-mdi-cube (f6a5) - : nf-mdi-cube_outline (f6a6) - : nf-mdi-cube_send (f6a7) - : nf-mdi-cube_unfolded (f6a8) - : nf-mdi-cup (f6a9) -﫤 : nf-mdi-cup_off (fae4) - : nf-mdi-cup_water (f6aa) - : nf-mdi-currency_btc (f6ab) -ﲷ : nf-mdi-currency_chf (fcb7) -ﲸ : nf-mdi-currency_cny (fcb8) -ﲹ : nf-mdi-currency_eth (fcb9) - : nf-mdi-currency_eur (f6ac) - : nf-mdi-currency_gbp (f6ad) - : nf-mdi-currency_inr (f6ae) -ﲺ : nf-mdi-currency_jpy (fcba) -ﲻ : nf-mdi-currency_krw (fcbb) - : nf-mdi-currency_ngn (f6af) - : nf-mdi-currency_rub (f6b0) -ﲼ : nf-mdi-currency_sign (fcbc) - : nf-mdi-currency_try (f6b1) -ﲽ : nf-mdi-currency_twd (fcbd) - : nf-mdi-currency_usd (f6b2) -ﭸ : nf-mdi-currency_usd_off (fb78) - : nf-mdi-cursor_default (f6b3) - : nf-mdi-cursor_default_outline (f6b4) - : nf-mdi-cursor_move (f6b5) - : nf-mdi-cursor_pointer (f6b6) -﫦 : nf-mdi-cursor_text (fae6) - : nf-mdi-database (f6b7) - : nf-mdi-database_minus (f6b8) - : nf-mdi-database_plus (f6b9) - : nf-mdi-debug_step_into (f6ba) - : nf-mdi-debug_step_out (f6bb) - : nf-mdi-debug_step_over (f6bc) -ﱪ : nf-mdi-decagram (fc6a) -ﱫ : nf-mdi-decagram_outline (fc6b) - : nf-mdi-decimal_decrease (f6bd) - : nf-mdi-decimal_increase (f6be) - : nf-mdi-delete (f6bf) -ﮁ : nf-mdi-delete_circle (fb81) -﯊ : nf-mdi-delete_empty (fbca) -﫧 : nf-mdi-delete_forever (fae7) -ﴗ : nf-mdi-delete_restore (fd17) -﫨 : nf-mdi-delete_sweep (fae8) - : nf-mdi-delete_variant (f6c0) - : nf-mdi-delta (f6c1) - : nf-mdi-deskphone (f6c2) -ﲾ : nf-mdi-desktop_classic (fcbe) - : nf-mdi-desktop_mac (f6c3) - : nf-mdi-desktop_tower (f6c4) - : nf-mdi-details (f6c5) -ﮕ : nf-mdi-developer_board (fb95) - : nf-mdi-deviantart (f6c6) -﬛ : nf-mdi-dialpad (fb1b) - : nf-mdi-diamond (f6c7) - : nf-mdi-dice_1 (f6c9) - : nf-mdi-dice_2 (f6ca) - : nf-mdi-dice_3 (f6cb) - : nf-mdi-dice_4 (f6cc) - : nf-mdi-dice_5 (f6cd) - : nf-mdi-dice_6 (f6ce) -ﱭ : nf-mdi-dice_d10 (fc6d) -﫩 : nf-mdi-dice_d20 (fae9) -﫪 : nf-mdi-dice_d4 (faea) -﫫 : nf-mdi-dice_d6 (faeb) -﫬 : nf-mdi-dice_d8 (faec) -ﱬ : nf-mdi-dice_multiple (fc6c) -﬜ : nf-mdi-dictionary (fb1c) -ﲿ : nf-mdi-dip_switch (fcbf) - : nf-mdi-directions (f6cf) -נּ : nf-mdi-directions_fork (fb40) -ﭮ : nf-mdi-discord (fb6e) -﫭 : nf-mdi-disk (faed) - : nf-mdi-disk_alert (f6d0) - : nf-mdi-disqus (f6d1) - : nf-mdi-disqus_outline (f6d2) - : nf-mdi-division (f6d3) - : nf-mdi-division_box (f6d4) -ﮂ : nf-mdi-dna (fb82) - : nf-mdi-dns (f6d5) -ﮖ : nf-mdi-do_not_disturb (fb96) -ﮗ : nf-mdi-do_not_disturb_off (fb97) -ﮱ : nf-mdi-dolby (fbb1) - : nf-mdi-domain (f6d6) -ﳀ : nf-mdi-donkey (fcc0) -ﴘ : nf-mdi-door (fd18) -ﴙ : nf-mdi-door_closed (fd19) -ﴚ : nf-mdi-door_open (fd1a) - : nf-mdi-dots_horizontal (f6d7) -ﳁ : nf-mdi-dots_horizontal_circle (fcc1) - : nf-mdi-dots_vertical (f6d8) -ﳂ : nf-mdi-dots_vertical_circle (fcc2) -ﮘ : nf-mdi-douban (fb98) - : nf-mdi-download (f6d9) -ﯲ : nf-mdi-download_network (fbf2) - : nf-mdi-drag (f6da) - : nf-mdi-drag_horizontal (f6db) - : nf-mdi-drag_vertical (f6dc) - : nf-mdi-drawing (f6dd) - : nf-mdi-drawing_box (f6de) - : nf-mdi-dribbble (f6df) - : nf-mdi-dribbble_box (f6e0) - : nf-mdi-drone (f6e1) - : nf-mdi-dropbox (f6e2) - : nf-mdi-drupal (f6e3) - : nf-mdi-duck (f6e4) - : nf-mdi-dumbbell (f6e5) -ﳃ : nf-mdi-ear_hearing (fcc3) - : nf-mdi-earth (f6e6) -﯋ : nf-mdi-earth_box (fbcb) -﯌ : nf-mdi-earth_box_off (fbcc) - : nf-mdi-earth_off (f6e7) - : nf-mdi-edge (f6e8) - : nf-mdi-eject (f6e9) -ﳄ : nf-mdi-elephant (fcc4) - : nf-mdi-elevation_decline (f6ea) - : nf-mdi-elevation_rise (f6eb) - : nf-mdi-elevator (f6ec) - : nf-mdi-email (f6ed) -﯍ : nf-mdi-email_alert (fbcd) - : nf-mdi-email_open (f6ee) -﫮 : nf-mdi-email_open_outline (faee) - : nf-mdi-email_outline (f6ef) - : nf-mdi-email_secure (f6f0) -﫯 : nf-mdi-email_variant (faef) -﮲ : nf-mdi-emby (fbb2) - : nf-mdi-emoticon (f6f1) - : nf-mdi-emoticon_cool (f6f2) -ﮙ : nf-mdi-emoticon_dead (fb99) - : nf-mdi-emoticon_devil (f6f3) -ﮚ : nf-mdi-emoticon_excited (fb9a) - : nf-mdi-emoticon_happy (f6f4) - : nf-mdi-emoticon_neutral (f6f5) - : nf-mdi-emoticon_poop (f6f6) - : nf-mdi-emoticon_sad (f6f7) - : nf-mdi-emoticon_tongue (f6f8) - : nf-mdi-engine (f6f9) - : nf-mdi-engine_outline (f6fa) - : nf-mdi-equal (f6fb) - : nf-mdi-equal_box (f6fc) - : nf-mdi-eraser (f6fd) -סּ : nf-mdi-eraser_variant (fb41) - : nf-mdi-escalator (f6fe) - : nf-mdi-ethernet (f6ff) - : nf-mdi-ethernet_cable (f700) - : nf-mdi-ethernet_cable_off (f701) - : nf-mdi-etsy (f702) -﫰 : nf-mdi-ev_station (faf0) -ﳅ : nf-mdi-eventbrite (fcc5) - : nf-mdi-evernote (f703) - : nf-mdi-exclamation (f704) - : nf-mdi-exit_to_app (f705) - : nf-mdi-export (f706) - : nf-mdi-eye (f707) - : nf-mdi-eye_off (f708) -﯏ : nf-mdi-eye_off_outline (fbcf) -﯎ : nf-mdi-eye_outline (fbce) - : nf-mdi-eyedropper (f709) - : nf-mdi-eyedropper_variant (f70a) -﭂ : nf-mdi-face (fb42) -ףּ : nf-mdi-face_profile (fb43) - : nf-mdi-facebook (f70b) - : nf-mdi-facebook_box (f70c) - : nf-mdi-facebook_messenger (f70d) - : nf-mdi-factory (f70e) - : nf-mdi-fan (f70f) -ﴛ : nf-mdi-fan_off (fd1b) - : nf-mdi-fast_forward (f710) -﯐ : nf-mdi-fast_forward_outline (fbd0) - : nf-mdi-fax (f711) -﯑ : nf-mdi-feather (fbd1) - : nf-mdi-ferry (f712) - : nf-mdi-file (f713) -ﰹ : nf-mdi-file_account (fc39) - : nf-mdi-file_chart (f714) - : nf-mdi-file_check (f715) - : nf-mdi-file_cloud (f716) - : nf-mdi-file_delimited (f717) - : nf-mdi-file_document (f718) - : nf-mdi-file_document_box (f719) - : nf-mdi-file_excel (f71a) - : nf-mdi-file_excel_box (f71b) - : nf-mdi-file_export (f71c) - : nf-mdi-file_find (f71d) -﬒ : nf-mdi-file_hidden (fb12) - : nf-mdi-file_image (f71e) - : nf-mdi-file_import (f71f) - : nf-mdi-file_lock (f720) - : nf-mdi-file_multiple (f721) - : nf-mdi-file_music (f722) - : nf-mdi-file_outline (f723) - : nf-mdi-file_pdf (f724) - : nf-mdi-file_pdf_box (f725) -ﴜ : nf-mdi-file_percent (fd1c) -ﱐ : nf-mdi-file_plus (fc50) - : nf-mdi-file_powerpoint (f726) - : nf-mdi-file_powerpoint_box (f727) - : nf-mdi-file_presentation_box (f728) -ﭯ : nf-mdi-file_restore (fb6f) - : nf-mdi-file_send (f729) -פּ : nf-mdi-file_tree (fb44) - : nf-mdi-file_video (f72a) - : nf-mdi-file_word (f72b) - : nf-mdi-file_word_box (f72c) - : nf-mdi-file_xml (f72d) - : nf-mdi-film (f72e) - : nf-mdi-filmstrip (f72f) - : nf-mdi-filmstrip_off (f730) - : nf-mdi-filter (f731) - : nf-mdi-filter_outline (f732) - : nf-mdi-filter_remove (f733) - : nf-mdi-filter_remove_outline (f734) - : nf-mdi-filter_variant (f735) -ﴝ : nf-mdi-finance (fd1d) -﯒ : nf-mdi-find_replace (fbd2) - : nf-mdi-fingerprint (f736) - : nf-mdi-fire (f737) - : nf-mdi-firefox (f738) - : nf-mdi-fish (f739) - : nf-mdi-flag (f73a) - : nf-mdi-flag_checkered (f73b) - : nf-mdi-flag_outline (f73c) - : nf-mdi-flag_triangle (f73e) - : nf-mdi-flag_variant (f73f) - : nf-mdi-flag_variant_outline (f73d) - : nf-mdi-flash (f740) - : nf-mdi-flash_auto (f741) -ﴞ : nf-mdi-flash_circle (fd1e) - : nf-mdi-flash_off (f742) -ﯓ : nf-mdi-flash_outline (fbd3) -ﭹ : nf-mdi-flash_red_eye (fb79) - : nf-mdi-flashlight (f743) - : nf-mdi-flashlight_off (f744) - : nf-mdi-flask (f592) - : nf-mdi-flask_empty (f593) - : nf-mdi-flask_empty_outline (f594) - : nf-mdi-flask_outline (f595) - : nf-mdi-flattr (f745) - : nf-mdi-flip_to_back (f746) - : nf-mdi-flip_to_front (f747) -ﴟ : nf-mdi-floor_plan (fd1f) - : nf-mdi-floppy (f748) - : nf-mdi-flower (f749) - : nf-mdi-folder (f74a) - : nf-mdi-folder_account (f74b) - : nf-mdi-folder_download (f74c) - : nf-mdi-folder_google_drive (f74d) - : nf-mdi-folder_image (f74e) - : nf-mdi-folder_lock (f74f) - : nf-mdi-folder_lock_open (f750) - : nf-mdi-folder_move (f751) - : nf-mdi-folder_multiple (f752) - : nf-mdi-folder_multiple_image (f753) - : nf-mdi-folder_multiple_outline (f754) -ﱮ : nf-mdi-folder_open (fc6e) - : nf-mdi-folder_outline (f755) - : nf-mdi-folder_plus (f756) - : nf-mdi-folder_remove (f757) -ﮛ : nf-mdi-folder_star (fb9b) - : nf-mdi-folder_upload (f758) - : nf-mdi-font_awesome (f539) - : nf-mdi-food (f759) - : nf-mdi-food_apple (f75a) -ﳆ : nf-mdi-food_croissant (fcc6) -﫱 : nf-mdi-food_fork_drink (faf1) -﫲 : nf-mdi-food_off (faf2) - : nf-mdi-food_variant (f75b) - : nf-mdi-football (f75c) - : nf-mdi-football_australian (f75d) - : nf-mdi-football_helmet (f75e) -ﳇ : nf-mdi-forklift (fcc7) -ﱑ : nf-mdi-format_align_bottom (fc51) - : nf-mdi-format_align_center (f75f) - : nf-mdi-format_align_justify (f760) - : nf-mdi-format_align_left (f761) -ﱒ : nf-mdi-format_align_middle (fc52) - : nf-mdi-format_align_right (f762) -ﱓ : nf-mdi-format_align_top (fc53) -﭅ : nf-mdi-format_annotation_plus (fb45) - : nf-mdi-format_bold (f763) - : nf-mdi-format_clear (f764) - : nf-mdi-format_color_fill (f765) -ﮜ : nf-mdi-format_color_text (fb9c) - : nf-mdi-format_float_center (f766) - : nf-mdi-format_float_left (f767) - : nf-mdi-format_float_none (f768) - : nf-mdi-format_float_right (f769) -ﯔ : nf-mdi-format_font (fbd4) - : nf-mdi-format_header_1 (f76a) - : nf-mdi-format_header_2 (f76b) - : nf-mdi-format_header_3 (f76c) - : nf-mdi-format_header_4 (f76d) - : nf-mdi-format_header_5 (f76e) - : nf-mdi-format_header_6 (f76f) - : nf-mdi-format_header_decrease (f770) - : nf-mdi-format_header_equal (f771) - : nf-mdi-format_header_increase (f772) - : nf-mdi-format_header_pound (f773) -יִ : nf-mdi-format_horizontal_align_center (fb1d) -ﬞ : nf-mdi-format_horizontal_align_left (fb1e) -ײַ : nf-mdi-format_horizontal_align_right (fb1f) - : nf-mdi-format_indent_decrease (f774) - : nf-mdi-format_indent_increase (f775) - : nf-mdi-format_italic (f776) - : nf-mdi-format_line_spacing (f777) -難 : nf-mdi-format_line_style (fac7) -靖 : nf-mdi-format_line_weight (fac8) - : nf-mdi-format_list_bulleted (f778) - : nf-mdi-format_list_bulleted_type (f779) -ﱔ : nf-mdi-format_list_checks (fc54) - : nf-mdi-format_list_numbers (f77a) -ﯕ : nf-mdi-format_page_break (fbd5) - : nf-mdi-format_paint (f77b) - : nf-mdi-format_paragraph (f77c) -ﯖ : nf-mdi-format_pilcrow (fbd6) - : nf-mdi-format_quote_close (f77d) -ﱕ : nf-mdi-format_quote_open (fc55) -ﮨ : nf-mdi-format_rotate_90 (fba8) -ﮝ : nf-mdi-format_section (fb9d) - : nf-mdi-format_size (f77e) - : nf-mdi-format_strikethrough (f77f) - : nf-mdi-format_strikethrough_variant (f780) - : nf-mdi-format_subscript (f781) - : nf-mdi-format_superscript (f782) - : nf-mdi-format_text (f783) - : nf-mdi-format_textdirection_l_to_r (f784) - : nf-mdi-format_textdirection_r_to_l (f785) -﫳 : nf-mdi-format_title (faf3) - : nf-mdi-format_underline (f786) -ﬠ : nf-mdi-format_vertical_align_bottom (fb20) -ﬡ : nf-mdi-format_vertical_align_center (fb21) -ﬢ : nf-mdi-format_vertical_align_top (fb22) - : nf-mdi-format_wrap_inline (f787) - : nf-mdi-format_wrap_square (f788) - : nf-mdi-format_wrap_tight (f789) - : nf-mdi-format_wrap_top_bottom (f78a) - : nf-mdi-forum (f78b) -ﴠ : nf-mdi-forum_outline (fd20) - : nf-mdi-forward (f78c) - : nf-mdi-foursquare (f78d) - : nf-mdi-fridge (f78e) - : nf-mdi-fridge_filled (f78f) - : nf-mdi-fridge_filled_bottom (f790) - : nf-mdi-fridge_filled_top (f791) -ﳈ : nf-mdi-fuel (fcc8) - : nf-mdi-fullscreen (f792) - : nf-mdi-fullscreen_exit (f793) - : nf-mdi-function (f794) - : nf-mdi-gamepad (f795) - : nf-mdi-gamepad_variant (f796) -ﯗ : nf-mdi-garage (fbd7) -ﯘ : nf-mdi-garage_open (fbd8) -צּ : nf-mdi-gas_cylinder (fb46) - : nf-mdi-gas_station (f797) - : nf-mdi-gate (f798) - : nf-mdi-gauge (f799) - : nf-mdi-gavel (f79a) - : nf-mdi-gender_female (f79b) - : nf-mdi-gender_male (f79c) - : nf-mdi-gender_male_female (f79d) - : nf-mdi-gender_transgender (f79e) -ﳉ : nf-mdi-gesture (fcc9) -ﰺ : nf-mdi-gesture_double_tap (fc3a) -ﰻ : nf-mdi-gesture_swipe_down (fc3b) -ﰼ : nf-mdi-gesture_swipe_left (fc3c) -ﰽ : nf-mdi-gesture_swipe_right (fc3d) -ﰾ : nf-mdi-gesture_swipe_up (fc3e) -ﰿ : nf-mdi-gesture_tap (fc3f) -ﱀ : nf-mdi-gesture_two_double_tap (fc40) -ﱁ : nf-mdi-gesture_two_tap (fc41) - : nf-mdi-ghost (f79f) - : nf-mdi-gift (f7a0) - : nf-mdi-git (f7a1) - : nf-mdi-github_box (f7a2) - : nf-mdi-github_circle (f7a3) -ﯙ : nf-mdi-github_face (fbd9) - : nf-mdi-glass_flute (f7a4) - : nf-mdi-glass_mug (f7a5) - : nf-mdi-glass_stange (f7a6) - : nf-mdi-glass_tulip (f7a7) - : nf-mdi-glassdoor (f7a8) - : nf-mdi-glasses (f7a9) - : nf-mdi-gmail (f7aa) - : nf-mdi-gnome (f7ab) -ﴡ : nf-mdi-golf (fd21) -ﮄ : nf-mdi-gondola (fb84) - : nf-mdi-google (f7ac) -ﳊ : nf-mdi-google_analytics (fcca) -ﳋ : nf-mdi-google_assistant (fccb) - : nf-mdi-google_cardboard (f7ad) - : nf-mdi-google_chrome (f7ae) - : nf-mdi-google_circles (f7af) - : nf-mdi-google_circles_communities (f7b0) - : nf-mdi-google_circles_extended (f7b1) - : nf-mdi-google_circles_group (f7b2) - : nf-mdi-google_controller (f7b3) - : nf-mdi-google_controller_off (f7b4) - : nf-mdi-google_drive (f7b5) - : nf-mdi-google_earth (f7b6) - : nf-mdi-google_glass (f7b7) -ﴢ : nf-mdi-google_home (fd22) -ﯚ : nf-mdi-google_keep (fbda) -﫴 : nf-mdi-google_maps (faf4) - : nf-mdi-google_nearby (f7b8) - : nf-mdi-google_pages (f7b9) -ﯛ : nf-mdi-google_photos (fbdb) - : nf-mdi-google_physical_web (f7ba) - : nf-mdi-google_play (f7bb) - : nf-mdi-google_plus (f7bc) - : nf-mdi-google_plus_box (f7bd) - : nf-mdi-google_translate (f7be) - : nf-mdi-google_wallet (f7bf) -ﮞ : nf-mdi-gradient (fb9e) -קּ : nf-mdi-grease_pencil (fb47) - : nf-mdi-grid (f7c0) -ﱖ : nf-mdi-grid_large (fc56) - : nf-mdi-grid_off (f7c1) - : nf-mdi-group (f7c2) -ﱯ : nf-mdi-guitar_acoustic (fc6f) - : nf-mdi-guitar_electric (f7c3) - : nf-mdi-guitar_pick (f7c4) - : nf-mdi-guitar_pick_outline (f7c5) -ﴣ : nf-mdi-guy_fawkes_mask (fd23) -ﬣ : nf-mdi-hackernews (fb23) -ﮃ : nf-mdi-hamburger (fb83) - : nf-mdi-hand_pointing_right (f7c6) - : nf-mdi-hanger (f7c7) - : nf-mdi-hangouts (f7c8) - : nf-mdi-harddisk (f7c9) - : nf-mdi-headphones (f7ca) - : nf-mdi-headphones_box (f7cb) -ﳌ : nf-mdi-headphones_off (fccc) - : nf-mdi-headphones_settings (f7cc) - : nf-mdi-headset (f7cd) - : nf-mdi-headset_dock (f7ce) - : nf-mdi-headset_off (f7cf) - : nf-mdi-heart (f7d0) - : nf-mdi-heart_box (f7d1) - : nf-mdi-heart_box_outline (f7d2) - : nf-mdi-heart_broken (f7d3) -ﯝ : nf-mdi-heart_half (fbdd) -ﯜ : nf-mdi-heart_half_full (fbdc) -ﯞ : nf-mdi-heart_half_outline (fbde) -ﱗ : nf-mdi-heart_off (fc57) - : nf-mdi-heart_outline (f7d4) -﫵 : nf-mdi-heart_pulse (faf5) - : nf-mdi-help (f7d5) -ﲉ : nf-mdi-help_box (fc89) - : nf-mdi-help_circle (f7d6) -ﬤ : nf-mdi-help_circle_outline (fb24) -ﯳ : nf-mdi-help_network (fbf3) - : nf-mdi-hexagon (f7d7) -ﯟ : nf-mdi-hexagon_multiple (fbdf) - : nf-mdi-hexagon_outline (f7d8) -ﳍ : nf-mdi-high_definition (fccd) -﫶 : nf-mdi-highway (faf6) - : nf-mdi-history (f7d9) - : nf-mdi-hololens (f7da) - : nf-mdi-home (f7db) -ﴤ : nf-mdi-home_account (fd24) -ﳎ : nf-mdi-home_assistant (fcce) -ﳏ : nf-mdi-home_automation (fccf) -ﳐ : nf-mdi-home_circle (fcd0) -ﴥ : nf-mdi-home_heart (fd25) -﫷 : nf-mdi-home_map_marker (faf7) - : nf-mdi-home_modern (f7dc) -ﮟ : nf-mdi-home_outline (fb9f) - : nf-mdi-home_variant (f7dd) -ﯠ : nf-mdi-hook (fbe0) -ﯡ : nf-mdi-hook_off (fbe1) - : nf-mdi-hops (f7de) - : nf-mdi-hospital (f7df) - : nf-mdi-hospital_building (f7e0) - : nf-mdi-hospital_marker (f7e1) -ﴦ : nf-mdi-hot_tub (fd26) - : nf-mdi-hotel (f7e2) - : nf-mdi-houzz (f7e3) - : nf-mdi-houzz_box (f7e4) -ﴧ : nf-mdi-hulu (fd27) - : nf-mdi-human (f7e5) - : nf-mdi-human_child (f7e6) -רּ : nf-mdi-human_female (fb48) -שּ : nf-mdi-human_greeting (fb49) -תּ : nf-mdi-human_handsdown (fb4a) -וֹ : nf-mdi-human_handsup (fb4b) -בֿ : nf-mdi-human_male (fb4c) - : nf-mdi-human_male_female (f7e7) -龜 : nf-mdi-human_pregnant (face) -ﱂ : nf-mdi-humble_bundle (fc42) -ﴨ : nf-mdi-ice_cream (fd28) - : nf-mdi-image (f7e8) - : nf-mdi-image_album (f7e9) - : nf-mdi-image_area (f7ea) - : nf-mdi-image_area_close (f7eb) - : nf-mdi-image_broken (f7ec) - : nf-mdi-image_broken_variant (f7ed) - : nf-mdi-image_filter (f7ee) - : nf-mdi-image_filter_black_white (f7ef) - : nf-mdi-image_filter_center_focus (f7f0) - : nf-mdi-image_filter_center_focus_weak (f7f1) - : nf-mdi-image_filter_drama (f7f2) - : nf-mdi-image_filter_frames (f7f3) - : nf-mdi-image_filter_hdr (f7f4) - : nf-mdi-image_filter_none (f7f5) - : nf-mdi-image_filter_tilt_shift (f7f6) - : nf-mdi-image_filter_vintage (f7f7) - : nf-mdi-image_multiple (f7f8) -ﴩ : nf-mdi-image_off (fd29) - : nf-mdi-import (f7f9) -ﮅ : nf-mdi-inbox (fb85) - : nf-mdi-inbox_arrow_down (f7fa) - : nf-mdi-inbox_arrow_up (f8d0) -﫸 : nf-mdi-incognito (faf8) -ﯢ : nf-mdi-infinity (fbe2) - : nf-mdi-information (f7fb) - : nf-mdi-information_outline (f7fc) -כֿ : nf-mdi-information_variant (fb4d) - : nf-mdi-instagram (f7fd) - : nf-mdi-instapaper (f7fe) - : nf-mdi-internet_explorer (f7ff) - : nf-mdi-invert_colors (f800) -ﭵ : nf-mdi-itunes (fb75) - : nf-mdi-jeepney (f801) - : nf-mdi-jira (f802) - : nf-mdi-jsfiddle (f803) -ﬥ : nf-mdi-json (fb25) -ﴪ : nf-mdi-karate (fd2a) - : nf-mdi-keg (f804) -﫹 : nf-mdi-kettle (faf9) - : nf-mdi-key (f805) - : nf-mdi-key_change (f806) - : nf-mdi-key_minus (f807) - : nf-mdi-key_plus (f808) - : nf-mdi-key_remove (f809) - : nf-mdi-key_variant (f80a) - : nf-mdi-keyboard (f80b) - : nf-mdi-keyboard_backspace (f80c) - : nf-mdi-keyboard_caps (f80d) - : nf-mdi-keyboard_close (f80e) - : nf-mdi-keyboard_off (f80f) - : nf-mdi-keyboard_return (f810) - : nf-mdi-keyboard_tab (f811) - : nf-mdi-keyboard_variant (f812) -ﱃ : nf-mdi-kickstarter (fc43) - : nf-mdi-kodi (f813) - : nf-mdi-label (f814) - : nf-mdi-label_outline (f815) -ﴫ : nf-mdi-ladybug (fd2b) -ﬦ : nf-mdi-lambda (fb26) -﮳ : nf-mdi-lamp (fbb3) - : nf-mdi-lan (f816) - : nf-mdi-lan_connect (f817) - : nf-mdi-lan_disconnect (f818) - : nf-mdi-lan_pending (f819) -ﭰ : nf-mdi-language_c (fb70) -ﭱ : nf-mdi-language_cpp (fb71) - : nf-mdi-language_csharp (f81a) - : nf-mdi-language_css3 (f81b) -ﳑ : nf-mdi-language_go (fcd1) - : nf-mdi-language_html5 (f81c) - : nf-mdi-language_javascript (f81d) - : nf-mdi-language_php (f81e) - : nf-mdi-language_python (f81f) - : nf-mdi-language_python_text (f820) -ﳒ : nf-mdi-language_r (fcd2) -ﯣ : nf-mdi-language_swift (fbe3) -ﯤ : nf-mdi-language_typescript (fbe4) - : nf-mdi-laptop (f821) - : nf-mdi-laptop_chromebook (f822) - : nf-mdi-laptop_mac (f823) -ﯥ : nf-mdi-laptop_off (fbe5) - : nf-mdi-laptop_windows (f824) - : nf-mdi-lastfm (f825) -聾 : nf-mdi-lastpass (f945) - : nf-mdi-launch (f826) -ﳓ : nf-mdi-lava_lamp (fcd3) - : nf-mdi-layers (f827) - : nf-mdi-layers_off (f828) -פֿ : nf-mdi-lead_pencil (fb4e) - : nf-mdi-leaf (f829) - : nf-mdi-led_off (f82a) - : nf-mdi-led_on (f82b) - : nf-mdi-led_outline (f82c) -ﳔ : nf-mdi-led_strip (fcd4) - : nf-mdi-led_variant_off (f82d) - : nf-mdi-led_variant_on (f82e) - : nf-mdi-led_variant_outline (f82f) - : nf-mdi-library (f830) - : nf-mdi-library_books (f831) - : nf-mdi-library_music (f832) - : nf-mdi-library_plus (f833) - : nf-mdi-lightbulb (f834) -ﯦ : nf-mdi-lightbulb_on (fbe6) -ﯧ : nf-mdi-lightbulb_on_outline (fbe7) - : nf-mdi-lightbulb_outline (f835) - : nf-mdi-link (f836) - : nf-mdi-link_off (f837) - : nf-mdi-link_variant (f838) - : nf-mdi-link_variant_off (f839) - : nf-mdi-linkedin (f83a) - : nf-mdi-linkedin_box (f83b) - : nf-mdi-linux (f83c) -ﱰ : nf-mdi-loading (fc70) - : nf-mdi-lock (f83d) - : nf-mdi-lock_open (f83e) - : nf-mdi-lock_open_outline (f83f) - : nf-mdi-lock_outline (f840) -ﯨ : nf-mdi-lock_pattern (fbe8) -﫺 : nf-mdi-lock_plus (fafa) -ﱱ : nf-mdi-lock_reset (fc71) -ﳕ : nf-mdi-locker (fcd5) -ﳖ : nf-mdi-locker_multiple (fcd6) - : nf-mdi-login (f841) -﫻 : nf-mdi-login_variant (fafb) - : nf-mdi-logout (f842) -﫼 : nf-mdi-logout_variant (fafc) - : nf-mdi-looks (f843) -ﯩ : nf-mdi-loop (fbe9) - : nf-mdi-loupe (f844) - : nf-mdi-lumx (f845) - : nf-mdi-magnet (f846) - : nf-mdi-magnet_on (f847) - : nf-mdi-magnify (f848) - : nf-mdi-magnify_minus (f849) -ﯪ : nf-mdi-magnify_minus_outline (fbea) - : nf-mdi-magnify_plus (f84a) -ﯫ : nf-mdi-magnify_plus_outline (fbeb) - : nf-mdi-mail_ru (f84b) -ﯬ : nf-mdi-mailbox (fbec) - : nf-mdi-map (f84c) - : nf-mdi-map_marker (f84d) - : nf-mdi-map_marker_circle (f84e) -ﭏ : nf-mdi-map_marker_minus (fb4f) - : nf-mdi-map_marker_multiple (f84f) - : nf-mdi-map_marker_off (f850) -ﳗ : nf-mdi-map_marker_outline (fcd7) -ﭐ : nf-mdi-map_marker_plus (fb50) - : nf-mdi-map_marker_radius (f851) - : nf-mdi-margin (f852) - : nf-mdi-markdown (f853) -ﭑ : nf-mdi-marker (fb51) - : nf-mdi-marker_check (f854) - : nf-mdi-martini (f855) - : nf-mdi-material_ui (f856) - : nf-mdi-math_compass (f857) -ﬧ : nf-mdi-matrix (fb27) - : nf-mdi-maxcdn (f858) -ﯭ : nf-mdi-medical_bag (fbed) - : nf-mdi-medium (f859) - : nf-mdi-memory (f85a) - : nf-mdi-menu (f85b) - : nf-mdi-menu_down (f85c) -﮴ : nf-mdi-menu_down_outline (fbb4) - : nf-mdi-menu_left (f85d) - : nf-mdi-menu_right (f85e) - : nf-mdi-menu_up (f85f) -﮵ : nf-mdi-menu_up_outline (fbb5) - : nf-mdi-message (f860) - : nf-mdi-message_alert (f861) -ﮠ : nf-mdi-message_bulleted (fba0) -ﮡ : nf-mdi-message_bulleted_off (fba1) - : nf-mdi-message_draw (f862) - : nf-mdi-message_image (f863) - : nf-mdi-message_outline (f864) -ﭒ : nf-mdi-message_plus (fb52) - : nf-mdi-message_processing (f865) - : nf-mdi-message_reply (f866) - : nf-mdi-message_reply_text (f867) -ﯮ : nf-mdi-message_settings (fbee) -ﯯ : nf-mdi-message_settings_variant (fbef) - : nf-mdi-message_text (f868) - : nf-mdi-message_text_outline (f869) - : nf-mdi-message_video (f86a) -ﬨ : nf-mdi-meteor (fb28) -ﳘ : nf-mdi-metronome (fcd8) -ﳙ : nf-mdi-metronome_tick (fcd9) -ﳚ : nf-mdi-micro_sd (fcda) - : nf-mdi-microphone (f86b) - : nf-mdi-microphone_off (f86c) - : nf-mdi-microphone_outline (f86d) - : nf-mdi-microphone_settings (f86e) - : nf-mdi-microphone_variant (f86f) - : nf-mdi-microphone_variant_off (f870) -ﭓ : nf-mdi-microscope (fb53) - : nf-mdi-microsoft (f871) - : nf-mdi-minecraft (f872) - : nf-mdi-minus (f873) - : nf-mdi-minus_box (f874) -ﯰ : nf-mdi-minus_box_outline (fbf0) - : nf-mdi-minus_circle (f875) - : nf-mdi-minus_circle_outline (f876) - : nf-mdi-minus_network (f877) -﬩ : nf-mdi-mixcloud (fb29) -ﳛ : nf-mdi-mixer (fcdb) - : nf-mdi-monitor (f878) - : nf-mdi-monitor_multiple (f879) - : nf-mdi-more (f87a) - : nf-mdi-motorbike (f87b) - : nf-mdi-mouse (f87c) - : nf-mdi-mouse_off (f87d) - : nf-mdi-mouse_variant (f87e) - : nf-mdi-mouse_variant_off (f87f) -ﭔ : nf-mdi-move_resize (fb54) -ﭕ : nf-mdi-move_resize_variant (fb55) - : nf-mdi-movie (f880) -ﳜ : nf-mdi-movie_roll (fcdc) - : nf-mdi-multiplication (f881) - : nf-mdi-multiplication_box (f882) -ﳝ : nf-mdi-mushroom (fcdd) -ﳞ : nf-mdi-mushroom_outline (fcde) -ﱘ : nf-mdi-music (fc58) - : nf-mdi-music_box (f883) - : nf-mdi-music_box_outline (f884) - : nf-mdi-music_circle (f885) - : nf-mdi-music_note (f886) -﫽 : nf-mdi-music_note_bluetooth (fafd) -﫾 : nf-mdi-music_note_bluetooth_off (fafe) - : nf-mdi-music_note_eighth (f887) - : nf-mdi-music_note_half (f888) - : nf-mdi-music_note_off (f889) - : nf-mdi-music_note_quarter (f88a) - : nf-mdi-music_note_sixteenth (f88b) - : nf-mdi-music_note_whole (f88c) -ﱙ : nf-mdi-music_off (fc59) - : nf-mdi-nature (f88d) - : nf-mdi-nature_people (f88e) - : nf-mdi-navigation (f88f) -頻 : nf-mdi-near_me (facc) - : nf-mdi-needle (f890) - : nf-mdi-nest_protect (f891) - : nf-mdi-nest_thermostat (f892) -ﱄ : nf-mdi-netflix (fc44) -ﯱ : nf-mdi-network (fbf1) - : nf-mdi-new_box (f893) - : nf-mdi-newspaper (f894) - : nf-mdi-nfc (f895) - : nf-mdi-nfc_tap (f896) - : nf-mdi-nfc_variant (f897) -ﱲ : nf-mdi-ninja (fc72) -ﳟ : nf-mdi-nintendo_switch (fcdf) - : nf-mdi-nodejs (f898) - : nf-mdi-note (f899) -﮶ : nf-mdi-note_multiple (fbb6) -﮷ : nf-mdi-note_multiple_outline (fbb7) - : nf-mdi-note_outline (f89a) - : nf-mdi-note_plus (f89b) - : nf-mdi-note_plus_outline (f89c) - : nf-mdi-note_text (f89d) -ﴬ : nf-mdi-notebook (fd2c) - : nf-mdi-notification_clear_all (f89e) -ﯵ : nf-mdi-npm (fbf5) -ﮢ : nf-mdi-nuke (fba2) -ﳠ : nf-mdi-null (fce0) - : nf-mdi-numeric (f89f) - : nf-mdi-numeric_0_box (f8a0) - : nf-mdi-numeric_0_box_multiple_outline (f8a1) - : nf-mdi-numeric_0_box_outline (f8a2) - : nf-mdi-numeric_1_box (f8a3) - : nf-mdi-numeric_1_box_multiple_outline (f8a4) - : nf-mdi-numeric_1_box_outline (f8a5) - : nf-mdi-numeric_2_box (f8a6) - : nf-mdi-numeric_2_box_multiple_outline (f8a7) - : nf-mdi-numeric_2_box_outline (f8a8) - : nf-mdi-numeric_3_box (f8a9) - : nf-mdi-numeric_3_box_multiple_outline (f8aa) - : nf-mdi-numeric_3_box_outline (f8ab) - : nf-mdi-numeric_4_box (f8ac) - : nf-mdi-numeric_4_box_multiple_outline (f8ad) - : nf-mdi-numeric_4_box_outline (f8ae) - : nf-mdi-numeric_5_box (f8af) - : nf-mdi-numeric_5_box_multiple_outline (f8b0) - : nf-mdi-numeric_5_box_outline (f8b1) - : nf-mdi-numeric_6_box (f8b2) - : nf-mdi-numeric_6_box_multiple_outline (f8b3) - : nf-mdi-numeric_6_box_outline (f8b4) - : nf-mdi-numeric_7_box (f8b5) - : nf-mdi-numeric_7_box_multiple_outline (f8b6) - : nf-mdi-numeric_7_box_outline (f8b7) - : nf-mdi-numeric_8_box (f8b8) - : nf-mdi-numeric_8_box_multiple_outline (f8b9) - : nf-mdi-numeric_8_box_outline (f8ba) - : nf-mdi-numeric_9_box (f8bb) - : nf-mdi-numeric_9_box_multiple_outline (f8bc) - : nf-mdi-numeric_9_box_outline (f8bd) - : nf-mdi-numeric_9_plus_box (f8be) - : nf-mdi-numeric_9_plus_box_multiple_outline (f8bf) - : nf-mdi-numeric_9_plus_box_outline (f8c0) -ﯶ : nf-mdi-nut (fbf6) - : nf-mdi-nutrition (f8c1) -ﭺ : nf-mdi-oar (fb7a) - : nf-mdi-octagon (f8c2) - : nf-mdi-octagon_outline (f8c3) -ﯷ : nf-mdi-octagram (fbf7) -ﱳ : nf-mdi-octagram_outline (fc73) - : nf-mdi-odnoklassniki (f8c4) - : nf-mdi-office (f8c5) - : nf-mdi-oil (f8c6) - : nf-mdi-oil_temperature (f8c7) - : nf-mdi-omega (f8c8) - : nf-mdi-onedrive (f8c9) -ﱅ : nf-mdi-onenote (fc45) -頋 : nf-mdi-opacity (facb) - : nf-mdi-open_in_app (f8ca) - : nf-mdi-open_in_new (f8cb) - : nf-mdi-openid (f8cc) - : nf-mdi-opera (f8cd) - : nf-mdi-orbit (f517) - : nf-mdi-ornament (f8ce) - : nf-mdi-ornament_variant (f8cf) - : nf-mdi-owl (f8d1) - : nf-mdi-package (f8d2) - : nf-mdi-package_down (f8d3) - : nf-mdi-package_up (f8d4) - : nf-mdi-package_variant (f8d5) - : nf-mdi-package_variant_closed (f8d6) -﫿 : nf-mdi-page_first (faff) -ff : nf-mdi-page_last (fb00) -ﯸ : nf-mdi-page_layout_body (fbf8) -ﯹ : nf-mdi-page_layout_footer (fbf9) -ﯺ : nf-mdi-page_layout_header (fbfa) -ﯻ : nf-mdi-page_layout_sidebar_left (fbfb) -ﯼ : nf-mdi-page_layout_sidebar_right (fbfc) - : nf-mdi-palette (f8d7) - : nf-mdi-palette_advanced (f8d8) - : nf-mdi-panda (f8d9) - : nf-mdi-pandora (f8da) - : nf-mdi-panorama (f8db) - : nf-mdi-panorama_fisheye (f8dc) - : nf-mdi-panorama_horizontal (f8dd) - : nf-mdi-panorama_vertical (f8de) - : nf-mdi-panorama_wide_angle (f8df) - : nf-mdi-paper_cut_vertical (f8e0) - : nf-mdi-paperclip (f8e1) - : nf-mdi-parking (f8e2) -ﳡ : nf-mdi-passport (fce1) - : nf-mdi-pause (f8e3) - : nf-mdi-pause_circle (f8e4) - : nf-mdi-pause_circle_outline (f8e5) - : nf-mdi-pause_octagon (f8e6) - : nf-mdi-pause_octagon_outline (f8e7) - : nf-mdi-paw (f8e8) -ﭖ : nf-mdi-paw_off (fb56) - : nf-mdi-pen (f8e9) - : nf-mdi-pencil (f8ea) - : nf-mdi-pencil_box (f8eb) - : nf-mdi-pencil_box_outline (f8ec) -ﯽ : nf-mdi-pencil_circle (fbfd) -ﱴ : nf-mdi-pencil_circle_outline (fc74) - : nf-mdi-pencil_lock (f8ed) - : nf-mdi-pencil_off (f8ee) -ﯾ : nf-mdi-pentagon (fbfe) -ﯿ : nf-mdi-pentagon_outline (fbff) - : nf-mdi-percent (f8ef) -ﳢ : nf-mdi-periodic_table_co2 (fce2) -ﱆ : nf-mdi-periscope (fc46) - : nf-mdi-pharmacy (f8f0) - : nf-mdi-phone (f8f1) - : nf-mdi-phone_bluetooth (f8f2) -fi : nf-mdi-phone_classic (fb01) - : nf-mdi-phone_forward (f8f3) - : nf-mdi-phone_hangup (f8f4) - : nf-mdi-phone_in_talk (f8f5) - : nf-mdi-phone_incoming (f8f6) - : nf-mdi-phone_locked (f8f7) - : nf-mdi-phone_log (f8f8) -ﭗ : nf-mdi-phone_minus (fb57) - : nf-mdi-phone_missed (f8f9) - : nf-mdi-phone_outgoing (f8fa) - : nf-mdi-phone_paused (f8fb) -ﭘ : nf-mdi-phone_plus (fb58) -ﴭ : nf-mdi-phone_return (fd2d) - : nf-mdi-phone_settings (f8fc) - : nf-mdi-phone_voip (f8fd) - : nf-mdi-pi (f8fe) - : nf-mdi-pi_box (f8ff) -ﭻ : nf-mdi-piano (fb7b) -豈 : nf-mdi-pig (f900) -更 : nf-mdi-pill (f901) -ﰀ : nf-mdi-pillar (fc00) -車 : nf-mdi-pin (f902) -賈 : nf-mdi-pin_off (f903) -滑 : nf-mdi-pine_tree (f904) -串 : nf-mdi-pine_tree_box (f905) -句 : nf-mdi-pinterest (f906) -龜 : nf-mdi-pinterest_box (f907) -ﳣ : nf-mdi-pipe (fce3) -ﳤ : nf-mdi-pipe_disconnected (fce4) -ﰁ : nf-mdi-pistol (fc01) -龜 : nf-mdi-pizza (f908) -﮹ : nf-mdi-plane_shield (fbb9) -契 : nf-mdi-play (f909) -金 : nf-mdi-play_box_outline (f90a) -喇 : nf-mdi-play_circle (f90b) -奈 : nf-mdi-play_circle_outline (f90c) -懶 : nf-mdi-play_pause (f90d) -癩 : nf-mdi-play_protected_content (f90e) -陼 : nf-mdi-playlist_check (fac6) -羅 : nf-mdi-playlist_minus (f90f) -蘿 : nf-mdi-playlist_play (f910) -螺 : nf-mdi-playlist_plus (f911) -裸 : nf-mdi-playlist_remove (f912) -邏 : nf-mdi-playstation (f913) -﮸ : nf-mdi-plex (fbb8) -樂 : nf-mdi-plus (f914) -洛 : nf-mdi-plus_box (f915) -ﰂ : nf-mdi-plus_box_outline (fc02) -烙 : nf-mdi-plus_circle (f916) -珞 : nf-mdi-plus_circle_multiple_outline (f917) -落 : nf-mdi-plus_circle_outline (f918) -酪 : nf-mdi-plus_network (f919) -駱 : nf-mdi-plus_one (f91a) -ﰃ : nf-mdi-plus_outline (fc03) -亂 : nf-mdi-pocket (f91b) -卵 : nf-mdi-pokeball (f91c) -ﴮ : nf-mdi-poker_chip (fd2e) -欄 : nf-mdi-polaroid (f91d) -爛 : nf-mdi-poll (f91e) -蘭 : nf-mdi-poll_box (f91f) -鸞 : nf-mdi-polymer (f920) -ſt : nf-mdi-pool (fb05) -嵐 : nf-mdi-popcorn (f921) -ﭙ : nf-mdi-pot (fb59) -ﭚ : nf-mdi-pot_mix (fb5a) -濫 : nf-mdi-pound (f922) -藍 : nf-mdi-pound_box (f923) -襤 : nf-mdi-power (f924) -ﮣ : nf-mdi-power_plug (fba3) -ﮤ : nf-mdi-power_plug_off (fba4) -拉 : nf-mdi-power_settings (f925) -臘 : nf-mdi-power_socket (f926) -ﳥ : nf-mdi-power_socket_eu (fce5) -ﳦ : nf-mdi-power_socket_uk (fce6) -ﳧ : nf-mdi-power_socket_us (fce7) -ﰄ : nf-mdi-prescription (fc04) -蠟 : nf-mdi-presentation (f927) -廊 : nf-mdi-presentation_play (f928) -朗 : nf-mdi-printer (f929) -浪 : nf-mdi-printer_3d (f92a) -狼 : nf-mdi-printer_alert (f92b) -ﰅ : nf-mdi-printer_settings (fc05) -fl : nf-mdi-priority_high (fb02) -ffi : nf-mdi-priority_low (fb03) -郎 : nf-mdi-professional_hexagon (f92c) -來 : nf-mdi-projector (f92d) -冷 : nf-mdi-projector_screen (f92e) -ﮥ : nf-mdi-publish (fba5) -勞 : nf-mdi-pulse (f92f) -擄 : nf-mdi-puzzle (f930) -ffl : nf-mdi-qqchat (fb04) -櫓 : nf-mdi-qrcode (f931) -爐 : nf-mdi-qrcode_scan (f932) -盧 : nf-mdi-quadcopter (f933) -老 : nf-mdi-quality_high (f934) -蘆 : nf-mdi-quicktime (f935) -虜 : nf-mdi-radar (f936) -路 : nf-mdi-radiator (f937) -露 : nf-mdi-radio (f938) -魯 : nf-mdi-radio_handheld (f939) -鷺 : nf-mdi-radio_tower (f93a) -碌 : nf-mdi-radioactive (f93b) -祿 : nf-mdi-radiobox_blank (f93c) -綠 : nf-mdi-radiobox_marked (f93d) -菉 : nf-mdi-raspberrypi (f93e) -錄 : nf-mdi-ray_end (f93f) -鹿 : nf-mdi-ray_end_arrow (f940) -論 : nf-mdi-ray_start (f941) -壟 : nf-mdi-ray_start_arrow (f942) -弄 : nf-mdi-ray_start_end (f943) -籠 : nf-mdi-ray_vertex (f944) -ﰆ : nf-mdi-react (fc06) -牢 : nf-mdi-read (f946) -賂 : nf-mdi-receipt (f948) -雷 : nf-mdi-record (f949) -壘 : nf-mdi-record_rec (f94a) -屢 : nf-mdi-recycle (f94b) -樓 : nf-mdi-reddit (f94c) -淚 : nf-mdi-redo (f94d) -漏 : nf-mdi-redo_variant (f94e) -累 : nf-mdi-refresh (f94f) -縷 : nf-mdi-regex (f950) -陋 : nf-mdi-relative_scale (f951) -勒 : nf-mdi-reload (f952) -肋 : nf-mdi-remote (f953) -凜 : nf-mdi-rename_box (f954) -ﮆ : nf-mdi-reorder_horizontal (fb86) -ﮇ : nf-mdi-reorder_vertical (fb87) -凌 : nf-mdi-repeat (f955) -稜 : nf-mdi-repeat_off (f956) -綾 : nf-mdi-repeat_once (f957) -菱 : nf-mdi-replay (f958) -陵 : nf-mdi-reply (f959) -讀 : nf-mdi-reply_all (f95a) -拏 : nf-mdi-reproduction (f95b) -樂 : nf-mdi-resize_bottom_right (f95c) -諾 : nf-mdi-responsive (f95d) -ﰇ : nf-mdi-restart (fc07) -ﮦ : nf-mdi-restore (fba6) -丹 : nf-mdi-rewind (f95e) -ﰈ : nf-mdi-rewind_outline (fc08) -ﰉ : nf-mdi-rhombus (fc09) -ﰊ : nf-mdi-rhombus_outline (fc0a) -寧 : nf-mdi-ribbon (f95f) -ﳨ : nf-mdi-rice (fce8) -ﳩ : nf-mdi-ring (fce9) -怒 : nf-mdi-road (f960) -率 : nf-mdi-road_variant (f961) -ﮧ : nf-mdi-robot (fba7) -異 : nf-mdi-rocket (f962) -ﰋ : nf-mdi-roomba (fc0b) -北 : nf-mdi-rotate_3d (f963) -磻 : nf-mdi-rotate_left (f964) -便 : nf-mdi-rotate_left_variant (f965) -復 : nf-mdi-rotate_right (f966) -不 : nf-mdi-rotate_right_variant (f967) -st : nf-mdi-rounded_corner (fb06) -泌 : nf-mdi-router_wireless (f968) -數 : nf-mdi-routes (f969) -﬇ : nf-mdi-rowing (fb07) -索 : nf-mdi-rss (f96a) -參 : nf-mdi-rss_box (f96b) -塞 : nf-mdi-ruler (f96c) -ﰌ : nf-mdi-run (fc0c) -省 : nf-mdi-run_fast (f96d) -葉 : nf-mdi-sale (f96e) -ﳪ : nf-mdi-sass (fcea) -說 : nf-mdi-satellite (f96f) -殺 : nf-mdi-satellite_variant (f970) -﬈ : nf-mdi-saxophone (fb08) -辰 : nf-mdi-scale (f971) -𢡄 : nf-mdi-scale_balance (fad0) -沈 : nf-mdi-scale_bathroom (f972) -ﮩ : nf-mdi-scanner (fba9) -拾 : nf-mdi-school (f973) -若 : nf-mdi-screen_rotation (f974) -掠 : nf-mdi-screen_rotation_lock (f975) -略 : nf-mdi-screwdriver (f976) -亮 : nf-mdi-script (f977) -兩 : nf-mdi-sd (f978) -凉 : nf-mdi-seal (f979) -ﰍ : nf-mdi-search_web (fc0d) -梁 : nf-mdi-seat_flat (f97a) -糧 : nf-mdi-seat_flat_angled (f97b) -良 : nf-mdi-seat_individual_suite (f97c) -諒 : nf-mdi-seat_legroom_extra (f97d) -量 : nf-mdi-seat_legroom_normal (f97e) -勵 : nf-mdi-seat_legroom_reduced (f97f) -呂 : nf-mdi-seat_recline_extra (f980) -女 : nf-mdi-seat_recline_normal (f981) -廬 : nf-mdi-security (f982) -ﮈ : nf-mdi-security_home (fb88) -旅 : nf-mdi-security_network (f983) -濾 : nf-mdi-select (f984) -礪 : nf-mdi-select_all (f985) -閭 : nf-mdi-select_inverse (f986) -驪 : nf-mdi-select_off (f987) -麗 : nf-mdi-selection (f988) -ﱵ : nf-mdi-selection_off (fc75) -黎 : nf-mdi-send (f989) -ﳫ : nf-mdi-send_secure (fceb) -ﭛ : nf-mdi-serial_port (fb5b) -力 : nf-mdi-server (f98a) -曆 : nf-mdi-server_minus (f98b) -歷 : nf-mdi-server_network (f98c) -轢 : nf-mdi-server_network_off (f98d) -年 : nf-mdi-server_off (f98e) -憐 : nf-mdi-server_plus (f98f) -戀 : nf-mdi-server_remove (f990) -撚 : nf-mdi-server_security (f991) -ﱶ : nf-mdi-set_all (fc76) -ﱷ : nf-mdi-set_center (fc77) -ﱸ : nf-mdi-set_center_right (fc78) -ﱹ : nf-mdi-set_left (fc79) -ﱺ : nf-mdi-set_left_center (fc7a) -ﱻ : nf-mdi-set_left_right (fc7b) -ﱼ : nf-mdi-set_none (fc7c) -ﱽ : nf-mdi-set_right (fc7d) -漣 : nf-mdi-settings (f992) -煉 : nf-mdi-settings_box (f993) -ﴯ : nf-mdi-shape (fd2f) -ﭜ : nf-mdi-shape_circle_plus (fb5c) -ﴰ : nf-mdi-shape_outline (fd30) -璉 : nf-mdi-shape_plus (f994) -ﭝ : nf-mdi-shape_polygon_plus (fb5d) -ﭞ : nf-mdi-shape_rectangle_plus (fb5e) -ﭟ : nf-mdi-shape_square_plus (fb5f) -秊 : nf-mdi-share (f995) -練 : nf-mdi-share_variant (f996) -聯 : nf-mdi-shield (f997) -ﱾ : nf-mdi-shield_half_full (fc7e) -輦 : nf-mdi-shield_outline (f998) -ﴱ : nf-mdi-ship_wheel (fd31) -蓮 : nf-mdi-shopping (f999) -連 : nf-mdi-shopping_music (f99a) -ﰎ : nf-mdi-shovel (fc0e) -ﰏ : nf-mdi-shovel_off (fc0f) -鍊 : nf-mdi-shredder (f99b) -列 : nf-mdi-shuffle (f99c) -劣 : nf-mdi-shuffle_disabled (f99d) -咽 : nf-mdi-shuffle_variant (f99e) -烈 : nf-mdi-sigma (f99f) -שׁ : nf-mdi-sigma_lower (fb2a) -裂 : nf-mdi-sign_caution (f9a0) -ﱿ : nf-mdi-sign_direction (fc7f) -ﲀ : nf-mdi-sign_text (fc80) -說 : nf-mdi-signal (f9a1) -ﰐ : nf-mdi-signal_2g (fc10) -ﰑ : nf-mdi-signal_3g (fc11) -ﰒ : nf-mdi-signal_4g (fc12) -ﰓ : nf-mdi-signal_hspa (fc13) -ﰔ : nf-mdi-signal_hspa_plus (fc14) -ﲁ : nf-mdi-signal_off (fc81) -﬉ : nf-mdi-signal_variant (fb09) -廉 : nf-mdi-silverware (f9a2) -念 : nf-mdi-silverware_fork (f9a3) -捻 : nf-mdi-silverware_spoon (f9a4) -殮 : nf-mdi-silverware_variant (f9a5) -簾 : nf-mdi-sim (f9a6) -獵 : nf-mdi-sim_alert (f9a7) -令 : nf-mdi-sim_off (f9a8) -囹 : nf-mdi-sitemap (f9a9) -寧 : nf-mdi-skip_backward (f9aa) -嶺 : nf-mdi-skip_forward (f9ab) -怜 : nf-mdi-skip_next (f9ac) -ﭠ : nf-mdi-skip_next_circle (fb60) -ﭡ : nf-mdi-skip_next_circle_outline (fb61) -玲 : nf-mdi-skip_previous (f9ad) -ﭢ : nf-mdi-skip_previous_circle (fb62) -ﭣ : nf-mdi-skip_previous_circle_outline (fb63) -ﮊ : nf-mdi-skull (fb8a) -瑩 : nf-mdi-skype (f9ae) -羚 : nf-mdi-skype_business (f9af) -聆 : nf-mdi-slack (f9b0) -鈴 : nf-mdi-sleep (f9b1) -零 : nf-mdi-sleep_off (f9b2) -靈 : nf-mdi-smoking (f9b3) -領 : nf-mdi-smoking_off (f9b4) -例 : nf-mdi-snapchat (f9b5) -ﰕ : nf-mdi-snowflake (fc15) -禮 : nf-mdi-snowman (f9b6) -醴 : nf-mdi-soccer (f9b7) -ﴲ : nf-mdi-soccer_field (fd32) -隸 : nf-mdi-sofa (f9b8) -ﮋ : nf-mdi-solid (fb8b) -惡 : nf-mdi-sort (f9b9) -了 : nf-mdi-sort_alphabetical (f9ba) -僚 : nf-mdi-sort_ascending (f9bb) -寮 : nf-mdi-sort_descending (f9bc) -尿 : nf-mdi-sort_numeric (f9bd) -料 : nf-mdi-sort_variant (f9be) -樂 : nf-mdi-soundcloud (f9bf) -שׂ : nf-mdi-source_branch (fb2b) -ﰖ : nf-mdi-source_commit (fc16) -ﰗ : nf-mdi-source_commit_end (fc17) -ﰘ : nf-mdi-source_commit_end_local (fc18) -ﰙ : nf-mdi-source_commit_local (fc19) -ﰚ : nf-mdi-source_commit_next_local (fc1a) -ﰛ : nf-mdi-source_commit_start (fc1b) -ﰜ : nf-mdi-source_commit_start_next_local (fc1c) -燎 : nf-mdi-source_fork (f9c0) -שּׁ : nf-mdi-source_merge (fb2c) -療 : nf-mdi-source_pull (f9c1) -ﳬ : nf-mdi-soy_sauce (fcec) -蓼 : nf-mdi-speaker (f9c2) -遼 : nf-mdi-speaker_off (f9c3) -ﰝ : nf-mdi-speaker_wireless (fc1d) -龍 : nf-mdi-speedometer (f9c4) -暈 : nf-mdi-spellcheck (f9c5) -阮 : nf-mdi-spotify (f9c6) -劉 : nf-mdi-spotlight (f9c7) -杻 : nf-mdi-spotlight_beam (f9c8) -ﭤ : nf-mdi-spray (fb64) -ﱢ : nf-mdi-square (fc62) -柳 : nf-mdi-square_inc (f9c9) -流 : nf-mdi-square_inc_cash (f9ca) -ﱡ : nf-mdi-square_outline (fc61) -ﲂ : nf-mdi-square_root (fc82) -溜 : nf-mdi-stack_overflow (f9cb) -﬊ : nf-mdi-stackexchange (fb0a) -ﰞ : nf-mdi-stadium (fc1e) -琉 : nf-mdi-stairs (f9cc) -ﳭ : nf-mdi-standard_definition (fced) -留 : nf-mdi-star (f9cd) -硫 : nf-mdi-star_circle (f9ce) -紐 : nf-mdi-star_half (f9cf) -類 : nf-mdi-star_off (f9d0) -六 : nf-mdi-star_outline (f9d1) -戮 : nf-mdi-steam (f9d2) -陸 : nf-mdi-steering (f9d3) -倫 : nf-mdi-step_backward (f9d4) -崙 : nf-mdi-step_backward_2 (f9d5) -淪 : nf-mdi-step_forward (f9d6) -輪 : nf-mdi-step_forward_2 (f9d7) -律 : nf-mdi-stethoscope (f9d8) -𢡊 : nf-mdi-sticker (facf) -ﲃ : nf-mdi-sticker_emoji (fc83) -慄 : nf-mdi-stocking (f9d9) -栗 : nf-mdi-stop (f9da) -ﭥ : nf-mdi-stop_circle (fb65) -ﭦ : nf-mdi-stop_circle_outline (fb66) -率 : nf-mdi-store (f9db) -隆 : nf-mdi-store_24_hour (f9dc) -利 : nf-mdi-stove (f9dd) -﬋ : nf-mdi-subdirectory_arrow_left (fb0b) -﬌ : nf-mdi-subdirectory_arrow_right (fb0c) -ﮪ : nf-mdi-subway (fbaa) -吏 : nf-mdi-subway_variant (f9de) -ﲄ : nf-mdi-summit (fc84) -履 : nf-mdi-sunglasses (f9df) -醙 : nf-mdi-surround_sound (fac4) -ﳮ : nf-mdi-surround_sound_2_0 (fcee) -ﳯ : nf-mdi-surround_sound_3_1 (fcef) -ﳰ : nf-mdi-surround_sound_5_1 (fcf0) -ﳱ : nf-mdi-surround_sound_7_1 (fcf1) -ﰟ : nf-mdi-svg (fc1f) -易 : nf-mdi-swap_horizontal (f9e0) -李 : nf-mdi-swap_vertical (f9e1) -梨 : nf-mdi-swim (f9e2) -泥 : nf-mdi-switch (f9e3) -理 : nf-mdi-sword (f9e4) -ﲅ : nf-mdi-sword_cross (fc85) -痢 : nf-mdi-sync (f9e5) -罹 : nf-mdi-sync_alert (f9e6) -裏 : nf-mdi-sync_off (f9e7) -裡 : nf-mdi-tab (f9e8) -ﱚ : nf-mdi-tab_plus (fc5a) -里 : nf-mdi-tab_unselected (f9e9) -離 : nf-mdi-table (f9ea) -ﴳ : nf-mdi-table_column (fd33) -匿 : nf-mdi-table_column_plus_after (f9eb) -溺 : nf-mdi-table_column_plus_before (f9ec) -吝 : nf-mdi-table_column_remove (f9ed) -燐 : nf-mdi-table_column_width (f9ee) -璘 : nf-mdi-table_edit (f9ef) -藺 : nf-mdi-table_large (f9f0) -ﴴ : nf-mdi-table_of_contents (fd34) -ﴵ : nf-mdi-table_row (fd35) -隣 : nf-mdi-table_row_height (f9f1) -鱗 : nf-mdi-table_row_plus_after (f9f2) -麟 : nf-mdi-table_row_plus_before (f9f3) -林 : nf-mdi-table_row_remove (f9f4) -ﴶ : nf-mdi-table_settings (fd36) -淋 : nf-mdi-tablet (f9f5) -臨 : nf-mdi-tablet_android (f9f6) -立 : nf-mdi-tablet_ipad (f9f7) -ﱠ : nf-mdi-taco (fc60) -笠 : nf-mdi-tag (f9f8) -粒 : nf-mdi-tag_faces (f9f9) -ﮉ : nf-mdi-tag_heart (fb89) -狀 : nf-mdi-tag_multiple (f9fa) -炙 : nf-mdi-tag_outline (f9fb) -ﰠ : nf-mdi-tag_plus (fc20) -ﰡ : nf-mdi-tag_remove (fc21) -識 : nf-mdi-tag_text_outline (f9fc) -什 : nf-mdi-target (f9fd) -茶 : nf-mdi-taxi (f9fe) -刺 : nf-mdi-teamviewer (f9ff) -切 : nf-mdi-telegram (fa00) -度 : nf-mdi-television (fa01) -ﴷ : nf-mdi-television_box (fd37) -ﳲ : nf-mdi-television_classic (fcf2) -ﴸ : nf-mdi-television_classic_off (fd38) -拓 : nf-mdi-television_guide (fa02) -ﴹ : nf-mdi-television_off (fd39) -糖 : nf-mdi-temperature_celsius (fa03) -宅 : nf-mdi-temperature_fahrenheit (fa04) -洞 : nf-mdi-temperature_kelvin (fa05) -暴 : nf-mdi-tennis (fa06) -輻 : nf-mdi-tent (fa07) -行 : nf-mdi-terrain (fa08) -ﭧ : nf-mdi-test_tube (fb67) -ﭨ : nf-mdi-text_shadow (fb68) -降 : nf-mdi-text_to_speech (fa09) -見 : nf-mdi-text_to_speech_off (fa0a) -﬍ : nf-mdi-textbox (fb0d) -ﳳ : nf-mdi-textbox_password (fcf3) -廓 : nf-mdi-texture (fa0b) -兀 : nf-mdi-theater (fa0c) -嗀 : nf-mdi-theme_light_dark (fa0d) -﨎 : nf-mdi-thermometer (fa0e) -﨏 : nf-mdi-thermometer_lines (fa0f) -ﳴ : nf-mdi-thought_bubble (fcf4) -ﳵ : nf-mdi-thought_bubble_outline (fcf5) -塚 : nf-mdi-thumb_down (fa10) -﨑 : nf-mdi-thumb_down_outline (fa11) -晴 : nf-mdi-thumb_up (fa12) -﨓 : nf-mdi-thumb_up_outline (fa13) -﨔 : nf-mdi-thumbs_up_down (fa14) -凞 : nf-mdi-ticket (fa15) -猪 : nf-mdi-ticket_account (fa16) -益 : nf-mdi-ticket_confirmation (fa17) -ﰢ : nf-mdi-ticket_percent (fc22) -礼 : nf-mdi-tie (fa18) -ﰣ : nf-mdi-tilde (fc23) -神 : nf-mdi-timelapse (fa19) -祥 : nf-mdi-timer (fa1a) -福 : nf-mdi-timer_10 (fa1b) -靖 : nf-mdi-timer_3 (fa1c) -精 : nf-mdi-timer_off (fa1d) -羽 : nf-mdi-timer_sand (fa1e) -ﮫ : nf-mdi-timer_sand_empty (fbab) -ﲊ : nf-mdi-timer_sand_full (fc8a) -﨟 : nf-mdi-timetable (fa1f) -蘒 : nf-mdi-toggle_switch (fa20) -﨡 : nf-mdi-toggle_switch_off (fa21) -諸 : nf-mdi-tooltip (fa22) -﨣 : nf-mdi-tooltip_edit (fa23) -﨤 : nf-mdi-tooltip_image (fa24) -逸 : nf-mdi-tooltip_outline (fa25) -都 : nf-mdi-tooltip_outline_plus (fa26) -﨧 : nf-mdi-tooltip_text (fa27) -﨨 : nf-mdi-tooth (fa28) -﨩 : nf-mdi-tor (fa29) -ﭿ : nf-mdi-tower_beach (fb7f) -ﮀ : nf-mdi-tower_fire (fb80) -ﴺ : nf-mdi-towing (fd3a) -ﳶ : nf-mdi-trackpad (fcf6) -飯 : nf-mdi-traffic_light (fa2a) -飼 : nf-mdi-train (fa2b) -館 : nf-mdi-tram (fa2c) -鶴 : nf-mdi-transcribe (fa2d) -郞 : nf-mdi-transcribe_close (fa2e) -隷 : nf-mdi-transfer (fa2f) -ﮬ : nf-mdi-transit_transfer (fbac) -韛 : nf-mdi-translate (fac9) -ﰤ : nf-mdi-treasure_chest (fc24) -侮 : nf-mdi-tree (fa30) -僧 : nf-mdi-trello (fa31) -免 : nf-mdi-trending_down (fa32) -勉 : nf-mdi-trending_neutral (fa33) -勤 : nf-mdi-trending_up (fa34) -卑 : nf-mdi-triangle (fa35) -喝 : nf-mdi-triangle_outline (fa36) -嘆 : nf-mdi-trophy (fa37) -器 : nf-mdi-trophy_award (fa38) -塀 : nf-mdi-trophy_outline (fa39) -墨 : nf-mdi-trophy_variant (fa3a) -層 : nf-mdi-trophy_variant_outline (fa3b) -屮 : nf-mdi-truck (fa3c) -悔 : nf-mdi-truck_delivery (fa3d) -ﲆ : nf-mdi-truck_fast (fc86) -ﰥ : nf-mdi-truck_trailer (fc25) -慨 : nf-mdi-tshirt_crew (fa3e) -憎 : nf-mdi-tshirt_v (fa3f) -懲 : nf-mdi-tumblr (fa40) -敏 : nf-mdi-tumblr_reblog (fa41) -שּׂ : nf-mdi-tune (fb2d) -ﭩ : nf-mdi-tune_vertical (fb69) -既 : nf-mdi-twitch (fa42) -暑 : nf-mdi-twitter (fa43) -梅 : nf-mdi-twitter_box (fa44) -海 : nf-mdi-twitter_circle (fa45) -渚 : nf-mdi-twitter_retweet (fa46) -ﱇ : nf-mdi-uber (fc47) -漢 : nf-mdi-ubuntu (fa47) -ﳷ : nf-mdi-ultra_high_definition (fcf7) -煮 : nf-mdi-umbraco (fa48) -爫 : nf-mdi-umbrella (fa49) -琢 : nf-mdi-umbrella_outline (fa4a) -碑 : nf-mdi-undo (fa4b) -社 : nf-mdi-undo_variant (fa4c) -祉 : nf-mdi-unfold_less_horizontal (fa4d) -ﱞ : nf-mdi-unfold_less_vertical (fc5e) -祈 : nf-mdi-unfold_more_horizontal (fa4e) -ﱟ : nf-mdi-unfold_more_vertical (fc5f) -祐 : nf-mdi-ungroup (fa4f) -ﮭ : nf-mdi-unity (fbad) -祖 : nf-mdi-untappd (fa50) -ﮮ : nf-mdi-update (fbae) -祝 : nf-mdi-upload (fa51) -ﴻ : nf-mdi-upload_multiple (fd3b) -ﯴ : nf-mdi-upload_network (fbf4) -禍 : nf-mdi-usb (fa52) -ﳸ : nf-mdi-van_passenger (fcf8) -ﳹ : nf-mdi-van_utility (fcf9) -ﳺ : nf-mdi-vanish (fcfa) -禎 : nf-mdi-vector_arrange_above (fa53) -穀 : nf-mdi-vector_arrange_below (fa54) -突 : nf-mdi-vector_circle (fa55) -節 : nf-mdi-vector_circle_variant (fa56) -練 : nf-mdi-vector_combine (fa57) -縉 : nf-mdi-vector_curve (fa58) -繁 : nf-mdi-vector_difference (fa59) -署 : nf-mdi-vector_difference_ab (fa5a) -者 : nf-mdi-vector_difference_ba (fa5b) -臭 : nf-mdi-vector_intersection (fa5c) -艹 : nf-mdi-vector_line (fa5d) -艹 : nf-mdi-vector_point (fa5e) -著 : nf-mdi-vector_polygon (fa5f) -褐 : nf-mdi-vector_polyline (fa60) -ﱈ : nf-mdi-vector_radius (fc48) -鉶 : nf-mdi-vector_rectangle (fac5) -視 : nf-mdi-vector_selection (fa61) - : nf-mdi-vector_square (f500) -謁 : nf-mdi-vector_triangle (fa62) -謹 : nf-mdi-vector_union (fa63) -勺 : nf-mdi-venmo (fa77) -賓 : nf-mdi-verified (fa64) -贈 : nf-mdi-vibrate (fa65) -辶 : nf-mdi-video (fa66) -ﳻ : nf-mdi-video_3d (fcfb) -ﴼ : nf-mdi-video_4k_box (fd3c) -ﴽ : nf-mdi-video_input_antenna (fd3d) -﴾ : nf-mdi-video_input_component (fd3e) -﴿ : nf-mdi-video_input_hdmi (fd3f) -﵀ : nf-mdi-video_input_svideo (fd40) -逸 : nf-mdi-video_off (fa67) -難 : nf-mdi-video_switch (fa68) -響 : nf-mdi-view_agenda (fa69) -頻 : nf-mdi-view_array (fa6a) -恵 : nf-mdi-view_carousel (fa6b) -𤋮 : nf-mdi-view_column (fa6c) -舘 : nf-mdi-view_dashboard (fa6d) -﵁ : nf-mdi-view_dashboard_variant (fd41) -﩮 : nf-mdi-view_day (fa6e) -﩯 : nf-mdi-view_grid (fa6f) -並 : nf-mdi-view_headline (fa70) -况 : nf-mdi-view_list (fa71) -全 : nf-mdi-view_module (fa72) -ﰦ : nf-mdi-view_parallel (fc26) -侀 : nf-mdi-view_quilt (fa73) -ﰧ : nf-mdi-view_sequential (fc27) -充 : nf-mdi-view_stream (fa74) -冀 : nf-mdi-view_week (fa75) -勇 : nf-mdi-vimeo (fa76) -﬎ : nf-mdi-violin (fb0e) -﬏ : nf-mdi-visualstudio (fb0f) -喝 : nf-mdi-vk (fa78) -啕 : nf-mdi-vk_box (fa79) -喙 : nf-mdi-vk_circle (fa7a) -嗢 : nf-mdi-vlc (fa7b) -響 : nf-mdi-voice (faca) -塚 : nf-mdi-voicemail (fa7c) -墳 : nf-mdi-volume_high (fa7d) -奄 : nf-mdi-volume_low (fa7e) -奔 : nf-mdi-volume_medium (fa7f) -ﱜ : nf-mdi-volume_minus (fc5c) -ﱝ : nf-mdi-volume_mute (fc5d) -婢 : nf-mdi-volume_off (fa80) -ﱛ : nf-mdi-volume_plus (fc5b) -嬨 : nf-mdi-vpn (fa81) -﵂ : nf-mdi-vuejs (fd42) -廒 : nf-mdi-walk (fa82) -ﳼ : nf-mdi-wall (fcfc) -廙 : nf-mdi-wallet (fa83) -彩 : nf-mdi-wallet_giftcard (fa84) -徭 : nf-mdi-wallet_membership (fa85) -惘 : nf-mdi-wallet_travel (fa86) -慎 : nf-mdi-wan (fa87) -ﰨ : nf-mdi-washing_machine (fc28) -愈 : nf-mdi-watch (fa88) -憎 : nf-mdi-watch_export (fa89) -慠 : nf-mdi-watch_import (fa8a) -ﮯ : nf-mdi-watch_vibrate (fbaf) -懲 : nf-mdi-water (fa8b) -戴 : nf-mdi-water_off (fa8c) -揄 : nf-mdi-water_percent (fa8d) -搜 : nf-mdi-water_pump (fa8e) -﬑ : nf-mdi-watermark (fb11) -ﲋ : nf-mdi-waves (fc8b) -摒 : nf-mdi-weather_cloudy (fa8f) -敖 : nf-mdi-weather_fog (fa90) -晴 : nf-mdi-weather_hail (fa91) -朗 : nf-mdi-weather_lightning (fa92) -ﭼ : nf-mdi-weather_lightning_rainy (fb7c) -望 : nf-mdi-weather_night (fa93) -杖 : nf-mdi-weather_partlycloudy (fa94) -歹 : nf-mdi-weather_pouring (fa95) -殺 : nf-mdi-weather_rainy (fa96) -流 : nf-mdi-weather_snowy (fa97) -ﭽ : nf-mdi-weather_snowy_rainy (fb7d) -滛 : nf-mdi-weather_sunny (fa98) -滋 : nf-mdi-weather_sunset (fa99) -漢 : nf-mdi-weather_sunset_down (fa9a) -瀞 : nf-mdi-weather_sunset_up (fa9b) -煮 : nf-mdi-weather_windy (fa9c) -瞧 : nf-mdi-weather_windy_variant (fa9d) -爵 : nf-mdi-web (fa9e) -犯 : nf-mdi-webcam (fa9f) -אַ : nf-mdi-webhook (fb2e) -ﰩ : nf-mdi-webpack (fc29) -﬐ : nf-mdi-wechat (fb10) -猪 : nf-mdi-weight (faa0) -瑱 : nf-mdi-weight_kilogram (faa1) -甆 : nf-mdi-whatsapp (faa2) -画 : nf-mdi-wheelchair_accessibility (faa3) -瘝 : nf-mdi-white_balance_auto (faa4) -瘟 : nf-mdi-white_balance_incandescent (faa5) -益 : nf-mdi-white_balance_iridescent (faa6) -盛 : nf-mdi-white_balance_sunny (faa7) -ﰪ : nf-mdi-widgets (fc2a) -直 : nf-mdi-wifi (faa8) -睊 : nf-mdi-wifi_off (faa9) -着 : nf-mdi-wii (faaa) -ﰫ : nf-mdi-wiiu (fc2b) -磌 : nf-mdi-wikipedia (faab) -窱 : nf-mdi-window_close (faac) -節 : nf-mdi-window_closed (faad) -类 : nf-mdi-window_maximize (faae) -絛 : nf-mdi-window_minimize (faaf) -練 : nf-mdi-window_open (fab0) -缾 : nf-mdi-window_restore (fab1) -者 : nf-mdi-windows (fab2) -荒 : nf-mdi-wordpress (fab3) -華 : nf-mdi-worker (fab4) -蝹 : nf-mdi-wrap (fab5) -襁 : nf-mdi-wrench (fab6) -覆 : nf-mdi-wunderlist (fab7) -﵃ : nf-mdi-xamarin (fd43) -﵄ : nf-mdi-xamarin_outline (fd44) -ﭲ : nf-mdi-xaml (fb72) -視 : nf-mdi-xbox (fab8) -調 : nf-mdi-xbox_controller (fab9) -ﱉ : nf-mdi-xbox_controller_battery_alert (fc49) -ﱊ : nf-mdi-xbox_controller_battery_empty (fc4a) -ﱋ : nf-mdi-xbox_controller_battery_full (fc4b) -ﱌ : nf-mdi-xbox_controller_battery_low (fc4c) -ﱍ : nf-mdi-xbox_controller_battery_medium (fc4d) -ﱎ : nf-mdi-xbox_controller_battery_unknown (fc4e) -諸 : nf-mdi-xbox_controller_off (faba) -請 : nf-mdi-xda (fabb) -謁 : nf-mdi-xing (fabc) -諾 : nf-mdi-xing_box (fabd) -諭 : nf-mdi-xing_circle (fabe) -謹 : nf-mdi-xml (fabf) -ﳽ : nf-mdi-xmpp (fcfd) -ﲇ : nf-mdi-yammer (fc87) -變 : nf-mdi-yeast (fac0) -贈 : nf-mdi-yelp (fac1) -ﭾ : nf-mdi-yin_yang (fb7e) -﵅ : nf-mdi-youtube_creator_studio (fd45) -﵆ : nf-mdi-youtube_gaming (fd46) -輸 : nf-mdi-youtube_play (fac2) -磊 : nf-mdi-youtube_tv (f947) -遲 : nf-mdi-zip_box (fac3) - : nf-oct-alert (f421) - : nf-oct-arrow_down (f433) - : nf-oct-arrow_left (f434) - : nf-oct-arrow_right (f432) - : nf-oct-arrow_small_down (f479) - : nf-oct-arrow_small_left (f47a) - : nf-oct-arrow_small_right (f45c) - : nf-oct-arrow_small_up (f478) - : nf-oct-arrow_up (f431) - : nf-oct-beaker (f499) - : nf-oct-bell (f49a) - : nf-oct-bold (f49d) - : nf-oct-book (f405) - : nf-oct-bookmark (f461) - : nf-oct-briefcase (f491) - : nf-oct-broadcast (f43c) - : nf-oct-browser (f488) - : nf-oct-bug (f46f) - : nf-oct-calendar (f455) - : nf-oct-check (f42e) - : nf-oct-checklist (f45e) - : nf-oct-chevron_down (f47c) - : nf-oct-chevron_left (f47d) - : nf-oct-chevron_right (f460) - : nf-oct-chevron_up (f47b) - : nf-oct-circle_slash (f468) - : nf-oct-circuit_board (f493) - : nf-oct-clippy (f429) - : nf-oct-clock (f43a) - : nf-oct-cloud_download (f409) - : nf-oct-cloud_upload (f40a) - : nf-oct-code (f44f) - : nf-oct-comment (f41f) - : nf-oct-comment_discussion (f442) - : nf-oct-credit_card (f439) - : nf-oct-dash (f48b) - : nf-oct-dashboard (f463) - : nf-oct-database (f472) - : nf-oct-desktop_download (f498) - : nf-oct-device_camera (f446) - : nf-oct-device_camera_video (f447) - : nf-oct-device_desktop (f67c) - : nf-oct-device_mobile (f42c) - : nf-oct-diff (f440) - : nf-oct-diff_added (f457) - : nf-oct-diff_ignored (f474) - : nf-oct-diff_modified (f459) - : nf-oct-diff_removed (f458) - : nf-oct-diff_renamed (f45a) - : nf-oct-ellipses (f4a4) - : nf-oct-ellipsis (f475) - : nf-oct-eye (f441) - : nf-oct-file (f4a5) - : nf-oct-file_binary (f471) - : nf-oct-file_code (f40d) - : nf-oct-file_directory (f413) - : nf-oct-file_media (f40f) - : nf-oct-file_pdf (f411) - : nf-oct-file_submodule (f414) - : nf-oct-file_symlink_directory (f482) - : nf-oct-file_symlink_file (f481) - : nf-oct-file_text (f40e) - : nf-oct-file_zip (f410) - : nf-oct-flame (f490) - : nf-oct-fold (f48c) - : nf-oct-gear (f423) - : nf-oct-gift (f436) - : nf-oct-gist (f40c) - : nf-oct-gist_secret (f46c) - : nf-oct-git_branch (f418) - : nf-oct-git_commit (f417) - : nf-oct-git_compare (f47f) - : nf-oct-git_merge (f419) - : nf-oct-git_pull_request (f407) - : nf-oct-globe (f484) - : nf-oct-grabber (f4a6) - : nf-oct-graph (f437) -♥ : nf-oct-heart (2665) - : nf-oct-history (f464) - : nf-oct-home (f46d) - : nf-oct-horizontal_rule (f45b) - : nf-oct-hubot (f477) - : nf-oct-inbox (f48d) - : nf-oct-info (f449) - : nf-oct-issue_closed (f41d) - : nf-oct-issue_opened (f41b) - : nf-oct-issue_reopened (f41c) - : nf-oct-italic (f49f) - : nf-oct-jersey (f416) - : nf-oct-key (f43d) - : nf-oct-keyboard (f40b) - : nf-oct-law (f495) - : nf-oct-light_bulb (f400) - : nf-oct-link (f44c) - : nf-oct-link_external (f465) - : nf-oct-list_ordered (f452) - : nf-oct-list_unordered (f451) - : nf-oct-location (f450) - : nf-oct-lock (f456) - : nf-oct-logo_gist (f480) - : nf-oct-logo_github (f470) - : nf-oct-mail (f42f) - : nf-oct-mail_read (f430) - : nf-oct-mail_reply (f443) - : nf-oct-mark_github (f408) - : nf-oct-markdown (f48a) - : nf-oct-megaphone (f45f) - : nf-oct-mention (f486) - : nf-oct-milestone (f45d) - : nf-oct-mirror (f41a) - : nf-oct-mortar_board (f494) - : nf-oct-mute (f466) - : nf-oct-no_newline (f476) - : nf-oct-octoface (f406) - : nf-oct-organization (f42b) - : nf-oct-package (f487) - : nf-oct-paintcan (f48f) - : nf-oct-pencil (f448) - : nf-oct-person (f415) - : nf-oct-pin (f435) - : nf-oct-plug (f492) - : nf-oct-plus (f44d) - : nf-oct-plus_small (f4a7) - : nf-oct-primitive_dot (f444) - : nf-oct-primitive_square (f445) - : nf-oct-pulse (f469) - : nf-oct-question (f420) - : nf-oct-quote (f453) - : nf-oct-radio_tower (f424) - : nf-oct-reply (f4a8) - : nf-oct-repo (f401) - : nf-oct-repo_clone (f43f) - : nf-oct-repo_force_push (f43e) - : nf-oct-repo_forked (f402) - : nf-oct-repo_pull (f404) - : nf-oct-repo_push (f403) - : nf-oct-rocket (f427) - : nf-oct-rss (f428) - : nf-oct-ruby (f43b) - : nf-oct-search (f422) - : nf-oct-server (f473) - : nf-oct-settings (f462) - : nf-oct-shield (f49c) - : nf-oct-sign_in (f42a) - : nf-oct-sign_out (f426) - : nf-oct-smiley (f4a2) - : nf-oct-squirrel (f483) - : nf-oct-star (f41e) - : nf-oct-stop (f46e) - : nf-oct-sync (f46a) - : nf-oct-tag (f412) - : nf-oct-tasklist (f4a0) - : nf-oct-telescope (f46b) - : nf-oct-terminal (f489) - : nf-oct-text_size (f49e) - : nf-oct-three_bars (f44e) - : nf-oct-thumbsdown (f497) - : nf-oct-thumbsup (f496) - : nf-oct-tools (f425) - : nf-oct-trashcan (f48e) - : nf-oct-triangle_down (f44b) - : nf-oct-triangle_left (f438) - : nf-oct-triangle_right (f44a) - : nf-oct-triangle_up (f47e) - : nf-oct-unfold (f42d) - : nf-oct-unmute (f485) - : nf-oct-unverified (f4a3) - : nf-oct-verified (f4a1) - : nf-oct-versions (f454) - : nf-oct-watch (f49b) - : nf-oct-x (f467) -⚡ : nf-oct-zap (26a1) - : nf-pl-branch (e0a0) - : nf-pl-current_line (e0a1) - : nf-pl-hostname (e0a2) - : nf-pl-left_hard_divider (e0b0) - : nf-pl-left_soft_divider (e0b1) - : nf-pl-line_number (e0a1) - : nf-pl-readonly (e0a2) - : nf-pl-right_hard_divider (e0b2) - : nf-pl-right_soft_divider (e0b3) - : nf-ple-backslash_separator (e0b9) - : nf-ple-backslash_separator_redundant (e0bf) - : nf-ple-column_number (e0a3) - : nf-ple-current_column (e0a3) - : nf-ple-flame_thick (e0c0) - : nf-ple-flame_thick_mirrored (e0c2) - : nf-ple-flame_thin (e0c1) - : nf-ple-flame_thin_mirrored (e0c3) - : nf-ple-forwardslash_separator (e0bb) - : nf-ple-forwardslash_separator_redundant (e0bd) - : nf-ple-honeycomb (e0cc) - : nf-ple-honeycomb_outline (e0cd) - : nf-ple-ice_waveform (e0c8) - : nf-ple-ice_waveform_mirrored (e0ca) - : nf-ple-left_half_circle_thick (e0b6) - : nf-ple-left_half_circle_thin (e0b7) - : nf-ple-lego_block_facing (e0d0) - : nf-ple-lego_block_sideways (e0d1) - : nf-ple-lego_separator (e0ce) - : nf-ple-lego_separator_thin (e0cf) - : nf-ple-lower_left_triangle (e0b8) - : nf-ple-lower_right_triangle (e0ba) - : nf-ple-pixelated_squares_big (e0c6) - : nf-ple-pixelated_squares_big_mirrored (e0c7) - : nf-ple-pixelated_squares_small (e0c4) - : nf-ple-pixelated_squares_small_mirrored (e0c5) - : nf-ple-right_half_circle_thick (e0b4) - : nf-ple-right_half_circle_thin (e0b5) - : nf-ple-trapezoid_top_bottom (e0d2) - : nf-ple-trapezoid_top_bottom_mirrored (e0d4) - : nf-ple-upper_left_triangle (e0bc) - : nf-ple-upper_right_triangle (e0be) - : nf-pom-away (e007) - : nf-pom-clean_code (e000) - : nf-pom-external_interruption (e00a) - : nf-pom-internal_interruption (e009) - : nf-pom-long_pause (e006) - : nf-pom-pair_programming (e008) - : nf-pom-pomodoro_done (e001) - : nf-pom-pomodoro_estimated (e002) - : nf-pom-pomodoro_squashed (e004) - : nf-pom-pomodoro_ticking (e003) - : nf-pom-short_pause (e005) - : nf-seti-bower (e61a) - : nf-seti-cjsx (e61b) - : nf-seti-coffee (e61b) - : nf-seti-config (e615) - : nf-seti-css (e614) - : nf-seti-default (e612) - : nf-seti-ejs (e618) - : nf-seti-favicon (e623) - : nf-seti-folder (e613) - : nf-seti-go (e627) - : nf-seti-grunt (e611) - : nf-seti-gulp (e610) - : nf-seti-haskell (e61f) - : nf-seti-heroku (e607) - : nf-seti-home (e617) - : nf-seti-html (e60e) - : nf-seti-image (e60d) - : nf-seti-javascript (e60c) - : nf-seti-json (e60b) - : nf-seti-julia (e624) - : nf-seti-karma (e622) - : nf-seti-less (e60b) - : nf-seti-license (e60a) - : nf-seti-lua (e620) - : nf-seti-markdown (e609) - : nf-seti-mustache (e60f) - : nf-seti-npm (e616) - : nf-seti-php (e608) - : nf-seti-play_arrow (e602) - : nf-seti-project (e601) - : nf-seti-python (e606) - : nf-seti-rails (e604) - : nf-seti-react (e625) - : nf-seti-ruby (e605) - : nf-seti-sass (e603) - : nf-seti-stylus (e600) - : nf-seti-text (e612) - : nf-seti-twig (e61c) - : nf-seti-typescript (e628) - : nf-seti-xml (e619) - : nf-weather-alien (e36e) - : nf-weather-aliens (e345) - : nf-weather-barometer (e372) - : nf-weather-celsius (e339) - : nf-weather-cloud (e33d) - : nf-weather-cloud_down (e33a) - : nf-weather-cloud_refresh (e33b) - : nf-weather-cloud_up (e33c) - : nf-weather-cloudy (e312) - : nf-weather-cloudy_gusts (e310) - : nf-weather-cloudy_windy (e311) - : nf-weather-day_cloudy (e302) - : nf-weather-day_cloudy_gusts (e300) - : nf-weather-day_cloudy_high (e376) - : nf-weather-day_cloudy_windy (e301) - : nf-weather-day_fog (e303) - : nf-weather-day_hail (e304) - : nf-weather-day_haze (e3ae) - : nf-weather-day_light_wind (e3bc) - : nf-weather-day_lightning (e305) - : nf-weather-day_rain (e308) - : nf-weather-day_rain_mix (e306) - : nf-weather-day_rain_wind (e307) - : nf-weather-day_showers (e309) - : nf-weather-day_sleet (e3aa) - : nf-weather-day_sleet_storm (e362) - : nf-weather-day_snow (e30a) - : nf-weather-day_snow_thunderstorm (e365) - : nf-weather-day_snow_wind (e35f) - : nf-weather-day_sprinkle (e30b) - : nf-weather-day_storm_showers (e30e) - : nf-weather-day_sunny (e30d) - : nf-weather-day_sunny_overcast (e30c) - : nf-weather-day_thunderstorm (e30f) - : nf-weather-day_windy (e37d) - : nf-weather-degrees (e33e) - : nf-weather-direction_down (e340) - : nf-weather-direction_down_left (e33f) - : nf-weather-direction_down_right (e380) - : nf-weather-direction_left (e344) - : nf-weather-direction_right (e349) - : nf-weather-direction_up (e353) - : nf-weather-direction_up_left (e37f) - : nf-weather-direction_up_right (e352) - : nf-weather-dust (e35d) - : nf-weather-earthquake (e3be) - : nf-weather-fahrenheit (e341) - : nf-weather-fire (e3bf) - : nf-weather-flood (e375) - : nf-weather-fog (e313) - : nf-weather-gale_warning (e3c5) - : nf-weather-hail (e314) - : nf-weather-horizon (e343) - : nf-weather-horizon_alt (e342) - : nf-weather-hot (e36b) - : nf-weather-humidity (e373) - : nf-weather-hurricane (e36c) - : nf-weather-hurricane_warning (e3c7) - : nf-weather-lightning (e315) - : nf-weather-lunar_eclipse (e369) - : nf-weather-meteor (e36a) - : nf-weather-moon_alt_first_quarter (e3ce) - : nf-weather-moon_alt_full (e3d5) - : nf-weather-moon_alt_new (e3e3) - : nf-weather-moon_alt_third_quarter (e3dc) - : nf-weather-moon_alt_waning_crescent_1 (e3dd) - : nf-weather-moon_alt_waning_crescent_2 (e3de) - : nf-weather-moon_alt_waning_crescent_3 (e3df) - : nf-weather-moon_alt_waning_crescent_4 (e3e0) - : nf-weather-moon_alt_waning_crescent_5 (e3e1) - : nf-weather-moon_alt_waning_crescent_6 (e3e2) - : nf-weather-moon_alt_waning_gibbous_1 (e3d6) - : nf-weather-moon_alt_waning_gibbous_2 (e3d7) - : nf-weather-moon_alt_waning_gibbous_3 (e3d8) - : nf-weather-moon_alt_waning_gibbous_4 (e3d9) - : nf-weather-moon_alt_waning_gibbous_5 (e3da) - : nf-weather-moon_alt_waning_gibbous_6 (e3db) - : nf-weather-moon_alt_waxing_crescent_1 (e3c8) - : nf-weather-moon_alt_waxing_crescent_2 (e3c9) - : nf-weather-moon_alt_waxing_crescent_3 (e3ca) - : nf-weather-moon_alt_waxing_crescent_4 (e3cb) - : nf-weather-moon_alt_waxing_crescent_5 (e3cc) - : nf-weather-moon_alt_waxing_crescent_6 (e3cd) - : nf-weather-moon_alt_waxing_gibbous_1 (e3cf) - : nf-weather-moon_alt_waxing_gibbous_2 (e3d0) - : nf-weather-moon_alt_waxing_gibbous_3 (e3d1) - : nf-weather-moon_alt_waxing_gibbous_4 (e3d2) - : nf-weather-moon_alt_waxing_gibbous_5 (e3d3) - : nf-weather-moon_alt_waxing_gibbous_6 (e3d4) - : nf-weather-moon_first_quarter (e394) - : nf-weather-moon_full (e39b) - : nf-weather-moon_new (e38d) - : nf-weather-moon_third_quarter (e3a2) - : nf-weather-moon_waning_crescent_1 (e3a3) - : nf-weather-moon_waning_crescent_2 (e3a4) - : nf-weather-moon_waning_crescent_3 (e3a5) - : nf-weather-moon_waning_crescent_4 (e3a6) - : nf-weather-moon_waning_crescent_5 (e3a7) - : nf-weather-moon_waning_crescent_6 (e3a8) - : nf-weather-moon_waning_gibbous_1 (e39c) - : nf-weather-moon_waning_gibbous_2 (e39d) - : nf-weather-moon_waning_gibbous_3 (e39e) - : nf-weather-moon_waning_gibbous_4 (e39f) - : nf-weather-moon_waning_gibbous_5 (e3a0) - : nf-weather-moon_waning_gibbous_6 (e3a1) - : nf-weather-moon_waxing_crescent_1 (e38e) - : nf-weather-moon_waxing_crescent_2 (e38f) - : nf-weather-moon_waxing_crescent_3 (e390) - : nf-weather-moon_waxing_crescent_4 (e391) - : nf-weather-moon_waxing_crescent_5 (e392) - : nf-weather-moon_waxing_crescent_6 (e393) - : nf-weather-moon_waxing_gibbous_1 (e395) - : nf-weather-moon_waxing_gibbous_2 (e396) - : nf-weather-moon_waxing_gibbous_3 (e397) - : nf-weather-moon_waxing_gibbous_4 (e398) - : nf-weather-moon_waxing_gibbous_5 (e399) - : nf-weather-moon_waxing_gibbous_6 (e39a) - : nf-weather-moonrise (e3c1) - : nf-weather-moonset (e3c2) - : nf-weather-na (e374) - : nf-weather-night_alt_cloudy (e37e) - : nf-weather-night_alt_cloudy_gusts (e31f) - : nf-weather-night_alt_cloudy_high (e377) - : nf-weather-night_alt_cloudy_windy (e320) - : nf-weather-night_alt_hail (e321) - : nf-weather-night_alt_lightning (e322) - : nf-weather-night_alt_partly_cloudy (e379) - : nf-weather-night_alt_rain (e325) - : nf-weather-night_alt_rain_mix (e326) - : nf-weather-night_alt_rain_wind (e324) - : nf-weather-night_alt_sleet (e3ac) - : nf-weather-night_alt_sleet_storm (e364) - : nf-weather-night_alt_snow (e327) - : nf-weather-night_alt_snow_thunderstorm (e367) - : nf-weather-night_alt_snow_wind (e361) - : nf-weather-night_alt_sprinkle (e328) - : nf-weather-night_alt_storm_showers (e329) - : nf-weather-night_alt_thunderstorm (e32a) - : nf-weather-night_clear (e32b) - : nf-weather-night_cloudy (e32e) - : nf-weather-night_cloudy_gusts (e32c) - : nf-weather-night_cloudy_high (e378) - : nf-weather-night_cloudy_windy (e32d) - : nf-weather-night_fog (e346) - : nf-weather-night_hail (e32f) - : nf-weather-night_lightning (e330) - : nf-weather-night_partly_cloudy (e37b) - : nf-weather-night_rain (e333) - : nf-weather-night_rain_mix (e331) - : nf-weather-night_rain_wind (e332) - : nf-weather-night_showers (e334) - : nf-weather-night_sleet (e3ab) - : nf-weather-night_sleet_storm (e363) - : nf-weather-night_snow (e335) - : nf-weather-night_snow_thunderstorm (e366) - : nf-weather-night_snow_wind (e360) - : nf-weather-night_sprinkle (e336) - : nf-weather-night_storm_showers (e337) - : nf-weather-night_thunderstorm (e338) - : nf-weather-rain (e318) - : nf-weather-rain_mix (e316) - : nf-weather-rain_wind (e317) - : nf-weather-raindrop (e371) - : nf-weather-raindrops (e34a) - : nf-weather-refresh (e348) - : nf-weather-refresh_alt (e347) - : nf-weather-sandstorm (e37a) - : nf-weather-showers (e319) - : nf-weather-sleet (e3ad) - : nf-weather-small_craft_advisory (e3c4) - : nf-weather-smog (e36d) - : nf-weather-smoke (e35c) - : nf-weather-snow (e31a) - : nf-weather-snow_wind (e35e) - : nf-weather-snowflake_cold (e36f) - : nf-weather-solar_eclipse (e368) - : nf-weather-sprinkle (e31b) - : nf-weather-stars (e370) - : nf-weather-storm_showers (e31c) - : nf-weather-storm_warning (e3c6) - : nf-weather-strong_wind (e34b) - : nf-weather-sunrise (e34c) - : nf-weather-sunset (e34d) - : nf-weather-thermometer (e350) - : nf-weather-thermometer_exterior (e34e) - : nf-weather-thermometer_internal (e34f) - : nf-weather-thunderstorm (e31d) - : nf-weather-time_1 (e382) - : nf-weather-time_10 (e38b) - : nf-weather-time_11 (e38c) - : nf-weather-time_12 (e381) - : nf-weather-time_2 (e383) - : nf-weather-time_3 (e384) - : nf-weather-time_4 (e385) - : nf-weather-time_5 (e386) - : nf-weather-time_6 (e387) - : nf-weather-time_7 (e388) - : nf-weather-time_8 (e389) - : nf-weather-time_9 (e38a) - : nf-weather-tornado (e351) - : nf-weather-train (e3c3) - : nf-weather-tsunami (e3bd) - : nf-weather-umbrella (e37c) - : nf-weather-volcano (e3c0) - : nf-weather-wind_beaufort_0 (e3af) - : nf-weather-wind_beaufort_1 (e3b0) - : nf-weather-wind_beaufort_10 (e3b9) - : nf-weather-wind_beaufort_11 (e3ba) - : nf-weather-wind_beaufort_12 (e3bb) - : nf-weather-wind_beaufort_2 (e3b1) - : nf-weather-wind_beaufort_3 (e3b2) - : nf-weather-wind_beaufort_4 (e3b3) - : nf-weather-wind_beaufort_5 (e3b4) - : nf-weather-wind_beaufort_6 (e3b5) - : nf-weather-wind_beaufort_7 (e3b6) - : nf-weather-wind_beaufort_8 (e3b7) - : nf-weather-wind_beaufort_9 (e3b8) - : nf-weather-wind_direction (e3a9) - : nf-weather-wind_east (e35b) - : nf-weather-wind_north (e35a) - : nf-weather-wind_north_east (e359) - : nf-weather-wind_north_west (e358) - : nf-weather-wind_south (e357) - : nf-weather-wind_south_east (e356) - : nf-weather-wind_south_west (e355) - : nf-weather-wind_west (e354) - : nf-weather-windy (e31e) diff --git a/.local/share/vim/templates/skeleton.c b/.local/share/vim/templates/skeleton.c deleted file mode 100644 index 773bdef5..00000000 --- a/.local/share/vim/templates/skeleton.c +++ /dev/null @@ -1,14 +0,0 @@ -/* -* [:VIM_EVAL:]expand('%:t')[:END_EVAL:] -* [:VIM_EVAL:]expand('%:p:h:t')[:END_EVAL:] -* -* Created by Yigit Colakoglu on [:VIM_EVAL:]strftime('%m/%d/%y')[:END_EVAL:]. -* Copyright [:VIM_EVAL:]strftime('%Y')[:END_EVAL:]. Yigit Colakoglu. All rights reserved. -*/ - -#include - -int main(int argc, char *argv[]) { - -} - diff --git a/.local/share/vim/templates/skeleton.cpp b/.local/share/vim/templates/skeleton.cpp deleted file mode 100644 index 1b7db2f9..00000000 --- a/.local/share/vim/templates/skeleton.cpp +++ /dev/null @@ -1,14 +0,0 @@ -/* -* [:VIM_EVAL:]expand('%:t')[:END_EVAL:] -* [:VIM_EVAL:]expand('%:p:h:t')[:END_EVAL:] -* -* Created by Yigit Colakoglu on [:VIM_EVAL:]strftime('%m/%d/%y')[:END_EVAL:]. -* Copyright [:VIM_EVAL:]strftime('%Y')[:END_EVAL:]. Yigit Colakoglu. All rights reserved. -*/ - -#include - -int main(int argc, char *argv[]) { - -} - diff --git a/.local/share/vim/templates/skeleton.h b/.local/share/vim/templates/skeleton.h deleted file mode 100644 index ed6c7f12..00000000 --- a/.local/share/vim/templates/skeleton.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// [:VIM_EVAL:]expand('%:t')[:END_EVAL:] -// [:VIM_EVAL:]expand('%:p:h:t')[:END_EVAL:] -// -// Created by Yigit Colakoglu on [:VIM_EVAL:]strftime('%m/%d/%y')[:END_EVAL:]. -// Copyright [:VIM_EVAL:]strftime('%Y')[:END_EVAL:]. Yigit Colakoglu. All rights reserved. -// - -#ifndef [:VIM_EVAL:]substitute(expand('%:t'),'\.',"_","")[:END_EVAL:] -#define [:VIM_EVAL:]substitute(expand('%:t'),'\.',"_","")[:END_EVAL:] - - -#endif /* [:VIM_EVAL:]substitute(expand('%:t'),'\.',"_","")[:END_EVAL:] */ diff --git a/.local/share/vim/templates/skeleton.hpp b/.local/share/vim/templates/skeleton.hpp deleted file mode 100644 index ed6c7f12..00000000 --- a/.local/share/vim/templates/skeleton.hpp +++ /dev/null @@ -1,13 +0,0 @@ -// -// [:VIM_EVAL:]expand('%:t')[:END_EVAL:] -// [:VIM_EVAL:]expand('%:p:h:t')[:END_EVAL:] -// -// Created by Yigit Colakoglu on [:VIM_EVAL:]strftime('%m/%d/%y')[:END_EVAL:]. -// Copyright [:VIM_EVAL:]strftime('%Y')[:END_EVAL:]. Yigit Colakoglu. All rights reserved. -// - -#ifndef [:VIM_EVAL:]substitute(expand('%:t'),'\.',"_","")[:END_EVAL:] -#define [:VIM_EVAL:]substitute(expand('%:t'),'\.',"_","")[:END_EVAL:] - - -#endif /* [:VIM_EVAL:]substitute(expand('%:t'),'\.',"_","")[:END_EVAL:] */ diff --git a/.local/share/vim/templates/skeleton.java b/.local/share/vim/templates/skeleton.java deleted file mode 100644 index fb916ca4..00000000 --- a/.local/share/vim/templates/skeleton.java +++ /dev/null @@ -1,13 +0,0 @@ -home/home/ -home/home/ [:VIM_EVAL:]expand('%:t')[:END_EVAL:] -home/home/ [:VIM_EVAL:]expand('%:p:h:t')[:END_EVAL:] -home/home/ -home/home/ Created by Yigit Colakoglu on [:VIM_EVAL:]strftime('%mhome/%dhome/%y')[:END_EVAL:]. -home/home/ Copyright [:VIM_EVAL:]strftime('%Y')[:END_EVAL:]. Yigit Colakoglu. All rights reserved. -home/home/ - -class Untitled { - public static void main(String[] args) { - - } -} diff --git a/.local/share/vim/templates/skeleton.py b/.local/share/vim/templates/skeleton.py deleted file mode 100644 index 168d6bac..00000000 --- a/.local/share/vim/templates/skeleton.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/python -# -# [:VIM_EVAL:]expand('%:t')[:END_EVAL:] -# [:VIM_EVAL:]expand('%:p:h:t')[:END_EVAL:] -# -# Created by Yigit Colakoglu on [:VIM_EVAL:]strftime('%m/%d/%y')[:END_EVAL:]. -# Copyright [:VIM_EVAL:]strftime('%Y')[:END_EVAL:]. Yigit Colakoglu. All rights reserved. -# - -def main(): - print("hello world") - - -if __name__ == "__main__": - main() diff --git a/.local/share/vim/templates/skeleton.sh b/.local/share/vim/templates/skeleton.sh deleted file mode 100644 index 13f47935..00000000 --- a/.local/share/vim/templates/skeleton.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh - diff --git a/.local/src/dmenu/config.h b/.local/src/dmenu/config.h index 8dd057ca..e4949c42 100644 --- a/.local/src/dmenu/config.h +++ b/.local/src/dmenu/config.h @@ -1,14 +1,20 @@ -/* See LICENSE file for copyright and license details. */ -/* Default settings; can be overriden by command line. */ +/* + __ _______ _____ _____ + \ \ / / ____| ____|_ _| + \ V /| _| | _| | | + | | | |___| |___ | | + |_| |_____|_____| |_| + Yeet's dmenu config +*/ static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */ /* -fn option overrides fonts[0]; default X11 font or font set */ static const char *fonts[] = { + "JoyPixels:pixelsize=8:antialias=true:autohint=true", "CaskaydiaCove Nerd Font Mono:size=10", - "Symbola:pixelsize=16:antialias=true:autohint=true", }; -static const char *prompt = NULL; /* -p option; prompt to the left of input field */ +static const char *prompt = "Select an option"; /* -p option; prompt to the left of input field */ static const unsigned int min_lineheight = 27; static unsigned int lineheight = 27; static unsigned int fuzzy = 0; diff --git a/.local/src/dmenu/config.mk b/.local/src/dmenu/config.mk index 54fb03a5..638151fe 100644 --- a/.local/src/dmenu/config.mk +++ b/.local/src/dmenu/config.mk @@ -25,7 +25,7 @@ LIBS = -L$(X11LIB) -lX11 $(XINERAMALIBS) $(FREETYPELIBS) -lm -lXrender # flags CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L -DVERSION=\"$(VERSION)\" $(XINERAMAFLAGS) -CFLAGS = -std=c99 -pedantic -Wall -Os $(INCS) $(CPPFLAGS) +CFLAGS = -w -std=c99 -pedantic -Wall -Os $(INCS) $(CPPFLAGS) LDFLAGS = $(LIBS) # compiler and linker diff --git a/.local/src/dmenu/dmenu.c b/.local/src/dmenu/dmenu.c index 93e1c70d..f92f5feb 100644 --- a/.local/src/dmenu/dmenu.c +++ b/.local/src/dmenu/dmenu.c @@ -763,6 +763,156 @@ draw: drawmenu(); } +static void +buttonpress(XEvent *e) +{ + struct item *item; + XButtonPressedEvent *ev = &e->xbutton; + int x = 0, y = 0, h = bh, w; + + if (ev->window != win) + return; + + /* right-click: exit */ + if (ev->button == Button3) + exit(1); + + if (prompt && *prompt) + x += promptw; + + /* input field */ + w = (lines > 0 || !matches) ? mw - x : inputw; + + /* left-click on input: clear input, + * NOTE: if there is no left-arrow the space for < is reserved so + * add that to the input width */ + if (ev->button == Button1 && + ((lines <= 0 && ev->x >= 0 && ev->x <= x + w + + ((!prev || !curr->left) ? TEXTW("<") : 0)) || + (lines > 0 && ev->y >= y && ev->y <= y + h))) { + insert(NULL, -cursor); + drawmenu(); + return; + } + /* middle-mouse click: paste selection */ + if (ev->button == Button2) { + XConvertSelection(dpy, (ev->state & ShiftMask) ? clip : XA_PRIMARY, + utf8, utf8, win, CurrentTime); + drawmenu(); + return; + } + /* scroll up */ + if (ev->button == Button4 && prev) { + sel = curr = prev; + calcoffsets(); + drawmenu(); + return; + } + /* scroll down */ + if (ev->button == Button5 && next) { + sel = curr = next; + calcoffsets(); + drawmenu(); + return; + } + if (ev->button != Button1) + return; + /* disabled below, needs to be fixed */ + /* + if (ev->state & ~ControlMask) + return; + */ + if (lines > 0) { + /* vertical list: (ctrl)left-click on item */ + w = mw - x; + for (item = curr; item != next; item = item->right) { + y += h; + if (ev->y >= y && ev->y <= (y + h)) { + puts(item->text); + if (!(ev->state & ControlMask)) + exit(0); + sel = item; + if (sel) { + sel->id = 1; + drawmenu(); + } + return; + } + } + } else if (matches) { + /* left-click on left arrow */ + x += inputw; + w = TEXTW("<"); + if (prev && curr->left) { + if (ev->x >= x && ev->x <= x + w) { + sel = curr = prev; + calcoffsets(); + drawmenu(); + return; + } + } + /* horizontal list: (ctrl)left-click on item */ + for (item = curr; item != next; item = item->right) { + x += w; + w = MIN(TEXTW(item->text), mw - x - TEXTW(">")); + if (ev->x >= x && ev->x <= x + w) { + puts(item->text); + if (!(ev->state & ControlMask)) + exit(0); + sel = item; + if (sel) { + sel->id = 1; + drawmenu(); + } + return; + } + } + /* left-click on right arrow */ + w = TEXTW(">"); + x = mw - w; + if (next && ev->x >= x && ev->x <= x + w) { + sel = curr = next; + calcoffsets(); + drawmenu(); + return; + } + } +} + +static void +mousemove(XEvent *e) +{ + struct item *item; + XPointerMovedEvent *ev = &e->xmotion; + int x = 0, y = 0, h = bh, w; + + if (lines > 0) { + w = mw - x; + for (item = curr; item != next; item = item->right) { + y += h; + if (ev->y >= y && ev->y <= (y + h)) { + sel = item; + calcoffsets(); + drawmenu(); + return; + } + } + } else if (matches) { + x += inputw + promptw; + w = TEXTW("<"); + for (item = curr; item != next; item = item->right) { + x += w; + w = MIN(TEXTW(item->text), mw - x - TEXTW(">")); + if (ev->x >= x && ev->x <= x + w) { + sel = item; + calcoffsets(); + drawmenu(); + return; + } + } + } +} + static void paste(void) { @@ -829,6 +979,12 @@ run(void) break; cleanup(); exit(1); + case ButtonPress: + buttonpress(&ev); + break; + case MotionNotify: + mousemove(&ev); + break; case Expose: if (ev.xexpose.count == 0) drw_map(drw, win, 0, 0, mw, mh); @@ -926,6 +1082,12 @@ setup(void) /* create menu window */ swa.override_redirect = True; + swa.background_pixel = scheme[SchemeNorm][ColBg].pixel; + swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask | + ButtonPressMask | PointerMotionMask; + win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0, + CopyFromParent, CopyFromParent, CopyFromParent, + CWOverrideRedirect | CWBackPixel | CWEventMask, &swa); swa.background_pixel = 0; swa.border_pixel = 0; swa.colormap = cmap; diff --git a/.local/src/dwm/config.def.h b/.local/src/dwm/config.def.h index 13a3bfb3..118f69d2 100644 --- a/.local/src/dwm/config.def.h +++ b/.local/src/dwm/config.def.h @@ -156,7 +156,11 @@ static Key keys[] = { { MODKEY|ControlMask, XK_period, cyclelayout, {.i = +1 } }, { MODKEY, XK_space, setlayout, {0} }, { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, +<<<<<<< { MODKEY|ShiftMask, XK_f, togglefullscr, {0} }, +======= + { MODKEY, XK_s, togglesticky, {0} }, +>>>>>>> { MODKEY, XK_0, view, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, { MODKEY, XK_comma, focusmon, {.i = -1 } }, diff --git a/.local/src/dwm/config.h b/.local/src/dwm/config.h index d1150bc8..5ab26c74 100644 --- a/.local/src/dwm/config.h +++ b/.local/src/dwm/config.h @@ -1,4 +1,11 @@ -/* See LICENSE file for copyright and license details. */ +/* + __ _______ _____ _____ + \ \ / / ____| ____|_ _| + \ V /| _| | _| | | + | | | |___| |___ | | + |_| |_____|_____| |_| + Yeet's DWM configuration +*/ typedef struct { const char *name; @@ -61,10 +68,13 @@ static Sp scratchpads[] = { { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, + +static const char *mouse_dmenu[] = {"/home/yigit/.local/bin/mousemenu", NULL}; /* button definitions */ /* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ static Button buttons[] = { /* click event mask button function argument */ + { ClkRootWin, 0, Button3, spawn, {.v = mouse_dmenu} }, { ClkLtSymbol, 0, Button1, setlayout, {0} }, { ClkLtSymbol, 0, Button3, layoutmenu, {0} }, { ClkStatusText, 0, Button1, sigdwmblocks, {.i = 1} }, diff --git a/.local/src/dwm/dwm.c b/.local/src/dwm/dwm.c index 935f6ea7..964b242c 100644 --- a/.local/src/dwm/dwm.c +++ b/.local/src/dwm/dwm.c @@ -57,7 +57,7 @@ #define INTERSECT(x,y,w,h,m) (MAX(0, MIN((x)+(w),(m)->wx+(m)->ww) - MAX((x),(m)->wx)) \ * MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy))) #define ISVISIBLEONTAG(C, T) ((C->tags & T)) -#define ISVISIBLE(C) ISVISIBLEONTAG(C, C->mon->tagset[C->mon->seltags]) +#define ISVISIBLE(C) ISVISIBLEONTAG(C, C->mon->tagset[C->mon->seltags] || C->issticky) #define LENGTH(X) (sizeof X / sizeof X[0]) #define MOUSEMASK (BUTTONMASK|PointerMotionMask) #define WIDTH(X) ((X)->w + 2 * (X)->bw) @@ -103,7 +103,7 @@ struct Client { int bw, oldbw; unsigned int tags; int ignoresizehints; - int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isterminal, noswallow; + int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isterminal, noswallow, issticky; pid_t pid; Client *next; Client *snext; @@ -256,6 +256,7 @@ static void togglebar(const Arg *arg); static void togglefloating(const Arg *arg); static void togglescratch(const Arg *arg); static void togglefullscr(const Arg *arg); +static void togglesticky(const Arg *arg); static void toggletag(const Arg *arg); static void toggleview(const Arg *arg); static void unfocus(Client *c, int setfocus); @@ -2487,6 +2488,15 @@ togglescratch(const Arg *arg) } } +void +togglesticky(const Arg *arg) +{ + if (!selmon->sel) + return; + selmon->sel->issticky = !selmon->sel->issticky; + arrange(selmon); +} + void toggletag(const Arg *arg) { diff --git a/.local/src/dwm/keybinds.h b/.local/src/dwm/keybinds.h index 876b26d5..c49ee2f7 100644 --- a/.local/src/dwm/keybinds.h +++ b/.local/src/dwm/keybinds.h @@ -1,11 +1,11 @@ -// -// keybinds.h -// dwm -// -// Created by Yigit Colakoglu on 04/12/21. -// Copyright 2021. Yigit Colakoglu. All rights reserved. -// -// +/* + __ _______ _____ _____ + \ \ / / ____| ____|_ _| + \ V /| _| | _| | | + | | | |___| |___ | | + |_| |_____|_____| |_| + Yeet's DWM keybinds +*/ #include #include "movestack.c" @@ -63,12 +63,13 @@ static const char *udevil_umount[] = {"/home/yigit/.local/bin/dmenu-udevil", "-u static const char *genpwd[] = {"/home/yigit/.local/bin/genpwd", NULL}; static const char *trackpad[] = {"/home/yigit/.local/bin/toggle_touchpad.sh"}; static const char *bluetooth[] = {"/home/yigit/.local/bin/dmenu-bluetooth", NULL}; -static const char *url[] = {"/home/yigit/.local/bin/dmenu_surf", NULL}; +static const char *web[] = {"/home/yigit/.local/bin/dmenu-web", NULL}; static const char *readbook[] = {"/home/yigit/.local/bin/dmenu-books", NULL}; +static const char *emoji[] = {"/home/yigit/.local/bin/dmenu-emoji", NULL}; +static const char *xrandr[] = {"/home/yigit/.local/bin/dmenu-xrandr", NULL}; static const char *record[] = {"/home/yigit/.local/bin/dmenu-record", NULL}; static const char *edit[] = {"/home/yigit/.local/bin/dmenu-edit", NULL}; static const char *surf[] = {"/home/yigit/.local/bin/tabbed_surf", NULL}; -static const char *searx[] = {"/home/yigit/.local/bin/dmenu-searx", NULL}; static const char *youtube[] = {"/home/yigit/.local/bin/ytfzf_dmenu", NULL}; /* commands */ @@ -139,16 +140,17 @@ static Key keys[] = { { 0, XF86XK_AudioPlay, spawn, {.v = play } }, { 0, XF86XK_AudioNext, spawn, {.v = next } }, { 0, XK_Print, spawn, {.v = screenshot } }, + { MODKEY|ShiftMask|Mod1Mask, XK_s, togglesticky, { 0 } }, { MODKEY, XK_Print, spawn, {.v = windowshot } }, { MODKEY|Mod1Mask, XK_Print, spawn, {.v = selectshot } }, - { MODKEY|ShiftMask, XK_e, spawn, {.v = simcrop } }, + { MODKEY|ShiftMask, XK_e, spawn, {.v = emoji } }, + { MODKEY|ShiftMask, XK_s, spawn, {.v = xrandr } }, { MODKEY, XK_e, spawn, {.v = edit} }, - { MODKEY, XK_u, spawn, {.v = url} }, + { MODKEY, XK_u, spawn, {.v = web} }, { MODKEY, XK_r, spawn, {.v = readbook} }, { MODKEY|Mod1Mask, XK_r, spawn, {.v = record } }, { MODKEY|ShiftMask, XK_w, spawn, {.v = wallabag} }, { MODKEY, XK_w, spawn, {.v = wiki} }, - { MODKEY, XK_g, spawn, {.v = searx} }, { MODKEY, XK_t, spawn, {.v = online_class} }, { MODKEY|ShiftMask, XK_m, spawn, {.v = mconnect} }, { MODKEY|ShiftMask, XK_d, spawn, {.v = udevil} }, @@ -156,7 +158,7 @@ static Key keys[] = { { MODKEY, XK_y, spawn, {.v = youtube} }, { MODKEY|ShiftMask, XK_g, spawn, {.v = grabcolor} }, { MODKEY, XK_s, togglescratch, {.ui = 0 } }, - { MODKEY|ShiftMask, XK_s, togglescratch, {.ui = 1 } }, +// { MODKEY|ShiftMask, XK_s, togglescratch, {.ui = 1 } }, { MODKEY, XK_m, togglescratch, {.ui = 2 } }, { MODKEY|ShiftMask, XK_f, togglescratch, {.ui = 3} }, { MODKEY, XK_n, togglescratch, {.ui = 4} }, diff --git a/.local/src/dwm/rules.h b/.local/src/dwm/rules.h index 3256d4f7..a2f04d59 100644 --- a/.local/src/dwm/rules.h +++ b/.local/src/dwm/rules.h @@ -1,10 +1,11 @@ -// -// rules.h -// dwm -// -// Created by Yigit Colakoglu on 04/12/21. -// Copyright 2021. Yigit Colakoglu. All rights reserved. -// +/* + __ _______ _____ _____ + \ \ / / ____| ____|_ _| + \ V /| _| | _| | | + | | | |___| |___ | | + |_| |_____|_____| |_| + Yeet's DWM rules +*/ #ifndef rules_h #define rules_h diff --git a/.local/src/dwmblocks/config.h b/.local/src/dwmblocks/config.h index c28be264..c3ef8eb5 100644 --- a/.local/src/dwmblocks/config.h +++ b/.local/src/dwmblocks/config.h @@ -1,3 +1,11 @@ +/* + __ _______ _____ _____ + \ \ / / ____| ____|_ _| + \ V /| _| | _| | | + | | | |___| |___ | | + |_| |_____|_____| |_| + Yeet's DWMBlocks Config +*/ #define PATH(name) "/home/yigit/.local/bin/status-bar/"name @@ -11,12 +19,12 @@ static Block blocks[] = { // { "", PATH("mpc"), 240, 29}, { "", PATH("bluetooth"), 120, 26}, { "", PATH("mconnect"), 120, 20}, -// { "", PATH("todo"), 120, 27}, + { "", PATH("todo"), 120, 27}, { "", PATH("nextcloud"), 600, 25}, { "", PATH("cpu-temp"), 30, 17}, { "", PATH("memory"), 120, 21}, { "", PATH("weather"), 60, 16}, -// { "", PATH("arch"), 120, 15}, + { "", PATH("arch"), 120, 15}, { "", PATH("volume"), 5, 14}, { "", PATH("network"), 120, 13}, { "", PATH("battery"), 60, 12}, diff --git a/.local/src/st/config.h b/.local/src/st/config.h index 43f5da01..c656da3b 100644 --- a/.local/src/st/config.h +++ b/.local/src/st/config.h @@ -1,28 +1,23 @@ -/* See LICENSE file for copyright and license details. */ - /* - * appearance - * - * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html - */ + __ _______ _____ _____ + \ \ / / ____| ____|_ _| + \ V /| _| | _| | | + | | | |___| |___ | | + |_| |_____|_____| |_| + Yeet's st config +*/ + static char *font = "CaskaydiaCove Nerd Font Mono:pixelsize=16:antialias=true:autohint=true"; static char *font2[] = { - "Symbola:pixelsize=16:antialias=true:autohint=true", + "Joypixels:pixelsize=16:antialias=true:autohint=true", }; -char *iso14755_cmd = "cat /home/yigit/.local/share/nerdfont_icons | dmenu -w \"$WINDOWID\" -p \"Select icon\" -l 10 | cut -d\"(\" -f2 | cut -c 1-4"; +char *iso14755_cmd = "dmenu -w \"$WINDOWID\" -p \"Enter unicode\""; static int borderpx = 2; -/* - * What program is execed by st depends of these precedence rules: - * 1: program passed with -e - * 2: scroll and/or utmp - * 3: SHELL environment variable - * 4: value of shell in /etc/passwd - * 5: value of shell in config.h - */ static char *shell = "/bin/zsh"; char *utmp = NULL; + /* scroll program: to enable use a string like "scroll" */ char *scroll = "scroll"; char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400"; @@ -36,11 +31,6 @@ char *vtiden = "\033[?6c"; static float cwscale = 1.0; static float chscale = 1.0; -/* - * word delimiter string - * - * More advanced example: L" `'\"()[]{}" - */ wchar_t *worddelimiters = L" "; /* selection timeouts (in milliseconds) */ @@ -54,50 +44,15 @@ int allowaltscreen = 1; setting the clipboard text */ int allowwindowops = 0; -/* - * draw latency range in ms - from new content/keypress/etc until drawing. - * within this range, st draws when content stops arriving (idle). mostly it's - * near minlatency, but it waits longer for slow updates to avoid partial draw. - * low minlatency will tear/flicker more, as it can "detect" idle too early. - */ static double minlatency = 8; static double maxlatency = 33; -/* - * blinking timeout (set to 0 to disable blinking) for the terminal blinking - * attribute. - */ static unsigned int blinktimeout = 800; - -/* - * thickness of underline and bar cursors - */ static unsigned int cursorthickness = 2; -/* - * bell volume. It must be a value between -100 and 100. Use 0 for disabling - * it - */ static int bellvolume = 0; - -/* default TERM value */ char *termname = "st-256color"; -/* - * spaces per tab - * - * When you are changing this value, don't forget to adapt the »it« value in - * the st.info and appropriately install the st.info in the environment where - * you use this st version. - * - * it#$tabspaces, - * - * Secondly make sure your kernel is not expanding tabs. When running `stty - * -a` »tab0« should appear. You can tell the terminal to not expand tabs by - * running following command: - * - * stty tabs - */ unsigned int tabspaces = 8; static const char *colorname[] = { @@ -129,10 +84,6 @@ static const char *colorname[] = { /* More special colors */ }; -/* - * Default colors (colorname index) - * foreground, background, cursor, reverse cursor - */ unsigned int defaultfg = 257; unsigned int defaultbg = 256; unsigned int bg = 256, bgUnfocused = 256; @@ -142,46 +93,19 @@ static unsigned int defaultrcs = 256; static unsigned int defaultitalic = 7; static unsigned int defaultunderline = 7; -/* - * Default shape of cursor - * 2: Block ("█") - * 4: Underline ("_") - * 6: Bar ("|") - * 7: Snowman ("☃") - */ static unsigned int cursorshape = 0; -/* - * Default columns and rows numbers - */ - static unsigned int cols = 80; static unsigned int rows = 24; -/* - * Default colour and shape of the mouse cursor - */ static unsigned int mouseshape = XC_xterm; static unsigned int mousefg = 7; static unsigned int mousebg = 0; -/* - * Color used to display font attributes when fontconfig selected a font which - * doesn't match the ones requested. - */ static unsigned int defaultattr = 11; -/* - * Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set). - * Note that if you want to use ShiftMask with selmasks, set this to an other - * modifier, set to 0 to not use it. - */ static uint forcemousemod = ShiftMask; -/* - * Internal mouse shortcuts. - * Beware that overloading Button1 will disable the selection. - */ static MouseShortcut mshortcuts[] = { /* mask button function argument release */ { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, @@ -233,44 +157,10 @@ static Shortcut shortcuts[] = { { MODKEY, XK_a, changealpha, {.f = +0.05} }, }; -/* - * Special keys (change & recompile st.info accordingly) - * - * Mask value: - * * Use XK_ANY_MOD to match the key no matter modifiers state - * * Use XK_NO_MOD to match the key alone (no modifiers) - * appkey value: - * * 0: no value - * * > 0: keypad application mode enabled - * * = 2: term.numlock = 1 - * * < 0: keypad application mode disabled - * appcursor value: - * * 0: no value - * * > 0: cursor application mode enabled - * * < 0: cursor application mode disabled - * - * Be careful with the order of the definitions because st searches in - * this table sequentially, so any XK_ANY_MOD must be in the last - * position for a key. - */ - -/* - * If you want keys other than the X11 function keys (0xFD00 - 0xFFFF) - * to be mapped below, add them to this array. - */ static KeySym mappedkeys[] = { -1 }; -/* - * State bits to ignore when matching key or button events. By default, - * numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored. - */ static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; -/* - * This is the huge key array which defines all compatibility to the Linux - * world. Please decide about changes wisely. - */ - static Key key[] = { /* keysym mask string appkey appcursor */ { XK_KP_Home, ShiftMask, "\033[2J", 0, -1}, @@ -329,8 +219,7 @@ static Key key[] = { { XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0}, { XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0}, { XK_Up, ShiftMask, "\033[1;2A", 0, 0}, - { XK_Up, Mod1Mask, "\033[1;3A", 0, 0}, - { XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0}, + { XK_Up, Mod1Mask, "\033[1;3A", 0, 0}, { XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0}, { XK_Up, ControlMask, "\033[1;5A", 0, 0}, { XK_Up, ShiftMask|ControlMask,"\033[1;6A", 0, 0}, { XK_Up, ControlMask|Mod1Mask,"\033[1;7A", 0, 0}, @@ -484,21 +373,10 @@ static Key key[] = { { XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0}, }; -/* - * Selection types' masks. - * Use the same masks as usual. - * Button1Mask is always unset, to make masks match between ButtonPress. - * ButtonRelease and MotionNotify. - * If no match is found, regular selection is used. - */ static uint selmasks[] = { [SEL_RECTANGULAR] = Mod1Mask, }; -/* - * Printable characters in ASCII, used to estimate the advance width - * of single wide characters. - */ static char ascii_printable[] = " !\"#$%&'()*+,-./0123456789:;<=>?" "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_" diff --git a/.local/src/st/st b/.local/src/st/st index 8737adcde004baaef2ffa0a6dcd4160289e12653..79e43e7129ef6b804a71076718c79a5d34b21b1d 100755 GIT binary patch literal 111928 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�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 literal 111928 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

gS@w=5^>-D^-|F*l(nMR}o6+S1O4Uh?w7@-v!3{ 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 diff --git a/.local/src/st/st.o b/.local/src/st/st.o index 1ad79eb8045793103569c396dbe1b64fb84aa3e0..283ef765cfd745bc3c9a0c8b97175f183932794a 100644 GIT binary patch literal 80456 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%0D-R}y&40`i{^c&f9HG|P*rH&r~23T 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 diff --git a/.profile b/.profile index be482e9c..5c1554b0 100755 --- a/.profile +++ b/.profile @@ -1,5 +1,12 @@ #!/bin/bash +## __ _______ _____ _____ +## \ \ / / ____| ____|_ _| +## \ V /| _| | _| | | +## | | | |___| |___ | | +## |_| |_____|_____| |_| +## .profile + # Vars for some bugs and applications export QT_QPA_PLATFORMTHEME="qt5ct" export _JAVA_AWT_WM_NONREPARENTING=1 @@ -25,6 +32,7 @@ export HISTFILE="$XDG_DATA_HOME"/history export TMUX_PLUGIN_MANAGER_PATH="$XDG_DATA_HOME"/tmux/plugins export BORG_KEYS_DIR="$XDG_DATA_HOME"/keys/borg export CARGO_HOME="$XDG_DATA_HOME"/cargo +export DOOMDIR="$XDG_CONFIG_HOME"/doom export GOPATH="$XDG_DATA_HOME"/go export ANDROID_HOME="$XDG_DATA_HOME"/Sdk export FLUTTER_HOME="$XDG_DATA_HOME"/flutter @@ -48,7 +56,7 @@ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter export PYLINTHOME="$XDG_CACHE_HOME"/pylint export WGETRC="$XDG_CONFIG_HOME/wgetrc" -export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle +# export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle export RANDFILE="$XDG_DATA_HOME"/openssl/rnd export _Z_DATA="$XDG_DATA_HOME/z" export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc @@ -93,8 +101,7 @@ fi # Start xinit if logged in from tty1 if [ "$DISPLAY" = "" ] && [ "$(tty)" = /dev/tty1 ]; then if [ "$DBUS_SESSION_BUS_ADDRESS" = "" ] && [ ! $(command -v dbus-run-session) = "" ]; then - # exec dbus-run-session xinit 2> $XDG_RUNTIME_DIR/xinit.err > $XDG_RUNTIME_DIR/xinit - exec xinit 2> $XDG_RUNTIME_DIR/xinit.err > $XDG_RUNTIME_DIR/xinit + exec dbus-run-session xinit 2> $XDG_RUNTIME_DIR/xinit.err > $XDG_RUNTIME_DIR/xinit else exec xinit 2> $XDG_RUNTIME_DIR/xinit.err > $XDG_RUNTIME_DIR/xinit fi