From 1daf3864a5a7e87e437beaf66b40c6d3c5c5c06c Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 18 May 2022 20:43:14 +0900 Subject: [PATCH] =?UTF-8?q?Cleanup=20:=20unused=20configuration=20removed.?= =?UTF-8?q?=E2=9A=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config/fish/config.fish | 20 - .config/fish/fish_variables | 30 - .config/nu/config.toml | 64 - .config/starship.toml | 21 - .emacs-profiles.el | 6 - .emacs.df/.gitignore | 10 - .emacs.df/desktop.el | 164 -- .emacs.df/early-init.el | 46 - .emacs.df/exwm/.start-exwm.sh.~undo-tree~ | 6 - .emacs.df/exwm/EXWM.desktop | 8 - .emacs.df/exwm/start-exwm.sh | 13 - .emacs.df/init.el | 976 ---------- .emacs.df/logos/emacs-e.png | Bin 3452 -> 0 bytes .emacs.doom.d/black-hole.png | Bin 168872 -> 0 bytes .emacs.doom.d/config.el | 200 -- .emacs.doom.d/init.el | 205 -- .emacs.doom.d/packages.el | 60 - .emacs.rational.d/config.el | 807 -------- .emacs.rational.d/desktop.el | 164 -- .../exwm/.start-exwm.sh.~undo-tree~ | 6 - .emacs.rational.d/exwm/EXWM.desktop | 8 - .emacs.rational.d/exwm/start-exwm.sh | 13 - .emacs.rational.d/logos/emacs-e.png | Bin 3452 -> 0 bytes .emacs.vanilla/desktop.el | 164 -- .emacs.vanilla/desktop.org | 202 -- .emacs.vanilla/emacs.el | 1454 -------------- .emacs.vanilla/emacs.org | 1694 ----------------- .emacs.vanilla/exwm/EXWM.desktop | 8 - .emacs.vanilla/exwm/start-exwm.sh | 14 - .emacs.vanilla/init.el | 9 - .emacs.vanilla/logos/black-hole.png | Bin 168872 -> 0 bytes .emacs.vanilla/logos/emacs-e.png | Bin 3452 -> 0 bytes .emacs.vanilla/snippets/text-mode/__license | 5 - .../snippets/text-mode/__license-apache | 207 -- .../snippets/text-mode/__license-apache-bp | 19 - .../snippets/text-mode/__license-bsd2 | 28 - .../snippets/text-mode/__license-bsd3 | 31 - .../snippets/text-mode/__license-gpl3 | 680 ------- .../snippets/text-mode/__license-gpl3-bp | 21 - .../snippets/text-mode/__license-lgpl3 | 171 -- .../snippets/text-mode/__license-mit | 28 - .../snippets/text-mode/__license-mozilla | 380 ---- .../snippets/text-mode/__license-mozilla-bp | 9 - .../snippets/text-mode/__license-unlicense | 30 - .julia/startup.jl | 3 - 45 files changed, 7984 deletions(-) delete mode 100644 .config/fish/config.fish delete mode 100644 .config/fish/fish_variables delete mode 100644 .config/nu/config.toml delete mode 100644 .config/starship.toml delete mode 100644 .emacs-profiles.el delete mode 100644 .emacs.df/.gitignore delete mode 100644 .emacs.df/desktop.el delete mode 100644 .emacs.df/early-init.el delete mode 100644 .emacs.df/exwm/.start-exwm.sh.~undo-tree~ delete mode 100644 .emacs.df/exwm/EXWM.desktop delete mode 100755 .emacs.df/exwm/start-exwm.sh delete mode 100644 .emacs.df/init.el delete mode 100644 .emacs.df/logos/emacs-e.png delete mode 100755 .emacs.doom.d/black-hole.png delete mode 100644 .emacs.doom.d/config.el delete mode 100644 .emacs.doom.d/init.el delete mode 100644 .emacs.doom.d/packages.el delete mode 100644 .emacs.rational.d/config.el delete mode 100644 .emacs.rational.d/desktop.el delete mode 100644 .emacs.rational.d/exwm/.start-exwm.sh.~undo-tree~ delete mode 100644 .emacs.rational.d/exwm/EXWM.desktop delete mode 100755 .emacs.rational.d/exwm/start-exwm.sh delete mode 100644 .emacs.rational.d/logos/emacs-e.png delete mode 100644 .emacs.vanilla/desktop.el delete mode 100644 .emacs.vanilla/desktop.org delete mode 100644 .emacs.vanilla/emacs.el delete mode 100644 .emacs.vanilla/emacs.org delete mode 100644 .emacs.vanilla/exwm/EXWM.desktop delete mode 100755 .emacs.vanilla/exwm/start-exwm.sh delete mode 100644 .emacs.vanilla/init.el delete mode 100755 .emacs.vanilla/logos/black-hole.png delete mode 100644 .emacs.vanilla/logos/emacs-e.png delete mode 100644 .emacs.vanilla/snippets/text-mode/__license delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-apache delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-apache-bp delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-bsd2 delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-bsd3 delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-gpl3 delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-gpl3-bp delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-lgpl3 delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-mit delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-mozilla delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-mozilla-bp delete mode 100644 .emacs.vanilla/snippets/text-mode/__license-unlicense delete mode 100644 .julia/startup.jl diff --git a/.config/fish/config.fish b/.config/fish/config.fish deleted file mode 100644 index 82ac3d6..0000000 --- a/.config/fish/config.fish +++ /dev/null @@ -1,20 +0,0 @@ -if status is-interactive - # Commands to run in interactive sessions can go here - figlet -w 100 "JaeUs-Device" -end -set fish_color_normal brcyan -set fish_color_autosuggestion '#7d7d7d' -set fish_color_command brcyan -set fish_color_error '#ff6c6b' -set fish_color_param brcyan - - -set EDITOR "emacsclient -t -a ''" - -alias vi=nvim -alias emacs="emacsclient -t" -alias paruunlock="sudo rm /var/lib/pacman/db.lck" -alias update-grub="sudo grub-mkconfig -o /boot/grub/grub.cfg" -alias ytv-best="youtube-dl -f bestvideo+bestaudio " - -starship init fish | source diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables deleted file mode 100644 index 4dbe202..0000000 --- a/.config/fish/fish_variables +++ /dev/null @@ -1,30 +0,0 @@ -# This file contains fish universal variable definitions. -# VERSION: 3.0 -SETUVAR __fish_initialized:3100 -SETUVAR fish_color_autosuggestion:\x237d7d7d -SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:brcyan -SETUVAR fish_color_comment:990000 -SETUVAR fish_color_cwd:green -SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:009900 -SETUVAR fish_color_error:\x23ff6c6b -SETUVAR fish_color_escape:00a6b2 -SETUVAR fish_color_history_current:\x2d\x2dbold -SETUVAR fish_color_host:normal -SETUVAR fish_color_host_remote:yellow -SETUVAR fish_color_normal:brcyan -SETUVAR fish_color_operator:00a6b2 -SETUVAR fish_color_param:brcyan -SETUVAR fish_color_quote:999900 -SETUVAR fish_color_redirection:00afff -SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_status:red -SETUVAR fish_color_user:brgreen -SETUVAR fish_color_valid_path:\x2d\x2dunderline -SETUVAR fish_key_bindings:fish_default_key_bindings -SETUVAR fish_pager_color_completion:\x1d -SETUVAR fish_pager_color_description:B3A06D\x1eyellow -SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline -SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan diff --git a/.config/nu/config.toml b/.config/nu/config.toml deleted file mode 100644 index 668e7b9..0000000 --- a/.config/nu/config.toml +++ /dev/null @@ -1,64 +0,0 @@ -complete_from_path = true -ctrlc_exit = false -disable_table_indexes = false -filesize_format = "B" -filesize_metric = true -nonzero_exit_errors = true -path = ["/sbin", "/bin", "/usr/bin", "/usr/local/bin", "/usr/local/sbin", "/usr/bin/site_perl", "/usr/bin/vendor_perl", "/usr/bin/core_perl", "/var/lib/snapd/snap/bin"] -pivot_mode = "auto" -plugin_dirs = ["D:\\Src\\GitHub\\nu-plugin-lib\\samples\\Nu.Plugin.Len\\bin\\Debug\\netcoreapp3.1"] -prompt = "build-string (ansi gb) (pwd) (ansi reset) '(' (ansi cb) (do -i { git rev-parse --abbrev-ref HEAD } | str trim ) (ansi reset) ')' (char newline) (ansi yb) (date format '%m/%d/%Y %I:%M:%S%.3f %p') (ansi reset) '> ' " -rm_always_trash = true -skip_welcome_message = false -startup = ["figlet -w 100 'JaeUs-Device'"] -table_mode = "other" - -[color_config] -header_align = "l" -header_bold = true -header_color = "c" -index_color = "rd" -leading_trailing_space_bg = "white" -primitive_binary = "cyan" -primitive_boolean = "green" -primitive_columnpath = "cyan" -primitive_date = "ru" -primitive_decimal = "red" -primitive_duration = "blue" -primitive_filesize = "ur" -primitive_int = "green" -primitive_line = "yellow" -primitive_path = "yellow" -primitive_pattern = "white" -primitive_range = "purple" -primitive_string = "pb" -separator_color = "purple" - -[line_editor] -auto_add_history = true -bell_style = "audible" -color_mode = "enabled" -completion_prompt_limit = 100 -completion_type = "circular" -edit_mode = "emacs" -history_duplicates = "ignoreconsecutive" -history_ignore_space = false -keyseq_timeout_ms = 500 -max_history_size = 100000 -tab_stop = 4 - -[textview] -colored_output = true -grid = false -header = true -line_numbers = true -pager = "less" -paging_mode = "QuitIfOneScreen" -snip = true -tab_width = 4 -term_width = "default" -theme = "TwoDark" -true_color = true -use_italics = true -vcs_modification_markers = true -wrapping_mode = "NoWrapping" diff --git a/.config/starship.toml b/.config/starship.toml deleted file mode 100644 index 3b400c8..0000000 --- a/.config/starship.toml +++ /dev/null @@ -1,21 +0,0 @@ -# ~/.config/starship.toml -# Don't print a new line at the start of the prompt -add_newline = false - -# Make prompt a single line instead of two lines -[line_break] -disabled = true - -# Replace the "❯" symbol in the prompt with "➜" -# [character] # The name of the module we are configuring is "character" -# success_symbol = "[➜](bold green)" # The "success_symbol" is set to "➜" with color "bold green" - -# Use custom format -# format = """ -# [┌───────────────────>](bold green) -# [│](bold green)$directory$rust$package -# [└─>](bold green) """ - -# Disable the package module, hiding it from the prompt completely -[package] -disabled = true diff --git a/.emacs-profiles.el b/.emacs-profiles.el deleted file mode 100644 index 3a44455..0000000 --- a/.emacs-profiles.el +++ /dev/null @@ -1,6 +0,0 @@ -(("default" . ((user-emacs-directory . "~/.emacs.df"))) - ("vanilla" . ((user-emacs-directory . "~/.emacs.vanilla"))) - ("doom" . ((user-emacs-directory . "~/.emacs.doom") - (env . (("DOOMDIR" . "~/.emacs.doom.d"))))) - ("rational" . ((user-emacs-directory . "~/.emacs.rational") - (env . (("RATIONAL_EMACS_HOME" . "~/.emacs.rational.d")))))) diff --git a/.emacs.df/.gitignore b/.emacs.df/.gitignore deleted file mode 100644 index 714f437..0000000 --- a/.emacs.df/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -emojis/ -forge-database.sqlite -backups/ -history -org-roam.db -recentf -straight -transient -undo -projects diff --git a/.emacs.df/desktop.el b/.emacs.df/desktop.el deleted file mode 100644 index 87104a6..0000000 --- a/.emacs.df/desktop.el +++ /dev/null @@ -1,164 +0,0 @@ -(straight-use-package - '(app-launcher :type git :host github :repo "SebastienWae/app-launcher")) -(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 "bitwarden-desktop") - - ;; 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 - :straight t - :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 "") . vifon/exwm-terminal) - (,(kbd "") . 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 -;; :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) - -(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) diff --git a/.emacs.df/early-init.el b/.emacs.df/early-init.el deleted file mode 100644 index c7230bb..0000000 --- a/.emacs.df/early-init.el +++ /dev/null @@ -1,46 +0,0 @@ -;;; early-init.el -*- lexical-binding: t; -*- - -;; Increase the GC threshold for faster startup -;; The default is 800 kilobytes. Measured in bytes. -(setq gc-cons-threshold (* 50 1000 1000)) - -;; Prefer loading newest compiled .el file -(setq load-prefer-newer noninteractive) - -;; Native compilation settings -(when (featurep 'native-compile) - ;; Silence compiler warnings as they can be pretty disruptive - (setq native-comp-async-report-warnings-errors nil) - - ;; Make native compilation happens asynchronously - (setq native-comp-deferred-compilation t) - - ;; Set the right directory to store the native compilation cache - ;; NOTE the method for setting the eln-cache directory depends on the emacs version - (when (fboundp 'startup-redirect-eln-cache) - (if (version< emacs-version "29") - (add-to-list 'native-comp-eln-load-path (convert-standard-filename (expand-file-name "var/eln-cache/" user-emacs-directory))) - (startup-redirect-eln-cache (convert-standard-filename (expand-file-name "var/eln-cache/" user-emacs-directory))))) - - (add-to-list 'native-comp-eln-load-path (expand-file-name "eln-cache/" user-emacs-directory))) - -;; Don't use package.el, we'll use straight.el instead -(setq package-enable-at-startup nil) - -;; Remove some unneeded UI elements (the user can turn back on anything they wish) -(setq inhibit-startup-message t) -(push '(tool-bar-lines . 0) default-frame-alist) -(push '(menu-bar-lines . 0) default-frame-alist) -(push '(vertical-scroll-bars) default-frame-alist) -(push '(mouse-color . "white") default-frame-alist) - -;; Loads a nice blue theme, avoids the white screen flash on startup. -(load-theme 'deeper-blue t) - -;; Make the initial buffer load faster by setting its mode to fundamental-mode -(setq initial-major-mode 'fundamental-mode) - -;; Load the early config file if it exists -(let ((early-config-path (expand-file-name "~/.emacs.df/early-config.el"))) - (when (file-exists-p early-config-path) - (load early-config-path nil 'nomessage))) diff --git a/.emacs.df/exwm/.start-exwm.sh.~undo-tree~ b/.emacs.df/exwm/.start-exwm.sh.~undo-tree~ deleted file mode 100644 index 2271a37..0000000 --- a/.emacs.df/exwm/.start-exwm.sh.~undo-tree~ +++ /dev/null @@ -1,6 +0,0 @@ -(undo-tree-save-format-version . 1) -"e976d2036366e62bb8915b7138e0b4a5fb4918fa" -[nil nil nil nil (25145 39387 666368 202000) 0 nil] -([nil nil ((445 . 454) (t 25145 11614 471859 40000)) nil (25145 39387 666364 698000) 0 nil]) -([nil current ((408 . 416) (#("vanilla" 0 7 (fontified t)) . 408) (undo-tree-id0 . -7) (undo-tree-id1 . -7) (undo-tree-id2 . -7) (undo-tree-id3 . -7) (undo-tree-id4 . -7) (undo-tree-id5 . -6) (undo-tree-id6 . -6) (undo-tree-id7 . -6) (undo-tree-id8 . -6) (undo-tree-id9 . -6) (undo-tree-id10 . -5) (undo-tree-id11 . -5) (undo-tree-id12 . -5) (undo-tree-id13 . -5) (undo-tree-id14 . -5) (undo-tree-id15 . -5) (undo-tree-id16 . -5) (undo-tree-id17 . -5) (undo-tree-id18 . -5) (undo-tree-id19 . -5) (undo-tree-id20 . -6) (undo-tree-id21 . -6) (undo-tree-id22 . -6) (undo-tree-id23 . -6) (undo-tree-id24 . -6) (undo-tree-id25 . -6) (undo-tree-id26 . -6) (undo-tree-id27 . -6) (undo-tree-id28 . -6) (undo-tree-id29 . -6) (undo-tree-id30 . -7) (undo-tree-id31 . -7) (undo-tree-id32 . -7) (undo-tree-id33 . -7) (undo-tree-id34 . -7) (undo-tree-id35 . -7) (undo-tree-id36 . -7) (undo-tree-id37 . -7) (undo-tree-id38 . -7) (undo-tree-id39 . -7) (undo-tree-id40 . -7) (undo-tree-id41 . -7) (undo-tree-id42 . -7) (undo-tree-id43 . -7) (undo-tree-id44 . -7) (undo-tree-id45 . -7) (undo-tree-id46 . -7) (undo-tree-id47 . -6) (undo-tree-id48 . -6) (undo-tree-id49 . -6) (undo-tree-id50 . -6) (undo-tree-id51 . -6) (undo-tree-id52 . -6) (undo-tree-id53 . -6) (undo-tree-id54 . -6) (undo-tree-id55 . -6) (undo-tree-id56 . -6) (undo-tree-id57 . -6) (undo-tree-id58 . -6) (undo-tree-id59 . -6) (undo-tree-id60 . -6) (undo-tree-id61 . -6) (undo-tree-id62 . -5) (undo-tree-id63 . -5) (undo-tree-id64 . -5) (undo-tree-id65 . -5) (undo-tree-id66 . -5) (undo-tree-id67 . -4) (undo-tree-id68 . -4) (undo-tree-id69 . -4) (undo-tree-id70 . -4) (undo-tree-id71 . -4) (undo-tree-id72 . -3) (undo-tree-id73 . -3) (undo-tree-id74 . -3) (undo-tree-id75 . -3) (undo-tree-id76 . -3) (undo-tree-id77 . -2) (undo-tree-id78 . -2) (undo-tree-id79 . -2) (undo-tree-id80 . -2) (undo-tree-id81 . -2) (undo-tree-id82 . -1) (undo-tree-id83 . -1) (undo-tree-id84 . -1) (undo-tree-id85 . -1) (undo-tree-id86 . -1) (undo-tree-id87 . -1) (undo-tree-id88 . -1) (undo-tree-id89 . -1) (undo-tree-id90 . -1) (undo-tree-id91 . -1) (t 25145 39387 681489 213000)) nil (25145 39399 354371 746000) 0 nil]) -nil diff --git a/.emacs.df/exwm/EXWM.desktop b/.emacs.df/exwm/EXWM.desktop deleted file mode 100644 index 7de02bf..0000000 --- a/.emacs.df/exwm/EXWM.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=EXWM -Comment=Emacs Window Manager -Exec=sh /home/jaeus/.emacs.rational.d/exwm/start-exwm.sh -TryExec=sh -Type=Application -X-LightDM-DesktopName=exwm -DesktopNames=exwm diff --git a/.emacs.df/exwm/start-exwm.sh b/.emacs.df/exwm/start-exwm.sh deleted file mode 100755 index 0d9a596..0000000 --- a/.emacs.df/exwm/start-exwm.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# Set the screen DPI (uncomment this if needed!) -# xrdb ~/.emacs.d/exwm/Xresources - -# Run the screen compositor -#picom & -#picom -b --config /home/jaeus/.config/i3/picom.conf & -# Enable screen locking on suspend -#xss-lock -- slock & - -picom -b --config $HOME/.xmonad/scripts/picom.conf & -~/scripts/random_wallpaper.sh -exec dbus-launch --exit-with-session emacs -mm --debug-init -l ~/.emacs.df/desktop.el diff --git a/.emacs.df/init.el b/.emacs.df/init.el deleted file mode 100644 index b9eab2b..0000000 --- a/.emacs.df/init.el +++ /dev/null @@ -1,976 +0,0 @@ -;;; init.el -*- lexical-binding: t; -*- - -;; Profile emacs startup -(add-hook 'emacs-startup-hook - (lambda () - (message "Emacs loaded in %s." - (emacs-init-time)))) - -;; Set default coding system (especially for Windows) -(set-language-environment "korean") -(set-default-coding-systems 'utf-8) -(prefer-coding-system 'utf-8) -(customize-set-variable 'visible-bell 1) ; turn off beeps, make them flash! -(customize-set-variable 'large-file-warning-threshold 100000000) ;; change to ~100 MB -;; backup in one place. flat, no tree structure -(setq backup-directory-alist '(("." . "~/.emacs.df/backups"))) -(customize-set-variable - 'tramp-backup-directory-alist backup-directory-alist) -(setq undo-tree-history-directory-alist '(("." . "~/.emacs.df/undo"))) -(setq auto-save-default nil) - -;; straight.el -(defvar bootstrap-version) -(let ((bootstrap-file - (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) - (bootstrap-version 5)) - (unless (file-exists-p bootstrap-file) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp))) - (load bootstrap-file nil 'nomessage)) -(setq straight-use-package-by-default t) -(straight-use-package 'use-package) - - -(defvar user-config-etc-directory (expand-file-name "etc/" user-emacs-directory) - "The user's configuration etc/ folder.") -(defvar user-config-var-directory (expand-file-name "var/" user-emacs-directory) - "The user's configuration var/ folder.") - -(mkdir user-config-etc-directory t) -(mkdir user-config-var-directory t) - -;; Make GC pauses faster by decreasing the threshold. - -(use-package gcmh - :config - (gcmh-mode 1)) -(setq gc-cons-threshold (* 2 1000 1000)) - -;; follow symboliclinks -(setq vc-follow-symlinks t) - -;; configuration -(setq user-full-name "JaeYoo-Im" - user-mail-address "cpu3792@gmail.com") - -(defvar gvar/default-font-size 110) -(defvar gvar/default-variable-font-size 110) -(defvar gvar/frame-transparency '(85 . 85)) - -;; Set further font and theme customizations -(custom-set-variables - '(rational-ui-default-font - '(:font "Fira Code Retina" :weight light :height 110))) - -(add-to-list 'default-frame-alist `(font . "Fira Code Retina")) -(set-face-attribute 'default nil :font "Fira Code Retina" :height 110) -(set-face-attribute 'fixed-pitch nil :font "Fira Code Retina" :height 110) -(set-face-attribute 'variable-pitch nil :font "Fira Code Retina" :height 110 :weight 'regular) -(set-fontset-font t 'hangul (font-spec :family "D2Coding" :height 110)) -(setq face-font-rescale-alist - '(("D2Coding" . 1.25))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Theme -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(scroll-bar-mode -1) ; Disable visible scrollbar -(tool-bar-mode -1) ; Disable the toolbar -(tooltip-mode -1) ; Disable tooltips -(set-fringe-mode 10) ; Give some breathing room -(xterm-mouse-mode) - -(menu-bar-mode -1) ; Disable the menu bar - - -;;(setq visible-bell t) -;; Transparency -(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 ( ) form. - ((numberp (cadr alpha)) (cadr alpha))) - 100) - gvar/frame-transparency '(100 . 100))))) - -(global-set-key (kbd "C-c t") 'toggle-transparency) - -;; Set transparency & Fullscreen -(set-frame-parameter (selected-frame) 'alpha gvar/frame-transparency) -(add-to-list 'default-frame-alist `(alpha . ,gvar/frame-transparency)) -(set-frame-parameter (selected-frame) 'fullscreen 'maximized) -(add-to-list 'default-frame-alist '(fullscreen . maximized)) - -;; line number -(column-number-mode) -(global-display-line-numbers-mode t) -;; Disable line numbers for some modes -(dolist (mode '(org-mode-hook - vterm-mode-hook - shell-mode-hook - treemacs-mode-hook - dired-mode-hook - eshell-mode-hook)) - (add-hook mode (lambda () (display-line-numbers-mode 0)))) - - -(use-package doom-themes - :init - (setq doom_themes-enable-bold t - doom-themes-enablbe-italic t) - :config - (load-theme 'doom-palenight t) - ;;(load-theme 'doom-gruvbox t) - ;;(load-theme 'doom-one t) - ;;(load-theme 'doom-dracula t) - ;; Enable flashing mode-line on errors - (doom-themes-visual-bell-config) - ;; Corrects (and improves) org-mode's native fontification. - (doom-themes-org-config)) - - -(global-hl-line-mode t) -;;(use-package beacon -;; :straight t -;; :config -;; (beacon-mode)) - -(use-package doom-modeline - :init (doom-modeline-mode 1) - :custom ((doom-modeline-height 15))) - -;; Dashboard -(use-package dashboard - :ensure t - :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!") - ;;(dashboard-startup-banner 'logo) - (setq dashboard-startup-banner "/home/jaeus/.emacs.df/logos/emacs-e.png") - (setq dashboard-center-content t) - (setq dashboard-week-agenda t) - (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) - ;; Format: "(icon title help action face prefix suffix)" - (setq dashboard-navigator-buttons - `((;; Github - (,(all-the-icons-octicon "mark-github" :height 1.1 :v-adjust 0.0) - "Github" - "Browse github" - (lambda (&rest _) (browse-url "https://github.com/JaeUs3792/")))))) - ;;(,(all-the-icons-octicon "history" :height 1.1 :v-adjust 0.0) - ;; "Reload last session" - ;; "Reload last session" - ;; (lambda (&rest _) (persp-state-load persp-state-default-file)))))) - :config - (dashboard-setup-startup-hook) - (dashboard-modify-heading-icons '((recents . "file-text") - (bookmarks . "book")))) -(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*"))) -(use-package rainbow-delimiters - :hook (prog-mode . rainbow-delimiters-mode)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Vertico -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package vertico - :ensure t - :bind (:map vertico-map - ("C-j" . vertico-next) - ("C-k" . vertico-previous)) - :custom - (vertico-cycle t) - :init - (vertico-mode)) -(use-package savehist - :init - (savehist-mode)) - -(use-package marginalia - :after vertico - :ensure t - :custom - (marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil)) - :init - (marginalia-mode)) -(use-package vertico-posframe - :disabled - :after vertico - :ensure t - :init - (setq vertico-posframe-parameters - `((left-fringe . 8) - (right-fringe . 8) (alpha . 100))) - (vertico-posframe-mode 1)) -(use-package embark - :bind (("C-S-a" . embark-act) - :map minibuffer-local-map - ("C-d" . embark-act)) - :config - - ;; Show Embark actions via which-key - (setq embark-action-indicator - (lambda (map) - (which-key--show-keymap "Embark" map nil nil 'no-paging) - #'which-key--hide-popup-ignore-command) - embark-become-indicator embark-action-indicator)) - -(use-package orderless - :init - (setq completion-styles '(orderless) - completion-category-defaults nil - completion-category-overrides '((file (styles . (partial-completion)))))) - -(use-package embark-consult - :after embark) - -;;(defun dw/get-project-root () -;; (when (fboundp 'projectile-project-root) -;; (projectile-project-root))) - -(use-package consult - :demand t - :bind (("C-s" . consult-line) - ("C-M-l" . consult-imenu) - ("C-M-j" . persp-switch-to-buffer*) - :map minibuffer-local-map - ("C-r" . consult-history)) - :custom - ;;(consult-project-root-function #'dw/get-project-root) - (completion-in-region-function #'consult-completion-in-region)) -(use-package consult-dir - :straight t - :bind (("C-x C-d" . consult-dir) - :map vertico-map - ("C-x C-d" . consult-dir) - ("C-x C-j" . consult-dir-jump-file)) - :custom - (consult-dir-project-list-function nil)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Evil -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defun ju/evil-hook() - (dolist (mode '(custom-mode - erc-mode)) - (add-to-list 'evil-emacs-state-modes mode))) -(use-package undo-tree - :init - (global-undo-tree-mode 1)) -(use-package evil - :ensure t - :init - (setq evil-want-integration t) - (setq evil-want-keybinding nil) - (setq evil-want-C-u-scroll t) - (setq evil-want-C-i-jump nil) - (setq evil-undo-system 'undo-tree) - :config - (add-hook 'evil-mode-hook 'ju/evil-hook) - (evil-mode 1) - (define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-char-and-join) - ;;(setq-default evil-symbol-word-search t) ;; evil can identify the word with underscore. - ;; Http://blog.binchen.org/posts/auto-complete-word-in-emacs-mini-buffer-when-using-evil.html - ;;(defun minibuffer-inactive-mode-hook-setup () - ;;;; make `try-expand-dabbrev' from `hippie-expand' work in mini-buffer - ;;;; @see `he-dabbrev-beg', so we need re-define syntax for '/' - ;;(set-syntax-table (let* ((table (make-syntax-table))) - ;;(modify-syntax-entry ?/ "." table) - ;;table))) - ;;(add-hook 'minibuffer-inactive-mode-hook 'minibuffer-inactive-mode-hook-setup) - - ;; Use visual line motions even outside of visual-line-mode buffers - (evil-global-set-key 'motion "j" 'evil-next-visual-line) - (evil-global-set-key 'motion "k" 'evil-previous-visual-line) - (evil-set-initial-state 'messages-buffer-mode 'normal) - (evil-set-initial-state 'dashboard-mode 'normal)) -(use-package evil-numbers - :after evil - :config - ;; unfortunately C-x is emacs common key binding. - (define-key evil-normal-state-map (kbd "g =") 'evil-numbers/inc-at-pt) - (define-key evil-normal-state-map (kbd "g -") 'evil-numbers/dec-at-pt) - (define-key evil-visual-state-map (kbd "g =") 'evil-numbers/inc-at-pt) - (define-key evil-visual-state-map (kbd "g -") 'evil-numbers/dec-at-pt)) -(use-package evil-nerd-commenter - :after evil - :config - (define-key evil-normal-state-map (kbd "g c") 'evilnc-comment-or-uncomment-lines) - (define-key evil-visual-state-map (kbd "g c") 'evilnc-comment-or-uncomment-lines)) - -(use-package evil-collection - :after evil - :ensure t - :config - (evil-collection-init)) - -(modify-syntax-entry ?_ "w") -;;(defalias 'forward-evil-word 'forward-evil-symbol) ;; include underscore to word - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Company -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package company - :init - (add-hook 'after-init-hook 'global-company-mode) - :bind - (:map company-active-map - ("" . company-complete-selection)) - (:map lsp-mode-map - ("" . company-indent-or-complete-common)) - :config - (setq company-idle-delay 0 - company-show-numbers "on" - company-dabbrev-downcase nil - ) - (add-to-list 'company-backends 'org-keyword-backend)) -(use-package flycheck - :ensure t - :defer t - :init (global-flycheck-mode t)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Org mode -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defun org-keyword-backend (command &optional arg &rest ignored) - (interactive (list 'interactive)) - (cl-case command - (interactive (company-begin-backend 'org-keyword-backend)) - (prefix (and (eq major-mode 'org-mode) - (cons (company-grab-line "^#\\+\\(\\w*\\)" 1) - t))) - (candidates (mapcar #'upcase - (cl-remove-if-not - (lambda (c) (string-prefix-p arg c)) - (pcomplete-completions)))) - (ignore-case t) - (duplicates t))) - -(defun efs/org-mode-setup () - (org-indent-mode) - ;;(variable-pitch-mode 1) - (visual-line-mode 1)) - -(use-package org - :commands (org-capture org-agenda) - :hook (org-mode . efs/org-mode-setup) - :config - - (setq org-todo-keywords - '((sequence "TODO(t)" "HOLD(h)" "|" "KILL(k)" "DONE(d)"))) - (setq org-ellipsis " ▾") - (setq org-hide-emphasis-markers t) - (setq org-src-fontify-natively t) - (setq org-fontify-quote-and-verse-blocks t) - - (setq org-agenda-start-with-log-mode t) - (setq org-log-done 'time) - (setq org-log-into-drawer t) - (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.8))) -(use-package org-superstar :after org :hook (org-mode . org-superstar-mode)) -(use-package org-attach-screenshot) -(use-package org-download) - -(defun efs/org-mode-visual-fill () - (setq visual-fill-column-width 100 - visual-fill-column-center-text t) - (visual-fill-column-mode 1)) - -(use-package visual-fill-column - :hook (org-mode . efs/org-mode-visual-fill)) - -(with-eval-after-load 'org - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (python . t) - (latex . t))) - - (push '("conf-unix" . conf-unix) org-src-lang-modes)) - -(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 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"))) - -;; ODT export to docx -(setq org-odt-preferred-output-format "docx") - -;; Do not ask when run code block -(setq org-confirm-babel-evaluate nil) - -(use-package org-contrib) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Org Roam -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package org-roam - :ensure t - :demand t ;; Ensure org-roam is loaded by default - :init - (setq org-roam-v2-ack t) - :custom - (org-roam-directory "~/Roam") - (org-roam-completion-everywhere t) - - :config - (org-roam-db-autosync-mode)) - ;;(org-roam-setup)) -(defun org-roam-node-insert-immediate (arg &rest args) - (interactive "P") - (let ((args (push arg args)) - (org-roam-capture-templates (list (append (car org-roam-capture-templates) - '(:immediate-finish t))))) - (apply #'org-roam-node-insert args))) - -(defun my/org-roam-filter-by-tag (tag-name) - (lambda (node) - (member tag-name (org-roam-node-tags node)))) - -(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"))) - -;; Build the agenda list the first time for the session -(my/org-roam-refresh-agenda-list) - -(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* History\n\n* Notes\n\n" - :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: Project") - :unnarrowed t)))) - -(add-to-list 'org-after-todo-state-change-hook - (lambda () - (when (equal org-state "DONE") - (my/org-roam-copy-todo-to-today)))) -(use-package websocket - :after org-roam) -(use-package org-roam-ui - :straight - (:host github :repo "org-roam/org-roam-ui" :branch "main" :files ("*.el" "out")) - :after org-roam - ;; 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 mode etc. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package ob-translate - :config - (setq ob-translate:default-dest "ko")) - -(use-package pdf-tools - :straight t - :config - (pdf-tools-install) - (setq-default pdf-view-display-size 'fit-width) - (define-key pdf-view-mode-map (kbd "C-s") 'isearch-forward) - :custom - (pdf-annot-activate-created-annotations t "automatically annotate highlights")) -(use-package org-pdfview - :straight t) -(use-package org-noter) -(setq org-publish-use-timestamps-flag nil) -(setq org-export-with-broken-lilnks t) -(setq org-publish-project-alist - '(("jaeus.net" - :base-directory "~/Roam/www/" - :base-extension "org" - :publishing-directory "~/Projects/html/" - :recursive t - :publishing-function org-html-publish-to-html - :headline-levels 4 - :auto-preamble t))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Magit -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package magit - :commands (magit-status magit-get-current-branch) - :custom - (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) -;; NOTE: Make sure to configure a GitHub token before using this package! -;; - https://magit.vc/manual/forge/Token-Creation.html#Token-Creation -;; - https://magit.vc/manual/ghub/Getting-Started.html#Getting-Started -(use-package forge - :after magit) -(use-package magit-todos - :defer t) -(use-package git-link) -(use-package git-gutter - :straight git-gutter-fringe - ;;:diminish - :hook ((text-mode . git-gutter-mode) - (prog-mode . git-gutter-mode)) - :config - (setq git-gutter:update-interval 2) - (require 'git-gutter-fringe) - (set-face-foreground 'git-gutter-fr:added "LightGreen") - (fringe-helper-define 'git-gutter-fr:added nil - ".XXXXXX." - "XX....XX" - "X......X" - "X......X" - "XXXXXXXX" - "XXXXXXXX" - "X......X" - "X......X") - - (set-face-foreground 'git-gutter-fr:modified "LightGoldenrod") - (fringe-helper-define 'git-gutter-fr:modified nil - "XXXXXXXX" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X") - - (set-face-foreground 'git-gutter-fr:deleted "LightCoral") - (fringe-helper-define 'git-gutter-fr:deleted nil - "XXXXXX.." - "XX....X." - "XX.....X" - "XX.....X" - "XX.....X" - "XX.....X" - "XX....X." - "XXXXXX..") - - ;; These characters are used in terminal mode - (setq git-gutter:modified-sign "≡") - (setq git-gutter:added-sign "≡") - (setq git-gutter:deleted-sign "≡") - (set-face-foreground 'git-gutter:added "LightGreen") - (set-face-foreground 'git-gutter:modified "LightGoldenrod") - (set-face-foreground 'git-gutter:deleted "LightCoral")) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; EShell -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package exec-path-from-shell) -(exec-path-from-shell-initialize) -(defun dw/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 dw/eshell-prompt () - (let ((current-branch (magit-get-current-branch))) - (concat - "\n" - (propertize (system-name) 'face `(:foreground "#62aeed")) - (propertize " ॐ " 'face `(:foreground "white")) - (propertize (dw/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 efs/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 "") 'eshell-bol) - (evil-normalize-keymaps) - - (setq eshell-prompt-function 'dw/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)) - -(use-package eshell-git-prompt - :after eshell) - -(use-package eshell - :hook (eshell-first-time-mode . efs/configure-eshell) - :config - - (with-eval-after-load 'esh-opt - (setq eshell-destroy-buffer-when-process-dies t) - (setq eshell-visual-commands '("htop" "zsh" "vim")))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Dired -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package dired - :ensure nil - :straight nil - :commands (dired dired-jump) - :bind (("C-x C-j" . dired-jump)) - :custom ((dired-listing-switches "-agho --group-directories-first")) - :config - (evil-collection-define-key 'normal 'dired-mode-map - "h" 'dired-single-up-directory - "l" 'dired-single-buffer)) -(autoload 'dired-omit-mode "dired-x") -(add-hook 'dired-load-hook - (lambda () - (interactive) - (dired-collapse))) -;; to use h,l key -(use-package dired-single - :commands (dired dired-jump)) -(use-package diredfl - :hook (dired-mode . diredfl-mode)) - -;; from doom emacs -(defun +dired-enable-git-info-h () - "Enable `dired-git-info-mode' in git repos." - (and (not (file-remote-p default-directory)) - (locate-dominating-file "." ".git") - (dired-git-info-mode 1))) -(use-package dired-git-info) -(use-package diff-hl - :hook (dired-mode . diff-hl-dired-mode-unless-remote) - :hook (magit-post-refresh . diff-hl-magit-post-refresh) - :config - ;; use margin instead of fringe - (diff-hl-margin-mode)) -(use-package dired-rsync - :config - (bind-key "C-c C-r" 'dired-rsync dired-mode-map)) -(use-package all-the-icons-dired - :hook (dired-mode . all-the-icons-dired-mode) - :config - ;; HACK Fixes #1929: icons break file renaming in Emacs 27+, because the icon - ;; is considered part of the filename, so we disable icons while we're in - ;; wdired-mode. - ;;(when EMACS27+ - (defvar +wdired-icons-enabled -1)) - -;;(defadvice! +dired-disable-icons-in-wdired-mode-a (&rest _) -;; :before #'wdired-change-to-wdired-mode -;; (setq-local +wdired-icons-enabled (if all-the-icons-dired-mode 1 -1)) -;; (when all-the-icons-dired-mode -;; (all-the-icons-dired-mode -1))) - -;;(defadvice! +dired-restore-icons-after-wdired-mode-a (&rest _) -;; :after #'wdired-change-to-dired-mode -;; (all-the-icons-dired-mode +wdired-icons-enabled)))) -;;(use-package fd-dired) - -(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)) -;;(use-package ranger -;; :config -;; (setq ranger-preview-file t) -;; (setq ranger-show-preview t) -;; (setq ranger-show-literal nil) -;; (ranger-override-dired-mode t)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Support File Type -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; EPUB Support -(use-package nov) -(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; ELFEED RSS -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package elfeed - :config - (setq elfeed-search-feed-face ":foreground #fff :weight bold" - elfeed-feeds (quote - (("https://www.reddit.com/r/linux.rss" reddit linux) - ("https://www.reddit.com/r/emacs.rss" reddit emacs) - ("https://www.gamingonlinux.com/article_rss.php" gaming linux) - ("https://hackaday.com/blog/feed/" hackaday linux) - ("https://opensource.com/feed" opensource linux) - ("https://linux.softpedia.com/backend.xml" softpedia linux) - ("https://itsfoss.com/feed/" itsfoss linux) - ("https://www.zdnet.com/topic/linux/rss.xml" zdnet linux) - ("https://www.phoronix.com/rss.php" phoronix linux) - ("http://feeds.feedburner.com/d0od" omgubuntu linux) - ("https://www.computerworld.com/index.rss" computerworld linux) - ("https://www.networkworld.com/category/linux/index.rss" networkworld linux) - ("https://www.techrepublic.com/rssfeeds/topic/open-source/" techrepublic linux) - ("https://betanews.com/feed" betanews linux) - ("http://lxer.com/module/newswire/headlines.rss" lxer linux) - ("https://coolenjoy.net/rss?bo_table=38" coolenjoy IT) - ("https://gigglehd.com/gg/ggnews/rss" giggle IT))))) - -(use-package elfeed-goodies - :init - (elfeed-goodies/setup) - :config - (setq elfeed-goodies/entry-pane-size 0.5)) - -(add-hook 'elfeed-show-mode-hook 'visual-line-mode) -(evil-define-key 'normal elfeed-show-mode-map - (kbd "J") 'elfeed-goodies/split-show-next - (kbd "K") 'elfeed-goodies/split-show-prev) -(evil-define-key 'normal elfeed-search-mode-map - (kbd "J") 'elfeed-goodies/split-show-next - (kbd "K") 'elfeed-goodies/split-show-prev) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; LSP -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package lsp-mode - :init - ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") - (setq lsp-keymap-prefix "C-c l") - :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) - (c++-mode . lsp) - (verilog-mode . lsp) - ;; if you want which-key integration - (lsp-mode . lsp-enable-which-key-integration)) - :commands lsp) - -;; optionally -(use-package lsp-ui :commands lsp-ui-mode) -;; if you are ivy user -(use-package lsp-ivy :commands lsp-ivy-workspace-symbol) -(use-package lsp-treemacs :commands lsp-treemacs-errors-list) -;; optionally if you want to use debugger -(use-package dap-mode) -;; (use-package dap-LANGUAGE) to load the dap adapter for your language -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Language Support -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package rust-mode) -(use-package jupyter - :straight t) -(org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) ;; Other languages - (shell . t) - ;; Python & Jupyter - (python . t) - (jupyter . t))) -(org-babel-jupyter-override-src-block "python") -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Keymap -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package which-key - :defer 0 - :diminish which-key-mode - :config - (which-key-mode) - (setq which-key-idle-delay 0.5)) - -(use-package general - :ensure t - :config - (general-evil-setup t) - (general-create-definer ju/leader-key-def - :keymaps '(normal insert visual emacs) - :prefix "SPC" - :global-prefix "C-SPC")) - -(ju/leader-key-def - "." 'find-file - ;; Buffer - "b" '(:ignore t :which-key "buffer handling") - "b b" '(ibuffer :which-key "IBuffer") - "b k" '(kill-current-buffer :which-key "Kill current buffer") - "b n" '(next-buffer :which-key "Next buffer") - "b p" '(previous-buffer :which-key "Previous buffer") - "b B" '(ibuffer-list-buffers :which-key "IBuffer List Buffers") - "b K" '(kill-buffer :which-key "IBuffer Kill Buffers") - ;; Eshell - "e" '(:ignore t :which-key "eshell") - "e h" '(counsel-esh-history :which "Kill history") - "e s" '(eshell :which "run eshell") - ;; Magit - "g" 'magit - ;; Workspace - ;; Counsel - "f" '(:ignore t :which-key "file op.") - "f r" '(consult-recent-file :which-key "Recent files") - "f R" '(revert-buffer :which-key "Revert Buffer") - "t t" '(toggle-truncate-lines :which-key "Toggle truncate lines") - ;; Shortcut - "f d d" '(lambda () (interactive) (find-file (expand-file-name "~/.emacs.df/desktop.el")) :which-key "open exwm config") - "f d e" '(lambda () (interactive) (find-file (expand-file-name "~/.emacs.df/init.el")) :which-key "open emacs config") - ;; Insert something - "i" '(:ignore t :which-key "insert something.") - "ie" '(emojify-insert-emoji :which-key "emoji") - ;; AVY (easymotion) - "v" '(:ignore t :which-key "Avy") - "vc" '(avy-goto-char :which-key "Avy Goto Char") - "vw" '(avy-goto-word-0 :which-key "Avy Goto Word") - "vl" '(avy-goto-line :which-key "Avy Goto Line") - ;; Org mode - "o" '(:ignore t :which-key "Org mode") - "oa" '(:ignore t :which-key "Org Agenda") - "oar" '(my/org-roam-refresh-agenda-list :which-key "Org agenda refresh list") - "oaa" '(org-agenda :which-key "open org agenda") - ;; project.el - "p" '(:ignore t :which-key "Project") - "p." 'project-find-file - "ps" 'project-switch-project - "pg" 'consult-ripgrep - "pc" 'project-compile - "pd" 'project-dired - ;; Org roam - "r" '(:ignore t :which-key "Org Roam") - "ru" 'org-roam-ui-open - "rl" 'org-roam-buffer-toggle - "rf" 'org-roam-node-find - "ri" 'org-roam-node-insert - "rI" 'org-roam-node-insert-immediate - "rp" 'my/org-roam-find-project) - -(global-set-key (kbd "C-M-j") 'consult-buffer) -;; Key binding -;; Make ESC quit prompts -(global-set-key (kbd "") 'keyboard-escape-quit) -;; this annoying binding. -(global-unset-key (kbd "C-j")) -(global-unset-key (kbd "C-k")) -(global-unset-key (kbd "S-SPC")) ;; use only S-\ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; ETC -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package emojify - :hook (after-init . global-emojify-mode)) -(use-package super-save - :defer 1 - :diminish super-save-mode - :config - (super-save-mode +1) - (setq super-save-auto-save-when-idle t)) -(setq global-auto-revert-non-file-buffers t) -(global-auto-revert-mode 1) -;; tramp default is scp -(setq tramp-default-method "ssh") -;; AVY (like easymotion) -(use-package avy - :straight t - :commands (avy-goto-char avy-goto-word-0 avy-goto-line)) -(use-package hl-todo - :straight t - :hook (prog-mode . hl-todo-mode) - :hook (yaml-mode . hl-todo-mode) - :config - (setq hl-todo-highlight-punctuation ":" - hl-todo-keyword-faces - `(;; For things that need to be done, just not today. - ("TODO" warning bold) - ;; For problems that will become bigger problems later if not - ;; fixed ASAP. - ("FIXME" error bold) - ;; For tidbits that are unconventional and not intended uses of the - ;; constituent parts, and may break in a future update. - ("HACK" font-lock-constant-face bold) - ;; For things that were done hastily and/or hasn't been thoroughly - ;; tested. It may not even be necessary! - ("REVIEW" font-lock-keyword-face bold) - ;; For especially important gotchas with a given implementation, - ;; directed at another user other than the author. - ("NOTE" success bold) - ;; For things that just gotta go and will soon be gone. - ("DEPRECATED" font-lock-doc-face bold) - ;; For a known bug that needs a workaround - ("BUG" error bold) - ;; For warning about a problematic or misguiding code - ("XXX" font-lock-constant-face bold))) - (global-hl-todo-mode)) - -(use-package helpful - :commands (helpful-callable helpful-variable helpful-command helpful-key) - :custom - (counsel-describe-function-function #'helpful-callable) - (counsel-describe-variable-function #'helpful-variable) - :bind - ([remap describe-function] . describe-function) - ([remap describe-command] . helpful-command) - ([remap describe-variable] . describe-variable) - ([remap describe-key] . helpful-key)) -(use-package openwith - :after dired - :config - (setq larget-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))))) -(use-package vlf - :config (progn - (require 'vlf-setup))) - -;; Don't let ediff break EXWM, keep it in one frame -(setq ediff-diff-options "-w" - ediff-split-window-function 'split-window-horizontally - ediff-window-setup-function 'ediff-setup-windows-plain) - diff --git a/.emacs.df/logos/emacs-e.png b/.emacs.df/logos/emacs-e.png deleted file mode 100644 index 0c5cd633c62dea04fc0ff67c96f7b542a7dfa68c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3452 zcmV-?4TJKDP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H14GBp^ zK~#90?VW#cT-9~QKj*$($&xKwEBP0W9a*G63@$XZ#bIJnXp?wC5&Gdsp{2H0MmR}Z zr%6dBAl^R&1Yu+*!SMK=gfEB-uLc3=iY@6_<-?*ubTR1uH!o&c`NLh zG<8H~CyiNbMC(3QrnjLm;7D zYZ}UWavdLxQ(*_FZ`Xo}fmj{zB@sS}(5EUt6S4QT)|BtgWo+YG*ugY*#IHr{KO$5C z0#8h_`hI<1z5RN3w!(G-$3-+Kmh1b75y_4g3`3k4_)zSLB|#rKNZKF|xa8gaug9 z9-Wd1>h?k60`iQy=JvMFO?kyjUl*0I082WLO%F)o1z_r+!^cor*;*G`=arv}PFR5D zozdG>`0?3ibX{-a#FsWU%sDw$A7-o#j7L8FTxbKzFcUelY*KLIuH_x^OULTtq7=5d zSuDc21`HolW1k6kMm{|j9~Y&tr@3T=b7dm3HQX7wbF__LoPBKf(NC$GZE0Tq{fd2| zRhbSbvMy}%QySPGkIxt78boJ_GUfCs*NPk#v2OzhPX(Np{_~d7nAiT7cgJc~wH4m; zn+`v&C=E4c^1hojVgI`Q@T9&#V3mqCflN=wM&Xb_Uj%ts;U!gl*#_n1^;KnWWa2yA zet4z?f{PGs0v3)Yeu3_Zg`wM4-z=xnyxxEQ@~81oVZ!bJ=6lp+FR)*gs1c&78beG} zRFhV;P>^C^ib6=>3ZTLxzmI9Wr>3p3vhREsW<}U=S8T1IcVxp?7T6Lz99q2Q3z8V= zBH!N%?r85R6Lg8+ezHhaVtVZ1=4KsHJKu$M1Ig=v0>Axana>}%I(F|!7x*r$5hnWW zBPR%73wK7ApX;>$cP!3+zkTEi5qU7&75jtX&iO8^E$;gbFy={(Jf%?3N9x-T7M*#* zcVQo1H1jyn;kTb0a%D-d_#0;)%*tGWs6LntKeCag|S1(cI%Wbux)dSxHemWb1=+{yCEHHW0Z76T5 zVYRWk!}h%U%XCIS1FYEcR&l~DELSzydDa=5Lo^G z_bjr!E7G9IPey5eB&osq57(6(_B5zr2)7@eDFvoNR4NpiD^Q^@m-j!#XWFRn&9<7d zdj`H|eRiv{E4mu^+srLxTWf9TGoA-D3YK&pn_eKN<|;B*k?DxO(pp{iI3hZ5O>U+Q zdt%+9{COsJ0Hr?5OHXBmWW zSFBXf{{a?cVkc-*OKtf>K858OIZe%^3MhCKxIS$op--*e+E!PdZfYeb zYy_@M*G7=vx{j^$v*tAua^A-dM{7;_iyH6wLqs1)*GAFHjg@D^U9rFOGq!Ze%R6>3 z%ex|r6U9q_$x&h_m8JN8x%IzO4M>-EHw`yVU zsn~acy8tImvn24HihZGb{a(y*CgVof0UEoHE7Zv*>Je-5bX>nP8gfPJB*dfG8Ky->Lz_BBzy$uKkf=iqr! zS<+G$+LvKWX)`8a>)W-UBpCZMg({R!B3wDvHq%5E_6z(Pm1h;Z$6yXyqjzU8f!?pe zcaHam{&i!6q}Qcnz^FvHqwDB(R^^K#Qlk*^I;c_N0xy!v$j&;?wS(Cy)+}pTT>6@q z!DJ+CxI0>f%C`i)&dVV3fMbGw)yoO=w1i!{DSEYIc>wqmuN>zk%H|}&JH5yRk1VXJ zguCNk7W7`AaIDV82}cxJ(N-Jk9!n$V6t=!y3nm3)>+!aFW!xYl8~XzCh0#t$4l8W) zQyMrBk8J{O9#eGV9EH~rmbKNC{XA3KVTEn%jNOOmSH~V&9wYRLa#B+zrhUM1;DiV< zRiY}yP>q6#6eP4Q)7_EI5_VZf^b^LAlNq6OQ8*;%n;;P&0z?IksG6vt5rimW6V|0i z2)F`qb=<_MfYX~eajegaMabvltfDw$_!qyOrimr>UivE)ehoZt#C_F9dkhS{x2dq?Z%rv4@y&T_$!iEdFnk_De@D)xnL zXuE(#g){D0Yk1Dr9!~Uu*6OmaPnoUfdfOti{9c>M%Zwy&?7mdp3!taFyIZMC6aLHeaVX_9Uo zzy-sw>F?geiB+VAlV0(uWt$^cdDvdwGpw*18|IvJ9CM4pA&>k7jg{?9ok!CzvKZ%_ zvtVQGt);Jn+$`YDcwL$48uR4xO|e@&X)n(?@A!4u=EzmXl}CX&UO83a5kXhA)|4Og zs?B^Ot%-rAj>v4+$QEGOO%F!NDS?NK)$grcT>d)`+szBoo^e^ZRSSFjqu)nmWhQoM z-~x||*!x?m%b&PV1`rtw6z+=E2>cLqh7a+)q{2Guup!e;%kqs;-Fe}zSgAqpR`??R zR4iImb{g0aPp^p7T7CFH;%ixrFz=SKKk+u zPx{K#?w0bsp?hEZgz&Z~+pOvqCmDDmm+K5h!n=o1s%oZM(7PDr#*CxD1)di4ag@i7 zCCi@9mx&%<@-U4Z@oUA{uPEF`W~&UxN-xM>!R|tI=fr~YpZi^4d@g)Va4p?(^h3rq z%S1H{a+#mL&cO*m_o$j3!2k9pd!NomO#x&pbEqoeO|gYywGojzGTRi_OZpN1PgHhW zWf#fB?zV>MZ~NgW>#Jt!+tn!v#I9GP^(eQcyGgHKC>$~(JFT)yk)4(Mru@>2rAxWp z2;xT??4K6B(TG%mEK>CHT*h;ncY!^q>{emN@kHtFjSbSDX(M^H&Z}v2ywWD^B7{W> zf67?)=<<%^zz#(ovjOc&cSM+1!VadsU7blz&oyfF2H*w}{RF8$q0A+!$TJ2u^aW+z zNF`8tE9`JA?L2b1L*RNfdX*^iNUiUhOKuhdoQm)s6?qm_&xkD@js!+KeW|`hHSku?u8wR=BG69yIABhEAsm)ay2RoKySj2 zaRTo1rbnR z>nLAUq1Km8Bbz!Rvy&nV1^o;n3xJO@4wvm`$U#IONERjjj%C zgD?wZ8t8PCsR&ca-D=1La6sWTgx3Up6>FZ!WOgjC-wKv*I#MDO%t%_D;z%;2)|seA zCmLmvLMfsX#Y&+f1&9v*Ba0FddGGmQ)gBj8<9!vZvGf408jS&QAa2!(0dXVl;fg6` ehsL_|-2Ve4+|8}Q8pNgm00009%r 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 C++ == 1 - cc ; 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 - ;;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 - (haskell +dante) ; 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 +meghanada) ; 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 ; writing papers in Emacs has never been so fun - +cdlatex ; Enable cdlatex for fast math insertion. - +fold) ; Use TeX-fold (from auctex) to fold LaTeX macros to unicode, and make folding hook-based and less manual. - ;;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 ; organize your plain life in plain text - ;;+brain ; Enables org-brain integration. - +dragndrop ; Enables drag-and-drop support for images and files; inserts inline previews for images and an icon+link for other media types. - +gnuplot ; Installs gnuplot & gnuplot-mode, which enables rendering images from gnuplot src blocks or plotting tables with org-plot/gnuplot (bound to SPC m b p, by default). - ;;+hugo ; Enables integration with hugo to export from Emacs well-formed (blackfriday) markdown. - ;;+journal ; Enables org-journal integration. - ;;+jupyter ; Enables Jupyter integration for babel. - +noter ; Enables org-noter integration. Keeps notes in sync with a document. Requires pdf-tools (:tools pdf) or DocView or nov.el to be enabled. - +pandoc ; Enables pandoc integration into the Org exporter. - ;;+pomodoro ; Enables a pomodoro timer for clocking time on tasks. - ;;+present ; Enables integration with reveal.js, beamer and org-tree-slide, so Emacs can be used for presentations. It automatically downloads reveal.js. - +pretty ; Enables pretty unicode symbols for bullets and priorities, and better syntax highlighting for latex. Keep in mind: this can be expensive. If org becomes too slow, it’d be wise to disable this flag. - +roam2 ; Enables org-roam integration. This requires sqlite3 to be installed on your system. - ) - ;;php ; perl's insecure younger brother - ;;plantuml ; diagrams for confusing people more - ;;purescript ; javascript, but functional - python ; 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)) diff --git a/.emacs.doom.d/packages.el b/.emacs.doom.d/packages.el deleted file mode 100644 index cffc8dc..0000000 --- a/.emacs.doom.d/packages.el +++ /dev/null @@ -1,60 +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) - - -;;(package! org-roam-server) -(package! dired-hide-dotfiles) -(package! openwith) -(package! nov) -(package! vlf) -(package! swiper) -(package! exec-path-from-shell) -(package! dap-mode) diff --git a/.emacs.rational.d/config.el b/.emacs.rational.d/config.el deleted file mode 100644 index e14b4dc..0000000 --- a/.emacs.rational.d/config.el +++ /dev/null @@ -1,807 +0,0 @@ -;;; example-config.el -- Example Rational Emacs user customization file -*- lexical-binding: t; -*- - -;;; Commentary: -;; -;; Rational Emacs supports user customization through a `config.el' file -;; similar to this one. You can copy this file as `config.el' to your -;; Rational Emacs configuration directory as an example. -;; -;; In your configuration you can set any Emacs configuration variable, face -;; attributes, themes, etc as you normally would. -;; -;; See the README.org file in this repository for additional information. - -;;; Code: -(require 'rational-defaults) -;;(require 'rational-screencast) -(require 'rational-ui) -;;(require 'rational-editing) -(require 'rational-evil) -(require 'rational-completion) -;;(require 'rational-windows) -(require 'rational-use-package) - -;; Load auctex -(load "auctex.el" nil t t) -(load "preview-latex.el" nil t t) - -;; backup in one place. flat, no tree structure -(setq backup-directory-alist '(("." . "~/.emacs.rational.d/backups"))) -(customize-set-variable - 'tramp-backup-directory-alist backup-directory-alist) -(setq undo-tree-history-directory-alist '(("." . "~/.emacs.rational.d/undo"))) - -;; tab size -(setq-default indent-tabs-mode t) -(setq-default tab-width 4) -(setq-default evil-shift-width tab-width) - -(setq user-full-name "JaeYoo-Im" - user-mail-address "cpu3792@gmail.com") - -(setq system-time-locale "C") -(setenv "LANG" "en_US.UTF-8") -(setenv "LC_ALL" "en_US.UTF-8") - -;; Set further font and theme customizations -(custom-set-variables - '(rational-ui-default-font - '(:font "Fira Code Retina" :weight light :height 110))) - -(add-to-list 'default-frame-alist `(font . "Fira Code Retina")) -(set-face-attribute 'default nil :font "Fira Code Retina" :height 110) -(set-face-attribute 'fixed-pitch nil :font "Fira Code Retina" :height 110) -(set-face-attribute 'variable-pitch nil :font "Fira Code Retina" :height 110 :weight 'regular) -(set-fontset-font t 'hangul (font-spec :family "D2Coding" :height 110)) -(setq face-font-rescale-alist - '(("D2Coding" . 1.25))) - -;; Fullscreen -(set-frame-parameter (selected-frame) 'fullscreen 'maximized) -(add-to-list 'default-frame-alist '(fullscreen . maximized)) -(set-frame-parameter (selected-frame) 'alpha '(80 . 80)) - -;; Favorite Themes -(load-theme 'doom-palenight t) -;;(load-theme 'doom-gruvbox t) -;;(load-theme 'doom-one t) -;;(load-theme 'doom-dracula t) - - -(straight-use-package 'use-package) - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; Additional Evil -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(setq evil-want-C-u-scroll t) -;; EVIL Numbers -(use-package evil-numbers - :straight t - :after evil - :config - ;; unfortunately C-x is emacs common key binding. - (define-key evil-normal-state-map (kbd "g =") 'evil-numbers/inc-at-pt) - (define-key evil-normal-state-map (kbd "g -") 'evil-numbers/dec-at-pt) - (define-key evil-visual-state-map (kbd "g =") 'evil-numbers/inc-at-pt) - (define-key evil-visual-state-map (kbd "g -") 'evil-numbers/dec-at-pt)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; Additional UI pkg -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Line numbers -(column-number-mode) -(global-display-line-numbers-mode t) -(global-hl-line-mode) -(dolist (mode '(org-mode-hook - vterm-mode-hook - shell-mode-hook - treemacs-mode-hook - dired-mode-hook - eshell-mode-hook)) - (add-hook mode (lambda () (display-line-numbers-mode 0)))) -(use-package rainbow-delimiters - :straight t - :hook (prog-mode . rainbow-delimiters-mode)) -;; dashboard -(use-package dashboard - :straight t - :after all-the-icons - :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-startup-banner "/home/jaeus/.emacs.rational.d/logos/emacs-e.png") - (setq dashboard-center-content t) - (setq dashboard-week-agenda t) - (setq dashboard-agenda-time-string-format "%d/%m/%Y %A %H:%M") - (setq dashboard-items '((recents . 10) - (agenda . 5) - (bookmarks . 5) - ;;(projects . 5) <= related projectile - (registers . 5))) - (setq dashboard-set-navigator t) - ;; Format: "(icon title help action face prefix suffix)" - (setq dashboard-navigator-buttons - `((;; Github - (,(all-the-icons-octicon "mark-github" :height 1.1 :v-adjust 0.0) - "Github" - "Browse github" - (lambda (&rest _) (browse-url "https://github.com/JaeYoo-Im/"))) - (,(all-the-icons-octicon "history" :height 1.1 :v-adjust 0.0) - "Reload last session" - "Reload last session" - (lambda (&rest _) (persp-state-load persp-state-default-file)))))) - :config - (dashboard-setup-startup-hook) - (dashboard-modify-heading-icons '((recents . "file-text") - (bookmarks . "book")))) -(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*"))) - -(use-package vertico-posframe - :straight t - :disabled - :after vertico - :ensure t - :init - (setq vertico-posframe-parameters - `((left-fringe . 8) - (right-fringe . 8) (alpha . 100))) - (vertico-posframe-mode 1)) - -(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 ( ) form. - ((numberp (cadr alpha)) (cadr alpha))) - 100) - '(80 . 80) '(100 . 100))))) -(global-set-key (kbd "C-c t") 'toggle-transparency) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; EMOJIFY ♌ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package emojify - :straight t - :hook (after-init . global-emojify-mode)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; Key bindings -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package which-key - :straight t - :defer 0 - :diminish which-key-mode - :config - (which-key-mode) - (setq which-key-idle-delay 0.5)) -(use-package general - :straight t - :ensure t - :config - (general-evil-setup t) - (general-create-definer ju/leader-key-def - :keymaps '(normal insert visual emacs) - :prefix "SPC" - :global-prefix "C-SPC")) -;; General key definer key-prefix SPC -(ju/leader-key-def - "." 'find-file - ;; Buffer - "b" '(:ignore t :which-key "buffer handling") - "b b" '(ibuffer :which-key "IBuffer") - "b k" '(kill-current-buffer :which-key "Kill current buffer") - "b n" '(next-buffer :which-key "Next buffer") - "b p" '(previous-buffer :which-key "Previous buffer") - "b B" '(ibuffer-list-buffers :which-key "IBuffer List Buffers") - "b K" '(kill-buffer :which-key "IBuffer Kill Buffers") - ;; Eshell - "e" '(:ignore t :which-key "eshell") - "e h" '(counsel-esh-history :which "Kill history") - "e s" '(eshell :which "run eshell") - ;; Magit - "g" 'magit - ;; Workspace - ;; Counsel - "f" '(:ignore t :which-key "file op.") - "f r" '(consult-recent-file :which-key "Recent files") - "f R" '(revert-buffer :which-key "Revert Buffer") - "t t" '(toggle-truncate-lines :which-key "Toggle truncate lines") - ;; Shortcut - "f d d" '(lambda () (interactive) (find-file (expand-file-name "~/.emacs.rational.d/desktop.el")) :which-key "open exwm config") - "f d e" '(lambda () (interactive) (find-file (expand-file-name "~/.emacs.rational.d/config.el")) :which-key "open emacs config") - ;; Insert something - "i" '(:ignore t :which-key "insert something.") - "ie" '(emojify-insert-emoji :which-key "emoji") - ;; AVY (easymotion) - "v" '(:ignore t :which-key "Avy") - "vc" '(avy-goto-char :which-key "Avy Goto Char") - "vw" '(avy-goto-word-0 :which-key "Avy Goto Word") - "vl" '(avy-goto-line :which-key "Avy Goto Line") - ;; Org mode - "o" '(:ignore t :which-key "Org mode") - "oa" '(:ignore t :which-key "Org Agenda") - "oar" '(my/org-roam-refresh-agenda-list :which-key "Org agenda refresh list") - "oaa" '(org-agenda :which-key "open org agenda") - ;; project.el - "p" '(:ignore t :which-key "Project") - "p." 'project-find-file - "ps" 'project-switch-project - "pg" 'consult-ripgrep - "pc" 'project-compile - "pd" 'project-dired - ;; Org roam - "r" '(:ignore t :which-key "Org Roam") - "ru" 'org-roam-ui-open - "rl" 'org-roam-buffer-toggle - "rf" 'org-roam-node-find - "ri" 'org-roam-node-insert - "rI" 'org-roam-node-insert-immediate - "rp" 'my/org-roam-find-project) - -(global-set-key (kbd "C-M-j") 'consult-buffer) - -;; Make ESC quit prompts -(global-set-key (kbd "") 'keyboard-escape-quit) -;; this annoying binding. -(global-unset-key (kbd "C-j")) -(global-unset-key (kbd "C-k")) -(global-unset-key (kbd "S-SPC")) ;; use only S-\ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; tramp default is scp -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(setq tramp-default-method "ssh") -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; Flycheck -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package flycheck - :straight t - :ensure t - :defer t - :init (global-flycheck-mode t)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; AVY (like easymotion) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package avy - :straight t - :commands (avy-goto-char avy-goto-word-0 avy-goto-line)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; Hilight TODO -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package hl-todo - :straight t - :hook (prog-mode . hl-todo-mode) - :hook (yaml-mode . hl-todo-mode) - :config - (setq hl-todo-highlight-punctuation ":" - hl-todo-keyword-faces - `(;; For things that need to be done, just not today. - ("TODO" warning bold) - ;; For problems that will become bigger problems later if not - ;; fixed ASAP. - ("FIXME" error bold) - ;; For tidbits that are unconventional and not intended uses of the - ;; constituent parts, and may break in a future update. - ("HACK" font-lock-constant-face bold) - ;; For things that were done hastily and/or hasn't been thoroughly - ;; tested. It may not even be necessary! - ("REVIEW" font-lock-keyword-face bold) - ;; For especially important gotchas with a given implementation, - ;; directed at another user other than the author. - ("NOTE" success bold) - ;; For things that just gotta go and will soon be gone. - ("DEPRECATED" font-lock-doc-face bold) - ;; For a known bug that needs a workaround - ("BUG" error bold) - ;; For warning about a problematic or misguiding code - ("XXX" font-lock-constant-face bold)))) -(global-hl-todo-mode) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; Dired -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package dired - :ensure nil - :straight nil - :commands (dired dired-jump) - :bind (("C-x C-j" . dired-jump)) - :custom ((dired-listing-switches "-agho --group-directories-first")) - :config - (evil-collection-define-key 'normal 'dired-mode-map - "h" 'dired-single-up-directory - "l" 'dired-single-buffer)) -(autoload 'dired-omit-mode "dired-x") -(add-hook 'dired-load-hook - (lambda () - (interactive) - (dired-collapse))) -;; to use h,l key -(use-package dired-single - :straight t - :commands (dired dired-jump)) -(use-package diredfl - :straight t - :hook (dired-mode . diredfl-mode)) - -;; from doom emacs -(defun +dired-enable-git-info-h () - "Enable `dired-git-info-mode' in git repos." - (and (not (file-remote-p default-directory)) - (locate-dominating-file "." ".git") - (dired-git-info-mode 1))) -(use-package dired-git-info :straight t) -(use-package diff-hl - :straight t - :hook (dired-mode . diff-hl-dired-mode-unless-remote) - :hook (magit-post-refresh . diff-hl-magit-post-refresh) - :config - ;; use margin instead of fringe - (diff-hl-margin-mode)) -(use-package dired-rsync - :straight t - :config - (bind-key "C-c C-r" 'dired-rsync dired-mode-map)) -(use-package all-the-icons-dired - :straight t - :hook (dired-mode . all-the-icons-dired-mode) - :config - ;; HACK Fixes #1929: icons break file renaming in Emacs 27+, because the icon - ;; is considered part of the filename, so we disable icons while we're in - ;; wdired-mode. - ;;(when EMACS27+ - (defvar +wdired-icons-enabled -1)) - -;;(defadvice! +dired-disable-icons-in-wdired-mode-a (&rest _) -;; :before #'wdired-change-to-wdired-mode -;; (setq-local +wdired-icons-enabled (if all-the-icons-dired-mode 1 -1)) -;; (when all-the-icons-dired-mode -;; (all-the-icons-dired-mode -1))) - -;;(defadvice! +dired-restore-icons-after-wdired-mode-a (&rest _) -;; :after #'wdired-change-to-dired-mode -;; (all-the-icons-dired-mode +wdired-icons-enabled)))) -;;(use-package fd-dired) - -(use-package dired-hide-dotfiles - :straight t - :hook (dired-mode . dired-hide-dotfiles-mode) - :config - (evil-collection-define-key 'normal 'dired-mode-map - "H" 'dired-hide-dotfiles-mode)) -;;(use-package ranger -;; :config -;; (setq ranger-preview-file t) -;; (setq ranger-show-preview t) -;; (setq ranger-show-literal nil) -;; (ranger-override-dired-mode t)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; OpenWith -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package openwith - :straight t - :after dired - :config - (setq larget-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")) - "evince" - '(file))))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; Magit -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package magit - :straight t - :commands (magit-status magit-get-current-branch) - :custom - (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) - -;; NOTE: Make sure to configure a GitHub token before using this package! -;; - https://magit.vc/manual/forge/Token-Creation.html#Token-Creation -;; - https://magit.vc/manual/ghub/Getting-Started.html#Getting-Started -(use-package forge - :straight t - :after magit) -(use-package magit-todos - :straight t - :defer t) -(use-package git-link :straight t) -(use-package git-gutter - :straight git-gutter-fringe - ;;:diminish - :hook ((text-mode . git-gutter-mode) - (prog-mode . git-gutter-mode)) - :config - (setq git-gutter:update-interval 2) - (require 'git-gutter-fringe) - (set-face-foreground 'git-gutter-fr:added "LightGreen") - (fringe-helper-define 'git-gutter-fr:added nil - ".XXXXXX." - "XX....XX" - "X......X" - "X......X" - "XXXXXXXX" - "XXXXXXXX" - "X......X" - "X......X") - - (set-face-foreground 'git-gutter-fr:modified "LightGoldenrod") - (fringe-helper-define 'git-gutter-fr:modified nil - "XXXXXXXX" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X") - - (set-face-foreground 'git-gutter-fr:deleted "LightCoral") - (fringe-helper-define 'git-gutter-fr:deleted nil - "XXXXXX.." - "XX....X." - "XX.....X" - "XX.....X" - "XX.....X" - "XX.....X" - "XX....X." - "XXXXXX..") - - ;; These characters are used in terminal mode - (setq git-gutter:modified-sign "≡") - (setq git-gutter:added-sign "≡") - (setq git-gutter:deleted-sign "≡") - (set-face-foreground 'git-gutter:added "LightGreen") - (set-face-foreground 'git-gutter:modified "LightGoldenrod") - (set-face-foreground 'git-gutter:deleted "LightCoral")) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; ORG mode -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defun org-keyword-backend (command &optional arg &rest ignored) - (interactive (list 'interactive)) - (cl-case command - (interactive (company-begin-backend 'org-keyword-backend)) - (prefix (and (eq major-mode 'org-mode) - (cons (company-grab-line "^#\\+\\(\\w*\\)" 1) - t))) - (candidates (mapcar #'upcase - (cl-remove-if-not - (lambda (c) (string-prefix-p arg c)) - (pcomplete-completions)))) - (ignore-case t) - (duplicates t))) -(defun efs/org-mode-setup () - (org-indent-mode) - ;;(variable-pitch-mode 1) - (visual-line-mode 1)) - -(use-package org - :straight t - ;;:pin org - :commands (org-capture org-agenda) - :hook (org-mode . efs/org-mode-setup) - :config - - (setq org-todo-keywords - '((sequence "TODO(t)" "HOLD(h)" "|" "KILL(k)" "DONE(d)"))) - (setq org-ellipsis " ▾") - (setq org-hide-emphasis-markers t) - (setq org-src-fontify-natively t) - (setq org-fontify-quote-and-verse-blocks t) - - (setq org-agenda-start-with-log-mode t) - (setq org-log-done 'time) - (setq org-log-into-drawer t) - (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.8))) - -(use-package org-superstar :straight t :after org :hook (org-mode . org-superstar-mode)) -(use-package org-attach-screenshot :straight t) -(use-package org-download - :straight t - :config - (setq-default org-download-image-dir "./images") - (setq-default org-download-heading-lvl nil)) -(add-hook 'dired-mode-hook 'org-download-enable) - -(defun efs/org-mode-visual-fill () - (setq visual-fill-column-width 150 - visual-fill-column-center-text t) - (visual-fill-column-mode 1)) - -(use-package visual-fill-column - :straight t - :hook (org-mode . efs/org-mode-visual-fill)) - -(with-eval-after-load 'org - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (python . t) - (latex . t))) - - (push '("conf-unix" . conf-unix) org-src-lang-modes)) - -(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 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"))) - -;; ODT export to docx -(setq org-odt-preferred-output-format "docx") - -;; Do not ask when run code block -(setq org-confirm-babel-evaluate nil) -(use-package org-contrib :straight t) - -;; translate -(use-package ob-translate - :straight t - :config - (setq ob-translate:default-dest "ko")) - -;; Noter -(use-package pdf-tools - :straight t - :config - (pdf-tools-install) - (setq-default pdf-view-display-size 'fit-width) - (define-key pdf-view-mode-map (kbd "C-s") 'isearch-forward) - :custom - (pdf-annot-activate-created-annotations t "automatically annotate highlights")) -(use-package org-pdfview - :straight t) -(use-package org-noter :straight t) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; ORG Roam -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package org-roam - :straight t - :ensure t - :demand t ;; Ensure org-roam is loaded by default - :init - (setq org-roam-v2-ack t) - :custom - (org-roam-directory "~/Roam") - (org-roam-completion-everywhere t) - - :config - (org-roam-db-autosync-mode)) -;;(org-roam-setup)) - -(defun org-roam-node-insert-immediate (arg &rest args) - (interactive "P") - (let ((args (push arg args)) - (org-roam-capture-templates (list (append (car org-roam-capture-templates) - '(:immediate-finish t))))) - (apply #'org-roam-node-insert args))) - -(defun my/org-roam-filter-by-tag (tag-name) - (lambda (node) - (member tag-name (org-roam-node-tags node)))) - -(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"))) - - -(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* History\n\n* Notes\n\n" - :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: Project") - :unnarrowed t)))) - -(add-to-list 'org-after-todo-state-change-hook - (lambda () - (when (equal org-state "DONE") - (my/org-roam-copy-todo-to-today)))) - -(use-package websocket - :straight t - :after org-roam) -(use-package org-roam-ui - :straight t - :after org-roam - ;; 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)) - -;; Build the agenda list the first time for the session -;;(my/org-roam-refresh-agenda-list) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; Language Settings -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(custom-set-variables - '(verilog-indent-level 2) - '(verilog-indent-level-module 0) - '(verilog-indent-level-declaration 0) - '(verilog-indent-level-behavioral 0) - '(verilog-indent-level-directive 0) - '(verilog-cexp-indent 0) - '(verilog-case-indent 2) - - '(verilog-auto-newline nil)) - -(use-package rust-mode :straight t) - -(use-package jupyter - :straight t) -(org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) ;; Other languages - (shell . t) - ;; Python & Jupyter - (python . t) - (jupyter . t))) -(org-babel-jupyter-override-src-block "python") -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; Eshell -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(when (eq system-type 'windows-nt) - (setq explicit-shell-file-name "powershell.exe") - (setq explicit-powershell.exe-args '())) -(defun dw/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 dw/eshell-prompt () - (let ((current-branch (magit-get-current-branch))) - (concat - "\n" - (propertize (system-name) 'face `(:foreground "#62aeed")) - (propertize " ॐ " 'face `(:foreground "white")) - (propertize (dw/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 efs/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 "") 'eshell-bol) - (evil-normalize-keymaps) - - (setq eshell-prompt-function 'dw/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)) - -(use-package eshell-git-prompt - :straight t - :after eshell) - -(use-package eshell - :straight t - :hook (eshell-first-time-mode . efs/configure-eshell) - :config - - (with-eval-after-load 'esh-opt - (setq eshell-destroy-buffer-when-process-dies t) - (setq eshell-visual-commands '("htop" "zsh" "vim")))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; ELFEED (rss) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package elfeed - :straight t - :config - (setq elfeed-search-feed-face ":foreground #fff :weight bold" - elfeed-feeds (quote - (("https://www.reddit.com/r/linux.rss" reddit linux) - ("https://www.reddit.com/r/emacs.rss" reddit emacs) - ("https://www.gamingonlinux.com/article_rss.php" gaming linux) - ("https://hackaday.com/blog/feed/" hackaday linux) - ("https://opensource.com/feed" opensource linux) - ("https://linux.softpedia.com/backend.xml" softpedia linux) - ("https://itsfoss.com/feed/" itsfoss linux) - ("https://www.zdnet.com/topic/linux/rss.xml" zdnet linux) - ("https://www.phoronix.com/rss.php" phoronix linux) - ("http://feeds.feedburner.com/d0od" omgubuntu linux) - ("https://www.computerworld.com/index.rss" computerworld linux) - ("https://www.networkworld.com/category/linux/index.rss" networkworld linux) - ("https://www.techrepublic.com/rssfeeds/topic/open-source/" techrepublic linux) - ("https://betanews.com/feed" betanews linux) - ("http://lxer.com/module/newswire/headlines.rss" lxer linux) - ("https://coolenjoy.net/rss?bo_table=38" coolenjoy IT) - ("https://gigglehd.com/gg/ggnews/rss" giggle IT))))) - -(use-package elfeed-goodies - :straight t - :init - (elfeed-goodies/setup) - :config - (setq elfeed-goodies/entry-pane-size 0.5)) - -(add-hook 'elfeed-show-mode-hook 'visual-line-mode) -(evil-define-key 'normal elfeed-show-mode-map - (kbd "J") 'elfeed-goodies/split-show-next - (kbd "K") 'elfeed-goodies/split-show-prev) -(evil-define-key 'normal elfeed-search-mode-map - (kbd "J") 'elfeed-goodies/split-show-next - (kbd "K") 'elfeed-goodies/split-show-prev) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; ETC -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; ediff, keep it in one frame -(setq ediff-diff-options "-w" - ediff-split-window-function 'split-window-horizontally - ediff-window-setup-function 'ediff-setup-windows-plain) - -;; very large file -(use-package vlf - :straight t - :config (progn - (require 'vlf-setup))) - -;; epub -(use-package nov :straight t) -(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)) diff --git a/.emacs.rational.d/desktop.el b/.emacs.rational.d/desktop.el deleted file mode 100644 index 510538c..0000000 --- a/.emacs.rational.d/desktop.el +++ /dev/null @@ -1,164 +0,0 @@ -(straight-use-package - '(app-launcher :type git :host github :repo "SebastienWae/app-launcher")) -(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 "bitwarden-desktop") - - ;; 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 - :straight t - :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 "") . vifon/exwm-terminal) - (,(kbd "") . 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 -;; :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) - -(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) diff --git a/.emacs.rational.d/exwm/.start-exwm.sh.~undo-tree~ b/.emacs.rational.d/exwm/.start-exwm.sh.~undo-tree~ deleted file mode 100644 index 2271a37..0000000 --- a/.emacs.rational.d/exwm/.start-exwm.sh.~undo-tree~ +++ /dev/null @@ -1,6 +0,0 @@ -(undo-tree-save-format-version . 1) -"e976d2036366e62bb8915b7138e0b4a5fb4918fa" -[nil nil nil nil (25145 39387 666368 202000) 0 nil] -([nil nil ((445 . 454) (t 25145 11614 471859 40000)) nil (25145 39387 666364 698000) 0 nil]) -([nil current ((408 . 416) (#("vanilla" 0 7 (fontified t)) . 408) (undo-tree-id0 . -7) (undo-tree-id1 . -7) (undo-tree-id2 . -7) (undo-tree-id3 . -7) (undo-tree-id4 . -7) (undo-tree-id5 . -6) (undo-tree-id6 . -6) (undo-tree-id7 . -6) (undo-tree-id8 . -6) (undo-tree-id9 . -6) (undo-tree-id10 . -5) (undo-tree-id11 . -5) (undo-tree-id12 . -5) (undo-tree-id13 . -5) (undo-tree-id14 . -5) (undo-tree-id15 . -5) (undo-tree-id16 . -5) (undo-tree-id17 . -5) (undo-tree-id18 . -5) (undo-tree-id19 . -5) (undo-tree-id20 . -6) (undo-tree-id21 . -6) (undo-tree-id22 . -6) (undo-tree-id23 . -6) (undo-tree-id24 . -6) (undo-tree-id25 . -6) (undo-tree-id26 . -6) (undo-tree-id27 . -6) (undo-tree-id28 . -6) (undo-tree-id29 . -6) (undo-tree-id30 . -7) (undo-tree-id31 . -7) (undo-tree-id32 . -7) (undo-tree-id33 . -7) (undo-tree-id34 . -7) (undo-tree-id35 . -7) (undo-tree-id36 . -7) (undo-tree-id37 . -7) (undo-tree-id38 . -7) (undo-tree-id39 . -7) (undo-tree-id40 . -7) (undo-tree-id41 . -7) (undo-tree-id42 . -7) (undo-tree-id43 . -7) (undo-tree-id44 . -7) (undo-tree-id45 . -7) (undo-tree-id46 . -7) (undo-tree-id47 . -6) (undo-tree-id48 . -6) (undo-tree-id49 . -6) (undo-tree-id50 . -6) (undo-tree-id51 . -6) (undo-tree-id52 . -6) (undo-tree-id53 . -6) (undo-tree-id54 . -6) (undo-tree-id55 . -6) (undo-tree-id56 . -6) (undo-tree-id57 . -6) (undo-tree-id58 . -6) (undo-tree-id59 . -6) (undo-tree-id60 . -6) (undo-tree-id61 . -6) (undo-tree-id62 . -5) (undo-tree-id63 . -5) (undo-tree-id64 . -5) (undo-tree-id65 . -5) (undo-tree-id66 . -5) (undo-tree-id67 . -4) (undo-tree-id68 . -4) (undo-tree-id69 . -4) (undo-tree-id70 . -4) (undo-tree-id71 . -4) (undo-tree-id72 . -3) (undo-tree-id73 . -3) (undo-tree-id74 . -3) (undo-tree-id75 . -3) (undo-tree-id76 . -3) (undo-tree-id77 . -2) (undo-tree-id78 . -2) (undo-tree-id79 . -2) (undo-tree-id80 . -2) (undo-tree-id81 . -2) (undo-tree-id82 . -1) (undo-tree-id83 . -1) (undo-tree-id84 . -1) (undo-tree-id85 . -1) (undo-tree-id86 . -1) (undo-tree-id87 . -1) (undo-tree-id88 . -1) (undo-tree-id89 . -1) (undo-tree-id90 . -1) (undo-tree-id91 . -1) (t 25145 39387 681489 213000)) nil (25145 39399 354371 746000) 0 nil]) -nil diff --git a/.emacs.rational.d/exwm/EXWM.desktop b/.emacs.rational.d/exwm/EXWM.desktop deleted file mode 100644 index 7de02bf..0000000 --- a/.emacs.rational.d/exwm/EXWM.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=EXWM -Comment=Emacs Window Manager -Exec=sh /home/jaeus/.emacs.rational.d/exwm/start-exwm.sh -TryExec=sh -Type=Application -X-LightDM-DesktopName=exwm -DesktopNames=exwm diff --git a/.emacs.rational.d/exwm/start-exwm.sh b/.emacs.rational.d/exwm/start-exwm.sh deleted file mode 100755 index 5ec6375..0000000 --- a/.emacs.rational.d/exwm/start-exwm.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# Set the screen DPI (uncomment this if needed!) -# xrdb ~/.emacs.d/exwm/Xresources - -# Run the screen compositor -#picom & -#picom -b --config /home/jaeus/.config/i3/picom.conf & -# Enable screen locking on suspend -#xss-lock -- slock & - -picom -b --config $HOME/.xmonad/scripts/picom.conf & -~/scripts/random_wallpaper.sh -exec dbus-launch --exit-with-session emacs --with-profile rational -mm --debug-init -l ~/.emacs.rational.d/desktop.el diff --git a/.emacs.rational.d/logos/emacs-e.png b/.emacs.rational.d/logos/emacs-e.png deleted file mode 100644 index 0c5cd633c62dea04fc0ff67c96f7b542a7dfa68c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3452 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 ehsL_|-2Ve4+|8}Q8pNgm0000") . vifon/exwm-terminal) - (,(kbd "") . 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 -;; :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) - -(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) diff --git a/.emacs.vanilla/desktop.org b/.emacs.vanilla/desktop.org deleted file mode 100644 index 4c0205e..0000000 --- a/.emacs.vanilla/desktop.org +++ /dev/null @@ -1,202 +0,0 @@ -#+TITLE: Desktop - -* Exwm Desktop -#+begin_src config -[Desktop Entry] -Name=EXWM -Comment=Emacs Window Manager -Exec=sh /home/jaeus/.emacs.d/exwm/start-exwm.sh -TryExec=sh -Type=Application -X-LightDM-DesktopName=exwm -DesktopNames=exwm -#+end_src - -#+begin_src shell - #!/bin/sh - # Fire it up for WSL - VETHER_IP=$(/bin/grep nameserver /etc/resolv.conf 2> /dev/null | /bin/tr -s ' ' | /bin/cut -d' ' -f2) - export DISPLAY=$VETHER_IP:10.0 - picom -b --config $HOME/.xmonad/scripts/picom.conf & - exec dbus-launch --exit-with-session emacs -mm --debug-init -l ~/.emacs.d/desktop.el - -#+end_src - - -* Configuration - -** App Launcher -#+begin_src emacs-lisp :tangle ~/.emacs.d/desktop.el - (straight-use-package - '(app-launcher :type git :host github :repo "SebastienWae/app-launcher")) -#+end_src -** EXWM -#+begin_src emacs-lisp :tangle ~/.emacs.d/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 "") . vifon/exwm-terminal) - (,(kbd "") . 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 - ;; :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 ~/.emacs.d/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 - diff --git a/.emacs.vanilla/emacs.el b/.emacs.vanilla/emacs.el deleted file mode 100644 index f88ba07..0000000 --- a/.emacs.vanilla/emacs.el +++ /dev/null @@ -1,1454 +0,0 @@ -;; -*- lexical-binding: t; -*- -;;User -(setq user-full-name "JaeYoo,Im" - user-mail-address "cpu3792@gmail.com") -;; os -(setq custom-file (make-temp-file "emacs-custom")) -(setq windows? (eq system-type 'windows-nt)) -(setq mac? (eq system-type 'darwin)) -(setq large-file-warning-threshold nil) - -(setq system-time-locale "C") -(setenv "LANG" "en_US.UTF-8") -(setenv "LC_ALL" "en_US.UTF-8") -;; theme var -(defvar gvar/default-font-size 110) -(defvar gvar/default-variable-font-size 110) -(defvar gvar/frame-transparency '(75 . 75)) -;;dir -(setq user-emacs-directory "~/.cache/emacs") -;; encoding -(set-language-environment "Korean") -(set-default-coding-systems 'utf-8) -(prefer-coding-system 'utf-8) -;; font -(defun available-font? (font) (member font (font-family-list))) - -(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 ( ) form. - ((numberp (cadr alpha)) (cadr alpha))) - 100) - gvar/frame-transparency '(100 . 100))))) -(global-set-key (kbd "C-c t") 'toggle-transparency) - -(require 'package) -(setq package-archives '(("melpa" . "https://melpa.org/packages/") - ("org" . "https://orgmode.org/elpa/") - ("elpa" . "https://elpa.gnu.org/packages/") - ("nongnu" . "https://elpa.nongnu.org/nongnu/"))) -;;(unless package-archive-contents -;; (package-refresh-contents)) -(package-initialize) - -;; Initialize use-package on non-Linux platforms -(unless (package-installed-p 'use-package) - (package-install 'use-package)) - -(when (not (package-installed-p 'use-package)) - (package-refresh-contents) - (package-install 'use-package)) -(require 'use-package) -(setq use-package-always-ensure t) - -;;(use-package auto-package-update -;; :custom -;; (auto-package-update-interval 7) -;; (auto-package-update-prompt-before-update t) -;; (auto-package-update-hide-results t) -;; :config -;; (auto-package-update-maybe) -;; (auto-package-update-at-time "09:00")) - -(defvar bootstrap-version) -(let ((bootstrap-file - (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) - (bootstrap-version 5)) - (unless (file-exists-p bootstrap-file) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp))) - (load bootstrap-file nil 'nomessage)) - -(setq straight-use-package-by-default t) -;; Use package install from git -(straight-use-package 'use-package) - -(use-package paradox - :init - (setq paradox-github-token t) - (setq paradox-execute-asynchronously t) - (setq paradox-automatically-star t)) - -;; tab -(setq-default indent-tabs-mode t) -(setq-default tab-width 4) -(setq-default evil-shift-width tab-width) -;; verilog -(custom-set-variables - '(verilog-indent-level 4) - '(verilog-indent-level-module 0) - '(verilog-indent-level-declaration 0) - '(verilog-indent-level-behavioral 0) - '(verilog-indent-level-directive 0) - '(verilog-cexp-indent 0) - '(verilog-case-indent 4) - - '(verilog-auto-newline nil)) - -(use-package no-littering) ; make ~/.emacs.d clean -;; no-littering doesn't set this by default so we must place -;; auto save files in the same path as it uses for sessions -(setq auto-save-file-name-transforms - `((".*" ,(no-littering-expand-var-file-name "auto-save/") t))) - -(setq inhibit-startup-message t) - -;; (setq gc-cons-threshold most-positive-fixnum) -;; (defconst 1mb 1048576) -;; (defconst 20mb 20971520) -;; (defconst 30mb 31457280) -;; (defconst 50mb 52428800) -;; -;; (defun fk/defer-garbage-collection () -;; (setq gc-cons-threshold most-positive-fixnum)) -;; -;; (defun fk/restore-garbage-collection () -;; (run-at-time 1 nil (lambda () (setq gc-cons-threshold 30mb)))) -;; -;; (add-hook 'emacs-startup-hook 'fk/restore-garbage-collection 100) -;; (add-hook 'minibuffer-setup-hook 'fk/defer-garbage-collection) -;; (add-hook 'minibuffer-exit-hook 'fk/restore-garbage-collection) -;; -;; (setq read-process-output-max 1mb) ;; lsp-mode's performance suggest - -;; Using garbage magic hack. -(use-package gcmh - :config - (gcmh-mode 1)) -;; Setting garbage collection threshold -(setq gc-cons-threshold 402653184 - gc-cons-percentage 0.6) - -;; Profile emacs startup -(add-hook 'emacs-startup-hook - (lambda () - (message "*** Emacs loaded in %s with %d garbage collections." - (format "%.2f seconds" - (float-time - (time-subtract after-init-time before-init-time))) - gcs-done))) - -;; Silence compiler warnings as they can be pretty disruptive (setq comp-async-report-warnings-errors nil) - -(defun ju/evil-hook() - (dolist (mode '(custom-mode - erc-mode)) - (add-to-list 'evil-emacs-state-modes mode))) -(use-package undo-tree - :init - (global-undo-tree-mode 1)) -(use-package evil - :ensure t - :init - (setq evil-want-integration t) - (setq evil-want-keybinding nil) - (setq evil-want-C-u-scroll t) - (setq evil-want-C-i-jump nil) - (setq evil-undo-system 'undo-tree) - :config - (add-hook 'evil-mode-hook 'ju/evil-hook) - (evil-mode 1) - (define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-char-and-join) - ;;(setq-default evil-symbol-word-search t) ;; evil can identify the word with underscore. - ;; Http://blog.binchen.org/posts/auto-complete-word-in-emacs-mini-buffer-when-using-evil.html - ;;(defun minibuffer-inactive-mode-hook-setup () - ;;;; make `try-expand-dabbrev' from `hippie-expand' work in mini-buffer - ;;;; @see `he-dabbrev-beg', so we need re-define syntax for '/' - ;;(set-syntax-table (let* ((table (make-syntax-table))) - ;;(modify-syntax-entry ?/ "." table) - ;;table))) - ;;(add-hook 'minibuffer-inactive-mode-hook 'minibuffer-inactive-mode-hook-setup) - - ;; Use visual line motions even outside of visual-line-mode buffers - (evil-global-set-key 'motion "j" 'evil-next-visual-line) - (evil-global-set-key 'motion "k" 'evil-previous-visual-line) - (evil-set-initial-state 'messages-buffer-mode 'normal) - (evil-set-initial-state 'dashboard-mode 'normal)) -(use-package evil-numbers - :after evil - :config - ;; unfortunately C-x is emacs common key binding. - (define-key evil-normal-state-map (kbd "g =") 'evil-numbers/inc-at-pt) - (define-key evil-normal-state-map (kbd "g -") 'evil-numbers/dec-at-pt) - (define-key evil-visual-state-map (kbd "g =") 'evil-numbers/inc-at-pt) - (define-key evil-visual-state-map (kbd "g -") 'evil-numbers/dec-at-pt)) -(use-package evil-nerd-commenter - :after evil - :config - (define-key evil-normal-state-map (kbd "g c") 'evilnc-comment-or-uncomment-lines) - (define-key evil-visual-state-map (kbd "g c") 'evilnc-comment-or-uncomment-lines)) - -(use-package evil-collection - :after evil - :ensure t - :config - (evil-collection-init)) - -(modify-syntax-entry ?_ "w") -;;(defalias 'forward-evil-word 'forward-evil-symbol) ;; include underscore to word - -(scroll-bar-mode -1) ; Disable visible scrollbar -(tool-bar-mode -1) ; Disable the toolbar -(tooltip-mode -1) ; Disable tooltips -(set-fringe-mode 10) ; Give some breathing room -(xterm-mouse-mode) - -(menu-bar-mode -1) ; Disable the menu bar -;;(setq visible-bell t) - -(column-number-mode) -(global-display-line-numbers-mode t) -;; Disable line numbers for some modes -(dolist (mode '(org-mode-hook - vterm-mode-hook - shell-mode-hook - treemacs-mode-hook - dired-mode-hook - eshell-mode-hook)) - (add-hook mode (lambda () (display-line-numbers-mode 0)))) - -(use-package doom-themes - :init - (setq doom_themes-enable-bold t - doom-themes-enablbe-italic t) - :config - ;;(load-theme 'doom-palenight t) - ;;(load-theme 'doom-gruvbox t) - ;;(load-theme 'doom-one t) - (load-theme 'doom-dracula t) - ;; Enable flashing mode-line on errors - (doom-themes-visual-bell-config) - ;; Corrects (and improves) org-mode's native fontification. - (doom-themes-org-config)) - -;; hilight line at the cursor. -(global-hl-line-mode t) -;;(use-package beacon -;; :straight t -;; :config -;; (beacon-mode)) - -(use-package doom-modeline - :init (doom-modeline-mode 1) - :custom ((doom-modeline-height 15))) - -;; Set frame transparency -(set-frame-parameter (selected-frame) 'alpha gvar/frame-transparency) -(add-to-list 'default-frame-alist `(alpha . ,gvar/frame-transparency)) -(set-frame-parameter (selected-frame) 'fullscreen 'maximized) -(add-to-list 'default-frame-alist '(fullscreen . maximized)) - -(use-package dashboard - :ensure t - :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!") - ;;(dashboard-startup-banner 'logo) - (setq dashboard-startup-banner "/home/jaeus/.emacs.d/logos/black-hole.png") - (setq dashboard-center-content t) - (setq dashboard-week-agenda t) - (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) - ;; Format: "(icon title help action face prefix suffix)" - (setq dashboard-navigator-buttons - `((;; Github - (,(all-the-icons-octicon "mark-github" :height 1.1 :v-adjust 0.0) - "Github" - "Browse github" - (lambda (&rest _) (browse-url "https://github.com/JaeYoo-Im/"))) - (,(all-the-icons-octicon "history" :height 1.1 :v-adjust 0.0) - "Reload last session" - "Reload last session" - (lambda (&rest _) (persp-state-load persp-state-default-file)))))) - :config - (dashboard-setup-startup-hook) - (dashboard-modify-heading-icons '((recents . "file-text") - (bookmarks . "book")))) -(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*"))) - -;; NanumGothicCoding -;;(add-to-list 'default-frame-alist `(font . "NanumGothicCoding")) -;;(set-face-attribute 'default nil :font "NanumGothicCoding" :height gvar/default-font-size) -;;(set-face-attribute 'fixed-pitch nil :font "NanumGothicCoding" :height gvar/default-font-size) -;;(set-face-attribute 'variable-pitch nil :font "NanumGothicCoding" :height gvar/default-variable-font-size :weight 'regular) -;;(set-fontset-font t 'hangul (font-spec :family "NanumGothicCoding" :height gvar/default-font-size)) - -;; D2Coding -;;(add-to-list 'default-frame-alist `(font . "D2Coding")) -;;(set-face-attribute 'default nil :font "D2Coding" :height gvar/default-font-size) -;;(set-face-attribute 'fixed-pitch nil :font "D2Coding" :height gvar/default-font-size) -;;(set-face-attribute 'variable-pitch nil :font "D2Coding" :height gvar/default-variable-font-size :weight 'regular) -;;(set-fontset-font t 'hangul (font-spec :family "D2Coding" :height gvar/default-font-size)) - -;; Fira Code Retina(English) / D2Coding(Hangul) - Fixed pitch only -(add-to-list 'default-frame-alist `(font . "Fira Code Retina")) -(set-face-attribute 'default nil :font "Fira Code Retina" :height gvar/default-font-size) -(set-face-attribute 'fixed-pitch nil :font "Fira Code Retina" :height gvar/default-font-size) -(set-face-attribute 'variable-pitch nil :font "Fira Code Retina" :height gvar/default-variable-font-size :weight 'regular) -(set-fontset-font t 'hangul (font-spec :family "D2Coding" :height gvar/default-font-size)) -(setq face-font-rescale-alist - '(("D2Coding" . 1.25))) - -;; Dejavu Sans Mono(English) / D2Coding(Hangul) - Fixed pitch only -;;(add-to-list 'default-frame-alist `(font . "Dejavu Sans Mono")) -;;(set-face-attribute 'default nil :font "Dejavu Sans Mono" :height gvar/default-font-size) -;;(set-face-attribute 'fixed-pitch nil :font "Dejavu Sans Mono" :height gvar/default-font-size) -;;(set-face-attribute 'variable-pitch nil :font "Dejavu Sans Mono" :height gvar/default-variable-font-size :weight 'regular) -;;(set-fontset-font t 'hangul (font-spec :family "D2Coding" :height gvar/default-font-size)) -;;(setq face-font-rescale-alist -;; '(("D2Coding" . 1.25))) -;;(setq-default line-spacing 2) -;;(global-prettify-symbols-mode +1) - -;; somtimes need to check white space. this configuration will be helpful -;;(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. -;; '(whitespace-line ((nil (:bold t :background "yellow")))) -;; '(whitespace-tab ((nil (:bold t :background "linen")))) -;; '(whitespace-trailing ((nil (:bold t :background "red1"))))) -;;(global-whitespace-mode t) -;;(add-hook -;; 'after-change-major-mode-hook -;; '(lambda () -;; (setq whitespace-line-column nil -;; whitespace-style '(face trailing)))) -;;(add-hook 'before-save-hook 'delete-trailing-whitespace) - -(use-package emojify - :hook (after-init . global-emojify-mode)) - -(use-package which-key - :defer 0 - :diminish which-key-mode - :config - (which-key-mode) - (setq which-key-idle-delay 0.5)) - -(use-package general - :ensure t - :config - (general-evil-setup t) - (general-create-definer ju/leader-key-def - :keymaps '(normal insert visual emacs) - :prefix "SPC" - :global-prefix "C-SPC")) - -(ju/leader-key-def - "." 'find-file - ;; Buffer - "b" '(:ignore t :which-key "buffer handling") - "b b" '(ibuffer :which-key "IBuffer") - "b k" '(kill-current-buffer :which-key "Kill current buffer") - "b n" '(next-buffer :which-key "Next buffer") - "b p" '(previous-buffer :which-key "Previous buffer") - "b B" '(ibuffer-list-buffers :which-key "IBuffer List Buffers") - "b K" '(kill-buffer :which-key "IBuffer Kill Buffers") - ;; Eshell - "e" '(:ignore t :which-key "eshell") - "e h" '(counsel-esh-history :which "Kill history") - "e s" '(eshell :which "run eshell") - ;; Workspace - ;; Counsel - "f" '(:ignore t :which-key "file op.") - "f r" '(consult-recent-file :which-key "Recent files") - "f R" '(revert-buffer :which-key "Revert Buffer") - "t t" '(toggle-truncate-lines :which-key "Toggle truncate lines") - ;; Shortcut - "f d d" '(lambda () (interactive) (find-file (expand-file-name "~/.emacs.d/desktop.org")) :which-key "open exwm config") - "f d e" '(lambda () (interactive) (find-file (expand-file-name "~/.emacs.d/emacs.org")) :which-key "open emacs config")) - -;; Key binding -;; Make ESC quit prompts -(global-set-key (kbd "") 'keyboard-escape-quit) -;; this annoying binding. -(global-unset-key (kbd "C-j")) -(global-unset-key (kbd "C-k")) -(global-unset-key (kbd "S-SPC")) ;; use only S-\ - -(use-package diminish) -(use-package super-save - :defer 1 - :diminish super-save-mode - :config - (super-save-mode +1) - (setq super-save-auto-save-when-idle t)) -(setq global-auto-revert-non-file-buffers t) -(global-auto-revert-mode 1) - -;; tramp default is scp -(setq tramp-default-method "ssh") - -(use-package company - :init - (add-hook 'after-init-hook 'global-company-mode) - :bind - (:map company-active-map - ("" . company-complete-selection)) - (:map lsp-mode-map - ("" . company-indent-or-complete-common)) - :config - (setq company-idle-delay 0 - company-show-numbers "on" - company-dabbrev-downcase nil - ) - (add-to-list 'company-backends 'org-keyword-backend) - ) -;;(use-package company -;;:after lsp-mode -;;:hook (lsp-mode . company-mode) -;;:bind (:map company-active-map -;;("" . company-complete-selection)) -;;(:map lsp-mode-map -;;("" . company-indent-or-complete-common)) -;;:custom -;;(company-minimum-prefix-length 1) -;;(setq company-show-numbers "on") -;;(company-idle-delay 0.0)) - -;;(use-package company-box -;;:hook (company-mode . company-box-mode)) - -(defun org-keyword-backend (command &optional arg &rest ignored) - (interactive (list 'interactive)) - (cl-case command - (interactive (company-begin-backend 'org-keyword-backend)) - (prefix (and (eq major-mode 'org-mode) - (cons (company-grab-line "^#\\+\\(\\w*\\)" 1) - t))) - (candidates (mapcar #'upcase - (cl-remove-if-not - (lambda (c) (string-prefix-p arg c)) - (pcomplete-completions)))) - (ignore-case t) - (duplicates t))) - -(use-package prescient - :hook (dashboard-after-initialize . prescient-persist-mode)) -;;(use-package company-prescient -;; :after company -;; :config (company-prescient-mode)) - -(use-package flycheck - :ensure t - :defer t - :init (global-flycheck-mode t)) - -(use-package yasnippet-snippets) -(use-package yasnippet - :init - (defvar yas-snippet-dirs nil) - :hook (prog-mode . yas-minor-mode) - :config - (add-to-list 'yas-snippet-dirs "~/.emacs.d/snippets") - (yas-global-mode 1)) -(ju/leader-key-def - "i" '(:ignore t :which-key "insert something.") - "is" '(yas-insert-snippet :which-key "snippet") - "ie" '(emojify-insert-emoji :which-key "emoji")) - -(setq display-time-world-list - '(("Etc/UTC" "UTC") - ("Asia/Seoul" "Seoul") - ("Asia/Shanghai" "Shanghai"))) -(setq display-time-world-time-format "%a, %d %b %I:%M %p %Z") - -;; (use-package ivy -;; :diminish -;; :bind (("C-s" . swiper) -;; :map ivy-minibuffer-map -;; ("TAB" . ivy-alt-done) -;; ("C-l" . ivy-alt-done) -;; ("C-j" . ivy-next-line) -;; ("C-k" . ivy-previous-line) -;; :map ivy-switch-buffer-map -;; ("C-k" . ivy-previous-line) -;; ("C-l" . ivy-done) -;; ("C-d" . ivy-switch-buffer-kill) -;; :map ivy-reverse-i-search-map -;; ("C-k" . ivy-previous-line) -;; ("C-d" . ivy-reverse-i-search-kill)) -;; :config -;; (ivy-mode 1)) -;; -;; (use-package ivy-rich -;; :after ivy -;; :init -;; (ivy-rich-mode 1) -;; (ivy-rich-project-root-cache-mode 1)) -;; -;; (use-package ivy-posframe -;; ;;:disabled -;; :after ivy -;; :diminish -;; :init -;; (setq ivy-posframe-display-functions-alist -;; '((swiper . ivy-posframe-display-at-point) -;; (emojify-insert-emoji . ivy-display-function-fallback) -;; (t . ivy-posframe-display))) -;; :custom-face -;; (ivy-posframe-border ((t (:background "#ffffff")))) -;; :config -;; (setq ivy-posframe-height-minibuffer nil) -;; (setq ivy-posframe-parameters '((internal-border-width . 1))) -;; (ivy-posframe-mode 1)) -;; -;; (use-package ivy-prescient -;; :after counsel -;; :custom -;; (ivy-prescient-enable-filtering nil) -;; :config -;; ;; Uncomment the following line to have sorting remembered across sessions! -;; ;(prescient-persist-mode 1) -;; (ivy-prescient-mode 1)) -;; (use-package all-the-icons-ivy -;; :init (add-hook 'after-init-hook 'all-the-icons-ivy-setup)) - -;; (use-package counsel -;; :bind (("M-x" . counsel-M-x) -;; ;;("C-M-j" . counsel-switch-buffer) -;; :map minibuffer-local-map -;; ("C-r" . 'counsel-minibuffer-history)) -;; :custom -;; (counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only) -;; :config -;; ;; Don't use ^ as initial input. Set this here because `counsel' defines more -;; ;; of its own, on top of the defaults. -;; (setq ivy-initial-inputs-alist nil) -;; (counsel-mode 1)) - -(use-package vertico - :ensure t - :bind (:map vertico-map - ("C-j" . vertico-next) - ("C-k" . vertico-previous)) - :custom - (vertico-cycle t) - :init - (vertico-mode)) -(use-package savehist - :init - (savehist-mode)) - -(use-package marginalia - :after vertico - :ensure t - :custom - (marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil)) - :init - (marginalia-mode)) -(use-package vertico-posframe - :disabled - :after vertico - :ensure t - :init - (setq vertico-posframe-parameters - `((left-fringe . 8) - (right-fringe . 8) (alpha . 100))) - (vertico-posframe-mode 1)) - -(use-package orderless - :init - (setq completion-styles '(orderless) - completion-category-defaults nil - completion-category-overrides '((file (styles . (partial-completion)))))) - -(use-package embark - :bind (("C-S-a" . embark-act) - :map minibuffer-local-map - ("C-d" . embark-act)) - :config - - ;; Show Embark actions via which-key - (setq embark-action-indicator - (lambda (map) - (which-key--show-keymap "Embark" map nil nil 'no-paging) - #'which-key--hide-popup-ignore-command) - embark-become-indicator embark-action-indicator)) - -(use-package embark-consult - :after embark) - -(defun dw/get-project-root () - (when (fboundp 'projectile-project-root) - (projectile-project-root))) - -(use-package consult - :demand t - :bind (("C-s" . consult-line) - ("C-M-l" . consult-imenu) - ("C-M-j" . persp-switch-to-buffer*) - :map minibuffer-local-map - ("C-r" . consult-history)) - :custom - (consult-project-root-function #'dw/get-project-root) - (completion-in-region-function #'consult-completion-in-region)) -(use-package consult-dir - :straight t - :bind (("C-x C-d" . consult-dir) - :map vertico-map - ("C-x C-d" . consult-dir) - ("C-x C-j" . consult-dir-jump-file)) - :custom - (consult-dir-project-list-function nil)) - -(use-package avy - :commands (avy-goto-char avy-goto-word-0 avy-goto-line)) -(ju/leader-key-def - "v" '(:ignore t :which-key "Avy") - "vc" '(avy-goto-char :which-key "Avy Goto Char") - "vw" '(avy-goto-word-0 :which-key "Avy Goto Word") - "vl" '(avy-goto-line :which-key "Avy Goto Line")) - -(defun dw/switch-project-action () - "Switch to a workspace with the project name and start `magit-status'." - (persp-switch (projectile-project-name)) - (magit-status)) -(use-package projectile - :diminish projectile-mode - :config - (projectile-mode) - (setq projectile-enable-caching t) - (setq projectile-indexing-method 'hybrid) - :custom ((projectile-completion-system 'ivy)) - :bind-keymap - ("C-c p" . projectile-command-map) - :init - ;; NOTE: Set this to the folder where you keep your Git repos! - (when (file-directory-p "~/Projects") - (setq projectile-project-search-path '("~/Projects"))) - (setq projectile-switch-project-action #'dw/switch-project-action)) - -(use-package counsel-projectile - :disabled - :after projectile - :config (counsel-projectile-mode)) -(ju/leader-key-def - "p" '(:ignore t :which-key "Projectile") - "p." 'projectile-find-file - "ps" 'projectile-switch-project - "pg" 'consult-ripgrep - "pc" 'projectile-compile-project - "pd" 'projectile-dired) -;;(defun dw/switch-project-action () -;; "Switch to a workspace with the project name and start `magit-status'." -;; ;; TODO: Switch to EXWM workspace 1? -;; (persp-switch (projectile-project-name)) -;; (magit-status)) - -(use-package perspective - :demand t - :bind (("C-M-j" . consult-buffer) - ("C-M-k" . persp-switch) - ("C-M-n" . persp-next) - ("C-x k" . persp-kill-buffer*)) - :custom - (persp-initial-frame-name "Main") - :config - ;; Running `persp-mode' multiple times resets the perspective list... - (unless (equal persp-mode t) - (persp-mode))) - -(use-package helpful - :commands (helpful-callable helpful-variable helpful-command helpful-key) - :custom - (counsel-describe-function-function #'helpful-callable) - (counsel-describe-variable-function #'helpful-variable) - :bind - ([remap describe-function] . describe-function) - ([remap describe-command] . helpful-command) - ([remap describe-variable] . describe-variable) - ([remap describe-key] . helpful-key)) - -;;(use-package hydra -;; :defer t) - -;;(defhydra hydra-text-scale (:timeout 4) -;; "scale text" -;; ("j" text-scale-increase "in") -;; ("k" text-scale-decrease "out") -;; ("f" nil "finished" :exit t)) - -;;(gvar/leader-keys -;; "ts" '(hydra-text-scale/body :which-key "scale text")) - -(use-package hl-todo - :hook (prog-mode . hl-todo-mode) - :hook (yaml-mode . hl-todo-mode) - :config - (setq hl-todo-highlight-punctuation ":" - hl-todo-keyword-faces - `(;; For things that need to be done, just not today. - ("TODO" warning bold) - ;; For problems that will become bigger problems later if not - ;; fixed ASAP. - ("FIXME" error bold) - ;; For tidbits that are unconventional and not intended uses of the - ;; constituent parts, and may break in a future update. - ("HACK" font-lock-constant-face bold) - ;; For things that were done hastily and/or hasn't been thoroughly - ;; tested. It may not even be necessary! - ("REVIEW" font-lock-keyword-face bold) - ;; For especially important gotchas with a given implementation, - ;; directed at another user other than the author. - ("NOTE" success bold) - ;; For things that just gotta go and will soon be gone. - ("DEPRECATED" font-lock-doc-face bold) - ;; For a known bug that needs a workaround - ("BUG" error bold) - ;; For warning about a problematic or misguiding code - ("XXX" font-lock-constant-face bold)))) - -(defun efs/org-mode-setup () - (org-indent-mode) - ;;(variable-pitch-mode 1) - (visual-line-mode 1)) - -(use-package org - :pin org - :commands (org-capture org-agenda) - :hook (org-mode . efs/org-mode-setup) - :config - - (setq org-todo-keywords - '((sequence "TODO(t)" "HOLD(h)" "|" "KILL(k)" "DONE(d)"))) - (setq org-ellipsis " ▾") - (setq org-hide-emphasis-markers t) - (setq org-src-fontify-natively t) - (setq org-fontify-quote-and-verse-blocks t) - - (setq org-agenda-start-with-log-mode t) - (setq org-log-done 'time) - (setq org-log-into-drawer t) - (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.8))) -(use-package org-superstar :after org :hook (org-mode . org-superstar-mode)) -(use-package org-attach-screenshot) -(use-package org-download) - -(defun efs/org-mode-visual-fill () - (setq visual-fill-column-width 100 - visual-fill-column-center-text t) - (visual-fill-column-mode 1)) - -(use-package visual-fill-column - :hook (org-mode . efs/org-mode-visual-fill)) - -(with-eval-after-load 'org - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (python . t) - (latex . t))) - - (push '("conf-unix" . conf-unix) org-src-lang-modes)) - -(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 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")) - (org-reload)) - -;; ODT export to docx -(setq org-odt-preferred-output-format "docx") - -;; Do not ask when run code block -(setq org-confirm-babel-evaluate nil) - - -(ju/leader-key-def - "o" '(:ignore t :which-key "Org mode") - "oa" '(:ignore t :which-key "Org Agenda") - "oar" '(my/org-roam-refresh-agenda-list :which-key "Org agenda refresh list") - "oaa" '(org-agenda :which-key "open org agenda")) - -(use-package org-contrib) - -(use-package org-roam - :ensure t - :demand t ;; Ensure org-roam is loaded by default - :init - (setq org-roam-v2-ack t) - :custom - (org-roam-directory "~/Roam") - (org-roam-completion-everywhere t) - - :config - (org-roam-db-autosync-mode)) - ;;(org-roam-setup)) -(ju/leader-key-def - "r" '(:ignore t :which-key "Org Roam") - "ru" 'org-roam-ui-open - "rl" 'org-roam-buffer-toggle - "rf" 'org-roam-node-find - "ri" 'org-roam-node-insert - "rI" 'org-roam-node-insert-immediate - "rp" 'my/org-roam-find-project) - -(defun org-roam-node-insert-immediate (arg &rest args) - (interactive "P") - (let ((args (push arg args)) - (org-roam-capture-templates (list (append (car org-roam-capture-templates) - '(:immediate-finish t))))) - (apply #'org-roam-node-insert args))) - -(defun my/org-roam-filter-by-tag (tag-name) - (lambda (node) - (member tag-name (org-roam-node-tags node)))) - -(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"))) - -;; Build the agenda list the first time for the session -(my/org-roam-refresh-agenda-list) - -(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* History\n\n* Notes\n\n" - :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: Project") - :unnarrowed t)))) - -(add-to-list 'org-after-todo-state-change-hook - (lambda () - (when (equal org-state "DONE") - (my/org-roam-copy-todo-to-today)))) - -;;(use-package org-roam-server -;; :ensure t -;; :config -;; (setq org-roam-server-host "127.0.0.1" -;; org-roam-server-port 23799 -;; org-roam-server-authenticate nil -;; org-roam-server-export-inline-images t -;; org-roam-server-serve-files t -;; org-roam-server-served-file-extensions '("pdf" "mp4" "ogv") -;; org-roam-server-network-poll t -;; org-roam-server-network-arrows nil -;; org-roam-server-network-label-truncate t -;; org-roam-server-network-label-truncate-length 60 -;; org-roam-server-network-label-wrap-length 20)) - -(use-package websocket - :after org-roam) -(use-package org-roam-ui - :straight - (:host github :repo "org-roam/org-roam-ui" :branch "main" :files ("*.el" "out")) - :after org-roam - ;; 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)) - -(defun dw/org-present-prepare-slide () - (org-overview) - (org-show-entry) - (org-show-children)) - -(defun dw/org-present-hook () - (setq-local face-remapping-alist '((default (:height 1.5) variable-pitch) - (header-line (:height 4.5) variable-pitch) - (org-code (:height 1.55) org-code) - (org-verbatim (:height 1.55) org-verbatim) - (org-bloc (:height 1.25) org-block) - (org-block-begin-line (:height 0.7) org-block))) - (setq header-line-format " ") - (org-display-inline-images) - (dw/org-present-prepare-slide)) - -(defun dw/org-present-quit-hook () - (setq-local face-remapping-alist '((default variable-pitch default))) - (setq header-line-format nil) - (org-present-small) - (org-remove-inline-images)) - -(defun dw/org-present-prev () - (interactive) - (org-present-prev) - (dw/org-present-prepare-slide)) - -(defun dw/org-present-next () - (interactive) - (org-present-next) - (dw/org-present-prepare-slide)) - -(use-package org-present - :bind (:map org-present-mode-keymap - ("C-c C-j" . dw/org-present-next) - ("C-c C-k" . dw/org-present-prev)) - :hook ((org-present-mode . dw/org-present-hook) - (org-present-mode-quit . dw/org-present-quit-hook))) - -(use-package ob-translate - :config - (setq ob-translate:default-dest "ko")) - -(use-package pdf-tools - :straight t - :config - (pdf-tools-install) - (setq-default pdf-view-display-size 'fit-width) - (define-key pdf-view-mode-map (kbd "C-s") 'isearch-forward) - :custom - (pdf-annot-activate-created-annotations t "automatically annotate highlights")) -(use-package org-pdfview - :straight t) -(use-package org-noter) - -(setq org-publish-use-timestamps-flag nil) -(setq org-export-with-broken-lilnks t) -(setq org-publish-project-alist - '(("jaeus.net" - :base-directory "~/Roam/www/" - :base-extension "org" - :publishing-directory "~/Projects/html/" - :recursive t - :publishing-function org-html-publish-to-html - :headline-levels 4 - :auto-preamble t))) - -(use-package magit - :commands (magit-status magit-get-current-branch) - :custom - (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) - -;; NOTE: Make sure to configure a GitHub token before using this package! -;; - https://magit.vc/manual/forge/Token-Creation.html#Token-Creation -;; - https://magit.vc/manual/ghub/Getting-Started.html#Getting-Started -(use-package forge - :after magit) -(use-package magit-todos - :defer t) -(use-package git-link) -(ju/leader-key-def - "g" 'magit) -(use-package git-gutter - :straight git-gutter-fringe - ;;:diminish - :hook ((text-mode . git-gutter-mode) - (prog-mode . git-gutter-mode)) - :config - (setq git-gutter:update-interval 2) - (require 'git-gutter-fringe) - (set-face-foreground 'git-gutter-fr:added "LightGreen") - (fringe-helper-define 'git-gutter-fr:added nil - ".XXXXXX." - "XX....XX" - "X......X" - "X......X" - "XXXXXXXX" - "XXXXXXXX" - "X......X" - "X......X") - - (set-face-foreground 'git-gutter-fr:modified "LightGoldenrod") - (fringe-helper-define 'git-gutter-fr:modified nil - "XXXXXXXX" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X") - - (set-face-foreground 'git-gutter-fr:deleted "LightCoral") - (fringe-helper-define 'git-gutter-fr:deleted nil - "XXXXXX.." - "XX....X." - "XX.....X" - "XX.....X" - "XX.....X" - "XX.....X" - "XX....X." - "XXXXXX..") - - ;; These characters are used in terminal mode - (setq git-gutter:modified-sign "≡") - (setq git-gutter:added-sign "≡") - (setq git-gutter:deleted-sign "≡") - (set-face-foreground 'git-gutter:added "LightGreen") - (set-face-foreground 'git-gutter:modified "LightGoldenrod") - (set-face-foreground 'git-gutter:deleted "LightCoral")) - -(with-eval-after-load 'ox-latex - (add-to-list 'org-latex-classes - '("org-plain-latex" - "\\documentclass[a4paper,11pt,titlepage]{memoir} - \\usepackage{kotex} - [NO-DEFAULT-PACKAGES] - [PACKAGES] - [EXTRA] -\\linespread{1.1} -\\hypersetup{pdfborder=0 0 0}" - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) - - (add-to-list 'org-latex-classes - '("ethz" - "\\documentclass[a4paper,11pt,titlepage]{memoir} - \\usepackage{kotex} -\\usepackage[utf8]{inputenc} -\\usepackage[T1]{fontenc} -\\usepackage{fixltx2e} -\\usepackage{graphicx} -\\usepackage{longtable} -\\usepackage{float} -\\usepackage{wrapfig} -\\usepackage{rotating} -\\usepackage[normalem]{ulem} -\\usepackage{amsmath} -\\usepackage{textcomp} -\\usepackage{marvosym} -\\usepackage{wasysym} -\\usepackage{amssymb} -\\usepackage{hyperref} -\\usepackage{mathpazo} -\\usepackage{color} -\\usepackage{enumerate} -\\definecolor{bg}{rgb}{0.95,0.95,0.95} -\\tolerance=1000 - [NO-DEFAULT-PACKAGES] - [PACKAGES] - [EXTRA] -\\linespread{1.1} -\\hypersetup{pdfborder=0 0 0}" - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) - - - (add-to-list 'org-latex-classes - '("article" - "\\documentclass[11pt,a4paper]{article} -\\usepackage{kotex} -\\usepackage[utf8]{inputenc} -\\usepackage[T1]{fontenc} -\\usepackage{fixltx2e} -\\usepackage{graphicx} -\\usepackage{longtable} -\\usepackage{float} -\\usepackage{wrapfig} -\\usepackage{rotating} -\\usepackage[normalem]{ulem} -\\usepackage{amsmath} -\\usepackage{textcomp} -\\usepackage{marvosym} -\\usepackage{wasysym} -\\usepackage{amssymb} -\\usepackage{hyperref} -\\usepackage{mathpazo} -\\usepackage{color} -\\usepackage{enumerate} -\\definecolor{bg}{rgb}{0.95,0.95,0.95} -\\tolerance=1000 - [NO-DEFAULT-PACKAGES] - [PACKAGES] - [EXTRA] -\\linespread{1.1} -\\hypersetup{pdfborder=0 0 0}" - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}"))) - - - (add-to-list 'org-latex-classes '("ebook" - "\\documentclass[11pt, oneside]{memoir} -\\setstocksize{9in}{6in} -\\settrimmedsize{\\stockheight}{\\stockwidth}{*} -\\setlrmarginsandblock{2cm}{2cm}{*} % Left and right margin -\\setulmarginsandblock{2cm}{2cm}{*} % Upper and lower margin -\\checkandfixthelayout -% Much more laTeX code omitted -" - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}")))) - -(add-to-list 'org-latex-packages-alist '("" "minted")) -(setq org-latex-listings 'minted) ;; Use minted to highlight source code -(setq org-latex-minted-options - '(("breaklines" "true") - ("tabsize" "4") - ("autogobble") - ("bgcolor" "monokaibg"))) -(setq org-latex-pdf-process - '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" - "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" - "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f")) - -(setq package-check-signature nil) -(use-package org-gcal - :ensure t - :config - (setq org-gcal-client-id "928945571655-4h4kclj8etm6qfm27jk4jhgil6jsotbc.apps.googleusercontent.com" - org-gcal-client-secret "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" - org-gcal-file-alist '(("cpu3792@gmail.com" . "~/Roam/gcal.org")))) -;;(add-hook 'org-agenda-mode-hook (lambda () (org-gcal-sync) )) -(add-hook 'org-capture-after-finalize-hook (lambda () (org-gcal-sync) )) - - -(add-to-list 'org-agenda-files "~/Roam/Agenda/gcal.org") -;;(add-to-list 'org-agenda-files "~/Roam/Agenda/links.org") -;;(add-to-list 'org-agenda-files "~/Roam/Agenda/i.org") - - -(setq org-capture-templates - '(("a" "Appointment" entry (file "~/Roam/Agenda/gcal.org" ) - "* %?\n\n%^T\n\n:PROPERTIES:\n\n:END:\n\n") - ("l" "Link" entry (file+headline "~/Roam/Agenda/links.org" "Links") - "* %? %^L %^g \n%T" :prepend t) - ("b" "Blog idea" entry (file+headline "~/Roam/Agenda/i.org" "Blog Topics:") - "* %?\n%T" :prepend t) - ("t" "To Do Item" entry (file+headline "~/Roam/Agenda/i.org" "To Do") - "* TODO %?\n%u" :prepend t) - ("n" "Note" entry (file+headline "~/Roam/Agenda/i.org" "Note space") - "* %?\n%u" :prepend t) - ("j" "Journal" entry (file+datetree "~/Roam/Agenda/journal.org") - "* %?\nEntered on %U\n %i\n %a") - ("s" "Screencast" entry (file "~/Roam/Agenda/screencastnotes.org") - "* %?\n%i\n"))) - -;; Don't let ediff break EXWM, keep it in one frame -(setq ediff-diff-options "-w" - ediff-split-window-function 'split-window-horizontally - ediff-window-setup-function 'ediff-setup-windows-plain) - -(use-package rainbow-delimiters - :hook (prog-mode . rainbow-delimiters-mode)) - -(use-package vterm - :commands vterm - :config - (setq term-prompt-regexp "^[^#$%>\n]*[#$%>] *") ;; Set this to match your custom shell prompt - ;;(setq vterm-shell "zsh") ;; Set this to customize the shell to launch - (setq vterm-max-scrollback 10000)) - -(use-package exec-path-from-shell) -(exec-path-from-shell-initialize) - -(when (eq system-type 'windows-nt) - (setq explicit-shell-file-name "powershell.exe") - (setq explicit-powershell.exe-args '())) -(defun dw/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 dw/eshell-prompt () - (let ((current-branch (magit-get-current-branch))) - (concat - "\n" - (propertize (system-name) 'face `(:foreground "#62aeed")) - (propertize " ॐ " 'face `(:foreground "white")) - (propertize (dw/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 efs/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 "") 'eshell-bol) - (evil-normalize-keymaps) - - (setq eshell-prompt-function 'dw/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)) - -(use-package eshell-git-prompt - :after eshell) - -(use-package eshell - :hook (eshell-first-time-mode . efs/configure-eshell) - :config - - (with-eval-after-load 'esh-opt - (setq eshell-destroy-buffer-when-process-dies t) - (setq eshell-visual-commands '("htop" "zsh" "vim")))) - -(use-package dired - :ensure nil - :straight nil - :commands (dired dired-jump) - :bind (("C-x C-j" . dired-jump)) - :custom ((dired-listing-switches "-agho --group-directories-first")) - :config - (evil-collection-define-key 'normal 'dired-mode-map - "h" 'dired-single-up-directory - "l" 'dired-single-buffer)) -(autoload 'dired-omit-mode "dired-x") -(add-hook 'dired-load-hook - (lambda () - (interactive) - (dired-collapse))) -;; to use h,l key -(use-package dired-single - :commands (dired dired-jump)) -(use-package diredfl - :hook (dired-mode . diredfl-mode)) - -;; from doom emacs -(defun +dired-enable-git-info-h () - "Enable `dired-git-info-mode' in git repos." - (and (not (file-remote-p default-directory)) - (locate-dominating-file "." ".git") - (dired-git-info-mode 1))) -(use-package dired-git-info) -(use-package diff-hl - :hook (dired-mode . diff-hl-dired-mode-unless-remote) - :hook (magit-post-refresh . diff-hl-magit-post-refresh) - :config - ;; use margin instead of fringe - (diff-hl-margin-mode)) -(use-package dired-rsync - :config - (bind-key "C-c C-r" 'dired-rsync dired-mode-map)) -(use-package all-the-icons-dired - :hook (dired-mode . all-the-icons-dired-mode) - :config - ;; HACK Fixes #1929: icons break file renaming in Emacs 27+, because the icon - ;; is considered part of the filename, so we disable icons while we're in - ;; wdired-mode. - ;;(when EMACS27+ - (defvar +wdired-icons-enabled -1)) - -;;(defadvice! +dired-disable-icons-in-wdired-mode-a (&rest _) -;; :before #'wdired-change-to-wdired-mode -;; (setq-local +wdired-icons-enabled (if all-the-icons-dired-mode 1 -1)) -;; (when all-the-icons-dired-mode -;; (all-the-icons-dired-mode -1))) - -;;(defadvice! +dired-restore-icons-after-wdired-mode-a (&rest _) -;; :after #'wdired-change-to-dired-mode -;; (all-the-icons-dired-mode +wdired-icons-enabled)))) -;;(use-package fd-dired) - -(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)) -;;(use-package ranger -;; :config -;; (setq ranger-preview-file t) -;; (setq ranger-show-preview t) -;; (setq ranger-show-literal nil) -;; (ranger-override-dired-mode t)) - -(use-package openwith - :after dired - :config - (setq larget-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")) - ;; "evince" - ;; '(file))))) - -(use-package vlf - :config (progn - (require 'vlf-setup))) - -(use-package nov) -(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)) - -(use-package lsp-mode - :init - ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") - (setq lsp-keymap-prefix "C-c l") - :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) - (c++-mode . lsp) - (verilog-mode . lsp) - ;; if you want which-key integration - (lsp-mode . lsp-enable-which-key-integration)) - :commands lsp) - -;; optionally -(use-package lsp-ui :commands lsp-ui-mode) -;; if you are ivy user -(use-package lsp-ivy :commands lsp-ivy-workspace-symbol) -(use-package lsp-treemacs :commands lsp-treemacs-errors-list) -;; optionally if you want to use debugger -(use-package dap-mode) -;; (use-package dap-LANGUAGE) to load the dap adapter for your language - -(use-package elfeed - :config - (setq elfeed-search-feed-face ":foreground #fff :weight bold" - elfeed-feeds (quote - (("https://www.reddit.com/r/linux.rss" reddit linux) - ("https://www.reddit.com/r/emacs.rss" reddit emacs) - ("https://www.gamingonlinux.com/article_rss.php" gaming linux) - ("https://hackaday.com/blog/feed/" hackaday linux) - ("https://opensource.com/feed" opensource linux) - ("https://linux.softpedia.com/backend.xml" softpedia linux) - ("https://itsfoss.com/feed/" itsfoss linux) - ("https://www.zdnet.com/topic/linux/rss.xml" zdnet linux) - ("https://www.phoronix.com/rss.php" phoronix linux) - ("http://feeds.feedburner.com/d0od" omgubuntu linux) - ("https://www.computerworld.com/index.rss" computerworld linux) - ("https://www.networkworld.com/category/linux/index.rss" networkworld linux) - ("https://www.techrepublic.com/rssfeeds/topic/open-source/" techrepublic linux) - ("https://betanews.com/feed" betanews linux) - ("http://lxer.com/module/newswire/headlines.rss" lxer linux) - ("https://coolenjoy.net/rss?bo_table=38" coolenjoy IT) - ("https://gigglehd.com/gg/ggnews/rss" giggle IT))))) - -(use-package elfeed-goodies - :init - (elfeed-goodies/setup) - :config - (setq elfeed-goodies/entry-pane-size 0.5)) - -(add-hook 'elfeed-show-mode-hook 'visual-line-mode) -(evil-define-key 'normal elfeed-show-mode-map - (kbd "J") 'elfeed-goodies/split-show-next - (kbd "K") 'elfeed-goodies/split-show-prev) -(evil-define-key 'normal elfeed-search-mode-map - (kbd "J") 'elfeed-goodies/split-show-next - (kbd "K") 'elfeed-goodies/split-show-prev) - -(use-package haskell-mode) - -(use-package rust-mode) - -(use-package markdown-mode - :disabled - :commands (markdown-mode gfm-mode) - :mode (("README\\.md\\'" . gfm-mode) - ("\\.md\\'" . markdown-mode) - ("\\.markdown\\'" . markdown-mode)) - :init (setq markdown-command "multimarkdown")) - -(use-package cmake-mode) - -(use-package yaml-mode) - -(use-package ytel - :straight t - :config - (setq ytel-invidious-api-url "https://invidious.snopyta.org") - ) -(defun ytel-watch () - "Stream video at point in mpv." - (interactive) - (let* ((video (ytel-get-current-video)) - (id (ytel-video-id video))) - (start-process "ytel mpv" nil - "mpv" - (concat "https://www.youtube.com/watch?v=" id)) - "--ytdl-format=bestvideo[height<=?720]+bestaudio/best") - (message "Starting streaming...")) - -(use-package jupyter - :straight t) -(org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) ;; Other languages - (shell . t) - ;; Python & Jupyter - (python . t) - (jupyter . t))) -(org-babel-jupyter-override-src-block "python") diff --git a/.emacs.vanilla/emacs.org b/.emacs.vanilla/emacs.org deleted file mode 100644 index ca1270b..0000000 --- a/.emacs.vanilla/emacs.org +++ /dev/null @@ -1,1694 +0,0 @@ -#+TITLE: Emacs Configuration -#+AUTHOR: JaeYoo-Im, (cpu3792@gmail.com) - - -* Global Settings -| 12345678 | | -|----------+---| -| 일이삼사 | | -#+begin_src emacs-lisp - ;; -*- lexical-binding: t; -*- - ;;User - (setq user-full-name "JaeYoo,Im" - user-mail-address "cpu3792@gmail.com") - ;; os - (setq custom-file (make-temp-file "emacs-custom")) - (setq windows? (eq system-type 'windows-nt)) - (setq mac? (eq system-type 'darwin)) - (setq large-file-warning-threshold nil) - - (setq system-time-locale "C") - (setenv "LANG" "en_US.UTF-8") - (setenv "LC_ALL" "en_US.UTF-8") - ;; theme var - (defvar gvar/default-font-size 110) - (defvar gvar/default-variable-font-size 110) - (defvar gvar/frame-transparency '(75 . 75)) - ;;dir - ;;(setq user-emacs-directory "~/.cache/emacs") - ;; encoding - (set-language-environment "Korean") - (set-default-coding-systems 'utf-8) - (prefer-coding-system 'utf-8) - ;; font - (defun available-font? (font) (member font (font-family-list))) -#+end_src -* Toggle Transparency -#+begin_src emacs-lisp - (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 ( ) form. - ((numberp (cadr alpha)) (cadr alpha))) - 100) - gvar/frame-transparency '(100 . 100))))) - (global-set-key (kbd "C-c t") 'toggle-transparency) -#+end_src -* Package Related -** Package Repo -#+begin_src emacs-lisp - (require 'package) - (setq package-archives '(("melpa" . "https://melpa.org/packages/") - ("org" . "https://orgmode.org/elpa/") - ("elpa" . "https://elpa.gnu.org/packages/") - ("nongnu" . "https://elpa.nongnu.org/nongnu/"))) - ;;(unless package-archive-contents - ;; (package-refresh-contents)) - (package-initialize) -#+end_src -** use-package -#+begin_src emacs-lisp - ;; Initialize use-package on non-Linux platforms - (unless (package-installed-p 'use-package) - (package-install 'use-package)) - - (when (not (package-installed-p 'use-package)) - (package-refresh-contents) - (package-install 'use-package)) - (require 'use-package) - (setq use-package-always-ensure t) - - ;;(use-package auto-package-update - ;; :custom - ;; (auto-package-update-interval 7) - ;; (auto-package-update-prompt-before-update t) - ;; (auto-package-update-hide-results t) - ;; :config - ;; (auto-package-update-maybe) - ;; (auto-package-update-at-time "09:00")) -#+end_src - - -** Straight -https://github.com/raxod502/straight.el -#+begin_src emacs-lisp - (defvar bootstrap-version) - (let ((bootstrap-file - (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) - (bootstrap-version 5)) - (unless (file-exists-p bootstrap-file) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp))) - (load bootstrap-file nil 'nomessage)) - - (setq straight-use-package-by-default t) - ;; Use package install from git - (straight-use-package 'use-package) -#+end_src - -** Paradox -#+begin_src emacs-lisp -(use-package paradox - :init - (setq paradox-github-token t) - (setq paradox-execute-asynchronously t) - (setq paradox-automatically-star t)) -#+end_src -* Indentation -#+begin_src emacs-lisp - ;; tab - (setq-default indent-tabs-mode t) - (setq-default tab-width 4) - (setq-default evil-shift-width tab-width) - ;; verilog - (custom-set-variables - '(verilog-indent-level 4) - '(verilog-indent-level-module 0) - '(verilog-indent-level-declaration 0) - '(verilog-indent-level-behavioral 0) - '(verilog-indent-level-directive 0) - '(verilog-cexp-indent 0) - '(verilog-case-indent 4) - - '(verilog-auto-newline nil)) -#+end_src - -* No-Littering -#+begin_src emacs-lisp - (use-package no-littering) ; make ~/.emacs.d clean - ;; no-littering doesn't set this by default so we must place - ;; auto save files in the same path as it uses for sessions - (setq auto-save-file-name-transforms - `((".*" ,(no-littering-expand-var-file-name "auto-save/") t))) - - (setq inhibit-startup-message t) -#+end_src - -* Performance Optimization -** Garbage Collection -+ Doom Emacs -#+begin_src emacs-lisp - ;; (setq gc-cons-threshold most-positive-fixnum) - ;; (defconst 1mb 1048576) - ;; (defconst 20mb 20971520) - ;; (defconst 30mb 31457280) - ;; (defconst 50mb 52428800) - ;; - ;; (defun fk/defer-garbage-collection () - ;; (setq gc-cons-threshold most-positive-fixnum)) - ;; - ;; (defun fk/restore-garbage-collection () - ;; (run-at-time 1 nil (lambda () (setq gc-cons-threshold 30mb)))) - ;; - ;; (add-hook 'emacs-startup-hook 'fk/restore-garbage-collection 100) - ;; (add-hook 'minibuffer-setup-hook 'fk/defer-garbage-collection) - ;; (add-hook 'minibuffer-exit-hook 'fk/restore-garbage-collection) - ;; - ;; (setq read-process-output-max 1mb) ;; lsp-mode's performance suggest -#+end_src -+ Derek's - #+begin_src emacs-lisp - ;; Using garbage magic hack. - (use-package gcmh - :config - (gcmh-mode 1)) - ;; Setting garbage collection threshold - (setq gc-cons-threshold 402653184 - gc-cons-percentage 0.6) - - ;; Profile emacs startup - (add-hook 'emacs-startup-hook - (lambda () - (message "*** Emacs loaded in %s with %d garbage collections." - (format "%.2f seconds" - (float-time - (time-subtract after-init-time before-init-time))) - gcs-done))) - - ;; Silence compiler warnings as they can be pretty disruptive (setq comp-async-report-warnings-errors nil) - - - #+end_src - - -* EVIL Mode -#+begin_src emacs-lisp - (defun ju/evil-hook() - (dolist (mode '(custom-mode - erc-mode)) - (add-to-list 'evil-emacs-state-modes mode))) - (use-package undo-tree - :init - (global-undo-tree-mode 1)) - (use-package evil - :ensure t - :init - (setq evil-want-integration t) - (setq evil-want-keybinding nil) - (setq evil-want-C-u-scroll t) - (setq evil-want-C-i-jump nil) - (setq evil-undo-system 'undo-tree) - :config - (add-hook 'evil-mode-hook 'ju/evil-hook) - (evil-mode 1) - (define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-char-and-join) - ;;(setq-default evil-symbol-word-search t) ;; evil can identify the word with underscore. - ;; Http://blog.binchen.org/posts/auto-complete-word-in-emacs-mini-buffer-when-using-evil.html - ;;(defun minibuffer-inactive-mode-hook-setup () - ;;;; make `try-expand-dabbrev' from `hippie-expand' work in mini-buffer - ;;;; @see `he-dabbrev-beg', so we need re-define syntax for '/' - ;;(set-syntax-table (let* ((table (make-syntax-table))) - ;;(modify-syntax-entry ?/ "." table) - ;;table))) - ;;(add-hook 'minibuffer-inactive-mode-hook 'minibuffer-inactive-mode-hook-setup) - - ;; Use visual line motions even outside of visual-line-mode buffers - (evil-global-set-key 'motion "j" 'evil-next-visual-line) - (evil-global-set-key 'motion "k" 'evil-previous-visual-line) - (evil-set-initial-state 'messages-buffer-mode 'normal) - (evil-set-initial-state 'dashboard-mode 'normal)) - (use-package evil-numbers - :after evil - :config - ;; unfortunately C-x is emacs common key binding. - (define-key evil-normal-state-map (kbd "g =") 'evil-numbers/inc-at-pt) - (define-key evil-normal-state-map (kbd "g -") 'evil-numbers/dec-at-pt) - (define-key evil-visual-state-map (kbd "g =") 'evil-numbers/inc-at-pt) - (define-key evil-visual-state-map (kbd "g -") 'evil-numbers/dec-at-pt)) - (use-package evil-nerd-commenter - :after evil - :config - (define-key evil-normal-state-map (kbd "g c") 'evilnc-comment-or-uncomment-lines) - (define-key evil-visual-state-map (kbd "g c") 'evilnc-comment-or-uncomment-lines)) - - (use-package evil-collection - :after evil - :ensure t - :config - (evil-collection-init)) - - (modify-syntax-entry ?_ "w") - ;;(defalias 'forward-evil-word 'forward-evil-symbol) ;; include underscore to word -#+end_src - -** TODO Check Tips -https://github.com/noctuid/evil-guide -https://nathantypanski.com/blog/2014-08-03-a-vim-like-emacs-config.html - -* GUI -** Initial Configuration -#+begin_src emacs-lisp - (scroll-bar-mode -1) ; Disable visible scrollbar - (tool-bar-mode -1) ; Disable the toolbar - (tooltip-mode -1) ; Disable tooltips - (set-fringe-mode 10) ; Give some breathing room - (xterm-mouse-mode) - - (menu-bar-mode -1) ; Disable the menu bar - ;;(setq visible-bell t) -#+end_src - -** Line number -#+begin_src emacs-lisp - (column-number-mode) - (global-display-line-numbers-mode t) - ;; Disable line numbers for some modes - (dolist (mode '(org-mode-hook - vterm-mode-hook - shell-mode-hook - treemacs-mode-hook - dired-mode-hook - eshell-mode-hook)) - (add-hook mode (lambda () (display-line-numbers-mode 0)))) -#+end_src -* Theme -#+begin_src emacs-lisp - (use-package doom-themes - :init - (setq doom_themes-enable-bold t - doom-themes-enablbe-italic t) - :config - ;;(load-theme 'doom-palenight t) - ;;(load-theme 'doom-gruvbox t) - ;;(load-theme 'doom-one t) - (load-theme 'doom-dracula t) - ;; Enable flashing mode-line on errors - (doom-themes-visual-bell-config) - ;; Corrects (and improves) org-mode's native fontification. - (doom-themes-org-config)) - - ;; hilight line at the cursor. - (global-hl-line-mode t) - ;;(use-package beacon - ;; :straight t - ;; :config - ;; (beacon-mode)) - - (use-package doom-modeline - :init (doom-modeline-mode 1) - :custom ((doom-modeline-height 15))) - - ;; Set frame transparency - (set-frame-parameter (selected-frame) 'alpha gvar/frame-transparency) - (add-to-list 'default-frame-alist `(alpha . ,gvar/frame-transparency)) - (set-frame-parameter (selected-frame) 'fullscreen 'maximized) - (add-to-list 'default-frame-alist '(fullscreen . maximized)) -#+end_src -* Dashboard -#+begin_src emacs-lisp - (use-package dashboard - :ensure t - :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!") - ;;(dashboard-startup-banner 'logo) - (setq dashboard-startup-banner "/home/jaeus/.emacs.vanilla/logos/black-hole.png") - (setq dashboard-center-content t) - (setq dashboard-week-agenda t) - (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) - ;; Format: "(icon title help action face prefix suffix)" - (setq dashboard-navigator-buttons - `((;; Github - (,(all-the-icons-octicon "mark-github" :height 1.1 :v-adjust 0.0) - "Github" - "Browse github" - (lambda (&rest _) (browse-url "https://github.com/JaeYoo-Im/"))) - (,(all-the-icons-octicon "history" :height 1.1 :v-adjust 0.0) - "Reload last session" - "Reload last session" - (lambda (&rest _) (persp-state-load persp-state-default-file)))))) - :config - (dashboard-setup-startup-hook) - (dashboard-modify-heading-icons '((recents . "file-text") - (bookmarks . "book")))) - (setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*"))) -#+end_src -* Fonts -| 12345678 | | -|----------+---| -| 일이삼사 | | -#+begin_src emacs-lisp - ;; NanumGothicCoding - ;;(add-to-list 'default-frame-alist `(font . "NanumGothicCoding")) - ;;(set-face-attribute 'default nil :font "NanumGothicCoding" :height gvar/default-font-size) - ;;(set-face-attribute 'fixed-pitch nil :font "NanumGothicCoding" :height gvar/default-font-size) - ;;(set-face-attribute 'variable-pitch nil :font "NanumGothicCoding" :height gvar/default-variable-font-size :weight 'regular) - ;;(set-fontset-font t 'hangul (font-spec :family "NanumGothicCoding" :height gvar/default-font-size)) - - ;; D2Coding - ;;(add-to-list 'default-frame-alist `(font . "D2Coding")) - ;;(set-face-attribute 'default nil :font "D2Coding" :height gvar/default-font-size) - ;;(set-face-attribute 'fixed-pitch nil :font "D2Coding" :height gvar/default-font-size) - ;;(set-face-attribute 'variable-pitch nil :font "D2Coding" :height gvar/default-variable-font-size :weight 'regular) - ;;(set-fontset-font t 'hangul (font-spec :family "D2Coding" :height gvar/default-font-size)) - - ;; Fira Code Retina(English) / D2Coding(Hangul) - Fixed pitch only - (add-to-list 'default-frame-alist `(font . "Fira Code Retina")) - (set-face-attribute 'default nil :font "Fira Code Retina" :height gvar/default-font-size) - (set-face-attribute 'fixed-pitch nil :font "Fira Code Retina" :height gvar/default-font-size) - (set-face-attribute 'variable-pitch nil :font "Fira Code Retina" :height gvar/default-variable-font-size :weight 'regular) - (set-fontset-font t 'hangul (font-spec :family "D2Coding" :height gvar/default-font-size)) - (setq face-font-rescale-alist - '(("D2Coding" . 1.25))) - - ;; Dejavu Sans Mono(English) / D2Coding(Hangul) - Fixed pitch only - ;;(add-to-list 'default-frame-alist `(font . "Dejavu Sans Mono")) - ;;(set-face-attribute 'default nil :font "Dejavu Sans Mono" :height gvar/default-font-size) - ;;(set-face-attribute 'fixed-pitch nil :font "Dejavu Sans Mono" :height gvar/default-font-size) - ;;(set-face-attribute 'variable-pitch nil :font "Dejavu Sans Mono" :height gvar/default-variable-font-size :weight 'regular) - ;;(set-fontset-font t 'hangul (font-spec :family "D2Coding" :height gvar/default-font-size)) - ;;(setq face-font-rescale-alist - ;; '(("D2Coding" . 1.25))) - ;;(setq-default line-spacing 2) - ;;(global-prettify-symbols-mode +1) -#+end_src -* Whitespace -This makes nov to ugly -#+begin_src emacs-lisp - ;; somtimes need to check white space. this configuration will be helpful - ;;(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. - ;; '(whitespace-line ((nil (:bold t :background "yellow")))) - ;; '(whitespace-tab ((nil (:bold t :background "linen")))) - ;; '(whitespace-trailing ((nil (:bold t :background "red1"))))) - ;;(global-whitespace-mode t) - ;;(add-hook - ;; 'after-change-major-mode-hook - ;; '(lambda () - ;; (setq whitespace-line-column nil - ;; whitespace-style '(face trailing)))) - ;;(add-hook 'before-save-hook 'delete-trailing-whitespace) -#+end_src - -* Emojify -#+begin_src emacs-lisp - (use-package emojify - :hook (after-init . global-emojify-mode)) -#+end_src -* Which Key -#+begin_src emacs-lisp - (use-package which-key - :defer 0 - :diminish which-key-mode - :config - (which-key-mode) - (setq which-key-idle-delay 0.5)) -#+end_src - -* General Key Binding -#+begin_src emacs-lisp - (use-package general - :ensure t - :config - (general-evil-setup t) - (general-create-definer ju/leader-key-def - :keymaps '(normal insert visual emacs) - :prefix "SPC" - :global-prefix "C-SPC")) - - (ju/leader-key-def - "." 'find-file - ;; Buffer - "b" '(:ignore t :which-key "buffer handling") - "b b" '(ibuffer :which-key "IBuffer") - "b k" '(kill-current-buffer :which-key "Kill current buffer") - "b n" '(next-buffer :which-key "Next buffer") - "b p" '(previous-buffer :which-key "Previous buffer") - "b B" '(ibuffer-list-buffers :which-key "IBuffer List Buffers") - "b K" '(kill-buffer :which-key "IBuffer Kill Buffers") - ;; Eshell - "e" '(:ignore t :which-key "eshell") - "e h" '(counsel-esh-history :which "Kill history") - "e s" '(eshell :which "run eshell") - ;; Workspace - ;; Counsel - "f" '(:ignore t :which-key "file op.") - "f r" '(consult-recent-file :which-key "Recent files") - "f R" '(revert-buffer :which-key "Revert Buffer") - "t t" '(toggle-truncate-lines :which-key "Toggle truncate lines") - ;; Shortcut - "f d d" '(lambda () (interactive) (find-file (expand-file-name "~/.emacs.vanilla/desktop.org")) :which-key "open exwm config") - "f d e" '(lambda () (interactive) (find-file (expand-file-name "~/.emacs.vanilla/emacs.org")) :which-key "open emacs config")) -#+end_src - -#+begin_src emacs-lisp - ;; Key binding - ;; Make ESC quit prompts - (global-set-key (kbd "") 'keyboard-escape-quit) - ;; this annoying binding. - (global-unset-key (kbd "C-j")) - (global-unset-key (kbd "C-k")) - (global-unset-key (kbd "S-SPC")) ;; use only S-\ -#+end_src -* Auto Save & reverting -#+begin_src emacs-lisp - (use-package diminish) - (use-package super-save - :defer 1 - :diminish super-save-mode - :config - (super-save-mode +1) - (setq super-save-auto-save-when-idle t)) - (setq global-auto-revert-non-file-buffers t) - (global-auto-revert-mode 1) -#+end_src -* Tramp -#+begin_src emacs-lisp - ;; tramp default is scp - (setq tramp-default-method "ssh") -#+end_src -* Company -#+begin_src emacs-lisp - (use-package company - :init - (add-hook 'after-init-hook 'global-company-mode) - :bind - (:map company-active-map - ("" . company-complete-selection)) - (:map lsp-mode-map - ("" . company-indent-or-complete-common)) - :config - (setq company-idle-delay 0 - company-show-numbers "on" - company-dabbrev-downcase nil - ) - (add-to-list 'company-backends 'org-keyword-backend) - ) - ;;(use-package company - ;;:after lsp-mode - ;;:hook (lsp-mode . company-mode) - ;;:bind (:map company-active-map - ;;("" . company-complete-selection)) - ;;(:map lsp-mode-map - ;;("" . company-indent-or-complete-common)) - ;;:custom - ;;(company-minimum-prefix-length 1) - ;;(setq company-show-numbers "on") - ;;(company-idle-delay 0.0)) - - ;;(use-package company-box - ;;:hook (company-mode . company-box-mode)) -#+end_src - - -+ ORG mode =#+= Candidates -https://emacs.stackexchange.com/a/30691 -#+begin_src emacs-lisp - (defun org-keyword-backend (command &optional arg &rest ignored) - (interactive (list 'interactive)) - (cl-case command - (interactive (company-begin-backend 'org-keyword-backend)) - (prefix (and (eq major-mode 'org-mode) - (cons (company-grab-line "^#\\+\\(\\w*\\)" 1) - t))) - (candidates (mapcar #'upcase - (cl-remove-if-not - (lambda (c) (string-prefix-p arg c)) - (pcomplete-completions)))) - (ignore-case t) - (duplicates t))) -#+end_src - -** Prescient -#+begin_src emacs-lisp - (use-package prescient - :hook (dashboard-after-initialize . prescient-persist-mode)) - ;;(use-package company-prescient - ;; :after company - ;; :config (company-prescient-mode)) -#+end_src - -* FlyCheck -#+begin_src emacs-lisp - (use-package flycheck - :ensure t - :defer t - :init (global-flycheck-mode t)) -#+end_src -* Yasnippet -#+begin_src emacs-lisp - (use-package yasnippet-snippets) - (use-package yasnippet - :init - (defvar yas-snippet-dirs nil) - :hook (prog-mode . yas-minor-mode) - :config - (add-to-list 'yas-snippet-dirs "~/.emacs.d/snippets") - (yas-global-mode 1)) - (ju/leader-key-def - "i" '(:ignore t :which-key "insert something.") - "is" '(yas-insert-snippet :which-key "snippet") - "ie" '(emojify-insert-emoji :which-key "emoji")) -#+end_src - - -* World Time -#+begin_src emacs-lisp - (setq display-time-world-list - '(("Etc/UTC" "UTC") - ("Asia/Seoul" "Seoul") - ("Asia/Shanghai" "Shanghai"))) - (setq display-time-world-time-format "%a, %d %b %I:%M %p %Z") -#+end_src - -* IVY Related -** IVY -#+begin_src emacs-lisp -;; (use-package ivy -;; :diminish -;; :bind (("C-s" . swiper) -;; :map ivy-minibuffer-map -;; ("TAB" . ivy-alt-done) -;; ("C-l" . ivy-alt-done) -;; ("C-j" . ivy-next-line) -;; ("C-k" . ivy-previous-line) -;; :map ivy-switch-buffer-map -;; ("C-k" . ivy-previous-line) -;; ("C-l" . ivy-done) -;; ("C-d" . ivy-switch-buffer-kill) -;; :map ivy-reverse-i-search-map -;; ("C-k" . ivy-previous-line) -;; ("C-d" . ivy-reverse-i-search-kill)) -;; :config -;; (ivy-mode 1)) -;; -;; (use-package ivy-rich -;; :after ivy -;; :init -;; (ivy-rich-mode 1) -;; (ivy-rich-project-root-cache-mode 1)) -;; -;; (use-package ivy-posframe -;; ;;:disabled -;; :after ivy -;; :diminish -;; :init -;; (setq ivy-posframe-display-functions-alist -;; '((swiper . ivy-posframe-display-at-point) -;; (emojify-insert-emoji . ivy-display-function-fallback) -;; (t . ivy-posframe-display))) -;; :custom-face -;; (ivy-posframe-border ((t (:background "#ffffff")))) -;; :config -;; (setq ivy-posframe-height-minibuffer nil) -;; (setq ivy-posframe-parameters '((internal-border-width . 1))) -;; (ivy-posframe-mode 1)) -;; -;; (use-package ivy-prescient -;; :after counsel -;; :custom -;; (ivy-prescient-enable-filtering nil) -;; :config -;; ;; Uncomment the following line to have sorting remembered across sessions! -;; ;(prescient-persist-mode 1) -;; (ivy-prescient-mode 1)) -;; (use-package all-the-icons-ivy -;; :init (add-hook 'after-init-hook 'all-the-icons-ivy-setup)) - -#+end_src - -** Counsel -#+begin_src emacs-lisp -;; (use-package counsel -;; :bind (("M-x" . counsel-M-x) -;; ;;("C-M-j" . counsel-switch-buffer) -;; :map minibuffer-local-map -;; ("C-r" . 'counsel-minibuffer-history)) -;; :custom -;; (counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only) -;; :config -;; ;; Don't use ^ as initial input. Set this here because `counsel' defines more -;; ;; of its own, on top of the defaults. -;; (setq ivy-initial-inputs-alist nil) -;; (counsel-mode 1)) -#+end_src - -* Vertico Related -** Vertico -#+begin_src emacs-lisp - (use-package vertico - :ensure t - :bind (:map vertico-map - ("C-j" . vertico-next) - ("C-k" . vertico-previous)) - :custom - (vertico-cycle t) - :init - (vertico-mode)) - (use-package savehist - :init - (savehist-mode)) - - (use-package marginalia - :after vertico - :ensure t - :custom - (marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil)) - :init - (marginalia-mode)) - (use-package vertico-posframe - :disabled - :after vertico - :ensure t - :init - (setq vertico-posframe-parameters - `((left-fringe . 8) - (right-fringe . 8) (alpha . 100))) - (vertico-posframe-mode 1)) -#+end_src -** Orderless -#+begin_src emacs-lisp -(use-package orderless - :init - (setq completion-styles '(orderless) - completion-category-defaults nil - completion-category-overrides '((file (styles . (partial-completion)))))) -#+end_src -** Embark -#+begin_src emacs-lisp -(use-package embark - :bind (("C-S-a" . embark-act) - :map minibuffer-local-map - ("C-d" . embark-act)) - :config - - ;; Show Embark actions via which-key - (setq embark-action-indicator - (lambda (map) - (which-key--show-keymap "Embark" map nil nil 'no-paging) - #'which-key--hide-popup-ignore-command) - embark-become-indicator embark-action-indicator)) - -(use-package embark-consult - :after embark) -#+end_src -** Consult -#+begin_src emacs-lisp - (defun dw/get-project-root () - (when (fboundp 'projectile-project-root) - (projectile-project-root))) - - (use-package consult - :demand t - :bind (("C-s" . consult-line) - ("C-M-l" . consult-imenu) - ("C-M-j" . persp-switch-to-buffer*) - :map minibuffer-local-map - ("C-r" . consult-history)) - :custom - (consult-project-root-function #'dw/get-project-root) - (completion-in-region-function #'consult-completion-in-region)) - (use-package consult-dir - :straight t - :bind (("C-x C-d" . consult-dir) - :map vertico-map - ("C-x C-d" . consult-dir) - ("C-x C-j" . consult-dir-jump-file)) - :custom - (consult-dir-project-list-function nil)) -#+end_src - - -* Avy (like easymotion) -#+begin_src emacs-lisp - (use-package avy - :commands (avy-goto-char avy-goto-word-0 avy-goto-line)) - (ju/leader-key-def - "v" '(:ignore t :which-key "Avy") - "vc" '(avy-goto-char :which-key "Avy Goto Char") - "vw" '(avy-goto-word-0 :which-key "Avy Goto Word") - "vl" '(avy-goto-line :which-key "Avy Goto Line")) -#+end_src -* Projectile -#+begin_src emacs-lisp - (defun dw/switch-project-action () - "Switch to a workspace with the project name and start `magit-status'." - (persp-switch (projectile-project-name)) - (magit-status)) - (use-package projectile - :diminish projectile-mode - :config - (projectile-mode) - (setq projectile-enable-caching t) - (setq projectile-indexing-method 'hybrid) - :custom ((projectile-completion-system 'ivy)) - :bind-keymap - ("C-c p" . projectile-command-map) - :init - ;; NOTE: Set this to the folder where you keep your Git repos! - (when (file-directory-p "~/Projects") - (setq projectile-project-search-path '("~/Projects"))) - (setq projectile-switch-project-action #'dw/switch-project-action)) - - (use-package counsel-projectile - :disabled - :after projectile - :config (counsel-projectile-mode)) - (ju/leader-key-def - "p" '(:ignore t :which-key "Projectile") - "p." 'projectile-find-file - "ps" 'projectile-switch-project - "pg" 'consult-ripgrep - "pc" 'projectile-compile-project - "pd" 'projectile-dired) - ;;(defun dw/switch-project-action () - ;; "Switch to a workspace with the project name and start `magit-status'." - ;; ;; TODO: Switch to EXWM workspace 1? - ;; (persp-switch (projectile-project-name)) - ;; (magit-status)) - -#+end_src - -* Perspective -#+begin_src emacs-lisp - (use-package perspective - :demand t - :bind (("C-M-j" . consult-buffer) - ("C-M-k" . persp-switch) - ("C-M-n" . persp-next) - ("C-x k" . persp-kill-buffer*)) - :custom - (persp-initial-frame-name "Main") - :config - ;; Running `persp-mode' multiple times resets the perspective list... - (unless (equal persp-mode t) - (persp-mode))) -#+end_src - -* Helpful -#+begin_src emacs-lisp - (use-package helpful - :commands (helpful-callable helpful-variable helpful-command helpful-key) - :custom - (counsel-describe-function-function #'helpful-callable) - (counsel-describe-variable-function #'helpful-variable) - :bind - ([remap describe-function] . describe-function) - ([remap describe-command] . helpful-command) - ([remap describe-variable] . describe-variable) - ([remap describe-key] . helpful-key)) -#+end_src -* Hydra -#+begin_src emacs-lisp - ;;(use-package hydra - ;; :defer t) - - ;;(defhydra hydra-text-scale (:timeout 4) - ;; "scale text" - ;; ("j" text-scale-increase "in") - ;; ("k" text-scale-decrease "out") - ;; ("f" nil "finished" :exit t)) - - ;;(gvar/leader-keys - ;; "ts" '(hydra-text-scale/body :which-key "scale text")) -#+end_src -* HI-TOOD -#+begin_src emacs-lisp - (use-package hl-todo - :hook (prog-mode . hl-todo-mode) - :hook (yaml-mode . hl-todo-mode) - :config - (setq hl-todo-highlight-punctuation ":" - hl-todo-keyword-faces - `(;; For things that need to be done, just not today. - ("TODO" warning bold) - ;; For problems that will become bigger problems later if not - ;; fixed ASAP. - ("FIXME" error bold) - ;; For tidbits that are unconventional and not intended uses of the - ;; constituent parts, and may break in a future update. - ("HACK" font-lock-constant-face bold) - ;; For things that were done hastily and/or hasn't been thoroughly - ;; tested. It may not even be necessary! - ("REVIEW" font-lock-keyword-face bold) - ;; For especially important gotchas with a given implementation, - ;; directed at another user other than the author. - ("NOTE" success bold) - ;; For things that just gotta go and will soon be gone. - ("DEPRECATED" font-lock-doc-face bold) - ;; For a known bug that needs a workaround - ("BUG" error bold) - ;; For warning about a problematic or misguiding code - ("XXX" font-lock-constant-face bold)))) -#+end_src -* Org mode -+ Initial Setup -#+begin_src emacs-lisp - (defun efs/org-mode-setup () - (org-indent-mode) - ;;(variable-pitch-mode 1) - (visual-line-mode 1)) - - (use-package org - ;;:pin org - :demand t - :commands (org-capture org-agenda) - :hook (org-mode . efs/org-mode-setup) - :config - - (setq org-todo-keywords - '((sequence "TODO(t)" "HOLD(h)" "|" "KILL(k)" "DONE(d)"))) - (setq org-ellipsis " ▾") - (setq org-hide-emphasis-markers t) - (setq org-src-fontify-natively t) - (setq org-fontify-quote-and-verse-blocks t) - - (setq org-agenda-start-with-log-mode t) - (setq org-log-done 'time) - (setq org-log-into-drawer t) - (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.8))) - (use-package org-superstar :after org :hook (org-mode . org-superstar-mode)) - (use-package org-attach-screenshot) - (use-package org-download) - - (defun efs/org-mode-visual-fill () - (setq visual-fill-column-width 100 - visual-fill-column-center-text t) - (visual-fill-column-mode 1)) - - (use-package visual-fill-column - :hook (org-mode . efs/org-mode-visual-fill)) - - (with-eval-after-load 'org - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (python . t) - (latex . t))) - - (push '("conf-unix" . conf-unix) org-src-lang-modes)) - - (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 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"))) - ;;(org-reload)) - - ;; ODT export to docx - (setq org-odt-preferred-output-format "docx") - - ;; Do not ask when run code block - (setq org-confirm-babel-evaluate nil) - - - (ju/leader-key-def - "o" '(:ignore t :which-key "Org mode") - "oa" '(:ignore t :which-key "Org Agenda") - "oar" '(my/org-roam-refresh-agenda-list :which-key "Org agenda refresh list") - "oaa" '(org-agenda :which-key "open org agenda")) -#+end_src - -** Org mode Addons -#+begin_src emacs-lisp - (use-package org-contrib) -#+end_src - -** Org Roam -#+begin_src emacs-lisp - (use-package org-roam - :ensure t - :demand t ;; Ensure org-roam is loaded by default - :init - (setq org-roam-v2-ack t) - :custom - (org-roam-directory "~/Roam") - (org-roam-completion-everywhere t) - - :config - (org-roam-db-autosync-mode)) - ;;(org-roam-setup)) - (ju/leader-key-def - "r" '(:ignore t :which-key "Org Roam") - "ru" 'org-roam-ui-open - "rl" 'org-roam-buffer-toggle - "rf" 'org-roam-node-find - "ri" 'org-roam-node-insert - "rI" 'org-roam-node-insert-immediate - "rp" 'my/org-roam-find-project) - - (defun org-roam-node-insert-immediate (arg &rest args) - (interactive "P") - (let ((args (push arg args)) - (org-roam-capture-templates (list (append (car org-roam-capture-templates) - '(:immediate-finish t))))) - (apply #'org-roam-node-insert args))) - - (defun my/org-roam-filter-by-tag (tag-name) - (lambda (node) - (member tag-name (org-roam-node-tags node)))) - - (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"))) - - ;; Build the agenda list the first time for the session - (my/org-roam-refresh-agenda-list) - - (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* History\n\n* Notes\n\n" - :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: Project") - :unnarrowed t)))) - - (add-to-list 'org-after-todo-state-change-hook - (lambda () - (when (equal org-state "DONE") - (my/org-roam-copy-todo-to-today)))) -#+end_src -** Org Roam Server -+ DEPRECATED ( ORG-ROAM V2 ) -#+begin_src emacs-lisp - ;;(use-package org-roam-server - ;; :ensure t - ;; :config - ;; (setq org-roam-server-host "127.0.0.1" - ;; org-roam-server-port 23799 - ;; org-roam-server-authenticate nil - ;; org-roam-server-export-inline-images t - ;; org-roam-server-serve-files t - ;; org-roam-server-served-file-extensions '("pdf" "mp4" "ogv") - ;; org-roam-server-network-poll t - ;; org-roam-server-network-arrows nil - ;; org-roam-server-network-label-truncate t - ;; org-roam-server-network-label-truncate-length 60 - ;; org-roam-server-network-label-wrap-length 20)) -#+end_src -** Org Roam UI -#+begin_src emacs-lisp - (use-package websocket - :after org-roam) - (use-package org-roam-ui - :straight - (:host github :repo "org-roam/org-roam-ui" :branch "main" :files ("*.el" "out")) - :after org-roam - ;; 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)) -#+end_src -** Org present -#+begin_src emacs-lisp -;; (defun dw/org-present-prepare-slide () -;; (org-overview) -;; (org-show-entry) -;; (org-show-children)) -;; -;; (defun dw/org-present-hook () -;; (setq-local face-remapping-alist '((default (:height 1.5) variable-pitch) -;; (header-line (:height 4.5) variable-pitch) -;; (org-code (:height 1.55) org-code) -;; (org-verbatim (:height 1.55) org-verbatim) -;; (org-bloc (:height 1.25) org-block) -;; (org-block-begin-line (:height 0.7) org-block))) -;; (setq header-line-format " ") -;; (org-display-inline-images) -;; (dw/org-present-prepare-slide)) -;; -;; (defun dw/org-present-quit-hook () -;; (setq-local face-remapping-alist '((default variable-pitch default))) -;; (setq header-line-format nil) -;; (org-present-small) -;; (org-remove-inline-images)) -;; -;; (defun dw/org-present-prev () -;; (interactive) -;; (org-present-prev) -;; (dw/org-present-prepare-slide)) -;; -;; (defun dw/org-present-next () -;; (interactive) -;; (org-present-next) -;; (dw/org-present-prepare-slide)) -;; -;; (use-package org-present -;; :disable -;; :bind (:map org-present-mode-keymap -;; ("C-c C-j" . dw/org-present-next) -;; ("C-c C-k" . dw/org-present-prev)) -;; :hook ((org-present-mode . dw/org-present-hook) -;; (org-present-mode-quit . dw/org-present-quit-hook))) -#+end_src -** Translate in org -#+begin_src emacs-lisp - (use-package ob-translate - :config - (setq ob-translate:default-dest "ko")) -#+end_src - -** Org Noter -#+begin_src emacs-lisp - (use-package pdf-tools - :straight t - :config - (pdf-tools-install) - (setq-default pdf-view-display-size 'fit-width) - (define-key pdf-view-mode-map (kbd "C-s") 'isearch-forward) - :custom - (pdf-annot-activate-created-annotations t "automatically annotate highlights")) - (use-package org-pdfview - :straight t) - (use-package org-noter) -#+end_src - -** Org Publish -#+begin_src emacs-lisp - (setq org-publish-use-timestamps-flag nil) - (setq org-export-with-broken-lilnks t) - (setq org-publish-project-alist - '(("jaeus.net" - :base-directory "~/Roam/www/" - :base-extension "org" - :publishing-directory "~/Projects/html/" - :recursive t - :publishing-function org-html-publish-to-html - :headline-levels 4 - :auto-preamble t))) -#+end_src -* Magit -#+begin_src emacs-lisp - (use-package magit - :commands (magit-status magit-get-current-branch) - :custom - (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) - - ;; NOTE: Make sure to configure a GitHub token before using this package! - ;; - https://magit.vc/manual/forge/Token-Creation.html#Token-Creation - ;; - https://magit.vc/manual/ghub/Getting-Started.html#Getting-Started - (use-package forge - :after magit) - (use-package magit-todos - :defer t) - (use-package git-link) - (ju/leader-key-def - "g" 'magit) - (use-package git-gutter - :straight git-gutter-fringe - ;;:diminish - :hook ((text-mode . git-gutter-mode) - (prog-mode . git-gutter-mode)) - :config - (setq git-gutter:update-interval 2) - (require 'git-gutter-fringe) - (set-face-foreground 'git-gutter-fr:added "LightGreen") - (fringe-helper-define 'git-gutter-fr:added nil - ".XXXXXX." - "XX....XX" - "X......X" - "X......X" - "XXXXXXXX" - "XXXXXXXX" - "X......X" - "X......X") - - (set-face-foreground 'git-gutter-fr:modified "LightGoldenrod") - (fringe-helper-define 'git-gutter-fr:modified nil - "XXXXXXXX" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X" - "X..XX..X") - - (set-face-foreground 'git-gutter-fr:deleted "LightCoral") - (fringe-helper-define 'git-gutter-fr:deleted nil - "XXXXXX.." - "XX....X." - "XX.....X" - "XX.....X" - "XX.....X" - "XX.....X" - "XX....X." - "XXXXXX..") - - ;; These characters are used in terminal mode - (setq git-gutter:modified-sign "≡") - (setq git-gutter:added-sign "≡") - (setq git-gutter:deleted-sign "≡") - (set-face-foreground 'git-gutter:added "LightGreen") - (set-face-foreground 'git-gutter:modified "LightGoldenrod") - (set-face-foreground 'git-gutter:deleted "LightCoral")) -#+end_src -** Org mode latex -[[https://github.com/GeneKao/orgmode-latex-templates][reference]] -#+begin_src emacs-lisp - (with-eval-after-load 'ox-latex - (add-to-list 'org-latex-classes - '("org-plain-latex" - "\\documentclass[a4paper,11pt,titlepage]{memoir} - \\usepackage{kotex} - [NO-DEFAULT-PACKAGES] - [PACKAGES] - [EXTRA] - \\linespread{1.1} - \\hypersetup{pdfborder=0 0 0}" - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) - - (add-to-list 'org-latex-classes - '("ethz" - "\\documentclass[a4paper,11pt,titlepage]{memoir} - \\usepackage{kotex} - \\usepackage[utf8]{inputenc} - \\usepackage[T1]{fontenc} - \\usepackage{fixltx2e} - \\usepackage{graphicx} - \\usepackage{longtable} - \\usepackage{float} - \\usepackage{wrapfig} - \\usepackage{rotating} - \\usepackage[normalem]{ulem} - \\usepackage{amsmath} - \\usepackage{textcomp} - \\usepackage{marvosym} - \\usepackage{wasysym} - \\usepackage{amssymb} - \\usepackage{hyperref} - \\usepackage{mathpazo} - \\usepackage{color} - \\usepackage{enumerate} - \\definecolor{bg}{rgb}{0.95,0.95,0.95} - \\tolerance=1000 - [NO-DEFAULT-PACKAGES] - [PACKAGES] - [EXTRA] - \\linespread{1.1} - \\hypersetup{pdfborder=0 0 0}" - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) - - - (add-to-list 'org-latex-classes - '("article" - "\\documentclass[11pt,a4paper]{article} - \\usepackage{kotex} - \\usepackage[utf8]{inputenc} - \\usepackage[T1]{fontenc} - \\usepackage{fixltx2e} - \\usepackage{graphicx} - \\usepackage{longtable} - \\usepackage{float} - \\usepackage{wrapfig} - \\usepackage{rotating} - \\usepackage[normalem]{ulem} - \\usepackage{amsmath} - \\usepackage{textcomp} - \\usepackage{marvosym} - \\usepackage{wasysym} - \\usepackage{amssymb} - \\usepackage{hyperref} - \\usepackage{mathpazo} - \\usepackage{color} - \\usepackage{enumerate} - \\definecolor{bg}{rgb}{0.95,0.95,0.95} - \\tolerance=1000 - [NO-DEFAULT-PACKAGES] - [PACKAGES] - [EXTRA] - \\linespread{1.1} - \\hypersetup{pdfborder=0 0 0}" - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}"))) - - - (add-to-list 'org-latex-classes '("ebook" - "\\documentclass[11pt, oneside]{memoir} - \\setstocksize{9in}{6in} - \\settrimmedsize{\\stockheight}{\\stockwidth}{*} - \\setlrmarginsandblock{2cm}{2cm}{*} % Left and right margin - \\setulmarginsandblock{2cm}{2cm}{*} % Upper and lower margin - \\checkandfixthelayout - % Much more laTeX code omitted - " - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}")))) - - (add-to-list 'org-latex-packages-alist '("" "minted")) - (setq org-latex-listings 'minted) ;; Use minted to highlight source code - (setq org-latex-minted-options - '(("breaklines" "true") - ("tabsize" "4") - ("autogobble") - ("bgcolor" "monokaibg"))) - (setq org-latex-pdf-process - '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" - "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" - "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f")) -#+end_src - -* Org-Gcal -#+begin_src emacs-lisp - (setq package-check-signature nil) - (use-package org-gcal - :ensure t - :config - (setq org-gcal-client-id "928945571655-4h4kclj8etm6qfm27jk4jhgil6jsotbc.apps.googleusercontent.com" - org-gcal-client-secret "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" - org-gcal-file-alist '(("cpu3792@gmail.com" . "~/Roam/gcal.org")))) - ;;(add-hook 'org-agenda-mode-hook (lambda () (org-gcal-sync) )) - (add-hook 'org-capture-after-finalize-hook (lambda () (org-gcal-sync) )) - - - (add-to-list 'org-agenda-files "~/Roam/Agenda/gcal.org") - ;;(add-to-list 'org-agenda-files "~/Roam/Agenda/links.org") - ;;(add-to-list 'org-agenda-files "~/Roam/Agenda/i.org") - - - (setq org-capture-templates - '(("a" "Appointment" entry (file "~/Roam/Agenda/gcal.org" ) - "* %?\n\n%^T\n\n:PROPERTIES:\n\n:END:\n\n") - ("l" "Link" entry (file+headline "~/Roam/Agenda/links.org" "Links") - "* %? %^L %^g \n%T" :prepend t) - ("b" "Blog idea" entry (file+headline "~/Roam/Agenda/i.org" "Blog Topics:") - "* %?\n%T" :prepend t) - ("t" "To Do Item" entry (file+headline "~/Roam/Agenda/i.org" "To Do") - "* TODO %?\n%u" :prepend t) - ("n" "Note" entry (file+headline "~/Roam/Agenda/i.org" "Note space") - "* %?\n%u" :prepend t) - ("j" "Journal" entry (file+datetree "~/Roam/Agenda/journal.org") - "* %?\nEntered on %U\n %i\n %a") - ("s" "Screencast" entry (file "~/Roam/Agenda/screencastnotes.org") - "* %?\n%i\n"))) -#+end_src - -* EDiff -#+begin_src emacs-lisp -;; Don't let ediff break EXWM, keep it in one frame -(setq ediff-diff-options "-w" - ediff-split-window-function 'split-window-horizontally - ediff-window-setup-function 'ediff-setup-windows-plain) -#+end_src -* Rainbow Delimiters -#+begin_src emacs-lisp - (use-package rainbow-delimiters - :hook (prog-mode . rainbow-delimiters-mode)) -#+end_src - - -* Vterm -#+begin_src emacs-lisp - (use-package vterm - :commands vterm - :config - (setq term-prompt-regexp "^[^#$%>\n]*[#$%>] *") ;; Set this to match your custom shell prompt - ;;(setq vterm-shell "zsh") ;; Set this to customize the shell to launch - (setq vterm-max-scrollback 10000)) -#+end_src - - -* Eshell -** EXEC-PATH-FROM-SHELL -#+begin_src emacs-lisp - (use-package exec-path-from-shell) - (exec-path-from-shell-initialize) -#+end_src -** Config -#+begin_src emacs-lisp - (when (eq system-type 'windows-nt) - (setq explicit-shell-file-name "powershell.exe") - (setq explicit-powershell.exe-args '())) - (defun dw/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 dw/eshell-prompt () - (let ((current-branch (magit-get-current-branch))) - (concat - "\n" - (propertize (system-name) 'face `(:foreground "#62aeed")) - (propertize " ॐ " 'face `(:foreground "white")) - (propertize (dw/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 efs/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 "") 'eshell-bol) - (evil-normalize-keymaps) - - (setq eshell-prompt-function 'dw/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)) - - (use-package eshell-git-prompt - :after eshell) - - (use-package eshell - :hook (eshell-first-time-mode . efs/configure-eshell) - :config - - (with-eval-after-load 'esh-opt - (setq eshell-destroy-buffer-when-process-dies t) - (setq eshell-visual-commands '("htop" "zsh" "vim")))) -#+end_src - - -* Dired (from Doom Emacs) -#+begin_src emacs-lisp - (use-package dired - :ensure nil - :straight nil - :commands (dired dired-jump) - :bind (("C-x C-j" . dired-jump)) - :custom ((dired-listing-switches "-agho --group-directories-first")) - :config - (evil-collection-define-key 'normal 'dired-mode-map - "h" 'dired-single-up-directory - "l" 'dired-single-buffer)) - (autoload 'dired-omit-mode "dired-x") - (add-hook 'dired-load-hook - (lambda () - (interactive) - (dired-collapse))) - ;; to use h,l key - (use-package dired-single - :commands (dired dired-jump)) - (use-package diredfl - :hook (dired-mode . diredfl-mode)) - - ;; from doom emacs - (defun +dired-enable-git-info-h () - "Enable `dired-git-info-mode' in git repos." - (and (not (file-remote-p default-directory)) - (locate-dominating-file "." ".git") - (dired-git-info-mode 1))) - (use-package dired-git-info) - (use-package diff-hl - :hook (dired-mode . diff-hl-dired-mode-unless-remote) - :hook (magit-post-refresh . diff-hl-magit-post-refresh) - :config - ;; use margin instead of fringe - (diff-hl-margin-mode)) - (use-package dired-rsync - :config - (bind-key "C-c C-r" 'dired-rsync dired-mode-map)) - (use-package all-the-icons-dired - :hook (dired-mode . all-the-icons-dired-mode) - :config - ;; HACK Fixes #1929: icons break file renaming in Emacs 27+, because the icon - ;; is considered part of the filename, so we disable icons while we're in - ;; wdired-mode. - ;;(when EMACS27+ - (defvar +wdired-icons-enabled -1)) - - ;;(defadvice! +dired-disable-icons-in-wdired-mode-a (&rest _) - ;; :before #'wdired-change-to-wdired-mode - ;; (setq-local +wdired-icons-enabled (if all-the-icons-dired-mode 1 -1)) - ;; (when all-the-icons-dired-mode - ;; (all-the-icons-dired-mode -1))) - - ;;(defadvice! +dired-restore-icons-after-wdired-mode-a (&rest _) - ;; :after #'wdired-change-to-dired-mode - ;; (all-the-icons-dired-mode +wdired-icons-enabled)))) - ;;(use-package fd-dired) - - (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)) - ;;(use-package ranger - ;; :config - ;; (setq ranger-preview-file t) - ;; (setq ranger-show-preview t) - ;; (setq ranger-show-literal nil) - ;; (ranger-override-dired-mode t)) -#+end_src - - -* Openwith -#+begin_src emacs-lisp - (use-package openwith - :after dired - :config - (setq larget-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")) - ;; "evince" - ;; '(file))))) -#+end_src -* VLF (very large file) -#+begin_src emacs-lisp - (use-package vlf - :config (progn - (require 'vlf-setup))) -#+end_src - -* Nov (EPUB file association) -#+begin_src emacs-lisp - (use-package nov) - (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)) -#+end_src - - - -* LSP-MODE -#+begin_src emacs-lisp - (use-package lsp-mode - :init - ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") - (setq lsp-keymap-prefix "C-c l") - :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) - (c++-mode . lsp) - (verilog-mode . lsp) - ;; if you want which-key integration - (lsp-mode . lsp-enable-which-key-integration)) - :commands lsp) - - ;; optionally - (use-package lsp-ui :commands lsp-ui-mode) - ;; if you are ivy user - (use-package lsp-ivy :commands lsp-ivy-workspace-symbol) - (use-package lsp-treemacs :commands lsp-treemacs-errors-list) - ;; optionally if you want to use debugger - (use-package dap-mode) - ;; (use-package dap-LANGUAGE) to load the dap adapter for your language - -#+end_src - -* ELFEED -#+begin_src emacs-lisp - (use-package elfeed - :config - (setq elfeed-search-feed-face ":foreground #fff :weight bold" - elfeed-feeds (quote - (("https://www.reddit.com/r/linux.rss" reddit linux) - ("https://www.reddit.com/r/emacs.rss" reddit emacs) - ("https://www.gamingonlinux.com/article_rss.php" gaming linux) - ("https://hackaday.com/blog/feed/" hackaday linux) - ("https://opensource.com/feed" opensource linux) - ("https://linux.softpedia.com/backend.xml" softpedia linux) - ("https://itsfoss.com/feed/" itsfoss linux) - ("https://www.zdnet.com/topic/linux/rss.xml" zdnet linux) - ("https://www.phoronix.com/rss.php" phoronix linux) - ("http://feeds.feedburner.com/d0od" omgubuntu linux) - ("https://www.computerworld.com/index.rss" computerworld linux) - ("https://www.networkworld.com/category/linux/index.rss" networkworld linux) - ("https://www.techrepublic.com/rssfeeds/topic/open-source/" techrepublic linux) - ("https://betanews.com/feed" betanews linux) - ("http://lxer.com/module/newswire/headlines.rss" lxer linux) - ("https://coolenjoy.net/rss?bo_table=38" coolenjoy IT) - ("https://gigglehd.com/gg/ggnews/rss" giggle IT))))) - - (use-package elfeed-goodies - :init - (elfeed-goodies/setup) - :config - (setq elfeed-goodies/entry-pane-size 0.5)) - - (add-hook 'elfeed-show-mode-hook 'visual-line-mode) - (evil-define-key 'normal elfeed-show-mode-map - (kbd "J") 'elfeed-goodies/split-show-next - (kbd "K") 'elfeed-goodies/split-show-prev) - (evil-define-key 'normal elfeed-search-mode-map - (kbd "J") 'elfeed-goodies/split-show-next - (kbd "K") 'elfeed-goodies/split-show-prev) - -#+end_src -* Language Support -** Haskell -#+begin_src emacs-lisp - (use-package haskell-mode) -#+end_src -** Verilog/System verilog -using =svlangserver= -#+begin_src shell - sudo npm install -g @imc-trading/svlangserver - paru -S verilator -#+end_src - -** Rust -#+begin_src emacs-lisp - (use-package rust-mode) -#+end_src -** Markdown -#+begin_src emacs-lisp - (use-package markdown-mode - :disabled - :commands (markdown-mode gfm-mode) - :mode (("README\\.md\\'" . gfm-mode) - ("\\.md\\'" . markdown-mode) - ("\\.markdown\\'" . markdown-mode)) - :init (setq markdown-command "multimarkdown")) -#+end_src - -** CMAKE -#+begin_src emacs-lisp -(use-package cmake-mode) -#+end_src -** YAML -#+begin_src emacs-lisp -(use-package yaml-mode) -#+end_src - -* ETC -** Youtube -#+begin_src emacs-lisp - (use-package ytel - :straight t - :config - (setq ytel-invidious-api-url "https://invidious.snopyta.org") - ) - (defun ytel-watch () - "Stream video at point in mpv." - (interactive) - (let* ((video (ytel-get-current-video)) - (id (ytel-video-id video))) - (start-process "ytel mpv" nil - "mpv" - (concat "https://www.youtube.com/watch?v=" id)) - "--ytdl-format=bestvideo[height<=?720]+bestaudio/best") - (message "Starting streaming...")) -#+end_src -** Python - -- prequisite -#+begin_src shell - paru -S jupyter python-pip - pip install matplotlib numpy pandas tabulate -#+end_src - -- configuration for emacs table -#+begin_src emacs-lisp - (use-package jupyter - :straight t) - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) ;; Other languages - (shell . t) - ;; Python & Jupyter - (python . t) - (jupyter . t))) - (org-babel-jupyter-override-src-block "python") -#+end_src diff --git a/.emacs.vanilla/exwm/EXWM.desktop b/.emacs.vanilla/exwm/EXWM.desktop deleted file mode 100644 index 7a5d2c2..0000000 --- a/.emacs.vanilla/exwm/EXWM.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=EXWM -Comment=Emacs Window Manager -Exec=sh /home/jaeus/.emacs.d/exwm/start-exwm.sh -TryExec=sh -Type=Application -X-LightDM-DesktopName=exwm -DesktopNames=exwm diff --git a/.emacs.vanilla/exwm/start-exwm.sh b/.emacs.vanilla/exwm/start-exwm.sh deleted file mode 100755 index 60279be..0000000 --- a/.emacs.vanilla/exwm/start-exwm.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# Set the screen DPI (uncomment this if needed!) -# xrdb ~/.emacs.d/exwm/Xresources - -# Run the screen compositor -#picom & -#picom -b --config /home/jaeus/.config/i3/picom.conf & -# Enable screen locking on suspend -#xss-lock -- slock & - -rm ~/.emacs.d/emacs.el -picom -b --config $HOME/.xmonad/scripts/picom.conf & -~/scripts/random_wallpaper.sh -exec dbus-launch --exit-with-session emacs --with-profile vanilla -mm --debug-init -l ~/.emacs.d/desktop.el diff --git a/.emacs.vanilla/init.el b/.emacs.vanilla/init.el deleted file mode 100644 index 55cfbe9..0000000 --- a/.emacs.vanilla/init.el +++ /dev/null @@ -1,9 +0,0 @@ -(setq vc-follow-symlinks t) -(org-babel-load-file - (expand-file-name - "emacs.org" - user-emacs-directory)) -(setq-default indent-tabs-mode t) -(setq tab-width 4) ; or any other preferred value -(defvaralias 'c-basic-offset 'tab-width) -(defvaralias 'cperl-indent-level 'tab-width) diff --git a/.emacs.vanilla/logos/black-hole.png b/.emacs.vanilla/logos/black-hole.png deleted file mode 100755 index 457bc55ab14868e66a8fb7a901d02a79f579789c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168872 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 ehsL_|-2Ve4+|8}Q8pNgm0000 - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - ${4:} - Copyright (C) ${1:`(format-time-string "%Y")`} ${2:`user-full-name`} - - 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 . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - ${3:} Copyright (C) ${1:`(format-time-string "%Y")`} ${2:`user-full-name`} - This program comes with ABSOLUTELY NO WARRANTY; for details type \`show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type \`show c' for details. - -The hypothetical commands \`show w' and \`show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/.emacs.vanilla/snippets/text-mode/__license-gpl3-bp b/.emacs.vanilla/snippets/text-mode/__license-gpl3-bp deleted file mode 100644 index 4e8ff3c..0000000 --- a/.emacs.vanilla/snippets/text-mode/__license-gpl3-bp +++ /dev/null @@ -1,21 +0,0 @@ -# -*- mode: snippet -*- -# name: GNU GPL 3.0 License (boilerplate) -# uuid: __license-gpl3-bp -# group: Licenses -# contributor: https://choosealicense.com/licenses/lgpl-3.0 -# -- -${1:} -Copyright (C) ${2:`(format-time-string "%Y")`} ${3:`user-full-name`} - -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 . \ No newline at end of file diff --git a/.emacs.vanilla/snippets/text-mode/__license-lgpl3 b/.emacs.vanilla/snippets/text-mode/__license-lgpl3 deleted file mode 100644 index 8aefb50..0000000 --- a/.emacs.vanilla/snippets/text-mode/__license-lgpl3 +++ /dev/null @@ -1,171 +0,0 @@ -# -*- mode: snippet -*- -# name: GNU LGPL v3 License -# uuid: __license-lgpl3 -# group: Licenses -# contribuer: https://choosealicense.com/licenses/lgpl-3.0/ -# -- - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/.emacs.vanilla/snippets/text-mode/__license-mit b/.emacs.vanilla/snippets/text-mode/__license-mit deleted file mode 100644 index dd041f8..0000000 --- a/.emacs.vanilla/snippets/text-mode/__license-mit +++ /dev/null @@ -1,28 +0,0 @@ -# -*- mode: snippet -*- -# name: MIT License -# uuid: __license-mit -# group: Licenses -# contributor: https://choosealicense.com/licenses/mit/ -# -- -The MIT License (MIT) - -Copyright (c) ${1:`(format-time-string "%Y")`} ${2:`user-full-name`} - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/.emacs.vanilla/snippets/text-mode/__license-mozilla b/.emacs.vanilla/snippets/text-mode/__license-mozilla deleted file mode 100644 index bba13b7..0000000 --- a/.emacs.vanilla/snippets/text-mode/__license-mozilla +++ /dev/null @@ -1,380 +0,0 @@ -# -*- mode: snippet -*- -# name: Mozilla Public License 2.0 -# uuid: __license-mozilla -# group: Licenses -# contributor: https://choosealicense.com/licenses/mpl-2.0 -# -- -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. - diff --git a/.emacs.vanilla/snippets/text-mode/__license-mozilla-bp b/.emacs.vanilla/snippets/text-mode/__license-mozilla-bp deleted file mode 100644 index 7a7fc42..0000000 --- a/.emacs.vanilla/snippets/text-mode/__license-mozilla-bp +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: Mozilla Public License 2.0 (boilerplate) -# uuid: __license-mozilla-bp -# group: Licenses -# contributor: https://choosealicense.com/licenses/mpl-2.0 -# -- -This Source Code Form is subject to the terms of the Mozilla Public -License, v. 2.0. If a copy of the MPL was not distributed with this -file, You can obtain one at http://mozilla.org/MPL/2.0/. \ No newline at end of file diff --git a/.emacs.vanilla/snippets/text-mode/__license-unlicense b/.emacs.vanilla/snippets/text-mode/__license-unlicense deleted file mode 100644 index 6eb9927..0000000 --- a/.emacs.vanilla/snippets/text-mode/__license-unlicense +++ /dev/null @@ -1,30 +0,0 @@ -# -*- mode: snippet -*- -# name: The Unlicense -# uuid: __license-unlicense -# group: Licenses -# contributor: https://choosealicense.com/licenses/unlicense -# -- -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to diff --git a/.julia/startup.jl b/.julia/startup.jl deleted file mode 100644 index 534fd70..0000000 --- a/.julia/startup.jl +++ /dev/null @@ -1,3 +0,0 @@ -#using Plots -#using PlotThemes -#theme(:juno)