clean unused configuration

This commit is contained in:
2023-06-05 20:44:52 +09:00
parent 92dec73f24
commit fb0072fe43
38 changed files with 0 additions and 8286 deletions

View File

@ -1,103 +0,0 @@
--[[
#########################################
## tomorrow-night-01.conkyrc (bspwm) ##
#########################################
]]
conky.config = {
--Various settings
background = true, -- forked to background
cpu_avg_samples = 2, -- The number of samples to average for CPU monitoring.
diskio_avg_samples = 10, -- The number of samples to average for disk I/O monitoring.
double_buffer = true, -- Use the Xdbe extension? (eliminates flicker)
if_up_strictness = 'address', -- how strict if testing interface is up - up, link or address
net_avg_samples = 2, -- The number of samples to average for net data
no_buffers = true, -- Subtract (file system) buffers from used memory?
temperature_unit = 'fahrenheit', -- fahrenheit or celsius
text_buffer_size = 2048, -- size of buffer for display of content of large variables - default 256
update_interval = 1, -- update interval
imlib_cache_size = 0, -- disable image cache to get a new spotify cover per song
-- Placement (Conky on MIDDLE of THREE monitors at 1920x1080)
--alignment = 'top_left', -- top_left,top_middle,top_right,bottom_left,bottom_middle,bottom_right,
--gap_x = 3540, -- pixels between right or left border
--gap_y = 70, -- pixels between bottom or left border
-- Placement (For SINGLE monitor users!)
alignment = 'top_right', -- top_left,top_middle,top_right,bottom_left,bottom_middle,bottom_right,
gap_x = 50, -- pixels between right or left border
gap_y = 70, -- pixels between bottom or left border
-- Size
minimum_height = 200, -- minimum height of window
minimum_width = 260, -- minimum width of window
maximum_width = 260, -- maximum width of window
--Graphical
border_inner_margin = 5, -- margin between border and text
border_outer_margin = 5, -- margin between border and edge of window
border_width = 0, -- border width in pixels
default_bar_width = 260, -- default is 0 - full width
default_bar_height = 10, -- default is 6
default_gauge_height = 25, -- default is 25
default_gauge_width =40, -- default is 40
default_graph_height = 40, -- default is 25
default_graph_width = 153, -- default is 0 - full width
default_shade_color = '#000000', -- default shading colour
default_outline_color = '#000000', -- default outline colour
draw_borders = false, -- draw borders around text
draw_graph_borders = true, -- draw borders around graphs
draw_shades = false, -- draw shades
draw_outline = false, -- draw outline
stippled_borders = 0, -- dashing the border
--Textual
format_human_readable = true, -- KiB, MiB rather then number of bytes
font = 'Mononoki Nerd Font:bold:size=10', -- the default font used
font2 = 'Mononoki Nerd Font:bold:size=30', -- font for the time
font3 = 'Mononoki Nerd Font:size=14', -- font for the date
font4 = 'Mononoki Nerd Font:bold:size=9', -- font for the keybindings heading
max_text_width = 0, -- 0 will make sure line does not get broken if width too smal
max_user_text = 16384, -- max text in conky default 16384
override_utf8_locale = true, -- force UTF8 requires xft
short_units = true, -- shorten units from KiB to k
top_name_width = 21, -- width for $top name value default 15
top_name_verbose = false, -- If true, top name shows the full command line of each process - Default value is false.
uppercase = false, -- uppercase or not
use_spacer = 'none', -- adds spaces around certain objects to align - default none
use_xft = true, -- xft font - anti-aliased font
xftalpha = 1, -- alpha of the xft font - between 0-1
--Windows
own_window = true, -- create your own window to draw
own_window_argb_value = 255, -- real transparency - composite manager required 0-255
own_window_argb_visual = true, -- use ARGB - composite manager required
own_window_class = 'Conky', -- manually set the WM_CLASS name for use with xprop
own_window_colour = '#292d3e', -- set colour if own_window_transparent no
own_window_transparent = false, -- if own_window_argb_visual is true sets background opacity 0%
own_window_title = 'xmonad_conky', -- set the name manually
own_window_type = 'desktop', -- if own_window true options are: normal/override/dock/desktop/panel
own_window_hints = 'undecorated,below,above,sticky,skip_taskbar,skip_pager', -- if own_window true - just hints - own_window_type sets it
--Colors (Palenight)
color0 = '#c792ea',
color1 = '#d0d0d0',
color2 = '#82aaff',
color3 = '#ffcb6b',
};
conky.text = [[
${alignc}${color0}${font2}${time %H:%M}${font}
${voffset 6}${alignc}${color0}${font3}${time %m. %d, %Y}${font}${color}
${voffset 18}${goto 12}${color3}CPU${goto 50}$cpu%
${color2}${goto 12}${cpubar 8,254}
${voffset 5}${goto 12}$font${color1}${top name 1}$alignr$color${top cpu 1}%
${goto 12}${color1}${top name 2}$alignr$color${top cpu 2}%
${goto 12}${color1}${top name 3}$alignr$color${top cpu 3}%
${voffset 14}${goto 12}${color3}RAM${goto 50}$mem/$memmax
${color2}${goto 12}${membar 8,254}${color}
${goto 12}${voffset 5}${color1}${top_mem name 1}$alignr$color${top_mem mem_res 1}
${goto 12}${color1}${top_mem name 2}$alignr$color${top_mem mem_res 2}
${goto 12}${color1}${top_mem name 3}$alignr$color${top_mem mem_res 3}
]];

View File

