summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--context.json36
-rw-r--r--dots/alacritty/.config/alacritty/alacritty.toml19
-rw-r--r--dots/alacritty/.config/alacritty/theme.toml4
-rw-r--r--dots/emacs/.config/emacs.d/early-init.el5
-rw-r--r--dots/emacs/.config/emacs.d/empressomacs.org.j2264
-rw-r--r--dots/emacs/.config/emacs.d/init.el51
-rw-r--r--dots/home/Documents/kaomoji.json880
-rwxr-xr-xdots/home/scripts/theme.sh22
-rw-r--r--dots/nvim/.config/nvim/lua/plugins/lualine.lua34
-rw-r--r--dots/nvim/.config/nvim/lua/plugins/lualine.lua.j235
-rw-r--r--dots/nvim/.config/nvim/lua/plugins/theme.lua9
-rw-r--r--dots/nvim/.config/nvim/lua/plugins/theme.lua.j224
-rw-r--r--dots/theme/.config/theme/alacritty.toml4
-rw-r--r--dots/theme/.config/theme/alacritty.toml.j219
-rw-r--r--dots/theme/.config/theme/emacs.el.j24
-rw-r--r--dots/tmux/.config/tmux/tmux.conf4
-rw-r--r--dots/zed/.config/zed/settings.json.j226
-rwxr-xr-xdots/zsh/.config/zsh/osx/work.zsh2
-rwxr-xr-xdots/zsh/.config/zsh/setup/aliases.zsh28
20 files changed, 1369 insertions, 103 deletions
diff --git a/README.md b/README.md
index 078e7ee..c41fa11 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# dots: a kawaii dotfiles manager ✧˖°˖✧
+# dots: emprespresso's kawaii dotfiles manager ✧˖°˖✧
dots is a cute dotfiles manager with jinja2 templating and gnu stow integration (=^・ω・^=)
diff --git a/context.json b/context.json
index 47a40d3..15f48f3 100644
--- a/context.json
+++ b/context.json
@@ -52,12 +52,48 @@
"features": {
"work_mode": false
},
+ "editorconfig": {
+ "tab_width": 4
+ },
"paths": {
"suffix": {
"home_scripts": "$HOME/scripts",
"home_localbin": "$HOME/.local/bin"
}
},
+ "theme": {
+ "nvim": {
+ "lualine_theme": "gruvbox",
+ "light_colorscheme": "gruvbox",
+ "dark_colorscheme": "gruvbox",
+ "font": {
+ "name": "Agave Nerd Font Mono",
+ "size": 14
+ }
+ },
+ "emacs": {
+ "symbol": "'doom-gruvbox-dark",
+ "font": {
+ "name": "Agave Nerd Font Mono",
+ "size": 14
+ }
+ },
+ "alacritty": {
+ "name": "gruvbox_dark",
+ "font": {
+ "name": "Lekton Nerd Font Mono",
+ "size": 14
+ }
+ },
+ "zed": {
+ "font": {
+ "name": "Agave Nerd Font Mono",
+ "size": 14
+ },
+ "light_theme": "Gruvbox Light Soft",
+ "dark_theme": "Gruvbox Dark Soft"
+ }
+ },
"ssh": {
"pgp_derived_pub_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDRHu3h9mDjQyFbojcxGKW0hPUDfgUmb2WCzd4Dv2qISM3GGt9LjD8o0IbWRNaTf5UyId5lu7wNHtygs5ZDfUVnlfxrI1CmoExuqkYFjy+R9Cu0x1J2w7+MrKPBd5akLCuKTTnXbyv79T0tLb07rCpGHojW8HH6wdDtg0siVqsPqZVTjg7WGbBYqiqlA5p8s+V9xN1q8lTOZrRI0PdgoU8W+1oIr9OHSG1ZeUBQx60izTEwMnWBxY2aA8SQolIVvsJCcMMc/EAnaz/rdJ5IkeqXGslIhUI7WCPHnPWN8CSdwMOLi5BNaOAK7Y2FkfKTUlO7I52BL87Cl3YpMxR0mTDrfSJTSp0B3ZAbUIXDA7biSh04YLwGQVI799vcyJf355A60btPaiuiBgI0am3h0WxnOACg7K6eV023EiUQ24UjlQ8pufHcJ1oDW8v6LHlp/atCWOl9KQIun9UUg8DD8/BLPprc0wzAV6Nco0ZIedouxZuUhduYYvUrLJ+ICpaZg6oPGitVJPIgyyI+WTfjRN4WTj/Z3Yhuj0RqF8b5ea4FNWuJtfF724t7SVnZsYlZGSCqL8gaEzbIATVe3THn5VwbK+S4ELD/9W6MOd6aZcTOK2yP3jlwjcjnW8sLuX+2qNwtSVVa4o5VsRZU40Da+3flzoBsyUwSE3H2PsFPH29lIQ== lizzy@yubikey"
},
diff --git a/dots/alacritty/.config/alacritty/alacritty.toml b/dots/alacritty/.config/alacritty/alacritty.toml
index f742d05..cfb90fe 100644
--- a/dots/alacritty/.config/alacritty/alacritty.toml
+++ b/dots/alacritty/.config/alacritty/alacritty.toml
@@ -2,25 +2,10 @@
style = "Block"
unfocused_hollow = false
-[font]
-size = 14.0
-
[font.glyph_offset]
x = 0
y = 0
-[font.bold]
-family = "Lekton Nerd Font Mono"
-style = "Bold"
-
-[font.italic]
-family = "Lekton Nerd Font Mono"
-style = "Italic"
-
-[font.normal]
-family = "Lekton Nerd Font Mono"
-style = "Regular"
-
[font.offset]
x = 0
y = 1
@@ -37,8 +22,8 @@ x = 12
y = 4
[env]
-TERM = "alacritty-direct"
+TERM = "xterm-256color"
[general]
-import = ["~/.theme/alacritty.toml"]
+import = ["~/.config/theme/alacritty.toml"]
diff --git a/dots/alacritty/.config/alacritty/theme.toml b/dots/alacritty/.config/alacritty/theme.toml
deleted file mode 100644
index b8631a4..0000000
--- a/dots/alacritty/.config/alacritty/theme.toml
+++ /dev/null
@@ -1,4 +0,0 @@
-[general]
-import = [
- "/tmp/alacritty_theme.toml"
-]
diff --git a/dots/emacs/.config/emacs.d/early-init.el b/dots/emacs/.config/emacs.d/early-init.el
new file mode 100644
index 0000000..7bb24d4
--- /dev/null
+++ b/dots/emacs/.config/emacs.d/early-init.el
@@ -0,0 +1,5 @@
+;;-- <early-init> --
+(add-to-list 'default-frame-alist '(undecorated-round . t))
+(setq package-enable-at-startup t)
+;;-- </early-init> --
+
diff --git a/dots/emacs/.config/emacs.d/empressomacs.org.j2 b/dots/emacs/.config/emacs.d/empressomacs.org.j2
new file mode 100644
index 0000000..8aa8be5
--- /dev/null
+++ b/dots/emacs/.config/emacs.d/empressomacs.org.j2
@@ -0,0 +1,264 @@
+#+TITLE: emprespresso's settings
+#+AUTHOR: emprespresso
+#+STARTUP: fold
+
+* melpa
+#+BEGIN_SRC emacs-lisp
+ (require 'package)
+ (add-to-list 'package-archives
+ '("melpa" . "https://melpa.org/packages/") t)
+#+END_SRC
+* macos hacks that have to be run before most stuff.
+** image types.
+#+BEGIN_SRC emacs-lisp
+ (setq image-types '(svg png gif tiff jpeg xpm xbm pbg))
+#+END_SRC
+* yeah, be evil. whatcha gonna do about it?? huh?? >:P
+#+BEGIN_SRC emacs-lisp
+ (use-package evil
+ :init
+ (setq evil-want-integration t)
+ (setq evil-want-keybinding nil)
+ (setq evil-want-C-u-scroll t)
+ (setq evil-want-C-i-jump nil)
+ (setq evil-shift-width {{ editorconfig.tab_width }})
+ (setq evil-cross-lines t)
+ (setq evil-respect-visual-line-mode t)
+ (setq evil-vsplit-window-below t)
+ (setq evil-split-window-below t)
+ (setq evil-undo-system 'undo-redo)
+ :config
+ (evil-mode 1)
+ (define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
+
+ (evil-global-set-key 'motion "j" 'evil-next-visual-line)
+ (evil-global-set-key 'motion "k" 'evil-previous-visual-line)
+
+ (add-hook 'evil-visual-activate-hook
+ #'(lambda ()
+ (global-hl-line-mode 0)))
+
+ (add-hook 'evil-visual-deactivate-hook
+ #'(lambda ()
+ (global-hl-line-mode 1)))
+
+ (setq evil-want-fine-undo t)
+ (evil-set-initial-state 'messages-buffer-mode 'normal))
+#+END_SRC
+
+* misc. emacs stuff
+** files and autosaves
+#+BEGIN_SRC emacs-lisp
+ (setq auto-save-default nil
+ make-backup-files nil
+ create-lockfiles nil)
+ (global-auto-revert-mode t) ;; Change files on disk as they are updated
+#+END_SRC
+** env.PATH
+#+BEGIN_SRC emacs-lisp
+ (use-package exec-path-from-shell
+ :ensure t
+ :init
+ (when (memq window-system '(mac ns x))
+ (exec-path-from-shell-initialize)))
+#+END_SRC
+** case-region
+#+BEGIN_SRC emacs-lisp
+ (put 'downcase-region 'disabled nil)
+ (put 'upcase-region 'disabled nil)
+#+END_SRC
+** silence, bell
+#+BEGIN_SRC emacs-lisp
+ (setq ring-bell-function 'ignore)
+#+END_SRC
+* appearance
+** global
+#+BEGIN_SRC emacs-lisp
+ ;; > expert users often turn off the menu bar
+ ;; > https://www.gnu.org/software/emacs/manual/html_node/emacs/Menu-Bars.html
+ ;; we're experts, right?? (*^.^*)
+ (menu-bar-mode -1)
+
+ ;; don't show startup screen, go straight to scratch
+ (setq inhibit-startup-screen t)
+#+END_SRC
+** gui
+*** clutter
+#+BEGIN_SRC emacs-lisp
+ ;; don't show clutter
+ (tool-bar-mode -1)
+
+ ;; make line-wrap arrows basically invisible by setting the fringe area
+ ;; dimensions to 1
+ (set-fringe-mode '(1 . 1))
+
+ ;; disable scroll bars
+ (scroll-bar-mode nil)
+ (horizontal-scroll-bar-mode nil)
+#+END_SRC
+*** line - related
+#+BEGIN_SRC emacs-lisp
+ ;; move by whole line units, not visually
+ (setq line-move-visual nil)
+
+ ;; make comfy
+ (setq line-spacing 0.24)
+
+ ;; highlight current line
+ (global-hl-line-mode)
+
+ ;; fixes an "issue", where the frame doesn't use the entire space available given
+ ;; by the window manager since the frame will resize only by factors of the line
+ ;; height by default.
+ ;; especially noticeable when tiling ヽ(ー_ー )ノ
+ (setq frame-resize-pixelwise t)
+#+END_SRC
+*** icons
+must run ~(all-the-icons-install-fonts)~ and ~(nerd-fonts-install-fonts)~
+#+BEGIN_SRC emacs-lisp
+ (use-package all-the-icons
+ :ensure t)
+ (use-package nerd-icons
+ :ensure t)
+#+END_SRC
+*** modeline
+#+BEGIN_SRC emacs-lisp
+ (use-package doom-modeline
+ :ensure t
+ :config
+ (doom-modeline-mode 1))
+#+END_SRC
+*** themes
+#+BEGIN_SRC emacs-lisp
+ (use-package doom-themes
+ :ensure t
+ :config
+ (setq doom-themes-enable-bold t ; enable bold globally
+ doom-themes-enable-italic t) ; enable italics globally
+
+ ;; flash mode-line on errors
+ (doom-themes-visual-bell-config)
+
+ (doom-themes-neotree-config)
+
+ ;; corrects (and improves) org-mode's native fontification.
+ (doom-themes-org-config))
+#+END_SRC
+*** eager loading of theme
+#+BEGIN_SRC emacs-lisp
+ (require 'filenotify)
+
+ (setq *theme-file* "~/.config/theme/emacs.el")
+ (file-notify-add-watch *theme-file* '(change)
+ #'(lambda (event) (load-file *theme-file*)))
+#+END_SRC
+
+* neotree
+#+BEGIN_SRC emacs-lisp
+ (use-package neotree
+ :ensure t
+ :bind ("C-c j" . 'neotree-toggle)
+ :init
+ ;; slow rendering
+ (setq inhibit-compacting-font-caches t)
+
+ ;; set icons theme
+ (setq neo-theme (if (display-graphic-p) 'icons 'arrow))
+ (setq neo-window-width 35)
+
+ ;; every time when the neotree window is opened, let it find current file
+ ;; and jump to node
+ (setq neo-smart-open t)
+
+ ;; when running ‘projectile-switch-project’ (C-c p p), ‘neotree’
+ ;; will change root automatically
+ (setq projectile-switch-project-action 'neotree-projectile-action)
+
+ ;; show hidden files
+ (setq-default neo-show-hidden-files t))
+#+END_SRC
+* org mode
+** misc vars
+#+BEGIN_SRC emacs-lisp
+ (setq org-startup-indented t
+ org-html-postamble nil
+ org-html-preamble t
+ org-src-tab-acts-natively t)
+#+END_SRC
+** roam
+#+BEGIN_SRC emacs-lisp
+ (use-package org-roam
+ :straight t)
+#+END_SRC
+** babel
+#+BEGIN_SRC emacs-lisp
+ (org-babel-do-load-languages
+ 'org-babel-load-languages
+ '((lisp . t)
+ (emacs-lisp . t)
+ (python . t)))
+#+END_SRC
+** org-bullets
+#+BEGIN_SRC emacs-lisp
+ (use-package org-bullets
+ :ensure t
+ :init
+ (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
+#+END_SRC
+** org-appear
+#+BEGIN_SRC emacs-lisp
+ (use-package org-appear
+ :ensure t
+ :init
+ (add-hook 'org-mode-hook 'org-appear-mode))
+#+END_SRC
+** presentations
+#+BEGIN_SRC emacs-lisp
+ (use-package org-present
+ :ensure t
+ :straight '(org-present
+ :type git
+ :host github
+ :repo "rlister/org-present"))
+#+END_SRC
+* major modes
+** markdown
+#+BEGIN_SRC emacs-lisp
+(use-package markdown-mode
+ :ensure t
+ :mode ("README\\.md\\'" . gfm-mode)
+ :init (setq markdown-command "multimarkdown")
+ :bind (:map markdown-mode-map
+ ("C-c C-e" . markdown-do)))
+#+END_SRC
+* dev stuff
+** completion
+#+BEGIN_SRC emacs-lisp
+ ;; > yasnippet is a template system for emacs.
+ ;; > it allows you to type an abbreviation and automatically expand it into
+ ;; function templates.
+ ;; https://github.com/joaotavora/yasnippet/blob/master/README.mdown
+ (use-package yasnippet
+ :ensure t
+ :init (yas-global-mode 1))
+#+END_SRC
+** lsp
+#+BEGIN_SRC emacs-lisp
+ ;; pip3 install epc orjson sexpdata six setuptools \
+ ;; paramiko rapidfuzz watchdog packaging
+ (use-package lsp-bridge
+ :straight
+ '(lsp-bridge :type git :host github
+ :repo "manateelazycat/lsp-bridge"
+ :files (:defaults
+ "*.el" "*.py" "acm" "core" "langserver"
+ "multiserver" "resources")
+ :build (:not compile))
+ :init (global-lsp-bridge-mode))
+#+END_SRC
+** format
+#+BEGIN_SRC emacs-lisp
+ (use-package format-all
+ :ensure t
+ :bind (("C-c C-f" . format-all-region)))
+#+END_SRC
diff --git a/dots/emacs/.config/emacs.d/init.el b/dots/emacs/.config/emacs.d/init.el
new file mode 100644
index 0000000..bff8177
--- /dev/null
+++ b/dots/emacs/.config/emacs.d/init.el
@@ -0,0 +1,51 @@
+;;-- <helpers> --
+(defun find-user-file (file-name)
+ (expand-file-name file-name user-emacs-directory))
+
+(defmacro in-remote-buffer (url &rest body)
+ "evals in a buffer whose contents are raw retrieved from (url)"
+ `(with-current-buffer (url-retrieve-synchronously
+ ,url 'silent 'inhibit-cookies)
+ ,body))
+
+(defun eval-remote (url)
+ "essentially `curl (url) | sh` (ノ´ヮ`)ノ*"
+ (in-remote-buffer url
+ (eval-buffer)))
+;;-- </helpers> --
+
+;;-- <straight.el> --
+;;(( what abt gay.el („• ֊ •„) hehe ))
+
+;; bootstrap, installing if it doesn't yet exist.
+(defvar *straight-version* 5)
+(defvar *straight-bootstrap-file*
+ (find-user-file "straight/repos/straight.el/bootstrap.el"))
+(defvar *straight-src*
+ "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el")
+(defun bootstrap-straight (&optional version file src)
+ "bootstrap straight (version), eval'ing (file) or falling back to (src)"
+ (or version (setq version *straight-version*))
+ (or file (setq file *straight-bootstrap-file*))
+ (or src (setq src *stragith-src*))
+
+ (if file-exists-p file)
+ (load file nil 'nomessage)
+ (eval-remote src))
+(bootstrap-staight)
+
+;; install it and use it by default!
+(straight-use-package 'use-package)
+(use-package straight
+ :custom
+ (straight-use-package-by-default t))
+;;-- </straight.el> --
+
+;;-- <org_init> --
+(use-package org
+ :straight (:type built-in))
+
+(defvar *settings-org* "empressomacs.org")
+(org-babel-load-file (find-user-file *settings-org*))
+;;-- </org_init> --
+
diff --git a/dots/home/Documents/kaomoji.json b/dots/home/Documents/kaomoji.json
new file mode 100644
index 0000000..904e732
--- /dev/null
+++ b/dots/home/Documents/kaomoji.json
@@ -0,0 +1,880 @@
+{
+ "categories": [
+ "anger",
+ "apologizing",
+ "bear",
+ "bird",
+ "cat",
+ "confusion",
+ "dissatisfaction",
+ "dog",
+ "doubt",
+ "embarassment",
+ "enemies",
+ "faces",
+ "fear",
+ "fish",
+ "food",
+ "friends",
+ "games",
+ "greeting",
+ "hiding",
+ "hugging",
+ "indifference",
+ "joy",
+ "love",
+ "magic",
+ "music",
+ "nosebleeding",
+ "pain",
+ "pig",
+ "rabbit",
+ "running",
+ "sadness",
+ "sleeping",
+ "special",
+ "spider",
+ "surprise",
+ "sympathy",
+ "weapons",
+ "winking",
+ "writing"
+ ],
+ "kaomoji": {
+ "anger": [
+ "(#`Д´)",
+ "(`皿´#)",
+ "( ` ω ´ )",
+ "ヽ( `д´*)ノ",
+ "(・`ω´・)",
+ "(`ー´)",
+ "ヽ(`⌒´メ)ノ",
+ "凸(`△´#)",
+ "( `ε´ )",
+ "ψ( ` ∇ ´ )ψ",
+ "ヾ(`ヘ´)ノ゙",
+ "ヽ(‵﹏´)ノ",
+ "(メ` ロ ´)",
+ "(╬`益´)",
+ "┌∩┐(◣_◢)┌∩┐",
+ "凸( ` ロ ´ )凸",
+ "Σ(▼□▼メ)",
+ "(°ㅂ°╬)",
+ "ψ(▼へ▼メ)~→",
+ "(ノ°益°)ノ",
+ "(҂ `з´ )",
+ "(‡▼益▼)",
+ "(҂` ロ ´)凸",
+ "((╬◣﹏◢))",
+ "٩(╬ʘ益ʘ╬)۶",
+ "(╬ Ò﹏Ó)",
+ "\\٩(๑`^´๑)۶//",
+ "(凸ಠ益ಠ)凸",
+ "↑_(ΦwΦ)Ψ",
+ "←~(Ψ▼ー▼)∈",
+ "୧((#Φ益Φ#))୨",
+ "٩(ఠ益ఠ)۶",
+ "(ノಥ益ಥ)ノ"
+ ],
+ "apologizing": [
+ "m(_ _)m",
+ "(シ_ _)シ",
+ "m(. .)m",
+ "<(_ _)>",
+ "人(_ _*)",
+ "(*_ _)人",
+ "m(_ _;m)",
+ "(m;_ _)m",
+ "(シ. .)シ"
+ ],
+ "bear": [
+ "( ´(エ)ˋ )",
+ "(* ̄(エ) ̄*)",
+ "ヽ( ̄(エ) ̄)ノ",
+ "(/ ̄(エ) ̄)/",
+ "( ̄(エ) ̄)",
+ "ヽ( ˋ(エ)´ )ノ",
+ "⊂( ̄(エ) ̄)⊃",
+ "(/(エ)\)",
+ "⊂(´(ェ)ˋ)⊃",
+ "(/-(エ)-\)",
+ "(/°(エ)°)/",
+ "ʕ ᵔᴥᵔ ʔ",
+ "ʕ •ᴥ• ʔ",
+ "ʕ •̀ ω •́ ʔ",
+ "ʕ •̀ o •́ ʔ",
+ "ʕಠᴥಠʔ"
+ ],
+ "bird": [
+ "( ̄Θ ̄)",
+ "(`・Θ・´)",
+ "( ˋ Θ ´ )",
+ "(◉Θ◉)",
+ "\( ˋ Θ ´ )/",
+ "(・θ・)",
+ "(・Θ・)",
+ "ヾ( ̄◇ ̄)ノ〃",
+ "(・Θ・)"
+ ],
+ "cat": [
+ "(=^・ω・^=)",
+ "(=^・ェ・^=)",
+ "(=①ω①=)",
+ "( =ω=)..nyaa",
+ "(= ; ェ ; =)",
+ "(=`ω´=)",
+ "(=^‥^=)",
+ "( =ノωヽ=)",
+ "(=⌒‿‿⌒=)",
+ "(=^ ◡ ^=)",
+ "(=^-ω-^=)",
+ "ヾ(=`ω´=)ノ”",
+ "(^• ω •^)",
+ "(/ =ω=)/",
+ "ฅ(•ㅅ•❀)ฅ",
+ "ฅ(• ɪ •)ฅ",
+ "ଲ(ⓛ ω ⓛ)ଲ",
+ "(^=◕ᴥ◕=^)",
+ "( =ω= )",
+ "(^˵◕ω◕˵^)",
+ "(^◔ᴥ◔^)",
+ "(^◕ᴥ◕^)",
+ "ต(=ω=)ต",
+ "( Φ ω Φ )",
+ "ฅ(^◕ᴥ◕^)ฅ"
+ ],
+ "confusion": [
+ "( ̄ω ̄;)",
+ "σ( ̄、 ̄〃)",
+ "( ̄~ ̄;)",
+ "(-_-;)・・・",
+ "┐('~`;)┌",
+ "(・_・ヾ",
+ "(〃 ̄ω ̄〃ゞ",
+ "┐( ̄ヘ ̄;)┌",
+ "(・_・;)",
+ "( ̄_ ̄)・・・",
+ "╮( ̄ω ̄;)╭",
+ "(¯ . ¯;)",
+ "(@_@)",
+ "(・・;)ゞ",
+ "Σ( ̄。 ̄ノ)",
+ "(・・ ) ?",
+ "(•ิ_•ิ)?",
+ "(◎ ◎)ゞ",
+ "(ーー;)",
+ "ლ(ಠ_ಠ ლ)",
+ "ლ(¯ロ¯\"ლ)",
+ "(¯ . ¯٥)",
+ "(¯ ¯٥)"
+ ],
+ "dissatisfaction": [
+ "(#><)",
+ "(;⌣̀_⌣́)",
+ "☆o(><;)○",
+ "( ̄  ̄|||)",
+ "(; ̄Д ̄)",
+ "( ̄□ ̄」)",
+ "(# ̄0 ̄)",
+ "(# ̄ω ̄)",
+ "(¬_¬;)",
+ "(>m<)",
+ "(」°ロ°)」",
+ "(〃>_<;〃)",
+ "(^^#)",
+ "(︶︹︺)",
+ "( ̄ヘ ̄)",
+ "<( ̄ ﹌  ̄)>",
+ "( ̄︿ ̄)",
+ "(>﹏<)",
+ "(--_--)",
+ "凸( ̄ヘ ̄)",
+ "ヾ(  ̄O ̄)ツ",
+ "(⇀‸↼‶)",
+ "o(>< )o",
+ "(」><)」",
+ "(ᗒᗣᗕ)՞",
+ "(눈_눈)"
+ ],
+ "dog": [
+ "∪^ェ^∪",
+ "∪・ω・∪",
+ "∪ ̄- ̄∪",
+ "∪・ェ・∪",
+ "U^皿^U",
+ "UTェTU",
+ "U^ェ^U",
+ "V●ᴥ●V",
+ "U・ᴥ・U"
+ ],
+ "doubt": [
+ "(¬_¬)",
+ "(→_→)",
+ "(¬ ¬)",
+ "(¬‿¬ )",
+ "(¬_¬ )",
+ "(←_←)",
+ "(¬ ¬ )",
+ "(¬‿¬ )",
+ "(↼_↼)",
+ "(⇀_⇀)",
+ "(ᓀ ᓀ)"
+ ],
+ "embarassment": [
+ "(⌒_⌒;)",
+ "(o^ ^o)",
+ "(*/ω\)",
+ "(*/。\)",
+ "(*/_\)",
+ "(*ノωノ)",
+ "(o-_-o)",
+ "(*μ_μ)",
+ "( ◡‿◡ *)",
+ "(ᵔ.ᵔ)",
+ "(*ノ∀`*)",
+ "(//▽//)",
+ "(//ω//)",
+ "(ノ*°▽°*)",
+ "(*^.^*)",
+ "(*ノ▽ノ)",
+ "( ̄▽ ̄*)ゞ",
+ "(⁄ ⁄•⁄ω⁄•⁄ ⁄)",
+ "(*/▽\*)",
+ "(⁄ ⁄>⁄ ▽ ⁄<⁄ ⁄)",
+ "(„ಡωಡ„)",
+ "(ง ื▿ ื)ว",
+ "( 〃▽〃)",
+ "(/▿\ )",
+ "(/// ̄  ̄///)"
+ ],
+ "enemies": [
+ "ヽ( ・∀・)ノ_θ彡☆Σ(ノ `Д´)ノ",
+ "(*´∇`)┌θ☆(ノ>_<)ノ",
+ "(  ̄ω ̄)ノ゙⌒☆ミ(o _ _)o",
+ "(*`0´)θ☆(メ°皿°)ノ",
+ "(o¬‿¬o )...☆ミ(*x_x)",
+ "(╬ ̄皿 ̄)=○#( ̄#)3 ̄)",
+ "(; -_-)――――――C<―_-)",
+ "<(  ̄︿ ̄)︵θ︵θ︵☆(>口<-)",
+ "( ̄ε(# ̄)☆╰╮o( ̄▽ ̄///)",
+ "ヽ(>_<ヽ) ―⊂|=0ヘ(^‿^ )",
+ "ヘ(>_<ヘ) ¬o( ̄‿ ̄メ)",
+ ",,(((  ̄□)_/ \_(○ ̄ ))),,",
+ "(҂` ロ ´)︻デ═一 \(º □ º l|l)/",
+ "(╯°Д°)╯︵ /(.□ . \)",
+ "(¬_¬'')ԅ( ̄ε ̄ԅ)",
+ "/( .□.)\ ︵╰(°益°)╯︵ /(.□. /)",
+ "(ノ-.-)ノ….((((((((((((●~* ( >_<)",
+ "!!(メ ̄  ̄)_θ☆°0°)/",
+ "(`⌒*)O-(`⌒´Q)",
+ "(((ง’ω’)و三 ง’ω’)ڡ≡ ☆⌒ミ((x_x)",
+ "(งಠ_ಠ)ง σ( •̀ ω •́ σ)",
+ "(っ•﹏•)っ ✴==≡눈٩(`皿´҂)ง",
+ "(「• ω •)「 (⌒ω⌒`)",
+ "( °ᴗ°)~ð (/❛o❛)"
+ ],
+ "faces": [
+ "( ͡° ͜ʖ ͡°)",
+ "( ͡° ʖ̯ ͡°)",
+ "( ͠° ͟ʖ ͡°)",
+ "( ͡ᵔ ͜ʖ ͡ᵔ)",
+ "( . •́ _ʖ •̀ .)",
+ "( ఠ ͟ʖ ఠ)",
+ "( ͡ಠ ʖ̯ ͡ಠ)",
+ "( ಠ ʖ̯ ಠ)",
+ "( ಠ ͜ʖ ಠ)",
+ "( ಥ ʖ̯ ಥ)",
+ "( ͡• ͜ʖ ͡• )",
+ "( ・ิ ͜ʖ ・ิ)",
+ "( ͡ ͜ʖ ͡ )",
+ "(≖ ͜ʖ≖)",
+ "(ʘ ʖ̯ ʘ)",
+ "(ʘ ͟ʖ ʘ)",
+ "(ʘ ͜ʖ ʘ)",
+ "(;´༎ຶٹ༎ຶ`)"
+ ],
+ "fear": [
+ "(ノωヽ)",
+ "(/。\)",
+ "(ノ_ヽ)",
+ "..・ヾ(。><)シ",
+ "(″ロ゛)",
+ "(;;;*_*)",
+ "(・人・)",
+ "\(〇_o)/",
+ "(/ω\)",
+ "(/_\)",
+ "〜(><)〜",
+ "Σ(°△°|||)︴",
+ "(((><)))",
+ "{{ (>_<) }}",
+ "\(º □ º l|l)/",
+ "〣( ºΔº )〣",
+ "▓▒░(°◡°)░▒▓"
+ ],
+ "fish": [
+ "(°)#))<<",
+ "<・ )))><<",
+ "ζ°)))彡",
+ ">°))))彡",
+ "(°))<<",
+ ">^)))<~~",
+ "≧( ° ° )≦"
+ ],
+ "food": [
+ "(っ˘ڡ˘ς)",
+ "( o˘◡˘o) ┌iii┐",
+ "( ’ω’)旦~~",
+ "( ˘▽˘)っ♨",
+ "♨o(>_<)o♨",
+ "( ・ω・)o-{{[〃]}}",
+ "( ・ω・)⊃-[二二]",
+ "( ・・)つ―{}@{}@{}-",
+ "( ・・)つ-●●●",
+ "(*´ー`)旦 旦( ̄ω ̄*)",
+ "(*´з`)口゚。゚口(・∀・ )",
+ "( o^ ^o)且 且(´ω`*)",
+ "(  ̄▽ ̄)[] [](≧▽≦ )",
+ "( *^^)o∀*∀o(^^* )",
+ "( ^^)_旦~~  ~~U_(^^ )",
+ "(* ̄▽ ̄)旦 且(´∀`*)",
+ "-●●●-c(・・ )",
+ "( ・・)つ―●○◎-"
+ ],
+ "friends": [
+ "ヾ(・ω・)メ(・ω・)ノ",
+ "ヽ(∀° )人( °∀)ノ",
+ "ヽ( ⌒o⌒)人(⌒-⌒ )ノ",
+ "(*^ω^)八(⌒▽⌒)八(-‿‿- )ヽ",
+ "\(^∀^)メ(^∀^)ノ",
+ "ヾ( ̄ー ̄(≧ω≦*)ゝ",
+ "ヽ( ⌒ω⌒)人(=^‥^= )ノ",
+ "ヽ(≧◡≦)八(o^ ^o)ノ",
+ "(*・∀・)爻(・∀・*)",
+ "。*:☆(・ω・人・ω・)。:゜☆。",
+ "o(^^o)(o^^o)(o^^o)(o^^)o",
+ "((( ̄( ̄( ̄▽ ̄) ̄) ̄)))",
+ "(°(°ω(°ω°(☆ω☆)°ω°)ω°)°)",
+ "ヾ(・ω・`)ノヾ(´・ω・)ノ゛",
+ "Ψ( `∀)(∀´ )Ψ",
+ "(っ˘▽˘)(˘▽˘)˘▽˘ς)",
+ "(((*°▽°*)八(*°▽°*)))",
+ "☆ヾ(*´・∀・)ノヾ(・∀・`*)ノ☆",
+ "(*^ω^)人(^ω^*)",
+ "٩(๑・ิᴗ・ิ)۶٩(・ิᴗ・ิ๑)۶",
+ "(☞°ヮ°)☞ ☜(°ヮ°☜)",
+ "\(▽ ̄ ( ̄▽ ̄) /  ̄▽)/",
+ "( ˙▿˙ )/( ˙▿˙ )/"
+ ],
+ "games": [
+ "( ^^)p_____|_o____q(^^ )",
+ "(/o^)/ °⊥ \(^o\)",
+ "!(;゚o゚)o/ ̄ ̄ ̄ ̄ ̄ ̄ ̄~ >゚))))彡",
+ "ヽ(^o^)ρ┳┻┳°σ(^o^)ノ",
+ "(/_^)/  ● \(^_\)",
+ "( (≡|≡))_/ \_((≡|≡) )",
+ "( ノ-_-)ノ゙_□ VS □_ヾ(^-^ヽ)",
+ "ヽ(;^ ^)ノ゙ ......___〇",
+ "(=O*_*)=O Q(*_*Q)",
+ "Ю ○三 \( ̄^ ̄\)"
+ ],
+ "greeting": [
+ "(*・ω・)ノ",
+ "( ̄▽ ̄)ノ",
+ "(°▽°)/",
+ "( ´ ∀ ` )ノ",
+ "(^-^*)/",
+ "(@´ー`)ノ゙",
+ "(´• ω •`)ノ",
+ "( ° ∀ ° )ノ゙",
+ "ヾ(*'▽'*)",
+ "\(⌒▽⌒)",
+ "ヾ(☆▽☆)",
+ "( ´ ▽ ` )ノ",
+ "(^0^)ノ",
+ "~ヾ(・ω・)",
+ "(・∀・)ノ",
+ "ヾ(・ω・*)",
+ "(*°ー°)ノ",
+ "(・_・)ノ",
+ "(o´ω`o)ノ",
+ "( ´ ▽ ` )/",
+ "( ̄ω ̄)/",
+ "( ´ ω ` )ノ゙",
+ "(⌒ω⌒)ノ",
+ "(o^ ^o)/",
+ "(≧▽≦)/",
+ "(✧∀✧)/",
+ "(o´▽`o)ノ",
+ "( ̄▽ ̄)/"
+ ],
+ "hiding": [
+ "|・ω・)",
+ "ヘ(・_|",
+ "|ω・)ノ",
+ "ヾ(・|",
+ "|д・)",
+ "|_ ̄))",
+ "|▽//)",
+ "┬┴┬┴┤(・_├┬┴┬┴",
+ "┬┴┬┴┤・ω・)ノ",
+ "┬┴┬┴┤( ͡° ͜ʖ├┬┴┬┴",
+ "┬┴┬┴┤(・_├┬┴┬┴",
+ "|_・)",
+ "|・д・)ノ",
+ "|ʘ‿ʘ)╯"
+ ],
+ "hugging": [
+ "(づ ̄ ³ ̄)づ",
+ "(つ≧▽≦)つ",
+ "(つ✧ω✧)つ",
+ "(づ ◕‿◕ )づ",
+ "(⊃。•́‿•̀。)⊃",
+ "(つ . •́ _ʖ •̀ .)つ",
+ "(っಠ‿ಠ)っ",
+ "(づ◡﹏◡)づ",
+ "⊂(´• ω •`⊂)",
+ "⊂(・ω・*⊂)",
+ "⊂( ̄▽ ̄)⊃",
+ "⊂( ´ ▽ ` )⊃",
+ "( ~*-*)~",
+ "(。•̀ᴗ-)✧"
+ ],
+ "indifference": [
+ "ヽ(ー_ー )ノ",
+ "ヽ(´ー` )┌",
+ "┐(‘~` )┌",
+ "ヽ(  ̄д ̄)ノ",
+ "┐( ̄ヘ ̄)┌",
+ "ヽ( ̄~ ̄ )ノ",
+ "╮( ̄_ ̄)╭",
+ "ヽ(ˇヘˇ)ノ",
+ "┐( ̄~ ̄)┌",
+ "┐(︶▽︶)┌",
+ "╮( ̄~ ̄)╭",
+ "¯_(ツ)_/¯",
+ "┐( ´ д ` )┌",
+ "╮(︶︿︶)╭",
+ "┐( ̄∀ ̄)┌",
+ "┐( ˘ 、 ˘ )┌",
+ "╮(︶▽︶)╭",
+ "╮( ˘ 、 ˘ )╭",
+ "┐( ˘_˘ )┌",
+ "╮( ˘_˘ )╭",
+ "┐( ̄ヮ ̄)┌",
+ "ᕕ( ᐛ )ᕗ",
+ "┐(シ)┌"
+ ],
+ "joy": [
+ "(* ^ ω ^)",
+ "(´ ∀ ` *)",
+ "٩(◕‿◕。)۶",
+ "☆*:.。.o(≧▽≦)o.。.:*☆",
+ "(o^▽^o)",
+ "(⌒▽⌒)☆",
+ "<( ̄︶ ̄)>",
+ "。.:☆*:・'(*⌒―⌒*)))",
+ "ヽ(・∀・)ノ",
+ "(´。• ω •。`)",
+ "( ̄ω ̄)",
+ "`;:゛;`;・(°ε° )",
+ "(o・ω・o)",
+ "(@^◡^)",
+ "ヽ(*・ω・)ノ",
+ "(o_ _)ノ彡☆",
+ "(^人^)",
+ "(o´▽`o)",
+ "(*´▽`*)",
+ "。゚( ゚^∀^゚)゚。",
+ "( ´ ω ` )",
+ "(((o(*°▽°*)o)))",
+ "(≧◡≦)",
+ "(o´∀`o)",
+ "(´• ω •`)",
+ "(^▽^)",
+ "(⌒ω⌒)",
+ "∑d(°∀°d)",
+ "╰(▔∀▔)╯",
+ "(─‿‿─)",
+ "(*^‿^*)",
+ "ヽ(o^ ^o)ノ",
+ "(✯◡✯)",
+ "(◕‿◕)",
+ "(*≧ω≦*)",
+ "(☆▽☆)",
+ "(⌒‿⌒)",
+ "\(≧▽≦)/",
+ "ヽ(o^▽^o)ノ",
+ "☆ ~('▽^人)",
+ "(*°▽°*)",
+ "٩(。•́‿•̀。)۶",
+ "(✧ω✧)",
+ "ヽ(*⌒▽⌒*)ノ",
+ "(´。• ᵕ •。`)",
+ "( ´ ▽ ` )",
+ "( ̄▽ ̄)",
+ "╰(*´︶`*)╯",
+ "ヽ(>∀<☆)ノ",
+ "o(≧▽≦)o",
+ "(☆ω☆)",
+ "(っ˘ω˘ς )",
+ "\( ̄▽ ̄)/",
+ "(*¯︶¯*)",
+ "\(^▽^)/",
+ "٩(◕‿◕)۶",
+ "(o˘◡˘o)",
+ "(★ω★)/",
+ "(^ヮ^)/",
+ "(〃^▽^〃)",
+ "(╯✧▽✧)╯",
+ "o(>ω<)o",
+ "o( ❛ᴗ❛ )o",
+ "。゚(TヮT)゚。",
+ "( ‾́ ◡ ‾́ )",
+ "(ノ´ヮ`)ノ*: ・゚",
+ "(b ᵔ▽ᵔ)b",
+ "(๑˃ᴗ˂)ﻭ",
+ "(๑˘︶˘๑)",
+ "( ˙꒳​˙ )",
+ "(*꒦ິ꒳꒦ີ)",
+ "°˖✧◝(⁰▿⁰)◜✧˖°",
+ "(´・ᴗ・ ` )",
+ "(ノ◕ヮ◕)ノ*:・゚✧",
+ "(„• ֊ •„)",
+ "(.❛ ᴗ ❛.)",
+ "(⁀ᗢ⁀)",
+ "(¬‿¬ )",
+ "(¬‿¬ )",
+ "(* ̄▽ ̄)b",
+ "( ˙▿˙ )",
+ "(¯▿¯)",
+ "( ◕▿◕ )",
+ "\(٥⁀▽⁀ )/",
+ "(„• ᴗ •„)",
+ "(ᵔ◡ᵔ)",
+ "( ´ ▿ ` )"
+ ],
+ "love": [
+ "(ノ´ з `)ノ",
+ "(♡μ_μ)",
+ "(*^^*)♡",
+ "☆⌒ヽ(*'、^*)chu",
+ "(♡-_-♡)",
+ "( ̄ε ̄@)",
+ "ヽ(♡‿♡)ノ",
+ "( ´ ∀ `)ノ~ ♡",
+ "(─‿‿─)♡",
+ "(´。• ᵕ •。`) ♡",
+ "(*♡∀♡)",
+ "(。・//ε//・。)",
+ "(´ ω `♡)",
+ "♡( ◡‿◡ )",
+ "(◕‿◕)♡",
+ "(/▽\*)。o○♡",
+ "(ღ˘⌣˘ღ)",
+ "(♡°▽°♡)",
+ "♡(。- ω -)",
+ "♡ ~('▽^人)",
+ "(´• ω •`) ♡",
+ "(´ ε ` )♡",
+ "(´。• ω •。`) ♡",
+ "( ´ ▽ ` ).。o♡",
+ "╰(*´︶`*)╯♡",
+ "(*˘︶˘*).。.:*♡",
+ "(♡˙︶˙♡)",
+ "♡\( ̄▽ ̄)/♡",
+ "(≧◡≦) ♡",
+ "(⌒▽⌒)♡",
+ "(*¯ ³¯*)♡",
+ "(っ˘з(˘⌣˘ ) ♡",
+ "♡ (˘▽˘>ԅ( ˘⌣˘)",
+ "( ˘⌣˘)♡(˘⌣˘ )",
+ "(/^-^(^ ^*)/ ♡",
+ "٩(♡ε♡)۶",
+ "σ(≧ε≦σ) ♡",
+ "♡ (⇀ 3 ↼)",
+ "♡ ( ̄З ̄)",
+ "(❤ω❤)",
+ "(˘∀˘)/(μ‿μ) ❤",
+ "❤ (ɔˆз(ˆ⌣ˆc)",
+ "(´♡‿♡`)",
+ "(°◡°♡)",
+ "Σ>―(〃°ω°〃)♡→",
+ "(´,,•ω•,,)♡",
+ "(´꒳`)♡"
+ ],
+ "magic": [
+ "(ノ ˘_˘)ノ ζ|||ζ ζ|||ζ ζ|||ζ",
+ "(ノ≧∀≦)ノ ‥…━━━★",
+ "(ノ>ω<)ノ :。・:*:・゚’★,。・:*:・゚’☆",
+ "(ノ°∀°)ノ⌒・*:.。. .。.:*・゜゚・*☆",
+ "╰( ͡° ͜ʖ ͡° )つ──☆*:・゚",
+ "(# ̄□ ̄)o━∈・・━━━━☆",
+ "(⊃。•́‿•̀。)⊃━✿✿✿✿✿✿",
+ "(∩ᄑ_ᄑ)⊃━☆゚*・。*・:≡( ε:)",
+ "(/ ̄ー ̄)/~~☆’.・.・:★’.・.・:☆",
+ "(∩` ロ ´)⊃━炎炎炎炎炎"
+ ],
+ "music": [
+ "ヾ(´〇`)ノ♪♪♪",
+ "ヘ( ̄ω ̄ヘ)",
+ "(〜 ̄▽ ̄)〜",
+ "〜( ̄▽ ̄〜)",
+ "ヽ(o´∀`)ノ♪♬",
+ "(ノ≧∀≦)ノ",
+ "♪ヽ(^^ヽ)♪",
+ "♪(/_ _ )/♪",
+ "♪♬((d⌒ω⌒b))♬♪",
+ "└( ̄- ̄└))",
+ "((┘ ̄ω ̄)┘",
+ "√( ̄‥ ̄√)",
+ "└(^^)┐",
+ "┌(^^)┘",
+ "\( ̄▽ ̄)\",
+ "/( ̄▽ ̄)/",
+ "( ̄▽ ̄)/♫•*¨*•.¸¸♪",
+ "(^_^♪)",
+ "(~˘▽˘)~",
+ "~(˘▽˘~)",
+ "ヾ(⌐■_■)ノ♪",
+ "(〜 ̄△ ̄)〜",
+ "(~‾▽‾)~",
+ "~(˘▽˘)~",
+ "乁( • ω •乁)",
+ "(「• ω •)「",
+ "⁽⁽◝( • ω • )◜⁾⁾",
+ "✺◟( • ω • )◞✺",
+ "♬♫♪◖(● o ●)◗♪♫♬",
+ "( ˘ ɜ˘) ♬♪♫",
+ "♪♪♪ ヽ(ˇ∀ˇ )ゞ",
+ "(ˇ▽ˇ)ノ♪♬♫"
+ ],
+ "nosebleeding": [
+ "(* ̄ii ̄)",
+ "( ̄ハ ̄*)",
+ "( ̄ハ ̄)",
+ "(^་།^)",
+ "(^〃^)",
+ "( ̄ ¨ヽ ̄)",
+ "( ̄ ; ̄)",
+ "( ̄ ;; ̄)"
+ ],
+ "pain": [
+ "~(>_<~)",
+ "☆⌒(> _ <)",
+ "☆⌒(>。<)",
+ "(☆_@)",
+ "(×_×)",
+ "(x_x)",
+ "(×_×)⌒☆",
+ "(x_x)⌒☆",
+ "(×﹏×)",
+ "☆(#××)",
+ "(+_+)",
+ "[ ± _ ± ]",
+ "٩(× ×)۶",
+ "_:(´ཀ`」 ∠):_",
+ "(メ﹏メ)"
+ ],
+ "pig": [
+ "( ´(00)ˋ )",
+ "( ̄(ω) ̄)",
+ "ヽ( ˋ(00)´ )ノ",
+ "( ´(oo)ˋ )",
+ "\( ̄(oo) ̄)/",
+ "。゚(゚´(00)`゚)゚。",
+ "( ̄(00) ̄)",
+ "(ˆ(oo)ˆ)"
+ ],
+ "rabbit": [
+ "/(≧ x ≦)\",
+ "/(・ × ・)\",
+ "/(=´x`=)\",
+ "/(^ x ^)\",
+ "/(=・ x ・=)\",
+ "/(^ × ^)\",
+ "/(>×<)\",
+ "/(˃ᆺ˂)\"
+ ],
+ "running": [
+ "☆ミ(o*・ω・)ノ",
+ "C= C= C= C= C=┌(;・ω・)┘",
+ "─=≡Σ((( つ><)つ",
+ "ε=ε=ε=ε=┌(; ̄▽ ̄)┘",
+ "ε=ε=┌( >_<)┘",
+ "C= C= C= C=┌( `ー´)┘",
+ "ε===(っ≧ω≦)っ",
+ "ヽ( ̄д ̄;)ノ=3=3=3",
+ "。。。ミヽ(。><)ノ"
+ ],
+ "sadness": [
+ "(ノ_<。)",
+ "(-_-)",
+ "(´-ω-`)",
+ ".・゚゚・(/ω\)・゚゚・.",
+ "(μ_μ)",
+ "(ノД`)",
+ "(-ω-、)",
+ "。゜゜(´O`) ゜゜。",
+ "o(TヘTo)",
+ "( ; ω ; )",
+ "(。╯︵╰。)",
+ "。・゚゚*(>д<)*゚゚・。",
+ "( ゚,_ゝ`)",
+ "(个_个)",
+ "(╯︵╰,)",
+ "。・゚(゚><゚)゚・。",
+ "( ╥ω╥ )",
+ "(╯_╰)",
+ "(╥_╥)",
+ ".。・゚゚・(>_<)・゚゚・。.",
+ "(/ˍ・、)",
+ "(ノ_<、)",
+ "(╥﹏╥)",
+ "。゚(。ノωヽ。)゚。",
+ "(つω`。)",
+ "(。T ω T。)",
+ "(ノω・、)",
+ "・゚・(。>ω<。)・゚・",
+ "(T_T)",
+ "(>_<)",
+ "(っ˘̩╭╮˘̩)っ",
+ "。゚・ (>﹏<) ・゚。",
+ "o(〒﹏〒)o",
+ "(。•́︿•̀。)",
+ "(ಥ﹏ಥ)",
+ "(ಡ‸ಡ)"
+ ],
+ "sleeping": [
+ "[(--)]..zzZ",
+ "(-_-) zzZ",
+ "(∪。∪)。。。zzZ",
+ "(-ω-) zzZ",
+ "( ̄o ̄) zzZZzzZZ",
+ "(( _ _ ))..zzzZZ",
+ "( ̄ρ ̄)..zzZZ",
+ "(-.-)...zzz",
+ "(_ _*) Z z z"
+ ],
+ "special": [
+ "٩(ˊ〇ˋ*)و",
+ "( ̄^ ̄)ゞ",
+ "(-‸ლ)",
+ "(╯°益°)╯彡┻━┻",
+ "(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻",
+ "┬─┬ノ( º _ ºノ)",
+ "(oT-T)尸",
+ "( ͡° ͜ʖ ͡°)",
+ "[̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]",
+ "(ಠ_ಠ)",
+ "౦0o 。 (‾́。‾́ )y~~",
+ "( ̄﹃ ̄)",
+ "(x(x_(x_x(O_o)x_x)_x)x)",
+ "( ・ω・)☞",
+ "(⌐■_■)",
+ "(◕‿◕✿)",
+ "(  ̄.)o-  【 TV 】",
+ "`、ヽ`ヽ`、ヽ(ノ><)ノ `、ヽ`☂ヽ`、ヽ",
+ "‿︵‿︵‿︵‿ヽ(°□° )ノ︵‿︵‿︵‿︵",
+ "( • )( • )ԅ(≖‿≖ԅ)",
+ "( ^▽^)っ✂╰⋃╯",
+ "〜〜(/ ̄▽)/ 〜ф",
+ "ଘ(੭ˊᵕˋ)੭* ੈ✩‧₊˚",
+ "ଘ(੭ˊ꒳​ˋ)੭✧",
+ "_(:3 」∠)_",
+ "∠( ᐛ 」∠)_"
+ ],
+ "spider": [
+ "/╲/╭(ఠఠ益ఠఠ)╮/╱",
+ "/╲/╭(ರರ⌓ರರ)╮/╱",
+ "/╲/╭༼ ººل͟ºº ༽╮/╱",
+ "/╲/╭( ͡°͡° ͜ʖ ͡°͡°)╮/╱",
+ "/╲/╭[ ᴼᴼ ౪ ᴼᴼ]╮/╱",
+ "/╲/( •̀ ω •́ )/╱",
+ "/╲/╭[☉﹏☉]╮/╱"
+ ],
+ "surprise": [
+ "w(°o°)w",
+ "ヽ(°〇°)ノ",
+ "Σ(O_O)",
+ "Σ(°ロ°)",
+ "(⊙_⊙)",
+ "(o_O)",
+ "(O_O;)",
+ "(O.O)",
+ "(°ロ°) !",
+ "(o_O) !",
+ "(□_□)",
+ "Σ(□_□)",
+ "∑(O_O;)",
+ "( : ౦ ‸ ౦ : )"
+ ],
+ "sympathy": [
+ "(ノ_<。)ヾ(´ ▽ ` )",
+ "。・゚・(ノД`)ヽ( ̄ω ̄ )",
+ "ρ(- ω -、)ヾ( ̄ω ̄; )",
+ "ヽ( ̄ω ̄(。。 )ゝ",
+ "(*´ I `)ノ゚(ノД`゚)゚。",
+ "ヽ(~_~(・_・ )ゝ",
+ "(ノ_;)ヾ(´ ∀ ` )",
+ "(; ω ; )ヾ(´∀`* )",
+ "(*´ー)ノ(ノд`)",
+ "(´-ω-`( _ _ )",
+ "(っ´ω`)ノ(╥ω╥)",
+ "(o・_・)ノ”(ノ_<、)"
+ ],
+ "weapons": [
+ "( ・∀・)・・・--------☆",
+ "(/-_・)/D・・・・・------ →",
+ "(^ω^)ノ゙(((((((((●~*",
+ "( -ω-)/占~~~~~",
+ "(/・・)ノ   (( く ((へ",
+ "―⊂|=0ヘ(^^ )",
+ "○∞∞∞∞ヽ(^ー^ )",
+ "(; ・_・)――――C",
+ "(ಠ o ಠ)¤=[]:::::>",
+ "(*^^)/~~~~~~~~~~◎",
+ "¬o( ̄- ̄メ)",
+ "―(T_T)→",
+ "(((  ̄□)_/",
+ "(メ` ロ ´)︻デ═一",
+ "( ´-ω・)︻┻┳══━一",
+ "(メ ̄▽ ̄)︻┳═一",
+ "✴==≡눈٩(`皿´҂)ง",
+ "Q(`⌒´Q)"
+ ],
+ "winking": [
+ "(^_~)",
+ "( ゚o⌒)",
+ "(^_-)≡☆",
+ "(^ω~)",
+ "(>ω^)",
+ "(~人^)",
+ "(^_-)",
+ "( -_・)",
+ "(^_<)〜☆",
+ "(^人<)〜☆",
+ "☆⌒(≧▽​° )",
+ "☆⌒(ゝ。∂)",
+ "(^_<)",
+ "(^_−)☆",
+ "(・ω<)☆",
+ "(^.~)☆",
+ "(^.~)"
+ ],
+ "writing": [
+ "__φ(..)",
+ "(  ̄ー ̄)φ__",
+ "__φ(。。)",
+ "__φ(..;)",
+ "ヾ( `ー´)シφ__",
+ "__〆( ̄ー ̄ )",
+ "....φ(・∀・*)",
+ "___〆(・∀・)",
+ "( ^▽^)ψ__",
+ "....φ(︶▽︶)φ....",
+ "( . .)φ__",
+ "__φ(◎◎ヘ)"
+ ]
+ }
+}
diff --git a/dots/home/scripts/theme.sh b/dots/home/scripts/theme.sh
deleted file mode 100755
index 830f56b..0000000
--- a/dots/home/scripts/theme.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-# usage: theme.sh <theme_name>
-
-source log.sh "theme.sh"
-
-THEME="$1"
-log DEBUG "setting theme $THEME"
-
-THEME_SRC="$XDG_CONFIG_HOME/theme"
-THEME_DEST="$HOME/.theme"
-log DEBUG "src $THEME_SRC -> dest $THEME_DEST"
-
-THEME_TEMPL="{{THEME}}"
-
-find -L "$THEME_SRC/" -type f | while read source_file; do
- destination_file=`echo "$source_file" | sed "s|^$THEME_SRC|$THEME_DEST|g"`
- mkdir -p `dirname $destination_file`
- log DEBUG "src $source_file -> dest $destination_file"
- cat "$source_file" | sed "s|$THEME_TEMPL|$THEME|g" > $destination_file
-done
-
diff --git a/dots/nvim/.config/nvim/lua/plugins/lualine.lua b/dots/nvim/.config/nvim/lua/plugins/lualine.lua
deleted file mode 100644
index a5c341d..0000000
--- a/dots/nvim/.config/nvim/lua/plugins/lualine.lua
+++ /dev/null
@@ -1,34 +0,0 @@
-return {
- {
- 'nvim-lualine/lualine.nvim',
- event = 'VeryLazy',
- opts = function()
- return {
- options = {
- icons_enabled = true,
- theme = 'gruvbox',
- component_separators = { left = '', right = ''},
- section_separators = { left = '', right = ''},
- },
- sections = {
- lualine_c = {
- { 'filename', path = 1 },
- },
- lualine_y = {
- {
- require('tmux-status').tmux_windows,
- cond = require('tmux-status').show,
- padding = { left = 1, right = 1 },
- },
- }
- },
- }
- end,
- },
- {
- "christopher-francisco/tmux-status.nvim",
--- lazy = true,
- opts = {},
- },
-}
-
diff --git a/dots/nvim/.config/nvim/lua/plugins/lualine.lua.j2 b/dots/nvim/.config/nvim/lua/plugins/lualine.lua.j2
new file mode 100644
index 0000000..dd44249
--- /dev/null
+++ b/dots/nvim/.config/nvim/lua/plugins/lualine.lua.j2
@@ -0,0 +1,35 @@
+return {
+ {
+ 'nvim-lualine/lualine.nvim',
+ event = 'VeryLazy',
+ opts = function()
+ return {
+ options = {
+ icons_enabled = true,
+ theme = '{{ theme.nvim.lualine_theme }}',
+ component_separators = { left = '', right = ''},
+ section_separators = { left = '', right = ''},
+ },
+ sections = {
+ lualine_c = {
+ { 'filename', path = 1 },
+ },
+ lualine_y = {
+ {
+ require('tmux-status').tmux_windows,
+ cond = require('tmux-status').show,
+ padding = { left = 1, right = 1 },
+ },
+ }
+ },
+ }
+ end,
+ },
+
+ {
+ "christopher-francisco/tmux-status.nvim",
+ -- lazy = true,
+ opts = {},
+ },
+}
+
diff --git a/dots/nvim/.config/nvim/lua/plugins/theme.lua b/dots/nvim/.config/nvim/lua/plugins/theme.lua
deleted file mode 100644
index 7f53fa8..0000000
--- a/dots/nvim/.config/nvim/lua/plugins/theme.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-return {
- "ellisonleao/gruvbox.nvim",
- opts = {
- transparent_mode = true,
- },
- init = function()
- vim.cmd("colorscheme gruvbox")
- end
-}
diff --git a/dots/nvim/.config/nvim/lua/plugins/theme.lua.j2 b/dots/nvim/.config/nvim/lua/plugins/theme.lua.j2
new file mode 100644
index 0000000..dd47aee
--- /dev/null
+++ b/dots/nvim/.config/nvim/lua/plugins/theme.lua.j2
@@ -0,0 +1,24 @@
+return {
+ {
+ "ellisonleao/gruvbox.nvim",
+ opts = {
+ transparent_mode = true,
+ }
+ },
+
+ {
+ "f-person/auto-dark-mode.nvim",
+ opts = {
+ set_dark_mode = function()
+ vim.api.nvim_set_option_value("background", "dark", {})
+ vim.cmd("colorscheme {{ theme.nvim.dark_colorscheme }}")
+ end,
+ set_light_mode = function()
+ vim.api.nvim_set_option_value("background", "light", {})
+ vim.cmd("colorscheme {{ theme.nvim.light_colorscheme }}")
+ end,
+ update_interval = 3000,
+ fallback = "dark"
+ }
+ },
+}
diff --git a/dots/theme/.config/theme/alacritty.toml b/dots/theme/.config/theme/alacritty.toml
deleted file mode 100644
index d3c158b..0000000
--- a/dots/theme/.config/theme/alacritty.toml
+++ /dev/null
@@ -1,4 +0,0 @@
-[general]
-import = [
- "~/.config/alacritty/alacritty-theme/themes/{{THEME}}.toml"
-]
diff --git a/dots/theme/.config/theme/alacritty.toml.j2 b/dots/theme/.config/theme/alacritty.toml.j2
new file mode 100644
index 0000000..682bf05
--- /dev/null
+++ b/dots/theme/.config/theme/alacritty.toml.j2
@@ -0,0 +1,19 @@
+[font]
+size = {{ theme.alacritty.font.size }}.0
+
+[font.bold]
+family = "{{ theme.alacritty.font.name }}"
+style = "Bold"
+
+[font.italic]
+family = "{{ theme.alacritty.font.name }}"
+style = "Italic"
+
+[font.normal]
+family = "{{ theme.alacritty.font.name }}"
+style = "Regular"
+
+[general]
+import = [
+ "~/.config/alacritty/alacritty-theme/themes/{{ theme.alacritty.name }}.toml"
+]
diff --git a/dots/theme/.config/theme/emacs.el.j2 b/dots/theme/.config/theme/emacs.el.j2
new file mode 100644
index 0000000..bf24589
--- /dev/null
+++ b/dots/theme/.config/theme/emacs.el.j2
@@ -0,0 +1,4 @@
+(load-theme {{ theme.emacs.symbol }} t)
+(let ((font "{{ theme.emacs.font.name }}-{{ theme.emacs.font.size }}:style=Regular"))
+ (set-face-attribute 'default nil :font font)
+ (set-frame-font font nil t))
diff --git a/dots/tmux/.config/tmux/tmux.conf b/dots/tmux/.config/tmux/tmux.conf
index ec28d4e..7a1fab5 100644
--- a/dots/tmux/.config/tmux/tmux.conf
+++ b/dots/tmux/.config/tmux/tmux.conf
@@ -1,6 +1,10 @@
#-- <keybinds> --
set -g prefix C-s
+
set -g mode-keys vi
+bind-key -T copy-mode-vi 'v' send -X begin-selection
+bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle
+bind-key -T copy-mode-vi 'y' send -X copy-selection
unbind r
bind r source-file ~/.config/tmux/tmux.conf
diff --git a/dots/zed/.config/zed/settings.json.j2 b/dots/zed/.config/zed/settings.json.j2
index 0ec26ae..231dedf 100644
--- a/dots/zed/.config/zed/settings.json.j2
+++ b/dots/zed/.config/zed/settings.json.j2
@@ -4,10 +4,6 @@
"metrics": false,
"diagnostics": false
},
- "features": {
- "copilot": false,
- "edit_prediction_provider": "none"
- },
// -- </telemetry> --
// -- <keys> --
@@ -16,18 +12,18 @@
// -- </keys> --
// -- <text> --
- "ui_font_size": 14,
- "tab_size": 4,
- "buffer_font_size": 14,
- "ui_font_family": "Agave Nerd Font Mono",
- "buffer_font_family": "Agave Nerd Font Mono",
+ "ui_font_size": {{ theme.zed.font.size }},
+ "tab_size": {{ editorconfig.tab_width }},
+ "buffer_font_size": {{ theme.zed.font.size }},
+ "ui_font_family": "{{ theme.zed.font }}",
+ "buffer_font_family": "{{ theme.zed.font }}",
// -- </text> --
// -- <theme> --
"theme": {
"mode": "system",
- "light": "Gruvbox Light Soft",
- "dark": "Gruvbox Dark Soft"
+ "light": "{{ theme.zed.light_theme }}",
+ "dark": "{{ theme.zed.dark_theme }}"
},
// -- </theme> --
@@ -113,9 +109,15 @@
"mcp-server-sequential-thinking": true
},
// -- </extensions> --
+
// -- <ai> --
- "edit_prediction_provider": "",
+ "show_completions_on_input": false,
+ "features": {
+ "copilot": false,
+ "edit_prediction_provider": "none",
+ },
// -- </ai> --
+
{% if features.work_mode %}
// -- <amzn_ai> --
"language_models": {
diff --git a/dots/zsh/.config/zsh/osx/work.zsh b/dots/zsh/.config/zsh/osx/work.zsh
index 19b9bcd..4edd8e8 100755
--- a/dots/zsh/.config/zsh/osx/work.zsh
+++ b/dots/zsh/.config/zsh/osx/work.zsh
@@ -19,4 +19,6 @@ alias brazil-recursive-cmd='brazil-recursive-cmd-parallel'
# run java repl with class path of package! :D
alias jshell='jshell --class-path "`brazil-path build.classpath`:`brazil-path run.classpath`"'
+
+# [[ -f "${HOME}/Library/Application Support/amazon-q/shell/zshrc.post.zsh" ]] && builtin source "${HOME}/Library/Application Support/amazon-q/shell/zshrc.post.zsh"
#-- </amzn> --
diff --git a/dots/zsh/.config/zsh/setup/aliases.zsh b/dots/zsh/.config/zsh/setup/aliases.zsh
index 73b09b3..abc4135 100755
--- a/dots/zsh/.config/zsh/setup/aliases.zsh
+++ b/dots/zsh/.config/zsh/setup/aliases.zsh
@@ -25,3 +25,31 @@ alias ..="cd .."
#-- <neovim> --
alias vim="nvim"
#-- </neovim> --
+
+#-- <prev> --
+l() {
+ local cmd args=""
+ local pre=""
+ local replace_args=false
+
+ # Find the last command that is NOT 'l'
+ cmd=$(fc -ln -100 | grep -vE '^\s*l(\s|$)' | tail -n 1)
+
+ for arg in "$@"; do
+ if [[ "$replace_args" == true ]]; then
+ args+=" $arg"
+ fi
+
+ if [[ "$arg" == "su" ]]; then
+ pre="sudo "
+ fi
+
+ if [[ "$arg" == "ra" ]]; then
+ cmd=$(echo "$cmd" | awk '{print $1}')
+ replace_args=true
+ fi
+ done
+
+ eval "${pre}${cmd} ${args}"
+}
+#-- </prev> --