diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc index e178870..fff2b47 100755 --- a/.config/bspwm/bspwmrc +++ b/.config/bspwm/bspwmrc @@ -31,26 +31,6 @@ bspc config right_monocle_padding 20 bspc config bottom_monocle_padding 20 #bspc config ignore_ewmh_fullscreen enter -bspc rule --add emacs state=tiled -bspc rule --add Blueman-manager state=floating rectangle=610x610+650+235 -bspc rule --add Surf layer=above border=off rectangle=415x1100+0+0 -bspc rule --add Surfdload state=floating layer=above border=off rectangle=415x75+0+0 sticky=on focus=off -bspc rule --add Brave-browser rectangle=1130x800+395+140 -bspc rule --add Polkit-gnome-authentication-agent-1 rectangle=810x280+555+399 -bspc rule --add Polybar layer=top manage=off -bspc rule --add kozu state=floating rectangle=1910x200+0+870 layer=above -bspc rule --add cava state=floating manage=off rectangle=1920x1050+0+50 border=off sticky=on locked=on layer=below focus=off -#bspc rule --add Pqiv manage=off border=off #rectangle=110x50+260+20 -bspc rule --add Nautilus state=floating -bspc rule --add mpv state=floating border=off -bspc rule --add Rofi manage=off -bspc rule --add Pavucontrol state=floating rectangle=610x610+650+235 -bspc rule --add Yad state=floating -bspc rule --add Thunar rectangle=650x500+635+290 -bspc rule --add flameshot state=floating border=off -bspc rule --add Emacs state=tiled - - # Colors bspc config focused_border_color "$color9" bspc config active_border_color "$color9" diff --git a/.config/emacs/custom-default.el b/.config/emacs/custom-default.el new file mode 100644 index 0000000..1665a74 --- /dev/null +++ b/.config/emacs/custom-default.el @@ -0,0 +1,40 @@ + +(defun custom-setup-fonts () + "setup fonts..." + (when (display-graphic-p) + ;; default font + (cl-loop for font in '("FiraCode Nerd Font Mono" "Jetbrains Mono" + "Source Code Pro" "DejaVu Sans Mono") + when (font-installed-p font) + return (set-face-attribute 'default nil + :family font + :height 130)) + ;; uni code caracter + (cl-loop for font in '("Segoe UI Symbol" "Symbola" "Symbol") + when (font-installed-p font) + return (set-fontset-font t 'symbol (font-spec :family font) nil 'prepend)) + + ;; Emoji + (cl-loop for font in '("Noto Color Emoji" "Apple Color Emoji" "Segoe UI Emoji") + when (font-installed-p font) + return (cond + ((< emacs-major-version 27) + (set-fontset-font "fontset-default" 'unicode font nil 'prepend)) + ((< emacs-major-version 28) + (set-fontset-font t 'symbol (font-spec :family font) nil 'prepend)) + (t + (set-fontset-font t 'emoji (font-spec :family font) nil 'prepend)))) + + ;; Noto font or Nanum + (cl-loop for font in '("Noto Sans CJK KR" "Nanum Gothic") + when (font-installed-p font) + return (progn + (setq face-font-rescale-alist `((,font . 1.26))) + (set-fontset-font t '(#x1100 . #xffdc) (font-spec :family font)))))) + + +(custom-setup-fonts) +(add-hook 'window-setup-hook #'custom-setup-fonts) +(add-hook 'server-after-make-frame-hook #'centaur-setup-fonts) + + diff --git a/.config/emacs/init.el b/.config/emacs/init.el index b1af5f2..6e21835 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -51,7 +51,8 @@ Otherwise the startup will be very slow. " (update-load-path) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(require 'init-package) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init.el ends here -(require 'init-package) diff --git a/.config/emacs/lisp/init-const.el b/.config/emacs/lisp/init-const.el index 3849e91..c4d13ab 100644 --- a/.config/emacs/lisp/init-const.el +++ b/.config/emacs/lisp/init-const.el @@ -3,5 +3,8 @@ "Under Linux system") (defconst ON-WINDOWS (memq system-type '(cygwin windows-nt ms-dos)) "Under Windows System") +(defconst custom-default-file + (expand-file-name "custom-default.el" user-emacs-directory)) +(setq custom-file (expand-file-name "custom.el" user-emacs-directory)) (provide 'init-const) diff --git a/.config/emacs/lisp/init-func.el b/.config/emacs/lisp/init-func.el new file mode 100644 index 0000000..c8b61c9 --- /dev/null +++ b/.config/emacs/lisp/init-func.el @@ -0,0 +1,9 @@ +;;; init-func.el -*- lexical-binding: t -*- +(require 'cl-lib) +(require 'init-const) + +(defun font-installed-p (font-name) + (find-font (font-spec :name font-name))) + +(provide 'init-func) +;;; init-func.el ends here diff --git a/.config/emacs/lisp/init-package.el b/.config/emacs/lisp/init-package.el index d14409e..1ffabf8 100644 --- a/.config/emacs/lisp/init-package.el +++ b/.config/emacs/lisp/init-package.el @@ -1,9 +1,91 @@ ;;; init-package.el -*- lexical-binding: t -*- (require 'init-const) +(require 'init-func) +(when (and (file-exists-p custom-default-file) + (not (file-exists-p custom-file))) + (copy-file custom-default-file custom-file)) +(and (file-readable-p custom-file) (load custom-file)) + +;; HACK: DO NOT save package-selected-packages to `custom-file'. +;; https://github.com/jwiegley/use-package/issues/383#issuecomment-247801751 +(defun my-package--save-selected-packages (&optional value) + "Set `package-selected-packages' to VALUE but don't save to `custom-file'." + (when value + (setq package-selected-packages value)) + (unless after-init-time + (add-hook 'after-init-hook #'my-package--save-selected-packages))) +(advice-add 'package--save-selected-packages :override #'my-package--save-selected-packages) + +(require 'package) +(add-to-list 'package-archives '("stable" . "https://stable.melpa.org/packages/")) +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) +(customize-set-variable 'package-archive-priorities + '(("gnu" . 99) ; prefer GNU packages + ("nongnu" . 80) ; use non-gnu packages if + ; not found in GNU elpa + ("stable" . 70) ; prefer "released" versions + ; from melpa + ("melpa" . 0))) ; if all else fails, get it + ; from melpa +(unless (bound-and-true-p package--initialized) + (setq package-enable-at-startup nil) + (package-initialize)) +;; Setup `use-package' +(unless (package-installed-p 'use-package) + (package-refresh-contents) + (package-install 'use-package)) +;; Should set before loading `use-package' +(eval-and-compile + (setq use-package-always-ensure t) + (setq use-package-always-defer t) + (setq use-package-expand-minimally t) + (setq use-package-enable-imenu-support t)) +(eval-when-compile + (require 'use-package)) + +(use-package diminish) +(use-package bind-key) + +(use-package paradox + :custom-face + (paradox-archive-face ((t (:inherit font-lock-doc-face)))) + (paradox-description-face ((t (:inherit completions-annotations)))) + :hook + (emacs-startup . paradox-enable) + :init + (setq paradox-execute-asynchronously t + paradox-github-token nil + paradox-display-star-count nil + paradox-status-face-alist ; + '(("built-in" . font-lock-builtin-face) + ("available" . success) + ("new" . (success bold)) + ("held" . font-lock-constant-face) + ("disabled" . font-lock-warning-face) + ("avail-obso" . font-lock-comment-face) + ("installed" . font-lock-comment-face) + ("dependency" . font-lock-comment-face) + ("incompat" . font-lock-comment-face) + ("deleted" . font-lock-comment-face) + ("unsigned" . font-lock-warning-face))) + :config + (add-hook 'paradox-after-execute-functions + (lambda (_) + "Display `page-break-lines' in \"*Paradox Report*\" buffer." + (when (fboundp 'page-break-lines-mode) + (let ((buf (get-buffer "*Paradox Report*")) + (inhibit-read-only t)) + (when (buffer-live-p buf) + (with-current-buffer buf + (page-break-lines-mode 1)))))) + t)) (provide 'init-package) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; init-package.el ends here + diff --git a/.config/emacs/site-lisp/.gitkeep b/.config/emacs/site-lisp/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc index 486c7dc..e190aac 100644 --- a/.config/sxhkd/sxhkdrc +++ b/.config/sxhkd/sxhkdrc @@ -5,14 +5,15 @@ super+Return st #Apps and programs super+e - emacsclient -c -a 'emacs' + emacs --debug-init +#emacsclient -c -a 'emacs' super+b qutebrowser super+f firefox # workspace super + {1,2,3,4,5} - bspc desktop -f {1,2,3,4,5} + bspc desktop -f {1,2,3,4,5}; bspc query -N -n .local.window.hidden | xargs -I\{\} bspc node \{\} -g hidden; bspc query -N -n .local.window.fullscreen | xargs -I\{\} bspc node \{\} -t tiled; polybar-msg cmd show; super + shift + {1-5} bspc node -d '^{1-5}' @@ -169,15 +170,21 @@ super+shift+r # bspc node focused -z bottom 0 15 super + shift + f bspc node focused -t "~floating" -super + {_,shift +} + {h,j,k,l} - bspc node -{f,s} {west,south,north,east} +super + {_,shift +} + {h,l} + bspc node -{f,s} {west,east} +super + shift + {j,k} + bspc node -s {south,north} +super + j + if set test (bspc query -N -n focused.fullscreen); bspc query -N -n .local.window.hidden.!focused | xargs -I\{\} bspc node \{\} -g hidden; bspc node next.leaf.local -f -t fullscreen; bspc query -N -n .local.window.!hidden.!focused | xargs -I\{\} bspc node \{\} -g hidden; else; bspc node -f south; end +super + k + if set test (bspc query -N -n focused.fullscreen); bspc query -N -n .local.window.hidden.!focused | xargs -I\{\} bspc node \{\} -g hidden; bspc node prev.leaf.local -f -t fullscreen; bspc query -N -n .local.window.!hidden.!focused | xargs -I\{\} bspc node \{\} -g hidden; else; bspc node -f north; end #super + {_,shift + }n # bspc node -f {next,prev}.local super + {t,shift + t,s,f} #super + {t,shift + t,s,f} # bspc node -t {\~tiled,\~pseudo_tiled, \~floating,\~fullscreen} super+space - bspc node focused -t "~fullscreen" + if set test (bspc query -N -n focused.fullscreen); bspc node -f -t tiled; polybar-msg cmd show; bspc query -N -n .local.window.hidden.!focused | xargs -I\{\} bspc node \{\} -g hidden; else; bspc node -f -t fullscreen; polybar-msg cmd hide; bspc query -N -n .local.window.!hidden.!focused | xargs -I\{\} bspc node \{\} -g hidden; end super+KP_Add bspc config window_gap $(( 5 + `bspc config window_gap` )) super+KP_Subtract diff --git a/scripts/init_script_wsl.sh b/scripts/init_script_wsl.sh index 09f3372..3e26b3d 100755 --- a/scripts/init_script_wsl.sh +++ b/scripts/init_script_wsl.sh @@ -49,11 +49,17 @@ paru -S python-pywal xorg-xrdb --noconfirm git clone https://git.jaeus.net/walls + +################################################## +# Fonts +################################################## +paru -S ttf-firacode-nerd ttf-nanum noto-fonts-emoji ttf-symbola noto-font-cjk --noconfirm + ################################################## # EMACS Related ################################################## # base -paru -S ripgrep emacs ttf-fira-code ttf-d2coding auctex texlive-most texlive-lang --noconfirm +paru -S ripgrep emacs texlive-most texlive-lang --noconfirm # Python paru -S python python-pip jupyter openssh inetutils --noconfirm diff --git a/test_hangul.txt b/test_hangul.txt new file mode 100755 index 0000000..9b82ef9 --- /dev/null +++ b/test_hangul.txt @@ -0,0 +1 @@ +다람쥐 헌 쳇바퀴에 타고파