@ -1,981 +0,0 @@
;;; morning-star-theme.el --- Emacs 24 theme with a dark background.
;; Copyright (C) 2016, Alexander Miller
;; Author: Alexander Miller
;;
;; Version: 0.1
;; Package-Requires: ((emacs "24"))
;; Created with emacs-theme-generator, https://github.com/mswift42/theme-creator.
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;; This file is not part of Emacs.
;;; Commentary:
;;; Code:
(deftheme morning-star)
(let ((class '((class color) (min-colors 89)))
(fg "#bbbbbb")
(bg "#2d2d31")
(bg2 "#25252a")
(grey1 "#666666")
(grey2 "#383844")
(grey3 "#343440")
(black1 "#1a1a1a")
(black2 "#000000")
(red1 "#f2777a")
(red2 "#bb6666")
(red3 "#ab3737")
(red4 "#221111")
(green1 "#66aa66")
(green2 "#559955")
(green3 "#112211")
(aqua1 "#55a9a9")
(aqua2 "#1e8f8f")
(purple1 "#997799")
(purple2 "#886688")
(yellow1 "#f0c674")
(yellow2 "#ddba1a")
(orange1 "#c98459")
(orange2 "#b87348")
(brown1 "#ccb18b")
(brown2 "#9f8b6f")
(blue1 "#5588bb")
(blue2 "#4477aa")
(blue3 "#333366"))
(custom-theme-set-faces
'morning-star
;; Syntax highlghting
`(default ((,class (:foreground ,fg :background ,bg))))
`(default-italic ((,class (:italic t))))
`(font-lock-builtin-face ((,class (:foreground ,aqua1))))
`(font-lock-comment-face ((,class (:foreground ,grey1))))
`(font-lock-comment-delimiter-face ((,class (:foreground ,grey1))))
`(font-lock-negation-char-face ((,class (:foreground ,red1))))
`(font-lock-constant-face ((,class (:foreground ,red1))))
`(font-lock-reference-face ((,class (:foreground ,red1))))
`(font-lock-preprocessor-face ((,class (:foreground ,aqua1))))
`(font-lock-doc-face ((,class (:foreground ,brown1))))
`(font-lock-function-name-face ((,class (:foreground ,blue1))))
`(font-lock-keyword-face ((,class (:foreground ,purple1 :bold t))))
`(font-lock-string-face ((,class (:foreground ,green1))))
`(font-lock-type-face ((,class (:foreground ,yellow1))))
`(font-lock-variable-name-face ((,class (:foreground ,orange1))))
`(font-lock-warning-face ((,class (:foreground ,red1 :underline (:style wave)))))
;; Mode Line
`(mode-line ((,class (:box (:color ,black2) :background ,black1 :foreground ,green1 :bold t))))
`(mode-line-highlight ((,class (:box (:color ,black2) :underline t))))
`(mode-line-emphasis ((,class (:box (:color ,black2) :bolt t))))
`(mode-line-inactive ((,class (:box (:color ,black2) :background ,bg2 :foreground ,green1))))
`(powerline-active1 ((,class (:box (:color ,black2) :background ,black1 :foreground ,purple1 :bold t))))
`(powerline-active2 ((,class (:box (:color ,black2) :background ,black1 :foreground ,black1))))
`(mode-line-buffer-id ((,class (:box (:color ,black2) :foreground ,orange1 :bold t))))
`(powerline-inactive1 ((,class (:box (:color ,black2) :background ,bg2 :foreground ,purple1))))
`(powerline-inactive2 ((,class (:box (:color ,black2) :background ,bg2 :foreground ,purple1))))
`(spaceline-evil-normal ((,class (:box (:color ,black2) :background ,black1 :foreground ,red3))))
`(spaceline-evil-insert ((,class (:box (:color ,black2) :background ,black1 :foreground ,green1))))
`(spaceline-evil-visual ((,class (:box (:color ,black2) :background ,black1 :foreground ,purple1))))
`(spaceline-evil-emacs ((,class (:box (:color ,black2) :background ,black1 :foreground ,aqua1))))
`(spaceline-evil-motion ((,class (:box (:color ,black2) :background ,black1 :foreground ,orange1))))
`(spaceline-evil-replace ((,class (:box (:color ,black2) :background ,black1 :foreground ,aqua2))))
`(spaceline-flycheck-error ((,class (:box (:color ,black2) :foreground ,red2))))
`(spaceline-flycheck-warning ((,class (:box (:color ,black2) :foreground ,yellow2))))
`(spaceline-flycheck-info ((,class (:box (:color ,black2) :foreground ,green2))))
;; Standard UI Items
`(show-paren-match ((,class (:underline ,aqua2 :bold t))))
`(isearch ((,class (:background ,red3 :foreground ,yellow2))))
`(internal-border ((,class (:background ,black2))))
`(child-frame-border ((,class (:background ,black2))))
`(lazy-highlight ((,class (:background ,red1 :foreground ,black1))))
`(link ((,class (:foreground ,aqua1 :underline (:color ,aqua1)))))
`(link-visited ((,class (:foreground ,aqua2 :underline (:color ,aqua2)))))
`(button ((,class (:background ,bg2 :foreground ,blue1 :box (:color ,grey3 :line-width 2 :style released-button) :bold t))))
`(linum ((,class (:background ,bg :foreground ,grey1 :bold nil :box nil :overline nil :underline nil :italic nil))))
`(line-number ((,class (:background ,bg :foreground ,grey1 :bold t))))
`(line-number-current-line ((,class (:background ,bg :foreground ,green1 :bold t))))
`(region ((,class (:background ,black1 :foreground ,fg))))
`(highlight ((,class (:background ,black1 :foreground ,fg))))
`(hl-line ((,class (:background ,grey2))))
`(highlight-indentation-face ((,class (:background ,grey2))))
`(header-line ((,class (:box (:color ,black2) :background ,black1))))
`(fringe ((,class (:background ,bg))))
`(cursor ((,class (:background ,red1))))
`(minibuffer-prompt ((,class (:foreground ,purple1))))
`(vertical-border ((,class (:foreground ,black2))))
`(error ((,class (:foreground ,red3))))
`(success ((,class (:foreground ,green1))))
`(warning ((,class (:foreground ,yellow2))))
`(eval-sexp-fu-flash ((,class (:background ,green1 :foreground ,black1))))
`(eval-sexp-fu-flash-error ((,class (:background ,red3 :foreground ,fg))))
`(secondary-selection ((,class (nil))))
`(match ((,class (:background ,red3 :foreground ,fg))))
`(tooltip ((,class (:background ,bg2 :foreground ,brown1))))
`(help-key-binding ((,class (:foreground ,orange2 :bold t))))
`(variable-pitch ((,class (:family "Iosevka Aile"))))
;; Widgets
`(widget-field ((,class (:foreground ,brown1 :background ,grey3 :bold t :box (:line-width -1 :color ,grey1)))))
;; Tabs
`(tab-line ((,class (:background ,black1 :foreground ,fg :box (:line-width 3 :color ,black1) :overline ,black1))))
`(tab-line-tab ((,class (:background ,black1 :foreground ,fg :box (:line-width 3 :color ,black1) :overline ,black1))))
`(tab-line-tab-current ((,class (:background ,bg2 :foreground ,fg :box (:line-width 3 :color ,bg2) :overline ,blue1))))
`(tab-line-tab-inactive ((,class (:background ,black1 :foreground ,fg :box (:line-width 3 :color ,black1) :overline ,black1))))
`(tab-line-highlight ((,class (:background ,bg :foreground ,fg :box (:line-width 3 :color ,bg) :overline ,blue1))))
;; Anzu
`(anzu-mode-line ((,class (:foreground ,yellow2 :background ,bg2))))
`(anzu-replace-highlight ((,class (:foreground ,yellow2 :background ,red3))))
`(anzu-replace-to ((,class (:foreground ,black1 :background ,blue1))))
;; Xref
`(xref-file-header ((,class (:foreground ,brown1))))
`(xref-line-number ((,class (:foreground ,green1))))
`(xref-match ((,class (:background ,black1))))
;; Evil
`(evil-search-highlight-persist-highlight-face ((,class (:foreground ,black1 :background ,red1))))
`(evil-ex-substitute-matches ((,class (:inherit anzu-replace-highlight))))
`(evil-ex-substitute-replacement ((,class (:inherit anzu-replace-to))))
;; Evil Goggles
`(evil-goggles-default-face ((,class (:foreground ,black1 :background ,blue2 :bold t))))
`(evil-goggles-delete-face ((,class (:foreground ,black1 :background ,red3 :bold t))))
`(evil-goggles-indent-face ((,class (:foreground ,black1 :background ,orange2 :bold t))))
`(evil-goggles-yank-face ((,class (:foreground ,black1 :background ,blue1 :bold t))))
`(evil-goggles-join-face ((,class (:foreground ,red2 :background ,bg2 :bold t))));; TODO
`(evil-goggles-fill-and-move-face ((,class (:foreground ,red2 :background ,bg2 :bold t))));; TODO
`(evil-goggles-paste-face ((,class (:foreground ,black1 :background ,green1 :bold t))))
`(evil-goggles-shift-face ((,class (:foreground ,black1 :background ,aqua1 :bold t))))
`(evil-goggles-surround-face ((,class (:foreground ,black1 :background ,purple1 :bold t))))
`(evil-goggles-commentary-face ((,class (:foreground ,grey3 :background ,grey1 :bold t))))
`(evil-goggles-nerd-commenter-face ((,class (:foreground ,grey3 :background ,grey1 :bold t))))
`(evil-goggles-replace-with-register-face ((,class (:foreground ,red2 :background ,bg2 :bold t))));; TODO
`(evil-goggles-set-marker-face ((,class (:foreground ,black1 :background ,aqua2 :bold t))))
`(evil-goggles-undo-redo-add-face ((,class (:foreground ,black1 :background ,green1 :bold t))))
`(evil-goggles-undo-redo-remove-face ((,class (:foreground ,black1 :background ,red3 :bold t))))
`(evil-goggles-undo-redo-change-face ((,class (:foreground ,black1 :background ,blue1 :bold t))))
;; Spacemacs specifica
`(spacemacs-normal-face ((,class (:foreground ,black1 :background ,red3))))
`(spacemacs-visual-face ((,class (:foreground ,black1 :background ,purple2))))
`(spacemacs-insert-face ((,class (:foreground ,black1 :background ,green1))))
`(spacemacs-motion-face ((,class (:foreground ,black1 :background ,brown1))))
`(spacemacs-emacs-face ((,class (:foreground ,black1 :background ,aqua2))))
;; Ido
`(ido-first-match ((,class (:foreground ,green1))))
`(ido-incomplete-regexp ((,class (:inherit error))))
`(ido-indicator ((,class (:background ,red3 :foreground ,yellow2))))
`(ido-only-match ((,class (:foreground ,green2 :bold t))))
`(ido-subdir ((,class (:foreground ,blue1))))
`(ido-virtual ((,class (:foreground ,aqua1))))
`(ido-vertical-match-face ((,class (:foreground ,red1))))
`(ido-vertical-first-match ((,class (:inherit ido-first-match))))
`(ido-vertical-only-match ((,class (:inherit ido-only-match))))
;; Group Customization
`(custom-button ((,class (:inherit button))))
`(custom-button-mouse ((,class (:background ,blue1 :inherit custom-button))))
`(custom-button-pressed ((,class (:foreground ,black1 :background ,blue1 :box (:line-width -1 :color ,black1 :style pressed-button)))))
`(custom-comment ((,class (:inherit font-lock-comment-face))))
`(custom-comment-tag ((,class (:inherit font-lock-comment-face))))
`(custom-documentation ((,class (:foreground ,fg))))
`(custom-group-subtitle ((,class (:foreground ,purple1 :bold t :underline t))))
`(custom-group-tag ((,class (:foreground ,purple1 :bold t :underline nil :height 1.25))))
`(custom-group-tag-1 ((,class (:foreground ,aqua1 :bold t :underline t :height 1.5))))
`(custom-state ((,class (:foreground ,green2))))
`(custom-variable-tag ((,class (:foreground ,purple1 :bold t :underline t))))
;; Ediff
`(ediff-current-diff-A ((,class (:foreground ,black2 :background ,purple2))))
`(ediff-current-diff-B ((,class (:foreground ,black2 :background ,purple2))))
`(ediff-current-diff-C ((,class (:foreground ,aqua1 :background ,bg2))));;TODO
`(ediff-current-diff-Ancestor ((,class (:foreground ,brown1 :background ,bg2))));;TODO
`(ediff-even-diff-A ((,class (:foreground ,black2 :background ,blue1))))
`(ediff-even-diff-B ((,class (:foreground ,black2 :background ,blue1))))
`(ediff-even-diff-C ((,class (:foreground ,aqua1 :background ,red3))));;TODO
`(ediff-even-diff-Ancestor ((,class (:foreground ,brown1 :background ,red3))));;TODO
`(ediff-fine-diff-A ((,class (:foreground ,yellow1 :background ,red3 :bold t))))
`(ediff-fine-diff-B ((,class (:foreground ,yellow1 :background ,red3 :bold t))))
`(ediff-fine-diff-C ((,class (:foreground ,aqua1 :background ,purple1))));;TODO
`(ediff-fine-diff-Ancestor ((,class (:foreground ,brown1 :background ,purple1))));;TODO
`(ediff-odd-diff-A ((,class (:foreground ,black2 :background ,blue2))))
`(ediff-odd-diff-B ((,class (:foreground ,black2 :background ,blue2))))
`(ediff-odd-diff-C ((,class (:foreground ,aqua1 :background ,aqua2))));;TODO
`(ediff-odd-diff-Ancestor ((,class (:foreground ,brown1 :background ,aqua2))));;TODO
;; Macrostep
`(macrostep-expansion-highlight-face ((,class (:inherit region))))
;; Spacemacs states
`(spacemacs-transient-state-title-face ((,class (:foreground ,black2 :background ,green2 :bold t :box (:color ,bg2 :line-width -1)))))
`(spacemacs-micro-state-header-face ((,class (:inherit spacemacs-transient-state-title-face))))
`(spacemacs-micro-state-binding-face ((,class (:foreground ,blue2 :bold t))))
;; Hydra
`(hydra-face-red ((,class (:foreground ,red2 :bold t))))
`(hydra-face-blue ((,class (:foreground ,blue2 :bold t))))
`(hydra-face-pink ((,class (:foreground ,purple1 :bold t))))
`(hydra-face-teal ((,class (:foreground ,green1 :bold t))))
`(hydra-face-amaranth ((,class (:foreground ,aqua1 :bold t))))
;; Vimish
`(vimish-fold-fringe ((,class (:foreground ,blue1))))
`(vimish-fold-overlay ((,class (:foreground ,fg :background ,blue3 :box (:color ,black2 :line-width -1) :underline nil :bold nil))))
`(vimish-fold-mouse-face ((,class (:inherit vimish-fold-overlay))))
;; Which Key
`(which-key-key-face ((,class (:foreground ,orange1))))
`(which-key-note-face ((,class (:foreground ,yellow1))))
`(which-key-separator-face ((,class (:foreground ,aqua1))))
`(which-key-special-key-face ((,class (:foreground ,orange1))))
`(which-key-group-description-face ((,class (:foreground ,purple1))))
`(which-key-command-description-face ((,class (:foreground ,green1))))
`(which-key-highlighted-command-face ((,class (:foreground ,red1 :bold t))))
`(which-key-local-map-description-face ((,class (:foreground ,blue1))))
;; Flyspell
`(flyspell-incorrect ((,class (:underline (:color ,red3 :style wave)))))
`(flyspell-duplicate ((,class (:underline (:color ,orange2 :style wave)))))
;; Flycheck
`(flycheck-info ((,class (:underline ,green2))))
`(flycheck-warning ((,class (:underline ,yellow2))))
`(flycheck-error ((,class (:underline ,red3))))
`(flycheck-fringe-info ((,class (:foreground ,green2))))
`(flycheck-fringe-warning ((,class (:foreground ,yellow2))))
`(flycheck-fringe-error ((,class (:foreground ,red1))))
`(flycheck-error-list-info ((,class (:foreground ,green2))))
`(flycheck-error-list-warning ((,class (:foreground ,yellow1 :bold t))))
`(flycheck-error-list-error ((,class (:foreground ,red1 :bold t))))
`(flycheck-error-list-id ((,class (:foreground ,yellow1))))
`(flycheck-error-list-checker-name ((,class (:foreground ,brown1))))
`(flycheck-error-list-column-number ((,class (:foreground ,green2 :bold t))))
`(flycheck-error-list-line-number ((,class (:foreground ,green2 :bold t))))
`(flycheck-error-list-highlight ((,class (:background ,grey3))))
;; Rainbow delimiters
`(rainbow-delimiters-depth-1-face ((,class :foreground ,purple1)))
`(rainbow-delimiters-depth-2-face ((,class :foreground ,red2)))
`(rainbow-delimiters-depth-3-face ((,class :foreground ,green1)))
`(rainbow-delimiters-depth-4-face ((,class :foreground ,orange1)))
`(rainbow-delimiters-depth-5-face ((,class :foreground ,blue1)))
`(rainbow-delimiters-depth-6-face ((,class :foreground ,yellow1)))
`(rainbow-delimiters-depth-7-face ((,class :foreground ,brown1)))
`(rainbow-delimiters-depth-8-face ((,class :foreground ,aqua1)))
`(rainbow-delimiters-mismatched-face ((,class :foreground ,black1)))
`(rainbow-delimiters-unmatched-face ((,class :foreground ,black1)))
;; Smerge
`(smerge-mine ((,class (:foreground ,black1 :background ,blue1 :bold t))))
`(smerge-markers ((,class (:foreground ,black1 :background ,purple2 :bold t))))
`(smerge-upper ((,class (:foreground ,blue1))))
`(smerge-refined-added ((,class (:foreground ,bg2 :background ,green2))))
`(smerge-lower ((,class (:foreground ,orange1))))
`(smerge-refined-removed ((,class (:foreground ,bg2 :background ,red2))))
;; Smart-Parens
`(sp-pair-overlay-face ((,class (:background ,black1))))
`(sp-show-pair-match-face ((,class (:inherit show-paren-match))))
;; Highlight symbol
`(highlight-symbol-face ((,class (:background ,grey2))))
;; Paradox
`(paradox-name-face ((,class (:foreground ,green1))))
`(paradox-homepage-button-face ((,class (:foreground ,blue1 :bold t))))
`(paradox-archive-face ((,class (:foreground ,brown1 :box (:color ,bg :line-width -1)))))
`(paradox-star-face ((,class (:foreground ,purple2 :bold t))))
;; Man Pages
`(Man-overstrike ((,class (:foreground ,purple1 :bold t))))
`(Man-underline ((,class (:foreground ,green1 :underline t))))
`(Man-reverse ((,class (:foreground ,aqua1))))
;; Dired
`(dired-header ((,class (:foreground ,purple1 :underline t :height 1.2))))
`(dired-marked ((,class (:foreground ,black2 :background ,purple1 :box (:line-width -1)))))
`(dired-flagged ((,class (:foreground ,fg :background ,red3 :box (:color ,black2 :line-with -1)))))
`(dired-ignored ((,class (:foreground ,black2 :background ,grey2 :box (:color ,black2 :line-with -1)))))
`(dired-symlink ((,class (:foreground ,aqua1))))
`(dired-directory ((,class (:foreground ,blue1))))
`(dired-perm-write ((,class (:foreground ,red1))))
`(dired-warning ((,class (:underline ,red3))))
`(dired-mark ((,class (:inherit diredp-flag-mark-line))))
;; Dired+
`(diredp-dir-name ((,class (:inherit dired-directory))))
`(diredp-dir-heading ((,class (:inherit dired-header))))
`(diredp-file-name ((,class (:foreground ,brown1))))
`(diredp-file-suffix ((,class (:foreground ,brown1))))
`(diredp-symlink ((,class (:inherit dired-symlink))))
`(diredp-ignored-file-name ((,class (:foreground ,grey1))))
`(diredp-compressed-file-suffix ((,class (:foreground ,purple1))))
`(diredp-deletion-file-name ((,class (:foreground ,red1 :bold t))))
`(diredp-deletion ((,class (:inherit diredp-deletion-file-name))))
`(diredp-flag-mark-line ((,class (:foreground ,fg :bold t))))
`(diredp-flag-mark ((,class (:inherit diredp-flag-mark-line))))
`(diredp-mode-line-marked ((,class (:foreground ,purple1 :bold t))))
`(diredp-mode-line-flagged ((,class (:foreground ,red1 :bold t))))
`(diredp-executable-tag ((,class (:foreground ,red1 :bold t))))
`(diredp-number ((,class (:foreground ,purple1))))
`(diredp-date-time ((,class (:foreground ,green1))))
`(diredp-read-priv ((,class (:foreground ,green1))))
`(diredp-write-priv ((,class (:foreground ,blue1))))
`(diredp-exec-priv ((,class (:foreground ,red1))))
`(diredp-link-priv ((,class (:foreground ,aqua1))))
`(diredp-no-priv ((,class (:foreground ,grey2))))
`(diredp-dir-priv ((,class (:foreground ,brown1))))
`(diredp-rare-priv ((,class (:foreground ,yellow2 :bold t))))
`(diredp-other-priv ((,class (:foreground ,yellow2 :bold t))))
;; NeoTree
`(neo-banner-face ((,class (:foreground ,red1 :bold t :underline t :height 1.4))))
`(neo-dir-link-face ((,class (:foreground ,blue1))))
`(neo-expand-btn-face ((,class (:foreground ,green2 :bold t))))
`(neo-file-link-face ((,class (:foreground ,brown1))))
`(neo-header-face ((,class (:foreground ,brown1))))
`(neo-root-dir-face ((,class (:foreground ,purple1 :bold t :underline t))))
;; treemacs
`(treemacs-root-face ((,class (:foreground ,purple2 :bold t :underline t :overline t :height 1.2))))
`(treemacs-help-title-face ((,class (:inherit font-lock-doc-face))))
;; Rust & Racer
`(cargo-process--standard-face ((,class (:foreground ,blue1))))
`(cargo-process--ok-face ((,class (:foreground ,green1))))
`(cargo-process--warning-face ((,class (:foreground ,yellow1))))
`(cargo-process--error-face ((,class (:foreground ,red1 :bold t))))
`(cargo-process--pointer-face ((,class (:foreground ,purple2))))
`(racer-help-heading-face ((,class (:foreground ,purple2 :underline t :bold t :height 1.1))))
`(rust-unsafe-face ((,class (:foreground ,red1 :bold t :underline t))))
;; Mardown
`(markdown-blockquote-face ((,class (:foreground ,brown1))))
`(markdown-bold-face ((,class (:foreground ,orange1 :bold t))))
`(markdown-comment-face ((,class (:inherit font-lock-comment-face))))
`(markdown-footnote-face ((,class (:foreground ,red3 :bold t))))
`(markdown-gfm-checkbox-face ((,class (:foreground ,red1 :background ,bg2 :box (:color ,grey1 :style released-button :line-width -1) :bold t))))
`(markdown-header-delimiter-face ((,class (:foreground ,blue1 :bold t))))
`(markdown-header-rule-face ((,class (:foreground ,blue1 :bold t))))
`(markdown-header-face ((,class (:foreground ,purple1 :height 1.3))))
`(markdown-header-face-1 ((,class (:foreground ,purple1 :height 1.2))))
`(markdown-header-face-2 ((,class (:foreground ,purple1 :height 1.1))))
`(markdown-header-face-3 ((,class (:foreground ,purple1 :height 1.05))))
`(markdown-header-face-4 ((,class (:foreground ,purple1))))
`(markdown-header-face-5 ((,class (:foreground ,purple1))))
`(markdown-header-face-6 ((,class (:foreground ,purple1))))
`(markdown-highlight-face ((,class (:inherit highlight))))
`(markdown-inline-code-face ((,class (:foreground ,aqua2 :bold t))))
`(markdown-italic-face ((,class (:foreground ,orange1 :italic t))))
`(markdown-language-keyword-face ((,class (:foreground ,red1 :bold t :underline t))))
`(markdown-line-break-face ((,class (:inherit link :height 2.0))))
`(markdown-list-face ((,class (:foreground ,green1 :bold t))))
`(markdown-link-face ((,class (:inherit link :underline nil))))
`(markdown-link-title-face ((,class (:foreground ,blue1))))
`(markdown-markup-face ((,class (:foreground ,yellow1))))
`(markdown-math-face ((,class (:inherit markdown-inline-code-face))))
`(markdown-metadata-key-face ((,class (:foreground ,green1))))
`(markdown-metadata-value-face ((,class (:foreground ,red3))))
`(markdown-missing-link-face ((,class (:inherit font-lock-warning-face))))
`(markdown-pre-face ((,class (:inherit markdown-blockquote-face))))
`(markdown-reference-face ((,class (:foreground ,purple1))))
`(markdown-strike-through-face ((,class (:foreground ,orange1 :strike-through t))))
`(markdown-url-face ((,class (:inherit link))))
;; Ace
`(ace-jump-face-foreground ((,class (:foreground ,yellow2 :background ,red3))))
`(aw-leading-char-face ((,class (:foreground ,yellow2 :background ,red3))))
;; Describe
`(describe-variable-value ((,class (:foreground ,brown1))))
;; Ivy
`(ivy-minibuffer-match-face-1 ((,class (:background ,red3 :foreground ,yellow2))))
`(ivy-minibuffer-match-face-2 ((,class (:background ,red3 :foreground ,yellow2))))
`(ivy-minibuffer-match-face-3 ((,class (:background ,red3 :foreground ,yellow2))))
`(ivy-minibuffer-match-face-4 ((,class (:background ,red3 :foreground ,yellow2))))
`(ivy-confirm-face ((,class (:background ,orange2 :foreground ,black2))))
`(ivy-cursor ((,class (:background ,brown2 :foreground ,black2))))
`(ivy-current-match ((,class (:background ,black1))))
`(ivy-action ((,class (:background ,aqua2 :foreground ,black2))))
`(ivy-match-required-face ((,class (:background ,aqua1 :foreground ,black2))))
`(ivy-remote ((,class (:foreground ,aqua1))))
`(ivy-modified-buffer ((,class (:foreground ,fg :underline ,green2))))
`(ivy-virtual ((,class (:foreground ,purple1))))
`(ivy-subdir ((,class (:foreground ,blue1))))
;; Avy
`(avy-background-face ((,class (:background ,grey3))))
`(avy-lead-face ((,class (:background ,red3 :foreground ,yellow2))))
`(avy-lead-face-0 ((,class (:background ,blue1 :foreground ,black1))))
`(avy-lead-face-1 ((,class (:background ,red3 :foreground ,yellow2))))
`(avy-lead-face-2 ((,class (:background ,blue1 :foreground ,black1))))
;; imenu list
`(imenu-list-entry-subalist-face-0 ((,class (:foreground ,green1))))
`(imenu-list-entry-subalist-face-1 ((,class (:foreground ,yellow1))))
`(imenu-list-entry-subalist-face-2 ((,class (:foreground ,green1))))
`(imenu-list-entry-subalist-face-3 ((,class (:foreground ,blue1))))
`(imenu-list-entry-face-0 ((,class (:foreground ,blue1))))
`(imenu-list-entry-face-1 ((,class (:foreground ,blue1))))
`(imenu-list-entry-face-2 ((,class (:foreground ,aqua1))))
`(imenu-list-entry-face-3 ((,class (:foreground ,blue1))))
;; LaTeX
`(font-latex-bold-face ((,class (:foreground ,orange1 :bold t))))
`(font-latex-italic-face ((,class (:foreground ,orange1 :italic t))))
`(font-latex-string-face ((,class (:foreground ,green1))))
`(font-latex-math-face ((,class (:foreground ,aqua1))))
`(font-latex-verbatim-face ((,class (:foreground ,orange2))))
`(font-latex-warning-face ((,class (:foreground ,red1))))
`(font-latex-sedate-face ((,class (:foreground ,blue1))))
`(font-latex-sectioning-0-face ((,class (:foreground ,yellow1 :height 1.5))))
`(font-latex-sectioning-1-face ((,class (:foreground ,yellow1 :height 1.4))))
`(font-latex-sectioning-2-face ((,class (:foreground ,yellow1 :height 1.3))))
`(font-latex-sectioning-3-face ((,class (:foreground ,yellow1 :height 1.2))))
`(font-latex-sectioning-4-face ((,class (:foreground ,yellow1 :height 1.1))))
`(font-latex-sectioning-5-face ((,class (:foreground ,yellow1))))
`(preview-reference-face ((,class (:foreground ,fg :height 1.1))))
`(TeX-error-description-error ((,class (:foreground ,red1 :bold t))))
`(TeX-error-description-tex-said ((,class (:foreground ,purple1))))
;; Undo Tree
`(undo-tree-visualizer-current-face ((,class (:foreground ,blue1 :bold t))))
`(undo-tree-visualizer-default-face ((,class (:foreground ,fg))))
`(undo-tree-visualizer-active-branch-face ((,class (:foreground ,red1))))
`(undo-tree-visualizer-register-face ((,class (:foreground ,purple2))))
`(undo-tree-visualizer-unmodified-face ((,class (:foreground ,green2))))
;; Terminal
`(term ((,class (:foreground ,brown1))))
`(term-bold ((,class (:bold t))))
`(term-underline ((,class (:underline t))))
`(term-color-black ((,class (:foreground ,black2))))
`(term-color-blue ((,class (:foreground ,blue1))))
`(term-color-red ((,class (:foreground ,red1))))
`(term-color-green ((,class (:foreground ,green1))))
`(term-color-yellow ((,class (:foreground ,yellow1))))
`(term-color-magenta ((,class (:foreground ,purple1))))
`(term-color-cyan ((,class (:foreground ,aqua1))))
`(term-color-white ((,class (:foreground ,fg))))
;; Whitespace
`(whitespace-big-indent ((,class (:foreground ,grey1))))
`(whitespace-empty ((,class (:background ,grey1))))
`(whitespace-trailing ((,class (:foreground ,grey1))))
`(whitespace-hspace ((,class (:background ,grey1))))
`(whitespace-indentation ((,class (:background ,grey1))))
`(whitespace-line ((,class (:foreground ,grey1))))
`(whitespace-newline ((,class (:foreground ,grey1))))
`(whitespace-space ((,class (:foreground ,grey1))))
`(whitespace-space-after-tab ((,class (:foreground ,grey1))))
`(whitespace-space-before-tab ((,class (:foreground ,grey1))))
`(whitespace-tab ((,class (:foreground ,grey1))))
`(whitespace-trailing ((,class (:foreground ,grey1))))
;; info manual
`(info-title-1 ((,class (:foreground ,purple1 :bold t :height 2.0))))
`(info-title-2 ((,class (:foreground ,purple1 :bold t :height 1.75))))
`(info-title-3 ((,class (:foreground ,purple1 :bold t :height 1.5))))
`(info-title-4 ((,class (:foreground ,purple1 :bold t :height 1.25))))
`(info-header-node ((,class (:foreground ,red1 :bold t :underline t))))
`(info-menu-header ((,class (:foreground ,purple1 :bold t))))
`(info-menu-star ((,class (:foreground ,green2 :bold t))))
`(info-quoted-name ((,class (:foreground ,blue1 :bold t))))
`(info-double-quoted-name ((,class (:foreground ,green1))))
`(info-xref ((,class (:foreground ,aqua1 :underline t :bold t))))
;; Helm
`(helm-action ((,class (:foreground ,red1))))
`(helm-bookmark-addressbook ((,class (:foreground ,purple1))))
`(helm-bookmark-directory ((,class (:foreground ,blue1))))
`(helm-bookmark-file ((,class (:foreground ,brown1))))
`(helm-bookmark-gnus ((,class (:foreground ,aqua1))))
`(helm-bookmark-info ((,class (:foreground ,green1))))
`(helm-bookmark-man ((,class (:foreground ,yellow1))))
`(helm-bookmark-w3m ((,class (:foreground ,red1))))
`(helm-buffer-directory ((,class (:foreground ,blue1))))
`(helm-buffer-file ((,class (:foreground ,fg))))
`(helm-buffer-not-saved ((,class (:foreground ,fg :underline (:style wave :color, green2)))))
`(helm-buffer-process ((,class (:foreground ,orange1))))
`(helm-buffer-saved-out ((,class (:foreground ,fg :underline (:style wave :color ,red1)))))
`(helm-buffer-size ((,class (:foreground ,green1))))
`(helm-candidate-number ((,class (:background ,yellow2 :foreground ,black2))))
`(helm-etags-file ((,class (:height 2.0 :background ,fg :foreground ,blue3)))) ;; TODO
`(helm-ff-directory ((,class (:foreground ,blue1))))
`(helm-ff-dirs ((,class (:height 2.0 :background ,fg :foreground ,blue3)))) ;; TODO
`(helm-ff-dotted-directory ((,class (:foreground ,orange1))))
`(helm-ff-dotted-symlink-directory ((,class (:foreground ,orange1))))
`(helm-ff-executable ((,class (:foreground ,red1))))
`(helm-ff-file ((,class (:foreground ,brown1))))
`(helm-ff-invalid-symlink ((,class (:foreground ,aqua1 :underline (:style wave :color ,red1)))))
`(helm-ff-prefix ((,class (:foreground ,purple1))))
`(helm-ff-symlink ((,class (:foreground ,aqua1))))
`(helm-ff-file-extension ((,class (:foreground ,green1))))
`(helm-grep-cmd-line ((,class (:foreground ,aqua1))))
`(helm-grep-file ((,class (:foreground ,blue1))))
`(helm-grep-finish ((,class (:foreground ,yellow2 :background ,bg2 :box (:color ,black2 :line-width -1) :bold t))))
`(helm-grep-lineno ((,class (:foreground ,green1))))
`(helm-grep-match ((,class (:foreground ,yellow2 :background ,red3))))
`(helm-history-deleted ((,class (:height 2.0 :background ,fg :foreground ,red1)))) ;; TODO
`(helm-history-remote ((,class (:height 2.0 :background ,fg :foreground ,green1)))) ;; TODO
`(helm-header ((,class (:foreground ,grey2))))
`(helm-header-line-left-margin ((,class (:foreground ,purple2 :bold t))))
`(helm-lisp-completion-info ((,class (:height 2.0 :background ,fg :foreground ,purple2)))) ;; TODO
`(helm-lisp-show-completion ((,class (:height 2.0 :background ,fg :foreground ,blue2)))) ;; TODO
`(helm-match ((,class (:foreground ,yellow2 :background ,red3))))
`(helm-match-item ((,class (:foreground ,yellow2 :background ,red3))))
`(helm-moccur-buffer ((,class (:inherit helm-grep-file))))
`(helm-M-x-key ((,class (:foreground ,yellow1 :bold t))))
`(helm-prefarg ((,class (:foreground ,aqua1 :bold t))))
`(helm-resume-need-update ((,class (:height 2.0 :background ,fg :foreground ,aqua2)))) ;; TODO
`(helm-selection ((,class (:background ,black1 :extend t))))
`(helm-selection-line ((,class (:background ,grey3))))
`(helm-separator ((,class (:foreground ,green1 :bold t))))
`(helm-source-header ((,class (:background ,aqua2 :foreground ,black2 :underline t :extend t))))
`(helm-visible-mark ((,class (:foreground ,fg :bold t))))
;;Helm swoop
`(helm-swoop-line-number-face ((,class (:inherit linum))))
`(helm-swoop-target-line-face ((,class (:inherit hl-line))))
`(helm-swoop-target-word-face ((,class (:foreground ,yellow2 :background ,red3))))
`(helm-swoop-target-line-block-face ((,class (:foreground ,red3 :background ,green1)))) ;; TODO
;;Helm xref
`(helm-xref-file-name ((,class (:foreground ,purple1))))
`(helm-xref-line-number ((,class (:foreground ,green1 :bold t))))
;; Magit
`(magit-bisect-bad ((,class (:height 2.0 :foreground ,red1 :background ,red3)))) ;; TODO
`(magit-bisect-good ((,class (:height 2.0 :foreground ,red1 :background ,green2)))) ;; TODO
`(magit-bisect-skip ((,class (:height 2.0 :foreground ,red1 :background ,blue2)))) ;; TODO
`(magit-blame-date ((,class (:background ,bg2 :foreground ,green1 :bold t))))
`(magit-blame-hash ((,class (:background ,bg2 :foreground ,brown1 :bold t))))
`(magit-blame-heading ((,class (:background ,bg2 :bold t))))
`(magit-blame-name ((,class (:background ,bg2 :foreground ,blue2 :bold t))))
`(magit-blame-summary ((,class (:background ,bg2 :foreground ,brown1 :bold t))))
`(magit-branch-current ((,class (:foreground ,blue2 :bold t))))
`(magit-branch-remote-head ((,class (:foreground ,purple2 :bold t))))
`(magit-branch-remote ((,class (:foreground ,aqua1 :bold t))))
`(magit-branch-local ((,class (:foreground ,brown2 :bold t))))
`(magit-cherry-equivalent ((,class (:foreground ,blue1))))
`(magit-cherry-unmatched ((,class (:foreground ,red1))))
`(magit-diff-added ((,class (:foreground ,green1))))
`(magit-diff-added-highlight ((,class (:background ,bg2 :inherit magit-diff-added))))
`(magit-diff-base ((,class (:foreground ,red3 :background ,aqua2)))) ;; TODO
`(magit-diff-base-highlight ((,class (:foreground ,red3 :background ,green2)))) ;; TODO
`(magit-diff-conflict-heading ((,class (:foreground ,black1 :background ,purple2 :bold t))))
`(magit-diff-context ((,class (:foreground ,fg))))
`(magit-diff-context-highlight ((,class (:background ,bg2))))
`(magit-diff-file-heading ((,class (:foreground ,fg))))
`(magit-diff-file-heading-highlight ((,class (:background ,bg2))))
`(magit-diff-file-heading-selection ((,class (:foreground ,red3 :background ,green2))))
`(magit-diff-hunk-heading ((,class (:foreground ,blue2 :bold t))))
`(magit-diff-hunk-heading-highlight ((,class (:background ,bg2 :inherit magit-diff-hunk-heading))))
`(magit-diff-lines-boundary ((,class (:background ,yellow2))))
`(magit-diff-lines-heading ((,class (nil))))
`(magit-diff-our ((,class (:foreground ,orange2))))
`(magit-diff-our-highlight ((,class (:foreground ,orange2 :background ,bg2))))
`(magit-diff-removed ((,class (:foreground ,red1))))
`(magit-diff-removed-highlight ((,class (:background ,bg2 :inherit magit-diff-removed))))
`(magit-diff-their ((,class (:foreground ,brown1))))
`(magit-diff-their-highlight ((,class (:foreground ,brown1 :background ,bg2))))
`(magit-whitespace-warning-face ((,class (:foreground ,red1))))
`(magit-diffstat-added ((,class (:foreground ,green1))))
`(magit-diffstat-removed ((,class (:foreground ,red1))))
`(magit-dimmed ((,class (:inherit font-lock-comment-face))))
`(magit-filename ((,class (:foreground ,fg))))
`(magit-hash ((,class (:foreground ,orange1))))
`(magit-head ((,class (:foreground ,purple1 :bold t))))
`(magit-header-line ((,class (:inherit magit-section-heading))))
`(magit-log-graph ((,class (:foreground ,orange2))))
`(magit-log-author ((,class (:foreground ,blue1))))
`(magit-log-date ((,class (:foreground ,green1))))
`(magit-process-ng ((,class (:inherit error))))
`(magit-process-ok ((,class (:inherit success))))
`(magit-reflog-amend ((,class (:foreground ,brown1 :bold t))))
`(magit-reflog-checkout ((,class (:foreground ,blue1 :bold t))))
`(magit-reflog-cherry-pick ((,class (:foreground ,yellow1 :bold t))))
`(magit-reflog-commit ((,class (:foreground ,green1 :bold t))))
`(magit-reflog-merge ((,class (:foreground ,aqua1 :bold t))))
`(magit-reflog-other ((,class (:foreground ,fg :bold t))))
`(magit-reflog-rebase ((,class (:foreground ,orange1 :bold t))))
`(magit-reflog-remote ((,class (:foreground ,purple1 :bold t))))
`(magit-reflog-reset ((,class (:foreground ,red1 :bold t))))
`(magit-refname ((,class (:height 2.0 :foreground ,purple2 :background ,black1)))) ;; TODO
`(magit-refname-stash ((,class (:height 2.0 :foreground ,red1 :background ,black1)))) ;; TODO
`(magit-refname-wip ((,class (:height 2.0 :foreground ,red1 :background ,black1)))) ;; TODO
`(magit-refname-pullreq ((,class (:foreground ,orange2 :bold t))))
`(magit-section-heading ((,class (:foreground ,purple1 :underline t :height 1.2))))
`(magit-section-heading-selection ((,class (:foreground ,green1 :background ,black2))))
`(magit-section-highlight ((,class (:background ,bg2))))
`(magit-section-secondary-heading ((,class (:foreground ,purple1))))
`(magit-sequence-done ((,class (:foreground ,grey1))))
`(magit-sequence-drop ((,class (:foreground ,orange1 :bold t))))
`(magit-sequence-head ((,class (:foreground ,purple1 :bold t))))
`(magit-sequence-onto ((,class (:foreground ,purple1 :bold t))))
`(magit-sequence-part ((,class (:foreground ,blue1 :bold t))))
`(magit-sequence-pick ((,class (:foreground ,green1 :bold t))))
`(magit-sequence-stop ((,class (:foreground ,red1 :bold t))))
`(magit-signature-bad ((,class (:foreground ,yellow1 :italic t :underline (:style wave)))))
`(magit-signature-good ((,class (:foreground ,green1 :italic t :underline t))))
`(magit-signature-untrusted ((,class (:foreground ,red1 :italic t :underline (:style wave)))))
`(magit-tag ((,class (:foreground ,yellow1 :bold t))))
;; Diff
`(diff-refine-added ((,class (:foreground ,green2 :background ,green3 :bold t))))
`(diff-refine-removed ((,class (:foreground ,red2 :background ,red4 :bold t))))
`(diff-refine-changed ((,class (:foreground ,blue1 :background ,black1 :bold t))))
;; Git
`(git-commit-keyword ((,class (:foreground ,brown2 :bold t))))
`(git-commit-comment-action ((,class (:foreground ,orange1))))
`(git-commit-comment-branch ((,class (:foreground ,blue1 :bold t))))
`(git-commit-comment-detached ((,class (:foreground ,aqua1))))
`(git-commit-comment-file ((,class (:foreground ,green1))))
`(git-commit-comment-heading ((,class (:foreground ,purple1 :underline t))))
`(git-commit-known-pseudo-header ((,class (:inherit git-commit-pseudo-header))))
`(git-commit-nonempty-second-line ((,class (:foreground ,red1 :underline t))))
`(git-commit-overlong-summary ((,class (:foreground ,red1))))
`(git-commit-pseudo-header ((,class (:foreground ,purple1 :underline t :height 1.3))))
`(git-commit-summary ((,class (:foreground ,yellow1))))
`(git-rebase-hash ((,class (:inherit magit-hash))))
`(git-rebase-description ((,class (:foreground ,fg))))
`(git-rebase-killed-action ((,class (:foreground ,red1))))
;; Git Rebase
`(git-rebase-description ((,class (:foreground ,fg))))
`(git-rebase-hash ((,class (:foreground ,orange1))))
`(git-rebase-killed-action ((,class (:foreground ,grey1 :strike-through t))))
;; Git gutter
`(git-gutter:added ((,class (:foreground ,green1))))
`(git-gutter:deleted ((,class (:foreground ,red1))))
`(git-gutter:modified ((,class (:foreground ,blue1))))
`(git-gutter+-added ((,class (:inherit git-gutter:added))))
`(git-gutter+-deleted ((,class (:inherit git-gutter:deleted))))
`(git-gutter+-modified ((,class (:inherit git-gutter:modified))))
`(git-gutter-fr:added ((,class (:inherit git-gutter:added))))
`(git-gutter-fr:deleted ((,class (:inherit git-gutter:deleted))))
`(git-gutter-fr:modified ((,class (:inherit git-gutter:modified))))
`(git-gutter-fr+-added ((,class (:inherit git-gutter:added))))
`(git-gutter-fr+deleted ((,class (:inherit git-gutter:deleted))))
`(git-gutter-fr+modified ((,class (:inherit git-gutter:modified))))
;; Transient
`(transient-heading ((,class (:foreground ,purple1 :bold t))))
`(transient-key ((,class (:foreground ,blue1 :bold t))))
`(transient-value ((,class (:foreground ,aqua1 :bold t))))
`(transient-argument ((,class (:foreground ,orange1 :bold t))))
`(transient-unreachable-key ((,class (:foreground ,grey1 :bold t))))
`(transient-active-infix ((,class (:foreground ,green2 :bold t))))
`(transient-unreachable ((,class (:foreground ,grey1))))
`(transient-teal ((,class (:inherit hydra-face-teal))))
`(transient-pink ((,class (:inherit hydra-face-pink))))
`(transient-amaranth ((,class (:inherit hydra-face-amaranth))))
`(transient-blue ((,class (:inherit hydra-face-blue))))
`(transient-red ((,class (:inherit hydra-face-red))))
`(transient-inacitve-argument ((,class (:foreground ,brown1 :background ,black2))))
`(transient-inacitve-value ((,class (:foreground ,orange1 :background ,black2))))
`(transient-disabled-suffix ((,class (:foreground ,purple1 :background ,black2))))
`(transient-enabled-suffix ((,class (:foreground ,red3 :background ,black2))))
`(transient-inapt-suffix ((,class (:foreground ,aqua1 :background ,black2))))
`(transient-mismatched-key ((,class (:foreground ,blue2 :background ,black2))))
`(transient-nonstandard-key ((,class (:foreground ,brown2 :background ,black2))))
`(transient-separator ((,class (:foreground ,orange2 :background ,black2))))
;; Diff hl
`(diff-hl-change ((,class (:background ,blue2 :foreground ,black1))))
`(diff-hl-delete ((,class (:background ,red1 :foreground ,black1))))
`(diff-hl-insert ((,class (:background ,green2 :foreground ,black1))))
;; Compilation
`(compilation-info ((,class (:foreground ,brown1))))
`(compilation-error ((,class (:foreground ,red2))))
`(compilation-line-number ((,class (:foreground ,green1))))
`(compilation-column-number ((,class (:foreground ,green1))))
;; company
`(company-tooltip-common-selection ((,class (:background ,bg2 :foreground ,red1))))
`(company-tooltip-selection ((,class (:background ,bg2 :foreground ,fg :extend t))))
`(company-scrollbar-bg ((,class (:background ,grey1))))
`(company-scrollbar-fg ((,class (:background ,red3))))
`(company-tooltip ((,class (:background ,grey2 :foreground ,fg ))))
`(company-tooltip-search ((,class (:background ,fg :foreground ,red3))))
`(company-tooltip-search-selection ((,class (:background ,fg :foreground ,red3))))
`(company-tooltip-annotation ((,class (:background ,grey2 :foreground ,aqua1 :bold t))))
`(company-tooltip-annotation-selection ((,class (:background ,bg2 :foreground ,aqua1 :bold t))))
`(company-tooltip-common ((,class (:foreground ,red1))))
`(company-preview-common ((,class (:foreground ,grey1 :background ,grey3))))
`(company-preview ((,class (:background ,fg :foreground ,red3))))
`(company-tooltip-mouse ((,class (:inherit company-tooltip-sele))))
`(company-echo-common ((,class (:background ,fg :foreground ,red3))))
`(company-template-field ((,class (:inherit yas-field-highlight-face))))
;; Org-Mode
`(org-agenda-calendar-event ((,class (:foreground ,blue2 :bold t))))
`(org-agenda-calendar-sexp ((,class (:foreground ,blue2 :bold t))))
`(org-agenda-clocking ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-column-dateline ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-current-time ((,class (:foreground ,brown1 :bold t))))
`(org-agenda-date ((,class (:foreground ,brown1 :bold t))))
`(org-agenda-date-weekend ((,class (:foreground ,brown2 :bold t))))
`(org-agenda-date-today ((,class (:foreground ,red3 :bold t :italic t :height 1.5))))
`(org-agenda-diary ((,class (:foreground ,red2 :bold t))))
`(org-agenda-dimmed-todo-face ((,class (:foreground ,grey1))))
`(org-agenda-done ((,class (:foreground ,green1))))
`(org-agenda-filter-category ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-filter-regexp ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-filter-tags ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-restriction-lock ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-structure ((,class (:foreground ,purple1 :bold t :height 1.5))))
`(org-super-agenda-header ((,class (:foreground ,green2 :bold t :height 1.3))))
`(org-archived ((,class (:foreground ,grey1 :bold t))))
`(org-block ((,class (:background ,bg2 :extend t))))
`(org-block-begin-line ((,class (:background ,brown2 :foreground ,bg2 :bold t :extend t))))
`(org-block-end-line ((,class (:background ,brown2 :foreground ,bg2 :bold t :extend t))))
`(org-checkbox ((,class (:background ,bg2 :foreground ,brown2 :bold t :box (:color ,brown2 :line-width -1)))))
`(org-checkbox-statistics-done ((,class (:background ,green1 :foreground ,black1 :box (:color ,black1 :line-width -1) :bold t))))
`(org-checkbox-statistics-todo ((,class (:background ,red2 :foreground ,black1 :box (:color ,black1 :line-width -1) :bold t))))
`(org-clock-overlay ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-code ((,class (:foreground ,purple1 :bold t))))
`(org-column ((,class ())))
`(org-column-title ((,class (:foreground ,purple1 :background ,bg2 :bold t :underline t))))
`(org-date ((,class (:foreground ,brown2 :bold t))))
`(org-date-selected ((,class (:foreground ,black1 :background ,purple2 :bold t :box (:color ,black1 :line-with -1)))))
`(org-default ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-done ((,class (:background ,green1 :foreground ,black1 :bold t :box (:color ,black2 :line-width -1)))))
`(org-document-info ((,class (:foreground ,red2 :bold t :height 1.4))))
`(org-document-info-keyword ((,class (:foreground ,purple2 :bold t :height 1.4))))
`(org-document-title ((,class (:foreground ,red2 :bold t :height 1.4))))
`(org-drawer ((,class (:inherit org-special-keyword))))
`(org-ellipsis ((,class (:foreground ,grey1 :bold t :box nil :underline nil :overline nil))))
`(org-footnote ((,class (:foreground ,grey1 :background ,grey3 :bold t))))
`(org-formula ((,class (:foreground ,green1 :background ,bg2))))
`(org-habit-alert-face ((,class (:background ,yellow1 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-alert-future-face ((,class (:background ,yellow2 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-clear-face ((,class (:background ,blue2 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-clear-future-face ((,class (:background ,blue1 :foreground ,black2 :box (:color ,black2 :line-with -1)))))
`(org-habit-overdue-face ((,class (:background ,red3 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-overdue-future-face ((,class (:background ,red1 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-ready-face ((,class (:background ,green1 :foreground ,black2 :box (:color ,black2 :line-with -1)))))
`(org-habit-ready-future-face ((,class (:background ,green2 :foreground ,black2 :box (:color ,black2 :line-with -1)))))
`(org-headline-done ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-hide ((,class (:foreground ,bg))))
`(org-indent ((,class (:foreground ,bg))))
`(org-kbd ((,class (:foreground ,fg :italic t :bold t))))
`(org-latex-and-related ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-level-1 ((,class (:foreground ,blue1))))
`(org-level-2 ((,class (:foreground ,orange1))))
`(org-level-3 ((,class (:foreground ,green1))))
`(org-level-4 ((,class (:foreground ,yellow1))))
`(org-level-5 ((,class (:foreground ,blue1))))
`(org-level-6 ((,class (:foreground ,orange1))))
`(org-level-7 ((,class (:foreground ,green1))))
`(org-level-8 ((,class (:foreground ,yellow1))))
`(org-link ((,class (:foreground ,aqua2 :bold t :underline t))))
`(org-list-dt ((,class (:foreground ,purple1 :bold t))))
`(org-macro ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-meta-line ((,class (:foreground ,purple2 :bold t))))
`(org-mode-line-clock ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-mode-line-clock-overrun ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-priority ((,class (:background ,purple1 :foreground ,black1 :bold t :box (:line-width -1 :color ,black2)))))
`(org-property-value ((,class (:foreground ,brown2 :bold t))))
`(org-quote ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-scheduled ((,class (:foreground ,green1))))
`(org-scheduled-previously ((,class (:foreground ,purple1))))
`(org-scheduled-today ((,class (:foreground ,aqua1))))
`(org-sexp-date ((,class (:inherit org-date))))
`(org-special-keyword ((,class (:foreground ,purple2 :underline t :bold t))))
`(org-table ((,class (:foreground ,brown1 :background ,bg2))))
`(org-tag ((,class (:foreground ,grey1))))
`(org-tag-group ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-target ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-time-grid ((,class (:foreground ,brown1))))
`(org-upcoming-distant-deadline ((,class (:foreground ,yellow1))))
`(org-agenda-current-time ((,class (:foreground ,brown1 :background ,bg2 :bold t))))
;;`(org-todo ((,class (:background ,red2 :foreground ,black1 :bold t :box (:line-width -1 :color ,black2)))))
`(org-upcoming-deadline ((,class (:foreground ,orange2))))
`(org-verbatim ((,class (:foreground ,green2 :bold t :italic t))))
`(org-warning ((,class (:foreground ,yellow2 :bold t))))
;; Comint
`(comint-highlight-prompt ((,class (:foreground ,purple2 :bold t))))
`(comint-highlight-input ((,class (:foreground ,blue1))))
;; Ledger
`(ledger-font-xact-highlight-face ((,class (:background ,grey3))))
`(ledger-font-posting-account-face ((,class (:foreground ,blue1))))
`(ledger-font-posting-amount-face ((,class (:foreground ,brown1))))
`(ledger-font-posting-date-face ((,class (:foreground ,purple1 :bold t))))
`(ledger-font-payee-uncleared-face ((,class (:foreground ,red2 :bold t))))
`(ledger-font-payee-cleared-face ((,class (:foreground ,green2 :bold t))))
`(ledger-font-price-symbol-face ((,class (:foreground ,red2 :bold t))))
`(ledger-font-price-face ((,class (:foreground ,brown2 :bold t))))
`(ledger-font-price-date-face ((,class (:foreground ,green1 :bold t))))
`(ledger-font-price-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-commodity-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-include-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-account-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-tag-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-commodity-name-face ((,class (:foreground ,red2 :bold t))))
`(ledger-font-tag-name-face ((,class (:foreground ,yellow1))))
`(ledger-font-commodity-format-face ((,class (:foreground ,green1))))
`(ledger-font-include-filename-face ((,class (:foreground ,green1))))
`(ledger-occur-xact-face ((,class (:background ,grey1 :foreground ,bg))))
`(ledger-font-auto-xact-face ((,class (:foreground ,aqua1))))
;; ERC
`(erc-timestamp-face ((,class (:foreground ,brown2 :bold t))))
`(erc-nick-default-face ((,class (:foreground ,purple1))))
`(erc-nick-msg-face ((,class (:foreground ,purple2 :bold t))))
`(erc-current-nick-face ((,class (:foreground ,aqua1))))
`(erc-default-face ((,class (:foreground ,fg))))
`(erc-error-face ((,class (:foreground ,red2 :bold t))))
`(erc-notice-face ((,class (:foreground ,green1))))
`(erc-direct-msg-face ((,class (:foreground ,aqua1))))
`(erc-prompt-face ((,class (:foreground ,black2 :background ,blue1 :box t :bold t))))
;; ERT
`(ert-test-result-expected ((,class (:background ,green2 :foreground ,black2))))
`(ert-test-result-unexpected ((,class (:background ,red3 :foreground ,black2))))
;; edebug-x
`(hi-edebug-x-stop ((,class (:background ,blue1 :foreground ,black2))))
`(hi-edebug-x-debug-line ((,class (:background ,green1 :foreground ,black2))))
;; Messages
`(message-header-name ((,class (:foreground ,green1 :bold t))))
`(message-header-other ((,class (:foreground ,blue1))))
`(message-header-to ((,class (:foreground ,orange1))))
`(message-header-subject ((,class (:foreground ,yellow1))))
`(message-separator ((,class (:foreground ,grey1))))
;; Eros
`(eros-result-overlay-face ((,class (:background ,bg :foreground ,brown1 :box (:line-width -1 :color ,black1)))))
;; elfeed
`(elfeed-search-feed-face ((,class (:foreground ,purple1))))
`(elfeed-search-tag-face ((,class (:foreground ,blue1))))
`(elfeed-search-unread-title-face ((,class (:bold t))))
`(elfeed-search-title-face ((,class (:foreground ,blue1))))
`(elfeed-search-date-face ((,class (:foreground ,green1))))
`(elfeed-log-date-face ((,class (:foreground ,brown1))))
`(elfeed-log-info-level-face ((,class (:foreground ,green1))))
`(elfeed-log-warn-level-face ((,class (:foreground ,yellow1))))
`(elfeed-log-error-level-face ((,class (:foreground ,red2))))
;; LSP
`(lsp-face-highlight-read ((,class (:background ,blue2 :foreground ,black2))))
`(lsp-face-highlight-write ((,class (:background ,orange2 :foreground ,black2))))
;; notmuch
`(notmuch-search-date ((,class (:foreground ,green1))))
`(notmuch-search-count ((,class (:foreground ,aqua1))))
`(notmuch-search-matching-authors ((,class (:foreground ,blue1))))
`(notmuch-search-subject ((,class (:foreground ,brown1))))
;; gnus
`(gnus-header-name ((,class (:foreground ,purple1 :bold t))))
`(gnus-header-content ((,class (:foreground ,brown1))))
`(gnus-header-subject ((,class (:foreground ,green1))))
`(gnus-button ((,class (:foreground ,aqua2))))
;; frog-menu
`(frog-menu-prompt-face ((,class (:foreground ,green1 :bold t))))
`(frog-menu-candidates-face ((,class (:foreground ,fg))))
`(frog-menu-actions-face ((,class (:foreground ,purple1))))
`(frog-menu-action-keybinding-face ((,class (:foreground ,blue1 :bold t))))
`(frog-menu-posframe-background-face ((,class (:background ,bg))))
;; markup
`(markup-meta-hide-face ((,class (:foreground ,grey1 :bold t))))
`(markup-meta-face ((,class (:foreground ,orange1 :bold t))))
`(markup-secondary-text-face ((,class (:foreground ,brown2 :bold t))))
`(markup-list-face ((,class (:foreground ,green2 :bold t))))
`(markup-strong-face ((,class (:foreground ,red2 :bold t))))
`(markup-code-face ((,class (:foreground ,aqua1 :bold t))))
`(markup-emphasis-face ((,class (:foreground ,yellow1 :italic t))))
`(markup-typewriter-face ((,class (:background ,aqua2 :foreground ,black1 :bold t))))
`(markup-verbatim-face ((,class (:background ,aqua2 :foreground ,black1 :bold t))))
`(markup-title-0-face ((,class (:foreground ,purple1 :underline t :height 1.2))))
`(markup-title-1-face ((,class (:foreground ,purple1 :underline t :height 1.15))))
`(markup-title-2-face ((,class (:foreground ,purple1 :underline t :height 1.1))))
`(markup-title-3-face ((,class (:foreground ,purple1 :underline t :height 1.05))))
`(markup-title-4-face ((,class (:foreground ,purple1 :underline t))))
`(markup-title-5-face ((,class (:foreground ,purple1 :underline t))))
;; selectrum
`(selectrum-current-candidate ((,class (:background ,black1 :extend t))))
;; orderless
`(orderless-match-face-0 ((,class (:background ,red3 :foreground ,yellow2))))
`(orderless-match-face-1 ((,class (:background ,green2 :foreground ,black2))))
`(orderless-match-face-2 ((,class (:background ,blue2 :foreground ,black2))))
`(orderless-match-face-3 ((,class (:background ,brown2 :foreground ,black2))))
;; marginalia
`(marginalia-documentation ((,class (:inherit font-lock-doc-face))))
`(marginalia-key ((,class (:foreground ,purple1))))
`(marginalia-number ((,class (:background ,blue2 :foreground ,red3 :bold t))))
`(marginalia-size ((,class (:foreground ,purple1))))
`(marginalia-mode ((,class (:foreground ,orange2 :bold t))))
`(marginalia-version ((,class (:background ,blue2 :foreground ,red3 :bold t))))
`(marginalia-ligher ((,class (:foreground ,green3))))
;; mu4e
`(mu4e-unread-face ((,class (:foreground ,blue1 :bold t))))
`(mu4e-replied-face ((,class (:foreground ,green1 :bold t))))
`(mu4e-header-face ((,class (:foreground ,brown1))))
`(mu4e-title-face ((,class (:foreground ,purple1 :bold t :height 1.1))))
`(mu4e-trashed-face ((,class (:foreground ,grey1))))
`(mu4e-header-key-face ((,class (:foreground ,brown1))))
`(mu4e-header-title-face ((,class (:foreground ,blue1 :bold t))))
`(mu4e-header-marks-face ((,class (:foreground ,purple2 :bold t))))
`(mu4e-header-value-face ((,class (:foreground ,brown1))))
`(mu4e-header-highlight-face ((,class (:background ,grey3))))
`(mu4e-special-header-value-face ((,class (:foreground ,aqua1))))
`(mu4e-contact-face ((,class (:foreground ,green1))))
`(mu4e-highlight-face ((,class (:foreground ,green1 :bold t))))
`(mu4e-maildirs-extension-maildir-face ((,class (:foreground ,brown1))))
(custom-theme-set-variables
'morning-star
`(ansi-color-names-vector [,black1 ,red2 ,green1 ,yellow1 ,blue1 ,purple1 ,aqua1 ,fg]))))
;;;###autoload
(when load-file-name
(add-to-list 'custom-theme-load-path
(file-name-as-directory (file-name-directory load-file-name))))
(provide-theme 'morning-star)
;; Local Variables:
;; no-byte-compile: t
;; End:
;;; morning-star-theme.el ends here

View File

@ -1,199 +0,0 @@
#+TITLE: Desktop
* Exwm Desktop
#+begin_src config :mkdirp yes :tangle ~/.config/emacs/exwm/EXWM.desktop
[Desktop Entry]
Name=EXWM
Comment=Emacs Window Manager
Exec=sh /home/jaeus/.config/emacs/exwm/start-exwm.sh
TryExec=sh
Type=Application
X-LightDM-DesktopName=exwm
DesktopNames=exwm
#+end_src
#+begin_src shell :mkdirp yes :tangle ~/.config/emacs/exwm/start-exwm.sh
#!/bin/sh
# Fire it up for WSL
#source ~/scripts/wsl_get_display.sh
picom &
exec dbus-launch --exit-with-session emacs -mm --debug-init -l ~/.config/emacs/desktop.el
#+end_src
* Configuration
** App Launcher
#+begin_src emacs-lisp :tangle ~/.config/emacs/desktop.el
(use-package app-launcher
:straight (app-launcher :type git :host github :repo "SebastienWae/app-launcher"))
#+end_src
** EXWM
#+begin_src emacs-lisp :tangle ~/.config/emacs/desktop.el
(defun efs/run-in-background (command)
(let ((command-parts (split-string command "[ ]+")))
(apply #'call-process `(,(car command-parts) nil 0 nil ,@(cdr command-parts)))))
(defun vifon/exwm-terminal ()
(interactive)
(let ((default-directory (if (derived-mode-p 'dired-mode)
(dired-current-directory)
default-directory)))
(start-process "alacritty" nil "alacritty")))
(defun efs/exwm-init-hook ()
;; Make workspace 1 be the one where we land at startup
(exwm-workspace-switch-create 1)
(efs/start-panel)
;; if not wsl
;;(efs/run-in-background "xsetroot -cursor_name left_ptr")
;;(efs/run-in-background "nm-applet")
;;(efs/run-in-background "pamac-tray")
;;(efs/run-in-background "volumeicon")
;;(efs/run-in-background "numlockx on")
;;(efs/run-in-background "blueberry-tray")
;;(efs/run-in-background "enpass -minimize")
;; Launch apps that will run in the background
;;(efs/run-in-background "fcitx"))
)
(defun efs/exwm-update-class ()
(exwm-workspace-rename-buffer exwm-class-name))
(defun efs/exwm-update-title ()
(pcase exwm-class-name
("Firefox" (exwm-workspace-rename-buffer (format "Firefox: %s" exwm-title)))))
;; This function isn't currently used, only serves as an example how to
;; position a window
(defun efs/position-window ()
(let* ((pos (frame-position))
(pos-x (car pos))
(pos-y (cdr pos)))
(exwm-floating-move (- pos-x) (- pos-y))))
(use-package exwm
:config
;; Set the default number of workspaces
(setq exwm-workspace-number 10)
;; When window "class" updates, use it to set the buffer name
(add-hook 'exwm-update-class-hook #'efs/exwm-update-class)
;; When window title updates, use it to set the buffer name
(add-hook 'exwm-update-title-hook #'efs/exwm-update-title)
;; Configure windows as they're created
;;(add-hook 'exwm-manage-finish-hook #'efs/configure-window-by-class)
;; When EXWM starts up, do some extra confifuration
(add-hook 'exwm-init-hook #'efs/exwm-init-hook)
;; Automatically send the mouse cursor to the selected workspace's display
(setq exwm-workspace-warp-cursor t)
;; Window focus should follow the mouse pointer
(setq mouse-autoselect-window t
focus-follows-mouse t)
(add-hook 'exwm-floating-setup-hook
(lambda ()
(exwm-layout-hide-mode-line)))
;; These keys should always pass through to Emacs
(setq exwm-input-prefix-keys
'(?\C-x
?\C-u
?\C-h
?\M-x
?\M-`
?\M-&
?\M-:
?\C-\M-j ;; Buffer list
?\C-\ )) ;; Ctrl+Space
;; Ctrl+Q will enable the next key to be sent directly
(define-key exwm-mode-map [?\C-q] 'exwm-input-send-next-key)
;; Set up global key bindings. These always work, no matter the input state!
;; Keep in mind that changing this list after EXWM initializes has no effect.
(setq exwm-input-global-keys
`(
;; Reset to line-mode (C-c C-k switches to char-mode via exwm-input-release-keyboard)
([?\s-r] . exwm-reset)
;; Move between windows
([?\s-h] . windmove-left)
([?\s-l] . windmove-right)
([?\s-k] . windmove-up)
([?\s-j] . windmove-down)
;;([s-space] . toggle-frame-fullscreen)
([?\s-f] . exwm-floating-toggle-floating)
;; Launch applications via shell command
([?\s-&] . (lambda (command)
(interactive (list (read-shell-command "$ ")))
(start-process-shell-command command nil command)))
([?\s-C] . (lambda () (interactive) (kill-buffer)))
;; App
(,(kbd "<s-return>") . vifon/exwm-terminal)
([?\s-d] . app-launcher-run-app)
;; Switch workspace
([?\s-w] . exwm-workspace-switch)
([?\s-`] . (lambda () (interactive) (exwm-workspace-switch-create 0)))
;; 's-N': Switch to certain workspace with Super (Win) plus a number key (0 - 9)
,@(mapcar (lambda (i)
`(,(kbd (format "s-%d" i)) .
(lambda ()
(interactive)
(exwm-workspace-switch-create ,i))))
(number-sequence 0 9))))
(exwm-enable))
;; if not wsl
(use-package desktop-environment
:disabled
:after exwm
:config (desktop-environment-mode))
;;:custom
;;(desktop-environment-brightness-small-increment "2%+")
;;(desktop-environment-brightness-small-decrement "2%-")
;;(desktop-environment-brightness-normal-increment "5%+")
;;(desktop-environment-brightness-normal-decrement "5%-"))
;; Make sure the server is started (better to do this in your main Emacs config!)
(server-start)
#+end_src
** Polybar
#+begin_src emacs-lisp :tangle ~/.config/emacs/desktop.el
(defvar efs/polybar-process nil
"Holds the process of the running Polybar instance, if any")
(defun efs/kill-panel ()
(interactive)
(when efs/polybar-process
(ignore-errors
(kill-process efs/polybar-process)))
(setq efs/polybar-process nil))
(defun efs/start-panel ()
(interactive)
(efs/kill-panel)
(setq efs/polybar-process (start-process-shell-command "polybar" nil "polybar panel")))
(defun efs/send-polybar-hook (module-name hook-index)
(start-process-shell-command "polybar-msg" nil (format "polybar-msg hook %s %s" module-name hook-index)))
(defun efs/send-polybar-exwm-workspace ()
(efs/send-polybar-hook "exwm-workspace" 1))
;; Update panel indicator when workspace changes
(add-hook 'exwm-workspace-switch-hook #'efs/send-polybar-exwm-workspace)
#+end_src

File diff suppressed because it is too large Load Diff

View File

@ -1,179 +0,0 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
#bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+Return exec alacritty
# kill focused window
bindsym $mod+Shift+c kill
# start dmenu (a program launcher)
#bindsym $mod+d exec dmenu_run
bindsym $mod+d exec rofi -show drun
bindsym $mod+f exec firefox
bindsym $mod+n exec nautilus
bindsym $mod+t exec gnome-control-center
bindsym $mod+e exec emacs
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# split in horizontal orientation
#bindsym $mod+h split h
# split in vertical orientation
#bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+space fullscreen toggle
# full screen window change
bindsym $mod+Control+j exec "i3-msg -t command 'fullscreen disable; focus next; fullscreen enable'"
bindsym $mod+Control+k exec "i3-msg -t command 'fullscreen disable; focus prev; fullscreen enable'"
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+Control+s layout stacking
bindsym $mod+Control+w layout tabbed
bindsym $mod+Control+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
#bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
# reload the configuration file
bindsym $mod+Shift+q reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# Need for i3-gaps
for_window [class="^.*"] border pixel 5
for_window [class="alacritty"] border pixel 0
for_window [class="Org.gnome.Nautilus"] border pixel 0
smart_gaps on
smart_borders on
gaps inner 5
set $bg-color #2f343f
set $inactive-bg-color #2f343f
set $text-color #f3f4f5
set $inactive-text-color #676E7D
set $urgent-bg-color #E53935
# class border backgr. text indicator child_border
client.focused #4545a8 #4545a8 #ffffff #752b30 #4545a8
client.focused_inactive #617d9e #617d9e #ffffff #424f5f #617d9e
client.unfocused #424f5f #424f5f #83a5bc #424f5f #424f5f
exec_always picom
exec_always feh --bg-fill /home/jaeus/wallpaper/colony.jpg
#exec_always --no-startup-id $HOME/.config/polybar/launch.sh
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status
}

View File

@ -1,672 +0,0 @@
# Nushell Config File
module completions {
# Custom completions for external commands (those outside of Nushell)
# Each completions has two parts: the form of the external command, including its flags and parameters
# and a helper command that knows how to complete values for those flags and parameters
#
# This is a simplified version of completions for git branches and git remotes
def "nu-complete git branches" [] {
^git branch | lines | each { |line| $line | str replace '[\*\+] ' '' | str trim }
}
def "nu-complete git remotes" [] {
^git remote | lines | each { |line| $line | str trim }
}
# Download objects and refs from another repository
export extern "git fetch" [
repository?: string@"nu-complete git remotes" # name of the repository to fetch
branch?: string@"nu-complete git branches" # name of the branch to fetch
--all # Fetch all remotes
--append(-a) # Append ref names and object names to .git/FETCH_HEAD
--atomic # Use an atomic transaction to update local refs.
--depth: int # Limit fetching to n commits from the tip
--deepen: int # Limit fetching to n commits from the current shallow boundary
--shallow-since: string # Deepen or shorten the history by date
--shallow-exclude: string # Deepen or shorten the history by branch/tag
--unshallow # Fetch all available history
--update-shallow # Update .git/shallow to accept new refs
--negotiation-tip: string # Specify which commit/glob to report while fetching
--negotiate-only # Do not fetch, only print common ancestors
--dry-run # Show what would be done
--write-fetch-head # Write fetched refs in FETCH_HEAD (default)
--no-write-fetch-head # Do not write FETCH_HEAD
--force(-f) # Always update the local branch
--keep(-k) # Keep downloaded pack
--multiple # Allow several arguments to be specified
--auto-maintenance # Run 'git maintenance run --auto' at the end (default)
--no-auto-maintenance # Don't run 'git maintenance' at the end
--auto-gc # Run 'git maintenance run --auto' at the end (default)
--no-auto-gc # Don't run 'git maintenance' at the end
--write-commit-graph # Write a commit-graph after fetching
--no-write-commit-graph # Don't write a commit-graph after fetching
--prefetch # Place all refs into the refs/prefetch/ namespace
--prune(-p) # Remove obsolete remote-tracking references
--prune-tags(-P) # Remove any local tags that do not exist on the remote
--no-tags(-n) # Disable automatic tag following
--refmap: string # Use this refspec to map the refs to remote-tracking branches
--tags(-t) # Fetch all tags
--recurse-submodules: string # Fetch new commits of populated submodules (yes/on-demand/no)
--jobs(-j): int # Number of parallel children
--no-recurse-submodules # Disable recursive fetching of submodules
--set-upstream # Add upstream (tracking) reference
--submodule-prefix: string # Prepend to paths printed in informative messages
--upload-pack: string # Non-default path for remote command
--quiet(-q) # Silence internally used git commands
--verbose(-v) # Be verbose
--progress # Report progress on stderr
--server-option(-o): string # Pass options for the server to handle
--show-forced-updates # Check if a branch is force-updated
--no-show-forced-updates # Don't check if a branch is force-updated
-4 # Use IPv4 addresses, ignore IPv6 addresses
-6 # Use IPv6 addresses, ignore IPv4 addresses
--help # Display the help message for this command
]
# Check out git branches and files
export extern "git checkout" [
...targets: string@"nu-complete git branches" # name of the branch or files to checkout
--conflict: string # conflict style (merge or diff3)
--detach(-d) # detach HEAD at named commit
--force(-f) # force checkout (throw away local modifications)
--guess # second guess 'git checkout <no-such-branch>' (default)
--ignore-other-worktrees # do not check if another worktree is holding the given ref
--ignore-skip-worktree-bits # do not limit pathspecs to sparse entries only
--merge(-m) # perform a 3-way merge with the new branch
--orphan: string # new unparented branch
--ours(-2) # checkout our version for unmerged files
--overlay # use overlay mode (default)
--overwrite-ignore # update ignored files (default)
--patch(-p) # select hunks interactively
--pathspec-from-file: string # read pathspec from file
--progress # force progress reporting
--quiet(-q) # suppress progress reporting
--recurse-submodules: string # control recursive updating of submodules
--theirs(-3) # checkout their version for unmerged files
--track(-t) # set upstream info for new branch
-b: string # create and checkout a new branch
-B: string # create/reset and checkout a branch
-l # create reflog for new branch
--help # Display the help message for this command
]
# Push changes
export extern "git push" [
remote?: string@"nu-complete git remotes", # the name of the remote
...refs: string@"nu-complete git branches" # the branch / refspec
--all # push all refs
--atomic # request atomic transaction on remote side
--delete(-d) # delete refs
--dry-run(-n) # dry run
--exec: string # receive pack program
--follow-tags # push missing but relevant tags
--force(-f) # force updates
--ipv4(-4) # use IPv4 addresses only
--ipv6(-6) # use IPv6 addresses only
--mirror # mirror all refs
--no-verify # bypass pre-push hook
--porcelain # machine-readable output
--progress # force progress reporting
--prune # prune locally removed refs
--push-option(-o): string # option to transmit
--quiet(-q) # be more quiet
--receive-pack: string # receive pack program
--recurse-submodules: string # control recursive pushing of submodules
--repo: string # repository
--set-upstream(-u) # set upstream for git pull/status
--signed: string # GPG sign the push
--tags # push tags (can't be used with --all or --mirror)
--thin # use thin pack
--verbose(-v) # be more verbose
--help # Display the help message for this command
]
}
# Get just the extern definitions without the custom completion commands
use completions *
# For more information on themes, see
# https://www.nushell.sh/book/coloring_and_theming.html
let dark_theme = {
# color for nushell primitives
separator: white
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
header: green_bold
empty: blue
# Closures can be used to choose colors for specific values.
# The value (in this case, a bool) is piped into the closure.
bool: { if $in { 'light_cyan' } else { 'light_gray' } }
int: white
filesize: {|e|
if $e == 0b {
'white'
} else if $e < 1mb {
'cyan'
} else { 'blue' }
}
duration: white
date: { (date now) - $in |
if $in < 1hr {
'#e61919'
} else if $in < 6hr {
'#e68019'
} else if $in < 1day {
'#e5e619'
} else if $in < 3day {
'#80e619'
} else if $in < 1wk {
'#19e619'
} else if $in < 6wk {
'#19e5e6'
} else if $in < 52wk {
'#197fe6'
} else { 'light_gray' }
}
range: white
float: white
string: white
nothing: white
binary: white
cellpath: white
row_index: green_bold
record: white
list: white
block: white
hints: gray
shape_and: purple_bold
shape_binary: purple_bold
shape_block: blue_bold
shape_bool: light_cyan
shape_custom: green
shape_datetime: cyan_bold
shape_directory: cyan
shape_external: cyan
shape_externalarg: green_bold
shape_filepath: cyan
shape_flag: blue_bold
shape_float: purple_bold
# shapes are used to change the cli syntax highlighting
shape_garbage: { fg: "#FFFFFF" bg: "#FF0000" attr: b}
shape_globpattern: cyan_bold
shape_int: purple_bold
shape_internalcall: cyan_bold
shape_list: cyan_bold
shape_literal: blue
shape_matching_brackets: { attr: u }
shape_nothing: light_cyan
shape_operator: yellow
shape_or: purple_bold
shape_pipe: purple_bold
shape_range: yellow_bold
shape_record: cyan_bold
shape_redirection: purple_bold
shape_signature: green_bold
shape_string: green
shape_string_interpolation: cyan_bold
shape_table: blue_bold
shape_variable: purple
}
let light_theme = {
# color for nushell primitives
separator: dark_gray
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
header: green_bold
empty: blue
# Closures can be used to choose colors for specific values.
# The value (in this case, a bool) is piped into the closure.
bool: { if $in { 'dark_cyan' } else { 'dark_gray' } }
int: dark_gray
filesize: {|e|
if $e == 0b {
'dark_gray'
} else if $e < 1mb {
'cyan_bold'
} else { 'blue_bold' }
}
duration: dark_gray
date: { (date now) - $in |
if $in < 1hr {
'red3b'
} else if $in < 6hr {
'orange3'
} else if $in < 1day {
'yellow3b'
} else if $in < 3day {
'chartreuse2b'
} else if $in < 1wk {
'green3b'
} else if $in < 6wk {
'darkturquoise'
} else if $in < 52wk {
'deepskyblue3b'
} else { 'dark_gray' }
}
range: dark_gray
float: dark_gray
string: dark_gray
nothing: dark_gray
binary: dark_gray
cellpath: dark_gray
row_index: green_bold
record: white
list: white
block: white
hints: dark_gray
shape_and: purple_bold
shape_binary: purple_bold
shape_block: blue_bold
shape_bool: light_cyan
shape_custom: green
shape_datetime: cyan_bold
shape_directory: cyan
shape_external: cyan
shape_externalarg: green_bold
shape_filepath: cyan
shape_flag: blue_bold
shape_float: purple_bold
# shapes are used to change the cli syntax highlighting
shape_garbage: { fg: "#FFFFFF" bg: "#FF0000" attr: b}
shape_globpattern: cyan_bold
shape_int: purple_bold
shape_internalcall: cyan_bold
shape_list: cyan_bold
shape_literal: blue
shape_matching_brackets: { attr: u }
shape_nothing: light_cyan
shape_operator: yellow
shape_or: purple_bold
shape_pipe: purple_bold
shape_range: yellow_bold
shape_record: cyan_bold
shape_redirection: purple_bold
shape_signature: green_bold
shape_string: green
shape_string_interpolation: cyan_bold
shape_table: blue_bold
shape_variable: purple
}
# External completer example
# let carapace_completer = {|spans|
# carapace $spans.0 nushell $spans | from json
# }
let fish_completer = {|spans|
fish --command $'complete "--do-complete=($spans | str join " ")"' | str trim | split row "\n" | each { |line| $line | split column "\t" value description } | flatten
}
# The default config record. This is where much of your global configuration is setup.
let-env config = {
ls: {
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
}
rm: {
always_trash: false # always act as if -t was given. Can be overridden with -p
}
cd: {
abbreviations: false # allows `cd s/o/f` to expand to `cd some/other/folder`
}
table: {
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
trim: {
methodology: wrapping # wrapping or truncating
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
}
}
explore: {
help_banner: true
exit_esc: true
command_bar_text: '#C4C9C6'
# command_bar: {fg: '#C4C9C6' bg: '#223311' }
status_bar_background: {fg: '#1D1F21' bg: '#C4C9C6' }
# status_bar_text: {fg: '#C4C9C6' bg: '#223311' }
highlight: {bg: 'yellow' fg: 'black' }
status: {
# warn: {bg: 'yellow', fg: 'blue'}
# error: {bg: 'yellow', fg: 'blue'}
# info: {bg: 'yellow', fg: 'blue'}
}
try: {
# border_color: 'red'
# highlighted_color: 'blue'
# reactive: false
}
table: {
split_line: '#404040'
cursor: true
line_index: true
line_shift: true
line_head_top: true
line_head_bottom: true
show_head: true
show_index: true
# selected_cell: {fg: 'white', bg: '#777777'}
# selected_row: {fg: 'yellow', bg: '#C1C2A3'}
# selected_column: blue
# padding_column_right: 2
# padding_column_left: 2
# padding_index_left: 2
# padding_index_right: 1
}
config: {
cursor_color: {bg: 'yellow' fg: 'black' }
# border_color: white
# list_color: green
}
}
history: {
max_size: 10000 # Session has to be reloaded for this to take effect
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
file_format: "plaintext" # "sqlite" or "plaintext"
}
completions: {
case_sensitive: false # set to true to enable case-sensitive completions
quick: true # set this to false to prevent auto-selecting completions when only one remains
partial: true # set this to false to prevent partial filling of the prompt
algorithm: "prefix" # prefix or fuzzy
external: {
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
completer: null # check 'carapace_completer' above as an example
}
}
filesize: {
metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto
}
color_config: $dark_theme # if you want a light theme, replace `$dark_theme` to `$light_theme`
use_grid_icons: true
footer_mode: "25" # always, never, number_of_rows, auto
float_precision: 2
# buffer_editor: "emacs" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
use_ansi_coloring: true
edit_mode: emacs # emacs, vi
shell_integration: true # enables terminal markers and a workaround to arrow keys stop working issue
show_banner: false # true or false to enable or disable the banner
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
hooks: {
pre_prompt: [{
null # replace with source code to run before the prompt is shown
}]
pre_execution: [{
null # replace with source code to run before the repl input is run
}]
env_change: {
PWD: [{|before, after|
null # replace with source code to run if the PWD environment is different since the last repl input
}]
}
display_output: {
if (term size).columns >= 100 { table -e } else { table }
}
}
menus: [
# Configuration for default nushell menus
# Note the lack of source parameter
{
name: completion_menu
only_buffer_difference: false
marker: "| "
type: {
layout: columnar
columns: 4
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
col_padding: 2
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
}
{
name: history_menu
only_buffer_difference: true
marker: "? "
type: {
layout: list
page_size: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
}
{
name: help_menu
only_buffer_difference: true
marker: "? "
type: {
layout: description
columns: 4
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
col_padding: 2
selection_rows: 4
description_rows: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
}
# Example of extra menus created using a nushell source
# Use the source field to create a list of records that populates
# the menu
{
name: commands_menu
only_buffer_difference: false
marker: "# "
type: {
layout: columnar
columns: 4
col_width: 20
col_padding: 2
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
source: { |buffer, position|
$nu.scope.commands
| where name =~ $buffer
| each { |it| {value: $it.name description: $it.usage} }
}
}
{
name: vars_menu
only_buffer_difference: true
marker: "# "
type: {
layout: list
page_size: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
source: { |buffer, position|
$nu.scope.vars
| where name =~ $buffer
| sort-by name
| each { |it| {value: $it.name description: $it.type} }
}
}
{
name: commands_with_description
only_buffer_difference: true
marker: "# "
type: {
layout: description
columns: 4
col_width: 20
col_padding: 2
selection_rows: 4
description_rows: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
source: { |buffer, position|
$nu.scope.commands
| where name =~ $buffer
| each { |it| {value: $it.name description: $it.usage} }
}
}
]
keybindings: [
{
name: completion_menu
modifier: none
keycode: tab
mode: [emacs vi_normal vi_insert]
event: {
until: [
{ send: menu name: completion_menu }
{ send: menunext }
]
}
}
{
name: completion_previous
modifier: shift
keycode: backtab
mode: [emacs, vi_normal, vi_insert] # Note: You can add the same keybinding to all modes by using a list
event: { send: menuprevious }
}
{
name: history_menu
modifier: control
keycode: char_r
mode: emacs
event: { send: menu name: history_menu }
}
{
name: next_page
modifier: control
keycode: char_x
mode: emacs
event: { send: menupagenext }
}
{
name: undo_or_previous_page
modifier: control
keycode: char_z
mode: emacs
event: {
until: [
{ send: menupageprevious }
{ edit: undo }
]
}
}
{
name: yank
modifier: control
keycode: char_y
mode: emacs
event: {
until: [
{edit: pastecutbufferafter}
]
}
}
{
name: unix-line-discard
modifier: control
keycode: char_u
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{edit: cutfromlinestart}
]
}
}
{
name: kill-line
modifier: control
keycode: char_k
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{edit: cuttolineend}
]
}
}
# Keybindings used to trigger the user defined menus
{
name: commands_menu
modifier: control
keycode: char_t
mode: [emacs, vi_normal, vi_insert]
event: { send: menu name: commands_menu }
}
{
name: vars_menu
modifier: alt
keycode: char_o
mode: [emacs, vi_normal, vi_insert]
event: { send: menu name: vars_menu }
}
{
name: commands_with_description
modifier: control
keycode: char_s
mode: [emacs, vi_normal, vi_insert]
event: { send: menu name: commands_with_description }
}
]
}
alias ll = ls -al
alias emd = emacs --daemon
alias emdk = emacsclient --eval '(kill-emacs)'
alias em = emacsclient -c -a 'emacs'
alias emt = emacsclient -c -a 'emacs -nw'
alias emtangle = emacs --batch -eval "(require 'org)" --eval '(org-babel-tangle-file "~/.config/emacs/emacs.org")'
alias startsv = ssh odroid startsv
alias stopsv = ssh odroid stopsv
alias cat = bat
#alias gpulls = enter ~/.config/emacs; git pull; enter ~/org; git pull; exit; exit
alias vi = nvim
let vether_ip = (cat /etc/resolv.conf | grep nameserver | tr -s ' ' | cut -d ' ' -f2) + ":10"
let-env DISPLAY = $vether_ip
let-env PYTHONSTARTUP = $env.HOME + "/scripts/my_imports.py"
source ~/.cache/starship/init.nu
source ~/.local/share/atuin/init.nu
#let hostname = (cat /etc/hostname)
#figlet -w 100 $hostname

View File

@ -1,66 +0,0 @@
# Nushell Environment Config File
def create_left_prompt [] {
let path_segment = if (is-admin) {
$"(ansi red_bold)($env.PWD)"
} else {
$"(ansi green_bold)($env.PWD)"
}
$path_segment
}
def create_right_prompt [] {
let time_segment = ([
(date now | date format '%m/%d/%Y %r')
] | str join)
$time_segment
}
# Use nushell functions to define your right and left prompt
let-env PROMPT_COMMAND = { create_left_prompt }
let-env PROMPT_COMMAND_RIGHT = { create_right_prompt }
# The prompt indicators are environmental variables that represent
# the state of the prompt
let-env PROMPT_INDICATOR = { "〉" }
let-env PROMPT_INDICATOR_VI_INSERT = { ": " }
let-env PROMPT_INDICATOR_VI_NORMAL = { "〉" }
let-env PROMPT_MULTILINE_INDICATOR = { "::: " }
# Specifies how environment variables are:
# - converted from a string to a value on Nushell startup (from_string)
# - converted from a value back to a string when running external commands (to_string)
# Note: The conversions happen *after* config.nu is loaded
let-env ENV_CONVERSIONS = {
"PATH": {
from_string: { |s| $s | split row (char esep) | path expand -n }
to_string: { |v| $v | path expand -n | str join (char esep) }
}
"Path": {
from_string: { |s| $s | split row (char esep) | path expand -n }
to_string: { |v| $v | path expand -n | str join (char esep) }
}
}
# Directories to search for scripts when calling source or use
#
# By default, <nushell-config-dir>/scripts is added
let-env NU_LIB_DIRS = [
($nu.config-path | path dirname | path join 'scripts')
]
# Directories to search for plugin binaries when calling register
#
# By default, <nushell-config-dir>/plugins is added
let-env NU_PLUGIN_DIRS = [
($nu.config-path | path dirname | path join 'plugins')
]
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
# let-env PATH = ($env.PATH | split row (char esep) | prepend '/some/path')
mkdir ~/.cache/starship
starship init nu | save -f ~/.cache/starship/init.nu

View File

@ -1,9 +0,0 @@
/* Rofi config file */
configuration {
lines: 12;
font: "hack 10";
show-icons: true;
theme: "~/.config/rofi/themes/onedark";
display-window: "Window";
display-drun: "Search";
}

View File

@ -1,131 +0,0 @@
/*
* ROFI color theme
*
* Based on Base16 Material Color Scheme (https://github.com/ntpeters/base16-materialtheme-scheme)
*
* User: Tomaszal
* Copyright: Tomas Zaluckij
*/
* {
base00: #263238;
base01: #2E3C43;
base02: #314549;
base03: #546E7A;
base04: #B2CCD6;
base05: #EEFFFF;
base06: #EEFFFF;
base07: #FFFFFF;
base08: #F07178;
base09: #F78C6C;
base0A: #FFCB6B;
base0B: #C3E88D;
base0C: #89DDFF;
base0D: #82AAFF;
base0E: #C792EA;
base0F: #FF5370;
/*base0D: #00BCD4;*/
spacing: 0;
background-color: transparent;
font: "Roboto Mono 13";
}
window {
transparency: "real";
/*fullscreen: true;*/
background-color: #263238CC; /*base00 + CC (80% opacity)*/
}
mainbox {
children: [inputbar, message, mode-switcher, listview];
spacing: 30px;
/*margin: 20%;*/
padding: 30px 0;
border: 1px;
border-color: @base0D;
}
inputbar {
padding: 0 30px;
children: [prompt, textbox-prompt-colon, entry, case-indicator];
}
prompt {
text-color: @base0D;
}
textbox-prompt-colon {
expand: false;
str: ":";
margin: 0 1ch 0 0;
text-color: @base0D;
}
entry {
text-color: @base07;
}
case-indicator {
text-color: @base0F;
}
mode-switcher, message {
border: 1px 0;
border-color: @base0D;
}
button, textbox {
background-color: @base03;
text-color: @base07;
padding: 5px;
}
button selected {
background-color: @base0D;
}
listview {
scrollbar: true;
margin: 0 10px 0 30px;
}
scrollbar {
background-color: @base03;
handle-color: @base0D;
handle-width: 10px;
border: 0 1px;
border-color: @base0D;
margin: 0 0 0 20px;
}
element {
padding: 5px;
highlight: bold underline;
}
element normal {
background-color: transparent;
}
element selected {
background-color: @base0D;
}
element alternate {
/*background-color: @base03;*/
}
element normal normal, element selected normal, element alternate normal {
text-color: @base07;
}
element normal urgent, element selected urgent, element alternate urgent {
text-color: @base0F;
}
element normal active, element selected active, element alternate active {
text-color: @base0B;
}

View File

@ -1,101 +0,0 @@
/*
* ROFI One Dark
*
* Based on OneDark.vim (https://github.com/joshdick/onedark.vim)
*
* Author: Benjamin Stauss
* User: me-benni
*
*/
* {
black: #000000;
red: #eb6e67;
green: #95ee8f;
yellow: #f8c456;
blue: #6eaafb;
mangenta: #d886f3;
cyan: #6cdcf7;
emphasis: #50536b;
text: #dfdfdf;
text-alt: #b2b2b2;
fg: #abb2bf;
bg: #282c34;
spacing: 0;
background-color: transparent;
font: "Fira Code 12";
text-color: @text;
}
window {
transparency: "real";
fullscreen: true;
background-color: #282c34dd;
border: 0px;
}
mainbox {
padding: 30% 30%;
}
inputbar {
margin: 0px 0px 20px 0px;
children: [prompt, textbox-prompt-colon, entry, case-indicator];
}
prompt {
text-color: @blue;
}
textbox-prompt-colon {
expand: false;
str: ":";
text-color: @text-alt;
}
entry {
margin: 0px 10px;
}
listview {
spacing: 5px;
dynamic: true;
scrollbar: false;
}
element {
padding: 5px;
text-color: @text-alt;
highlight: bold #95ee8f; /* green */
border-radius: 3px;
}
element selected {
background-color: @emphasis;
text-color: @text;
}
element urgent, element selected urgent {
text-color: @red;
}
element active, element selected active {
text-color: @purple;
}
message {
padding: 5px;
border-radius: 3px;
background-color: @emphasis;
border: 1px;
border-color: @cyan;
}
button selected {
padding: 5px;
border-radius: 3px;
background-color: @emphasis;
}

View File

@ -1,170 +0,0 @@
/**
* Oxide Color theme
* Author: Diki Ananta <diki1aap@gmail.com>
* Repository: https://github.com/dikiaap/dotfiles
* License: MIT
**/
* {
selected-normal-foreground: var(lightfg);
foreground: rgba ( 196, 202, 212, 100 % );
normal-foreground: var(foreground);
alternate-normal-background: rgba ( 42, 42, 42, 100 % );
red: rgba ( 194, 65, 65, 100 % );
selected-urgent-foreground: var(lightfg);
blue: rgba ( 43, 131, 166, 100 % );
urgent-foreground: var(lightfg);
alternate-urgent-background: var(red);
active-foreground: var(lightfg);
lightbg: var(foreground);
selected-active-foreground: var(lightfg);
alternate-active-background: var(blue);
background: rgba ( 33, 33, 33, 100 % );
alternate-normal-foreground: var(foreground);
normal-background: var(background);
lightfg: rgba ( 249, 249, 249, 100 % );
selected-normal-background: rgba ( 90, 90, 90, 100 % );
separatorcolor: rgba ( 183, 183, 183, 100 % );
spacing: 2;
border-color: var(foreground);
urgent-background: var(red);
alternate-active-foreground: var(active-foreground);
alternate-urgent-foreground: var(urgent-foreground);
background-color: rgba ( 0, 0, 0, 0 % );
selected-urgent-background: rgba ( 214, 78, 78, 100 % );
active-background: var(blue);
selected-active-background: rgba ( 39, 141, 182, 100 % );
}
element {
border: 0;
spacing: 4px;
padding: 1px;
}
element normal.normal {
background-color: var(normal-background);
text-color: var(normal-foreground);
}
element normal.urgent {
background-color: var(urgent-background);
text-color: var(urgent-foreground);
}
element normal.active {
background-color: var(active-background);
text-color: var(active-foreground);
}
element selected.normal {
background-color: var(selected-normal-background);
text-color: var(selected-normal-foreground);
}
element selected.urgent {
background-color: var(selected-urgent-background);
text-color: var(selected-urgent-foreground);
}
element selected.active {
background-color: var(selected-active-background);
text-color: var(selected-active-foreground);
}
element alternate.normal {
background-color: var(alternate-normal-background);
text-color: var(alternate-normal-foreground);
}
element alternate.urgent {
background-color: var(alternate-urgent-background);
text-color: var(alternate-urgent-foreground);
}
element alternate.active {
background-color: var(alternate-active-background);
text-color: var(alternate-active-foreground);
}
element-text {
background-color: rgba ( 0, 0, 0, 0 % );
highlight: inherit;
text-color: inherit;
}
element-icon {
background-color: rgba ( 0, 0, 0, 0 % );
size: 21px;
text-color: inherit;
}
window {
background-color: var(background);
border: 0;
padding: 8;
}
mainbox {
border: 0;
padding: 0;
}
message {
border: 2px dash 0px 0px;
border-color: var(separatorcolor);
padding: 1px;
}
textbox {
text-color: var(foreground);
}
listview {
fixed-height: 0;
border: 0;
border-color: var(separatorcolor);
spacing: 2px;
scrollbar: true;
padding: 2px 0px 0px;
}
scrollbar {
width: 4px;
border: 0;
handle-color: rgba ( 85, 85, 85, 100 % );
handle-width: 8px;
padding: 0;
}
sidebar {
border: 2px dash 0px 0px;
border-color: var(separatorcolor);
}
button {
spacing: 0;
text-color: var(normal-foreground);
}
button selected {
background-color: var(selected-normal-background);
text-color: var(selected-normal-foreground);
}
num-filtered-rows {
expand: false;
text-color: rgba ( 128, 128, 128, 100 % );
}
num-rows {
expand: false;
text-color: rgba ( 128, 128, 128, 100 % );
}
textbox-num-sep {
expand: false;
str: "/";
text-color: rgba ( 128, 128, 128, 100 % );
}
inputbar {
spacing: 0px;
text-color: var(normal-foreground);
padding: 1px;
children: [ prompt,textbox-prompt-colon,entry,overlay,case-indicator ];
}
case-indicator {
spacing: 0;
text-color: var(normal-foreground);
}
entry {
placeholder: "";
spacing: 0;
text-color: var(normal-foreground);
placeholder-color: rgba ( 128, 128, 128, 100 % );
}
prompt {
spacing: 0;
text-color: var(normal-foreground);
}
textbox-prompt-colon {
expand: false;
str: ":";
margin: 0px 0.3000em 0.0000em 0.0000em;
text-color: inherit;
}

View File

@ -1,48 +0,0 @@
#!/usr/bin/env python3
import sys
import os
import glob
import json
import re
from kitchen.text.converters import to_bytes, to_unicode
curr = os.popen('xdotool get_desktop').read().strip()
numtotal = os.popen('xdotool get_num_desktops').read().strip()
curr = int(curr)
numtotal = int(numtotal)
re_ws = re.compile('\s+')
try:
wm_info = os.popen('wmctrl -m').readlines()
wm_name = [x for x in wm_info if 'Name:' in x]
wm_name = wm_name[0].strip().replace('Name: ', '')
except:
exit() # probably no wm
windows = os.popen("wmctrl -l").readlines()
used_windows = [int(re_ws.split(w)[1]) for w in windows]
used_windows = set(used_windows)
def xmobar_color(s, col):
if col is None:
return str(s)
else:
return '<fc={}>{}</fc>'.format(col, s)
out = []
for i in range(int(numtotal)):
if i == curr:
# col = "#c84c00"
col = "#e67128"
elif i in used_windows:
col = None
else:
col = "#606060"
# if wm_name == 'LG3D' or wm_name == 'EXWM': # xmonad
index = (i+1) % 10
s = xmobar_color(index, col)
out.append(s)
print(' '.join(out))

View File

@ -1,12 +0,0 @@
#!/usr/bin/env bash
STATUS=`cat /sys/class/power_supply/BAT0/status`
if [ $STATUS = "Charging" ]; then
echo "<fc=#f0c674><fn=1></fn></fc>"
elif [ $STATUS = "Discharging" ]; then
echo "<fc=#e86f69><fn=1></fn></fc>"
else
echo "<fn=1></fn>"
fi

View File

@ -1,48 +0,0 @@
#!/bin/sh
# Copied from https://github.com/jaor/xmobar/issues/239#issuecomment-233206552
# Detects the width of running trayer-srg window (xprop name 'panel')
# and creates an XPM icon of that width, 1px height, and transparent.
# Outputs an <icon>-tag for use in xmobar to display the generated
# XPM icon.
#
# Run script from xmobar:
# `Run Com "/where/ever/trayer-padding-icon.sh" [] "trayerpad" 10`
# and use `%trayerpad%` in your template.
# Function to create a transparent Wx1 px XPM icon
create_xpm_icon () {
timestamp=$(date)
pixels=$(for i in `seq $1`; do echo -n "."; done)
cat << EOF > "$2"
/* XPM *
static char * trayer_pad_xpm[] = {
/* This XPM icon is used for padding in xmobar to */
/* leave room for trayer-srg. It is dynamically */
/* updated by by trayer-padding-icon.sh which is run */
/* by xmobar. */
/* Created: ${timestamp} */
/* <w/cols> <h/rows> <colors> <chars per pixel> */
"$1 1 1 1",
/* Colors (none: transparent) */
". c none",
/* Pixels */
"$pixels"
};
EOF
}
# Width of the trayer window
width=$(xprop -name panel | grep 'program specified minimum size' | cut -d ' ' -f 5)
# Icon file name
iconfile="/tmp/trayer-padding-${width}px.xpm"
# If the desired icon does not exist create it
if [ ! -f $iconfile ]; then
create_xpm_icon $width $iconfile
fi
# Output the icon tag for xmobar
echo "<icon=${iconfile}/>"

View File

@ -1,43 +0,0 @@
-- http://projects.haskell.org/xmobar/
-- install xmobar with these flags: --flags="with_alsa" --flags="with_mpd" --flags="with_xft" OR --flags="all_extensions"
-- you can find weather location codes here: http://weather.noaa.gov/index.html
Config { font = "xft:NanumGothic:weight=bold:pixelsize=11:antialias=true:hinting=true"
, additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=11:antialias=true:hinting=true"
, "xft:FontAwesome:pixelsize=12"
]
, bgColor = "#282c34"
, fgColor = "#ff6c6b"
, position = Static { xpos = 2560 , ypos = 0, width = 1920, height = 24 }
, lowerOnStart = True
, hideOnStart = False
, allDesktops = True
, persistent = True
, iconRoot = "/home/jaeus/.xmonad/" -- default: "."
, commands = [
-- Time and date
Run Date "<fn=1>\xf133 </fn> %b %d %Y - (%H:%M) " "date" 50
-- Network up and down
, Run Network "enp10s0" ["-t", "<fn=1>\xf0ab </fn> <rx>kb <fn=1>\xf0aa </fn> <tx>kb"] 20
-- Cpu usage in percent
, Run Cpu ["-t", "<fn=1>\xf108 </fn> cpu: (<total>%)","-H","50","--high","red"] 20
-- Ram used number and percent
, Run Memory ["-t", "<fn=1>\xf233 </fn> mem: <used>M (<usedratio>%)"] 20
-- Disk space free
, Run DiskU [("/", "<fn=1>\xf0c7 </fn> hdd: <free> free")] [] 60
-- Runs custom script to check for pacman updates.
-- This script is in my dotfiles repo in .local/bin.
, Run Com "~/.local/bin/pacupdate" [] "pacupdate" 36000
-- Runs a standard shell command 'uname -r' to get kernel version
, Run Com "uname" ["-r"] "" 3600
-- Prints out the left side items such as workspaces, layout, etc.
-- The workspaces are 'clickable' in my configs.
, Run Com "/bin/sh" [ "-c", "/home/jaeus/.config/xmobar/trayer-padding-icon.sh" ] "trayerpad" 20
-- Prints out the left side items such as workspaces, layout, etc.
-- The workspaces are 'clickable' in my configs.
, Run UnsafeStdinReader
]
, sepChar = "%"
, alignSep = "}{"
, template = " <action=`xdotool key control+alt+g`><icon=haskell_20.xpm/> </action><fc=#666666> |</fc> %UnsafeStdinReader% }{ <fc=#666666> |</fc> <fc=#b3afc2><fn=1> </fn> %uname% </fc><fc=#666666> |</fc> <fc=#ecbe7b> %cpu% </fc><fc=#666666> |</fc> <fc=#ff6c6b> %memory% </fc><fc=#666666> |</fc> <fc=#51afef> %disku% </fc><fc=#666666> |</fc> <fc=#98be65> %enp10s0% </fc><fc=#666666> |</fc> <fc=#46d9ff> %date% </fc>"
}

View File

@ -1,52 +0,0 @@
-- http://projects.haskell.org/xmobar/
-- install xmobar with these flags: --flags="with_alsa" --flags="with_mpd" --flags="with_xft" OR --flags="all_extensions"
-- you can find weather location codes here: http://weather.noaa.gov/index.html
Config { -- font = "xft:Noto Sans CJK KR:weight=bold:pixelsize=14:antialias=true:hinting=true"
-- , additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=14:antialias=true:hinting=true"
-- , "xft:FontAwesome:pixelsize=16"
-- ]
--font = "xft:DejaVu Sans:size=9.5:antialias=true"
font = "xft:NanumGothic:weight=bold:pixelsize=14:antialias=true:hinting=true"
, additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=11:antialias=true:hinting=true"
, "xft:FontAwesome:pixelsize=12"
]
, bgColor = "#282c34"
, fgColor = "#ff6c6b"
, position = Static { xpos = 0 , ypos = 0, width = 2560, height = 36 }
, lowerOnStart = True
, hideOnStart = False
, allDesktops = True
, persistent = True
, iconRoot = "/home/jaeus/.xmonad/" -- default: "."
, commands = [
Run Date "<fn=1> </fn> %A %B %d <fn=1> </fn> %H:%M" "date" 50
, Run BatteryP ["BAT0"] ["-t", "<left> (<timeleft>)", "-S", "True"
,"-L","20","-H","70"
,"-l","#ff3333",
"--normal","#f0c674",
"--high", "#99cc99" ] 50
, Run Com "bash" ["/home/jaeus/.config/xmobar/scripts/battery_icon.sh"] "batteryIcon" 50
-- Time and date
-- Run Date "<fn=1>\xf133 </fn> %b %d %Y - (%H:%M) " "date" 50
-- Network up and down
, Run Network "enp10s0" ["-t", "<fn=1>\xf0ab </fn> <rx>kb <fn=1>\xf0aa </fn> <tx>kb"] 20
-- Cpu usage in percent
, Run Cpu ["-t", "<fn=1>\xf108 </fn> (<total>%)","-H","50","--high","red"] 20
-- Ram used number and percent
, Run Memory ["-t", "<fn=1>\xf233 </fn> <used>M (<usedratio>%)"] 20
-- Disk space free
, Run DiskU [("/", "<fn=1>\xf0c7 </fn> <free> free")] [] 60
-- Runs a standard shell command 'uname -r' to get kernel version
, Run Com "uname" ["-r"] "" 3600
-- Prints out the left side items such as workspaces, layout, etc.
-- The workspaces are 'clickable' in my configs.
, Run Com "/bin/sh" [ "-c", "/home/jaeus/.config/xmobar/trayer-padding-icon.sh" ] "trayerpad" 20
-- Prints out the left side items such as workspaces, layout, etc.
-- The workspaces are 'clickable' in my configs.
, Run UnsafeStdinReader
]
, sepChar = "%"
, alignSep = "}{"
, template = " <action=`xdotool key control+alt+g`><icon=haskell_20.xpm/> </action><fc=#666666> |</fc> %UnsafeStdinReader% }{ <fc=#666666> |</fc> <fc=#b3afc2><fn=1> </fn> %uname% </fc> <fc=#666666> |</fc><fc=#ecbe7b> %cpu% </fc><fc=#666666> |</fc> <fc=#ff6c6b> %memory% </fc><fc=#666666> |</fc> <fc=#51afef> %disku% </fc><fc=#666666> |</fc> <fc=#98be65> %enp10s0% </fc><fc=#666666> |</fc><fc=#46d9ff> %date% </fc><fc=#666666> |</fc>%trayerpad%"
}

View File

@ -1,44 +0,0 @@
-- http://projects.haskell.org/xmobar/
-- install xmobar with these flags: --flags="with_alsa" --flags="with_mpd" --flags="with_xft" OR --flags="all_extensions"
-- you can find weather location codes here: http://weather.noaa.gov/index.html
Config { font = "xft:NanumGothic:weight=bold:pixelsize=11:antialias=true:hinting=true"
, additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=11:antialias=true:hinting=true"
, "xft:FontAwesome:pixelsize=12"
]
, bgColor = "#282c34"
, fgColor = "#ff6c6b"
, position = Static { xpos = 2560 , ypos = 0, width = 1920, height = 24 }
, lowerOnStart = True
, hideOnStart = False
, allDesktops = True
, persistent = True
, iconRoot = "/home/jaeus/.xmonad/" -- default: "."
, commands = [
-- Time and date
Run Date "<fn=1>\xf133 </fn> %b %d %Y - (%H:%M) " "date" 50
-- Network up and down
, Run Network "enp10s0" ["-t", "<fn=1>\xf0ab </fn> <rx>kb <fn=1>\xf0aa </fn> <tx>kb"] 20
-- Cpu usage in percent
, Run Cpu ["-t", "<fn=1>\xf108 </fn> cpu: (<total>%)","-H","50","--high","red"] 20
-- Ram used number and percent
, Run Memory ["-t", "<fn=1>\xf233 </fn> mem: <used>M (<usedratio>%)"] 20
-- Disk space free
, Run DiskU [("/", "<fn=1>\xf0c7 </fn> hdd: <free> free")] [] 60
-- Runs custom script to check for pacman updates.
-- This script is in my dotfiles repo in .local/bin.
, Run Com "~/.local/bin/pacupdate" [] "pacupdate" 36000
-- Runs a standard shell command 'uname -r' to get kernel version
, Run Com "uname" ["-r"] "" 3600
-- Prints out the left side items such as workspaces, layout, etc.
-- The workspaces are 'clickable' in my configs.
, Run Com "/usr/bin/python3" ["$HOME/.config/xmobar/get_workspace_exwm.py"] "workspaces" 10
, Run Com "/bin/sh" [ "-c", "/home/jaeus/.config/xmobar/trayer-padding-icon.sh" ] "trayerpad" 20
-- Prints out the left side items such as workspaces, layout, etc.
-- The workspaces are 'clickable' in my configs.
, Run UnsafeStdinReader
]
, sepChar = "%"
, alignSep = "}{"
, template = " <action=`xdotool key control+alt+g`><icon=haskell_20.xpm/> </action><fc=#666666> |</fc> %UnsafeStdinReader% }{ <fc=#666666> |</fc> <fc=#b3afc2><fn=1> </fn> %uname% </fc><fc=#666666> |</fc> <fc=#ecbe7b> %cpu% </fc><fc=#666666> |</fc> <fc=#ff6c6b> %memory% </fc><fc=#666666> |</fc> <fc=#51afef> %disku% </fc><fc=#666666> |</fc> <fc=#98be65> %enp10s0% </fc><fc=#666666> |</fc> <fc=#46d9ff> %date% </fc>"
}

View File

@ -1,43 +0,0 @@
Config { font = "xft:NanumGothic:weight=bold:pixelsize=11:antialias=true:hinting=true"
, additionalFonts = [ "xft:Mononoki Nerd Font:pixelsize=11:antialias=true:hinting=true"
, "xft:FontAwesome:pixelsize=12"
]
, bgColor = "#282c34"
, fgColor = "#ff6c6b"
, position = Static { xpos = 0 , ypos = 0, width = 1920, height = 24 }
, lowerOnStart = True
, hideOnStart = False
, allDesktops = True
, persistent = True
, iconRoot = "/home/jaeus/.xmonad/" -- default: "."
, commands = [
Run Date "<fn=1> </fn> %A %B %d <fn=1> </fn> %H:%M" "date" 50
, Run BatteryP ["BAT0"] ["-t", "<left> (<timeleft>)", "-S", "True"
,"-L","20","-H","70"
,"-l","#ff3333",
"--normal","#f0c674",
"--high", "#99cc99" ] 50
, Run Com "bash" ["/home/jaeus/.config/xmobar/scripts/battery_icon.sh"] "batteryIcon" 50
-- Time and date
-- Run Date "<fn=1>\xf133 </fn> %b %d %Y - (%H:%M) " "date" 50
-- Network up and down
, Run Network "wlp3s0" ["-t", "<fn=1>\xf0ab </fn> <rx>kb <fn=1>\xf0aa </fn> <tx>kb"] 20
-- Cpu usage in percent
, Run Cpu ["-t", "<fn=1>\xf108 </fn> (<total>%)","-H","50","--high","red"] 20
-- Ram used number and percent
, Run Memory ["-t", "<fn=1>\xf233 </fn> <used>M (<usedratio>%)"] 20
-- Disk space free
, Run DiskU [("/", "<fn=1>\xf0c7 </fn> <free> free")] [] 60
-- Runs a standard shell command 'uname -r' to get kernel version
, Run Com "uname" ["-r"] "" 3600
-- Prints out the left side items such as workspaces, layout, etc.
-- The workspaces are 'clickable' in my configs.
, Run Com "/bin/sh" [ "-c", "/home/jaeus/.config/xmobar/trayer-padding-icon.sh" ] "trayerpad" 20
-- Prints out the left side items such as workspaces, layout, etc.
-- The workspaces are 'clickable' in my configs.
, Run UnsafeStdinReader
]
, sepChar = "%"
, alignSep = "}{"
, template = " <action=`xdotool key control+alt+g`><icon=haskell_20.xpm/> </action><fc=#666666> |</fc> %UnsafeStdinReader% }{ <fc=#666666> |</fc> <fc=#b3afc2><fn=1> </fn> %uname% </fc> <fc=#666666> |</fc><fc=#ecbe7b> %cpu% </fc><fc=#666666> |</fc> <fc=#ff6c6b> %memory% </fc><fc=#666666> |</fc> <fc=#51afef> %disku% </fc><fc=#666666> |</fc> <fc=#98be65> %wlp3s0% </fc><fc=#666666> |</fc><fc=#46d9ff> %date% </fc><fc=#666666> |</fc> %batteryIcon% %battery%<fc=#666666> |</fc>%trayerpad%"
}

View File

@ -1,565 +0,0 @@
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
(setq-default tab-width 4)
(defvaralias 'c-basic-offset 'tab-width)
(setq! indent-tabs-mode t)
;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file!
(setq default-input-method "korean-hangul")
(global-set-key (kbd "<Hangul>") 'toggle-input-method)
;; Some functionality uses this to identify you, e.g. GPG configuration, email
;; clients, file templates and snippets. It is optional.
(setq user-full-name "JaeYoo-Im"
user-mail-address "cpu3792@gmail.com")
;; Doom exposes five (optional) variables for controlling fonts in Doom:
;;
;; - `doom-font' -- the primary font to use
;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming.
;; - `doom-unicode-font' -- for unicode glyphs
;; - `doom-serif-font' -- for the `fixed-pitch-serif' face
;;
;; See 'C-h v doom-font' for documentation and more examples of what they
;; accept. For example:
;;
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
;;
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
;; refresh your font settings. If Emacs still can't find your font, it likely
;; wasn't installed correctly. Font issues are rarely Doom issues!
;; | 12345678 | |
;; |----------+---|
;; | 일이삼사 | |
(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
doom-variable-pitch-font (font-spec :family "Ubuntu" :size 13))
(set-fontset-font t 'hangul (font-spec :name "NanumGothic"))
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default:
(if (display-graphic-p)
(setq doom-theme 'doom-palenight)
(setq doom-theme 'doom-gruvbox))
(unless (display-graphic-p)
(xterm-mouse-mode))
(beacon-mode 1)
(global-auto-revert-mode 1)
(setq global-auto-revert-non-file-buffers t)
;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'.
(setq display-line-numbers-type t)
;; If you use `org' and don't want your org files in the default location below,
;; change `org-directory'. It must be set before org loads!
(setq org-directory "~/org/")
;; Whenever you reconfigure a package, make sure to wrap your config in an
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
;;
;; (after! PACKAGE
;; (setq x y))
;;
;; The exceptions to this rule:
;;
;; - Setting file/directory variables (like `org-directory')
;; - Setting variables which explicitly tell you to set them before their
;; package is loaded (see 'C-h v VARIABLE' to look up their documentation).
;; - Setting doom variables (which start with 'doom-' or '+').
;;
;; Here are some additional functions/macros that will help you configure Doom.
;;
;; - `load!' for loading external *.el files relative to this one
;; - `use-package!' for configuring packages
;; - `after!' for running code after a package has loaded
;; - `add-load-path!' for adding directories to the `load-path', relative to
;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
;; - `map!' for binding new keys
;;
;; To get information about any of these functions/macros, move the cursor over
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
;; This will open documentation for it, including demos of how they are used.
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
;; etc).
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
;; --------------------------------------------------------------------------------------------
;; -Virtico
;; --------------------------------------------------------------------------------------------
;;(if (display-graphic-p)
;; (vertico-posframe-mode 1))
;; --------------------------------------------------------------------------------------------
;; -Transparency
;; --------------------------------------------------------------------------------------------
(defvar gvar/frame-transparency '(85 . 85))
(defun toggle-transparency ()
(interactive)
(let ((alpha (frame-parameter nil 'alpha)))
(set-frame-parameter
nil 'alpha
(if (eql (cond ((numberp alpha) alpha)
((numberp (cdr alpha)) (cdr alpha))
;; Also handle undocumented (<active> <inactive>) form.
((numberp (cadr alpha)) (cadr alpha)))
100)
gvar/frame-transparency '(100 . 100)))))
(global-set-key (kbd "C-c t") 'toggle-transparency)
(defun my/org-roam-rg-search ()
"Search org-roam directory using consult-ripgrep. With live-preview."
(interactive)
(let ((consult-ripgrep-command "rg --null --ignore-case --type org --line-buffered --color=always --max-columns=500 --no-heading --line-number . -e ARG OPTS"))
(consult-ripgrep org-roam-directory)))
;; --------------------------------------------------------------------------------------------
;; - Language Server Client
;; --------------------------------------------------------------------------------------------
(after! dap-mode
(setq dap-python-debugger 'debugpy))
;; --------------------------------------------------------------------------------------------
;; - Org Paste Clipboard image for windows, in linux(use org-screenshot-take)
;; --------------------------------------------------------------------------------------------
(defun my-org-paste-image ()
"Paste an image into a time stamped unique-named file in the
same directory as the org-buffer and insert a link to this file."
(interactive)
(let* ((target-file
(concat
(make-temp-name
(concat "~/org/images/"
(f-filename buffer-file-name)
"_"
(format-time-string "%Y%m%d_%H%M%S_"))) ".png"))
(wsl-path
(concat (as-windows-path(file-name-directory target-file))
"/"
(file-name-nondirectory target-file)))
(ps-script
(concat "(Get-Clipboard -Format image).Save('" wsl-path "')")))
(powershell ps-script)
(if (file-exists-p target-file)
(progn (insert (concat "[[" target-file "]]"))
(org-display-inline-images))
(user-error
"Error pasting the image, make sure you have an image in the clipboard!"))
))
(defun my-org-remove-link-and-trash-linked-file ()
"Remove `org-mode' link at point and trash linked file."
(interactive)
(let* ((link (org-element-context))
(path (org-element-property :path link)))
(move-file-to-trash path)
(delete-region (org-element-property :begin link)
(org-element-property :end link))))
(defun as-windows-path (unix-path)
"Takes a unix path and returns a matching WSL path"
;; substring removes the trailing \n
(substring
(shell-command-to-string
(concat "wslpath -w " unix-path)) 0 -1))
(defun powershell (script)
"executes the given script within a powershell and returns its return value"
(call-process "powershell.exe" nil nil nil
"-Command" (concat "& {" script "}")))
;; --------------------------------------------------------------------------------------------
;; - Dashboard
;; --------------------------------------------------------------------------------------------
(use-package dashboard
:init ;; tweak dashboard config before loading it
(setq dashboard-set-heading-icons t)
(setq dashboard-set-file-icons t)
(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner
;;(setq dashboard-startup-banner "~/.config/doom/doom-emacs-dash.png") ;; use custom image as banner
(setq dashboard-center-content t) ;; set to 't' for centered content
(setq dashboard-items '((recents . 10)
(bookmarks . 5)
(projects . 10)))
(setq dashboard-set-footer t)
(setq dashboard-page-separator "\n\f\n")
(setq dashboard-set-navigator t)
;; Format: "(icon title help action face prefix suffix)"
(setq dashboard-navigator-buttons
`(;; line1
((,(all-the-icons-octicon "mark-github" :height 1.1 :v-adjust 0.0)
"Github"
"Browse my Github"
(lambda (&rest _) (browse-url "https://github.com/JaeUs3792/")))
(,(all-the-icons-octicon "home" :height 1.1 :v-adjust 0.0)
"Homepage"
"Browse my Homepage"
(lambda (&rest _) (browse-url "https://jaeus.net")))
(,(all-the-icons-octicon "zap" :height 1.1 :v-adjust 0.0)
"Update"
"Doom upgrade"
(lambda (&rest _) (doom/upgrade)) warning))))
:config
(dashboard-setup-startup-hook)
(dashboard-modify-heading-icons '((recents . "file-text")
(bookmarks . "book"))))
(setq doom-fallback-buffer-name "*dashboard*")
(after! dashboard
(page-break-lines-mode))
;; --------------------------------------------------------------------------------------------
;; - Rainbow delimiter mode for programming.
;; --------------------------------------------------------------------------------------------
(add-hook 'verilog-mode-hook #'rainbow-delimiters-mode)
;; --------------------------------------------------------------------------------------------
;; Avy multi-buffer
;; --------------------------------------------------------------------------------------------
(setq! avy-all-windows t)
;; --------------------------------------------------------------------------------------------
;; - Calendar
;; --------------------------------------------------------------------------------------------
(use-package! calfw)
(use-package! calfw-org)
;; --------------------------------------------------------------------------------------------
;; - Neotree
;; --------------------------------------------------------------------------------------------
;; comment ~/.emacs.d/modules/ui/doom/config.el (add-hook 'doom-load-theme-hook #'doom-themes-neotree-config)
(setq! neo-theme (if (display-graphic-p) 'icons 'arrow))
(setq! neo-smart-open t)
;;(doom-themes-neotree-config)
;;(setq! doom-themes-neotree-file-icons t)
;;;; --------------------------------------------------------------------------------------------
;; - Org Mode
;; --------------------------------------------------------------------------------------------
(with-eval-after-load 'org
;; This is needed as of Org 9.2
(require 'org-tempo)
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
(add-to-list 'org-structure-template-alist '("hs" . "src haskell"))
(add-to-list 'org-structure-template-alist '("cc" . "src c"))
(add-to-list 'org-structure-template-alist '("cp" . "src c++"))
(add-to-list 'org-structure-template-alist '("rs" . "src rust"))
(add-to-list 'org-structure-template-alist '("py" . "src jupyter-python"))
(add-to-list 'org-structure-template-alist '("oc" . "src octave"))
(add-to-list 'org-structure-template-alist '("vl" . "src verilog"))
(add-to-list 'org-structure-template-alist '("vh" . "src vhdl")))
(after! org
(setq! org-hide-emphasis-markers t)
(setq org-superstar-item-bullet-alist
'((?+ . ?➤)
(?* . ?)
(?- . ?•)))
(custom-set-faces!
'(org-level-1 :height 1.7 :weight ultra-bold :foreground "#81a2be") ;; :foreground "#81a2be"
'(org-level-2 :height 1.6 :weight extra-bold :foreground "#b294bb") ;; :foreground "#b294bb"
'(org-level-3 :height 1.5 :weight bold :foreground "#b5bd68") ;; :foreground "#b5bd68"
'(org-level-4 :height 1.4 :weight semi-bold :foreground "#e6c547") ;; :foreground "#e6c547"
'(org-level-5 :height 1.3 :weight normal :foreground "#cc6666") ;; :foreground "#cc6666"
'(org-level-6 :height 1.2 :weight normal :foreground "#70c0ba") ;; :foreground "#70c0ba"
'(org-level-7 :height 1.1 :weight normal :foreground "#b77ee0") ;; :foreground "#b77ee0"
'(org-level-8 :height 1.0 :weight normal :foreground "#9ec400")) ;; :foreground "#9ec400"
(custom-set-faces!
'(org-document-title :height 2.0)))
(setq org-use-sub-superscripts '{})
(setq org-export-with-sub-superscripts '{})
;; --------------------------------------------------------------------------------------------
;; - Org Roam
;; --------------------------------------------------------------------------------------------
(defun my/org-roam-list-notes-by-tag (tag-name)
(mapcar #'org-roam-node-file
(seq-filter
(my/org-roam-filter-by-tag tag-name)
(org-roam-node-list))))
(defun my/org-roam-refresh-agenda-list ()
(interactive)
(setq org-agenda-files (my/org-roam-list-notes-by-tag "Project"))
(add-to-list 'org-agenda-files "~/org/agenda/agenda.org"))
(defun my/org-roam-filter-by-tag (tag-name)
(lambda (node)
(member tag-name (org-roam-node-tags node))))
;;(with-eval-after-load 'org-roam
;; (defun my/org-roam-project-finalize-hook ()
;; "Adds the captured project file to `org-agenda-files' if the
;;capture was not aborted."
;; ;; Remove the hook since it was added temporarily
;; (remove-hook 'org-capture-after-finalize-hook #'my/org-roam-project-finalize-hook)
;;
;; ;; Add project file to the agenda list if the capture was confirmed
;; (unless org-note-abort
;; (with-current-buffer (org-capture-get :buffer)
;; (add-to-list 'org-agenda-files (buffer-file-name)))))
;; (defun my/org-roam-find-project ()
;; (interactive)
;; ;; Add the project file to the agenda after capture is finished
;; (add-hook 'org-capture-after-finalize-hook #'my/org-roam-project-finalize-hook)
;;
;; ;; Select a project file to open, creating it if necessary
;; (org-roam-node-find
;; nil
;; nil
;; (my/org-roam-filter-by-tag "Project")
;; :templates
;; '(("p" "project" plain "* Goals\n\n%?\n\n* Tasks\n\n** TODO Add initial tasks\n\n* Dates\n\n"
;; :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: Project")
;; :unnarrowed t))))
;; (defun my/org-roam-capture-inbox ()
;; (interactive)
;; (org-roam-capture- :node (org-roam-node-create)
;; :templates '(("i" "inbox" plain "* %?"
;; :if-new (file+head "Inbox.org" "#+title: Inbox\n")))))
;;
;; (defun my/org-roam-copy-todo-to-today ()
;; (interactive)
;; (let ((org-refile-keep t) ;; Set this to nil to delete the original!
;; (org-roam-dailies-capture-templates
;; '(("t" "tasks" entry "%?"
;; :if-new (file+head+olp "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n" ("Tasks")))))
;; (org-after-refile-insert-hook #'save-buffer)
;; today-file
;; pos)
;; (save-window-excursion
;; (org-roam-dailies--capture (current-time) t)
;; (setq today-file (buffer-file-name))
;; (setq pos (point)))
;;
;; ;; Only refile if the target file is different than the current file
;; (unless (equal (file-truename today-file)
;; (file-truename (buffer-file-name)))
;; (org-refile nil nil (list "Tasks" today-file nil pos))))))
;; --------------------------------------------------------------------------------------------
;; - Org Agenda
;; --------------------------------------------------------------------------------------------
(use-package! org-super-agenda
:after org
:config
(org-super-agenda-mode 1)
(my/org-roam-refresh-agenda-list))
(setq org-agenda-custom-commands
'(("z" "Org mode super agenda"
((alltodo "" ((org-agenda-overriding-header "")
(org-super-agenda-groups
'((:name "Important"
:tag "Important"
:priority "A"
:order 6)
(:name "Due Today"
:deadline today
:order 2)
(:name "Due Soon"
:deadline future
:order 8)
(:name "Overdue"
:deadline past
:order 7)
(:name "Projects"
:tag "Project"
:order 14)
(:name "To read"
:tag "Read"
:order 30)
(:name "Waiting"
:todo "WAIT"
:order 20)
(:name "Holding"
:todo "HOLD"
:order 21)
(:name "trivial"
:priority<= "C"
:tag ("Trivial" "Unimportant")
:order 90)
(:discard (:tag ("Chore" "Routine" "Daily")))))))))))
(after! org
;;(setq org-todo-keywords
;; '((sequence "TODO(t@/!)" "NEXT(n)" "WAIT(w)" "HOLD(h)" "|" "DONE(d)" "KILL(k)")))
(setq! org-log-into-drawer "LOGBOOK")
(setq! org-clock-into-drawer "CLOCKING")
(setq! org-lowest-priority 68))
(use-package! org-fancy-priorities
:config
(setq org-fancy-priorities-list '("" "" "" "")))
;; --------------------------------------------------------------------------------------------
;; - Org Graphviz
;; --------------------------------------------------------------------------------------------
(org-babel-do-load-languages
'org-babel-load-languages
'((dot . t)))
;; --------------------------------------------------------------------------------------------
;; - Org Mode extra configuration
;; --------------------------------------------------------------------------------------------
(setq org-odt-preferred-output-format "docx")
;;(use-package! ob-translate
;; :config
;; (setq ob-translate:default-dest "ko")
;; (setq google-translate-backend-method 'wget))
(setq google-translate-backend-method 'curl)
(use-package! org-journal
:config
(setq org-journal-file-type 'weekly))
;; --------------------------------------------------------------------------------------------
;; - Org Caldav
;; --------------------------------------------------------------------------------------------
;;(use-package! org-caldav
;; :after org)
;;(defun my/caldav-sync-perso ()
;; "Sync my local calendar in ~/org/calendar.org with my remote calendar"
;; (interactive)
;; (let ((org-caldav-inbox "~/org/cal_inbox.org")
;; (org-caldav-calendar-id "org")
;; (org-caldav-url "https://jaeus.net/webdav")
;; (org-caldav-files '("~/org/calendar.org")))
;; (call-interactively 'org-caldav-sync)))
;; --------------------------------------------------------------------------------------------
;; - Org Roam UI Mode
;; --------------------------------------------------------------------------------------------
(use-package! websocket
:after org-roam)
(use-package! org-roam-ui
:after org-roam ;; or :after org
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
;; a hookable mode anymore, you're advised to pick something yourself
;; if you don't care about startup time, use
;;:hook (after-init . org-roam-ui-mode)
:config
(setq! org-roam-ui-sync-theme t
org-roam-ui-follow t
org-roam-ui-update-on-save t
org-roam-ui-open-on-start nil))
;; --------------------------------------------------------------------------------------------
;; - Org Publish
;; --------------------------------------------------------------------------------------------
(setq org-publish-use-timestamps-flag nil)
(setq org-export-with-broken-lilnks t)
(setq org-publish-project-alist
'(("jaeus.net"
:base-directory "~/org/www/"
:base-extension "org"
:publishing-directory "~/Projects/html/"
:recursive t
:publishing-function org-html-publish-to-html
:headline-levels 4
:auto-preamble t)))
;; --------------------------------------------------------------------------------------------
;; - EPUB
;; --------------------------------------------------------------------------------------------
(use-package! nov)
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
;; --------------------------------------------------------------------------------------------
;; - Open with external program
;; --------------------------------------------------------------------------------------------
;;(use-package openwith
;; :after-call pre-command-hook
;; :config
;; (setq large-file-warning-threshold nil)
;; (openwith-mode t)
;; (setq openwith-associations
;; (list (list (openwith-make-extension-regexp
;; '("mpg" "mpeg" "mp3" "mp4" "m4v"
;; "avi" "wmv" "wav" "mov" "flv"
;; "ogm" "ogg" "mkv"))
;; "mpv"
;; '(file))
;; (list (openwith-make-extension-regexp
;; '("pdf"))
;; "zathura"
;; '(file)))))
;; --------------------------------------------------------------------------------------------
;; - Lang - Latex
;; --------------------------------------------------------------------------------------------
(setq! +latex-viewers '(zathura))
;; --------------------------------------------------------------------------------------------
;; - Lang - Verilog
;; --------------------------------------------------------------------------------------------
(setq! verilog-auto-newline nil)
(setq! verilog-highlight-translate-off t)
(setq! verilog-indent-level 4)
(setq! verilog-indent-level-module 0)
(setq! verilog-indent-level-behavioral 4)
(setq! verilog-indent-level-declaration 0)
(setq! verilog-case-indent 4)
(setq! verilog-cexp-indent 4)
(setq! verilog-indent-lists nil)
; --------------------------------------------------------------------------------------------
;; - Dired
;; --------------------------------------------------------------------------------------------
(use-package! dired
:config
(evil-collection-define-key 'normal 'dired-mode-map
"h" 'dired-up-directory
"l" 'dired-find-file))
(use-package! dired-hide-dotfiles
:hook (dired-mode . dired-hide-dotfiles-mode)
:config
(evil-collection-define-key 'normal 'dired-mode-map
"H" 'dired-hide-dotfiles-mode))
(setq! delete-by-moving-to-trash t
trash-directory "~/.local/share/Trash/files/")
(map! :leader
(:prefix ("d" . "dired")
:desc "Open dired" "d" #'dired
:desc "Dired jump to current" "j" #'dired-jump)
(:after dired
(:map dired-mode-map
:desc "Peep-dired image previews" "d p" #'peep-dired
:desc "Dired view file" "d v" #'dired-view-file)))
(evil-define-key 'normal peep-dired-mode-map
(kbd "j") 'peep-dired-next-file
(kbd "k") 'peep-dired-prev-file)
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
; --------------------------------------------------------------------------------------------
;; - KeyBindings
;; --------------------------------------------------------------------------------------------
(map! "C-s" 'consult-line)
(map! "C-M-l" 'consult-imenu)
(map! "C-M-j" 'persp-switch-to-buffer)
(map! :leader
;; file bind
:desc "Org Agenda Common"
"oac" '(lambda () (interactive) (find-file (expand-file-name "~/org/agenda/agenda.org")))
:desc "Org Calendar"
"oc" 'cfw:open-org-calendar
:desc "dOtfiles"
"fo" '(:ignore t)
:desc "doom config.el"
"foc" '(lambda () (interactive) (find-file (expand-file-name "~/.doom.d/config.el")))
:desc "doom package.el"
"fop" '(lambda () (interactive) (find-file (expand-file-name "~/.doom.d/packages.el")))
:desc "doom init.el"
"foi" '(lambda () (interactive) (find-file (expand-file-name "~/.doom.d/init.el")))
;; Eshell
:desc "eshell"
"e" '(:ignore t)
:desc "eshell"
"e s" 'eshell
;; AVY
:desc "AVY"
"v" '(:ignore t)
:desc "Avy goto char"
"vc" 'avy-goto-char
:desc "Avy goto word"
"vw" 'avy-goto-word-0
:desc "Avy goto line"
"vl" 'avy-goto-line
;; Org mode
:desc "org roam refresh agenda list"
"oar" 'my/org-roam-refresh-agenda-list
:desc "org roam ui open"
"nru" 'org-roam-ui-open
:desc "org roam find tag:project"
"nrp" 'my/org-roam-find-project
:desc "org roam find with ripgrep (preview)"
"nrg" 'my/org-roam-rg-search)

View File

@ -1,14 +0,0 @@
(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.
'(auth-source-save-behavior nil)
'(custom-safe-themes
'("47db50ff66e35d3a440485357fb6acb767c100e135ccdf459060407f8baea7b2" "234dbb732ef054b109a9e5ee5b499632c63cc24f7c2383a849815dacc1727cb6" "835868dcd17131ba8b9619d14c67c127aa18b90a82438c8613586331129dda63" default)))
(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.
)

View File

@ -1,200 +0,0 @@
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it!
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find a link to Doom's Module Index where all
;; of our modules are listed, including what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c c k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;;
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code).
(doom! :input
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
;;chinese
;;japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
company ; the ultimate code completion backend
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
;;ivy ; a search engine for love and life
(vertico +icons) ; the search engine of the future
:ui
;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
;;doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
(emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra
;;indent-guides ; highlighted indent columns
;;(ligatures +extras) ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
;;tabs ; a tab bar for Emacs
;;treemacs ; a project drawer, like neotree but cooler
;;unicode ; extended unicode support for various languages
vc-gutter ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
;;window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
;;zen ; distraction-free coding or writing
:editor
(evil +everywhere); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
;;(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys
;;lispy ; vim for lisp, for people who don't like vim
;;multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent
:emacs
(dired +icons) ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
(ibuffer +icons) ; interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
;;vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
(spell +flyspell) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make
:tools
;;ansible
;;biblio ; Writes a PhD for you (citation needed)
(debugger +lsp) ; FIXME stepping through code, to help you add bugs
;;direnv
;;docker
;;editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists
lookup ; navigate your code and its documentation
(lsp +peek) ; M-x vscode
magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
;;upload ; map local to remote projects via ssh/ftp
:os
(:if IS-MAC macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience
:lang
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
;;(cc +lsp) ; C > C++ == 1
;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
;;data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;dhall
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
;;factor
;;faust ; dsp, but you get to keep your soul
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
;;(go +lsp) ; the hipster dialect
;;(graphql +lsp) ; Give queries a REST
;;(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
json ; At least it ain't XML
;;(java +lsp) ; the poster child for carpal tunnel syndrome
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
(latex +latexmk +fold) ; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
;;ledger ; be audit you can be
;;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org
+dragndrop
+roam2
+journal
+jupyter
+pretty
+gnuplot
+hugo) ; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
(python +lsp) ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
;;web ; the tubes
yaml ; JSON, but readable
;;zig ; C, but simpler
:email
;;(mu4e +org +gmail)
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
:config
;;literate
(default +bindings +smartparens))

View File

@ -1,68 +0,0 @@
;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el
;; To install a package with Doom you must declare them here and run 'doom sync'
;; on the command line, then restart Emacs for the changes to take effect -- or
;; use 'M-x doom/reload'.
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;(package! some-package)
;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/raxod502/straight.el#the-recipe-format
;(package! another-package
; :recipe (:host github :repo "username/repo"))
;; If the package you are trying to install does not contain a PACKAGENAME.el
;; file, or is located in a subdirectory of the repo, you'll need to specify
;; `:files' in the `:recipe':
;(package! this-package
; :recipe (:host github :repo "username/repo"
; :files ("some-file.el" "src/lisp/*.el")))
;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property:
;(package! builtin-package :disable t)
;; You can override the recipe of a built in package without having to specify
;; all the properties for `:recipe'. These will inherit the rest of its recipe
;; from Doom or MELPA/ELPA/Emacsmirror:
;(package! builtin-package :recipe (:nonrecursive t))
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
;; Specify a `:branch' to install a package from a particular branch or tag.
;; This is required for some packages whose default branch isn't 'master' (which
;; our package manager can't deal with; see raxod502/straight.el#279)
;(package! builtin-package :recipe (:branch "develop"))
;; Use `:pin' to specify a particular commit to install.
;(package! builtin-package :pin "1a2b3c4d5e")
;; Doom's packages are pinned to a specific commit and updated from release to
;; release. The `unpin!' macro allows you to unpin single packages...
;(unpin! pinned-package)
;; ...or multiple packages
;(unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t)
(unpin! org-roam)
(package! org-roam-ui)
;;(package! ob-translate)
(package! google-translate)
(package! dired-hide-dotfiles)
(package! nov)
;;(package! org-caldav)
(package! openwith)
(package! org-super-agenda)
(package! graphviz-dot-mode)
(package! vertico-posframe)
(package! peep-dired)
(package! beacon)
(package! calfw)
(package! calfw-org)
(package! dashboard)
(package! page-break-lines)
;;(package! eglot)

View File

@ -1,29 +0,0 @@
# -*- mode: snippet -*-
# name: AUTO State ASCII
# uuid:
# key: trigger-key
# condition: t
# --
localparam // auto enum state_info
S_IDLE = 0;
reg [2:0] // auto enum state_info
cstate, nstate;
// synthesis translate_off
/*AUTOASCIIENUM("cstate", "cstate_ascii_r", "")*/
// synthesis translate_on
always@(posedge clk) begin
if(rst) begin
cstate <= S_IDLE;
end
else begin
cstate <= nstate;
end
end
always@* begin
case(cstate)
S_IDLE : nstate = S_IDLE;
default : nstate = S_IDLE;
endcase
end

View File

@ -1,11 +0,0 @@
# -*- mode: snippet -*-
# name: always(async rst)
# key:
# --
always@(posedge clk or posedge rst) begin
if(rst) begin
/*AUTORESET*/
end
else begin
end
end

View File

@ -1,11 +0,0 @@
# -*- mode: snippet -*-
# name: always(async rstn)
# key:
# --
always@(posedge clk or negedge rstn) begin
if(!rstn) begin
/*AUTORESET*/
end
else begin
end
end

View File

@ -1,11 +0,0 @@
# -*- mode: snippet -*-
# name: always(sync rst)
# key:
# --
always@(posedge clk) begin
if(rst) begin
/*AUTORESET*/
end
else begin
end
end

View File

@ -1,11 +0,0 @@
# -*- mode: snippet -*-
# name: always(sync rstn)
# key:
# --
always@(posedge clk) begin
if(!rstn) begin
/*AUTORESET*/
end
else begin
end
end

View File

@ -1,18 +0,0 @@
# -*- mode: snippet -*-
# name: module(base)
# key:
# --
module example
#(
parameter DIN_LEN = 8
)
(/*AUTOARG*/);
/*AUTOINPUT*/
/*AUTOOUTPUT*/
/*AUTOWIRE*/
/*AUTOREG*/
endmodule

View File

@ -1,981 +0,0 @@
;;; morning-star-theme.el --- Emacs 24 theme with a dark background.
;; Copyright (C) 2016, Alexander Miller
;; Author: Alexander Miller
;;
;; Version: 0.1
;; Package-Requires: ((emacs "24"))
;; Created with emacs-theme-generator, https://github.com/mswift42/theme-creator.
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;; This file is not part of Emacs.
;;; Commentary:
;;; Code:
(deftheme morning-star)
(let ((class '((class color) (min-colors 89)))
(fg "#bbbbbb")
(bg "#2d2d31")
(bg2 "#25252a")
(grey1 "#666666")
(grey2 "#383844")
(grey3 "#343440")
(black1 "#1a1a1a")
(black2 "#000000")
(red1 "#f2777a")
(red2 "#bb6666")
(red3 "#ab3737")
(red4 "#221111")
(green1 "#66aa66")
(green2 "#559955")
(green3 "#112211")
(aqua1 "#55a9a9")
(aqua2 "#1e8f8f")
(purple1 "#997799")
(purple2 "#886688")
(yellow1 "#f0c674")
(yellow2 "#ddba1a")
(orange1 "#c98459")
(orange2 "#b87348")
(brown1 "#ccb18b")
(brown2 "#9f8b6f")
(blue1 "#5588bb")
(blue2 "#4477aa")
(blue3 "#333366"))
(custom-theme-set-faces
'morning-star
;; Syntax highlghting
`(default ((,class (:foreground ,fg :background ,bg))))
`(default-italic ((,class (:italic t))))
`(font-lock-builtin-face ((,class (:foreground ,aqua1))))
`(font-lock-comment-face ((,class (:foreground ,grey1))))
`(font-lock-comment-delimiter-face ((,class (:foreground ,grey1))))
`(font-lock-negation-char-face ((,class (:foreground ,red1))))
`(font-lock-constant-face ((,class (:foreground ,red1))))
`(font-lock-reference-face ((,class (:foreground ,red1))))
`(font-lock-preprocessor-face ((,class (:foreground ,aqua1))))
`(font-lock-doc-face ((,class (:foreground ,brown1))))
`(font-lock-function-name-face ((,class (:foreground ,blue1))))
`(font-lock-keyword-face ((,class (:foreground ,purple1 :bold t))))
`(font-lock-string-face ((,class (:foreground ,green1))))
`(font-lock-type-face ((,class (:foreground ,yellow1))))
`(font-lock-variable-name-face ((,class (:foreground ,orange1))))
`(font-lock-warning-face ((,class (:foreground ,red1 :underline (:style wave)))))
;; Mode Line
`(mode-line ((,class (:box (:color ,black2) :background ,black1 :foreground ,green1 :bold t))))
`(mode-line-highlight ((,class (:box (:color ,black2) :underline t))))
`(mode-line-emphasis ((,class (:box (:color ,black2) :bolt t))))
`(mode-line-inactive ((,class (:box (:color ,black2) :background ,bg2 :foreground ,green1))))
`(powerline-active1 ((,class (:box (:color ,black2) :background ,black1 :foreground ,purple1 :bold t))))
`(powerline-active2 ((,class (:box (:color ,black2) :background ,black1 :foreground ,black1))))
`(mode-line-buffer-id ((,class (:box (:color ,black2) :foreground ,orange1 :bold t))))
`(powerline-inactive1 ((,class (:box (:color ,black2) :background ,bg2 :foreground ,purple1))))
`(powerline-inactive2 ((,class (:box (:color ,black2) :background ,bg2 :foreground ,purple1))))
`(spaceline-evil-normal ((,class (:box (:color ,black2) :background ,black1 :foreground ,red3))))
`(spaceline-evil-insert ((,class (:box (:color ,black2) :background ,black1 :foreground ,green1))))
`(spaceline-evil-visual ((,class (:box (:color ,black2) :background ,black1 :foreground ,purple1))))
`(spaceline-evil-emacs ((,class (:box (:color ,black2) :background ,black1 :foreground ,aqua1))))
`(spaceline-evil-motion ((,class (:box (:color ,black2) :background ,black1 :foreground ,orange1))))
`(spaceline-evil-replace ((,class (:box (:color ,black2) :background ,black1 :foreground ,aqua2))))
`(spaceline-flycheck-error ((,class (:box (:color ,black2) :foreground ,red2))))
`(spaceline-flycheck-warning ((,class (:box (:color ,black2) :foreground ,yellow2))))
`(spaceline-flycheck-info ((,class (:box (:color ,black2) :foreground ,green2))))
;; Standard UI Items
`(show-paren-match ((,class (:underline ,aqua2 :bold t))))
`(isearch ((,class (:background ,red3 :foreground ,yellow2))))
`(internal-border ((,class (:background ,black2))))
`(child-frame-border ((,class (:background ,black2))))
`(lazy-highlight ((,class (:background ,red1 :foreground ,black1))))
`(link ((,class (:foreground ,aqua1 :underline (:color ,aqua1)))))
`(link-visited ((,class (:foreground ,aqua2 :underline (:color ,aqua2)))))
`(button ((,class (:background ,bg2 :foreground ,blue1 :box (:color ,grey3 :line-width 2 :style released-button) :bold t))))
`(linum ((,class (:background ,bg :foreground ,grey1 :bold nil :box nil :overline nil :underline nil :italic nil))))
`(line-number ((,class (:background ,bg :foreground ,grey1 :bold t))))
`(line-number-current-line ((,class (:background ,bg :foreground ,green1 :bold t))))
`(region ((,class (:background ,black1 :foreground ,fg))))
`(highlight ((,class (:background ,black1 :foreground ,fg))))
`(hl-line ((,class (:background ,grey2))))
`(highlight-indentation-face ((,class (:background ,grey2))))
`(header-line ((,class (:box (:color ,black2) :background ,black1))))
`(fringe ((,class (:background ,bg))))
`(cursor ((,class (:background ,red1))))
`(minibuffer-prompt ((,class (:foreground ,purple1))))
`(vertical-border ((,class (:foreground ,black2))))
`(error ((,class (:foreground ,red3))))
`(success ((,class (:foreground ,green1))))
`(warning ((,class (:foreground ,yellow2))))
`(eval-sexp-fu-flash ((,class (:background ,green1 :foreground ,black1))))
`(eval-sexp-fu-flash-error ((,class (:background ,red3 :foreground ,fg))))
`(secondary-selection ((,class (nil))))
`(match ((,class (:background ,red3 :foreground ,fg))))
`(tooltip ((,class (:background ,bg2 :foreground ,brown1))))
`(help-key-binding ((,class (:foreground ,orange2 :bold t))))
`(variable-pitch ((,class (:family "Iosevka Aile"))))
;; Widgets
`(widget-field ((,class (:foreground ,brown1 :background ,grey3 :bold t :box (:line-width -1 :color ,grey1)))))
;; Tabs
`(tab-line ((,class (:background ,black1 :foreground ,fg :box (:line-width 3 :color ,black1) :overline ,black1))))
`(tab-line-tab ((,class (:background ,black1 :foreground ,fg :box (:line-width 3 :color ,black1) :overline ,black1))))
`(tab-line-tab-current ((,class (:background ,bg2 :foreground ,fg :box (:line-width 3 :color ,bg2) :overline ,blue1))))
`(tab-line-tab-inactive ((,class (:background ,black1 :foreground ,fg :box (:line-width 3 :color ,black1) :overline ,black1))))
`(tab-line-highlight ((,class (:background ,bg :foreground ,fg :box (:line-width 3 :color ,bg) :overline ,blue1))))
;; Anzu
`(anzu-mode-line ((,class (:foreground ,yellow2 :background ,bg2))))
`(anzu-replace-highlight ((,class (:foreground ,yellow2 :background ,red3))))
`(anzu-replace-to ((,class (:foreground ,black1 :background ,blue1))))
;; Xref
`(xref-file-header ((,class (:foreground ,brown1))))
`(xref-line-number ((,class (:foreground ,green1))))
`(xref-match ((,class (:background ,black1))))
;; Evil
`(evil-search-highlight-persist-highlight-face ((,class (:foreground ,black1 :background ,red1))))
`(evil-ex-substitute-matches ((,class (:inherit anzu-replace-highlight))))
`(evil-ex-substitute-replacement ((,class (:inherit anzu-replace-to))))
;; Evil Goggles
`(evil-goggles-default-face ((,class (:foreground ,black1 :background ,blue2 :bold t))))
`(evil-goggles-delete-face ((,class (:foreground ,black1 :background ,red3 :bold t))))
`(evil-goggles-indent-face ((,class (:foreground ,black1 :background ,orange2 :bold t))))
`(evil-goggles-yank-face ((,class (:foreground ,black1 :background ,blue1 :bold t))))
`(evil-goggles-join-face ((,class (:foreground ,red2 :background ,bg2 :bold t))));; TODO
`(evil-goggles-fill-and-move-face ((,class (:foreground ,red2 :background ,bg2 :bold t))));; TODO
`(evil-goggles-paste-face ((,class (:foreground ,black1 :background ,green1 :bold t))))
`(evil-goggles-shift-face ((,class (:foreground ,black1 :background ,aqua1 :bold t))))
`(evil-goggles-surround-face ((,class (:foreground ,black1 :background ,purple1 :bold t))))
`(evil-goggles-commentary-face ((,class (:foreground ,grey3 :background ,grey1 :bold t))))
`(evil-goggles-nerd-commenter-face ((,class (:foreground ,grey3 :background ,grey1 :bold t))))
`(evil-goggles-replace-with-register-face ((,class (:foreground ,red2 :background ,bg2 :bold t))));; TODO
`(evil-goggles-set-marker-face ((,class (:foreground ,black1 :background ,aqua2 :bold t))))
`(evil-goggles-undo-redo-add-face ((,class (:foreground ,black1 :background ,green1 :bold t))))
`(evil-goggles-undo-redo-remove-face ((,class (:foreground ,black1 :background ,red3 :bold t))))
`(evil-goggles-undo-redo-change-face ((,class (:foreground ,black1 :background ,blue1 :bold t))))
;; Spacemacs specifica
`(spacemacs-normal-face ((,class (:foreground ,black1 :background ,red3))))
`(spacemacs-visual-face ((,class (:foreground ,black1 :background ,purple2))))
`(spacemacs-insert-face ((,class (:foreground ,black1 :background ,green1))))
`(spacemacs-motion-face ((,class (:foreground ,black1 :background ,brown1))))
`(spacemacs-emacs-face ((,class (:foreground ,black1 :background ,aqua2))))
;; Ido
`(ido-first-match ((,class (:foreground ,green1))))
`(ido-incomplete-regexp ((,class (:inherit error))))
`(ido-indicator ((,class (:background ,red3 :foreground ,yellow2))))
`(ido-only-match ((,class (:foreground ,green2 :bold t))))
`(ido-subdir ((,class (:foreground ,blue1))))
`(ido-virtual ((,class (:foreground ,aqua1))))
`(ido-vertical-match-face ((,class (:foreground ,red1))))
`(ido-vertical-first-match ((,class (:inherit ido-first-match))))
`(ido-vertical-only-match ((,class (:inherit ido-only-match))))
;; Group Customization
`(custom-button ((,class (:inherit button))))
`(custom-button-mouse ((,class (:background ,blue1 :inherit custom-button))))
`(custom-button-pressed ((,class (:foreground ,black1 :background ,blue1 :box (:line-width -1 :color ,black1 :style pressed-button)))))
`(custom-comment ((,class (:inherit font-lock-comment-face))))
`(custom-comment-tag ((,class (:inherit font-lock-comment-face))))
`(custom-documentation ((,class (:foreground ,fg))))
`(custom-group-subtitle ((,class (:foreground ,purple1 :bold t :underline t))))
`(custom-group-tag ((,class (:foreground ,purple1 :bold t :underline nil :height 1.25))))
`(custom-group-tag-1 ((,class (:foreground ,aqua1 :bold t :underline t :height 1.5))))
`(custom-state ((,class (:foreground ,green2))))
`(custom-variable-tag ((,class (:foreground ,purple1 :bold t :underline t))))
;; Ediff
`(ediff-current-diff-A ((,class (:foreground ,black2 :background ,purple2))))
`(ediff-current-diff-B ((,class (:foreground ,black2 :background ,purple2))))
`(ediff-current-diff-C ((,class (:foreground ,aqua1 :background ,bg2))));;TODO
`(ediff-current-diff-Ancestor ((,class (:foreground ,brown1 :background ,bg2))));;TODO
`(ediff-even-diff-A ((,class (:foreground ,black2 :background ,blue1))))
`(ediff-even-diff-B ((,class (:foreground ,black2 :background ,blue1))))
`(ediff-even-diff-C ((,class (:foreground ,aqua1 :background ,red3))));;TODO
`(ediff-even-diff-Ancestor ((,class (:foreground ,brown1 :background ,red3))));;TODO
`(ediff-fine-diff-A ((,class (:foreground ,yellow1 :background ,red3 :bold t))))
`(ediff-fine-diff-B ((,class (:foreground ,yellow1 :background ,red3 :bold t))))
`(ediff-fine-diff-C ((,class (:foreground ,aqua1 :background ,purple1))));;TODO
`(ediff-fine-diff-Ancestor ((,class (:foreground ,brown1 :background ,purple1))));;TODO
`(ediff-odd-diff-A ((,class (:foreground ,black2 :background ,blue2))))
`(ediff-odd-diff-B ((,class (:foreground ,black2 :background ,blue2))))
`(ediff-odd-diff-C ((,class (:foreground ,aqua1 :background ,aqua2))));;TODO
`(ediff-odd-diff-Ancestor ((,class (:foreground ,brown1 :background ,aqua2))));;TODO
;; Macrostep
`(macrostep-expansion-highlight-face ((,class (:inherit region))))
;; Spacemacs states
`(spacemacs-transient-state-title-face ((,class (:foreground ,black2 :background ,green2 :bold t :box (:color ,bg2 :line-width -1)))))
`(spacemacs-micro-state-header-face ((,class (:inherit spacemacs-transient-state-title-face))))
`(spacemacs-micro-state-binding-face ((,class (:foreground ,blue2 :bold t))))
;; Hydra
`(hydra-face-red ((,class (:foreground ,red2 :bold t))))
`(hydra-face-blue ((,class (:foreground ,blue2 :bold t))))
`(hydra-face-pink ((,class (:foreground ,purple1 :bold t))))
`(hydra-face-teal ((,class (:foreground ,green1 :bold t))))
`(hydra-face-amaranth ((,class (:foreground ,aqua1 :bold t))))
;; Vimish
`(vimish-fold-fringe ((,class (:foreground ,blue1))))
`(vimish-fold-overlay ((,class (:foreground ,fg :background ,blue3 :box (:color ,black2 :line-width -1) :underline nil :bold nil))))
`(vimish-fold-mouse-face ((,class (:inherit vimish-fold-overlay))))
;; Which Key
`(which-key-key-face ((,class (:foreground ,orange1))))
`(which-key-note-face ((,class (:foreground ,yellow1))))
`(which-key-separator-face ((,class (:foreground ,aqua1))))
`(which-key-special-key-face ((,class (:foreground ,orange1))))
`(which-key-group-description-face ((,class (:foreground ,purple1))))
`(which-key-command-description-face ((,class (:foreground ,green1))))
`(which-key-highlighted-command-face ((,class (:foreground ,red1 :bold t))))
`(which-key-local-map-description-face ((,class (:foreground ,blue1))))
;; Flyspell
`(flyspell-incorrect ((,class (:underline (:color ,red3 :style wave)))))
`(flyspell-duplicate ((,class (:underline (:color ,orange2 :style wave)))))
;; Flycheck
`(flycheck-info ((,class (:underline ,green2))))
`(flycheck-warning ((,class (:underline ,yellow2))))
`(flycheck-error ((,class (:underline ,red3))))
`(flycheck-fringe-info ((,class (:foreground ,green2))))
`(flycheck-fringe-warning ((,class (:foreground ,yellow2))))
`(flycheck-fringe-error ((,class (:foreground ,red1))))
`(flycheck-error-list-info ((,class (:foreground ,green2))))
`(flycheck-error-list-warning ((,class (:foreground ,yellow1 :bold t))))
`(flycheck-error-list-error ((,class (:foreground ,red1 :bold t))))
`(flycheck-error-list-id ((,class (:foreground ,yellow1))))
`(flycheck-error-list-checker-name ((,class (:foreground ,brown1))))
`(flycheck-error-list-column-number ((,class (:foreground ,green2 :bold t))))
`(flycheck-error-list-line-number ((,class (:foreground ,green2 :bold t))))
`(flycheck-error-list-highlight ((,class (:background ,grey3))))
;; Rainbow delimiters
`(rainbow-delimiters-depth-1-face ((,class :foreground ,purple1)))
`(rainbow-delimiters-depth-2-face ((,class :foreground ,red2)))
`(rainbow-delimiters-depth-3-face ((,class :foreground ,green1)))
`(rainbow-delimiters-depth-4-face ((,class :foreground ,orange1)))
`(rainbow-delimiters-depth-5-face ((,class :foreground ,blue1)))
`(rainbow-delimiters-depth-6-face ((,class :foreground ,yellow1)))
`(rainbow-delimiters-depth-7-face ((,class :foreground ,brown1)))
`(rainbow-delimiters-depth-8-face ((,class :foreground ,aqua1)))
`(rainbow-delimiters-mismatched-face ((,class :foreground ,black1)))
`(rainbow-delimiters-unmatched-face ((,class :foreground ,black1)))
;; Smerge
`(smerge-mine ((,class (:foreground ,black1 :background ,blue1 :bold t))))
`(smerge-markers ((,class (:foreground ,black1 :background ,purple2 :bold t))))
`(smerge-upper ((,class (:foreground ,blue1))))
`(smerge-refined-added ((,class (:foreground ,bg2 :background ,green2))))
`(smerge-lower ((,class (:foreground ,orange1))))
`(smerge-refined-removed ((,class (:foreground ,bg2 :background ,red2))))
;; Smart-Parens
`(sp-pair-overlay-face ((,class (:background ,black1))))
`(sp-show-pair-match-face ((,class (:inherit show-paren-match))))
;; Highlight symbol
`(highlight-symbol-face ((,class (:background ,grey2))))
;; Paradox
`(paradox-name-face ((,class (:foreground ,green1))))
`(paradox-homepage-button-face ((,class (:foreground ,blue1 :bold t))))
`(paradox-archive-face ((,class (:foreground ,brown1 :box (:color ,bg :line-width -1)))))
`(paradox-star-face ((,class (:foreground ,purple2 :bold t))))
;; Man Pages
`(Man-overstrike ((,class (:foreground ,purple1 :bold t))))
`(Man-underline ((,class (:foreground ,green1 :underline t))))
`(Man-reverse ((,class (:foreground ,aqua1))))
;; Dired
`(dired-header ((,class (:foreground ,purple1 :underline t :height 1.2))))
`(dired-marked ((,class (:foreground ,black2 :background ,purple1 :box (:line-width -1)))))
`(dired-flagged ((,class (:foreground ,fg :background ,red3 :box (:color ,black2 :line-with -1)))))
`(dired-ignored ((,class (:foreground ,black2 :background ,grey2 :box (:color ,black2 :line-with -1)))))
`(dired-symlink ((,class (:foreground ,aqua1))))
`(dired-directory ((,class (:foreground ,blue1))))
`(dired-perm-write ((,class (:foreground ,red1))))
`(dired-warning ((,class (:underline ,red3))))
`(dired-mark ((,class (:inherit diredp-flag-mark-line))))
;; Dired+
`(diredp-dir-name ((,class (:inherit dired-directory))))
`(diredp-dir-heading ((,class (:inherit dired-header))))
`(diredp-file-name ((,class (:foreground ,brown1))))
`(diredp-file-suffix ((,class (:foreground ,brown1))))
`(diredp-symlink ((,class (:inherit dired-symlink))))
`(diredp-ignored-file-name ((,class (:foreground ,grey1))))
`(diredp-compressed-file-suffix ((,class (:foreground ,purple1))))
`(diredp-deletion-file-name ((,class (:foreground ,red1 :bold t))))
`(diredp-deletion ((,class (:inherit diredp-deletion-file-name))))
`(diredp-flag-mark-line ((,class (:foreground ,fg :bold t))))
`(diredp-flag-mark ((,class (:inherit diredp-flag-mark-line))))
`(diredp-mode-line-marked ((,class (:foreground ,purple1 :bold t))))
`(diredp-mode-line-flagged ((,class (:foreground ,red1 :bold t))))
`(diredp-executable-tag ((,class (:foreground ,red1 :bold t))))
`(diredp-number ((,class (:foreground ,purple1))))
`(diredp-date-time ((,class (:foreground ,green1))))
`(diredp-read-priv ((,class (:foreground ,green1))))
`(diredp-write-priv ((,class (:foreground ,blue1))))
`(diredp-exec-priv ((,class (:foreground ,red1))))
`(diredp-link-priv ((,class (:foreground ,aqua1))))
`(diredp-no-priv ((,class (:foreground ,grey2))))
`(diredp-dir-priv ((,class (:foreground ,brown1))))
`(diredp-rare-priv ((,class (:foreground ,yellow2 :bold t))))
`(diredp-other-priv ((,class (:foreground ,yellow2 :bold t))))
;; NeoTree
`(neo-banner-face ((,class (:foreground ,red1 :bold t :underline t :height 1.4))))
`(neo-dir-link-face ((,class (:foreground ,blue1))))
`(neo-expand-btn-face ((,class (:foreground ,green2 :bold t))))
`(neo-file-link-face ((,class (:foreground ,brown1))))
`(neo-header-face ((,class (:foreground ,brown1))))
`(neo-root-dir-face ((,class (:foreground ,purple1 :bold t :underline t))))
;; treemacs
`(treemacs-root-face ((,class (:foreground ,purple2 :bold t :underline t :overline t :height 1.2))))
`(treemacs-help-title-face ((,class (:inherit font-lock-doc-face))))
;; Rust & Racer
`(cargo-process--standard-face ((,class (:foreground ,blue1))))
`(cargo-process--ok-face ((,class (:foreground ,green1))))
`(cargo-process--warning-face ((,class (:foreground ,yellow1))))
`(cargo-process--error-face ((,class (:foreground ,red1 :bold t))))
`(cargo-process--pointer-face ((,class (:foreground ,purple2))))
`(racer-help-heading-face ((,class (:foreground ,purple2 :underline t :bold t :height 1.1))))
`(rust-unsafe-face ((,class (:foreground ,red1 :bold t :underline t))))
;; Mardown
`(markdown-blockquote-face ((,class (:foreground ,brown1))))
`(markdown-bold-face ((,class (:foreground ,orange1 :bold t))))
`(markdown-comment-face ((,class (:inherit font-lock-comment-face))))
`(markdown-footnote-face ((,class (:foreground ,red3 :bold t))))
`(markdown-gfm-checkbox-face ((,class (:foreground ,red1 :background ,bg2 :box (:color ,grey1 :style released-button :line-width -1) :bold t))))
`(markdown-header-delimiter-face ((,class (:foreground ,blue1 :bold t))))
`(markdown-header-rule-face ((,class (:foreground ,blue1 :bold t))))
`(markdown-header-face ((,class (:foreground ,purple1 :height 1.3))))
`(markdown-header-face-1 ((,class (:foreground ,purple1 :height 1.2))))
`(markdown-header-face-2 ((,class (:foreground ,purple1 :height 1.1))))
`(markdown-header-face-3 ((,class (:foreground ,purple1 :height 1.05))))
`(markdown-header-face-4 ((,class (:foreground ,purple1))))
`(markdown-header-face-5 ((,class (:foreground ,purple1))))
`(markdown-header-face-6 ((,class (:foreground ,purple1))))
`(markdown-highlight-face ((,class (:inherit highlight))))
`(markdown-inline-code-face ((,class (:foreground ,aqua2 :bold t))))
`(markdown-italic-face ((,class (:foreground ,orange1 :italic t))))
`(markdown-language-keyword-face ((,class (:foreground ,red1 :bold t :underline t))))
`(markdown-line-break-face ((,class (:inherit link :height 2.0))))
`(markdown-list-face ((,class (:foreground ,green1 :bold t))))
`(markdown-link-face ((,class (:inherit link :underline nil))))
`(markdown-link-title-face ((,class (:foreground ,blue1))))
`(markdown-markup-face ((,class (:foreground ,yellow1))))
`(markdown-math-face ((,class (:inherit markdown-inline-code-face))))
`(markdown-metadata-key-face ((,class (:foreground ,green1))))
`(markdown-metadata-value-face ((,class (:foreground ,red3))))
`(markdown-missing-link-face ((,class (:inherit font-lock-warning-face))))
`(markdown-pre-face ((,class (:inherit markdown-blockquote-face))))
`(markdown-reference-face ((,class (:foreground ,purple1))))
`(markdown-strike-through-face ((,class (:foreground ,orange1 :strike-through t))))
`(markdown-url-face ((,class (:inherit link))))
;; Ace
`(ace-jump-face-foreground ((,class (:foreground ,yellow2 :background ,red3))))
`(aw-leading-char-face ((,class (:foreground ,yellow2 :background ,red3))))
;; Describe
`(describe-variable-value ((,class (:foreground ,brown1))))
;; Ivy
`(ivy-minibuffer-match-face-1 ((,class (:background ,red3 :foreground ,yellow2))))
`(ivy-minibuffer-match-face-2 ((,class (:background ,red3 :foreground ,yellow2))))
`(ivy-minibuffer-match-face-3 ((,class (:background ,red3 :foreground ,yellow2))))
`(ivy-minibuffer-match-face-4 ((,class (:background ,red3 :foreground ,yellow2))))
`(ivy-confirm-face ((,class (:background ,orange2 :foreground ,black2))))
`(ivy-cursor ((,class (:background ,brown2 :foreground ,black2))))
`(ivy-current-match ((,class (:background ,black1))))
`(ivy-action ((,class (:background ,aqua2 :foreground ,black2))))
`(ivy-match-required-face ((,class (:background ,aqua1 :foreground ,black2))))
`(ivy-remote ((,class (:foreground ,aqua1))))
`(ivy-modified-buffer ((,class (:foreground ,fg :underline ,green2))))
`(ivy-virtual ((,class (:foreground ,purple1))))
`(ivy-subdir ((,class (:foreground ,blue1))))
;; Avy
`(avy-background-face ((,class (:background ,grey3))))
`(avy-lead-face ((,class (:background ,red3 :foreground ,yellow2))))
`(avy-lead-face-0 ((,class (:background ,blue1 :foreground ,black1))))
`(avy-lead-face-1 ((,class (:background ,red3 :foreground ,yellow2))))
`(avy-lead-face-2 ((,class (:background ,blue1 :foreground ,black1))))
;; imenu list
`(imenu-list-entry-subalist-face-0 ((,class (:foreground ,green1))))
`(imenu-list-entry-subalist-face-1 ((,class (:foreground ,yellow1))))
`(imenu-list-entry-subalist-face-2 ((,class (:foreground ,green1))))
`(imenu-list-entry-subalist-face-3 ((,class (:foreground ,blue1))))
`(imenu-list-entry-face-0 ((,class (:foreground ,blue1))))
`(imenu-list-entry-face-1 ((,class (:foreground ,blue1))))
`(imenu-list-entry-face-2 ((,class (:foreground ,aqua1))))
`(imenu-list-entry-face-3 ((,class (:foreground ,blue1))))
;; LaTeX
`(font-latex-bold-face ((,class (:foreground ,orange1 :bold t))))
`(font-latex-italic-face ((,class (:foreground ,orange1 :italic t))))
`(font-latex-string-face ((,class (:foreground ,green1))))
`(font-latex-math-face ((,class (:foreground ,aqua1))))
`(font-latex-verbatim-face ((,class (:foreground ,orange2))))
`(font-latex-warning-face ((,class (:foreground ,red1))))
`(font-latex-sedate-face ((,class (:foreground ,blue1))))
`(font-latex-sectioning-0-face ((,class (:foreground ,yellow1 :height 1.5))))
`(font-latex-sectioning-1-face ((,class (:foreground ,yellow1 :height 1.4))))
`(font-latex-sectioning-2-face ((,class (:foreground ,yellow1 :height 1.3))))
`(font-latex-sectioning-3-face ((,class (:foreground ,yellow1 :height 1.2))))
`(font-latex-sectioning-4-face ((,class (:foreground ,yellow1 :height 1.1))))
`(font-latex-sectioning-5-face ((,class (:foreground ,yellow1))))
`(preview-reference-face ((,class (:foreground ,fg :height 1.1))))
`(TeX-error-description-error ((,class (:foreground ,red1 :bold t))))
`(TeX-error-description-tex-said ((,class (:foreground ,purple1))))
;; Undo Tree
`(undo-tree-visualizer-current-face ((,class (:foreground ,blue1 :bold t))))
`(undo-tree-visualizer-default-face ((,class (:foreground ,fg))))
`(undo-tree-visualizer-active-branch-face ((,class (:foreground ,red1))))
`(undo-tree-visualizer-register-face ((,class (:foreground ,purple2))))
`(undo-tree-visualizer-unmodified-face ((,class (:foreground ,green2))))
;; Terminal
`(term ((,class (:foreground ,brown1))))
`(term-bold ((,class (:bold t))))
`(term-underline ((,class (:underline t))))
`(term-color-black ((,class (:foreground ,black2))))
`(term-color-blue ((,class (:foreground ,blue1))))
`(term-color-red ((,class (:foreground ,red1))))
`(term-color-green ((,class (:foreground ,green1))))
`(term-color-yellow ((,class (:foreground ,yellow1))))
`(term-color-magenta ((,class (:foreground ,purple1))))
`(term-color-cyan ((,class (:foreground ,aqua1))))
`(term-color-white ((,class (:foreground ,fg))))
;; Whitespace
`(whitespace-big-indent ((,class (:foreground ,grey1))))
`(whitespace-empty ((,class (:background ,grey1))))
`(whitespace-trailing ((,class (:foreground ,grey1))))
`(whitespace-hspace ((,class (:background ,grey1))))
`(whitespace-indentation ((,class (:background ,grey1))))
`(whitespace-line ((,class (:foreground ,grey1))))
`(whitespace-newline ((,class (:foreground ,grey1))))
`(whitespace-space ((,class (:foreground ,grey1))))
`(whitespace-space-after-tab ((,class (:foreground ,grey1))))
`(whitespace-space-before-tab ((,class (:foreground ,grey1))))
`(whitespace-tab ((,class (:foreground ,grey1))))
`(whitespace-trailing ((,class (:foreground ,grey1))))
;; info manual
`(info-title-1 ((,class (:foreground ,purple1 :bold t :height 2.0))))
`(info-title-2 ((,class (:foreground ,purple1 :bold t :height 1.75))))
`(info-title-3 ((,class (:foreground ,purple1 :bold t :height 1.5))))
`(info-title-4 ((,class (:foreground ,purple1 :bold t :height 1.25))))
`(info-header-node ((,class (:foreground ,red1 :bold t :underline t))))
`(info-menu-header ((,class (:foreground ,purple1 :bold t))))
`(info-menu-star ((,class (:foreground ,green2 :bold t))))
`(info-quoted-name ((,class (:foreground ,blue1 :bold t))))
`(info-double-quoted-name ((,class (:foreground ,green1))))
`(info-xref ((,class (:foreground ,aqua1 :underline t :bold t))))
;; Helm
`(helm-action ((,class (:foreground ,red1))))
`(helm-bookmark-addressbook ((,class (:foreground ,purple1))))
`(helm-bookmark-directory ((,class (:foreground ,blue1))))
`(helm-bookmark-file ((,class (:foreground ,brown1))))
`(helm-bookmark-gnus ((,class (:foreground ,aqua1))))
`(helm-bookmark-info ((,class (:foreground ,green1))))
`(helm-bookmark-man ((,class (:foreground ,yellow1))))
`(helm-bookmark-w3m ((,class (:foreground ,red1))))
`(helm-buffer-directory ((,class (:foreground ,blue1))))
`(helm-buffer-file ((,class (:foreground ,fg))))
`(helm-buffer-not-saved ((,class (:foreground ,fg :underline (:style wave :color, green2)))))
`(helm-buffer-process ((,class (:foreground ,orange1))))
`(helm-buffer-saved-out ((,class (:foreground ,fg :underline (:style wave :color ,red1)))))
`(helm-buffer-size ((,class (:foreground ,green1))))
`(helm-candidate-number ((,class (:background ,yellow2 :foreground ,black2))))
`(helm-etags-file ((,class (:height 2.0 :background ,fg :foreground ,blue3)))) ;; TODO
`(helm-ff-directory ((,class (:foreground ,blue1))))
`(helm-ff-dirs ((,class (:height 2.0 :background ,fg :foreground ,blue3)))) ;; TODO
`(helm-ff-dotted-directory ((,class (:foreground ,orange1))))
`(helm-ff-dotted-symlink-directory ((,class (:foreground ,orange1))))
`(helm-ff-executable ((,class (:foreground ,red1))))
`(helm-ff-file ((,class (:foreground ,brown1))))
`(helm-ff-invalid-symlink ((,class (:foreground ,aqua1 :underline (:style wave :color ,red1)))))
`(helm-ff-prefix ((,class (:foreground ,purple1))))
`(helm-ff-symlink ((,class (:foreground ,aqua1))))
`(helm-ff-file-extension ((,class (:foreground ,green1))))
`(helm-grep-cmd-line ((,class (:foreground ,aqua1))))
`(helm-grep-file ((,class (:foreground ,blue1))))
`(helm-grep-finish ((,class (:foreground ,yellow2 :background ,bg2 :box (:color ,black2 :line-width -1) :bold t))))
`(helm-grep-lineno ((,class (:foreground ,green1))))
`(helm-grep-match ((,class (:foreground ,yellow2 :background ,red3))))
`(helm-history-deleted ((,class (:height 2.0 :background ,fg :foreground ,red1)))) ;; TODO
`(helm-history-remote ((,class (:height 2.0 :background ,fg :foreground ,green1)))) ;; TODO
`(helm-header ((,class (:foreground ,grey2))))
`(helm-header-line-left-margin ((,class (:foreground ,purple2 :bold t))))
`(helm-lisp-completion-info ((,class (:height 2.0 :background ,fg :foreground ,purple2)))) ;; TODO
`(helm-lisp-show-completion ((,class (:height 2.0 :background ,fg :foreground ,blue2)))) ;; TODO
`(helm-match ((,class (:foreground ,yellow2 :background ,red3))))
`(helm-match-item ((,class (:foreground ,yellow2 :background ,red3))))
`(helm-moccur-buffer ((,class (:inherit helm-grep-file))))
`(helm-M-x-key ((,class (:foreground ,yellow1 :bold t))))
`(helm-prefarg ((,class (:foreground ,aqua1 :bold t))))
`(helm-resume-need-update ((,class (:height 2.0 :background ,fg :foreground ,aqua2)))) ;; TODO
`(helm-selection ((,class (:background ,black1 :extend t))))
`(helm-selection-line ((,class (:background ,grey3))))
`(helm-separator ((,class (:foreground ,green1 :bold t))))
`(helm-source-header ((,class (:background ,aqua2 :foreground ,black2 :underline t :extend t))))
`(helm-visible-mark ((,class (:foreground ,fg :bold t))))
;;Helm swoop
`(helm-swoop-line-number-face ((,class (:inherit linum))))
`(helm-swoop-target-line-face ((,class (:inherit hl-line))))
`(helm-swoop-target-word-face ((,class (:foreground ,yellow2 :background ,red3))))
`(helm-swoop-target-line-block-face ((,class (:foreground ,red3 :background ,green1)))) ;; TODO
;;Helm xref
`(helm-xref-file-name ((,class (:foreground ,purple1))))
`(helm-xref-line-number ((,class (:foreground ,green1 :bold t))))
;; Magit
`(magit-bisect-bad ((,class (:height 2.0 :foreground ,red1 :background ,red3)))) ;; TODO
`(magit-bisect-good ((,class (:height 2.0 :foreground ,red1 :background ,green2)))) ;; TODO
`(magit-bisect-skip ((,class (:height 2.0 :foreground ,red1 :background ,blue2)))) ;; TODO
`(magit-blame-date ((,class (:background ,bg2 :foreground ,green1 :bold t))))
`(magit-blame-hash ((,class (:background ,bg2 :foreground ,brown1 :bold t))))
`(magit-blame-heading ((,class (:background ,bg2 :bold t))))
`(magit-blame-name ((,class (:background ,bg2 :foreground ,blue2 :bold t))))
`(magit-blame-summary ((,class (:background ,bg2 :foreground ,brown1 :bold t))))
`(magit-branch-current ((,class (:foreground ,blue2 :bold t))))
`(magit-branch-remote-head ((,class (:foreground ,purple2 :bold t))))
`(magit-branch-remote ((,class (:foreground ,aqua1 :bold t))))
`(magit-branch-local ((,class (:foreground ,brown2 :bold t))))
`(magit-cherry-equivalent ((,class (:foreground ,blue1))))
`(magit-cherry-unmatched ((,class (:foreground ,red1))))
`(magit-diff-added ((,class (:foreground ,green1))))
`(magit-diff-added-highlight ((,class (:background ,bg2 :inherit magit-diff-added))))
`(magit-diff-base ((,class (:foreground ,red3 :background ,aqua2)))) ;; TODO
`(magit-diff-base-highlight ((,class (:foreground ,red3 :background ,green2)))) ;; TODO
`(magit-diff-conflict-heading ((,class (:foreground ,black1 :background ,purple2 :bold t))))
`(magit-diff-context ((,class (:foreground ,fg))))
`(magit-diff-context-highlight ((,class (:background ,bg2))))
`(magit-diff-file-heading ((,class (:foreground ,fg))))
`(magit-diff-file-heading-highlight ((,class (:background ,bg2))))
`(magit-diff-file-heading-selection ((,class (:foreground ,red3 :background ,green2))))
`(magit-diff-hunk-heading ((,class (:foreground ,blue2 :bold t))))
`(magit-diff-hunk-heading-highlight ((,class (:background ,bg2 :inherit magit-diff-hunk-heading))))
`(magit-diff-lines-boundary ((,class (:background ,yellow2))))
`(magit-diff-lines-heading ((,class (nil))))
`(magit-diff-our ((,class (:foreground ,orange2))))
`(magit-diff-our-highlight ((,class (:foreground ,orange2 :background ,bg2))))
`(magit-diff-removed ((,class (:foreground ,red1))))
`(magit-diff-removed-highlight ((,class (:background ,bg2 :inherit magit-diff-removed))))
`(magit-diff-their ((,class (:foreground ,brown1))))
`(magit-diff-their-highlight ((,class (:foreground ,brown1 :background ,bg2))))
`(magit-whitespace-warning-face ((,class (:foreground ,red1))))
`(magit-diffstat-added ((,class (:foreground ,green1))))
`(magit-diffstat-removed ((,class (:foreground ,red1))))
`(magit-dimmed ((,class (:inherit font-lock-comment-face))))
`(magit-filename ((,class (:foreground ,fg))))
`(magit-hash ((,class (:foreground ,orange1))))
`(magit-head ((,class (:foreground ,purple1 :bold t))))
`(magit-header-line ((,class (:inherit magit-section-heading))))
`(magit-log-graph ((,class (:foreground ,orange2))))
`(magit-log-author ((,class (:foreground ,blue1))))
`(magit-log-date ((,class (:foreground ,green1))))
`(magit-process-ng ((,class (:inherit error))))
`(magit-process-ok ((,class (:inherit success))))
`(magit-reflog-amend ((,class (:foreground ,brown1 :bold t))))
`(magit-reflog-checkout ((,class (:foreground ,blue1 :bold t))))
`(magit-reflog-cherry-pick ((,class (:foreground ,yellow1 :bold t))))
`(magit-reflog-commit ((,class (:foreground ,green1 :bold t))))
`(magit-reflog-merge ((,class (:foreground ,aqua1 :bold t))))
`(magit-reflog-other ((,class (:foreground ,fg :bold t))))
`(magit-reflog-rebase ((,class (:foreground ,orange1 :bold t))))
`(magit-reflog-remote ((,class (:foreground ,purple1 :bold t))))
`(magit-reflog-reset ((,class (:foreground ,red1 :bold t))))
`(magit-refname ((,class (:height 2.0 :foreground ,purple2 :background ,black1)))) ;; TODO
`(magit-refname-stash ((,class (:height 2.0 :foreground ,red1 :background ,black1)))) ;; TODO
`(magit-refname-wip ((,class (:height 2.0 :foreground ,red1 :background ,black1)))) ;; TODO
`(magit-refname-pullreq ((,class (:foreground ,orange2 :bold t))))
`(magit-section-heading ((,class (:foreground ,purple1 :underline t :height 1.2))))
`(magit-section-heading-selection ((,class (:foreground ,green1 :background ,black2))))
`(magit-section-highlight ((,class (:background ,bg2))))
`(magit-section-secondary-heading ((,class (:foreground ,purple1))))
`(magit-sequence-done ((,class (:foreground ,grey1))))
`(magit-sequence-drop ((,class (:foreground ,orange1 :bold t))))
`(magit-sequence-head ((,class (:foreground ,purple1 :bold t))))
`(magit-sequence-onto ((,class (:foreground ,purple1 :bold t))))
`(magit-sequence-part ((,class (:foreground ,blue1 :bold t))))
`(magit-sequence-pick ((,class (:foreground ,green1 :bold t))))
`(magit-sequence-stop ((,class (:foreground ,red1 :bold t))))
`(magit-signature-bad ((,class (:foreground ,yellow1 :italic t :underline (:style wave)))))
`(magit-signature-good ((,class (:foreground ,green1 :italic t :underline t))))
`(magit-signature-untrusted ((,class (:foreground ,red1 :italic t :underline (:style wave)))))
`(magit-tag ((,class (:foreground ,yellow1 :bold t))))
;; Diff
`(diff-refine-added ((,class (:foreground ,green2 :background ,green3 :bold t))))
`(diff-refine-removed ((,class (:foreground ,red2 :background ,red4 :bold t))))
`(diff-refine-changed ((,class (:foreground ,blue1 :background ,black1 :bold t))))
;; Git
`(git-commit-keyword ((,class (:foreground ,brown2 :bold t))))
`(git-commit-comment-action ((,class (:foreground ,orange1))))
`(git-commit-comment-branch ((,class (:foreground ,blue1 :bold t))))
`(git-commit-comment-detached ((,class (:foreground ,aqua1))))
`(git-commit-comment-file ((,class (:foreground ,green1))))
`(git-commit-comment-heading ((,class (:foreground ,purple1 :underline t))))
`(git-commit-known-pseudo-header ((,class (:inherit git-commit-pseudo-header))))
`(git-commit-nonempty-second-line ((,class (:foreground ,red1 :underline t))))
`(git-commit-overlong-summary ((,class (:foreground ,red1))))
`(git-commit-pseudo-header ((,class (:foreground ,purple1 :underline t :height 1.3))))
`(git-commit-summary ((,class (:foreground ,yellow1))))
`(git-rebase-hash ((,class (:inherit magit-hash))))
`(git-rebase-description ((,class (:foreground ,fg))))
`(git-rebase-killed-action ((,class (:foreground ,red1))))
;; Git Rebase
`(git-rebase-description ((,class (:foreground ,fg))))
`(git-rebase-hash ((,class (:foreground ,orange1))))
`(git-rebase-killed-action ((,class (:foreground ,grey1 :strike-through t))))
;; Git gutter
`(git-gutter:added ((,class (:foreground ,green1))))
`(git-gutter:deleted ((,class (:foreground ,red1))))
`(git-gutter:modified ((,class (:foreground ,blue1))))
`(git-gutter+-added ((,class (:inherit git-gutter:added))))
`(git-gutter+-deleted ((,class (:inherit git-gutter:deleted))))
`(git-gutter+-modified ((,class (:inherit git-gutter:modified))))
`(git-gutter-fr:added ((,class (:inherit git-gutter:added))))
`(git-gutter-fr:deleted ((,class (:inherit git-gutter:deleted))))
`(git-gutter-fr:modified ((,class (:inherit git-gutter:modified))))
`(git-gutter-fr+-added ((,class (:inherit git-gutter:added))))
`(git-gutter-fr+deleted ((,class (:inherit git-gutter:deleted))))
`(git-gutter-fr+modified ((,class (:inherit git-gutter:modified))))
;; Transient
`(transient-heading ((,class (:foreground ,purple1 :bold t))))
`(transient-key ((,class (:foreground ,blue1 :bold t))))
`(transient-value ((,class (:foreground ,aqua1 :bold t))))
`(transient-argument ((,class (:foreground ,orange1 :bold t))))
`(transient-unreachable-key ((,class (:foreground ,grey1 :bold t))))
`(transient-active-infix ((,class (:foreground ,green2 :bold t))))
`(transient-unreachable ((,class (:foreground ,grey1))))
`(transient-teal ((,class (:inherit hydra-face-teal))))
`(transient-pink ((,class (:inherit hydra-face-pink))))
`(transient-amaranth ((,class (:inherit hydra-face-amaranth))))
`(transient-blue ((,class (:inherit hydra-face-blue))))
`(transient-red ((,class (:inherit hydra-face-red))))
`(transient-inacitve-argument ((,class (:foreground ,brown1 :background ,black2))))
`(transient-inacitve-value ((,class (:foreground ,orange1 :background ,black2))))
`(transient-disabled-suffix ((,class (:foreground ,purple1 :background ,black2))))
`(transient-enabled-suffix ((,class (:foreground ,red3 :background ,black2))))
`(transient-inapt-suffix ((,class (:foreground ,aqua1 :background ,black2))))
`(transient-mismatched-key ((,class (:foreground ,blue2 :background ,black2))))
`(transient-nonstandard-key ((,class (:foreground ,brown2 :background ,black2))))
`(transient-separator ((,class (:foreground ,orange2 :background ,black2))))
;; Diff hl
`(diff-hl-change ((,class (:background ,blue2 :foreground ,black1))))
`(diff-hl-delete ((,class (:background ,red1 :foreground ,black1))))
`(diff-hl-insert ((,class (:background ,green2 :foreground ,black1))))
;; Compilation
`(compilation-info ((,class (:foreground ,brown1))))
`(compilation-error ((,class (:foreground ,red2))))
`(compilation-line-number ((,class (:foreground ,green1))))
`(compilation-column-number ((,class (:foreground ,green1))))
;; company
`(company-tooltip-common-selection ((,class (:background ,bg2 :foreground ,red1))))
`(company-tooltip-selection ((,class (:background ,bg2 :foreground ,fg :extend t))))
`(company-scrollbar-bg ((,class (:background ,grey1))))
`(company-scrollbar-fg ((,class (:background ,red3))))
`(company-tooltip ((,class (:background ,grey2 :foreground ,fg ))))
`(company-tooltip-search ((,class (:background ,fg :foreground ,red3))))
`(company-tooltip-search-selection ((,class (:background ,fg :foreground ,red3))))
`(company-tooltip-annotation ((,class (:background ,grey2 :foreground ,aqua1 :bold t))))
`(company-tooltip-annotation-selection ((,class (:background ,bg2 :foreground ,aqua1 :bold t))))
`(company-tooltip-common ((,class (:foreground ,red1))))
`(company-preview-common ((,class (:foreground ,grey1 :background ,grey3))))
`(company-preview ((,class (:background ,fg :foreground ,red3))))
`(company-tooltip-mouse ((,class (:inherit company-tooltip-sele))))
`(company-echo-common ((,class (:background ,fg :foreground ,red3))))
`(company-template-field ((,class (:inherit yas-field-highlight-face))))
;; Org-Mode
`(org-agenda-calendar-event ((,class (:foreground ,blue2 :bold t))))
`(org-agenda-calendar-sexp ((,class (:foreground ,blue2 :bold t))))
`(org-agenda-clocking ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-column-dateline ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-current-time ((,class (:foreground ,brown1 :bold t))))
`(org-agenda-date ((,class (:foreground ,brown1 :bold t))))
`(org-agenda-date-weekend ((,class (:foreground ,brown2 :bold t))))
`(org-agenda-date-today ((,class (:foreground ,red3 :bold t :italic t :height 1.5))))
`(org-agenda-diary ((,class (:foreground ,red2 :bold t))))
`(org-agenda-dimmed-todo-face ((,class (:foreground ,grey1))))
`(org-agenda-done ((,class (:foreground ,green1))))
`(org-agenda-filter-category ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-filter-regexp ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-filter-tags ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-restriction-lock ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-agenda-structure ((,class (:foreground ,purple1 :bold t :height 1.5))))
`(org-super-agenda-header ((,class (:foreground ,green2 :bold t :height 1.3))))
`(org-archived ((,class (:foreground ,grey1 :bold t))))
`(org-block ((,class (:background ,bg2 :extend t))))
`(org-block-begin-line ((,class (:background ,brown2 :foreground ,bg2 :bold t :extend t))))
`(org-block-end-line ((,class (:background ,brown2 :foreground ,bg2 :bold t :extend t))))
`(org-checkbox ((,class (:background ,bg2 :foreground ,brown2 :bold t :box (:color ,brown2 :line-width -1)))))
`(org-checkbox-statistics-done ((,class (:background ,green1 :foreground ,black1 :box (:color ,black1 :line-width -1) :bold t))))
`(org-checkbox-statistics-todo ((,class (:background ,red2 :foreground ,black1 :box (:color ,black1 :line-width -1) :bold t))))
`(org-clock-overlay ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-code ((,class (:foreground ,purple1 :bold t))))
`(org-column ((,class ())))
`(org-column-title ((,class (:foreground ,purple1 :background ,bg2 :bold t :underline t))))
`(org-date ((,class (:foreground ,brown2 :bold t))))
`(org-date-selected ((,class (:foreground ,black1 :background ,purple2 :bold t :box (:color ,black1 :line-with -1)))))
`(org-default ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-done ((,class (:background ,green1 :foreground ,black1 :bold t :box (:color ,black2 :line-width -1)))))
`(org-document-info ((,class (:foreground ,red2 :bold t :height 1.4))))
`(org-document-info-keyword ((,class (:foreground ,purple2 :bold t :height 1.4))))
`(org-document-title ((,class (:foreground ,red2 :bold t :height 1.4))))
`(org-drawer ((,class (:inherit org-special-keyword))))
`(org-ellipsis ((,class (:foreground ,grey1 :bold t :box nil :underline nil :overline nil))))
`(org-footnote ((,class (:foreground ,grey1 :background ,grey3 :bold t))))
`(org-formula ((,class (:foreground ,green1 :background ,bg2))))
`(org-habit-alert-face ((,class (:background ,yellow1 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-alert-future-face ((,class (:background ,yellow2 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-clear-face ((,class (:background ,blue2 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-clear-future-face ((,class (:background ,blue1 :foreground ,black2 :box (:color ,black2 :line-with -1)))))
`(org-habit-overdue-face ((,class (:background ,red3 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-overdue-future-face ((,class (:background ,red1 :foreground ,black1 :box (:color ,black2 :line-with -1)))))
`(org-habit-ready-face ((,class (:background ,green1 :foreground ,black2 :box (:color ,black2 :line-with -1)))))
`(org-habit-ready-future-face ((,class (:background ,green2 :foreground ,black2 :box (:color ,black2 :line-with -1)))))
`(org-headline-done ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-hide ((,class (:foreground ,bg))))
`(org-indent ((,class (:foreground ,bg))))
`(org-kbd ((,class (:foreground ,fg :italic t :bold t))))
`(org-latex-and-related ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-level-1 ((,class (:foreground ,blue1))))
`(org-level-2 ((,class (:foreground ,orange1))))
`(org-level-3 ((,class (:foreground ,green1))))
`(org-level-4 ((,class (:foreground ,yellow1))))
`(org-level-5 ((,class (:foreground ,blue1))))
`(org-level-6 ((,class (:foreground ,orange1))))
`(org-level-7 ((,class (:foreground ,green1))))
`(org-level-8 ((,class (:foreground ,yellow1))))
`(org-link ((,class (:foreground ,aqua2 :bold t :underline t))))
`(org-list-dt ((,class (:foreground ,purple1 :bold t))))
`(org-macro ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-meta-line ((,class (:foreground ,purple2 :bold t))))
`(org-mode-line-clock ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-mode-line-clock-overrun ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-priority ((,class (:background ,purple1 :foreground ,black1 :bold t :box (:line-width -1 :color ,black2)))))
`(org-property-value ((,class (:foreground ,brown2 :bold t))))
`(org-quote ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-scheduled ((,class (:foreground ,green1))))
`(org-scheduled-previously ((,class (:foreground ,purple1))))
`(org-scheduled-today ((,class (:foreground ,aqua1))))
`(org-sexp-date ((,class (:inherit org-date))))
`(org-special-keyword ((,class (:foreground ,purple2 :underline t :bold t))))
`(org-table ((,class (:foreground ,brown1 :background ,bg2))))
`(org-tag ((,class (:foreground ,grey1))))
`(org-tag-group ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-target ((,class (:foreground ,bg :background ,red3)))) ;; TODO
`(org-time-grid ((,class (:foreground ,brown1))))
`(org-upcoming-distant-deadline ((,class (:foreground ,yellow1))))
`(org-agenda-current-time ((,class (:foreground ,brown1 :background ,bg2 :bold t))))
`(org-todo ((,class (:background ,red2 :foreground ,black1 :bold t :box (:line-width -1 :color ,black2)))))
`(org-upcoming-deadline ((,class (:foreground ,orange2))))
`(org-verbatim ((,class (:foreground ,green2 :bold t :italic t))))
`(org-warning ((,class (:foreground ,yellow2 :bold t))))
;; Comint
`(comint-highlight-prompt ((,class (:foreground ,purple2 :bold t))))
`(comint-highlight-input ((,class (:foreground ,blue1))))
;; Ledger
`(ledger-font-xact-highlight-face ((,class (:background ,grey3))))
`(ledger-font-posting-account-face ((,class (:foreground ,blue1))))
`(ledger-font-posting-amount-face ((,class (:foreground ,brown1))))
`(ledger-font-posting-date-face ((,class (:foreground ,purple1 :bold t))))
`(ledger-font-payee-uncleared-face ((,class (:foreground ,red2 :bold t))))
`(ledger-font-payee-cleared-face ((,class (:foreground ,green2 :bold t))))
`(ledger-font-price-symbol-face ((,class (:foreground ,red2 :bold t))))
`(ledger-font-price-face ((,class (:foreground ,brown2 :bold t))))
`(ledger-font-price-date-face ((,class (:foreground ,green1 :bold t))))
`(ledger-font-price-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-commodity-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-include-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-account-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-tag-directive-face ((,class (:foreground ,aqua2 :bold t))))
`(ledger-font-commodity-name-face ((,class (:foreground ,red2 :bold t))))
`(ledger-font-tag-name-face ((,class (:foreground ,yellow1))))
`(ledger-font-commodity-format-face ((,class (:foreground ,green1))))
`(ledger-font-include-filename-face ((,class (:foreground ,green1))))
`(ledger-occur-xact-face ((,class (:background ,grey1 :foreground ,bg))))
`(ledger-font-auto-xact-face ((,class (:foreground ,aqua1))))
;; ERC
`(erc-timestamp-face ((,class (:foreground ,brown2 :bold t))))
`(erc-nick-default-face ((,class (:foreground ,purple1))))
`(erc-nick-msg-face ((,class (:foreground ,purple2 :bold t))))
`(erc-current-nick-face ((,class (:foreground ,aqua1))))
`(erc-default-face ((,class (:foreground ,fg))))
`(erc-error-face ((,class (:foreground ,red2 :bold t))))
`(erc-notice-face ((,class (:foreground ,green1))))
`(erc-direct-msg-face ((,class (:foreground ,aqua1))))
`(erc-prompt-face ((,class (:foreground ,black2 :background ,blue1 :box t :bold t))))
;; ERT
`(ert-test-result-expected ((,class (:background ,green2 :foreground ,black2))))
`(ert-test-result-unexpected ((,class (:background ,red3 :foreground ,black2))))
;; edebug-x
`(hi-edebug-x-stop ((,class (:background ,blue1 :foreground ,black2))))
`(hi-edebug-x-debug-line ((,class (:background ,green1 :foreground ,black2))))
;; Messages
`(message-header-name ((,class (:foreground ,green1 :bold t))))
`(message-header-other ((,class (:foreground ,blue1))))
`(message-header-to ((,class (:foreground ,orange1))))
`(message-header-subject ((,class (:foreground ,yellow1))))
`(message-separator ((,class (:foreground ,grey1))))
;; Eros
`(eros-result-overlay-face ((,class (:background ,bg :foreground ,brown1 :box (:line-width -1 :color ,black1)))))
;; elfeed
`(elfeed-search-feed-face ((,class (:foreground ,purple1))))
`(elfeed-search-tag-face ((,class (:foreground ,blue1))))
`(elfeed-search-unread-title-face ((,class (:bold t))))
`(elfeed-search-title-face ((,class (:foreground ,blue1))))
`(elfeed-search-date-face ((,class (:foreground ,green1))))
`(elfeed-log-date-face ((,class (:foreground ,brown1))))
`(elfeed-log-info-level-face ((,class (:foreground ,green1))))
`(elfeed-log-warn-level-face ((,class (:foreground ,yellow1))))
`(elfeed-log-error-level-face ((,class (:foreground ,red2))))
;; LSP
`(lsp-face-highlight-read ((,class (:background ,blue2 :foreground ,black2))))
`(lsp-face-highlight-write ((,class (:background ,orange2 :foreground ,black2))))
;; notmuch
`(notmuch-search-date ((,class (:foreground ,green1))))
`(notmuch-search-count ((,class (:foreground ,aqua1))))
`(notmuch-search-matching-authors ((,class (:foreground ,blue1))))
`(notmuch-search-subject ((,class (:foreground ,brown1))))
;; gnus
`(gnus-header-name ((,class (:foreground ,purple1 :bold t))))
`(gnus-header-content ((,class (:foreground ,brown1))))
`(gnus-header-subject ((,class (:foreground ,green1))))
`(gnus-button ((,class (:foreground ,aqua2))))
;; frog-menu
`(frog-menu-prompt-face ((,class (:foreground ,green1 :bold t))))
`(frog-menu-candidates-face ((,class (:foreground ,fg))))
`(frog-menu-actions-face ((,class (:foreground ,purple1))))
`(frog-menu-action-keybinding-face ((,class (:foreground ,blue1 :bold t))))
`(frog-menu-posframe-background-face ((,class (:background ,bg))))
;; markup
`(markup-meta-hide-face ((,class (:foreground ,grey1 :bold t))))
`(markup-meta-face ((,class (:foreground ,orange1 :bold t))))
`(markup-secondary-text-face ((,class (:foreground ,brown2 :bold t))))
`(markup-list-face ((,class (:foreground ,green2 :bold t))))
`(markup-strong-face ((,class (:foreground ,red2 :bold t))))
`(markup-code-face ((,class (:foreground ,aqua1 :bold t))))
`(markup-emphasis-face ((,class (:foreground ,yellow1 :italic t))))
`(markup-typewriter-face ((,class (:background ,aqua2 :foreground ,black1 :bold t))))
`(markup-verbatim-face ((,class (:background ,aqua2 :foreground ,black1 :bold t))))
`(markup-title-0-face ((,class (:foreground ,purple1 :underline t :height 1.2))))
`(markup-title-1-face ((,class (:foreground ,purple1 :underline t :height 1.15))))
`(markup-title-2-face ((,class (:foreground ,purple1 :underline t :height 1.1))))
`(markup-title-3-face ((,class (:foreground ,purple1 :underline t :height 1.05))))
`(markup-title-4-face ((,class (:foreground ,purple1 :underline t))))
`(markup-title-5-face ((,class (:foreground ,purple1 :underline t))))
;; selectrum
`(selectrum-current-candidate ((,class (:background ,black1 :extend t))))
;; orderless
`(orderless-match-face-0 ((,class (:background ,red3 :foreground ,yellow2))))
`(orderless-match-face-1 ((,class (:background ,green2 :foreground ,black2))))
`(orderless-match-face-2 ((,class (:background ,blue2 :foreground ,black2))))
`(orderless-match-face-3 ((,class (:background ,brown2 :foreground ,black2))))
;; marginalia
`(marginalia-documentation ((,class (:inherit font-lock-doc-face))))
`(marginalia-key ((,class (:foreground ,purple1))))
`(marginalia-number ((,class (:background ,blue2 :foreground ,red3 :bold t))))
`(marginalia-size ((,class (:foreground ,purple1))))
`(marginalia-mode ((,class (:foreground ,orange2 :bold t))))
`(marginalia-version ((,class (:background ,blue2 :foreground ,red3 :bold t))))
`(marginalia-ligher ((,class (:foreground ,green3))))
;; mu4e
`(mu4e-unread-face ((,class (:foreground ,blue1 :bold t))))
`(mu4e-replied-face ((,class (:foreground ,green1 :bold t))))
`(mu4e-header-face ((,class (:foreground ,brown1))))
`(mu4e-title-face ((,class (:foreground ,purple1 :bold t :height 1.1))))
`(mu4e-trashed-face ((,class (:foreground ,grey1))))
`(mu4e-header-key-face ((,class (:foreground ,brown1))))
`(mu4e-header-title-face ((,class (:foreground ,blue1 :bold t))))
`(mu4e-header-marks-face ((,class (:foreground ,purple2 :bold t))))
`(mu4e-header-value-face ((,class (:foreground ,brown1))))
`(mu4e-header-highlight-face ((,class (:background ,grey3))))
`(mu4e-special-header-value-face ((,class (:foreground ,aqua1))))
`(mu4e-contact-face ((,class (:foreground ,green1))))
`(mu4e-highlight-face ((,class (:foreground ,green1 :bold t))))
`(mu4e-maildirs-extension-maildir-face ((,class (:foreground ,brown1))))
(custom-theme-set-variables
'morning-star
`(ansi-color-names-vector [,black1 ,red2 ,green1 ,yellow1 ,blue1 ,purple1 ,aqua1 ,fg]))))
;;;###autoload
(when load-file-name
(add-to-list 'custom-theme-load-path
(file-name-as-directory (file-name-directory load-file-name))))
(provide-theme 'morning-star)
;; Local Variables:
;; no-byte-compile: t
;; End:
;;; morning-star-theme.el ends here

View File

@ -1,309 +0,0 @@
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
;; Input method
(setq default-input-method "korean-hangul")
(global-set-key (kbd "<Hangul>") 'toggle-input-method)
;; Tabs
;;(setq! indent-tabs-mode t)
(setq-default tab-width 4)
;;
(setq user-full-name "JaeYoo-Im"
user-mail-address "cpu3792@gmail.com")
;; Frame parameter
(set-frame-parameter (selected-frame) 'fullscreen 'maximized)
(add-to-list 'default-frame-alist '(fullscreen . maximized))
(unless (display-graphic-p)
(xterm-mouse-mode))
;; Fonts
(setq doom-font (font-spec :family "Fira Code" :size 14 :weight 'semi-light)
doom-variable-pitch-font (font-spec :family "Ubuntu" :size 14))
(set-fontset-font t 'hangul (font-spec :name "NanumGothic"))
;; 'nil 't 'relative
(setq display-line-numbers-type t)
;; to use relative path for org
(setq org-directory "~/org/")
(setq visible-bell t)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Default
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Eshell
(when (eq system-type 'windows-nt)
(setq explicit-shell-file-name "powershell.exe")
(setq explicit-powershell.exe-args '()))
(defun ju/get-prompt-path ()
(let* ((current-path (eshell/pwd))
(git-output (shell-command-to-string "git rev-parse --show-toplevel"))
(has-path (not (string-match "^fatal" git-output))))
(if (not has-path)
(abbreviate-file-name current-path)
(string-remove-prefix (file-name-directory git-output) current-path))))
(defun ju/eshell-prompt ()
(let ((current-branch (magit-get-current-branch)))
(concat
"\n"
(propertize (system-name) 'face `(:foreground "#62aeed"))
(propertize "" 'face `(:foreground "white"))
(propertize (ju/get-prompt-path) 'face `(:foreground "#82cfd3"))
(when current-branch
(concat
(propertize "" 'face `(:foreground "white"))
(propertize (concat "" current-branch) 'face `(:foreground "#c475f0"))))
(propertize "" 'face `(:foreground "white"))
(propertize (format-time-string "%I:%M:%S %p") 'face `(:foreground "#5a5b7f"))
(if (= (user-uid) 0)
(propertize "\n#" 'face `(:foreground "red2"))
(propertize "\nλ" 'face `(:foreground "#aece4a")))
(propertize " " 'face `(:foreground "white")))))
(defun ju/configure-eshell ()
;; Save command history when commands are entered
(add-hook 'eshell-pre-command-hook 'eshell-save-some-history)
;; Truncate buffer for performance
(add-to-list 'eshell-output-filter-functions 'eshell-truncate-buffer)
;; Bind some useful keys for evil-mode
(evil-define-key '(normal insert visual) eshell-mode-map (kbd "C-r") 'counsel-esh-history)
(evil-define-key '(normal insert visual) eshell-mode-map (kbd "<home>") 'eshell-bol)
(evil-normalize-keymaps)
(setq eshell-prompt-function 'ju/eshell-prompt
eshell-prompt-regexp ""
eshell-history-size 10000
eshell-buffer-maximum-lines 10000
eshell-hist-ignoredups t
eshell-scroll-to-bottom-on-input t))
(add-hook 'eshell-first-time-mode-hook #'ju/configure-eshell)
(setq eshell-prompt-function
(lambda ()
(concat (abbreviate-file-name (eshell/pwd))
(if (= (user-uid) 0) " # " " λ ")))
eshell-prompt-regexp "^[^#λ\n]* [#λ] ")
; Dired ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package! dired
:config
(evil-collection-define-key 'normal 'dired-mode-map
"h" 'dired-up-directory
"l" 'dired-find-file))
(use-package! dired-hide-dotfiles
:hook (dired-mode . dired-hide-dotfiles-mode)
:config
(evil-collection-define-key 'normal 'dired-mode-map
"H" 'dired-hide-dotfiles-mode))
(setq! delete-by-moving-to-trash t
trash-directory "~/.local/share/Trash/files/")
(map! :leader
(:prefix ("d" . "dired")
:desc "Open dired" "d" #'dired
:desc "Dired jump to current" "j" #'dired-jump)
(:after dired
(:map dired-mode-map
:desc "Peep-dired image previews" "d p" #'peep-dired
:desc "Dired view file" "d v" #'dired-view-file)))
(evil-define-key 'normal peep-dired-mode-map
(kbd "j") 'peep-dired-next-file
(kbd "k") 'peep-dired-prev-file)
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; UI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; themes ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (display-graphic-p)
(setq doom-theme 'doom-palenight)
(setq doom-theme 'doom-gruvbox))
; dashboard ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package! page-break-lines
:init
(global-page-break-lines-mode t))
(use-package! dashboard
:init
(setq dashboard-set-heading-icons t)
(setq dashboard-set-file-icons t)
;;(setq dashboard-banner-logo-title "Emacs is more than a text editor!")
;;(setq dashboard-startup-banner 'logo)
(setq dashboard-center-content t)
(setq dashboard-week-agenda t)
(setq dashboard-set-footer t)
(setq dashboard-page-separator "\n\f\n")
(setq dashboard-agenda-time-string-format "%d/%m/%Y %A %H:%M")
(setq dashboard-items '((recents . 10)
(agenda . 5)
(bookmarks . 5)
(projects . 5)
(registers . 5)))
(setq dashboard-set-navigator t)
(setq dashboard-navigator-buttons
`(;; line1
((,(all-the-icons-octicon "mark-github" :height 1.1 :v-adjust 0.0)
"Github"
"Browse my Github"
(lambda (&rest _) (browse-url "https://github.com/JaeUs3792/")))
(,(all-the-icons-octicon "home" :height 1.1 :v-adjust 0.0)
"Homepage"
"Browse my Homepage"
(lambda (&rest _) (browse-url "https://jaeus.net")))
(,(all-the-icons-octicon "zap" :height 1.1 :v-adjust 0.0)
"Refresh"
"Refresh Packages"
(lambda (&rest _) (package-refresh-contents)) warning))))
:config
(dashboard-setup-startup-hook)
(dashboard-modify-heading-icons '((recents . "file-text")
(bookmarks . "book"))))
(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*")))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Org Mode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; write room ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package! visual-fill-column)
(defun write-room-enable ()
(setq visual-fill-column-width 100
visual-fill-column-center-text t)
(visual-fill-column-mode 1))
(add-hook 'org-mode-hook #'(lambda () (display-line-numbers-mode 0)))
(add-hook 'org-mode-hook #'write-room-enable)
;; orgmode
(with-eval-after-load 'org
;; This is needed as of Org 9.2
(require 'org-tempo)
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
(add-to-list 'org-structure-template-alist '("hs" . "src haskell"))
(add-to-list 'org-structure-template-alist '("cc" . "src c"))
(add-to-list 'org-structure-template-alist '("cp" . "src c++"))
(add-to-list 'org-structure-template-alist '("rs" . "src rust"))
(add-to-list 'org-structure-template-alist '("py" . "src jupyter-python"))
(add-to-list 'org-structure-template-alist '("oc" . "src octave"))
(add-to-list 'org-structure-template-alist '("vl" . "src verilog"))
(add-to-list 'org-structure-template-alist '("vh" . "src vhdl")))
(after! org
(setq! org-ellipsis ""
org-hide-emphasis-markers t
org-image-actual-width 600
org-redisplay-inline-images t
org-display-inline-images t
org-startup-with-inline-images "inlineimages"
org-src-fontify-natively t
org-fontify-quote-and-verse-blocks t
org-agenda-start-with-log-mode t
org-startup-indented t
org-startup-align-all-tables t
org-log-done 'time
org-log-into-drawer "LOGBOOK"
org-clock-into-drawer "CLOCKING"
org-lowest-priority 68)
;;(setq org-todo-keywords
;; '((sequence "TODO(t)" "HOLD(h)" "|" "KILL(k)" "DONE(d)")))
(setq! org-superstar-item-bullet-alist
'((?+ . ?➢)
(?* . ?✰)
(?- . ?➸)))
(custom-set-faces!
'(org-level-1 :height 1.7 :weight ultra-bold :foreground "#81a2be") ;; :foreground "#81a2be"
'(org-level-2 :height 1.6 :weight extra-bold :foreground "#b294bb") ;; :foreground "#b294bb"
'(org-level-3 :height 1.5 :weight bold :foreground "#b5bd68") ;; :foreground "#b5bd68"
'(org-level-4 :height 1.4 :weight semi-bold :foreground "#e6c547") ;; :foreground "#e6c547"
'(org-level-5 :height 1.3 :weight normal :foreground "#cc6666") ;; :foreground "#cc6666"
'(org-level-6 :height 1.2 :weight normal :foreground "#70c0ba") ;; :foreground "#70c0ba"
'(org-level-7 :height 1.1 :weight normal :foreground "#b77ee0") ;; :foreground "#b77ee0"
'(org-level-8 :height 1.0 :weight normal :foreground "#9ec400")) ;; :foreground "#9ec400"
(custom-set-faces!
'(org-document-title :height 2.0)))
(setq! org-use-sub-superscripts '{})
(setq! org-export-with-sub-superscripts '{})
;; fancy priorities
(setq! org-fancy-priorities-list `(,(all-the-icons-faicon "flag" :height 1.1 :v-adjust 0.0)
,(all-the-icons-faicon "arrow-up" :height 1.1 :v-adjust 0.0)
,(all-the-icons-faicon "square" :height 1.1 :v-adjust 0.0)
,(all-the-icons-faicon "ban" :height 1.1 :v-adjust 0.0)))
;; TODO somewhere
(add-hook 'markdown-mode-hook #'write-room-enable)
(add-hook 'nov-mode-hook #'write-room-enable)
;; valign
;; make table align
(use-package! valign
:custom
(valign-fancy-bar t))
;; org appear (bug.1)
;;(use-package! org-appear
;; :hook (org-mode-hook . org-appear-mode)
;; :config
;; (setq org-appear-autoemphasis t
;; org-appear-autolinks t
;; org-appear-autoentities t
;; org-appear-autosubmarkers t))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Function Definition
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Screen Shot ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun my/self-screenshot (&optional type)
"Save a screenshot of type TYPE of the current Emacs frame.
As shown by the function `', type can weild the value `svg',
`png', `pdf'.
This function will output in /tmp a file beginning with \"Emacs\"
and ending with the extension of the requested TYPE."
(interactive)
(let* ((type (if type type
(intern (completing-read "Screenshot Type: "
'(png svg pdf postscript)))))
(extension (pcase type
('png ".png")
('svg ".svg")
('pdf ".pdf")
('postscript ".ps")
(otherwise (error "Cannot export screenshot of type %s" otherwise))))
(filename (make-temp-file "Emacs-" nil extension))
(data (x-export-frames nil type)))
(with-temp-file filename
(insert data))
(kill-new filename)
(rename-file filename (expand-file-name (file-name-nondirectory filename) "~"))
(message filename)))
;;Transparency;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; After Emacs 29
;;(set-frame-parameter nil 'alpha-background 0.9)
;;(add-to-list 'default-frame-alist '(alpha-background . 0.9))
;;(defun toggle-transparency ()
;; "toggle transparency."
;; (interactive)
;; (let ((alpha-transparency 1.0))
;; (if (eq (frame-parameter nil 'alpha-background) alpha-transparency)
;; (set-frame-parameter nil 'alpha-background 0.9)
;; (set-frame-parameter nil 'alpha-background alpha-transparency))))
;;(defun my/transparency-round (val)
;; "Round VAL to the nearest tenth of an integer."
;; (/ (round (* 10 val)) 10.0))
;;
;;(defun my/increase-frame-alpha-background ()
;; "Increase current frames alpha background."
;; (interactive)
;; (set-frame-parameter nil
;; 'alpha-background
;; (my/transparency-round
;; (min 1.0
;; (+ (frame-parameter nil 'alpha-background) 0.1))))
;; (message "%s" (frame-parameter nil 'alpha-background)))
;;
;;(defun my/decrease-frame-alpha-background ()
;; "Decrease current frames alpha background."
;; (interactive)
;; (set-frame-parameter nil
;; 'alpha-background
;; (my/transparency-round
;; (max 0.0
;; (- (frame-parameter nil 'alpha-background) 0.1))))
;; (message "%s" (frame-parameter nil 'alpha-background)))
;; bind key
;;(global-set-key (kbd "C-c t") 'toggle-transparency)

View File

@ -1,202 +0,0 @@
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it!
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find a link to Doom's Module Index where all
;; of our modules are listed, including what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c c k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;;
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code).
(doom! :input
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
;;chinese
;;japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
company ; the ultimate code completion backend
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
;;ivy ; a search engine for love and life
vertico ; the search engine of the future
:ui
;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
;;doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
(emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
hydra
;;indent-guides ; highlighted indent columns
;;ligatures ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
;;tabs ; a tab bar for Emacs
;;treemacs ; a project drawer, like neotree but cooler
unicode ; extended unicode support for various languages
(vc-gutter +pretty) ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
;;window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
;;zen ; distraction-free coding or writing
:editor
(evil +everywhere); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
;;(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys
;;lispy ; vim for lisp, for people who don't like vim
;;multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent
:emacs
(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 ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
;;vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
(spell +flyspell) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make
:tools
;;ansible
;;biblio ; Writes a PhD for you (citation needed)
;;debugger ; FIXME stepping through code, to help you add bugs
;;direnv
;;docker
;;editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists
lookup ; navigate your code and its documentation
(lsp +eglot) ; M-x vscode
magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
tree-sitter ; syntax and parsing, sitting in a tree...
;;upload ; map local to remote projects via ssh/ftp
:os
(:if IS-MAC macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience
:lang
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
;;(cc +lsp) ; C > C++ == 1
;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
;;data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;dhall
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
;;factor
;;faust ; dsp, but you get to keep your soul
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
;;(go +lsp) ; the hipster dialect
;;(graphql +lsp) ; Give queries a REST
;;(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
;;json ; At least it ain't XML
;;(java +lsp) ; the poster child for carpal tunnel syndrome
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
(latex +latexmk +fold) ; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
;;ledger ; be audit you can be
;;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org
+dragndrop
+gnuplot
+hugo
+journal
+jupyter
+pretty
+roam2)
; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
(python +lsp) ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
;;web ; the tubes
;;yaml ; JSON, but readable
;;zig ; C, but simpler
:email
;;(mu4e +org +gmail)
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
:config
;;literate
(default +bindings +smartparens))

View File

@ -1,58 +0,0 @@
;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el
;; To install a package with Doom you must declare them here and run 'doom sync'
;; on the command line, then restart Emacs for the changes to take effect -- or
;; use 'M-x doom/reload'.
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;(package! some-package)
;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/radian-software/straight.el#the-recipe-format
;(package! another-package
; :recipe (:host github :repo "username/repo"))
;; If the package you are trying to install does not contain a PACKAGENAME.el
;; file, or is located in a subdirectory of the repo, you'll need to specify
;; `:files' in the `:recipe':
;(package! this-package
; :recipe (:host github :repo "username/repo"
; :files ("some-file.el" "src/lisp/*.el")))
;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property:
;(package! builtin-package :disable t)
;; You can override the recipe of a built in package without having to specify
;; all the properties for `:recipe'. These will inherit the rest of its recipe
;; from Doom or MELPA/ELPA/Emacsmirror:
;(package! builtin-package :recipe (:nonrecursive t))
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
;; Specify a `:branch' to install a package from a particular branch or tag.
;; This is required for some packages whose default branch isn't 'master' (which
;; our package manager can't deal with; see radian-software/straight.el#279)
;(package! builtin-package :recipe (:branch "develop"))
;; Use `:pin' to specify a particular commit to install.
;(package! builtin-package :pin "1a2b3c4d5e")
;; Doom's packages are pinned to a specific commit and updated from release to
;; release. The `unpin!' macro allows you to unpin single packages...
;(unpin! pinned-package)
;; ...or multiple packages
;(unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t)
(package! dired-hide-dotfiles)
(package! peep-dired)
(package! visual-fill-column)
(package! dashboard)
(package! page-break-lines)
(package! valign)

View File

@ -1,39 +0,0 @@
# Dracula
Background=_/mnt/c/Users/User/wallpaper/colony.jpg,39
ForegroundColour=248,248,242
BackgroundColour=40,42,54
Black=0,0,0
BoldBlack=104,104,104
Red=255,85,85
BoldRed=255,110,103
Green=80,250,123
BoldGreen=90,247,142
Yellow=241,250,140
BoldYellow=244,249,157
Blue=202,169,250
BoldBlue=202,169,250
Magenta=255,121,198
BoldMagenta=255,146,208
Cyan=139,233,253
BoldCyan=154,237,254
White=191,191,191
BoldWhite=230,230,230
Font=Fira Code Retina
FontHeight=12
Term=xterm-256color
Locale=ko_KR
Charset=UTF-8
FontSmoothing=default
AllowBlinking=no
BoldAsFont=no
CursorType=block
CursorBlinks=yes
BellTaskbar=no
BellType=0
BellFlash=no
FontWeight=400
FontIsBold=no
Transparency=medium

View File

@ -1,25 +0,0 @@
/* XPM */
static char * haskell_20_xpm[] = {
"20 20 2 1",
" c None",
". c #FFFFFF",
" ",
" ",
" ",
".... .... ",
" .... ... ",
" ... .... ",
" .... .... ",
" .... ... ........",
" ... .... .......",
" .... .... ",
" .... .... ",
" ... ...... .....",
" .... ....... ....",
" .... .... ... ",
" ... .... .... ",
" .... ... .... ",
".... .... ... ",
" ",
" ",
" "};

View File

@ -1,41 +0,0 @@
#!/bin/bash
function run {
if ! pgrep $1 ;
then
$@&
fi
}
#(sleep 2; run $HOME/.config/polybar/launch.sh) &
# cursor
xsetroot -cursor_name left_ptr &
# background
#feh --bg-fill /usr/share/backgrounds/arcolinux/arco-wallpaper.jpg &
#dwall -p -s firewatch
source ~/scripts/wsl_get_display.sh
~/scripts/random_wallpaper.sh
# other apps
#run variety &
#run nm-applet &
#run pamac-tray &
#run xfce4-power-manager &
#run volumeicon &
#run bitwarden-desktop &
#numlockx on &
#blueberry-tray &
#run lxsession &
#fcitx &
picom &
#/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
#/usr/lib/xfce4/notifyd/xfce4-notifyd &
#seadrive-gui &
#emacs --daemon &
#sleep 2
#trayer --edge top --align right --widthtype request --padding 6 --SetDockType true --SetPartialStrut true --expand true --monitor 0 --transparent true --alpha 0 --tint 0x282c34 --height 16 &

View File

@ -1,489 +0,0 @@
-- Base
import XMonad
import System.Directory
import System.IO (hClose, hPutStr, hPutStrLn)
import System.Exit (exitSuccess)
import qualified XMonad.StackSet as W
-- Actions
import XMonad.Actions.CopyWindow (kill1)
import XMonad.Actions.CycleWS (Direction1D(..), moveTo, shiftTo, WSType(..), nextScreen, prevScreen)
import XMonad.Actions.GridSelect
import XMonad.Actions.MouseResize
import XMonad.Actions.Promote
import XMonad.Actions.RotSlaves (rotSlavesDown, rotAllDown)
import XMonad.Actions.WindowGo (runOrRaise)
import XMonad.Actions.WithAll (sinkAll, killAll)
import qualified XMonad.Actions.Search as S
-- Data
import Data.Char (isSpace, toUpper)
import Data.Maybe (fromJust)
import Data.Monoid
import Data.Maybe (isJust)
import Data.Tree
import qualified Data.Map as M
-- Hooks
import XMonad.Hooks.DynamicLog (dynamicLogWithPP, wrap, xmobarPP, xmobarColor, shorten, PP(..))
import XMonad.Hooks.EwmhDesktops -- for some fullscreen events, also for xcomposite in obs.
import XMonad.Hooks.ManageDocks (avoidStruts, docks, manageDocks, ToggleStruts(..))
import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat)
import XMonad.Hooks.ServerMode
import XMonad.Hooks.SetWMName
import XMonad.Hooks.StatusBar
import XMonad.Hooks.StatusBar.PP
import XMonad.Hooks.WindowSwallowing
import XMonad.Hooks.WorkspaceHistory
-- Layouts
import XMonad.Layout.Accordion
import XMonad.Layout.GridVariants (Grid(Grid))
import XMonad.Layout.SimplestFloat
import XMonad.Layout.Spiral
import XMonad.Layout.ResizableTile
import XMonad.Layout.Tabbed
import XMonad.Layout.ThreeColumns
-- Layouts modifiers
import XMonad.Layout.LayoutModifier
import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit)
import XMonad.Layout.MultiToggle (mkToggle, single, EOT(EOT), (??))
import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL, MIRROR, NOBORDERS))
import XMonad.Layout.NoBorders
import XMonad.Layout.Renamed
import XMonad.Layout.ShowWName
import XMonad.Layout.Simplest
import XMonad.Layout.Spacing
import XMonad.Layout.SubLayouts
import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..))
import XMonad.Layout.WindowNavigation
import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts, ToggleLayout(Toggle))
import qualified XMonad.Layout.MultiToggle as MT (Toggle(..))
-- Utilities
import XMonad.Util.Dmenu
import XMonad.Util.EZConfig (additionalKeysP, mkNamedKeymap)
import XMonad.Util.NamedActions
import XMonad.Util.NamedScratchpad
import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe)
import XMonad.Util.SpawnOnce
-- ColorScheme module (SET ONLY ONE!)
-- Possible choice are:
-- DoomOne
-- Dracula
-- GruvboxDark
-- MonokaiPro
-- Nord
-- OceanicNext
-- Palenight
-- SolarizedDark
-- SolarizedLight
-- TomorrowNight
colorScheme = "doom-one"
colorBack = "#282c34"
colorFore = "#bbc2cf"
color01 = "#1c1f24"
color02 = "#ff6c6b"
color03 = "#98be65"
color04 = "#da8548"
color05 = "#51afef"
color06 = "#c678dd"
color07 = "#5699af"
color08 = "#202328"
color09 = "#5b6268"
color10 = "#da8548"
color11 = "#4db5bd"
color12 = "#ecbe7b"
color13 = "#3071db"
color14 = "#a9a1e1"
color15 = "#46d9ff"
color16 = "#dfdfdf"
colorTrayer :: String
colorTrayer = "--tint 0x282c34"
myFont :: String
myFont = "xft:NanumGothic:regular:size=9:antialias=true:hinting=true"
myEmojiFont :: String
myEmojiFont = "xft:Noto Fonts Emoji:regular:size=9:antialias=true:hinting=true"
myModMask :: KeyMask
myModMask = mod4Mask -- Sets modkey to super/windows key
myTerminal :: String
myTerminal = "alacritty" -- Sets default terminal
myBrowser :: String
myBrowser = "qutebrowser " -- Sets qutebrowser as browser
myEmacs :: String
myEmacs = "emacsclient -c -a 'emacs' " -- Makes emacs keybindings easier to type
myEditor :: String
myEditor = "emacsclient -c -a 'emacs' " -- Sets emacs as editor
-- myEditor = myTerminal ++ " -e vim " -- Sets vim as editor
myBorderWidth :: Dimension
myBorderWidth = 2 -- Sets border width for windows
myNormColor :: String
myNormColor = "#282c34" -- Border color of normal windows
myFocusColor :: String
myFocusColor = "#46d9ff" -- Border color of focused windows
altMask :: KeyMask
altMask = mod1Mask -- Setting this for use in xprompts
windowCount :: X (Maybe String)
windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
myStartupHook :: X ()
myStartupHook = do
--spawnOnce "xrandr --output DP-4 --primary --mode 2560x1440 --pos 0x0 --rotate normal --output HDMI-0 --mode 1920x1080 --pos 2560x0 --rotate normal"
spawn "$HOME/.xmonad/scripts/autostart.sh"
--spawnOnce "nm-applet &"
--spawnOnce "picom -b --config ~/.xmonad/picom.conf &"
--spawnOnce "picom --experimental-backends -b --config ~/.xmonad/picom.conf &"
--spawnOnce "dwall -s firewatch &"
--spawnOnce "fcitx &"
--spawnOnce "seafile-applet &"
--spawnOnce "seadrive-gui &"
--spawnOnce "blueberry-tray &"
--spawnOnce "volumeicon &"
--spawnOnce "enpass"
--spawnOnce "green-tunnel -s &"
--spawnOnce "trayer --edge top --align right --widthtype request --padding 6 --SetDockType true --SetPartialStrut true --expand true --monitor 0 --transparent true --alpha 0 --tint 0x282c34 --height 24 &"
--spawnOnce "/usr/bin/emacs --daemon &"
-- spawnOnce "/usr/bin/emacs --daemon &" -- emacs daemon for the emacsclient
-- spawnOnce "kak -d -s mysession &" -- kakoune daemon for better performance
-- spawnOnce "urxvtd -q -o -f &" -- urxvt daemon for better performance
--spawnOnce "xargs xwallpaper --stretch < ~/.xwallpaper" -- set last saved with xwallpaper
-- spawnOnce "/bin/ls ~/wallpapers | shuf -n 1 | xargs xwallpaper --stretch" -- set random xwallpaper
-- spawnOnce "~/.fehbg &" -- set last saved feh wallpaper
-- spawnOnce "feh --randomize --bg-fill ~/wallpapers/*" -- feh set random wallpaper
-- spawnOnce "nitrogen --restore &" -- if you prefer nitrogen to feh
setWMName "LG3D"
-- Theme for showWName which prints current workspace when you change workspaces.
--Makes setting the spacingRaw simpler to write. The spacingRaw module adds a configurable amount of space around windows.
mySpacing :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
mySpacing i = spacingRaw False (Border i i i i) True (Border i i i i) True
-- Below is a variation of the above except no borders are applied
-- if fewer than two windows. So a single window has no gaps.
mySpacing' :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
mySpacing' i = spacingRaw True (Border i i i i) True (Border i i i i) True
-- Defining a bunch of layouts, many that I don't use.
-- limitWindows n sets maximum number of windows displayed for layout.
-- mySpacing n sets the gap size around the windows.
tall = renamed [Replace "tall"]
$ limitWindows 5
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ mySpacing 8
$ ResizableTall 1 (3/100) (1/2) []
monocle = renamed [Replace "monocle"]
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ Full
floats = renamed [Replace "floats"]
$ smartBorders
$ simplestFloat
grid = renamed [Replace "grid"]
$ limitWindows 9
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ mySpacing 8
$ mkToggle (single MIRROR)
$ Grid (16/10)
spirals = renamed [Replace "spirals"]
$ limitWindows 9
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ mySpacing' 8
$ spiral (6/7)
threeCol = renamed [Replace "threeCol"]
$ limitWindows 7
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ ThreeCol 1 (3/100) (1/2)
threeRow = renamed [Replace "threeRow"]
$ limitWindows 7
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
-- Mirror takes a layout and rotates it by 90 degrees.
-- So we are applying Mirror to the ThreeCol layout.
$ Mirror
$ ThreeCol 1 (3/100) (1/2)
tabs = renamed [Replace "tabs"]
-- I cannot add spacing to this layout because it will
-- add spacing between window and tabs which looks bad.
$ tabbed shrinkText myTabTheme
tallAccordion = renamed [Replace "tallAccordion"]
$ Accordion
wideAccordion = renamed [Replace "wideAccordion"]
$ Mirror Accordion
-- setting colors for tabs layout and tabs sublayout.
myTabTheme = def { fontName = myFont
, activeColor = color15
, inactiveColor = color08
, activeBorderColor = color15
, inactiveBorderColor = colorBack
, activeTextColor = colorBack
, inactiveTextColor = color16
}
-- Theme for showWName which prints current workspace when you change workspaces.
myShowWNameTheme :: SWNConfig
myShowWNameTheme = def
{ swn_font = "xft:Ubuntu:bold:size=60"
, swn_fade = 1.0
, swn_bgcolor = "#1c1f24"
, swn_color = "#ffffff"
}
-- The layout hook
myLayoutHook = avoidStruts
$ mouseResize
$ windowArrange
$ T.toggleLayouts floats
$ mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout
where
myDefaultLayout = withBorder myBorderWidth tall
||| noBorders monocle
||| floats
||| noBorders tabs
||| grid
||| spirals
||| threeCol
||| threeRow
||| tallAccordion
||| wideAccordion
myWorkspaces = [" 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6 ", " 7 ", " 8 ", " 9 "]
-- myWorkspaces = [" dev ", " www ", " sys ", " doc ", " vbox ", " chat ", " mus ", " vid ", " gfx "]
myWorkspaceIndices = M.fromList $ zipWith (,) myWorkspaces [1..] -- (,) == \x y -> (x,y)
clickable ws = "<action=xdotool key super+"++show i++">"++ws++"</action>"
where i = fromJust $ M.lookup ws myWorkspaceIndices
myManageHook :: XMonad.Query (Data.Monoid.Endo WindowSet)
myManageHook = composeAll
-- 'doFloat' forces a window to float. Useful for dialog boxes and such.
-- using 'doShift ( myWorkspaces !! 7)' sends program to workspace 8!
-- I'm doing it this way because otherwise I would have to write out the full
-- name of my workspaces and the names would be very long if using clickable workspaces.
[ className =? "confirm" --> doFloat
, className =? "file_progress" --> doFloat
, className =? "dialog" --> doFloat
, className =? "download" --> doFloat
, className =? "error" --> doFloat
, className =? "Gimp" --> doFloat
, className =? "notification" --> doFloat
, className =? "pinentry-gtk-2" --> doFloat
, className =? "splash" --> doFloat
, className =? "toolbar" --> doFloat
--, title =? "Oracle VM VirtualBox Manager" --> doFloat
--, title =? "Mozilla Firefox" --> doShift ( myWorkspaces !! 1 )
--, className =? "brave-browser" --> doShift ( myWorkspaces !! 1 )
--, className =? "qutebrowser" --> doShift ( myWorkspaces !! 1 )
--, className =? "mpv" --> doShift ( myWorkspaces !! 7 )
--, className =? "Gimp" --> doShift ( myWorkspaces !! 8 )
--, className =? "VirtualBox Manager" --> doShift ( myWorkspaces !! 4 )
, (className =? "firefox" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog
, (className =? "steam" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog
]
myKeys :: [(String, X ())]
myKeys =
-- Xmonad
[ ("M-C-r", spawn "xmonad --recompile") -- Recompiles xmonad
, ("M-S-r", spawn "xmonad --restart") -- Restarts xmonad
, ("M-S-q", io exitSuccess) -- Quits xmonad
-- Run Prompt
-- M-p was the default keybinding. I've changed it to M-S-RET because I will use
-- M-p as part of the keychord for the other dmenu script bindings.
, ("M-S-<Return>", spawn "dmenu_run -i -p \"Run: \"") -- Dmenu
-- Launch Apps
, ("M-f", spawn "firefox")
, ("M-v", spawn "vivaldi-stable")
, ("M-t", spawn "thunar")
, ("M-p", spawn "bitwarden-desktop")
--, ("M-e", spawn "emacs")
, ("M-e", spawn myEmacs)
, ("M-l", spawn "arcolinux-logout")
-- Useful programs to have a keybinding for launch
, ("M-<Return>", spawn (myTerminal))
--, ("M-b", spawn (myBrowser ++ " www.youtube.com/c/DistroTube/"))
--, ("M-M1-h", spawn (myTerminal ++ " -e htop"))
-- Kill windows
, ("M-S-c", kill1) -- Kill the currently focused client
--, ("M-S-a", killAll) -- Kill all windows on current workspace
-- Workspaces
--, ("M-.", nextScreen) -- Switch focus to next monitor
--, ("M-,", prevScreen) -- Switch focus to prev monitor
--, ("M-S-<KP_Add>", shiftTo Next nonNSP >> moveTo Next nonNSP) -- Shifts focused window to next ws
--, ("M-S-<KP_Subtract>", shiftTo Prev nonNSP >> moveTo Prev nonNSP) -- Shifts focused window to prev ws
-- Floating windows
--, ("M-f", sendMessage (T.Toggle "floats")) -- Toggles my 'floats' layout
--, ("M-t", withFocused $ windows . W.sink) -- Push floating window back to tile
--, ("M-S-t", sinkAll) -- Push ALL floating windows to tile
-- Increase/decrease spacing (gaps)
--, ("M-d", decWindowSpacing 4) -- Decrease window spacing
--, ("M-i", incWindowSpacing 4) -- Increase window spacing
--, ("M-S-d", decScreenSpacing 4) -- Decrease screen spacing
--, ("M-S-i", incScreenSpacing 4) -- Increase screen spacing
-- Grid Select (CTR-g followed by a key)
--, ("M-g g", spawnSelected' myAppGrid) -- grid select favorite apps
--, ("M-g t", goToSelected $ mygridConfig myColorizer) -- goto selected window
--, ("C-g b", bringSelected $ mygridConfig myColorizer) -- bring selected window
-- Windows navigation
--, ("M-m", windows W.focusMaster) -- Move focus to the master window
, ("M-j", windows W.focusDown) -- Move focus to the next window
, ("M-k", windows W.focusUp) -- Move focus to the prev window
--, ("M-S-m", windows W.swapMaster) -- Swap the focused window and the master window
--, ("M-S-j", windows W.swapDown) -- Swap focused window with next window
--, ("M-S-k", windows W.swapUp) -- Swap focused window with prev window
--, ("M-<Backspace>", promote) -- Moves focused window to master, others maintain order
--, ("M-S-<Tab>", rotSlavesDown) -- Rotate all windows except master and keep focus in place
, ("M-C-<Tab>", rotAllDown) -- Rotate all the windows in the current stack
-- Layouts
--, ("M-<Tab>", sendMessage NextLayout) -- Switch to next layout
--, ("M-C-M1-<Up>", sendMessage Arrange)
--, ("M-C-M1-<Down>", sendMessage DeArrange)
--, ("M-S-<Space>", sendMessage ToggleStruts) -- Toggles struts
--, ("M-S-n", sendMessage $ MT.Toggle NOBORDERS) -- Toggles noborder
, ("M-<Space>", sendMessage (MT.Toggle NBFULL) >> sendMessage ToggleStruts) -- Toggles noborder/full
-- Increase/decrease windows in the master pane or the stack
--, ("M-S-<Up>", sendMessage (IncMasterN 1)) -- Increase # of clients master pane
--, ("M-S-<Down>", sendMessage (IncMasterN (-1))) -- Decrease # of clients master pane
--, ("M-C-<Up>", increaseLimit) -- Increase # of windows
--, ("M-C-<Down>", decreaseLimit) -- Decrease # of windows
-- Window resizing
--, ("M-h", sendMessage Shrink) -- Shrink horiz window width
--, ("M-l", sendMessage Expand) -- Expand horiz window width
--, ("M-M1-j", sendMessage MirrorShrink) -- Shrink vert window width
--, ("M-M1-k", sendMessage MirrorExpand) -- Expand vert window width
-- Systemwise
, ("C-S-<Esc>", spawn $ "xfce4-taskmanager")
-- Sublayouts
-- This is used to push windows to tabbed sublayouts, or pull them out of it.
--, ("M-C-h", sendMessage $ pullGroup L)
--, ("M-C-l", sendMessage $ pullGroup R)
--, ("M-C-k", sendMessage $ pullGroup U)
--, ("M-C-j", sendMessage $ pullGroup D)
--, ("M-C-m", withFocused (sendMessage . MergeAll))
---- , ("M-C-u", withFocused (sendMessage . UnMerge))
--, ("M-C-/", withFocused (sendMessage . UnMergeAll))
--, ("M-C-.", onGroup W.focusUp') -- Switch focus to next tab
--, ("M-C-,", onGroup W.focusDown') -- Switch focus to prev tab
-- Scratchpads
-- Toggle show/hide these programs. They run on a hidden workspace.
-- When you toggle them to show, it brings them to your current workspace.
-- Toggle them to hide and it sends them back to hidden workspace (NSP).
--, ("C-s t", namedScratchpadAction myScratchPads "terminal")
--, ("C-s m", namedScratchpadAction myScratchPads "mocp")
--, ("C-s c", namedScratchpadAction myScratchPads "calculator")
-- Set wallpaper with 'feh'. Type 'SUPER+F1' to launch sxiv in the wallpapers directory.
-- Then in sxiv, type 'C-x w' to set the wallpaper that you choose.
--, ("M-<F1>", spawn "sxiv -r -q -t -o ~/wallpapers/*")
--, ("M-<F2>", spawn "/bin/ls ~/wallpapers | shuf -n 1 | xargs xwallpaper --stretch")
--, ("M-<F2>", spawn "feh --randomize --bg-fill ~/wallpapers/*")
-- Multimedia Keys
--, ("<XF86AudioPlay>", spawn (myTerminal ++ "mocp --play"))
--, ("<XF86AudioPrev>", spawn (myTerminal ++ "mocp --previous"))
--, ("<XF86AudioNext>", spawn (myTerminal ++ "mocp --next"))
--, ("<XF86AudioMute>", spawn "amixer set Master toggle")
--, ("<XF86AudioLowerVolume>", spawn "amixer set Master 5%- unmute")
--, ("<XF86AudioRaiseVolume>", spawn "amixer set Master 5%+ unmute")
--, ("<XF86HomePage>", spawn "firefox")
--, ("<XF86Search>", safeSpawn "firefox" ["https://www.duckduckgo.com/"])
--, ("<XF86Mail>", runOrRaise "thunderbird" (resource =? "thunderbird"))
--, ("<XF86Calculator>", runOrRaise "qalculate-gtk" (resource =? "qalculate-gtk"))
--, ("<XF86Eject>", spawn "toggleeject")
--, ("<Print>", spawn "scrotd 0")
]
-- The following lines are needed for named scratchpads.
where nonNSP = WSIs (return (\ws -> W.tag ws /= "NSP"))
nonEmptyNonNSP = WSIs (return (\ws -> isJust (W.stack ws) && W.tag ws /= "NSP"))
main :: IO ()
main = do
-- Launching three instances of xmobar on their monitors.
-- xmproc0 <- spawnPipe "xmobar -x 0 $HOME/.config/xmobar/xmobarrc_desktop_qhd"
-- xmproc1 <- spawnPipe "xmobar -x 1 $HOME/.config/xmobar/xmobarrc_desktop_fhd"
xmproc0 <- spawnPipe "xmobar -x 0 $HOME/.config/xmobar/xmobarrc_labtop_fhd"
-- the xmonad, ya know...what the WM is named after!
xmonad $ ewmh def
{ manageHook = ( isFullscreen --> doFullFloat ) <+> myManageHook <+> manageDocks
-- Run xmonad commands from command line with "xmonadctl command". Commands include:
-- shrink, expand, next-layout, default-layout, restart-wm, xterm, kill, refresh, run,
-- focus-up, focus-down, swap-up, swap-down, swap-master, sink, quit-wm. You can run
-- "xmonadctl 0" to generate full list of commands written to ~/.xsession-errors.
-- To compile xmonadctl: ghc -dynamic xmonadctl.hs
, handleEventHook = serverModeEventHookCmd
<+> serverModeEventHook
<+> serverModeEventHookF "XMONAD_PRINT" (io . putStrLn)
-- <+> fullscreenEventHook -- this does NOT work right if using multi-monitors!
, modMask = myModMask
, terminal = myTerminal
, startupHook = myStartupHook
, layoutHook = showWName' myShowWNameTheme $ myLayoutHook
, workspaces = myWorkspaces
, borderWidth = myBorderWidth
, normalBorderColor = myNormColor
, focusedBorderColor = myFocusColor
, logHook = dynamicLogWithPP $ xmobarPP
-- the following variables beginning with 'pp' are settings for xmobar.
{ ppOutput = \x -> hPutStrLn xmproc0 x -- xmobar on monitor 1
-- >> hPutStrLn xmproc1 x -- xmobar on monitor 2
-- >> hPutStrLn xmproc2 x -- xmobar on monitor 3
, ppCurrent = xmobarColor "#FFFFFF" "" . wrap "" "" -- Current workspace
, ppVisible = xmobarColor "#c0a79a" "" . wrap "" "" . clickable -- Visible but not current workspace
, ppHidden = xmobarColor "#c0a79a" "" . wrap "" "" . clickable -- Hidden workspaces
, ppHiddenNoWindows = xmobarColor "#c792ea" "" . \s -> "" -- Hidden workspaces (no windows)
, ppTitle = xmobarColor "#b3afc2" "" . shorten 60 -- Title of active window
, ppSep = "<fc=#666666> <fn=1>|</fn> </fc>" -- Separator character
, ppUrgent = xmobarColor "#C45500" "" . wrap "!" "!" -- Urgent workspace
, ppExtras = [windowCount] -- # of windows current workspace
, ppOrder = \(ws:l:t:ex) -> [ws,l]++ex++[t] -- order of things in xmobar
}
} `additionalKeysP` myKeys

View File

@ -1,513 +0,0 @@
#+TITLE: Xmonad
* Xmonad
** Import
#+begin_src haskell :tangle ./xmonad.hs
-- Base
import XMonad
import System.Directory
import System.IO (hClose, hPutStr, hPutStrLn)
import System.Exit (exitSuccess)
import qualified XMonad.StackSet as W
-- Actions
import XMonad.Actions.CopyWindow (kill1)
import XMonad.Actions.CycleWS (Direction1D(..), moveTo, shiftTo, WSType(..), nextScreen, prevScreen)
import XMonad.Actions.GridSelect
import XMonad.Actions.MouseResize
import XMonad.Actions.Promote
import XMonad.Actions.RotSlaves (rotSlavesDown, rotAllDown)
import XMonad.Actions.WindowGo (runOrRaise)
import XMonad.Actions.WithAll (sinkAll, killAll)
import qualified XMonad.Actions.Search as S
-- Data
import Data.Char (isSpace, toUpper)
import Data.Maybe (fromJust)
import Data.Monoid
import Data.Maybe (isJust)
import Data.Tree
import qualified Data.Map as M
-- Hooks
import XMonad.Hooks.DynamicLog (dynamicLogWithPP, wrap, xmobarPP, xmobarColor, shorten, PP(..))
import XMonad.Hooks.EwmhDesktops -- for some fullscreen events, also for xcomposite in obs.
import XMonad.Hooks.ManageDocks (avoidStruts, docks, manageDocks, ToggleStruts(..))
import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat)
import XMonad.Hooks.ServerMode
import XMonad.Hooks.SetWMName
import XMonad.Hooks.StatusBar
import XMonad.Hooks.StatusBar.PP
import XMonad.Hooks.WindowSwallowing
import XMonad.Hooks.WorkspaceHistory
-- Layouts
import XMonad.Layout.Accordion
import XMonad.Layout.GridVariants (Grid(Grid))
import XMonad.Layout.SimplestFloat
import XMonad.Layout.Spiral
import XMonad.Layout.ResizableTile
import XMonad.Layout.Tabbed
import XMonad.Layout.ThreeColumns
-- Layouts modifiers
import XMonad.Layout.LayoutModifier
import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit)
import XMonad.Layout.MultiToggle (mkToggle, single, EOT(EOT), (??))
import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL, MIRROR, NOBORDERS))
import XMonad.Layout.NoBorders
import XMonad.Layout.Renamed
import XMonad.Layout.ShowWName
import XMonad.Layout.Simplest
import XMonad.Layout.Spacing
import XMonad.Layout.SubLayouts
import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..))
import XMonad.Layout.WindowNavigation
import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts, ToggleLayout(Toggle))
import qualified XMonad.Layout.MultiToggle as MT (Toggle(..))
-- Utilities
import XMonad.Util.Dmenu
import XMonad.Util.EZConfig (additionalKeysP, mkNamedKeymap)
import XMonad.Util.NamedActions
import XMonad.Util.NamedScratchpad
import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe)
import XMonad.Util.SpawnOnce
-- ColorScheme module (SET ONLY ONE!)
-- Possible choice are:
-- DoomOne
-- Dracula
-- GruvboxDark
-- MonokaiPro
-- Nord
-- OceanicNext
-- Palenight
-- SolarizedDark
-- SolarizedLight
-- TomorrowNight
#+end_src
** Color Definition
#+begin_src haskell :tangle ./xmonad.hs
colorScheme = "doom-one"
colorBack = "#282c34"
colorFore = "#bbc2cf"
color01 = "#1c1f24"
color02 = "#ff6c6b"
color03 = "#98be65"
color04 = "#da8548"
color05 = "#51afef"
color06 = "#c678dd"
color07 = "#5699af"
color08 = "#202328"
color09 = "#5b6268"
color10 = "#da8548"
color11 = "#4db5bd"
color12 = "#ecbe7b"
color13 = "#3071db"
color14 = "#a9a1e1"
color15 = "#46d9ff"
color16 = "#dfdfdf"
colorTrayer :: String
colorTrayer = "--tint 0x282c34"
#+end_src
** Gobal Variable
#+begin_src haskell :tangle ./xmonad.hs
myFont :: String
myFont = "xft:NanumGothic:regular:size=9:antialias=true:hinting=true"
myEmojiFont :: String
myEmojiFont = "xft:Noto Fonts Emoji:regular:size=9:antialias=true:hinting=true"
myModMask :: KeyMask
myModMask = mod4Mask -- Sets modkey to super/windows key
myTerminal :: String
myTerminal = "alacritty" -- Sets default terminal
myBrowser :: String
myBrowser = "qutebrowser " -- Sets qutebrowser as browser
myEmacs :: String
myEmacs = "emacsclient -c -a 'emacs' " -- Makes emacs keybindings easier to type
myEditor :: String
myEditor = "emacsclient -c -a 'emacs' " -- Sets emacs as editor
-- myEditor = myTerminal ++ " -e vim " -- Sets vim as editor
myBorderWidth :: Dimension
myBorderWidth = 2 -- Sets border width for windows
myNormColor :: String
myNormColor = "#282c34" -- Border color of normal windows
myFocusColor :: String
myFocusColor = "#46d9ff" -- Border color of focused windows
altMask :: KeyMask
altMask = mod1Mask -- Setting this for use in xprompts
windowCount :: X (Maybe String)
windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
#+end_src
** StartupHook
#+begin_src haskell :tangle ./xmonad.hs
myStartupHook :: X ()
myStartupHook = do
--spawnOnce "xrandr --output DP-4 --primary --mode 2560x1440 --pos 0x0 --rotate normal --output HDMI-0 --mode 1920x1080 --pos 2560x0 --rotate normal"
spawn "$HOME/.xmonad/scripts/autostart.sh"
--spawnOnce "nm-applet &"
--spawnOnce "picom -b --config ~/.xmonad/picom.conf &"
--spawnOnce "picom --experimental-backends -b --config ~/.xmonad/picom.conf &"
--spawnOnce "dwall -s firewatch &"
--spawnOnce "fcitx &"
--spawnOnce "seafile-applet &"
--spawnOnce "seadrive-gui &"
--spawnOnce "blueberry-tray &"
--spawnOnce "volumeicon &"
--spawnOnce "enpass"
--spawnOnce "green-tunnel -s &"
--spawnOnce "trayer --edge top --align right --widthtype request --padding 6 --SetDockType true --SetPartialStrut true --expand true --monitor 0 --transparent true --alpha 0 --tint 0x282c34 --height 24 &"
--spawnOnce "/usr/bin/emacs --daemon &"
-- spawnOnce "/usr/bin/emacs --daemon &" -- emacs daemon for the emacsclient
-- spawnOnce "kak -d -s mysession &" -- kakoune daemon for better performance
-- spawnOnce "urxvtd -q -o -f &" -- urxvt daemon for better performance
--spawnOnce "xargs xwallpaper --stretch < ~/.xwallpaper" -- set last saved with xwallpaper
-- spawnOnce "/bin/ls ~/wallpapers | shuf -n 1 | xargs xwallpaper --stretch" -- set random xwallpaper
-- spawnOnce "~/.fehbg &" -- set last saved feh wallpaper
-- spawnOnce "feh --randomize --bg-fill ~/wallpapers/*" -- feh set random wallpaper
-- spawnOnce "nitrogen --restore &" -- if you prefer nitrogen to feh
setWMName "LG3D"
#+end_src
** Layout
#+begin_src haskell :tangle ./xmonad.hs
-- Theme for showWName which prints current workspace when you change workspaces.
--Makes setting the spacingRaw simpler to write. The spacingRaw module adds a configurable amount of space around windows.
mySpacing :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
mySpacing i = spacingRaw False (Border i i i i) True (Border i i i i) True
-- Below is a variation of the above except no borders are applied
-- if fewer than two windows. So a single window has no gaps.
mySpacing' :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
mySpacing' i = spacingRaw True (Border i i i i) True (Border i i i i) True
-- Defining a bunch of layouts, many that I don't use.
-- limitWindows n sets maximum number of windows displayed for layout.
-- mySpacing n sets the gap size around the windows.
tall = renamed [Replace "tall"]
$ limitWindows 5
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ mySpacing 8
$ ResizableTall 1 (3/100) (1/2) []
monocle = renamed [Replace "monocle"]
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ Full
floats = renamed [Replace "floats"]
$ smartBorders
$ simplestFloat
grid = renamed [Replace "grid"]
$ limitWindows 9
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ mySpacing 8
$ mkToggle (single MIRROR)
$ Grid (16/10)
spirals = renamed [Replace "spirals"]
$ limitWindows 9
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ mySpacing' 8
$ spiral (6/7)
threeCol = renamed [Replace "threeCol"]
$ limitWindows 7
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ ThreeCol 1 (3/100) (1/2)
threeRow = renamed [Replace "threeRow"]
$ limitWindows 7
$ smartBorders
$ windowNavigation
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
-- Mirror takes a layout and rotates it by 90 degrees.
-- So we are applying Mirror to the ThreeCol layout.
$ Mirror
$ ThreeCol 1 (3/100) (1/2)
tabs = renamed [Replace "tabs"]
-- I cannot add spacing to this layout because it will
-- add spacing between window and tabs which looks bad.
$ tabbed shrinkText myTabTheme
tallAccordion = renamed [Replace "tallAccordion"]
$ Accordion
wideAccordion = renamed [Replace "wideAccordion"]
$ Mirror Accordion
-- setting colors for tabs layout and tabs sublayout.
myTabTheme = def { fontName = myFont
, activeColor = color15
, inactiveColor = color08
, activeBorderColor = color15
, inactiveBorderColor = colorBack
, activeTextColor = colorBack
, inactiveTextColor = color16
}
-- Theme for showWName which prints current workspace when you change workspaces.
myShowWNameTheme :: SWNConfig
myShowWNameTheme = def
{ swn_font = "xft:Ubuntu:bold:size=60"
, swn_fade = 1.0
, swn_bgcolor = "#1c1f24"
, swn_color = "#ffffff"
}
-- The layout hook
myLayoutHook = avoidStruts
$ mouseResize
$ windowArrange
$ T.toggleLayouts floats
$ mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout
where
myDefaultLayout = withBorder myBorderWidth tall
||| noBorders monocle
||| floats
||| noBorders tabs
||| grid
||| spirals
||| threeCol
||| threeRow
||| tallAccordion
||| wideAccordion
#+end_src
** Workspace
#+begin_src haskell :tangle ./xmonad.hs
myWorkspaces = [" 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6 ", " 7 ", " 8 ", " 9 "]
-- myWorkspaces = [" dev ", " www ", " sys ", " doc ", " vbox ", " chat ", " mus ", " vid ", " gfx "]
myWorkspaceIndices = M.fromList $ zipWith (,) myWorkspaces [1..] -- (,) == \x y -> (x,y)
clickable ws = "<action=xdotool key super+"++show i++">"++ws++"</action>"
where i = fromJust $ M.lookup ws myWorkspaceIndices
myManageHook :: XMonad.Query (Data.Monoid.Endo WindowSet)
myManageHook = composeAll
-- 'doFloat' forces a window to float. Useful for dialog boxes and such.
-- using 'doShift ( myWorkspaces !! 7)' sends program to workspace 8!
-- I'm doing it this way because otherwise I would have to write out the full
-- name of my workspaces and the names would be very long if using clickable workspaces.
[ className =? "confirm" --> doFloat
, className =? "file_progress" --> doFloat
, className =? "dialog" --> doFloat
, className =? "download" --> doFloat
, className =? "error" --> doFloat
, className =? "Gimp" --> doFloat
, className =? "notification" --> doFloat
, className =? "pinentry-gtk-2" --> doFloat
, className =? "splash" --> doFloat
, className =? "toolbar" --> doFloat
--, title =? "Oracle VM VirtualBox Manager" --> doFloat
--, title =? "Mozilla Firefox" --> doShift ( myWorkspaces !! 1 )
--, className =? "brave-browser" --> doShift ( myWorkspaces !! 1 )
--, className =? "qutebrowser" --> doShift ( myWorkspaces !! 1 )
--, className =? "mpv" --> doShift ( myWorkspaces !! 7 )
--, className =? "Gimp" --> doShift ( myWorkspaces !! 8 )
--, className =? "VirtualBox Manager" --> doShift ( myWorkspaces !! 4 )
, (className =? "firefox" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog
, (className =? "steam" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog
]
#+end_src
** Key bindings
#+begin_src haskell :tangle ./xmonad.hs
myKeys :: [(String, X ())]
myKeys =
-- Xmonad
[ ("M-C-r", spawn "xmonad --recompile") -- Recompiles xmonad
, ("M-S-r", spawn "xmonad --restart") -- Restarts xmonad
, ("M-S-q", io exitSuccess) -- Quits xmonad
-- Run Prompt
-- M-p was the default keybinding. I've changed it to M-S-RET because I will use
-- M-p as part of the keychord for the other dmenu script bindings.
, ("M-S-<Return>", spawn "dmenu_run -i -p \"Run: \"") -- Dmenu
-- Launch Apps
, ("M-f", spawn "firefox")
, ("M-v", spawn "vivaldi-stable")
, ("M-t", spawn "thunar")
, ("M-p", spawn "bitwarden-desktop")
--, ("M-e", spawn "emacs")
, ("M-e", spawn myEmacs)
, ("M-l", spawn "arcolinux-logout")
-- Useful programs to have a keybinding for launch
, ("M-<Return>", spawn (myTerminal))
--, ("M-b", spawn (myBrowser ++ " www.youtube.com/c/DistroTube/"))
--, ("M-M1-h", spawn (myTerminal ++ " -e htop"))
-- Kill windows
, ("M-S-c", kill1) -- Kill the currently focused client
--, ("M-S-a", killAll) -- Kill all windows on current workspace
-- Workspaces
--, ("M-.", nextScreen) -- Switch focus to next monitor
--, ("M-,", prevScreen) -- Switch focus to prev monitor
--, ("M-S-<KP_Add>", shiftTo Next nonNSP >> moveTo Next nonNSP) -- Shifts focused window to next ws
--, ("M-S-<KP_Subtract>", shiftTo Prev nonNSP >> moveTo Prev nonNSP) -- Shifts focused window to prev ws
-- Floating windows
--, ("M-f", sendMessage (T.Toggle "floats")) -- Toggles my 'floats' layout
--, ("M-t", withFocused $ windows . W.sink) -- Push floating window back to tile
--, ("M-S-t", sinkAll) -- Push ALL floating windows to tile
-- Increase/decrease spacing (gaps)
--, ("M-d", decWindowSpacing 4) -- Decrease window spacing
--, ("M-i", incWindowSpacing 4) -- Increase window spacing
--, ("M-S-d", decScreenSpacing 4) -- Decrease screen spacing
--, ("M-S-i", incScreenSpacing 4) -- Increase screen spacing
-- Grid Select (CTR-g followed by a key)
--, ("M-g g", spawnSelected' myAppGrid) -- grid select favorite apps
--, ("M-g t", goToSelected $ mygridConfig myColorizer) -- goto selected window
--, ("C-g b", bringSelected $ mygridConfig myColorizer) -- bring selected window
-- Windows navigation
--, ("M-m", windows W.focusMaster) -- Move focus to the master window
, ("M-j", windows W.focusDown) -- Move focus to the next window
, ("M-k", windows W.focusUp) -- Move focus to the prev window
--, ("M-S-m", windows W.swapMaster) -- Swap the focused window and the master window
--, ("M-S-j", windows W.swapDown) -- Swap focused window with next window
--, ("M-S-k", windows W.swapUp) -- Swap focused window with prev window
--, ("M-<Backspace>", promote) -- Moves focused window to master, others maintain order
--, ("M-S-<Tab>", rotSlavesDown) -- Rotate all windows except master and keep focus in place
, ("M-C-<Tab>", rotAllDown) -- Rotate all the windows in the current stack
-- Layouts
--, ("M-<Tab>", sendMessage NextLayout) -- Switch to next layout
--, ("M-C-M1-<Up>", sendMessage Arrange)
--, ("M-C-M1-<Down>", sendMessage DeArrange)
--, ("M-S-<Space>", sendMessage ToggleStruts) -- Toggles struts
--, ("M-S-n", sendMessage $ MT.Toggle NOBORDERS) -- Toggles noborder
, ("M-<Space>", sendMessage (MT.Toggle NBFULL) >> sendMessage ToggleStruts) -- Toggles noborder/full
-- Increase/decrease windows in the master pane or the stack
--, ("M-S-<Up>", sendMessage (IncMasterN 1)) -- Increase # of clients master pane
--, ("M-S-<Down>", sendMessage (IncMasterN (-1))) -- Decrease # of clients master pane
--, ("M-C-<Up>", increaseLimit) -- Increase # of windows
--, ("M-C-<Down>", decreaseLimit) -- Decrease # of windows
-- Window resizing
--, ("M-h", sendMessage Shrink) -- Shrink horiz window width
--, ("M-l", sendMessage Expand) -- Expand horiz window width
--, ("M-M1-j", sendMessage MirrorShrink) -- Shrink vert window width
--, ("M-M1-k", sendMessage MirrorExpand) -- Expand vert window width
-- Systemwise
, ("C-S-<Esc>", spawn $ "xfce4-taskmanager")
-- Sublayouts
-- This is used to push windows to tabbed sublayouts, or pull them out of it.
--, ("M-C-h", sendMessage $ pullGroup L)
--, ("M-C-l", sendMessage $ pullGroup R)
--, ("M-C-k", sendMessage $ pullGroup U)
--, ("M-C-j", sendMessage $ pullGroup D)
--, ("M-C-m", withFocused (sendMessage . MergeAll))
---- , ("M-C-u", withFocused (sendMessage . UnMerge))
--, ("M-C-/", withFocused (sendMessage . UnMergeAll))
--, ("M-C-.", onGroup W.focusUp') -- Switch focus to next tab
--, ("M-C-,", onGroup W.focusDown') -- Switch focus to prev tab
-- Scratchpads
-- Toggle show/hide these programs. They run on a hidden workspace.
-- When you toggle them to show, it brings them to your current workspace.
-- Toggle them to hide and it sends them back to hidden workspace (NSP).
--, ("C-s t", namedScratchpadAction myScratchPads "terminal")
--, ("C-s m", namedScratchpadAction myScratchPads "mocp")
--, ("C-s c", namedScratchpadAction myScratchPads "calculator")
-- Set wallpaper with 'feh'. Type 'SUPER+F1' to launch sxiv in the wallpapers directory.
-- Then in sxiv, type 'C-x w' to set the wallpaper that you choose.
--, ("M-<F1>", spawn "sxiv -r -q -t -o ~/wallpapers/*")
--, ("M-<F2>", spawn "/bin/ls ~/wallpapers | shuf -n 1 | xargs xwallpaper --stretch")
--, ("M-<F2>", spawn "feh --randomize --bg-fill ~/wallpapers/*")
-- Multimedia Keys
--, ("<XF86AudioPlay>", spawn (myTerminal ++ "mocp --play"))
--, ("<XF86AudioPrev>", spawn (myTerminal ++ "mocp --previous"))
--, ("<XF86AudioNext>", spawn (myTerminal ++ "mocp --next"))
--, ("<XF86AudioMute>", spawn "amixer set Master toggle")
--, ("<XF86AudioLowerVolume>", spawn "amixer set Master 5%- unmute")
--, ("<XF86AudioRaiseVolume>", spawn "amixer set Master 5%+ unmute")
--, ("<XF86HomePage>", spawn "firefox")
--, ("<XF86Search>", safeSpawn "firefox" ["https://www.duckduckgo.com/"])
--, ("<XF86Mail>", runOrRaise "thunderbird" (resource =? "thunderbird"))
--, ("<XF86Calculator>", runOrRaise "qalculate-gtk" (resource =? "qalculate-gtk"))
--, ("<XF86Eject>", spawn "toggleeject")
--, ("<Print>", spawn "scrotd 0")
]
-- The following lines are needed for named scratchpads.
where nonNSP = WSIs (return (\ws -> W.tag ws /= "NSP"))
nonEmptyNonNSP = WSIs (return (\ws -> isJust (W.stack ws) && W.tag ws /= "NSP"))
#+end_src
** Main
#+begin_src haskell :tangle ./xmonad.hs
main :: IO ()
main = do
-- Launching three instances of xmobar on their monitors.
-- xmproc0 <- spawnPipe "xmobar -x 0 $HOME/.config/xmobar/xmobarrc_desktop_qhd"
-- xmproc1 <- spawnPipe "xmobar -x 1 $HOME/.config/xmobar/xmobarrc_desktop_fhd"
xmproc0 <- spawnPipe "xmobar -x 0 $HOME/.config/xmobar/xmobarrc_labtop_fhd"
-- the xmonad, ya know...what the WM is named after!
xmonad $ ewmh def
{ manageHook = ( isFullscreen --> doFullFloat ) <+> myManageHook <+> manageDocks
-- Run xmonad commands from command line with "xmonadctl command". Commands include:
-- shrink, expand, next-layout, default-layout, restart-wm, xterm, kill, refresh, run,
-- focus-up, focus-down, swap-up, swap-down, swap-master, sink, quit-wm. You can run
-- "xmonadctl 0" to generate full list of commands written to ~/.xsession-errors.
-- To compile xmonadctl: ghc -dynamic xmonadctl.hs
, handleEventHook = serverModeEventHookCmd
<+> serverModeEventHook
<+> serverModeEventHookF "XMONAD_PRINT" (io . putStrLn)
-- <+> fullscreenEventHook -- this does NOT work right if using multi-monitors!
, modMask = myModMask
, terminal = myTerminal
, startupHook = myStartupHook
, layoutHook = showWName' myShowWNameTheme $ myLayoutHook
, workspaces = myWorkspaces
, borderWidth = myBorderWidth
, normalBorderColor = myNormColor
, focusedBorderColor = myFocusColor
, logHook = dynamicLogWithPP $ xmobarPP
-- the following variables beginning with 'pp' are settings for xmobar.
{ ppOutput = \x -> hPutStrLn xmproc0 x -- xmobar on monitor 1
-- >> hPutStrLn xmproc1 x -- xmobar on monitor 2
-- >> hPutStrLn xmproc2 x -- xmobar on monitor 3
, ppCurrent = xmobarColor "#FFFFFF" "" . wrap "●" "" -- Current workspace
, ppVisible = xmobarColor "#c0a79a" "" . wrap "♼" "" . clickable -- Visible but not current workspace
, ppHidden = xmobarColor "#c0a79a" "" . wrap "○" "" . clickable -- Hidden workspaces
, ppHiddenNoWindows = xmobarColor "#c792ea" "" . \s -> "" -- Hidden workspaces (no windows)
, ppTitle = xmobarColor "#b3afc2" "" . shorten 60 -- Title of active window
, ppSep = "<fc=#666666> <fn=1>|</fn> </fc>" -- Separator character
, ppUrgent = xmobarColor "#C45500" "" . wrap "!" "!" -- Urgent workspace
, ppExtras = [windowCount] -- # of windows current workspace
, ppOrder = \(ws:l:t:ex) -> [ws,l]++ex++[t] -- order of things in xmobar
}
} `additionalKeysP` myKeys
#+end_src

Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 KiB